UNPKG

@buildappolis/env-manager

Version:

Enterprise-grade environment variable management system with encryption, snapshots, and validation

132 lines (127 loc) 4.52 kB
import { g as getDatabase } from '../../chunks/session_DKC9ty2U.mjs'; import { D as DraftManager } from '../../chunks/draft-manager_Dh2gUtEF.mjs'; export { renderers } from '../../renderers.mjs'; const GET = async ({ url }) => { try { const projectPath = url.searchParams.get("projectPath"); const database = getDatabase(projectPath || void 0); if (!database.isAuthenticated()) { return new Response(JSON.stringify({ error: "Unauthorized" }), { status: 401, headers: { "Content-Type": "application/json" } }); } const draftManager = new DraftManager(database); const draft = draftManager.getCurrentDraft(); const variables = draftManager.getDraftVariables(); const changes = draftManager.getDraftChanges(); return new Response(JSON.stringify({ draft, variables, changes, hasDraft: draftManager.hasDraft() }), { status: 200, headers: { "Content-Type": "application/json" } }); } catch (error) { console.error("Failed to load draft:", error); return new Response(JSON.stringify({ error: "Failed to load draft" }), { status: 500, headers: { "Content-Type": "application/json" } }); } }; const POST = async ({ request }) => { try { const { projectPath, action, ...data } = await request.json(); const database = getDatabase(projectPath || void 0); if (!database.isAuthenticated()) { return new Response(JSON.stringify({ error: "Unauthorized" }), { status: 401, headers: { "Content-Type": "application/json" } }); } const draftManager = new DraftManager(database); switch (action) { case "create": const draft = draftManager.createDraft(data.description, data.author); return new Response(JSON.stringify({ success: true, draft }), { status: 200, headers: { "Content-Type": "application/json" } }); case "add_variable": const variable = { name: data.variable.name, value: data.variable.value || "", category: data.variable.category || "other", description: data.variable.description || "", sensitive: data.variable.sensitive || false, encrypted: false, createdAt: (/* @__PURE__ */ new Date()).toISOString(), updatedAt: (/* @__PURE__ */ new Date()).toISOString(), branch: data.variable.branch }; draftManager.addVariableToDraft(variable, data.variable.changeType || "create"); return new Response(JSON.stringify({ success: true }), { status: 200, headers: { "Content-Type": "application/json" } }); case "update_variable": draftManager.updateDraftVariable(data.name, data.updates); return new Response(JSON.stringify({ success: true }), { status: 200, headers: { "Content-Type": "application/json" } }); case "remove_variable": draftManager.removeDraftVariable(data.name); return new Response(JSON.stringify({ success: true }), { status: 200, headers: { "Content-Type": "application/json" } }); case "publish": const version = await draftManager.publishDraft(); return new Response(JSON.stringify({ success: true, version, message: "Draft published successfully" }), { status: 200, headers: { "Content-Type": "application/json" } }); case "discard": draftManager.discardDraft(); return new Response(JSON.stringify({ success: true, message: "Draft discarded" }), { status: 200, headers: { "Content-Type": "application/json" } }); default: return new Response(JSON.stringify({ error: "Invalid action" }), { status: 400, headers: { "Content-Type": "application/json" } }); } } catch (error) { console.error("Draft operation failed:", error); return new Response(JSON.stringify({ error: "Operation failed", details: error instanceof Error ? error.message : "Unknown error" }), { status: 500, headers: { "Content-Type": "application/json" } }); } }; const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, GET, POST }, Symbol.toStringTag, { value: 'Module' })); const page = () => _page; export { page };