@webex/webex-core 3.0.0-beta.2 → 3.0.0-beta.21

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 (184) hide show
  1. package/dist/config.js +1 -11
  2. package/dist/config.js.map +1 -1
  3. package/dist/credentials-config.js +44 -64
  4. package/dist/credentials-config.js.map +1 -1
  5. package/dist/index.js +0 -76
  6. package/dist/index.js.map +1 -1
  7. package/dist/interceptors/auth.js +22 -55
  8. package/dist/interceptors/auth.js.map +1 -1
  9. package/dist/interceptors/default-options.js +0 -20
  10. package/dist/interceptors/default-options.js.map +1 -1
  11. package/dist/interceptors/embargo.js +0 -21
  12. package/dist/interceptors/embargo.js.map +1 -1
  13. package/dist/interceptors/network-timing.js +2 -21
  14. package/dist/interceptors/network-timing.js.map +1 -1
  15. package/dist/interceptors/payload-transformer.js +2 -22
  16. package/dist/interceptors/payload-transformer.js.map +1 -1
  17. package/dist/interceptors/rate-limit.js +25 -57
  18. package/dist/interceptors/rate-limit.js.map +1 -1
  19. package/dist/interceptors/redirect.js +4 -33
  20. package/dist/interceptors/redirect.js.map +1 -1
  21. package/dist/interceptors/request-event.js +3 -30
  22. package/dist/interceptors/request-event.js.map +1 -1
  23. package/dist/interceptors/request-logger.js +1 -30
  24. package/dist/interceptors/request-logger.js.map +1 -1
  25. package/dist/interceptors/request-timing.js +3 -22
  26. package/dist/interceptors/request-timing.js.map +1 -1
  27. package/dist/interceptors/response-logger.js +2 -31
  28. package/dist/interceptors/response-logger.js.map +1 -1
  29. package/dist/interceptors/user-agent.js +2 -29
  30. package/dist/interceptors/user-agent.js.map +1 -1
  31. package/dist/interceptors/webex-tracking-id.js +5 -28
  32. package/dist/interceptors/webex-tracking-id.js.map +1 -1
  33. package/dist/interceptors/webex-user-agent.js +5 -38
  34. package/dist/interceptors/webex-user-agent.js.map +1 -1
  35. package/dist/lib/batcher.js +3 -51
  36. package/dist/lib/batcher.js.map +1 -1
  37. package/dist/lib/credentials/credentials.js +39 -119
  38. package/dist/lib/credentials/credentials.js.map +1 -1
  39. package/dist/lib/credentials/grant-errors.js +0 -49
  40. package/dist/lib/credentials/grant-errors.js.map +1 -1
  41. package/dist/lib/credentials/index.js +1 -13
  42. package/dist/lib/credentials/index.js.map +1 -1
  43. package/dist/lib/credentials/scope.js +1 -7
  44. package/dist/lib/credentials/scope.js.map +1 -1
  45. package/dist/lib/credentials/token-collection.js +1 -7
  46. package/dist/lib/credentials/token-collection.js.map +1 -1
  47. package/dist/lib/credentials/token.js +39 -118
  48. package/dist/lib/credentials/token.js.map +1 -1
  49. package/dist/lib/page.js +13 -26
  50. package/dist/lib/page.js.map +1 -1
  51. package/dist/lib/services/constants.js +0 -2
  52. package/dist/lib/services/constants.js.map +1 -1
  53. package/dist/lib/services/index.js +1 -28
  54. package/dist/lib/services/index.js.map +1 -1
  55. package/dist/lib/services/interceptors/server-error.js +2 -23
  56. package/dist/lib/services/interceptors/server-error.js.map +1 -1
  57. package/dist/lib/services/interceptors/service.js +12 -34
  58. package/dist/lib/services/interceptors/service.js.map +1 -1
  59. package/dist/lib/services/metrics.js +0 -2
  60. package/dist/lib/services/metrics.js.map +1 -1
  61. package/dist/lib/services/service-catalog.js +10 -90
  62. package/dist/lib/services/service-catalog.js.map +1 -1
  63. package/dist/lib/services/service-fed-ramp.js +0 -2
  64. package/dist/lib/services/service-fed-ramp.js.map +1 -1
  65. package/dist/lib/services/service-host.js +47 -62
  66. package/dist/lib/services/service-host.js.map +1 -1
  67. package/dist/lib/services/service-registry.js +78 -90
  68. package/dist/lib/services/service-registry.js.map +1 -1
  69. package/dist/lib/services/service-state.js +3 -15
  70. package/dist/lib/services/service-state.js.map +1 -1
  71. package/dist/lib/services/service-url.js +4 -25
  72. package/dist/lib/services/service-url.js.map +1 -1
  73. package/dist/lib/services/services.js +122 -238
  74. package/dist/lib/services/services.js.map +1 -1
  75. package/dist/lib/stateless-webex-plugin.js +5 -28
  76. package/dist/lib/stateless-webex-plugin.js.map +1 -1
  77. package/dist/lib/storage/decorators.js +19 -62
  78. package/dist/lib/storage/decorators.js.map +1 -1
  79. package/dist/lib/storage/errors.js +0 -23
  80. package/dist/lib/storage/errors.js.map +1 -1
  81. package/dist/lib/storage/index.js +2 -16
  82. package/dist/lib/storage/index.js.map +1 -1
  83. package/dist/lib/storage/make-webex-plugin-store.js +11 -41
  84. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  85. package/dist/lib/storage/make-webex-store.js +8 -30
  86. package/dist/lib/storage/make-webex-store.js.map +1 -1
  87. package/dist/lib/storage/memory-store-adapter.js +1 -19
  88. package/dist/lib/storage/memory-store-adapter.js.map +1 -1
  89. package/dist/lib/webex-core-plugin-mixin.js +9 -29
  90. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  91. package/dist/lib/webex-http-error.js +1 -31
  92. package/dist/lib/webex-http-error.js.map +1 -1
  93. package/dist/lib/webex-internal-core-plugin-mixin.js +9 -29
  94. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  95. package/dist/lib/webex-plugin.js +6 -40
  96. package/dist/lib/webex-plugin.js.map +1 -1
  97. package/dist/plugins/logger.js +3 -17
  98. package/dist/plugins/logger.js.map +1 -1
  99. package/dist/webex-core.js +79 -203
  100. package/dist/webex-core.js.map +1 -1
  101. package/dist/webex-internal-core.js +0 -10
  102. package/dist/webex-internal-core.js.map +1 -1
  103. package/package.json +14 -14
  104. package/src/config.js +9 -11
  105. package/src/credentials-config.js +110 -72
  106. package/src/index.js +4 -14
  107. package/src/interceptors/auth.js +36 -37
  108. package/src/interceptors/default-options.js +0 -1
  109. package/src/interceptors/embargo.js +1 -1
  110. package/src/interceptors/payload-transformer.js +1 -2
  111. package/src/interceptors/rate-limit.js +8 -5
  112. package/src/interceptors/redirect.js +14 -8
  113. package/src/interceptors/request-event.js +4 -8
  114. package/src/interceptors/request-logger.js +8 -5
  115. package/src/interceptors/response-logger.js +11 -8
  116. package/src/interceptors/user-agent.js +1 -2
  117. package/src/interceptors/webex-user-agent.js +3 -9
  118. package/src/lib/batcher.js +70 -69
  119. package/src/lib/credentials/credentials.js +112 -122
  120. package/src/lib/credentials/grant-errors.js +6 -7
  121. package/src/lib/credentials/index.js +1 -4
  122. package/src/lib/credentials/scope.js +1 -4
  123. package/src/lib/credentials/token-collection.js +1 -1
  124. package/src/lib/credentials/token.js +86 -80
  125. package/src/lib/page.js +10 -11
  126. package/src/lib/services/constants.js +3 -13
  127. package/src/lib/services/index.js +2 -2
  128. package/src/lib/services/interceptors/server-error.js +12 -7
  129. package/src/lib/services/interceptors/service.js +6 -5
  130. package/src/lib/services/metrics.js +1 -1
  131. package/src/lib/services/service-catalog.js +110 -100
  132. package/src/lib/services/service-fed-ramp.js +1 -2
  133. package/src/lib/services/service-host.js +10 -17
  134. package/src/lib/services/service-registry.js +69 -96
  135. package/src/lib/services/service-state.js +4 -6
  136. package/src/lib/services/service-url.js +24 -23
  137. package/src/lib/services/services.js +260 -251
  138. package/src/lib/stateless-webex-plugin.js +4 -2
  139. package/src/lib/storage/decorators.js +68 -66
  140. package/src/lib/storage/index.js +4 -6
  141. package/src/lib/storage/make-webex-plugin-store.js +34 -21
  142. package/src/lib/storage/make-webex-store.js +6 -7
  143. package/src/lib/storage/memory-store-adapter.js +3 -3
  144. package/src/lib/webex-core-plugin-mixin.js +10 -7
  145. package/src/lib/webex-http-error.js +7 -8
  146. package/src/lib/webex-internal-core-plugin-mixin.js +9 -6
  147. package/src/lib/webex-plugin.js +41 -34
  148. package/src/plugins/logger.js +8 -3
  149. package/src/webex-core.js +185 -116
  150. package/src/webex-internal-core.js +15 -9
  151. package/test/integration/spec/credentials/credentials.js +26 -30
  152. package/test/integration/spec/credentials/token.js +36 -33
  153. package/test/integration/spec/services/service-catalog.js +177 -156
  154. package/test/integration/spec/services/services.js +313 -304
  155. package/test/integration/spec/webex-core.js +98 -86
  156. package/test/unit/spec/_setup.js +26 -18
  157. package/test/unit/spec/credentials/credentials.js +189 -154
  158. package/test/unit/spec/credentials/token.js +94 -76
  159. package/test/unit/spec/interceptors/auth.js +291 -243
  160. package/test/unit/spec/interceptors/default-options.js +36 -24
  161. package/test/unit/spec/interceptors/embargo.js +32 -27
  162. package/test/unit/spec/interceptors/network-timing.js +2 -2
  163. package/test/unit/spec/interceptors/payload-transformer.js +61 -52
  164. package/test/unit/spec/interceptors/rate-limit.js +104 -75
  165. package/test/unit/spec/interceptors/redirect.js +22 -20
  166. package/test/unit/spec/interceptors/request-timing.js +18 -22
  167. package/test/unit/spec/interceptors/user-agent.js +28 -16
  168. package/test/unit/spec/interceptors/webex-tracking-id.js +14 -8
  169. package/test/unit/spec/interceptors/webex-user-agent.js +83 -37
  170. package/test/unit/spec/lib/batcher.js +36 -32
  171. package/test/unit/spec/lib/page.js +36 -32
  172. package/test/unit/spec/lib/webex-plugin.js +1 -1
  173. package/test/unit/spec/services/interceptors/server-error.js +67 -90
  174. package/test/unit/spec/services/interceptors/service.js +17 -28
  175. package/test/unit/spec/services/service-catalog.js +19 -27
  176. package/test/unit/spec/services/service-host.js +29 -26
  177. package/test/unit/spec/services/service-registry.js +128 -170
  178. package/test/unit/spec/services/service-state.js +13 -22
  179. package/test/unit/spec/services/service-url.js +24 -43
  180. package/test/unit/spec/services/services.js +85 -41
  181. package/test/unit/spec/storage/persist.js +6 -9
  182. package/test/unit/spec/storage/wait-for-value.js +22 -21
  183. package/test/unit/spec/webex-core.js +78 -57
  184. package/test/unit/spec/webex-internal-core.js +56 -31
