@webex/calling 3.11.0-webex-services-ready.1 → 3.12.0-mobius-socket.1

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 (110) hide show
  1. package/dist/CallHistory/CallHistory.js +68 -51
  2. package/dist/CallHistory/CallHistory.js.map +1 -1
  3. package/dist/CallingClient/CallingClient.js +489 -165
  4. package/dist/CallingClient/CallingClient.js.map +1 -1
  5. package/dist/CallingClient/CallingClient.test.js +207 -6
  6. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  7. package/dist/CallingClient/calling/call.js +20 -16
  8. package/dist/CallingClient/calling/call.js.map +1 -1
  9. package/dist/CallingClient/calling/call.test.js +467 -387
  10. package/dist/CallingClient/calling/call.test.js.map +1 -1
  11. package/dist/CallingClient/calling/callManager.js +53 -32
  12. package/dist/CallingClient/calling/callManager.js.map +1 -1
  13. package/dist/CallingClient/calling/callManager.test.js +35 -0
  14. package/dist/CallingClient/calling/callManager.test.js.map +1 -1
  15. package/dist/CallingClient/calling/types.js +2 -0
  16. package/dist/CallingClient/calling/types.js.map +1 -1
  17. package/dist/CallingClient/constants.js +11 -3
  18. package/dist/CallingClient/constants.js.map +1 -1
  19. package/dist/CallingClient/line/line.test.js +15 -0
  20. package/dist/CallingClient/line/line.test.js.map +1 -1
  21. package/dist/CallingClient/registration/register.js +114 -71
  22. package/dist/CallingClient/registration/register.js.map +1 -1
  23. package/dist/CallingClient/registration/register.test.js +21 -12
  24. package/dist/CallingClient/registration/register.test.js.map +1 -1
  25. package/dist/CallingClient/registration/types.js.map +1 -1
  26. package/dist/CallingClient/registration/webWorker.js +2 -0
  27. package/dist/CallingClient/registration/webWorker.js.map +1 -1
  28. package/dist/CallingClient/types.js.map +1 -1
  29. package/dist/CallingClient/utils/constants.js +46 -0
  30. package/dist/CallingClient/utils/constants.js.map +1 -0
  31. package/dist/CallingClient/utils/index.js +63 -0
  32. package/dist/CallingClient/utils/index.js.map +1 -0
  33. package/dist/CallingClient/utils/mobiusSocketMapper.js +106 -0
  34. package/dist/CallingClient/utils/mobiusSocketMapper.js.map +1 -0
  35. package/dist/CallingClient/utils/request.js +267 -0
  36. package/dist/CallingClient/utils/request.js.map +1 -0
  37. package/dist/CallingClient/utils/types.js +7 -0
  38. package/dist/CallingClient/utils/types.js.map +1 -0
  39. package/dist/CallingClient/utils/wsFeatureFlag.js +20 -0
  40. package/dist/CallingClient/utils/wsFeatureFlag.js.map +1 -0
  41. package/dist/Events/types.js +1 -11
  42. package/dist/Events/types.js.map +1 -1
  43. package/dist/SDKConnector/index.js +32 -0
  44. package/dist/SDKConnector/index.js.map +1 -1
  45. package/dist/SDKConnector/types.js.map +1 -1
  46. package/dist/common/Utils.js +69 -10
  47. package/dist/common/Utils.js.map +1 -1
  48. package/dist/common/testUtil.js +5 -0
  49. package/dist/common/testUtil.js.map +1 -1
  50. package/dist/common/types.js.map +1 -1
  51. package/dist/module/CallHistory/CallHistory.js +28 -17
  52. package/dist/module/CallingClient/CallingClient.js +157 -4
  53. package/dist/module/CallingClient/calling/call.js +12 -8
  54. package/dist/module/CallingClient/calling/callManager.js +29 -10
  55. package/dist/module/CallingClient/calling/types.js +2 -0
  56. package/dist/module/CallingClient/constants.js +8 -0
  57. package/dist/module/CallingClient/registration/register.js +46 -16
  58. package/dist/module/CallingClient/utils/constants.js +30 -0
  59. package/dist/module/CallingClient/utils/index.js +5 -0
  60. package/dist/module/CallingClient/utils/mobiusSocketMapper.js +56 -0
  61. package/dist/module/CallingClient/utils/request.js +112 -0
  62. package/dist/module/CallingClient/utils/types.js +1 -0
  63. package/dist/module/CallingClient/utils/wsFeatureFlag.js +5 -0
  64. package/dist/module/Events/types.js +0 -10
  65. package/dist/module/SDKConnector/index.js +17 -0
  66. package/dist/module/common/Utils.js +35 -4
  67. package/dist/module/common/testUtil.js +3 -0
  68. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  69. package/dist/types/CallingClient/CallingClient.d.ts +10 -1
  70. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  71. package/dist/types/CallingClient/calling/call.d.ts +1 -0
  72. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  73. package/dist/types/CallingClient/calling/callManager.d.ts +5 -4
  74. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  75. package/dist/types/CallingClient/calling/types.d.ts +21 -9
  76. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  77. package/dist/types/CallingClient/constants.d.ts +8 -0
  78. package/dist/types/CallingClient/constants.d.ts.map +1 -1
  79. package/dist/types/CallingClient/registration/register.d.ts +3 -1
  80. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  81. package/dist/types/CallingClient/registration/types.d.ts +2 -1
  82. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  83. package/dist/types/CallingClient/registration/webWorker.d.ts.map +1 -1
  84. package/dist/types/CallingClient/types.d.ts +3 -1
  85. package/dist/types/CallingClient/types.d.ts.map +1 -1
  86. package/dist/types/CallingClient/utils/constants.d.ts +30 -0
  87. package/dist/types/CallingClient/utils/constants.d.ts.map +1 -0
  88. package/dist/types/CallingClient/utils/index.d.ts +6 -0
  89. package/dist/types/CallingClient/utils/index.d.ts.map +1 -0
  90. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts +4 -0
  91. package/dist/types/CallingClient/utils/mobiusSocketMapper.d.ts.map +1 -0
  92. package/dist/types/CallingClient/utils/request.d.ts +20 -0
  93. package/dist/types/CallingClient/utils/request.d.ts.map +1 -0
  94. package/dist/types/CallingClient/utils/types.d.ts +23 -0
  95. package/dist/types/CallingClient/utils/types.d.ts.map +1 -0
  96. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts +4 -0
  97. package/dist/types/CallingClient/utils/wsFeatureFlag.d.ts.map +1 -0
  98. package/dist/types/Events/types.d.ts +0 -10
  99. package/dist/types/Events/types.d.ts.map +1 -1
  100. package/dist/types/SDKConnector/index.d.ts +2 -0
  101. package/dist/types/SDKConnector/index.d.ts.map +1 -1
  102. package/dist/types/SDKConnector/types.d.ts +11 -0
  103. package/dist/types/SDKConnector/types.d.ts.map +1 -1
  104. package/dist/types/common/Utils.d.ts +4 -1
  105. package/dist/types/common/Utils.d.ts.map +1 -1
  106. package/dist/types/common/testUtil.d.ts +3 -0
  107. package/dist/types/common/testUtil.d.ts.map +1 -1
  108. package/dist/types/common/types.d.ts +5 -0
  109. package/dist/types/common/types.d.ts.map +1 -1
  110. package/package.json +8 -4
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import {WebexRequestPayload} from '../../common/types';\nimport {WebexSDK} from '../../SDKConnector/types';\n\n/**\n * Configuration for APIRequest class\n */\nexport interface APIRequestConfig {\n /**\n * Interim SDK opt-in for Mobius WebSocket transport when WDM\n * `webrtc-calling-over-ws` is not yet true (until prod rollout).\n */\n isMobiusSocketEnabled?: boolean;\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"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.WEBRTC_CALLING_OVER_WS_FEATURE_KEY = void 0;
8
+ exports.isMobiusWssEnabled = isMobiusWssEnabled;
9
+ /** WDM device-settings key for routing Mobius traffic over WebSocket. */
10
+ var WEBRTC_CALLING_OVER_WS_FEATURE_KEY = exports.WEBRTC_CALLING_OVER_WS_FEATURE_KEY = 'webrtc-calling-over-ws-CALL-219562';
11
+ /**
12
+ * Whether Webex Calling should use the Mobius WebSocket transport for API requests.
13
+ * Reads WDM `webex.internal.device.settings['webrtc-calling-over-ws'].value`; must be
14
+ * strictly `true` to enable WebSocket—otherwise use HTTP.
15
+ */
16
+ function isMobiusWssEnabled(webex) {
17
+ var _webex$internal, _webex$internal$devic, _webex$internal$devic2, _webex$internal$devic3, _webex$internal$devic4;
18
+ return ((_webex$internal = webex.internal) === null || _webex$internal === void 0 ? void 0 : (_webex$internal$devic = _webex$internal.device) === null || _webex$internal$devic === void 0 ? void 0 : (_webex$internal$devic2 = _webex$internal$devic.features) === null || _webex$internal$devic2 === void 0 ? void 0 : (_webex$internal$devic3 = _webex$internal$devic2.developer) === null || _webex$internal$devic3 === void 0 ? void 0 : (_webex$internal$devic4 = _webex$internal$devic3.get(WEBRTC_CALLING_OVER_WS_FEATURE_KEY)) === null || _webex$internal$devic4 === void 0 ? void 0 : _webex$internal$devic4.value) === true;
19
+ }
20
+ //# sourceMappingURL=wsFeatureFlag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WEBRTC_CALLING_OVER_WS_FEATURE_KEY","exports","isMobiusWssEnabled","webex","_webex$internal","_webex$internal$devic","_webex$internal$devic2","_webex$internal$devic3","_webex$internal$devic4","internal","device","features","developer","get","value"],"sources":["wsFeatureFlag.ts"],"sourcesContent":["import {WebexSDK} from '../../SDKConnector/types';\n\n/** WDM device-settings key for routing Mobius traffic over WebSocket. */\nexport const WEBRTC_CALLING_OVER_WS_FEATURE_KEY = 'webrtc-calling-over-ws-CALL-219562';\n/**\n * Whether Webex Calling should use the Mobius WebSocket transport for API requests.\n * Reads WDM `webex.internal.device.settings['webrtc-calling-over-ws'].value`; must be\n * strictly `true` to enable WebSocket—otherwise use HTTP.\n */\nexport function isMobiusWssEnabled(webex: WebexSDK): boolean {\n return (\n webex.internal?.device?.features?.developer?.get(WEBRTC_CALLING_OVER_WS_FEATURE_KEY)?.value ===\n true\n );\n}\n"],"mappings":";;;;;;;;AAEA;AACO,IAAMA,kCAAkC,GAAAC,OAAA,CAAAD,kCAAA,GAAG,oCAAoC;AACtF;AACA;AACA;AACA;AACA;AACO,SAASE,kBAAkBA,CAACC,KAAe,EAAW;EAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAC3D,OACE,EAAAJ,eAAA,GAAAD,KAAK,CAACM,QAAQ,cAAAL,eAAA,wBAAAC,qBAAA,GAAdD,eAAA,CAAgBM,MAAM,cAAAL,qBAAA,wBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBM,QAAQ,cAAAL,sBAAA,wBAAAC,sBAAA,GAAhCD,sBAAA,CAAkCM,SAAS,cAAAL,sBAAA,wBAAAC,sBAAA,GAA3CD,sBAAA,CAA6CM,GAAG,CAACb,kCAAkC,CAAC,cAAAQ,sBAAA,uBAApFA,sBAAA,CAAsFM,KAAK,MAC3F,IAAI;AAER","ignoreList":[]}
@@ -4,7 +4,7 @@ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/defi
4
4
  _Object$defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.WEBSOCKET_SCOPE = exports.WEBSOCKET_KEYS = exports.SessionType = exports.SUPPLEMENTARY_SERVICES = exports.MOBIUS_MIDCALL_STATE = exports.MOBIUS_EVENT_KEYS = exports.MEDIA_CONNECTION_EVENT_KEYS = exports.LINE_EVENT_KEYS = exports.Disposition = exports.COMMON_EVENT_KEYS = exports.CALL_EVENT_KEYS = exports.CALLING_CLIENT_EVENT_KEYS = void 0;
7
+ exports.SessionType = exports.SUPPLEMENTARY_SERVICES = exports.MOBIUS_MIDCALL_STATE = exports.MOBIUS_EVENT_KEYS = exports.MEDIA_CONNECTION_EVENT_KEYS = exports.LINE_EVENT_KEYS = exports.Disposition = exports.COMMON_EVENT_KEYS = exports.CALL_EVENT_KEYS = exports.CALLING_CLIENT_EVENT_KEYS = void 0;
8
8
  var _types = require("../CallingClient/line/types");
9
9
  /* eslint-disable @typescript-eslint/no-unused-vars */
10
10
  // TODO: remove once we define the payloads
@@ -89,16 +89,6 @@ var CALL_STATE = /*#__PURE__*/function (CALL_STATE) {
89
89
  CALL_STATE["CONNECTED"] = "connected";
90
90
  return CALL_STATE;
91
91
  }(CALL_STATE || {});
92
- var WEBSOCKET_SCOPE = exports.WEBSOCKET_SCOPE = 'mobius';
93
- var WEBSOCKET_KEYS = exports.WEBSOCKET_KEYS = /*#__PURE__*/function (WEBSOCKET_KEYS) {
94
- WEBSOCKET_KEYS["CALL_PROGRESS"] = "callprogress";
95
- WEBSOCKET_KEYS["CALL_CONNECTED"] = "callconnected";
96
- WEBSOCKET_KEYS["CALL_DISCONNECTED"] = "callconnected";
97
- WEBSOCKET_KEYS["CALL_INFO"] = "callinfo";
98
- WEBSOCKET_KEYS["CALL"] = "call";
99
- WEBSOCKET_KEYS["ROAP"] = "ROAP";
100
- return WEBSOCKET_KEYS;
101
- }({});
102
92
  /** Internal Eventing End */
103
93
  /** State Machine Events */
104
94
  /* ROAP Events */
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","COMMON_EVENT_KEYS","exports","LINE_EVENT_KEYS","CALLING_CLIENT_EVENT_KEYS","CALL_EVENT_KEYS","SUPPLEMENTARY_SERVICES","MOBIUS_MIDCALL_STATE","Disposition","SessionType","MOBIUS_EVENT_KEYS","MEDIA_CONNECTION_EVENT_KEYS","CALL_STATE","WEBSOCKET_SCOPE","WEBSOCKET_KEYS"],"sources":["types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */ // TODO: remove once we define the payloads\nimport {ILine} from '../api';\nimport {LINE_EVENTS} from '../CallingClient/line/types';\nimport type {ICall} from '../CallingClient/calling/types';\nimport {CallId, DisplayInformation} from '../common/types';\nimport {CallError, CallingClientError, LineError} from '../Errors';\n\n/** External Eventing Start */\nexport enum COMMON_EVENT_KEYS {\n CB_VOICEMESSAGE_CONTENT_GET = 'call_back_voicemail_content_get',\n CALL_HISTORY_USER_SESSION_INFO = 'callHistory:user_recent_sessions',\n CALL_HISTORY_USER_VIEWED_SESSIONS = 'callHistory:user_viewed_sessions',\n CALL_HISTORY_USER_SESSIONS_DELETED = 'callHistory:user_sessions_deleted',\n}\n\nexport enum LINE_EVENT_KEYS {\n INCOMING_CALL = 'incoming_call',\n}\n\nexport enum CALLING_CLIENT_EVENT_KEYS {\n ERROR = 'callingClient:error',\n OUTGOING_CALL = 'callingClient:outgoing_call',\n USER_SESSION_INFO = 'callingClient:user_recent_sessions',\n ALL_CALLS_CLEARED = 'callingClient:all_calls_cleared',\n}\n\nexport enum CALL_EVENT_KEYS {\n ALERTING = 'alerting',\n CALL_ERROR = 'call_error',\n CALLER_ID = 'caller_id',\n CONNECT = 'connect',\n DISCONNECT = 'disconnect',\n ESTABLISHED = 'established',\n HELD = 'held',\n HOLD_ERROR = 'hold_error',\n PROGRESS = 'progress',\n REMOTE_MEDIA = 'remote_media',\n RESUME_ERROR = 'resume_error',\n RESUMED = 'resumed',\n TRANSFER_ERROR = 'transfer_error',\n}\n\nexport enum SUPPLEMENTARY_SERVICES {\n HOLD = 'hold',\n RESUME = 'resume',\n DIVERT = 'divert',\n TRANSFER = 'transfer',\n PARK = 'park',\n}\n\nexport enum MOBIUS_MIDCALL_STATE {\n HELD = 'HELD',\n CONNECTED = 'CONNECTED',\n}\n\nexport enum Disposition {\n ANSWERED = 'Answered',\n CANCELED = 'Canceled',\n INITIATED = 'Initiated',\n MISSED = 'MISSED',\n}\n\nexport type CallRecordLink = {\n locusUrl?: string;\n conversationUrl?: string;\n callbackAddress: string;\n};\n\nexport type CallBackInfo = {\n callbackAddress: string;\n callbackType: string;\n};\n\nexport type LookUpInfo = {\n lookupLink: string;\n type: string;\n};\n\nexport type CallRecordSelf = {\n id: string;\n name?: string;\n phoneNumber?: string;\n cucmDN?: string;\n ucmLineNumber?: number;\n};\n\nexport type CallRecordListOther = {\n ownerId?: string;\n id: string;\n name?: string;\n sipUrl?: string;\n primaryDisplayString?: string;\n secondaryDisplayString?: string;\n isPrivate: boolean;\n callbackAddress: string;\n phoneNumber?: string;\n contact?: string;\n email?: string;\n};\n\nexport type RedirectionDetails = {\n phoneNumber?: string;\n sipUrl?: string;\n name?: string;\n reason: string;\n userId?: string;\n isPrivate: boolean;\n};\n\nexport enum SessionType {\n SPARK = 'SPARK',\n WEBEX_CALLING = 'WEBEXCALLING',\n}\n\nexport type UserSession = {\n id: string;\n sessionId: string;\n disposition: Disposition;\n startTime: string;\n endTime: string;\n url: string;\n durationSeconds: number;\n joinedDurationSeconds: number;\n participantCount: number;\n isDeleted: boolean;\n isPMR: boolean;\n correlationIds: string[];\n links: CallRecordLink;\n self: CallRecordSelf;\n durationSecs: number;\n other: CallRecordListOther;\n sessionType: SessionType;\n direction: string;\n callingSpecifics?: {\n redirectionDetails: RedirectionDetails;\n };\n};\n\nexport type CallingParty = {\n name?: string;\n number?: string;\n privacyEnabled?: boolean;\n userId?: string;\n address?: string;\n};\n\nexport type Item = {\n id?: string;\n duration?: number;\n callingParty?: CallingParty;\n urgent?: boolean;\n confidential?: boolean;\n read?: boolean;\n created?: string;\n messageId?: string;\n time?: number;\n};\n\nexport enum MOBIUS_EVENT_KEYS {\n SERVER_EVENT_INCLUSIVE = 'event:mobius',\n CALL_SESSION_EVENT_INCLUSIVE = 'event:janus.user_recent_sessions',\n CALL_SESSION_EVENT_LEGACY = 'event:janus.user_sessions',\n CALL_SESSION_EVENT_VIEWED = 'event:janus.user_viewed_sessions',\n CALL_SESSION_EVENT_DELETED = 'event:janus.user_sessions_deleted',\n}\n\nexport type CallSessionData = {\n userSessions: {\n userSessions: UserSession[];\n statusCode: number;\n };\n eventType:\n | MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE\n | MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY;\n};\n\nexport type CallSessionEvent = {\n id: string;\n data: CallSessionData;\n timestamp: number;\n trackingId: string;\n};\n\nexport enum MEDIA_CONNECTION_EVENT_KEYS {\n ROAP_MESSAGE_TO_SEND = 'roap:messageToSend',\n MEDIA_TYPE_AUDIO = 'audio',\n}\n\nexport type CallerIdDisplay = {\n correlationId: string;\n callerId: DisplayInformation;\n};\n\nexport type LineEventTypes = {\n [LINE_EVENTS.CONNECTING]: () => void;\n [LINE_EVENTS.ERROR]: (error: LineError) => void;\n [LINE_EVENTS.RECONNECTED]: () => void;\n [LINE_EVENTS.RECONNECTING]: () => void;\n [LINE_EVENTS.REGISTERED]: (lineInfo: ILine) => void;\n [LINE_EVENTS.UNREGISTERED]: () => void;\n [LINE_EVENTS.INCOMING_CALL]: (callObj: ICall) => void;\n};\n\nexport type CallEventTypes = {\n [CALL_EVENT_KEYS.ALERTING]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.CALL_ERROR]: (error: CallError) => void;\n [CALL_EVENT_KEYS.CALLER_ID]: (display: CallerIdDisplay) => void;\n [CALL_EVENT_KEYS.CONNECT]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.DISCONNECT]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.ESTABLISHED]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.HELD]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.HOLD_ERROR]: (error: CallError) => void;\n [LINE_EVENT_KEYS.INCOMING_CALL]: (callObj: ICall) => void;\n [CALL_EVENT_KEYS.PROGRESS]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.REMOTE_MEDIA]: (track: MediaStreamTrack) => void;\n [CALL_EVENT_KEYS.RESUME_ERROR]: (error: CallError) => void;\n [CALL_EVENT_KEYS.RESUMED]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.TRANSFER_ERROR]: (error: CallError) => void;\n [CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED]: () => void;\n};\n\nexport type MessageId = {\n messageId: string;\n};\n\nexport type VoicemailEventTypes = {\n [COMMON_EVENT_KEYS.CB_VOICEMESSAGE_CONTENT_GET]: (messageId: MessageId) => void;\n};\n\nexport type CallingClientEventTypes = {\n [CALLING_CLIENT_EVENT_KEYS.ERROR]: (error: CallingClientError) => void;\n [CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO]: (event: CallSessionEvent) => void;\n [CALLING_CLIENT_EVENT_KEYS.OUTGOING_CALL]: (callId: string) => void;\n [CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED]: () => void;\n};\n\nexport type CallHistoryEventTypes = {\n [COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO]: (event: CallSessionEvent) => void;\n [COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS]: (event: CallSessionViewedEvent) => void;\n [COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED]: (event: CallSessionDeletedEvent) => void;\n};\n/* External Eventing End */\n\n/** Internal Eventing Start */\nenum CALL_STATE {\n HELD = 'held',\n REMOTE_HELD = 'remoteheld',\n CONNECTED = 'connected',\n}\n\ntype eventType = string;\n\ntype callProgressData = {\n alerting: boolean;\n inbandROAP: boolean;\n};\n\nexport type CallerIdInfo = {\n 'x-broadworks-remote-party-info'?: string;\n 'p-asserted-identity'?: string;\n from?: string;\n};\n\ntype callId = string;\ntype deviceId = string;\ntype correlationId = string;\ntype callUrl = string;\ntype causecode = number;\ntype cause = string;\n\ntype eventData = {\n callerId: CallerIdInfo;\n callState: CALL_STATE;\n};\n\ntype midCallServiceData = {\n eventType: eventType;\n eventData: eventData;\n};\n\ntype midCallService = Array<midCallServiceData>;\ninterface BaseMessage {\n eventType: eventType;\n correlationId: correlationId;\n deviceId: deviceId;\n callId: callId;\n callUrl: callUrl;\n}\nexport interface CallSetupMessage extends BaseMessage {\n callerId: CallerIdInfo;\n trackingId: string;\n alertType: string;\n}\ninterface CallProgressMessage extends BaseMessage {\n callProgressData: callProgressData;\n callerId: CallerIdInfo;\n}\n\nexport const WEBSOCKET_SCOPE = 'mobius';\n\nexport enum WEBSOCKET_KEYS {\n CALL_PROGRESS = 'callprogress',\n CALL_CONNECTED = 'callconnected',\n CALL_DISCONNECTED = 'callconnected',\n CALL_INFO = 'callinfo',\n CALL = 'call',\n ROAP = 'ROAP',\n}\n/** Internal Eventing End */\n\n/** State Machine Events */\n\nexport type CallEvent =\n /* Received Events */\n | {type: 'E_RECV_CALL_SETUP'; data?: unknown}\n | {type: 'E_RECV_CALL_PROGRESS'; data?: unknown}\n | {type: 'E_RECV_CALL_CONNECT'; data?: unknown}\n | {type: 'E_RECV_CALL_DISCONNECT'; data?: unknown}\n\n /* Sent Events */\n | {type: 'E_SEND_CALL_SETUP'; data?: unknown}\n | {type: 'E_SEND_CALL_ALERTING'; data?: unknown}\n | {type: 'E_SEND_CALL_CONNECT'; data?: unknown}\n | {type: 'E_SEND_CALL_DISCONNECT'; data?: unknown}\n\n /* Common Events */\n | {type: 'E_CALL_ESTABLISHED'; data?: unknown}\n | {type: 'E_CALL_INFO'; data?: unknown}\n | {type: 'E_UNKNOWN'; data?: unknown}\n | {type: 'E_CALL_CLEARED'; data?: unknown}\n | {type: 'E_CALL_HOLD'; data?: unknown}\n | {type: 'E_CALL_RESUME'; data?: unknown};\n\n/* ROAP Events */\nexport type RoapEvent =\n | {type: 'E_SEND_ROAP_OFFER'; data?: unknown}\n | {type: 'E_SEND_ROAP_ANSWER'; data?: unknown}\n | {type: 'E_RECV_ROAP_OFFER'; data?: unknown}\n | {type: 'E_RECV_ROAP_ANSWER'; data?: unknown}\n | {type: 'E_ROAP_ERROR'; data?: unknown}\n | {type: 'E_ROAP_OK'; data?: unknown}\n | {type: 'E_RECV_ROAP_OFFER_REQUEST'; data?: unknown} // ROAP request to explicitly ask Client to do OFFER\n | {type: 'E_ROAP_TEARDOWN'; data?: unknown};\n\n// TODO: export RoapMessage type from the media SDK to use here\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface RoapMessage {\n seq: number;\n messageType: 'OFFER' | 'ANSWER' | 'OK' | 'ERROR' | 'OFFER_REQUEST';\n offererSessionId?: string;\n answererSessionId?: string;\n sdp?: string;\n version?: string;\n tieBreaker?: string;\n errorType?: string;\n}\n\nexport type UserReadSessions = {\n sessionId: string;\n};\n\nexport type CallSessionViewedData = {\n userReadSessions: {\n userReadSessions: UserReadSessions[];\n statusCode: number;\n };\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED;\n};\n\nexport type CallSessionViewedEvent = {\n id: string;\n data: CallSessionViewedData;\n timestamp: number;\n trackingId: string;\n};\n\nexport type CallSessionDeletedData = {\n deletedSessions: string[];\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED;\n};\n\nexport type CallSessionDeletedEvent = {\n id: string;\n data: CallSessionDeletedData;\n timestamp: number;\n trackingId: string;\n};\n\nexport type EndTimeSessionId = {\n endTime: string;\n sessionId: string;\n};\n\nexport type SanitizedEndTimeAndSessionId = {\n endTime: number;\n sessionId: string;\n};\n\nexport type UCMLine = {\n dnorpattern: string;\n index: number;\n label: string | null;\n};\n\nexport type UCMDevice = {\n name: string;\n model: number;\n lines: UCMLine[];\n};\n\nexport type UCMLinesApiResponse = {\n devices: UCMDevice[];\n};\n"],"mappings":";;;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAFA;AAAuD;AAOvD;AAAA,IACYC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAA,IAOjBE,eAAe,GAAAD,OAAA,CAAAC,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAIfC,yBAAyB,GAAAF,OAAA,CAAAE,yBAAA,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AAAA,IAOzBC,eAAe,GAAAH,OAAA,CAAAG,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAgBfC,sBAAsB,GAAAJ,OAAA,CAAAI,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAAA,IAQtBC,oBAAoB,GAAAL,OAAA,CAAAK,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAA,IAKpBC,WAAW,GAAAN,OAAA,CAAAM,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAsDXC,WAAW,GAAAP,OAAA,CAAAO,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAiDXC,iBAAiB,GAAAR,OAAA,CAAAQ,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAA,IAyBjBC,2BAA2B,GAAAT,OAAA,CAAAS,2BAAA,0BAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;AA0DvC;AAEA;AAAA,IACKC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,EAAVA,UAAU;AAsDR,IAAMC,eAAe,GAAAX,OAAA,CAAAW,eAAA,GAAG,QAAQ;AAAC,IAE5BC,cAAc,GAAAZ,OAAA,CAAAY,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAQ1B;AAEA;AAuBA;AAWA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["_types","require","COMMON_EVENT_KEYS","exports","LINE_EVENT_KEYS","CALLING_CLIENT_EVENT_KEYS","CALL_EVENT_KEYS","SUPPLEMENTARY_SERVICES","MOBIUS_MIDCALL_STATE","Disposition","SessionType","MOBIUS_EVENT_KEYS","MEDIA_CONNECTION_EVENT_KEYS","CALL_STATE"],"sources":["types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */ // TODO: remove once we define the payloads\nimport {ILine} from '../api';\nimport {LINE_EVENTS} from '../CallingClient/line/types';\nimport type {ICall} from '../CallingClient/calling/types';\nimport {CallId, DisplayInformation} from '../common/types';\nimport {CallError, CallingClientError, LineError} from '../Errors';\n\n/** External Eventing Start */\nexport enum COMMON_EVENT_KEYS {\n CB_VOICEMESSAGE_CONTENT_GET = 'call_back_voicemail_content_get',\n CALL_HISTORY_USER_SESSION_INFO = 'callHistory:user_recent_sessions',\n CALL_HISTORY_USER_VIEWED_SESSIONS = 'callHistory:user_viewed_sessions',\n CALL_HISTORY_USER_SESSIONS_DELETED = 'callHistory:user_sessions_deleted',\n}\n\nexport enum LINE_EVENT_KEYS {\n INCOMING_CALL = 'incoming_call',\n}\n\nexport enum CALLING_CLIENT_EVENT_KEYS {\n ERROR = 'callingClient:error',\n OUTGOING_CALL = 'callingClient:outgoing_call',\n USER_SESSION_INFO = 'callingClient:user_recent_sessions',\n ALL_CALLS_CLEARED = 'callingClient:all_calls_cleared',\n}\n\nexport enum CALL_EVENT_KEYS {\n ALERTING = 'alerting',\n CALL_ERROR = 'call_error',\n CALLER_ID = 'caller_id',\n CONNECT = 'connect',\n DISCONNECT = 'disconnect',\n ESTABLISHED = 'established',\n HELD = 'held',\n HOLD_ERROR = 'hold_error',\n PROGRESS = 'progress',\n REMOTE_MEDIA = 'remote_media',\n RESUME_ERROR = 'resume_error',\n RESUMED = 'resumed',\n TRANSFER_ERROR = 'transfer_error',\n}\n\nexport enum SUPPLEMENTARY_SERVICES {\n HOLD = 'hold',\n RESUME = 'resume',\n DIVERT = 'divert',\n TRANSFER = 'transfer',\n PARK = 'park',\n}\n\nexport enum MOBIUS_MIDCALL_STATE {\n HELD = 'HELD',\n CONNECTED = 'CONNECTED',\n}\n\nexport enum Disposition {\n ANSWERED = 'Answered',\n CANCELED = 'Canceled',\n INITIATED = 'Initiated',\n MISSED = 'MISSED',\n}\n\nexport type CallRecordLink = {\n locusUrl?: string;\n conversationUrl?: string;\n callbackAddress: string;\n};\n\nexport type CallBackInfo = {\n callbackAddress: string;\n callbackType: string;\n};\n\nexport type LookUpInfo = {\n lookupLink: string;\n type: string;\n};\n\nexport type CallRecordSelf = {\n id: string;\n name?: string;\n phoneNumber?: string;\n cucmDN?: string;\n ucmLineNumber?: number;\n};\n\nexport type CallRecordListOther = {\n ownerId?: string;\n id: string;\n name?: string;\n sipUrl?: string;\n primaryDisplayString?: string;\n secondaryDisplayString?: string;\n isPrivate: boolean;\n callbackAddress: string;\n phoneNumber?: string;\n contact?: string;\n email?: string;\n};\n\nexport type RedirectionDetails = {\n phoneNumber?: string;\n sipUrl?: string;\n name?: string;\n reason: string;\n userId?: string;\n isPrivate: boolean;\n};\n\nexport enum SessionType {\n SPARK = 'SPARK',\n WEBEX_CALLING = 'WEBEXCALLING',\n}\n\nexport type UserSession = {\n id: string;\n sessionId: string;\n disposition: Disposition;\n startTime: string;\n endTime: string;\n url: string;\n durationSeconds: number;\n joinedDurationSeconds: number;\n participantCount: number;\n isDeleted: boolean;\n isPMR: boolean;\n correlationIds: string[];\n links: CallRecordLink;\n self: CallRecordSelf;\n durationSecs: number;\n other: CallRecordListOther;\n sessionType: SessionType;\n direction: string;\n callingSpecifics?: {\n redirectionDetails: RedirectionDetails;\n };\n};\n\nexport type CallingParty = {\n name?: string;\n number?: string;\n privacyEnabled?: boolean;\n userId?: string;\n address?: string;\n};\n\nexport type Item = {\n id?: string;\n duration?: number;\n callingParty?: CallingParty;\n urgent?: boolean;\n confidential?: boolean;\n read?: boolean;\n created?: string;\n messageId?: string;\n time?: number;\n};\n\nexport enum MOBIUS_EVENT_KEYS {\n SERVER_EVENT_INCLUSIVE = 'event:mobius',\n CALL_SESSION_EVENT_INCLUSIVE = 'event:janus.user_recent_sessions',\n CALL_SESSION_EVENT_LEGACY = 'event:janus.user_sessions',\n CALL_SESSION_EVENT_VIEWED = 'event:janus.user_viewed_sessions',\n CALL_SESSION_EVENT_DELETED = 'event:janus.user_sessions_deleted',\n}\n\nexport type CallSessionData = {\n userSessions: {\n userSessions: UserSession[];\n statusCode: number;\n };\n eventType:\n | MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_INCLUSIVE\n | MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_LEGACY;\n};\n\nexport type CallSessionEvent = {\n id: string;\n data: CallSessionData;\n timestamp: number;\n trackingId: string;\n};\n\nexport enum MEDIA_CONNECTION_EVENT_KEYS {\n ROAP_MESSAGE_TO_SEND = 'roap:messageToSend',\n MEDIA_TYPE_AUDIO = 'audio',\n}\n\nexport type CallerIdDisplay = {\n correlationId: string;\n callerId: DisplayInformation;\n};\n\nexport type LineEventTypes = {\n [LINE_EVENTS.CONNECTING]: () => void;\n [LINE_EVENTS.ERROR]: (error: LineError) => void;\n [LINE_EVENTS.RECONNECTED]: () => void;\n [LINE_EVENTS.RECONNECTING]: () => void;\n [LINE_EVENTS.REGISTERED]: (lineInfo: ILine) => void;\n [LINE_EVENTS.UNREGISTERED]: () => void;\n [LINE_EVENTS.INCOMING_CALL]: (callObj: ICall) => void;\n};\n\nexport type CallEventTypes = {\n [CALL_EVENT_KEYS.CALL_ERROR]: (error: CallError) => void;\n [CALL_EVENT_KEYS.CALLER_ID]: (display: CallerIdDisplay) => void;\n [CALL_EVENT_KEYS.CONNECT]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.DISCONNECT]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.ESTABLISHED]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.HELD]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.HOLD_ERROR]: (error: CallError) => void;\n [LINE_EVENT_KEYS.INCOMING_CALL]: (callObj: ICall) => void;\n [CALL_EVENT_KEYS.PROGRESS]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.REMOTE_MEDIA]: (track: MediaStreamTrack) => void;\n [CALL_EVENT_KEYS.RESUME_ERROR]: (error: CallError) => void;\n [CALL_EVENT_KEYS.RESUMED]: (callId: CallId) => void;\n [CALL_EVENT_KEYS.TRANSFER_ERROR]: (error: CallError) => void;\n [CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED]: () => void;\n};\n\nexport type MessageId = {\n messageId: string;\n};\n\nexport type VoicemailEventTypes = {\n [COMMON_EVENT_KEYS.CB_VOICEMESSAGE_CONTENT_GET]: (messageId: MessageId) => void;\n};\n\nexport type CallingClientEventTypes = {\n [CALLING_CLIENT_EVENT_KEYS.ERROR]: (error: CallingClientError) => void;\n [CALLING_CLIENT_EVENT_KEYS.USER_SESSION_INFO]: (event: CallSessionEvent) => void;\n [CALLING_CLIENT_EVENT_KEYS.OUTGOING_CALL]: (callId: string) => void;\n [CALLING_CLIENT_EVENT_KEYS.ALL_CALLS_CLEARED]: () => void;\n};\n\nexport type CallHistoryEventTypes = {\n [COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSION_INFO]: (event: CallSessionEvent) => void;\n [COMMON_EVENT_KEYS.CALL_HISTORY_USER_VIEWED_SESSIONS]: (event: CallSessionViewedEvent) => void;\n [COMMON_EVENT_KEYS.CALL_HISTORY_USER_SESSIONS_DELETED]: (event: CallSessionDeletedEvent) => void;\n};\n/* External Eventing End */\n\n/** Internal Eventing Start */\nenum CALL_STATE {\n HELD = 'held',\n REMOTE_HELD = 'remoteheld',\n CONNECTED = 'connected',\n}\n\ntype eventType = string;\n\ntype callProgressData = {\n alerting: boolean;\n inbandROAP: boolean;\n};\n\nexport type CallerIdInfo = {\n 'x-broadworks-remote-party-info'?: string;\n 'p-asserted-identity'?: string;\n from?: string;\n};\n\ntype callId = string;\ntype deviceId = string;\ntype correlationId = string;\ntype callUrl = string;\ntype causecode = number;\ntype cause = string;\n\ntype eventData = {\n callerId: CallerIdInfo;\n callState: CALL_STATE;\n};\n\ntype midCallServiceData = {\n eventType: eventType;\n eventData: eventData;\n};\n\ntype midCallService = Array<midCallServiceData>;\ninterface BaseMessage {\n eventType: eventType;\n correlationId: correlationId;\n deviceId: deviceId;\n callId: callId;\n callUrl: callUrl;\n}\nexport interface CallSetupMessage extends BaseMessage {\n callerId: CallerIdInfo;\n trackingId: string;\n alertType: string;\n}\n\n/** Internal Eventing End */\n\n/** State Machine Events */\n\nexport type CallEvent =\n /* Received Events */\n | {type: 'E_RECV_CALL_SETUP'; data?: unknown}\n | {type: 'E_RECV_CALL_PROGRESS'; data?: unknown}\n | {type: 'E_RECV_CALL_CONNECT'; data?: unknown}\n | {type: 'E_RECV_CALL_DISCONNECT'; data?: unknown}\n\n /* Sent Events */\n | {type: 'E_SEND_CALL_SETUP'; data?: unknown}\n | {type: 'E_SEND_CALL_ALERTING'; data?: unknown}\n | {type: 'E_SEND_CALL_CONNECT'; data?: unknown}\n | {type: 'E_SEND_CALL_DISCONNECT'; data?: unknown}\n\n /* Common Events */\n | {type: 'E_CALL_ESTABLISHED'; data?: unknown}\n | {type: 'E_CALL_INFO'; data?: unknown}\n | {type: 'E_UNKNOWN'; data?: unknown}\n | {type: 'E_CALL_CLEARED'; data?: unknown}\n | {type: 'E_CALL_HOLD'; data?: unknown}\n | {type: 'E_CALL_RESUME'; data?: unknown};\n\n/* ROAP Events */\nexport type RoapEvent =\n | {type: 'E_SEND_ROAP_OFFER'; data?: unknown}\n | {type: 'E_SEND_ROAP_ANSWER'; data?: unknown}\n | {type: 'E_RECV_ROAP_OFFER'; data?: unknown}\n | {type: 'E_RECV_ROAP_ANSWER'; data?: unknown}\n | {type: 'E_ROAP_ERROR'; data?: unknown}\n | {type: 'E_ROAP_OK'; data?: unknown}\n | {type: 'E_RECV_ROAP_OFFER_REQUEST'; data?: unknown} // ROAP request to explicitly ask Client to do OFFER\n | {type: 'E_ROAP_TEARDOWN'; data?: unknown};\n\n// TODO: export RoapMessage type from the media SDK to use here\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface RoapMessage {\n seq: number;\n messageType: 'OFFER' | 'ANSWER' | 'OK' | 'ERROR' | 'OFFER_REQUEST';\n offererSessionId?: string;\n answererSessionId?: string;\n sdp?: string;\n version?: string;\n tieBreaker?: string;\n errorType?: string;\n}\n\nexport type UserReadSessions = {\n sessionId: string;\n};\n\nexport type CallSessionViewedData = {\n userReadSessions: {\n userReadSessions: UserReadSessions[];\n statusCode: number;\n };\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_VIEWED;\n};\n\nexport type CallSessionViewedEvent = {\n id: string;\n data: CallSessionViewedData;\n timestamp: number;\n trackingId: string;\n};\n\nexport type CallSessionDeletedData = {\n deletedSessions: string[];\n eventType: MOBIUS_EVENT_KEYS.CALL_SESSION_EVENT_DELETED;\n};\n\nexport type CallSessionDeletedEvent = {\n id: string;\n data: CallSessionDeletedData;\n timestamp: number;\n trackingId: string;\n};\n\nexport type EndTimeSessionId = {\n endTime: string;\n sessionId: string;\n};\n\nexport type SanitizedEndTimeAndSessionId = {\n endTime: number;\n sessionId: string;\n};\n\nexport type UCMLine = {\n dnorpattern: string;\n index: number;\n label: string | null;\n};\n\nexport type UCMDevice = {\n name: string;\n model: number;\n lines: UCMLine[];\n};\n\nexport type UCMLinesApiResponse = {\n devices: UCMDevice[];\n};\n"],"mappings":";;;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAFA;AAAuD;AAOvD;AAAA,IACYC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAA,IAOjBE,eAAe,GAAAD,OAAA,CAAAC,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAIfC,yBAAyB,GAAAF,OAAA,CAAAE,yBAAA,0BAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AAAA,IAOzBC,eAAe,GAAAH,OAAA,CAAAG,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAgBfC,sBAAsB,GAAAJ,OAAA,CAAAI,sBAAA,0BAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAtBA,sBAAsB;EAAA,OAAtBA,sBAAsB;AAAA;AAAA,IAQtBC,oBAAoB,GAAAL,OAAA,CAAAK,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAA,IAKpBC,WAAW,GAAAN,OAAA,CAAAM,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAsDXC,WAAW,GAAAP,OAAA,CAAAO,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAAA,IAiDXC,iBAAiB,GAAAR,OAAA,CAAAQ,iBAAA,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;AAAA,IAyBjBC,2BAA2B,GAAAT,OAAA,CAAAS,2BAAA,0BAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;AAyDvC;AAEA;AAAA,IACKC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,EAAVA,UAAU;AAkDf;AAEA;AAuBA;AAWA;AACA","ignoreList":[]}
@@ -9,13 +9,17 @@ exports.default = void 0;
9
9
  var _freeze = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/freeze"));
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
12
+ var _internalPluginMobiusSocket = require("@webex/internal-plugin-mobius-socket");
12
13
  var _utils = require("./utils");
13
14
  /* eslint-disable valid-jsdoc */
15
+ // @ts-ignore - JS module without type declarations
14
16
 
15
17
  /* eslint-disable class-methods-use-this */
16
18
 
17
19
  var instance;
18
20
  var webex;
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ var mobiusSocket;
19
23
 
20
24
  /**
21
25
  *
@@ -41,6 +45,7 @@ var SDKConnector = /*#__PURE__*/function () {
41
45
  throw error;
42
46
  } else if (success) {
43
47
  webex = webexInstance; // TODO: Object.freeze to prevent changes? That might break the reference chain though
48
+ mobiusSocket = (0, _internalPluginMobiusSocket.getMobiusSocketInstance)(webexInstance);
44
49
  } else {
45
50
  throw new Error('An unknown error occurred setting up the webex instance.');
46
51
  }
@@ -96,6 +101,33 @@ var SDKConnector = /*#__PURE__*/function () {
96
101
  value: function unregisterListener(event) {
97
102
  instance.getWebex().internal.mercury.off(event);
98
103
  }
104
+
105
+ /**
106
+ * @param event - TODO.
107
+ * @param cb - TODO.
108
+ */
109
+ }, {
110
+ key: "registerMobiusSocketListener",
111
+ value: function registerMobiusSocketListener(event, cb) {
112
+ if (!mobiusSocket) {
113
+ mobiusSocket = (0, _internalPluginMobiusSocket.getMobiusSocketInstance)(instance.getWebex());
114
+ }
115
+ mobiusSocket.on(event, function (data) {
116
+ cb(data);
117
+ });
118
+ }
119
+
120
+ /**
121
+ * @param event - TODO.
122
+ */
123
+ }, {
124
+ key: "unregisterMobiusSocketListener",
125
+ value: function unregisterMobiusSocketListener(event) {
126
+ if (!mobiusSocket) {
127
+ mobiusSocket = (0, _internalPluginMobiusSocket.getMobiusSocketInstance)(instance.getWebex());
128
+ }
129
+ mobiusSocket.off(event);
130
+ }
99
131
  }]);
