#!/usr/bin/env node
import fs from 'fs/promises';
const arg = process.argv[2];
const agreementUrl = arg || process.env.USER_AGREEMENT_URL;
const privacyUrl = process.env.USER_PRIVACY_URL || process.argv[3];
async function fetchAndSave(url, outRelative) {
if (!url) return false;
console.log('Fetching from:', url);
const res = await fetch(url);
if (!res.ok) {
console.error('Failed to fetch:', url, res.status, res.statusText);
return false;
}
let html = await res.text();
// Inject to preserve relative asset links
try {
const origin = new URL(url).origin;
if (!/\/i, `
`);
}
} catch (e) {
// ignore
}
const outPath = new URL(`../public/${outRelative}`, import.meta.url);
await fs.writeFile(outPath, html, 'utf8');
console.log(`Saved original HTML to public/${outRelative}`);
return true;
}
(async () => {
try {
let any = false;
if (agreementUrl) {
const ok = await fetchAndSave(agreementUrl, 'user-agreement-raw.html');
any = any || ok;
}
if (privacyUrl) {
const ok = await fetchAndSave(privacyUrl, 'privacy-policy-raw.html');
any = any || ok;
}
if (!any) {
console.log('No URL provided or all fetches failed. To fetch, set USER_AGREEMENT_URL and/or USER_PRIVACY_URL, or pass URLs as args.');
process.exit(0);
}
} catch (err) {
console.error('Error fetching or saving:', err);
process.exit(2);
}
})();