@webex/calling 3.12.0-mobius-socket.17 → 3.12.0-mobius-socket.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/CallingClient/utils/request.js +6 -3
  2. package/dist/CallingClient/utils/request.js.map +1 -1
  3. package/dist/CallingClient/utils/request.test.js +2 -2
  4. package/dist/CallingClient/utils/request.test.js.map +1 -1
  5. package/dist/CallingClient/utils/types.js.map +1 -1
  6. package/dist/SDKConnector/types.js.map +1 -1
  7. package/dist/mobius-socket/config.js +7 -44
  8. package/dist/mobius-socket/config.js.map +1 -1
  9. package/dist/mobius-socket/errors.js +25 -21
  10. package/dist/mobius-socket/errors.js.map +1 -1
  11. package/dist/mobius-socket/index.js +0 -44
  12. package/dist/mobius-socket/index.js.map +1 -1
  13. package/dist/mobius-socket/mobius-socket-events.test.js +20 -48
  14. package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -1
  15. package/dist/mobius-socket/mobius-socket.js +302 -701
  16. package/dist/mobius-socket/mobius-socket.js.map +1 -1
  17. package/dist/mobius-socket/mobius-socket.test.js +435 -718
  18. package/dist/mobius-socket/mobius-socket.test.js.map +1 -1
  19. package/dist/mobius-socket/socket/socket-base.js +70 -78
  20. package/dist/mobius-socket/socket/socket-base.js.map +1 -1
  21. package/dist/mobius-socket/socket.test.js +36 -61
  22. package/dist/mobius-socket/socket.test.js.map +1 -1
  23. package/dist/mobius-socket/types.js +7 -0
  24. package/dist/mobius-socket/types.js.map +1 -0
  25. package/dist/module/CallingClient/utils/request.js +3 -2
  26. package/dist/module/mobius-socket/config.js +7 -10
  27. package/dist/module/mobius-socket/errors.js +17 -0
  28. package/dist/module/mobius-socket/index.js +0 -3
  29. package/dist/module/mobius-socket/mobius-socket.js +211 -401
  30. package/dist/module/mobius-socket/socket/socket-base.js +64 -69
  31. package/dist/module/mobius-socket/types.js +1 -0
  32. package/dist/types/CallingClient/utils/request.d.ts.map +1 -1
  33. package/dist/types/CallingClient/utils/types.d.ts +1 -1
  34. package/dist/types/CallingClient/utils/types.d.ts.map +1 -1
  35. package/dist/types/SDKConnector/types.d.ts +15 -0
  36. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  37. package/dist/types/mobius-socket/config.d.ts +7 -8
  38. package/dist/types/mobius-socket/config.d.ts.map +1 -1
  39. package/dist/types/mobius-socket/errors.d.ts +7 -0
  40. package/dist/types/mobius-socket/errors.d.ts.map +1 -1
  41. package/dist/types/mobius-socket/index.d.ts +3 -5
  42. package/dist/types/mobius-socket/index.d.ts.map +1 -1
  43. package/dist/types/mobius-socket/mobius-socket.d.ts +26 -37
  44. package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -1
  45. package/dist/types/mobius-socket/socket/socket-base.d.ts +10 -10
  46. package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -1
  47. package/dist/types/mobius-socket/types.d.ts +21 -0
  48. package/dist/types/mobius-socket/types.d.ts.map +1 -0
  49. package/package.json +1 -1
@@ -158,7 +158,7 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
158
158
  key: "disconnectFromMobiusSocket",
