@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,44 +1,26 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  exports.persist = persist;
12
9
  exports.waitForValue = waitForValue;
13
-
14
10
  var _apply = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/apply"));
15
-
16
11
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
17
-
18
12
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
19
-
20
13
  var _set = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/set"));
21
-
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
23
-
24
15
  var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
25
-
26
16
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/toConsumableArray"));
27
-
28
17
  var _wrap2 = _interopRequireDefault(require("lodash/wrap"));
29
-
30
18
  var _result2 = _interopRequireDefault(require("lodash/result"));
31
-
32
19
  var _identity2 = _interopRequireDefault(require("lodash/identity"));
33
-
34
20
  var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
35
-
36
21
  var _curry2 = _interopRequireDefault(require("lodash/curry"));
37
-
38
22
  var _common = require("@webex/common");
39
-
40
23
  var _errors = require("./errors");
41
-
42
24
  /**
43
25
  * Stores the result of fn before returning it
44
26
  * @param {string} key
@@ -49,47 +31,41 @@ function persist() {
49
31
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
50
32
  args[_key] = arguments[_key];
51
33
  }
52
-
53
34
  if (args.length === 3) {
54
35
  return persist('@').apply(void 0, args);
55
36
  }
56
-
57
37
  var key = args[0],
58
- decider = args[1];
38
+ decider = args[1];
59
39
  return function persistDecorator(target, prop, descriptor) {
60
40
  if (prop !== 'initialize') {
61
41
  // Once we have class-based alternative to AmpersandState, it should be
62
42
  // detected here.
63
43
  throw new TypeError('@persist can only currently be applied to AmpersandState objects or their derivatives and must be applied to the initialize method');
64
44
  }
65
-
66
45
  descriptor.value = (0, _wrap2.default)(descriptor.value, function persistExecutor(fn) {
67
46
  var _this = this;
68
-
69
47
  for (var _len2 = arguments.length, initializeArgs = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
70
48
  initializeArgs[_key2 - 1] = arguments[_key2];
71
49
  }
72
-
73
50
  var ret = (0, _apply.default)(fn, this, initializeArgs);
74
- var changeEvent = key === '@' ? 'change' : "change:".concat(key); // Some scenarios will lead to lots of change events on a single tick; we
51
+ var changeEvent = key === '@' ? 'change' : "change:".concat(key);
52
+
53
+ // Some scenarios will lead to lots of change events on a single tick; we
75
54
  // really only care about writing once things have stopped changing. with
76
55
  // a debounce of zero, we're effectively coalescing all the changes
77
56
  // triggered by a single call to set() and commiting them on the next tick
78
57
  // eslint-disable-next-line no-invalid-this
79
-
80
58
  this.on(changeEvent, (0, _debounce2.default)(function () {
81
59
  var shouldPersist = !decider || _apply.default.apply(Reflect, [decider, _this].concat(initializeArgs));
82
-
83
60
  if (!shouldPersist) {
84
61
  return _promise.default.resolve();
85
62
  }
86
-
87
63
  if (key === '@') {
88
64
  // eslint-disable-next-line no-invalid-this
89
65
  return _this.boundedStorage.put(key, _this);
90
- } // eslint-disable-next-line no-invalid-this
91
-
66
+ }
92
67
 
68
+ // eslint-disable-next-line no-invalid-this
93
69
  return _this.boundedStorage.put(key, _this[key]);
94
70
  }, 0));
95
71
  return ret;
@@ -97,11 +73,11 @@ function persist() {
97
73
  prepareInitialize(target, prop);
98
74
  };
99
75
  }
100
-
101
76
  var M = _map.default;
102
77
  var S = _set.default;
103
78
  var BlockingKeyMap = (0, _common.make)(M, M, S);
104
79
  var blockingKeys = new BlockingKeyMap();
80
+
105
81
  /**
106
82
  * Prevents fn from executing until key has been (attempted to be) loaded
107
83
  * @param {string} key
@@ -109,40 +85,36 @@ var blockingKeys = new BlockingKeyMap();
109
85
  * @private
110
86
  * @returns {Promise} result of fn
111
87
  */
112
-
113
88
  function waitForValue(key) {
114
89
  if (!key) {
115
90
  throw new Error('`key` is required');
116
91
  }
117
-
118
92
  return function waitForValueDecorator(target, prop, descriptor) {
119
93
  blockingKeys.add(target, prop, key);
120
94
  descriptor.value = (0, _wrap2.default)(descriptor.value, function waitForValueExecutor(fn) {
121
95
  var _this2 = this;
122
-
123
96
  for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
124
97
  args[_key3 - 1] = arguments[_key3];
125
98
  }
126
-
127
99
  var keys = blockingKeys.get(target, prop);
128
100
  return _promise.default.all((0, _toConsumableArray2.default)(keys).map(function (k) {
129
101
  return _this2.boundedStorage.waitFor(k);
130
102
  })).then(function () {
131
103
  return (0, _apply.default)(fn, _this2, args);
132
104
  });
133
- }); // This *should* make decorators compatible with AmpersandState class
134
- // definitions
105
+ });
135
106
 
