@webex/webex-core 2.59.2 → 2.59.3-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/.eslintrc.js +6 -6
  2. package/README.md +79 -79
  3. package/babel.config.js +3 -3
  4. package/dist/config.js +24 -24
  5. package/dist/config.js.map +1 -1
  6. package/dist/credentials-config.js +56 -56
  7. package/dist/credentials-config.js.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/interceptors/auth.js +28 -28
  10. package/dist/interceptors/auth.js.map +1 -1
  11. package/dist/interceptors/default-options.js +24 -24
  12. package/dist/interceptors/default-options.js.map +1 -1
  13. package/dist/interceptors/embargo.js +9 -9
  14. package/dist/interceptors/embargo.js.map +1 -1
  15. package/dist/interceptors/network-timing.js +19 -19
  16. package/dist/interceptors/network-timing.js.map +1 -1
  17. package/dist/interceptors/payload-transformer.js +19 -19
  18. package/dist/interceptors/payload-transformer.js.map +1 -1
  19. package/dist/interceptors/rate-limit.js +40 -40
  20. package/dist/interceptors/rate-limit.js.map +1 -1
  21. package/dist/interceptors/redirect.js +13 -13
  22. package/dist/interceptors/redirect.js.map +1 -1
  23. package/dist/interceptors/request-event.js +23 -23
  24. package/dist/interceptors/request-event.js.map +1 -1
  25. package/dist/interceptors/request-logger.js +13 -13
  26. package/dist/interceptors/request-logger.js.map +1 -1
  27. package/dist/interceptors/request-timing.js +23 -23
  28. package/dist/interceptors/request-timing.js.map +1 -1
  29. package/dist/interceptors/response-logger.js +19 -19
  30. package/dist/interceptors/response-logger.js.map +1 -1
  31. package/dist/interceptors/user-agent.js +29 -29
  32. package/dist/interceptors/user-agent.js.map +1 -1
  33. package/dist/interceptors/webex-tracking-id.js +15 -15
  34. package/dist/interceptors/webex-tracking-id.js.map +1 -1
  35. package/dist/interceptors/webex-user-agent.js +13 -13
  36. package/dist/interceptors/webex-user-agent.js.map +1 -1
  37. package/dist/lib/batcher.js +83 -83
  38. package/dist/lib/batcher.js.map +1 -1
  39. package/dist/lib/credentials/credentials.js +103 -103
  40. package/dist/lib/credentials/credentials.js.map +1 -1
  41. package/dist/lib/credentials/grant-errors.js +17 -17
  42. package/dist/lib/credentials/grant-errors.js.map +1 -1
  43. package/dist/lib/credentials/index.js +2 -2
  44. package/dist/lib/credentials/index.js.map +1 -1
  45. package/dist/lib/credentials/scope.js +11 -11
  46. package/dist/lib/credentials/scope.js.map +1 -1
  47. package/dist/lib/credentials/token-collection.js +2 -2
  48. package/dist/lib/credentials/token-collection.js.map +1 -1
  49. package/dist/lib/credentials/token.js +145 -145
  50. package/dist/lib/credentials/token.js.map +1 -1
  51. package/dist/lib/page.js +49 -49
  52. package/dist/lib/page.js.map +1 -1
  53. package/dist/lib/services/constants.js.map +1 -1
  54. package/dist/lib/services/index.js +2 -2
  55. package/dist/lib/services/index.js.map +1 -1
  56. package/dist/lib/services/interceptors/server-error.js +9 -9
  57. package/dist/lib/services/interceptors/server-error.js.map +1 -1
  58. package/dist/lib/services/interceptors/service.js +24 -24
  59. package/dist/lib/services/interceptors/service.js.map +1 -1
  60. package/dist/lib/services/metrics.js.map +1 -1
  61. package/dist/lib/services/service-catalog.js +104 -104
  62. package/dist/lib/services/service-catalog.js.map +1 -1
  63. package/dist/lib/services/service-fed-ramp.js.map +1 -1
  64. package/dist/lib/services/service-host.js +134 -134
  65. package/dist/lib/services/service-host.js.map +1 -1
  66. package/dist/lib/services/service-registry.js +175 -175
  67. package/dist/lib/services/service-registry.js.map +1 -1
  68. package/dist/lib/services/service-state.js +38 -38
  69. package/dist/lib/services/service-state.js.map +1 -1
  70. package/dist/lib/services/service-url.js +31 -31
  71. package/dist/lib/services/service-url.js.map +1 -1
  72. package/dist/lib/services/services.js +245 -245
  73. package/dist/lib/services/services.js.map +1 -1
  74. package/dist/lib/stateless-webex-plugin.js +28 -28
  75. package/dist/lib/stateless-webex-plugin.js.map +1 -1
  76. package/dist/lib/storage/decorators.js +27 -27
  77. package/dist/lib/storage/decorators.js.map +1 -1
  78. package/dist/lib/storage/errors.js +4 -4
  79. package/dist/lib/storage/errors.js.map +1 -1
  80. package/dist/lib/storage/index.js.map +1 -1
  81. package/dist/lib/storage/make-webex-plugin-store.js +44 -44
  82. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  83. package/dist/lib/storage/make-webex-store.js +40 -40
  84. package/dist/lib/storage/make-webex-store.js.map +1 -1
  85. package/dist/lib/storage/memory-store-adapter.js +9 -9
  86. package/dist/lib/storage/memory-store-adapter.js.map +1 -1
  87. package/dist/lib/webex-core-plugin-mixin.js +13 -13
  88. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  89. package/dist/lib/webex-http-error.js +9 -9
  90. package/dist/lib/webex-http-error.js.map +1 -1
  91. package/dist/lib/webex-internal-core-plugin-mixin.js +13 -13
  92. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  93. package/dist/lib/webex-plugin.js +36 -36
  94. package/dist/lib/webex-plugin.js.map +1 -1
  95. package/dist/plugins/logger.js +9 -9
  96. package/dist/plugins/logger.js.map +1 -1
  97. package/dist/webex-core.js +104 -104
  98. package/dist/webex-core.js.map +1 -1
  99. package/dist/webex-internal-core.js +12 -12
  100. package/dist/webex-internal-core.js.map +1 -1
  101. package/jest.config.js +3 -3
  102. package/package.json +20 -19
  103. package/process +1 -1
  104. package/src/config.js +90 -90
  105. package/src/credentials-config.js +212 -212
  106. package/src/index.js +62 -62
  107. package/src/interceptors/auth.js +186 -186
  108. package/src/interceptors/default-options.js +55 -55
  109. package/src/interceptors/embargo.js +43 -43
  110. package/src/interceptors/network-timing.js +54 -54
  111. package/src/interceptors/payload-transformer.js +55 -55
  112. package/src/interceptors/rate-limit.js +169 -169
  113. package/src/interceptors/redirect.js +106 -106
  114. package/src/interceptors/request-event.js +93 -93
  115. package/src/interceptors/request-logger.js +78 -78
  116. package/src/interceptors/request-timing.js +65 -65
  117. package/src/interceptors/response-logger.js +98 -98
  118. package/src/interceptors/user-agent.js +77 -77
  119. package/src/interceptors/webex-tracking-id.js +73 -73
  120. package/src/interceptors/webex-user-agent.js +79 -79
  121. package/src/lib/batcher.js +307 -307
  122. package/src/lib/credentials/credentials.js +552 -552
  123. package/src/lib/credentials/grant-errors.js +92 -92
  124. package/src/lib/credentials/index.js +16 -16
  125. package/src/lib/credentials/scope.js +34 -34
  126. package/src/lib/credentials/token-collection.js +17 -17
  127. package/src/lib/credentials/token.js +559 -559
  128. package/src/lib/page.js +159 -159
  129. package/src/lib/services/constants.js +9 -9
  130. package/src/lib/services/index.js +26 -26
  131. package/src/lib/services/interceptors/server-error.js +48 -48
  132. package/src/lib/services/interceptors/service.js +101 -101
  133. package/src/lib/services/metrics.js +4 -4
  134. package/src/lib/services/service-catalog.js +435 -435
  135. package/src/lib/services/service-fed-ramp.js +4 -4
  136. package/src/lib/services/service-host.js +267 -267
  137. package/src/lib/services/service-registry.js +465 -465
  138. package/src/lib/services/service-state.js +78 -78
  139. package/src/lib/services/service-url.js +124 -124
  140. package/src/lib/services/services.js +1018 -1018
  141. package/src/lib/stateless-webex-plugin.js +98 -98
  142. package/src/lib/storage/decorators.js +220 -220
  143. package/src/lib/storage/errors.js +15 -15
  144. package/src/lib/storage/index.js +10 -10
  145. package/src/lib/storage/make-webex-plugin-store.js +211 -211
  146. package/src/lib/storage/make-webex-store.js +140 -140
  147. package/src/lib/storage/memory-store-adapter.js +79 -79
  148. package/src/lib/webex-core-plugin-mixin.js +114 -114
  149. package/src/lib/webex-http-error.js +61 -61
  150. package/src/lib/webex-internal-core-plugin-mixin.js +107 -107
  151. package/src/lib/webex-plugin.js +222 -222
  152. package/src/plugins/logger.js +60 -60
  153. package/src/webex-core.js +745 -745
  154. package/src/webex-internal-core.js +46 -46
  155. package/test/integration/spec/credentials/credentials.js +139 -139
  156. package/test/integration/spec/credentials/token.js +102 -102
  157. package/test/integration/spec/services/service-catalog.js +838 -838
  158. package/test/integration/spec/services/services.js +1221 -1221
  159. package/test/integration/spec/webex-core.js +178 -178
  160. package/test/unit/spec/_setup.js +44 -44
  161. package/test/unit/spec/credentials/credentials.js +1017 -1017
  162. package/test/unit/spec/credentials/token.js +441 -441
  163. package/test/unit/spec/interceptors/auth.js +521 -521
  164. package/test/unit/spec/interceptors/default-options.js +84 -84
  165. package/test/unit/spec/interceptors/embargo.js +144 -144
  166. package/test/unit/spec/interceptors/network-timing.js +49 -49
  167. package/test/unit/spec/interceptors/payload-transformer.js +155 -155
  168. package/test/unit/spec/interceptors/rate-limit.js +302 -302
  169. package/test/unit/spec/interceptors/redirect.js +102 -102
  170. package/test/unit/spec/interceptors/request-timing.js +92 -92
  171. package/test/unit/spec/interceptors/user-agent.js +76 -76
  172. package/test/unit/spec/interceptors/webex-tracking-id.js +76 -76
  173. package/test/unit/spec/interceptors/webex-user-agent.js +159 -159
  174. package/test/unit/spec/lib/batcher.js +330 -330
  175. package/test/unit/spec/lib/page.js +148 -148
  176. package/test/unit/spec/lib/webex-plugin.js +48 -48
  177. package/test/unit/spec/services/interceptors/server-error.js +204 -204
  178. package/test/unit/spec/services/interceptors/service.js +188 -188
  179. package/test/unit/spec/services/service-catalog.js +194 -194
  180. package/test/unit/spec/services/service-host.js +260 -260
  181. package/test/unit/spec/services/service-registry.js +747 -747
  182. package/test/unit/spec/services/service-state.js +60 -60
  183. package/test/unit/spec/services/service-url.js +258 -258
  184. package/test/unit/spec/services/services.js +348 -348
  185. package/test/unit/spec/storage/persist.js +50 -50
  186. package/test/unit/spec/storage/storage-adapter.js +12 -12
  187. package/test/unit/spec/storage/wait-for-value.js +81 -81
  188. package/test/unit/spec/webex-core.js +253 -253
  189. package/test/unit/spec/webex-internal-core.js +91 -91
