import { createServer } from "node:http"; import { Buffer } from "node:buffer"; const PORT = Number(process.env.PORT || 7860); const encoded = process.env.APP_CODE_B64; function sendSetupPage(response) { response.writeHead(503, { "Content-Type": "application/json; charset=utf-8", "Access-Control-Allow-Origin": "*" }); response.end(JSON.stringify({ error: "APP_CODE_B64 secret is not set.", hint: "Set APP_CODE_B64 in the Hugging Face Space secrets, then restart the Space." }, null, 2)); } if (!encoded) { createServer((_request, response) => sendSetupPage(response)).listen(PORT, "0.0.0.0", () => { console.log(`Secret loader waiting on 0.0.0.0:${PORT}`); }); } else { try { const source = Buffer.from(encoded, "base64").toString("utf8"); const moduleUrl = `data:text/javascript;base64,${Buffer.from(source, "utf8").toString("base64")}`; const mod = await import(moduleUrl); if (typeof mod.start !== "function") { throw new Error("Private module must export start(options)."); } await mod.start({ port: PORT }); } catch (error) { console.error("Failed to start private proxy:", error?.message || error); createServer((_request, response) => { response.writeHead(500, { "Content-Type": "application/json; charset=utf-8" }); response.end(JSON.stringify({ error: "Failed to start private proxy." })); }).listen(PORT, "0.0.0.0"); } }