@webex/internal-plugin-mercury 2.59.8 → 2.60.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.js +1 -2
- package/dist/config.js.map +1 -1
- package/dist/errors.js +8 -11
- package/dist/errors.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mercury.js +51 -43
- package/dist/mercury.js.map +1 -1
- package/dist/socket/socket-base.js +47 -42
- package/dist/socket/socket-base.js.map +1 -1
- package/dist/socket/socket.js +1 -2
- package/dist/socket/socket.js.map +1 -1
- package/dist/socket/socket.shim.js +1 -2
- package/dist/socket/socket.shim.js.map +1 -1
- package/package.json +25 -24
- package/src/mercury.js +41 -32
- package/src/socket/socket-base.js +50 -27
- package/test/integration/spec/webex.js +3 -2
- package/test/unit/spec/mercury.js +13 -4
package/dist/config.js
CHANGED
|
@@ -8,7 +8,7 @@ exports.default = void 0;
|
|
|
8
8
|
/*!
|
|
9
9
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
10
10
|
*/
|
|
11
|
-
var _default = {
|
|
11
|
+
var _default = exports.default = {
|
|
12
12
|
mercury: {
|
|
13
13
|
/**
|
|
14
14
|
* Milliseconds between pings sent up the socket
|
|
@@ -38,5 +38,4 @@ var _default = {
|
|
|
38
38
|
forceCloseDelay: process.env.MERCURY_FORCE_CLOSE_DELAY || 2000
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
-
exports.default = _default;
|
|
42
41
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_default","mercury","pingInterval","process","env","MERCURY_PING_INTERVAL","pongTimeout","MERCURY_PONG_TIMEOUT","backoffTimeMax","MERCURY_BACKOFF_TIME_MAX","backoffTimeReset","MERCURY_BACKOFF_TIME_RESET","forceCloseDelay","MERCURY_FORCE_CLOSE_DELAY"
|
|
1
|
+
{"version":3,"names":["_default","exports","default","mercury","pingInterval","process","env","MERCURY_PING_INTERVAL","pongTimeout","MERCURY_PONG_TIMEOUT","backoffTimeMax","MERCURY_BACKOFF_TIME_MAX","backoffTimeReset","MERCURY_BACKOFF_TIME_RESET","forceCloseDelay","MERCURY_FORCE_CLOSE_DELAY"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n mercury: {\n /**\n * Milliseconds between pings sent up the socket\n * @type {number}\n */\n pingInterval: process.env.MERCURY_PING_INTERVAL || 15000,\n /**\n * Milliseconds to wait for a pong before declaring the connection dead\n * @type {number}\n */\n pongTimeout: process.env.MERCURY_PONG_TIMEOUT || 14000,\n /**\n * Maximum milliseconds between connection attempts\n * @type {Number}\n */\n backoffTimeMax: process.env.MERCURY_BACKOFF_TIME_MAX || 32000,\n /**\n * Initial milliseconds between connection attempts\n * @type {Number}\n */\n backoffTimeReset: process.env.MERCURY_BACKOFF_TIME_RESET || 1000,\n /**\n * Milliseconds to wait for a close frame before declaring the socket dead and\n * discarding it\n * @type {[type]}\n */\n forceCloseDelay: process.env.MERCURY_FORCE_CLOSE_DELAY || 2000,\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAIe;EACbC,OAAO,EAAE;IACP;AACJ;AACA;AACA;IACIC,YAAY,EAAEC,OAAO,CAACC,GAAG,CAACC,qBAAqB,IAAI,KAAK;IACxD;AACJ;AACA;AACA;IACIC,WAAW,EAAEH,OAAO,CAACC,GAAG,CAACG,oBAAoB,IAAI,KAAK;IACtD;AACJ;AACA;AACA;IACIC,cAAc,EAAEL,OAAO,CAACC,GAAG,CAACK,wBAAwB,IAAI,KAAK;IAC7D;AACJ;AACA;AACA;IACIC,gBAAgB,EAAEP,OAAO,CAACC,GAAG,CAACO,0BAA0B,IAAI,IAAI;IAChE;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAET,OAAO,CAACC,GAAG,CAACS,yBAAyB,IAAI;EAC5D;AACF,CAAC"}
|
package/dist/errors.js
CHANGED
|
@@ -16,11 +16,13 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
17
17
|
var _common = require("@webex/common");
|
|
18
18
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
19
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
19
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!
|
|
20
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
21
|
+
*/
|
|
20
22
|
/**
|
|
21
23
|
* Exception thrown when a websocket gets closed
|
|
22
24
|
*/
|
|
23
|
-
var ConnectionError = /*#__PURE__*/function (_Exception) {
|
|
25
|
+
var ConnectionError = exports.ConnectionError = /*#__PURE__*/function (_Exception) {
|
|
24
26
|
(0, _inherits2.default)(ConnectionError, _Exception);
|
|
25
27
|
var _super = _createSuper(ConnectionError);
|
|
26
28
|
function ConnectionError() {
|
|
@@ -52,9 +54,8 @@ var ConnectionError = /*#__PURE__*/function (_Exception) {
|
|
|
52
54
|
/**
|
|
53
55
|
* thrown for CloseCode 4400
|
|
54
56
|
*/
|
|
55
|
-
exports.ConnectionError = ConnectionError;
|
|
56
57
|
(0, _defineProperty2.default)(ConnectionError, "defaultMessage", 'Failed to connect to socket');
|
|
57
|
-
var UnknownResponse = /*#__PURE__*/function (_ConnectionError) {
|
|
58
|
+
var UnknownResponse = exports.UnknownResponse = /*#__PURE__*/function (_ConnectionError) {
|
|
58
59
|
(0, _inherits2.default)(UnknownResponse, _ConnectionError);
|
|
59
60
|
var _super2 = _createSuper(UnknownResponse);
|
|
60
61
|
function UnknownResponse() {
|
|
@@ -66,9 +67,8 @@ var UnknownResponse = /*#__PURE__*/function (_ConnectionError) {
|
|
|
66
67
|
/**
|
|
67
68
|
* thrown for CloseCode 4400
|
|
68
69
|
*/
|
|
69
|
-
exports.UnknownResponse = UnknownResponse;
|
|
70
70
|
(0, _defineProperty2.default)(UnknownResponse, "defaultMessage", 'UnknownResponse is produced by IE when we receive a 4XXX. You probably want to treat this like a NotFound');
|
|
71
|
-
var BadRequest = /*#__PURE__*/function (_ConnectionError2) {
|
|
71
|
+
var BadRequest = exports.BadRequest = /*#__PURE__*/function (_ConnectionError2) {
|
|
72
72
|
(0, _inherits2.default)(BadRequest, _ConnectionError2);
|
|
73
73
|
var _super3 = _createSuper(BadRequest);
|
|
74
74
|
function BadRequest() {
|
|
@@ -80,9 +80,8 @@ var BadRequest = /*#__PURE__*/function (_ConnectionError2) {
|
|
|
80
80
|
/**
|
|
81
81
|
* thrown for CloseCode 4401
|
|
82
82
|
*/
|
|
83
|
-
exports.BadRequest = BadRequest;
|
|
84
83
|
(0, _defineProperty2.default)(BadRequest, "defaultMessage", 'BadRequest usually implies an attempt to use service account credentials');
|
|
85
|
-
var NotAuthorized = /*#__PURE__*/function (_ConnectionError3) {
|
|
84
|
+
var NotAuthorized = exports.NotAuthorized = /*#__PURE__*/function (_ConnectionError3) {
|
|
86
85
|
(0, _inherits2.default)(NotAuthorized, _ConnectionError3);
|
|
87
86
|
var _super4 = _createSuper(NotAuthorized);
|
|
88
87
|
function NotAuthorized() {
|
|
@@ -94,9 +93,8 @@ var NotAuthorized = /*#__PURE__*/function (_ConnectionError3) {
|
|
|
94
93
|
/**
|
|
95
94
|
* thrown for CloseCode 4403
|
|
96
95
|
*/
|
|
97
|
-
exports.NotAuthorized = NotAuthorized;
|
|
98
96
|
(0, _defineProperty2.default)(NotAuthorized, "defaultMessage", 'Please refresh your access token');
|
|
99
|
-
var Forbidden = /*#__PURE__*/function (_ConnectionError4) {
|
|
97
|
+
var Forbidden = exports.Forbidden = /*#__PURE__*/function (_ConnectionError4) {
|
|
100
98
|
(0, _inherits2.default)(Forbidden, _ConnectionError4);
|
|
101
99
|
var _super5 = _createSuper(Forbidden);
|
|
102
100
|
function Forbidden() {
|
|
@@ -110,6 +108,5 @@ var Forbidden = /*#__PURE__*/function (_ConnectionError4) {
|
|
|
110
108
|
// export class NotFound extends ConnectionError {
|
|
111
109
|
// static defaultMessage = `Please refresh your Mercury registration (typically via a WDM refresh)`;
|
|
112
110
|
// }
|
|
113
|
-
exports.Forbidden = Forbidden;
|
|
114
111
|
(0, _defineProperty2.default)(Forbidden, "defaultMessage", 'Forbidden usually implies these credentials are not entitled for Webex');
|
|
115
112
|
//# sourceMappingURL=errors.js.map
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_common","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","ConnectionError","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","key","value","parse","event","length","undefined","_defineProperties","code","reason","Exception","
|
|
1
|
+
{"version":3,"names":["_common","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","ConnectionError","exports","_Exception","_inherits2","_super","_classCallCheck2","_createClass2","key","value","parse","event","length","undefined","_defineProperties","code","reason","Exception","_defineProperty2","UnknownResponse","_ConnectionError","_super2","BadRequest","_ConnectionError2","_super3","NotAuthorized","_ConnectionError3","_super4","Forbidden","_ConnectionError4","_super5"],"sources":["errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\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 {CloseEvent} event\n * @returns {string}\n */\n parse(event = {}) {\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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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_webexCore","_mercury","_interopRequireDefault","_config","_socket","_errors","registerInternalPlugin","Mercury","config","onBeforeLogout","disconnect"],"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 Mercury from './mercury';\nimport config from './config';\n\nregisterInternalPlugin('mercury', Mercury, {\n config,\n onBeforeLogout() {\n return this.disconnect();\n },\n});\n\nexport {default} from './mercury';\nexport {default as Mercury} from './mercury';\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,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AAWA,IAAAK,OAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,IAAAM,OAAA,GAAAN,OAAA;AAxBA;AACA;AACA;;AAWA,IAAAO,iCAAsB,EAAC,SAAS,EAAEC,gBAAO,EAAE;EACzCC,MAAM,EAANA,eAAM;EACNC,cAAc,WAAAA,eAAA,EAAG;IACf,OAAO,IAAI,CAACC,UAAU,
|
|
1
|
+
{"version":3,"names":["require","_webexCore","_mercury","_interopRequireDefault","_config","_socket","_errors","registerInternalPlugin","Mercury","config","onBeforeLogout","disconnect"],"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 Mercury from './mercury';\nimport config from './config';\n\nregisterInternalPlugin('mercury', Mercury, {\n config,\n onBeforeLogout() {\n return this.disconnect();\n },\n});\n\nexport {default} from './mercury';\nexport {default as Mercury} from './mercury';\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,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AAWA,IAAAK,OAAA,GAAAF,sBAAA,CAAAH,OAAA;AAEA,IAAAM,OAAA,GAAAN,OAAA;AAxBA;AACA;AACA;;AAWA,IAAAO,iCAAsB,EAAC,SAAS,EAAEC,gBAAO,EAAE;EACzCC,MAAM,EAANA,eAAM;EACNC,cAAc,WAAAA,eAAA,EAAG;IACf,OAAO,IAAI,CAACC,UAAU,CAAC,CAAC;EAC1B;AACF,CAAC,CAAC"}
|
package/dist/mercury.js
CHANGED
|
@@ -20,18 +20,19 @@ var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-c
|
|
|
20
20
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
21
21
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
22
22
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
|
|
23
|
-
var _set2 = _interopRequireDefault(require("lodash/set"));
|
|
24
|
-
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
25
|
-
var _camelCase2 = _interopRequireDefault(require("lodash/camelCase"));
|
|
26
23
|
var _url = _interopRequireDefault(require("url"));
|
|
27
24
|
var _webexCore = require("@webex/webex-core");
|
|
28
25
|
var _common = require("@webex/common");
|
|
26
|
+
var _lodash = require("lodash");
|
|
29
27
|
var _backoff = _interopRequireDefault(require("backoff"));
|
|
30
28
|
var _socket = _interopRequireDefault(require("./socket"));
|
|
31
29
|
var _errors = require("./errors");
|
|
32
30
|
var _dec, _dec2, _obj;
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
/*!
|
|
32
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
33
|
+
*/
|
|
34
|
+
function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor2(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
35
|
+
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$getOwnPropertyDescriptor2(t, r)); }); } return e; }
|
|
35
36
|
var normalReconnectReasons = ['idle', 'done (forced)', 'pong not received', 'pong mismatch'];
|
|
36
37
|
var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mercury#listen(): Use Mercury#connect() instead'), _dec2 = (0, _common.deprecated)('Mercury#stopListening(): Use Mercury#disconnect() instead'), (_obj = {
|
|
37
38
|
namespace: 'Mercury',
|
|
@@ -58,12 +59,12 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
58
59
|
connect: function connect(webSocketUrl) {
|
|
59
60
|
var _this = this;
|
|
60
61
|
if (this.connected) {
|
|
61
|
-
this.logger.info(
|
|
62
|
+
this.logger.info("".concat(this.namespace, ": already connected, will not connect again"));
|
|
62
63
|
return _promise.default.resolve();
|
|
63
64
|
}
|
|
64
65
|
this.connecting = true;
|
|
65
66
|
return _promise.default.resolve(this.webex.internal.device.registered || this.webex.internal.device.register()).then(function () {
|
|
66
|
-
_this.logger.info(
|
|
67
|
+
_this.logger.info("".concat(_this.namespace, ": connecting"));
|
|
67
68
|
return _this._connectWithBackoff(webSocketUrl);
|
|
68
69
|
});
|
|
69
70
|
},
|
|
@@ -71,14 +72,13 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
71
72
|
var _this2 = this;
|
|
72
73
|
return new _promise.default(function (resolve) {
|
|
73
74
|
if (_this2.backoffCall) {
|
|
74
|
-
_this2.logger.info(
|
|
75
|
+
_this2.logger.info("".concat(_this2.namespace, ": aborting connection"));
|
|
75
76
|
_this2.backoffCall.abort();
|
|
76
77
|
}
|
|
77
78
|
if (_this2.socket) {
|
|
78
79
|
_this2.socket.removeAllListeners('message');
|
|
79
80
|
_this2.once('offline', resolve);
|
|
80
|
-
_this2.socket.close();
|
|
81
|
-
return;
|
|
81
|
+
resolve(_this2.socket.close());
|
|
82
82
|
}
|
|
83
83
|
resolve();
|
|
84
84
|
});
|
|
@@ -100,7 +100,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
100
100
|
}
|
|
101
101
|
var headerKeys = (0, _keys.default)(event.headers);
|
|
102
102
|
headerKeys.forEach(function (keyPath) {
|
|
103
|
-
(0,
|
|
103
|
+
(0, _lodash.set)(event, keyPath, event.headers[keyPath]);
|
|
104
104
|
});
|
|
105
105
|
},
|
|
106
106
|
_prepareUrl: function _prepareUrl(webSocketUrl) {
|
|
@@ -131,7 +131,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
131
131
|
});
|
|
132
132
|
(0, _deleteProperty.default)(webSocketUrl.query, 'bufferStates');
|
|
133
133
|
}
|
|
134
|
-
if ((0,
|
|
134
|
+
if ((0, _lodash.get)(_this3, 'webex.config.device.ephemeral', false)) {
|
|
135
135
|
webSocketUrl.query.multipleConnections = true;
|
|
136
136
|
}
|
|
137
137
|
return _url.default.format(webSocketUrl);
|
|
@@ -158,7 +158,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
158
158
|
webSocketUrl = _ref2[0],
|
|
159
159
|
token = _ref2[1];
|
|
160
160
|
if (!_this4.backoffCall) {
|
|
161
|
-
var msg =
|
|
161
|
+
var msg = "".concat(_this4.namespace, ": prevent socket open when backoffCall no longer defined");
|
|
162
162
|
_this4.logger.info(msg);
|
|
163
163
|
return _promise.default.reject(new Error(msg));
|
|
164
164
|
}
|
|
@@ -174,13 +174,14 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
174
174
|
|
|
175
175
|
// if the consumer has supplied request options use them
|
|
176
176
|
if (_this4.webex.config.defaultMercuryOptions) {
|
|
177
|
-
_this4.logger.info(
|
|
177
|
+
_this4.logger.info("".concat(_this4.namespace, ": setting custom options"));
|
|
178
178
|
options = _objectSpread(_objectSpread({}, options), _this4.webex.config.defaultMercuryOptions);
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
// Set the socket before opening it. This allows a disconnect() to close
|
|
182
182
|
// the socket if it is in the process of being opened.
|
|
183
183
|
_this4.socket = socket;
|
|
184
|
+
_this4.logger.info("".concat(_this4.namespace, " connection url: ").concat(webSocketUrl));
|
|
184
185
|
return socket.open(webSocketUrl, options);
|
|
185
186
|
}).then(function () {
|
|
186
187
|
_this4.webex.internal.metrics.submitClientMetrics('web-ha-mercury', {
|
|
@@ -188,6 +189,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
188
189
|
success: true
|
|
189
190
|
},
|
|
190
191
|
tags: {
|
|
192
|
+
namespace: _this4.namespace,
|
|
191
193
|
action: 'connected',
|
|
192
194
|
url: attemptWSUrl
|
|
193
195
|
}
|
|
@@ -209,18 +211,18 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
209
211
|
retries: _this4.backoffCall.getNumRetries()
|
|
210
212
|
});
|
|
211
213
|
}
|
|
212
|
-
_this4.logger.info(
|
|
214
|
+
_this4.logger.info("".concat(_this4.namespace, ": connection attempt failed"), reason);
|
|
213
215
|
// UnknownResponse is produced by IE for any 4XXX; treated it like a bad
|
|
214
216
|
// web socket url and let WDM handle the token checking
|
|
215
217
|
if (reason instanceof _errors.UnknownResponse) {
|
|
216
|
-
_this4.logger.info(
|
|
218
|
+
_this4.logger.info("".concat(_this4.namespace, ": received unknown response code, refreshing device registration"));
|
|
217
219
|
return _this4.webex.internal.device.refresh().then(function () {
|
|
218
220
|
return callback(reason);
|
|
219
221
|
});
|
|
220
222
|
}
|
|
221
223
|
// NotAuthorized implies expired token
|
|
222
224
|
if (reason instanceof _errors.NotAuthorized) {
|
|
223
|
-
_this4.logger.info(
|
|
225
|
+
_this4.logger.info("".concat(_this4.namespace, ": received authorization error, reauthorizing"));
|
|
224
226
|
return _this4.webex.credentials.refresh({
|
|
225
227
|
force: true
|
|
226
228
|
}).then(function () {
|
|
@@ -236,19 +238,20 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
236
238
|
// BadRequest implies current credentials are for a Service Account
|
|
237
239
|
// Forbidden implies current user is not entitle for Webex
|
|
238
240
|
if (reason instanceof _errors.BadRequest || reason instanceof _errors.Forbidden) {
|
|
239
|
-
_this4.logger.warn(
|
|
241
|
+
_this4.logger.warn("".concat(_this4.namespace, ": received unrecoverable response from mercury"));
|
|
240
242
|
_this4.backoffCall.abort();
|
|
241
243
|
return callback(reason);
|
|
242
244
|
}
|
|
243
245
|
if (reason instanceof _errors.ConnectionError) {
|
|
244
246
|
return _this4.webex.internal.feature.getFeature('developer', 'web-high-availability').then(function (haMessagingEnabled) {
|
|
245
247
|
if (haMessagingEnabled) {
|
|
246
|
-
_this4.logger.info(
|
|
248
|
+
_this4.logger.info("".concat(_this4.namespace, ": received a generic connection error, will try to connect to another datacenter"));
|
|
247
249
|
_this4.webex.internal.metrics.submitClientMetrics('web-ha-mercury', {
|
|
248
250
|
fields: {
|
|
249
251
|
success: false
|
|
250
252
|
},
|
|
251
253
|
tags: {
|
|
254
|
+
namespace: _this4.namespace,
|
|
252
255
|
action: 'failed',
|
|
253
256
|
error: reason.message,
|
|
254
257
|
url: attemptWSUrl
|
|
@@ -263,7 +266,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
263
266
|
}
|
|
264
267
|
return callback(reason);
|
|
265
268
|
}).catch(function (reason) {
|
|
266
|
-
_this4.logger.error(
|
|
269
|
+
_this4.logger.error("".concat(_this4.namespace, ": failed to handle connection failure"), reason);
|
|
267
270
|
callback(reason);
|
|
268
271
|
});
|
|
269
272
|
},
|
|
@@ -277,7 +280,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
277
280
|
_this5.connecting = false;
|
|
278
281
|
_this5.backoffCall = undefined;
|
|
279
282
|
if (err) {
|
|
280
|
-
_this5.logger.info("
|
|
283
|
+
_this5.logger.info("".concat(_this5.namespace, ": failed to connect after ").concat(call.getNumRetries(), " retries; log statement about next retry was inaccurate; ").concat(err));
|
|
281
284
|
return reject(err);
|
|
282
285
|
}
|
|
283
286
|
_this5.connected = true;
|
|
@@ -287,7 +290,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
287
290
|
|
|
288
291
|
// eslint-disable-next-line prefer-reflect
|
|
289
292
|
call = _backoff.default.call(function (callback) {
|
|
290
|
-
_this5.logger.info("
|
|
293
|
+
_this5.logger.info("".concat(_this5.namespace, ": executing connection attempt ").concat(call.getNumRetries()));
|
|
291
294
|
_this5._attemptConnection(webSocketUrl, callback);
|
|
292
295
|
}, onComplete);
|
|
293
296
|
call.setStrategy(new _backoff.default.ExponentialStrategy({
|
|
@@ -298,31 +301,37 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
298
301
|
call.failAfter(_this5.config.maxRetries);
|
|
299
302
|
}
|
|
300
303
|
call.on('abort', function () {
|
|
301
|
-
_this5.logger.info(
|
|
304
|
+
_this5.logger.info("".concat(_this5.namespace, ": connection aborted"));
|
|
302
305
|
reject(new Error('Mercury Connection Aborted'));
|
|
303
306
|
});
|
|
304
307
|
call.on('callback', function (err) {
|
|
305
308
|
if (err) {
|
|
306
309
|
var number = call.getNumRetries();
|
|
307
310
|
var delay = Math.min(call.strategy_.nextBackoffDelay_, _this5.config.backoffTimeMax);
|
|
308
|
-
_this5.logger.info("
|
|
311
|
+
_this5.logger.info("".concat(_this5.namespace, ": failed to connect; attempting retry ").concat(number + 1, " in ").concat(delay, " ms"));
|
|
309
312
|
/* istanbul ignore if */
|
|
310
313
|
if (process.env.NODE_ENV === 'development') {
|
|
311
|
-
_this5.logger.debug(
|
|
314
|
+
_this5.logger.debug("".concat(_this5.namespace, ": "), err, err.stack);
|
|
312
315
|
}
|
|
313
316
|
return;
|
|
314
317
|
}
|
|
315
|
-
_this5.logger.info(
|
|
318
|
+
_this5.logger.info("".concat(_this5.namespace, ": connected"));
|
|
316
319
|
});
|
|
317
320
|
call.start();
|
|
318
321
|
_this5.backoffCall = call;
|
|
319
322
|
});
|
|
320
323
|
},
|
|
321
324
|
_emit: function _emit() {
|
|
325
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
326
|
+
args[_key2] = arguments[_key2];
|
|
327
|
+
}
|
|
322
328
|
try {
|
|
323
|
-
this.trigger.apply(this,
|
|
329
|
+
this.trigger.apply(this, args);
|
|
324
330
|
} catch (error) {
|
|
325
|
-
this.logger.error(
|
|
331
|
+
this.logger.error("".concat(this.namespace, ": error occurred in event handler"), {
|
|
332
|
+
error: error,
|
|
333
|
+
arguments: args
|
|
334
|
+
});
|
|
326
335
|
}
|
|
327
336
|
},
|
|
328
337
|
_getEventHandlers: function _getEventHandlers(eventType) {
|
|
@@ -334,7 +343,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
334
343
|
if (!this.webex[namespace] && !this.webex.internal[namespace]) {
|
|
335
344
|
return handlers;
|
|
336
345
|
}
|
|
337
|
-
var handlerName = (0,
|
|
346
|
+
var handlerName = (0, _lodash.camelCase)("process_".concat(name, "_event"));
|
|
338
347
|
if ((this.webex[namespace] || this.webex.internal[namespace])[handlerName]) {
|
|
339
348
|
handlers.push({
|
|
340
349
|
name: handlerName,
|
|
@@ -357,19 +366,19 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
357
366
|
switch (event.code) {
|
|
358
367
|
case 1003:
|
|
359
368
|
// metric: disconnect
|
|
360
|
-
this.logger.info("
|
|
369
|
+
this.logger.info("".concat(this.namespace, ": Mercury service rejected last message; will not reconnect: ").concat(event.reason));
|
|
361
370
|
this._emit('offline.permanent', event);
|
|
362
371
|
break;
|
|
363
372
|
case 4000:
|
|
364
373
|
// metric: disconnect
|
|
365
|
-
this.logger.info(
|
|
374
|
+
this.logger.info("".concat(this.namespace, ": socket replaced; will not reconnect"));
|
|
366
375
|
this._emit('offline.replaced', event);
|
|
367
376
|
break;
|
|
368
377
|
case 1001:
|
|
369
378
|
case 1005:
|
|
370
379
|
case 1006:
|
|
371
380
|
case 1011:
|
|
372
|
-
this.logger.info(
|
|
381
|
+
this.logger.info("".concat(this.namespace, ": socket disconnected; reconnecting"));
|
|
373
382
|
this._emit('offline.transient', event);
|
|
374
383
|
this._reconnect(socketUrl);
|
|
375
384
|
// metric: disconnect
|
|
@@ -377,30 +386,30 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
377
386
|
break;
|
|
378
387
|
case 1000:
|
|
379
388
|
if (normalReconnectReasons.includes(reason)) {
|
|
380
|
-
this.logger.info(
|
|
389
|
+
this.logger.info("".concat(this.namespace, ": socket disconnected; reconnecting"));
|
|
381
390
|
this._emit('offline.transient', event);
|
|
382
391
|
this._reconnect(socketUrl);
|
|
383
392
|
// metric: disconnect
|
|
384
393
|
// if (reason === done forced) metric: force closure
|
|
385
394
|
} else {
|
|
386
|
-
this.logger.info(
|
|
395
|
+
this.logger.info("".concat(this.namespace, ": socket disconnected; will not reconnect"));
|
|
387
396
|
this._emit('offline.permanent', event);
|
|
388
397
|
}
|
|
389
398
|
break;
|
|
390
399
|
default:
|
|
391
|
-
this.logger.info(
|
|
400
|
+
this.logger.info("".concat(this.namespace, ": socket disconnected unexpectedly; will not reconnect"));
|
|
392
401
|
// unexpected disconnect
|
|
393
402
|
this._emit('offline.permanent', event);
|
|
394
403
|
}
|
|
395
404
|
} catch (error) {
|
|
396
|
-
this.logger.error(
|
|
405
|
+
this.logger.error("".concat(this.namespace, ": error occurred in close handler"), error);
|
|
397
406
|
}
|
|
398
407
|
},
|
|
399
408
|
_onmessage: function _onmessage(event) {
|
|
400
409
|
var _this6 = this;
|
|
401
410
|
var envelope = event.data;
|
|
402
411
|
if (process.env.ENABLE_MERCURY_LOGGING) {
|
|
403
|
-
this.logger.debug(
|
|
412
|
+
this.logger.debug("".concat(this.namespace, ": message envelope: "), envelope);
|
|
404
413
|
}
|
|
405
414
|
var data = envelope.data;
|
|
406
415
|
this._applyOverrides(data);
|
|
@@ -411,7 +420,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
411
420
|
return new _promise.default(function (resolve) {
|
|
412
421
|
return resolve((_this6.webex[namespace] || _this6.webex.internal[namespace])[name](data));
|
|
413
422
|
}).catch(function (reason) {
|
|
414
|
-
return _this6.logger.error("
|
|
423
|
+
return _this6.logger.error("".concat(_this6.namespace, ": error occurred in autowired event handler for ").concat(data.eventType), reason);
|
|
415
424
|
});
|
|
416
425
|
});
|
|
417
426
|
}, _promise.default.resolve()).then(function () {
|
|
@@ -426,15 +435,14 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
426
435
|
_this6._emit("event:".concat(data.eventType), envelope);
|
|
427
436
|
}
|
|
428
437
|
}).catch(function (reason) {
|
|
429
|
-
_this6.logger.error(
|
|
438
|
+
_this6.logger.error("".concat(_this6.namespace, ": error occurred processing socket message"), reason);
|
|
430
439
|
});
|
|
431
440
|
},
|
|
432
441
|
_reconnect: function _reconnect(webSocketUrl) {
|
|
433
|
-
this.logger.info(
|
|
442
|
+
this.logger.info("".concat(this.namespace, ": reconnecting"));
|
|
434
443
|
return this.connect(webSocketUrl);
|
|
435
444
|
},
|
|
436
|
-
version: "2.
|
|
445
|
+
version: "2.60.0-next.1"
|
|
437
446
|
}, ((0, _applyDecoratedDescriptor2.default)(_obj, "connect", [_common.oneFlight], (0, _getOwnPropertyDescriptor.default)(_obj, "connect"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "disconnect", [_common.oneFlight], (0, _getOwnPropertyDescriptor.default)(_obj, "disconnect"), _obj), (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)));
|
|
438
|
-
var _default = Mercury;
|
|
439
|
-
exports.default = _default;
|
|
447
|
+
var _default = exports.default = Mercury;
|
|
440
448
|
//# sourceMappingURL=mercury.js.map
|