@@ -95,11 +95,11 @@ var preInterceptors = ['ResponseLoggerInterceptor', 'RequestTimingInterceptor',
95
95
  var postInterceptors = ['HttpStatusInterceptor', 'NetworkTimingInterceptor', 'EmbargoInterceptor', 'RequestLoggerInterceptor', 'RateLimitInterceptor'];
96
96
  var MAX_FILE_SIZE_IN_MB = 2048;
97
97
 
98
- /**
99
- * @class
98
+ /**
99
+ * @class
100
100
  */
101
101
  var WebexCore = _ampersandState.default.extend((_obj = {
102
- version: "2.59.2",
102
+ version: "2.59.0",
103
103
  children: {
104
104
  internal: _webexInternalCore.default
105
105
  },
@@ -166,12 +166,12 @@ var WebexCore = _ampersandState.default.extend((_obj = {
166
166
  config: {
167
167
  type: 'object'
168
168
  },
169
- /**
170
- * When true, indicates that the initial load from the storage layer is
171
- * complete
172
- * @instance
173
- * @memberof WebexCore
174
- * @type {boolean}
169
+ /**
170
+ * When true, indicates that the initial load from the storage layer is
171
+ * complete
172
+ * @instance
173
+ * @memberof WebexCore
174
+ * @type {boolean}
175
175
  */
176
176
  loaded: {
177
177
  default: false,
@@ -188,21 +188,21 @@ var WebexCore = _ampersandState.default.extend((_obj = {
188
188
  type: 'string'
189
189
  }
190
190
  },
191
- /**
192
- * @instance
193
- * @memberof WebexCore
194
- * @param {[type]} args
195
- * @returns {[type]}
191
+ /**
192
+ * @instance
193
+ * @memberof WebexCore
194
+ * @param {[type]} args
195
+ * @returns {[type]}
196
196
  */
197
197
  refresh: function refresh() {
198
198
  var _this$credentials;
199
199
  return (_this$credentials = this.credentials).refresh.apply(_this$credentials, arguments);
200
200
  },
201
- /**
202
- * Applies the directionally appropriate transforms to the specified object
203
- * @param {string} direction
204
- * @param {Object} object
205
- * @returns {Promise}
201
+ /**
202
+ * Applies the directionally appropriate transforms to the specified object
203
+ * @param {string} direction
204
+ * @param {Object} object
205
+ * @returns {Promise}
206
206
  */
207
207
  transform: function transform(direction, object) {
208
208
  var _this2 = this;
@@ -246,12 +246,12 @@ var WebexCore = _ampersandState.default.extend((_obj = {
246
246
  return object;
247
247
  });
248
248
  },
249
- /**
250
- * Applies the directionally appropriate transform to the specified parameters
251
- * @param {string} direction
252
- * @param {Object} ctx
253
- * @param {string} name
254
- * @returns {Promise}
249
+ /**
250
+ * Applies the directionally appropriate transform to the specified parameters
251
+ * @param {string} direction
252
+ * @param {Object} ctx
253
+ * @param {string} name
254
+ * @returns {Promise}
255
255
  */
256
256
  applyNamedTransform: function applyNamedTransform(direction, ctx, name) {
257
257
  var _this3 = this;
@@ -289,23 +289,23 @@ var WebexCore = _ampersandState.default.extend((_obj = {
289
289
  return (0, _last2.default)(rest);
290
290
  });
291
291
  },
292
- /**
293
- * @private
294
- * @returns {Window}
292
+ /**
293
+ * @private
294
+ * @returns {Window}
295
295
  */
296
296
  getWindow: function getWindow() {
297
297
  // eslint-disable-next-line
298
298
  return window;
299
299
  },
300
- /**
301
- * Initializer
302
- *
303
- * @emits WebexCore#loaded
304
- * @emits WebexCore#ready
305
- * @instance
306
- * @memberof WebexCore
307
- * @param {Object} attrs
308
- * @returns {WebexCore}
300
+ /**
301
+ * Initializer
302
+ *
303
+ * @emits WebexCore#loaded
304
+ * @emits WebexCore#ready
305
+ * @instance
306
+ * @memberof WebexCore
307
+ * @param {Object} attrs
308
+ * @returns {WebexCore}
309
309
  */
310
310
  initialize: function initialize() {
311
311
  var _this4 = this;
@@ -320,11 +320,11 @@ var WebexCore = _ampersandState.default.extend((_obj = {
320
320
  this.trigger('change:config');
321
321
  var onLoaded = function onLoaded() {
322
322
  if (_this4.loaded) {
323
- /**
324
- * Fires when all data has been loaded from the storage layer
325
- * @event loaded
326
- * @instance
327
- * @memberof WebexCore
323
+ /**
324
+ * Fires when all data has been loaded from the storage layer
325
+ * @event loaded
326
+ * @instance
327
+ * @memberof WebexCore
328
328
  */
329
329
  _this4.trigger('loaded');
330
330
  _this4.stopListening(_this4, 'change:loaded', onLoaded);
@@ -337,11 +337,11 @@ var WebexCore = _ampersandState.default.extend((_obj = {
337
337
  });
338
338
  var onReady = function onReady() {
339
339
  if (_this4.ready) {
340
- /**
341
- * Fires when all plugins have fully initialized
342
- * @event ready
343
- * @instance
344
- * @memberof WebexCore
340
+ /**
341
+ * Fires when all plugins have fully initialized
342
+ * @event ready
343
+ * @instance
344
+ * @memberof WebexCore
345
345
  */
346
346
  _this4.trigger('ready');
347
347
  _this4.stopListening(_this4, 'change:ready', onReady);
@@ -387,26 +387,26 @@ var WebexCore = _ampersandState.default.extend((_obj = {
387
387
  }
388
388
  this.sessionId = sessionId;
389
389
  },
390
- /**
391
- * setConfig
392
- *
393
- * Allows updating config
394
- *
395
- * @instance
396
- * @memberof WebexCore
397
- * @param {Object} newConfig
398
- * @returns {null}
390
+ /**
391
+ * setConfig
392
+ *
393
+ * Allows updating config
394
+ *
395
+ * @instance
396
+ * @memberof WebexCore
397
+ * @param {Object} newConfig
398
+ * @returns {null}
399
399
  */
400
400
  setConfig: function setConfig() {
401
401
  var newConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
402
402
  this.config = (0, _merge2.default)({}, this.config, newConfig);
403
403
  },
404
- /**
405
- *
406
- * Check if access token is correctly formated and correct if it's not
407
- * Warn user if token string has errors in it
408
- * @param {string} token
409
- * @returns {string}
404
+ /**
405
+ *
406
+ * Check if access token is correctly formated and correct if it's not
407
+ * Warn user if token string has errors in it
408
+ * @param {string} token
409
+ * @returns {string}
410
410
  */
411
411
  bearerValidator: function bearerValidator(token) {
412
412
  if (token.includes('Bearer') && token.split(' ').length - 1 === 0) {
@@ -423,12 +423,12 @@ var WebexCore = _ampersandState.default.extend((_obj = {
423
423
  }
424
424
  return token.replace(/\s+/g, ' '); // Clean it anyway (just in case)
425
425
  },
426
- /**
427
- * @instance
428
- * @memberof WebexPlugin
429
- * @param {number} depth
430
- * @private
431
- * @returns {Object}
426
+ /**
427
+ * @instance
428
+ * @memberof WebexPlugin
429
+ * @param {number} depth
430
+ * @private
431
+ * @returns {Object}
432
432
  */
433
433
  inspect: function inspect(depth) {
434
434
  return _util.default.inspect((0, _omit2.default)(this.serialize({
@@ -439,18 +439,18 @@ var WebexCore = _ampersandState.default.extend((_obj = {
439
439
  depth: depth
440
440
  });
441
441
  },
442
- /**
443
- * Invokes all `onBeforeLogout` handlers in the scope of their plugin, clears
444
- * all stores, and revokes the access token
445
- * Note: If you're using the sdk in a server environment, you may be more
446
- * interested in {@link `webex.internal.mercury.disconnect()`| Mercury#disconnect()}
447
- * and {@link `webex.internal.device.unregister()`|Device#unregister()}
448
- * or {@link `webex.phone.unregister()`|Phone#unregister}
449
- * @instance
450
- * @memberof WebexCore
451
- * @param {Object} options Passed as the first argument to all
452
- * `onBeforeLogout` handlers
453
- * @returns {Promise}
442
+ /**
443
+ * Invokes all `onBeforeLogout` handlers in the scope of their plugin, clears
444
+ * all stores, and revokes the access token
445
+ * Note: If you're using the sdk in a server environment, you may be more
446
+ * interested in {@link `webex.internal.mercury.disconnect()`| Mercury#disconnect()}
447
+ * and {@link `webex.internal.device.unregister()`|Device#unregister()}
448
+ * or {@link `webex.phone.unregister()`|Phone#unregister}
449
+ * @instance
450
+ * @memberof WebexCore
451
+ * @param {Object} options Passed as the first argument to all
452
+ * `onBeforeLogout` handlers
453
+ * @returns {Promise}
454
454
  */
455
455
  logout: function logout(options) {
456
456
  var _this5 = this;
@@ -490,12 +490,12 @@ var WebexCore = _ampersandState.default.extend((_obj = {
490
490
  return _this5.trigger('client:logout');
491
491
  });
492
492
  },
493
- /**
494
- * General purpose wrapper to submit metrics via the metrics plugin (if the
495
- * metrics plugin is installed)
496
- * @instance
497
- * @memberof WebexCore
498
- * @returns {Promise}
493
+ /**
494
+ * General purpose wrapper to submit metrics via the metrics plugin (if the
495
+ * metrics plugin is installed)
496
+ * @instance
497
+ * @memberof WebexCore
498
+ * @returns {Promise}
499
499
  */
500
500
  measure: function measure() {
501
501
  if (this.metrics) {
@@ -636,18 +636,18 @@ 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 = "2.59.2";
639
+ WebexCore.version = "2.59.0";
640
640
  (0, _webexInternalCorePluginMixin.default)(_webexInternalCore.default, _config.default, interceptors);
641
641
  (0, _webexCorePluginMixin.default)(WebexCore, _config.default, interceptors);
642
642
  var _default = WebexCore;
643
- /**
644
- * @method registerPlugin
645
- * @param {string} name
646
- * @param {function} constructor
647
- * @param {Object} options
648
- * @param {Array<string>} options.proxies
649
- * @param {Object} options.interceptors
650
- * @returns {null}
643
+ /**
644
+ * @method registerPlugin
645
+ * @param {string} name
646
+ * @param {function} constructor
647
+ * @param {Object} options
648
+ * @param {Array<string>} options.proxies
649
+ * @param {Object} options.interceptors
650
+ * @returns {null}
651
651
  */
652
652
  exports.default = _default;
653
653
  function registerPlugin(name, constructor) {
@@ -655,15 +655,15 @@ function registerPlugin(name, constructor) {
655
655
  WebexCore.registerPlugin(name, constructor, options);
656
656
  }
657
657
 
658
- /**
659
- * Registers plugins used by internal products that do not talk to public APIs.
660
- * @method registerInternalPlugin
661
- * @param {string} name
662
- * @param {function} constructor
663
- * @param {Object} options
664
- * @param {Object} options.interceptors
665
- * @private
666
- * @returns {null}
658
+ /**
659
+ * Registers plugins used by internal products that do not talk to public APIs.
660
+ * @method registerInternalPlugin
661
+ * @param {string} name
662
+ * @param {function} constructor
663
+ * @param {Object} options
664
+ * @param {Object} options.interceptors
665
+ * @private
666
+ * @returns {null}
667
667
  */
668
668
  function registerInternalPlugin(name, constructor, options) {
669
669
  _webexInternalCore.default.registerPlugin(name, constructor, options);
@@ -1 +1 @@
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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"}
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":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {EventEmitter} from 'events';\r\nimport util from 'util';\r\n\r\nimport {proxyEvents, retry, transferEvents} from '@webex/common';\r\nimport {HttpStatusInterceptor, defaults as requestDefaults} from '@webex/http-core';\r\nimport {defaultsDeep, get, isFunction, isString, last, merge, omit, set, unset} from 'lodash';\r\nimport AmpState from 'ampersand-state';\r\nimport uuid from 'uuid';\r\n\r\nimport AuthInterceptor from './interceptors/auth';\r\nimport NetworkTimingInterceptor from './interceptors/network-timing';\r\nimport PayloadTransformerInterceptor from './interceptors/payload-transformer';\r\nimport RedirectInterceptor from './interceptors/redirect';\r\nimport RequestEventInterceptor from './interceptors/request-event';\r\nimport RequestLoggerInterceptor from './interceptors/request-logger';\r\nimport RequestTimingInterceptor from './interceptors/request-timing';\r\nimport ResponseLoggerInterceptor from './interceptors/response-logger';\r\nimport WebexHttpError from './lib/webex-http-error';\r\nimport UserAgentInterceptor from './interceptors/user-agent';\r\nimport WebexTrackingIdInterceptor from './interceptors/webex-tracking-id';\r\nimport WebexUserAgentInterceptor from './interceptors/webex-user-agent';\r\nimport RateLimitInterceptor from './interceptors/rate-limit';\r\nimport EmbargoInterceptor from './interceptors/embargo';\r\nimport DefaultOptionsInterceptor from './interceptors/default-options';\r\nimport config from './config';\r\nimport {makeWebexStore} from './lib/storage';\r\nimport mixinWebexCorePlugins from './lib/webex-core-plugin-mixin';\r\nimport mixinWebexInternalCorePlugins from './lib/webex-internal-core-plugin-mixin';\r\nimport WebexInternalCore from './webex-internal-core';\r\n\r\n// TODO replace the Interceptor.create with Reflect.construct (\r\n// Interceptor.create exists because new was really hard to call on an array of\r\n// constructors)\r\nconst interceptors = {\r\n WebexTrackingIdInterceptor: WebexTrackingIdInterceptor.create,\r\n RequestEventInterceptor: RequestEventInterceptor.create,\r\n RateLimitInterceptor: RateLimitInterceptor.create,\r\n /* eslint-disable no-extra-parens */\r\n RequestLoggerInterceptor:\r\n process.env.ENABLE_NETWORK_LOGGING || process.env.ENABLE_VERBOSE_NETWORK_LOGGING\r\n ? RequestLoggerInterceptor.create\r\n : undefined,\r\n ResponseLoggerInterceptor:\r\n process.env.ENABLE_NETWORK_LOGGING || process.env.ENABLE_VERBOSE_NETWORK_LOGGING\r\n ? ResponseLoggerInterceptor.create\r\n : undefined,\r\n /* eslint-enable no-extra-parens */\r\n RequestTimingInterceptor: RequestTimingInterceptor.create,\r\n ServiceInterceptor: undefined,\r\n UserAgentInterceptor: UserAgentInterceptor.create,\r\n WebexUserAgentInterceptor: WebexUserAgentInterceptor.create,\r\n AuthInterceptor: AuthInterceptor.create,\r\n KmsDryErrorInterceptor: undefined,\r\n PayloadTransformerInterceptor: PayloadTransformerInterceptor.create,\r\n ConversationInterceptor: undefined,\r\n RedirectInterceptor: RedirectInterceptor.create,\r\n HttpStatusInterceptor() {\r\n return HttpStatusInterceptor.create({\r\n error: WebexHttpError,\r\n });\r\n },\r\n NetworkTimingInterceptor: NetworkTimingInterceptor.create,\r\n EmbargoInterceptor: EmbargoInterceptor.create,\r\n DefaultOptionsInterceptor: DefaultOptionsInterceptor.create,\r\n};\r\n\r\nconst preInterceptors = [\r\n 'ResponseLoggerInterceptor',\r\n 'RequestTimingInterceptor',\r\n 'RequestEventInterceptor',\r\n 'WebexTrackingIdInterceptor',\r\n 'RateLimitInterceptor',\r\n];\r\n\r\nconst postInterceptors = [\r\n 'HttpStatusInterceptor',\r\n 'NetworkTimingInterceptor',\r\n 'EmbargoInterceptor',\r\n 'RequestLoggerInterceptor',\r\n 'RateLimitInterceptor',\r\n];\r\n\r\nconst MAX_FILE_SIZE_IN_MB = 2048;\r\n\r\n/**\r\n * @class\r\n */\r\nconst WebexCore = AmpState.extend({\r\n version: PACKAGE_VERSION,\r\n\r\n children: {\r\n internal: WebexInternalCore,\r\n },\r\n\r\n constructor(attrs = {}, options) {\r\n if (typeof attrs === 'string') {\r\n attrs = {\r\n credentials: {\r\n supertoken: {\r\n // eslint-disable-next-line camelcase\r\n access_token: attrs,\r\n },\r\n },\r\n };\r\n } else {\r\n // Reminder: order is important here\r\n [\r\n 'credentials.authorization',\r\n 'authorization',\r\n 'credentials.supertoken.supertoken',\r\n 'supertoken',\r\n 'access_token',\r\n 'credentials.authorization.supertoken',\r\n ].forEach((path) => {\r\n const val = get(attrs, path);\r\n\r\n if (val) {\r\n unset(attrs, path);\r\n set(attrs, 'credentials.supertoken', val);\r\n }\r\n });\r\n\r\n ['credentials', 'credentials.authorization'].forEach((path) => {\r\n const val = get(attrs, path);\r\n\r\n if (typeof val === 'string') {\r\n unset(attrs, path);\r\n set(attrs, 'credentials.supertoken', val);\r\n }\r\n });\r\n\r\n if (typeof get(attrs, 'credentials.access_token') === 'string') {\r\n // Send access_token to get validated and corrected and then set it\r\n set(\r\n attrs,\r\n 'credentials.access_token',\r\n this.bearerValidator(get(attrs, 'credentials.access_token').trim())\r\n );\r\n\r\n set(attrs, 'credentials.supertoken', attrs.credentials);\r\n }\r\n }\r\n\r\n return Reflect.apply(AmpState, this, [attrs, options]);\r\n },\r\n\r\n derived: {\r\n boundedStorage: {\r\n deps: [],\r\n fn() {\r\n return makeWebexStore('bounded', this);\r\n },\r\n },\r\n unboundedStorage: {\r\n deps: [],\r\n fn() {\r\n return makeWebexStore('unbounded', this);\r\n },\r\n },\r\n ready: {\r\n deps: ['loaded', 'internal.ready'],\r\n fn() {\r\n return (\r\n this.loaded &&\r\n Object.keys(this._children).reduce(\r\n (ready, name) => ready && this[name] && this[name].ready !== false,\r\n true\r\n )\r\n );\r\n },\r\n },\r\n },\r\n\r\n session: {\r\n config: {\r\n type: 'object',\r\n },\r\n /**\r\n * When true, indicates that the initial load from the storage layer is\r\n * complete\r\n * @instance\r\n * @memberof WebexCore\r\n * @type {boolean}\r\n */\r\n loaded: {\r\n default: false,\r\n type: 'boolean',\r\n },\r\n request: {\r\n setOnce: true,\r\n // It's supposed to be a function, but that's not a type defined in\r\n // Ampersand\r\n type: 'any',\r\n },\r\n sessionId: {\r\n setOnce: true,\r\n type: 'string',\r\n },\r\n },\r\n\r\n /**\r\n * @instance\r\n * @memberof WebexCore\r\n * @param {[type]} args\r\n * @returns {[type]}\r\n */\r\n refresh(...args) {\r\n return this.credentials.refresh(...args);\r\n },\r\n\r\n /**\r\n * Applies the directionally appropriate transforms to the specified object\r\n * @param {string} direction\r\n * @param {Object} object\r\n * @returns {Promise}\r\n */\r\n transform(direction, object) {\r\n const predicates = this.config.payloadTransformer.predicates.filter(\r\n (p) => !p.direction || p.direction === direction\r\n );\r\n const ctx = {\r\n webex: this,\r\n };\r\n\r\n return Promise.all(\r\n predicates.map((p) =>\r\n p.test(ctx, object).then((shouldTransform) => {\r\n if (!shouldTransform) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n p\r\n .extract(object)\r\n // eslint-disable-next-line max-nested-callbacks\r\n .then((target) => ({\r\n name: p.name,\r\n target,\r\n }))\r\n );\r\n })\r\n )\r\n )\r\n .then((data) =>\r\n data\r\n .filter((d) => Boolean(d))\r\n // eslint-disable-next-line max-nested-callbacks\r\n .reduce(\r\n (promise, {name, target, alias}) =>\r\n promise.then(() => {\r\n if (alias) {\r\n return this.applyNamedTransform(direction, alias, target);\r\n }\r\n\r\n return this.applyNamedTransform(direction, name, target);\r\n }),\r\n Promise.resolve()\r\n )\r\n )\r\n .then(() => object);\r\n },\r\n\r\n /**\r\n * Applies the directionally appropriate transform to the specified parameters\r\n * @param {string} direction\r\n * @param {Object} ctx\r\n * @param {string} name\r\n * @returns {Promise}\r\n */\r\n applyNamedTransform(direction, ctx, name, ...rest) {\r\n if (isString(ctx)) {\r\n rest.unshift(name);\r\n name = ctx;\r\n ctx = {\r\n webex: this,\r\n transform: (...args) => this.applyNamedTransform(direction, ctx, ...args),\r\n };\r\n }\r\n\r\n const transforms = ctx.webex.config.payloadTransformer.transforms.filter(\r\n (tx) => tx.name === name && (!tx.direction || tx.direction === direction)\r\n );\r\n\r\n // too many implicit returns on the same line is difficult to interpret\r\n // eslint-disable-next-line arrow-body-style\r\n return transforms\r\n .reduce(\r\n (promise, tx) =>\r\n promise.then(() => {\r\n if (tx.alias) {\r\n return ctx.transform(tx.alias, ...rest);\r\n }\r\n\r\n return Promise.resolve(tx.fn(ctx, ...rest));\r\n }),\r\n Promise.resolve()\r\n )\r\n .then(() => last(rest));\r\n },\r\n\r\n /**\r\n * @private\r\n * @returns {Window}\r\n */\r\n getWindow() {\r\n // eslint-disable-next-line\r\n return window;\r\n },\r\n\r\n /**\r\n * Initializer\r\n *\r\n * @emits WebexCore#loaded\r\n * @emits WebexCore#ready\r\n * @instance\r\n * @memberof WebexCore\r\n * @param {Object} attrs\r\n * @returns {WebexCore}\r\n */\r\n initialize(attrs = {}) {\r\n this.config = merge({}, config, attrs.config);\r\n\r\n // There's some unfortunateness with the way {@link AmpersandState#children}\r\n // get initialized. We'll fire the change:config event so that\r\n // {@link WebexPlugin#initialize()} can use\r\n // `this.listenToOnce(parent, 'change:config', () => {});` to act on config\r\n // during initialization\r\n this.trigger('change:config');\r\n\r\n const onLoaded = () => {\r\n if (this.loaded) {\r\n /**\r\n * Fires when all data has been loaded from the storage layer\r\n * @event loaded\r\n * @instance\r\n * @memberof WebexCore\r\n */\r\n this.trigger('loaded');\r\n\r\n this.stopListening(this, 'change:loaded', onLoaded);\r\n }\r\n };\r\n\r\n // This needs to run on nextTick or we'll never be able to wire up listeners\r\n process.nextTick(() => {\r\n this.listenToAndRun(this, 'change:loaded', onLoaded);\r\n });\r\n\r\n const onReady = () => {\r\n if (this.ready) {\r\n /**\r\n * Fires when all plugins have fully initialized\r\n * @event ready\r\n * @instance\r\n * @memberof WebexCore\r\n */\r\n this.trigger('ready');\r\n\r\n this.stopListening(this, 'change:ready', onReady);\r\n }\r\n };\r\n\r\n // This needs to run on nextTick or we'll never be able to wire up listeners\r\n process.nextTick(() => {\r\n this.listenToAndRun(this, 'change:ready', onReady);\r\n });\r\n\r\n // Make nested events propagate in a consistent manner\r\n Object.keys(this.constructor.prototype._children).forEach((key) => {\r\n this.listenTo(this[key], 'change', (...args) => {\r\n args.unshift(`change:${key}`);\r\n this.trigger(...args);\r\n });\r\n });\r\n\r\n const addInterceptor = (ints, key) => {\r\n const interceptor = interceptors[key];\r\n\r\n if (!isFunction(interceptor)) {\r\n return ints;\r\n }\r\n\r\n ints.push(Reflect.apply(interceptor, this, []));\r\n\r\n return ints;\r\n };\r\n\r\n let ints = [];\r\n\r\n ints = preInterceptors.reduce(addInterceptor, ints);\r\n ints = Object.keys(interceptors)\r\n .filter((key) => !(preInterceptors.includes(key) || postInterceptors.includes(key)))\r\n .reduce(addInterceptor, ints);\r\n ints = postInterceptors.reduce(addInterceptor, ints);\r\n\r\n this.request = requestDefaults({\r\n json: true,\r\n interceptors: ints,\r\n });\r\n\r\n let sessionId = `${get(this, 'config.trackingIdPrefix', 'webex-js-sdk')}_${get(\r\n this,\r\n 'config.trackingIdBase',\r\n uuid.v4()\r\n )}`;\r\n\r\n if (get(this, 'config.trackingIdSuffix')) {\r\n sessionId += `_${get(this, 'config.trackingIdSuffix')}`;\r\n }\r\n\r\n this.sessionId = sessionId;\r\n },\r\n\r\n /**\r\n * setConfig\r\n *\r\n * Allows updating config\r\n *\r\n * @instance\r\n * @memberof WebexCore\r\n * @param {Object} newConfig\r\n * @returns {null}\r\n */\r\n setConfig(newConfig = {}) {\r\n this.config = merge({}, this.config, newConfig);\r\n },\r\n\r\n /**\r\n *\r\n * Check if access token is correctly formated and correct if it's not\r\n * Warn user if token string has errors in it\r\n * @param {string} token\r\n * @returns {string}\r\n */\r\n bearerValidator(token) {\r\n if (token.includes('Bearer') && token.split(' ').length - 1 === 0) {\r\n console.warn(\r\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\r\n .replace('Bearer', 'Bearer ')\r\n .replace(/\\s+/g, ' ')}`\r\n );\r\n console.info(\r\n \"Tip: You don't need to add 'Bearer' to the access_token field. The token by itself is fine\"\r\n );\r\n\r\n return token.replace('Bearer', 'Bearer ').replace(/\\s+/g, ' ');\r\n }\r\n // Allow elseIf return\r\n // eslint-disable-next-line no-else-return\r\n else if (token.split(' ').length - 1 > 1) {\r\n console.warn(\r\n `Your access token has ${\r\n token.split(' ').length - 2\r\n } too many spaces, please use this format:\\n\\n${token.replace(/\\s+/g, ' ')}`\r\n );\r\n console.info(\r\n \"Tip: You don't need to add 'Bearer' to the access_token field, the token by itself is fine\"\r\n );\r\n\r\n return token.replace(/\\s+/g, ' ');\r\n }\r\n\r\n return token.replace(/\\s+/g, ' '); // Clean it anyway (just in case)\r\n },\r\n\r\n /**\r\n * @instance\r\n * @memberof WebexPlugin\r\n * @param {number} depth\r\n * @private\r\n * @returns {Object}\r\n */\r\n inspect(depth) {\r\n return util.inspect(\r\n omit(\r\n this.serialize({\r\n props: true,\r\n session: true,\r\n derived: true,\r\n }),\r\n 'boundedStorage',\r\n 'unboundedStorage',\r\n 'request',\r\n 'config'\r\n ),\r\n {depth}\r\n );\r\n },\r\n\r\n /**\r\n * Invokes all `onBeforeLogout` handlers in the scope of their plugin, clears\r\n * all stores, and revokes the access token\r\n * Note: If you're using the sdk in a server environment, you may be more\r\n * interested in {@link `webex.internal.mercury.disconnect()`| Mercury#disconnect()}\r\n * and {@link `webex.internal.device.unregister()`|Device#unregister()}\r\n * or {@link `webex.phone.unregister()`|Phone#unregister}\r\n * @instance\r\n * @memberof WebexCore\r\n * @param {Object} options Passed as the first argument to all\r\n * `onBeforeLogout` handlers\r\n * @returns {Promise}\r\n */\r\n logout(options, ...rest) {\r\n // prefer the refresh token, but for clients that don't have one, fallback\r\n // to the access token\r\n const token =\r\n this.credentials.supertoken &&\r\n (this.credentials.supertoken.refresh_token || this.credentials.supertoken.access_token);\r\n\r\n options = Object.assign({token}, options);\r\n\r\n // onBeforeLogout should be executed in the opposite order in which handlers\r\n // were registered. In that way, wdm unregister() will be above mercury\r\n // disconnect(), but disconnect() will execute first.\r\n // eslint-disable-next-line arrow-body-style\r\n return this.config.onBeforeLogout\r\n .reverse()\r\n .reduce(\r\n (promise, {plugin, fn}) =>\r\n promise.then(() => {\r\n return (\r\n Promise.resolve(\r\n Reflect.apply(fn, this[plugin] || this.internal[plugin], [options, ...rest])\r\n )\r\n // eslint-disable-next-line max-nested-callbacks\r\n .catch((err) => {\r\n this.logger.warn(`onBeforeLogout from plugin ${plugin}: failed`, err);\r\n })\r\n );\r\n }),\r\n Promise.resolve()\r\n )\r\n .then(() => Promise.all([this.boundedStorage.clear(), this.unboundedStorage.clear()]))\r\n .then(() => this.credentials.invalidate(...rest))\r\n .then(\r\n () =>\r\n this.authorization &&\r\n this.authorization.logout &&\r\n this.authorization.logout(options, ...rest)\r\n )\r\n .then(() => this.trigger('client:logout'));\r\n },\r\n\r\n /**\r\n * General purpose wrapper to submit metrics via the metrics plugin (if the\r\n * metrics plugin is installed)\r\n * @instance\r\n * @memberof WebexCore\r\n * @returns {Promise}\r\n */\r\n measure(...args) {\r\n if (this.metrics) {\r\n return this.metrics.sendUnstructured(...args);\r\n }\r\n\r\n return Promise.resolve();\r\n },\r\n\r\n async upload(options) {\r\n if (!options.file) {\r\n return Promise.reject(new Error('`options.file` is required'));\r\n }\r\n\r\n options.phases = options.phases || {};\r\n options.phases.initialize = options.phases.initialize || {};\r\n options.phases.upload = options.phases.upload || {};\r\n options.phases.finalize = options.phases.finalize || {};\r\n\r\n defaultsDeep(\r\n options.phases.initialize,\r\n {\r\n method: 'POST',\r\n body: {\r\n uploadProtocol: 'content-length',\r\n },\r\n },\r\n omit(options, 'file', 'phases')\r\n );\r\n\r\n defaultsDeep(options.phases.upload, {\r\n method: 'PUT',\r\n json: false,\r\n withCredentials: false,\r\n body: options.file,\r\n headers: {\r\n 'x-trans-id': uuid.v4(),\r\n authorization: undefined,\r\n },\r\n });\r\n\r\n defaultsDeep(\r\n options.phases.finalize,\r\n {\r\n method: 'POST',\r\n },\r\n omit(options, 'file', 'phases')\r\n );\r\n\r\n const shunt = new EventEmitter();\r\n\r\n const promise = this._uploadPhaseInitialize(options)\r\n .then(() => {\r\n const p = this._uploadPhaseUpload(options);\r\n\r\n transferEvents('progress', p, shunt);\r\n\r\n return p;\r\n })\r\n .then((...args) => this._uploadPhaseFinalize(options, ...args))\r\n .then((res) => ({...res.body, ...res.headers}));\r\n\r\n proxyEvents(shunt, promise);\r\n\r\n return promise;\r\n },\r\n\r\n _uploadPhaseInitialize: function _uploadPhaseInitialize(options) {\r\n this.logger.debug('client: initiating upload session');\r\n\r\n return this.request(options.phases.initialize)\r\n .then((...args) => {\r\n const fileUploadSizeLimitInBytes =\r\n (args[0].body.fileUploadSizeLimit || MAX_FILE_SIZE_IN_MB) * 1024 * 1024;\r\n const currentFileSizeInBytes = options.file.byteLength;\r\n\r\n if (fileUploadSizeLimitInBytes && fileUploadSizeLimitInBytes < currentFileSizeInBytes) {\r\n return this._uploadAbortSession(currentFileSizeInBytes, ...args);\r\n }\r\n\r\n return this._uploadApplySession(options, ...args);\r\n })\r\n .then((res) => {\r\n this.logger.debug('client: initiated upload session');\r\n\r\n return res;\r\n });\r\n },\r\n\r\n _uploadAbortSession(currentFileSizeInBytes, response) {\r\n this.logger.debug('client: deleting uploaded file');\r\n\r\n return this.request({\r\n method: 'DELETE',\r\n url: response.body.url,\r\n headers: response.options.headers,\r\n }).then(() => {\r\n this.logger.debug('client: deleting uploaded file complete');\r\n\r\n const abortErrorDetails = {\r\n currentFileSizeInBytes,\r\n fileUploadSizeLimitInMB: response.body.fileUploadSizeLimit || MAX_FILE_SIZE_IN_MB,\r\n message: 'file-upload-size-limit-enabled',\r\n };\r\n\r\n return Promise.reject(new Error(`${JSON.stringify(abortErrorDetails)}`));\r\n });\r\n },\r\n\r\n _uploadApplySession(options, res) {\r\n const session = res.body;\r\n\r\n ['upload', 'finalize'].reduce((opts, key) => {\r\n opts[key] = Object.keys(opts[key]).reduce((phaseOptions, phaseKey) => {\r\n if (phaseKey.startsWith('$')) {\r\n phaseOptions[phaseKey.substr(1)] = phaseOptions[phaseKey](session);\r\n Reflect.deleteProperty(phaseOptions, phaseKey);\r\n }\r\n\r\n return phaseOptions;\r\n }, opts[key]);\r\n\r\n return opts;\r\n }, options.phases);\r\n },\r\n\r\n @retry\r\n _uploadPhaseUpload(options) {\r\n this.logger.debug('client: uploading file');\r\n\r\n const promise = this.request(options.phases.upload).then((res) => {\r\n this.logger.debug('client: uploaded file');\r\n\r\n return res;\r\n });\r\n\r\n proxyEvents(options.phases.upload.upload, promise);\r\n\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV === 'test') {\r\n promise.on('progress', (event) => {\r\n this.logger.info('upload progress', event.loaded, event.total);\r\n });\r\n }\r\n\r\n return promise;\r\n },\r\n\r\n _uploadPhaseFinalize: function _uploadPhaseFinalize(options) {\r\n this.logger.debug('client: finalizing upload session');\r\n\r\n return this.request(options.phases.finalize).then((res) => {\r\n this.logger.debug('client: finalized upload session');\r\n\r\n return res;\r\n });\r\n },\r\n});\r\n\r\nWebexCore.version = PACKAGE_VERSION;\r\n\r\nmixinWebexInternalCorePlugins(WebexInternalCore, config, interceptors);\r\nmixinWebexCorePlugins(WebexCore, config, interceptors);\r\n\r\nexport default WebexCore;\r\n\r\n/**\r\n * @method registerPlugin\r\n * @param {string} name\r\n * @param {function} constructor\r\n * @param {Object} options\r\n * @param {Array<string>} options.proxies\r\n * @param {Object} options.interceptors\r\n * @returns {null}\r\n */\r\nexport function registerPlugin(name, constructor, options = {}) {\r\n WebexCore.registerPlugin(name, constructor, options);\r\n}\r\n\r\n/**\r\n * Registers plugins used by internal products that do not talk to public APIs.\r\n * @method registerInternalPlugin\r\n * @param {string} name\r\n * @param {function} constructor\r\n * @param {Object} options\r\n * @param {Object} options.interceptors\r\n * @private\r\n * @returns {null}\r\n */\r\nexport function registerInternalPlugin(name, constructor, options) {\r\n WebexInternalCore.registerPlugin(name, constructor, options);\r\n}\r\n"],"mappings":"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"}
@@ -9,14 +9,14 @@ exports.default = void 0;
9
9
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
10
10
  var _util = _interopRequireDefault(require("util"));
11
11
  var _ampersandState = _interopRequireDefault(require("ampersand-state"));
12
- /*!
13
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
12
+ /*!
13
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
14
14
  */
15
15
 
16
- /**
17
- * WebexInternalCore is an extra layer of nesting to make it blatantly clear that
18
- * private plugins are, in fact, private.
19
- * @class
16
+ /**
17
+ * WebexInternalCore is an extra layer of nesting to make it blatantly clear that
18
+ * private plugins are, in fact, private.
19
+ * @class
20
20
  */
21
21
  var WebexInternalCore = _ampersandState.default.extend({
22
22
  derived: {
@@ -30,12 +30,12 @@ var WebexInternalCore = _ampersandState.default.extend({
30
30
  }
31
31
  }
32
32
  },
33
- /**
34
- * @instance
35
- * @memberof WebexPlugin
36
- * @param {number} depth
37
- * @private
38
- * @returns {Object}
33
+ /**
34
+ * @instance
35
+ * @memberof WebexPlugin
36
+ * @param {number} depth
37
+ * @private
38
+ * @returns {Object}
39
39
  */
40
40
  inspect: function inspect(depth) {
41
41
  return _util.default.inspect(this.serialize({
@@ -1 +1 @@
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,IAAI,CACL;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,CAAC,CACR;EACH;AACF,CAAC,CAAC;AAAC,IAAAK,QAAA,GAEYnB,iBAAiB;AAAAoB,OAAA,CAAAX,OAAA,GAAAU,QAAA"}
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":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport util from 'util';\r\n\r\nimport AmpState from 'ampersand-state';\r\n\r\n/**\r\n * WebexInternalCore is an extra layer of nesting to make it blatantly clear that\r\n * private plugins are, in fact, private.\r\n * @class\r\n */\r\nconst WebexInternalCore = AmpState.extend({\r\n derived: {\r\n ready: {\r\n deps: [],\r\n fn() {\r\n return Object.keys(this._children).reduce(\r\n (ready, name) => ready && this[name] && this[name].ready !== false,\r\n true\r\n );\r\n },\r\n },\r\n },\r\n\r\n /**\r\n * @instance\r\n * @memberof WebexPlugin\r\n * @param {number} depth\r\n * @private\r\n * @returns {Object}\r\n */\r\n inspect(depth) {\r\n return util.inspect(\r\n this.serialize({\r\n props: true,\r\n session: true,\r\n derived: true,\r\n }),\r\n {depth}\r\n );\r\n },\r\n});\r\n\r\nexport default WebexInternalCore;\r\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,IAAI,CACL;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,CAAC,CACR;EACH;AACF,CAAC,CAAC;AAAC,IAAAK,QAAA,GAEYnB,iBAAiB;AAAAoB,OAAA,CAAAX,OAAA,GAAAU,QAAA"}
package/jest.config.js CHANGED
@@ -1,3 +1,3 @@
1
- const config = require('@webex/jest-config-legacy');
2
-
3
- module.exports = config;
1
+ const config = require('@webex/jest-config-legacy');
2
+
3
+ module.exports = config;