import { mkdirSync, renameSync, writeFileSync } from "node:fs"; import { dirname } from "node:path"; import { randomUUID } from "node:crypto"; export function atomicWrite(path: string, content: string): void { mkdirSync(dirname(path), { recursive: true }); const temp = `${path}.${process.pid}.${randomUUID()}.tmp`; writeFileSync(temp, content, { encoding: "utf8", mode: 0o600 }); renameSync(temp, path); } export function atomicWriteJson(path: string, value: unknown): void { atomicWrite(path, `${JSON.stringify(value, null, 2)}\n`); }