@webex/internal-plugin-mercury 2.60.0 → 2.60.1-next.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/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 +50 -62
- 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 +42 -51
- 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,24 +174,17 @@ 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
|
-
_this4.
|
|
187
|
-
fields: {
|
|
188
|
-
success: true
|
|
189
|
-
},
|
|
190
|
-
tags: {
|
|
191
|
-
action: 'connected',
|
|
192
|
-
url: attemptWSUrl
|
|
193
|
-
}
|
|
194
|
-
});
|
|
187
|
+
_this4.logger.info("".concat(_this4.namespace, ": connected to mercury, success, action: connected, url: ").concat(attemptWSUrl));
|
|
195
188
|
callback();
|
|
196
189
|
return _this4.webex.internal.feature.getFeature('developer', 'web-high-availability').then(function (haMessagingEnabled) {
|
|
197
190
|
if (haMessagingEnabled) {
|
|
@@ -209,18 +202,18 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
209
202
|
retries: _this4.backoffCall.getNumRetries()
|
|
210
203
|
});
|
|
211
204
|
}
|
|
212
|
-
_this4.logger.info(
|
|
205
|
+
_this4.logger.info("".concat(_this4.namespace, ": connection attempt failed"), reason);
|
|
213
206
|
// UnknownResponse is produced by IE for any 4XXX; treated it like a bad
|
|
214
207
|
// web socket url and let WDM handle the token checking
|
|
215
208
|
if (reason instanceof _errors.UnknownResponse) {
|
|
216
|
-
_this4.logger.info(
|
|
209
|
+
_this4.logger.info("".concat(_this4.namespace, ": received unknown response code, refreshing device registration"));
|
|
217
210
|
return _this4.webex.internal.device.refresh().then(function () {
|
|
218
211
|
return callback(reason);
|
|
219
212
|
});
|
|
220
213
|
}
|
|
221
214
|
// NotAuthorized implies expired token
|
|
222
215
|
if (reason instanceof _errors.NotAuthorized) {
|
|
223
|
-
_this4.logger.info(
|
|
216
|
+
_this4.logger.info("".concat(_this4.namespace, ": received authorization error, reauthorizing"));
|
|
224
217
|
return _this4.webex.credentials.refresh({
|
|
225
218
|
force: true
|
|
226
219
|
}).then(function () {
|
|
@@ -236,24 +229,14 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
236
229
|
// BadRequest implies current credentials are for a Service Account
|
|
237
230
|
// Forbidden implies current user is not entitle for Webex
|
|
238
231
|
if (reason instanceof _errors.BadRequest || reason instanceof _errors.Forbidden) {
|
|
239
|
-
_this4.logger.warn(
|
|
232
|
+
_this4.logger.warn("".concat(_this4.namespace, ": received unrecoverable response from mercury"));
|
|
240
233
|
_this4.backoffCall.abort();
|
|
241
234
|
return callback(reason);
|
|
242
235
|
}
|
|
243
236
|
if (reason instanceof _errors.ConnectionError) {
|
|
244
237
|
return _this4.webex.internal.feature.getFeature('developer', 'web-high-availability').then(function (haMessagingEnabled) {
|
|
245
238
|
if (haMessagingEnabled) {
|
|
246
|
-
_this4.logger.info(
|
|
247
|
-
_this4.webex.internal.metrics.submitClientMetrics('web-ha-mercury', {
|
|
248
|
-
fields: {
|
|
249
|
-
success: false
|
|
250
|
-
},
|
|
251
|
-
tags: {
|
|
252
|
-
action: 'failed',
|
|
253
|
-
error: reason.message,
|
|
254
|
-
url: attemptWSUrl
|
|
255
|
-
}
|
|
256
|
-
});
|
|
239
|
+
_this4.logger.info("".concat(_this4.namespace, ": received a generic connection error, will try to connect to another datacenter. failed, action: 'failed', url: ").concat(attemptWSUrl, " error: ").concat(reason.message));
|
|
257
240
|
return _this4.webex.internal.services.markFailedUrl(attemptWSUrl);
|
|
258
241
|
}
|
|
259
242
|
return null;
|
|
@@ -263,7 +246,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
263
246
|
}
|
|
264
247
|
return callback(reason);
|
|
265
248
|
}).catch(function (reason) {
|
|
266
|
-
_this4.logger.error(
|
|
249
|
+
_this4.logger.error("".concat(_this4.namespace, ": failed to handle connection failure"), reason);
|
|
267
250
|
callback(reason);
|
|
268
251
|
});
|
|
269
252
|
},
|
|
@@ -277,7 +260,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
277
260
|
_this5.connecting = false;
|
|
278
261
|
_this5.backoffCall = undefined;
|
|
279
262
|
if (err) {
|
|
280
|
-
_this5.logger.info("
|
|
263
|
+
_this5.logger.info("".concat(_this5.namespace, ": failed to connect after ").concat(call.getNumRetries(), " retries; log statement about next retry was inaccurate; ").concat(err));
|
|
281
264
|
return reject(err);
|
|
282
265
|
}
|
|
283
266
|
_this5.connected = true;
|
|
@@ -287,7 +270,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
287
270
|
|
|
288
271
|
// eslint-disable-next-line prefer-reflect
|
|
289
272
|
call = _backoff.default.call(function (callback) {
|
|
290
|
-
_this5.logger.info("
|
|
273
|
+
_this5.logger.info("".concat(_this5.namespace, ": executing connection attempt ").concat(call.getNumRetries()));
|
|
291
274
|
_this5._attemptConnection(webSocketUrl, callback);
|
|
292
275
|
}, onComplete);
|
|
293
276
|
call.setStrategy(new _backoff.default.ExponentialStrategy({
|
|
@@ -298,31 +281,37 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
298
281
|
call.failAfter(_this5.config.maxRetries);
|
|
299
282
|
}
|
|
300
283
|
call.on('abort', function () {
|
|
301
|
-
_this5.logger.info(
|
|
284
|
+
_this5.logger.info("".concat(_this5.namespace, ": connection aborted"));
|
|
302
285
|
reject(new Error('Mercury Connection Aborted'));
|
|
303
286
|
});
|
|
304
287
|
call.on('callback', function (err) {
|
|
305
288
|
if (err) {
|
|
306
289
|
var number = call.getNumRetries();
|
|
307
290
|
var delay = Math.min(call.strategy_.nextBackoffDelay_, _this5.config.backoffTimeMax);
|
|
308
|
-
_this5.logger.info("
|
|
291
|
+
_this5.logger.info("".concat(_this5.namespace, ": failed to connect; attempting retry ").concat(number + 1, " in ").concat(delay, " ms"));
|
|
309
292
|
/* istanbul ignore if */
|
|
310
293
|
if (process.env.NODE_ENV === 'development') {
|
|
311
|
-
_this5.logger.debug(
|
|
294
|
+
_this5.logger.debug("".concat(_this5.namespace, ": "), err, err.stack);
|
|
312
295
|
}
|
|
313
296
|
return;
|
|
314
297
|
}
|
|
315
|
-
_this5.logger.info(
|
|
298
|
+
_this5.logger.info("".concat(_this5.namespace, ": connected"));
|
|
316
299
|
});
|
|
317
300
|
call.start();
|
|
318
301
|
_this5.backoffCall = call;
|
|
319
302
|
});
|
|
320
303
|
},
|
|
321
304
|
_emit: function _emit() {
|
|
305
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
306
|
+
args[_key2] = arguments[_key2];
|
|
307
|
+
}
|
|
322
308
|
try {
|
|
323
|
-
this.trigger.apply(this,
|
|
309
|
+
this.trigger.apply(this, args);
|
|
324
310
|
} catch (error) {
|
|
325
|
-
this.logger.error(
|
|
311
|
+
this.logger.error("".concat(this.namespace, ": error occurred in event handler"), {
|
|
312
|
+
error: error,
|
|
313
|
+
arguments: args
|
|
314
|
+
});
|
|
326
315
|
}
|
|
327
316
|
},
|
|
328
317
|
_getEventHandlers: function _getEventHandlers(eventType) {
|
|
@@ -334,7 +323,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
334
323
|
if (!this.webex[namespace] && !this.webex.internal[namespace]) {
|
|
335
324
|
return handlers;
|
|
336
325
|
}
|
|
337
|
-
var handlerName = (0,
|
|
326
|
+
var handlerName = (0, _lodash.camelCase)("process_".concat(name, "_event"));
|
|
338
327
|
if ((this.webex[namespace] || this.webex.internal[namespace])[handlerName]) {
|
|
339
328
|
handlers.push({
|
|
340
329
|
name: handlerName,
|
|
@@ -357,19 +346,19 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
357
346
|
switch (event.code) {
|
|
358
347
|
case 1003:
|
|
359
348
|
// metric: disconnect
|
|
360
|
-
this.logger.info("
|
|
349
|
+
this.logger.info("".concat(this.namespace, ": Mercury service rejected last message; will not reconnect: ").concat(event.reason));
|
|
361
350
|
this._emit('offline.permanent', event);
|
|
362
351
|
break;
|
|
363
352
|
case 4000:
|
|
364
353
|
// metric: disconnect
|
|
365
|
-
this.logger.info(
|
|
354
|
+
this.logger.info("".concat(this.namespace, ": socket replaced; will not reconnect"));
|
|
366
355
|
this._emit('offline.replaced', event);
|
|
367
356
|
break;
|
|
368
357
|
case 1001:
|
|
369
358
|
case 1005:
|
|
370
359
|
case 1006:
|
|
371
360
|
case 1011:
|
|
372
|
-
this.logger.info(
|
|
361
|
+
this.logger.info("".concat(this.namespace, ": socket disconnected; reconnecting"));
|
|
373
362
|
this._emit('offline.transient', event);
|
|
374
363
|
this._reconnect(socketUrl);
|
|
375
364
|
// metric: disconnect
|
|
@@ -377,30 +366,30 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
377
366
|
break;
|
|
378
367
|
case 1000:
|
|
379
368
|
if (normalReconnectReasons.includes(reason)) {
|
|
380
|
-
this.logger.info(
|
|
369
|
+
this.logger.info("".concat(this.namespace, ": socket disconnected; reconnecting"));
|
|
381
370
|
this._emit('offline.transient', event);
|
|
382
371
|
this._reconnect(socketUrl);
|
|
383
372
|
// metric: disconnect
|
|
384
373
|
// if (reason === done forced) metric: force closure
|
|
385
374
|
} else {
|
|
386
|
-
this.logger.info(
|
|
375
|
+
this.logger.info("".concat(this.namespace, ": socket disconnected; will not reconnect"));
|
|
387
376
|
this._emit('offline.permanent', event);
|
|
388
377
|
}
|
|
389
378
|
break;
|
|
390
379
|
default:
|
|
391
|
-
this.logger.info(
|
|
380
|
+
this.logger.info("".concat(this.namespace, ": socket disconnected unexpectedly; will not reconnect"));
|
|
392
381
|
// unexpected disconnect
|
|
393
382
|
this._emit('offline.permanent', event);
|
|
394
383
|
}
|
|
395
384
|
} catch (error) {
|
|
396
|
-
this.logger.error(
|
|
385
|
+
this.logger.error("".concat(this.namespace, ": error occurred in close handler"), error);
|
|
397
386
|
}
|
|
398
387
|
},
|
|
399
388
|
_onmessage: function _onmessage(event) {
|
|
400
389
|
var _this6 = this;
|
|
401
390
|
var envelope = event.data;
|
|
402
391
|
if (process.env.ENABLE_MERCURY_LOGGING) {
|
|
403
|
-
this.logger.debug(
|
|
392
|
+
this.logger.debug("".concat(this.namespace, ": message envelope: "), envelope);
|
|
404
393
|
}
|
|
405
394
|
var data = envelope.data;
|
|
406
395
|
this._applyOverrides(data);
|
|
@@ -411,7 +400,7 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
411
400
|
return new _promise.default(function (resolve) {
|
|
412
401
|
return resolve((_this6.webex[namespace] || _this6.webex.internal[namespace])[name](data));
|
|
413
402
|
}).catch(function (reason) {
|
|
414
|
-
return _this6.logger.error("
|
|
403
|
+
return _this6.logger.error("".concat(_this6.namespace, ": error occurred in autowired event handler for ").concat(data.eventType), reason);
|
|
415
404
|
});
|
|
416
405
|
});
|
|
417
406
|
}, _promise.default.resolve()).then(function () {
|
|
@@ -426,15 +415,14 @@ var Mercury = _webexCore.WebexPlugin.extend((_dec = (0, _common.deprecated)('Mer
|
|
|
426
415
|
_this6._emit("event:".concat(data.eventType), envelope);
|
|
427
416
|
}
|
|
428
417
|
}).catch(function (reason) {
|
|
429
|
-
_this6.logger.error(
|
|
418
|
+
_this6.logger.error("".concat(_this6.namespace, ": error occurred processing socket message"), reason);
|
|
430
419
|
});
|
|
431
420
|
},
|
|
432
421
|
_reconnect: function _reconnect(webSocketUrl) {
|
|
433
|
-
this.logger.info(
|
|
422
|
+
this.logger.info("".concat(this.namespace, ": reconnecting"));
|
|
434
423
|
return this.connect(webSocketUrl);
|
|
435
424
|
},
|
|
436
|
-
version: "2.60.
|
|
425
|
+
version: "2.60.1-next.2"
|
|
437
426
|
}, ((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;
|
|
427
|
+
var _default = exports.default = Mercury;
|
|
440
428
|
//# sourceMappingURL=mercury.js.map
|