public
anord
read
Ledger
Why work hard when you can work easier?
Languages
Repository composition by tracked source files.
TypeScript
86%
CSS
10%
SQL
3%
Shell
1%
HTML
0%
import { Router } from "express";
import { z } from "zod";
import { env, isProduction } from "../../config/env.js";
import { initializeLedger, getSetupStatus } from "../../services/setup.js";
const setupSchema = z.object({
siteName: z.string().min(2),
brandColor: z.string().regex(/^#[0-9a-fA-F]{6}$/),
publicKnowledgeBaseEnabled: z.boolean(),
ownerEmail: z.string().email(),
ownerDisplayName: z.string().min(2),
password: z.string().min(8)
});
export const setupRouter = Router();
setupRouter.get("/status", async (_req, res) => {
const status = await getSetupStatus();
return res.json(status);
});
setupRouter.post("/initialize", async (req, res) => {
const input = setupSchema.parse(req.body);
const result = await initializeLedger(input);
res.cookie(env.SESSION_COOKIE_NAME, result.token, {
httpOnly: true,
sameSite: "lax",
secure: isProduction
});
return res.status(201).json({ user: result.user });
});