{"version":3,"sources":["jsdelivr-header.js","/npm/ask-user-question-plus@1.0.2/dist/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;MCLO,uBACA,YAAa,iBACX,oBAAuB,YACvB,iBAAoB,cACtB,SAAU,cACR,kBAAqB,aACrB,qBAAwB,yBACxB,qBAAwB,kBACjC,MAAM,UAAY,KAAK,QAAQ,0BAA0B,MACnD,eAAiB,CACnB,KAAM,KACN,QAAS,KAMb,SAAS,cACL,MAAM,EAAS,IAER,gBAGP,GAAI,QAAQ,IAAI,KAAM,CAClB,MAAM,EAAO,SAAS,QAAQ,IAAI,KAAM,KACnC,MAAM,IAAS,EAAO,GAAK,GAAQ,MACpC,EAAO,KAAO,EAGd,QAAQ,MAAM,+CAA+C,QAAQ,IAAI,OAEjF,CACA,GAAI,QAAQ,IAAI,QAAS,CACrB,MAAM,EAAU,SAAS,QAAQ,IAAI,QAAS,KACzC,MAAM,IAAY,EAAU,EAC7B,EAAO,QAAU,EAGjB,QAAQ,MAAM,kDAAkD,QAAQ,IAAI,UAEpF,CAEA,MAAM,EAAO,QAAQ,KAAK,MAAM,GAChC,IAAK,MAAM,KAAO,EACd,GAAI,EAAI,WAAW,WAAY,CAC3B,MAAM,EAAO,SAAS,EAAI,MAAM,KAAK,GAAI,KACpC,MAAM,IAAS,EAAO,GAAK,GAAQ,MACpC,EAAO,KAAO,EAGd,QAAQ,MAAM,qCAAqC,IAE3D,MACK,GAAI,EAAI,WAAW,cAAe,CACnC,MAAM,EAAU,SAAS,EAAI,MAAM,KAAK,GAAI,KACvC,MAAM,IAAY,EAAU,EAC7B,EAAO,QAAU,EAGjB,QAAQ,MAAM,wCAAwC,IAE9D,CAEJ,OAAO,CACX,CAEA,eAAe,OACX,QAAQ,MAAM,2BACd,IACI,MAAM,EAAS,cACf,QAAQ,MAAM,yBACd,QAAQ,MAAM,kBAAkB,EAAO,QACvC,QAAQ,MAAM,qBAAqB,EAAO,cAAc,EAAO,QAAU,SAEzE,MAAM,EAAM,UAEZ,EAAI,IAAI,QAAQ,QAChB,EAAI,IAAI,QAAQ,OAAO,KAAK,KAAK,UAAW,eAE5C,EAAI,IAAI,WAAW,CAAC,EAAM,KACtB,EAAI,KAAK,CACL,OAAQ,KACR,WAAW,IAAI,MAAO,cACtB,eAAgB,EAAU,mBAC5B,IAGN,MAAM,EAAS,aAAa,GAEtB,EAAM,IAAI,gBAAgB,CAC5B,SACA,KAAM,QAGJ,EAAY,IAAI,iBAAiB,EAAK,EAAO,QAAS,EAAO,MAC7D,EAAa,IAAI,iBAAiB,GAExC,EAAI,KAAK,QAAQ,MAAO,EAAK,WACnB,EAAW,cAAc,EAAK,EAAI,IAE5C,EAAI,IAAI,QAAQ,CAAC,EAAM,KACnB,EAAI,OAAO,KAAK,KAAK,CACjB,QAAS,MACT,MAAO,CACH,MAAO,KACP,QAAS,iCAEb,GAAI,MACN,IAEN,EAAI,OAAO,QAAQ,CAAC,EAAM,KACtB,EAAI,OAAO,KAAK,KAAK,CACjB,QAAS,MACT,MAAO,CACH,MAAO,KACP,QAAS,iCAEb,GAAI,MACN,IAGN,EAAO,OAAO,EAAO,MAAM,KACvB,QAAQ,MAAM,mCAAmC,EAAO,QACxD,QAAQ,MAAM,mCAAmC,EAAO,QACxD,QAAQ,MAAM,sCAAsC,EAAO,WAC3D,QAAQ,MAAM,kCAAkC,EAAO,YACvD,QAAQ,MAAM,qCAAqC,EAAO,cAAc,IAG5E,MAAM,EAAW,UACb,QAAQ,MAAM,iCACR,EAAU,UAChB,EAAO,OAAM,KACT,QAAQ,MAAM,wBACd,QAAQ,KAAK,EAAE,GACjB,EAEN,QAAQ,GAAG,SAAU,GACrB,QAAQ,GAAG,UAAW,EAC1B,CACA,MAAO,GACH,QAAQ,MAAM,yBAA0B,GACxC,QAAQ,KAAK,EACjB,CACJ,CACA","file":"/npm/ask-user-question-plus@1.0.2/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/ask-user-question-plus@1.0.2/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","#!/usr/bin/env node\nimport \"dotenv/config\"; // Load .env file\nimport express from \"express\";\nimport { WebSocketServer } from \"ws\";\nimport { createServer } from \"http\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { WebSocketService } from \"./ws-service.js\";\nimport { MCPServerService } from \"./mcp-server.js\";\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst DEFAULT_CONFIG = {\n    PORT: 3456,\n    TIMEOUT: 600000, // 10 minutes\n};\n/**\n * Parse configuration from environment variables and command line arguments\n * Priority: CLI args > Environment variables > Defaults\n */\nfunction parseConfig() {\n    const config = {\n        // 1. Defaults\n        ...DEFAULT_CONFIG,\n    };\n    // 2. Environment variables\n    if (process.env.PORT) {\n        const port = parseInt(process.env.PORT, 10);\n        if (!isNaN(port) && port > 0 && port <= 65535) {\n            config.PORT = port;\n        }\n        else {\n            console.error(`[Config] Invalid PORT environment variable: ${process.env.PORT}`);\n        }\n    }\n    if (process.env.TIMEOUT) {\n        const timeout = parseInt(process.env.TIMEOUT, 10);\n        if (!isNaN(timeout) && timeout > 0) {\n            config.TIMEOUT = timeout;\n        }\n        else {\n            console.error(`[Config] Invalid TIMEOUT environment variable: ${process.env.TIMEOUT}`);\n        }\n    }\n    // 3. Command line arguments (override environment variables)\n    const args = process.argv.slice(2);\n    for (const arg of args) {\n        if (arg.startsWith(\"--port=\")) {\n            const port = parseInt(arg.split(\"=\")[1], 10);\n            if (!isNaN(port) && port > 0 && port <= 65535) {\n                config.PORT = port;\n            }\n            else {\n                console.error(`[Config] Invalid --port argument: ${arg}`);\n            }\n        }\n        else if (arg.startsWith(\"--timeout=\")) {\n            const timeout = parseInt(arg.split(\"=\")[1], 10);\n            if (!isNaN(timeout) && timeout > 0) {\n                config.TIMEOUT = timeout;\n            }\n            else {\n                console.error(`[Config] Invalid --timeout argument: ${arg}`);\n            }\n        }\n    }\n    return config;\n}\n// --- Main ---\nasync function main() {\n    console.error(\"=== Server Starting ===\");\n    try {\n        const config = parseConfig();\n        console.error(`[Main] Configuration:`);\n        console.error(`[Main] - Port: ${config.PORT}`);\n        console.error(`[Main] - Timeout: ${config.TIMEOUT}ms (${config.TIMEOUT / 1000}s)`);\n        // Create Express app\n        const app = express();\n        // Middleware\n        app.use(express.json());\n        app.use(express.static(path.join(__dirname, \"../public\")));\n        // Health check endpoint\n        app.get(\"/health\", (_req, res) => {\n            res.json({\n                status: \"ok\",\n                timestamp: new Date().toISOString(),\n                activeSessions: wsService.getSessionCount(),\n            });\n        });\n        // Create HTTP server\n        const server = createServer(app);\n        // Create WebSocket server with /ws path\n        const wss = new WebSocketServer({\n            server,\n            path: \"/ws\",\n        });\n        // Initialize services\n        const wsService = new WebSocketService(wss, config.TIMEOUT, config.PORT);\n        const mcpService = new MCPServerService(wsService);\n        // MCP routes\n        app.post(\"/mcp\", async (req, res) => {\n            await mcpService.handleRequest(req, res);\n        });\n        app.get(\"/mcp\", (_req, res) => {\n            res.status(405).json({\n                jsonrpc: \"2.0\",\n                error: {\n                    code: -32000,\n                    message: \"Method not allowed. Use POST.\",\n                },\n                id: null,\n            });\n        });\n        app.delete(\"/mcp\", (_req, res) => {\n            res.status(405).json({\n                jsonrpc: \"2.0\",\n                error: {\n                    code: -32000,\n                    message: \"Method not allowed. Use POST.\",\n                },\n                id: null,\n            });\n        });\n        // Start server\n        server.listen(config.PORT, () => {\n            console.error(`[Main] Server listening on port ${config.PORT}`);\n            console.error(`[Main] - HTTP: http://localhost:${config.PORT}`);\n            console.error(`[Main] - WebSocket: ws://localhost:${config.PORT}/ws`);\n            console.error(`[Main] - MCP: http://localhost:${config.PORT}/mcp`);\n            console.error(`[Main] - Health: http://localhost:${config.PORT}/health`);\n        });\n        // Graceful shutdown\n        const shutdown = async () => {\n            console.error(\"[Main] Shutting down...\");\n            await wsService.cleanup();\n            server.close(() => {\n                console.error(\"[Main] Server closed\");\n                process.exit(0);\n            });\n        };\n        process.on(\"SIGINT\", shutdown);\n        process.on(\"SIGTERM\", shutdown);\n    }\n    catch (error) {\n        console.error(\"[Main] Startup failed:\", error);\n        process.exit(1);\n    }\n}\nmain();\n"]}