import { z } from "zod"; import { withErrors, ok, parseJson } from "@/lib/api"; import { requireUser } from "@/lib/auth"; import { importAll } from "@/lib/store"; const ImportSchema = z.object({ version: z.literal(1), app: z.string(), exportedAt: z.string().optional(), userId: z.string().optional(), data: z.object({ sources: z.array(z.unknown()).optional(), todos: z.array(z.unknown()).optional(), settings: z.record(z.string(), z.unknown()).optional(), editions: z.array(z.unknown()).optional(), }), }); // POST /api/import — restore from an export. Replaces sources + todos, merges settings. export const POST = withErrors(async (req) => { await requireUser(req); const body = await parseJson(req, ImportSchema); importAll(body.data); return ok({ ok: true }); });