@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,59 +1,42 @@
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.default = makeWebexPluginStorage;
12
-
13
9
  var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
14
-
15
10
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
16
-
17
11
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
18
-
19
12
  var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor"));
20
-
21
13
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
22
-
23
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
24
-
25
15
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
26
-
27
16
  var _result2 = _interopRequireDefault(require("lodash/result"));
28
-
29
17
  var _isObject2 = _interopRequireDefault(require("lodash/isObject"));
30
-
31
18
  var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
32
-
33
19
  var _common = require("@webex/common");
34
-
35
20
  var _errors = require("./errors");
36
-
37
21
  /*!
38
22
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
39
23
  */
24
+
40
25
  var defers = new _weakMap.default();
26
+
41
27
  /**
42
28
  * Walks an object before writing it to the store and omits empty arrays
43
29
  * @private
44
30
  * @param {Object} value
45
31
  * @returns {Object}
46
32
  */
47
-
48
33
  function serialize(value) {
49
34
  if (!(0, _isObject2.default)(value)) {
50
35
  return value;
51
36
  }
52
-
53
37
  var serialized = value.serialize ? value.serialize() : value;
54
38
  (0, _keys.default)(serialized).forEach(function (key) {
55
39
  var val = serialized[key];
56
-
57
40
  if ((0, _isArray2.default)(val)) {
58
41
  if (val.length === 0) {
59
42
  serialized[key] = undefined;
@@ -69,13 +52,12 @@ function serialize(value) {
69
52
  var empty = (0, _keys.default)(serialized).reduce(function (acc, key) {
70
53
  return acc && !serialized[key];
71
54
  }, true);
72
-
73
55
  if (empty) {
74
56
  return undefined;
75
57
  }
76
-
77
58
  return serialized;
78
59
  }
60
+
79
61
  /**
80
62
  * [makeWebexPluginStorage description]
81
63
  * @param {[type]} type
@@ -83,11 +65,8 @@ function serialize(value) {
83
65
  * @private
84
66
  * @returns {[type]}
85
67
  */
86
-
87
-
88
68
  function makeWebexPluginStorage(type, context) {
89
69
  var _dec, _class;
90
-
91
70
  /**
92
71
  * Interface between WebexPlugin and Webex#boundeStorage or
93
72
  * Webex#unboundedStorage
@@ -106,68 +85,64 @@ function makeWebexPluginStorage(type, context) {
106
85
  (0, _classCallCheck2.default)(this, WebexPluginStorage);
107
86
  defers.set(this, new _map.default());
108
87
  }
88
+
109
89
  /**
110
90
  * Clears an entire namespace
111
91
  * @returns {Promise}
112
92
  */
113
-
114
-
115
93
  (0, _createClass2.default)(WebexPluginStorage, [{
116
94
  key: "clear",
117
95
  value: function clear() {
118
96
  return context.webex["".concat(type, "Storage")].del(context.getNamespace());
119
97
  }
98
+
120
99
  /**
121
100
  * Deletes the specified key from the store
122
101
  * @param {string} key
123
102
  * @returns {[type]}
124
103
  */
125
-
126
104
  }, {
127
105
  key: "del",
128
106
  value: function del() {
129
107
  var _context$webex;
130
-
131
108
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
132
109
  args[_key] = arguments[_key];
133
110
  }
134
-
135
111
  return (_context$webex = context.webex["".concat(type, "Storage")]).del.apply(_context$webex, [context.getNamespace()].concat(args));
136
112
  }
113
+
137
114
  /**
138
115
  * Retrieves the value specified by key from the store. Rejects with
139
116
  * NotFoundError if no value can be found
140
117
  * @param {string} key
141
118
  * @returns {Promise}
142
119
  */
143
-
144
120
  }, {
145
121
  key: "get",
146
122
  value: function get(key) {
147
123
  var defer = defers.get(this).get(key);
148
-
149
124
  if (!defer) {
150
125
  defer = new _common.Defer();
151
126
  defers.get(this).set(key, defer);
152
127
  }
153
-
154
128
  return context.webex["".concat(type, "Storage")].get(context.getNamespace(), key).then(function (res) {
155
129
  defer.resolve();
156
130
  return res;
157
131
  });
158
132
  }
133
+
159
134
  /**
160
135
  * Writes a value to the store
161
136
  * @param {string} key
162
137
  * @param {any} value
163
138
  * @returns {Promise}
164
139
  */
165
-
166
140
  }, {
167
141
  key: "put",
168
142
  value: function put(key, value) {
169
143
  return context.webex["".concat(type, "Storage")].put(context.getNamespace(), key, serialize(value));
170
144
  }
145
+
171
146
  /**
172
147
  * Returns a Promise that won't resolve until the value specified by key has
173
148
  * been attempted to be loaded from the store. This allows us to lazily
@@ -176,18 +151,15 @@ function makeWebexPluginStorage(type, context) {
176
151
  * @param {string} key
177
152
  * @returns {Promise}
178
153
  */
179
-
180
154
  }, {
181
155
  key: "waitFor",
182
156
  value: function waitFor(key) {
183
157
  context.logger.debug("plugin-storage(".concat(context.getNamespace(), "): waiting to init key `").concat(key, "`"));
184
158
  var defer = defers.get(this).get(key);
185
-
186
159
  if (defer) {
187
160
  context.logger.debug("plugin-storage(".concat(context.getNamespace(), "): already inited `").concat(key, "`"));
188
161
  return defer.promise;
189
162
  }
190
-
191
163
  context.logger.debug("plugin-storage(".concat(context.getNamespace(), "): initing `").concat(key, "`"));
192
164
  return this.initValue(key);
193
165
  }
@@ -195,12 +167,12 @@ function makeWebexPluginStorage(type, context) {
195
167
  key: "initValue",
196
168
  value: function initValue(key) {
197
169
  var defer = new _common.Defer();
198
- defers.get(this).set(key, defer); // Intentionally bypasses this.get so we don't resolve the promise until
199
- // after the parent value is set.
170
+ defers.get(this).set(key, defer);
200
171
 
172
+ // Intentionally bypasses this.get so we don't resolve the promise until
173
+ // after the parent value is set.
201
174
  context.webex["".concat(type, "Storage")].get(context.getNamespace(), key).then(function (value) {
202
175
  context.logger.debug("plugin-storage(".concat(context.getNamespace(), "): got `").concat(key, "` for first time"));
203
-
204
176
  if (key === '@') {
205
177
  context.parent.set(value);
206
178
  } else if ((0, _result2.default)(context[key], 'isState')) {
@@ -208,7 +180,6 @@ function makeWebexPluginStorage(type, context) {
208
180
  } else {
209
181
  context.set(key, value);
210
182
  }
211
-
212
183
  context.logger.debug("plugin-storage(".concat(context.getNamespace(), "): set `").concat(key, "` for first time"));
213
184
  defer.resolve();
214
185
  context.logger.debug("plugin-storage(".concat(context.getNamespace(), "): inited `").concat(key, "`"));
@@ -220,7 +191,6 @@ function makeWebexPluginStorage(type, context) {
220
191
  context.logger.debug("plugin-storage(".concat(context.getNamespace(), "): no data for `").concat(key, "`, continuing"));
221
192
  return defer.resolve();
222
193
  }
223
-
224
194
  context.logger.warn("plugin-storage(".concat(context.getNamespace(), "): failed to init `").concat(key, "`"), reason);
225
195
  return defer.reject(reason);
226
196
  });
@@ -1 +1 @@
1
- {"version":3,"names":["defers","serialize","value","serialized","forEach","key","val","length","undefined","map","k","empty","reduce","acc","makeWebexPluginStorage","type","context","WebexPluginStorage","oneFlight","keyFactory","set","webex","del","getNamespace","args","defer","get","Defer","then","res","resolve","put","logger","debug","promise","initValue","parent","catch","reason","NotFoundError","process","env","NODE_ENV","toString","includes","warn","reject"],"sources":["make-webex-plugin-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Defer, oneFlight} from '@webex/common';\nimport {isArray, isObject, result} from 'lodash';\n\nimport {NotFoundError} from './errors';\n\nconst defers = new WeakMap();\n\n/**\n * Walks an object before writing it to the store and omits empty arrays\n * @private\n * @param {Object} value\n * @returns {Object}\n */\nfunction serialize(value) {\n if (!isObject(value)) {\n return value;\n }\n\n const serialized = value.serialize ? value.serialize() : value;\n\n Object.keys(serialized).forEach((key) => {\n const val = serialized[key];\n\n if (isArray(val)) {\n if (val.length === 0) {\n serialized[key] = undefined;\n }\n else {\n serialized[key] = val.map(serialize);\n }\n }\n else if (isObject(val)) {\n Object.keys(val).forEach((k) => {\n val[k] = serialize(val[k]);\n });\n }\n });\n\n const empty = Object.keys(serialized).reduce((acc, key) => acc && !serialized[key], true);\n\n if (empty) {\n return undefined;\n }\n\n return serialized;\n}\n\n/**\n * [makeWebexPluginStorage description]\n * @param {[type]} type\n * @param {[type]} context\n * @private\n * @returns {[type]}\n */\nexport default function makeWebexPluginStorage(type, context) {\n /**\n * Interface between WebexPlugin and Webex#boundeStorage or\n * Webex#unboundedStorage\n */\n class WebexPluginStorage {\n /**\n * @param {Object} attrs\n * @param {Object} options\n * @returns {WebexPluginStorage}\n */\n constructor() {\n defers.set(this, new Map());\n }\n\n /**\n * Clears an entire namespace\n * @returns {Promise}\n */\n clear() {\n return context.webex[`${type}Storage`].del(context.getNamespace());\n }\n\n /**\n * Deletes the specified key from the store\n * @param {string} key\n * @returns {[type]}\n */\n del(...args) {\n return context.webex[`${type}Storage`].del(context.getNamespace(), ...args);\n }\n\n /**\n * Retrieves the value specified by key from the store. Rejects with\n * NotFoundError if no value can be found\n * @param {string} key\n * @returns {Promise}\n */\n get(key) {\n let defer = defers.get(this).get(key);\n\n if (!defer) {\n defer = new Defer();\n defers.get(this).set(key, defer);\n }\n\n return context.webex[`${type}Storage`].get(context.getNamespace(), key)\n .then((res) => {\n defer.resolve();\n\n return res;\n });\n }\n\n /**\n * Writes a value to the store\n * @param {string} key\n * @param {any} value\n * @returns {Promise}\n */\n put(key, value) {\n return context.webex[`${type}Storage`].put(context.getNamespace(), key, serialize(value));\n }\n\n /**\n * Returns a Promise that won't resolve until the value specified by key has\n * been attempted to be loaded from the store. This allows us to lazily\n * prevent certain method from executing until the specified keys have been\n * retrieved from the store.\n * @param {string} key\n * @returns {Promise}\n */\n waitFor(key) {\n context.logger.debug(`plugin-storage(${context.getNamespace()}): waiting to init key \\`${key}\\``);\n const defer = defers.get(this).get(key);\n\n if (defer) {\n context.logger.debug(`plugin-storage(${context.getNamespace()}): already inited \\`${key}\\``);\n\n return defer.promise;\n }\n\n context.logger.debug(`plugin-storage(${context.getNamespace()}): initing \\`${key}\\``);\n\n return this.initValue(key);\n }\n\n @oneFlight({keyFactory: (key) => `initValue-${key}`})\n /**\n * Attempts to load the specified key from the store and set it on the parent\n * object.\n * @param {string} key\n * @returns {Promise} Resolves (but not with the retrieved value) when\n * the value retrieval complete\n */\n // suppress doc warning because decorators confuse eslint\n // eslint-disable-next-line require-jsdoc\n initValue(key) {\n const defer = new Defer();\n\n defers.get(this).set(key, defer);\n\n // Intentionally bypasses this.get so we don't resolve the promise until\n // after the parent value is set.\n context.webex[`${type}Storage`].get(context.getNamespace(), key)\n .then((value) => {\n context.logger.debug(`plugin-storage(${context.getNamespace()}): got \\`${key}\\` for first time`);\n if (key === '@') {\n context.parent.set(value);\n }\n else if (result(context[key], 'isState')) {\n context[key].set(value);\n }\n else {\n context.set(key, value);\n }\n context.logger.debug(`plugin-storage(${context.getNamespace()}): set \\`${key}\\` for first time`);\n defer.resolve();\n context.logger.debug(`plugin-storage(${context.getNamespace()}): inited \\`${key}\\``);\n })\n .catch((reason) => {\n // The next conditional is a bit of an unfortunate solution to deal\n // with circular dependencies in unit tests. It should not effect\n // integration tests or production code.\n if (reason instanceof NotFoundError || process.env.NODE_ENV !== 'production' && reason.toString().includes('MockNotFoundError')) {\n context.logger.debug(`plugin-storage(${context.getNamespace()}): no data for \\`${key}\\`, continuing`);\n\n return defer.resolve();\n }\n context.logger.warn(`plugin-storage(${context.getNamespace()}): failed to init \\`${key}\\``, reason);\n\n return defer.reject(reason);\n });\n\n return defer.promise;\n }\n }\n\n return new WebexPluginStorage();\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["defers","serialize","value","serialized","forEach","key","val","length","undefined","map","k","empty","reduce","acc","makeWebexPluginStorage","type","context","WebexPluginStorage","oneFlight","keyFactory","set","webex","del","getNamespace","args","defer","get","Defer","then","res","resolve","put","logger","debug","promise","initValue","parent","catch","reason","NotFoundError","process","env","NODE_ENV","toString","includes","warn","reject"],"sources":["make-webex-plugin-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Defer, oneFlight} from '@webex/common';\nimport {isArray, isObject, result} from 'lodash';\n\nimport {NotFoundError} from './errors';\n\nconst defers = new WeakMap();\n\n/**\n * Walks an object before writing it to the store and omits empty arrays\n * @private\n * @param {Object} value\n * @returns {Object}\n */\nfunction serialize(value) {\n if (!isObject(value)) {\n return value;\n }\n\n const serialized = value.serialize ? value.serialize() : value;\n\n Object.keys(serialized).forEach((key) => {\n const val = serialized[key];\n\n if (isArray(val)) {\n if (val.length === 0) {\n serialized[key] = undefined;\n } else {\n serialized[key] = val.map(serialize);\n }\n } else if (isObject(val)) {\n Object.keys(val).forEach((k) => {\n val[k] = serialize(val[k]);\n });\n }\n });\n\n const empty = Object.keys(serialized).reduce((acc, key) => acc && !serialized[key], true);\n\n if (empty) {\n return undefined;\n }\n\n return serialized;\n}\n\n/**\n * [makeWebexPluginStorage description]\n * @param {[type]} type\n * @param {[type]} context\n * @private\n * @returns {[type]}\n */\nexport default function makeWebexPluginStorage(type, context) {\n /**\n * Interface between WebexPlugin and Webex#boundeStorage or\n * Webex#unboundedStorage\n */\n class WebexPluginStorage {\n /**\n * @param {Object} attrs\n * @param {Object} options\n * @returns {WebexPluginStorage}\n */\n constructor() {\n defers.set(this, new Map());\n }\n\n /**\n * Clears an entire namespace\n * @returns {Promise}\n */\n clear() {\n return context.webex[`${type}Storage`].del(context.getNamespace());\n }\n\n /**\n * Deletes the specified key from the store\n * @param {string} key\n * @returns {[type]}\n */\n del(...args) {\n return context.webex[`${type}Storage`].del(context.getNamespace(), ...args);\n }\n\n /**\n * Retrieves the value specified by key from the store. Rejects with\n * NotFoundError if no value can be found\n * @param {string} key\n * @returns {Promise}\n */\n get(key) {\n let defer = defers.get(this).get(key);\n\n if (!defer) {\n defer = new Defer();\n defers.get(this).set(key, defer);\n }\n\n return context.webex[`${type}Storage`].get(context.getNamespace(), key).then((res) => {\n defer.resolve();\n\n return res;\n });\n }\n\n /**\n * Writes a value to the store\n * @param {string} key\n * @param {any} value\n * @returns {Promise}\n */\n put(key, value) {\n return context.webex[`${type}Storage`].put(context.getNamespace(), key, serialize(value));\n }\n\n /**\n * Returns a Promise that won't resolve until the value specified by key has\n * been attempted to be loaded from the store. This allows us to lazily\n * prevent certain method from executing until the specified keys have been\n * retrieved from the store.\n * @param {string} key\n * @returns {Promise}\n */\n waitFor(key) {\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): waiting to init key \\`${key}\\``\n );\n const defer = defers.get(this).get(key);\n\n if (defer) {\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): already inited \\`${key}\\``\n );\n\n return defer.promise;\n }\n\n context.logger.debug(`plugin-storage(${context.getNamespace()}): initing \\`${key}\\``);\n\n return this.initValue(key);\n }\n\n @oneFlight({keyFactory: (key) => `initValue-${key}`})\n /**\n * Attempts to load the specified key from the store and set it on the parent\n * object.\n * @param {string} key\n * @returns {Promise} Resolves (but not with the retrieved value) when\n * the value retrieval complete\n */\n // suppress doc warning because decorators confuse eslint\n // eslint-disable-next-line require-jsdoc\n initValue(key) {\n const defer = new Defer();\n\n defers.get(this).set(key, defer);\n\n // Intentionally bypasses this.get so we don't resolve the promise until\n // after the parent value is set.\n context.webex[`${type}Storage`]\n .get(context.getNamespace(), key)\n .then((value) => {\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): got \\`${key}\\` for first time`\n );\n if (key === '@') {\n context.parent.set(value);\n } else if (result(context[key], 'isState')) {\n context[key].set(value);\n } else {\n context.set(key, value);\n }\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): set \\`${key}\\` for first time`\n );\n defer.resolve();\n context.logger.debug(`plugin-storage(${context.getNamespace()}): inited \\`${key}\\``);\n })\n .catch((reason) => {\n // The next conditional is a bit of an unfortunate solution to deal\n // with circular dependencies in unit tests. It should not effect\n // integration tests or production code.\n if (\n reason instanceof NotFoundError ||\n (process.env.NODE_ENV !== 'production' &&\n reason.toString().includes('MockNotFoundError'))\n ) {\n context.logger.debug(\n `plugin-storage(${context.getNamespace()}): no data for \\`${key}\\`, continuing`\n );\n\n return defer.resolve();\n }\n context.logger.warn(\n `plugin-storage(${context.getNamespace()}): failed to init \\`${key}\\``,\n reason\n );\n\n return defer.reject(reason);\n });\n\n return defer.promise;\n }\n }\n\n return new WebexPluginStorage();\n}\n"],"mappings":"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"}
@@ -1,39 +1,27 @@
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.default = makeWebexStore;
12
-
13
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
14
-
15
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
16
-
17
11
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/applyDecoratedDescriptor"));
18
-
19
12
  var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
20
-
21
13
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
22
-
23
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
24
-
25
15
  var _getOwnPropertyDescriptor = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor"));
26
-
27
16
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
28
-
29
17
  var _ampersandEvents = _interopRequireDefault(require("ampersand-events"));
30
-
31
18
  var _common = require("@webex/common");
32
-
33
19
  /*!
34
20
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
35
21
  */
22
+
36
23
  var bindings = new _weakMap.default();
24
+
37
25
  /**
38
26
  * Makes a WebexStore for the specified type bound to the specified webex instance
39
27
  * @param {string} type
@@ -41,10 +29,8 @@ var bindings = new _weakMap.default();
41
29
  * @private
42
30
  * @returns {WebexStore}
43
31
  */
44
-
45
32
  function makeWebexStore(type, webex) {
46
33
  var _dec, _class;
47
-
48
34
  /**
49
35
  * Lazy Key-Value Store Interface
50
36
  */
@@ -63,31 +49,30 @@ function makeWebexStore(type, webex) {
63
49
  webex.logger.debug("webex-store: constructing ".concat(type, "Storage"));
64
50
  bindings.set(this, new _map.default());
65
51
  }
52
+
66
53
  /**
67
54
  * Provides easy access to the storage adapter identified in config.
68
55
  * @returns {Object}
69
56
  */
70
-
71
-
72
57
  (0, _createClass2.default)(WebexStore, [{
73
58
  key: "adapter",
74
59
  get: function get() {
75
60
  return webex.config.storage["".concat(type, "Adapter")];
76
61
  }
62
+
77
63
  /**
78
64
  * @returns {WeakMap}
79
65
  */
80
-
81
66
  }, {
82
67
  key: "bindings",
83
68
  get: function get() {
84
69
  return bindings.get(this);
85
70
  }
71
+
86
72
  /**
87
73
  * Clears the store
88
74
  * @returns {Promise}
89
75
  */
90
-
91
76
  }, {
92
77
  key: "clear",
93
78
  value: function clear() {
@@ -97,13 +82,13 @@ function makeWebexStore(type, webex) {
97
82
  });
98
83
  return _promise.default.all(promises);
99
84
  }
85
+
100
86
  /**
101
87
  * Deletes the specified key from the store
102
88
  * @param {string} namespace
103
89
  * @param {string} key
104
90
  * @returns {[type]}
105
91
  */
106
-
107
92
  }, {
108
93
  key: "del",
109
94
  value: function del(namespace, key) {
@@ -112,6 +97,7 @@ function makeWebexStore(type, webex) {
112
97
  return binding.del(key);
113
98
  });
114
99
  }
100
+
115
101
  /**
116
102
  * Retrieves the value specified by key from the store. Rejects with
117
103
  * NotFoundError if no value can be found
@@ -119,7 +105,6 @@ function makeWebexStore(type, webex) {
119
105
  * @param {string} key
120
106
  * @returns {Promise}
121
107
  */
122
-
123
108
  }, {
124
109
  key: "get",
125
110
  value: function get(namespace, key) {
@@ -128,6 +113,7 @@ function makeWebexStore(type, webex) {
128
113
  return binding.get(key);
129
114
  });
130
115
  }
116
+
131
117
  /**
132
118
  * Writes a value to the store. Deletes the specified key from the store
133
119
  * if passed `undefined`
@@ -136,14 +122,12 @@ function makeWebexStore(type, webex) {
136
122
  * @param {any} value
137
123
  * @returns {Promise} Resolves with value (to simplify write-through caching)
138
124
  */
139
-
140
125
  }, {
141
126
  key: "put",
142
127
  value: function put(namespace, key, value) {
143
128
  if (typeof value === 'undefined') {
144
129
  return this.del(namespace, key);
145
130
  }
146
-
147
131
  webex.logger.debug("webex-store: setting ".concat(namespace, ":").concat(key));
148
132
  return this._getBinding(namespace).then(function (binding) {
149
133
  return binding.put(key, value.serialize ? value.serialize() : value);
@@ -155,24 +139,18 @@ function makeWebexStore(type, webex) {
155
139
  key: "_getBinding",
156
140
  value: function _getBinding(namespace) {
157
141
  var _this = this;
158
-
159
142
  return new _promise.default(function (resolve) {
160
143
  webex.logger.debug("storage: getting binding for `".concat(namespace, "`"));
161
-
162
144
  var binding = _this.bindings.get(namespace);
163
-
164
145
  if (binding) {
165
146
  webex.logger.debug("storage: found binding for `".concat(namespace, "`"));
166
147
  return resolve(binding);
167
148
  }
168
-
169
149
  return resolve(_this.adapter.bind(namespace, {
170
150
  logger: webex.logger
171
151
  }).then(function (_binding) {
172
152
  webex.logger.debug("storage: made binding for `".concat(namespace, "`"));
173
-
174
153
  _this.bindings.set(namespace, _binding);
175
-
176
154
  return _binding;
177
155
  }));
178
156
  });
@@ -1 +1 @@
1
- {"version":3,"names":["bindings","makeWebexStore","type","webex","WebexStore","oneFlight","keyFactory","namespace","logger","debug","set","config","storage","get","promises","forEach","binding","push","clear","all","key","_getBinding","then","del","value","put","serialize","resolve","adapter","bind","_binding","prototype","Events"],"sources":["make-webex-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport Events from 'ampersand-events';\nimport {oneFlight} from '@webex/common';\n\nconst bindings = new WeakMap();\n\n/**\n * Makes a WebexStore for the specified type bound to the specified webex instance\n * @param {string} type\n * @param {ProxyWebex} webex\n * @private\n * @returns {WebexStore}\n */\nexport default function makeWebexStore(type, webex) {\n /**\n * Lazy Key-Value Store Interface\n */\n class WebexStore {\n /**\n * @param {Object} attrs\n * @param {Object} options\n * @returns {Store}\n */\n constructor() {\n webex.logger.debug(`webex-store: constructing ${type}Storage`);\n bindings.set(this, new Map());\n }\n\n /**\n * Provides easy access to the storage adapter identified in config.\n * @returns {Object}\n */\n get adapter() {\n return webex.config.storage[`${type}Adapter`];\n }\n\n /**\n * @returns {WeakMap}\n */\n get bindings() {\n return bindings.get(this);\n }\n\n /**\n * Clears the store\n * @returns {Promise}\n */\n clear() {\n const promises = [];\n\n this.bindings.forEach((binding) => {\n promises.push(binding.clear());\n });\n\n return Promise.all(promises);\n }\n\n /**\n * Deletes the specified key from the store\n * @param {string} namespace\n * @param {string} key\n * @returns {[type]}\n */\n del(namespace, key) {\n webex.logger.debug(`webex-store: removing ${namespace}:${key}`);\n\n return this._getBinding(namespace)\n .then((binding) => binding.del(key));\n }\n\n /**\n * Retrieves the value specified by key from the store. Rejects with\n * NotFoundError if no value can be found\n * @param {string} namespace\n * @param {string} key\n * @returns {Promise}\n */\n get(namespace, key) {\n webex.logger.debug(`webex-store: retrieving ${namespace}:${key}`);\n\n return this._getBinding(namespace)\n .then((binding) => binding.get(key));\n }\n\n /**\n * Writes a value to the store. Deletes the specified key from the store\n * if passed `undefined`\n * @param {string} namespace\n * @param {string} key\n * @param {any} value\n * @returns {Promise} Resolves with value (to simplify write-through caching)\n */\n put(namespace, key, value) {\n if (typeof value === 'undefined') {\n return this.del(namespace, key);\n }\n webex.logger.debug(`webex-store: setting ${namespace}:${key}`);\n\n return this._getBinding(namespace)\n .then((binding) => binding.put(key, value.serialize ? value.serialize() : value))\n .then(() => value);\n }\n\n @oneFlight({keyFactory: (namespace) => namespace})\n /**\n * Creates an interface bound to the specified namespace\n * @param {string} namespace\n * @private\n * @returns {Promise}\n */\n // suppress doc warning because decorators confuse eslint\n // eslint-disable-next-line require-jsdoc\n _getBinding(namespace) {\n return new Promise((resolve) => {\n webex.logger.debug(`storage: getting binding for \\`${namespace}\\``);\n const binding = this.bindings.get(namespace);\n\n if (binding) {\n webex.logger.debug(`storage: found binding for \\`${namespace}\\``);\n\n return resolve(binding);\n }\n\n return resolve(this.adapter.bind(namespace, {logger: webex.logger})\n .then((_binding) => {\n webex.logger.debug(`storage: made binding for \\`${namespace}\\``);\n this.bindings.set(namespace, _binding);\n\n return _binding;\n }));\n });\n }\n }\n\n Object.assign(WebexStore.prototype, Events);\n\n return new WebexStore();\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["bindings","makeWebexStore","type","webex","WebexStore","oneFlight","keyFactory","namespace","logger","debug","set","config","storage","get","promises","forEach","binding","push","clear","all","key","_getBinding","then","del","value","put","serialize","resolve","adapter","bind","_binding","prototype","Events"],"sources":["make-webex-store.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport Events from 'ampersand-events';\nimport {oneFlight} from '@webex/common';\n\nconst bindings = new WeakMap();\n\n/**\n * Makes a WebexStore for the specified type bound to the specified webex instance\n * @param {string} type\n * @param {ProxyWebex} webex\n * @private\n * @returns {WebexStore}\n */\nexport default function makeWebexStore(type, webex) {\n /**\n * Lazy Key-Value Store Interface\n */\n class WebexStore {\n /**\n * @param {Object} attrs\n * @param {Object} options\n * @returns {Store}\n */\n constructor() {\n webex.logger.debug(`webex-store: constructing ${type}Storage`);\n bindings.set(this, new Map());\n }\n\n /**\n * Provides easy access to the storage adapter identified in config.\n * @returns {Object}\n */\n get adapter() {\n return webex.config.storage[`${type}Adapter`];\n }\n\n /**\n * @returns {WeakMap}\n */\n get bindings() {\n return bindings.get(this);\n }\n\n /**\n * Clears the store\n * @returns {Promise}\n */\n clear() {\n const promises = [];\n\n this.bindings.forEach((binding) => {\n promises.push(binding.clear());\n });\n\n return Promise.all(promises);\n }\n\n /**\n * Deletes the specified key from the store\n * @param {string} namespace\n * @param {string} key\n * @returns {[type]}\n */\n del(namespace, key) {\n webex.logger.debug(`webex-store: removing ${namespace}:${key}`);\n\n return this._getBinding(namespace).then((binding) => binding.del(key));\n }\n\n /**\n * Retrieves the value specified by key from the store. Rejects with\n * NotFoundError if no value can be found\n * @param {string} namespace\n * @param {string} key\n * @returns {Promise}\n */\n get(namespace, key) {\n webex.logger.debug(`webex-store: retrieving ${namespace}:${key}`);\n\n return this._getBinding(namespace).then((binding) => binding.get(key));\n }\n\n /**\n * Writes a value to the store. Deletes the specified key from the store\n * if passed `undefined`\n * @param {string} namespace\n * @param {string} key\n * @param {any} value\n * @returns {Promise} Resolves with value (to simplify write-through caching)\n */\n put(namespace, key, value) {\n if (typeof value === 'undefined') {\n return this.del(namespace, key);\n }\n webex.logger.debug(`webex-store: setting ${namespace}:${key}`);\n\n return this._getBinding(namespace)\n .then((binding) => binding.put(key, value.serialize ? value.serialize() : value))\n .then(() => value);\n }\n\n @oneFlight({keyFactory: (namespace) => namespace})\n /**\n * Creates an interface bound to the specified namespace\n * @param {string} namespace\n * @private\n * @returns {Promise}\n */\n // suppress doc warning because decorators confuse eslint\n // eslint-disable-next-line require-jsdoc\n _getBinding(namespace) {\n return new Promise((resolve) => {\n webex.logger.debug(`storage: getting binding for \\`${namespace}\\``);\n const binding = this.bindings.get(namespace);\n\n if (binding) {\n webex.logger.debug(`storage: found binding for \\`${namespace}\\``);\n\n return resolve(binding);\n }\n\n return resolve(\n this.adapter.bind(namespace, {logger: webex.logger}).then((_binding) => {\n webex.logger.debug(`storage: made binding for \\`${namespace}\\``);\n this.bindings.set(namespace, _binding);\n\n return _binding;\n })\n );\n });\n }\n }\n\n Object.assign(WebexStore.prototype, Events);\n\n return new WebexStore();\n}\n"],"mappings":"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"}
@@ -1,23 +1,15 @@
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.default = void 0;
12
-
13
9
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
14
-
15
10
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
16
-
17
11
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
18
-
19
12
  var _errors = require("./errors");
20
-
21
13
  /*!
22
14
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
23
15
  */
@@ -33,25 +25,20 @@ var _errors = require("./errors");
33
25
  function _bind(namespace) {
34
26
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
35
27
  options = options || {};
36
-
37
28
  if (!namespace) {
38
29
  return _promise.default.reject(new Error('`namespace` is required'));
39
30
  }
40
-
41
31
  if (!options.logger) {
42
32
  return _promise.default.reject(new Error('`options.logger` is required'));
43
33
  }
44
-
45
34
  var _options = options,
46
- logger = _options.logger;
35
+ logger = _options.logger;
47
36
  var map = new _map.default([['@', {}]]);
48
-
49
37
  if (options.data) {
50
38
  (0, _keys.default)(options.data).forEach(function (key) {
51
39
  map.set(key, options.data[key]);
52
40
  });
53
41
  }
54
-
55
42
  logger.debug('memory-store-adapter: returning binding');
56
43
  return _promise.default.resolve({
57
44
  clear: function clear() {
@@ -65,11 +52,9 @@ function _bind(namespace) {
65
52
  get: function get(key) {
66
53
  logger.debug("memory-store-adapter: reading `".concat(key, "`"));
67
54
  var res = map.get(key);
68
-
69
55
  if (typeof res === 'undefined') {
70
56
  return _promise.default.reject(new _errors.NotFoundError());
71
57
  }
72
-
73
58
  return _promise.default.resolve(res);
74
59
  },
75
60
  put: function put(key, value) {
@@ -78,18 +63,15 @@ function _bind(namespace) {
78
63
  }
79
64
  });
80
65
  }
81
-
82
66
  var _default = {
83
67
  bind: _bind,
84
68
  preload: function preload(data) {
85
69
  return {
86
70
  bind: function bind(namespace) {
87
71
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
88
-
89
72
  if (data[namespace]) {
90
73
  options.data = data[namespace];
91
74
  }
92
-
93
75
  return _bind(namespace, options);
94
76
  }
95
77
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_bind","namespace","options","reject","Error","logger","map","data","forEach","key","set","debug","resolve","clear","del","delete","get","res","NotFoundError","put","value","bind","preload"],"sources":["memory-store-adapter.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {NotFoundError} from './errors';\n\n/**\n * Binds a namespace\n * @param {string} namespace\n * @param {Object} options\n * @param {Object} options.data\n * @private\n * @returns {Promise<Object>}\n */\nfunction _bind(namespace, options = {}) {\n options = options || {};\n if (!namespace) {\n return Promise.reject(new Error('`namespace` is required'));\n }\n\n if (!options.logger) {\n return Promise.reject(new Error('`options.logger` is required'));\n }\n\n const {logger} = options;\n\n const map = new Map([['@', {}]]);\n\n if (options.data) {\n Object.keys(options.data).forEach((key) => {\n map.set(key, options.data[key]);\n });\n }\n\n logger.debug('memory-store-adapter: returning binding');\n\n return Promise.resolve({\n clear() {\n logger.debug('memory-store-adapter: clearing the binding');\n\n return Promise.resolve(map.clear());\n },\n del(key) {\n logger.debug(`memory-store-adapter: deleting \\`${key}\\``);\n\n return Promise.resolve(map.delete(key));\n },\n get(key) {\n logger.debug(`memory-store-adapter: reading \\`${key}\\``);\n const res = map.get(key);\n\n if (typeof res === 'undefined') {\n return Promise.reject(new NotFoundError());\n }\n\n return Promise.resolve(res);\n },\n put(key, value) {\n logger.debug(`memory-store-adapter: writing \\`${key}\\``);\n\n return Promise.resolve(map.set(key, value));\n }\n });\n}\n\nexport default {\n bind: _bind,\n preload(data) {\n return {\n bind(namespace, options = {}) {\n if (data[namespace]) {\n options.data = data[namespace];\n }\n\n return _bind(namespace, options);\n }\n };\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAIA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,KAAT,CAAeC,SAAf,EAAwC;EAAA,IAAdC,OAAc,uEAAJ,EAAI;EACtCA,OAAO,GAAGA,OAAO,IAAI,EAArB;;EACA,IAAI,CAACD,SAAL,EAAgB;IACd,OAAO,iBAAQE,MAAR,CAAe,IAAIC,KAAJ,CAAU,yBAAV,CAAf,CAAP;EACD;;EAED,IAAI,CAACF,OAAO,CAACG,MAAb,EAAqB;IACnB,OAAO,iBAAQF,MAAR,CAAe,IAAIC,KAAJ,CAAU,8BAAV,CAAf,CAAP;EACD;;EAED,eAAiBF,OAAjB;EAAA,IAAOG,MAAP,YAAOA,MAAP;EAEA,IAAMC,GAAG,GAAG,iBAAQ,CAAC,CAAC,GAAD,EAAM,EAAN,CAAD,CAAR,CAAZ;;EAEA,IAAIJ,OAAO,CAACK,IAAZ,EAAkB;IAChB,mBAAYL,OAAO,CAACK,IAApB,EAA0BC,OAA1B,CAAkC,UAACC,GAAD,EAAS;MACzCH,GAAG,CAACI,GAAJ,CAAQD,GAAR,EAAaP,OAAO,CAACK,IAAR,CAAaE,GAAb,CAAb;IACD,CAFD;EAGD;;EAEDJ,MAAM,CAACM,KAAP,CAAa,yCAAb;EAEA,OAAO,iBAAQC,OAAR,CAAgB;IACrBC,KADqB,mBACb;MACNR,MAAM,CAACM,KAAP,CAAa,4CAAb;MAEA,OAAO,iBAAQC,OAAR,CAAgBN,GAAG,CAACO,KAAJ,EAAhB,CAAP;IACD,CALoB;IAMrBC,GANqB,eAMjBL,GANiB,EAMZ;MACPJ,MAAM,CAACM,KAAP,2CAAiDF,GAAjD;MAEA,OAAO,iBAAQG,OAAR,CAAgBN,GAAG,CAACS,MAAJ,CAAWN,GAAX,CAAhB,CAAP;IACD,CAVoB;IAWrBO,GAXqB,eAWjBP,GAXiB,EAWZ;MACPJ,MAAM,CAACM,KAAP,0CAAgDF,GAAhD;MACA,IAAMQ,GAAG,GAAGX,GAAG,CAACU,GAAJ,CAAQP,GAAR,CAAZ;;MAEA,IAAI,OAAOQ,GAAP,KAAe,WAAnB,EAAgC;QAC9B,OAAO,iBAAQd,MAAR,CAAe,IAAIe,qBAAJ,EAAf,CAAP;MACD;;MAED,OAAO,iBAAQN,OAAR,CAAgBK,GAAhB,CAAP;IACD,CApBoB;IAqBrBE,GArBqB,eAqBjBV,GArBiB,EAqBZW,KArBY,EAqBL;MACdf,MAAM,CAACM,KAAP,0CAAgDF,GAAhD;MAEA,OAAO,iBAAQG,OAAR,CAAgBN,GAAG,CAACI,GAAJ,CAAQD,GAAR,EAAaW,KAAb,CAAhB,CAAP;IACD;EAzBoB,CAAhB,CAAP;AA2BD;;eAEc;EACbC,IAAI,EAAErB,KADO;EAEbsB,OAFa,mBAELf,IAFK,EAEC;IACZ,OAAO;MACLc,IADK,gBACApB,SADA,EACyB;QAAA,IAAdC,OAAc,uEAAJ,EAAI;;QAC5B,IAAIK,IAAI,CAACN,SAAD,CAAR,EAAqB;UACnBC,OAAO,CAACK,IAAR,GAAeA,IAAI,CAACN,SAAD,CAAnB;QACD;;QAED,OAAOD,KAAK,CAACC,SAAD,EAAYC,OAAZ,CAAZ;MACD;IAPI,CAAP;EASD;AAZY,C"}
1
+ {"version":3,"names":["_bind","namespace","options","reject","Error","logger","map","data","forEach","key","set","debug","resolve","clear","del","delete","get","res","NotFoundError","put","value","bind","preload"],"sources":["memory-store-adapter.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {NotFoundError} from './errors';\n\n/**\n * Binds a namespace\n * @param {string} namespace\n * @param {Object} options\n * @param {Object} options.data\n * @private\n * @returns {Promise<Object>}\n */\nfunction _bind(namespace, options = {}) {\n options = options || {};\n if (!namespace) {\n return Promise.reject(new Error('`namespace` is required'));\n }\n\n if (!options.logger) {\n return Promise.reject(new Error('`options.logger` is required'));\n }\n\n const {logger} = options;\n\n const map = new Map([['@', {}]]);\n\n if (options.data) {\n Object.keys(options.data).forEach((key) => {\n map.set(key, options.data[key]);\n });\n }\n\n logger.debug('memory-store-adapter: returning binding');\n\n return Promise.resolve({\n clear() {\n logger.debug('memory-store-adapter: clearing the binding');\n\n return Promise.resolve(map.clear());\n },\n del(key) {\n logger.debug(`memory-store-adapter: deleting \\`${key}\\``);\n\n return Promise.resolve(map.delete(key));\n },\n get(key) {\n logger.debug(`memory-store-adapter: reading \\`${key}\\``);\n const res = map.get(key);\n\n if (typeof res === 'undefined') {\n return Promise.reject(new NotFoundError());\n }\n\n return Promise.resolve(res);\n },\n put(key, value) {\n logger.debug(`memory-store-adapter: writing \\`${key}\\``);\n\n return Promise.resolve(map.set(key, value));\n },\n });\n}\n\nexport default {\n bind: _bind,\n preload(data) {\n return {\n bind(namespace, options = {}) {\n if (data[namespace]) {\n options.data = data[namespace];\n }\n\n return _bind(namespace, options);\n },\n };\n },\n};\n"],"mappings":";;;;;;;;;;;AAIA;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,KAAK,CAACC,SAAS,EAAgB;EAAA,IAAdC,OAAO,uEAAG,CAAC,CAAC;EACpCA,OAAO,GAAGA,OAAO,IAAI,CAAC,CAAC;EACvB,IAAI,CAACD,SAAS,EAAE;IACd,OAAO,iBAAQE,MAAM,CAAC,IAAIC,KAAK,CAAC,yBAAyB,CAAC,CAAC;EAC7D;EAEA,IAAI,CAACF,OAAO,CAACG,MAAM,EAAE;IACnB,OAAO,iBAAQF,MAAM,CAAC,IAAIC,KAAK,CAAC,8BAA8B,CAAC,CAAC;EAClE;EAEA,eAAiBF,OAAO;IAAjBG,MAAM,YAANA,MAAM;EAEb,IAAMC,GAAG,GAAG,iBAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EAEhC,IAAIJ,OAAO,CAACK,IAAI,EAAE;IAChB,mBAAYL,OAAO,CAACK,IAAI,CAAC,CAACC,OAAO,CAAC,UAACC,GAAG,EAAK;MACzCH,GAAG,CAACI,GAAG,CAACD,GAAG,EAAEP,OAAO,CAACK,IAAI,CAACE,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC;EACJ;EAEAJ,MAAM,CAACM,KAAK,CAAC,yCAAyC,CAAC;EAEvD,OAAO,iBAAQC,OAAO,CAAC;IACrBC,KAAK,mBAAG;MACNR,MAAM,CAACM,KAAK,CAAC,4CAA4C,CAAC;MAE1D,OAAO,iBAAQC,OAAO,CAACN,GAAG,CAACO,KAAK,EAAE,CAAC;IACrC,CAAC;IACDC,GAAG,eAACL,GAAG,EAAE;MACPJ,MAAM,CAACM,KAAK,2CAAqCF,GAAG,OAAK;MAEzD,OAAO,iBAAQG,OAAO,CAACN,GAAG,CAACS,MAAM,CAACN,GAAG,CAAC,CAAC;IACzC,CAAC;IACDO,GAAG,eAACP,GAAG,EAAE;MACPJ,MAAM,CAACM,KAAK,0CAAoCF,GAAG,OAAK;MACxD,IAAMQ,GAAG,GAAGX,GAAG,CAACU,GAAG,CAACP,GAAG,CAAC;MAExB,IAAI,OAAOQ,GAAG,KAAK,WAAW,EAAE;QAC9B,OAAO,iBAAQd,MAAM,CAAC,IAAIe,qBAAa,EAAE,CAAC;MAC5C;MAEA,OAAO,iBAAQN,OAAO,CAACK,GAAG,CAAC;IAC7B,CAAC;IACDE,GAAG,eAACV,GAAG,EAAEW,KAAK,EAAE;MACdf,MAAM,CAACM,KAAK,0CAAoCF,GAAG,OAAK;MAExD,OAAO,iBAAQG,OAAO,CAACN,GAAG,CAACI,GAAG,CAACD,GAAG,EAAEW,KAAK,CAAC,CAAC;IAC7C;EACF,CAAC,CAAC;AACJ;AAAC,eAEc;EACbC,IAAI,EAAErB,KAAK;EACXsB,OAAO,mBAACf,IAAI,EAAE;IACZ,OAAO;MACLc,IAAI,gBAACpB,SAAS,EAAgB;QAAA,IAAdC,OAAO,uEAAG,CAAC,CAAC;QAC1B,IAAIK,IAAI,CAACN,SAAS,CAAC,EAAE;UACnBC,OAAO,CAACK,IAAI,GAAGA,IAAI,CAACN,SAAS,CAAC;QAChC;QAEA,OAAOD,KAAK,CAACC,SAAS,EAAEC,OAAO,CAAC;MAClC;IACF,CAAC;EACH;AACF,CAAC;AAAA"}