@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.
- package/dist/config.js +1 -11
- package/dist/config.js.map +1 -1
- package/dist/credentials-config.js +44 -64
- package/dist/credentials-config.js.map +1 -1
- package/dist/index.js +0 -76
- package/dist/index.js.map +1 -1
- package/dist/interceptors/auth.js +22 -55
- package/dist/interceptors/auth.js.map +1 -1
- package/dist/interceptors/default-options.js +0 -20
- package/dist/interceptors/default-options.js.map +1 -1
- package/dist/interceptors/embargo.js +0 -21
- package/dist/interceptors/embargo.js.map +1 -1
- package/dist/interceptors/network-timing.js +2 -21
- package/dist/interceptors/network-timing.js.map +1 -1
- package/dist/interceptors/payload-transformer.js +2 -22
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/interceptors/rate-limit.js +25 -57
- package/dist/interceptors/rate-limit.js.map +1 -1
- package/dist/interceptors/redirect.js +4 -33
- package/dist/interceptors/redirect.js.map +1 -1
- package/dist/interceptors/request-event.js +3 -30
- package/dist/interceptors/request-event.js.map +1 -1
- package/dist/interceptors/request-logger.js +1 -30
- package/dist/interceptors/request-logger.js.map +1 -1
- package/dist/interceptors/request-timing.js +3 -22
- package/dist/interceptors/request-timing.js.map +1 -1
- package/dist/interceptors/response-logger.js +2 -31
- package/dist/interceptors/response-logger.js.map +1 -1
- package/dist/interceptors/user-agent.js +2 -29
- package/dist/interceptors/user-agent.js.map +1 -1
- package/dist/interceptors/webex-tracking-id.js +5 -28
- package/dist/interceptors/webex-tracking-id.js.map +1 -1
- package/dist/interceptors/webex-user-agent.js +5 -38
- package/dist/interceptors/webex-user-agent.js.map +1 -1
- package/dist/lib/batcher.js +3 -51
- package/dist/lib/batcher.js.map +1 -1
- package/dist/lib/credentials/credentials.js +39 -119
- package/dist/lib/credentials/credentials.js.map +1 -1
- package/dist/lib/credentials/grant-errors.js +0 -49
- package/dist/lib/credentials/grant-errors.js.map +1 -1
- package/dist/lib/credentials/index.js +1 -13
- package/dist/lib/credentials/index.js.map +1 -1
- package/dist/lib/credentials/scope.js +1 -7
- package/dist/lib/credentials/scope.js.map +1 -1
- package/dist/lib/credentials/token-collection.js +1 -7
- package/dist/lib/credentials/token-collection.js.map +1 -1
- package/dist/lib/credentials/token.js +39 -118
- package/dist/lib/credentials/token.js.map +1 -1
- package/dist/lib/page.js +13 -26
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/services/constants.js +0 -2
- package/dist/lib/services/constants.js.map +1 -1
- package/dist/lib/services/index.js +1 -28
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/interceptors/server-error.js +2 -23
- package/dist/lib/services/interceptors/server-error.js.map +1 -1
- package/dist/lib/services/interceptors/service.js +12 -34
- package/dist/lib/services/interceptors/service.js.map +1 -1
- package/dist/lib/services/metrics.js +0 -2
- package/dist/lib/services/metrics.js.map +1 -1
- package/dist/lib/services/service-catalog.js +10 -90
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/service-fed-ramp.js +0 -2
- package/dist/lib/services/service-fed-ramp.js.map +1 -1
- package/dist/lib/services/service-host.js +47 -62
- package/dist/lib/services/service-host.js.map +1 -1
- package/dist/lib/services/service-registry.js +78 -90
- package/dist/lib/services/service-registry.js.map +1 -1
- package/dist/lib/services/service-state.js +3 -15
- package/dist/lib/services/service-state.js.map +1 -1
- package/dist/lib/services/service-url.js +4 -25
- package/dist/lib/services/service-url.js.map +1 -1
- package/dist/lib/services/services.js +122 -238
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/stateless-webex-plugin.js +5 -28
- package/dist/lib/stateless-webex-plugin.js.map +1 -1
- package/dist/lib/storage/decorators.js +19 -62
- package/dist/lib/storage/decorators.js.map +1 -1
- package/dist/lib/storage/errors.js +0 -23
- package/dist/lib/storage/errors.js.map +1 -1
- package/dist/lib/storage/index.js +2 -16
- package/dist/lib/storage/index.js.map +1 -1
- package/dist/lib/storage/make-webex-plugin-store.js +11 -41
- package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
- package/dist/lib/storage/make-webex-store.js +8 -30
- package/dist/lib/storage/make-webex-store.js.map +1 -1
- package/dist/lib/storage/memory-store-adapter.js +1 -19
- package/dist/lib/storage/memory-store-adapter.js.map +1 -1
- package/dist/lib/webex-core-plugin-mixin.js +9 -29
- package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-http-error.js +1 -31
- package/dist/lib/webex-http-error.js.map +1 -1
- package/dist/lib/webex-internal-core-plugin-mixin.js +9 -29
- package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-plugin.js +6 -40
- package/dist/lib/webex-plugin.js.map +1 -1
- package/dist/plugins/logger.js +3 -17
- package/dist/plugins/logger.js.map +1 -1
- package/dist/webex-core.js +79 -203
- package/dist/webex-core.js.map +1 -1
- package/dist/webex-internal-core.js +0 -10
- package/dist/webex-internal-core.js.map +1 -1
- package/package.json +14 -14
- package/src/config.js +9 -11
- package/src/credentials-config.js +110 -72
- package/src/index.js +4 -14
- package/src/interceptors/auth.js +36 -37
- package/src/interceptors/default-options.js +0 -1
- package/src/interceptors/embargo.js +1 -1
- package/src/interceptors/payload-transformer.js +1 -2
- package/src/interceptors/rate-limit.js +8 -5
- package/src/interceptors/redirect.js +14 -8
- package/src/interceptors/request-event.js +4 -8
- package/src/interceptors/request-logger.js +8 -5
- package/src/interceptors/response-logger.js +11 -8
- package/src/interceptors/user-agent.js +1 -2
- package/src/interceptors/webex-user-agent.js +3 -9
- package/src/lib/batcher.js +70 -69
- package/src/lib/credentials/credentials.js +112 -122
- package/src/lib/credentials/grant-errors.js +6 -7
- package/src/lib/credentials/index.js +1 -4
- package/src/lib/credentials/scope.js +1 -4
- package/src/lib/credentials/token-collection.js +1 -1
- package/src/lib/credentials/token.js +86 -80
- package/src/lib/page.js +10 -11
- package/src/lib/services/constants.js +3 -13
- package/src/lib/services/index.js +2 -2
- package/src/lib/services/interceptors/server-error.js +12 -7
- package/src/lib/services/interceptors/service.js +6 -5
- package/src/lib/services/metrics.js +1 -1
- package/src/lib/services/service-catalog.js +110 -100
- package/src/lib/services/service-fed-ramp.js +1 -2
- package/src/lib/services/service-host.js +10 -17
- package/src/lib/services/service-registry.js +69 -96
- package/src/lib/services/service-state.js +4 -6
- package/src/lib/services/service-url.js +24 -23
- package/src/lib/services/services.js +260 -251
- package/src/lib/stateless-webex-plugin.js +4 -2
- package/src/lib/storage/decorators.js +68 -66
- package/src/lib/storage/index.js +4 -6
- package/src/lib/storage/make-webex-plugin-store.js +34 -21
- package/src/lib/storage/make-webex-store.js +6 -7
- package/src/lib/storage/memory-store-adapter.js +3 -3
- package/src/lib/webex-core-plugin-mixin.js +10 -7
- package/src/lib/webex-http-error.js +7 -8
- package/src/lib/webex-internal-core-plugin-mixin.js +9 -6
- package/src/lib/webex-plugin.js +41 -34
- package/src/plugins/logger.js +8 -3
- package/src/webex-core.js +185 -116
- package/src/webex-internal-core.js +15 -9
- package/test/integration/spec/credentials/credentials.js +26 -30
- package/test/integration/spec/credentials/token.js +36 -33
- package/test/integration/spec/services/service-catalog.js +177 -156
- package/test/integration/spec/services/services.js +313 -304
- package/test/integration/spec/webex-core.js +98 -86
- package/test/unit/spec/_setup.js +26 -18
- package/test/unit/spec/credentials/credentials.js +189 -154
- package/test/unit/spec/credentials/token.js +94 -76
- package/test/unit/spec/interceptors/auth.js +291 -243
- package/test/unit/spec/interceptors/default-options.js +36 -24
- package/test/unit/spec/interceptors/embargo.js +32 -27
- package/test/unit/spec/interceptors/network-timing.js +2 -2
- package/test/unit/spec/interceptors/payload-transformer.js +61 -52
- package/test/unit/spec/interceptors/rate-limit.js +104 -75
- package/test/unit/spec/interceptors/redirect.js +22 -20
- package/test/unit/spec/interceptors/request-timing.js +18 -22
- package/test/unit/spec/interceptors/user-agent.js +28 -16
- package/test/unit/spec/interceptors/webex-tracking-id.js +14 -8
- package/test/unit/spec/interceptors/webex-user-agent.js +83 -37
- package/test/unit/spec/lib/batcher.js +36 -32
- package/test/unit/spec/lib/page.js +36 -32
- package/test/unit/spec/lib/webex-plugin.js +1 -1
- package/test/unit/spec/services/interceptors/server-error.js +67 -90
- package/test/unit/spec/services/interceptors/service.js +17 -28
- package/test/unit/spec/services/service-catalog.js +19 -27
- package/test/unit/spec/services/service-host.js +29 -26
- package/test/unit/spec/services/service-registry.js +128 -170
- package/test/unit/spec/services/service-state.js +13 -22
- package/test/unit/spec/services/service-url.js +24 -43
- package/test/unit/spec/services/services.js +85 -41
- package/test/unit/spec/storage/persist.js +6 -9
- package/test/unit/spec/storage/wait-for-value.js +22 -21
- package/test/unit/spec/webex-core.js +78 -57
- 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);
|
|
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)
|
|
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
|
-
|
|
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 }
|
|
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"}
|