@webex/calling 3.12.0-mobius-socket.10 → 3.12.0-mobius-socket.12

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 (81) hide show
  1. package/dist/CallingClient/CallingClient.test.js +2 -2
  2. package/dist/CallingClient/CallingClient.test.js.map +1 -1
  3. package/dist/CallingClient/calling/call.test.js +1 -1
  4. package/dist/CallingClient/calling/call.test.js.map +1 -1
  5. package/dist/CallingClient/line/line.test.js +2 -2
  6. package/dist/CallingClient/line/line.test.js.map +1 -1
  7. package/dist/CallingClient/registration/register.js +76 -43
  8. package/dist/CallingClient/registration/register.js.map +1 -1
  9. package/dist/CallingClient/registration/register.test.js +1 -1
  10. package/dist/CallingClient/registration/register.test.js.map +1 -1
  11. package/dist/CallingClient/registration/types.js.map +1 -1
  12. package/dist/CallingClient/utils/request.js +2 -2
  13. package/dist/CallingClient/utils/request.js.map +1 -1
  14. package/dist/common/Utils.js +70 -30
  15. package/dist/common/Utils.js.map +1 -1
  16. package/dist/mobius-socket/config.js +61 -0
  17. package/dist/mobius-socket/config.js.map +1 -0
  18. package/dist/mobius-socket/errors.js +106 -0
  19. package/dist/mobius-socket/errors.js.map +1 -0
  20. package/dist/mobius-socket/index.js +101 -0
  21. package/dist/mobius-socket/index.js.map +1 -0
  22. package/dist/mobius-socket/mobius-socket-events.test.js +511 -0
  23. package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -0
  24. package/dist/mobius-socket/mobius-socket.js +1191 -0
  25. package/dist/mobius-socket/mobius-socket.js.map +1 -0
  26. package/dist/mobius-socket/mobius-socket.test.js +2107 -0
  27. package/dist/mobius-socket/mobius-socket.test.js.map +1 -0
  28. package/dist/mobius-socket/socket/constants.js +20 -0
  29. package/dist/mobius-socket/socket/constants.js.map +1 -0
  30. package/dist/mobius-socket/socket/index.js +15 -0
  31. package/dist/mobius-socket/socket/index.js.map +1 -0
  32. package/dist/mobius-socket/socket/socket-base.js +632 -0
  33. package/dist/mobius-socket/socket/socket-base.js.map +1 -0
  34. package/dist/mobius-socket/socket/socket.js +19 -0
  35. package/dist/mobius-socket/socket/socket.js.map +1 -0
  36. package/dist/mobius-socket/socket/socket.shim.js +36 -0
  37. package/dist/mobius-socket/socket/socket.shim.js.map +1 -0
  38. package/dist/mobius-socket/socket.test.js +752 -0
  39. package/dist/mobius-socket/socket.test.js.map +1 -0
  40. package/dist/mobius-socket/test/mocha-helpers.js +23 -0
  41. package/dist/mobius-socket/test/mocha-helpers.js.map +1 -0
  42. package/dist/mobius-socket/test/promise-tick.js +29 -0
  43. package/dist/mobius-socket/test/promise-tick.js.map +1 -0
  44. package/dist/module/CallingClient/registration/register.js +30 -7
  45. package/dist/module/CallingClient/utils/request.js +1 -1
  46. package/dist/module/common/Utils.js +17 -4
  47. package/dist/module/mobius-socket/config.js +18 -0
  48. package/dist/module/mobius-socket/errors.js +30 -0
  49. package/dist/module/mobius-socket/index.js +24 -0
  50. package/dist/module/mobius-socket/mobius-socket.js +761 -0
  51. package/dist/module/mobius-socket/socket/constants.js +10 -0
  52. package/dist/module/mobius-socket/socket/index.js +4 -0
  53. package/dist/module/mobius-socket/socket/socket-base.js +374 -0
  54. package/dist/module/mobius-socket/socket/socket.js +9 -0
  55. package/dist/module/mobius-socket/socket/socket.shim.js +24 -0
  56. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  57. package/dist/types/CallingClient/registration/types.d.ts +1 -1
  58. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  59. package/dist/types/common/Utils.d.ts +4 -1
  60. package/dist/types/common/Utils.d.ts.map +1 -1
  61. package/dist/types/mobius-socket/config.d.ts +15 -0
  62. package/dist/types/mobius-socket/config.d.ts.map +1 -0
  63. package/dist/types/mobius-socket/errors.d.ts +13 -0
  64. package/dist/types/mobius-socket/errors.d.ts.map +1 -0
  65. package/dist/types/mobius-socket/index.d.ts +9 -0
  66. package/dist/types/mobius-socket/index.d.ts.map +1 -0
  67. package/dist/types/mobius-socket/mobius-socket.d.ts +62 -0
  68. package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -0
  69. package/dist/types/mobius-socket/socket/constants.d.ts +11 -0
  70. package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -0
  71. package/dist/types/mobius-socket/socket/index.d.ts +2 -0
  72. package/dist/types/mobius-socket/socket/index.d.ts.map +1 -0
  73. package/dist/types/mobius-socket/socket/socket-base.d.ts +38 -0
  74. package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -0
  75. package/dist/types/mobius-socket/socket/socket.d.ts +3 -0
  76. package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -0
  77. package/dist/types/mobius-socket/socket/socket.shim.d.ts +3 -0
  78. package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -0
  79. package/package.json +16 -3
  80. package/src/mobius-socket/socket/socket.js +13 -0
  81. package/src/mobius-socket/socket/socket.shim.js +31 -0
