import { readFileSync, writeFileSync } from "node:fs";
const semver = await import("semver");

const targetVersion = process.env.npm_package_version;
const targetSemver = semver.parse(targetVersion);

// read minAppVersion from manifest.json and bump version to target version
const manifest = JSON.parse(readFileSync("manifest.json", "utf8"));
const { minAppVersion } = manifest;
// Write manifest.json with target version only if the target version is not a pre-release version
if (targetSemver.prerelease.length === 0) {
  manifest.version = targetVersion;
  writeFileSync("manifest.json", JSON.stringify(manifest, null, "\t"));

  // update versions.json with target version and minAppVersion from manifest.json
  // but only if the target version is not already in versions.json
  const versions = JSON.parse(readFileSync("versions.json", "utf8"));
  if (!Object.values(versions).includes(minAppVersion)) {
    versions[targetVersion] = minAppVersion;
    writeFileSync("versions.json", JSON.stringify(versions, null, "\t"));
  }
} else {
  console.log(
    `Skipping version bump in manifest.json for pre-release version: ${targetVersion}`
  );
}