@@ -1,125 +1,67 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
4
-
5
4
  var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
-
7
5
  var _Object$getOwnPropertyDescriptor2 = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
-
9
6
  var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
-
11
7
  var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
-
13
8
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
-
15
9
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
16
-
17
10
  _Object$defineProperty(exports, "__esModule", {
18
11
  value: true
19
12
  });
20
-
21
13
  exports.default = void 0;
22
14
  exports.registerInternalPlugin = registerInternalPlugin;
23
15
  exports.registerPlugin = registerPlugin;
24
-
25
16
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
26
-
27
17
  var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
28
-
29
18
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
30
-
31
19
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
32
-
33
20
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
34
-
35
21
  var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
36
-
37
22
  var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
38
-
39
23
  var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor"));
40
-
41
24
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
42
-
43
25
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
44
-
45
26
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
46
-
47
27
  var _unset2 = _interopRequireDefault(require("lodash/unset"));
48
-
49
28
  var _set2 = _interopRequireDefault(require("lodash/set"));
50
-
51
29
  var _omit2 = _interopRequireDefault(require("lodash/omit"));
52
-
53
30
  var _merge2 = _interopRequireDefault(require("lodash/merge"));
54
-
55
31
  var _last2 = _interopRequireDefault(require("lodash/last"));
