/** * seed-auth-recipes.ts * * 將 auth-recipe-seeds.ts 中定義的 20 個 auth recipe 上傳至 cypher.arcrun.dev。 * * 執行: * npx tsx scripts/seed-auth-recipes.ts * * 環境變數: * ARCRUN_API_URL - 預設 https://cypher.arcrun.dev */ import { AUTH_RECIPE_SEEDS } from '../src/lib/auth-recipe-seeds.js'; const BASE_URL = process.env.ARCRUN_API_URL ?? 'https://cypher.arcrun.dev'; async function main() { console.log(`\n Seeding ${AUTH_RECIPE_SEEDS.length} auth recipes → ${BASE_URL}\n`); let ok = 0; let fail = 0; for (const recipe of AUTH_RECIPE_SEEDS) { process.stdout.write(` ${recipe.service.padEnd(24)} `); try { const res = await fetch(`${BASE_URL}/auth-recipes`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(recipe), }); if (res.ok) { console.log(`✓`); ok++; } else { const err = await res.text().catch(() => ''); console.log(`✗ HTTP ${res.status}: ${err.slice(0, 100)}`); fail++; } } catch (e) { console.log(`✗ ${e instanceof Error ? e.message : String(e)}`); fail++; } } console.log(`\n 完成:${ok} 成功,${fail} 失敗\n`); if (fail > 0) process.exit(1); } main();