import postgres from 'postgres'; // Read-only fingerprints: lets a deployment verify saved progress without logging it. if (!process.env.DB_URL) throw new Error('DB_URL is required'); const client = postgres(process.env.DB_URL, { max: 1 }); const tables = [ 'user_entries', 'user_games', 'catch_em_all_settings', 'pokemon_journeys', 'pokemon_catches', 'pokemon_milestones', 'pokemon_seen', 'tracker_progress', 'tracker_ranks', 'tracker_weapon_ranks', 'tracker_challenge_progress', 'osu_entries' ]; try { const result: Record = {}; for (const table of tables) { const [exists] = await client`select to_regclass(${'public.' + table}) is not null as present`; if (!exists.present) continue; const [row] = await client.unsafe(`select count(*)::int as rows, md5(coalesce(string_agg(record, E'\\n' order by record), '')) as fingerprint from (select row_to_json(t)::text as record from "${table}" t) s`); result[table] = row; } console.log(JSON.stringify(result, null, 2)); } finally { await client.end(); }