UNPKG

zephyr-agent

Version:
93 lines (92 loc) • 3.67 kB
"use strict"; var __webpack_require__ = {}; (()=>{ __webpack_require__.d = (exports1, getters, values)=>{ var define = (defs, kind)=>{ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, { enumerable: true, [kind]: defs[key] }); }; define(getters, "get"); define(values, "value"); }; })(); (()=>{ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop); })(); (()=>{ __webpack_require__.r = (exports1)=>{ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, { value: 'Module' }); Object.defineProperty(exports1, '__esModule', { value: true }); }; })(); var __webpack_exports__ = {}; __webpack_require__.r(__webpack_exports__); __webpack_require__.d(__webpack_exports__, { AuthListener: ()=>AuthListener }); const external_eventsource_namespaceObject = require("eventsource"); const index_js_namespaceObject = require("../logging/index.js"); const external_errors_index_js_namespaceObject = require("../errors/index.js"); class AuthListener { workerUrl; constructor(workerUrl){ workerUrl.pathname = '/sse'; this.workerUrl = workerUrl; } async waitForToken(timeoutMs = 300000) { const sessionId = this.workerUrl.searchParams.get('sessionId'); if (!sessionId) throw new external_errors_index_js_namespaceObject.ZephyrError(external_errors_index_js_namespaceObject.ZeErrors.ERR_UNKNOWN, { message: 'Session ID is required' }); return new Promise((resolve, reject)=>{ const eventSource = new external_eventsource_namespaceObject.EventSource(this.workerUrl); const timeout = setTimeout(()=>{ eventSource.close(); reject(new external_errors_index_js_namespaceObject.ZephyrError(external_errors_index_js_namespaceObject.ZeErrors.ERR_UNKNOWN, { message: 'Auth timeout' })); }, timeoutMs); eventSource.onmessage = (event)=>{ try { const data = JSON.parse(event.data); if ('token' === data.type) { clearTimeout(timeout); eventSource.close(); const token = data.token ?? data.tokens?.access_token; resolve({ sessionId, token }); } else if ('error' === data.type) { clearTimeout(timeout); eventSource.close(); reject(new Error(data.message)); } else (0, index_js_namespaceObject.ze_debug)('AuthListener', `Unknown message type: ${data.type}`); } catch (err) { clearTimeout(timeout); eventSource.close(); reject(err); } }; eventSource.onerror = (error)=>{ clearTimeout(timeout); eventSource.close(); reject(error); }; }); } } exports.AuthListener = __webpack_exports__.AuthListener; for(var __rspack_i in __webpack_exports__)if (-1 === [ "AuthListener" ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i]; Object.defineProperty(exports, '__esModule', { value: true }); //# sourceMappingURL=sse.js.map