@webex/webex-core 2.59.4-next.1 → 2.59.5

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.
Files changed (34) hide show
  1. package/dist/interceptors/redirect.js +3 -3
  2. package/dist/interceptors/redirect.js.map +1 -1
  3. package/dist/interceptors/request-event.js +5 -5
  4. package/dist/interceptors/request-event.js.map +1 -1
  5. package/dist/interceptors/request-logger.js +12 -8
  6. package/dist/interceptors/request-logger.js.map +1 -1
  7. package/dist/interceptors/response-logger.js +7 -6
  8. package/dist/interceptors/response-logger.js.map +1 -1
  9. package/dist/interceptors/user-agent.js +4 -4
  10. package/dist/interceptors/user-agent.js.map +1 -1
  11. package/dist/interceptors/webex-user-agent.js +5 -5
  12. package/dist/interceptors/webex-user-agent.js.map +1 -1
  13. package/dist/lib/batcher.js +3 -7
  14. package/dist/lib/batcher.js.map +1 -1
  15. package/dist/lib/credentials/credentials.js +10 -7
  16. package/dist/lib/credentials/credentials.js.map +1 -1
  17. package/dist/lib/credentials/token.js +3 -3
  18. package/dist/lib/credentials/token.js.map +1 -1
  19. package/dist/lib/services/services.js +1 -1
  20. package/dist/lib/storage/decorators.js +16 -18
  21. package/dist/lib/storage/decorators.js.map +1 -1
  22. package/dist/lib/storage/make-webex-plugin-store.js +10 -8
  23. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  24. package/dist/lib/webex-core-plugin-mixin.js +14 -13
  25. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  26. package/dist/lib/webex-internal-core-plugin-mixin.js +14 -13
  27. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  28. package/dist/lib/webex-plugin.js +6 -4
  29. package/dist/lib/webex-plugin.js.map +1 -1
  30. package/dist/plugins/logger.js +1 -1
  31. package/dist/webex-core.js +34 -26
  32. package/dist/webex-core.js.map +1 -1
  33. package/package.json +19 -20
  34. package/test/unit/spec/interceptors/webex-user-agent.js +6 -6
@@ -24,11 +24,19 @@ 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"));
27
36
  var _events = require("events");
28
37
  var _util = _interopRequireDefault(require("util"));
29
38
  var _common = require("@webex/common");
30
39
  var _httpCore = require("@webex/http-core");
31
- var _lodash = require("lodash");
32
40
  var _ampersandState = _interopRequireDefault(require("ampersand-state"));
33
41
  var _uuid = _interopRequireDefault(require("uuid"));
34
42
  var _auth = _interopRequireDefault(require("./interceptors/auth"));
@@ -91,7 +99,7 @@ var MAX_FILE_SIZE_IN_MB = 2048;
91
99
  * @class
92
100
  */