@@ -0,0 +1,10 @@
1
+ export const SOCKET_READY_STATE = Object.freeze({
2
+ CONNECTING: 0,
3
+ OPEN: 1,
4
+ CLOSING: 2,
5
+ CLOSED: 3,
6
+ });
7
+ export const MESSAGE_TYPES = Object.freeze({
8
+ AUTH: 'auth',
9
+ EVENT_ACK: 'event_ack',
10
+ });
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ export { default } from './socket';
@@ -0,0 +1,374 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ import { EventEmitter } from 'events';
5
+ import { checkRequired } from '@webex/common';
6
+ import { safeSetTimeout } from '@webex/common-timers';
7
+ import { defaults, has, isObject } from 'lodash';
8
+ import { BadRequest, ConnectionError, Forbidden, NotAuthorized, UnknownResponse, } from '../errors';
9
+ import { MESSAGE_TYPES, SOCKET_READY_STATE } from './constants';
10
+ const sockets = new WeakMap();
11
+ export default class Socket extends EventEmitter {
12
+ constructor() {
13
+ super();
14
+ this._domain = 'unknown-domain';
15
+ this._pendingResponses = new Map();
16
+ this.onmessage = this.onmessage.bind(this);
17
+ this.onclose = this.onclose.bind(this);
18
+ this.setMaxListeners(10);
19
+ }
20
+ get binaryType() {
21
+ return sockets.get(this).binaryType;
22
+ }
23
+ get bufferedAmount() {
24
+ return sockets.get(this).bufferedAmount;
25
+ }
26
+ get extensions() {
27
+ return sockets.get(this).extensions;
28
+ }
29
+ get protocol() {
30
+ return sockets.get(this).protocol;
31
+ }
32
+ get readyState() {
33
+ return sockets.get(this).readyState;
34
+ }
35
+ get url() {
36
+ return sockets.get(this).url;
37
+ }
38
+ static getWebSocketConstructor() {
39
+ throw new Error('Socket.getWebSocketConstructor() must be implemented in an environmentally appropriate way');
40
+ }
41
+ close(options) {
42
+ return new Promise((resolve, reject) => {
43
+ const socket = sockets.get(this);
44
+ if (!socket) {
45
+ resolve();
46
+ return;
47
+ }
48
+ this.logger.info(`socket,${this._domain}: closing`);
49
+ if (socket.readyState === SOCKET_READY_STATE.CLOSING ||
50
+ socket.readyState === SOCKET_READY_STATE.CLOSED) {
51
+ this.logger.info(`socket,${this._domain}: already closed`);
52
+ resolve();
53
+ return;
54
+ }
55
+ options = options || {};
56
+ if (options.code && options.code !== 1000 && (options.code < 3000 || options.code > 4999)) {
57
+ reject(new Error('`options.code` must be 1000 or between 3000 and 4999 (inclusive)'));
58
+ return;
59
+ }
60
+ const originalCode = options.code;
61
+ const originalReason = options.reason;
62
+ options = defaults(options, {
63
+ code: 1000,
64
+ reason: 'Done',
65
+ });
66
+ const closeTimer = safeSetTimeout(() => {
67
+ try {
68
+ this.logger.info(`socket,${this._domain}: no close event received, forcing closure`);
69
+ resolve(this.onclose(originalCode
70
+ ? { code: originalCode, reason: originalReason || 'Done (unknown)' }
71
+ : {
72
+ code: 1000,
73
+ reason: 'Done (forced)',
74
+ }));
75
+ }
76
+ catch (error) {
77
+ this.logger.warn(`socket,${this._domain}: force-close failed`, error);
78
+ }
79
+ }, this.forceCloseDelay);
80
+ socket.onclose = (event) => {
81
+ this.logger.info(`socket,${this._domain}: close event fired`, event.code, event.reason);
82
+ clearTimeout(closeTimer);
83
+ this.onclose(event);
84
+ resolve(event);
85
+ };
86
+ if (socket.readyState === SOCKET_READY_STATE.CONNECTING) {
87
+ this.logger.info(`socket,${this._domain}: socket still connecting, triggering close manually`);
88
+ clearTimeout(closeTimer);
89
+ const closeEvent = { code: options.code, reason: options.reason };
90
+ this.onclose(closeEvent);
91
+ resolve(closeEvent);
92
+ try {
93
+ socket.close(options.code, options.reason);
94
+ }
95
+ catch (error) {
96
+ this.logger.info(`socket,${this._domain}: error while closing CONNECTING socket, likely due to browser incompatibility with custom close codes`, error);
97
+ }
98
+ }
99
+ else {
100
+ socket.close(options.code, options.reason);
101
+ }
102
+ });
103
+ }
104
+ open(url, options) {
105
+ try {
106
+ this._domain = new URL(url).hostname;
107
+ }
108
+ catch {
109
+ this._domain = url;
110
+ }
111
+ return new Promise((resolve, reject) => {
112
+ if (!url) {
113
+ reject(new Error('`url` is required'));
114
+ return;
115
+ }
116
+ if (sockets.get(this)) {
117
+ reject(new Error('Socket#open() can only be called once per instance'));
118
+ return;
119
+ }
120
+ options = options || {};
121
+ checkRequired(['forceCloseDelay', 'token', 'trackingId', 'logger'], options);
122
+ Object.keys(options).forEach((key) => {
123
+ Reflect.defineProperty(this, key, {
124
+ enumerable: false,
125
+ value: options[key],
126
+ });
127
+ });
128
+ const WebSocket = Socket.getWebSocketConstructor();
129
+ this.logger.info(`socket,${this._domain}: creating WebSocket`);
130
+ const socket = new WebSocket(url, [], options);
131
+ socket.binaryType = 'arraybuffer';
132
+ socket.onmessage = this.onmessage;
133
+ socket.onclose = (event) => {
134
+ event = this._fixCloseCode(event);
135
+ this.logger.info(`socket,${this._domain}: closed before open`, event.code, event.reason);
136
+ switch (event.code) {
137
+ case 1005:
138
+ return reject(new UnknownResponse(event));
139
+ case 4400:
140
+ return reject(new BadRequest(event));
141
+ case 4401:
142
+ return reject(new NotAuthorized(event));
143
+ case 4403:
144
+ return reject(new Forbidden(event));
145
+ default:
146
+ return reject(new ConnectionError(event));
147
+ }
148
+ };
149
+ socket.onopen = () => {
150
+ this.logger.info(`socket,${this._domain}: connected`);
151
+ this._authorize(this.token)
152
+ .then(() => {
153
+ this.logger.info(`socket,${this._domain}: authorized`);
154
+ socket.onclose = this.onclose;
155
+ resolve();
156
+ })
157
+ .catch(reject);
158
+ };
159
+ socket.onerror = (event) => {
160
+ this.logger.warn(`socket,${this._domain}: error event fired`, event);
161
+ };
162
+ sockets.set(this, socket);
163
+ this.logger.info(`socket,${this._domain}: waiting for server`);
164
+ });
165
+ }
166
+ onclose(event) {
167
+ this.logger.info(`socket,${this._domain}: closed`, event.code, event.reason);
168
+ event = this._fixCloseCode(event);
169
+ this._rejectPendingResponses(new ConnectionError(event));
170
+ this.emit('close', event);
171
+ this.removeAllListeners();
172
+ }
173
+ onmessage(event) {
174
+ try {
175
+ const data = JSON.parse(event.data);
176
+ const processedEvent = { data };
177
+ if (data.type === 'async_event') {
178
+ this._acknowledge(processedEvent).catch((error) => {
179
+ this.logger.warn(`socket,${this._domain}: failed to acknowledge async event`, error);
180
+ });
181
+ }
182
+ this._handlePendingResponse(data);
183
+ this.emit('message', processedEvent);
184
+ }
185
+ catch (error) {
186
+ this.logger.warn(`socket,${this._domain}: error while receiving WebSocket message`, error);
187
+ }
188
+ }
189
+ send(data) {
190
+ return new Promise((resolve, reject) => {
191
+ if (this.readyState !== SOCKET_READY_STATE.OPEN) {
192
+ return reject(new Error('INVALID_STATE_ERROR'));
193
+ }
194
+ if (isObject(data)) {
195
+ data = JSON.stringify(data);
196
+ }
197
+ const socket = sockets.get(this);
198
+ socket.send(data);
199
+ return resolve();
200
+ });
201
+ }
202
+ sendRequest(data, options = {}) {
203
+ if (!isObject(data)) {
204
+ return Promise.reject(new Error('`data` is required'));
205
+ }
206
+ const request = { ...data };
207
+ const trackingId = request.trackingId || this._createTrackingId();
208
+ const timeout = options.timeout || this.wssResponseTimeout || 10000;
209
+ const matchesResponse = options.matchesResponse ||
210
+ ((response) => response?.trackingId === trackingId && response?.type === 'response_event');
211
+ const getStatusCode = options.getStatusCode || ((response) => response?.statusCode);
212
+ const getStatusMessage = options.getStatusMessage || ((response) => response?.statusMessage);
213
+ const createError = options.createError ||
214
+ ((response, statusCode, statusMessage) => new ConnectionError({
215
+ code: statusCode,
216
+ reason: statusMessage || response?.reason || 'Socket request failed',
217
+ }));
218
+ const createTimeoutError = options.createTimeoutError ||
219
+ (() => new ConnectionError({
220
+ reason: 'Socket response not received before timeout',
221
+ }));
222
+ if (this._pendingResponses.has(trackingId)) {
223
+ return Promise.reject(new Error(`socket request already pending for trackingId ${trackingId}`));
224
+ }
225
+ request.trackingId = trackingId;
226
+ return new Promise((resolve, reject) => {
227
+ const timeoutId = safeSetTimeout(() => {
228
+ this._clearPendingResponse(trackingId);
229
+ reject(createTimeoutError(request));
230
+ }, timeout);
231
+ this._pendingResponses.set(trackingId, {
232
+ request,
233
+ matchesResponse,
234
+ getStatusCode,
235
+ getStatusMessage,
236
+ createError,
237
+ resolve: (response) => {
238
+ this._clearPendingResponse(trackingId);
239
+ resolve(response);
240
+ },
241
+ reject: (error) => {
242
+ this._clearPendingResponse(trackingId);
243
+ reject(error);
244
+ },
245
+ timeoutId,
246
+ });
247
+ this.send(request).catch((error) => {
248
+ this._clearPendingResponse(trackingId);
249
+ reject(error);
250
+ });
251
+ });
252
+ }
253
+ _acknowledge(event) {
254
+ if (!event) {
255
+ return Promise.reject(new Error('`event` is required'));
256
+ }
257
+ if (!has(event, 'data.eventId')) {
258
+ return Promise.reject(new Error('`event.data.eventId` is required'));
259
+ }
260
+ if (this.readyState !== SOCKET_READY_STATE.OPEN) {
261
+ return Promise.resolve();
262
+ }
263
+ return this.send({
264
+ type: MESSAGE_TYPES.EVENT_ACK,
265
+ trackingId: event.data.trackingId || this._createTrackingId(),
266
+ eventId: event.data.eventId,
267
+ }).catch((error) => {
268
+ if (error.message === 'INVALID_STATE_ERROR') {
269
+ return Promise.resolve();
270
+ }
271
+ throw error;
272
+ });
273
+ }
274
+ refresh(token) {
275
+ if (!token) {
276
+ return Promise.reject(new Error('`token` is required for Socket#refresh()'));
277
+ }
278
+ const refreshedToken = token && typeof token.toString === 'function' ? token.toString() : token;
279
+ return this._authorize(refreshedToken);
280
+ }
281
+ _authorize(token) {
282
+ this.logger.info(`socket,${this._domain}: authorizing`);
283
+ return this.sendRequest({
284
+ type: MESSAGE_TYPES.AUTH,
285
+ data: {
286
+ token,
287
+ },
288
+ }, {
289
+ matchesResponse: (response, request) => response?.type === 'response_event' &&
290
+ response?.subtype === MESSAGE_TYPES.AUTH &&
291
+ response?.trackingId === request.trackingId,
292
+ getStatusCode: (response) => response?.statusCode,
293
+ getStatusMessage: (response) => response?.statusMessage,
294
+ createError: (response, statusCode, statusMessage) => new NotAuthorized({
295
+ code: statusCode,
296
+ reason: statusMessage || 'Mobius auth failed',
297
+ }),
298
+ createTimeoutError: () => new NotAuthorized({
299
+ reason: 'Mobius auth response not received before timeout',
300
+ }),
301
+ });
302
+ }
303
+ _createTrackingId() {
304
+ return `${this.trackingId}_${crypto.randomUUID()}`;
305
+ }
306
+ _clearPendingResponse(trackingId) {
307
+ const pendingResponse = this._pendingResponses.get(trackingId);
308
+ if (pendingResponse?.timeoutId) {
309
+ clearTimeout(pendingResponse.timeoutId);
310
+ }
311
+ this._pendingResponses.delete(trackingId);
312
+ }
313
+ _rejectPendingResponses(error) {
314
+ if (!this._pendingResponses.size) {
315
+ return;
316
+ }
317
+ Array.from(this._pendingResponses.values()).forEach((pendingResponse) => {
318
+ pendingResponse.reject(error);
319
+ });
320
+ }
321
+ _handlePendingResponse(response) {
322
+ if (!response) {
323
+ return false;
324
+ }
325
+ const pendingResponse = response.trackingId
326
+ ? this._pendingResponses.get(response.trackingId)
327
+ : undefined;
328
+ if (!pendingResponse) {
329
+ return false;
330
+ }
331
+ if (!pendingResponse.matchesResponse(response, pendingResponse.request)) {
332
+ return false;
333
+ }
334
+ const statusCode = pendingResponse.getStatusCode(response);
335
+ const statusMessage = pendingResponse.getStatusMessage(response);
336
+ if (statusCode === 440 && response?.subtype !== MESSAGE_TYPES.AUTH) {
337
+ if (typeof this.refreshToken === 'function') {
338
+ Promise.resolve(this.refreshToken(response)).catch((error) => {
339
+ this.logger.warn(`socket,${this._domain}: failed token-expiry re-auth`, error);
340
+ });
341
+ }
342
+ else {
343
+ this.logger.warn(`socket,${this._domain}: refreshToken callback is unavailable for statusCode 440`);
344
+ }
345
+ }
346
+ if (statusCode === undefined) {
347
+ pendingResponse.reject(pendingResponse.createError(response, statusCode, statusMessage || 'Socket response missing status code'));
348
+ }
349
+ else if (statusCode >= 200 && statusCode < 300) {
350
+ pendingResponse.resolve(response);
351
+ }
352
+ else {
353
+ pendingResponse.reject(pendingResponse.createError(response, statusCode, statusMessage));
354
+ }
355
+ return true;
356
+ }
357
+ _fixCloseCode(event) {
358
+ if (event.code === 1005 && event.reason) {
359
+ switch (event.reason.toLowerCase()) {
360
+ case 'replaced':
361
+ this.logger.info(`socket,${this._domain}: fixing CloseEvent code for reason: `, event.reason);
362
+ event.code = 4000;
363
+ break;
364
+ case 'authentication failed':
365
+ case 'authentication did not happen within the timeout window of 30000 seconds.':
366
+ this.logger.info(`socket,${this._domain}: fixing CloseEvent code for reason: `, event.reason);
367
+ event.code = 1008;
368
+ break;
369
+ default:
370
+ }
371
+ }
372
+ return event;
373
+ }
374
+ }
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ import WS from 'ws';
5
+ import Socket from './socket-base';
6
+ Socket.getWebSocketConstructor = function getWebSocketConstructor() {
7
+ return WS;
8
+ };
9
+ export default Socket;
@@ -0,0 +1,24 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ import Socket from './socket-base';
5
+ Socket.getWebSocketConstructor = function getWebSocketConstructor() {
6
+ let ws;
7
+ if (typeof WebSocket !== 'undefined') {
8
+ ws = WebSocket;
9
+ }
10
+ else if (typeof MozWebSocket !== 'undefined') {
11
+ ws = MozWebSocket;
12
+ }
13
+ else if (typeof global !== 'undefined') {
14
+ ws = global.WebSocket || global.MozWebSocket;
15
+ }
16
+ else if (typeof window !== 'undefined') {
17
+ ws = window.WebSocket || window.MozWebSocket;
18
+ }
19
+ else if (typeof self !== 'undefined') {
20
+ ws = self.WebSocket || self.MozWebSocket;
21
+ }
22
+ return ws;
23
+ };
24
+ export default Socket;
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/registration/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/registration/register.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export type Header = {
3
3
  [key: string]: string;
4
4
  };
