@webex/webex-core 3.0.0-bnr.4 → 3.0.0
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/.eslintrc.js +6 -0
- package/babel.config.js +3 -0
- package/dist/config.js +1 -2
- package/dist/config.js.map +1 -1
- package/dist/credentials-config.js +1 -2
- package/dist/credentials-config.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/auth.js +4 -3
- package/dist/interceptors/auth.js.map +1 -1
- package/dist/interceptors/default-options.js +4 -3
- package/dist/interceptors/default-options.js.map +1 -1
- package/dist/interceptors/embargo.js +4 -3
- package/dist/interceptors/embargo.js.map +1 -1
- package/dist/interceptors/network-timing.js +4 -3
- package/dist/interceptors/network-timing.js.map +1 -1
- package/dist/interceptors/payload-transformer.js +4 -3
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/interceptors/rate-limit.js +4 -3
- package/dist/interceptors/rate-limit.js.map +1 -1
- package/dist/interceptors/redirect.js +7 -6
- package/dist/interceptors/redirect.js.map +1 -1
- package/dist/interceptors/request-event.js +9 -8
- package/dist/interceptors/request-event.js.map +1 -1
- package/dist/interceptors/request-logger.js +12 -15
- package/dist/interceptors/request-logger.js.map +1 -1
- package/dist/interceptors/request-timing.js +4 -3
- package/dist/interceptors/request-timing.js.map +1 -1
- package/dist/interceptors/response-logger.js +10 -10
- package/dist/interceptors/response-logger.js.map +1 -1
- package/dist/interceptors/user-agent.js +8 -7
- package/dist/interceptors/user-agent.js.map +1 -1
- package/dist/interceptors/webex-tracking-id.js +4 -3
- package/dist/interceptors/webex-tracking-id.js.map +1 -1
- package/dist/interceptors/webex-user-agent.js +9 -8
- package/dist/interceptors/webex-user-agent.js.map +1 -1
- package/dist/lib/batcher.js +8 -5
- package/dist/lib/batcher.js.map +1 -1
- package/dist/lib/constants.js +13 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/credentials/credentials.js +73 -35
- package/dist/lib/credentials/credentials.js.map +1 -1
- package/dist/lib/credentials/grant-errors.js +5 -5
- package/dist/lib/credentials/grant-errors.js.map +1 -1
- package/dist/lib/credentials/index.js.map +1 -1
- package/dist/lib/credentials/scope.js +26 -5
- package/dist/lib/credentials/scope.js.map +1 -1
- package/dist/lib/credentials/token-collection.js +1 -2
- package/dist/lib/credentials/token-collection.js.map +1 -1
- package/dist/lib/credentials/token.js +14 -10
- package/dist/lib/credentials/token.js.map +1 -1
- package/dist/lib/page.js +1 -2
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/services/constants.js +3 -6
- package/dist/lib/services/constants.js.map +1 -1
- package/dist/lib/services/index.js +2 -2
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/interceptors/server-error.js +6 -5
- package/dist/lib/services/interceptors/server-error.js.map +1 -1
- package/dist/lib/services/interceptors/service.js +8 -5
- package/dist/lib/services/interceptors/service.js.map +1 -1
- package/dist/lib/services/metrics.js +1 -2
- package/dist/lib/services/metrics.js.map +1 -1
- package/dist/lib/services/service-catalog.js +5 -5
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/service-fed-ramp.js +1 -2
- package/dist/lib/services/service-fed-ramp.js.map +1 -1
- package/dist/lib/services/service-host.js +1 -2
- package/dist/lib/services/service-host.js.map +1 -1
- package/dist/lib/services/service-registry.js +3 -4
- package/dist/lib/services/service-registry.js.map +1 -1
- package/dist/lib/services/service-state.js +1 -2
- package/dist/lib/services/service-state.js.map +1 -1
- package/dist/lib/services/service-url.js +1 -2
- package/dist/lib/services/service-url.js.map +1 -1
- package/dist/lib/services/services.js +56 -13
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/stateless-webex-plugin.js +1 -2
- package/dist/lib/stateless-webex-plugin.js.map +1 -1
- package/dist/lib/storage/decorators.js +18 -16
- package/dist/lib/storage/decorators.js.map +1 -1
- package/dist/lib/storage/errors.js +5 -5
- package/dist/lib/storage/errors.js.map +1 -1
- package/dist/lib/storage/index.js.map +1 -1
- package/dist/lib/storage/make-webex-plugin-store.js +8 -10
- package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
- package/dist/lib/storage/make-webex-store.js.map +1 -1
- package/dist/lib/storage/memory-store-adapter.js +1 -2
- package/dist/lib/storage/memory-store-adapter.js.map +1 -1
- package/dist/lib/webex-core-plugin-mixin.js +13 -14
- package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-http-error.js +4 -3
- package/dist/lib/webex-http-error.js.map +1 -1
- package/dist/lib/webex-internal-core-plugin-mixin.js +13 -14
- package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-plugin.js +5 -8
- package/dist/lib/webex-plugin.js.map +1 -1
- package/dist/plugins/logger.js +2 -3
- package/dist/plugins/logger.js.map +1 -1
- package/dist/webex-core.js +37 -38
- package/dist/webex-core.js.map +1 -1
- package/dist/webex-internal-core.js +1 -2
- package/dist/webex-internal-core.js.map +1 -1
- package/jest.config.js +3 -0
- package/package.json +33 -17
- package/process +1 -0
- package/src/lib/constants.js +6 -0
- package/src/lib/credentials/credentials.js +82 -40
- package/src/lib/credentials/scope.js +24 -5
- package/src/lib/credentials/token.js +9 -1
- package/src/lib/services/interceptors/server-error.js +1 -1
- package/src/lib/services/interceptors/service.js +2 -2
- package/src/lib/services/service-catalog.js +3 -1
- package/src/lib/services/services.js +46 -0
- package/src/webex-core.js +13 -1
- package/test/integration/spec/credentials/credentials.js +6 -3
- package/test/integration/spec/unit-browser/auth.js +93 -0
- package/test/integration/spec/unit-browser/token.js +122 -0
- package/test/unit/spec/_setup.js +6 -0
- package/test/unit/spec/credentials/credentials.js +181 -24
- package/test/unit/spec/credentials/scope.js +80 -0
- package/test/unit/spec/credentials/token.js +11 -1
- package/test/unit/spec/interceptors/auth.js +4 -1
- package/test/unit/spec/interceptors/embargo.js +8 -8
- package/test/unit/spec/interceptors/webex-user-agent.js +6 -6
- package/test/unit/spec/lib/page.js +3 -3
- package/test/unit/spec/services/interceptors/server-error.js +5 -5
- package/test/unit/spec/services/interceptors/service.js +21 -14
- package/test/unit/spec/services/service-catalog.js +24 -12
- package/test/unit/spec/services/service-host.js +3 -3
- package/test/unit/spec/services/service-registry.js +34 -44
- package/test/unit/spec/services/service-state.js +1 -1
- package/test/unit/spec/services/service-url.js +2 -2
- package/test/unit/spec/services/services.js +10 -4
- package/test/unit/spec/webex-core.js +12 -2
- package/test/unit/spec/webex-internal-core.js +0 -10
- package/dist/types/config.d.ts +0 -39
- package/dist/types/credentials-config.d.ts +0 -2
- package/dist/types/index.d.ts +0 -24
- package/dist/types/interceptors/auth.d.ts +0 -43
- package/dist/types/interceptors/default-options.d.ts +0 -31
- package/dist/types/interceptors/embargo.d.ts +0 -16
- package/dist/types/interceptors/network-timing.d.ts +0 -30
- package/dist/types/interceptors/payload-transformer.d.ts +0 -30
- package/dist/types/interceptors/rate-limit.d.ts +0 -61
- package/dist/types/interceptors/redirect.d.ts +0 -22
- package/dist/types/interceptors/request-event.d.ts +0 -36
- package/dist/types/interceptors/request-logger.d.ts +0 -22
- package/dist/types/interceptors/request-timing.d.ts +0 -36
- package/dist/types/interceptors/response-logger.d.ts +0 -30
- package/dist/types/interceptors/user-agent.d.ts +0 -38
- package/dist/types/interceptors/webex-tracking-id.d.ts +0 -26
- package/dist/types/interceptors/webex-user-agent.d.ts +0 -22
- package/dist/types/lib/batcher.d.ts +0 -6
- package/dist/types/lib/credentials/credentials.d.ts +0 -5
- package/dist/types/lib/credentials/grant-errors.d.ts +0 -57
- package/dist/types/lib/credentials/index.d.ts +0 -4
- package/dist/types/lib/credentials/scope.d.ts +0 -16
- package/dist/types/lib/credentials/token-collection.d.ts +0 -2
- package/dist/types/lib/credentials/token.d.ts +0 -5
- package/dist/types/lib/page.d.ts +0 -76
- package/dist/types/lib/services/constants.d.ts +0 -6
- package/dist/types/lib/services/index.d.ts +0 -10
- package/dist/types/lib/services/interceptors/server-error.d.ts +0 -16
- package/dist/types/lib/services/interceptors/service.d.ts +0 -37
- package/dist/types/lib/services/metrics.d.ts +0 -4
- package/dist/types/lib/services/service-catalog.d.ts +0 -5
- package/dist/types/lib/services/service-fed-ramp.d.ts +0 -5
- package/dist/types/lib/services/service-host.d.ts +0 -217
- package/dist/types/lib/services/service-registry.d.ts +0 -271
- package/dist/types/lib/services/service-state.d.ts +0 -46
- package/dist/types/lib/services/service-url.d.ts +0 -5
- package/dist/types/lib/services/services.d.ts +0 -5
- package/dist/types/lib/stateless-webex-plugin.d.ts +0 -48
- package/dist/types/lib/storage/decorators.d.ts +0 -15
- package/dist/types/lib/storage/errors.d.ts +0 -10
- package/dist/types/lib/storage/index.d.ts +0 -5
- package/dist/types/lib/storage/make-webex-plugin-store.d.ts +0 -8
- package/dist/types/lib/storage/make-webex-store.d.ts +0 -48
- package/dist/types/lib/storage/memory-store-adapter.d.ts +0 -18
- package/dist/types/lib/webex-core-plugin-mixin.d.ts +0 -8
- package/dist/types/lib/webex-http-error.d.ts +0 -12
- package/dist/types/lib/webex-internal-core-plugin-mixin.d.ts +0 -8
- package/dist/types/lib/webex-plugin.d.ts +0 -5
- package/dist/types/plugins/logger.d.ts +0 -2
- package/dist/types/webex-core.d.ts +0 -31
- package/dist/types/webex-internal-core.d.ts +0 -7
package/dist/lib/webex-plugin.js
CHANGED
|
@@ -9,11 +9,9 @@ exports.default = void 0;
|
|
|
9
9
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
10
10
|
var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
|
|
11
11
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
12
|
-
var _omit2 = _interopRequireDefault(require("lodash/omit"));
|
|
13
|
-
var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
|
|
14
|
-
var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
|
|
15
12
|
var _util = _interopRequireDefault(require("util"));
|
|
16
13
|
var _ampersandState = _interopRequireDefault(require("ampersand-state"));
|
|
14
|
+
var _lodash = require("lodash");
|
|
17
15
|
var _storage = require("./storage");
|
|
18
16
|
/*!
|
|
19
17
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
@@ -129,7 +127,7 @@ var WebexPlugin = _ampersandState.default.extend({
|
|
|
129
127
|
|
|
130
128
|
// HACK to deal with the fact that AmpersandState#dataTypes#set is a pure
|
|
131
129
|
// function.
|
|
132
|
-
this._dataTypes = (0,
|
|
130
|
+
this._dataTypes = (0, _lodash.cloneDeep)(this._dataTypes);
|
|
133
131
|
(0, _keys.default)(this._dataTypes).forEach(function (key) {
|
|
134
132
|
if (_this2._dataTypes[key].set) {
|
|
135
133
|
_this2._dataTypes[key].set = _this2._dataTypes[key].set.bind(_this2);
|
|
@@ -152,7 +150,7 @@ var WebexPlugin = _ampersandState.default.extend({
|
|
|
152
150
|
* @returns {Object}
|
|
153
151
|
*/
|
|
154
152
|
inspect: function inspect(depth) {
|
|
155
|
-
return _util.default.inspect((0,
|
|
153
|
+
return _util.default.inspect((0, _lodash.omit)(this.serialize({
|
|
156
154
|
props: true,
|
|
157
155
|
session: true,
|
|
158
156
|
derived: true
|
|
@@ -195,7 +193,7 @@ var WebexPlugin = _ampersandState.default.extend({
|
|
|
195
193
|
*/
|
|
196
194
|
_filterSetParameters: function _filterSetParameters(key, value, options) {
|
|
197
195
|
var attrs;
|
|
198
|
-
if ((0,
|
|
196
|
+
if ((0, _lodash.isObject)(key) || key === null) {
|
|
199
197
|
attrs = key;
|
|
200
198
|
options = value;
|
|
201
199
|
} else {
|
|
@@ -206,6 +204,5 @@ var WebexPlugin = _ampersandState.default.extend({
|
|
|
206
204
|
return [attrs, options];
|
|
207
205
|
}
|
|
208
206
|
});
|
|
209
|
-
var _default = WebexPlugin;
|
|
210
|
-
exports.default = _default;
|
|
207
|
+
var _default = exports.default = WebexPlugin;
|
|
211
208
|
//# sourceMappingURL=webex-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebexPlugin","AmpState","extend","derived","boundedStorage","deps","fn","makeWebexPluginStore","unboundedStorage","config","cache","webex","namespace","getNamespace","toLowerCase","logger","console","parent","collection","Error","session","type","ready","default","clear","options","attributes","forEach","key","unset","_children","_collections","reset","initialize","args","prototype","_dataTypes","set","bind","on","model","trigger","inspect","depth","util","serialize","props","request","upload","when","eventName","rest","length","resolve","once","_filterSetParameters","value","attrs"],"sources":["webex-plugin.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\nimport AmpState from 'ampersand-state';\nimport {cloneDeep, isObject, omit} from 'lodash';\n\nimport {makeWebexPluginStore} from './storage';\n\n/**\n * @class\n */\nconst WebexPlugin = AmpState.extend({\n derived: {\n boundedStorage: {\n deps: [],\n fn() {\n return makeWebexPluginStore('bounded', this);\n },\n },\n unboundedStorage: {\n deps: [],\n fn() {\n return makeWebexPluginStore('unbounded', this);\n },\n },\n config: {\n // figure out why caching config breaks the refresh integration test\n // but not the refresh automation test.\n cache: false,\n deps: ['webex', 'webex.config'],\n fn() {\n if (this.webex && this.webex.config) {\n const namespace = this.getNamespace();\n\n if (namespace) {\n return this.webex.config[namespace.toLowerCase()];\n }\n\n return this.webex.config;\n }\n\n return {};\n },\n },\n\n logger: {\n deps: ['webex', 'webex.logger'],\n fn() {\n return this.webex.logger || console;\n },\n },\n\n webex: {\n deps: ['parent'],\n fn() {\n if (!this.parent && !this.collection) {\n throw new Error(\n 'Cannot determine `this.webex` without `this.parent` or `this.collection`. Please initialize `this` via `children` or `collection` or set `this.parent` manually'\n );\n }\n\n /* eslint consistent-this: [0] */\n let parent = this;\n\n while (parent.parent || parent.collection) {\n parent = parent.parent || parent.collection;\n }\n\n return parent;\n },\n },\n },\n\n session: {\n parent: {\n type: 'any',\n },\n /**\n * Indicates this plugin is ready to be used. Defaults to true but can be\n * overridden by plugins as appropriate. Used by {@link WebexCore#read}\n * @instance\n * @memberof WebexPlugin\n * @type {boolean}\n */\n ready: {\n default: true,\n type: 'boolean',\n },\n },\n\n /**\n * Overrides AmpersandState#clear to make sure we never unset `parent` and\n * recursively visits children/collections.\n * @instance\n * @memberof WebexPlugin\n * @param {Object} options\n * @returns {WebexPlugin}\n */\n clear(options) {\n Object.keys(this.attributes).forEach((key) => {\n if (key !== 'parent') {\n this.unset(key, options);\n }\n });\n\n Object.keys(this._children).forEach((key) => {\n this[key].clear();\n });\n\n Object.keys(this._collections).forEach((key) => {\n this[key].reset();\n });\n\n return this;\n },\n\n /**\n * Initializer\n * @private\n * @param {Object} attrs\n * @param {Object} options\n * @returns {undefined}\n */\n initialize(...args) {\n Reflect.apply(AmpState.prototype.initialize, this, args);\n\n // HACK to deal with the fact that AmpersandState#dataTypes#set is a pure\n // function.\n this._dataTypes = cloneDeep(this._dataTypes);\n Object.keys(this._dataTypes).forEach((key) => {\n if (this._dataTypes[key].set) {\n this._dataTypes[key].set = this._dataTypes[key].set.bind(this);\n }\n });\n // END HACK\n\n // Propagate change:[attribute] events from children\n this.on('change', (model, options) => {\n if (this.parent) {\n this.parent.trigger(\n `change:${this.getNamespace().toLowerCase()}`,\n this.parent,\n this,\n options\n );\n }\n });\n },\n\n /**\n * @instance\n * @memberof WebexPlugin\n * @param {number} depth\n * @private\n * @returns {Object}\n */\n inspect(depth) {\n return util.inspect(\n omit(\n this.serialize({\n props: true,\n session: true,\n derived: true,\n }),\n 'boundedStorage',\n 'unboundedStorage',\n 'config',\n 'logger',\n 'webex',\n 'parent'\n ),\n {depth}\n );\n },\n\n request(...args) {\n return this.webex.request(...args);\n },\n\n upload(...args) {\n return this.webex.upload(...args);\n },\n\n when(eventName, ...rest) {\n if (rest && rest.length > 0) {\n throw new Error('#when() does not accept a callback, you must attach to its promise');\n }\n\n return new Promise((resolve) => {\n this.once(eventName, (...args) => resolve(args));\n });\n },\n\n /**\n * Helper function for dealing with both forms of {@link AmpersandState#set()}\n * @param {string} key\n * @param {mixed} value\n * @param {Object} options\n * @private\n * @returns {Array<Object, Object>}\n */\n _filterSetParameters(key, value, options) {\n let attrs;\n\n if (isObject(key) || key === null) {\n attrs = key;\n options = value;\n } else {\n attrs = {};\n attrs[key] = value;\n }\n\n options = options || {};\n\n return [attrs, options];\n },\n});\n\nexport default WebexPlugin;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_util","_interopRequireDefault","require","_ampersandState","_lodash","_storage","WebexPlugin","AmpState","extend","derived","boundedStorage","deps","fn","makeWebexPluginStore","unboundedStorage","config","cache","webex","namespace","getNamespace","toLowerCase","logger","console","parent","collection","Error","session","type","ready","default","clear","options","_this","_keys","attributes","forEach","key","unset","_children","_collections","reset","initialize","_this2","_len","arguments","length","args","Array","_key","_apply","prototype","_dataTypes","cloneDeep","set","bind","on","model","trigger","concat","inspect","depth","util","omit","serialize","props","request","_this$webex","apply","upload","_this$webex2","when","eventName","_this3","_len2","rest","_key2","_promise","resolve","once","_len3","_key3","_filterSetParameters","value","attrs","isObject","_default","exports"],"sources":["webex-plugin.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\nimport AmpState from 'ampersand-state';\nimport {cloneDeep, isObject, omit} from 'lodash';\n\nimport {makeWebexPluginStore} from './storage';\n\n/**\n * @class\n */\nconst WebexPlugin = AmpState.extend({\n derived: {\n boundedStorage: {\n deps: [],\n fn() {\n return makeWebexPluginStore('bounded', this);\n },\n },\n unboundedStorage: {\n deps: [],\n fn() {\n return makeWebexPluginStore('unbounded', this);\n },\n },\n config: {\n // figure out why caching config breaks the refresh integration test\n // but not the refresh automation test.\n cache: false,\n deps: ['webex', 'webex.config'],\n fn() {\n if (this.webex && this.webex.config) {\n const namespace = this.getNamespace();\n\n if (namespace) {\n return this.webex.config[namespace.toLowerCase()];\n }\n\n return this.webex.config;\n }\n\n return {};\n },\n },\n\n logger: {\n deps: ['webex', 'webex.logger'],\n fn() {\n return this.webex.logger || console;\n },\n },\n\n webex: {\n deps: ['parent'],\n fn() {\n if (!this.parent && !this.collection) {\n throw new Error(\n 'Cannot determine `this.webex` without `this.parent` or `this.collection`. Please initialize `this` via `children` or `collection` or set `this.parent` manually'\n );\n }\n\n /* eslint consistent-this: [0] */\n let parent = this;\n\n while (parent.parent || parent.collection) {\n parent = parent.parent || parent.collection;\n }\n\n return parent;\n },\n },\n },\n\n session: {\n parent: {\n type: 'any',\n },\n /**\n * Indicates this plugin is ready to be used. Defaults to true but can be\n * overridden by plugins as appropriate. Used by {@link WebexCore#read}\n * @instance\n * @memberof WebexPlugin\n * @type {boolean}\n */\n ready: {\n default: true,\n type: 'boolean',\n },\n },\n\n /**\n * Overrides AmpersandState#clear to make sure we never unset `parent` and\n * recursively visits children/collections.\n * @instance\n * @memberof WebexPlugin\n * @param {Object} options\n * @returns {WebexPlugin}\n */\n clear(options) {\n Object.keys(this.attributes).forEach((key) => {\n if (key !== 'parent') {\n this.unset(key, options);\n }\n });\n\n Object.keys(this._children).forEach((key) => {\n this[key].clear();\n });\n\n Object.keys(this._collections).forEach((key) => {\n this[key].reset();\n });\n\n return this;\n },\n\n /**\n * Initializer\n * @private\n * @param {Object} attrs\n * @param {Object} options\n * @returns {undefined}\n */\n initialize(...args) {\n Reflect.apply(AmpState.prototype.initialize, this, args);\n\n // HACK to deal with the fact that AmpersandState#dataTypes#set is a pure\n // function.\n this._dataTypes = cloneDeep(this._dataTypes);\n Object.keys(this._dataTypes).forEach((key) => {\n if (this._dataTypes[key].set) {\n this._dataTypes[key].set = this._dataTypes[key].set.bind(this);\n }\n });\n // END HACK\n\n // Propagate change:[attribute] events from children\n this.on('change', (model, options) => {\n if (this.parent) {\n this.parent.trigger(\n `change:${this.getNamespace().toLowerCase()}`,\n this.parent,\n this,\n options\n );\n }\n });\n },\n\n /**\n * @instance\n * @memberof WebexPlugin\n * @param {number} depth\n * @private\n * @returns {Object}\n */\n inspect(depth) {\n return util.inspect(\n omit(\n this.serialize({\n props: true,\n session: true,\n derived: true,\n }),\n 'boundedStorage',\n 'unboundedStorage',\n 'config',\n 'logger',\n 'webex',\n 'parent'\n ),\n {depth}\n );\n },\n\n request(...args) {\n return this.webex.request(...args);\n },\n\n upload(...args) {\n return this.webex.upload(...args);\n },\n\n when(eventName, ...rest) {\n if (rest && rest.length > 0) {\n throw new Error('#when() does not accept a callback, you must attach to its promise');\n }\n\n return new Promise((resolve) => {\n this.once(eventName, (...args) => resolve(args));\n });\n },\n\n /**\n * Helper function for dealing with both forms of {@link AmpersandState#set()}\n * @param {string} key\n * @param {mixed} value\n * @param {Object} options\n * @private\n * @returns {Array<Object, Object>}\n */\n _filterSetParameters(key, value, options) {\n let attrs;\n\n if (isObject(key) || key === null) {\n attrs = key;\n options = value;\n } else {\n attrs = {};\n attrs[key] = value;\n }\n\n options = options || {};\n\n return [attrs, options];\n },\n});\n\nexport default WebexPlugin;\n"],"mappings":"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"}
|
package/dist/plugins/logger.js
CHANGED
|
@@ -57,9 +57,8 @@ var Logger = _webexPlugin.default.extend({
|
|
|
57
57
|
info: wrapConsoleMethod('info'),
|
|
58
58
|
debug: wrapConsoleMethod('debug'),
|
|
59
59
|
trace: wrapConsoleMethod('trace'),
|
|
60
|
-
version: "3.0.0
|
|
60
|
+
version: "3.0.0"
|
|
61
61
|
});
|
|
62
62
|
(0, _webexCore.registerPlugin)('logger', Logger);
|
|
63
|
-
var _default = Logger;
|
|
64
|
-
exports.default = _default;
|
|
63
|
+
var _default = exports.default = Logger;
|
|
65
64
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["precedence","error","warn","info","debug","trace","wrapConsoleMethod","level","impls","slice","console","pop","wrappedConsoleMethod","args","process","env","NODE_ENV","webex","internal","device","url","unshift","Logger","WebexPlugin","extend","namespace","log","registerPlugin"],"sources":["logger.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport WebexPlugin from '../lib/webex-plugin';\nimport {registerPlugin} from '../webex-core';\n\nconst precedence = {\n error: ['log'],\n warn: ['error', 'log'],\n info: ['log'],\n debug: ['info', 'log'],\n trace: ['debug', 'info', 'log'],\n};\n\n/**\n * Assigns the specified console method to Logger; uses `precedence` to fallback\n * to other console methods if the current environment doesn't provide the\n * specified level.\n * @param {string} level\n * @returns {Function}\n */\nfunction wrapConsoleMethod(level) {\n /* eslint no-console: [0] */\n let impls = precedence[level];\n\n if (impls) {\n impls = impls.slice();\n while (!console[level]) {\n level = impls.pop();\n }\n }\n\n return function wrappedConsoleMethod(...args) {\n /* eslint no-invalid-this: [0] */\n /* istanbul ignore if */\n if (\n process.env.NODE_ENV === 'test' &&\n this.webex &&\n this.webex.internal.device &&\n this.webex.internal.device.url\n ) {\n args.unshift(this.webex.internal.device.url.slice(-3));\n }\n console[level](...args);\n };\n}\n\nconst Logger = WebexPlugin.extend({\n namespace: 'Logger',\n error: wrapConsoleMethod('error'),\n warn: wrapConsoleMethod('warn'),\n log: wrapConsoleMethod('log'),\n info: wrapConsoleMethod('info'),\n debug: wrapConsoleMethod('debug'),\n trace: wrapConsoleMethod('trace'),\n});\n\nregisterPlugin('logger', Logger);\n\nexport default Logger;\n"],"mappings":";;;;;;;;AAGA;AACA;AAJA;AACA;AACA;;AAIA,
|
|
1
|
+
{"version":3,"names":["_webexPlugin","_interopRequireDefault","require","_webexCore","precedence","error","warn","info","debug","trace","wrapConsoleMethod","level","impls","slice","console","pop","wrappedConsoleMethod","_console","_len","arguments","length","args","Array","_key","process","env","NODE_ENV","webex","internal","device","url","unshift","apply","Logger","WebexPlugin","extend","namespace","log","version","registerPlugin","_default","exports","default"],"sources":["logger.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport WebexPlugin from '../lib/webex-plugin';\nimport {registerPlugin} from '../webex-core';\n\nconst precedence = {\n error: ['log'],\n warn: ['error', 'log'],\n info: ['log'],\n debug: ['info', 'log'],\n trace: ['debug', 'info', 'log'],\n};\n\n/**\n * Assigns the specified console method to Logger; uses `precedence` to fallback\n * to other console methods if the current environment doesn't provide the\n * specified level.\n * @param {string} level\n * @returns {Function}\n */\nfunction wrapConsoleMethod(level) {\n /* eslint no-console: [0] */\n let impls = precedence[level];\n\n if (impls) {\n impls = impls.slice();\n while (!console[level]) {\n level = impls.pop();\n }\n }\n\n return function wrappedConsoleMethod(...args) {\n /* eslint no-invalid-this: [0] */\n /* istanbul ignore if */\n if (\n process.env.NODE_ENV === 'test' &&\n this.webex &&\n this.webex.internal.device &&\n this.webex.internal.device.url\n ) {\n args.unshift(this.webex.internal.device.url.slice(-3));\n }\n console[level](...args);\n };\n}\n\nconst Logger = WebexPlugin.extend({\n namespace: 'Logger',\n error: wrapConsoleMethod('error'),\n warn: wrapConsoleMethod('warn'),\n log: wrapConsoleMethod('log'),\n info: wrapConsoleMethod('info'),\n debug: wrapConsoleMethod('debug'),\n trace: wrapConsoleMethod('trace'),\n});\n\nregisterPlugin('logger', Logger);\n\nexport default Logger;\n"],"mappings":";;;;;;;;AAGA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,IAAME,UAAU,GAAG;EACjBC,KAAK,EAAE,CAAC,KAAK,CAAC;EACdC,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;EACtBC,IAAI,EAAE,CAAC,KAAK,CAAC;EACbC,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;EACtBC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK;AAChC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACC,KAAK,EAAE;EAChC;EACA,IAAIC,KAAK,GAAGR,UAAU,CAACO,KAAK,CAAC;EAE7B,IAAIC,KAAK,EAAE;IACTA,KAAK,GAAGA,KAAK,CAACC,KAAK,CAAC,CAAC;IACrB,OAAO,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;MACtBA,KAAK,GAAGC,KAAK,CAACG,GAAG,CAAC,CAAC;IACrB;EACF;EAEA,OAAO,SAASC,oBAAoBA,CAAA,EAAU;IAAA,IAAAC,QAAA;IAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAANC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAC1C;IACA;IACA,IACEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,IAC/B,IAAI,CAACC,KAAK,IACV,IAAI,CAACA,KAAK,CAACC,QAAQ,CAACC,MAAM,IAC1B,IAAI,CAACF,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACC,GAAG,EAC9B;MACAT,IAAI,CAACU,OAAO,CAAC,IAAI,CAACJ,KAAK,CAACC,QAAQ,CAACC,MAAM,CAACC,GAAG,CAACjB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD;IACA,CAAAI,QAAA,GAAAH,OAAO,EAACH,KAAK,CAAC,CAAAqB,KAAA,CAAAf,QAAA,EAAII,IAAI,CAAC;EACzB,CAAC;AACH;AAEA,IAAMY,MAAM,GAAGC,oBAAW,CAACC,MAAM,CAAC;EAChCC,SAAS,EAAE,QAAQ;EACnB/B,KAAK,EAAEK,iBAAiB,CAAC,OAAO,CAAC;EACjCJ,IAAI,EAAEI,iBAAiB,CAAC,MAAM,CAAC;EAC/B2B,GAAG,EAAE3B,iBAAiB,CAAC,KAAK,CAAC;EAC7BH,IAAI,EAAEG,iBAAiB,CAAC,MAAM,CAAC;EAC/BF,KAAK,EAAEE,iBAAiB,CAAC,OAAO,CAAC;EACjCD,KAAK,EAAEC,iBAAiB,CAAC,OAAO,CAAC;EAAA4B,OAAA;AACnC,CAAC,CAAC;AAEF,IAAAC,yBAAc,EAAC,QAAQ,EAAEN,MAAM,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAElBT,MAAM"}
|
package/dist/webex-core.js
CHANGED
|
@@ -24,19 +24,11 @@ var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-c
|
|
|
24
24
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
25
25
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
26
26
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
|
|
27
|
-
var _unset2 = _interopRequireDefault(require("lodash/unset"));
|
|
28
|
-
var _set2 = _interopRequireDefault(require("lodash/set"));
|
|
29
|
-
var _omit2 = _interopRequireDefault(require("lodash/omit"));
|
|
30
|
-
var _merge2 = _interopRequireDefault(require("lodash/merge"));
|
|
31
|
-
var _last2 = _interopRequireDefault(require("lodash/last"));
|
|
32
|
-
var _isString2 = _interopRequireDefault(require("lodash/isString"));
|
|
33
|
-
var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
|
|
34
|
-
var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
35
|
-
var _defaultsDeep2 = _interopRequireDefault(require("lodash/defaultsDeep"));
|
|
36
27
|
var _events = require("events");
|
|
37
28
|
var _util = _interopRequireDefault(require("util"));
|
|
38
29
|
var _common = require("@webex/common");
|
|
39
30
|
var _httpCore = require("@webex/http-core");
|
|
31
|
+
var _lodash = require("lodash");
|
|
40
32
|
var _ampersandState = _interopRequireDefault(require("ampersand-state"));
|
|
41
33
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
42
34
|
var _auth = _interopRequireDefault(require("./interceptors/auth"));
|
|
@@ -60,8 +52,11 @@ var _webexCorePluginMixin = _interopRequireDefault(require("./lib/webex-core-plu
|
|
|
60
52
|
var _webexInternalCorePluginMixin = _interopRequireDefault(require("./lib/webex-internal-core-plugin-mixin"));
|
|
61
53
|
var _webexInternalCore = _interopRequireDefault(require("./webex-internal-core"));
|
|
62
54
|
var _obj;
|
|
63
|
-
|
|
64
|
-
|
|
55
|
+
/*!
|
|
56
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
57
|
+
*/
|
|
58
|
+
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; }
|
|
59
|
+
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; }
|
|
65
60
|
// TODO replace the Interceptor.create with Reflect.construct (
|
|
66
61
|
// Interceptor.create exists because new was really hard to call on an array of
|
|
67
62
|
// constructors)
|
|
@@ -99,7 +94,7 @@ var MAX_FILE_SIZE_IN_MB = 2048;
|
|
|
99
94
|
* @class
|
|
100
95
|
*/
|
|
101
96
|
var WebexCore = _ampersandState.default.extend((_obj = {
|
|
102
|
-
version: "3.0.0
|
|
97
|
+
version: "3.0.0",
|
|
103
98
|
children: {
|
|
104
99
|
internal: _webexInternalCore.default
|
|
105
100
|
},
|
|
@@ -118,23 +113,23 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
118
113
|
} else {
|
|
119
114
|
// Reminder: order is important here
|
|
120
115
|
['credentials.authorization', 'authorization', 'credentials.supertoken.supertoken', 'supertoken', 'access_token', 'credentials.authorization.supertoken'].forEach(function (path) {
|
|
121
|
-
var val = (0,
|
|
116
|
+
var val = (0, _lodash.get)(attrs, path);
|
|
122
117
|
if (val) {
|
|
123
|
-
(0,
|
|
124
|
-
(0,
|
|
118
|
+
(0, _lodash.unset)(attrs, path);
|
|
119
|
+
(0, _lodash.set)(attrs, 'credentials.supertoken', val);
|
|
125
120
|
}
|
|
126
121
|
});
|
|
127
122
|
['credentials', 'credentials.authorization'].forEach(function (path) {
|
|
128
|
-
var val = (0,
|
|
123
|
+
var val = (0, _lodash.get)(attrs, path);
|
|
129
124
|
if (typeof val === 'string') {
|
|
130
|
-
(0,
|
|
131
|
-
(0,
|
|
125
|
+
(0, _lodash.unset)(attrs, path);
|
|
126
|
+
(0, _lodash.set)(attrs, 'credentials.supertoken', val);
|
|
132
127
|
}
|
|
133
128
|
});
|
|
134
|
-
if (typeof (0,
|
|
129
|
+
if (typeof (0, _lodash.get)(attrs, 'credentials.access_token') === 'string') {
|
|
135
130
|
// Send access_token to get validated and corrected and then set it
|
|
136
|
-
(0,
|
|
137
|
-
(0,
|
|
131
|
+
(0, _lodash.set)(attrs, 'credentials.access_token', this.bearerValidator((0, _lodash.get)(attrs, 'credentials.access_token').trim()));
|
|
132
|
+
(0, _lodash.set)(attrs, 'credentials.supertoken', attrs.credentials);
|
|
138
133
|
}
|
|
139
134
|
}
|
|
140
135
|
return (0, _apply.default)(_ampersandState.default, this, [attrs, options]);
|
|
@@ -258,7 +253,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
258
253
|
for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
|
|
259
254
|
rest[_key - 3] = arguments[_key];
|
|
260
255
|
}
|
|
261
|
-
if ((0,
|
|
256
|
+
if ((0, _lodash.isString)(ctx)) {
|
|
262
257
|
rest.unshift(name);
|
|
263
258
|
name = ctx;
|
|
264
259
|
ctx = {
|
|
@@ -286,7 +281,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
286
281
|
return _promise.default.resolve(tx.fn.apply(tx, [ctx].concat(rest)));
|
|
287
282
|
});
|
|
288
283
|
}, _promise.default.resolve()).then(function () {
|
|
289
|
-
return (0,
|
|
284
|
+
return (0, _lodash.last)(rest);
|
|
290
285
|
});
|
|
291
286
|
},
|
|
292
287
|
/**
|
|
@@ -310,7 +305,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
310
305
|
initialize: function initialize() {
|
|
311
306
|
var _this4 = this;
|
|
312
307
|
var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
313
|
-
this.config = (0,
|
|
308
|
+
this.config = (0, _lodash.merge)({}, _config.default, attrs.config);
|
|
314
309
|
|
|
315
310
|
// There's some unfortunateness with the way {@link AmpersandState#children}
|
|
316
311
|
// get initialized. We'll fire the change:config event so that
|
|
@@ -365,7 +360,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
365
360
|
});
|
|
366
361
|
var addInterceptor = function addInterceptor(ints, key) {
|
|
367
362
|
var interceptor = interceptors[key];
|
|
368
|
-
if (!(0,
|
|
363
|
+
if (!(0, _lodash.isFunction)(interceptor)) {
|
|
369
364
|
return ints;
|
|
370
365
|
}
|
|
371
366
|
ints.push((0, _apply.default)(interceptor, _this4, []));
|
|
@@ -381,9 +376,14 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
381
376
|
json: true,
|
|
382
377
|
interceptors: ints
|
|
383
378
|
});
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
379
|
+
this.prepareFetchOptions = (0, _httpCore.protoprepareFetchOptions)({
|
|
380
|
+
json: true,
|
|
381
|
+
interceptors: ints
|
|
382
|
+
});
|
|
383
|
+
this.setTimingsAndFetch = _httpCore.setTimingsAndFetch;
|
|
384
|
+
var sessionId = "".concat((0, _lodash.get)(this, 'config.trackingIdPrefix', 'webex-js-sdk'), "_").concat((0, _lodash.get)(this, 'config.trackingIdBase', _uuid.default.v4()));
|
|
385
|
+
if ((0, _lodash.get)(this, 'config.trackingIdSuffix')) {
|
|
386
|
+
sessionId += "_".concat((0, _lodash.get)(this, 'config.trackingIdSuffix'));
|
|
387
387
|
}
|
|
388
388
|
this.sessionId = sessionId;
|
|
389
389
|
},
|
|
@@ -399,7 +399,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
399
399
|
*/
|
|
400
400
|
setConfig: function setConfig() {
|
|
401
401
|
var newConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
402
|
-
this.config = (0,
|
|
402
|
+
this.config = (0, _lodash.merge)({}, this.config, newConfig);
|
|
403
403
|
},
|
|
404
404
|
/**
|
|
405
405
|
*
|
|
@@ -431,7 +431,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
431
431
|
* @returns {Object}
|
|
432
432
|
*/
|
|
433
433
|
inspect: function inspect(depth) {
|
|
434
|
-
return _util.default.inspect((0,
|
|
434
|
+
return _util.default.inspect((0, _lodash.omit)(this.serialize({
|
|
435
435
|
props: true,
|
|
436
436
|
session: true,
|
|
437
437
|
derived: true
|
|
@@ -521,13 +521,13 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
521
521
|
options.phases.initialize = options.phases.initialize || {};
|
|
522
522
|
options.phases.upload = options.phases.upload || {};
|
|
523
523
|
options.phases.finalize = options.phases.finalize || {};
|
|
524
|
-
(0,
|
|
524
|
+
(0, _lodash.defaultsDeep)(options.phases.initialize, {
|
|
525
525
|
method: 'POST',
|
|
526
526
|
body: {
|
|
527
527
|
uploadProtocol: 'content-length'
|
|
528
528
|
}
|
|
529
|
-
}, (0,
|
|
530
|
-
(0,
|
|
529
|
+
}, (0, _lodash.omit)(options, 'file', 'phases'));
|
|
530
|
+
(0, _lodash.defaultsDeep)(options.phases.upload, {
|
|
531
531
|
method: 'PUT',
|
|
532
532
|
json: false,
|
|
533
533
|
withCredentials: false,
|
|
@@ -537,9 +537,9 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
537
537
|
authorization: undefined
|
|
538
538
|
}
|
|
539
539
|
});
|
|
540
|
-
(0,
|
|
540
|
+
(0, _lodash.defaultsDeep)(options.phases.finalize, {
|
|
541
541
|
method: 'POST'
|
|
542
|
-
}, (0,
|
|
542
|
+
}, (0, _lodash.omit)(options, 'file', 'phases'));
|
|
543
543
|
shunt = new _events.EventEmitter();
|
|
544
544
|
promise = _this6._uploadPhaseInitialize(options).then(function () {
|
|
545
545
|
var p = _this6._uploadPhaseUpload(options);
|
|
@@ -636,10 +636,10 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
636
636
|
});
|
|
637
637
|
}
|
|
638
638
|
}, ((0, _applyDecoratedDescriptor2.default)(_obj, "_uploadPhaseUpload", [_common.retry], (0, _getOwnPropertyDescriptor.default)(_obj, "_uploadPhaseUpload"), _obj)), _obj));
|
|
639
|
-
WebexCore.version = "3.0.0
|
|
639
|
+
WebexCore.version = "3.0.0";
|
|
640
640
|
(0, _webexInternalCorePluginMixin.default)(_webexInternalCore.default, _config.default, interceptors);
|
|
641
641
|
(0, _webexCorePluginMixin.default)(WebexCore, _config.default, interceptors);
|
|
642
|
-
var _default = WebexCore;
|
|
642
|
+
var _default = exports.default = WebexCore;
|
|
643
643
|
/**
|
|
644
644
|
* @method registerPlugin
|
|
645
645
|
* @param {string} name
|
|
@@ -649,7 +649,6 @@ var _default = WebexCore;
|
|
|
649
649
|
* @param {Object} options.interceptors
|
|
650
650
|
* @returns {null}
|
|
651
651
|
*/
|
|
652
|
-
exports.default = _default;
|
|
653
652
|
function registerPlugin(name, constructor) {
|
|
654
653
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
655
654
|
WebexCore.registerPlugin(name, constructor, options);
|
package/dist/webex-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["interceptors","WebexTrackingIdInterceptor","create","RequestEventInterceptor","RateLimitInterceptor","RequestLoggerInterceptor","process","env","ENABLE_NETWORK_LOGGING","ENABLE_VERBOSE_NETWORK_LOGGING","undefined","ResponseLoggerInterceptor","RequestTimingInterceptor","ServiceInterceptor","UserAgentInterceptor","WebexUserAgentInterceptor","AuthInterceptor","KmsDryErrorInterceptor","PayloadTransformerInterceptor","ConversationInterceptor","RedirectInterceptor","HttpStatusInterceptor","error","WebexHttpError","NetworkTimingInterceptor","EmbargoInterceptor","DefaultOptionsInterceptor","preInterceptors","postInterceptors","MAX_FILE_SIZE_IN_MB","WebexCore","AmpState","extend","version","children","internal","WebexInternalCore","constructor","attrs","options","credentials","supertoken","access_token","forEach","path","val","bearerValidator","trim","derived","boundedStorage","deps","fn","makeWebexStore","unboundedStorage","ready","loaded","_children","reduce","name","session","config","type","default","request","setOnce","sessionId","refresh","transform","direction","object","predicates","payloadTransformer","filter","p","ctx","webex","all","map","test","then","shouldTransform","extract","target","data","d","Boolean","promise","alias","applyNamedTransform","resolve","rest","unshift","args","transforms","tx","getWindow","window","initialize","trigger","onLoaded","stopListening","nextTick","listenToAndRun","onReady","prototype","key","listenTo","addInterceptor","ints","interceptor","push","includes","requestDefaults","json","uuid","v4","setConfig","newConfig","token","split","length","console","warn","replace","info","inspect","depth","util","serialize","props","logout","refresh_token","onBeforeLogout","reverse","plugin","catch","err","logger","clear","invalidate","authorization","measure","metrics","sendUnstructured","upload","file","reject","Error","phases","finalize","method","body","uploadProtocol","withCredentials","headers","shunt","EventEmitter","_uploadPhaseInitialize","_uploadPhaseUpload","transferEvents","_uploadPhaseFinalize","res","proxyEvents","debug","fileUploadSizeLimitInBytes","fileUploadSizeLimit","currentFileSizeInBytes","byteLength","_uploadAbortSession","_uploadApplySession","response","url","abortErrorDetails","fileUploadSizeLimitInMB","message","opts","phaseOptions","phaseKey","startsWith","substr","NODE_ENV","on","event","total","retry","mixinWebexInternalCorePlugins","mixinWebexCorePlugins","registerPlugin","registerInternalPlugin"],"sources":["webex-core.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\nimport util from 'util';\n\nimport {proxyEvents, retry, transferEvents} from '@webex/common';\nimport {HttpStatusInterceptor, defaults as requestDefaults} from '@webex/http-core';\nimport {defaultsDeep, get, isFunction, isString, last, merge, omit, set, unset} from 'lodash';\nimport AmpState from 'ampersand-state';\nimport uuid from 'uuid';\n\nimport AuthInterceptor from './interceptors/auth';\nimport NetworkTimingInterceptor from './interceptors/network-timing';\nimport PayloadTransformerInterceptor from './interceptors/payload-transformer';\nimport RedirectInterceptor from './interceptors/redirect';\nimport RequestEventInterceptor from './interceptors/request-event';\nimport RequestLoggerInterceptor from './interceptors/request-logger';\nimport RequestTimingInterceptor from './interceptors/request-timing';\nimport ResponseLoggerInterceptor from './interceptors/response-logger';\nimport WebexHttpError from './lib/webex-http-error';\nimport UserAgentInterceptor from './interceptors/user-agent';\nimport WebexTrackingIdInterceptor from './interceptors/webex-tracking-id';\nimport WebexUserAgentInterceptor from './interceptors/webex-user-agent';\nimport RateLimitInterceptor from './interceptors/rate-limit';\nimport EmbargoInterceptor from './interceptors/embargo';\nimport DefaultOptionsInterceptor from './interceptors/default-options';\nimport config from './config';\nimport {makeWebexStore} from './lib/storage';\nimport mixinWebexCorePlugins from './lib/webex-core-plugin-mixin';\nimport mixinWebexInternalCorePlugins from './lib/webex-internal-core-plugin-mixin';\nimport WebexInternalCore from './webex-internal-core';\n\n// TODO replace the Interceptor.create with Reflect.construct (\n// Interceptor.create exists because new was really hard to call on an array of\n// constructors)\nconst interceptors = {\n WebexTrackingIdInterceptor: WebexTrackingIdInterceptor.create,\n RequestEventInterceptor: RequestEventInterceptor.create,\n RateLimitInterceptor: RateLimitInterceptor.create,\n /* eslint-disable no-extra-parens */\n RequestLoggerInterceptor:\n process.env.ENABLE_NETWORK_LOGGING || process.env.ENABLE_VERBOSE_NETWORK_LOGGING\n ? RequestLoggerInterceptor.create\n : undefined,\n ResponseLoggerInterceptor:\n process.env.ENABLE_NETWORK_LOGGING || process.env.ENABLE_VERBOSE_NETWORK_LOGGING\n ? ResponseLoggerInterceptor.create\n : undefined,\n /* eslint-enable no-extra-parens */\n RequestTimingInterceptor: RequestTimingInterceptor.create,\n ServiceInterceptor: undefined,\n UserAgentInterceptor: UserAgentInterceptor.create,\n WebexUserAgentInterceptor: WebexUserAgentInterceptor.create,\n AuthInterceptor: AuthInterceptor.create,\n KmsDryErrorInterceptor: undefined,\n PayloadTransformerInterceptor: PayloadTransformerInterceptor.create,\n ConversationInterceptor: undefined,\n RedirectInterceptor: RedirectInterceptor.create,\n HttpStatusInterceptor() {\n return HttpStatusInterceptor.create({\n error: WebexHttpError,\n });\n },\n NetworkTimingInterceptor: NetworkTimingInterceptor.create,\n EmbargoInterceptor: EmbargoInterceptor.create,\n DefaultOptionsInterceptor: DefaultOptionsInterceptor.create,\n};\n\nconst preInterceptors = [\n 'ResponseLoggerInterceptor',\n 'RequestTimingInterceptor',\n 'RequestEventInterceptor',\n 'WebexTrackingIdInterceptor',\n 'RateLimitInterceptor',\n];\n\nconst postInterceptors = [\n 'HttpStatusInterceptor',\n 'NetworkTimingInterceptor',\n 'EmbargoInterceptor',\n 'RequestLoggerInterceptor',\n 'RateLimitInterceptor',\n];\n\nconst MAX_FILE_SIZE_IN_MB = 2048;\n\n/**\n * @class\n */\nconst WebexCore = AmpState.extend({\n version: PACKAGE_VERSION,\n\n children: {\n internal: WebexInternalCore,\n },\n\n constructor(attrs = {}, options) {\n if (typeof attrs === 'string') {\n attrs = {\n credentials: {\n supertoken: {\n // eslint-disable-next-line camelcase\n access_token: attrs,\n },\n },\n };\n } else {\n // Reminder: order is important here\n [\n 'credentials.authorization',\n 'authorization',\n 'credentials.supertoken.supertoken',\n 'supertoken',\n 'access_token',\n 'credentials.authorization.supertoken',\n ].forEach((path) => {\n const val = get(attrs, path);\n\n if (val) {\n unset(attrs, path);\n set(attrs, 'credentials.supertoken', val);\n }\n });\n\n ['credentials', 'credentials.authorization'].forEach((path) => {\n const val = get(attrs, path);\n\n if (typeof val === 'string') {\n unset(attrs, path);\n set(attrs, 'credentials.supertoken', val);\n }\n });\n\n if (typeof get(attrs, 'credentials.access_token') === 'string') {\n // Send access_token to get validated and corrected and then set it\n set(\n attrs,\n 'credentials.access_token',\n this.bearerValidator(get(attrs, 'credentials.access_token').trim())\n );\n\n set(attrs, 'credentials.supertoken', attrs.credentials);\n }\n }\n\n return Reflect.apply(AmpState, this, [attrs, options]);\n },\n\n derived: {\n boundedStorage: {\n deps: [],\n fn() {\n return makeWebexStore('bounded', this);\n },\n },\n unboundedStorage: {\n deps: [],\n fn() {\n return makeWebexStore('unbounded', this);\n },\n },\n ready: {\n deps: ['loaded', 'internal.ready'],\n fn() {\n return (\n this.loaded &&\n Object.keys(this._children).reduce(\n (ready, name) => ready && this[name] && this[name].ready !== false,\n true\n )\n );\n },\n },\n },\n\n session: {\n config: {\n type: 'object',\n },\n /**\n * When true, indicates that the initial load from the storage layer is\n * complete\n * @instance\n * @memberof WebexCore\n * @type {boolean}\n */\n loaded: {\n default: false,\n type: 'boolean',\n },\n request: {\n setOnce: true,\n // It's supposed to be a function, but that's not a type defined in\n // Ampersand\n type: 'any',\n },\n sessionId: {\n setOnce: true,\n type: 'string',\n },\n },\n\n /**\n * @instance\n * @memberof WebexCore\n * @param {[type]} args\n * @returns {[type]}\n */\n refresh(...args) {\n return this.credentials.refresh(...args);\n },\n\n /**\n * Applies the directionally appropriate transforms to the specified object\n * @param {string} direction\n * @param {Object} object\n * @returns {Promise}\n */\n transform(direction, object) {\n const predicates = this.config.payloadTransformer.predicates.filter(\n (p) => !p.direction || p.direction === direction\n );\n const ctx = {\n webex: this,\n };\n\n return Promise.all(\n predicates.map((p) =>\n p.test(ctx, object).then((shouldTransform) => {\n if (!shouldTransform) {\n return undefined;\n }\n\n return (\n p\n .extract(object)\n // eslint-disable-next-line max-nested-callbacks\n .then((target) => ({\n name: p.name,\n target,\n }))\n );\n })\n )\n )\n .then((data) =>\n data\n .filter((d) => Boolean(d))\n // eslint-disable-next-line max-nested-callbacks\n .reduce(\n (promise, {name, target, alias}) =>\n promise.then(() => {\n if (alias) {\n return this.applyNamedTransform(direction, alias, target);\n }\n\n return this.applyNamedTransform(direction, name, target);\n }),\n Promise.resolve()\n )\n )\n .then(() => object);\n },\n\n /**\n * Applies the directionally appropriate transform to the specified parameters\n * @param {string} direction\n * @param {Object} ctx\n * @param {string} name\n * @returns {Promise}\n */\n applyNamedTransform(direction, ctx, name, ...rest) {\n if (isString(ctx)) {\n rest.unshift(name);\n name = ctx;\n ctx = {\n webex: this,\n transform: (...args) => this.applyNamedTransform(direction, ctx, ...args),\n };\n }\n\n const transforms = ctx.webex.config.payloadTransformer.transforms.filter(\n (tx) => tx.name === name && (!tx.direction || tx.direction === direction)\n );\n\n // too many implicit returns on the same line is difficult to interpret\n // eslint-disable-next-line arrow-body-style\n return transforms\n .reduce(\n (promise, tx) =>\n promise.then(() => {\n if (tx.alias) {\n return ctx.transform(tx.alias, ...rest);\n }\n\n return Promise.resolve(tx.fn(ctx, ...rest));\n }),\n Promise.resolve()\n )\n .then(() => last(rest));\n },\n\n /**\n * @private\n * @returns {Window}\n */\n getWindow() {\n // eslint-disable-next-line\n return window;\n },\n\n /**\n * Initializer\n *\n * @emits WebexCore#loaded\n * @emits WebexCore#ready\n * @instance\n * @memberof WebexCore\n * @param {Object} attrs\n * @returns {WebexCore}\n */\n initialize(attrs = {}) {\n this.config = merge({}, config, attrs.config);\n\n // There's some unfortunateness with the way {@link AmpersandState#children}\n // get initialized. We'll fire the change:config event so that\n // {@link WebexPlugin#initialize()} can use\n // `this.listenToOnce(parent, 'change:config', () => {});` to act on config\n // during initialization\n this.trigger('change:config');\n\n const onLoaded = () => {\n if (this.loaded) {\n /**\n * Fires when all data has been loaded from the storage layer\n * @event loaded\n * @instance\n * @memberof WebexCore\n */\n this.trigger('loaded');\n\n this.stopListening(this, 'change:loaded', onLoaded);\n }\n };\n\n // This needs to run on nextTick or we'll never be able to wire up listeners\n process.nextTick(() => {\n this.listenToAndRun(this, 'change:loaded', onLoaded);\n });\n\n const onReady = () => {\n if (this.ready) {\n /**\n * Fires when all plugins have fully initialized\n * @event ready\n * @instance\n * @memberof WebexCore\n */\n this.trigger('ready');\n\n this.stopListening(this, 'change:ready', onReady);\n }\n };\n\n // This needs to run on nextTick or we'll never be able to wire up listeners\n process.nextTick(() => {\n this.listenToAndRun(this, 'change:ready', onReady);\n });\n\n // Make nested events propagate in a consistent manner\n Object.keys(this.constructor.prototype._children).forEach((key) => {\n this.listenTo(this[key], 'change', (...args) => {\n args.unshift(`change:${key}`);\n this.trigger(...args);\n });\n });\n\n const addInterceptor = (ints, key) => {\n const interceptor = interceptors[key];\n\n if (!isFunction(interceptor)) {\n return ints;\n }\n\n ints.push(Reflect.apply(interceptor, this, []));\n\n return ints;\n };\n\n let ints = [];\n\n ints = preInterceptors.reduce(addInterceptor, ints);\n ints = Object.keys(interceptors)\n .filter((key) => !(preInterceptors.includes(key) || postInterceptors.includes(key)))\n .reduce(addInterceptor, ints);\n ints = postInterceptors.reduce(addInterceptor, ints);\n\n this.request = requestDefaults({\n json: true,\n interceptors: ints,\n });\n\n let sessionId = `${get(this, 'config.trackingIdPrefix', 'webex-js-sdk')}_${get(\n this,\n 'config.trackingIdBase',\n uuid.v4()\n )}`;\n\n if (get(this, 'config.trackingIdSuffix')) {\n sessionId += `_${get(this, 'config.trackingIdSuffix')}`;\n }\n\n this.sessionId = sessionId;\n },\n\n /**\n * setConfig\n *\n * Allows updating config\n *\n * @instance\n * @memberof WebexCore\n * @param {Object} newConfig\n * @returns {null}\n */\n setConfig(newConfig = {}) {\n this.config = merge({}, this.config, newConfig);\n },\n\n /**\n *\n * Check if access token is correctly formated and correct if it's not\n * Warn user if token string has errors in it\n * @param {string} token\n * @returns {string}\n */\n bearerValidator(token) {\n if (token.includes('Bearer') && token.split(' ').length - 1 === 0) {\n console.warn(\n `Your access token does not have a space between 'Bearer' and the token, please add a space to it or replace it with this already fixed version:\\n\\n${token\n .replace('Bearer', 'Bearer ')\n .replace(/\\s+/g, ' ')}`\n );\n console.info(\n \"Tip: You don't need to add 'Bearer' to the access_token field. The token by itself is fine\"\n );\n\n return token.replace('Bearer', 'Bearer ').replace(/\\s+/g, ' ');\n }\n // Allow elseIf return\n // eslint-disable-next-line no-else-return\n else if (token.split(' ').length - 1 > 1) {\n console.warn(\n `Your access token has ${\n token.split(' ').length - 2\n } too many spaces, please use this format:\\n\\n${token.replace(/\\s+/g, ' ')}`\n );\n console.info(\n \"Tip: You don't need to add 'Bearer' to the access_token field, the token by itself is fine\"\n );\n\n return token.replace(/\\s+/g, ' ');\n }\n\n return token.replace(/\\s+/g, ' '); // Clean it anyway (just in case)\n },\n\n /**\n * @instance\n * @memberof WebexPlugin\n * @param {number} depth\n * @private\n * @returns {Object}\n */\n inspect(depth) {\n return util.inspect(\n omit(\n this.serialize({\n props: true,\n session: true,\n derived: true,\n }),\n 'boundedStorage',\n 'unboundedStorage',\n 'request',\n 'config'\n ),\n {depth}\n );\n },\n\n /**\n * Invokes all `onBeforeLogout` handlers in the scope of their plugin, clears\n * all stores, and revokes the access token\n * Note: If you're using the sdk in a server environment, you may be more\n * interested in {@link `webex.internal.mercury.disconnect()`| Mercury#disconnect()}\n * and {@link `webex.internal.device.unregister()`|Device#unregister()}\n * or {@link `webex.phone.unregister()`|Phone#unregister}\n * @instance\n * @memberof WebexCore\n * @param {Object} options Passed as the first argument to all\n * `onBeforeLogout` handlers\n * @returns {Promise}\n */\n logout(options, ...rest) {\n // prefer the refresh token, but for clients that don't have one, fallback\n // to the access token\n const token =\n this.credentials.supertoken &&\n (this.credentials.supertoken.refresh_token || this.credentials.supertoken.access_token);\n\n options = Object.assign({token}, options);\n\n // onBeforeLogout should be executed in the opposite order in which handlers\n // were registered. In that way, wdm unregister() will be above mercury\n // disconnect(), but disconnect() will execute first.\n // eslint-disable-next-line arrow-body-style\n return this.config.onBeforeLogout\n .reverse()\n .reduce(\n (promise, {plugin, fn}) =>\n promise.then(() => {\n return (\n Promise.resolve(\n Reflect.apply(fn, this[plugin] || this.internal[plugin], [options, ...rest])\n )\n // eslint-disable-next-line max-nested-callbacks\n .catch((err) => {\n this.logger.warn(`onBeforeLogout from plugin ${plugin}: failed`, err);\n })\n );\n }),\n Promise.resolve()\n )\n .then(() => Promise.all([this.boundedStorage.clear(), this.unboundedStorage.clear()]))\n .then(() => this.credentials.invalidate(...rest))\n .then(\n () =>\n this.authorization &&\n this.authorization.logout &&\n this.authorization.logout(options, ...rest)\n )\n .then(() => this.trigger('client:logout'));\n },\n\n /**\n * General purpose wrapper to submit metrics via the metrics plugin (if the\n * metrics plugin is installed)\n * @instance\n * @memberof WebexCore\n * @returns {Promise}\n */\n measure(...args) {\n if (this.metrics) {\n return this.metrics.sendUnstructured(...args);\n }\n\n return Promise.resolve();\n },\n\n async upload(options) {\n if (!options.file) {\n return Promise.reject(new Error('`options.file` is required'));\n }\n\n options.phases = options.phases || {};\n options.phases.initialize = options.phases.initialize || {};\n options.phases.upload = options.phases.upload || {};\n options.phases.finalize = options.phases.finalize || {};\n\n defaultsDeep(\n options.phases.initialize,\n {\n method: 'POST',\n body: {\n uploadProtocol: 'content-length',\n },\n },\n omit(options, 'file', 'phases')\n );\n\n defaultsDeep(options.phases.upload, {\n method: 'PUT',\n json: false,\n withCredentials: false,\n body: options.file,\n headers: {\n 'x-trans-id': uuid.v4(),\n authorization: undefined,\n },\n });\n\n defaultsDeep(\n options.phases.finalize,\n {\n method: 'POST',\n },\n omit(options, 'file', 'phases')\n );\n\n const shunt = new EventEmitter();\n\n const promise = this._uploadPhaseInitialize(options)\n .then(() => {\n const p = this._uploadPhaseUpload(options);\n\n transferEvents('progress', p, shunt);\n\n return p;\n })\n .then((...args) => this._uploadPhaseFinalize(options, ...args))\n .then((res) => ({...res.body, ...res.headers}));\n\n proxyEvents(shunt, promise);\n\n return promise;\n },\n\n _uploadPhaseInitialize: function _uploadPhaseInitialize(options) {\n this.logger.debug('client: initiating upload session');\n\n return this.request(options.phases.initialize)\n .then((...args) => {\n const fileUploadSizeLimitInBytes =\n (args[0].body.fileUploadSizeLimit || MAX_FILE_SIZE_IN_MB) * 1024 * 1024;\n const currentFileSizeInBytes = options.file.byteLength;\n\n if (fileUploadSizeLimitInBytes && fileUploadSizeLimitInBytes < currentFileSizeInBytes) {\n return this._uploadAbortSession(currentFileSizeInBytes, ...args);\n }\n\n return this._uploadApplySession(options, ...args);\n })\n .then((res) => {\n this.logger.debug('client: initiated upload session');\n\n return res;\n });\n },\n\n _uploadAbortSession(currentFileSizeInBytes, response) {\n this.logger.debug('client: deleting uploaded file');\n\n return this.request({\n method: 'DELETE',\n url: response.body.url,\n headers: response.options.headers,\n }).then(() => {\n this.logger.debug('client: deleting uploaded file complete');\n\n const abortErrorDetails = {\n currentFileSizeInBytes,\n fileUploadSizeLimitInMB: response.body.fileUploadSizeLimit || MAX_FILE_SIZE_IN_MB,\n message: 'file-upload-size-limit-enabled',\n };\n\n return Promise.reject(new Error(`${JSON.stringify(abortErrorDetails)}`));\n });\n },\n\n _uploadApplySession(options, res) {\n const session = res.body;\n\n ['upload', 'finalize'].reduce((opts, key) => {\n opts[key] = Object.keys(opts[key]).reduce((phaseOptions, phaseKey) => {\n if (phaseKey.startsWith('$')) {\n phaseOptions[phaseKey.substr(1)] = phaseOptions[phaseKey](session);\n Reflect.deleteProperty(phaseOptions, phaseKey);\n }\n\n return phaseOptions;\n }, opts[key]);\n\n return opts;\n }, options.phases);\n },\n\n @retry\n _uploadPhaseUpload(options) {\n this.logger.debug('client: uploading file');\n\n const promise = this.request(options.phases.upload).then((res) => {\n this.logger.debug('client: uploaded file');\n\n return res;\n });\n\n proxyEvents(options.phases.upload.upload, promise);\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV === 'test') {\n promise.on('progress', (event) => {\n this.logger.info('upload progress', event.loaded, event.total);\n });\n }\n\n return promise;\n },\n\n _uploadPhaseFinalize: function _uploadPhaseFinalize(options) {\n this.logger.debug('client: finalizing upload session');\n\n return this.request(options.phases.finalize).then((res) => {\n this.logger.debug('client: finalized upload session');\n\n return res;\n });\n },\n});\n\nWebexCore.version = PACKAGE_VERSION;\n\nmixinWebexInternalCorePlugins(WebexInternalCore, config, interceptors);\nmixinWebexCorePlugins(WebexCore, config, interceptors);\n\nexport default WebexCore;\n\n/**\n * @method registerPlugin\n * @param {string} name\n * @param {function} constructor\n * @param {Object} options\n * @param {Array<string>} options.proxies\n * @param {Object} options.interceptors\n * @returns {null}\n */\nexport function registerPlugin(name, constructor, options = {}) {\n WebexCore.registerPlugin(name, constructor, options);\n}\n\n/**\n * Registers plugins used by internal products that do not talk to public APIs.\n * @method registerInternalPlugin\n * @param {string} name\n * @param {function} constructor\n * @param {Object} options\n * @param {Object} options.interceptors\n * @private\n * @returns {null}\n */\nexport function registerInternalPlugin(name, constructor, options) {\n WebexInternalCore.registerPlugin(name, constructor, options);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_events","require","_util","_interopRequireDefault","_common","_httpCore","_lodash","_ampersandState","_uuid","_auth","_networkTiming","_payloadTransformer","_redirect","_requestEvent","_requestLogger","_requestTiming","_responseLogger","_webexHttpError","_userAgent","_webexTrackingId","_webexUserAgent","_rateLimit","_embargo","_defaultOptions","_config","_storage","_webexCorePluginMixin","_webexInternalCorePluginMixin","_webexInternalCore","_obj","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","interceptors","WebexTrackingIdInterceptor","create","RequestEventInterceptor","RateLimitInterceptor","RequestLoggerInterceptor","process","env","ENABLE_NETWORK_LOGGING","ENABLE_VERBOSE_NETWORK_LOGGING","undefined","ResponseLoggerInterceptor","RequestTimingInterceptor","ServiceInterceptor","UserAgentInterceptor","WebexUserAgentInterceptor","AuthInterceptor","KmsDryErrorInterceptor","PayloadTransformerInterceptor","ConversationInterceptor","RedirectInterceptor","HttpStatusInterceptor","error","WebexHttpError","NetworkTimingInterceptor","EmbargoInterceptor","DefaultOptionsInterceptor","preInterceptors","postInterceptors","MAX_FILE_SIZE_IN_MB","WebexCore","AmpState","extend","version","children","internal","WebexInternalCore","constructor","attrs","options","credentials","supertoken","access_token","path","val","get","unset","set","bearerValidator","trim","_apply","derived","boundedStorage","deps","fn","makeWebexStore","unboundedStorage","ready","_this","loaded","_keys","_children","reduce","name","session","config","type","request","setOnce","sessionId","refresh","_this$credentials","transform","direction","object","_this2","predicates","payloadTransformer","p","ctx","webex","_promise","all","map","test","then","shouldTransform","extract","target","data","d","Boolean","promise","_ref","alias","applyNamedTransform","resolve","_this3","_len","rest","Array","_key","isString","unshift","_len2","args","_key2","concat","transforms","tx","_ctx","last","getWindow","window","initialize","_this4","merge","trigger","onLoaded","stopListening","nextTick","listenToAndRun","onReady","prototype","key","listenTo","_len3","_key3","addInterceptor","ints","interceptor","isFunction","includes","requestDefaults","json","prepareFetchOptions","setTimingsAndFetch","_setTimingsAndFetch","uuid","v4","setConfig","newConfig","token","split","console","warn","replace","info","inspect","depth","util","omit","serialize","props","logout","_this5","_len4","_key4","refresh_token","_assign","onBeforeLogout","reverse","_ref2","plugin","catch","err","logger","clear","_this5$credentials","invalidate","_this5$authorization","authorization","measure","metrics","_this$metrics","sendUnstructured","upload","_this6","_asyncToGenerator2","_regenerator","mark","_callee","shunt","wrap","_callee$","_context","prev","next","file","abrupt","reject","Error","phases","finalize","defaultsDeep","method","body","uploadProtocol","withCredentials","headers","EventEmitter","_uploadPhaseInitialize","_uploadPhaseUpload","transferEvents","_len5","_key5","_uploadPhaseFinalize","res","proxyEvents","stop","_this7","debug","_len6","_key6","fileUploadSizeLimitInBytes","fileUploadSizeLimit","currentFileSizeInBytes","byteLength","_uploadAbortSession","_uploadApplySession","response","_this8","url","abortErrorDetails","fileUploadSizeLimitInMB","message","_stringify","opts","phaseOptions","phaseKey","startsWith","substr","_deleteProperty","_this9","NODE_ENV","on","event","total","_this10","_applyDecoratedDescriptor2","retry","_getOwnPropertyDescriptor","mixinWebexInternalCorePlugins","mixinWebexCorePlugins","_default","exports","registerPlugin","registerInternalPlugin"],"sources":["webex-core.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {EventEmitter} from 'events';\nimport util from 'util';\n\nimport {proxyEvents, retry, transferEvents} from '@webex/common';\nimport {\n HttpStatusInterceptor,\n defaults as requestDefaults,\n protoprepareFetchOptions as prepareFetchOptions,\n setTimingsAndFetch as _setTimingsAndFetch,\n} from '@webex/http-core';\nimport {defaultsDeep, get, isFunction, isString, last, merge, omit, set, unset} from 'lodash';\nimport AmpState from 'ampersand-state';\nimport uuid from 'uuid';\n\nimport AuthInterceptor from './interceptors/auth';\nimport NetworkTimingInterceptor from './interceptors/network-timing';\nimport PayloadTransformerInterceptor from './interceptors/payload-transformer';\nimport RedirectInterceptor from './interceptors/redirect';\nimport RequestEventInterceptor from './interceptors/request-event';\nimport RequestLoggerInterceptor from './interceptors/request-logger';\nimport RequestTimingInterceptor from './interceptors/request-timing';\nimport ResponseLoggerInterceptor from './interceptors/response-logger';\nimport WebexHttpError from './lib/webex-http-error';\nimport UserAgentInterceptor from './interceptors/user-agent';\nimport WebexTrackingIdInterceptor from './interceptors/webex-tracking-id';\nimport WebexUserAgentInterceptor from './interceptors/webex-user-agent';\nimport RateLimitInterceptor from './interceptors/rate-limit';\nimport EmbargoInterceptor from './interceptors/embargo';\nimport DefaultOptionsInterceptor from './interceptors/default-options';\nimport config from './config';\nimport {makeWebexStore} from './lib/storage';\nimport mixinWebexCorePlugins from './lib/webex-core-plugin-mixin';\nimport mixinWebexInternalCorePlugins from './lib/webex-internal-core-plugin-mixin';\nimport WebexInternalCore from './webex-internal-core';\n\n// TODO replace the Interceptor.create with Reflect.construct (\n// Interceptor.create exists because new was really hard to call on an array of\n// constructors)\nconst interceptors = {\n WebexTrackingIdInterceptor: WebexTrackingIdInterceptor.create,\n RequestEventInterceptor: RequestEventInterceptor.create,\n RateLimitInterceptor: RateLimitInterceptor.create,\n /* eslint-disable no-extra-parens */\n RequestLoggerInterceptor:\n process.env.ENABLE_NETWORK_LOGGING || process.env.ENABLE_VERBOSE_NETWORK_LOGGING\n ? RequestLoggerInterceptor.create\n : undefined,\n ResponseLoggerInterceptor:\n process.env.ENABLE_NETWORK_LOGGING || process.env.ENABLE_VERBOSE_NETWORK_LOGGING\n ? ResponseLoggerInterceptor.create\n : undefined,\n /* eslint-enable no-extra-parens */\n RequestTimingInterceptor: RequestTimingInterceptor.create,\n ServiceInterceptor: undefined,\n UserAgentInterceptor: UserAgentInterceptor.create,\n WebexUserAgentInterceptor: WebexUserAgentInterceptor.create,\n AuthInterceptor: AuthInterceptor.create,\n KmsDryErrorInterceptor: undefined,\n PayloadTransformerInterceptor: PayloadTransformerInterceptor.create,\n ConversationInterceptor: undefined,\n RedirectInterceptor: RedirectInterceptor.create,\n HttpStatusInterceptor() {\n return HttpStatusInterceptor.create({\n error: WebexHttpError,\n });\n },\n NetworkTimingInterceptor: NetworkTimingInterceptor.create,\n EmbargoInterceptor: EmbargoInterceptor.create,\n DefaultOptionsInterceptor: DefaultOptionsInterceptor.create,\n};\n\nconst preInterceptors = [\n 'ResponseLoggerInterceptor',\n 'RequestTimingInterceptor',\n 'RequestEventInterceptor',\n 'WebexTrackingIdInterceptor',\n 'RateLimitInterceptor',\n];\n\nconst postInterceptors = [\n 'HttpStatusInterceptor',\n 'NetworkTimingInterceptor',\n 'EmbargoInterceptor',\n 'RequestLoggerInterceptor',\n 'RateLimitInterceptor',\n];\n\nconst MAX_FILE_SIZE_IN_MB = 2048;\n\n/**\n * @class\n */\nconst WebexCore = AmpState.extend({\n version: PACKAGE_VERSION,\n\n children: {\n internal: WebexInternalCore,\n },\n\n constructor(attrs = {}, options) {\n if (typeof attrs === 'string') {\n attrs = {\n credentials: {\n supertoken: {\n // eslint-disable-next-line camelcase\n access_token: attrs,\n },\n },\n };\n } else {\n // Reminder: order is important here\n [\n 'credentials.authorization',\n 'authorization',\n 'credentials.supertoken.supertoken',\n 'supertoken',\n 'access_token',\n 'credentials.authorization.supertoken',\n ].forEach((path) => {\n const val = get(attrs, path);\n\n if (val) {\n unset(attrs, path);\n set(attrs, 'credentials.supertoken', val);\n }\n });\n\n ['credentials', 'credentials.authorization'].forEach((path) => {\n const val = get(attrs, path);\n\n if (typeof val === 'string') {\n unset(attrs, path);\n set(attrs, 'credentials.supertoken', val);\n }\n });\n\n if (typeof get(attrs, 'credentials.access_token') === 'string') {\n // Send access_token to get validated and corrected and then set it\n set(\n attrs,\n 'credentials.access_token',\n this.bearerValidator(get(attrs, 'credentials.access_token').trim())\n );\n\n set(attrs, 'credentials.supertoken', attrs.credentials);\n }\n }\n\n return Reflect.apply(AmpState, this, [attrs, options]);\n },\n\n derived: {\n boundedStorage: {\n deps: [],\n fn() {\n return makeWebexStore('bounded', this);\n },\n },\n unboundedStorage: {\n deps: [],\n fn() {\n return makeWebexStore('unbounded', this);\n },\n },\n ready: {\n deps: ['loaded', 'internal.ready'],\n fn() {\n return (\n this.loaded &&\n Object.keys(this._children).reduce(\n (ready, name) => ready && this[name] && this[name].ready !== false,\n true\n )\n );\n },\n },\n },\n\n session: {\n config: {\n type: 'object',\n },\n /**\n * When true, indicates that the initial load from the storage layer is\n * complete\n * @instance\n * @memberof WebexCore\n * @type {boolean}\n */\n loaded: {\n default: false,\n type: 'boolean',\n },\n request: {\n setOnce: true,\n // It's supposed to be a function, but that's not a type defined in\n // Ampersand\n type: 'any',\n },\n sessionId: {\n setOnce: true,\n type: 'string',\n },\n },\n\n /**\n * @instance\n * @memberof WebexCore\n * @param {[type]} args\n * @returns {[type]}\n */\n refresh(...args) {\n return this.credentials.refresh(...args);\n },\n\n /**\n * Applies the directionally appropriate transforms to the specified object\n * @param {string} direction\n * @param {Object} object\n * @returns {Promise}\n */\n transform(direction, object) {\n const predicates = this.config.payloadTransformer.predicates.filter(\n (p) => !p.direction || p.direction === direction\n );\n const ctx = {\n webex: this,\n };\n\n return Promise.all(\n predicates.map((p) =>\n p.test(ctx, object).then((shouldTransform) => {\n if (!shouldTransform) {\n return undefined;\n }\n\n return (\n p\n .extract(object)\n // eslint-disable-next-line max-nested-callbacks\n .then((target) => ({\n name: p.name,\n target,\n }))\n );\n })\n )\n )\n .then((data) =>\n data\n .filter((d) => Boolean(d))\n // eslint-disable-next-line max-nested-callbacks\n .reduce(\n (promise, {name, target, alias}) =>\n promise.then(() => {\n if (alias) {\n return this.applyNamedTransform(direction, alias, target);\n }\n\n return this.applyNamedTransform(direction, name, target);\n }),\n Promise.resolve()\n )\n )\n .then(() => object);\n },\n\n /**\n * Applies the directionally appropriate transform to the specified parameters\n * @param {string} direction\n * @param {Object} ctx\n * @param {string} name\n * @returns {Promise}\n */\n applyNamedTransform(direction, ctx, name, ...rest) {\n if (isString(ctx)) {\n rest.unshift(name);\n name = ctx;\n ctx = {\n webex: this,\n transform: (...args) => this.applyNamedTransform(direction, ctx, ...args),\n };\n }\n\n const transforms = ctx.webex.config.payloadTransformer.transforms.filter(\n (tx) => tx.name === name && (!tx.direction || tx.direction === direction)\n );\n\n // too many implicit returns on the same line is difficult to interpret\n // eslint-disable-next-line arrow-body-style\n return transforms\n .reduce(\n (promise, tx) =>\n promise.then(() => {\n if (tx.alias) {\n return ctx.transform(tx.alias, ...rest);\n }\n\n return Promise.resolve(tx.fn(ctx, ...rest));\n }),\n Promise.resolve()\n )\n .then(() => last(rest));\n },\n\n /**\n * @private\n * @returns {Window}\n */\n getWindow() {\n // eslint-disable-next-line\n return window;\n },\n\n /**\n * Initializer\n *\n * @emits WebexCore#loaded\n * @emits WebexCore#ready\n * @instance\n * @memberof WebexCore\n * @param {Object} attrs\n * @returns {WebexCore}\n */\n initialize(attrs = {}) {\n this.config = merge({}, config, attrs.config);\n\n // There's some unfortunateness with the way {@link AmpersandState#children}\n // get initialized. We'll fire the change:config event so that\n // {@link WebexPlugin#initialize()} can use\n // `this.listenToOnce(parent, 'change:config', () => {});` to act on config\n // during initialization\n this.trigger('change:config');\n\n const onLoaded = () => {\n if (this.loaded) {\n /**\n * Fires when all data has been loaded from the storage layer\n * @event loaded\n * @instance\n * @memberof WebexCore\n */\n this.trigger('loaded');\n\n this.stopListening(this, 'change:loaded', onLoaded);\n }\n };\n\n // This needs to run on nextTick or we'll never be able to wire up listeners\n process.nextTick(() => {\n this.listenToAndRun(this, 'change:loaded', onLoaded);\n });\n\n const onReady = () => {\n if (this.ready) {\n /**\n * Fires when all plugins have fully initialized\n * @event ready\n * @instance\n * @memberof WebexCore\n */\n this.trigger('ready');\n\n this.stopListening(this, 'change:ready', onReady);\n }\n };\n\n // This needs to run on nextTick or we'll never be able to wire up listeners\n process.nextTick(() => {\n this.listenToAndRun(this, 'change:ready', onReady);\n });\n\n // Make nested events propagate in a consistent manner\n Object.keys(this.constructor.prototype._children).forEach((key) => {\n this.listenTo(this[key], 'change', (...args) => {\n args.unshift(`change:${key}`);\n this.trigger(...args);\n });\n });\n\n const addInterceptor = (ints, key) => {\n const interceptor = interceptors[key];\n\n if (!isFunction(interceptor)) {\n return ints;\n }\n\n ints.push(Reflect.apply(interceptor, this, []));\n\n return ints;\n };\n\n let ints = [];\n\n ints = preInterceptors.reduce(addInterceptor, ints);\n ints = Object.keys(interceptors)\n .filter((key) => !(preInterceptors.includes(key) || postInterceptors.includes(key)))\n .reduce(addInterceptor, ints);\n ints = postInterceptors.reduce(addInterceptor, ints);\n\n this.request = requestDefaults({\n json: true,\n interceptors: ints,\n });\n\n this.prepareFetchOptions = prepareFetchOptions({\n json: true,\n interceptors: ints,\n });\n\n this.setTimingsAndFetch = _setTimingsAndFetch;\n\n let sessionId = `${get(this, 'config.trackingIdPrefix', 'webex-js-sdk')}_${get(\n this,\n 'config.trackingIdBase',\n uuid.v4()\n )}`;\n\n if (get(this, 'config.trackingIdSuffix')) {\n sessionId += `_${get(this, 'config.trackingIdSuffix')}`;\n }\n\n this.sessionId = sessionId;\n },\n\n /**\n * setConfig\n *\n * Allows updating config\n *\n * @instance\n * @memberof WebexCore\n * @param {Object} newConfig\n * @returns {null}\n */\n setConfig(newConfig = {}) {\n this.config = merge({}, this.config, newConfig);\n },\n\n /**\n *\n * Check if access token is correctly formated and correct if it's not\n * Warn user if token string has errors in it\n * @param {string} token\n * @returns {string}\n */\n bearerValidator(token) {\n if (token.includes('Bearer') && token.split(' ').length - 1 === 0) {\n console.warn(\n `Your access token does not have a space between 'Bearer' and the token, please add a space to it or replace it with this already fixed version:\\n\\n${token\n .replace('Bearer', 'Bearer ')\n .replace(/\\s+/g, ' ')}`\n );\n console.info(\n \"Tip: You don't need to add 'Bearer' to the access_token field. The token by itself is fine\"\n );\n\n return token.replace('Bearer', 'Bearer ').replace(/\\s+/g, ' ');\n }\n // Allow elseIf return\n // eslint-disable-next-line no-else-return\n else if (token.split(' ').length - 1 > 1) {\n console.warn(\n `Your access token has ${\n token.split(' ').length - 2\n } too many spaces, please use this format:\\n\\n${token.replace(/\\s+/g, ' ')}`\n );\n console.info(\n \"Tip: You don't need to add 'Bearer' to the access_token field, the token by itself is fine\"\n );\n\n return token.replace(/\\s+/g, ' ');\n }\n\n return token.replace(/\\s+/g, ' '); // Clean it anyway (just in case)\n },\n\n /**\n * @instance\n * @memberof WebexPlugin\n * @param {number} depth\n * @private\n * @returns {Object}\n */\n inspect(depth) {\n return util.inspect(\n omit(\n this.serialize({\n props: true,\n session: true,\n derived: true,\n }),\n 'boundedStorage',\n 'unboundedStorage',\n 'request',\n 'config'\n ),\n {depth}\n );\n },\n\n /**\n * Invokes all `onBeforeLogout` handlers in the scope of their plugin, clears\n * all stores, and revokes the access token\n * Note: If you're using the sdk in a server environment, you may be more\n * interested in {@link `webex.internal.mercury.disconnect()`| Mercury#disconnect()}\n * and {@link `webex.internal.device.unregister()`|Device#unregister()}\n * or {@link `webex.phone.unregister()`|Phone#unregister}\n * @instance\n * @memberof WebexCore\n * @param {Object} options Passed as the first argument to all\n * `onBeforeLogout` handlers\n * @returns {Promise}\n */\n logout(options, ...rest) {\n // prefer the refresh token, but for clients that don't have one, fallback\n // to the access token\n const token =\n this.credentials.supertoken &&\n (this.credentials.supertoken.refresh_token || this.credentials.supertoken.access_token);\n\n options = Object.assign({token}, options);\n\n // onBeforeLogout should be executed in the opposite order in which handlers\n // were registered. In that way, wdm unregister() will be above mercury\n // disconnect(), but disconnect() will execute first.\n // eslint-disable-next-line arrow-body-style\n return this.config.onBeforeLogout\n .reverse()\n .reduce(\n (promise, {plugin, fn}) =>\n promise.then(() => {\n return (\n Promise.resolve(\n Reflect.apply(fn, this[plugin] || this.internal[plugin], [options, ...rest])\n )\n // eslint-disable-next-line max-nested-callbacks\n .catch((err) => {\n this.logger.warn(`onBeforeLogout from plugin ${plugin}: failed`, err);\n })\n );\n }),\n Promise.resolve()\n )\n .then(() => Promise.all([this.boundedStorage.clear(), this.unboundedStorage.clear()]))\n .then(() => this.credentials.invalidate(...rest))\n .then(\n () =>\n this.authorization &&\n this.authorization.logout &&\n this.authorization.logout(options, ...rest)\n )\n .then(() => this.trigger('client:logout'));\n },\n\n /**\n * General purpose wrapper to submit metrics via the metrics plugin (if the\n * metrics plugin is installed)\n * @instance\n * @memberof WebexCore\n * @returns {Promise}\n */\n measure(...args) {\n if (this.metrics) {\n return this.metrics.sendUnstructured(...args);\n }\n\n return Promise.resolve();\n },\n\n async upload(options) {\n if (!options.file) {\n return Promise.reject(new Error('`options.file` is required'));\n }\n\n options.phases = options.phases || {};\n options.phases.initialize = options.phases.initialize || {};\n options.phases.upload = options.phases.upload || {};\n options.phases.finalize = options.phases.finalize || {};\n\n defaultsDeep(\n options.phases.initialize,\n {\n method: 'POST',\n body: {\n uploadProtocol: 'content-length',\n },\n },\n omit(options, 'file', 'phases')\n );\n\n defaultsDeep(options.phases.upload, {\n method: 'PUT',\n json: false,\n withCredentials: false,\n body: options.file,\n headers: {\n 'x-trans-id': uuid.v4(),\n authorization: undefined,\n },\n });\n\n defaultsDeep(\n options.phases.finalize,\n {\n method: 'POST',\n },\n omit(options, 'file', 'phases')\n );\n\n const shunt = new EventEmitter();\n\n const promise = this._uploadPhaseInitialize(options)\n .then(() => {\n const p = this._uploadPhaseUpload(options);\n\n transferEvents('progress', p, shunt);\n\n return p;\n })\n .then((...args) => this._uploadPhaseFinalize(options, ...args))\n .then((res) => ({...res.body, ...res.headers}));\n\n proxyEvents(shunt, promise);\n\n return promise;\n },\n\n _uploadPhaseInitialize: function _uploadPhaseInitialize(options) {\n this.logger.debug('client: initiating upload session');\n\n return this.request(options.phases.initialize)\n .then((...args) => {\n const fileUploadSizeLimitInBytes =\n (args[0].body.fileUploadSizeLimit || MAX_FILE_SIZE_IN_MB) * 1024 * 1024;\n const currentFileSizeInBytes = options.file.byteLength;\n\n if (fileUploadSizeLimitInBytes && fileUploadSizeLimitInBytes < currentFileSizeInBytes) {\n return this._uploadAbortSession(currentFileSizeInBytes, ...args);\n }\n\n return this._uploadApplySession(options, ...args);\n })\n .then((res) => {\n this.logger.debug('client: initiated upload session');\n\n return res;\n });\n },\n\n _uploadAbortSession(currentFileSizeInBytes, response) {\n this.logger.debug('client: deleting uploaded file');\n\n return this.request({\n method: 'DELETE',\n url: response.body.url,\n headers: response.options.headers,\n }).then(() => {\n this.logger.debug('client: deleting uploaded file complete');\n\n const abortErrorDetails = {\n currentFileSizeInBytes,\n fileUploadSizeLimitInMB: response.body.fileUploadSizeLimit || MAX_FILE_SIZE_IN_MB,\n message: 'file-upload-size-limit-enabled',\n };\n\n return Promise.reject(new Error(`${JSON.stringify(abortErrorDetails)}`));\n });\n },\n\n _uploadApplySession(options, res) {\n const session = res.body;\n\n ['upload', 'finalize'].reduce((opts, key) => {\n opts[key] = Object.keys(opts[key]).reduce((phaseOptions, phaseKey) => {\n if (phaseKey.startsWith('$')) {\n phaseOptions[phaseKey.substr(1)] = phaseOptions[phaseKey](session);\n Reflect.deleteProperty(phaseOptions, phaseKey);\n }\n\n return phaseOptions;\n }, opts[key]);\n\n return opts;\n }, options.phases);\n },\n\n @retry\n _uploadPhaseUpload(options) {\n this.logger.debug('client: uploading file');\n\n const promise = this.request(options.phases.upload).then((res) => {\n this.logger.debug('client: uploaded file');\n\n return res;\n });\n\n proxyEvents(options.phases.upload.upload, promise);\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV === 'test') {\n promise.on('progress', (event) => {\n this.logger.info('upload progress', event.loaded, event.total);\n });\n }\n\n return promise;\n },\n\n _uploadPhaseFinalize: function _uploadPhaseFinalize(options) {\n this.logger.debug('client: finalizing upload session');\n\n return this.request(options.phases.finalize).then((res) => {\n this.logger.debug('client: finalized upload session');\n\n return res;\n });\n },\n});\n\nWebexCore.version = PACKAGE_VERSION;\n\nmixinWebexInternalCorePlugins(WebexInternalCore, config, interceptors);\nmixinWebexCorePlugins(WebexCore, config, interceptors);\n\nexport default WebexCore;\n\n/**\n * @method registerPlugin\n * @param {string} name\n * @param {function} constructor\n * @param {Object} options\n * @param {Array<string>} options.proxies\n * @param {Object} options.interceptors\n * @returns {null}\n */\nexport function registerPlugin(name, constructor, options = {}) {\n WebexCore.registerPlugin(name, constructor, options);\n}\n\n/**\n * Registers plugins used by internal products that do not talk to public APIs.\n * @method registerInternalPlugin\n * @param {string} name\n * @param {function} constructor\n * @param {Object} options\n * @param {Object} options.interceptors\n * @private\n * @returns {null}\n */\nexport function registerInternalPlugin(name, constructor, options) {\n WebexInternalCore.registerPlugin(name, constructor, options);\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WebexInternalCore","AmpState","extend","derived","ready","deps","fn","_children","reduce","name","inspect","depth","util","serialize","props","session"],"sources":["webex-internal-core.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\nimport AmpState from 'ampersand-state';\n\n/**\n * WebexInternalCore is an extra layer of nesting to make it blatantly clear that\n * private plugins are, in fact, private.\n * @class\n */\nconst WebexInternalCore = AmpState.extend({\n derived: {\n ready: {\n deps: [],\n fn() {\n return Object.keys(this._children).reduce(\n (ready, name) => ready && this[name] && this[name].ready !== false,\n true\n );\n },\n },\n },\n\n /**\n * @instance\n * @memberof WebexPlugin\n * @param {number} depth\n * @private\n * @returns {Object}\n */\n inspect(depth) {\n return util.inspect(\n this.serialize({\n props: true,\n session: true,\n derived: true,\n }),\n {depth}\n );\n },\n});\n\nexport default WebexInternalCore;\n"],"mappings":";;;;;;;;;AAIA;AAEA;AANA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"names":["_util","_interopRequireDefault","require","_ampersandState","WebexInternalCore","AmpState","extend","derived","ready","deps","fn","_this","_keys","default","_children","reduce","name","inspect","depth","util","serialize","props","session","_default","exports"],"sources":["webex-internal-core.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\nimport AmpState from 'ampersand-state';\n\n/**\n * WebexInternalCore is an extra layer of nesting to make it blatantly clear that\n * private plugins are, in fact, private.\n * @class\n */\nconst WebexInternalCore = AmpState.extend({\n derived: {\n ready: {\n deps: [],\n fn() {\n return Object.keys(this._children).reduce(\n (ready, name) => ready && this[name] && this[name].ready !== false,\n true\n );\n },\n },\n },\n\n /**\n * @instance\n * @memberof WebexPlugin\n * @param {number} depth\n * @private\n * @returns {Object}\n */\n inspect(depth) {\n return util.inspect(\n this.serialize({\n props: true,\n session: true,\n derived: true,\n }),\n {depth}\n );\n },\n});\n\nexport default WebexInternalCore;\n"],"mappings":";;;;;;;;;AAIA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AANA;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA,IAAME,iBAAiB,GAAGC,uBAAQ,CAACC,MAAM,CAAC;EACxCC,OAAO,EAAE;IACPC,KAAK,EAAE;MACLC,IAAI,EAAE,EAAE;MACRC,EAAE,WAAAA,GAAA,EAAG;QAAA,IAAAC,KAAA;QACH,OAAO,IAAAC,KAAA,CAAAC,OAAA,EAAY,IAAI,CAACC,SAAS,CAAC,CAACC,MAAM,CACvC,UAACP,KAAK,EAAEQ,IAAI;UAAA,OAAKR,KAAK,IAAIG,KAAI,CAACK,IAAI,CAAC,IAAIL,KAAI,CAACK,IAAI,CAAC,CAACR,KAAK,KAAK,KAAK;QAAA,GAClE,IACF,CAAC;MACH;IACF;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACES,OAAO,WAAAA,QAACC,KAAK,EAAE;IACb,OAAOC,aAAI,CAACF,OAAO,CACjB,IAAI,CAACG,SAAS,CAAC;MACbC,KAAK,EAAE,IAAI;MACXC,OAAO,EAAE,IAAI;MACbf,OAAO,EAAE;IACX,CAAC,CAAC,EACF;MAACW,KAAK,EAALA;IAAK,CACR,CAAC;EACH;AACF,CAAC,CAAC;AAAC,IAAAK,QAAA,GAAAC,OAAA,CAAAX,OAAA,GAEYT,iBAAiB"}
|
package/jest.config.js
ADDED