56
-
57
32
  var _isString2 = _interopRequireDefault(require("lodash/isString"));
58
-
59
33
  var _isFunction2 = _interopRequireDefault(require("lodash/isFunction"));
60
-
61
34
  var _get2 = _interopRequireDefault(require("lodash/get"));
62
-
63
35
  var _defaultsDeep2 = _interopRequireDefault(require("lodash/defaultsDeep"));
64
-
65
36
  var _events = require("events");
66
-
67
37
  var _util = _interopRequireDefault(require("util"));
68
-
69
38
  var _common = require("@webex/common");
70
-
71
39
  var _httpCore = require("@webex/http-core");
72
-
73
40
  var _ampersandState = _interopRequireDefault(require("ampersand-state"));
74
-
75
41
  var _uuid = _interopRequireDefault(require("uuid"));
76
-
77
42
  var _auth = _interopRequireDefault(require("./interceptors/auth"));
78
-
79
43
  var _networkTiming = _interopRequireDefault(require("./interceptors/network-timing"));
80
-
81
44
  var _payloadTransformer = _interopRequireDefault(require("./interceptors/payload-transformer"));
82
-
83
45
  var _redirect = _interopRequireDefault(require("./interceptors/redirect"));
84
-
85
46
  var _requestEvent = _interopRequireDefault(require("./interceptors/request-event"));
86
-
87
47
  var _requestLogger = _interopRequireDefault(require("./interceptors/request-logger"));
88
-
89
48
  var _requestTiming = _interopRequireDefault(require("./interceptors/request-timing"));
90
-
91
49
  var _responseLogger = _interopRequireDefault(require("./interceptors/response-logger"));
92
-
93
50
  var _webexHttpError = _interopRequireDefault(require("./lib/webex-http-error"));
94
-
95
51
  var _userAgent = _interopRequireDefault(require("./interceptors/user-agent"));
96
-
97
52
  var _webexTrackingId = _interopRequireDefault(require("./interceptors/webex-tracking-id"));
98
-
99
53
  var _webexUserAgent = _interopRequireDefault(require("./interceptors/webex-user-agent"));
100
-
101
54
  var _rateLimit = _interopRequireDefault(require("./interceptors/rate-limit"));
102
-
103
55
  var _embargo = _interopRequireDefault(require("./interceptors/embargo"));
104
-
105
56
  var _defaultOptions = _interopRequireDefault(require("./interceptors/default-options"));
106
-
107
57
  var _config = _interopRequireDefault(require("./config"));
108
-
109
58
  var _storage = require("./lib/storage");
110
-
111
59
  var _webexCorePluginMixin = _interopRequireDefault(require("./lib/webex-core-plugin-mixin"));
112
-
113
60
  var _webexInternalCorePluginMixin = _interopRequireDefault(require("./lib/webex-internal-core-plugin-mixin"));
114
-
115
61
  var _webexInternalCore = _interopRequireDefault(require("./webex-internal-core"));
116
-
117
62
  var _obj;
118
-
119
63
  function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor2(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
120
-
121
64
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor2(source, key)); }); } return target; }
122
-
123
65
  // TODO replace the Interceptor.create with Reflect.construct (
124
66
  // Interceptor.create exists because new was really hard to call on an array of
125
67
  // constructors)