107
+ // This *should* make decorators compatible with AmpersandState class
108
+ // definitions
136
109
  if ((0, _typeof2.default)(target) === 'object' && !target.prototype) {
137
110
  target[prop] = descriptor.value;
138
111
  }
139
-
140
112
  prepareInitialize(target, prop);
141
113
  return descriptor;
142
114
  };
143
115
  }
144
-
145
116
  var inited = new _set.default();
117
+
146
118
  /**
147
119
  * finds a means of identitying the `target` param passed to
148
120
  * `prepareInitialize()`. When possible, avoids duplicate `init()` calls if
@@ -152,71 +124,60 @@ var inited = new _set.default();
152
124
  * @private
153
125
  * @returns {String|Constructor}
154
126
  */
155
-
156
127
  function identifyTarget(target) {
157
128
  if (target.namespace) {
158
129
  return target.namespace;
159
130
  }
160
-
161
131
  return target;
162
132
  }
163
-
164
133
  var stack = new _set.default();
134
+
165
135
  /**
166
136
  * @param {Function} target
167
137
  * @param {string} prop
168
138
  * @private
169
139
  * @returns {undefined}
170
140
  */
171
-
172
141
  function prepareInitialize(target, prop) {
173
142
  var id = identifyTarget(target);
174
-
175
143
  if (!inited.has(id)) {
176
144
  inited.add(id);
177
-
178
145
  if (target.initialize) {
179
146
  target.initialize = (0, _wrap2.default)(target.initialize, function applyInit(fn) {
180
147
  for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
181
148
  args[_key4 - 1] = arguments[_key4];
182
149
  }
183
-
184
150
  var ret = (0, _apply.default)(fn, this, args);
185
151
  (0, _apply.default)(init, this, args);
186
152
  return ret;
187
153
  });
188
154
  return;
189
155
  }
190
-
191
156
  target.initialize = init;
192
157
  }
158
+
193
159
  /**
194
160
  * @private
195
161
  * @returns {undefined}
196
162
  */
197
-
198
-
199
163
  function init() {
200
164
  var self = this;
201
165
  var namespace = this.getNamespace();
202
166
  this.webex.initialize = (0, _wrap2.default)(this.webex.initialize || _identity2.default, function applyInit(fn) {
203
167
  var _this3 = this;
204
-
205
168
  // Call webex's initalize method first
206
169
  // Reminder: in order for MockWebex to accept initial storage data, the
207
170
  // wrapped initialize() must be invoked before attempting to load data.
208
171
  // Reminder: context here is `webex`, not `self`.
209
172
  stack.add(namespace);
210
-
211
173
  for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {
212
174
  args[_key5 - 1] = arguments[_key5];
213
175
  }
176
+ (0, _apply.default)(fn, this, args);
214
177
 
215
- (0, _apply.default)(fn, this, args); // Then prepare a function for setting values retrieved from storage
216
-
178
+ // Then prepare a function for setting values retrieved from storage
217
179
  var set = (0, _curry2.default)(function (key, value) {
218
180
  _this3.logger.debug("storage:(".concat(namespace, "): got `").concat(key, "` for first time"));
219
-
220
181
  if (key === '@') {
221
182
  self.parent.set((0, _defineProperty2.default)({}, namespace.toLowerCase(), value));
222
183
  } else if ((0, _result2.default)(self[key], 'isState')) {
@@ -224,31 +185,27 @@ function prepareInitialize(target, prop) {
224
185
  } else {
225
186
  self.set(key, value);
226
187
  }
227
-
228
188
  _this3.logger.debug("storage:(".concat(namespace, "): set `").concat(key, "` for first time"));
229
- }); // And prepare an error handler for when those keys can't be found
189
+ });
230
190
 
191
+ // And prepare an error handler for when those keys can't be found
231
192
  var handle = (0, _curry2.default)(function (key, reason) {
232
193
  if (reason instanceof _errors.NotFoundError || process.env.NODE_ENV !== 'production' && reason.toString().includes('MockNotFoundError')) {
233
194
  _this3.logger.debug("storage(".concat(namespace, "): no data for `").concat(key, "`, continuing"));
234
-
235
195
  return _promise.default.resolve();
236
196
  }
237
-
238
197
  _this3.logger.error("storage(".concat(namespace, "): failed to init `").concat(key, "`"), reason);
239
-
240
198
  return _promise.default.reject(reason);
241
- }); // Iterate over the list of keys marked as blocking via `@waitForValue`
199
+ });
242
200
 
201
+ // Iterate over the list of keys marked as blocking via `@waitForValue`
243
202
  var keys = blockingKeys.get(target, prop);
244
203
  var promises = [];
245
204
  keys.forEach(function (key) {
246
205
  promises.push(_this3.boundedStorage.get(namespace, key).then(set(key)).catch(handle(key)));
247
206
  });
