import fs from "fs"; import path from "path"; import { execSync } from "child_process"; import { fileURLToPath } from "url"; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const version = process.argv[2]; if (!version) { console.error("Version argument missing"); process.exit(1); } const root = path.resolve(__dirname, ".."); const newVersionTag = `v${version}`; // Update package.json + package-lock.json safely execSync(`npm version ${version} --no-git-tag-version`, { cwd: root, stdio: "inherit", }); console.log(`Updated package.json and package-lock.json → ${version}`); // Update UI version references const files = [ "src/app/features/settings/about/About.tsx", "src/app/pages/auth/AuthFooter.tsx", "src/app/pages/client/WelcomePage.tsx", ]; files.forEach((filePath) => { const absPath = path.join(root, filePath); if (!fs.existsSync(absPath)) { console.warn(`File not found: ${filePath}`); return; } const content = fs.readFileSync(absPath, "utf8"); const updated = content.replace(/v\d+\.\d+\.\d+/g, newVersionTag); fs.writeFileSync(absPath, updated); console.log(`Updated ${filePath} → ${newVersionTag}`); });