100
132
  }();
101
133
  var _default = exports.default = (0, _freeze.default)(new SDKConnector()); // TODO: remove freeze?
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","instance","webex","SDKConnector","_classCallCheck2","default","_createClass2","key","value","setWebex","webexInstance","Error","_validateWebex","validateWebex","error","success","get","getWebex","request","registerListener","event","cb","internal","mercury","on","data","unregisterListener","off","_default","exports","_freeze"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\nimport {WebexRequestPayload} from '../common/types';\nimport {ISDKConnector, WebexSDK} from './types';\n/* eslint-disable class-methods-use-this */\nimport {validateWebex} from './utils';\n\nlet instance: ISDKConnector;\nlet webex: WebexSDK;\n\n/**\n *\n */\nclass SDKConnector implements ISDKConnector {\n /**\n * @param webexInstance - TODO.\n */\n public setWebex(webexInstance: WebexSDK): void {\n if (instance) {\n throw new Error('You cannot set the SDKConnector instance more than once'); // TODO: format log messages and customize Error Object\n }\n const {error, success} = validateWebex(webexInstance);\n\n if (error) {\n throw error;\n } else if (success) {\n webex = webexInstance; // TODO: Object.freeze to prevent changes? That might break the reference chain though\n } else {\n throw new Error('An unknown error occurred setting up the webex instance.');\n }\n\n /* eslint-disable @typescript-eslint/no-this-alias */\n instance = this;\n }\n\n /**\n *\n */\n public get(): ISDKConnector {\n return instance;\n }\n\n /**\n *\n */\n public getWebex(): WebexSDK {\n return webex;\n }\n\n /**\n * @param request - TODO.\n */\n public request<T>(request: WebexRequestPayload): Promise<T> {\n return instance.getWebex().request(request);\n }\n\n /**\n * @param event - TODO.\n * @param cb - TODO.\n */\n public registerListener<T>(event: string, cb: (data?: T) => void): void {\n instance.getWebex().internal.mercury.on(event, (data: T) => {\n cb(data);\n });\n }\n\n /**\n * @param event - TODO.\n */\n public unregisterListener(event: string): void {\n instance.getWebex().internal.mercury.off(event);\n }\n}\n\nexport default Object.freeze(new SDKConnector()); // TODO: remove freeze?\n"],"mappings":";;;;;;;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAJA;;AAGA;;AAGA,IAAIC,QAAuB;AAC3B,IAAIC,KAAe;;AAEnB;AACA;AACA;AAFA,IAGMC,YAAY;EAAA,SAAAA,aAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAF,YAAA;EAAA;EAAA,WAAAG,aAAA,CAAAD,OAAA,EAAAF,YAAA;IAAAI,GAAA;IAAAC,KAAA;IAChB;AACF;AACA;IACE,SAAOC,QAAQA,CAACC,aAAuB,EAAQ;MAC7C,IAAIT,QAAQ,EAAE;QACZ,MAAM,IAAIU,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC;MAC9E;MACA,IAAAC,cAAA,GAAyB,IAAAC,oBAAa,EAACH,aAAa,CAAC;QAA9CI,KAAK,GAAAF,cAAA,CAALE,KAAK;QAAEC,OAAO,GAAAH,cAAA,CAAPG,OAAO;MAErB,IAAID,KAAK,EAAE;QACT,MAAMA,KAAK;MACb,CAAC,MAAM,IAAIC,OAAO,EAAE;QAClBb,KAAK,GAAGQ,aAAa,CAAC,CAAC;MACzB,CAAC,MAAM;QACL,MAAM,IAAIC,KAAK,CAAC,0DAA0D,CAAC;MAC7E;;MAEA;MACAV,QAAQ,GAAG,IAAI;IACjB;;IAEA;AACF;AACA;EAFE;IAAAM,GAAA;IAAAC,KAAA,EAGA,SAAOQ,GAAGA,CAAA,EAAkB;MAC1B,OAAOf,QAAQ;IACjB;;IAEA;AACF;AACA;EAFE;IAAAM,GAAA;IAAAC,KAAA,EAGA,SAAOS,QAAQA,CAAA,EAAa;MAC1B,OAAOf,KAAK;IACd;;IAEA;AACF;AACA;EAFE;IAAAK,GAAA;IAAAC,KAAA,EAGA,SAAOU,OAAOA,CAAIA,QAA4B,EAAc;MAC1D,OAAOjB,QAAQ,CAACgB,QAAQ,CAAC,CAAC,CAACC,OAAO,CAACA,QAAO,CAAC;IAC7C;;IAEA;AACF;AACA;AACA;EAHE;IAAAX,GAAA;IAAAC,KAAA,EAIA,SAAOW,gBAAgBA,CAAIC,KAAa,EAAEC,EAAsB,EAAQ;MACtEpB,QAAQ,CAACgB,QAAQ,CAAC,CAAC,CAACK,QAAQ,CAACC,OAAO,CAACC,EAAE,CAACJ,KAAK,EAAE,UAACK,IAAO,EAAK;QAC1DJ,EAAE,CAACI,IAAI,CAAC;MACV,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;EAFE;IAAAlB,GAAA;IAAAC,KAAA,EAGA,SAAOkB,kBAAkBA,CAACN,KAAa,EAAQ;MAC7CnB,QAAQ,CAACgB,QAAQ,CAAC,CAAC,CAACK,QAAQ,CAACC,OAAO,CAACI,GAAG,CAACP,KAAK,CAAC;IACjD;EAAC;AAAA;AAAA,IAAAQ,QAAA,GAAAC,OAAA,CAAAxB,OAAA,GAGY,IAAAyB,OAAA,CAAAzB,OAAA,EAAc,IAAIF,YAAY,CAAC,CAAC,CAAC,EAAE","ignoreList":[]}
1
+ {"version":3,"names":["_internalPluginMobiusSocket","require","_utils","instance","webex","mobiusSocket","SDKConnector","_classCallCheck2","default","_createClass2","key","value","setWebex","webexInstance","Error","_validateWebex","validateWebex","error","success","getMobiusSocketInstance","get","getWebex","request","registerListener","event","cb","internal","mercury","on","data","unregisterListener","off","registerMobiusSocketListener","unregisterMobiusSocketListener","_default","exports","_freeze"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n// @ts-ignore - JS module without type declarations\nimport {getMobiusSocketInstance} from '@webex/internal-plugin-mobius-socket';\nimport {WebexRequestPayload} from '../common/types';\nimport {ISDKConnector, WebexSDK} from './types';\n/* eslint-disable class-methods-use-this */\nimport {validateWebex} from './utils';\n\nlet instance: ISDKConnector;\nlet webex: WebexSDK;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet mobiusSocket: any;\n\n/**\n *\n */\nclass SDKConnector implements ISDKConnector {\n /**\n * @param webexInstance - TODO.\n */\n public setWebex(webexInstance: WebexSDK): void {\n if (instance) {\n throw new Error('You cannot set the SDKConnector instance more than once'); // TODO: format log messages and customize Error Object\n }\n const {error, success} = validateWebex(webexInstance);\n\n if (error) {\n throw error;\n } else if (success) {\n webex = webexInstance; // TODO: Object.freeze to prevent changes? That might break the reference chain though\n mobiusSocket = getMobiusSocketInstance(webexInstance);\n } else {\n throw new Error('An unknown error occurred setting up the webex instance.');\n }\n\n /* eslint-disable @typescript-eslint/no-this-alias */\n instance = this;\n }\n\n /**\n *\n */\n public get(): ISDKConnector {\n return instance;\n }\n\n /**\n *\n */\n public getWebex(): WebexSDK {\n return webex;\n }\n\n /**\n * @param request - TODO.\n */\n public request<T>(request: WebexRequestPayload): Promise<T> {\n return instance.getWebex().request(request);\n }\n\n /**\n * @param event - TODO.\n * @param cb - TODO.\n */\n public registerListener<T>(event: string, cb: (data?: T) => void): void {\n instance.getWebex().internal.mercury.on(event, (data: T) => {\n cb(data);\n });\n }\n\n /**\n * @param event - TODO.\n */\n public unregisterListener(event: string): void {\n instance.getWebex().internal.mercury.off(event);\n }\n\n /**\n * @param event - TODO.\n * @param cb - TODO.\n */\n public registerMobiusSocketListener<T>(event: string, cb: (data?: T) => void): void {\n if (!mobiusSocket) {\n mobiusSocket = getMobiusSocketInstance(instance.getWebex());\n }\n mobiusSocket.on(event, (data: T) => {\n cb(data);\n });\n }\n\n /**\n * @param event - TODO.\n */\n public unregisterMobiusSocketListener(event: string): void {\n if (!mobiusSocket) {\n mobiusSocket = getMobiusSocketInstance(instance.getWebex());\n }\n mobiusSocket.off(event);\n }\n}\n\nexport default Object.freeze(new SDKConnector()); // TODO: remove freeze?\n"],"mappings":";;;;;;;;;;;AAEA,IAAAA,2BAAA,GAAAC,OAAA;AAIA,IAAAC,MAAA,GAAAD,OAAA;AANA;AACA;;AAIA;;AAGA,IAAIE,QAAuB;AAC3B,IAAIC,KAAe;AACnB;AACA,IAAIC,YAAiB;;AAErB;AACA;AACA;AAFA,IAGMC,YAAY;EAAA,SAAAA,aAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAF,YAAA;EAAA;EAAA,WAAAG,aAAA,CAAAD,OAAA,EAAAF,YAAA;IAAAI,GAAA;IAAAC,KAAA;IAChB;AACF;AACA;IACE,SAAOC,QAAQA,CAACC,aAAuB,EAAQ;MAC7C,IAAIV,QAAQ,EAAE;QACZ,MAAM,IAAIW,KAAK,CAAC,yDAAyD,CAAC,CAAC,CAAC;MAC9E;MACA,IAAAC,cAAA,GAAyB,IAAAC,oBAAa,EAACH,aAAa,CAAC;QAA9CI,KAAK,GAAAF,cAAA,CAALE,KAAK;QAAEC,OAAO,GAAAH,cAAA,CAAPG,OAAO;MAErB,IAAID,KAAK,EAAE;QACT,MAAMA,KAAK;MACb,CAAC,MAAM,IAAIC,OAAO,EAAE;QAClBd,KAAK,GAAGS,aAAa,CAAC,CAAC;QACvBR,YAAY,GAAG,IAAAc,mDAAuB,EAACN,aAAa,CAAC;MACvD,CAAC,MAAM;QACL,MAAM,IAAIC,KAAK,CAAC,0DAA0D,CAAC;MAC7E;;MAEA;MACAX,QAAQ,GAAG,IAAI;IACjB;;IAEA;AACF;AACA;EAFE;IAAAO,GAAA;IAAAC,KAAA,EAGA,SAAOS,GAAGA,CAAA,EAAkB;MAC1B,OAAOjB,QAAQ;IACjB;;IAEA;AACF;AACA;EAFE;IAAAO,GAAA;IAAAC,KAAA,EAGA,SAAOU,QAAQA,CAAA,EAAa;MAC1B,OAAOjB,KAAK;IACd;;IAEA;AACF;AACA;EAFE;IAAAM,GAAA;IAAAC,KAAA,EAGA,SAAOW,OAAOA,CAAIA,QAA4B,EAAc;MAC1D,OAAOnB,QAAQ,CAACkB,QAAQ,CAAC,CAAC,CAACC,OAAO,CAACA,QAAO,CAAC;IAC7C;;IAEA;AACF;AACA;AACA;EAHE;IAAAZ,GAAA;IAAAC,KAAA,EAIA,SAAOY,gBAAgBA,CAAIC,KAAa,EAAEC,EAAsB,EAAQ;MACtEtB,QAAQ,CAACkB,QAAQ,CAAC,CAAC,CAACK,QAAQ,CAACC,OAAO,CAACC,EAAE,CAACJ,KAAK,EAAE,UAACK,IAAO,EAAK;QAC1DJ,EAAE,CAACI,IAAI,CAAC;MACV,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;EAFE;IAAAnB,GAAA;IAAAC,KAAA,EAGA,SAAOmB,kBAAkBA,CAACN,KAAa,EAAQ;MAC7CrB,QAAQ,CAACkB,QAAQ,CAAC,CAAC,CAACK,QAAQ,CAACC,OAAO,CAACI,GAAG,CAACP,KAAK,CAAC;IACjD;;IAEA;AACF;AACA;AACA;EAHE;IAAAd,GAAA;IAAAC,KAAA,EAIA,SAAOqB,4BAA4BA,CAAIR,KAAa,EAAEC,EAAsB,EAAQ;MAClF,IAAI,CAACpB,YAAY,EAAE;QACjBA,YAAY,GAAG,IAAAc,mDAAuB,EAAChB,QAAQ,CAACkB,QAAQ,CAAC,CAAC,CAAC;MAC7D;MACAhB,YAAY,CAACuB,EAAE,CAACJ,KAAK,EAAE,UAACK,IAAO,EAAK;QAClCJ,EAAE,CAACI,IAAI,CAAC;MACV,CAAC,CAAC;IACJ;;IAEA;AACF;AACA;EAFE;IAAAnB,GAAA;IAAAC,KAAA,EAGA,SAAOsB,8BAA8BA,CAACT,KAAa,EAAQ;MACzD,IAAI,CAACnB,YAAY,EAAE;QACjBA,YAAY,GAAG,IAAAc,mDAAuB,EAAChB,QAAQ,CAACkB,QAAQ,CAAC,CAAC,CAAC;MAC7D;MACAhB,YAAY,CAAC0B,GAAG,CAACP,KAAK,CAAC;IACzB;EAAC;AAAA;AAAA,IAAAU,QAAA,GAAAC,OAAA,CAAA3B,OAAA,GAGY,IAAA4B,OAAA,CAAA5B,OAAA,EAAc,IAAIF,YAAY,CAAC,CAAC,CAAC,EAAE","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 features: {\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: {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 registerMobiusSocketListener: <T>(event: string, cb: (data?: T) => unknown) => void;\n unregisterMobiusSocketListener: (event: string) => void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -28,6 +28,7 @@ exports.handleCallingClientErrors = handleCallingClientErrors;
28
28
  exports.handleRegistrationErrors = handleRegistrationErrors;
29
29
  exports.inferIdFromUuid = inferIdFromUuid;
30
30
  exports.modifySdpForIPv4 = modifySdpForIPv4;
31
+ exports.normalizeMobiusUris = normalizeMobiusUris;
31
32
  exports.parseMediaQualityStatistics = parseMediaQualityStatistics;
32
33
  exports.resolveCallerIdByName = resolveCallerIdByName;
33
34
  exports.resolveCallerIdDisplay = resolveCallerIdDisplay;
@@ -66,13 +67,15 @@ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof _Symbo
66
67
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
67
68
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } /* eslint-disable no-fallthrough */ /* eslint-disable no-underscore-dangle */ /* eslint-disable @typescript-eslint/no-shadow */
68
69
  function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
69
- var _mobiusServers$primar, _mobiusServers$backup;
70
+ var _mobiusServers$primar, _mobiusServers$primar2, _mobiusServers$backup, _mobiusServers$backup2;
70
71
  var logContext = {
71
72
  file: _constants.UTILS_FILE,
72
73
  method: 'filterMobiusUris'
73
74
  };
74
75
  var urisArrayPrimary = [];
75
76
  var urisArrayBackup = [];
77
+ var wssArrayPrimary = [];
78
+ var wssArrayBackup = [];
76
79
  if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$primar = mobiusServers.primary) !== null && _mobiusServers$primar !== void 0 && _mobiusServers$primar.uris) {
77
80
  _Logger.default.info('Adding Primary uris', logContext);
78
81
  var _iterator = _createForOfIteratorHelper(mobiusServers.primary.uris),
@@ -88,14 +91,14 @@ function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
88
91
  _iterator.f();
89
92
  }
