import { createControlPlaneDb } from "@/worker/db/d1/client"; import { getSubjectById } from "@/worker/db/d1/repository"; import type { AppContext } from "@/worker/types"; export function requireSession(c: AppContext) { const session = c.get("session"); if (!session) throw new Error("Session middleware did not run"); return session; } export async function subjectForSession(c: AppContext) { const session = requireSession(c); const subject = await getSubjectById(createControlPlaneDb(c.env.DAV_CONTROL_PLANE), session.subjectId); if (!subject || subject.storageId !== session.storageId) return null; return subject; } export function msToIso(value: number | null | undefined): string | null { return value === null || value === undefined ? null : new Date(value).toISOString(); }