5
5
  export type restoreRegistrationCallBack = (restoreData: IDeviceInfo, caller: string) => Promise<boolean>;
6
- export type retry429CallBack = (retryAfter: number, caller: string) => void;
6
+ export type retry429CallBack = (retryAfter: number, caller: string) => Promise<void>;
7
7
  export type FailoverCacheState = {
8
8
  attempt: number;
9
9
  timeElapsed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/registration/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAE5E,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,CACxC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;CAClC,CAAC;AAKF,MAAM,WAAW,aAAa;IAO5B,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAMhF,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAMrC,kBAAkB,IAAI,OAAO,CAAC;IAO9B,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAM3C,SAAS,IAAI,kBAAkB,CAAC;IAMhC,aAAa,IAAI,WAAW,CAAC;IAK7B,mBAAmB,IAAI,IAAI,CAAC;IAK5B,UAAU,IAAI,IAAI,CAAC;IAOnB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAMtC,kBAAkB,IAAI,MAAM,CAAC;IAO7B,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAMlD,kBAAkB,IAAI,OAAO,CAAC;IAQ9B,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAK9D,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/CallingClient/registration/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAE5E,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,CACxC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAErF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;CAClC,CAAC;AAKF,MAAM,WAAW,aAAa;IAO5B,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAMhF,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAMrC,kBAAkB,IAAI,OAAO,CAAC;IAO9B,SAAS,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAM3C,SAAS,IAAI,kBAAkB,CAAC;IAMhC,aAAa,IAAI,WAAW,CAAC;IAK7B,mBAAmB,IAAI,IAAI,CAAC;IAK5B,UAAU,IAAI,IAAI,CAAC;IAOnB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAMtC,kBAAkB,IAAI,MAAM,CAAC;IAO7B,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAMlD,kBAAkB,IAAI,OAAO,CAAC;IAQ9B,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAK9D,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC"}
@@ -17,7 +17,10 @@ export declare function filterMobiusUris(mobiusServers: MobiusServers, defaultMo
17
17
  backupWss: string[];
18
18
  };
19
19
  export declare function emitFinalFailure(emitterCb: LineErrorEmitterCallback, loggerContext: LogContext, message?: string): void;
20
- export declare function handleRegistrationErrors(err: WebexRequestPayload, emitterCb: LineErrorEmitterCallback, loggerContext: LogContext, retry429Cb?: retry429CallBack, restoreRegCb?: restoreRegistrationCallBack): Promise<boolean>;
20
+ export declare function handleRegistrationErrors(err: WebexRequestPayload, emitterCb: LineErrorEmitterCallback, loggerContext: LogContext, retry429Cb?: retry429CallBack, restoreRegCb?: restoreRegistrationCallBack, serverCount?: number): Promise<{
21
+ finalError: boolean;
22
+ shouldDisconnect: boolean;
23
+ }>;
21
24
  export declare function handleCallingClientErrors(err: WebexRequestPayload, emitterCb: CallingClientErrorEmitterCallback, loggerContext: LogContext): Promise<boolean>;
22
25
  export declare function handleCallErrors(emitterCb: CallErrorEmitterCallBack, errorLayer: ERROR_LAYER, retryCb: RetryCallBack, correlationId: CorrelationId, err: WebexRequestPayload, caller: string, file: string): Promise<boolean>;
23
26
  export declare function serviceErrorCodeHandler(err: WebexRequestPayload, loggerContext: LogContext): Promise<JanusResponseEvent | VoicemailResponseEvent | CallSettingResponse | ContactResponse | UpdateMissedCallsResponse | UCMLinesResponse | DeleteCallHistoryRecordsResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../src/common/Utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../src/common/Utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ declare namespace _default {
2
+ export { mobiusSocketConfig as mobiusSocket };
3
+ }
4
+ export default _default;
5
+ declare namespace mobiusSocketConfig {
6
+ const wssResponseTimeout: number;
7
+ const backoffTimeMax: number;
8
+ const backoffTimeReset: number;
9
+ const initialConnectionMaxRetries: number;
10
+ const maxRetries: number;
11
+ const forceCloseDelay: number;
12
+ const beforeLogoutOptionsCloseReason: string;
13
+ const dedupCacheMaxSize: number;
14
+ }
15
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/mobius-socket/config.js"],"names":[],"mappings":";;;;;8BAOY,MAAM;;;;;2BA8BN,MAAM"}
@@ -0,0 +1,13 @@
1
+ export class ConnectionError {
2
+ static defaultMessage: string;
3
+ parse(event?: CloseEvent): string;
4
+ }
5
+ export class UnknownResponse extends ConnectionError {
6
+ }
7
+ export class BadRequest extends ConnectionError {
8
+ }
9
+ export class NotAuthorized extends ConnectionError {
10
+ }
11
+ export class Forbidden extends ConnectionError {
12
+ }
13
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/mobius-socket/errors.js"],"names":[],"mappings":"AASA;IACE,8BAAsD;IAMtD,cAHW,UAAU,GACR,MAAM,CAalB;CACF;AAKD;CAGC;AAKD;CAGC;AAKD;CAEC;AAKD;CAEC"}
@@ -0,0 +1,9 @@
1
+ export function getMobiusSocketInstance(webex: object, mobiusSocketConfig?: object | undefined): MobiusSocket;
2
+ export function resetMobiusSocketInstance(): void;
3
+ export default MobiusSocket;
4
+ export { default as Socket } from "./socket";
5
+ import MobiusSocket from "./mobius-socket";
6
+ import config from "./config";
7
+ export { MobiusSocket, config };
8
+ export { BadRequest, ConnectionError, Forbidden, NotAuthorized, UnknownResponse } from "./errors";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mobius-socket/index.js"],"names":[],"mappings":"AA0BA,+CAJW,MAAM,4CAEJ,YAAY,CAUxB;AAMD,6CAFa,IAAI,CAIhB"}
@@ -0,0 +1,62 @@
1
+ export default MobiusSocket;
2
+ declare class MobiusSocket extends EventEmitter<[never]> {
3
+ constructor(webex: any, config?: {});
4
+ webex: any;
5
+ config: {};
6
+ logger: any;
7
+ defaultSessionId: string;
8
+ connected: boolean;
9
+ connecting: boolean;
10
+ hasEverConnected: boolean;
11
+ socket: any;
12
+ sockets: Map<any, any>;
13
+ backoffCalls: Map<any, any>;
14
+ _shutdownSwitchoverBackoffCalls: Map<any, any>;
15
+ _seenAsyncEventIdsBySession: Map<any, any>;
16
+ _connectPromises: Map<any, any>;
17
+ mercuryTimeOffset: number | undefined;
18
+ _tokenRefreshTimer: NodeJS.Timeout | undefined;
19
+ _tokenRefreshInFlight: any;
20
+ off(eventName: any, listener: any): MobiusSocket;
21
+ _bindInternalEvents(): void;
22
+ _attachSocketEventListeners(socket: Socket, sessionId: any): void;
23
+ _getSeenAsyncEventIds(sessionId: string): Map<string, boolean>;
24
+ _clearSeenAsyncEventIds(sessionId?: string | undefined): void;
25
+ _trackAsyncEventAndShouldSuppressDuplicate(sessionId: string, envelope: object): boolean;
26
+ _handleImminentShutdown(sessionId: string): void;
27
+ getLastError(): any;
28
+ getSockets(): Map<any, any>;
29
+ getSocket(sessionId?: string): Socket | undefined;
30
+ getConnectedWebSocketUrl(sessionId?: string | undefined): string | undefined;
31
+ send(payload: Object, sessionId?: string | undefined): Promise<any>;
32
+ sendWssRequest(payload: Object, sessionIdOrOptions?: string | Object | undefined, options?: Object | undefined): Promise<Object>;
33
+ isConnected(): boolean;
34
+ hasConnectedSockets(sessionId?: string | undefined): boolean | undefined;
35
+ hasConnectingSockets(sessionId?: string | undefined): boolean | undefined;
36
+ connect(webSocketUrl?: string | undefined, sessionId?: string | undefined): Promise<void>;
37
+ socketUrl: any;
38
+ logout(): Promise<any>;
39
+ disconnect(options?: object | undefined, sessionId?: string | undefined): Promise<void>;
40
+ disconnectAll(options: object): Promise<any>;
41
+ processRegistrationStatusEvent(message: any): void;
42
+ localClusterServiceUrls: any;
43
+ _createWssResponseError(response: any, statusCode: any, statusMessage: any): Error;
44
+ _applyOverrides(event: any): void;
45
+ _prepareUrl(webSocketUrl: any): Promise<any>;
46
+ _attemptConnection(socketUrl: any, sessionId: any, callback: any, options?: {}): Promise<any>;
47
+ lastError: any;
48
+ _prepareAndOpenSocket(socket: any, socketUrl: any, sessionId: any, isShutdownSwitchover?: boolean): Promise<any>;
49
+ _connectWithBackoff(webSocketUrl: any, sessionId: any, context?: {}): Promise<any>;
50
+ _emit(sessionId: any, eventName: any, ...args: any[]): void;
51
+ _getEventHandlers(eventType: any): any[];
52
+ _startTokenRefreshTimer(): void;
53
+ _stopTokenRefreshTimer(): void;
54
+ _refreshToken(): any;
55
+ _onclose(sessionId: any, event: any, sourceSocket: any): void;
56
+ _onmessage(sessionId: any, event: any): any;
57
+ _setTimeOffset(sessionId: any, event: any): void;
58
+ _reconnect(webSocketUrl: any, sessionId?: string): Promise<void>;
59
+ }
60
+ import { EventEmitter } from "events";
61
+ import Socket from "./socket";
62
+ //# sourceMappingURL=mobius-socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobius-socket.d.ts","sourceRoot":"","sources":["../../../src/mobius-socket/mobius-socket.js"],"names":[],"mappings":";AA+BA;IACE,qCAyBC;IAlBC,WAAkB;IAClB,WAAoB;IACpB,YAAqC;IACrC,yBAAwD;IACxD,mBAAsB;IACtB,oBAAuB;IACvB,0BAA6B;IAC7B,YAAuB;IACvB,uBAAwB;IACxB,4BAA6B;IAC7B,+CAAgD;IAChD,2CAA4C;IAC5C,gCAAiC;IACjC,sCAAkC;IAClC,+CAAmC;IACnC,2BAAsC;IAKxC,iDAQC;IAED,4BAsCC;IAQD,oCAJW,MAAM,mBAEJ,IAAI,CAYhB;IAOD,iCAHW,MAAM,GACJ,IAAI,MAAM,EAAE,OAAO,CAAC,CAWhC;IAOD,yDAFa,IAAI,CAUhB;IAQD,sDAJW,MAAM,YACN,MAAM,GACJ,OAAO,CAqCnB;IASD,mCAHW,MAAM,GACJ,IAAI,CAmEhB;IAMD,gBAFa,GAAG,CAIf;IAMD,4BAEC;IAOD,sBAHW,MAAM,GACJ,MAAM,GAAC,SAAS,CAI5B;IAOD,0DAFa,MAAM,GAAC,SAAS,CAU5B;IAQD,cAJW,MAAM,gDAYhB;IASD,wBALW,MAAM,mFAGJ,QAAQ,MAAM,CAAC,CA2C3B;IAMD,eAFa,OAAO,CAInB;IAOD,qDAFa,OAAO,GAAC,SAAS,CAc7B;IAOD,sDAFa,OAAO,GAAC,SAAS,CAM7B;IAQD,4EAFa,QAAQ,IAAI,CAAC,CA0DzB;IA5BG,eAA6B;IA8BjC,uBASC;IAQD,0EAFa,QAAQ,IAAI,CAAC,CAkDzB;IAOD,uBAHW,MAAM,gBAoBhB;IAED,mDAEC;IADC,6BAA8D;IAGhE,mFAYC;IAED,kCASC;IAED,6CAgBC;IAED,8FAiIC;IA7DK,eAAuB;IA+D7B,iHAqCC;IAED,mFAmIC;IAED,4DAwBC;IAED,yCAqBC;IAED,gCAUC;IAED,+BAOC;IAED,qBA6CC;IAED,8DAgIC;IAED,4CAmFC;IAED,iDAKC;IAED,iEAIC;CACF"}
@@ -0,0 +1,11 @@
1
+ export const SOCKET_READY_STATE: Readonly<{
2
+ CONNECTING: 0;
3
+ OPEN: 1;
4
+ CLOSING: 2;
5
+ CLOSED: 3;
6
+ }>;
7
+ export const MESSAGE_TYPES: Readonly<{
8
+ AUTH: "auth";
9
+ EVENT_ACK: "event_ack";
10
+ }>;
11
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/mobius-socket/socket/constants.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG"}
@@ -0,0 +1,2 @@
1
+ export { default } from "./socket";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mobius-socket/socket/index.js"],"names":[],"mappings":""}