@webex/internal-plugin-mercury 3.11.0 → 3.12.0-llmrefactor.2
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/README.md +54 -0
- package/dist/index.js +13 -2
- package/dist/index.js.map +1 -1
- package/dist/mercury-plugin.js +125 -0
- package/dist/mercury-plugin.js.map +1 -0
- package/dist/mercury.js +76 -33
- package/dist/mercury.js.map +1 -1
- package/dist/socket/constants.js +16 -0
- package/dist/socket/constants.js.map +1 -0
- package/dist/socket/socket-base.js +36 -3
- package/dist/socket/socket-base.js.map +1 -1
- package/package.json +17 -17
- package/src/index.js +3 -2
- package/src/mercury-plugin.ts +79 -0
- package/src/mercury.js +105 -49
- package/src/socket/constants.js +6 -0
- package/src/socket/socket-base.js +40 -3
- package/test/unit/spec/mercury-events.js +26 -2
- package/test/unit/spec/mercury-plugin.js +280 -0
- package/test/unit/spec/mercury.js +374 -136
- package/test/unit/spec/socket.js +61 -0
package/README.md
CHANGED
|
@@ -29,6 +29,60 @@ const webex = new WebexCore();
|
|
|
29
29
|
webex.internal.mercury.WHATEVER;
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
### Multiple Connections
|
|
33
|
+
|
|
34
|
+
Mercury now supports multiple simultaneous websocket connections scoped by `sessionId`.
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
const mercury = webex.internal.mercury;
|
|
38
|
+
|
|
39
|
+
// Default session
|
|
40
|
+
await mercury.connect();
|
|
41
|
+
|
|
42
|
+
// Additional session
|
|
43
|
+
await mercury.connect(undefined, 'secondary-session');
|
|
44
|
+
|
|
45
|
+
// Disconnect only one session
|
|
46
|
+
await mercury.disconnect(undefined, 'secondary-session');
|
|
47
|
+
|
|
48
|
+
// Disconnect everything
|
|
49
|
+
await mercury.disconnectAll();
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
#### Listening to multiple connections
|
|
53
|
+
|
|
54
|
+
```js
|
|
55
|
+
const mercury = webex.internal.mercury;
|
|
56
|
+
const secondarySessionId = 'secondary-session';
|
|
57
|
+
|
|
58
|
+
// Connect both sessions first.
|
|
59
|
+
await mercury.connect();
|
|
60
|
+
await mercury.connect(undefined, secondarySessionId);
|
|
61
|
+
|
|
62
|
+
// Default session listeners use the base event name.
|
|
63
|
+
mercury.on('online', () => {
|
|
64
|
+
console.log('[default] online');
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
mercury.on('event:conversation.activity', (envelope) => {
|
|
68
|
+
console.log('[default] activity', envelope.data?.eventType);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Non-default sessions use :<sessionId> suffix.
|
|
72
|
+
mercury.on(`online:${secondarySessionId}`, () => {
|
|
73
|
+
console.log(`[${secondarySessionId}] online`);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
mercury.on(`event:conversation.activity:${secondarySessionId}`, (envelope) => {
|
|
77
|
+
console.log(`[${secondarySessionId}] activity`, envelope.data?.eventType);
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Notes:
|
|
82
|
+
- `connect(webSocketUrl, sessionId)` and `disconnect(options, sessionId)` are session-aware.
|
|
83
|
+
- Non-default sessions emit events with a `:<sessionId>` suffix (for example, `online:secondary-session`).
|
|
84
|
+
- `getSocket(sessionId)` returns the socket for a specific session.
|
|
85
|
+
|
|
32
86
|
## Config Options
|
|
33
87
|
|
|
34
88
|
### Using A Proxy Agent To Open A Websocket Connection
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime-corejs2/helpers/typeof");
|
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs2/core-js/weak-map");
|
|
3
5
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
4
7
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
8
|
_Object$defineProperty(exports, "__esModule", {
|
|
6
9
|
value: true
|
|
@@ -29,6 +32,12 @@ _Object$defineProperty(exports, "Mercury", {
|
|
|
29
32
|
return _mercury.default;
|
|
30
33
|
}
|
|
31
34
|
});
|
|
35
|
+
_Object$defineProperty(exports, "MercuryPlugin", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function get() {
|
|
38
|
+
return _mercuryPlugin.MercuryPlugin;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
32
41
|
_Object$defineProperty(exports, "NotAuthorized", {
|
|
33
42
|
enumerable: true,
|
|
34
43
|
get: function get() {
|
|
@@ -63,15 +72,17 @@ require("@webex/internal-plugin-device");
|
|
|
63
72
|
require("@webex/internal-plugin-feature");
|
|
64
73
|
require("@webex/internal-plugin-metrics");
|
|
65
74
|
var _webexCore = require("@webex/webex-core");
|
|
66
|
-
var
|
|
75
|
+
var _mercuryPlugin = _interopRequireWildcard(require("./mercury-plugin"));
|
|
67
76
|
var _config = _interopRequireDefault(require("./config"));
|
|
77
|
+
var _mercury = _interopRequireDefault(require("./mercury"));
|
|
68
78
|
var _socket = _interopRequireDefault(require("./socket"));
|
|
69
79
|
var _errors = require("./errors");
|
|
80
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
70
81
|
/*!
|
|
71
82
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
72
83
|
*/
|
|
73
84
|
|
|
74
|
-
(0, _webexCore.registerInternalPlugin)('mercury',
|
|
85
|
+
(0, _webexCore.registerInternalPlugin)('mercury', _mercuryPlugin.default, {
|
|
75
86
|
config: _config.default,
|
|
76
87
|
onBeforeLogout: function onBeforeLogout() {
|
|
77
88
|
return this.logout();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_webexCore","
|
|
1
|
+
{"version":3,"names":["require","_webexCore","_mercuryPlugin","_interopRequireWildcard","_config","_interopRequireDefault","_mercury","_socket","_errors","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","registerInternalPlugin","MercuryPlugin","config","onBeforeLogout","logout"],"sources":["index.js"],"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 {registerInternalPlugin} from '@webex/webex-core';\n\nimport MercuryPlugin from './mercury-plugin';\nimport config from './config';\n\nregisterInternalPlugin('mercury', MercuryPlugin, {\n config,\n onBeforeLogout() {\n return this.logout();\n },\n});\n\nexport {default} from './mercury';\nexport {default as Mercury} from './mercury';\nexport {MercuryPlugin} from './mercury-plugin';\nexport {default as Socket} from './socket';\nexport {default as config} from './config';\nexport {\n BadRequest,\n ConnectionError,\n Forbidden,\n NotAuthorized,\n UnknownResponse,\n // NotFound\n} from './errors';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIAA,OAAA;AACAA,OAAA;AACAA,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,cAAA,GAAAC,uBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAC,sBAAA,CAAAL,OAAA;AASA,IAAAM,QAAA,GAAAD,sBAAA,CAAAL,OAAA;AAGA,IAAAO,OAAA,GAAAF,sBAAA,CAAAL,OAAA;AAEA,IAAAQ,OAAA,GAAAR,OAAA;AAOkB,SAAAG,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,QAAA,MAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAR,uBAAA,YAAAA,wBAAAM,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,EAAA,IAAAf,CAAA,gBAAAe,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,EAAA,OAAAR,CAAA,IAAAD,CAAA,GAAAY,sBAAA,KAAAC,gCAAA,CAAAnB,CAAA,EAAAe,EAAA,OAAAR,CAAA,CAAAM,GAAA,IAAAN,CAAA,CAAAO,GAAA,IAAAR,CAAA,CAAAE,CAAA,EAAAO,EAAA,EAAAR,CAAA,IAAAC,CAAA,CAAAO,EAAA,IAAAf,CAAA,CAAAe,EAAA,WAAAP,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAhClB;AACA;AACA;;AAWA,IAAAmB,iCAAsB,EAAC,SAAS,EAAEC,sBAAa,EAAE;EAC/CC,MAAM,EAANA,eAAM;EACNC,cAAc,WAAdA,cAAcA,CAAA,EAAG;IACf,OAAO,IAAI,CAACC,MAAM,CAAC,CAAC;EACtB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
7
|
+
value: true
|
|
8
|
+
});
|
|
9
|
+
exports.MercuryPlugin = void 0;
|
|
10
|
+
_Object$defineProperty(exports, "config", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _config.default;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
exports.default = void 0;
|
|
17
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
18
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
19
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
21
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
23
|
+
var _webexCore = require("@webex/webex-core");
|
|
24
|
+
var _config = _interopRequireDefault(require("./config"));
|
|
25
|
+
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)); }
|
|
26
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /* eslint-disable require-jsdoc */ /*!
|
|
27
|
+
* Copyright (c) 2015-2024 Cisco Systems, Inc. See LICENSE file.
|
|
28
|
+
*/ // @ts-ignore
|
|
29
|
+
// since mercury-plugin.ts is a .ts file, the TS language server tries to parse mercury.js and chokes on the @deprecated decorator.
|
|
30
|
+
// using a require() call instead of import to avoid TS parsing the file:
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
33
|
+
var Mercury = require('./mercury').default;
|
|
34
|
+
var MercuryPlugin = exports.MercuryPlugin = /*#__PURE__*/function (_ref) {
|
|
35
|
+
function MercuryPlugin() {
|
|
36
|
+
var _this;
|
|
37
|
+
(0, _classCallCheck2.default)(this, MercuryPlugin);
|
|
38
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
39
|
+
args[_key] = arguments[_key];
|
|
40
|
+
}
|
|
41
|
+
_this = _callSuper(this, MercuryPlugin, [].concat(args));
|
|
42
|
+
(0, _defineProperty2.default)(_this, "namespace", 'Mercury');
|
|
43
|
+
(0, _defineProperty2.default)(_this, "_mercury", void 0);
|
|
44
|
+
_this._mercury = new Mercury({
|
|
45
|
+
parent: _this.webex
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
// Re-emit every event from Mercury on this plugin so listeners attached to
|
|
49
|
+
// `this.webex.internal.mercury` continue to work.
|
|
50
|
+
_this._mercury.on('all', function (eventName) {
|
|
51
|
+
var _ref2;
|
|
52
|
+
for (var _len2 = arguments.length, rest = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
53
|
+
rest[_key2 - 1] = arguments[_key2];
|
|
54
|
+
}
|
|
55
|
+
(_ref2 = _this).trigger.apply(_ref2, [eventName].concat(rest));
|
|
56
|
+
});
|
|
57
|
+
return _this;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** True when the primary Mercury socket is connected. */
|
|
61
|
+
(0, _inherits2.default)(MercuryPlugin, _ref);
|
|
62
|
+
return (0, _createClass2.default)(MercuryPlugin, [{
|
|
63
|
+
key: "connected",
|
|
64
|
+
get: function get() {
|
|
65
|
+
var _this$_mercury$connec, _this$_mercury;
|
|
66
|
+
return (_this$_mercury$connec = (_this$_mercury = this._mercury) === null || _this$_mercury === void 0 ? void 0 : _this$_mercury.connected) !== null && _this$_mercury$connec !== void 0 ? _this$_mercury$connec : false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** The primary socket, if connected. */
|
|
70
|
+
}, {
|
|
71
|
+
key: "socket",
|
|
72
|
+
get: function get() {
|
|
73
|
+
var _this$_mercury2;
|
|
74
|
+
return (_this$_mercury2 = this._mercury) === null || _this$_mercury2 === void 0 ? void 0 : _this$_mercury2.socket;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** Cluster service URLs received from registration status event. */
|
|
78
|
+
}, {
|
|
79
|
+
key: "localClusterServiceUrls",
|
|
80
|
+
get: function get() {
|
|
81
|
+
var _this$_mercury3;
|
|
82
|
+
return (_this$_mercury3 = this._mercury) === null || _this$_mercury3 === void 0 ? void 0 : _this$_mercury3.localClusterServiceUrls;
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "getLastError",
|
|
86
|
+
value: function getLastError() {
|
|
87
|
+
var _this$_mercury4;
|
|
88
|
+
return (_this$_mercury4 = this._mercury) === null || _this$_mercury4 === void 0 ? void 0 : _this$_mercury4.getLastError();
|
|
89
|
+
}
|
|
90
|
+
}, {
|
|
91
|
+
key: "hasEverConnected",
|
|
92
|
+
get: function get() {
|
|
93
|
+
var _this$_mercury$hasEve, _this$_mercury5;
|
|
94
|
+
return (_this$_mercury$hasEve = (_this$_mercury5 = this._mercury) === null || _this$_mercury5 === void 0 ? void 0 : _this$_mercury5.hasEverConnected) !== null && _this$_mercury$hasEve !== void 0 ? _this$_mercury$hasEve : false;
|
|
95
|
+
}
|
|
96
|
+
}, {
|
|
97
|
+
key: "connect",
|
|
98
|
+
value: function connect(webSocketUrl) {
|
|
99
|
+
return this._mercury.connect(webSocketUrl);
|
|
100
|
+
}
|
|
101
|
+
}, {
|
|
102
|
+
key: "disconnect",
|
|
103
|
+
value: function disconnect(options) {
|
|
104
|
+
return this._mercury.disconnect(options);
|
|
105
|
+
}
|
|
106
|
+
}, {
|
|
107
|
+
key: "logout",
|
|
108
|
+
value: function logout() {
|
|
109
|
+
var normalReconnectReasons = ['idle', 'done (forced)', 'pong not received', 'pong mismatch'];
|
|
110
|
+
var reason = this.config.beforeLogoutOptionsCloseReason;
|
|
111
|
+
var options = reason && !normalReconnectReasons.includes(reason) ? {
|
|
112
|
+
code: 3050,
|
|
113
|
+
reason: reason
|
|
114
|
+
} : undefined;
|
|
115
|
+
return this._mercury.disconnect(options);
|
|
116
|
+
}
|
|
117
|
+
}, {
|
|
118
|
+
key: "processRegistrationStatusEvent",
|
|
119
|
+
value: function processRegistrationStatusEvent(message) {
|
|
120
|
+
return this._mercury.processRegistrationStatusEvent(message);
|
|
121
|
+
}
|
|
122
|
+
}]);
|
|
123
|
+
}(_webexCore.WebexPlugin);
|
|
124
|
+
var _default = exports.default = MercuryPlugin;
|
|
125
|
+
//# sourceMappingURL=mercury-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_webexCore","require","_config","_interopRequireDefault","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","Mercury","MercuryPlugin","exports","_ref","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","concat","_defineProperty2","_mercury","parent","webex","on","eventName","_ref2","_len2","rest","_key2","trigger","_inherits2","_createClass2","key","get","_this$_mercury$connec","_this$_mercury","connected","_this$_mercury2","socket","_this$_mercury3","localClusterServiceUrls","value","getLastError","_this$_mercury4","_this$_mercury$hasEve","_this$_mercury5","hasEverConnected","connect","webSocketUrl","disconnect","options","logout","normalReconnectReasons","reason","config","beforeLogoutOptionsCloseReason","includes","code","undefined","processRegistrationStatusEvent","message","WebexPlugin","_default"],"sources":["mercury-plugin.ts"],"sourcesContent":["/* eslint-disable require-jsdoc */\n/*!\n * Copyright (c) 2015-2024 Cisco Systems, Inc. See LICENSE file.\n */\n\n// @ts-ignore\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport config from './config';\n\n// since mercury-plugin.ts is a .ts file, the TS language server tries to parse mercury.js and chokes on the @deprecated decorator.\n// using a require() call instead of import to avoid TS parsing the file:\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst Mercury = require('./mercury').default;\n\nexport class MercuryPlugin extends (WebexPlugin as any) {\n namespace = 'Mercury';\n\n private _mercury: any;\n\n constructor(...args: any[]) {\n super(...args);\n this._mercury = new (Mercury as any)({parent: (this as any).webex});\n\n // Re-emit every event from Mercury on this plugin so listeners attached to\n // `this.webex.internal.mercury` continue to work.\n this._mercury.on('all', (eventName: string, ...rest: any[]) => {\n (this as any).trigger(eventName, ...rest);\n });\n }\n\n /** True when the primary Mercury socket is connected. */\n get connected(): boolean {\n return this._mercury?.connected ?? false;\n }\n\n /** The primary socket, if connected. */\n get socket(): any {\n return this._mercury?.socket;\n }\n\n /** Cluster service URLs received from registration status event. */\n get localClusterServiceUrls(): any {\n return this._mercury?.localClusterServiceUrls;\n }\n\n getLastError(): any {\n return this._mercury?.getLastError();\n }\n\n get hasEverConnected(): boolean {\n return this._mercury?.hasEverConnected ?? false;\n }\n\n connect(webSocketUrl?: string): Promise<void> {\n return this._mercury.connect(webSocketUrl);\n }\n\n disconnect(options?: any): Promise<void> {\n return this._mercury.disconnect(options);\n }\n\n logout(): Promise<void> {\n const normalReconnectReasons = ['idle', 'done (forced)', 'pong not received', 'pong mismatch'];\n const reason = this.config.beforeLogoutOptionsCloseReason;\n const options =\n reason && !normalReconnectReasons.includes(reason) ? {code: 3050, reason} : undefined;\n\n return this._mercury.disconnect(options);\n }\n\n processRegistrationStatusEvent(message: any): void {\n return this._mercury.processRegistrationStatusEvent(message);\n }\n}\n\nexport {config};\nexport default MercuryPlugin;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/mercury.js
CHANGED
|
@@ -13,6 +13,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
13
13
|
exports.default = void 0;
|
|
14
14
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
15
15
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
16
|
+
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
16
17
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
17
18
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
18
19
|
var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
|
|
@@ -56,7 +57,14 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
56
57
|
mercuryTimeOffset: {
|
|
57
58
|
default: undefined,
|
|
58
59
|
type: 'number'
|
|
59
|
-
}
|
|
60
|
+
},
|
|
61
|
+
backoffCall: 'object',
|
|
62
|
+
_connectPromise: 'object',
|
|
63
|
+
_shutdownSwitchoverBackoffCall: 'object',
|
|
64
|
+
_shutdownSwitchoverId: 'string',
|
|
65
|
+
// Store the resolved (pre-proxy) URL so reconnection uses a catalog-valid host
|
|
66
|
+
// instead of the potentially rewritten socket.url from an interceptor.
|
|
67
|
+
resolvedWebSocketUrl: 'string'
|
|
60
68
|
},
|
|
61
69
|
derived: {
|
|
62
70
|
listening: {
|
|
@@ -139,12 +147,12 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
139
147
|
*/
|
|
140
148
|
_handleImminentShutdown: function _handleImminentShutdown() {
|
|
141
149
|
var _this3 = this;
|
|
150
|
+
var oldSocket = this.socket;
|
|
142
151
|
try {
|
|
143
|
-
if (this.
|
|
152
|
+
if (this._shutdownSwitchoverBackoffCall) {
|
|
144
153
|
this.logger.info("".concat(this.namespace, ": [shutdown] switchover already in progress"));
|
|
145
154
|
return;
|
|
146
155
|
}
|
|
147
|
-
this._shutdownSwitchoverInProgress = true;
|
|
148
156
|
this._shutdownSwitchoverId = "".concat((0, _now.default)());
|
|
149
157
|
this.logger.info("".concat(this.namespace, ": [shutdown] switchover start, id=").concat(this._shutdownSwitchoverId));
|
|
150
158
|
this._connectWithBackoff(undefined, {
|
|
@@ -153,7 +161,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
153
161
|
isShutdownSwitchover: true,
|
|
154
162
|
onSuccess: function onSuccess(newSocket, webSocketUrl) {
|
|
155
163
|
_this3.logger.info("".concat(_this3.namespace, ": [shutdown] switchover connected, url: ").concat(webSocketUrl));
|
|
156
|
-
|
|
164
|
+
|
|
157
165
|
// Atomically switch active socket reference
|
|
158
166
|
_this3.socket = newSocket;
|
|
159
167
|
_this3.connected = true; // remain connected throughout
|
|
@@ -177,7 +185,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
177
185
|
});
|
|
178
186
|
} catch (e) {
|
|
179
187
|
this.logger.error("".concat(this.namespace, ": [shutdown] error during switchover"), e);
|
|
180
|
-
this.
|
|
188
|
+
this._shutdownSwitchoverBackoffCall = undefined;
|
|
181
189
|
this._emit('event:mercury_shutdown_switchover_failed', {
|
|
182
190
|
reason: e
|
|
183
191
|
});
|
|
@@ -190,30 +198,38 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
190
198
|
getLastError: function getLastError() {
|
|
191
199
|
return this.lastError;
|
|
192
200
|
},
|
|
201
|
+
/**
|
|
202
|
+
* Get the underlying WebSocket.
|
|
203
|
+
* @returns {any} The socket instance, or undefined if not connected.
|
|
204
|
+
*/
|
|
205
|
+
getSocket: function getSocket() {
|
|
206
|
+
return this.socket;
|
|
207
|
+
},
|
|
193
208
|
connect: function connect(webSocketUrl) {
|
|
194
209
|
var _this4 = this;
|
|
195
210
|
if (this.connected) {
|
|
196
211
|
this.logger.info("".concat(this.namespace, ": already connected, will not connect again"));
|
|
197
212
|
return _promise.default.resolve();
|
|
198
213
|
}
|
|
214
|
+
|
|
215
|
+
// If already connecting, return the existing promise so callers can await it
|
|
216
|
+
if (this._connectPromise) {
|
|
217
|
+
this.logger.info("".concat(this.namespace, ": connection already in progress, returning existing promise"));
|
|
218
|
+
return this._connectPromise;
|
|
219
|
+
}
|
|
199
220
|
this.connecting = true;
|
|
200
221
|
this.logger.info("".concat(this.namespace, ": starting connection attempt"));
|
|
201
|
-
this.
|
|
202
|
-
return _promise.default.resolve(this.webex.internal.device.registered || this.webex.internal.device.register()).then(function () {
|
|
222
|
+
this._connectPromise = _promise.default.resolve(this.webex.internal.device.registered || this.webex.internal.device.register()).then(function () {
|
|
203
223
|
_this4.logger.info("".concat(_this4.namespace, ": connecting"));
|
|
204
224
|
return _this4._connectWithBackoff(webSocketUrl);
|
|
225
|
+
}).finally(function () {
|
|
226
|
+
_this4._connectPromise = null;
|
|
205
227
|
});
|
|
206
|
-
|
|
207
|
-
logout: function logout() {
|
|
208
|
-
this.logger.info("".concat(this.namespace, ": logout() called"));
|
|
209
|
-
this.logger.info("".concat(this.namespace, ": debug_mercury_logging stack: "), new Error('debug_mercury_logging').stack);
|
|
210
|
-
return this.disconnect(this.config.beforeLogoutOptionsCloseReason && !normalReconnectReasons.includes(this.config.beforeLogoutOptionsCloseReason) ? {
|
|
211
|
-
code: 3050,
|
|
212
|
-
reason: this.config.beforeLogoutOptionsCloseReason
|
|
213
|
-
} : undefined);
|
|
228
|
+
return this._connectPromise;
|
|
214
229
|
},
|
|
215
230
|
disconnect: function disconnect(options) {
|
|
216
231
|
var _this5 = this;
|
|
232
|
+
this.logger.info("".concat(this.namespace, "#disconnect: connecting state: ").concat(this.connecting, ", connected state: ").concat(this.connected, ", socket exists: ").concat(!!this.socket, ", options: ").concat((0, _stringify.default)(options)));
|
|
217
233
|
return new _promise.default(function (resolve) {
|
|
218
234
|
if (_this5.backoffCall) {
|
|
219
235
|
_this5.logger.info("".concat(_this5.namespace, ": aborting connection"));
|
|
@@ -226,7 +242,8 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
226
242
|
if (_this5.socket) {
|
|
227
243
|
_this5.socket.removeAllListeners('message');
|
|
228
244
|
_this5.once('offline', resolve);
|
|
229
|
-
|
|
245
|
+
_this5.socket.close(options || undefined);
|
|
246
|
+
return;
|
|
230
247
|
}
|
|
231
248
|
resolve();
|
|
232
249
|
});
|
|
@@ -301,6 +318,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
301
318
|
webSocketUrl.query.multipleConnections = true;
|
|
302
319
|
}
|
|
303
320
|
webSocketUrl.query.clientTimestamp = (0, _now.default)();
|
|
321
|
+
delete webSocketUrl.search;
|
|
304
322
|
return _url.default.format(webSocketUrl);
|
|
305
323
|
});
|
|
306
324
|
},
|
|
@@ -332,6 +350,8 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
332
350
|
|
|
333
351
|
// Call the callback with the error before rejecting
|
|
334
352
|
callback(_err);
|
|
353
|
+
|
|
354
|
+
// eslint-disable-next-line no-unreachable
|
|
335
355
|
return _promise.default.reject(_err);
|
|
336
356
|
}
|
|
337
357
|
|
|
@@ -413,9 +433,14 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
413
433
|
}
|
|
414
434
|
if (reason instanceof _errors.ConnectionError) {
|
|
415
435
|
return _this7.webex.internal.feature.getFeature('developer', 'web-high-availability').then(function (haMessagingEnabled) {
|
|
436
|
+
var wsUrl = newWSUrl || reason.webSocketUrl;
|
|
416
437
|
if (haMessagingEnabled) {
|
|
417
|
-
_this7.logger.info("".concat(_this7.namespace, ": received a generic connection error, will try to connect to another datacenter. failed, action: 'failed', url: ").concat(
|
|
418
|
-
|
|
438
|
+
_this7.logger.info("".concat(_this7.namespace, ": received a generic connection error, will try to connect to another datacenter. failed, action: 'failed', url: ").concat(wsUrl, " error: ").concat(reason.message));
|
|
439
|
+
if (wsUrl) {
|
|
440
|
+
_this7.logger.info("".concat(_this7.namespace, ": marking ").concat(wsUrl, " as failed due to connection error"));
|
|
441
|
+
return _this7.webex.internal.services.markFailedUrl(wsUrl);
|
|
442
|
+
}
|
|
443
|
+
_this7.logger.info("".concat(_this7.namespace, ": no socket url available to mark as failed due to connection error"));
|
|
419
444
|
}
|
|
420
445
|
return null;
|
|
421
446
|
}).then(function () {
|
|
@@ -450,8 +475,18 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
450
475
|
options = _objectSpread(_objectSpread({}, options), _this8.webex.config.defaultMercuryOptions);
|
|
451
476
|
}
|
|
452
477
|
_this8.logger.info("".concat(_this8.namespace, ": ").concat(logPrefix, " url: ").concat(webSocketUrl));
|
|
478
|
+
|
|
479
|
+
// Store the resolved URL before socket.open(), which may be rewritten by
|
|
480
|
+
// an interceptor (e.g. same-site websocket proxy). On reconnection we need
|
|
481
|
+
// the original catalog-valid URL, not the post-proxy one from socket.url.
|
|
482
|
+
if (!isShutdownSwitchover) {
|
|
483
|
+
_this8.resolvedWebSocketUrl = webSocketUrl;
|
|
484
|
+
}
|
|
453
485
|
return socket.open(webSocketUrl, options).then(function () {
|
|
454
486
|
return webSocketUrl;
|
|
487
|
+
}).catch(function (err) {
|
|
488
|
+
err.webSocketUrl = webSocketUrl;
|
|
489
|
+
return _promise.default.reject(err);
|
|
455
490
|
});
|
|
456
491
|
});
|
|
457
492
|
},
|
|
@@ -469,7 +504,6 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
469
504
|
var onComplete = function onComplete(err) {
|
|
470
505
|
// Clear state flags based on connection type
|
|
471
506
|
if (isShutdownSwitchover) {
|
|
472
|
-
_this9._shutdownSwitchoverInProgress = false;
|
|
473
507
|
_this9._shutdownSwitchoverBackoffCall = undefined;
|
|
474
508
|
} else {
|
|
475
509
|
_this9.connecting = false;
|
|
@@ -543,10 +577,19 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
543
577
|
try {
|
|
544
578
|
this.trigger.apply(this, args);
|
|
545
579
|
} catch (error) {
|
|
546
|
-
|
|
580
|
+
try {
|
|
581
|
+
this.logger.error("".concat(this.namespace, ": error occurred in event handler:"), error, ' with args: ', args);
|
|
582
|
+
} catch (logError) {
|
|
583
|
+
// If even logging fails, just ignore to prevent cascading errors during cleanup
|
|
584
|
+
// eslint-disable-next-line no-console
|
|
585
|
+
console.error('Mercury _emit error handling failed:', logError);
|
|
586
|
+
}
|
|
547
587
|
}
|
|
548
588
|
},
|
|
549
589
|
_getEventHandlers: function _getEventHandlers(eventType) {
|
|
590
|
+
if (!eventType) {
|
|
591
|
+
return [];
|
|
592
|
+
}
|
|
550
593
|
var _eventType$split = eventType.split('.'),
|
|
551
594
|
_eventType$split2 = (0, _slicedToArray2.default)(_eventType$split, 2),
|
|
552
595
|
namespace = _eventType$split2[0],
|
|
@@ -571,14 +614,10 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
571
614
|
try {
|
|
572
615
|
var isActiveSocket = sourceSocket === this.socket;
|
|
573
616
|
var reason = event.reason && event.reason.toLowerCase();
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
} else if (sourceSocket) {
|
|
579
|
-
// Old socket closed - get URL from the closed socket
|
|
580
|
-
socketUrl = sourceSocket.url;
|
|
581
|
-
}
|
|
617
|
+
|
|
618
|
+
// Use the stored resolved URL for reconnection instead of sourceSocket.url,
|
|
619
|
+
// which may have been rewritten by an interceptor to a non-catalog host.
|
|
620
|
+
var socketUrl = this.resolvedWebSocketUrl || sourceSocket && sourceSocket.url;
|
|
582
621
|
if (isActiveSocket) {
|
|
583
622
|
// Only tear down state if the currently active socket closed
|
|
584
623
|
if (this.socket) {
|
|
@@ -677,6 +716,10 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
677
716
|
return _promise.default.resolve();
|
|
678
717
|
}
|
|
679
718
|
var data = envelope.data;
|
|
719
|
+
if (!data || !data.eventType) {
|
|
720
|
+
this._emit('event', envelope);
|
|
721
|
+
return _promise.default.resolve();
|
|
722
|
+
}
|
|
680
723
|
this._applyOverrides(data);
|
|
681
724
|
return this._getEventHandlers(data.eventType).reduce(function (promise, handler) {
|
|
682
725
|
return promise.then(function () {
|
|
@@ -690,9 +733,9 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
690
733
|
});
|
|
691
734
|
}, _promise.default.resolve()).then(function () {
|
|
692
735
|
_this0._emit('event', event.data);
|
|
693
|
-
var
|
|
694
|
-
|
|
695
|
-
namespace =
|
|
736
|
+
var _ref3 = data.eventType ? data.eventType.split('.') : [],
|
|
737
|
+
_ref4 = (0, _slicedToArray2.default)(_ref3, 1),
|
|
738
|
+
namespace = _ref4[0];
|
|
696
739
|
if (namespace === data.eventType) {
|
|
697
740
|
_this0._emit("event:".concat(namespace), envelope);
|
|
698
741
|
} else {
|
|
@@ -713,7 +756,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
713
756
|
this.logger.info("".concat(this.namespace, ": reconnecting"));
|
|
714
757
|
return this.connect(webSocketUrl);
|
|
715
758
|
},
|
|
716
|
-
version: "
|
|
717
|
-
}, (0, _applyDecoratedDescriptor2.default)(_obj, "
|
|
759
|
+
version: "3.12.0-llmrefactor.2"
|
|
760
|
+
}, (0, _applyDecoratedDescriptor2.default)(_obj, "listen", [_dec], (0, _getOwnPropertyDescriptor.default)(_obj, "listen"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "stopListening", [_dec2], (0, _getOwnPropertyDescriptor.default)(_obj, "stopListening"), _obj), _obj));
|
|
718
761
|
var _default = exports.default = Mercury;
|
|
719
762
|
//# sourceMappingURL=mercury.js.map
|