90
93
  }
91
- if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$backup = mobiusServers.backup) !== null && _mobiusServers$backup !== void 0 && _mobiusServers$backup.uris) {
92
- _Logger.default.info('Adding Backup uris', logContext);
93
- var _iterator2 = _createForOfIteratorHelper(mobiusServers.backup.uris),
94
+ if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$primar2 = mobiusServers.primary) !== null && _mobiusServers$primar2 !== void 0 && _mobiusServers$primar2.wss) {
95
+ _Logger.default.info('Adding Primary wss uris', logContext);
96
+ var _iterator2 = _createForOfIteratorHelper(mobiusServers.primary.wss),
94
97
  _step2;
95
98
  try {
96
99
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
97
- var _uri = _step2.value;
98
- urisArrayBackup.push("".concat(_uri).concat(_constants.URL_ENDPOINT));
100
+ var wssUri = _step2.value;
101
+ wssArrayPrimary.push(wssUri);
99
102
  }
100
103
  } catch (err) {
101
104
  _iterator2.e(err);
@@ -103,6 +106,36 @@ function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
103
106
  _iterator2.f();
104
107
  }
105
108
  }
109
+ if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$backup = mobiusServers.backup) !== null && _mobiusServers$backup !== void 0 && _mobiusServers$backup.uris) {
110
+ _Logger.default.info('Adding Backup uris', logContext);
111
+ var _iterator3 = _createForOfIteratorHelper(mobiusServers.backup.uris),
112
+ _step3;
113
+ try {
114
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
115
+ var _uri = _step3.value;
116
+ urisArrayBackup.push("".concat(_uri).concat(_constants.URL_ENDPOINT));
117
+ }
118
+ } catch (err) {
119
+ _iterator3.e(err);
120
+ } finally {
121
+ _iterator3.f();
122
+ }
123
+ }
124
+ if (mobiusServers !== null && mobiusServers !== void 0 && (_mobiusServers$backup2 = mobiusServers.backup) !== null && _mobiusServers$backup2 !== void 0 && _mobiusServers$backup2.wss) {
125
+ _Logger.default.info('Adding Backup wss uris', logContext);
126
+ var _iterator4 = _createForOfIteratorHelper(mobiusServers.backup.wss),
127
+ _step4;
128
+ try {
129
+ for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
130
+ var _wssUri = _step4.value;
131
+ wssArrayBackup.push(_wssUri);
132
+ }
133
+ } catch (err) {
134
+ _iterator4.e(err);
135
+ } finally {
136
+ _iterator4.f();
137
+ }
138
+ }
106
139
 