@@ -127,11 +69,9 @@ var interceptors = {
127
69
  WebexTrackingIdInterceptor: _webexTrackingId.default.create,
128
70
  RequestEventInterceptor: _requestEvent.default.create,
129
71
  RateLimitInterceptor: _rateLimit.default.create,
130
-
131
72
  /* eslint-disable no-extra-parens */
132
73
  RequestLoggerInterceptor: process.env.ENABLE_NETWORK_LOGGING || process.env.ENABLE_VERBOSE_NETWORK_LOGGING ? _requestLogger.default.create : undefined,
133
74
  ResponseLoggerInterceptor: process.env.ENABLE_NETWORK_LOGGING || process.env.ENABLE_VERBOSE_NETWORK_LOGGING ? _responseLogger.default.create : undefined,
134
-
135
75
  /* eslint-enable no-extra-parens */
136
76
  RequestTimingInterceptor: _requestTiming.default.create,
137
77
  ServiceInterceptor: undefined,
@@ -154,19 +94,18 @@ var interceptors = {
154
94
  var preInterceptors = ['ResponseLoggerInterceptor', 'RequestTimingInterceptor', 'RequestEventInterceptor', 'WebexTrackingIdInterceptor', 'RateLimitInterceptor'];
155
95
  var postInterceptors = ['HttpStatusInterceptor', 'NetworkTimingInterceptor', 'EmbargoInterceptor', 'RequestLoggerInterceptor', 'RateLimitInterceptor'];
156
96
  var MAX_FILE_SIZE_IN_MB = 2048;
97
+
157
98
  /**
158
99
  * @class
159
100
  */
160
-
161
101
  var WebexCore = _ampersandState.default.extend((_obj = {
162
- version: "3.0.0-beta.2",
102
+ version: "3.0.0-beta.21",
163
103
  children: {
164
104
  internal: _webexInternalCore.default
165
105
  },
166
106
  constructor: function constructor() {
167
107
  var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
168
108
  var options = arguments.length > 1 ? arguments[1] : undefined;
169
-
170
109
  if (typeof attrs === 'string') {
171
110
  attrs = {
172
111
  credentials: {
@@ -180,7 +119,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
180
119
  // Reminder: order is important here
181
120
  ['credentials.authorization', 'authorization', 'credentials.supertoken.supertoken', 'supertoken', 'access_token', 'credentials.authorization.supertoken'].forEach(function (path) {
182
121
  var val = (0, _get2.default)(attrs, path);
183
-
184
122
  if (val) {
185
123
  (0, _unset2.default)(attrs, path);
186
124
  (0, _set2.default)(attrs, 'credentials.supertoken', val);
@@ -188,20 +126,17 @@ var WebexCore = _ampersandState.default.extend((_obj = {
188
126
  });
189
127
  ['credentials', 'credentials.authorization'].forEach(function (path) {
190
128
  var val = (0, _get2.default)(attrs, path);
191
-
192
129
  if (typeof val === 'string') {
193
130
  (0, _unset2.default)(attrs, path);
194
131
  (0, _set2.default)(attrs, 'credentials.supertoken', val);
195
132
  }
196
133
  });
197
-
198
134
  if (typeof (0, _get2.default)(attrs, 'credentials.access_token') === 'string') {
199
135
  // Send access_token to get validated and corrected and then set it
200
136
  (0, _set2.default)(attrs, 'credentials.access_token', this.bearerValidator((0, _get2.default)(attrs, 'credentials.access_token').trim()));
201
137
  (0, _set2.default)(attrs, 'credentials.supertoken', attrs.credentials);
202
138
  }
203
139
  }
204
-
205
140
  return (0, _apply.default)(_ampersandState.default, this, [attrs, options]);
206
141
  },
207
142
  derived: {
@@ -221,7 +156,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
221
156
  deps: ['loaded', 'internal.ready'],
222
157
  fn: function fn() {
223
158
  var _this = this;
224
-
225
159
  return this.loaded && (0, _keys.default)(this._children).reduce(function (ready, name) {
226
160
  return ready && _this[name] && _this[name].ready !== false;
227
161
  }, true);
@@ -232,7 +166,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
232
166
  config: {
233
167
  type: 'object'
234
168
  },
235
-
236
169
  /**
237
170
  * When true, indicates that the initial load from the storage layer is
238
171
  * complete
@@ -255,7 +188,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
255
188
  type: 'string'
256
189
  }
257
190
  },
258
-
259
191
  /**
260
192
  * @instance
261
193
  * @memberof WebexCore
@@ -264,10 +196,8 @@ var WebexCore = _ampersandState.default.extend((_obj = {
264
196
  */
265
197
  refresh: function refresh() {
266
198
  var _this$credentials;
267
-
268
199
  return (_this$credentials = this.credentials).refresh.apply(_this$credentials, arguments);
269
200
  },
270
-
271
201
  /**
272
202
  * Applies the directionally appropriate transforms to the specified object
273
203
  * @param {string} direction
@@ -276,7 +206,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
276
206
  */
277
207
  transform: function transform(direction, object) {
278
208
  var _this2 = this;
279
-
280
209
  var predicates = this.config.payloadTransformer.predicates.filter(function (p) {
281
210
  return !p.direction || p.direction === direction;
282
211
  });
@@ -288,8 +217,8 @@ var WebexCore = _ampersandState.default.extend((_obj = {
288
217
  if (!shouldTransform) {
289
218
  return undefined;
290
219
  }
291
-
292
- return p.extract(object) // eslint-disable-next-line max-nested-callbacks
220
+ return p.extract(object)
221
+ // eslint-disable-next-line max-nested-callbacks
293
222
  .then(function (target) {
294
223
  return {
295
224
  name: p.name,
@@ -300,16 +229,16 @@ var WebexCore = _ampersandState.default.extend((_obj = {
300
229
  })).then(function (data) {
301
230
  return data.filter(function (d) {
302
231
  return Boolean(d);
303
- }) // eslint-disable-next-line max-nested-callbacks
232
+ })
233
+ // eslint-disable-next-line max-nested-callbacks
304
234
  .reduce(function (promise, _ref) {
305
235
  var name = _ref.name,
306
- target = _ref.target,
307
- alias = _ref.alias;
236
+ target = _ref.target,
237
+ alias = _ref.alias;
308
238
  return promise.then(function () {
309
239
  if (alias) {
310
240
  return _this2.applyNamedTransform(direction, alias, target);
311
241
  }
312
-
313
242
  return _this2.applyNamedTransform(direction, name, target);
314
243
  });
315
244
  }, _promise.default.resolve());
@@ -317,7 +246,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
317
246
  return object;
318
247
  });
319
248
  },
320
-
321
249
  /**
322
250
  * Applies the directionally appropriate transform to the specified parameters
323
251
  * @param {string} direction
@@ -327,11 +255,9 @@ var WebexCore = _ampersandState.default.extend((_obj = {
327
255
  */
328
256
  applyNamedTransform: function applyNamedTransform(direction, ctx, name) {
329
257
  var _this3 = this;
330
-
331
258
  for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
332
259
  rest[_key - 3] = arguments[_key];
333
260
  }
334
-
335
261
  if ((0, _isString2.default)(ctx)) {
336
262
  rest.unshift(name);
337
263
  name = ctx;
@@ -341,32 +267,28 @@ var WebexCore = _ampersandState.default.extend((_obj = {
341
267
  for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
342
268
  args[_key2] = arguments[_key2];
343
269
  }
344
-
345
270
  return _this3.applyNamedTransform.apply(_this3, [direction, ctx].concat(args));
346
271
  }
347
272
  };
348
273
  }
349
-
350
274
  var transforms = ctx.webex.config.payloadTransformer.transforms.filter(function (tx) {
351
275
  return tx.name === name && (!tx.direction || tx.direction === direction);
352
- }); // too many implicit returns on the same line is difficult to interpret
353
- // eslint-disable-next-line arrow-body-style
276
+ });
354
277
 
278
+ // too many implicit returns on the same line is difficult to interpret
279
+ // eslint-disable-next-line arrow-body-style
355
280
  return transforms.reduce(function (promise, tx) {
356
281
  return promise.then(function () {
357
282
  if (tx.alias) {
358
283
  var _ctx;
359
-
360
284
  return (_ctx = ctx).transform.apply(_ctx, [tx.alias].concat(rest));
361
285
  }
362
-
363
286
  return _promise.default.resolve(tx.fn.apply(tx, [ctx].concat(rest)));
364
287
  });
365
288
  }, _promise.default.resolve()).then(function () {
366
289
  return (0, _last2.default)(rest);
367
290
  });
368
291
  },
369
-
370
292
  /**
371
293
  * @private
372
294
  * @returns {Window}
@@ -375,7 +297,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
375
297
  // eslint-disable-next-line
376
298
  return window;
377
299
  },
378
-
379
300
  /**
380
301
  * Initializer
381
302
  *
@@ -388,16 +309,15 @@ var WebexCore = _ampersandState.default.extend((_obj = {
388
309
  */
389
310
  initialize: function initialize() {
390
311
  var _this4 = this;
391
-
392
312
  var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
393
- this.config = (0, _merge2.default)({}, _config.default, attrs.config); // There's some unfortunateness with the way {@link AmpersandState#children}
313
+ this.config = (0, _merge2.default)({}, _config.default, attrs.config);
314
+
315
+ // There's some unfortunateness with the way {@link AmpersandState#children}
394
316
  // get initialized. We'll fire the change:config event so that
395
317
  // {@link WebexPlugin#initialize()} can use
396
318
  // `this.listenToOnce(parent, 'change:config', () => {});` to act on config
397
319
  // during initialization
398
-
399
320
  this.trigger('change:config');
400
-
401
321
  var onLoaded = function onLoaded() {
402
322
  if (_this4.loaded) {
403
323
  /**
@@ -407,16 +327,14 @@ var WebexCore = _ampersandState.default.extend((_obj = {
407
327
  * @memberof WebexCore
408
328
  */
409
329
  _this4.trigger('loaded');
410
-
411
330
  _this4.stopListening(_this4, 'change:loaded', onLoaded);
412
331
  }
413
- }; // This needs to run on nextTick or we'll never be able to wire up listeners
414
-
332
+ };
415
333
 
334
+ // This needs to run on nextTick or we'll never be able to wire up listeners
416
335
  process.nextTick(function () {
417
336
  _this4.listenToAndRun(_this4, 'change:loaded', onLoaded);
418
337
  });
419
-
420
338
  var onReady = function onReady() {
421
339
  if (_this4.ready) {
422
340
  /**
@@ -426,39 +344,33 @@ var WebexCore = _ampersandState.default.extend((_obj = {
426
344
  * @memberof WebexCore
427
345
  */
428
346
  _this4.trigger('ready');
429
-
430
347
  _this4.stopListening(_this4, 'change:ready', onReady);
431
348
  }
432
- }; // This needs to run on nextTick or we'll never be able to wire up listeners
433
-
349
+ };
434
350
 
351
+ // This needs to run on nextTick or we'll never be able to wire up listeners
435
352
  process.nextTick(function () {
436
353
  _this4.listenToAndRun(_this4, 'change:ready', onReady);
437
- }); // Make nested events propagate in a consistent manner
354
+ });
438
355
 
356
+ // Make nested events propagate in a consistent manner
439
357
  (0, _keys.default)(this.constructor.prototype._children).forEach(function (key) {
440
358
  _this4.listenTo(_this4[key], 'change', function () {
441
359
  for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
442
360
  args[_key3] = arguments[_key3];
443
361
  }
444
-
445
362
  args.unshift("change:".concat(key));
446
-
447
363
  _this4.trigger.apply(_this4, args);
448
364
  });
449
365
  });
450
-
451
366
  var addInterceptor = function addInterceptor(ints, key) {
452
367
  var interceptor = interceptors[key];
453
-
454
368
  if (!(0, _isFunction2.default)(interceptor)) {
455
369
  return ints;
456
370
  }
457
-
458
371
  ints.push((0, _apply.default)(interceptor, _this4, []));
459
372
  return ints;
460
373
  };
461
-
462
374
  var ints = [];
463
375
  ints = preInterceptors.reduce(addInterceptor, ints);
464
376
  ints = (0, _keys.default)(interceptors).filter(function (key) {
@@ -470,14 +382,11 @@ var WebexCore = _ampersandState.default.extend((_obj = {
470
382
  interceptors: ints
471
383
  });
472
384
  var sessionId = "".concat((0, _get2.default)(this, 'config.trackingIdPrefix', 'webex-js-sdk'), "_").concat((0, _get2.default)(this, 'config.trackingIdBase', _uuid.default.v4()));
473
-
474
385
  if ((0, _get2.default)(this, 'config.trackingIdSuffix')) {
475
386
  sessionId += "_".concat((0, _get2.default)(this, 'config.trackingIdSuffix'));
476
387
  }
477
-
478
388
  this.sessionId = sessionId;
479
389
  },
480
-
481
390
  /**
482
391
  * setConfig
483
392
  *
@@ -492,7 +401,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
492
401
  var newConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
493
402
  this.config = (0, _merge2.default)({}, this.config, newConfig);
494
403
  },
495
-
496
404
  /**
497
405
  *
498
406
  * Check if access token is correctly formated and correct if it's not
@@ -505,17 +413,16 @@ var WebexCore = _ampersandState.default.extend((_obj = {
505
413
  console.warn("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".concat(token.replace('Bearer', 'Bearer ').replace(/\s+/g, ' ')));
506
414
  console.info("Tip: You don't need to add 'Bearer' to the access_token field. The token by itself is fine");
507
415
  return token.replace('Bearer', 'Bearer ').replace(/\s+/g, ' ');
508
- } // Allow elseIf return
416
+ }
417
+ // Allow elseIf return
509
418
  // eslint-disable-next-line no-else-return
510
419
  else if (token.split(' ').length - 1 > 1) {
511
420
  console.warn("Your access token has ".concat(token.split(' ').length - 2, " too many spaces, please use this format:\n\n").concat(token.replace(/\s+/g, ' ')));
512
421
  console.info("Tip: You don't need to add 'Bearer' to the access_token field, the token by itself is fine");
513
422
  return token.replace(/\s+/g, ' ');
514
423
  }
515
-
516
424
  return token.replace(/\s+/g, ' '); // Clean it anyway (just in case)
517
425
  },
518
-
519
426
  /**
520
427
  * @instance
521
428
  * @memberof WebexPlugin
@@ -532,7 +439,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
532
439
  depth: depth
533
440
  });
534
441
  },
535
-
536
442
  /**
537
443
  * Invokes all `onBeforeLogout` handlers in the scope of their plugin, clears
538
444
  * all stores, and revokes the access token
@@ -548,26 +454,26 @@ var WebexCore = _ampersandState.default.extend((_obj = {
548
454
  */
549
455
  logout: function logout(options) {
550
456
  var _this5 = this;
551
-
552
457
  for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
553
458
  rest[_key4 - 1] = arguments[_key4];
554
459
  }
555
-
556
460
  // prefer the refresh token, but for clients that don't have one, fallback
557
461
  // to the access token
558
462
  var token = this.credentials.supertoken && (this.credentials.supertoken.refresh_token || this.credentials.supertoken.access_token);
559
463
  options = (0, _assign.default)({
560
464
  token: token
561
- }, options); // onBeforeLogout should be executed in the opposite order in which handlers
465
+ }, options);
466
+
467
+ // onBeforeLogout should be executed in the opposite order in which handlers
562
468
  // were registered. In that way, wdm unregister() will be above mercury
563
469
  // disconnect(), but disconnect() will execute first.
564
470
  // eslint-disable-next-line arrow-body-style
565
-
566
471
  return this.config.onBeforeLogout.reverse().reduce(function (promise, _ref2) {
567
472
  var plugin = _ref2.plugin,
568
- fn = _ref2.fn;
473
+ fn = _ref2.fn;
569
474
  return promise.then(function () {
570
- return _promise.default.resolve((0, _apply.default)(fn, _this5[plugin] || _this5.internal[plugin], [options].concat(rest))) // eslint-disable-next-line max-nested-callbacks
475
+ return _promise.default.resolve((0, _apply.default)(fn, _this5[plugin] || _this5.internal[plugin], [options].concat(rest)))
476
+ // eslint-disable-next-line max-nested-callbacks
571
477
  .catch(function (err) {
572
478
  _this5.logger.warn("onBeforeLogout from plugin ".concat(plugin, ": failed"), err);
573
479
  });
@@ -576,17 +482,14 @@ var WebexCore = _ampersandState.default.extend((_obj = {
576
482
  return _promise.default.all([_this5.boundedStorage.clear(), _this5.unboundedStorage.clear()]);
577
483
  }).then(function () {
578
484
  var _this5$credentials;
579
-
580
485
  return (_this5$credentials = _this5.credentials).invalidate.apply(_this5$credentials, rest);
581
486
  }).then(function () {
582
487
  var _this5$authorization;
583
-
584
488
  return _this5.authorization && _this5.authorization.logout && (_this5$authorization = _this5.authorization).logout.apply(_this5$authorization, [options].concat(rest));
585
489
  }).then(function () {
586
490
  return _this5.trigger('client:logout');
587
491
  });
588
492
  },
589
-
590
493
  /**
591
494
  * General purpose wrapper to submit metrics via the metrics plugin (if the
592
495
  * metrics plugin is installed)
@@ -597,104 +500,88 @@ var WebexCore = _ampersandState.default.extend((_obj = {
597
500
  measure: function measure() {
598
501
  if (this.metrics) {
599
502
  var _this$metrics;
600
-
601
503
  return (_this$metrics = this.metrics).sendUnstructured.apply(_this$metrics, arguments);
602
504
  }
603
-
604
505
  return _promise.default.resolve();
605
506
  },
606
507
  upload: function upload(options) {
607
508
  var _this6 = this;
608
-
609
509
  return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
610
510
  var shunt, promise;
611
511
  return _regenerator.default.wrap(function _callee$(_context) {
612
- while (1) {
613
- switch (_context.prev = _context.next) {
614
- case 0:
615
- if (options.file) {
616
- _context.next = 2;
617
- break;
512
+ while (1) switch (_context.prev = _context.next) {
513
+ case 0:
514
+ if (options.file) {
515
+ _context.next = 2;
516
+ break;
517
+ }
518
+ return _context.abrupt("return", _promise.default.reject(new Error('`options.file` is required')));
519
+ case 2:
520
+ options.phases = options.phases || {};
521
+ options.phases.initialize = options.phases.initialize || {};
522
+ options.phases.upload = options.phases.upload || {};
523
+ options.phases.finalize = options.phases.finalize || {};
524
+ (0, _defaultsDeep2.default)(options.phases.initialize, {
525
+ method: 'POST',
526
+ body: {
527
+ uploadProtocol: 'content-length'
618
528
  }
619
-
620
- return _context.abrupt("return", _promise.default.reject(new Error('`options.file` is required')));
621
-
622
- case 2:
623
- options.phases = options.phases || {};
624
- options.phases.initialize = options.phases.initialize || {};
625
- options.phases.upload = options.phases.upload || {};
626
- options.phases.finalize = options.phases.finalize || {};
627
- (0, _defaultsDeep2.default)(options.phases.initialize, {
628
- method: 'POST',
629
- body: {
630
- uploadProtocol: 'content-length'
631
- }
632
- }, (0, _omit2.default)(options, 'file', 'phases'));
633
- (0, _defaultsDeep2.default)(options.phases.upload, {
634
- method: 'PUT',
635
- json: false,
636
- withCredentials: false,
637
- body: options.file,
638
- headers: {
639
- 'x-trans-id': _uuid.default.v4(),
640
- authorization: undefined
641
- }
642
- });
643
- (0, _defaultsDeep2.default)(options.phases.finalize, {
644
- method: 'POST'
645
- }, (0, _omit2.default)(options, 'file', 'phases'));
646
- shunt = new _events.EventEmitter();
647
- promise = _this6._uploadPhaseInitialize(options).then(function () {
648
- var p = _this6._uploadPhaseUpload(options);
649
-
650
- (0, _common.transferEvents)('progress', p, shunt);
651
- return p;
652
- }).then(function () {
653
- for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
654
- args[_key5] = arguments[_key5];
655
- }
656
-
657
- return _this6._uploadPhaseFinalize.apply(_this6, [options].concat(args));
658
- }).then(function (res) {
659
- return _objectSpread(_objectSpread({}, res.body), res.headers);
660
- });
661
- (0, _common.proxyEvents)(shunt, promise);
662
- return _context.abrupt("return", promise);
663
-
664
- case 13:
665
- case "end":
666
- return _context.stop();
667
- }
529
+ }, (0, _omit2.default)(options, 'file', 'phases'));
530
+ (0, _defaultsDeep2.default)(options.phases.upload, {
531
+ method: 'PUT',
532
+ json: false,
533
+ withCredentials: false,
534
+ body: options.file,
535
+ headers: {
536
+ 'x-trans-id': _uuid.default.v4(),
537
+ authorization: undefined
538
+ }
539
+ });
540
+ (0, _defaultsDeep2.default)(options.phases.finalize, {
541
+ method: 'POST'
542
+ }, (0, _omit2.default)(options, 'file', 'phases'));
543
+ shunt = new _events.EventEmitter();
544
+ promise = _this6._uploadPhaseInitialize(options).then(function () {
545
+ var p = _this6._uploadPhaseUpload(options);
546
+ (0, _common.transferEvents)('progress', p, shunt);
547
+ return p;
548
+ }).then(function () {
549
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
550
+ args[_key5] = arguments[_key5];
551
+ }
552
+ return _this6._uploadPhaseFinalize.apply(_this6, [options].concat(args));
553
+ }).then(function (res) {
554
+ return _objectSpread(_objectSpread({}, res.body), res.headers);
555
+ });
556
+ (0, _common.proxyEvents)(shunt, promise);
557
+ return _context.abrupt("return", promise);
558
+ case 13:
559
+ case "end":
560
+ return _context.stop();
668
561
  }
669
562
  }, _callee);
670
563
  }))();
671
564
  },
672
565
  _uploadPhaseInitialize: function _uploadPhaseInitialize(options) {
673
566
  var _this7 = this;
674
-
675
567
  this.logger.debug('client: initiating upload session');
676
568
  return this.request(options.phases.initialize).then(function () {
677
569
  for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
678
570
  args[_key6] = arguments[_key6];
679
571
  }
680
-
681
572
  var fileUploadSizeLimitInBytes = (args[0].body.fileUploadSizeLimit || MAX_FILE_SIZE_IN_MB) * 1024 * 1024;
682
573
  var currentFileSizeInBytes = options.file.byteLength;
683
-
684
574
  if (fileUploadSizeLimitInBytes && fileUploadSizeLimitInBytes < currentFileSizeInBytes) {
685
575
  return _this7._uploadAbortSession.apply(_this7, [currentFileSizeInBytes].concat(args));
686
576
  }
687
-
688
577
  return _this7._uploadApplySession.apply(_this7, [options].concat(args));
689
578
  }).then(function (res) {
690
579
  _this7.logger.debug('client: initiated upload session');
691
-
692
580
  return res;
693
581
  });
694
582
  },
695
583
  _uploadAbortSession: function _uploadAbortSession(currentFileSizeInBytes, response) {
696
584
  var _this8 = this;
697
-
698
585
  this.logger.debug('client: deleting uploaded file');
699
586
  return this.request({
700
587
  method: 'DELETE',
@@ -702,7 +589,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
702
589
  headers: response.options.headers
703
590
  }).then(function () {
704
591
  _this8.logger.debug('client: deleting uploaded file complete');
705
-
706
592
  var abortErrorDetails = {
707
593
  currentFileSizeInBytes: currentFileSizeInBytes,
708
594
  fileUploadSizeLimitInMB: response.body.fileUploadSizeLimit || MAX_FILE_SIZE_IN_MB,
@@ -719,7 +605,6 @@ var WebexCore = _ampersandState.default.extend((_obj = {
719
605
  phaseOptions[phaseKey.substr(1)] = phaseOptions[phaseKey](session);
720
606
  (0, _deleteProperty.default)(phaseOptions, phaseKey);
721
607
  }
722
-
723
608
  return phaseOptions;
724
609
  }, opts[key]);
725
610
  return opts;
@@ -727,37 +612,31 @@ var WebexCore = _ampersandState.default.extend((_obj = {
727
612
  },
728
613
  _uploadPhaseUpload: function _uploadPhaseUpload(options) {
729
614
  var _this9 = this;
730
-
731
615
  this.logger.debug('client: uploading file');
732
616
  var promise = this.request(options.phases.upload).then(function (res) {
733
617
  _this9.logger.debug('client: uploaded file');
734
-
735
618
  return res;
736
619
  });
737
620
  (0, _common.proxyEvents)(options.phases.upload.upload, promise);
738
- /* istanbul ignore else */
739
621
 
622
+ /* istanbul ignore else */
740
623
  if (process.env.NODE_ENV === 'test') {
741
624
  promise.on('progress', function (event) {
742
625
  _this9.logger.info('upload progress', event.loaded, event.total);
743
626
  });
744
627
  }
745
-
746
628
  return promise;
747
629
  },
748
630
  _uploadPhaseFinalize: function _uploadPhaseFinalize(options) {
749
631
  var _this10 = this;
750
-
751
632
  this.logger.debug('client: finalizing upload session');
752
633
  return this.request(options.phases.finalize).then(function (res) {
753
634
  _this10.logger.debug('client: finalized upload session');
754
-
755
635
  return res;
756
636
  });
757
637
  }
758
638
  }, ((0, _applyDecoratedDescriptor2.default)(_obj, "_uploadPhaseUpload", [_common.retry], (0, _getOwnPropertyDescriptor.default)(_obj, "_uploadPhaseUpload"), _obj)), _obj));
759
-
760
- WebexCore.version = "3.0.0-beta.2";
639
+ WebexCore.version = "3.0.0-beta.21";
761
640
  (0, _webexInternalCorePluginMixin.default)(_webexInternalCore.default, _config.default, interceptors);
762
641
  (0, _webexCorePluginMixin.default)(WebexCore, _config.default, interceptors);
763
642
  var _default = WebexCore;
@@ -770,13 +649,12 @@ var _default = WebexCore;
770
649
  * @param {Object} options.interceptors
771
650
  * @returns {null}
772
651
  */
773
-
774
652
  exports.default = _default;
775
-
776
653
  function registerPlugin(name, constructor) {
777
654
  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
778
655
  WebexCore.registerPlugin(name, constructor, options);
779
656
  }
657
+
780
658
  /**
781
659
  * Registers plugins used by internal products that do not talk to public APIs.
782
660
  * @method registerInternalPlugin
@@ -787,8 +665,6 @@ function registerPlugin(name, constructor) {
787
665
  * @private
788
666
  * @returns {null}
789
667
  */
790
-
791
-
792
668
  function registerInternalPlugin(name, constructor, options) {
793
669
  _webexInternalCore.default.registerPlugin(name, constructor, options);
794
670
  }