Ctrl K
ComunidadGuías…

scripts/prepare-safe-storage-baseline.mjs

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";

// The baseline checkout is immutable; this is its only test-only source patch.
// Fail closed if a future baseline no longer has the expected encryption guard.
export function prepareSafeStorageBaseline(root) {
  const pkg = JSON.parse(
    fs.readFileSync(path.join(root, "package.json"), "utf8"),
  );
  if (pkg.devDependencies.electron !== "40.0.0") {
    throw new Error("The safeStorage baseline must use pinned Electron 40.0.0");
  }
  const settingsPath = path.join(root, "src/main/settings.ts");
  const source = fs.readFileSync(settingsPath, "utf8");
  const guard = "safeStorage.isEncryptionAvailable() && !IS_TEST_BUILD";
  if (source.split(guard).length !== 2) {
    throw new Error("Expected exactly one baseline settings encryption guard");
  }
  fs.writeFileSync(
    settingsPath,
    source.replace(guard, "safeStorage.isEncryptionAvailable()"),
  );
}

if (
  process.argv[1] &&
  path.resolve(process.argv[1]) === fileURLToPath(import.meta.url)
) {
  if (!process.argv[2]) throw new Error("Pass the baseline checkout directory");
  prepareSafeStorageBaseline(path.resolve(process.argv[2]));
}