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