#!/usr/bin/env node
/**
 * npm/pnpm `postversion`: push the current branch (set upstream if missing) and
 * only the new version tag — avoids \`git push --tags\` publishing unrelated tags.
 */
import { readFileSync } from 'node:fs';
import { execFileSync } from 'node:child_process';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';

const root = join(dirname(fileURLToPath(import.meta.url)), '..');

function readPackageVersion() {
  const raw = readFileSync(join(root, 'package.json'), 'utf8');
  return JSON.parse(raw).version;
}

const version = process.env.npm_package_version || readPackageVersion();
const tag = `v${version}`;

execFileSync('git', ['push', '-u', 'origin', 'HEAD'], { stdio: 'inherit' });
execFileSync('git', ['push', 'origin', `refs/tags/${tag}`], { stdio: 'inherit' });