107
140
  /*
108
141
  * If there are no entries in both primary and backup arrays then add the default
@@ -116,6 +149,8 @@ function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
116
149
  }
117
150
  var primaryUris = [];
118
151
  var backupUris = [];
152
+ var primaryWss = [];
153
+ var backupWss = [];
119
154
 
120
155
  /* Remove duplicates from primary by keeping the order intact */
121
156
  for (var i = 0; i < urisArrayPrimary.length; i += 1) {
@@ -130,9 +165,28 @@ function filterMobiusUris(mobiusServers, defaultMobiusUrl) {
130
165
  backupUris.push(urisArrayBackup[_i]);
131
166
  }
132
167
  }
168
+
169
+ /* Remove duplicates from primary wss by keeping the order intact */
170
+ for (var _i2 = 0; _i2 < wssArrayPrimary.length; _i2 += 1) {
171
+ if (primaryWss.indexOf(wssArrayPrimary[_i2]) === -1) {
172
+ primaryWss.push(wssArrayPrimary[_i2]);
173
+ }
174
+ }
175
+
176
+ /* Remove duplicates from backup wss by keeping the order intact */
177
+ for (var _i3 = 0; _i3 < wssArrayBackup.length; _i3 += 1) {
178
+ if (backupWss.indexOf(wssArrayBackup[_i3]) === -1) {
179
+ backupWss.push(wssArrayBackup[_i3]);
180
+ }
181
+ }
182
+
183
+ // TODO (Remove this later): Hardcoding the wss urls for now with test server url
184
+ primaryWss.push('wss://mobius.aload-calling1.ciscospark.com/v1/calling/web');
133
185
  return {
134
186
  primary: primaryUris,
135
- backup: backupUris
187
+ backup: backupUris,
188
+ primaryWss: primaryWss,
189
+ backupWss: backupWss
136
190
  };
