@webex/calling 3.12.0-mobius-socket.15 → 3.12.0-mobius-socket.16
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.
- package/dist/mobius-socket/config.js +8 -8
- package/dist/mobius-socket/config.js.map +1 -1
- package/dist/mobius-socket/errors.js +2 -3
- package/dist/mobius-socket/errors.js.map +1 -1
- package/dist/mobius-socket/index.js +16 -10
- package/dist/mobius-socket/index.js.map +1 -1
- package/dist/mobius-socket/mobius-socket-events.test.js +5 -3
- package/dist/mobius-socket/mobius-socket-events.test.js.map +1 -1
- package/dist/mobius-socket/mobius-socket.js +3 -2
- package/dist/mobius-socket/mobius-socket.js.map +1 -1
- package/dist/mobius-socket/mobius-socket.test.js +6 -4
- package/dist/mobius-socket/mobius-socket.test.js.map +1 -1
- package/dist/mobius-socket/socket/constants.js.map +1 -1
- package/dist/mobius-socket/socket/index.js.map +1 -1
- package/dist/mobius-socket/socket/socket-base.js +57 -32
- package/dist/mobius-socket/socket/socket-base.js.map +1 -1
- package/dist/mobius-socket/socket/socket.js.map +1 -1
- package/dist/mobius-socket/socket/socket.shim.js +3 -13
- package/dist/mobius-socket/socket/socket.shim.js.map +1 -1
- package/dist/mobius-socket/socket/types.js +7 -0
- package/dist/mobius-socket/socket/types.js.map +1 -0
- package/dist/mobius-socket/socket.test.js +36 -36
- package/dist/mobius-socket/socket.test.js.map +1 -1
- package/dist/mobius-socket/test/mocha-helpers.js.map +1 -1
- package/dist/mobius-socket/test/promise-tick.js +2 -3
- package/dist/mobius-socket/test/promise-tick.js.map +1 -1
- package/dist/module/mobius-socket/index.js +4 -1
- package/dist/module/mobius-socket/mobius-socket.js +3 -1
- package/dist/module/mobius-socket/socket/socket-base.js +60 -29
- package/dist/module/mobius-socket/socket/socket.shim.js +3 -15
- package/dist/module/mobius-socket/socket/types.js +1 -0
- package/dist/types/mobius-socket/config.d.ts +15 -12
- package/dist/types/mobius-socket/config.d.ts.map +1 -1
- package/dist/types/mobius-socket/errors.d.ts +15 -6
- package/dist/types/mobius-socket/errors.d.ts.map +1 -1
- package/dist/types/mobius-socket/index.d.ts +14 -7
- package/dist/types/mobius-socket/index.d.ts.map +1 -1
- package/dist/types/mobius-socket/mobius-socket.d.ts +27 -43
- package/dist/types/mobius-socket/mobius-socket.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/constants.d.ts +2 -2
- package/dist/types/mobius-socket/socket/constants.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/index.d.ts +4 -1
- package/dist/types/mobius-socket/socket/index.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/socket-base.d.ts +34 -28
- package/dist/types/mobius-socket/socket/socket-base.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/socket.d.ts +4 -1
- package/dist/types/mobius-socket/socket/socket.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/socket.shim.d.ts +4 -1
- package/dist/types/mobius-socket/socket/socket.shim.d.ts.map +1 -1
- package/dist/types/mobius-socket/socket/types.d.ts +69 -0
- package/dist/types/mobius-socket/socket/types.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/mobius-socket/socket/socket.shim.ts +22 -0
- package/src/mobius-socket/socket/{socket.js → socket.ts} +2 -1
- package/src/mobius-socket/socket/socket.shim.js +0 -31
|
@@ -12,46 +12,46 @@ exports.default = void 0;
|
|
|
12
12
|
var mobiusSocketConfig = {
|
|
13
13
|
/**
|
|
14
14
|
* Milliseconds to wait for websocket request/response messages, including auth.
|
|
15
|
-
*
|
|
15
|
+
* Type: string | number
|
|
16
16
|
*/
|
|
17
17
|
wssResponseTimeout: process.env.MOBIUS_SOCKET_RESPONSE_TIMEOUT || process.env.MOBIUS_SOCKET_AUTH_RESPONSE_TIMEOUT || 10000,
|
|
18
18
|
/**
|
|
19
19
|
* Maximum milliseconds between connection attempts
|
|
20
|
-
*
|
|
20
|
+
* Type: string | number
|
|
21
21
|
*/
|
|
22
22
|
backoffTimeMax: process.env.MOBIUS_SOCKET_BACKOFF_TIME_MAX || 32000,
|
|
23
23
|
/**
|
|
24
24
|
* Initial milliseconds between connection attempts
|
|
25
|
-
*
|
|
25
|
+
* Type: string | number
|
|
26
26
|
*/
|
|
27
27
|
backoffTimeReset: process.env.MOBIUS_SOCKET_BACKOFF_TIME_RESET || 1000,
|
|
28
28
|
/**
|
|
29
29
|
* Maximum number of retries for the initial connect() flow before rejecting.
|
|
30
|
-
*
|
|
30
|
+
* Type: string | number
|
|
31
31
|
*/
|
|
32
32
|
initialConnectionMaxRetries: process.env.MOBIUS_SOCKET_INITIAL_CONNECTION_MAX_RETRIES || 0,
|
|
33
33
|
/**
|
|
34
34
|
* Maximum number of retries for reconnect attempts after the socket has connected once.
|
|
35
35
|
* A value of 0 means unlimited reconnect retries.
|
|
36
|
-
*
|
|
36
|
+
* Type: string | number
|
|
37
37
|
*/
|
|
38
38
|
maxRetries: process.env.MOBIUS_SOCKET_MAX_RETRIES || 0,
|
|
39
39
|
/**
|
|
40
40
|
* Milliseconds to wait for a close frame before declaring the socket dead and
|
|
41
41
|
* discarding it
|
|
42
|
-
*
|
|
42
|
+
* Type: string | number
|
|
43
43
|
*/
|
|
44
44
|
forceCloseDelay: process.env.MOBIUS_SOCKET_FORCE_CLOSE_DELAY || 2000,
|
|
45
45
|
/**
|
|
46
46
|
* When logging out, use default reason which can trigger a reconnect,
|
|
47
47
|
* or set to something else, like `done (permanent)` to prevent reconnect
|
|
48
|
-
*
|
|
48
|
+
* Type: string
|
|
49
49
|
*/
|
|
50
50
|
beforeLogoutOptionsCloseReason: process.env.MOBIUS_SOCKET_LOGOUT_REASON || 'done (forced)',
|
|
51
51
|
/**
|
|
52
52
|
* Maximum number of eventIds to retain in the dedup cache for suppressing
|
|
53
53
|
* duplicate async_event messages retransmitted by the server.
|
|
54
|
-
*
|
|
54
|
+
* Type: string | number
|
|
55
55
|
*/
|
|
56
56
|
dedupCacheMaxSize: process.env.MOBIUS_SOCKET_DEDUP_CACHE_MAX_SIZE || 1000
|
|
57
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["mobiusSocketConfig","wssResponseTimeout","process","env","MOBIUS_SOCKET_RESPONSE_TIMEOUT","MOBIUS_SOCKET_AUTH_RESPONSE_TIMEOUT","backoffTimeMax","MOBIUS_SOCKET_BACKOFF_TIME_MAX","backoffTimeReset","MOBIUS_SOCKET_BACKOFF_TIME_RESET","initialConnectionMaxRetries","MOBIUS_SOCKET_INITIAL_CONNECTION_MAX_RETRIES","maxRetries","MOBIUS_SOCKET_MAX_RETRIES","forceCloseDelay","MOBIUS_SOCKET_FORCE_CLOSE_DELAY","beforeLogoutOptionsCloseReason","MOBIUS_SOCKET_LOGOUT_REASON","dedupCacheMaxSize","MOBIUS_SOCKET_DEDUP_CACHE_MAX_SIZE","_default","exports","default","mobiusSocket"],"sources":["config.
|
|
1
|
+
{"version":3,"names":["mobiusSocketConfig","wssResponseTimeout","process","env","MOBIUS_SOCKET_RESPONSE_TIMEOUT","MOBIUS_SOCKET_AUTH_RESPONSE_TIMEOUT","backoffTimeMax","MOBIUS_SOCKET_BACKOFF_TIME_MAX","backoffTimeReset","MOBIUS_SOCKET_BACKOFF_TIME_RESET","initialConnectionMaxRetries","MOBIUS_SOCKET_INITIAL_CONNECTION_MAX_RETRIES","maxRetries","MOBIUS_SOCKET_MAX_RETRIES","forceCloseDelay","MOBIUS_SOCKET_FORCE_CLOSE_DELAY","beforeLogoutOptionsCloseReason","MOBIUS_SOCKET_LOGOUT_REASON","dedupCacheMaxSize","MOBIUS_SOCKET_DEDUP_CACHE_MAX_SIZE","_default","exports","default","mobiusSocket"],"sources":["config.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport interface MobiusSocketConfig {\n wssResponseTimeout: string | number;\n backoffTimeMax: string | number;\n backoffTimeReset: string | number;\n initialConnectionMaxRetries: string | number;\n maxRetries: string | number;\n forceCloseDelay: string | number;\n beforeLogoutOptionsCloseReason: string;\n dedupCacheMaxSize: string | number;\n}\n\nconst mobiusSocketConfig: MobiusSocketConfig = {\n /**\n * Milliseconds to wait for websocket request/response messages, including auth.\n * Type: string | number\n */\n wssResponseTimeout:\n process.env.MOBIUS_SOCKET_RESPONSE_TIMEOUT ||\n process.env.MOBIUS_SOCKET_AUTH_RESPONSE_TIMEOUT ||\n 10000,\n /**\n * Maximum milliseconds between connection attempts\n * Type: string | number\n */\n backoffTimeMax: process.env.MOBIUS_SOCKET_BACKOFF_TIME_MAX || 32000,\n /**\n * Initial milliseconds between connection attempts\n * Type: string | number\n */\n backoffTimeReset: process.env.MOBIUS_SOCKET_BACKOFF_TIME_RESET || 1000,\n /**\n * Maximum number of retries for the initial connect() flow before rejecting.\n * Type: string | number\n */\n initialConnectionMaxRetries: process.env.MOBIUS_SOCKET_INITIAL_CONNECTION_MAX_RETRIES || 0,\n /**\n * Maximum number of retries for reconnect attempts after the socket has connected once.\n * A value of 0 means unlimited reconnect retries.\n * Type: string | number\n */\n maxRetries: process.env.MOBIUS_SOCKET_MAX_RETRIES || 0,\n /**\n * Milliseconds to wait for a close frame before declaring the socket dead and\n * discarding it\n * Type: string | number\n */\n forceCloseDelay: process.env.MOBIUS_SOCKET_FORCE_CLOSE_DELAY || 2000,\n /**\n * When logging out, use default reason which can trigger a reconnect,\n * or set to something else, like `done (permanent)` to prevent reconnect\n * Type: string\n */\n beforeLogoutOptionsCloseReason: process.env.MOBIUS_SOCKET_LOGOUT_REASON || 'done (forced)',\n /**\n * Maximum number of eventIds to retain in the dedup cache for suppressing\n * duplicate async_event messages retransmitted by the server.\n * Type: string | number\n */\n dedupCacheMaxSize: process.env.MOBIUS_SOCKET_DEDUP_CACHE_MAX_SIZE || 1000,\n};\n\nexport default {\n mobiusSocket: mobiusSocketConfig,\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAaA,IAAMA,kBAAsC,GAAG;EAC7C;AACF;AACA;AACA;EACEC,kBAAkB,EAChBC,OAAO,CAACC,GAAG,CAACC,8BAA8B,IAC1CF,OAAO,CAACC,GAAG,CAACE,mCAAmC,IAC/C,KAAK;EACP;AACF;AACA;AACA;EACEC,cAAc,EAAEJ,OAAO,CAACC,GAAG,CAACI,8BAA8B,IAAI,KAAK;EACnE;AACF;AACA;AACA;EACEC,gBAAgB,EAAEN,OAAO,CAACC,GAAG,CAACM,gCAAgC,IAAI,IAAI;EACtE;AACF;AACA;AACA;EACEC,2BAA2B,EAAER,OAAO,CAACC,GAAG,CAACQ,4CAA4C,IAAI,CAAC;EAC1F;AACF;AACA;AACA;AACA;EACEC,UAAU,EAAEV,OAAO,CAACC,GAAG,CAACU,yBAAyB,IAAI,CAAC;EACtD;AACF;AACA;AACA;AACA;EACEC,eAAe,EAAEZ,OAAO,CAACC,GAAG,CAACY,+BAA+B,IAAI,IAAI;EACpE;AACF;AACA;AACA;AACA;EACEC,8BAA8B,EAAEd,OAAO,CAACC,GAAG,CAACc,2BAA2B,IAAI,eAAe;EAC1F;AACF;AACA;AACA;AACA;EACEC,iBAAiB,EAAEhB,OAAO,CAACC,GAAG,CAACgB,kCAAkC,IAAI;AACvE,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa;EACbC,YAAY,EAAEvB;AAChB,CAAC","ignoreList":[]}
|
|
@@ -18,7 +18,7 @@ var _common = require("@webex/common");
|
|
|
18
18
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
19
19
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*!
|
|
20
20
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
21
|
-
*/
|
|
21
|
+
*/ // @ts-expect-error `@webex/common` is still JS-only and does not ship declarations.
|
|
22
22
|
/**
|
|
23
23
|
* Exception thrown when a websocket gets closed
|
|
24
24
|
*/
|
|
@@ -32,8 +32,7 @@ var ConnectionError = exports.ConnectionError = /*#__PURE__*/function (_Exceptio
|
|
|
32
32
|
key: "parse",
|
|
33
33
|
value:
|
|
34
34
|
/**
|
|
35
|
-
* @param
|
|
36
|
-
* @returns {string}
|
|
35
|
+
* @param event
|
|
37
36
|
*/
|
|
38
37
|
function parse() {
|
|
39
38
|
var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","ConnectionError","exports","_Exception","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","parse","event","length","undefined","_defineProperties","code","reason","Exception","_defineProperty2","UnknownResponse","_ConnectionError2","BadRequest","_ConnectionError3","NotAuthorized","_ConnectionError4","Forbidden","_ConnectionError5"],"sources":["errors.
|
|
1
|
+
{"version":3,"names":["_common","require","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","ConnectionError","exports","_Exception","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","parse","event","length","undefined","_defineProperties","code","reason","Exception","_defineProperty2","UnknownResponse","_ConnectionError2","BadRequest","_ConnectionError3","NotAuthorized","_ConnectionError4","Forbidden","_ConnectionError5"],"sources":["errors.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n// @ts-expect-error `@webex/common` is still JS-only and does not ship declarations.\nimport {Exception} from '@webex/common';\nimport type {SocketCloseEvent} from './socket/types';\n\n/**\n * Exception thrown when a websocket gets closed\n */\nexport class ConnectionError extends Exception {\n static defaultMessage = 'Failed to connect to socket';\n\n /**\n * @param event\n */\n parse(event: SocketCloseEvent = {}) {\n Object.defineProperties(this, {\n code: {\n value: event.code,\n },\n reason: {\n value: event.reason,\n },\n });\n\n return event.reason;\n }\n}\n\n/**\n * thrown for CloseCode 4400\n */\nexport class UnknownResponse extends ConnectionError {\n static defaultMessage =\n 'UnknownResponse is produced by IE when we receive a 4XXX. You probably want to treat this like a NotFound';\n}\n\n/**\n * thrown for CloseCode 4400\n */\nexport class BadRequest extends ConnectionError {\n static defaultMessage =\n 'BadRequest usually implies an attempt to use service account credentials';\n}\n\n/**\n * thrown for CloseCode 4401\n */\nexport class NotAuthorized extends ConnectionError {\n static defaultMessage = 'Please refresh your access token';\n}\n\n/**\n * thrown for CloseCode 4403\n */\nexport class Forbidden extends ConnectionError {\n static defaultMessage = 'Forbidden usually implies these credentials are not entitled for Webex';\n}\n\n// /**\n// * thrown for CloseCode 4404\n// */\n// export class NotFound extends ConnectionError {\n// static defaultMessage = `Please refresh your Mercury registration (typically via a WDM refresh)`;\n// }\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
5
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
6
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
7
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
3
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
@@ -56,6 +61,7 @@ _Object$defineProperty(exports, "config", {
|
|
|
56
61
|
exports.default = void 0;
|
|
57
62
|
exports.getMobiusSocketInstance = getMobiusSocketInstance;
|
|
58
63
|
exports.resetMobiusSocketInstance = resetMobiusSocketInstance;
|
|
64
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
59
65
|
require("@webex/internal-plugin-device");
|
|
60
66
|
require("@webex/internal-plugin-feature");
|
|
61
67
|
require("@webex/internal-plugin-metrics");
|
|
@@ -63,36 +69,36 @@ var _mobiusSocket = _interopRequireDefault(require("./mobius-socket"));
|
|
|
63
69
|
var _config = _interopRequireDefault(require("./config"));
|
|
64
70
|
var _socket = _interopRequireDefault(require("./socket"));
|
|
65
71
|
var _errors = require("./errors");
|
|
66
|
-
|
|
72
|
+
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
73
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } /*!
|
|
67
74
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
68
75
|
*/
|
|
69
|
-
|
|
70
76
|
/**
|
|
71
77
|
* Creates a calling-owned Mobius socket client for the provided Webex instance.
|
|
72
78
|
*
|
|
73
|
-
* @param
|
|
74
|
-
* @param
|
|
75
|
-
* @returns
|
|
79
|
+
* @param webex
|
|
80
|
+
* @param [mobiusSocketConfig]
|
|
81
|
+
* @returns
|
|
76
82
|
*/
|
|
77
83
|
var mobiusSocketInstance; // Keeping just one instance of MobiusSocket since there won't be multiple connections
|
|
78
84
|
|
|
79
85
|
/**
|
|
80
86
|
* Creates or returns the singleton Mobius socket client for the provided Webex instance.
|
|
81
|
-
* @param
|
|
82
|
-
* @param
|
|
83
|
-
* @returns
|
|
87
|
+
* @param webex - The Webex SDK instance
|
|
88
|
+
* @param [mobiusSocketConfig] - Optional configuration overrides
|
|
89
|
+
* @returns The singleton MobiusSocket instance
|
|
84
90
|
*/
|
|
85
91
|
function getMobiusSocketInstance(webex, mobiusSocketConfig) {
|
|
86
92
|
if (mobiusSocketInstance) {
|
|
87
93
|
return mobiusSocketInstance;
|
|
88
94
|
}
|
|
89
|
-
mobiusSocketInstance = new _mobiusSocket.default(webex,
|
|
95
|
+
mobiusSocketInstance = new _mobiusSocket.default(webex, _objectSpread(_objectSpread({}, _config.default.mobiusSocket), mobiusSocketConfig));
|
|
90
96
|
return mobiusSocketInstance;
|
|
91
97
|
}
|
|
92
98
|
|
|
93
99
|
/**
|
|
94
100
|
* Resets the singleton MobiusSocket instance, allowing a new one to be created.
|
|
95
|
-
* @returns
|
|
101
|
+
* @returns
|
|
96
102
|
*/
|
|
97
103
|
function resetMobiusSocketInstance() {
|
|
98
104
|
mobiusSocketInstance = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_mobiusSocket","_interopRequireDefault","_config","_socket","_errors","mobiusSocketInstance","getMobiusSocketInstance","webex","mobiusSocketConfig","MobiusSocket","config","mobiusSocket","resetMobiusSocketInstance","undefined","_default","exports"
|
|
1
|
+
{"version":3,"names":["require","_mobiusSocket","_interopRequireDefault","_config","_socket","_errors","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","mobiusSocketInstance","getMobiusSocketInstance","webex","mobiusSocketConfig","MobiusSocket","config","mobiusSocket","resetMobiusSocketInstance","undefined","_default","exports"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-device';\nimport '@webex/internal-plugin-feature';\nimport '@webex/internal-plugin-metrics';\n\nimport MobiusSocket from './mobius-socket';\nimport config, {MobiusSocketConfig} from './config';\n\n/**\n * Creates a calling-owned Mobius socket client for the provided Webex instance.\n *\n * @param webex\n * @param [mobiusSocketConfig]\n * @returns\n */\nlet mobiusSocketInstance: MobiusSocket | undefined; // Keeping just one instance of MobiusSocket since there won't be multiple connections\n\n/**\n * Creates or returns the singleton Mobius socket client for the provided Webex instance.\n * @param webex - The Webex SDK instance\n * @param [mobiusSocketConfig] - Optional configuration overrides\n * @returns The singleton MobiusSocket instance\n */\nexport function getMobiusSocketInstance(\n webex: any,\n mobiusSocketConfig?: Partial<MobiusSocketConfig>\n): MobiusSocket {\n if (mobiusSocketInstance) {\n return mobiusSocketInstance;\n }\n\n mobiusSocketInstance = new MobiusSocket(webex, {\n ...config.mobiusSocket,\n ...mobiusSocketConfig,\n });\n\n return mobiusSocketInstance;\n}\n\n/**\n * Resets the singleton MobiusSocket instance, allowing a new one to be created.\n * @returns\n */\nexport function resetMobiusSocketInstance() {\n mobiusSocketInstance = undefined;\n}\n\nexport default MobiusSocket;\nexport {MobiusSocket};\nexport {default as Socket} from './socket';\nexport {config};\nexport {BadRequest, ConnectionError, Forbidden, NotAuthorized, UnknownResponse} from './errors';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIAA,OAAA;AACAA,OAAA;AACAA,OAAA;AAEA,IAAAC,aAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AA2CA,IAAAI,OAAA,GAAAF,sBAAA,CAAAF,OAAA;AAEA,IAAAK,OAAA,GAAAL,OAAA;AAAgG,SAAAM,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,YAAA,CAAAH,CAAA,OAAAI,6BAAA,QAAAC,CAAA,GAAAD,6BAAA,CAAAJ,CAAA,GAAAC,CAAA,KAAAI,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAL,CAAA,WAAAM,gCAAA,CAAAP,CAAA,EAAAC,CAAA,EAAAO,UAAA,OAAAN,CAAA,CAAAO,IAAA,CAAAC,KAAA,CAAAR,CAAA,EAAAG,CAAA,YAAAH,CAAA;AAAA,SAAAS,cAAAX,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAW,SAAA,CAAAC,MAAA,EAAAZ,CAAA,UAAAC,CAAA,WAAAU,SAAA,CAAAX,CAAA,IAAAW,SAAA,CAAAX,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAe,MAAA,CAAAZ,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,CAAAC,OAAA,EAAAjB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAiB,iCAAA,GAAAC,wBAAA,CAAAnB,CAAA,EAAAkB,iCAAA,CAAAhB,CAAA,KAAAH,OAAA,CAAAe,MAAA,CAAAZ,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAmB,sBAAA,CAAApB,CAAA,EAAAC,CAAA,EAAAM,gCAAA,CAAAL,CAAA,EAAAD,CAAA,iBAAAD,CAAA,IAtDhG;AACA;AACA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIqB,oBAA8C,CAAC,CAAC;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,uBAAuBA,CACrCC,KAAU,EACVC,kBAAgD,EAClC;EACd,IAAIH,oBAAoB,EAAE;IACxB,OAAOA,oBAAoB;EAC7B;EAEAA,oBAAoB,GAAG,IAAII,qBAAY,CAACF,KAAK,EAAAZ,aAAA,CAAAA,aAAA,KACxCe,eAAM,CAACC,YAAY,GACnBH,kBAAkB,CACtB,CAAC;EAEF,OAAOH,oBAAoB;AAC7B;;AAEA;AACA;AACA;AACA;AACO,SAASO,yBAAyBA,CAAA,EAAG;EAC1CP,oBAAoB,GAAGQ,SAAS;AAClC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAd,OAAA,GAEcQ,qBAAY","ignoreList":[]}
|
|
@@ -130,7 +130,9 @@ describe('plugin-mobiusSocket', function () {
|
|
|
130
130
|
if (mockWebSocket && typeof mockWebSocket.close === 'function') {
|
|
131
131
|
try {
|
|
132
132
|
mockWebSocket.close();
|
|
133
|
-
} catch (e) {
|
|
133
|
+
} catch (e) {
|
|
134
|
+
// Ignore cleanup errors in tests.
|
|
135
|
+
}
|
|
134
136
|
}
|
|
135
137
|
// Restore stubs
|
|
136
138
|
if (_index.Socket.getWebSocketConstructor.restore) {
|
|
@@ -214,12 +216,12 @@ describe('plugin-mobiusSocket', function () {
|
|
|
214
216
|
var promise = mobiusSocket.connect();
|
|
215
217
|
mockWebSocket.open();
|
|
216
218
|
return promise.then(function () {
|
|
217
|
-
var
|
|
219
|
+
var disconnectPromise = mobiusSocket.disconnect();
|
|
218
220
|
mockWebSocket.emit('close', {
|
|
219
221
|
code: 1000,
|
|
220
222
|
reason: 'Done'
|
|
221
223
|
});
|
|
222
|
-
return
|
|
224
|
+
return disconnectPromise;
|
|
223
225
|
}).then(function () {
|
|
224
226
|
return _testHelperChai.assert.calledOnce(spy);
|
|
225
227
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_crypto","require","_sinon","_interopRequireDefault","_testHelperChai","_testHelperMockWebex","_testHelperMockWebSocket","_index","_interopRequireWildcard","_constants","_promiseTick","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t2","hasOwnProperty","call","_Object$defineProperty2","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty3","_Object$getOwnPropertyDescriptors","_Object$defineProperties","crypto","randomUUID","_defineProperty2","value","configurable","describe","createUuid","mobiusSocket","mockWebSocket","originalSendSpy","socketOpenStub","usingFakeTimers","webex","fakeTestMessage","id","data","eventType","timestamp","_now","trackingId","concat","statusStartTypingMessage","actor","conversationId","sessionId","emitAuthResponse","_ref","undefined","_ref$statusCode","statusCode","_ref$statusMessage","statusMessage","sendSpy","send","lastCall","authRequest","JSON","parse","args","emit","_stringify","type","subtype","MESSAGE_TYPES","AUTH","beforeEach","jest","useFakeTimers","doNotFake","afterEach","_asyncToGenerator2","_regenerator","mark","_callee","_t","wrap","_context","prev","next","useRealTimers","_connectPromises","promise","catch","disconnectAll","clear","close","Socket","getWebSocketConstructor","restore","stop","MockWebex","internal","device","registered","metrics","submitClientMetrics","sinon","stub","logger","console","callsFake","_len","Array","_key","_construct2","MockWebSocket","origOpen","prototype","open","_len2","_key2","_apply","process","nextTick","MobiusSocket","mobiusConfig","defaultSessionId","it","firstListener","secondListener","on","off","assert","notCalled","spy","connect","then","called","disconnect","code","reason","calledOnce","calledTwice","resolveTest","rejectTest","bufferStateSpy","onlineSpy","_len3","_key3","_wrap2","fn","_this","_len4","sendArgs","_key4","isTrue","connecting","isFalse","connected","lengthOf","readyState","promiseTick","_promise","resolve","reject","events","action","def","description","_reconnect","offlineSpy","permanentSpy","transientSpy","replacedSpy","resetHistory","calledWith","url","fake","processTestEvent","startSpy","stopSpy"],"sources":["mobius-socket-events.test.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {randomUUID} from 'crypto';\nimport sinon from 'sinon';\nimport {assert} from '@webex/test-helper-chai';\nimport MockWebex from '@webex/test-helper-mock-webex';\nimport MockWebSocket from '@webex/test-helper-mock-web-socket';\nimport {wrap} from 'lodash';\nimport MobiusSocket, {config as mobiusConfig, Socket} from './index';\nimport {MESSAGE_TYPES} from './socket/constants';\n\nimport promiseTick from './test/promise-tick';\n\nif (!crypto.randomUUID) {\n Object.defineProperty(crypto, 'randomUUID', {\n value: randomUUID,\n configurable: true,\n });\n}\n\ndescribe('plugin-mobiusSocket', () => {\n const createUuid = () => crypto.randomUUID();\n\n describe('MobiusSocket', () => {\n describe('Events', () => {\n let mobiusSocket;\n let mockWebSocket;\n let originalSendSpy;\n let socketOpenStub;\n let usingFakeTimers;\n let webex;\n\n const fakeTestMessage = {\n id: createUuid(),\n data: {\n eventType: 'fake.test',\n },\n timestamp: Date.now(),\n trackingId: `suffix_${createUuid()}_${Date.now()}`,\n };\n\n const statusStartTypingMessage = {\n id: createUuid(),\n data: {\n eventType: 'status.start_typing',\n actor: {\n id: 'actorId',\n },\n conversationId: createUuid(),\n },\n timestamp: Date.now(),\n trackingId: `suffix_${createUuid()}_${Date.now()}`,\n sessionId: 'mobius-websocket-session',\n };\n\n const emitAuthResponse = ({statusCode = 200, statusMessage = 'OK'} = {}) => {\n const sendSpy = mockWebSocket.send.lastCall ? mockWebSocket.send : originalSendSpy;\n const authRequest = JSON.parse(sendSpy.lastCall.args[0]);\n\n mockWebSocket.emit('message', {\n data: JSON.stringify({\n type: 'response_event',\n subtype: MESSAGE_TYPES.AUTH,\n trackingId: authRequest.trackingId,\n statusCode,\n statusMessage,\n }),\n });\n };\n\n beforeEach(() => {\n jest.useFakeTimers({doNotFake: ['nextTick']});\n usingFakeTimers = true;\n });\n\n afterEach(async () => {\n if (usingFakeTimers) {\n jest.useRealTimers();\n usingFakeTimers = false;\n }\n if (mobiusSocket) {\n if (mobiusSocket._connectPromises) {\n mobiusSocket._connectPromises.forEach((promise) => {\n promise.catch(() => {});\n });\n }\n try {\n await mobiusSocket.disconnectAll();\n } catch (e) {}\n if (mobiusSocket._connectPromises) {\n mobiusSocket._connectPromises.clear();\n }\n }\n if (mockWebSocket && typeof mockWebSocket.close === 'function') {\n try {\n mockWebSocket.close();\n } catch (e) {}\n }\n // Restore stubs\n if (Socket.getWebSocketConstructor.restore) {\n Socket.getWebSocketConstructor.restore();\n }\n if (socketOpenStub && socketOpenStub.restore) {\n socketOpenStub.restore();\n }\n });\n\n beforeEach(() => {\n webex = new MockWebex();\n\n webex.internal.device.registered = true;\n webex.internal.metrics.submitClientMetrics = sinon.stub();\n webex.trackingId = 'fakeTrackingId';\n\n webex.logger = console;\n\n sinon.stub(Socket, 'getWebSocketConstructor').callsFake(\n () =>\n function (...args) {\n mockWebSocket = new MockWebSocket(...args);\n originalSendSpy = mockWebSocket.send;\n\n return mockWebSocket;\n }\n );\n\n const origOpen = Socket.prototype.open;\n\n socketOpenStub = sinon.stub(Socket.prototype, 'open').callsFake(function (...args) {\n const promise = Reflect.apply(origOpen, this, args);\n\n process.nextTick(() => {\n mockWebSocket.open();\n // Simulate Mobius auth response after socket open\n process.nextTick(() => {\n emitAuthResponse();\n });\n });\n\n return promise;\n });\n\n mobiusSocket = new MobiusSocket(webex, {...mobiusConfig.mobiusSocket});\n mobiusSocket.defaultSessionId = 'mobius-websocket-session';\n });\n\n it('removes all listeners for an event when off() is called without a listener', () => {\n const firstListener = sinon.stub();\n const secondListener = sinon.stub();\n\n mobiusSocket.on('event:fake.test', firstListener);\n mobiusSocket.on('event:fake.test', secondListener);\n\n mobiusSocket.off('event:fake.test');\n mobiusSocket.emit('event:fake.test', fakeTestMessage);\n\n assert.notCalled(firstListener);\n assert.notCalled(secondListener);\n });\n\n afterEach(() => {\n if (socketOpenStub) {\n socketOpenStub.restore();\n }\n\n if (Socket.getWebSocketConstructor.restore) {\n Socket.getWebSocketConstructor.restore();\n }\n });\n\n describe('when connected', () => {\n it('emits the `online` event', () => {\n const spy = sinon.spy();\n\n mobiusSocket.on('online', spy);\n const promise = mobiusSocket.connect();\n\n return promise.then(() => assert.called(spy));\n });\n });\n\n describe('when disconnected', () => {\n it('emits the `offline` event', () => {\n const spy = sinon.spy();\n\n mobiusSocket.on('offline', spy);\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n const promise = mobiusSocket.disconnect();\n\n mockWebSocket.emit('close', {\n code: 1000,\n reason: 'Done',\n });\n\n return promise;\n })\n .then(() => assert.calledOnce(spy));\n });\n\n describe('when reconnected', () => {\n it('emits the `online` event', () => {\n const spy = sinon.spy();\n\n mobiusSocket.on('online', spy);\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => assert.calledOnce(spy))\n .then(() => mockWebSocket.emit('close', {code: 1000, reason: 'Idle'}))\n .then(() => mobiusSocket.connect())\n .then(() => assert.calledTwice(spy));\n });\n });\n });\n\n describe('when `mercury.buffer_state` is received', () => {\n // This test is here because the buffer states message may arrive before\n // the mobiusSocket Promise resolves.\n it('gets emitted', () => {\n let sendSpy;\n let resolveTest;\n let rejectTest;\n const bufferStateSpy = sinon.spy();\n const onlineSpy = sinon.spy();\n\n mobiusSocket.on('event:mercury.buffer_state', bufferStateSpy);\n mobiusSocket.on('online', onlineSpy);\n\n Socket.getWebSocketConstructor.callsFake(\n () =>\n function (...args) {\n mockWebSocket = new MockWebSocket(...args);\n sendSpy = mockWebSocket.send;\n mockWebSocket.send = wrap(mockWebSocket.send, function (fn, ...sendArgs) {\n process.nextTick(() => {\n Reflect.apply(fn, this, sendArgs);\n });\n });\n\n process.nextTick(() => {\n assert.isTrue(mobiusSocket.connecting, 'MobiusSocket is still connecting');\n assert.isFalse(mobiusSocket.connected, 'MobiusSocket has not yet connected');\n assert.notCalled(onlineSpy);\n assert.lengthOf(sendSpy.args, 0, 'The client has not yet sent the auth message');\n // set websocket readystate to 1 to allow a successful send message\n mockWebSocket.readyState = 1;\n mockWebSocket.emit('open');\n mockWebSocket.emit('message', {\n data: JSON.stringify({\n id: createUuid(),\n data: {\n eventType: 'mercury.buffer_state',\n },\n }),\n });\n // using lengthOf because notCalled doesn't allow the helpful\n // string assertion\n assert.lengthOf(\n sendSpy.args,\n 0,\n 'The client has not acked the buffer_state message'\n );\n\n promiseTick(1)\n .then(() => {\n assert.calledOnce(bufferStateSpy);\n resolveTest();\n })\n .catch(rejectTest);\n });\n\n return mockWebSocket;\n }\n );\n\n return new Promise((resolve, reject) => {\n resolveTest = resolve;\n rejectTest = reject;\n mobiusSocket.connect().catch(() => {});\n });\n });\n });\n\n describe('when a CloseEvent is received', () => {\n const events = [\n {\n code: 1000,\n reason: 'idle',\n action: 'reconnect',\n },\n {\n code: 1000,\n reason: 'done (forced)',\n action: 'reconnect',\n },\n {\n code: 1000,\n reason: 'pong not received',\n action: 'close',\n },\n {\n code: 1000,\n reason: 'pong mismatch',\n action: 'close',\n },\n {\n code: 1000,\n action: 'close',\n },\n {\n code: 1003,\n action: 'close',\n },\n {\n code: 1001,\n action: 'reconnect',\n },\n {\n code: 1005,\n action: 'reconnect',\n },\n {\n code: 1006,\n action: 'reconnect',\n },\n {\n code: 1011,\n action: 'reconnect',\n },\n {\n code: 4000,\n action: 'replace',\n },\n {\n action: 'close',\n },\n ];\n\n events.forEach((def) => {\n const {action, reason, code} = def;\n let description;\n\n if (code && reason) {\n description = `with code \\`${code}\\` and reason \\`${reason}\\``;\n } else if (code) {\n description = `with code \\`${code}\\``;\n } else if (reason) {\n description = `with reason \\`${reason}\\``;\n }\n\n describe(`when an event ${description} is received`, () => {\n it(`takes the ${action} action`, () => {\n if (mobiusSocket._reconnect.restore) {\n mobiusSocket._reconnect.restore();\n }\n\n sinon.spy(mobiusSocket, 'connect');\n\n const offlineSpy = sinon.spy();\n const permanentSpy = sinon.spy();\n const transientSpy = sinon.spy();\n const replacedSpy = sinon.spy();\n\n mobiusSocket.on('offline', offlineSpy);\n mobiusSocket.on('offline.permanent', permanentSpy);\n mobiusSocket.on('offline.transient', transientSpy);\n mobiusSocket.on('offline.replaced', replacedSpy);\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n // Make sure mobiusSocket.connect has a call count of zero\n mobiusSocket.connect.resetHistory();\n\n mockWebSocket.emit('close', {code, reason});\n\n return promiseTick(1);\n })\n .then(() => {\n assert.called(offlineSpy);\n assert.calledWith(offlineSpy, {\n code,\n reason,\n sessionId: 'mobius-websocket-session',\n });\n switch (action) {\n case 'close':\n assert.called(permanentSpy);\n assert.notCalled(transientSpy);\n assert.notCalled(replacedSpy);\n break;\n case 'reconnect':\n assert.notCalled(permanentSpy);\n assert.called(transientSpy);\n assert.notCalled(replacedSpy);\n break;\n case 'replace':\n assert.notCalled(permanentSpy);\n assert.notCalled(transientSpy);\n assert.called(replacedSpy);\n break;\n default:\n assert(false, 'unreachable code reached');\n }\n assert.isFalse(mobiusSocket.connected, 'MobiusSocket is not connected');\n if (action === 'reconnect') {\n assert.called(mobiusSocket.connect);\n assert.calledWith(mobiusSocket.connect, mockWebSocket.url);\n assert.isTrue(mobiusSocket.connecting, 'MobiusSocket is connecting');\n\n // Block until reconnect completes so logs don't overlap\n return mobiusSocket.connect();\n }\n\n assert.notCalled(mobiusSocket.connect);\n assert.isFalse(mobiusSocket.connecting, 'MobiusSocket is not connecting');\n\n return Promise.resolve();\n });\n });\n });\n });\n });\n\n describe('when a MessageEvent is received', () => {\n it('processes the Event via any autowired event handlers', () => {\n webex.fake = {\n processTestEvent: sinon.spy(),\n };\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n mockWebSocket.emit('message', {data: JSON.stringify(fakeTestMessage)});\n\n return promiseTick(1);\n })\n .then(() => {\n assert.called(webex.fake.processTestEvent);\n });\n });\n\n it('emits the MobiusSocket envelope', () => {\n const startSpy = sinon.spy();\n const stopSpy = sinon.spy();\n\n mobiusSocket.on('event:status.start_typing', startSpy);\n mobiusSocket.on('event:status.stop_typing', stopSpy);\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n mockWebSocket.emit('message', {data: JSON.stringify(statusStartTypingMessage)});\n\n return promiseTick(1);\n })\n .then(() => {\n assert.calledOnce(startSpy);\n assert.notCalled(stopSpy);\n assert.calledWith(startSpy, statusStartTypingMessage);\n });\n });\n\n it(\"emits the MobiusSocket envelope named by the MobiusSocket event's eventType\", () => {\n const startSpy = sinon.spy();\n const stopSpy = sinon.spy();\n\n mobiusSocket.on('event:status.start_typing', startSpy);\n mobiusSocket.on('event:status.stop_typing', stopSpy);\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n mockWebSocket.emit('message', {data: JSON.stringify(statusStartTypingMessage)});\n\n return promiseTick(1);\n })\n .then(() => {\n assert.calledOnce(startSpy);\n assert.notCalled(stopSpy);\n assert.calledWith(startSpy, statusStartTypingMessage);\n });\n });\n });\n\n // Mobius does not use sequence numbers, so sequence-mismatch tests are not applicable\n });\n });\n\n /*\n // On mobiusSocket:\n online\n offline\n offline.transient\n offline.permanent\n offline.replaced\n event\n event:locus.participant_joined\n mockWebSocket.connection-failed\n mockWebSocket.sequence-mismatch\n\n // On webex:\n mobiusSocket.online\n mobiusSocket.offline\n mobiusSocket.offline.transient\n mobiusSocket.offline.permanent\n mobiusSocket.offline.replaced\n mobiusSocket.event\n mobiusSocket.event:locus.participant_joined\n mobiusSocket.mockWebSocket.connection-failed\n mobiusSocket.mockWebSocket.sequence-mismatch\n\n // TODO go through all it(`emits...`) and make sure corresponding tests are here\n */\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,wBAAA,GAAAH,sBAAA,CAAAF,OAAA;AAEA,IAAAM,MAAA,GAAAC,uBAAA,CAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AAEA,IAAAS,YAAA,GAAAP,sBAAA,CAAAF,OAAA;AAA8C,SAAAO,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,QAAA,MAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAL,uBAAA,YAAAA,wBAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,gBAAAW,OAAA,CAAAX,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAM,GAAA,CAAAZ,CAAA,UAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,GAAAM,CAAA,CAAAQ,GAAA,CAAAd,CAAA,EAAAQ,CAAA,cAAAO,GAAA,IAAAf,CAAA,gBAAAe,GAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,GAAA,OAAAR,CAAA,IAAAD,CAAA,GAAAY,uBAAA,KAAAC,gCAAA,CAAAnB,CAAA,EAAAe,GAAA,OAAAR,CAAA,CAAAM,GAAA,IAAAN,CAAA,CAAAO,GAAA,IAAAR,CAAA,CAAAE,CAAA,EAAAO,GAAA,EAAAR,CAAA,IAAAC,CAAA,CAAAO,GAAA,IAAAf,CAAA,CAAAe,GAAA,WAAAP,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAmB,QAAApB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAoB,YAAA,CAAArB,CAAA,OAAAsB,6BAAA,QAAAhB,CAAA,GAAAgB,6BAAA,CAAAtB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAiB,MAAA,WAAApB,CAAA,WAAAgB,gCAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAqB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA0B,cAAA3B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAF,CAAA,WAAA2B,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAU,MAAA,CAAA7B,CAAA,OAAA8B,OAAA,WAAA5B,CAAA,QAAA6B,gBAAA,CAAAtB,OAAA,EAAAV,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAA8B,iCAAA,GAAAC,wBAAA,CAAAlC,CAAA,EAAAiC,iCAAA,CAAAhC,CAAA,KAAAmB,OAAA,CAAAU,MAAA,CAAA7B,CAAA,GAAA8B,OAAA,WAAA5B,CAAA,IAAAe,uBAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAgB,gCAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA,IAb9C;AACA;AACA;AAaA,IAAI,CAACmC,MAAM,CAACC,UAAU,EAAE;EACtB,IAAAC,gBAAA,CAAA3B,OAAA,EAAsByB,MAAM,EAAE,YAAY,EAAE;IAC1CG,KAAK,EAAEF,kBAAU;IACjBG,YAAY,EAAE;EAChB,CAAC,CAAC;AACJ;AAEAC,QAAQ,CAAC,qBAAqB,EAAE,YAAM;EACpC,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA;IAAA,OAASN,MAAM,CAACC,UAAU,CAAC,CAAC;EAAA;EAE5CI,QAAQ,CAAC,cAAc,EAAE,YAAM;IAC7BA,QAAQ,CAAC,QAAQ,EAAE,YAAM;MACvB,IAAIE,YAAY;MAChB,IAAIC,aAAa;MACjB,IAAIC,eAAe;MACnB,IAAIC,cAAc;MAClB,IAAIC,eAAe;MACnB,IAAIC,KAAK;MAET,IAAMC,eAAe,GAAG;QACtBC,EAAE,EAAER,UAAU,CAAC,CAAC;QAChBS,IAAI,EAAE;UACJC,SAAS,EAAE;QACb,CAAC;QACDC,SAAS,EAAE,IAAAC,IAAA,CAAA3C,OAAA,EAAS,CAAC;QACrB4C,UAAU,YAAAC,MAAA,CAAYd,UAAU,CAAC,CAAC,OAAAc,MAAA,CAAI,IAAAF,IAAA,CAAA3C,OAAA,EAAS,CAAC;MAClD,CAAC;MAED,IAAM8C,wBAAwB,GAAG;QAC/BP,EAAE,EAAER,UAAU,CAAC,CAAC;QAChBS,IAAI,EAAE;UACJC,SAAS,EAAE,qBAAqB;UAChCM,KAAK,EAAE;YACLR,EAAE,EAAE;UACN,CAAC;UACDS,cAAc,EAAEjB,UAAU,CAAC;QAC7B,CAAC;QACDW,SAAS,EAAE,IAAAC,IAAA,CAAA3C,OAAA,EAAS,CAAC;QACrB4C,UAAU,YAAAC,MAAA,CAAYd,UAAU,CAAC,CAAC,OAAAc,MAAA,CAAI,IAAAF,IAAA,CAAA3C,OAAA,EAAS,CAAC,CAAE;QAClDiD,SAAS,EAAE;MACb,CAAC;MAED,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAsD;QAAA,IAAAC,IAAA,GAAAjC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAkC,SAAA,GAAAlC,SAAA,MAAP,CAAC,CAAC;UAAAmC,eAAA,GAAAF,IAAA,CAA5CG,UAAU;UAAVA,UAAU,GAAAD,eAAA,cAAG,GAAG,GAAAA,eAAA;UAAAE,kBAAA,GAAAJ,IAAA,CAAEK,aAAa;UAAbA,aAAa,GAAAD,kBAAA,cAAG,IAAI,GAAAA,kBAAA;QAC/D,IAAME,OAAO,GAAGxB,aAAa,CAACyB,IAAI,CAACC,QAAQ,GAAG1B,aAAa,CAACyB,IAAI,GAAGxB,eAAe;QAClF,IAAM0B,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACL,OAAO,CAACE,QAAQ,CAACI,IAAI,CAAC,CAAC,CAAC,CAAC;QAExD9B,aAAa,CAAC+B,IAAI,CAAC,SAAS,EAAE;UAC5BxB,IAAI,EAAE,IAAAyB,UAAA,CAAAjE,OAAA,EAAe;YACnBkE,IAAI,EAAE,gBAAgB;YACtBC,OAAO,EAAEC,wBAAa,CAACC,IAAI;YAC3BzB,UAAU,EAAEgB,WAAW,CAAChB,UAAU;YAClCU,UAAU,EAAVA,UAAU;YACVE,aAAa,EAAbA;UACF,CAAC;QACH,CAAC,CAAC;MACJ,CAAC;MAEDc,UAAU,CAAC,YAAM;QACfC,IAAI,CAACC,aAAa,CAAC;UAACC,SAAS,EAAE,CAAC,UAAU;QAAC,CAAC,CAAC;QAC7CrC,eAAe,GAAG,IAAI;MACxB,CAAC,CAAC;MAEFsC,SAAS,kBAAAC,kBAAA,CAAA3E,OAAA,eAAA4E,YAAA,CAAA5E,OAAA,CAAA6E,IAAA,CAAC,SAAAC,QAAA;QAAA,IAAAC,EAAA;QAAA,OAAAH,YAAA,CAAA5E,OAAA,CAAAgF,IAAA,WAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cACR,IAAI/C,eAAe,EAAE;gBACnBmC,IAAI,CAACa,aAAa,CAAC,CAAC;gBACpBhD,eAAe,GAAG,KAAK;cACzB;cAAC,KACGJ,YAAY;gBAAAiD,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACd,IAAInD,YAAY,CAACqD,gBAAgB,EAAE;gBACjCrD,YAAY,CAACqD,gBAAgB,CAAChE,OAAO,CAAC,UAACiE,OAAO,EAAK;kBACjDA,OAAO,CAACC,KAAK,CAAC,YAAM,CAAC,CAAC,CAAC;gBACzB,CAAC,CAAC;cACJ;cAACN,QAAA,CAAAC,IAAA;cAAAD,QAAA,CAAAE,IAAA;cAAA,OAEOnD,YAAY,CAACwD,aAAa,CAAC,CAAC;YAAA;cAAAP,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAAF,QAAA,CAAAC,IAAA;cAAAH,EAAA,GAAAE,QAAA;YAAA;cAEpC,IAAIjD,YAAY,CAACqD,gBAAgB,EAAE;gBACjCrD,YAAY,CAACqD,gBAAgB,CAACI,KAAK,CAAC,CAAC;cACvC;YAAC;cAEH,IAAIxD,aAAa,IAAI,OAAOA,aAAa,CAACyD,KAAK,KAAK,UAAU,EAAE;gBAC9D,IAAI;kBACFzD,aAAa,CAACyD,KAAK,CAAC,CAAC;gBACvB,CAAC,CAAC,OAAOpG,CAAC,EAAE,CAAC;cACf;cACA;cACA,IAAIqG,aAAM,CAACC,uBAAuB,CAACC,OAAO,EAAE;gBAC1CF,aAAM,CAACC,uBAAuB,CAACC,OAAO,CAAC,CAAC;cAC1C;cACA,IAAI1D,cAAc,IAAIA,cAAc,CAAC0D,OAAO,EAAE;gBAC5C1D,cAAc,CAAC0D,OAAO,CAAC,CAAC;cAC1B;YAAC;YAAA;cAAA,OAAAZ,QAAA,CAAAa,IAAA;UAAA;QAAA,GAAAhB,OAAA;MAAA,CACF,GAAC;MAEFR,UAAU,CAAC,YAAM;QACfjC,KAAK,GAAG,IAAI0D,4BAAS,CAAC,CAAC;QAEvB1D,KAAK,CAAC2D,QAAQ,CAACC,MAAM,CAACC,UAAU,GAAG,IAAI;QACvC7D,KAAK,CAAC2D,QAAQ,CAACG,OAAO,CAACC,mBAAmB,GAAGC,cAAK,CAACC,IAAI,CAAC,CAAC;QACzDjE,KAAK,CAACO,UAAU,GAAG,gBAAgB;QAEnCP,KAAK,CAACkE,MAAM,GAAGC,OAAO;QAEtBH,cAAK,CAACC,IAAI,CAACX,aAAM,EAAE,yBAAyB,CAAC,CAACc,SAAS,CACrD;UAAA,OACE,YAAmB;YAAA,SAAAC,IAAA,GAAAxF,SAAA,CAAAC,MAAA,EAAN4C,IAAI,OAAA4C,KAAA,CAAAD,IAAA,GAAAE,IAAA,MAAAA,IAAA,GAAAF,IAAA,EAAAE,IAAA;cAAJ7C,IAAI,CAAA6C,IAAA,IAAA1F,SAAA,CAAA0F,IAAA;YAAA;YACf3E,aAAa,OAAA4E,WAAA,CAAA7G,OAAA,EAAO8G,gCAAa,EAAI/C,IAAI,CAAC;YAC1C7B,eAAe,GAAGD,aAAa,CAACyB,IAAI;YAEpC,OAAOzB,aAAa;UACtB,CAAC;QAAA,CACL,CAAC;QAED,IAAM8E,QAAQ,GAAGpB,aAAM,CAACqB,SAAS,CAACC,IAAI;QAEtC9E,cAAc,GAAGkE,cAAK,CAACC,IAAI,CAACX,aAAM,CAACqB,SAAS,EAAE,MAAM,CAAC,CAACP,SAAS,CAAC,YAAmB;UAAA,SAAAS,KAAA,GAAAhG,SAAA,CAAAC,MAAA,EAAN4C,IAAI,OAAA4C,KAAA,CAAAO,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;YAAJpD,IAAI,CAAAoD,KAAA,IAAAjG,SAAA,CAAAiG,KAAA;UAAA;UAC/E,IAAM7B,OAAO,GAAG,IAAA8B,MAAA,CAAApH,OAAA,EAAc+G,QAAQ,EAAE,IAAI,EAAEhD,IAAI,CAAC;UAEnDsD,OAAO,CAACC,QAAQ,CAAC,YAAM;YACrBrF,aAAa,CAACgF,IAAI,CAAC,CAAC;YACpB;YACAI,OAAO,CAACC,QAAQ,CAAC,YAAM;cACrBpE,gBAAgB,CAAC,CAAC;YACpB,CAAC,CAAC;UACJ,CAAC,CAAC;UAEF,OAAOoC,OAAO;QAChB,CAAC,CAAC;QAEFtD,YAAY,GAAG,IAAIuF,cAAY,CAAClF,KAAK,EAAApB,aAAA,KAAMuG,aAAY,CAACxF,YAAY,CAAC,CAAC;QACtEA,YAAY,CAACyF,gBAAgB,GAAG,0BAA0B;MAC5D,CAAC,CAAC;MAEFC,EAAE,CAAC,4EAA4E,EAAE,YAAM;QACrF,IAAMC,aAAa,GAAGtB,cAAK,CAACC,IAAI,CAAC,CAAC;QAClC,IAAMsB,cAAc,GAAGvB,cAAK,CAACC,IAAI,CAAC,CAAC;QAEnCtE,YAAY,CAAC6F,EAAE,CAAC,iBAAiB,EAAEF,aAAa,CAAC;QACjD3F,YAAY,CAAC6F,EAAE,CAAC,iBAAiB,EAAED,cAAc,CAAC;QAElD5F,YAAY,CAAC8F,GAAG,CAAC,iBAAiB,CAAC;QACnC9F,YAAY,CAACgC,IAAI,CAAC,iBAAiB,EAAE1B,eAAe,CAAC;QAErDyF,sBAAM,CAACC,SAAS,CAACL,aAAa,CAAC;QAC/BI,sBAAM,CAACC,SAAS,CAACJ,cAAc,CAAC;MAClC,CAAC,CAAC;MAEFlD,SAAS,CAAC,YAAM;QACd,IAAIvC,cAAc,EAAE;UAClBA,cAAc,CAAC0D,OAAO,CAAC,CAAC;QAC1B;QAEA,IAAIF,aAAM,CAACC,uBAAuB,CAACC,OAAO,EAAE;UAC1CF,aAAM,CAACC,uBAAuB,CAACC,OAAO,CAAC,CAAC;QAC1C;MACF,CAAC,CAAC;MAEF/D,QAAQ,CAAC,gBAAgB,EAAE,YAAM;QAC/B4F,EAAE,CAAC,0BAA0B,EAAE,YAAM;UACnC,IAAMO,GAAG,GAAG5B,cAAK,CAAC4B,GAAG,CAAC,CAAC;UAEvBjG,YAAY,CAAC6F,EAAE,CAAC,QAAQ,EAAEI,GAAG,CAAC;UAC9B,IAAM3C,OAAO,GAAGtD,YAAY,CAACkG,OAAO,CAAC,CAAC;UAEtC,OAAO5C,OAAO,CAAC6C,IAAI,CAAC;YAAA,OAAMJ,sBAAM,CAACK,MAAM,CAACH,GAAG,CAAC;UAAA,EAAC;QAC/C,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFnG,QAAQ,CAAC,mBAAmB,EAAE,YAAM;QAClC4F,EAAE,CAAC,2BAA2B,EAAE,YAAM;UACpC,IAAMO,GAAG,GAAG5B,cAAK,CAAC4B,GAAG,CAAC,CAAC;UAEvBjG,YAAY,CAAC6F,EAAE,CAAC,SAAS,EAAEI,GAAG,CAAC;UAC/B,IAAM3C,OAAO,GAAGtD,YAAY,CAACkG,OAAO,CAAC,CAAC;UAEtCjG,aAAa,CAACgF,IAAI,CAAC,CAAC;UAEpB,OAAO3B,OAAO,CACX6C,IAAI,CAAC,YAAM;YACV,IAAM7C,OAAO,GAAGtD,YAAY,CAACqG,UAAU,CAAC,CAAC;YAEzCpG,aAAa,CAAC+B,IAAI,CAAC,OAAO,EAAE;cAC1BsE,IAAI,EAAE,IAAI;cACVC,MAAM,EAAE;YACV,CAAC,CAAC;YAEF,OAAOjD,OAAO;UAChB,CAAC,CAAC,CACD6C,IAAI,CAAC;YAAA,OAAMJ,sBAAM,CAACS,UAAU,CAACP,GAAG,CAAC;UAAA,EAAC;QACvC,CAAC,CAAC;QAEFnG,QAAQ,CAAC,kBAAkB,EAAE,YAAM;UACjC4F,EAAE,CAAC,0BAA0B,EAAE,YAAM;YACnC,IAAMO,GAAG,GAAG5B,cAAK,CAAC4B,GAAG,CAAC,CAAC;YAEvBjG,YAAY,CAAC6F,EAAE,CAAC,QAAQ,EAAEI,GAAG,CAAC;YAE9B,IAAM3C,OAAO,GAAGtD,YAAY,CAACkG,OAAO,CAAC,CAAC;YAEtCjG,aAAa,CAACgF,IAAI,CAAC,CAAC;YAEpB,OAAO3B,OAAO,CACX6C,IAAI,CAAC;cAAA,OAAMJ,sBAAM,CAACS,UAAU,CAACP,GAAG,CAAC;YAAA,EAAC,CAClCE,IAAI,CAAC;cAAA,OAAMlG,aAAa,CAAC+B,IAAI,CAAC,OAAO,EAAE;gBAACsE,IAAI,EAAE,IAAI;gBAAEC,MAAM,EAAE;cAAM,CAAC,CAAC;YAAA,EAAC,CACrEJ,IAAI,CAAC;cAAA,OAAMnG,YAAY,CAACkG,OAAO,CAAC,CAAC;YAAA,EAAC,CAClCC,IAAI,CAAC;cAAA,OAAMJ,sBAAM,CAACU,WAAW,CAACR,GAAG,CAAC;YAAA,EAAC;UACxC,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFnG,QAAQ,CAAC,yCAAyC,EAAE,YAAM;QACxD;QACA;QACA4F,EAAE,CAAC,cAAc,EAAE,YAAM;UACvB,IAAIjE,OAAO;UACX,IAAIiF,WAAW;UACf,IAAIC,UAAU;UACd,IAAMC,cAAc,GAAGvC,cAAK,CAAC4B,GAAG,CAAC,CAAC;UAClC,IAAMY,SAAS,GAAGxC,cAAK,CAAC4B,GAAG,CAAC,CAAC;UAE7BjG,YAAY,CAAC6F,EAAE,CAAC,4BAA4B,EAAEe,cAAc,CAAC;UAC7D5G,YAAY,CAAC6F,EAAE,CAAC,QAAQ,EAAEgB,SAAS,CAAC;UAEpClD,aAAM,CAACC,uBAAuB,CAACa,SAAS,CACtC;YAAA,OACE,YAAmB;cAAA,SAAAqC,KAAA,GAAA5H,SAAA,CAAAC,MAAA,EAAN4C,IAAI,OAAA4C,KAAA,CAAAmC,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;gBAAJhF,IAAI,CAAAgF,KAAA,IAAA7H,SAAA,CAAA6H,KAAA;cAAA;cACf9G,aAAa,OAAA4E,WAAA,CAAA7G,OAAA,EAAO8G,gCAAa,EAAI/C,IAAI,CAAC;cAC1CN,OAAO,GAAGxB,aAAa,CAACyB,IAAI;cAC5BzB,aAAa,CAACyB,IAAI,GAAG,IAAAsF,MAAA,CAAAhJ,OAAA,EAAKiC,aAAa,CAACyB,IAAI,EAAE,UAAUuF,EAAE,EAAe;gBAAA,IAAAC,KAAA;gBAAA,SAAAC,KAAA,GAAAjI,SAAA,CAAAC,MAAA,EAAViI,QAAQ,OAAAzC,KAAA,CAAAwC,KAAA,OAAAA,KAAA,WAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;kBAARD,QAAQ,CAAAC,KAAA,QAAAnI,SAAA,CAAAmI,KAAA;gBAAA;gBACrEhC,OAAO,CAACC,QAAQ,CAAC,YAAM;kBACrB,IAAAF,MAAA,CAAApH,OAAA,EAAciJ,EAAE,EAAEC,KAAI,EAAEE,QAAQ,CAAC;gBACnC,CAAC,CAAC;cACJ,CAAC,CAAC;cAEF/B,OAAO,CAACC,QAAQ,CAAC,YAAM;gBACrBS,sBAAM,CAACuB,MAAM,CAACtH,YAAY,CAACuH,UAAU,EAAE,kCAAkC,CAAC;gBAC1ExB,sBAAM,CAACyB,OAAO,CAACxH,YAAY,CAACyH,SAAS,EAAE,oCAAoC,CAAC;gBAC5E1B,sBAAM,CAACC,SAAS,CAACa,SAAS,CAAC;gBAC3Bd,sBAAM,CAAC2B,QAAQ,CAACjG,OAAO,CAACM,IAAI,EAAE,CAAC,EAAE,8CAA8C,CAAC;gBAChF;gBACA9B,aAAa,CAAC0H,UAAU,GAAG,CAAC;gBAC5B1H,aAAa,CAAC+B,IAAI,CAAC,MAAM,CAAC;gBAC1B/B,aAAa,CAAC+B,IAAI,CAAC,SAAS,EAAE;kBAC5BxB,IAAI,EAAE,IAAAyB,UAAA,CAAAjE,OAAA,EAAe;oBACnBuC,EAAE,EAAER,UAAU,CAAC,CAAC;oBAChBS,IAAI,EAAE;sBACJC,SAAS,EAAE;oBACb;kBACF,CAAC;gBACH,CAAC,CAAC;gBACF;gBACA;gBACAsF,sBAAM,CAAC2B,QAAQ,CACbjG,OAAO,CAACM,IAAI,EACZ,CAAC,EACD,mDACF,CAAC;gBAED,IAAA6F,oBAAW,EAAC,CAAC,CAAC,CACXzB,IAAI,CAAC,YAAM;kBACVJ,sBAAM,CAACS,UAAU,CAACI,cAAc,CAAC;kBACjCF,WAAW,CAAC,CAAC;gBACf,CAAC,CAAC,CACDnD,KAAK,CAACoD,UAAU,CAAC;cACtB,CAAC,CAAC;cAEF,OAAO1G,aAAa;YACtB,CAAC;UAAA,CACL,CAAC;UAED,OAAO,IAAA4H,QAAA,CAAA7J,OAAA,CAAY,UAAC8J,OAAO,EAAEC,MAAM,EAAK;YACtCrB,WAAW,GAAGoB,OAAO;YACrBnB,UAAU,GAAGoB,MAAM;YACnB/H,YAAY,CAACkG,OAAO,CAAC,CAAC,CAAC3C,KAAK,CAAC,YAAM,CAAC,CAAC,CAAC;UACxC,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFzD,QAAQ,CAAC,+BAA+B,EAAE,YAAM;QAC9C,IAAMkI,MAAM,GAAG,CACb;UACE1B,IAAI,EAAE,IAAI;UACVC,MAAM,EAAE,MAAM;UACd0B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACVC,MAAM,EAAE,eAAe;UACvB0B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACVC,MAAM,EAAE,mBAAmB;UAC3B0B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACVC,MAAM,EAAE,eAAe;UACvB0B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACV2B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACV2B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACV2B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACV2B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACV2B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACV2B,MAAM,EAAE;QACV,CAAC,EACD;UACE3B,IAAI,EAAE,IAAI;UACV2B,MAAM,EAAE;QACV,CAAC,EACD;UACEA,MAAM,EAAE;QACV,CAAC,CACF;QAEDD,MAAM,CAAC3I,OAAO,CAAC,UAAC6I,GAAG,EAAK;UACtB,IAAOD,MAAM,GAAkBC,GAAG,CAA3BD,MAAM;YAAE1B,MAAM,GAAU2B,GAAG,CAAnB3B,MAAM;YAAED,IAAI,GAAI4B,GAAG,CAAX5B,IAAI;UAC3B,IAAI6B,WAAW;UAEf,IAAI7B,IAAI,IAAIC,MAAM,EAAE;YAClB4B,WAAW,iBAAAtH,MAAA,CAAkByF,IAAI,oBAAAzF,MAAA,CAAmB0F,MAAM,MAAI;UAChE,CAAC,MAAM,IAAID,IAAI,EAAE;YACf6B,WAAW,iBAAAtH,MAAA,CAAkByF,IAAI,MAAI;UACvC,CAAC,MAAM,IAAIC,MAAM,EAAE;YACjB4B,WAAW,mBAAAtH,MAAA,CAAoB0F,MAAM,MAAI;UAC3C;UAEAzG,QAAQ,kBAAAe,MAAA,CAAkBsH,WAAW,mBAAgB,YAAM;YACzDzC,EAAE,cAAA7E,MAAA,CAAcoH,MAAM,cAAW,YAAM;cACrC,IAAIjI,YAAY,CAACoI,UAAU,CAACvE,OAAO,EAAE;gBACnC7D,YAAY,CAACoI,UAAU,CAACvE,OAAO,CAAC,CAAC;cACnC;cAEAQ,cAAK,CAAC4B,GAAG,CAACjG,YAAY,EAAE,SAAS,CAAC;cAElC,IAAMqI,UAAU,GAAGhE,cAAK,CAAC4B,GAAG,CAAC,CAAC;cAC9B,IAAMqC,YAAY,GAAGjE,cAAK,CAAC4B,GAAG,CAAC,CAAC;cAChC,IAAMsC,YAAY,GAAGlE,cAAK,CAAC4B,GAAG,CAAC,CAAC;cAChC,IAAMuC,WAAW,GAAGnE,cAAK,CAAC4B,GAAG,CAAC,CAAC;cAE/BjG,YAAY,CAAC6F,EAAE,CAAC,SAAS,EAAEwC,UAAU,CAAC;cACtCrI,YAAY,CAAC6F,EAAE,CAAC,mBAAmB,EAAEyC,YAAY,CAAC;cAClDtI,YAAY,CAAC6F,EAAE,CAAC,mBAAmB,EAAE0C,YAAY,CAAC;cAClDvI,YAAY,CAAC6F,EAAE,CAAC,kBAAkB,EAAE2C,WAAW,CAAC;cAEhD,IAAMlF,OAAO,GAAGtD,YAAY,CAACkG,OAAO,CAAC,CAAC;cAEtCjG,aAAa,CAACgF,IAAI,CAAC,CAAC;cAEpB,OAAO3B,OAAO,CACX6C,IAAI,CAAC,YAAM;gBACV;gBACAnG,YAAY,CAACkG,OAAO,CAACuC,YAAY,CAAC,CAAC;gBAEnCxI,aAAa,CAAC+B,IAAI,CAAC,OAAO,EAAE;kBAACsE,IAAI,EAAJA,IAAI;kBAAEC,MAAM,EAANA;gBAAM,CAAC,CAAC;gBAE3C,OAAO,IAAAqB,oBAAW,EAAC,CAAC,CAAC;cACvB,CAAC,CAAC,CACDzB,IAAI,CAAC,YAAM;gBACVJ,sBAAM,CAACK,MAAM,CAACiC,UAAU,CAAC;gBACzBtC,sBAAM,CAAC2C,UAAU,CAACL,UAAU,EAAE;kBAC5B/B,IAAI,EAAJA,IAAI;kBACJC,MAAM,EAANA,MAAM;kBACNtF,SAAS,EAAE;gBACb,CAAC,CAAC;gBACF,QAAQgH,MAAM;kBACZ,KAAK,OAAO;oBACVlC,sBAAM,CAACK,MAAM,CAACkC,YAAY,CAAC;oBAC3BvC,sBAAM,CAACC,SAAS,CAACuC,YAAY,CAAC;oBAC9BxC,sBAAM,CAACC,SAAS,CAACwC,WAAW,CAAC;oBAC7B;kBACF,KAAK,WAAW;oBACdzC,sBAAM,CAACC,SAAS,CAACsC,YAAY,CAAC;oBAC9BvC,sBAAM,CAACK,MAAM,CAACmC,YAAY,CAAC;oBAC3BxC,sBAAM,CAACC,SAAS,CAACwC,WAAW,CAAC;oBAC7B;kBACF,KAAK,SAAS;oBACZzC,sBAAM,CAACC,SAAS,CAACsC,YAAY,CAAC;oBAC9BvC,sBAAM,CAACC,SAAS,CAACuC,YAAY,CAAC;oBAC9BxC,sBAAM,CAACK,MAAM,CAACoC,WAAW,CAAC;oBAC1B;kBACF;oBACE,IAAAzC,sBAAM,EAAC,KAAK,EAAE,0BAA0B,CAAC;gBAC7C;gBACAA,sBAAM,CAACyB,OAAO,CAACxH,YAAY,CAACyH,SAAS,EAAE,+BAA+B,CAAC;gBACvE,IAAIQ,MAAM,KAAK,WAAW,EAAE;kBAC1BlC,sBAAM,CAACK,MAAM,CAACpG,YAAY,CAACkG,OAAO,CAAC;kBACnCH,sBAAM,CAAC2C,UAAU,CAAC1I,YAAY,CAACkG,OAAO,EAAEjG,aAAa,CAAC0I,GAAG,CAAC;kBAC1D5C,sBAAM,CAACuB,MAAM,CAACtH,YAAY,CAACuH,UAAU,EAAE,4BAA4B,CAAC;;kBAEpE;kBACA,OAAOvH,YAAY,CAACkG,OAAO,CAAC,CAAC;gBAC/B;gBAEAH,sBAAM,CAACC,SAAS,CAAChG,YAAY,CAACkG,OAAO,CAAC;gBACtCH,sBAAM,CAACyB,OAAO,CAACxH,YAAY,CAACuH,UAAU,EAAE,gCAAgC,CAAC;gBAEzE,OAAOM,QAAA,CAAA7J,OAAA,CAAQ8J,OAAO,CAAC,CAAC;cAC1B,CAAC,CAAC;YACN,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ,CAAC,CAAC;MAEFhI,QAAQ,CAAC,iCAAiC,EAAE,YAAM;QAChD4F,EAAE,CAAC,sDAAsD,EAAE,YAAM;UAC/DrF,KAAK,CAACuI,IAAI,GAAG;YACXC,gBAAgB,EAAExE,cAAK,CAAC4B,GAAG,CAAC;UAC9B,CAAC;UAED,IAAM3C,OAAO,GAAGtD,YAAY,CAACkG,OAAO,CAAC,CAAC;UAEtCjG,aAAa,CAACgF,IAAI,CAAC,CAAC;UAEpB,OAAO3B,OAAO,CACX6C,IAAI,CAAC,YAAM;YACVlG,aAAa,CAAC+B,IAAI,CAAC,SAAS,EAAE;cAACxB,IAAI,EAAE,IAAAyB,UAAA,CAAAjE,OAAA,EAAesC,eAAe;YAAC,CAAC,CAAC;YAEtE,OAAO,IAAAsH,oBAAW,EAAC,CAAC,CAAC;UACvB,CAAC,CAAC,CACDzB,IAAI,CAAC,YAAM;YACVJ,sBAAM,CAACK,MAAM,CAAC/F,KAAK,CAACuI,IAAI,CAACC,gBAAgB,CAAC;UAC5C,CAAC,CAAC;QACN,CAAC,CAAC;QAEFnD,EAAE,CAAC,iCAAiC,EAAE,YAAM;UAC1C,IAAMoD,QAAQ,GAAGzE,cAAK,CAAC4B,GAAG,CAAC,CAAC;UAC5B,IAAM8C,OAAO,GAAG1E,cAAK,CAAC4B,GAAG,CAAC,CAAC;UAE3BjG,YAAY,CAAC6F,EAAE,CAAC,2BAA2B,EAAEiD,QAAQ,CAAC;UACtD9I,YAAY,CAAC6F,EAAE,CAAC,0BAA0B,EAAEkD,OAAO,CAAC;UAEpD,IAAMzF,OAAO,GAAGtD,YAAY,CAACkG,OAAO,CAAC,CAAC;UAEtCjG,aAAa,CAACgF,IAAI,CAAC,CAAC;UAEpB,OAAO3B,OAAO,CACX6C,IAAI,CAAC,YAAM;YACVlG,aAAa,CAAC+B,IAAI,CAAC,SAAS,EAAE;cAACxB,IAAI,EAAE,IAAAyB,UAAA,CAAAjE,OAAA,EAAe8C,wBAAwB;YAAC,CAAC,CAAC;YAE/E,OAAO,IAAA8G,oBAAW,EAAC,CAAC,CAAC;UACvB,CAAC,CAAC,CACDzB,IAAI,CAAC,YAAM;YACVJ,sBAAM,CAACS,UAAU,CAACsC,QAAQ,CAAC;YAC3B/C,sBAAM,CAACC,SAAS,CAAC+C,OAAO,CAAC;YACzBhD,sBAAM,CAAC2C,UAAU,CAACI,QAAQ,EAAEhI,wBAAwB,CAAC;UACvD,CAAC,CAAC;QACN,CAAC,CAAC;QAEF4E,EAAE,CAAC,6EAA6E,EAAE,YAAM;UACtF,IAAMoD,QAAQ,GAAGzE,cAAK,CAAC4B,GAAG,CAAC,CAAC;UAC5B,IAAM8C,OAAO,GAAG1E,cAAK,CAAC4B,GAAG,CAAC,CAAC;UAE3BjG,YAAY,CAAC6F,EAAE,CAAC,2BAA2B,EAAEiD,QAAQ,CAAC;UACtD9I,YAAY,CAAC6F,EAAE,CAAC,0BAA0B,EAAEkD,OAAO,CAAC;UAEpD,IAAMzF,OAAO,GAAGtD,YAAY,CAACkG,OAAO,CAAC,CAAC;UAEtCjG,aAAa,CAACgF,IAAI,CAAC,CAAC;UAEpB,OAAO3B,OAAO,CACX6C,IAAI,CAAC,YAAM;YACVlG,aAAa,CAAC+B,IAAI,CAAC,SAAS,EAAE;cAACxB,IAAI,EAAE,IAAAyB,UAAA,CAAAjE,OAAA,EAAe8C,wBAAwB;YAAC,CAAC,CAAC;YAE/E,OAAO,IAAA8G,oBAAW,EAAC,CAAC,CAAC;UACvB,CAAC,CAAC,CACDzB,IAAI,CAAC,YAAM;YACVJ,sBAAM,CAACS,UAAU,CAACsC,QAAQ,CAAC;YAC3B/C,sBAAM,CAACC,SAAS,CAAC+C,OAAO,CAAC;YACzBhD,sBAAM,CAAC2C,UAAU,CAACI,QAAQ,EAAEhI,wBAAwB,CAAC;UACvD,CAAC,CAAC;QACN,CAAC,CAAC;MACJ,CAAC,CAAC;;MAEF;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_crypto","require","_sinon","_interopRequireDefault","_testHelperChai","_testHelperMockWebex","_testHelperMockWebSocket","_index","_interopRequireWildcard","_constants","_promiseTick","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t2","hasOwnProperty","call","_Object$defineProperty2","_Object$getOwnPropertyDescriptor","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty3","_Object$getOwnPropertyDescriptors","_Object$defineProperties","crypto","randomUUID","_defineProperty2","value","configurable","describe","createUuid","mobiusSocket","mockWebSocket","originalSendSpy","socketOpenStub","usingFakeTimers","webex","fakeTestMessage","id","data","eventType","timestamp","_now","trackingId","concat","statusStartTypingMessage","actor","conversationId","sessionId","emitAuthResponse","_ref","undefined","_ref$statusCode","statusCode","_ref$statusMessage","statusMessage","sendSpy","send","lastCall","authRequest","JSON","parse","args","emit","_stringify","type","subtype","MESSAGE_TYPES","AUTH","beforeEach","jest","useFakeTimers","doNotFake","afterEach","_asyncToGenerator2","_regenerator","mark","_callee","_t","wrap","_context","prev","next","useRealTimers","_connectPromises","promise","catch","disconnectAll","clear","close","Socket","getWebSocketConstructor","restore","stop","MockWebex","internal","device","registered","metrics","submitClientMetrics","sinon","stub","logger","console","callsFake","_len","Array","_key","_construct2","MockWebSocket","origOpen","prototype","open","_len2","_key2","_apply","process","nextTick","MobiusSocket","mobiusConfig","defaultSessionId","it","firstListener","secondListener","on","off","assert","notCalled","spy","connect","then","called","disconnectPromise","disconnect","code","reason","calledOnce","calledTwice","resolveTest","rejectTest","bufferStateSpy","onlineSpy","_len3","_key3","_wrap2","fn","_this","_len4","sendArgs","_key4","isTrue","connecting","isFalse","connected","lengthOf","readyState","promiseTick","_promise","resolve","reject","events","action","def","description","_reconnect","offlineSpy","permanentSpy","transientSpy","replacedSpy","resetHistory","calledWith","url","fake","processTestEvent","startSpy","stopSpy"],"sources":["mobius-socket-events.test.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {randomUUID} from 'crypto';\nimport sinon from 'sinon';\nimport {assert} from '@webex/test-helper-chai';\nimport MockWebex from '@webex/test-helper-mock-webex';\nimport MockWebSocket from '@webex/test-helper-mock-web-socket';\nimport {wrap} from 'lodash';\nimport MobiusSocket, {config as mobiusConfig, Socket} from './index';\nimport {MESSAGE_TYPES} from './socket/constants';\n\nimport promiseTick from './test/promise-tick';\n\nif (!crypto.randomUUID) {\n Object.defineProperty(crypto, 'randomUUID', {\n value: randomUUID,\n configurable: true,\n });\n}\n\ndescribe('plugin-mobiusSocket', () => {\n const createUuid = () => crypto.randomUUID();\n\n describe('MobiusSocket', () => {\n describe('Events', () => {\n let mobiusSocket;\n let mockWebSocket;\n let originalSendSpy;\n let socketOpenStub;\n let usingFakeTimers;\n let webex;\n\n const fakeTestMessage = {\n id: createUuid(),\n data: {\n eventType: 'fake.test',\n },\n timestamp: Date.now(),\n trackingId: `suffix_${createUuid()}_${Date.now()}`,\n };\n\n const statusStartTypingMessage = {\n id: createUuid(),\n data: {\n eventType: 'status.start_typing',\n actor: {\n id: 'actorId',\n },\n conversationId: createUuid(),\n },\n timestamp: Date.now(),\n trackingId: `suffix_${createUuid()}_${Date.now()}`,\n sessionId: 'mobius-websocket-session',\n };\n\n const emitAuthResponse = ({statusCode = 200, statusMessage = 'OK'} = {}) => {\n const sendSpy = mockWebSocket.send.lastCall ? mockWebSocket.send : originalSendSpy;\n const authRequest = JSON.parse(sendSpy.lastCall.args[0]);\n\n mockWebSocket.emit('message', {\n data: JSON.stringify({\n type: 'response_event',\n subtype: MESSAGE_TYPES.AUTH,\n trackingId: authRequest.trackingId,\n statusCode,\n statusMessage,\n }),\n });\n };\n\n beforeEach(() => {\n jest.useFakeTimers({doNotFake: ['nextTick']});\n usingFakeTimers = true;\n });\n\n afterEach(async () => {\n if (usingFakeTimers) {\n jest.useRealTimers();\n usingFakeTimers = false;\n }\n if (mobiusSocket) {\n if (mobiusSocket._connectPromises) {\n mobiusSocket._connectPromises.forEach((promise) => {\n promise.catch(() => {});\n });\n }\n try {\n await mobiusSocket.disconnectAll();\n } catch (e) {\n // Ignore cleanup errors in tests.\n }\n if (mobiusSocket._connectPromises) {\n mobiusSocket._connectPromises.clear();\n }\n }\n if (mockWebSocket && typeof mockWebSocket.close === 'function') {\n try {\n mockWebSocket.close();\n } catch (e) {\n // Ignore cleanup errors in tests.\n }\n }\n // Restore stubs\n if (Socket.getWebSocketConstructor.restore) {\n Socket.getWebSocketConstructor.restore();\n }\n if (socketOpenStub && socketOpenStub.restore) {\n socketOpenStub.restore();\n }\n });\n\n beforeEach(() => {\n webex = new MockWebex();\n\n webex.internal.device.registered = true;\n webex.internal.metrics.submitClientMetrics = sinon.stub();\n webex.trackingId = 'fakeTrackingId';\n\n webex.logger = console;\n\n sinon.stub(Socket, 'getWebSocketConstructor').callsFake(\n () =>\n function (...args) {\n mockWebSocket = new MockWebSocket(...args);\n originalSendSpy = mockWebSocket.send;\n\n return mockWebSocket;\n }\n );\n\n const origOpen = Socket.prototype.open;\n\n socketOpenStub = sinon.stub(Socket.prototype, 'open').callsFake(function (...args) {\n const promise = Reflect.apply(origOpen, this, args);\n\n process.nextTick(() => {\n mockWebSocket.open();\n // Simulate Mobius auth response after socket open\n process.nextTick(() => {\n emitAuthResponse();\n });\n });\n\n return promise;\n });\n\n mobiusSocket = new MobiusSocket(webex, {...mobiusConfig.mobiusSocket});\n mobiusSocket.defaultSessionId = 'mobius-websocket-session';\n });\n\n it('removes all listeners for an event when off() is called without a listener', () => {\n const firstListener = sinon.stub();\n const secondListener = sinon.stub();\n\n mobiusSocket.on('event:fake.test', firstListener);\n mobiusSocket.on('event:fake.test', secondListener);\n\n mobiusSocket.off('event:fake.test');\n mobiusSocket.emit('event:fake.test', fakeTestMessage);\n\n assert.notCalled(firstListener);\n assert.notCalled(secondListener);\n });\n\n afterEach(() => {\n if (socketOpenStub) {\n socketOpenStub.restore();\n }\n\n if (Socket.getWebSocketConstructor.restore) {\n Socket.getWebSocketConstructor.restore();\n }\n });\n\n describe('when connected', () => {\n it('emits the `online` event', () => {\n const spy = sinon.spy();\n\n mobiusSocket.on('online', spy);\n const promise = mobiusSocket.connect();\n\n return promise.then(() => assert.called(spy));\n });\n });\n\n describe('when disconnected', () => {\n it('emits the `offline` event', () => {\n const spy = sinon.spy();\n\n mobiusSocket.on('offline', spy);\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n const disconnectPromise = mobiusSocket.disconnect();\n\n mockWebSocket.emit('close', {\n code: 1000,\n reason: 'Done',\n });\n\n return disconnectPromise;\n })\n .then(() => assert.calledOnce(spy));\n });\n\n describe('when reconnected', () => {\n it('emits the `online` event', () => {\n const spy = sinon.spy();\n\n mobiusSocket.on('online', spy);\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => assert.calledOnce(spy))\n .then(() => mockWebSocket.emit('close', {code: 1000, reason: 'Idle'}))\n .then(() => mobiusSocket.connect())\n .then(() => assert.calledTwice(spy));\n });\n });\n });\n\n describe('when `mercury.buffer_state` is received', () => {\n // This test is here because the buffer states message may arrive before\n // the mobiusSocket Promise resolves.\n it('gets emitted', () => {\n let sendSpy;\n let resolveTest;\n let rejectTest;\n const bufferStateSpy = sinon.spy();\n const onlineSpy = sinon.spy();\n\n mobiusSocket.on('event:mercury.buffer_state', bufferStateSpy);\n mobiusSocket.on('online', onlineSpy);\n\n Socket.getWebSocketConstructor.callsFake(\n () =>\n function (...args) {\n mockWebSocket = new MockWebSocket(...args);\n sendSpy = mockWebSocket.send;\n mockWebSocket.send = wrap(mockWebSocket.send, function (fn, ...sendArgs) {\n process.nextTick(() => {\n Reflect.apply(fn, this, sendArgs);\n });\n });\n\n process.nextTick(() => {\n assert.isTrue(mobiusSocket.connecting, 'MobiusSocket is still connecting');\n assert.isFalse(mobiusSocket.connected, 'MobiusSocket has not yet connected');\n assert.notCalled(onlineSpy);\n assert.lengthOf(sendSpy.args, 0, 'The client has not yet sent the auth message');\n // set websocket readystate to 1 to allow a successful send message\n mockWebSocket.readyState = 1;\n mockWebSocket.emit('open');\n mockWebSocket.emit('message', {\n data: JSON.stringify({\n id: createUuid(),\n data: {\n eventType: 'mercury.buffer_state',\n },\n }),\n });\n // using lengthOf because notCalled doesn't allow the helpful\n // string assertion\n assert.lengthOf(\n sendSpy.args,\n 0,\n 'The client has not acked the buffer_state message'\n );\n\n promiseTick(1)\n .then(() => {\n assert.calledOnce(bufferStateSpy);\n resolveTest();\n })\n .catch(rejectTest);\n });\n\n return mockWebSocket;\n }\n );\n\n return new Promise((resolve, reject) => {\n resolveTest = resolve;\n rejectTest = reject;\n mobiusSocket.connect().catch(() => {});\n });\n });\n });\n\n describe('when a CloseEvent is received', () => {\n const events = [\n {\n code: 1000,\n reason: 'idle',\n action: 'reconnect',\n },\n {\n code: 1000,\n reason: 'done (forced)',\n action: 'reconnect',\n },\n {\n code: 1000,\n reason: 'pong not received',\n action: 'close',\n },\n {\n code: 1000,\n reason: 'pong mismatch',\n action: 'close',\n },\n {\n code: 1000,\n action: 'close',\n },\n {\n code: 1003,\n action: 'close',\n },\n {\n code: 1001,\n action: 'reconnect',\n },\n {\n code: 1005,\n action: 'reconnect',\n },\n {\n code: 1006,\n action: 'reconnect',\n },\n {\n code: 1011,\n action: 'reconnect',\n },\n {\n code: 4000,\n action: 'replace',\n },\n {\n action: 'close',\n },\n ];\n\n events.forEach((def) => {\n const {action, reason, code} = def;\n let description;\n\n if (code && reason) {\n description = `with code \\`${code}\\` and reason \\`${reason}\\``;\n } else if (code) {\n description = `with code \\`${code}\\``;\n } else if (reason) {\n description = `with reason \\`${reason}\\``;\n }\n\n describe(`when an event ${description} is received`, () => {\n it(`takes the ${action} action`, () => {\n if (mobiusSocket._reconnect.restore) {\n mobiusSocket._reconnect.restore();\n }\n\n sinon.spy(mobiusSocket, 'connect');\n\n const offlineSpy = sinon.spy();\n const permanentSpy = sinon.spy();\n const transientSpy = sinon.spy();\n const replacedSpy = sinon.spy();\n\n mobiusSocket.on('offline', offlineSpy);\n mobiusSocket.on('offline.permanent', permanentSpy);\n mobiusSocket.on('offline.transient', transientSpy);\n mobiusSocket.on('offline.replaced', replacedSpy);\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n // Make sure mobiusSocket.connect has a call count of zero\n mobiusSocket.connect.resetHistory();\n\n mockWebSocket.emit('close', {code, reason});\n\n return promiseTick(1);\n })\n .then(() => {\n assert.called(offlineSpy);\n assert.calledWith(offlineSpy, {\n code,\n reason,\n sessionId: 'mobius-websocket-session',\n });\n switch (action) {\n case 'close':\n assert.called(permanentSpy);\n assert.notCalled(transientSpy);\n assert.notCalled(replacedSpy);\n break;\n case 'reconnect':\n assert.notCalled(permanentSpy);\n assert.called(transientSpy);\n assert.notCalled(replacedSpy);\n break;\n case 'replace':\n assert.notCalled(permanentSpy);\n assert.notCalled(transientSpy);\n assert.called(replacedSpy);\n break;\n default:\n assert(false, 'unreachable code reached');\n }\n assert.isFalse(mobiusSocket.connected, 'MobiusSocket is not connected');\n if (action === 'reconnect') {\n assert.called(mobiusSocket.connect);\n assert.calledWith(mobiusSocket.connect, mockWebSocket.url);\n assert.isTrue(mobiusSocket.connecting, 'MobiusSocket is connecting');\n\n // Block until reconnect completes so logs don't overlap\n return mobiusSocket.connect();\n }\n\n assert.notCalled(mobiusSocket.connect);\n assert.isFalse(mobiusSocket.connecting, 'MobiusSocket is not connecting');\n\n return Promise.resolve();\n });\n });\n });\n });\n });\n\n describe('when a MessageEvent is received', () => {\n it('processes the Event via any autowired event handlers', () => {\n webex.fake = {\n processTestEvent: sinon.spy(),\n };\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n mockWebSocket.emit('message', {data: JSON.stringify(fakeTestMessage)});\n\n return promiseTick(1);\n })\n .then(() => {\n assert.called(webex.fake.processTestEvent);\n });\n });\n\n it('emits the MobiusSocket envelope', () => {\n const startSpy = sinon.spy();\n const stopSpy = sinon.spy();\n\n mobiusSocket.on('event:status.start_typing', startSpy);\n mobiusSocket.on('event:status.stop_typing', stopSpy);\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n mockWebSocket.emit('message', {data: JSON.stringify(statusStartTypingMessage)});\n\n return promiseTick(1);\n })\n .then(() => {\n assert.calledOnce(startSpy);\n assert.notCalled(stopSpy);\n assert.calledWith(startSpy, statusStartTypingMessage);\n });\n });\n\n it(\"emits the MobiusSocket envelope named by the MobiusSocket event's eventType\", () => {\n const startSpy = sinon.spy();\n const stopSpy = sinon.spy();\n\n mobiusSocket.on('event:status.start_typing', startSpy);\n mobiusSocket.on('event:status.stop_typing', stopSpy);\n\n const promise = mobiusSocket.connect();\n\n mockWebSocket.open();\n\n return promise\n .then(() => {\n mockWebSocket.emit('message', {data: JSON.stringify(statusStartTypingMessage)});\n\n return promiseTick(1);\n })\n .then(() => {\n assert.calledOnce(startSpy);\n assert.notCalled(stopSpy);\n assert.calledWith(startSpy, statusStartTypingMessage);\n });\n });\n });\n\n // Mobius does not use sequence numbers, so sequence-mismatch tests are not applicable\n });\n });\n\n /*\n // On mobiusSocket:\n online\n offline\n offline.transient\n offline.permanent\n offline.replaced\n event\n event:locus.participant_joined\n mockWebSocket.connection-failed\n mockWebSocket.sequence-mismatch\n\n // On webex:\n mobiusSocket.online\n mobiusSocket.offline\n mobiusSocket.offline.transient\n mobiusSocket.offline.permanent\n mobiusSocket.offline.replaced\n mobiusSocket.event\n mobiusSocket.event:locus.participant_joined\n mobiusSocket.mockWebSocket.connection-failed\n mobiusSocket.mockWebSocket.sequence-mismatch\n\n // TODO go through all it(`emits...`) and make sure corresponding tests are here\n */\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,7 +44,8 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
44
44
|
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; }
|
|
45
45
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
|
|
46
46
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
47
|
-
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
|
|
47
|
+
function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } // @ts-nocheck
|
|
48
|
+
/* eslint-disable require-jsdoc */ /*!
|
|
48
49
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file
|
|
49
50
|
*/
|
|
50
51
|
var normalReconnectReasons = ['idle', 'done (forced)'];
|
|
@@ -1150,7 +1151,7 @@ var MobiusSocket = /*#__PURE__*/function (_EventEmitter) {
|
|
|
1150
1151
|
var namespace = handler.namespace,
|
|
1151
1152
|
name = handler.name;
|
|
1152
1153
|
return new _promise.default(function (resolve) {
|
|
1153
|
-
|
|
1154
|
+
resolve((_this12.webex[namespace] || _this12.webex.internal[namespace])[name](data));
|
|
1154
1155
|
}).catch(function (reason) {
|
|
1155
1156
|
return _this12.logger.error("".concat(MOBIUS_SOCKET_NAMESPACE, ": error occurred in autowired event handler for ").concat(eventType, " from ").concat(sessionId), reason);
|
|
1156
1157
|
});
|