93
101
  var WebexCore = _ampersandState.default.extend((_obj = {
94
- version: "2.59.4-next.1",
102
+ version: "2.59.5",
95
103
  children: {
96
104
  internal: _webexInternalCore.default
97
105
  },
@@ -110,23 +118,23 @@ var WebexCore = _ampersandState.default.extend((_obj = {
110
118
  } else {
111
119
  // Reminder: order is important here
112
120
  ['credentials.authorization', 'authorization', 'credentials.supertoken.supertoken', 'supertoken', 'access_token', 'credentials.authorization.supertoken'].forEach(function (path) {
113
- var val = (0, _lodash.get)(attrs, path);
121
+ var val = (0, _get2.default)(attrs, path);
114
122
  if (val) {
115
- (0, _lodash.unset)(attrs, path);
116
- (0, _lodash.set)(attrs, 'credentials.supertoken', val);
123
+ (0, _unset2.default)(attrs, path);
124
+ (0, _set2.default)(attrs, 'credentials.supertoken', val);
117
125
  }
118
126
  });
119
127
  ['credentials', 'credentials.authorization'].forEach(function (path) {
120
- var val = (0, _lodash.get)(attrs, path);
128
+ var val = (0, _get2.default)(attrs, path);
121
129
  if (typeof val === 'string') {
122
- (0, _lodash.unset)(attrs, path);
123
- (0, _lodash.set)(attrs, 'credentials.supertoken', val);
130
+ (0, _unset2.default)(attrs, path);
131
+ (0, _set2.default)(attrs, 'credentials.supertoken', val);
124
132
  }
125
133
  });
126
- if (typeof (0, _lodash.get)(attrs, 'credentials.access_token') === 'string') {
134
+ if (typeof (0, _get2.default)(attrs, 'credentials.access_token') === 'string') {
127
135
  // Send access_token to get validated and corrected and then set it
128
- (0, _lodash.set)(attrs, 'credentials.access_token', this.bearerValidator((0, _lodash.get)(attrs, 'credentials.access_token').trim()));
129
- (0, _lodash.set)(attrs, 'credentials.supertoken', attrs.credentials);
136
+ (0, _set2.default)(attrs, 'credentials.access_token', this.bearerValidator((0, _get2.default)(attrs, 'credentials.access_token').trim()));
137
+ (0, _set2.default)(attrs, 'credentials.supertoken', attrs.credentials);
130
138
  }
131
139
  }
132
140
  return (0, _apply.default)(_ampersandState.default, this, [attrs, options]);
@@ -250,7 +258,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
250
258
  for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
251
259
  rest[_key - 3] = arguments[_key];
252
260
  }
253
- if ((0, _lodash.isString)(ctx)) {
261
+ if ((0, _isString2.default)(ctx)) {
254
262
  rest.unshift(name);
255
263
  name = ctx;
256
264
  ctx = {
@@ -278,7 +286,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
278
286
  return _promise.default.resolve(tx.fn.apply(tx, [ctx].concat(rest)));
279
287
  });
280
288
  }, _promise.default.resolve()).then(function () {
281
- return (0, _lodash.last)(rest);
289
+ return (0, _last2.default)(rest);
282
290
  });
283
291
  },
284
292
  /**
@@ -302,7 +310,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
302
310
  initialize: function initialize() {
303
311
  var _this4 = this;
304
312
  var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
305
- this.config = (0, _lodash.merge)({}, _config.default, attrs.config);
313
+ this.config = (0, _merge2.default)({}, _config.default, attrs.config);
306
314
 
307
315
  // There's some unfortunateness with the way {@link AmpersandState#children}
308
316
  // get initialized. We'll fire the change:config event so that
@@ -357,7 +365,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
357
365
  });
358
366
  var addInterceptor = function addInterceptor(ints, key) {
359
367
  var interceptor = interceptors[key];
360
- if (!(0, _lodash.isFunction)(interceptor)) {
368
+ if (!(0, _isFunction2.default)(interceptor)) {
361
369
  return ints;
362
370
  }
363
371
  ints.push((0, _apply.default)(interceptor, _this4, []));
@@ -373,9 +381,9 @@ var WebexCore = _ampersandState.default.extend((_obj = {
373
381
  json: true,
374
382
  interceptors: ints
375
383
  });
376
- var sessionId = "".concat((0, _lodash.get)(this, 'config.trackingIdPrefix', 'webex-js-sdk'), "_").concat((0, _lodash.get)(this, 'config.trackingIdBase', _uuid.default.v4()));
377
- if ((0, _lodash.get)(this, 'config.trackingIdSuffix')) {
378
- sessionId += "_".concat((0, _lodash.get)(this, 'config.trackingIdSuffix'));
384
+ var sessionId = "".concat((0, _get2.default)(this, 'config.trackingIdPrefix', 'webex-js-sdk'), "_").concat((0, _get2.default)(this, 'config.trackingIdBase', _uuid.default.v4()));
385
+ if ((0, _get2.default)(this, 'config.trackingIdSuffix')) {
386
+ sessionId += "_".concat((0, _get2.default)(this, 'config.trackingIdSuffix'));
379
387
  }
380
388
  this.sessionId = sessionId;
381
389
  },
@@ -391,7 +399,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
391
399
  */
392
400
  setConfig: function setConfig() {
393
401
  var newConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
394
- this.config = (0, _lodash.merge)({}, this.config, newConfig);
402
+ this.config = (0, _merge2.default)({}, this.config, newConfig);
395
403
  },
396
404
  /**
397
405
  *
@@ -423,7 +431,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
423
431
  * @returns {Object}
424
432
  */
425
433
  inspect: function inspect(depth) {
426
- return _util.default.inspect((0, _lodash.omit)(this.serialize({
434
+ return _util.default.inspect((0, _omit2.default)(this.serialize({
427
435
  props: true,
428
436
  session: true,
429
437
  derived: true
@@ -513,13 +521,13 @@ var WebexCore = _ampersandState.default.extend((_obj = {
513
521
  options.phases.initialize = options.phases.initialize || {};
514
522
  options.phases.upload = options.phases.upload || {};
515
523
  options.phases.finalize = options.phases.finalize || {};
516
- (0, _lodash.defaultsDeep)(options.phases.initialize, {
524
+ (0, _defaultsDeep2.default)(options.phases.initialize, {
517
525
  method: 'POST',
518
526
  body: {
519
527
  uploadProtocol: 'content-length'
520
528
  }
521
- }, (0, _lodash.omit)(options, 'file', 'phases'));
522
- (0, _lodash.defaultsDeep)(options.phases.upload, {
529
+ }, (0, _omit2.default)(options, 'file', 'phases'));
530
+ (0, _defaultsDeep2.default)(options.phases.upload, {
523
531
  method: 'PUT',
524
532
  json: false,
525
533
  withCredentials: false,
@@ -529,9 +537,9 @@ var WebexCore = _ampersandState.default.extend((_obj = {
529
537
  authorization: undefined
530
538
  }
531
539
  });
532
- (0, _lodash.defaultsDeep)(options.phases.finalize, {
540
+ (0, _defaultsDeep2.default)(options.phases.finalize, {
533
541
  method: 'POST'
534
- }, (0, _lodash.omit)(options, 'file', 'phases'));
542
+ }, (0, _omit2.default)(options, 'file', 'phases'));
535
543
  shunt = new _events.EventEmitter();
536
544
  promise = _this6._uploadPhaseInitialize(options).then(function () {
537
545
  var p = _this6._uploadPhaseUpload(options);
@@ -628,7 +636,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
628
636
  });
629
637
  }
630
638
  }, ((0, _applyDecoratedDescriptor2.default)(_obj, "_uploadPhaseUpload", [_common.retry], (0, _getOwnPropertyDescriptor.default)(_obj, "_uploadPhaseUpload"), _obj)), _obj));
631
- WebexCore.version = "2.59.4-next.1";
639
+ WebexCore.version = "2.59.5";
632
640
  (0, _webexInternalCorePluginMixin.default)(_webexInternalCore.default, _config.default, interceptors);
633
641
  (0, _webexCorePluginMixin.default)(WebexCore, _config.default, interceptors);
634
642
  var _default = WebexCore;
@@ -1 +1 @@
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","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_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","_this2","predicates","payloadTransformer","p","ctx","webex","_promise","all","map","test","then","shouldTransform","extract","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","listenTo","_len3","_key3","addInterceptor","ints","interceptor","isFunction","includes","requestDefaults","json","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 {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","_ampersandState","_uuid","_auth","_networkTiming","_payloadTransformer","_redirect","_requestEvent","_requestLogger","_requestTiming","_responseLogger","_webexHttpError","_userAgent","_webexTrackingId","_webexUserAgent","_rateLimit","_embargo","_defaultOptions","_config","_storage","_webexCorePluginMixin","_webexInternalCorePluginMixin","_webexInternalCore","_obj","ownKeys","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor2","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_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","_get2","_unset2","_set2","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","_this2","predicates","payloadTransformer","p","ctx","webex","_promise","all","map","test","then","shouldTransform","extract","data","d","Boolean","promise","_ref","alias","applyNamedTransform","resolve","_this3","_len","rest","Array","_key","_isString2","unshift","_len2","args","_key2","concat","transforms","tx","_ctx","_last2","getWindow","window","initialize","_this4","_merge2","trigger","onLoaded","stopListening","nextTick","listenToAndRun","onReady","prototype","listenTo","_len3","_key3","addInterceptor","ints","interceptor","_isFunction2","includes","requestDefaults","json","uuid","v4","setConfig","newConfig","token","split","console","warn","replace","info","inspect","depth","util","_omit2","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","_defaultsDeep2","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 {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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"}
package/package.json CHANGED
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "name": "@webex/webex-core",
3
+ "version": "2.59.5",
3
4
  "description": "Plugin handling for Cisco Webex",
4
5
  "license": "MIT",
5
6
  "contributors": [
@@ -31,16 +32,16 @@
31
32
  "devDependencies": {
32
33
  "@babel/core": "^7.17.10",
33
34
  "@sinonjs/fake-timers": "^6.0.1",
34
- "@webex/babel-config-legacy": "^0.0.0",
35
- "@webex/eslint-config-legacy": "^0.0.0",
36
- "@webex/jest-config-legacy": "^0.0.0",
37
- "@webex/legacy-tools": "^0.0.0",
38
- "@webex/test-helper-chai": "^2.59.4-next.1",
39
- "@webex/test-helper-make-local-url": "^2.59.4-next.1",
40
- "@webex/test-helper-mocha": "^2.59.4-next.1",
41
- "@webex/test-helper-mock-webex": "^2.59.4-next.1",
42
- "@webex/test-helper-refresh-callback": "^2.59.4-next.1",
43
- "@webex/test-helper-test-users": "^2.59.4-next.1",
35
+ "@webex/babel-config-legacy": "2.59.5",
36
+ "@webex/eslint-config-legacy": "2.59.5",
37
+ "@webex/jest-config-legacy": "2.59.5",
38
+ "@webex/legacy-tools": "2.59.5",
39
+ "@webex/test-helper-chai": "2.59.5",
40
+ "@webex/test-helper-make-local-url": "2.59.5",
41
+ "@webex/test-helper-mocha": "2.59.5",
42
+ "@webex/test-helper-mock-webex": "2.59.5",
43
+ "@webex/test-helper-refresh-callback": "2.59.5",
44
+ "@webex/test-helper-test-users": "2.59.5",
44
45
  "chai": "^4.3.4",
45
46
  "chai-as-promised": "^7.1.1",
46
47
  "eslint": "^8.24.0",
@@ -48,12 +49,12 @@
48
49
  "sinon": "^9.2.4"
49
50
  },
50
51
  "dependencies": {
51
- "@webex/common": "^2.59.4-next.1",
52
- "@webex/common-timers": "^2.59.4-next.1",
53
- "@webex/http-core": "^2.59.4-next.1",
54
- "@webex/internal-plugin-device": "^2.59.4-next.1",
55
- "@webex/plugin-logger": "^2.59.4-next.1",
56
- "@webex/storage-adapter-spec": "^2.59.4-next.1",
52
+ "@webex/common": "2.59.5",
53
+ "@webex/common-timers": "2.59.5",
54
+ "@webex/http-core": "2.59.5",
55
+ "@webex/internal-plugin-device": "2.59.5",
56
+ "@webex/plugin-logger": "2.59.5",
57
+ "@webex/storage-adapter-spec": "2.59.5",
57
58
  "ampersand-collection": "^2.0.2",
58
59
  "ampersand-events": "^2.0.2",
59
60
  "ampersand-state": "^5.0.3",
@@ -66,12 +67,10 @@
66
67
  "scripts": {
67
68
  "build": "yarn build:src",
68
69
  "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
69
- "deploy:npm": "yarn npm publish",
70
70
  "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
71
71
  "test:browser:broken": "webex-legacy-tools test --integration --unit --runner karma",
72
72
  "test:integration:broken": "webex-legacy-tools test --integration --runner mocha",
73
73
  "test:style": "eslint ./src/**/*.*",
74
74
  "test:unit": "webex-legacy-tools test --unit --runner jest"
75
- },
76
- "version": "2.59.4-next.1"
77
- }
75
+ }
76
+ }
@@ -27,7 +27,7 @@ describe('webex-core', () => {
27
27
  assert.property(options.headers, 'spark-user-agent');
28
28
  assert.equal(
29
29
  options.headers['spark-user-agent'],
30
- `webex-js-sdk/development (${typeof window === 'undefined' ? 'node' : 'web'})`
30
+ `webex-js-sdk/${pkg.version} (${typeof window === 'undefined' ? 'node' : 'web'})`
31
31
  );
32
32
  });
33
33
 
@@ -47,7 +47,7 @@ describe('webex-core', () => {
47
47
  assert.property(options.headers, 'spark-user-agent');
48
48
  assert.equal(
49
49
  options.headers['spark-user-agent'],
50
- `webex-js-sdk/development (${typeof window === 'undefined' ? 'node' : 'web'})`
50
+ `webex-js-sdk/${pkg.version} (${typeof window === 'undefined' ? 'node' : 'web'})`
51
51
  );
52
52
  });
53
53
 
@@ -74,7 +74,7 @@ describe('webex-core', () => {
74
74
  assert.property(options.headers, 'spark-user-agent');
75
75
  assert.equal(
76
76
  options.headers['spark-user-agent'],
77
- `webex-js-sdk/development (${
77
+ `webex-js-sdk/${pkg.version} (${
78
78
  typeof window === 'undefined' ? 'node' : 'web'
79
79
  }) sample/1.0.0`
80
80
  );
@@ -104,7 +104,7 @@ describe('webex-core', () => {
104
104
  assert.property(options.headers, 'spark-user-agent');
105
105
  assert.equal(
106
106
  options.headers['spark-user-agent'],
107
- `webex-js-sdk/development (${
107
+ `webex-js-sdk/${pkg.version} (${
108
108
  typeof window === 'undefined' ? 'node' : 'web'
109
109
  }) sample/1.0.0 custom-label/1.0.0`
110
110
  );
@@ -128,7 +128,7 @@ describe('webex-core', () => {
128
128
  assert.property(options.headers, 'spark-user-agent');
129
129
  assert.equal(
130
130
  options.headers['spark-user-agent'],
131
- `webex/development (${typeof window === 'undefined' ? 'node' : 'web'})`
131
+ `webex/${pkg.version} (${typeof window === 'undefined' ? 'node' : 'web'})`
132
132
  );
133
133
  });
134
134
 
@@ -149,7 +149,7 @@ describe('webex-core', () => {
149
149
  assert.property(options.headers, 'spark-user-agent');
150
150
  assert.equal(
151
151
  options.headers['spark-user-agent'],
152
- `webex/development (${typeof window === 'undefined' ? 'node' : 'web'})`
152
+ `webex/${pkg.version} (${typeof window === 'undefined' ? 'node' : 'web'})`
153
153
  );
154
154
  });
155
155
  });