{"version":3,"sources":["jsdelivr-header.js","/npm/selenium-federation@0.11.14/dist/main.js"],"names":[],"mappings":"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","file":"/npm/selenium-federation@0.11.14/dist/main.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/selenium-federation@0.11.14/dist/main.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n    o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n    if (mod && mod.__esModule) return mod;\n    var result = {};\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n    __setModuleDefault(result, mod);\n    return result;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n    return new (P || (P = Promise))(function (resolve, reject) {\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\n    });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst koa_1 = __importDefault(require(\"koa\"));\nconst router_1 = __importDefault(require(\"@koa/router\"));\nconst koa_bodyparser_1 = __importDefault(require(\"koa-bodyparser\"));\nconst koa_logger_1 = __importDefault(require(\"koa-logger\"));\nconst http_proxy_1 = require(\"http-proxy\");\nconst config_1 = require(\"./config\");\nconst Sentry = __importStar(require(\"@sentry/node\"));\nconst service_1 = require(\"./service\");\nconst controllers_1 = require(\"./controllers\");\nconst process_1 = require(\"./process\");\nconst axios_1 = __importDefault(require(\"axios\"));\n// Get started\n(() => __awaiter(void 0, void 0, void 0, function* () {\n    const config = yield (0, config_1.getAndInitConfig)();\n    if (config.sentry) {\n        Sentry.init({\n            dsn: config.sentry.dsn,\n            debug: config.sentry.debug,\n        });\n    }\n    let controller;\n    if ('local' === config.role) {\n        const processManager = new process_1.ProcessManager(config);\n        yield processManager.init();\n        const localService = service_1.LocalService.of(config, processManager);\n        localService.init();\n        const proxy = (0, http_proxy_1.createProxyServer)({});\n        controller = new controllers_1.LocalController(config, localService, proxy);\n    }\n    else if ('hub' === config.role) {\n        const hubService = new service_1.HubService(config, axios_1.default.create({}));\n        hubService.init();\n        controller = new controllers_1.HubController(hubService);\n    }\n    else {\n        throw Error(`Invalid role: ${config.role}`);\n    }\n    const wdHubRouter = new router_1.default();\n    wdHubRouter\n        // auto-cmd\n        .post('/session/:sessionId/auto-cmd', controller.onAutoCmdRequestToSession)\n        .post('/nodes/:nodeId/auto-cmd', controller.onAutoCmdRequestToNode)\n        // fs\n        .all('/session/:sessionId/download-directory/(.*)', controller.onFileRequestToSession)\n        // webdriver session\n        .post('/session', controller.onNewWebdriverSessionRequest)\n        .delete(['/session/:sessionId', '/session/:sessionId/'], controller.onDeleteWebdirverSessionRequest)\n        .all(['/session/:sessionId', '/session/:sessionId/(.*)'], controller.onWebdirverSessionCommandRqeust)\n        // data model\n        .post('/best-match', controller.onGetBestMatchRequest)\n        .get('/nodes', controller.onGetNodesRequest)\n        .post('/register', controller.onNodeRegiester);\n    const rootRouter = new router_1.default();\n    rootRouter\n        // hub endpoint\n        .use('/wd/hub', wdHubRouter.routes(), wdHubRouter.allowedMethods())\n        // utils\n        .post('/auto-cmd', controller.onAutoCmdRequest)\n        .get('/terminate', controller.onTermiateRequest)\n        .post('/provision', controller.onRunProvisionTask);\n    if (config.fileServer && !config.fileServer.disable) {\n        rootRouter.all('/fs/(.*)', (0, controllers_1.serveStatic)(config.fileServer.root));\n    }\n    const app = new koa_1.default();\n    app\n        .use((0, koa_bodyparser_1.default)())\n        .use(rootRouter.routes())\n        .use(rootRouter.allowedMethods())\n        .use((0, koa_logger_1.default)())\n        .use(controllers_1.onError);\n    // set host to a ipv4 address or else request ip will be ipv6 format\n    // https://nodejs.org/api/net.html#net_server_listen_port_host_backlog_callback\n    const server = app.listen(config.port, config.host, () => {\n        console.log(`selenium-federation is starting at port ${config.port}`);\n    });\n    // handle websocket connection\n    server.on('upgrade', controller.onWebsocketUpgrade);\n    // default is 5000, which will lead to ECONNRESET error in some client (got, for example)\n    // set to a larger value to workaround this problem,\n    server.keepAliveTimeout = 60e3;\n    // ref: https://stackoverflow.com/a/68922692/3099733, https://github.com/nodejs/node/issues/27363\n    server.headersTimeout = 60e3 + 1e3;\n}))();\n"]}