248
-
249
207
  _promise.default.all(promises).then(function () {
250
208
  stack.delete(namespace);
251
-
252
209
  if (stack.size === 0) {
253
210
  _this3.loaded = true;
254
211
  }
@@ -1 +1 @@
1
- {"version":3,"names":["persist","args","length","key","decider","persistDecorator","target","prop","descriptor","TypeError","value","persistExecutor","fn","initializeArgs","ret","changeEvent","on","shouldPersist","Reflect","resolve","boundedStorage","put","prepareInitialize","M","S","BlockingKeyMap","make","blockingKeys","waitForValue","Error","waitForValueDecorator","add","waitForValueExecutor","keys","get","all","map","k","waitFor","then","prototype","inited","identifyTarget","namespace","stack","id","has","initialize","applyInit","init","self","getNamespace","webex","set","logger","debug","parent","toLowerCase","handle","reason","NotFoundError","process","env","NODE_ENV","toString","includes","error","reject","promises","forEach","push","catch","delete","size","loaded"],"sources":["decorators.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint no-invalid-this: [0] */\n\nimport {\n curry,\n debounce,\n identity,\n result,\n wrap\n} from 'lodash';\nimport {make} from '@webex/common';\n\nimport {NotFoundError} from './errors';\n\n/**\n * Stores the result of fn before returning it\n * @param {string} key\n * @private\n * @returns {Promise} resolves with the result of fn\n */\nexport function persist(...args) {\n if (args.length === 3) {\n return persist('@')(...args);\n }\n\n const [key, decider] = args;\n\n return function persistDecorator(target, prop, descriptor) {\n if (prop !== 'initialize') {\n // Once we have class-based alternative to AmpersandState, it should be\n // detected here.\n throw new TypeError('@persist can only currently be applied to AmpersandState objects or their derivatives and must be applied to the initialize method');\n }\n\n descriptor.value = wrap(descriptor.value, function persistExecutor(fn, ...initializeArgs) {\n const ret = Reflect.apply(fn, this, initializeArgs);\n const changeEvent = key === '@' ? 'change' : `change:${key}`;\n\n // Some scenarios will lead to lots of change events on a single tick; we\n // really only care about writing once things have stopped changing. with\n // a debounce of zero, we're effectively coalescing all the changes\n // triggered by a single call to set() and commiting them on the next tick\n // eslint-disable-next-line no-invalid-this\n this.on(changeEvent, debounce(() => {\n const shouldPersist = !decider || Reflect.apply(decider, this, ...initializeArgs);\n\n if (!shouldPersist) {\n return Promise.resolve();\n }\n if (key === '@') {\n // eslint-disable-next-line no-invalid-this\n return this.boundedStorage.put(key, this);\n }\n\n // eslint-disable-next-line no-invalid-this\n return this.boundedStorage.put(key, this[key]);\n }, 0));\n\n return ret;\n });\n\n prepareInitialize(target, prop);\n };\n}\n\nconst M = Map;\nconst S = Set;\nconst BlockingKeyMap = make(M, M, S);\nconst blockingKeys = new BlockingKeyMap();\n\n/**\n * Prevents fn from executing until key has been (attempted to be) loaded\n * @param {string} key\n * @param {Function} fn\n * @private\n * @returns {Promise} result of fn\n */\nexport function waitForValue(key) {\n if (!key) {\n throw new Error('`key` is required');\n }\n\n return function waitForValueDecorator(target, prop, descriptor) {\n blockingKeys.add(target, prop, key);\n descriptor.value = wrap(descriptor.value, function waitForValueExecutor(fn, ...args) {\n const keys = blockingKeys.get(target, prop);\n\n return Promise.all([...keys].map((k) => this.boundedStorage.waitFor(k)))\n .then(() => Reflect.apply(fn, this, args));\n });\n\n // This *should* make decorators compatible with AmpersandState class\n // definitions\n if (typeof target === 'object' && !target.prototype) {\n target[prop] = descriptor.value;\n }\n\n prepareInitialize(target, prop);\n\n return descriptor;\n };\n}\n\nconst inited = new Set();\n\n/**\n * finds a means of identitying the `target` param passed to\n * `prepareInitialize()`. When possible, avoids duplicate `init()` calls if\n * namespaces collide\n *\n * @param {Object|Constructor} target\n * @private\n * @returns {String|Constructor}\n */\nfunction identifyTarget(target) {\n if (target.namespace) {\n return target.namespace;\n }\n\n return target;\n}\n\nconst stack = new Set();\n\n/**\n * @param {Function} target\n * @param {string} prop\n * @private\n * @returns {undefined}\n */\nfunction prepareInitialize(target, prop) {\n const id = identifyTarget(target);\n\n if (!inited.has(id)) {\n inited.add(id);\n if (target.initialize) {\n target.initialize = wrap(target.initialize, function applyInit(fn, ...args) {\n const ret = Reflect.apply(fn, this, args);\n\n Reflect.apply(init, this, args);\n\n return ret;\n });\n\n return;\n }\n\n target.initialize = init;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n function init() {\n const self = this;\n const namespace = this.getNamespace();\n\n this.webex.initialize = wrap(this.webex.initialize || identity, function applyInit(fn, ...args) {\n // Call webex's initalize method first\n // Reminder: in order for MockWebex to accept initial storage data, the\n // wrapped initialize() must be invoked before attempting to load data.\n // Reminder: context here is `webex`, not `self`.\n stack.add(namespace);\n Reflect.apply(fn, this, args);\n\n // Then prepare a function for setting values retrieved from storage\n const set = curry((key, value) => {\n this.logger.debug(`storage:(${namespace}): got \\`${key}\\` for first time`);\n if (key === '@') {\n self.parent.set({\n [namespace.toLowerCase()]: value\n });\n }\n else if (result(self[key], 'isState')) {\n self[key].set(value);\n }\n else {\n self.set(key, value);\n }\n this.logger.debug(`storage:(${namespace}): set \\`${key}\\` for first time`);\n });\n\n // And prepare an error handler for when those keys can't be found\n const handle = curry((key, reason) => {\n if (reason instanceof NotFoundError || process.env.NODE_ENV !== 'production' && reason.toString().includes('MockNotFoundError')) {\n this.logger.debug(`storage(${namespace}): no data for \\`${key}\\`, continuing`);\n\n return Promise.resolve();\n }\n this.logger.error(`storage(${namespace}): failed to init \\`${key}\\``, reason);\n\n return Promise.reject(reason);\n });\n\n // Iterate over the list of keys marked as blocking via `@waitForValue`\n const keys = blockingKeys.get(target, prop);\n const promises = [];\n\n keys.forEach((key) => {\n promises.push(this.boundedStorage.get(namespace, key)\n .then(set(key))\n .catch(handle(key)));\n });\n\n Promise.all(promises)\n .then(() => {\n stack.delete(namespace);\n if (stack.size === 0) {\n this.loaded = true;\n }\n });\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["persist","args","length","key","decider","persistDecorator","target","prop","descriptor","TypeError","value","persistExecutor","fn","initializeArgs","ret","changeEvent","on","shouldPersist","Reflect","resolve","boundedStorage","put","prepareInitialize","M","S","BlockingKeyMap","make","blockingKeys","waitForValue","Error","waitForValueDecorator","add","waitForValueExecutor","keys","get","all","map","k","waitFor","then","prototype","inited","identifyTarget","namespace","stack","id","has","initialize","applyInit","init","self","getNamespace","webex","set","logger","debug","parent","toLowerCase","handle","reason","NotFoundError","process","env","NODE_ENV","toString","includes","error","reject","promises","forEach","push","catch","delete","size","loaded"],"sources":["decorators.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint no-invalid-this: [0] */\n\nimport {curry, debounce, identity, result, wrap} from 'lodash';\nimport {make} from '@webex/common';\n\nimport {NotFoundError} from './errors';\n\n/**\n * Stores the result of fn before returning it\n * @param {string} key\n * @private\n * @returns {Promise} resolves with the result of fn\n */\nexport function persist(...args) {\n if (args.length === 3) {\n return persist('@')(...args);\n }\n\n const [key, decider] = args;\n\n return function persistDecorator(target, prop, descriptor) {\n if (prop !== 'initialize') {\n // Once we have class-based alternative to AmpersandState, it should be\n // detected here.\n throw new TypeError(\n '@persist can only currently be applied to AmpersandState objects or their derivatives and must be applied to the initialize method'\n );\n }\n\n descriptor.value = wrap(descriptor.value, function persistExecutor(fn, ...initializeArgs) {\n const ret = Reflect.apply(fn, this, initializeArgs);\n const changeEvent = key === '@' ? 'change' : `change:${key}`;\n\n // Some scenarios will lead to lots of change events on a single tick; we\n // really only care about writing once things have stopped changing. with\n // a debounce of zero, we're effectively coalescing all the changes\n // triggered by a single call to set() and commiting them on the next tick\n // eslint-disable-next-line no-invalid-this\n this.on(\n changeEvent,\n debounce(() => {\n const shouldPersist = !decider || Reflect.apply(decider, this, ...initializeArgs);\n\n if (!shouldPersist) {\n return Promise.resolve();\n }\n if (key === '@') {\n // eslint-disable-next-line no-invalid-this\n return this.boundedStorage.put(key, this);\n }\n\n // eslint-disable-next-line no-invalid-this\n return this.boundedStorage.put(key, this[key]);\n }, 0)\n );\n\n return ret;\n });\n\n prepareInitialize(target, prop);\n };\n}\n\nconst M = Map;\nconst S = Set;\nconst BlockingKeyMap = make(M, M, S);\nconst blockingKeys = new BlockingKeyMap();\n\n/**\n * Prevents fn from executing until key has been (attempted to be) loaded\n * @param {string} key\n * @param {Function} fn\n * @private\n * @returns {Promise} result of fn\n */\nexport function waitForValue(key) {\n if (!key) {\n throw new Error('`key` is required');\n }\n\n return function waitForValueDecorator(target, prop, descriptor) {\n blockingKeys.add(target, prop, key);\n descriptor.value = wrap(descriptor.value, function waitForValueExecutor(fn, ...args) {\n const keys = blockingKeys.get(target, prop);\n\n return Promise.all([...keys].map((k) => this.boundedStorage.waitFor(k))).then(() =>\n Reflect.apply(fn, this, args)\n );\n });\n\n // This *should* make decorators compatible with AmpersandState class\n // definitions\n if (typeof target === 'object' && !target.prototype) {\n target[prop] = descriptor.value;\n }\n\n prepareInitialize(target, prop);\n\n return descriptor;\n };\n}\n\nconst inited = new Set();\n\n/**\n * finds a means of identitying the `target` param passed to\n * `prepareInitialize()`. When possible, avoids duplicate `init()` calls if\n * namespaces collide\n *\n * @param {Object|Constructor} target\n * @private\n * @returns {String|Constructor}\n */\nfunction identifyTarget(target) {\n if (target.namespace) {\n return target.namespace;\n }\n\n return target;\n}\n\nconst stack = new Set();\n\n/**\n * @param {Function} target\n * @param {string} prop\n * @private\n * @returns {undefined}\n */\nfunction prepareInitialize(target, prop) {\n const id = identifyTarget(target);\n\n if (!inited.has(id)) {\n inited.add(id);\n if (target.initialize) {\n target.initialize = wrap(target.initialize, function applyInit(fn, ...args) {\n const ret = Reflect.apply(fn, this, args);\n\n Reflect.apply(init, this, args);\n\n return ret;\n });\n\n return;\n }\n\n target.initialize = init;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n function init() {\n const self = this;\n const namespace = this.getNamespace();\n\n this.webex.initialize = wrap(\n this.webex.initialize || identity,\n function applyInit(fn, ...args) {\n // Call webex's initalize method first\n // Reminder: in order for MockWebex to accept initial storage data, the\n // wrapped initialize() must be invoked before attempting to load data.\n // Reminder: context here is `webex`, not `self`.\n stack.add(namespace);\n Reflect.apply(fn, this, args);\n\n // Then prepare a function for setting values retrieved from storage\n const set = curry((key, value) => {\n this.logger.debug(`storage:(${namespace}): got \\`${key}\\` for first time`);\n if (key === '@') {\n self.parent.set({\n [namespace.toLowerCase()]: value,\n });\n } else if (result(self[key], 'isState')) {\n self[key].set(value);\n } else {\n self.set(key, value);\n }\n this.logger.debug(`storage:(${namespace}): set \\`${key}\\` for first time`);\n });\n\n // And prepare an error handler for when those keys can't be found\n const handle = curry((key, reason) => {\n if (\n reason instanceof NotFoundError ||\n (process.env.NODE_ENV !== 'production' &&\n reason.toString().includes('MockNotFoundError'))\n ) {\n this.logger.debug(`storage(${namespace}): no data for \\`${key}\\`, continuing`);\n\n return Promise.resolve();\n }\n this.logger.error(`storage(${namespace}): failed to init \\`${key}\\``, reason);\n\n return Promise.reject(reason);\n });\n\n // Iterate over the list of keys marked as blocking via `@waitForValue`\n const keys = blockingKeys.get(target, prop);\n const promises = [];\n\n keys.forEach((key) => {\n promises.push(this.boundedStorage.get(namespace, key).then(set(key)).catch(handle(key)));\n });\n\n Promise.all(promises).then(() => {\n stack.delete(namespace);\n if (stack.size === 0) {\n this.loaded = true;\n }\n });\n }\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAOA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,OAAO,GAAU;EAAA,kCAANC,IAAI;IAAJA,IAAI;EAAA;EAC7B,IAAIA,IAAI,CAACC,MAAM,KAAK,CAAC,EAAE;IACrB,OAAOF,OAAO,CAAC,GAAG,CAAC,eAAIC,IAAI,CAAC;EAC9B;EAEA,IAAOE,GAAG,GAAaF,IAAI;IAAfG,OAAO,GAAIH,IAAI;EAE3B,OAAO,SAASI,gBAAgB,CAACC,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAE;IACzD,IAAID,IAAI,KAAK,YAAY,EAAE;MACzB;MACA;MACA,MAAM,IAAIE,SAAS,CACjB,oIAAoI,CACrI;IACH;IAEAD,UAAU,CAACE,KAAK,GAAG,oBAAKF,UAAU,CAACE,KAAK,EAAE,SAASC,eAAe,CAACC,EAAE,EAAqB;MAAA;MAAA,mCAAhBC,cAAc;QAAdA,cAAc;MAAA;MACtF,IAAMC,GAAG,GAAG,oBAAcF,EAAE,EAAE,IAAI,EAAEC,cAAc,CAAC;MACnD,IAAME,WAAW,GAAGZ,GAAG,KAAK,GAAG,GAAG,QAAQ,oBAAaA,GAAG,CAAE;;MAE5D;MACA;MACA;MACA;MACA;MACA,IAAI,CAACa,EAAE,CACLD,WAAW,EACX,wBAAS,YAAM;QACb,IAAME,aAAa,GAAG,CAACb,OAAO,IAAI,qBAAAc,OAAO,GAAOd,OAAO,EAAE,KAAI,SAAKS,cAAc,EAAC;QAEjF,IAAI,CAACI,aAAa,EAAE;UAClB,OAAO,iBAAQE,OAAO,EAAE;QAC1B;QACA,IAAIhB,GAAG,KAAK,GAAG,EAAE;UACf;UACA,OAAO,KAAI,CAACiB,cAAc,CAACC,GAAG,CAAClB,GAAG,EAAE,KAAI,CAAC;QAC3C;;QAEA;QACA,OAAO,KAAI,CAACiB,cAAc,CAACC,GAAG,CAAClB,GAAG,EAAE,KAAI,CAACA,GAAG,CAAC,CAAC;MAChD,CAAC,EAAE,CAAC,CAAC,CACN;MAED,OAAOW,GAAG;IACZ,CAAC,CAAC;IAEFQ,iBAAiB,CAAChB,MAAM,EAAEC,IAAI,CAAC;EACjC,CAAC;AACH;AAEA,IAAMgB,CAAC,eAAM;AACb,IAAMC,CAAC,eAAM;AACb,IAAMC,cAAc,GAAG,IAAAC,YAAI,EAACH,CAAC,EAAEA,CAAC,EAAEC,CAAC,CAAC;AACpC,IAAMG,YAAY,GAAG,IAAIF,cAAc,EAAE;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,YAAY,CAACzB,GAAG,EAAE;EAChC,IAAI,CAACA,GAAG,EAAE;IACR,MAAM,IAAI0B,KAAK,CAAC,mBAAmB,CAAC;EACtC;EAEA,OAAO,SAASC,qBAAqB,CAACxB,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAE;IAC9DmB,YAAY,CAACI,GAAG,CAACzB,MAAM,EAAEC,IAAI,EAAEJ,GAAG,CAAC;IACnCK,UAAU,CAACE,KAAK,GAAG,oBAAKF,UAAU,CAACE,KAAK,EAAE,SAASsB,oBAAoB,CAACpB,EAAE,EAAW;MAAA;MAAA,mCAANX,IAAI;QAAJA,IAAI;MAAA;MACjF,IAAMgC,IAAI,GAAGN,YAAY,CAACO,GAAG,CAAC5B,MAAM,EAAEC,IAAI,CAAC;MAE3C,OAAO,iBAAQ4B,GAAG,CAAC,iCAAIF,IAAI,EAAEG,GAAG,CAAC,UAACC,CAAC;QAAA,OAAK,MAAI,CAACjB,cAAc,CAACkB,OAAO,CAACD,CAAC,CAAC;MAAA,EAAC,CAAC,CAACE,IAAI,CAAC;QAAA,OAC5E,oBAAc3B,EAAE,EAAE,MAAI,EAAEX,IAAI,CAAC;MAAA,EAC9B;IACH,CAAC,CAAC;;IAEF;IACA;IACA,IAAI,sBAAOK,MAAM,MAAK,QAAQ,IAAI,CAACA,MAAM,CAACkC,SAAS,EAAE;MACnDlC,MAAM,CAACC,IAAI,CAAC,GAAGC,UAAU,CAACE,KAAK;IACjC;IAEAY,iBAAiB,CAAChB,MAAM,EAAEC,IAAI,CAAC;IAE/B,OAAOC,UAAU;EACnB,CAAC;AACH;AAEA,IAAMiC,MAAM,GAAG,kBAAS;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,cAAc,CAACpC,MAAM,EAAE;EAC9B,IAAIA,MAAM,CAACqC,SAAS,EAAE;IACpB,OAAOrC,MAAM,CAACqC,SAAS;EACzB;EAEA,OAAOrC,MAAM;AACf;AAEA,IAAMsC,KAAK,GAAG,kBAAS;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAStB,iBAAiB,CAAChB,MAAM,EAAEC,IAAI,EAAE;EACvC,IAAMsC,EAAE,GAAGH,cAAc,CAACpC,MAAM,CAAC;EAEjC,IAAI,CAACmC,MAAM,CAACK,GAAG,CAACD,EAAE,CAAC,EAAE;IACnBJ,MAAM,CAACV,GAAG,CAACc,EAAE,CAAC;IACd,IAAIvC,MAAM,CAACyC,UAAU,EAAE;MACrBzC,MAAM,CAACyC,UAAU,GAAG,oBAAKzC,MAAM,CAACyC,UAAU,EAAE,SAASC,SAAS,CAACpC,EAAE,EAAW;QAAA,mCAANX,IAAI;UAAJA,IAAI;QAAA;QACxE,IAAMa,GAAG,GAAG,oBAAcF,EAAE,EAAE,IAAI,EAAEX,IAAI,CAAC;QAEzC,oBAAcgD,IAAI,EAAE,IAAI,EAAEhD,IAAI,CAAC;QAE/B,OAAOa,GAAG;MACZ,CAAC,CAAC;MAEF;IACF;IAEAR,MAAM,CAACyC,UAAU,GAAGE,IAAI;EAC1B;;EAEA;AACF;AACA;AACA;EACE,SAASA,IAAI,GAAG;IACd,IAAMC,IAAI,GAAG,IAAI;IACjB,IAAMP,SAAS,GAAG,IAAI,CAACQ,YAAY,EAAE;IAErC,IAAI,CAACC,KAAK,CAACL,UAAU,GAAG,oBACtB,IAAI,CAACK,KAAK,CAACL,UAAU,sBAAY,EACjC,SAASC,SAAS,CAACpC,EAAE,EAAW;MAAA;MAC9B;MACA;MACA;MACA;MACAgC,KAAK,CAACb,GAAG,CAACY,SAAS,CAAC;MAAC,mCALG1C,IAAI;QAAJA,IAAI;MAAA;MAM5B,oBAAcW,EAAE,EAAE,IAAI,EAAEX,IAAI,CAAC;;MAE7B;MACA,IAAMoD,GAAG,GAAG,qBAAM,UAAClD,GAAG,EAAEO,KAAK,EAAK;QAChC,MAAI,CAAC4C,MAAM,CAACC,KAAK,oBAAaZ,SAAS,qBAAYxC,GAAG,sBAAoB;QAC1E,IAAIA,GAAG,KAAK,GAAG,EAAE;UACf+C,IAAI,CAACM,MAAM,CAACH,GAAG,mCACZV,SAAS,CAACc,WAAW,EAAE,EAAG/C,KAAK,EAChC;QACJ,CAAC,MAAM,IAAI,sBAAOwC,IAAI,CAAC/C,GAAG,CAAC,EAAE,SAAS,CAAC,EAAE;UACvC+C,IAAI,CAAC/C,GAAG,CAAC,CAACkD,GAAG,CAAC3C,KAAK,CAAC;QACtB,CAAC,MAAM;UACLwC,IAAI,CAACG,GAAG,CAAClD,GAAG,EAAEO,KAAK,CAAC;QACtB;QACA,MAAI,CAAC4C,MAAM,CAACC,KAAK,oBAAaZ,SAAS,qBAAYxC,GAAG,sBAAoB;MAC5E,CAAC,CAAC;;MAEF;MACA,IAAMuD,MAAM,GAAG,qBAAM,UAACvD,GAAG,EAAEwD,MAAM,EAAK;QACpC,IACEA,MAAM,YAAYC,qBAAa,IAC9BC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACpCJ,MAAM,CAACK,QAAQ,EAAE,CAACC,QAAQ,CAAC,mBAAmB,CAAE,EAClD;UACA,MAAI,CAACX,MAAM,CAACC,KAAK,mBAAYZ,SAAS,6BAAoBxC,GAAG,mBAAiB;UAE9E,OAAO,iBAAQgB,OAAO,EAAE;QAC1B;QACA,MAAI,CAACmC,MAAM,CAACY,KAAK,mBAAYvB,SAAS,gCAAuBxC,GAAG,QAAMwD,MAAM,CAAC;QAE7E,OAAO,iBAAQQ,MAAM,CAACR,MAAM,CAAC;MAC/B,CAAC,CAAC;;MAEF;MACA,IAAM1B,IAAI,GAAGN,YAAY,CAACO,GAAG,CAAC5B,MAAM,EAAEC,IAAI,CAAC;MAC3C,IAAM6D,QAAQ,GAAG,EAAE;MAEnBnC,IAAI,CAACoC,OAAO,CAAC,UAAClE,GAAG,EAAK;QACpBiE,QAAQ,CAACE,IAAI,CAAC,MAAI,CAAClD,cAAc,CAACc,GAAG,CAACS,SAAS,EAAExC,GAAG,CAAC,CAACoC,IAAI,CAACc,GAAG,CAAClD,GAAG,CAAC,CAAC,CAACoE,KAAK,CAACb,MAAM,CAACvD,GAAG,CAAC,CAAC,CAAC;MAC1F,CAAC,CAAC;MAEF,iBAAQgC,GAAG,CAACiC,QAAQ,CAAC,CAAC7B,IAAI,CAAC,YAAM;QAC/BK,KAAK,CAAC4B,MAAM,CAAC7B,SAAS,CAAC;QACvB,IAAIC,KAAK,CAAC6B,IAAI,KAAK,CAAC,EAAE;UACpB,MAAI,CAACC,MAAM,GAAG,IAAI;QACpB;MACF,CAAC,CAAC;IACJ,CAAC,CACF;EACH;AACF"}
@@ -1,67 +1,44 @@
1
1
  "use strict";
2
2
 
3
3
  var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
-
5
4
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
-
7
5
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
8
-
9
6
  _Object$defineProperty(exports, "__esModule", {
10
7
  value: true
11
8
  });
12
-
13
9
  exports.StorageError = exports.NotFoundError = void 0;
14
-
15
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
16
-
17
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
18
-
19
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
20
-
21
13
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
22
-
23
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
24
-
25
15
  var _common = require("@webex/common");
26
-
27
16
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
28
-
29
17
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
30
-
31
18
  /**
32
19
  * General storage layer error
33
20
  */
34
21
  var StorageError = /*#__PURE__*/function (_Exception) {
35
22
  (0, _inherits2.default)(StorageError, _Exception);
36
-
37
23
  var _super = _createSuper(StorageError);
38
-
39
24
  function StorageError() {
40
25
  (0, _classCallCheck2.default)(this, StorageError);
41
26
  return _super.apply(this, arguments);
42
27
  }
43
-
44
28
  return (0, _createClass2.default)(StorageError);
45
29
  }(_common.Exception);
46
30
  /**
47
31
  * StorageError thrown when the storage layer does not contain the request key
48
32
  */
49
-
50
-
51
33
  exports.StorageError = StorageError;
52
-
53
34
  var NotFoundError = /*#__PURE__*/function (_StorageError) {
54
35
  (0, _inherits2.default)(NotFoundError, _StorageError);
55
-
56
36
  var _super2 = _createSuper(NotFoundError);
57
-
58
37
  function NotFoundError() {
59
38
  (0, _classCallCheck2.default)(this, NotFoundError);
60
39
  return _super2.apply(this, arguments);
61
40
  }
62
-
63
41
  return (0, _createClass2.default)(NotFoundError);
64
42
  }(StorageError);
65
-
66
43
  exports.NotFoundError = NotFoundError;
67
44
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["StorageError","Exception","NotFoundError"],"sources":["errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\n\n/**\n * General storage layer error\n */\nexport class StorageError extends Exception {}\n\n/**\n * StorageError thrown when the storage layer does not contain the request key\n */\nexport class NotFoundError extends StorageError {}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAIA;;;;;;AAEA;AACA;AACA;IACaA,Y;;;;;;;;;;;EAAqBC,iB;AAElC;AACA;AACA;;;;;IACaC,a;;;;;;;;;;;EAAsBF,Y"}
1
+ {"version":3,"names":["StorageError","Exception","NotFoundError"],"sources":["errors.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Exception} from '@webex/common';\n\n/**\n * General storage layer error\n */\nexport class StorageError extends Exception {}\n\n/**\n * StorageError thrown when the storage layer does not contain the request key\n */\nexport class NotFoundError extends StorageError {}\n"],"mappings":";;;;;;;;;;;;;;AAIA;AAAwC;AAAA;AAExC;AACA;AACA;AAFA,IAGaA,YAAY;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;AAAA,EAASC,iBAAS;AAE3C;AACA;AACA;AAFA;AAAA,IAGaC,aAAa;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;AAAA,EAASF,YAAY;AAAA"}
@@ -1,69 +1,55 @@
1
1
  "use strict";
2
2
 
3
3
  var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
-
7
5
  _Object$defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
-
11
8
  _Object$defineProperty(exports, "MemoryStoreAdapter", {
12
9
  enumerable: true,
13
10
  get: function get() {
14
11
  return _memoryStoreAdapter.default;
15
12
  }
16
13
  });
17
-
18
14
  _Object$defineProperty(exports, "NotFoundError", {
19
15
  enumerable: true,
20
16
  get: function get() {
21
17
  return _errors.NotFoundError;
22
18
  }
23
19
  });
24
-
25
20
  _Object$defineProperty(exports, "StorageError", {
26
21
  enumerable: true,
27
22
  get: function get() {
28
23
  return _errors.StorageError;
29
24
  }
30
25
  });
31
-
32
26
  _Object$defineProperty(exports, "makeWebexPluginStore", {
33
27
  enumerable: true,
34
28
  get: function get() {
35
29
  return _makeWebexPluginStore.default;
36
30
  }
37
31
  });
38
-
39
32
  _Object$defineProperty(exports, "makeWebexStore", {
40
33
  enumerable: true,
41
34
  get: function get() {
42
35
  return _makeWebexStore.default;
43
36
  }
44
37
  });
45
-
46
38
  _Object$defineProperty(exports, "persist", {
47
39
  enumerable: true,
48
40
  get: function get() {
49
41
  return _decorators.persist;
50
42
  }
51
43
  });
52
-
53
44
  _Object$defineProperty(exports, "waitForValue", {
54
45
  enumerable: true,
55
46
  get: function get() {
56
47
  return _decorators.waitForValue;
57
48
  }
58
49
  });
59
-
60
50
  var _decorators = require("./decorators");
61
-
62
- var _makeWebexStore = _interopRequireDefault(require("./make-webex-store.js"));
63
-
64
- var _makeWebexPluginStore = _interopRequireDefault(require("./make-webex-plugin-store.js"));
65
-
51
+ var _makeWebexStore = _interopRequireDefault(require("./make-webex-store"));
52
+ var _makeWebexPluginStore = _interopRequireDefault(require("./make-webex-plugin-store"));
66
53
  var _memoryStoreAdapter = _interopRequireDefault(require("./memory-store-adapter"));
67
-
68
54
  var _errors = require("./errors");
69
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport {\n persist,\n waitForValue\n} from './decorators';\nexport {default as makeWebexStore} from './make-webex-store.js';\nexport {default as makeWebexPluginStore} from './make-webex-plugin-store.js';\nexport {default as MemoryStoreAdapter} from './memory-store-adapter';\nexport {StorageError, NotFoundError} from './errors';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;AAIA;;AACA;;AACA;;AACA"}
1
+ {"version":3,"names":[],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport {persist, waitForValue} from './decorators';\nexport {default as makeWebexStore} from './make-webex-store';\nexport {default as makeWebexPluginStore} from './make-webex-plugin-store';\n\nexport {default as MemoryStoreAdapter} from './memory-store-adapter';\nexport {StorageError, NotFoundError} from './errors';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA;AACA;AAEA;AACA"}