import { withErrors, ok } from "@/lib/api"; import { requireUser } from "@/lib/auth"; import { listSources } from "@/lib/store"; import { currentState, ensureFresh, isSourceStale } from "@/lib/refresh"; // GET /api/sources — all sources with state. Each item: // { source, hasModule, configured, snapshot, stale }. // ?fresh=1 → refresh stale sources first (parallel) // ?force=1 → refresh every source first (parallel) export const GET = withErrors(async (req) => { await requireUser(req); const params = new URL(req.url).searchParams; const force = params.get("force") === "1"; const fresh = force || params.get("fresh") === "1"; const sources = listSources(); if (fresh) { await Promise.all( sources.map((s) => ensureFresh(s, { force })), ); } const states = listSources().map((s) => ({ ...currentState(s), stale: isSourceStale(s), })); return ok({ sources: states }); });