import { Env } from '../types'; import { StorageService } from '../services/storage'; import { jsonResponse, htmlResponse, errorResponse } from '../utils/response'; // Setup page HTML (single-file, no external assets) const setupPageHTML = ` NodeWarden
`; // GET / - Setup page export async function handleSetupPage(request: Request, env: Env): Promise { const storage = new StorageService(env.VAULT); const disabled = await storage.isSetupDisabled(); if (disabled) { return new Response(null, { status: 404 }); } return htmlResponse(setupPageHTML); } // GET /setup/status export async function handleSetupStatus(request: Request, env: Env): Promise { const storage = new StorageService(env.VAULT); const registered = await storage.isRegistered(); const disabled = await storage.isSetupDisabled(); return jsonResponse({ registered, disabled }); } // POST /setup/disable export async function handleDisableSetup(request: Request, env: Env): Promise { const storage = new StorageService(env.VAULT); const registered = await storage.isRegistered(); if (!registered) { return errorResponse('Registration required', 403); } await storage.setSetupDisabled(); return jsonResponse({ success: true }); }