137
191
  }
138
192
 
@@ -196,9 +250,9 @@ function updateErrorContext(errContext, type, message, clientError) {
196
250
  * @param caller - Method which called this handler.
197
251
  * @param file - File name from where error got reported.
198
252
  */
199
- function emitFinalFailure(emitterCb, loggerContext) {
200
- var clientError = (0, _LineError.createLineError)('', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
201
- updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.', _types3.RegistrationStatus.INACTIVE, clientError);
253
+ function emitFinalFailure(emitterCb, loggerContext, message) {
254
+ var clientError = (0, _LineError.createLineError)(message || '', {}, _types2.ERROR_TYPE.DEFAULT, _types3.RegistrationStatus.INACTIVE);
255
+ updateLineErrorContext(loggerContext, _types2.ERROR_TYPE.SERVICE_UNAVAILABLE, message || 'An unknown error occurred. Wait a moment and try again. Please contact the administrator if the problem persists.', _types3.RegistrationStatus.INACTIVE, clientError);
202
256
  emitterCb(clientError);
203
257
  }
204
258
 
@@ -1480,4 +1534,9 @@ function _uploadLogs() {
1480
1534
  }));
1481
1535
  return _uploadLogs.apply(this, arguments);
1482
1536
  }
1537
+ function normalizeMobiusUris(urls) {
1538
+ return urls.map(function (url) {
1539
+ return !url.endsWith('/') ? "".concat(url, "/") : url;
1540
+ });
1541
+ }
1483
1542
  //# sourceMappingURL=Utils.js.map