/**
 * Erzeugt einen PBKDF2-Passwort-Hash für den Admin-/Kunden-Login.
 *
 * Nutzung:
 *   node scripts/generate-password-hash.mjs "MeinSicheresPasswort123!"
 *
 * Die Ausgabe (Format "salt:hash") wird 1:1 als Cloudflare Pages Secret
 * mit dem Namen ADMIN_PASSWORD_HASH hinterlegt (siehe README-DEPLOYMENT.md).
 * Läuft komplett lokal mit Node.js "crypto" - keine Internetverbindung nötig.
 */
import crypto from "node:crypto";

const password = process.argv[2];
if (!password) {
  console.error("Bitte ein Passwort als Argument übergeben:");
  console.error('  node scripts/generate-password-hash.mjs "MeinSicheresPasswort123!"');
  process.exit(1);
}

const salt = crypto.randomBytes(16);
crypto.pbkdf2(password, salt, 100000, 32, "sha256", (err, derivedKey) => {
  if (err) throw err;
  const saltHex = salt.toString("hex");
  const hashHex = derivedKey.toString("hex");
  console.log("\nADMIN_PASSWORD_HASH Wert (als Cloudflare Secret hinterlegen):\n");
  console.log(`${saltHex}:${hashHex}`);
  console.log("\nFertig. Diesen Wert NICHT in Git committen, nur als Secret speichern.\n");
});