159
159
  value: (function () {
160
160
  var _disconnectFromMobiusSocket = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(options) {
161
- var logContext, _this$metricManager3, _this$metricManager4, _t2;
161
+ var logContext, wssUrl, _this$metricManager3, _this$metricManager4, _t2;
162
162
  return _regenerator.default.wrap(function (_context2) {
163
163
  while (1) switch (_context2.prev = _context2.next) {
164
164
  case 0:
@@ -167,12 +167,13 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
167
167
  method: _constants2.METHODS.DISCONNECT_FROM_MOBIUS_SOCKET
168
168
  };
169
169
  _Logger.default.info('Disconnecting from Mobius WebSocket', logContext);
170
+ wssUrl = this.mobiusSocket.getConnectedWebSocketUrl();
170
171
  _context2.prev = 1;
171
172
  _context2.next = 2;
172
173
  return this.mobiusSocket.disconnect(options);
173
174
  case 2:
174
175
  _Logger.default.log('Mobius WebSocket disconnected successfully', logContext);
175
- (_this$metricManager3 = this.metricManager) === null || _this$metricManager3 === void 0 ? void 0 : _this$metricManager3.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.DISCONNECT, _types.METRIC_TYPE.BEHAVIORAL);
176
+ (_this$metricManager3 = this.metricManager) === null || _this$metricManager3 === void 0 ? void 0 : _this$metricManager3.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET, _types.MOBIUS_SOCKET_ACTION.DISCONNECT, _types.METRIC_TYPE.BEHAVIORAL, wssUrl);
176
177
  _context2.next = 4;
177
178
  break;
178
179
  case 3:
@@ -180,7 +181,9 @@ var APIRequest = exports.APIRequest = /*#__PURE__*/function () {
180
181
  _t2 = _context2["catch"](1);
181
182
  // silent error - no need to throw an error
182
183
  _Logger.default.warn("Mobius WebSocket disconnection failed: ".concat(String(_t2)), logContext);
183
- (_this$metricManager4 = this.metricManager) === null || _this$metricManager4 === void 0 ? void 0 : _this$metricManager4.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types.MOBIUS_SOCKET_ACTION.DISCONNECT, _types.METRIC_TYPE.BEHAVIORAL, undefined, undefined, String(_t2));
184
+ (_this$metricManager4 = this.metricManager) === null || _this$metricManager4 === void 0 ? void 0 : _this$metricManager4.submitMobiusSocketMetric(_types.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types.MOBIUS_SOCKET_ACTION.DISCONNECT, _types.METRIC_TYPE.BEHAVIORAL, wssUrl, undefined,
185
+ // add trackingId
186
+ String(_t2));
184
187
  case 4:
185
188
  case "end":
186
189
  return _context2.stop();
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","require","_mobiusSocket","_Logger","_interopRequireDefault","_mobiusSocketMapper","_constants","_wsFeatureFlag","_constants2","_Metrics","_types","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","normalizeWsResponse","wsResponse","_ref","_ref2","statusCode","body","data","undefined","headers","trackingid","trackingId","metadata","normalizeWsError","err","_ref3","_wsErr$response","_ref4","_wsErr$trackingId","_wsErr$response2","_ref5","_wsErr$response3","wsErr","response","APIRequest","exports","config","_classCallCheck2","logContext","file","REQUEST_FILE","method","METHODS","CONSTRUCTOR","webex","log","error","Error","isMobiusSocketEnabled","isMobiusWssEnabled","mobiusSocket","getMobiusSocketInstance","metricManager","getMetricManager","info","concat","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","_this$metricManager","_this$metricManager2","_t","wrap","_context","prev","next","CONNECT_TO_MOBIUS_SOCKET","isConnected","abrupt","getConnectedWebSocketUrl","connect","submitMobiusSocketMetric","METRIC_EVENT","MOBIUS_SOCKET","MOBIUS_SOCKET_ACTION","CONNECT","METRIC_TYPE","BEHAVIORAL","warn","String","MOBIUS_SOCKET_ERROR","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_this$metricManager3","_this$metricManager4","_t2","_context2","DISCONNECT_FROM_MOBIUS_SOCKET","disconnect","DISCONNECT","disconnectFromMobiusSocket","_x2","_makeRequest","_callee3","request","socketType","isSupplementaryService","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_t12","_t13","_t14","_context3","MAKE_REQUEST","uuid","deriveMobiusSocketMessageType","uri","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","isSupplementaryServiceMessageType","CALLING_USER_AGENT","credentials","getUserToken","sent","call","userAgent","authorization","sendWssRequest","type","makeRequest","_x3","registerMobiusSocketListener","cb","_this$metricManager5","REGISTER_MOBIUS_SOCKET_LISTENER","on","_data$data$eventType","_data$data","trace","eventType","LISTENER_REGISTERED","unregisterMobiusSocketListener","_this$metricManager6","UNREGISTER_MOBIUS_SOCKET_LISTENER","off","LISTENER_UNREGISTERED","getInstance","instance","resetInstance","createAPIRequest"],"sources":["request.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {getMobiusSocketInstance} from '../../mobius-socket';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {APIRequestConfig, APIRequestOptions, MobiusAsyncEvent, MobiusSocketResponse} from './types';\nimport {\n deriveMobiusSocketMessageType,\n isSupplementaryServiceMessageType,\n} from './mobiusSocketMapper';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {CALLING_USER_AGENT, METHODS, REQUEST_FILE} from '../constants';\nimport {getMetricManager} from '../../Metrics';\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, MOBIUS_SOCKET_ACTION} from '../../Metrics/types';\n\n/**\n * Converts a MobiusSocketResponse into the WebexRequestPayload shape that\n * all callers (registration, call, keepalive error-handlers) expect.\n */\nfunction normalizeWsResponse(wsResponse: MobiusSocketResponse): WebexRequestPayload {\n return {\n statusCode: wsResponse.statusCode,\n body: (wsResponse.data as object) ?? undefined,\n headers: {\n trackingid: wsResponse.trackingId,\n ...((wsResponse.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * Converts a MobiusSocketResponseError rejection into a WebexRequestPayload-shaped\n * error so handleRegistrationErrors / handleCallErrors can process it identically.\n */\nfunction normalizeWsError(err: unknown): WebexRequestPayload {\n const wsErr = err as {\n statusCode?: number;\n statusMessage?: string;\n response?: MobiusSocketResponse;\n trackingId?: string;\n };\n\n return {\n statusCode: wsErr.statusCode,\n body: (wsErr.response?.data as object) ?? undefined,\n headers: {\n trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',\n ...((wsErr.response?.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * APIRequest routes Mobius traffic over HTTP (`webex.request`) or the Mobius WebSocket path\n * (`mobiusSocketRequest`). `isMobiusSocketEnabled` is set in the constructor from WDM\n * `webrtc-calling-over-ws` and/or SDK config (interim until WDM is fully in prod).\n */\nexport class APIRequest {\n // eslint-disable-next-line no-use-before-define\n private static instance: APIRequest | undefined;\n private isMobiusSocketEnabled: boolean;\n private webex: WebexSDK;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n private metricManager: IMetricManager;\n\n static getInstance(config: APIRequestConfig): APIRequest {\n if (!APIRequest.instance) {\n APIRequest.instance = new APIRequest(config);\n }\n\n return APIRequest.instance;\n }\n\n static resetInstance(): void {\n APIRequest.instance = undefined;\n }\n\n /**\n * @param config - Webex instance plus optional SDK Mobius-socket override\n */\n constructor(config: APIRequestConfig) {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONSTRUCTOR,\n };\n\n if (!config.webex) {\n log.error('APIRequest instantiation failed: WebexSDK instance is required', logContext);\n throw new Error('WebexSDK instance is required');\n }\n\n this.webex = config.webex;\n this.isMobiusSocketEnabled = isMobiusWssEnabled(config.webex) || false;\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n this.metricManager = getMetricManager(this.webex);\n\n log.info(\n `APIRequest initialized with transport: ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'}`,\n logContext\n );\n }\n\n /**\n * Whether the Mobius WebSocket transport is active for this instance.\n */\n public isSocketEnabled(): boolean {\n return this.isMobiusSocketEnabled;\n }\n\n /**\n * Ensures the Mobius WebSocket is connected before sending API requests.\n * If the socket is already connected, resolves immediately. Otherwise,\n * initiates a new connection to the provided WebSocket URL.\n * On failure, throws a normalized WebexRequestPayload-shaped error.\n *\n * @param wssUrl - The Mobius WebSocket URL to connect to.\n */\n public async connectToMobiusSocket(wssUrl: string): Promise<string | undefined> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n if (this.mobiusSocket.isConnected()) {\n log.info('Mobius WebSocket already connected', logContext);\n\n return this.mobiusSocket.getConnectedWebSocketUrl();\n }\n\n log.info('Mobius WebSocket not connected, initiating connection', logContext);\n\n try {\n await this.mobiusSocket.connect(wssUrl);\n log.log('Mobius WebSocket connected successfully', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl\n );\n\n return wssUrl;\n } catch (err) {\n log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl,\n undefined,\n String(err)\n );\n\n throw normalizeWsError(err);\n }\n }\n\n /**\n * Disconnects the default session from the Mobius WebSocket.\n */\n public async disconnectFromMobiusSocket(options?: {code: number; reason: string}): Promise<void> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.DISCONNECT_FROM_MOBIUS_SOCKET,\n };\n\n log.info('Disconnecting from Mobius WebSocket', logContext);\n\n try {\n await this.mobiusSocket.disconnect(options);\n log.log('Mobius WebSocket disconnected successfully', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL\n );\n } catch (err) {\n // silent error - no need to throw an error\n log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n undefined,\n String(err)\n );\n }\n }\n\n /**\n * Makes a request using HTTP or WebSocket transport per the flag set in the constructor.\n * When using WebSocket, the response is normalized to the WebexRequestPayload shape\n * so callers do not need to know which transport was used.\n * @param request - Request options (uri, method, body, headers, service)\n * @returns Promise resolving to WebexRequestPayload\n */\n public async makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.MAKE_REQUEST,\n };\n log.info(`Dispatching request via ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'} `, logContext);\n\n if (this.isMobiusSocketEnabled) {\n const trackingId = `webex-js-sdk_${uuid()}`;\n const socketType = deriveMobiusSocketMessageType(request.uri, request.method);\n\n if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {\n log.error(\n `Unknown Mobius Socket message type for uri: ${request.uri}, httpMethod: ${request.method}`,\n logContext\n );\n throw new Error(`Unknown Mobius Socket message type: ${socketType}`);\n }\n\n const isSupplementaryService = isSupplementaryServiceMessageType(socketType);\n\n try {\n const wsResponse: MobiusSocketResponse = await this.mobiusSocket.sendWssRequest({\n type: socketType,\n trackingId,\n metadata: {\n ...request.headers,\n userAgent: CALLING_USER_AGENT,\n authorization: `${\n (isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''\n }`,\n },\n data: request.body,\n });\n\n log.log(\n `WSS request succeeded - socketType: ${socketType}, trackingId: ${trackingId}, statusCode: ${wsResponse.statusCode}`,\n logContext\n );\n\n return normalizeWsResponse(wsResponse);\n } catch (err) {\n log.error(\n `WSS request failed - socketType: ${socketType}, trackingId: ${trackingId}, error: ${String(\n err\n )}`,\n logContext\n );\n throw normalizeWsError(err);\n }\n }\n\n return this.webex.request(request) as Promise<WebexRequestPayload>;\n }\n\n public registerMobiusSocketListener(cb: (data?: MobiusAsyncEvent) => void): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Attaching Mobius async event listener', logContext);\n\n this.mobiusSocket.on('event:async_event', (data: MobiusAsyncEvent) => {\n log.trace(\n `Mobius async event received - eventType: ${data?.data?.eventType ?? 'unknown'}`,\n logContext\n );\n cb(data);\n });\n\n log.log('Mobius async event listener attached', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n }\n\n public unregisterMobiusSocketListener(): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Detaching Mobius async event listener', logContext);\n this.mobiusSocket.off('event:async_event');\n log.log('Mobius async event listener detached', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n }\n}\n\n/**\n * Factory function to create a singleton APIRequest instance\n * @param config - Configuration object for APIRequest\n * @returns APIRequest instance\n */\nexport const createAPIRequest = (config: APIRequestConfig): APIRequest =>\n APIRequest.getInstance(config);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","require","_mobiusSocket","_Logger","_interopRequireDefault","_mobiusSocketMapper","_constants","_wsFeatureFlag","_constants2","_Metrics","_types","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","normalizeWsResponse","wsResponse","_ref","_ref2","statusCode","body","data","undefined","headers","trackingid","trackingId","metadata","normalizeWsError","err","_ref3","_wsErr$response","_ref4","_wsErr$trackingId","_wsErr$response2","_ref5","_wsErr$response3","wsErr","response","APIRequest","exports","config","_classCallCheck2","logContext","file","REQUEST_FILE","method","METHODS","CONSTRUCTOR","webex","log","error","Error","isMobiusSocketEnabled","isMobiusWssEnabled","mobiusSocket","getMobiusSocketInstance","metricManager","getMetricManager","info","concat","_createClass2","key","value","isSocketEnabled","_connectToMobiusSocket","_asyncToGenerator2","_regenerator","mark","_callee","wssUrl","_this$metricManager","_this$metricManager2","_t","wrap","_context","prev","next","CONNECT_TO_MOBIUS_SOCKET","isConnected","abrupt","getConnectedWebSocketUrl","connect","submitMobiusSocketMetric","METRIC_EVENT","MOBIUS_SOCKET","MOBIUS_SOCKET_ACTION","CONNECT","METRIC_TYPE","BEHAVIORAL","warn","String","MOBIUS_SOCKET_ERROR","stop","connectToMobiusSocket","_x","_disconnectFromMobiusSocket","_callee2","options","_this$metricManager3","_this$metricManager4","_t2","_context2","DISCONNECT_FROM_MOBIUS_SOCKET","disconnect","DISCONNECT","disconnectFromMobiusSocket","_x2","_makeRequest","_callee3","request","socketType","isSupplementaryService","_t3","_t4","_t5","_t6","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_t12","_t13","_t14","_context3","MAKE_REQUEST","uuid","deriveMobiusSocketMessageType","uri","MOBIUS_SOCKET_MESSAGE_TYPE","UNKNOWN","isSupplementaryServiceMessageType","CALLING_USER_AGENT","credentials","getUserToken","sent","call","userAgent","authorization","sendWssRequest","type","makeRequest","_x3","registerMobiusSocketListener","cb","_this$metricManager5","REGISTER_MOBIUS_SOCKET_LISTENER","on","_data$data$eventType","_data$data","trace","eventType","LISTENER_REGISTERED","unregisterMobiusSocketListener","_this$metricManager6","UNREGISTER_MOBIUS_SOCKET_LISTENER","off","LISTENER_UNREGISTERED","getInstance","instance","resetInstance","createAPIRequest"],"sources":["request.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {getMobiusSocketInstance} from '../../mobius-socket';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\nimport log from '../../Logger';\nimport {APIRequestConfig, APIRequestOptions, MobiusAsyncEvent, MobiusSocketResponse} from './types';\nimport {\n deriveMobiusSocketMessageType,\n isSupplementaryServiceMessageType,\n} from './mobiusSocketMapper';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {CALLING_USER_AGENT, METHODS, REQUEST_FILE} from '../constants';\nimport {getMetricManager} from '../../Metrics';\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, MOBIUS_SOCKET_ACTION} from '../../Metrics/types';\n\n/**\n * Converts a MobiusSocketResponse into the WebexRequestPayload shape that\n * all callers (registration, call, keepalive error-handlers) expect.\n */\nfunction normalizeWsResponse(wsResponse: MobiusSocketResponse): WebexRequestPayload {\n return {\n statusCode: wsResponse.statusCode,\n body: (wsResponse.data as object) ?? undefined,\n headers: {\n trackingid: wsResponse.trackingId,\n ...((wsResponse.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * Converts a MobiusSocketResponseError rejection into a WebexRequestPayload-shaped\n * error so handleRegistrationErrors / handleCallErrors can process it identically.\n */\nfunction normalizeWsError(err: unknown): WebexRequestPayload {\n const wsErr = err as {\n statusCode?: number;\n statusMessage?: string;\n response?: MobiusSocketResponse;\n trackingId?: string;\n };\n\n return {\n statusCode: wsErr.statusCode,\n body: (wsErr.response?.data as object) ?? undefined,\n headers: {\n trackingid: wsErr.trackingId ?? wsErr.response?.trackingId ?? '',\n ...((wsErr.response?.metadata as Record<string, string>) ?? {}),\n },\n };\n}\n\n/**\n * APIRequest routes Mobius traffic over HTTP (`webex.request`) or the Mobius WebSocket path\n * (`mobiusSocketRequest`). `isMobiusSocketEnabled` is set in the constructor from WDM\n * `webrtc-calling-over-ws` and/or SDK config (interim until WDM is fully in prod).\n */\nexport class APIRequest {\n // eslint-disable-next-line no-use-before-define\n private static instance: APIRequest | undefined;\n private isMobiusSocketEnabled: boolean;\n private webex: WebexSDK;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private mobiusSocket: any;\n private metricManager: IMetricManager;\n\n static getInstance(config: APIRequestConfig): APIRequest {\n if (!APIRequest.instance) {\n APIRequest.instance = new APIRequest(config);\n }\n\n return APIRequest.instance;\n }\n\n static resetInstance(): void {\n APIRequest.instance = undefined;\n }\n\n /**\n * @param config - Webex instance plus optional SDK Mobius-socket override\n */\n constructor(config: APIRequestConfig) {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONSTRUCTOR,\n };\n\n if (!config.webex) {\n log.error('APIRequest instantiation failed: WebexSDK instance is required', logContext);\n throw new Error('WebexSDK instance is required');\n }\n\n this.webex = config.webex;\n this.isMobiusSocketEnabled = isMobiusWssEnabled(config.webex) || false;\n this.mobiusSocket = getMobiusSocketInstance(this.webex);\n this.metricManager = getMetricManager(this.webex);\n\n log.info(\n `APIRequest initialized with transport: ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'}`,\n logContext\n );\n }\n\n /**\n * Whether the Mobius WebSocket transport is active for this instance.\n */\n public isSocketEnabled(): boolean {\n return this.isMobiusSocketEnabled;\n }\n\n /**\n * Ensures the Mobius WebSocket is connected before sending API requests.\n * If the socket is already connected, resolves immediately. Otherwise,\n * initiates a new connection to the provided WebSocket URL.\n * On failure, throws a normalized WebexRequestPayload-shaped error.\n *\n * @param wssUrl - The Mobius WebSocket URL to connect to.\n */\n public async connectToMobiusSocket(wssUrl: string): Promise<string | undefined> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.CONNECT_TO_MOBIUS_SOCKET,\n };\n\n if (this.mobiusSocket.isConnected()) {\n log.info('Mobius WebSocket already connected', logContext);\n\n return this.mobiusSocket.getConnectedWebSocketUrl();\n }\n\n log.info('Mobius WebSocket not connected, initiating connection', logContext);\n\n try {\n await this.mobiusSocket.connect(wssUrl);\n log.log('Mobius WebSocket connected successfully', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl\n );\n\n return wssUrl;\n } catch (err) {\n log.warn(`Mobius WebSocket connection failed: ${String(err)}`, logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl,\n undefined,\n String(err)\n );\n\n throw normalizeWsError(err);\n }\n }\n\n /**\n * Disconnects the default session from the Mobius WebSocket.\n */\n public async disconnectFromMobiusSocket(options?: {code: number; reason: string}): Promise<void> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.DISCONNECT_FROM_MOBIUS_SOCKET,\n };\n\n log.info('Disconnecting from Mobius WebSocket', logContext);\n\n const wssUrl = this.mobiusSocket.getConnectedWebSocketUrl();\n\n try {\n await this.mobiusSocket.disconnect(options);\n log.log('Mobius WebSocket disconnected successfully', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl\n );\n } catch (err) {\n // silent error - no need to throw an error\n log.warn(`Mobius WebSocket disconnection failed: ${String(err)}`, logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl,\n undefined, // add trackingId\n String(err)\n );\n }\n }\n\n /**\n * Makes a request using HTTP or WebSocket transport per the flag set in the constructor.\n * When using WebSocket, the response is normalized to the WebexRequestPayload shape\n * so callers do not need to know which transport was used.\n * @param request - Request options (uri, method, body, headers, service)\n * @returns Promise resolving to WebexRequestPayload\n */\n public async makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload> {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.MAKE_REQUEST,\n };\n log.info(`Dispatching request via ${this.isMobiusSocketEnabled ? 'WSS' : 'HTTP'} `, logContext);\n\n if (this.isMobiusSocketEnabled) {\n const trackingId = `webex-js-sdk_${uuid()}`;\n const socketType = deriveMobiusSocketMessageType(request.uri, request.method);\n\n if (socketType === MOBIUS_SOCKET_MESSAGE_TYPE.UNKNOWN) {\n log.error(\n `Unknown Mobius Socket message type for uri: ${request.uri}, httpMethod: ${request.method}`,\n logContext\n );\n throw new Error(`Unknown Mobius Socket message type: ${socketType}`);\n }\n\n const isSupplementaryService = isSupplementaryServiceMessageType(socketType);\n\n try {\n const wsResponse: MobiusSocketResponse = await this.mobiusSocket.sendWssRequest({\n type: socketType,\n trackingId,\n metadata: {\n ...request.headers,\n userAgent: CALLING_USER_AGENT,\n authorization: `${\n (isSupplementaryService && (await this.webex.credentials.getUserToken())) || ''\n }`,\n },\n data: request.body,\n });\n\n log.log(\n `WSS request succeeded - socketType: ${socketType}, trackingId: ${trackingId}, statusCode: ${wsResponse.statusCode}`,\n logContext\n );\n\n return normalizeWsResponse(wsResponse);\n } catch (err) {\n log.error(\n `WSS request failed - socketType: ${socketType}, trackingId: ${trackingId}, error: ${String(\n err\n )}`,\n logContext\n );\n throw normalizeWsError(err);\n }\n }\n\n return this.webex.request(request) as Promise<WebexRequestPayload>;\n }\n\n public registerMobiusSocketListener(cb: (data?: MobiusAsyncEvent) => void): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.REGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Attaching Mobius async event listener', logContext);\n\n this.mobiusSocket.on('event:async_event', (data: MobiusAsyncEvent) => {\n log.trace(\n `Mobius async event received - eventType: ${data?.data?.eventType ?? 'unknown'}`,\n logContext\n );\n cb(data);\n });\n\n log.log('Mobius async event listener attached', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n }\n\n public unregisterMobiusSocketListener(): void {\n const logContext = {\n file: REQUEST_FILE,\n method: METHODS.UNREGISTER_MOBIUS_SOCKET_LISTENER,\n };\n\n log.info('Detaching Mobius async event listener', logContext);\n this.mobiusSocket.off('event:async_event');\n log.log('Mobius async event listener detached', logContext);\n\n this.metricManager?.submitMobiusSocketMetric(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n }\n}\n\n/**\n * Factory function to create a singleton APIRequest instance\n * @param config - Configuration object for APIRequest\n * @returns APIRequest instance\n */\nexport const createAPIRequest = (config: APIRequestConfig): APIRequest =>\n APIRequest.getInstance(config);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,mBAAA,GAAAJ,OAAA;AAIA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAAoG,SAAAU,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAEpG;AACA;AACA;AACA;AACA,SAASqB,mBAAmBA,CAACC,UAAgC,EAAuB;EAAA,IAAAC,IAAA,EAAAC,KAAA;EAClF,OAAO;IACLC,UAAU,EAAEH,UAAU,CAACG,UAAU;IACjCC,IAAI,GAAAH,IAAA,GAAGD,UAAU,CAACK,IAAI,cAAAJ,IAAA,cAAAA,IAAA,GAAeK,SAAS;IAC9CC,OAAO,EAAAlB,aAAA;MACLmB,UAAU,EAAER,UAAU,CAACS;IAAU,IAAAP,KAAA,GAC5BF,UAAU,CAACU,QAAQ,cAAAR,KAAA,cAAAA,KAAA,GAA+B,CAAC,CAAC;EAE7D,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA,SAASS,gBAAgBA,CAACC,GAAY,EAAuB;EAAA,IAAAC,KAAA,EAAAC,eAAA,EAAAC,KAAA,EAAAC,iBAAA,EAAAC,gBAAA,EAAAC,KAAA,EAAAC,gBAAA;EAC3D,IAAMC,KAAK,GAAGR,GAKb;EAED,OAAO;IACLT,UAAU,EAAEiB,KAAK,CAACjB,UAAU;IAC5BC,IAAI,GAAAS,KAAA,IAAAC,eAAA,GAAGM,KAAK,CAACC,QAAQ,cAAAP,eAAA,uBAAdA,eAAA,CAAgBT,IAAI,cAAAQ,KAAA,cAAAA,KAAA,GAAeP,SAAS;IACnDC,OAAO,EAAAlB,aAAA;MACLmB,UAAU,GAAAO,KAAA,IAAAC,iBAAA,GAAEI,KAAK,CAACX,UAAU,cAAAO,iBAAA,cAAAA,iBAAA,IAAAC,gBAAA,GAAIG,KAAK,CAACC,QAAQ,cAAAJ,gBAAA,uBAAdA,gBAAA,CAAgBR,UAAU,cAAAM,KAAA,cAAAA,KAAA,GAAI;IAAE,IAAAG,KAAA,IAAAC,gBAAA,GAC3DC,KAAK,CAACC,QAAQ,cAAAF,gBAAA,uBAAdA,gBAAA,CAAgBT,QAAQ,cAAAQ,KAAA,cAAAA,KAAA,GAA+B,CAAC,CAAC;EAElE,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AAJA,IAKaI,UAAU,GAAAC,OAAA,CAAAD,UAAA;EAqBrB;AACF;AACA;EACE,SAAAA,WAAYE,MAAwB,EAAE;IAAA,IAAAC,gBAAA,CAAA9B,OAAA,QAAA2B,UAAA;IAAA,IAAA5B,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAnBtC;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAoBE,IAAM+B,UAAU,GAAG;MACjBC,IAAI,EAAEC,wBAAY;MAClBC,MAAM,EAAEC,mBAAO,CAACC;IAClB,CAAC;IAED,IAAI,CAACP,MAAM,CAACQ,KAAK,EAAE;MACjBC,eAAG,CAACC,KAAK,CAAC,gEAAgE,EAAER,UAAU,CAAC;MACvF,MAAM,IAAIS,KAAK,CAAC,+BAA+B,CAAC;IAClD;IAEA,IAAI,CAACH,KAAK,GAAGR,MAAM,CAACQ,KAAK;IACzB,IAAI,CAACI,qBAAqB,GAAG,IAAAC,iCAAkB,EAACb,MAAM,CAACQ,KAAK,CAAC,IAAI,KAAK;IACtE,IAAI,CAACM,YAAY,GAAG,IAAAC,qCAAuB,EAAC,IAAI,CAACP,KAAK,CAAC;IACvD,IAAI,CAACQ,aAAa,GAAG,IAAAC,yBAAgB,EAAC,IAAI,CAACT,KAAK,CAAC;IAEjDC,eAAG,CAACS,IAAI,2CAAAC,MAAA,CACoC,IAAI,CAACP,qBAAqB,GAAG,KAAK,GAAG,MAAM,GACrFV,UACF,CAAC;EACH;;EAEA;AACF;AACA;EAFE,WAAAkB,aAAA,CAAAjD,OAAA,EAAA2B,UAAA;IAAAuB,GAAA;IAAAC,KAAA,EAGA,SAAOC,eAAeA,CAAA,EAAY;MAChC,OAAO,IAAI,CAACX,qBAAqB;IACnC;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAS,GAAA;IAAAC,KAAA;MAAA,IAAAE,sBAAA,OAAAC,kBAAA,CAAAtD,OAAA,eAAAuD,YAAA,CAAAvD,OAAA,CAAAwD,IAAA,CAQA,SAAAC,QAAmCC,MAAc;QAAA,IAAA3B,UAAA,EAAA4B,mBAAA,EAAAC,oBAAA,EAAAC,EAAA;QAAA,OAAAN,YAAA,CAAAvD,OAAA,CAAA8D,IAAA,WAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cACzClC,UAAU,GAAG;gBACjBC,IAAI,EAAEC,wBAAY;gBAClBC,MAAM,EAAEC,mBAAO,CAAC+B;cAClB,CAAC;cAAA,KAEG,IAAI,CAACvB,YAAY,CAACwB,WAAW,CAAC,CAAC;gBAAAJ,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACjC3B,eAAG,CAACS,IAAI,CAAC,oCAAoC,EAAEhB,UAAU,CAAC;cAAC,OAAAgC,QAAA,CAAAK,MAAA,WAEpD,IAAI,CAACzB,YAAY,CAAC0B,wBAAwB,CAAC,CAAC;YAAA;cAGrD/B,eAAG,CAACS,IAAI,CAAC,uDAAuD,EAAEhB,UAAU,CAAC;cAACgC,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAE,IAAA;cAAA,OAGtE,IAAI,CAACtB,YAAY,CAAC2B,OAAO,CAACZ,MAAM,CAAC;YAAA;cACvCpB,eAAG,CAACA,GAAG,CAAC,yCAAyC,EAAEP,UAAU,CAAC;cAE9D,CAAA4B,mBAAA,OAAI,CAACd,aAAa,cAAAc,mBAAA,uBAAlBA,mBAAA,CAAoBY,wBAAwB,CAC1CC,mBAAY,CAACC,aAAa,EAC1BC,2BAAoB,CAACC,OAAO,EAC5BC,kBAAW,CAACC,UAAU,EACtBnB,MACF,CAAC;cAAC,OAAAK,QAAA,CAAAK,MAAA,WAEKV,MAAM;YAAA;cAAAK,QAAA,CAAAC,IAAA;cAAAH,EAAA,GAAAE,QAAA;cAEbzB,eAAG,CAACwC,IAAI,wCAAA9B,MAAA,CAAwC+B,MAAM,CAAAlB,EAAI,CAAC,GAAI9B,UAAU,CAAC;cAE1E,CAAA6B,oBAAA,OAAI,CAACf,aAAa,cAAAe,oBAAA,uBAAlBA,oBAAA,CAAoBW,wBAAwB,CAC1CC,mBAAY,CAACQ,mBAAmB,EAChCN,2BAAoB,CAACC,OAAO,EAC5BC,kBAAW,CAACC,UAAU,EACtBnB,MAAM,EACN/C,SAAS,EACToE,MAAM,CAAAlB,EAAI,CACZ,CAAC;cAAC,MAEI7C,gBAAgB,CAAA6C,EAAI,CAAC;YAAA;YAAA;cAAA,OAAAE,QAAA,CAAAkB,IAAA;UAAA;QAAA,GAAAxB,OAAA;MAAA,CAE9B;MAAA,SAxCYyB,qBAAqBA,CAAAC,EAAA;QAAA,OAAA9B,sBAAA,CAAA5D,KAAA,OAAAE,SAAA;MAAA;MAAA,OAArBuF,qBAAqB;IAAA;IA0ClC;AACF;AACA;IAFE;EAAA;IAAAhC,GAAA;IAAAC,KAAA;MAAA,IAAAiC,2BAAA,OAAA9B,kBAAA,CAAAtD,OAAA,eAAAuD,YAAA,CAAAvD,OAAA,CAAAwD,IAAA,CAGA,SAAA6B,SAAwCC,OAAwC;QAAA,IAAAvD,UAAA,EAAA2B,MAAA,EAAA6B,oBAAA,EAAAC,oBAAA,EAAAC,GAAA;QAAA,OAAAlC,YAAA,CAAAvD,OAAA,CAAA8D,IAAA,WAAA4B,SAAA;UAAA,kBAAAA,SAAA,CAAA1B,IAAA,GAAA0B,SAAA,CAAAzB,IAAA;YAAA;cACxElC,UAAU,GAAG;gBACjBC,IAAI,EAAEC,wBAAY;gBAClBC,MAAM,EAAEC,mBAAO,CAACwD;cAClB,CAAC;cAEDrD,eAAG,CAACS,IAAI,CAAC,qCAAqC,EAAEhB,UAAU,CAAC;cAErD2B,MAAM,GAAG,IAAI,CAACf,YAAY,CAAC0B,wBAAwB,CAAC,CAAC;cAAAqB,SAAA,CAAA1B,IAAA;cAAA0B,SAAA,CAAAzB,IAAA;cAAA,OAGnD,IAAI,CAACtB,YAAY,CAACiD,UAAU,CAACN,OAAO,CAAC;YAAA;cAC3ChD,eAAG,CAACA,GAAG,CAAC,4CAA4C,EAAEP,UAAU,CAAC;cAEjE,CAAAwD,oBAAA,OAAI,CAAC1C,aAAa,cAAA0C,oBAAA,uBAAlBA,oBAAA,CAAoBhB,wBAAwB,CAC1CC,mBAAY,CAACC,aAAa,EAC1BC,2BAAoB,CAACmB,UAAU,EAC/BjB,kBAAW,CAACC,UAAU,EACtBnB,MACF,CAAC;cAACgC,SAAA,CAAAzB,IAAA;cAAA;YAAA;cAAAyB,SAAA,CAAA1B,IAAA;cAAAyB,GAAA,GAAAC,SAAA;cAEF;cACApD,eAAG,CAACwC,IAAI,2CAAA9B,MAAA,CAA2C+B,MAAM,CAAAU,GAAI,CAAC,GAAI1D,UAAU,CAAC;cAE7E,CAAAyD,oBAAA,OAAI,CAAC3C,aAAa,cAAA2C,oBAAA,uBAAlBA,oBAAA,CAAoBjB,wBAAwB,CAC1CC,mBAAY,CAACQ,mBAAmB,EAChCN,2BAAoB,CAACmB,UAAU,EAC/BjB,kBAAW,CAACC,UAAU,EACtBnB,MAAM,EACN/C,SAAS;cAAE;cACXoE,MAAM,CAAAU,GAAI,CACZ,CAAC;YAAC;YAAA;cAAA,OAAAC,SAAA,CAAAT,IAAA;UAAA;QAAA,GAAAI,QAAA;MAAA,CAEL;MAAA,SAjCYS,0BAA0BA,CAAAC,GAAA;QAAA,OAAAX,2BAAA,CAAA3F,KAAA,OAAAE,SAAA;MAAA;MAAA,OAA1BmG,0BAA0B;IAAA;IAmCvC;AACF;AACA;AACA;AACA;AACA;AACA;IANE;EAAA;IAAA5C,GAAA;IAAAC,KAAA;MAAA,IAAA6C,YAAA,OAAA1C,kBAAA,CAAAtD,OAAA,eAAAuD,YAAA,CAAAvD,OAAA,CAAAwD,IAAA,CAOA,SAAAyC,SAAyBC,OAA0B;QAAA,IAAAnE,UAAA,EAAAjB,UAAA,EAAAqF,UAAA,EAAAC,sBAAA,EAAA/F,UAAA,EAAAgG,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA,EAAAC,IAAA;QAAA,OAAA3D,YAAA,CAAAvD,OAAA,CAAA8D,IAAA,WAAAqD,SAAA;UAAA,kBAAAA,SAAA,CAAAnD,IAAA,GAAAmD,SAAA,CAAAlD,IAAA;YAAA;cAC3ClC,UAAU,GAAG;gBACjBC,IAAI,EAAEC,wBAAY;gBAClBC,MAAM,EAAEC,mBAAO,CAACiF;cAClB,CAAC;cACD9E,eAAG,CAACS,IAAI,4BAAAC,MAAA,CAA4B,IAAI,CAACP,qBAAqB,GAAG,KAAK,GAAG,MAAM,QAAKV,UAAU,CAAC;cAAC,KAE5F,IAAI,CAACU,qBAAqB;gBAAA0E,SAAA,CAAAlD,IAAA;gBAAA;cAAA;cACtBnD,UAAU,mBAAAkC,MAAA,CAAmB,IAAAqE,QAAI,EAAC,CAAC;cACnClB,UAAU,GAAG,IAAAmB,iDAA6B,EAACpB,OAAO,CAACqB,GAAG,EAAErB,OAAO,CAAChE,MAAM,CAAC;cAAA,MAEzEiE,UAAU,KAAKqB,qCAA0B,CAACC,OAAO;gBAAAN,SAAA,CAAAlD,IAAA;gBAAA;cAAA;cACnD3B,eAAG,CAACC,KAAK,gDAAAS,MAAA,CACwCkD,OAAO,CAACqB,GAAG,oBAAAvE,MAAA,CAAiBkD,OAAO,CAAChE,MAAM,GACzFH,UACF,CAAC;cAAC,MACI,IAAIS,KAAK,wCAAAQ,MAAA,CAAwCmD,UAAU,CAAE,CAAC;YAAA;cAGhEC,sBAAsB,GAAG,IAAAsB,qDAAiC,EAACvB,UAAU,CAAC;cAAAgB,SAAA,CAAAnD,IAAA;cAAAqC,GAAA,GAG3B,IAAI,CAAC1D,YAAY;cAAA2D,GAAA,GACxDH,UAAU;cAAAI,GAAA,GAChBzF,UAAU;cAAA0F,GAAA,GAAA9G,aAAA;cAAA+G,GAAA,GAAA/G,aAAA,KAELwG,OAAO,CAACtF,OAAO;cAAA8F,GAAA;cAAAC,GAAA,GACPgB,8BAAkB;cAAAf,GAAA;cAAAE,IAAA,GAE1BV,sBAAsB;cAAA,KAAAU,IAAA;gBAAAK,SAAA,CAAAlD,IAAA;gBAAA;cAAA;cAAAkD,SAAA,CAAAlD,IAAA;cAAA,OAAW,IAAI,CAAC5B,KAAK,CAACuF,WAAW,CAACC,YAAY,CAAC,CAAC;YAAA;cAAAf,IAAA,GAAAK,SAAA,CAAAW,IAAA;YAAA;cAAAjB,GAAA,GAAAC,IAAA;cAAA,IAAAD,GAAA;gBAAAM,SAAA,CAAAlD,IAAA;gBAAA;cAAA;cAAA4C,GAAA,GAAM,EAAE;YAAA;cAAAE,IAAA,GAAAH,GAAA,CAAA5D,MAAA,CAAA+E,IAAA,CAAAnB,GAAA,EAAAC,GAAA;cAAAG,IAAA,GAAAR,GAAA,CAAAC,GAAA,EAAAC,GAAA;gBAFjFsB,SAAS,EAAArB,GAAA;gBACTsB,aAAa,EAAAlB;cAAA;cAAAE,IAAA,GAITf,OAAO,CAACzF,IAAI;cAAA0G,SAAA,CAAAlD,IAAA;cAAA,OAAAoC,GAAA,CAV6C6B,cAAc,CAAAH,IAAA,CAAA1B,GAAA;gBAC7E8B,IAAI,EAAA7B,GAAA;gBACJxF,UAAU,EAAAyF,GAAA;gBACVxF,QAAQ,EAAAiG,IAAA;gBAORtG,IAAI,EAAAuG;cAAA;YAAA;cAVA5G,UAAgC,GAAA8G,SAAA,CAAAW,IAAA;cAatCxF,eAAG,CAACA,GAAG,wCAAAU,MAAA,CACkCmD,UAAU,oBAAAnD,MAAA,CAAiBlC,UAAU,oBAAAkC,MAAA,CAAiB3C,UAAU,CAACG,UAAU,GAClHuB,UACF,CAAC;cAAC,OAAAoF,SAAA,CAAA/C,MAAA,WAEKhE,mBAAmB,CAACC,UAAU,CAAC;YAAA;cAAA8G,SAAA,CAAAnD,IAAA;cAAAkD,IAAA,GAAAC,SAAA;cAEtC7E,eAAG,CAACC,KAAK,qCAAAS,MAAA,CAC6BmD,UAAU,oBAAAnD,MAAA,CAAiBlC,UAAU,eAAAkC,MAAA,CAAY+B,MAAM,CAAAmC,IAE3F,CAAC,GACDnF,UACF,CAAC;cAAC,MACIf,gBAAgB,CAAAkG,IAAI,CAAC;YAAA;cAAA,OAAAC,SAAA,CAAA/C,MAAA,WAIxB,IAAI,CAAC/B,KAAK,CAAC6D,OAAO,CAACA,OAAO,CAAC;YAAA;YAAA;cAAA,OAAAiB,SAAA,CAAAlC,IAAA;UAAA;QAAA,GAAAgB,QAAA;MAAA,CACnC;MAAA,SArDYmC,WAAWA,CAAAC,GAAA;QAAA,OAAArC,YAAA,CAAAvG,KAAA,OAAAE,SAAA;MAAA;MAAA,OAAXyI,WAAW;IAAA;EAAA;IAAAlF,GAAA;IAAAC,KAAA,EAuDxB,SAAOmF,4BAA4BA,CAACC,EAAqC,EAAQ;MAAA,IAAAC,oBAAA;MAC/E,IAAMzG,UAAU,GAAG;QACjBC,IAAI,EAAEC,wBAAY;QAClBC,MAAM,EAAEC,mBAAO,CAACsG;MAClB,CAAC;MAEDnG,eAAG,CAACS,IAAI,CAAC,uCAAuC,EAAEhB,UAAU,CAAC;MAE7D,IAAI,CAACY,YAAY,CAAC+F,EAAE,CAAC,mBAAmB,EAAE,UAAChI,IAAsB,EAAK;QAAA,IAAAiI,oBAAA,EAAAC,UAAA;QACpEtG,eAAG,CAACuG,KAAK,6CAAA7F,MAAA,EAAA2F,oBAAA,GACqCjI,IAAI,aAAJA,IAAI,wBAAAkI,UAAA,GAAJlI,IAAI,CAAEA,IAAI,cAAAkI,UAAA,uBAAVA,UAAA,CAAYE,SAAS,cAAAH,oBAAA,cAAAA,oBAAA,GAAI,SAAS,GAC9E5G,UACF,CAAC;QACDwG,EAAE,CAAC7H,IAAI,CAAC;MACV,CAAC,CAAC;MAEF4B,eAAG,CAACA,GAAG,CAAC,sCAAsC,EAAEP,UAAU,CAAC;MAE3D,CAAAyG,oBAAA,OAAI,CAAC3F,aAAa,cAAA2F,oBAAA,uBAAlBA,oBAAA,CAAoBjE,wBAAwB,CAC1CC,mBAAY,CAACC,aAAa,EAC1BC,2BAAoB,CAACqE,mBAAmB,EACxCnE,kBAAW,CAACC,UACd,CAAC;IACH;EAAC;IAAA3B,GAAA;IAAAC,KAAA,EAED,SAAO6F,8BAA8BA,CAAA,EAAS;MAAA,IAAAC,oBAAA;MAC5C,IAAMlH,UAAU,GAAG;QACjBC,IAAI,EAAEC,wBAAY;QAClBC,MAAM,EAAEC,mBAAO,CAAC+G;MAClB,CAAC;MAED5G,eAAG,CAACS,IAAI,CAAC,uCAAuC,EAAEhB,UAAU,CAAC;MAC7D,IAAI,CAACY,YAAY,CAACwG,GAAG,CAAC,mBAAmB,CAAC;MAC1C7G,eAAG,CAACA,GAAG,CAAC,sCAAsC,EAAEP,UAAU,CAAC;MAE3D,CAAAkH,oBAAA,OAAI,CAACpG,aAAa,cAAAoG,oBAAA,uBAAlBA,oBAAA,CAAoB1E,wBAAwB,CAC1CC,mBAAY,CAACC,aAAa,EAC1BC,2BAAoB,CAAC0E,qBAAqB,EAC1CxE,kBAAW,CAACC,UACd,CAAC;IACH;EAAC;IAAA3B,GAAA;IAAAC,KAAA,EA1OD,SAAOkG,WAAWA,CAACxH,MAAwB,EAAc;MACvD,IAAI,CAACF,UAAU,CAAC2H,QAAQ,EAAE;QACxB3H,UAAU,CAAC2H,QAAQ,GAAG,IAAI3H,UAAU,CAACE,MAAM,CAAC;MAC9C;MAEA,OAAOF,UAAU,CAAC2H,QAAQ;IAC5B;EAAC;IAAApG,GAAA;IAAAC,KAAA,EAED,SAAOoG,aAAaA,CAAA,EAAS;MAC3B5H,UAAU,CAAC2H,QAAQ,GAAG3I,SAAS;IACjC;EAAC;AAAA;AAmOH;AACA;AACA;AACA;AACA;AAzPE;AAAA,IAAAZ,gBAAA,CAAAC,OAAA,EADW2B,UAAU;AA2PhB,IAAM6H,gBAAgB,GAAA5H,OAAA,CAAA4H,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAI3H,MAAwB;EAAA,OACvDF,UAAU,CAAC0H,WAAW,CAACxH,MAAM,CAAC;AAAA","ignoreList":[]}
@@ -355,7 +355,7 @@ describe('APIRequest', function () {
355
355
  _context7.next = 1;
356
356
  return apiRequest.disconnectFromMobiusSocket();
357
357
  case 1:
358
- expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(_types2.METRIC_EVENT.MOBIUS_SOCKET, _types2.MOBIUS_SOCKET_ACTION.DISCONNECT, _types2.METRIC_TYPE.BEHAVIORAL);
358
+ expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(_types2.METRIC_EVENT.MOBIUS_SOCKET, _types2.MOBIUS_SOCKET_ACTION.DISCONNECT, _types2.METRIC_TYPE.BEHAVIORAL, 'wss://test.webex.com');
359
359
  case 2:
360
360
  case "end":
361
361
  return _context7.stop();
@@ -418,7 +418,7 @@ describe('APIRequest', function () {
418
418
  _context0.next = 1;
419
419
  return apiRequest.disconnectFromMobiusSocket();
420
420
  case 1:
421
- expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(_types2.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types2.MOBIUS_SOCKET_ACTION.DISCONNECT, _types2.METRIC_TYPE.BEHAVIORAL, undefined, undefined, 'Error: Disconnect failed');
421
+ expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(_types2.METRIC_EVENT.MOBIUS_SOCKET_ERROR, _types2.MOBIUS_SOCKET_ACTION.DISCONNECT, _types2.METRIC_TYPE.BEHAVIORAL, 'wss://test.webex.com', undefined, 'Error: Disconnect failed');
422
422
  case 2:
423
423
  case "end":
424
424
  return _context0.stop();
@@ -1 +1 @@
1
- {"version":3,"names":["_uuid","require","_testUtil","_types","_Logger","_interopRequireDefault","_request","_mobiusSocket","_Metrics","_types2","_wsFeatureFlag","_constants","jest","mock","getMobiusSocketInstance","fn","getMetricManager","isMobiusWssEnabled","v4","describe","webex","mockMobiusSocket","mockMetricManager","infoSpy","logSpy","warnSpy","errorSpy","beforeEach","APIRequest","resetInstance","getTestUtilsWebex","clearAllMocks","connect","mockResolvedValue","undefined","disconnect","sendWssRequest","statusCode","trackingId","data","deviceId","isConnected","mockReturnValue","getConnectedWebSocketUrl","on","off","submitMobiusSocketMetric","uuid","spyOn","log","afterEach","it","apiRequest","getInstance","expect","toBeDefined","toHaveBeenCalledWith","file","method","toThrow","instance1","instance2","toBe","not","createAPIRequest","toBeInstanceOf","result","isSocketEnabled","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_context","prev","next","connectToMobiusSocket","sent","toHaveBeenCalled","stop","_callee2","wssUrl","_context2","_callee3","_context3","METRIC_EVENT","MOBIUS_SOCKET","MOBIUS_SOCKET_ACTION","CONNECT","METRIC_TYPE","BEHAVIORAL","_callee4","connectionError","_context4","statusMessage","response","error","metadata","mockRejectedValue","rejects","toEqual","body","headers","trackingid","stringContaining","MOBIUS_SOCKET_ERROR","any","String","_callee5","minimalError","_context5","_callee6","_context6","disconnectFromMobiusSocket","_callee7","_context7","DISCONNECT","_callee8","options","_context8","code","reason","_callee9","_context9","Error","resolves","_callee0","_context0","_callee1","requestOptions","expectedResponse","_context1","uri","HTTP_METHODS","POST","userId","request","makeRequest","_callee10","_context10","GET","_callee11","_context11","_callee12","_context12","objectContaining","type","MOBIUS_SOCKET_MESSAGE_TYPE","REGISTER","_callee13","_context13","_callee14","_context14","_callee15","_context15","userAgent","authorization","_callee16","_context16","credentials","getUserToken","CALL_HOLD","_callee17","_context17","_callee18","wsResponse","_context18","correlationId","_callee19","wsError","_context19","callback","registerMobiusSocketListener","Function","mockEvent","eventId","eventType","attachedCallback","calls","LISTENER_REGISTERED","unregisterMobiusSocketListener","LISTENER_UNREGISTERED"],"sources":["request.test.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {getTestUtilsWebex} from '../../common/testUtil';\nimport {HTTP_METHODS, WebexRequestPayload} from '../../common/types';\nimport log from '../../Logger';\nimport {APIRequest, createAPIRequest} from './request';\nimport {getMobiusSocketInstance} from '../../mobius-socket';\nimport {getMetricManager} from '../../Metrics';\nimport {METRIC_EVENT, METRIC_TYPE, MOBIUS_SOCKET_ACTION} from '../../Metrics/types';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {MobiusSocketResponse, MobiusAsyncEvent} from './types';\n\n// Mock dependencies\njest.mock('../../mobius-socket', () => ({\n getMobiusSocketInstance: jest.fn(),\n}));\njest.mock('../../Metrics', () => ({\n getMetricManager: jest.fn(),\n}));\njest.mock('./wsFeatureFlag', () => ({\n isMobiusWssEnabled: jest.fn(),\n}));\njest.mock('uuid', () => ({\n v4: jest.fn(),\n}));\n\ndescribe('APIRequest', () => {\n let webex: ReturnType<typeof getTestUtilsWebex>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let mockMobiusSocket: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let mockMetricManager: any;\n let infoSpy: jest.SpyInstance;\n let logSpy: jest.SpyInstance;\n let warnSpy: jest.SpyInstance;\n let errorSpy: jest.SpyInstance;\n\n beforeEach(() => {\n APIRequest.resetInstance();\n webex = getTestUtilsWebex();\n jest.clearAllMocks();\n\n mockMobiusSocket = {\n connect: jest.fn().mockResolvedValue(undefined),\n disconnect: jest.fn().mockResolvedValue(undefined),\n sendWssRequest: jest.fn().mockResolvedValue({\n statusCode: 200,\n trackingId: 'test-tracking-id',\n data: {deviceId: 'test-device-id'},\n }),\n isConnected: jest.fn().mockReturnValue(false),\n getConnectedWebSocketUrl: jest.fn().mockReturnValue('wss://test.webex.com'),\n on: jest.fn(),\n off: jest.fn(),\n };\n\n mockMetricManager = {\n submitMobiusSocketMetric: jest.fn(),\n };\n\n (getMobiusSocketInstance as jest.Mock).mockReturnValue(mockMobiusSocket);\n (getMetricManager as jest.Mock).mockReturnValue(mockMetricManager);\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n (uuid as jest.Mock).mockReturnValue('mock-uuid-12345');\n\n infoSpy = jest.spyOn(log, 'info');\n logSpy = jest.spyOn(log, 'log');\n warnSpy = jest.spyOn(log, 'warn');\n errorSpy = jest.spyOn(log, 'error');\n });\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n describe('Constructor and singleton pattern', () => {\n it('should create instance with webex config and HTTP transport', () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n expect(apiRequest).toBeDefined();\n expect(getMobiusSocketInstance).toHaveBeenCalledWith(webex);\n expect(getMetricManager).toHaveBeenCalledWith(webex);\n expect(isMobiusWssEnabled).toHaveBeenCalledWith(webex);\n expect(infoSpy).toHaveBeenCalledWith('APIRequest initialized with transport: HTTP', {\n file: 'REQUEST',\n method: 'constructor',\n });\n });\n\n it('should create instance with webex config and WSS transport when feature flag enabled', () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(true);\n\n const apiRequest = APIRequest.getInstance({webex});\n\n expect(apiRequest).toBeDefined();\n expect(infoSpy).toHaveBeenCalledWith('APIRequest initialized with transport: WSS', {\n file: 'REQUEST',\n method: 'constructor',\n });\n });\n\n it('should throw error if webex is missing from config', () => {\n expect(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n APIRequest.getInstance({webex: undefined as any});\n }).toThrow('WebexSDK instance is required');\n\n expect(errorSpy).toHaveBeenCalledWith(\n 'APIRequest instantiation failed: WebexSDK instance is required',\n {\n file: 'REQUEST',\n method: 'constructor',\n }\n );\n });\n\n it('should return same instance on subsequent getInstance() calls', () => {\n const instance1 = APIRequest.getInstance({webex});\n const instance2 = APIRequest.getInstance({webex});\n\n expect(instance1).toBe(instance2);\n });\n\n it('should clear singleton when resetInstance() is called', () => {\n const instance1 = APIRequest.getInstance({webex});\n\n APIRequest.resetInstance();\n\n const instance2 = APIRequest.getInstance({webex});\n\n expect(instance1).not.toBe(instance2);\n });\n });\n\n describe('createAPIRequest factory', () => {\n it('should create APIRequest instance using factory function', () => {\n const apiRequest = createAPIRequest({webex});\n\n expect(apiRequest).toBeDefined();\n expect(apiRequest).toBeInstanceOf(APIRequest);\n });\n });\n\n describe('isSocketEnabled', () => {\n it('should return false when WSS is disabled', () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n\n const result = apiRequest.isSocketEnabled();\n\n expect(result).toBe(false);\n });\n\n it('should return true when WSS is enabled', () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(true);\n const apiRequest = APIRequest.getInstance({webex});\n\n const result = apiRequest.isSocketEnabled();\n\n expect(result).toBe(true);\n });\n });\n\n describe('connectToMobiusSocket', () => {\n it('should return immediately if socket is already connected', async () => {\n mockMobiusSocket.isConnected.mockReturnValue(true);\n mockMobiusSocket.getConnectedWebSocketUrl.mockReturnValue('wss://existing.webex.com');\n const apiRequest = APIRequest.getInstance({webex});\n\n const result = await apiRequest.connectToMobiusSocket('wss://test.webex.com');\n\n expect(result).toBe('wss://existing.webex.com');\n expect(mockMobiusSocket.connect).not.toHaveBeenCalled();\n expect(infoSpy).toHaveBeenCalledWith('Mobius WebSocket already connected', {\n file: 'REQUEST',\n method: 'connectToMobiusSocket',\n });\n expect(mockMetricManager.submitMobiusSocketMetric).not.toHaveBeenCalled();\n });\n\n it('should initiate new connection if not connected', async () => {\n mockMobiusSocket.isConnected.mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const wssUrl = 'wss://test.webex.com/api/v1';\n\n const result = await apiRequest.connectToMobiusSocket(wssUrl);\n\n expect(mockMobiusSocket.connect).toHaveBeenCalledWith(wssUrl);\n expect(result).toBe(wssUrl);\n expect(infoSpy).toHaveBeenCalledWith(\n 'Mobius WebSocket not connected, initiating connection',\n {\n file: 'REQUEST',\n method: 'connectToMobiusSocket',\n }\n );\n });\n\n it('should submit success metric on successful connection', async () => {\n mockMobiusSocket.isConnected.mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const wssUrl = 'wss://mobius.webex.com/api/v1';\n\n await apiRequest.connectToMobiusSocket(wssUrl);\n\n expect(logSpy).toHaveBeenCalledWith('Mobius WebSocket connected successfully', {\n file: 'REQUEST',\n method: 'connectToMobiusSocket',\n });\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl\n );\n });\n\n it('should throw normalized error on connection failure', async () => {\n const connectionError = {\n statusCode: 503,\n statusMessage: 'Service Unavailable',\n trackingId: 'error-tracking-id',\n response: {\n statusCode: 503,\n trackingId: 'error-tracking-id',\n data: {error: 'Connection failed'},\n metadata: {'x-error': 'true'},\n },\n };\n mockMobiusSocket.isConnected.mockReturnValue(false);\n mockMobiusSocket.connect.mockRejectedValue(connectionError);\n const apiRequest = APIRequest.getInstance({webex});\n const wssUrl = 'wss://mobius.webex.com/api/v1';\n\n await expect(apiRequest.connectToMobiusSocket(wssUrl)).rejects.toEqual({\n statusCode: 503,\n body: {error: 'Connection failed'},\n headers: {\n trackingid: 'error-tracking-id',\n 'x-error': 'true',\n },\n });\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mobius WebSocket connection failed'),\n {\n file: 'REQUEST',\n method: 'connectToMobiusSocket',\n }\n );\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl,\n undefined,\n expect.any(String)\n );\n });\n\n it('should handle connection error with minimal error object', async () => {\n const minimalError = {statusCode: 500};\n mockMobiusSocket.isConnected.mockReturnValue(false);\n mockMobiusSocket.connect.mockRejectedValue(minimalError);\n const apiRequest = APIRequest.getInstance({webex});\n\n await expect(apiRequest.connectToMobiusSocket('wss://test.webex.com')).rejects.toEqual({\n statusCode: 500,\n body: undefined,\n headers: {\n trackingid: '',\n },\n });\n });\n });\n\n describe('disconnectFromMobiusSocket', () => {\n it('should disconnect successfully', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n await apiRequest.disconnectFromMobiusSocket();\n\n expect(mockMobiusSocket.disconnect).toHaveBeenCalledWith(undefined);\n expect(infoSpy).toHaveBeenCalledWith('Disconnecting from Mobius WebSocket', {\n file: 'REQUEST',\n method: 'disconnectFromMobiusSocket',\n });\n expect(logSpy).toHaveBeenCalledWith('Mobius WebSocket disconnected successfully', {\n file: 'REQUEST',\n method: 'disconnectFromMobiusSocket',\n });\n });\n\n it('should submit success metric after disconnect', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n await apiRequest.disconnectFromMobiusSocket();\n\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL\n );\n });\n\n it('should disconnect with custom options', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const options = {code: 1000, reason: 'Normal closure'};\n\n await apiRequest.disconnectFromMobiusSocket(options);\n\n expect(mockMobiusSocket.disconnect).toHaveBeenCalledWith(options);\n });\n\n it('should handle disconnect error silently and log warning', async () => {\n mockMobiusSocket.disconnect.mockRejectedValue(new Error('Disconnect failed'));\n const apiRequest = APIRequest.getInstance({webex});\n\n await expect(apiRequest.disconnectFromMobiusSocket()).resolves.not.toThrow();\n\n expect(warnSpy).toHaveBeenCalledWith(\n 'Mobius WebSocket disconnection failed: Error: Disconnect failed',\n {\n file: 'REQUEST',\n method: 'disconnectFromMobiusSocket',\n }\n );\n });\n\n it('should submit error metric on disconnect failure', async () => {\n mockMobiusSocket.disconnect.mockRejectedValue(new Error('Disconnect failed'));\n const apiRequest = APIRequest.getInstance({webex});\n\n await apiRequest.disconnectFromMobiusSocket();\n\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL,\n undefined,\n undefined,\n 'Error: Disconnect failed'\n );\n });\n });\n\n describe('makeRequest - HTTP transport', () => {\n it('should route through webex.request when WSS is disabled', async () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n body: {userId: 'user-123'},\n };\n const expectedResponse: WebexRequestPayload = {\n statusCode: 200,\n body: {deviceId: 'device-456'},\n };\n webex.request.mockResolvedValue(expectedResponse);\n\n const result = await apiRequest.makeRequest(requestOptions);\n\n expect(webex.request).toHaveBeenCalledWith(requestOptions);\n expect(result).toEqual(expectedResponse);\n expect(infoSpy).toHaveBeenCalledWith('Dispatching request via HTTP ', {\n file: 'REQUEST',\n method: 'makeRequest',\n });\n });\n\n it('should pass request options unchanged to webex.request', async () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/devices/device-123',\n method: HTTP_METHODS.GET,\n headers: {'x-custom-header': 'value'},\n };\n webex.request.mockResolvedValue({statusCode: 200});\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(webex.request).toHaveBeenCalledWith(requestOptions);\n });\n\n it('should return webex.request result directly', async () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const expectedResponse = {\n statusCode: 404,\n body: {error: 'Not found'},\n headers: {'x-tracking-id': 'track-123'},\n };\n webex.request.mockResolvedValue(expectedResponse);\n\n const result = await apiRequest.makeRequest({\n uri: '/api/v1/test',\n method: HTTP_METHODS.GET,\n });\n\n expect(result).toEqual(expectedResponse);\n });\n });\n\n describe('makeRequest - WebSocket transport', () => {\n beforeEach(() => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(true);\n });\n\n it('should derive socket message type from URI and method', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n body: {userId: 'user-123'},\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith(\n expect.objectContaining({\n type: MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER,\n })\n );\n expect(infoSpy).toHaveBeenCalledWith('Dispatching request via WSS ', {\n file: 'REQUEST',\n method: 'makeRequest',\n });\n });\n\n it('should throw error if message type is UNKNOWN', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/unrecognized/path',\n method: HTTP_METHODS.POST,\n };\n\n await expect(apiRequest.makeRequest(requestOptions)).rejects.toThrow(\n 'Unknown Mobius Socket message type: UNKNOWN'\n );\n\n expect(errorSpy).toHaveBeenCalledWith(\n expect.stringContaining('Unknown Mobius Socket message type'),\n {\n file: 'REQUEST',\n method: 'makeRequest',\n }\n );\n });\n\n it('should generate tracking ID with webex-js-sdk prefix', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(uuid).toHaveBeenCalled();\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith(\n expect.objectContaining({\n trackingId: 'webex-js-sdk_mock-uuid-12345',\n })\n );\n });\n\n it('should send WSS request with correct payload structure', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n body: {userId: 'user-123'},\n headers: {'x-custom': 'header-value'},\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith({\n type: MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER,\n trackingId: 'webex-js-sdk_mock-uuid-12345',\n metadata: {\n 'x-custom': 'header-value',\n userAgent: 'webex-calling/beta',\n authorization: '',\n },\n data: {userId: 'user-123'},\n });\n });\n\n it('should get user token for supplementary services (CALL_HOLD)', async () => {\n webex.credentials.getUserToken.mockResolvedValue('Bearer token-abc-123');\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/devices/device-123/services/callhold/hold',\n method: HTTP_METHODS.POST,\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(webex.credentials.getUserToken).toHaveBeenCalled();\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith(\n expect.objectContaining({\n type: MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD,\n metadata: expect.objectContaining({\n authorization: 'Bearer token-abc-123',\n }),\n })\n );\n });\n\n it('should not get user token for non-supplementary services', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(webex.credentials.getUserToken).not.toHaveBeenCalled();\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith(\n expect.objectContaining({\n metadata: expect.objectContaining({\n authorization: '',\n }),\n })\n );\n });\n\n it('should normalize success response to WebexRequestPayload shape', async () => {\n const wsResponse: MobiusSocketResponse = {\n type: 'register.response',\n statusCode: 201,\n statusMessage: 'Created',\n trackingId: 'track-123',\n data: {deviceId: 'device-456', correlationId: 'corr-789'},\n metadata: {'x-response-header': 'value'},\n };\n mockMobiusSocket.sendWssRequest.mockResolvedValue(wsResponse);\n const apiRequest = APIRequest.getInstance({webex});\n\n const result = await apiRequest.makeRequest({\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n });\n\n expect(result).toEqual({\n statusCode: 201,\n body: {deviceId: 'device-456', correlationId: 'corr-789'},\n headers: {\n trackingid: 'track-123',\n 'x-response-header': 'value',\n },\n });\n expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('WSS request succeeded'), {\n file: 'REQUEST',\n method: 'makeRequest',\n });\n });\n\n it('should normalize error to WebexRequestPayload shape', async () => {\n const wsError = {\n statusCode: 400,\n statusMessage: 'Bad Request',\n trackingId: 'error-track-456',\n response: {\n statusCode: 400,\n trackingId: 'error-track-456',\n data: {error: 'Invalid request'},\n metadata: {'x-error-code': 'ERR001'},\n },\n };\n mockMobiusSocket.sendWssRequest.mockRejectedValue(wsError);\n const apiRequest = APIRequest.getInstance({webex});\n\n await expect(\n apiRequest.makeRequest({\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n })\n ).rejects.toEqual({\n statusCode: 400,\n body: {error: 'Invalid request'},\n headers: {\n trackingid: 'error-track-456',\n 'x-error-code': 'ERR001',\n },\n });\n\n expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('WSS request failed'), {\n file: 'REQUEST',\n method: 'makeRequest',\n });\n });\n });\n\n describe('registerMobiusSocketListener', () => {\n it('should attach listener to event:async_event', () => {\n const apiRequest = APIRequest.getInstance({webex});\n const callback = jest.fn();\n\n apiRequest.registerMobiusSocketListener(callback);\n\n expect(mockMobiusSocket.on).toHaveBeenCalledWith('event:async_event', expect.any(Function));\n expect(infoSpy).toHaveBeenCalledWith('Attaching Mobius async event listener', {\n file: 'REQUEST',\n method: 'registerMobiusSocketListener',\n });\n expect(logSpy).toHaveBeenCalledWith('Mobius async event listener attached', {\n file: 'REQUEST',\n method: 'registerMobiusSocketListener',\n });\n });\n\n it('should invoke callback with event data when async event received', () => {\n const apiRequest = APIRequest.getInstance({webex});\n const callback = jest.fn();\n const mockEvent: MobiusAsyncEvent = {\n type: 'event:async_event',\n eventId: 'evt-123',\n trackingId: 'track-456',\n data: {\n eventType: 'registration.down',\n } as any,\n };\n\n apiRequest.registerMobiusSocketListener(callback);\n\n const attachedCallback = mockMobiusSocket.on.mock.calls[0][1];\n attachedCallback(mockEvent);\n\n expect(callback).toHaveBeenCalledWith(mockEvent);\n });\n\n it('should submit LISTENER_REGISTERED metric', () => {\n const apiRequest = APIRequest.getInstance({webex});\n const callback = jest.fn();\n\n apiRequest.registerMobiusSocketListener(callback);\n\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n });\n });\n\n describe('unregisterMobiusSocketListener', () => {\n it('should detach listener from event:async_event', () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n apiRequest.unregisterMobiusSocketListener();\n\n expect(mockMobiusSocket.off).toHaveBeenCalledWith('event:async_event');\n expect(infoSpy).toHaveBeenCalledWith('Detaching Mobius async event listener', {\n file: 'REQUEST',\n method: 'unregisterMobiusSocketListener',\n });\n expect(logSpy).toHaveBeenCalledWith('Mobius async event listener detached', {\n file: 'REQUEST',\n method: 'unregisterMobiusSocketListener',\n });\n });\n\n it('should submit LISTENER_UNREGISTERED metric', () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n apiRequest.unregisterMobiusSocketListener();\n\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_uuid","require","_testUtil","_types","_Logger","_interopRequireDefault","_request","_mobiusSocket","_Metrics","_types2","_wsFeatureFlag","_constants","jest","mock","getMobiusSocketInstance","fn","getMetricManager","isMobiusWssEnabled","v4","describe","webex","mockMobiusSocket","mockMetricManager","infoSpy","logSpy","warnSpy","errorSpy","beforeEach","APIRequest","resetInstance","getTestUtilsWebex","clearAllMocks","connect","mockResolvedValue","undefined","disconnect","sendWssRequest","statusCode","trackingId","data","deviceId","isConnected","mockReturnValue","getConnectedWebSocketUrl","on","off","submitMobiusSocketMetric","uuid","spyOn","log","afterEach","it","apiRequest","getInstance","expect","toBeDefined","toHaveBeenCalledWith","file","method","toThrow","instance1","instance2","toBe","not","createAPIRequest","toBeInstanceOf","result","isSocketEnabled","_asyncToGenerator2","default","_regenerator","mark","_callee","wrap","_context","prev","next","connectToMobiusSocket","sent","toHaveBeenCalled","stop","_callee2","wssUrl","_context2","_callee3","_context3","METRIC_EVENT","MOBIUS_SOCKET","MOBIUS_SOCKET_ACTION","CONNECT","METRIC_TYPE","BEHAVIORAL","_callee4","connectionError","_context4","statusMessage","response","error","metadata","mockRejectedValue","rejects","toEqual","body","headers","trackingid","stringContaining","MOBIUS_SOCKET_ERROR","any","String","_callee5","minimalError","_context5","_callee6","_context6","disconnectFromMobiusSocket","_callee7","_context7","DISCONNECT","_callee8","options","_context8","code","reason","_callee9","_context9","Error","resolves","_callee0","_context0","_callee1","requestOptions","expectedResponse","_context1","uri","HTTP_METHODS","POST","userId","request","makeRequest","_callee10","_context10","GET","_callee11","_context11","_callee12","_context12","objectContaining","type","MOBIUS_SOCKET_MESSAGE_TYPE","REGISTER","_callee13","_context13","_callee14","_context14","_callee15","_context15","userAgent","authorization","_callee16","_context16","credentials","getUserToken","CALL_HOLD","_callee17","_context17","_callee18","wsResponse","_context18","correlationId","_callee19","wsError","_context19","callback","registerMobiusSocketListener","Function","mockEvent","eventId","eventType","attachedCallback","calls","LISTENER_REGISTERED","unregisterMobiusSocketListener","LISTENER_UNREGISTERED"],"sources":["request.test.ts"],"sourcesContent":["import {v4 as uuid} from 'uuid';\nimport {getTestUtilsWebex} from '../../common/testUtil';\nimport {HTTP_METHODS, WebexRequestPayload} from '../../common/types';\nimport log from '../../Logger';\nimport {APIRequest, createAPIRequest} from './request';\nimport {getMobiusSocketInstance} from '../../mobius-socket';\nimport {getMetricManager} from '../../Metrics';\nimport {METRIC_EVENT, METRIC_TYPE, MOBIUS_SOCKET_ACTION} from '../../Metrics/types';\nimport {isMobiusWssEnabled} from './wsFeatureFlag';\nimport {MOBIUS_SOCKET_MESSAGE_TYPE} from './constants';\nimport {MobiusSocketResponse, MobiusAsyncEvent} from './types';\n\n// Mock dependencies\njest.mock('../../mobius-socket', () => ({\n getMobiusSocketInstance: jest.fn(),\n}));\njest.mock('../../Metrics', () => ({\n getMetricManager: jest.fn(),\n}));\njest.mock('./wsFeatureFlag', () => ({\n isMobiusWssEnabled: jest.fn(),\n}));\njest.mock('uuid', () => ({\n v4: jest.fn(),\n}));\n\ndescribe('APIRequest', () => {\n let webex: ReturnType<typeof getTestUtilsWebex>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let mockMobiusSocket: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let mockMetricManager: any;\n let infoSpy: jest.SpyInstance;\n let logSpy: jest.SpyInstance;\n let warnSpy: jest.SpyInstance;\n let errorSpy: jest.SpyInstance;\n\n beforeEach(() => {\n APIRequest.resetInstance();\n webex = getTestUtilsWebex();\n jest.clearAllMocks();\n\n mockMobiusSocket = {\n connect: jest.fn().mockResolvedValue(undefined),\n disconnect: jest.fn().mockResolvedValue(undefined),\n sendWssRequest: jest.fn().mockResolvedValue({\n statusCode: 200,\n trackingId: 'test-tracking-id',\n data: {deviceId: 'test-device-id'},\n }),\n isConnected: jest.fn().mockReturnValue(false),\n getConnectedWebSocketUrl: jest.fn().mockReturnValue('wss://test.webex.com'),\n on: jest.fn(),\n off: jest.fn(),\n };\n\n mockMetricManager = {\n submitMobiusSocketMetric: jest.fn(),\n };\n\n (getMobiusSocketInstance as jest.Mock).mockReturnValue(mockMobiusSocket);\n (getMetricManager as jest.Mock).mockReturnValue(mockMetricManager);\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n (uuid as jest.Mock).mockReturnValue('mock-uuid-12345');\n\n infoSpy = jest.spyOn(log, 'info');\n logSpy = jest.spyOn(log, 'log');\n warnSpy = jest.spyOn(log, 'warn');\n errorSpy = jest.spyOn(log, 'error');\n });\n\n afterEach(() => {\n jest.clearAllMocks();\n });\n\n describe('Constructor and singleton pattern', () => {\n it('should create instance with webex config and HTTP transport', () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n expect(apiRequest).toBeDefined();\n expect(getMobiusSocketInstance).toHaveBeenCalledWith(webex);\n expect(getMetricManager).toHaveBeenCalledWith(webex);\n expect(isMobiusWssEnabled).toHaveBeenCalledWith(webex);\n expect(infoSpy).toHaveBeenCalledWith('APIRequest initialized with transport: HTTP', {\n file: 'REQUEST',\n method: 'constructor',\n });\n });\n\n it('should create instance with webex config and WSS transport when feature flag enabled', () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(true);\n\n const apiRequest = APIRequest.getInstance({webex});\n\n expect(apiRequest).toBeDefined();\n expect(infoSpy).toHaveBeenCalledWith('APIRequest initialized with transport: WSS', {\n file: 'REQUEST',\n method: 'constructor',\n });\n });\n\n it('should throw error if webex is missing from config', () => {\n expect(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n APIRequest.getInstance({webex: undefined as any});\n }).toThrow('WebexSDK instance is required');\n\n expect(errorSpy).toHaveBeenCalledWith(\n 'APIRequest instantiation failed: WebexSDK instance is required',\n {\n file: 'REQUEST',\n method: 'constructor',\n }\n );\n });\n\n it('should return same instance on subsequent getInstance() calls', () => {\n const instance1 = APIRequest.getInstance({webex});\n const instance2 = APIRequest.getInstance({webex});\n\n expect(instance1).toBe(instance2);\n });\n\n it('should clear singleton when resetInstance() is called', () => {\n const instance1 = APIRequest.getInstance({webex});\n\n APIRequest.resetInstance();\n\n const instance2 = APIRequest.getInstance({webex});\n\n expect(instance1).not.toBe(instance2);\n });\n });\n\n describe('createAPIRequest factory', () => {\n it('should create APIRequest instance using factory function', () => {\n const apiRequest = createAPIRequest({webex});\n\n expect(apiRequest).toBeDefined();\n expect(apiRequest).toBeInstanceOf(APIRequest);\n });\n });\n\n describe('isSocketEnabled', () => {\n it('should return false when WSS is disabled', () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n\n const result = apiRequest.isSocketEnabled();\n\n expect(result).toBe(false);\n });\n\n it('should return true when WSS is enabled', () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(true);\n const apiRequest = APIRequest.getInstance({webex});\n\n const result = apiRequest.isSocketEnabled();\n\n expect(result).toBe(true);\n });\n });\n\n describe('connectToMobiusSocket', () => {\n it('should return immediately if socket is already connected', async () => {\n mockMobiusSocket.isConnected.mockReturnValue(true);\n mockMobiusSocket.getConnectedWebSocketUrl.mockReturnValue('wss://existing.webex.com');\n const apiRequest = APIRequest.getInstance({webex});\n\n const result = await apiRequest.connectToMobiusSocket('wss://test.webex.com');\n\n expect(result).toBe('wss://existing.webex.com');\n expect(mockMobiusSocket.connect).not.toHaveBeenCalled();\n expect(infoSpy).toHaveBeenCalledWith('Mobius WebSocket already connected', {\n file: 'REQUEST',\n method: 'connectToMobiusSocket',\n });\n expect(mockMetricManager.submitMobiusSocketMetric).not.toHaveBeenCalled();\n });\n\n it('should initiate new connection if not connected', async () => {\n mockMobiusSocket.isConnected.mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const wssUrl = 'wss://test.webex.com/api/v1';\n\n const result = await apiRequest.connectToMobiusSocket(wssUrl);\n\n expect(mockMobiusSocket.connect).toHaveBeenCalledWith(wssUrl);\n expect(result).toBe(wssUrl);\n expect(infoSpy).toHaveBeenCalledWith(\n 'Mobius WebSocket not connected, initiating connection',\n {\n file: 'REQUEST',\n method: 'connectToMobiusSocket',\n }\n );\n });\n\n it('should submit success metric on successful connection', async () => {\n mockMobiusSocket.isConnected.mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const wssUrl = 'wss://mobius.webex.com/api/v1';\n\n await apiRequest.connectToMobiusSocket(wssUrl);\n\n expect(logSpy).toHaveBeenCalledWith('Mobius WebSocket connected successfully', {\n file: 'REQUEST',\n method: 'connectToMobiusSocket',\n });\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl\n );\n });\n\n it('should throw normalized error on connection failure', async () => {\n const connectionError = {\n statusCode: 503,\n statusMessage: 'Service Unavailable',\n trackingId: 'error-tracking-id',\n response: {\n statusCode: 503,\n trackingId: 'error-tracking-id',\n data: {error: 'Connection failed'},\n metadata: {'x-error': 'true'},\n },\n };\n mockMobiusSocket.isConnected.mockReturnValue(false);\n mockMobiusSocket.connect.mockRejectedValue(connectionError);\n const apiRequest = APIRequest.getInstance({webex});\n const wssUrl = 'wss://mobius.webex.com/api/v1';\n\n await expect(apiRequest.connectToMobiusSocket(wssUrl)).rejects.toEqual({\n statusCode: 503,\n body: {error: 'Connection failed'},\n headers: {\n trackingid: 'error-tracking-id',\n 'x-error': 'true',\n },\n });\n\n expect(warnSpy).toHaveBeenCalledWith(\n expect.stringContaining('Mobius WebSocket connection failed'),\n {\n file: 'REQUEST',\n method: 'connectToMobiusSocket',\n }\n );\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.CONNECT,\n METRIC_TYPE.BEHAVIORAL,\n wssUrl,\n undefined,\n expect.any(String)\n );\n });\n\n it('should handle connection error with minimal error object', async () => {\n const minimalError = {statusCode: 500};\n mockMobiusSocket.isConnected.mockReturnValue(false);\n mockMobiusSocket.connect.mockRejectedValue(minimalError);\n const apiRequest = APIRequest.getInstance({webex});\n\n await expect(apiRequest.connectToMobiusSocket('wss://test.webex.com')).rejects.toEqual({\n statusCode: 500,\n body: undefined,\n headers: {\n trackingid: '',\n },\n });\n });\n });\n\n describe('disconnectFromMobiusSocket', () => {\n it('should disconnect successfully', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n await apiRequest.disconnectFromMobiusSocket();\n\n expect(mockMobiusSocket.disconnect).toHaveBeenCalledWith(undefined);\n expect(infoSpy).toHaveBeenCalledWith('Disconnecting from Mobius WebSocket', {\n file: 'REQUEST',\n method: 'disconnectFromMobiusSocket',\n });\n expect(logSpy).toHaveBeenCalledWith('Mobius WebSocket disconnected successfully', {\n file: 'REQUEST',\n method: 'disconnectFromMobiusSocket',\n });\n });\n\n it('should submit success metric after disconnect', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n await apiRequest.disconnectFromMobiusSocket();\n\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL,\n 'wss://test.webex.com'\n );\n });\n\n it('should disconnect with custom options', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const options = {code: 1000, reason: 'Normal closure'};\n\n await apiRequest.disconnectFromMobiusSocket(options);\n\n expect(mockMobiusSocket.disconnect).toHaveBeenCalledWith(options);\n });\n\n it('should handle disconnect error silently and log warning', async () => {\n mockMobiusSocket.disconnect.mockRejectedValue(new Error('Disconnect failed'));\n const apiRequest = APIRequest.getInstance({webex});\n\n await expect(apiRequest.disconnectFromMobiusSocket()).resolves.not.toThrow();\n\n expect(warnSpy).toHaveBeenCalledWith(\n 'Mobius WebSocket disconnection failed: Error: Disconnect failed',\n {\n file: 'REQUEST',\n method: 'disconnectFromMobiusSocket',\n }\n );\n });\n\n it('should submit error metric on disconnect failure', async () => {\n mockMobiusSocket.disconnect.mockRejectedValue(new Error('Disconnect failed'));\n const apiRequest = APIRequest.getInstance({webex});\n\n await apiRequest.disconnectFromMobiusSocket();\n\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET_ERROR,\n MOBIUS_SOCKET_ACTION.DISCONNECT,\n METRIC_TYPE.BEHAVIORAL,\n 'wss://test.webex.com',\n undefined,\n 'Error: Disconnect failed'\n );\n });\n });\n\n describe('makeRequest - HTTP transport', () => {\n it('should route through webex.request when WSS is disabled', async () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n body: {userId: 'user-123'},\n };\n const expectedResponse: WebexRequestPayload = {\n statusCode: 200,\n body: {deviceId: 'device-456'},\n };\n webex.request.mockResolvedValue(expectedResponse);\n\n const result = await apiRequest.makeRequest(requestOptions);\n\n expect(webex.request).toHaveBeenCalledWith(requestOptions);\n expect(result).toEqual(expectedResponse);\n expect(infoSpy).toHaveBeenCalledWith('Dispatching request via HTTP ', {\n file: 'REQUEST',\n method: 'makeRequest',\n });\n });\n\n it('should pass request options unchanged to webex.request', async () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/devices/device-123',\n method: HTTP_METHODS.GET,\n headers: {'x-custom-header': 'value'},\n };\n webex.request.mockResolvedValue({statusCode: 200});\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(webex.request).toHaveBeenCalledWith(requestOptions);\n });\n\n it('should return webex.request result directly', async () => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(false);\n const apiRequest = APIRequest.getInstance({webex});\n const expectedResponse = {\n statusCode: 404,\n body: {error: 'Not found'},\n headers: {'x-tracking-id': 'track-123'},\n };\n webex.request.mockResolvedValue(expectedResponse);\n\n const result = await apiRequest.makeRequest({\n uri: '/api/v1/test',\n method: HTTP_METHODS.GET,\n });\n\n expect(result).toEqual(expectedResponse);\n });\n });\n\n describe('makeRequest - WebSocket transport', () => {\n beforeEach(() => {\n (isMobiusWssEnabled as jest.Mock).mockReturnValue(true);\n });\n\n it('should derive socket message type from URI and method', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n body: {userId: 'user-123'},\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith(\n expect.objectContaining({\n type: MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER,\n })\n );\n expect(infoSpy).toHaveBeenCalledWith('Dispatching request via WSS ', {\n file: 'REQUEST',\n method: 'makeRequest',\n });\n });\n\n it('should throw error if message type is UNKNOWN', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/unrecognized/path',\n method: HTTP_METHODS.POST,\n };\n\n await expect(apiRequest.makeRequest(requestOptions)).rejects.toThrow(\n 'Unknown Mobius Socket message type: UNKNOWN'\n );\n\n expect(errorSpy).toHaveBeenCalledWith(\n expect.stringContaining('Unknown Mobius Socket message type'),\n {\n file: 'REQUEST',\n method: 'makeRequest',\n }\n );\n });\n\n it('should generate tracking ID with webex-js-sdk prefix', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(uuid).toHaveBeenCalled();\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith(\n expect.objectContaining({\n trackingId: 'webex-js-sdk_mock-uuid-12345',\n })\n );\n });\n\n it('should send WSS request with correct payload structure', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n body: {userId: 'user-123'},\n headers: {'x-custom': 'header-value'},\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith({\n type: MOBIUS_SOCKET_MESSAGE_TYPE.REGISTER,\n trackingId: 'webex-js-sdk_mock-uuid-12345',\n metadata: {\n 'x-custom': 'header-value',\n userAgent: 'webex-calling/beta',\n authorization: '',\n },\n data: {userId: 'user-123'},\n });\n });\n\n it('should get user token for supplementary services (CALL_HOLD)', async () => {\n webex.credentials.getUserToken.mockResolvedValue('Bearer token-abc-123');\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/devices/device-123/services/callhold/hold',\n method: HTTP_METHODS.POST,\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(webex.credentials.getUserToken).toHaveBeenCalled();\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith(\n expect.objectContaining({\n type: MOBIUS_SOCKET_MESSAGE_TYPE.CALL_HOLD,\n metadata: expect.objectContaining({\n authorization: 'Bearer token-abc-123',\n }),\n })\n );\n });\n\n it('should not get user token for non-supplementary services', async () => {\n const apiRequest = APIRequest.getInstance({webex});\n const requestOptions = {\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n };\n\n await apiRequest.makeRequest(requestOptions);\n\n expect(webex.credentials.getUserToken).not.toHaveBeenCalled();\n expect(mockMobiusSocket.sendWssRequest).toHaveBeenCalledWith(\n expect.objectContaining({\n metadata: expect.objectContaining({\n authorization: '',\n }),\n })\n );\n });\n\n it('should normalize success response to WebexRequestPayload shape', async () => {\n const wsResponse: MobiusSocketResponse = {\n type: 'register.response',\n statusCode: 201,\n statusMessage: 'Created',\n trackingId: 'track-123',\n data: {deviceId: 'device-456', correlationId: 'corr-789'},\n metadata: {'x-response-header': 'value'},\n };\n mockMobiusSocket.sendWssRequest.mockResolvedValue(wsResponse);\n const apiRequest = APIRequest.getInstance({webex});\n\n const result = await apiRequest.makeRequest({\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n });\n\n expect(result).toEqual({\n statusCode: 201,\n body: {deviceId: 'device-456', correlationId: 'corr-789'},\n headers: {\n trackingid: 'track-123',\n 'x-response-header': 'value',\n },\n });\n expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('WSS request succeeded'), {\n file: 'REQUEST',\n method: 'makeRequest',\n });\n });\n\n it('should normalize error to WebexRequestPayload shape', async () => {\n const wsError = {\n statusCode: 400,\n statusMessage: 'Bad Request',\n trackingId: 'error-track-456',\n response: {\n statusCode: 400,\n trackingId: 'error-track-456',\n data: {error: 'Invalid request'},\n metadata: {'x-error-code': 'ERR001'},\n },\n };\n mockMobiusSocket.sendWssRequest.mockRejectedValue(wsError);\n const apiRequest = APIRequest.getInstance({webex});\n\n await expect(\n apiRequest.makeRequest({\n uri: '/api/v1/calling/web/device',\n method: HTTP_METHODS.POST,\n })\n ).rejects.toEqual({\n statusCode: 400,\n body: {error: 'Invalid request'},\n headers: {\n trackingid: 'error-track-456',\n 'x-error-code': 'ERR001',\n },\n });\n\n expect(errorSpy).toHaveBeenCalledWith(expect.stringContaining('WSS request failed'), {\n file: 'REQUEST',\n method: 'makeRequest',\n });\n });\n });\n\n describe('registerMobiusSocketListener', () => {\n it('should attach listener to event:async_event', () => {\n const apiRequest = APIRequest.getInstance({webex});\n const callback = jest.fn();\n\n apiRequest.registerMobiusSocketListener(callback);\n\n expect(mockMobiusSocket.on).toHaveBeenCalledWith('event:async_event', expect.any(Function));\n expect(infoSpy).toHaveBeenCalledWith('Attaching Mobius async event listener', {\n file: 'REQUEST',\n method: 'registerMobiusSocketListener',\n });\n expect(logSpy).toHaveBeenCalledWith('Mobius async event listener attached', {\n file: 'REQUEST',\n method: 'registerMobiusSocketListener',\n });\n });\n\n it('should invoke callback with event data when async event received', () => {\n const apiRequest = APIRequest.getInstance({webex});\n const callback = jest.fn();\n const mockEvent: MobiusAsyncEvent = {\n type: 'event:async_event',\n eventId: 'evt-123',\n trackingId: 'track-456',\n data: {\n eventType: 'registration.down',\n } as any,\n };\n\n apiRequest.registerMobiusSocketListener(callback);\n\n const attachedCallback = mockMobiusSocket.on.mock.calls[0][1];\n attachedCallback(mockEvent);\n\n expect(callback).toHaveBeenCalledWith(mockEvent);\n });\n\n it('should submit LISTENER_REGISTERED metric', () => {\n const apiRequest = APIRequest.getInstance({webex});\n const callback = jest.fn();\n\n apiRequest.registerMobiusSocketListener(callback);\n\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_REGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n });\n });\n\n describe('unregisterMobiusSocketListener', () => {\n it('should detach listener from event:async_event', () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n apiRequest.unregisterMobiusSocketListener();\n\n expect(mockMobiusSocket.off).toHaveBeenCalledWith('event:async_event');\n expect(infoSpy).toHaveBeenCalledWith('Detaching Mobius async event listener', {\n file: 'REQUEST',\n method: 'unregisterMobiusSocketListener',\n });\n expect(logSpy).toHaveBeenCalledWith('Mobius async event listener detached', {\n file: 'REQUEST',\n method: 'unregisterMobiusSocketListener',\n });\n });\n\n it('should submit LISTENER_UNREGISTERED metric', () => {\n const apiRequest = APIRequest.getInstance({webex});\n\n apiRequest.unregisterMobiusSocketListener();\n\n expect(mockMetricManager.submitMobiusSocketMetric).toHaveBeenCalledWith(\n METRIC_EVENT.MOBIUS_SOCKET,\n MOBIUS_SOCKET_ACTION.LISTENER_UNREGISTERED,\n METRIC_TYPE.BEHAVIORAL\n );\n });\n });\n});\n"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,UAAA,GAAAV,OAAA;AAGA;AACAW,IAAI,CAACC,IAAI,CAAC,qBAAqB,EAAE;EAAA,OAAO;IACtCC,uBAAuB,EAAEF,IAAI,CAACG,EAAE,CAAC;EACnC,CAAC;AAAA,CAAC,CAAC;AACHH,IAAI,CAACC,IAAI,CAAC,eAAe,EAAE;EAAA,OAAO;IAChCG,gBAAgB,EAAEJ,IAAI,CAACG,EAAE,CAAC;EAC5B,CAAC;AAAA,CAAC,CAAC;AACHH,IAAI,CAACC,IAAI,CAAC,iBAAiB,EAAE;EAAA,OAAO;IAClCI,kBAAkB,EAAEL,IAAI,CAACG,EAAE,CAAC;EAC9B,CAAC;AAAA,CAAC,CAAC;AACHH,IAAI,CAACC,IAAI,CAAC,MAAM,EAAE;EAAA,OAAO;IACvBK,EAAE,EAAEN,IAAI,CAACG,EAAE,CAAC;EACd,CAAC;AAAA,CAAC,CAAC;AAEHI,QAAQ,CAAC,YAAY,EAAE,YAAM;EAC3B,IAAIC,KAA2C;EAC/C;EACA,IAAIC,gBAAqB;EACzB;EACA,IAAIC,iBAAsB;EAC1B,IAAIC,OAAyB;EAC7B,IAAIC,MAAwB;EAC5B,IAAIC,OAAyB;EAC7B,IAAIC,QAA0B;EAE9BC,UAAU,CAAC,YAAM;IACfC,mBAAU,CAACC,aAAa,CAAC,CAAC;IAC1BT,KAAK,GAAG,IAAAU,2BAAiB,EAAC,CAAC;IAC3BlB,IAAI,CAACmB,aAAa,CAAC,CAAC;IAEpBV,gBAAgB,GAAG;MACjBW,OAAO,EAAEpB,IAAI,CAACG,EAAE,CAAC,CAAC,CAACkB,iBAAiB,CAACC,SAAS,CAAC;MAC/CC,UAAU,EAAEvB,IAAI,CAACG,EAAE,CAAC,CAAC,CAACkB,iBAAiB,CAACC,SAAS,CAAC;MAClDE,cAAc,EAAExB,IAAI,CAACG,EAAE,CAAC,CAAC,CAACkB,iBAAiB,CAAC;QAC1CI,UAAU,EAAE,GAAG;QACfC,UAAU,EAAE,kBAAkB;QAC9BC,IAAI,EAAE;UAACC,QAAQ,EAAE;QAAgB;MACnC,CAAC,CAAC;MACFC,WAAW,EAAE7B,IAAI,CAACG,EAAE,CAAC,CAAC,CAAC2B,eAAe,CAAC,KAAK,CAAC;MAC7CC,wBAAwB,EAAE/B,IAAI,CAACG,EAAE,CAAC,CAAC,CAAC2B,eAAe,CAAC,sBAAsB,CAAC;MAC3EE,EAAE,EAAEhC,IAAI,CAACG,EAAE,CAAC,CAAC;MACb8B,GAAG,EAAEjC,IAAI,CAACG,EAAE,CAAC;IACf,CAAC;IAEDO,iBAAiB,GAAG;MAClBwB,wBAAwB,EAAElC,IAAI,CAACG,EAAE,CAAC;IACpC,CAAC;IAEAD,qCAAuB,CAAe4B,eAAe,CAACrB,gBAAgB,CAAC;IACvEL,yBAAgB,CAAe0B,eAAe,CAACpB,iBAAiB,CAAC;IACjEL,iCAAkB,CAAeyB,eAAe,CAAC,KAAK,CAAC;IACvDK,QAAI,CAAeL,eAAe,CAAC,iBAAiB,CAAC;IAEtDnB,OAAO,GAAGX,IAAI,CAACoC,KAAK,CAACC,eAAG,EAAE,MAAM,CAAC;IACjCzB,MAAM,GAAGZ,IAAI,CAACoC,KAAK,CAACC,eAAG,EAAE,KAAK,CAAC;IAC/BxB,OAAO,GAAGb,IAAI,CAACoC,KAAK,CAACC,eAAG,EAAE,MAAM,CAAC;IACjCvB,QAAQ,GAAGd,IAAI,CAACoC,KAAK,CAACC,eAAG,EAAE,OAAO,CAAC;EACrC,CAAC,CAAC;EAEFC,SAAS,CAAC,YAAM;IACdtC,IAAI,CAACmB,aAAa,CAAC,CAAC;EACtB,CAAC,CAAC;EAEFZ,QAAQ,CAAC,mCAAmC,EAAE,YAAM;IAClDgC,EAAE,CAAC,6DAA6D,EAAE,YAAM;MACtE,IAAMC,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAElDkC,MAAM,CAACF,UAAU,CAAC,CAACG,WAAW,CAAC,CAAC;MAChCD,MAAM,CAACxC,qCAAuB,CAAC,CAAC0C,oBAAoB,CAACpC,KAAK,CAAC;MAC3DkC,MAAM,CAACtC,yBAAgB,CAAC,CAACwC,oBAAoB,CAACpC,KAAK,CAAC;MACpDkC,MAAM,CAACrC,iCAAkB,CAAC,CAACuC,oBAAoB,CAACpC,KAAK,CAAC;MACtDkC,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAAC,6CAA6C,EAAE;QAClFC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE;MACV,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFP,EAAE,CAAC,sFAAsF,EAAE,YAAM;MAC9FlC,iCAAkB,CAAeyB,eAAe,CAAC,IAAI,CAAC;MAEvD,IAAMU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAElDkC,MAAM,CAACF,UAAU,CAAC,CAACG,WAAW,CAAC,CAAC;MAChCD,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAAC,4CAA4C,EAAE;QACjFC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE;MACV,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFP,EAAE,CAAC,oDAAoD,EAAE,YAAM;MAC7DG,MAAM,CAAC,YAAM;QACX;QACA1B,mBAAU,CAACyB,WAAW,CAAC;UAACjC,KAAK,EAAEc;QAAgB,CAAC,CAAC;MACnD,CAAC,CAAC,CAACyB,OAAO,CAAC,+BAA+B,CAAC;MAE3CL,MAAM,CAAC5B,QAAQ,CAAC,CAAC8B,oBAAoB,CACnC,gEAAgE,EAChE;QACEC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE;MACV,CACF,CAAC;IACH,CAAC,CAAC;IAEFP,EAAE,CAAC,+DAA+D,EAAE,YAAM;MACxE,IAAMS,SAAS,GAAGhC,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MACjD,IAAMyC,SAAS,GAAGjC,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAEjDkC,MAAM,CAACM,SAAS,CAAC,CAACE,IAAI,CAACD,SAAS,CAAC;IACnC,CAAC,CAAC;IAEFV,EAAE,CAAC,uDAAuD,EAAE,YAAM;MAChE,IAAMS,SAAS,GAAGhC,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAEjDQ,mBAAU,CAACC,aAAa,CAAC,CAAC;MAE1B,IAAMgC,SAAS,GAAGjC,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAEjDkC,MAAM,CAACM,SAAS,CAAC,CAACG,GAAG,CAACD,IAAI,CAACD,SAAS,CAAC;IACvC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF1C,QAAQ,CAAC,0BAA0B,EAAE,YAAM;IACzCgC,EAAE,CAAC,0DAA0D,EAAE,YAAM;MACnE,IAAMC,UAAU,GAAG,IAAAY,yBAAgB,EAAC;QAAC5C,KAAK,EAALA;MAAK,CAAC,CAAC;MAE5CkC,MAAM,CAACF,UAAU,CAAC,CAACG,WAAW,CAAC,CAAC;MAChCD,MAAM,CAACF,UAAU,CAAC,CAACa,cAAc,CAACrC,mBAAU,CAAC;IAC/C,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFT,QAAQ,CAAC,iBAAiB,EAAE,YAAM;IAChCgC,EAAE,CAAC,0CAA0C,EAAE,YAAM;MAClDlC,iCAAkB,CAAeyB,eAAe,CAAC,KAAK,CAAC;MACxD,IAAMU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAElD,IAAM8C,MAAM,GAAGd,UAAU,CAACe,eAAe,CAAC,CAAC;MAE3Cb,MAAM,CAACY,MAAM,CAAC,CAACJ,IAAI,CAAC,KAAK,CAAC;IAC5B,CAAC,CAAC;IAEFX,EAAE,CAAC,wCAAwC,EAAE,YAAM;MAChDlC,iCAAkB,CAAeyB,eAAe,CAAC,IAAI,CAAC;MACvD,IAAMU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAElD,IAAM8C,MAAM,GAAGd,UAAU,CAACe,eAAe,CAAC,CAAC;MAE3Cb,MAAM,CAACY,MAAM,CAAC,CAACJ,IAAI,CAAC,IAAI,CAAC;IAC3B,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF3C,QAAQ,CAAC,uBAAuB,EAAE,YAAM;IACtCgC,EAAE,CAAC,0DAA0D,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAC,QAAA;MAAA,IAAApB,UAAA,EAAAc,MAAA;MAAA,OAAAI,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAC7DvD,gBAAgB,CAACoB,WAAW,CAACC,eAAe,CAAC,IAAI,CAAC;YAClDrB,gBAAgB,CAACsB,wBAAwB,CAACD,eAAe,CAAC,0BAA0B,CAAC;YAC/EU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAAAsD,QAAA,CAAAE,IAAA;YAAA,OAE7BxB,UAAU,CAACyB,qBAAqB,CAAC,sBAAsB,CAAC;UAAA;YAAvEX,MAAM,GAAAQ,QAAA,CAAAI,IAAA;YAEZxB,MAAM,CAACY,MAAM,CAAC,CAACJ,IAAI,CAAC,0BAA0B,CAAC;YAC/CR,MAAM,CAACjC,gBAAgB,CAACW,OAAO,CAAC,CAAC+B,GAAG,CAACgB,gBAAgB,CAAC,CAAC;YACvDzB,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAAC,oCAAoC,EAAE;cACzEC,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CAAC,CAAC;YACFJ,MAAM,CAAChC,iBAAiB,CAACwB,wBAAwB,CAAC,CAACiB,GAAG,CAACgB,gBAAgB,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAL,QAAA,CAAAM,IAAA;QAAA;MAAA,GAAAR,OAAA;IAAA,CAC3E,GAAC;IAEFrB,EAAE,CAAC,iDAAiD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAU,SAAA;MAAA,IAAA7B,UAAA,EAAA8B,MAAA,EAAAhB,MAAA;MAAA,OAAAI,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAU,SAAA;QAAA,kBAAAA,SAAA,CAAAR,IAAA,GAAAQ,SAAA,CAAAP,IAAA;UAAA;YACpDvD,gBAAgB,CAACoB,WAAW,CAACC,eAAe,CAAC,KAAK,CAAC;YAC7CU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8D,MAAM,GAAG,6BAA6B;YAAAC,SAAA,CAAAP,IAAA;YAAA,OAEvBxB,UAAU,CAACyB,qBAAqB,CAACK,MAAM,CAAC;UAAA;YAAvDhB,MAAM,GAAAiB,SAAA,CAAAL,IAAA;YAEZxB,MAAM,CAACjC,gBAAgB,CAACW,OAAO,CAAC,CAACwB,oBAAoB,CAAC0B,MAAM,CAAC;YAC7D5B,MAAM,CAACY,MAAM,CAAC,CAACJ,IAAI,CAACoB,MAAM,CAAC;YAC3B5B,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAClC,uDAAuD,EACvD;cACEC,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CACF,CAAC;UAAC;UAAA;YAAA,OAAAyB,SAAA,CAAAH,IAAA;QAAA;MAAA,GAAAC,QAAA;IAAA,CACH,GAAC;IAEF9B,EAAE,CAAC,uDAAuD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAa,SAAA;MAAA,IAAAhC,UAAA,EAAA8B,MAAA;MAAA,OAAAZ,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAY,SAAA;QAAA,kBAAAA,SAAA,CAAAV,IAAA,GAAAU,SAAA,CAAAT,IAAA;UAAA;YAC1DvD,gBAAgB,CAACoB,WAAW,CAACC,eAAe,CAAC,KAAK,CAAC;YAC7CU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8D,MAAM,GAAG,+BAA+B;YAAAG,SAAA,CAAAT,IAAA;YAAA,OAExCxB,UAAU,CAACyB,qBAAqB,CAACK,MAAM,CAAC;UAAA;YAE9C5B,MAAM,CAAC9B,MAAM,CAAC,CAACgC,oBAAoB,CAAC,yCAAyC,EAAE;cAC7EC,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CAAC,CAAC;YACFJ,MAAM,CAAChC,iBAAiB,CAACwB,wBAAwB,CAAC,CAACU,oBAAoB,CACrE8B,oBAAY,CAACC,aAAa,EAC1BC,4BAAoB,CAACC,OAAO,EAC5BC,mBAAW,CAACC,UAAU,EACtBT,MACF,CAAC;UAAC;UAAA;YAAA,OAAAG,SAAA,CAAAL,IAAA;QAAA;MAAA,GAAAI,QAAA;IAAA,CACH,GAAC;IAEFjC,EAAE,CAAC,qDAAqD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAqB,SAAA;MAAA,IAAAC,eAAA,EAAAzC,UAAA,EAAA8B,MAAA;MAAA,OAAAZ,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAqB,SAAA;QAAA,kBAAAA,SAAA,CAAAnB,IAAA,GAAAmB,SAAA,CAAAlB,IAAA;UAAA;YAClDiB,eAAe,GAAG;cACtBxD,UAAU,EAAE,GAAG;cACf0D,aAAa,EAAE,qBAAqB;cACpCzD,UAAU,EAAE,mBAAmB;cAC/B0D,QAAQ,EAAE;gBACR3D,UAAU,EAAE,GAAG;gBACfC,UAAU,EAAE,mBAAmB;gBAC/BC,IAAI,EAAE;kBAAC0D,KAAK,EAAE;gBAAmB,CAAC;gBAClCC,QAAQ,EAAE;kBAAC,SAAS,EAAE;gBAAM;cAC9B;YACF,CAAC;YACD7E,gBAAgB,CAACoB,WAAW,CAACC,eAAe,CAAC,KAAK,CAAC;YACnDrB,gBAAgB,CAACW,OAAO,CAACmE,iBAAiB,CAACN,eAAe,CAAC;YACrDzC,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8D,MAAM,GAAG,+BAA+B;YAAAY,SAAA,CAAAlB,IAAA;YAAA,OAExCtB,MAAM,CAACF,UAAU,CAACyB,qBAAqB,CAACK,MAAM,CAAC,CAAC,CAACkB,OAAO,CAACC,OAAO,CAAC;cACrEhE,UAAU,EAAE,GAAG;cACfiE,IAAI,EAAE;gBAACL,KAAK,EAAE;cAAmB,CAAC;cAClCM,OAAO,EAAE;gBACPC,UAAU,EAAE,mBAAmB;gBAC/B,SAAS,EAAE;cACb;YACF,CAAC,CAAC;UAAA;YAEFlD,MAAM,CAAC7B,OAAO,CAAC,CAAC+B,oBAAoB,CAClCF,MAAM,CAACmD,gBAAgB,CAAC,oCAAoC,CAAC,EAC7D;cACEhD,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CACF,CAAC;YACDJ,MAAM,CAAChC,iBAAiB,CAACwB,wBAAwB,CAAC,CAACU,oBAAoB,CACrE8B,oBAAY,CAACoB,mBAAmB,EAChClB,4BAAoB,CAACC,OAAO,EAC5BC,mBAAW,CAACC,UAAU,EACtBT,MAAM,EACNhD,SAAS,EACToB,MAAM,CAACqD,GAAG,CAACC,MAAM,CACnB,CAAC;UAAC;UAAA;YAAA,OAAAd,SAAA,CAAAd,IAAA;QAAA;MAAA,GAAAY,QAAA;IAAA,CACH,GAAC;IAEFzC,EAAE,CAAC,0DAA0D,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAsC,SAAA;MAAA,IAAAC,YAAA,EAAA1D,UAAA;MAAA,OAAAkB,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAsC,SAAA;QAAA,kBAAAA,SAAA,CAAApC,IAAA,GAAAoC,SAAA,CAAAnC,IAAA;UAAA;YACvDkC,YAAY,GAAG;cAACzE,UAAU,EAAE;YAAG,CAAC;YACtChB,gBAAgB,CAACoB,WAAW,CAACC,eAAe,CAAC,KAAK,CAAC;YACnDrB,gBAAgB,CAACW,OAAO,CAACmE,iBAAiB,CAACW,YAAY,CAAC;YAClD1D,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAAA2F,SAAA,CAAAnC,IAAA;YAAA,OAE5CtB,MAAM,CAACF,UAAU,CAACyB,qBAAqB,CAAC,sBAAsB,CAAC,CAAC,CAACuB,OAAO,CAACC,OAAO,CAAC;cACrFhE,UAAU,EAAE,GAAG;cACfiE,IAAI,EAAEpE,SAAS;cACfqE,OAAO,EAAE;gBACPC,UAAU,EAAE;cACd;YACF,CAAC,CAAC;UAAA;UAAA;YAAA,OAAAO,SAAA,CAAA/B,IAAA;QAAA;MAAA,GAAA6B,QAAA;IAAA,CACH,GAAC;EACJ,CAAC,CAAC;EAEF1F,QAAQ,CAAC,4BAA4B,EAAE,YAAM;IAC3CgC,EAAE,CAAC,gCAAgC,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAyC,SAAA;MAAA,IAAA5D,UAAA;MAAA,OAAAkB,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAwC,SAAA;QAAA,kBAAAA,SAAA,CAAAtC,IAAA,GAAAsC,SAAA,CAAArC,IAAA;UAAA;YAC7BxB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAAA6F,SAAA,CAAArC,IAAA;YAAA,OAE5CxB,UAAU,CAAC8D,0BAA0B,CAAC,CAAC;UAAA;YAE7C5D,MAAM,CAACjC,gBAAgB,CAACc,UAAU,CAAC,CAACqB,oBAAoB,CAACtB,SAAS,CAAC;YACnEoB,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAAC,qCAAqC,EAAE;cAC1EC,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CAAC,CAAC;YACFJ,MAAM,CAAC9B,MAAM,CAAC,CAACgC,oBAAoB,CAAC,4CAA4C,EAAE;cAChFC,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAuD,SAAA,CAAAjC,IAAA;QAAA;MAAA,GAAAgC,QAAA;IAAA,CACJ,GAAC;IAEF7D,EAAE,CAAC,+CAA+C,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAA4C,SAAA;MAAA,IAAA/D,UAAA;MAAA,OAAAkB,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAA2C,SAAA;QAAA,kBAAAA,SAAA,CAAAzC,IAAA,GAAAyC,SAAA,CAAAxC,IAAA;UAAA;YAC5CxB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAAAgG,SAAA,CAAAxC,IAAA;YAAA,OAE5CxB,UAAU,CAAC8D,0BAA0B,CAAC,CAAC;UAAA;YAE7C5D,MAAM,CAAChC,iBAAiB,CAACwB,wBAAwB,CAAC,CAACU,oBAAoB,CACrE8B,oBAAY,CAACC,aAAa,EAC1BC,4BAAoB,CAAC6B,UAAU,EAC/B3B,mBAAW,CAACC,UAAU,EACtB,sBACF,CAAC;UAAC;UAAA;YAAA,OAAAyB,SAAA,CAAApC,IAAA;QAAA;MAAA,GAAAmC,QAAA;IAAA,CACH,GAAC;IAEFhE,EAAE,CAAC,uCAAuC,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAA+C,SAAA;MAAA,IAAAlE,UAAA,EAAAmE,OAAA;MAAA,OAAAjD,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAA+C,SAAA;QAAA,kBAAAA,SAAA,CAAA7C,IAAA,GAAA6C,SAAA,CAAA5C,IAAA;UAAA;YACpCxB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5CmG,OAAO,GAAG;cAACE,IAAI,EAAE,IAAI;cAAEC,MAAM,EAAE;YAAgB,CAAC;YAAAF,SAAA,CAAA5C,IAAA;YAAA,OAEhDxB,UAAU,CAAC8D,0BAA0B,CAACK,OAAO,CAAC;UAAA;YAEpDjE,MAAM,CAACjC,gBAAgB,CAACc,UAAU,CAAC,CAACqB,oBAAoB,CAAC+D,OAAO,CAAC;UAAC;UAAA;YAAA,OAAAC,SAAA,CAAAxC,IAAA;QAAA;MAAA,GAAAsC,QAAA;IAAA,CACnE,GAAC;IAEFnE,EAAE,CAAC,yDAAyD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAoD,SAAA;MAAA,IAAAvE,UAAA;MAAA,OAAAkB,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAmD,SAAA;QAAA,kBAAAA,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAhD,IAAA;UAAA;YAC5DvD,gBAAgB,CAACc,UAAU,CAACgE,iBAAiB,CAAC,IAAI0B,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvEzE,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAAAwG,SAAA,CAAAhD,IAAA;YAAA,OAE5CtB,MAAM,CAACF,UAAU,CAAC8D,0BAA0B,CAAC,CAAC,CAAC,CAACY,QAAQ,CAAC/D,GAAG,CAACJ,OAAO,CAAC,CAAC;UAAA;YAE5EL,MAAM,CAAC7B,OAAO,CAAC,CAAC+B,oBAAoB,CAClC,iEAAiE,EACjE;cACEC,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CACF,CAAC;UAAC;UAAA;YAAA,OAAAkE,SAAA,CAAA5C,IAAA;QAAA;MAAA,GAAA2C,QAAA;IAAA,CACH,GAAC;IAEFxE,EAAE,CAAC,kDAAkD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAwD,SAAA;MAAA,IAAA3E,UAAA;MAAA,OAAAkB,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAuD,SAAA;QAAA,kBAAAA,SAAA,CAAArD,IAAA,GAAAqD,SAAA,CAAApD,IAAA;UAAA;YACrDvD,gBAAgB,CAACc,UAAU,CAACgE,iBAAiB,CAAC,IAAI0B,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvEzE,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAAA4G,SAAA,CAAApD,IAAA;YAAA,OAE5CxB,UAAU,CAAC8D,0BAA0B,CAAC,CAAC;UAAA;YAE7C5D,MAAM,CAAChC,iBAAiB,CAACwB,wBAAwB,CAAC,CAACU,oBAAoB,CACrE8B,oBAAY,CAACoB,mBAAmB,EAChClB,4BAAoB,CAAC6B,UAAU,EAC/B3B,mBAAW,CAACC,UAAU,EACtB,sBAAsB,EACtBzD,SAAS,EACT,0BACF,CAAC;UAAC;UAAA;YAAA,OAAA8F,SAAA,CAAAhD,IAAA;QAAA;MAAA,GAAA+C,QAAA;IAAA,CACH,GAAC;EACJ,CAAC,CAAC;EAEF5G,QAAQ,CAAC,8BAA8B,EAAE,YAAM;IAC7CgC,EAAE,CAAC,yDAAyD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAA0D,SAAA;MAAA,IAAA7E,UAAA,EAAA8E,cAAA,EAAAC,gBAAA,EAAAjE,MAAA;MAAA,OAAAI,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAA2D,SAAA;QAAA,kBAAAA,SAAA,CAAAzD,IAAA,GAAAyD,SAAA,CAAAxD,IAAA;UAAA;YAC3D3D,iCAAkB,CAAeyB,eAAe,CAAC,KAAK,CAAC;YAClDU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8G,cAAc,GAAG;cACrBG,GAAG,EAAE,4BAA4B;cACjC3E,MAAM,EAAE4E,mBAAY,CAACC,IAAI;cACzBjC,IAAI,EAAE;gBAACkC,MAAM,EAAE;cAAU;YAC3B,CAAC;YACKL,gBAAqC,GAAG;cAC5C9F,UAAU,EAAE,GAAG;cACfiE,IAAI,EAAE;gBAAC9D,QAAQ,EAAE;cAAY;YAC/B,CAAC;YACDpB,KAAK,CAACqH,OAAO,CAACxG,iBAAiB,CAACkG,gBAAgB,CAAC;YAACC,SAAA,CAAAxD,IAAA;YAAA,OAE7BxB,UAAU,CAACsF,WAAW,CAACR,cAAc,CAAC;UAAA;YAArDhE,MAAM,GAAAkE,SAAA,CAAAtD,IAAA;YAEZxB,MAAM,CAAClC,KAAK,CAACqH,OAAO,CAAC,CAACjF,oBAAoB,CAAC0E,cAAc,CAAC;YAC1D5E,MAAM,CAACY,MAAM,CAAC,CAACmC,OAAO,CAAC8B,gBAAgB,CAAC;YACxC7E,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAAC,+BAA+B,EAAE;cACpEC,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CAAC,CAAC;UAAC;UAAA;YAAA,OAAA0E,SAAA,CAAApD,IAAA;QAAA;MAAA,GAAAiD,QAAA;IAAA,CACJ,GAAC;IAEF9E,EAAE,CAAC,wDAAwD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAoE,UAAA;MAAA,IAAAvF,UAAA,EAAA8E,cAAA;MAAA,OAAA5D,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAmE,UAAA;QAAA,kBAAAA,UAAA,CAAAjE,IAAA,GAAAiE,UAAA,CAAAhE,IAAA;UAAA;YAC1D3D,iCAAkB,CAAeyB,eAAe,CAAC,KAAK,CAAC;YAClDU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8G,cAAc,GAAG;cACrBG,GAAG,EAAE,wCAAwC;cAC7C3E,MAAM,EAAE4E,mBAAY,CAACO,GAAG;cACxBtC,OAAO,EAAE;gBAAC,iBAAiB,EAAE;cAAO;YACtC,CAAC;YACDnF,KAAK,CAACqH,OAAO,CAACxG,iBAAiB,CAAC;cAACI,UAAU,EAAE;YAAG,CAAC,CAAC;YAACuG,UAAA,CAAAhE,IAAA;YAAA,OAE7CxB,UAAU,CAACsF,WAAW,CAACR,cAAc,CAAC;UAAA;YAE5C5E,MAAM,CAAClC,KAAK,CAACqH,OAAO,CAAC,CAACjF,oBAAoB,CAAC0E,cAAc,CAAC;UAAC;UAAA;YAAA,OAAAU,UAAA,CAAA5D,IAAA;QAAA;MAAA,GAAA2D,SAAA;IAAA,CAC5D,GAAC;IAEFxF,EAAE,CAAC,6CAA6C,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAuE,UAAA;MAAA,IAAA1F,UAAA,EAAA+E,gBAAA,EAAAjE,MAAA;MAAA,OAAAI,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAsE,UAAA;QAAA,kBAAAA,UAAA,CAAApE,IAAA,GAAAoE,UAAA,CAAAnE,IAAA;UAAA;YAC/C3D,iCAAkB,CAAeyB,eAAe,CAAC,KAAK,CAAC;YAClDU,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C+G,gBAAgB,GAAG;cACvB9F,UAAU,EAAE,GAAG;cACfiE,IAAI,EAAE;gBAACL,KAAK,EAAE;cAAW,CAAC;cAC1BM,OAAO,EAAE;gBAAC,eAAe,EAAE;cAAW;YACxC,CAAC;YACDnF,KAAK,CAACqH,OAAO,CAACxG,iBAAiB,CAACkG,gBAAgB,CAAC;YAACY,UAAA,CAAAnE,IAAA;YAAA,OAE7BxB,UAAU,CAACsF,WAAW,CAAC;cAC1CL,GAAG,EAAE,cAAc;cACnB3E,MAAM,EAAE4E,mBAAY,CAACO;YACvB,CAAC,CAAC;UAAA;YAHI3E,MAAM,GAAA6E,UAAA,CAAAjE,IAAA;YAKZxB,MAAM,CAACY,MAAM,CAAC,CAACmC,OAAO,CAAC8B,gBAAgB,CAAC;UAAC;UAAA;YAAA,OAAAY,UAAA,CAAA/D,IAAA;QAAA;MAAA,GAAA8D,SAAA;IAAA,CAC1C,GAAC;EACJ,CAAC,CAAC;EAEF3H,QAAQ,CAAC,mCAAmC,EAAE,YAAM;IAClDQ,UAAU,CAAC,YAAM;MACdV,iCAAkB,CAAeyB,eAAe,CAAC,IAAI,CAAC;IACzD,CAAC,CAAC;IAEFS,EAAE,CAAC,uDAAuD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAyE,UAAA;MAAA,IAAA5F,UAAA,EAAA8E,cAAA;MAAA,OAAA5D,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAwE,UAAA;QAAA,kBAAAA,UAAA,CAAAtE,IAAA,GAAAsE,UAAA,CAAArE,IAAA;UAAA;YACpDxB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8G,cAAc,GAAG;cACrBG,GAAG,EAAE,4BAA4B;cACjC3E,MAAM,EAAE4E,mBAAY,CAACC,IAAI;cACzBjC,IAAI,EAAE;gBAACkC,MAAM,EAAE;cAAU;YAC3B,CAAC;YAAAS,UAAA,CAAArE,IAAA;YAAA,OAEKxB,UAAU,CAACsF,WAAW,CAACR,cAAc,CAAC;UAAA;YAE5C5E,MAAM,CAACjC,gBAAgB,CAACe,cAAc,CAAC,CAACoB,oBAAoB,CAC1DF,MAAM,CAAC4F,gBAAgB,CAAC;cACtBC,IAAI,EAAEC,qCAA0B,CAACC;YACnC,CAAC,CACH,CAAC;YACD/F,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAAC,8BAA8B,EAAE;cACnEC,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAuF,UAAA,CAAAjE,IAAA;QAAA;MAAA,GAAAgE,SAAA;IAAA,CACJ,GAAC;IAEF7F,EAAE,CAAC,+CAA+C,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAA+E,UAAA;MAAA,IAAAlG,UAAA,EAAA8E,cAAA;MAAA,OAAA5D,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAA8E,UAAA;QAAA,kBAAAA,UAAA,CAAA5E,IAAA,GAAA4E,UAAA,CAAA3E,IAAA;UAAA;YAC5CxB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8G,cAAc,GAAG;cACrBG,GAAG,EAAE,2BAA2B;cAChC3E,MAAM,EAAE4E,mBAAY,CAACC;YACvB,CAAC;YAAAgB,UAAA,CAAA3E,IAAA;YAAA,OAEKtB,MAAM,CAACF,UAAU,CAACsF,WAAW,CAACR,cAAc,CAAC,CAAC,CAAC9B,OAAO,CAACzC,OAAO,CAClE,6CACF,CAAC;UAAA;YAEDL,MAAM,CAAC5B,QAAQ,CAAC,CAAC8B,oBAAoB,CACnCF,MAAM,CAACmD,gBAAgB,CAAC,oCAAoC,CAAC,EAC7D;cACEhD,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CACF,CAAC;UAAC;UAAA;YAAA,OAAA6F,UAAA,CAAAvE,IAAA;QAAA;MAAA,GAAAsE,SAAA;IAAA,CACH,GAAC;IAEFnG,EAAE,CAAC,sDAAsD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAiF,UAAA;MAAA,IAAApG,UAAA,EAAA8E,cAAA;MAAA,OAAA5D,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAgF,UAAA;QAAA,kBAAAA,UAAA,CAAA9E,IAAA,GAAA8E,UAAA,CAAA7E,IAAA;UAAA;YACnDxB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8G,cAAc,GAAG;cACrBG,GAAG,EAAE,4BAA4B;cACjC3E,MAAM,EAAE4E,mBAAY,CAACC;YACvB,CAAC;YAAAkB,UAAA,CAAA7E,IAAA;YAAA,OAEKxB,UAAU,CAACsF,WAAW,CAACR,cAAc,CAAC;UAAA;YAE5C5E,MAAM,CAACP,QAAI,CAAC,CAACgC,gBAAgB,CAAC,CAAC;YAC/BzB,MAAM,CAACjC,gBAAgB,CAACe,cAAc,CAAC,CAACoB,oBAAoB,CAC1DF,MAAM,CAAC4F,gBAAgB,CAAC;cACtB5G,UAAU,EAAE;YACd,CAAC,CACH,CAAC;UAAC;UAAA;YAAA,OAAAmH,UAAA,CAAAzE,IAAA;QAAA;MAAA,GAAAwE,SAAA;IAAA,CACH,GAAC;IAEFrG,EAAE,CAAC,wDAAwD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAmF,UAAA;MAAA,IAAAtG,UAAA,EAAA8E,cAAA;MAAA,OAAA5D,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAkF,UAAA;QAAA,kBAAAA,UAAA,CAAAhF,IAAA,GAAAgF,UAAA,CAAA/E,IAAA;UAAA;YACrDxB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8G,cAAc,GAAG;cACrBG,GAAG,EAAE,4BAA4B;cACjC3E,MAAM,EAAE4E,mBAAY,CAACC,IAAI;cACzBjC,IAAI,EAAE;gBAACkC,MAAM,EAAE;cAAU,CAAC;cAC1BjC,OAAO,EAAE;gBAAC,UAAU,EAAE;cAAc;YACtC,CAAC;YAAAoD,UAAA,CAAA/E,IAAA;YAAA,OAEKxB,UAAU,CAACsF,WAAW,CAACR,cAAc,CAAC;UAAA;YAE5C5E,MAAM,CAACjC,gBAAgB,CAACe,cAAc,CAAC,CAACoB,oBAAoB,CAAC;cAC3D2F,IAAI,EAAEC,qCAA0B,CAACC,QAAQ;cACzC/G,UAAU,EAAE,8BAA8B;cAC1C4D,QAAQ,EAAE;gBACR,UAAU,EAAE,cAAc;gBAC1B0D,SAAS,EAAE,oBAAoB;gBAC/BC,aAAa,EAAE;cACjB,CAAC;cACDtH,IAAI,EAAE;gBAACiG,MAAM,EAAE;cAAU;YAC3B,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAmB,UAAA,CAAA3E,IAAA;QAAA;MAAA,GAAA0E,SAAA;IAAA,CACJ,GAAC;IAEFvG,EAAE,CAAC,8DAA8D,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAuF,UAAA;MAAA,IAAA1G,UAAA,EAAA8E,cAAA;MAAA,OAAA5D,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAsF,UAAA;QAAA,kBAAAA,UAAA,CAAApF,IAAA,GAAAoF,UAAA,CAAAnF,IAAA;UAAA;YACjExD,KAAK,CAAC4I,WAAW,CAACC,YAAY,CAAChI,iBAAiB,CAAC,sBAAsB,CAAC;YAClEmB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8G,cAAc,GAAG;cACrBG,GAAG,EAAE,+DAA+D;cACpE3E,MAAM,EAAE4E,mBAAY,CAACC;YACvB,CAAC;YAAAwB,UAAA,CAAAnF,IAAA;YAAA,OAEKxB,UAAU,CAACsF,WAAW,CAACR,cAAc,CAAC;UAAA;YAE5C5E,MAAM,CAAClC,KAAK,CAAC4I,WAAW,CAACC,YAAY,CAAC,CAAClF,gBAAgB,CAAC,CAAC;YACzDzB,MAAM,CAACjC,gBAAgB,CAACe,cAAc,CAAC,CAACoB,oBAAoB,CAC1DF,MAAM,CAAC4F,gBAAgB,CAAC;cACtBC,IAAI,EAAEC,qCAA0B,CAACc,SAAS;cAC1ChE,QAAQ,EAAE5C,MAAM,CAAC4F,gBAAgB,CAAC;gBAChCW,aAAa,EAAE;cACjB,CAAC;YACH,CAAC,CACH,CAAC;UAAC;UAAA;YAAA,OAAAE,UAAA,CAAA/E,IAAA;QAAA;MAAA,GAAA8E,SAAA;IAAA,CACH,GAAC;IAEF3G,EAAE,CAAC,0DAA0D,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAA4F,UAAA;MAAA,IAAA/G,UAAA,EAAA8E,cAAA;MAAA,OAAA5D,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAA2F,UAAA;QAAA,kBAAAA,UAAA,CAAAzF,IAAA,GAAAyF,UAAA,CAAAxF,IAAA;UAAA;YACvDxB,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAC5C8G,cAAc,GAAG;cACrBG,GAAG,EAAE,4BAA4B;cACjC3E,MAAM,EAAE4E,mBAAY,CAACC;YACvB,CAAC;YAAA6B,UAAA,CAAAxF,IAAA;YAAA,OAEKxB,UAAU,CAACsF,WAAW,CAACR,cAAc,CAAC;UAAA;YAE5C5E,MAAM,CAAClC,KAAK,CAAC4I,WAAW,CAACC,YAAY,CAAC,CAAClG,GAAG,CAACgB,gBAAgB,CAAC,CAAC;YAC7DzB,MAAM,CAACjC,gBAAgB,CAACe,cAAc,CAAC,CAACoB,oBAAoB,CAC1DF,MAAM,CAAC4F,gBAAgB,CAAC;cACtBhD,QAAQ,EAAE5C,MAAM,CAAC4F,gBAAgB,CAAC;gBAChCW,aAAa,EAAE;cACjB,CAAC;YACH,CAAC,CACH,CAAC;UAAC;UAAA;YAAA,OAAAO,UAAA,CAAApF,IAAA;QAAA;MAAA,GAAAmF,SAAA;IAAA,CACH,GAAC;IAEFhH,EAAE,CAAC,gEAAgE,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAA8F,UAAA;MAAA,IAAAC,UAAA,EAAAlH,UAAA,EAAAc,MAAA;MAAA,OAAAI,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAA8F,UAAA;QAAA,kBAAAA,UAAA,CAAA5F,IAAA,GAAA4F,UAAA,CAAA3F,IAAA;UAAA;YAC7D0F,UAAgC,GAAG;cACvCnB,IAAI,EAAE,mBAAmB;cACzB9G,UAAU,EAAE,GAAG;cACf0D,aAAa,EAAE,SAAS;cACxBzD,UAAU,EAAE,WAAW;cACvBC,IAAI,EAAE;gBAACC,QAAQ,EAAE,YAAY;gBAAEgI,aAAa,EAAE;cAAU,CAAC;cACzDtE,QAAQ,EAAE;gBAAC,mBAAmB,EAAE;cAAO;YACzC,CAAC;YACD7E,gBAAgB,CAACe,cAAc,CAACH,iBAAiB,CAACqI,UAAU,CAAC;YACvDlH,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAAAmJ,UAAA,CAAA3F,IAAA;YAAA,OAE7BxB,UAAU,CAACsF,WAAW,CAAC;cAC1CL,GAAG,EAAE,4BAA4B;cACjC3E,MAAM,EAAE4E,mBAAY,CAACC;YACvB,CAAC,CAAC;UAAA;YAHIrE,MAAM,GAAAqG,UAAA,CAAAzF,IAAA;YAKZxB,MAAM,CAACY,MAAM,CAAC,CAACmC,OAAO,CAAC;cACrBhE,UAAU,EAAE,GAAG;cACfiE,IAAI,EAAE;gBAAC9D,QAAQ,EAAE,YAAY;gBAAEgI,aAAa,EAAE;cAAU,CAAC;cACzDjE,OAAO,EAAE;gBACPC,UAAU,EAAE,WAAW;gBACvB,mBAAmB,EAAE;cACvB;YACF,CAAC,CAAC;YACFlD,MAAM,CAAC9B,MAAM,CAAC,CAACgC,oBAAoB,CAACF,MAAM,CAACmD,gBAAgB,CAAC,uBAAuB,CAAC,EAAE;cACpFhD,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CAAC,CAAC;UAAC;UAAA;YAAA,OAAA6G,UAAA,CAAAvF,IAAA;QAAA;MAAA,GAAAqF,SAAA;IAAA,CACJ,GAAC;IAEFlH,EAAE,CAAC,qDAAqD,mBAAAiB,kBAAA,CAAAC,OAAA,eAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAE,SAAAkG,UAAA;MAAA,IAAAC,OAAA,EAAAtH,UAAA;MAAA,OAAAkB,YAAA,CAAAD,OAAA,CAAAI,IAAA,WAAAkG,UAAA;QAAA,kBAAAA,UAAA,CAAAhG,IAAA,GAAAgG,UAAA,CAAA/F,IAAA;UAAA;YAClD8F,OAAO,GAAG;cACdrI,UAAU,EAAE,GAAG;cACf0D,aAAa,EAAE,aAAa;cAC5BzD,UAAU,EAAE,iBAAiB;cAC7B0D,QAAQ,EAAE;gBACR3D,UAAU,EAAE,GAAG;gBACfC,UAAU,EAAE,iBAAiB;gBAC7BC,IAAI,EAAE;kBAAC0D,KAAK,EAAE;gBAAiB,CAAC;gBAChCC,QAAQ,EAAE;kBAAC,cAAc,EAAE;gBAAQ;cACrC;YACF,CAAC;YACD7E,gBAAgB,CAACe,cAAc,CAAC+D,iBAAiB,CAACuE,OAAO,CAAC;YACpDtH,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;cAACjC,KAAK,EAALA;YAAK,CAAC,CAAC;YAAAuJ,UAAA,CAAA/F,IAAA;YAAA,OAE5CtB,MAAM,CACVF,UAAU,CAACsF,WAAW,CAAC;cACrBL,GAAG,EAAE,4BAA4B;cACjC3E,MAAM,EAAE4E,mBAAY,CAACC;YACvB,CAAC,CACH,CAAC,CAACnC,OAAO,CAACC,OAAO,CAAC;cAChBhE,UAAU,EAAE,GAAG;cACfiE,IAAI,EAAE;gBAACL,KAAK,EAAE;cAAiB,CAAC;cAChCM,OAAO,EAAE;gBACPC,UAAU,EAAE,iBAAiB;gBAC7B,cAAc,EAAE;cAClB;YACF,CAAC,CAAC;UAAA;YAEFlD,MAAM,CAAC5B,QAAQ,CAAC,CAAC8B,oBAAoB,CAACF,MAAM,CAACmD,gBAAgB,CAAC,oBAAoB,CAAC,EAAE;cACnFhD,IAAI,EAAE,SAAS;cACfC,MAAM,EAAE;YACV,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAiH,UAAA,CAAA3F,IAAA;QAAA;MAAA,GAAAyF,SAAA;IAAA,CACJ,GAAC;EACJ,CAAC,CAAC;EAEFtJ,QAAQ,CAAC,8BAA8B,EAAE,YAAM;IAC7CgC,EAAE,CAAC,6CAA6C,EAAE,YAAM;MACtD,IAAMC,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAClD,IAAMwJ,QAAQ,GAAGhK,IAAI,CAACG,EAAE,CAAC,CAAC;MAE1BqC,UAAU,CAACyH,4BAA4B,CAACD,QAAQ,CAAC;MAEjDtH,MAAM,CAACjC,gBAAgB,CAACuB,EAAE,CAAC,CAACY,oBAAoB,CAAC,mBAAmB,EAAEF,MAAM,CAACqD,GAAG,CAACmE,QAAQ,CAAC,CAAC;MAC3FxH,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAAC,uCAAuC,EAAE;QAC5EC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE;MACV,CAAC,CAAC;MACFJ,MAAM,CAAC9B,MAAM,CAAC,CAACgC,oBAAoB,CAAC,sCAAsC,EAAE;QAC1EC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE;MACV,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFP,EAAE,CAAC,kEAAkE,EAAE,YAAM;MAC3E,IAAMC,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAClD,IAAMwJ,QAAQ,GAAGhK,IAAI,CAACG,EAAE,CAAC,CAAC;MAC1B,IAAMgK,SAA2B,GAAG;QAClC5B,IAAI,EAAE,mBAAmB;QACzB6B,OAAO,EAAE,SAAS;QAClB1I,UAAU,EAAE,WAAW;QACvBC,IAAI,EAAE;UACJ0I,SAAS,EAAE;QACb;MACF,CAAC;MAED7H,UAAU,CAACyH,4BAA4B,CAACD,QAAQ,CAAC;MAEjD,IAAMM,gBAAgB,GAAG7J,gBAAgB,CAACuB,EAAE,CAAC/B,IAAI,CAACsK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAC7DD,gBAAgB,CAACH,SAAS,CAAC;MAE3BzH,MAAM,CAACsH,QAAQ,CAAC,CAACpH,oBAAoB,CAACuH,SAAS,CAAC;IAClD,CAAC,CAAC;IAEF5H,EAAE,CAAC,0CAA0C,EAAE,YAAM;MACnD,IAAMC,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAClD,IAAMwJ,QAAQ,GAAGhK,IAAI,CAACG,EAAE,CAAC,CAAC;MAE1BqC,UAAU,CAACyH,4BAA4B,CAACD,QAAQ,CAAC;MAEjDtH,MAAM,CAAChC,iBAAiB,CAACwB,wBAAwB,CAAC,CAACU,oBAAoB,CACrE8B,oBAAY,CAACC,aAAa,EAC1BC,4BAAoB,CAAC4F,mBAAmB,EACxC1F,mBAAW,CAACC,UACd,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFxE,QAAQ,CAAC,gCAAgC,EAAE,YAAM;IAC/CgC,EAAE,CAAC,+CAA+C,EAAE,YAAM;MACxD,IAAMC,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAElDgC,UAAU,CAACiI,8BAA8B,CAAC,CAAC;MAE3C/H,MAAM,CAACjC,gBAAgB,CAACwB,GAAG,CAAC,CAACW,oBAAoB,CAAC,mBAAmB,CAAC;MACtEF,MAAM,CAAC/B,OAAO,CAAC,CAACiC,oBAAoB,CAAC,uCAAuC,EAAE;QAC5EC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE;MACV,CAAC,CAAC;MACFJ,MAAM,CAAC9B,MAAM,CAAC,CAACgC,oBAAoB,CAAC,sCAAsC,EAAE;QAC1EC,IAAI,EAAE,SAAS;QACfC,MAAM,EAAE;MACV,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFP,EAAE,CAAC,4CAA4C,EAAE,YAAM;MACrD,IAAMC,UAAU,GAAGxB,mBAAU,CAACyB,WAAW,CAAC;QAACjC,KAAK,EAALA;MAAK,CAAC,CAAC;MAElDgC,UAAU,CAACiI,8BAA8B,CAAC,CAAC;MAE3C/H,MAAM,CAAChC,iBAAiB,CAACwB,wBAAwB,CAAC,CAACU,oBAAoB,CACrE8B,oBAAY,CAACC,aAAa,EAC1BC,4BAAoB,CAAC8F,qBAAqB,EAC1C5F,mBAAW,CAACC,UACd,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {MobiusCallData, MobiusRegistrationDownData} from '../calling/types';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\n\n/**\n * Configuration for APIRequest class\n */\nexport interface APIRequestConfig {\n /** Webex SDK instance for making requests */\n webex: WebexSDK;\n}\n\n/**\n * Request options for makeRequest method (alias for compatibility)\n */\nexport type APIRequestOptions = WebexRequestPayload;\n\n/**\n * Request options for Mobius WebSocket requests\n */\nexport interface MobiusSocketRequestOptions {\n /** Request type (typically HTTP method like GET, POST, etc.) */\n type: string;\n /** Unique tracking ID for the request */\n trackingId: string;\n /** Optional metadata (uri, service, headers, etc.) */\n metadata?: Record<string, unknown>;\n /** Optional request data/body */\n data?: unknown;\n}\n\n/**\n * Response structure for Mobius WebSocket requests\n */\nexport type MobiusSocketResponse = {\n type: string;\n trackingId: string;\n statusCode: number;\n statusMessage: string;\n metadata?: Record<string, unknown>;\n data?: unknown;\n};\n\n/**\n * Function signature for MobiusSocket.sendWssRequest.\n * Sends a websocket request data and resolves when the matching response arrives.\n */\nexport type SendWssRequestFn = (\n data: MobiusSocketRequestOptions,\n sessionIdOrOptions?: string | Record<string, unknown>,\n options?: Record<string, unknown>\n) => Promise<MobiusSocketResponse>;\n\nexport type MobiusAsyncEvent = {\n type: string;\n eventId: string;\n trackingId: string;\n data: MobiusCallData | MobiusRegistrationDownData;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {MobiusCallData, MobiusRegistrationDownData} from '../calling/types';\nimport {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\n\n/**\n * Configuration for APIRequest class\n */\nexport interface APIRequestConfig {\n /** Webex SDK instance for making requests */\n webex: WebexSDK;\n}\n\n/**\n * Request options for makeRequest method (alias for compatibility)\n */\nexport type APIRequestOptions = WebexRequestPayload;\n\n/**\n * Request options for Mobius WebSocket requests\n */\nexport interface MobiusSocketRequestOptions {\n /** Request type (typically HTTP method like GET, POST, etc.) */\n type: string;\n /** Unique tracking ID for the request */\n trackingId: string;\n /** Optional metadata (uri, service, headers, etc.) */\n metadata?: Record<string, unknown>;\n /** Optional request data/body */\n data?: unknown;\n}\n\n/**\n * Response structure for Mobius WebSocket requests\n */\nexport type MobiusSocketResponse = {\n type: string;\n trackingId: string;\n statusCode: number;\n statusMessage: string;\n metadata?: Record<string, unknown>;\n data?: unknown;\n};\n\n/**\n * Function signature for MobiusSocket.sendWssRequest.\n * Sends a websocket request data and resolves when the matching response arrives.\n */\nexport type SendWssRequestFn = (\n data: MobiusSocketRequestOptions,\n options?: Record<string, unknown>\n) => Promise<MobiusSocketResponse>;\n\nexport type MobiusAsyncEvent = {\n type: string;\n eventId: string;\n trackingId: string;\n data: MobiusCallData | MobiusRegistrationDownData;\n};\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {FailoverCacheState} from 'CallingClient/registration/types';\nimport {\n KmsKey,\n KmsResourceObject,\n LogsMetaData,\n PeopleListResponse,\n UploadLogsResponse,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable no-shadow */\n\ntype Listener = (e: string, data?: unknown) => void;\ntype ListenerOff = (e: string) => void;\n\nexport type ServiceHost = {\n host: string;\n ttl: number;\n priority: number;\n id: string;\n homeCluster?: boolean;\n};\n\nexport type Model = {\n _values: {\n key: string;\n };\n};\n\nexport type ServiceCatalog = {\n serviceGroups: {\n // cSpell:disable\n postauth: [\n {\n _values: {\n name: string;\n hosts: ServiceHost[];\n };\n }\n ];\n /* cSpell:enable */\n };\n};\n\nexport type ClientRegionInfo = {\n attribution: string;\n clientAddress: string;\n clientRegion: string;\n countryCode: string;\n disclaimer: string;\n regionCode: string;\n timezone: string;\n};\n\nexport type Logger = {\n config?: {\n level: string;\n bufferLogLevel: string;\n };\n log: (payload: string) => void;\n error: (payload: string) => void;\n warn: (payload: string) => void;\n info: (payload: string) => void;\n trace: (payload: string) => void;\n debug: (payload: string) => void;\n};\n\n// TODO: is there a way to import bindings from the Webex JS SDK without having to redefine expected methods and structure?\n// This defines the shape for the webex SDK, if a typing doesn't exist, it should be added here\nexport interface WebexSDK {\n boundedStorage: {\n get: (namespace: string, key: string) => Promise<FailoverCacheState>;\n put: (namespace: string, key: string, value: FailoverCacheState) => Promise<void>;\n del: (namespace: string, key: string) => Promise<void>;\n };\n // top level primitives/funcs\n config: {fedramp: boolean};\n version: string;\n canAuthorize: boolean;\n credentials: {\n getUserToken: () => Promise<string>;\n };\n ready: boolean;\n request: <T>(payload: WebexRequestPayload) => Promise<T>;\n // internal plugins\n internal: {\n mercury: {\n on: Listener;\n off: ListenerOff;\n connected: boolean;\n connecting: boolean;\n };\n calendar: unknown;\n device: {\n url: string;\n userId: string;\n orgId: string;\n version: string;\n callingBehavior: string;\n /** WDM / device-registration settings (e.g. `webrtc-calling-over-ws`). */\n settings?: Record<string, {value?: boolean} | undefined>;\n features: {\n developer: {\n models: Model[];\n get: (key: string) => {value: boolean} | undefined;\n };\n entitlement: {\n models: Model[];\n };\n };\n };\n encryption: {\n decryptText: (encryptionKeyUrl: string, encryptedData?: string) => Promise<string>;\n encryptText: (encryptionKeyUrl: string, text?: string) => Promise<string>;\n kms: {\n createUnboundKeys: (arg0: {count?: number}) => Promise<KmsKey[]>;\n createResource: (arg0: {keyUris: string[]}) => Promise<KmsResourceObject>;\n bindKey: (arg0: {kroUri: string; keyUri: string}) => Promise<KmsKey>;\n };\n };\n presence: unknown;\n support: {\n submitLogs: (\n metaData: LogsMetaData,\n logs?: string,\n options?: {\n type: 'diff' | 'full';\n }\n ) => Promise<UploadLogsResponse>;\n };\n services: {\n _hostCatalog: Record<string, ServiceHost[]>;\n _serviceUrls: {\n mobius: string;\n identity: string;\n janus: string;\n wdm: string;\n broadworksIdpProxy: string;\n hydra: string;\n mercuryApi: string;\n 'ucmgmt-gateway': string;\n contactsService: string;\n };\n _activeServices: {\n broadworksIdpProxy: string;\n contactsService: string;\n hydra: string;\n janus: string;\n mercuryApi: string;\n mobius: string;\n };\n get: (service: string) => string;\n getMobiusClusters: () => ServiceHost[];\n fetchClientRegionInfo: () => Promise<ClientRegionInfo>;\n };\n metrics: {\n submitClientMetrics: (name: string, data: unknown) => void;\n };\n };\n // public plugins\n logger: Logger;\n messages: unknown;\n memberships: unknown;\n people: {\n list: (arg: object) => Promise<PeopleListResponse>;\n };\n rooms: unknown;\n teams: unknown;\n}\n\nexport interface ISDKConnector {\n setWebex: (webexInstance: WebexSDK) => void;\n getWebex: () => WebexSDK;\n get: () => ISDKConnector;\n registerListener: <T>(event: string, cb: (data?: T) => unknown) => void;\n unregisterListener: (event: string) => void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {FailoverCacheState} from 'CallingClient/registration/types';\nimport {\n KmsKey,\n KmsResourceObject,\n LogsMetaData,\n PeopleListResponse,\n UploadLogsResponse,\n WebexRequestPayload,\n} from '../common/types';\n/* eslint-disable no-shadow */\n\ntype Listener = (e: string, data?: unknown) => void;\ntype ListenerOff = (e: string) => void;\n\nexport type ServiceHost = {\n host: string;\n ttl: number;\n priority: number;\n id: string;\n homeCluster?: boolean;\n};\n\nexport type Model = {\n _values: {\n key: string;\n };\n};\n\nexport type ServiceCatalog = {\n serviceGroups: {\n // cSpell:disable\n postauth: [\n {\n _values: {\n name: string;\n hosts: ServiceHost[];\n };\n }\n ];\n /* cSpell:enable */\n };\n};\n\nexport type ClientRegionInfo = {\n attribution: string;\n clientAddress: string;\n clientRegion: string;\n countryCode: string;\n disclaimer: string;\n regionCode: string;\n timezone: string;\n};\n\nexport type Logger = {\n config?: {\n level: string;\n bufferLogLevel: string;\n };\n log: (payload: string) => void;\n error: (payload: string) => void;\n warn: (payload: string) => void;\n info: (payload: string) => void;\n trace: (payload: string) => void;\n debug: (payload: string) => void;\n};\n\n// TODO: is there a way to import bindings from the Webex JS SDK without having to redefine expected methods and structure?\n// This defines the shape for the webex SDK, if a typing doesn't exist, it should be added here\nexport interface WebexSDK {\n boundedStorage: {\n get: (namespace: string, key: string) => Promise<FailoverCacheState>;\n put: (namespace: string, key: string, value: FailoverCacheState) => Promise<void>;\n del: (namespace: string, key: string) => Promise<void>;\n };\n // top level primitives/funcs\n config: {\n fedramp: boolean;\n defaultMobiusSocketOptions?: Record<string, unknown>;\n };\n version: string;\n canAuthorize: boolean;\n credentials: {\n getUserToken: () => Promise<string>;\n canRefresh?: boolean;\n refresh?: (options: {force: boolean}) => Promise<unknown>;\n };\n ready: boolean;\n sessionId?: string;\n request: <T>(payload: WebexRequestPayload) => Promise<T>;\n // internal plugins\n internal: {\n mercury: {\n on: Listener;\n off: ListenerOff;\n connected: boolean;\n connecting: boolean;\n };\n feature?: {\n updateFeature?: (featureToggle: unknown) => void;\n };\n calendar: unknown;\n device: {\n url: string;\n userId: string;\n orgId: string;\n version: string;\n callingBehavior: string;\n registered?: boolean;\n webSocketUrl?: string;\n register?: () => Promise<unknown>;\n refresh?: () => Promise<unknown>;\n /** WDM / device-registration settings (e.g. `webrtc-calling-over-ws`). */\n settings?: Record<string, {value?: boolean} | undefined>;\n features: {\n developer: {\n models: Model[];\n get: (key: string) => {value: boolean} | undefined;\n };\n entitlement: {\n models: Model[];\n };\n };\n };\n encryption: {\n decryptText: (encryptionKeyUrl: string, encryptedData?: string) => Promise<string>;\n encryptText: (encryptionKeyUrl: string, text?: string) => Promise<string>;\n kms: {\n createUnboundKeys: (arg0: {count?: number}) => Promise<KmsKey[]>;\n createResource: (arg0: {keyUris: string[]}) => Promise<KmsResourceObject>;\n bindKey: (arg0: {kroUri: string; keyUri: string}) => Promise<KmsKey>;\n };\n };\n presence: unknown;\n support: {\n submitLogs: (\n metaData: LogsMetaData,\n logs?: string,\n options?: {\n type: 'diff' | 'full';\n }\n ) => Promise<UploadLogsResponse>;\n };\n services: {\n _hostCatalog: Record<string, ServiceHost[]>;\n _serviceUrls: {\n mobius: string;\n identity: string;\n janus: string;\n wdm: string;\n broadworksIdpProxy: string;\n hydra: string;\n mercuryApi: string;\n 'ucmgmt-gateway': string;\n contactsService: string;\n };\n _activeServices: {\n broadworksIdpProxy: string;\n contactsService: string;\n hydra: string;\n janus: string;\n mercuryApi: string;\n mobius: string;\n };\n get: (service: string) => string;\n getMobiusClusters: () => ServiceHost[];\n fetchClientRegionInfo: () => Promise<ClientRegionInfo>;\n invalidateCache?: (timestamp: unknown) => void;\n switchActiveClusterIds?: (activeClusters: unknown) => void;\n };\n metrics: {\n submitClientMetrics: (name: string, data: unknown) => void;\n };\n };\n // public plugins\n logger: Logger;\n messages: unknown;\n memberships: unknown;\n people: {\n list: (arg: object) => Promise<PeopleListResponse>;\n };\n rooms: unknown;\n teams: unknown;\n}\n\nexport interface ISDKConnector {\n setWebex: (webexInstance: WebexSDK) => void;\n getWebex: () => WebexSDK;\n get: () => ISDKConnector;\n registerListener: <T>(event: string, cb: (data?: T) => unknown) => void;\n unregisterListener: (event: string) => void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -10,50 +10,13 @@ exports.default = void 0;
10
10
  */
11
11
 
12
12
  var mobiusSocketConfig = {
13
- /**
14
- * Milliseconds to wait for websocket request/response messages, including auth.
15
- * Type: string | number
16
- */
17
- wssResponseTimeout: process.env.MOBIUS_SOCKET_RESPONSE_TIMEOUT || process.env.MOBIUS_SOCKET_AUTH_RESPONSE_TIMEOUT || 10000,
18
- /**
19
- * Maximum milliseconds between connection attempts
20
- * Type: string | number
21
- */
22
- backoffTimeMax: process.env.MOBIUS_SOCKET_BACKOFF_TIME_MAX || 32000,
23
- /**
24
- * Initial milliseconds between connection attempts
25
- * Type: string | number
26
- */
27
- backoffTimeReset: process.env.MOBIUS_SOCKET_BACKOFF_TIME_RESET || 1000,
28
- /**
29
- * Maximum number of retries for the initial connect() flow before rejecting.
30
- * Type: string | number
31
- */
32
- initialConnectionMaxRetries: process.env.MOBIUS_SOCKET_INITIAL_CONNECTION_MAX_RETRIES || 0,
33
- /**
34
- * Maximum number of retries for reconnect attempts after the socket has connected once.
35
- * A value of 0 means unlimited reconnect retries.
36
- * Type: string | number
37
- */
38
- maxRetries: process.env.MOBIUS_SOCKET_MAX_RETRIES || 0,
39
- /**
40
- * Milliseconds to wait for a close frame before declaring the socket dead and
41
- * discarding it
42
- * Type: string | number
43
- */
44
- forceCloseDelay: process.env.MOBIUS_SOCKET_FORCE_CLOSE_DELAY || 2000,
45
- /**
46
- * When logging out, use default reason which can trigger a reconnect,
47
- * or set to something else, like `done (permanent)` to prevent reconnect
48
- * Type: string
49
- */
50
- beforeLogoutOptionsCloseReason: process.env.MOBIUS_SOCKET_LOGOUT_REASON || 'done (forced)',
51
- /**
52
- * Maximum number of eventIds to retain in the dedup cache for suppressing
53
- * duplicate async_event messages retransmitted by the server.
54
- * Type: string | number
55
- */
56
- dedupCacheMaxSize: process.env.MOBIUS_SOCKET_DEDUP_CACHE_MAX_SIZE || 1000
13
+ wssResponseTimeout: 10000,
14
+ backoffTimeMax: 32000,
15
+ backoffTimeReset: 1000,
16
+ initialConnectionMaxRetries: 0,
17
+ maxRetries: 0,
18
+ forceCloseDelay: 2000,
19
+ dedupCacheMaxSize: 1000
57
20
  };
58
21
  var _default = exports.default = {
59
22
  mobiusSocket: mobiusSocketConfig
@@ -1 +1 @@
1
- {"version":3,"names":["mobiusSocketConfig","wssResponseTimeout","process","env","MOBIUS_SOCKET_RESPONSE_TIMEOUT","MOBIUS_SOCKET_AUTH_RESPONSE_TIMEOUT","backoffTimeMax","MOBIUS_SOCKET_BACKOFF_TIME_MAX","backoffTimeReset","MOBIUS_SOCKET_BACKOFF_TIME_RESET","initialConnectionMaxRetries","MOBIUS_SOCKET_INITIAL_CONNECTION_MAX_RETRIES","maxRetries","MOBIUS_SOCKET_MAX_RETRIES","forceCloseDelay","MOBIUS_SOCKET_FORCE_CLOSE_DELAY","beforeLogoutOptionsCloseReason","MOBIUS_SOCKET_LOGOUT_REASON","dedupCacheMaxSize","MOBIUS_SOCKET_DEDUP_CACHE_MAX_SIZE","_default","exports","default","mobiusSocket"],"sources":["config.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport interface MobiusSocketConfig {\n wssResponseTimeout: string | number;\n backoffTimeMax: string | number;\n backoffTimeReset: string | number;\n initialConnectionMaxRetries: string | number;\n maxRetries: string | number;\n forceCloseDelay: string | number;\n beforeLogoutOptionsCloseReason: string;\n dedupCacheMaxSize: string | number;\n}\n\nconst mobiusSocketConfig: MobiusSocketConfig = {\n /**\n * Milliseconds to wait for websocket request/response messages, including auth.\n * Type: string | number\n */\n wssResponseTimeout:\n process.env.MOBIUS_SOCKET_RESPONSE_TIMEOUT ||\n process.env.MOBIUS_SOCKET_AUTH_RESPONSE_TIMEOUT ||\n 10000,\n /**\n * Maximum milliseconds between connection attempts\n * Type: string | number\n */\n backoffTimeMax: process.env.MOBIUS_SOCKET_BACKOFF_TIME_MAX || 32000,\n /**\n * Initial milliseconds between connection attempts\n * Type: string | number\n */\n backoffTimeReset: process.env.MOBIUS_SOCKET_BACKOFF_TIME_RESET || 1000,\n /**\n * Maximum number of retries for the initial connect() flow before rejecting.\n * Type: string | number\n */\n initialConnectionMaxRetries: process.env.MOBIUS_SOCKET_INITIAL_CONNECTION_MAX_RETRIES || 0,\n /**\n * Maximum number of retries for reconnect attempts after the socket has connected once.\n * A value of 0 means unlimited reconnect retries.\n * Type: string | number\n */\n maxRetries: process.env.MOBIUS_SOCKET_MAX_RETRIES || 0,\n /**\n * Milliseconds to wait for a close frame before declaring the socket dead and\n * discarding it\n * Type: string | number\n */\n forceCloseDelay: process.env.MOBIUS_SOCKET_FORCE_CLOSE_DELAY || 2000,\n /**\n * When logging out, use default reason which can trigger a reconnect,\n * or set to something else, like `done (permanent)` to prevent reconnect\n * Type: string\n */\n beforeLogoutOptionsCloseReason: process.env.MOBIUS_SOCKET_LOGOUT_REASON || 'done (forced)',\n /**\n * Maximum number of eventIds to retain in the dedup cache for suppressing\n * duplicate async_event messages retransmitted by the server.\n * Type: string | number\n */\n dedupCacheMaxSize: process.env.MOBIUS_SOCKET_DEDUP_CACHE_MAX_SIZE || 1000,\n};\n\nexport default {\n mobiusSocket: mobiusSocketConfig,\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAaA,IAAMA,kBAAsC,GAAG;EAC7C;AACF;AACA;AACA;EACEC,kBAAkB,EAChBC,OAAO,CAACC,GAAG,CAACC,8BAA8B,IAC1CF,OAAO,CAACC,GAAG,CAACE,mCAAmC,IAC/C,KAAK;EACP;AACF;AACA;AACA;EACEC,cAAc,EAAEJ,OAAO,CAACC,GAAG,CAACI,8BAA8B,IAAI,KAAK;EACnE;AACF;AACA;AACA;EACEC,gBAAgB,EAAEN,OAAO,CAACC,GAAG,CAACM,gCAAgC,IAAI,IAAI;EACtE;AACF;AACA;AACA;EACEC,2BAA2B,EAAER,OAAO,CAACC,GAAG,CAACQ,4CAA4C,IAAI,CAAC;EAC1F;AACF;AACA;AACA;AACA;EACEC,UAAU,EAAEV,OAAO,CAACC,GAAG,CAACU,yBAAyB,IAAI,CAAC;EACtD;AACF;AACA;AACA;AACA;EACEC,eAAe,EAAEZ,OAAO,CAACC,GAAG,CAACY,+BAA+B,IAAI,IAAI;EACpE;AACF;AACA;AACA;AACA;EACEC,8BAA8B,EAAEd,OAAO,CAACC,GAAG,CAACc,2BAA2B,IAAI,eAAe;EAC1F;AACF;AACA;AACA;AACA;EACEC,iBAAiB,EAAEhB,OAAO,CAACC,GAAG,CAACgB,kCAAkC,IAAI;AACvE,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa;EACbC,YAAY,EAAEvB;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["mobiusSocketConfig","wssResponseTimeout","backoffTimeMax","backoffTimeReset","initialConnectionMaxRetries","maxRetries","forceCloseDelay","dedupCacheMaxSize","_default","exports","default","mobiusSocket"],"sources":["config.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport interface MobiusSocketConfig {\n /** Milliseconds to wait for websocket request/response messages, including auth. */\n wssResponseTimeout: number;\n /** Maximum milliseconds between connection attempts. */\n backoffTimeMax: number;\n /** Initial milliseconds between connection attempts. */\n backoffTimeReset: number;\n /** Maximum number of retries for the initial connect() flow before rejecting. */\n initialConnectionMaxRetries: number;\n /** Maximum number of retries for reconnect attempts. 0 means unlimited. */\n maxRetries: number;\n /** Milliseconds to wait for a close frame before forcing closure. */\n forceCloseDelay: number;\n /** Maximum eventIds retained in the dedup cache to suppress duplicate async_event messages. */\n dedupCacheMaxSize: number;\n}\n\nconst mobiusSocketConfig: MobiusSocketConfig = {\n wssResponseTimeout: 10000,\n backoffTimeMax: 32000,\n backoffTimeReset: 1000,\n initialConnectionMaxRetries: 0,\n maxRetries: 0,\n forceCloseDelay: 2000,\n dedupCacheMaxSize: 1000,\n};\n\nexport default {\n mobiusSocket: mobiusSocketConfig,\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAmBA,IAAMA,kBAAsC,GAAG;EAC7CC,kBAAkB,EAAE,KAAK;EACzBC,cAAc,EAAE,KAAK;EACrBC,gBAAgB,EAAE,IAAI;EACtBC,2BAA2B,EAAE,CAAC;EAC9BC,UAAU,EAAE,CAAC;EACbC,eAAe,EAAE,IAAI;EACrBC,iBAAiB,EAAE;AACrB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa;EACbC,YAAY,EAAEX;AAChB,CAAC","ignoreList":[]}