/** * Mint an API key. Prints the plaintext ONCE; only its hash is stored. * pnpm --filter @rareindex/api create-key -- --name "Research desk" --tier professional [--user usr_xxx] */ import { closeDb } from '@rareindex/database'; import { mintApiKey, TIERS, type Tier } from '../src/lib/keys.js'; const args = process.argv.slice(2); const get = (flag: string) => { const i = args.indexOf(flag); return i >= 0 ? args[i + 1] : undefined; }; const name = get('--name') ?? 'default'; const tier = (get('--tier') ?? 'free') as Tier; if (!(tier in TIERS)) { console.error(`unknown tier ${tier}; choose one of ${Object.keys(TIERS).join(', ')}`); process.exit(1); } const minted = await mintApiKey({ name, tier, userId: get('--user') ?? null }); console.log(`API key created (${minted.tier}, id ${minted.id}). Store it now — it will not be shown again:\n\n ${minted.key}\n`); await closeDb();