@webex/internal-plugin-mobius-socket 0.0.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.
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _socketBase = _interopRequireDefault(require("./socket-base"));
10
+ /* eslint-disable no-restricted-globals */
11
+
12
+ /*!
13
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
14
+ */
15
+
16
+ /* eslint-env browser */
17
+
18
+ _socketBase.default.getWebSocketConstructor = function getWebSocketConstructor() {
19
+ // Grabed from https://github.com/heineiuo/isomorphic-ws/blob/9b977394ac875638c045fd9cf774ed418484b394/browser.js
20
+ var ws;
21
+ if (typeof WebSocket !== 'undefined') {
22
+ ws = WebSocket;
23
+ } else if (typeof MozWebSocket !== 'undefined') {
24
+ // eslint-disable-next-line no-undef
25
+ ws = MozWebSocket;
26
+ } else if (typeof global !== 'undefined') {
27
+ ws = global.WebSocket || global.MozWebSocket;
28
+ } else if (typeof window !== 'undefined') {
29
+ ws = window.WebSocket || window.MozWebSocket;
30
+ } else if (typeof self !== 'undefined') {
31
+ ws = self.WebSocket || self.MozWebSocket;
32
+ }
33
+ return ws;
34
+ };
35
+ var _default = exports.default = _socketBase.default;
36
+ //# sourceMappingURL=socket.shim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_socketBase","_interopRequireDefault","require","Socket","getWebSocketConstructor","ws","WebSocket","MozWebSocket","global","window","self","_default","exports","default"],"sources":["socket.shim.js"],"sourcesContent":["/* eslint-disable no-restricted-globals */\n\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint-env browser */\n\nimport Socket from './socket-base';\n\nSocket.getWebSocketConstructor = function getWebSocketConstructor() {\n // Grabed from https://github.com/heineiuo/isomorphic-ws/blob/9b977394ac875638c045fd9cf774ed418484b394/browser.js\n let ws;\n\n if (typeof WebSocket !== 'undefined') {\n ws = WebSocket;\n } else if (typeof MozWebSocket !== 'undefined') {\n // eslint-disable-next-line no-undef\n ws = MozWebSocket;\n } else if (typeof global !== 'undefined') {\n ws = global.WebSocket || global.MozWebSocket;\n } else if (typeof window !== 'undefined') {\n ws = window.WebSocket || window.MozWebSocket;\n } else if (typeof self !== 'undefined') {\n ws = self.WebSocket || self.MozWebSocket;\n }\n\n return ws;\n};\n\nexport default Socket;\n"],"mappings":";;;;;;;;AAQA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AARA;;AAEA;AACA;AACA;;AAEA;;AAIAC,mBAAM,CAACC,uBAAuB,GAAG,SAASA,uBAAuBA,CAAA,EAAG;EAClE;EACA,IAAIC,EAAE;EAEN,IAAI,OAAOC,SAAS,KAAK,WAAW,EAAE;IACpCD,EAAE,GAAGC,SAAS;EAChB,CAAC,MAAM,IAAI,OAAOC,YAAY,KAAK,WAAW,EAAE;IAC9C;IACAF,EAAE,GAAGE,YAAY;EACnB,CAAC,MAAM,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACxCH,EAAE,GAAGG,MAAM,CAACF,SAAS,IAAIE,MAAM,CAACD,YAAY;EAC9C,CAAC,MAAM,IAAI,OAAOE,MAAM,KAAK,WAAW,EAAE;IACxCJ,EAAE,GAAGI,MAAM,CAACH,SAAS,IAAIG,MAAM,CAACF,YAAY;EAC9C,CAAC,MAAM,IAAI,OAAOG,IAAI,KAAK,WAAW,EAAE;IACtCL,EAAE,GAAGK,IAAI,CAACJ,SAAS,IAAII,IAAI,CAACH,YAAY;EAC1C;EAEA,OAAOF,EAAE;AACX,CAAC;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaV,mBAAM","ignoreList":[]}
package/jest.config.js ADDED
@@ -0,0 +1,3 @@
1
+ const config = require('@webex/jest-config-legacy');
2
+
3
+ module.exports = config;
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@webex/internal-plugin-mobius-socket",
3
+ "description": "",
4
+ "license": "MIT",
5
+ "main": "dist/index.js",
6
+ "devMain": "src/index.js",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/webex/webex-js-sdk.git",
10
+ "directory": "packages/@webex/internal-plugin-mobius-socket"
11
+ },
12
+ "engines": {
13
+ "node": ">=18"
14
+ },
15
+ "browser": {
16
+ "./dist/socket/socket.js": "./dist/socket/socket.shim.js",
17
+ "./src/socket/socket.js": "./src/socket/socket.shim.js"
18
+ },
19
+ "browserify": {
20
+ "transform": [
21
+ "babelify",
22
+ "envify"
23
+ ]
24
+ },
25
+ "devDependencies": {
26
+ "@babel/core": "^7.17.10",
27
+ "@sinonjs/fake-timers": "^6.0.1",
28
+ "@webex/babel-config-legacy": "0.0.0",
29
+ "@webex/eslint-config-legacy": "0.0.0",
30
+ "@webex/jest-config-legacy": "0.0.0",
31
+ "@webex/legacy-tools": "0.0.0",
32
+ "@webex/test-helper-chai": "3.11.0-next.1",
33
+ "@webex/test-helper-mocha": "3.11.0-next.1",
34
+ "@webex/test-helper-mock-webex": "3.11.0-next.1",
35
+ "@webex/test-helper-test-users": "3.11.0-next.1",
36
+ "eslint": "^8.24.0",
37
+ "prettier": "^2.7.1",
38
+ "sinon": "^9.2.4"
39
+ },
40
+ "dependencies": {
41
+ "@webex/common": "3.11.0-next.1",
42
+ "@webex/common-timers": "3.11.0-next.1",
43
+ "@webex/internal-plugin-device": "3.12.0-next.2",
44
+ "@webex/internal-plugin-feature": "3.12.0-next.2",
45
+ "@webex/internal-plugin-metrics": "3.12.0-next.2",
46
+ "@webex/test-helper-chai": "3.11.0-next.1",
47
+ "@webex/test-helper-mocha": "3.11.0-next.1",
48
+ "@webex/test-helper-mock-web-socket": "3.11.0-next.1",
49
+ "@webex/test-helper-mock-webex": "3.11.0-next.1",
50
+ "@webex/test-helper-refresh-callback": "3.11.0-next.1",
51
+ "@webex/test-helper-test-users": "3.11.0-next.1",
52
+ "@webex/webex-core": "3.12.0-next.2",
53
+ "backoff": "^2.5.0",
54
+ "lodash": "^4.17.21",
55
+ "uuid": "^3.3.2",
56
+ "ws": "^8.17.1"
57
+ },
58
+ "scripts": {
59
+ "build": "yarn build:src",
60
+ "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
61
+ "deploy:npm": "yarn npm publish",
62
+ "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
63
+ "test:browser": "webex-legacy-tools test --integration --unit --runner karma",
64
+ "test:style": "eslint ./src/**/*.*",
65
+ "test:unit": "webex-legacy-tools test --unit --runner mocha"
66
+ },
67
+ "version": "0.0.0-next.1"
68
+ }
package/process ADDED
@@ -0,0 +1 @@
1
+ module.exports = {browser: true};
package/src/config.js ADDED
@@ -0,0 +1,40 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ export default {
6
+ mercury: {
7
+ /**
8
+ * Milliseconds between pings sent up the socket
9
+ * @type {number}
10
+ */
11
+ pingInterval: process.env.MERCURY_PING_INTERVAL || 15000,
12
+ /**
13
+ * Milliseconds to wait for a pong before declaring the connection dead
14
+ * @type {number}
15
+ */
16
+ pongTimeout: process.env.MERCURY_PONG_TIMEOUT || 14000,
17
+ /**
18
+ * Maximum milliseconds between connection attempts
19
+ * @type {Number}
20
+ */
21
+ backoffTimeMax: process.env.MERCURY_BACKOFF_TIME_MAX || 32000,
22
+ /**
23
+ * Initial milliseconds between connection attempts
24
+ * @type {Number}
25
+ */
26
+ backoffTimeReset: process.env.MERCURY_BACKOFF_TIME_RESET || 1000,
27
+ /**
28
+ * Milliseconds to wait for a close frame before declaring the socket dead and
29
+ * discarding it
30
+ * @type {[type]}
31
+ */
32
+ forceCloseDelay: process.env.MERCURY_FORCE_CLOSE_DELAY || 2000,
33
+ /**
34
+ * When logging out, use default reason which can trigger a reconnect,
35
+ * or set to something else, like `done (permanent)` to prevent reconnect
36
+ * @type {String}
37
+ */
38
+ beforeLogoutOptionsCloseReason: process.env.MERCURY_LOGOUT_REASON || 'done (forced)',
39
+ },
40
+ };
package/src/errors.js ADDED
@@ -0,0 +1,66 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import {Exception} from '@webex/common';
6
+
7
+ /**
8
+ * Exception thrown when a websocket gets closed
9
+ */
10
+ export class ConnectionError extends Exception {
11
+ static defaultMessage = 'Failed to connect to socket';
12
+
13
+ /**
14
+ * @param {CloseEvent} event
15
+ * @returns {string}
16
+ */
17
+ parse(event = {}) {
18
+ Object.defineProperties(this, {
19
+ code: {
20
+ value: event.code,
21
+ },
22
+ reason: {
23
+ value: event.reason,
24
+ },
25
+ });
26
+
27
+ return event.reason;
28
+ }
29
+ }
30
+
31
+ /**
32
+ * thrown for CloseCode 4400
33
+ */
34
+ export class UnknownResponse extends ConnectionError {
35
+ static defaultMessage =
36
+ 'UnknownResponse is produced by IE when we receive a 4XXX. You probably want to treat this like a NotFound';
37
+ }
38
+
39
+ /**
40
+ * thrown for CloseCode 4400
41
+ */
42
+ export class BadRequest extends ConnectionError {
43
+ static defaultMessage =
44
+ 'BadRequest usually implies an attempt to use service account credentials';
45
+ }
46
+
47
+ /**
48
+ * thrown for CloseCode 4401
49
+ */
50
+ export class NotAuthorized extends ConnectionError {
51
+ static defaultMessage = 'Please refresh your access token';
52
+ }
53
+
54
+ /**
55
+ * thrown for CloseCode 4403
56
+ */
57
+ export class Forbidden extends ConnectionError {
58
+ static defaultMessage = 'Forbidden usually implies these credentials are not entitled for Webex';
59
+ }
60
+
61
+ // /**
62
+ // * thrown for CloseCode 4404
63
+ // */
64
+ // export class NotFound extends ConnectionError {
65
+ // static defaultMessage = `Please refresh your Mercury registration (typically via a WDM refresh)`;
66
+ // }
package/src/index.js ADDED
@@ -0,0 +1,32 @@
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import '@webex/internal-plugin-device';
6
+ import '@webex/internal-plugin-feature';
7
+ import '@webex/internal-plugin-metrics';
8
+
9
+ import {registerInternalPlugin} from '@webex/webex-core';
10
+
11
+ import Mercury from './mercury';
12
+ import config from './config';
13
+
14
+ registerInternalPlugin('mercury', Mercury, {
15
+ config,
16
+ onBeforeLogout() {
17
+ return this.logout();
18
+ },
19
+ });
20
+
21
+ export {default} from './mercury';
22
+ export {default as Mercury} from './mercury';
23
+ export {default as Socket} from './socket';
24
+ export {default as config} from './config';
25
+ export {
26
+ BadRequest,
27
+ ConnectionError,
28
+ Forbidden,
29
+ NotAuthorized,
30
+ UnknownResponse,
31
+ // NotFound
32
+ } from './errors';