@data-client/core 0.14.23 → 0.15.0-beta-20251006024044-92bd01c4976f2921993b8c9f1e4dbb87af87ba7b
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/README.md +2 -2
- package/dist/index.js +100 -97
- package/dist/index.umd.min.js +1 -1
- package/legacy/controller/Controller.js +31 -46
- package/legacy/index.js +1 -1
- package/legacy/manager/NetworkManager.js +44 -33
- package/legacy/state/GCPolicy.js +20 -12
- package/legacy/state/reducer/createReducer.js +4 -4
- package/legacy/state/reducer/setReducer.js +3 -3
- package/legacy/state/reducer/setResponseReducer.js +4 -4
- package/legacy/types.js +1 -1
- package/lib/controller/Controller.d.ts +3 -3
- package/lib/controller/Controller.d.ts.map +1 -1
- package/lib/controller/Controller.js +31 -46
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/manager/NetworkManager.d.ts +7 -12
- package/lib/manager/NetworkManager.d.ts.map +1 -1
- package/lib/manager/NetworkManager.js +44 -34
- package/lib/state/GCPolicy.d.ts.map +1 -1
- package/lib/state/GCPolicy.js +20 -12
- package/lib/state/reducer/createReducer.js +4 -4
- package/lib/state/reducer/expireReducer.d.ts +1 -1
- package/lib/state/reducer/invalidateReducer.d.ts +1 -1
- package/lib/state/reducer/setReducer.d.ts +1 -1
- package/lib/state/reducer/setReducer.js +3 -3
- package/lib/state/reducer/setResponseReducer.d.ts +1 -1
- package/lib/state/reducer/setResponseReducer.js +4 -4
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +1 -1
- package/package.json +3 -3
- package/src/controller/Controller.ts +38 -80
- package/src/controller/__tests__/Controller.ts +2 -2
- package/src/controller/__tests__/__snapshots__/get.ts.snap +34 -8
- package/src/controller/__tests__/__snapshots__/getResponse.ts.snap +1 -1
- package/src/controller/__tests__/get.ts +163 -22
- package/src/controller/__tests__/getResponse.ts +1 -1
- package/src/index.ts +4 -0
- package/src/manager/NetworkManager.ts +46 -32
- package/src/manager/__tests__/__snapshots__/pollingSubscription.ts.snap +1 -1
- package/src/manager/__tests__/pollingSubscription.ts +9 -5
- package/src/state/GCPolicy.ts +12 -10
- package/src/state/__tests__/GCPolicy.test.ts +6 -6
- package/src/state/__tests__/__snapshots__/reducer.ts.snap +3 -3
- package/src/state/__tests__/reducer.ts +17 -9
- package/src/state/reducer/createReducer.ts +2 -2
- package/src/state/reducer/setReducer.ts +2 -2
- package/src/state/reducer/setResponseReducer.ts +3 -3
- package/src/types.ts +1 -1
- package/ts3.4/controller/Controller.d.ts +3 -3
- package/ts3.4/index.d.ts +2 -1
- package/ts3.4/manager/NetworkManager.d.ts +7 -12
- package/ts3.4/state/reducer/expireReducer.d.ts +1 -1
- package/ts3.4/state/reducer/invalidateReducer.d.ts +1 -1
- package/ts3.4/state/reducer/setReducer.d.ts +1 -1
- package/ts3.4/state/reducer/setResponseReducer.d.ts +1 -1
- package/ts3.4/types.d.ts +1 -1
|
@@ -7,7 +7,6 @@ export class ResetError extends Error {
|
|
|
7
7
|
this.name = 'ResetError';
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
|
|
11
10
|
/** Handles all async network dispatches
|
|
12
11
|
*
|
|
13
12
|
* Dedupes concurrent requests by keeping track of all fetches in flight
|
|
@@ -22,10 +21,7 @@ export default class NetworkManager {
|
|
|
22
21
|
dataExpiryLength = 60000,
|
|
23
22
|
errorExpiryLength = 1000
|
|
24
23
|
} = {}) {
|
|
25
|
-
this.
|
|
26
|
-
this.resolvers = {};
|
|
27
|
-
this.rejectors = {};
|
|
28
|
-
this.fetchedAt = {};
|
|
24
|
+
this.fetching = new Map();
|
|
29
25
|
this.controller = new Controller();
|
|
30
26
|
this.middleware = controller => {
|
|
31
27
|
this.controller = controller;
|
|
@@ -43,7 +39,7 @@ export default class NetworkManager {
|
|
|
43
39
|
case SET_RESPONSE:
|
|
44
40
|
// only set after new state is computed
|
|
45
41
|
return next(action).then(() => {
|
|
46
|
-
if (action.key
|
|
42
|
+
if (this.fetching.has(action.key)) {
|
|
47
43
|
var _controller$getState$;
|
|
48
44
|
// Note: meta *must* be set by reducer so this should be safe
|
|
49
45
|
const error = (_controller$getState$ = controller.getState().meta[action.key]) == null ? void 0 : _controller$getState$.error;
|
|
@@ -62,15 +58,17 @@ export default class NetworkManager {
|
|
|
62
58
|
});
|
|
63
59
|
case RESET:
|
|
64
60
|
{
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
// take snapshot of rejectors at this point in time
|
|
62
|
+
// we must use Array.from since iteration does not freeze state at this point in time
|
|
63
|
+
const fetches = Array.from(this.fetching.values());
|
|
68
64
|
this.clearAll();
|
|
69
65
|
return next(action).then(() => {
|
|
70
66
|
// there could be external listeners to the promise
|
|
71
67
|
// this must happen after commit so our own rejector knows not to dispatch an error based on this
|
|
72
|
-
for (const
|
|
73
|
-
|
|
68
|
+
for (const {
|
|
69
|
+
reject
|
|
70
|
+
} of fetches) {
|
|
71
|
+
reject(new ResetError());
|
|
74
72
|
}
|
|
75
73
|
});
|
|
76
74
|
}
|
|
@@ -97,27 +95,27 @@ export default class NetworkManager {
|
|
|
97
95
|
/** Used by DevtoolsManager to determine whether to log an action */
|
|
98
96
|
skipLogging(action) {
|
|
99
97
|
/* istanbul ignore next */
|
|
100
|
-
return action.type === FETCH && action.key
|
|
98
|
+
return action.type === FETCH && this.fetching.has(action.key);
|
|
101
99
|
}
|
|
102
100
|
allSettled() {
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
if (this.fetching.size) return Promise.allSettled(this.fetching.values().map(({
|
|
102
|
+
promise
|
|
103
|
+
}) => promise));
|
|
105
104
|
}
|
|
106
105
|
|
|
107
106
|
/** Clear all promise state */
|
|
108
107
|
clearAll() {
|
|
109
|
-
for (const k
|
|
108
|
+
for (const k of this.fetching.keys()) {
|
|
110
109
|
this.clear(k);
|
|
111
110
|
}
|
|
112
111
|
}
|
|
113
112
|
|
|
114
113
|
/** Clear promise state for a given key */
|
|
115
114
|
clear(key) {
|
|
116
|
-
this.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
delete this.fetchedAt[key];
|
|
115
|
+
if (this.fetching.has(key)) {
|
|
116
|
+
this.fetching.get(key).promise.catch(() => {});
|
|
117
|
+
this.fetching.delete(key);
|
|
118
|
+
}
|
|
121
119
|
}
|
|
122
120
|
getLastReset() {
|
|
123
121
|
if (this.cleanupDate) return this.cleanupDate;
|
|
@@ -200,14 +198,17 @@ export default class NetworkManager {
|
|
|
200
198
|
*/
|
|
201
199
|
handleSet(action) {
|
|
202
200
|
// this can still turn out to be untrue since this is async
|
|
203
|
-
if (action.key
|
|
204
|
-
|
|
201
|
+
if (this.fetching.has(action.key)) {
|
|
202
|
+
const {
|
|
203
|
+
reject,
|
|
204
|
+
resolve
|
|
205
|
+
} = this.fetching.get(action.key);
|
|
205
206
|
if (action.error) {
|
|
206
|
-
|
|
207
|
+
reject(action.response);
|
|
207
208
|
} else {
|
|
208
|
-
|
|
209
|
+
resolve(action.response);
|
|
209
210
|
}
|
|
210
|
-
|
|
211
|
+
|
|
211
212
|
// since we're resolved we no longer need to keep track of this promise
|
|
212
213
|
this.clear(action.key);
|
|
213
214
|
}
|
|
@@ -225,16 +226,15 @@ export default class NetworkManager {
|
|
|
225
226
|
*/
|
|
226
227
|
throttle(key, fetch, fetchedAt) {
|
|
227
228
|
const lastReset = this.getLastReset();
|
|
229
|
+
let fetchMeta = this.fetching.get(key);
|
|
230
|
+
|
|
228
231
|
// we're already fetching so reuse the promise
|
|
229
232
|
// fetches after reset do not count
|
|
230
|
-
if (
|
|
231
|
-
return
|
|
233
|
+
if (fetchMeta && fetchMeta.fetchedAt > lastReset) {
|
|
234
|
+
return fetchMeta.promise;
|
|
232
235
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
this.rejectors[key] = reject;
|
|
236
|
-
});
|
|
237
|
-
this.fetchedAt[key] = fetchedAt;
|
|
236
|
+
fetchMeta = newFetchMeta(fetchedAt);
|
|
237
|
+
this.fetching.set(key, fetchMeta);
|
|
238
238
|
this.idleCallback(() => {
|
|
239
239
|
// since our real promise is resolved via the wrapReducer(),
|
|
240
240
|
// we should just stop all errors here.
|
|
@@ -243,7 +243,7 @@ export default class NetworkManager {
|
|
|
243
243
|
}, {
|
|
244
244
|
timeout: 500
|
|
245
245
|
});
|
|
246
|
-
return
|
|
246
|
+
return fetchMeta.promise;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
/** Calls the callback when client is not 'busy' with high priority interaction tasks
|
|
@@ -254,4 +254,14 @@ export default class NetworkManager {
|
|
|
254
254
|
callback();
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0UiLCJGRVRDSCIsIlJFU0VUIiwiY3JlYXRlU2V0UmVzcG9uc2UiLCJDb250cm9sbGVyIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGVkIiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzb2x2ZXJzIiwicmVqZWN0b3JzIiwiZmV0Y2hlZEF0IiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZUZldGNoIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJ1bmRlZmluZWQiLCJzaWRlRWZmZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwia2V5IiwiX2NvbnRyb2xsZXIkZ2V0U3RhdGUkIiwiZXJyb3IiLCJnZXRTdGF0ZSIsIm1ldGEiLCJoYW5kbGVTZXQiLCJhcmdzIiwicmVzcG9uc2UiLCJjbGVhckFsbCIsImsiLCJpbml0IiwiY2xlYW51cERhdGUiLCJjbGVhbnVwIiwiRGF0ZSIsIm5vdyIsInNraXBMb2dnaW5nIiwiYWxsU2V0dGxlZCIsImZldGNoZXMiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJjbGVhciIsImNhdGNoIiwiZ2V0TGFzdFJlc2V0IiwibGFzdFJlc2V0IiwicmVqZWN0IiwidGhyb3R0bGUiLCJkZWZlcmVkRmV0Y2giLCJwcm9taXNlIiwicmVzb2x2ZVByb21pc2UiLCJkYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNOYU4iLCJjb25zb2xlIiwicHJvbWlzZUhhbmRsZXIiLCJmZXRjaCIsImlkbGVDYWxsYmFjayIsInRpbWVvdXQiLCJjYWxsYmFjayIsIm9wdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9OZXR3b3JrTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVRfUkVTUE9OU0UsIEZFVENILCBSRVNFVCB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB7IGNyZWF0ZVNldFJlc3BvbnNlIH0gZnJvbSAnLi4vY29udHJvbGxlci9hY3Rpb25zL2luZGV4LmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEZldGNoQWN0aW9uLFxuICBNYW5hZ2VyLFxuICBBY3Rpb25UeXBlcyxcbiAgTWlkZGxld2FyZUFQSSxcbiAgTWlkZGxld2FyZSxcbiAgU2V0UmVzcG9uc2VBY3Rpb24sXG59IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFJlc2V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIG5hbWUgPSAnUmVzZXRFcnJvcic7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0Fib3J0ZWQgZHVlIHRvIFJFU0VUJyk7XG4gIH1cbn1cblxuLyoqIEhhbmRsZXMgYWxsIGFzeW5jIG5ldHdvcmsgZGlzcGF0Y2hlc1xuICpcbiAqIERlZHVwZXMgY29uY3VycmVudCByZXF1ZXN0cyBieSBrZWVwaW5nIHRyYWNrIG9mIGFsbCBmZXRjaGVzIGluIGZsaWdodFxuICogYW5kIHJldHVybmluZyBleGlzdGluZyBwcm9taXNlcyBmb3IgcmVxdWVzdHMgYWxyZWFkeSBpbiBmbGlnaHQuXG4gKlxuICogSW50ZXJmYWNlcyB3aXRoIHN0b3JlIHZpYSBhIHJlZHV4LWNvbXBhdGlibGUgbWlkZGxld2FyZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9OZXR3b3JrTWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXR3b3JrTWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBwcm90ZWN0ZWQgZmV0Y2hlZDogeyBbazogc3RyaW5nXTogUHJvbWlzZTxhbnk+IH0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBwcm90ZWN0ZWQgcmVzb2x2ZXJzOiB7IFtrOiBzdHJpbmddOiAodmFsdWU/OiBhbnkpID0+IHZvaWQgfSA9IHt9O1xuICBwcm90ZWN0ZWQgcmVqZWN0b3JzOiB7IFtrOiBzdHJpbmddOiAodmFsdWU/OiBhbnkpID0+IHZvaWQgfSA9IHt9O1xuICBwcm90ZWN0ZWQgZmV0Y2hlZEF0OiB7IFtrOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBkZWNsYXJlIHJlYWRvbmx5IGRhdGFFeHBpcnlMZW5ndGg6IG51bWJlcjtcbiAgZGVjbGFyZSByZWFkb25seSBlcnJvckV4cGlyeUxlbmd0aDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG4gIGRlY2xhcmUgY2xlYW51cERhdGU/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoeyBkYXRhRXhwaXJ5TGVuZ3RoID0gNjAwMDAsIGVycm9yRXhwaXJ5TGVuZ3RoID0gMTAwMCB9ID0ge30pIHtcbiAgICB0aGlzLmRhdGFFeHBpcnlMZW5ndGggPSBkYXRhRXhwaXJ5TGVuZ3RoO1xuICAgIHRoaXMuZXJyb3JFeHBpcnlMZW5ndGggPSBlcnJvckV4cGlyeUxlbmd0aDtcbiAgfVxuXG4gIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmUgPSBjb250cm9sbGVyID0+IHtcbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgIHJldHVybiBuZXh0ID0+IGFjdGlvbiA9PiB7XG4gICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgRkVUQ0g6XG4gICAgICAgICAgdGhpcy5oYW5kbGVGZXRjaChhY3Rpb24pO1xuICAgICAgICAgIC8vIFRoaXMgaXMgdGhlIG9ubHkgY2FzZSB0aGF0IGNhdXNlcyBhbnkgc3RhdGUgY2hhbmdlXG4gICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gaW50ZXJjZXB0IG90aGVyIGZldGNoZXMgYXMgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIHJlZHVjZXJzIGR1cmluZ1xuICAgICAgICAgIC8vIHJlbmRlciAtIHNvIHdlIG5lZWQgdG8gc3RvcCAncmVhZG9ubHknIGZldGNoZXMgd2hpY2ggY2FuIGJlIHRyaWdnZXJlZCBpbiByZW5kZXJcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGFjdGlvbi5lbmRwb2ludC5zaWRlRWZmZWN0XG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIGNhc2UgU0VUX1JFU1BPTlNFOlxuICAgICAgICAgIC8vIG9ubHkgc2V0IGFmdGVyIG5ldyBzdGF0ZSBpcyBjb21wdXRlZFxuICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbikudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQpIHtcbiAgICAgICAgICAgICAgLy8gTm90ZTogbWV0YSAqbXVzdCogYmUgc2V0IGJ5IHJlZHVjZXIgc28gdGhpcyBzaG91bGQgYmUgc2FmZVxuICAgICAgICAgICAgICBjb25zdCBlcnJvciA9IGNvbnRyb2xsZXIuZ2V0U3RhdGUoKS5tZXRhW2FjdGlvbi5rZXldPy5lcnJvcjtcbiAgICAgICAgICAgICAgLy8gcHJvY2Vzc2luZyBlcnJvcnMgcmVzdWx0IGluIHN0YXRlIG1ldGEgaGF2aW5nIGVycm9yLCBzbyB3ZSBzaG91bGQgcmVqZWN0IHRoZSBwcm9taXNlXG4gICAgICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2V0KFxuICAgICAgICAgICAgICAgICAgY3JlYXRlU2V0UmVzcG9uc2UoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgIGZldGNoZWRBdDogYWN0aW9uLm1ldGEuZmV0Y2hlZEF0LFxuICAgICAgICAgICAgICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTZXQoYWN0aW9uKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICBjYXNlIFJFU0VUOiB7XG4gICAgICAgICAgY29uc3QgcmVqZWN0b3JzID0geyAuLi50aGlzLnJlamVjdG9ycyB9O1xuXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xuICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbikudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAvLyB0aGVyZSBjb3VsZCBiZSBleHRlcm5hbCBsaXN0ZW5lcnMgdG8gdGhlIHByb21pc2VcbiAgICAgICAgICAgIC8vIHRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgY29tbWl0IHNvIG91ciBvd24gcmVqZWN0b3Iga25vd3Mgbm90IHRvIGRpc3BhdGNoIGFuIGVycm9yIGJhc2VkIG9uIHRoaXNcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiByZWplY3RvcnMpIHtcbiAgICAgICAgICAgICAgcmVqZWN0b3JzW2tdKG5ldyBSZXNldEVycm9yKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4gIC8qKiBPbiBtb3VudCAqL1xuICBpbml0KCkge1xuICAgIGRlbGV0ZSB0aGlzLmNsZWFudXBEYXRlO1xuICB9XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHByb21pc2VzIGFyZSBjb21wbGV0ZWQgYnkgcmVqZWN0aW5nIHJlbWFpbmluZy4gKi9cbiAgY2xlYW51cCgpIHtcbiAgICAvLyBlbnN1cmUgbm8gZGlzcGF0Y2hlcyBhZnRlciB1bm1vdW50XG4gICAgLy8gdGhpcyBtdXN0IGJlIHJldmVyc2libGUgKGRvbmUgaW4gaW5pdCkgc28gdXNlRWZmZWN0KCkgcmVtYWlucyBzeW1tZXRyaWNcbiAgICB0aGlzLmNsZWFudXBEYXRlID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKiBVc2VkIGJ5IERldnRvb2xzTWFuYWdlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBsb2cgYW4gYWN0aW9uICovXG4gIHNraXBMb2dnaW5nKGFjdGlvbjogQWN0aW9uVHlwZXMpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gRkVUQ0ggJiYgYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQ7XG4gIH1cblxuICBhbGxTZXR0bGVkKCkge1xuICAgIGNvbnN0IGZldGNoZXMgPSBPYmplY3QudmFsdWVzKHRoaXMuZmV0Y2hlZCk7XG4gICAgaWYgKGZldGNoZXMubGVuZ3RoKSByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKGZldGNoZXMpO1xuICB9XG5cbiAgLyoqIENsZWFyIGFsbCBwcm9taXNlIHN0YXRlICovXG4gIHByb3RlY3RlZCBjbGVhckFsbCgpIHtcbiAgICBmb3IgKGNvbnN0IGsgaW4gdGhpcy5yZWplY3RvcnMpIHtcbiAgICAgIHRoaXMuY2xlYXIoayk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENsZWFyIHByb21pc2Ugc3RhdGUgZm9yIGEgZ2l2ZW4ga2V5ICovXG4gIHByb3RlY3RlZCBjbGVhcihrZXk6IHN0cmluZykge1xuICAgIHRoaXMuZmV0Y2hlZFtrZXldLmNhdGNoKCgpID0+IHt9KTtcbiAgICBkZWxldGUgdGhpcy5yZXNvbHZlcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5yZWplY3RvcnNba2V5XTtcbiAgICBkZWxldGUgdGhpcy5mZXRjaGVkW2tleV07XG4gICAgZGVsZXRlIHRoaXMuZmV0Y2hlZEF0W2tleV07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TGFzdFJlc2V0KCkge1xuICAgIGlmICh0aGlzLmNsZWFudXBEYXRlKSByZXR1cm4gdGhpcy5jbGVhbnVwRGF0ZTtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFN0YXRlKCkubGFzdFJlc2V0O1xuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL2ZldGNoJyBhY3Rpb24uXG4gICAqXG4gICAqIFdpbGwgdGhlbiBzdGFydCBhIHByb21pc2UgZm9yIGEga2V5IGFuZCBwb3RlbnRpYWxseSBzdGFydCB0aGUgbmV0d29ya1xuICAgKiBmZXRjaC5cbiAgICpcbiAgICogVXNlcyB0aHJvdHRsZSBlbmRwb2ludHMgd2l0aG91dCBzaWRlRWZmZWN0cy4gVGhpcyBpcyB2YWx1YWJsZVxuICAgKiBmb3IgZW5zdXJlcyBtdXRhdGlvbiByZXF1ZXN0cyBhbHdheXMgZ28gdGhyb3VnaC5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVGZXRjaChhY3Rpb246IEZldGNoQWN0aW9uKSB7XG4gICAgY29uc3QgeyByZXNvbHZlLCByZWplY3QsIGZldGNoZWRBdCB9ID0gYWN0aW9uLm1ldGE7XG4gICAgY29uc3QgdGhyb3R0bGUgPSAhYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3Q7XG5cbiAgICBjb25zdCBkZWZlcmVkRmV0Y2ggPSAoKSA9PiB7XG4gICAgICBsZXQgcHJvbWlzZSA9IGFjdGlvbi5lbmRwb2ludCguLi5hY3Rpb24uYXJncyk7XG4gICAgICBjb25zdCByZXNvbHZlUHJvbWlzZSA9IChcbiAgICAgICAgcHJvbWlzZTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBvYmplY3QgfCBudWxsPixcbiAgICAgICkgPT5cbiAgICAgICAgcHJvbWlzZVxuICAgICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgICB9KTtcbiAgICAgIC8vIHNjaGVkdWxlIG5vbi10aHJvdHRsZWQgcmVzb2x1dGlvbnMgaW4gYSBtaWNyb3Rhc2sgYmVmb3JlIHNldFxuICAgICAgLy8gdGhpcyBlbmFibGVzIHVzZXJzIGF3YWl0aW5nIHRoZWlyIGZldGNoIHRvIHRyaWdnZXIgYW55IHJlYWN0IHVwZGF0ZXMgbmVlZGVkIHRvIGRlYWxcbiAgICAgIC8vIHdpdGggdXBjb21pbmcgY2hhbmdlcyBiZWNhdXNlIG9mIHRoZSBmZXRjaCAoZm9yIGluc3RhbmNlIGF2b2lkaW5nIHN1c3BlbnNlIGlmIHNvbWV0aGluZyBpcyBkZWxldGVkKVxuICAgICAgaWYgKCF0aHJvdHRsZSkge1xuICAgICAgICBwcm9taXNlID0gcmVzb2x2ZVByb21pc2UocHJvbWlzZSk7XG4gICAgICB9XG4gICAgICBwcm9taXNlID0gcHJvbWlzZVxuICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgbGV0IGxhc3RSZXNldCA9IHRoaXMuZ2V0TGFzdFJlc2V0KCk7XG5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzTmFOKGxhc3RSZXNldCkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICdzdGF0ZS5sYXN0UmVzZXQgaXMgTmFOLiBPbmx5IHBvc2l0aXZlIHRpbWVzdGFtcHMgYXJlIHZhbGlkLicsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGFzdFJlc2V0ID0gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBkb24ndCB1cGRhdGUgc3RhdGUgd2l0aCBwcm9taXNlcyBzdGFydGVkIGJlZm9yZSBsYXN0IGNsZWFyXG4gICAgICAgICAgaWYgKGZldGNoZWRBdCA+PSBsYXN0UmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5yZXNvbHZlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgIGZldGNoZWRBdCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICAgICAgICAvLyBkb24ndCB1cGRhdGUgc3RhdGUgd2l0aCBwcm9taXNlcyBzdGFydGVkIGJlZm9yZSBsYXN0IGNsZWFyXG4gICAgICAgICAgaWYgKGZldGNoZWRBdCA+PSBsYXN0UmVzZXQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlci5yZXNvbHZlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICBmZXRjaGVkQXQsXG4gICAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICAgIHJldHVybiBwcm9taXNlO1xuICAgIH07XG5cbiAgICBpZiAodGhyb3R0bGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnRocm90dGxlKGFjdGlvbi5rZXksIGRlZmVyZWRGZXRjaCwgZmV0Y2hlZEF0KVxuICAgICAgICAudGhlbihkYXRhID0+IHJlc29sdmUoZGF0YSkpXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiByZWplY3QoZXJyb3IpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlZmVyZWRGZXRjaCgpLmNhdGNoKCgpID0+IHt9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzIGEgc2V0IGFjdGlvbi5cbiAgICpcbiAgICogV2lsbCByZXNvbHZlIHRoZSBwcm9taXNlIGFzc29jaWF0ZWQgd2l0aCBzZXQga2V5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVNldChhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uKSB7XG4gICAgLy8gdGhpcyBjYW4gc3RpbGwgdHVybiBvdXQgdG8gYmUgdW50cnVlIHNpbmNlIHRoaXMgaXMgYXN5bmNcbiAgICBpZiAoYWN0aW9uLmtleSBpbiB0aGlzLmZldGNoZWQpIHtcbiAgICAgIGxldCBwcm9taXNlSGFuZGxlcjogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xuICAgICAgaWYgKGFjdGlvbi5lcnJvcikge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVqZWN0b3JzW2FjdGlvbi5rZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvbWlzZUhhbmRsZXIgPSB0aGlzLnJlc29sdmVyc1thY3Rpb24ua2V5XTtcbiAgICAgIH1cbiAgICAgIHByb21pc2VIYW5kbGVyKGFjdGlvbi5yZXNwb25zZSk7XG4gICAgICAvLyBzaW5jZSB3ZSdyZSByZXNvbHZlZCB3ZSBubyBsb25nZXIgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoaXMgcHJvbWlzZVxuICAgICAgdGhpcy5jbGVhcihhY3Rpb24ua2V5KTtcbiAgICB9XG4gIH1cblxuICAvKiogRW5zdXJlcyBvbmx5IG9uZSByZXF1ZXN0IGZvciBhIGdpdmVuIGtleSBpcyBpbiBmbGlnaHQgYXQgYW55IHRpbWVcbiAgICpcbiAgICogVXNlcyBrZXkgdG8gZWl0aGVyIHJldHJpZXZlIGluLWZsaWdodCBwcm9taXNlLCBvciBpZiBub3RcbiAgICogY3JlYXRlIGEgbmV3IHByb21pc2UgYW5kIGNhbGwgZmV0Y2guXG4gICAqXG4gICAqIE5vdGU6IFRoZSBuZXcgcHJvbWlzZSBpcyBub3QgYWN0dWFsbHkgdGllZCB0byBmZXRjaCBhdCBhbGwsXG4gICAqIGJ1dCBpcyByZXNvbHZlZCB3aGVuIHRoZSBleHBlY3RlZCAncmVjaWV2ZScgYWN0aW9uIGlzIHByb2Nlc3NlZC5cbiAgICogVGhpcyBlbnN1cmVzIHByb21pc2VzIGFyZSByZXNvbHZlZCBvbmx5IG9uY2UgdGhlaXIgZGF0YSBpcyBwcm9jZXNzZWRcbiAgICogYnkgdGhlIHJlZHVjZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgdGhyb3R0bGUoXG4gICAga2V5OiBzdHJpbmcsXG4gICAgZmV0Y2g6ICgpID0+IFByb21pc2U8YW55PixcbiAgICBmZXRjaGVkQXQ6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICAvLyB3ZSdyZSBhbHJlYWR5IGZldGNoaW5nIHNvIHJldXNlIHRoZSBwcm9taXNlXG4gICAgLy8gZmV0Y2hlcyBhZnRlciByZXNldCBkbyBub3QgY291bnRcbiAgICBpZiAoa2V5IGluIHRoaXMuZmV0Y2hlZCAmJiB0aGlzLmZldGNoZWRBdFtrZXldID4gbGFzdFJlc2V0KSB7XG4gICAgICByZXR1cm4gdGhpcy5mZXRjaGVkW2tleV07XG4gICAgfVxuXG4gICAgdGhpcy5mZXRjaGVkW2tleV0gPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnJlc29sdmVyc1trZXldID0gcmVzb2x2ZTtcbiAgICAgIHRoaXMucmVqZWN0b3JzW2tleV0gPSByZWplY3Q7XG4gICAgfSk7XG4gICAgdGhpcy5mZXRjaGVkQXRba2V5XSA9IGZldGNoZWRBdDtcblxuICAgIHRoaXMuaWRsZUNhbGxiYWNrKFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBzaW5jZSBvdXIgcmVhbCBwcm9taXNlIGlzIHJlc29sdmVkIHZpYSB0aGUgd3JhcFJlZHVjZXIoKSxcbiAgICAgICAgLy8gd2Ugc2hvdWxkIGp1c3Qgc3RvcCBhbGwgZXJyb3JzIGhlcmUuXG4gICAgICAgIC8vIFRPRE86IGRlY291cGxlIHRoaXMgZnJvbSB1c2VGZXRjaGVyKCkgKHRoYXQncyB3aGF0J3MgZGlzcGF0Y2hpbmcgdGhlIGVycm9yIHRoZSByZXNvbHZlcyBpbiBoZXJlKVxuICAgICAgICBmZXRjaCgpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgICAgfSxcbiAgICAgIHsgdGltZW91dDogNTAwIH0sXG4gICAgKTtcblxuICAgIHJldHVybiB0aGlzLmZldGNoZWRba2V5XTtcbiAgfVxuXG4gIC8qKiBDYWxscyB0aGUgY2FsbGJhY2sgd2hlbiBjbGllbnQgaXMgbm90ICdidXN5JyB3aXRoIGhpZ2ggcHJpb3JpdHkgaW50ZXJhY3Rpb24gdGFza3NcbiAgICpcbiAgICogT3ZlcnJpZGUgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLFxuICAgIG9wdGlvbnM/OiBJZGxlUmVxdWVzdE9wdGlvbnMsXG4gICkge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsWUFBWSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssUUFBUSxtQkFBbUI7QUFDOUQsU0FBU0MsaUJBQWlCLFFBQVEsZ0NBQWdDO0FBQ2xFLE9BQU9DLFVBQVUsTUFBTSw2QkFBNkI7QUFVcEQsT0FBTyxNQUFNQyxVQUFVLFNBQVNDLEtBQUssQ0FBQztFQUdwQ0MsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osS0FBSyxDQUFDLHNCQUFzQixDQUFDO0lBQUMsS0FIaENDLElBQUksR0FBRyxZQUFZO0VBSW5CO0FB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
|
|
257
|
+
function newFetchMeta(fetchedAt) {
|
|
258
|
+
const fetchMeta = {
|
|
259
|
+
fetchedAt
|
|
260
|
+
};
|
|
261
|
+
fetchMeta.promise = new Promise((resolve, reject) => {
|
|
262
|
+
fetchMeta.resolve = resolve;
|
|
263
|
+
fetchMeta.reject = reject;
|
|
264
|
+
});
|
|
265
|
+
return fetchMeta;
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0UiLCJGRVRDSCIsIlJFU0VUIiwiY3JlYXRlU2V0UmVzcG9uc2UiLCJDb250cm9sbGVyIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGluZyIsIk1hcCIsImNvbnRyb2xsZXIiLCJtaWRkbGV3YXJlIiwibmV4dCIsImFjdGlvbiIsInR5cGUiLCJoYW5kbGVGZXRjaCIsImVuZHBvaW50IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwidW5kZWZpbmVkIiwic2lkZUVmZmVjdCIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImhhcyIsImtleSIsIl9jb250cm9sbGVyJGdldFN0YXRlJCIsImVycm9yIiwiZ2V0U3RhdGUiLCJtZXRhIiwiaGFuZGxlU2V0IiwiYXJncyIsInJlc3BvbnNlIiwiZmV0Y2hlZEF0IiwiZmV0Y2hlcyIsIkFycmF5IiwiZnJvbSIsInZhbHVlcyIsImNsZWFyQWxsIiwicmVqZWN0IiwiaW5pdCIsImNsZWFudXBEYXRlIiwiY2xlYW51cCIsIkRhdGUiLCJub3ciLCJza2lwTG9nZ2luZyIsImFsbFNldHRsZWQiLCJzaXplIiwibWFwIiwicHJvbWlzZSIsImsiLCJrZXlzIiwiY2xlYXIiLCJnZXQiLCJjYXRjaCIsImRlbGV0ZSIsImdldExhc3RSZXNldCIsImxhc3RSZXNldCIsInRocm90dGxlIiwiZGVmZXJlZEZldGNoIiwicmVzb2x2ZVByb21pc2UiLCJkYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNOYU4iLCJjb25zb2xlIiwiZmV0Y2giLCJmZXRjaE1ldGEiLCJuZXdGZXRjaE1ldGEiLCJzZXQiLCJpZGxlQ2FsbGJhY2siLCJ0aW1lb3V0IiwiY2FsbGJhY2siLCJvcHRpb25zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvTmV0d29ya01hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0VUX1JFU1BPTlNFLCBGRVRDSCwgUkVTRVQgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVTZXRSZXNwb25zZSB9IGZyb20gJy4uL2NvbnRyb2xsZXIvYWN0aW9ucy9pbmRleC5qcyc7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBGZXRjaEFjdGlvbixcbiAgTWFuYWdlcixcbiAgQWN0aW9uVHlwZXMsXG4gIE1pZGRsZXdhcmUsXG4gIFNldFJlc3BvbnNlQWN0aW9uLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBSZXNldEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBuYW1lID0gJ1Jlc2V0RXJyb3InO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdBYm9ydGVkIGR1ZSB0byBSRVNFVCcpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hpbmdNZXRhIHtcbiAgcHJvbWlzZTogUHJvbWlzZTxhbnk+O1xuICByZXNvbHZlOiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gIHJlamVjdDogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xuICBmZXRjaGVkQXQ6IG51bWJlcjtcbn1cblxuLyoqIEhhbmRsZXMgYWxsIGFzeW5jIG5ldHdvcmsgZGlzcGF0Y2hlc1xuICpcbiAqIERlZHVwZXMgY29uY3VycmVudCByZXF1ZXN0cyBieSBrZWVwaW5nIHRyYWNrIG9mIGFsbCBmZXRjaGVzIGluIGZsaWdodFxuICogYW5kIHJldHVybmluZyBleGlzdGluZyBwcm9taXNlcyBmb3IgcmVxdWVzdHMgYWxyZWFkeSBpbiBmbGlnaHQuXG4gKlxuICogSW50ZXJmYWNlcyB3aXRoIHN0b3JlIHZpYSBhIHJlZHV4LWNvbXBhdGlibGUgbWlkZGxld2FyZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9OZXR3b3JrTWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXR3b3JrTWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBwcm90ZWN0ZWQgZmV0Y2hpbmc6IE1hcDxzdHJpbmcsIEZldGNoaW5nTWV0YT4gPSBuZXcgTWFwKCk7XG4gIGRlY2xhcmUgcmVhZG9ubHkgZGF0YUV4cGlyeUxlbmd0aDogbnVtYmVyO1xuICBkZWNsYXJlIHJlYWRvbmx5IGVycm9yRXhwaXJ5TGVuZ3RoOiBudW1iZXI7XG4gIHByb3RlY3RlZCBjb250cm9sbGVyOiBDb250cm9sbGVyID0gbmV3IENvbnRyb2xsZXIoKTtcbiAgZGVjbGFyZSBjbGVhbnVwRGF0ZT86IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcih7IGRhdGFFeHBpcnlMZW5ndGggPSA2MDAwMCwgZXJyb3JFeHBpcnlMZW5ndGggPSAxMDAwIH0gPSB7fSkge1xuICAgIHRoaXMuZGF0YUV4cGlyeUxlbmd0aCA9IGRhdGFFeHBpcnlMZW5ndGg7XG4gICAgdGhpcy5lcnJvckV4cGlyeUxlbmd0aCA9IGVycm9yRXhwaXJ5TGVuZ3RoO1xuICB9XG5cbiAgbWlkZGxld2FyZTogTWlkZGxld2FyZSA9IGNvbnRyb2xsZXIgPT4ge1xuICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgcmV0dXJuIG5leHQgPT4gYWN0aW9uID0+IHtcbiAgICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSBGRVRDSDpcbiAgICAgICAgICB0aGlzLmhhbmRsZUZldGNoKGFjdGlvbik7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgb25seSBjYXNlIHRoYXQgY2F1c2VzIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBpbnRlcmNlcHQgb3RoZXIgZmV0Y2hlcyBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgcmVkdWNlcnMgZHVyaW5nXG4gICAgICAgICAgLy8gcmVuZGVyIC0gc28gd2UgbmVlZCB0byBzdG9wICdyZWFkb25seScgZmV0Y2hlcyB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGluIHJlbmRlclxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3RcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgY2FzZSBTRVRfUkVTUE9OU0U6XG4gICAgICAgICAgLy8gb25seSBzZXQgYWZ0ZXIgbmV3IHN0YXRlIGlzIGNvbXB1dGVkXG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZldGNoaW5nLmhhcyhhY3Rpb24ua2V5KSkge1xuICAgICAgICAgICAgICAvLyBOb3RlOiBtZXRhICptdXN0KiBiZSBzZXQgYnkgcmVkdWNlciBzbyB0aGlzIHNob3VsZCBiZSBzYWZlXG4gICAgICAgICAgICAgIGNvbnN0IGVycm9yID0gY29udHJvbGxlci5nZXRTdGF0ZSgpLm1ldGFbYWN0aW9uLmtleV0/LmVycm9yO1xuICAgICAgICAgICAgICAvLyBwcm9jZXNzaW5nIGVycm9ycyByZXN1bHQgaW4gc3RhdGUgbWV0YSBoYXZpbmcgZXJyb3IsIHNvIHdlIHNob3VsZCByZWplY3QgdGhlIHByb21pc2VcbiAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTZXQoXG4gICAgICAgICAgICAgICAgICBjcmVhdGVTZXRSZXNwb25zZShhY3Rpb24uZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgYXJnczogYWN0aW9uLmFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiBlcnJvcixcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2hlZEF0OiBhY3Rpb24ubWV0YS5mZXRjaGVkQXQsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNldChhY3Rpb24pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgUkVTRVQ6IHtcbiAgICAgICAgICAvLyB0YWtlIHNuYXBzaG90IG9mIHJlamVjdG9ycyBhdCB0aGlzIHBvaW50IGluIHRpbWVcbiAgICAgICAgICAvLyB3ZSBtdXN0IHVzZSBBcnJheS5mcm9tIHNpbmNlIGl0ZXJhdGlvbiBkb2VzIG5vdCBmcmVlemUgc3RhdGUgYXQgdGhpcyBwb2ludCBpbiB0aW1lXG4gICAgICAgICAgY29uc3QgZmV0Y2hlcyA9IEFycmF5LmZyb20odGhpcy5mZXRjaGluZy52YWx1ZXMoKSk7XG5cbiAgICAgICAgICB0aGlzLmNsZWFyQWxsKCk7XG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGV4dGVybmFsIGxpc3RlbmVycyB0byB0aGUgcHJvbWlzZVxuICAgICAgICAgICAgLy8gdGhpcyBtdXN0IGhhcHBlbiBhZnRlciBjb21taXQgc28gb3VyIG93biByZWplY3RvciBrbm93cyBub3QgdG8gZGlzcGF0Y2ggYW4gZXJyb3IgYmFzZWQgb24gdGhpc1xuICAgICAgICAgICAgZm9yIChjb25zdCB7IHJlamVjdCB9IG9mIGZldGNoZXMpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KG5ldyBSZXNldEVycm9yKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4gIC8qKiBPbiBtb3VudCAqL1xuICBpbml0KCkge1xuICAgIGRlbGV0ZSB0aGlzLmNsZWFudXBEYXRlO1xuICB9XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHByb21pc2VzIGFyZSBjb21wbGV0ZWQgYnkgcmVqZWN0aW5nIHJlbWFpbmluZy4gKi9cbiAgY2xlYW51cCgpIHtcbiAgICAvLyBlbnN1cmUgbm8gZGlzcGF0Y2hlcyBhZnRlciB1bm1vdW50XG4gICAgLy8gdGhpcyBtdXN0IGJlIHJldmVyc2libGUgKGRvbmUgaW4gaW5pdCkgc28gdXNlRWZmZWN0KCkgcmVtYWlucyBzeW1tZXRyaWNcbiAgICB0aGlzLmNsZWFudXBEYXRlID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKiBVc2VkIGJ5IERldnRvb2xzTWFuYWdlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBsb2cgYW4gYWN0aW9uICovXG4gIHNraXBMb2dnaW5nKGFjdGlvbjogQWN0aW9uVHlwZXMpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gRkVUQ0ggJiYgdGhpcy5mZXRjaGluZy5oYXMoYWN0aW9uLmtleSk7XG4gIH1cblxuICBhbGxTZXR0bGVkKCkge1xuICAgIGlmICh0aGlzLmZldGNoaW5nLnNpemUpXG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGxTZXR0bGVkKFxuICAgICAgICB0aGlzLmZldGNoaW5nLnZhbHVlcygpLm1hcCgoeyBwcm9taXNlIH0pID0+IHByb21pc2UpLFxuICAgICAgKTtcbiAgfVxuXG4gIC8qKiBDbGVhciBhbGwgcHJvbWlzZSBzdGF0ZSAqL1xuICBwcm90ZWN0ZWQgY2xlYXJBbGwoKSB7XG4gICAgZm9yIChjb25zdCBrIG9mIHRoaXMuZmV0Y2hpbmcua2V5cygpKSB7XG4gICAgICB0aGlzLmNsZWFyKGspO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDbGVhciBwcm9taXNlIHN0YXRlIGZvciBhIGdpdmVuIGtleSAqL1xuICBwcm90ZWN0ZWQgY2xlYXIoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5mZXRjaGluZy5oYXMoa2V5KSkge1xuICAgICAgKHRoaXMuZmV0Y2hpbmcuZ2V0KGtleSkgYXMgRmV0Y2hpbmdNZXRhKS5wcm9taXNlLmNhdGNoKCgpID0+IHt9KTtcbiAgICAgIHRoaXMuZmV0Y2hpbmcuZGVsZXRlKGtleSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldExhc3RSZXNldCgpIHtcbiAgICBpZiAodGhpcy5jbGVhbnVwRGF0ZSkgcmV0dXJuIHRoaXMuY2xlYW51cERhdGU7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpLmxhc3RSZXNldDtcbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiBtaWRkbGV3YXJlIGludGVyY2VwdHMgJ3JkYy9mZXRjaCcgYWN0aW9uLlxuICAgKlxuICAgKiBXaWxsIHRoZW4gc3RhcnQgYSBwcm9taXNlIGZvciBhIGtleSBhbmQgcG90ZW50aWFsbHkgc3RhcnQgdGhlIG5ldHdvcmtcbiAgICogZmV0Y2guXG4gICAqXG4gICAqIFVzZXMgdGhyb3R0bGUgZW5kcG9pbnRzIHdpdGhvdXQgc2lkZUVmZmVjdHMuIFRoaXMgaXMgdmFsdWFibGVcbiAgICogZm9yIGVuc3VyZXMgbXV0YXRpb24gcmVxdWVzdHMgYWx3YXlzIGdvIHRocm91Z2guXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlRmV0Y2goYWN0aW9uOiBGZXRjaEFjdGlvbikge1xuICAgIGNvbnN0IHsgcmVzb2x2ZSwgcmVqZWN0LCBmZXRjaGVkQXQgfSA9IGFjdGlvbi5tZXRhO1xuICAgIGNvbnN0IHRocm90dGxlID0gIWFjdGlvbi5lbmRwb2ludC5zaWRlRWZmZWN0O1xuXG4gICAgY29uc3QgZGVmZXJlZEZldGNoID0gKCkgPT4ge1xuICAgICAgbGV0IHByb21pc2UgPSBhY3Rpb24uZW5kcG9pbnQoLi4uYWN0aW9uLmFyZ3MpO1xuICAgICAgY29uc3QgcmVzb2x2ZVByb21pc2UgPSAoXG4gICAgICAgIHByb21pc2U6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyIHwgb2JqZWN0IHwgbnVsbD4sXG4gICAgICApID0+XG4gICAgICAgIHByb21pc2VcbiAgICAgICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgfSk7XG4gICAgICAvLyBzY2hlZHVsZSBub24tdGhyb3R0bGVkIHJlc29sdXRpb25zIGluIGEgbWljcm90YXNrIGJlZm9yZSBzZXRcbiAgICAgIC8vIHRoaXMgZW5hYmxlcyB1c2VycyBhd2FpdGluZyB0aGVpciBmZXRjaCB0byB0cmlnZ2VyIGFueSByZWFjdCB1cGRhdGVzIG5lZWRlZCB0byBkZWFsXG4gICAgICAvLyB3aXRoIHVwY29taW5nIGNoYW5nZXMgYmVjYXVzZSBvZiB0aGUgZmV0Y2ggKGZvciBpbnN0YW5jZSBhdm9pZGluZyBzdXNwZW5zZSBpZiBzb21ldGhpbmcgaXMgZGVsZXRlZClcbiAgICAgIGlmICghdGhyb3R0bGUpIHtcbiAgICAgICAgcHJvbWlzZSA9IHJlc29sdmVQcm9taXNlKHByb21pc2UpO1xuICAgICAgfVxuICAgICAgcHJvbWlzZSA9IHByb21pc2VcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgIGxldCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuXG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBpc05hTihsYXN0UmVzZXQpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAnc3RhdGUubGFzdFJlc2V0IGlzIE5hTi4gT25seSBwb3NpdGl2ZSB0aW1lc3RhbXBzIGFyZSB2YWxpZC4nLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxhc3RSZXNldCA9IDA7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gZG9uJ3QgdXBkYXRlIHN0YXRlIHdpdGggcHJvbWlzZXMgc3RhcnRlZCBiZWZvcmUgbGFzdCBjbGVhclxuICAgICAgICAgIGlmIChmZXRjaGVkQXQgPj0gbGFzdFJlc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIucmVzb2x2ZShhY3Rpb24uZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgYXJnczogYWN0aW9uLmFyZ3MsXG4gICAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgICBmZXRjaGVkQXQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnN0IGxhc3RSZXNldCA9IHRoaXMuZ2V0TGFzdFJlc2V0KCk7XG4gICAgICAgICAgLy8gZG9uJ3QgdXBkYXRlIHN0YXRlIHdpdGggcHJvbWlzZXMgc3RhcnRlZCBiZWZvcmUgbGFzdCBjbGVhclxuICAgICAgICAgIGlmIChmZXRjaGVkQXQgPj0gbGFzdFJlc2V0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIucmVzb2x2ZShhY3Rpb24uZW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgYXJnczogYWN0aW9uLmFyZ3MsXG4gICAgICAgICAgICAgIHJlc3BvbnNlOiBlcnJvcixcbiAgICAgICAgICAgICAgZmV0Y2hlZEF0LFxuICAgICAgICAgICAgICBlcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfSk7XG4gICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9O1xuXG4gICAgaWYgKHRocm90dGxlKSB7XG4gICAgICByZXR1cm4gdGhpcy50aHJvdHRsZShhY3Rpb24ua2V5LCBkZWZlcmVkRmV0Y2gsIGZldGNoZWRBdClcbiAgICAgICAgLnRoZW4oZGF0YSA9PiByZXNvbHZlKGRhdGEpKVxuICAgICAgICAuY2F0Y2goZXJyb3IgPT4gcmVqZWN0KGVycm9yKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWZlcmVkRmV0Y2goKS5jYXRjaCgoKSA9PiB7fSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyBhIHNldCBhY3Rpb24uXG4gICAqXG4gICAqIFdpbGwgcmVzb2x2ZSB0aGUgcHJvbWlzZSBhc3NvY2lhdGVkIHdpdGggc2V0IGtleS5cbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZXQoYWN0aW9uOiBTZXRSZXNwb25zZUFjdGlvbikge1xuICAgIC8vIHRoaXMgY2FuIHN0aWxsIHR1cm4gb3V0IHRvIGJlIHVudHJ1ZSBzaW5jZSB0aGlzIGlzIGFzeW5jXG4gICAgaWYgKHRoaXMuZmV0Y2hpbmcuaGFzKGFjdGlvbi5rZXkpKSB7XG4gICAgICBjb25zdCB7IHJlamVjdCwgcmVzb2x2ZSB9ID0gdGhpcy5mZXRjaGluZy5nZXQoYWN0aW9uLmtleSkgYXMgRmV0Y2hpbmdNZXRhO1xuICAgICAgaWYgKGFjdGlvbi5lcnJvcikge1xuICAgICAgICByZWplY3QoYWN0aW9uLnJlc3BvbnNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoYWN0aW9uLnJlc3BvbnNlKTtcbiAgICAgIH1cblxuICAgICAgLy8gc2luY2Ugd2UncmUgcmVzb2x2ZWQgd2Ugbm8gbG9uZ2VyIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGlzIHByb21pc2VcbiAgICAgIHRoaXMuY2xlYXIoYWN0aW9uLmtleSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEVuc3VyZXMgb25seSBvbmUgcmVxdWVzdCBmb3IgYSBnaXZlbiBrZXkgaXMgaW4gZmxpZ2h0IGF0IGFueSB0aW1lXG4gICAqXG4gICAqIFVzZXMga2V5IHRvIGVpdGhlciByZXRyaWV2ZSBpbi1mbGlnaHQgcHJvbWlzZSwgb3IgaWYgbm90XG4gICAqIGNyZWF0ZSBhIG5ldyBwcm9taXNlIGFuZCBjYWxsIGZldGNoLlxuICAgKlxuICAgKiBOb3RlOiBUaGUgbmV3IHByb21pc2UgaXMgbm90IGFjdHVhbGx5IHRpZWQgdG8gZmV0Y2ggYXQgYWxsLFxuICAgKiBidXQgaXMgcmVzb2x2ZWQgd2hlbiB0aGUgZXhwZWN0ZWQgJ3JlY2lldmUnIGFjdGlvbiBpcyBwcm9jZXNzZWQuXG4gICAqIFRoaXMgZW5zdXJlcyBwcm9taXNlcyBhcmUgcmVzb2x2ZWQgb25seSBvbmNlIHRoZWlyIGRhdGEgaXMgcHJvY2Vzc2VkXG4gICAqIGJ5IHRoZSByZWR1Y2VyLlxuICAgKi9cbiAgcHJvdGVjdGVkIHRocm90dGxlKFxuICAgIGtleTogc3RyaW5nLFxuICAgIGZldGNoOiAoKSA9PiBQcm9taXNlPGFueT4sXG4gICAgZmV0Y2hlZEF0OiBudW1iZXIsXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcbiAgICBsZXQgZmV0Y2hNZXRhID0gdGhpcy5mZXRjaGluZy5nZXQoa2V5KTtcblxuICAgIC8vIHdlJ3JlIGFscmVhZHkgZmV0Y2hpbmcgc28gcmV1c2UgdGhlIHByb21pc2VcbiAgICAvLyBmZXRjaGVzIGFmdGVyIHJlc2V0IGRvIG5vdCBjb3VudFxuICAgIGlmIChmZXRjaE1ldGEgJiYgZmV0Y2hNZXRhLmZldGNoZWRBdCA+IGxhc3RSZXNldCkge1xuICAgICAgcmV0dXJuIGZldGNoTWV0YS5wcm9taXNlO1xuICAgIH1cblxuICAgIGZldGNoTWV0YSA9IG5ld0ZldGNoTWV0YShmZXRjaGVkQXQpO1xuICAgIHRoaXMuZmV0Y2hpbmcuc2V0KGtleSwgZmV0Y2hNZXRhKTtcblxuICAgIHRoaXMuaWRsZUNhbGxiYWNrKFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBzaW5jZSBvdXIgcmVhbCBwcm9taXNlIGlzIHJlc29sdmVkIHZpYSB0aGUgd3JhcFJlZHVjZXIoKSxcbiAgICAgICAgLy8gd2Ugc2hvdWxkIGp1c3Qgc3RvcCBhbGwgZXJyb3JzIGhlcmUuXG4gICAgICAgIC8vIFRPRE86IGRlY291cGxlIHRoaXMgZnJvbSB1c2VGZXRjaGVyKCkgKHRoYXQncyB3aGF0J3MgZGlzcGF0Y2hpbmcgdGhlIGVycm9yIHRoZSByZXNvbHZlcyBpbiBoZXJlKVxuICAgICAgICBmZXRjaCgpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgICAgfSxcbiAgICAgIHsgdGltZW91dDogNTAwIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBmZXRjaE1ldGEucHJvbWlzZTtcbiAgfVxuXG4gIC8qKiBDYWxscyB0aGUgY2FsbGJhY2sgd2hlbiBjbGllbnQgaXMgbm90ICdidXN5JyB3aXRoIGhpZ2ggcHJpb3JpdHkgaW50ZXJhY3Rpb24gdGFza3NcbiAgICpcbiAgICogT3ZlcnJpZGUgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLFxuICAgIG9wdGlvbnM/OiBJZGxlUmVxdWVzdE9wdGlvbnMsXG4gICkge1xuICAgIGNhbGxiYWNrKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbmV3RmV0Y2hNZXRhKGZldGNoZWRBdDogbnVtYmVyKTogRmV0Y2hpbmdNZXRhIHtcbiAgY29uc3QgZmV0Y2hNZXRhID0geyBmZXRjaGVkQXQgfSBhcyBGZXRjaGluZ01ldGE7XG4gIGZldGNoTWV0YS5wcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGZldGNoTWV0YS5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICBmZXRjaE1ldGEucmVqZWN0ID0gcmVqZWN0O1xuICB9KTtcbiAgcmV0dXJuIGZldGNoTWV0YTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsWUFBWSxFQUFFQyxLQUFLLEVBQUVDLEtBQUssUUFBUSxtQkFBbUI7QUFDOUQsU0FBU0MsaUJBQWlCLFFBQVEsZ0NBQWdDO0FBQ2xFLE9BQU9DLFVBQVUsTUFBTSw2QkFBNkI7QUFTcEQsT0FBTyxNQUFNQyxVQUFVLFNBQVNDLEtBQUssQ0FBQztFQUdwQ0MsV0FBV0EsQ0FBQSxFQUFHO0lBQ1osS0FBSyxDQUFDLHNCQUFzQixDQUFDO0lBQUMsS0FIaENDLElBQUksR0FBRyxZQUFZO0VBSW5CO0FBQ0Y7QUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE1BQU1DLGNBQWMsQ0FBb0I7RUFPckRGLFdBQVdBLENBQUM7SUFBRUcsZ0JBQWdCLEdBQUcsS0FBSztJQUFFQyxpQkFBaUIsR0FBRztFQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUFBLEtBTi9EQyxRQUFRLEdBQThCLElBQUlDLEdBQUcsQ0FBQyxDQUFDO0lBQUEsS0FHL0NDLFVBQVUsR0FBZSxJQUFJVixVQUFVLENBQUMsQ0FBQztJQUFBLEtBUW5EVyxVQUFVLEdBQWVELFVBQVUsSUFBSTtNQUNyQyxJQUFJLENBQUNBLFVBQVUsR0FBR0EsVUFBVTtNQUM1QixPQUFPRSxJQUFJLElBQUlDLE1BQU0sSUFBSTtRQUN2QixRQUFRQSxNQUFNLENBQUNDLElBQUk7VUFDakIsS0FBS2pCLEtBQUs7WUFDUixJQUFJLENBQUNrQixXQUFXLENBQUNGLE1BQU0sQ0FBQztZQUN4QjtZQUNBO1lBQ0E7WUFDQSxJQUNFQSxNQUFNLENBQUNHLFFBQVEsQ0FBQ0MscUJBQXFCLEtBQUtDLFNBQVMsSUFDbkRMLE1BQU0sQ0FBQ0csUUFBUSxDQUFDRyxVQUFVLEVBQzFCO2NBQ0EsT0FBT1AsSUFBSSxDQUFDQyxNQUFNLENBQUM7WUFDckI7WUFDQSxPQUFPTyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDO1VBQzFCLEtBQUt6QixZQUFZO1lBQ2Y7WUFDQSxPQUFPZ0IsSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQ1MsSUFBSSxDQUFDLE1BQU07Y0FDN0IsSUFBSSxJQUFJLENBQUNkLFFBQVEsQ0FBQ2UsR0FBRyxDQUFDVixNQUFNLENBQUNXLEdBQUcsQ0FBQyxFQUFFO2dCQUFBLElBQUFDLHFCQUFBO2dCQUNqQztnQkFDQSxNQUFNQyxLQUFLLElBQUFELHFCQUFBLEdBQUdmLFVBQVUsQ0FBQ2lCLFFBQVEsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQ2YsTUFBTSxDQUFDVyxHQUFHLENBQUMscUJBQXRDQyxxQkFBQSxDQUF3Q0MsS0FBSztnQkFDM0Q7Z0JBQ0EsSUFBSUEsS0FBSyxFQUFFO2tCQUNULElBQUksQ0FBQ0csU0FBUyxDQUNaOUIsaUJBQWlCLENBQUNjLE1BQU0sQ0FBQ0csUUFBUSxFQUFFO29CQUNqQ2MsSUFBSSxFQUFFakIsTUFBTSxDQUFDaUIsSUFBSTtvQkFDakJDLFFBQVEsRUFBRUwsS0FBSztvQkFDZk0sU0FBUyxFQUFFbkIsTUFBTSxDQUFDZSxJQUFJLENBQUNJLFNBQVM7b0JBQ2hDTixLQUFLLEVBQUU7a0JBQ1QsQ0FBQyxDQUNILENBQUM7Z0JBQ0gsQ0FBQyxNQUFNO2tCQUNMLElBQUksQ0FBQ0csU0FBUyxDQUFDaEIsTUFBTSxDQUFDO2dCQUN4QjtjQUNGO1lBQ0YsQ0FBQyxDQUFDO1VBQ0osS0FBS2YsS0FBSztZQUFFO2NBQ1Y7Y0FDQTtjQUNBLE1BQU1tQyxPQUFPLEdBQUdDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQzNCLFFBQVEsQ0FBQzRCLE1BQU0sQ0FBQyxDQUFDLENBQUM7Y0FFbEQsSUFBSSxDQUFDQyxRQUFRLENBQUMsQ0FBQztjQUNmLE9BQU96QixJQUFJLENBQUNDLE1BQU0sQ0FBQyxDQUFDUyxJQUFJLENBQUMsTUFBTTtnQkFDN0I7Z0JBQ0E7Z0JBQ0EsS0FBSyxNQUFNO2tCQUFFZ0I7Z0JBQU8sQ0FBQyxJQUFJTCxPQUFPLEVBQUU7a0JBQ2hDSyxNQUFNLENBQUMsSUFBSXJDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCO2NBQ0YsQ0FBQyxDQUFDO1lBQ0o7VUFDQTtZQUNFLE9BQU9XLElBQUksQ0FBQ0MsTUFBTSxDQUFDO1FBQ3ZCO01BQ0YsQ0FBQztJQUNILENBQUM7SUEzREMsSUFBSSxDQUFDUCxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0lBQ3hDLElBQUksQ0FBQ0MsaUJBQWlCLEdBQUdBLGlCQUFpQjtFQUM1QztFQTJEQTtFQUNBZ0MsSUFBSUEsQ0FBQSxFQUFHO0lBQ0wsT0FBTyxJQUFJLENBQUNDLFdBQVc7RUFDekI7O0VBRUE7RUFDQUMsT0FBT0EsQ0FBQSxFQUFHO0lBQ1I7SUFDQTtJQUNBLElBQUksQ0FBQ0QsV0FBVyxHQUFHRSxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDO0VBQy9COztFQUVBO0VBQ0FDLFdBQVdBLENBQUMvQixNQUFtQixFQUFFO0lBQy9CO0lBQ0EsT0FBT0EsTUFBTSxDQUFDQyxJQUFJLEtBQUtqQixLQUFLLElBQUksSUFBSSxDQUFDVyxRQUFRLENBQUNlLEdBQUcsQ0FBQ1YsTUFBTSxDQUFDVyxHQUFHLENBQUM7RUFDL0Q7RUFFQXFCLFVBQVVBLENBQUEsRUFBRztJQUNYLElBQUksSUFBSSxDQUFDckMsUUFBUSxDQUFDc0MsSUFBSSxFQUNwQixPQUFPMUIsT0FBTyxDQUFDeUIsVUFBVSxDQUN2QixJQUFJLENBQUNyQyxRQUFRLENBQUM0QixNQUFNLENBQUMsQ0FBQyxDQUFDVyxHQUFHLENBQUMsQ0FBQztNQUFFQztJQUFRLENBQUMsS0FBS0EsT0FBTyxDQUNyRCxDQUFDO0VBQ0w7O0VBRUE7RUFDVVgsUUFBUUEsQ0FBQSxFQUFHO0lBQ25CLEtBQUssTUFBTVksQ0FBQyxJQUFJLElBQUksQ0FBQ3pDLFFBQVEsQ0FBQzBDLElBQUksQ0FBQyxDQUFDLEVBQUU7TUFDcEMsSUFBSSxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQztJQUNmO0VBQ0Y7O0VBRUE7RUFDVUUsS0FBS0EsQ0FBQzNCLEdBQVcsRUFBRTtJQUMzQixJQUFJLElBQUksQ0FBQ2hCLFFBQVEsQ0FBQ2UsR0FBRyxDQUFDQyxHQUFHLENBQUMsRUFBRTtNQUN6QixJQUFJLENBQUNoQixRQUFRLENBQUM0QyxHQUFHLENBQUM1QixHQUFHLENBQUMsQ0FBa0J3QixPQUFPLENBQUNLLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO01BQ2hFLElBQUksQ0FBQzdDLFFBQVEsQ0FBQzhDLE1BQU0sQ0FBQzlCLEdBQUcsQ0FBQztJQUMzQjtFQUNGO0VBRVUrQixZQUFZQSxDQUFBLEVBQUc7SUFDdkIsSUFBSSxJQUFJLENBQUNmLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQ0EsV0FBVztJQUM3QyxPQUFPLElBQUksQ0FBQzlCLFVBQVUsQ0FBQ2lCLFFBQVEsQ0FBQyxDQUFDLENBQUM2QixTQUFTO0VBQzdDOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDWXpDLFdBQVdBLENBQUNGLE1BQW1CLEVBQUU7SUFDekMsTUFBTTtNQUFFUSxPQUFPO01BQUVpQixNQUFNO01BQUVOO0lBQVUsQ0FBQyxHQUFHbkIsTUFBTSxDQUFDZSxJQUFJO0lBQ2xELE1BQU02QixRQUFRLEdBQUcsQ0FBQzVDLE1BQU0sQ0FBQ0csUUFBUSxDQUFDRyxVQUFVO0lBRTVDLE1BQU11QyxZQUFZLEdBQUdBLENBQUEsS0FBTTtNQUN6QixJQUFJVixPQUFPLEdBQUduQyxNQUFNLENBQUNHLFFBQVEsQ0FBQyxHQUFHSCxNQUFNLENBQUNpQixJQUFJLENBQUM7TUFDN0MsTUFBTTZCLGNBQWMsR0FDbEJYLE9BQWlELElBRWpEQSxPQUFPLENBQ0oxQixJQUFJLENBQUNzQyxJQUFJLElBQUk7UUFDWnZDLE9BQU8sQ0FBQ3VDLElBQUksQ0FBQztRQUNiLE9BQU9BLElBQUk7TUFDYixDQUFDLENBQUMsQ0FDRFAsS0FBSyxDQUFDM0IsS0FBSyxJQUFJO1FBQ2RZLE1BQU0sQ0FBQ1osS0FBSyxDQUFDO1FBQ2IsTUFBTUEsS0FBSztNQUNiLENBQUMsQ0FBQztNQUNOO01BQ0E7TUFDQTtNQUNBLElBQUksQ0FBQytCLFFBQVEsRUFBRTtRQUNiVCxPQUFPLEdBQUdXLGNBQWMsQ0FBQ1gsT0FBTyxDQUFDO01BQ25DO01BQ0FBLE9BQU8sR0FBR0EsT0FBTyxDQUNkMUIsSUFBSSxDQUFDUyxRQUFRLElBQUk7UUFDaEIsSUFBSXlCLFNBQVMsR0FBRyxJQUFJLENBQUNELFlBQVksQ0FBQyxDQUFDOztRQUVuQztRQUNBLElBQUlNLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxJQUFJQyxLQUFLLENBQUNSLFNBQVMsQ0FBQyxFQUFFO1VBQzdEUyxPQUFPLENBQUN2QyxLQUFLLENBQ1gsNkRBQ0YsQ0FBQztVQUNEOEIsU0FBUyxHQUFHLENBQUM7UUFDZjs7UUFFQTtRQUNBLElBQUl4QixTQUFTLElBQUl3QixTQUFTLEVBQUU7VUFDMUIsSUFBSSxDQUFDOUMsVUFBVSxDQUFDVyxPQUFPLENBQUNSLE1BQU0sQ0FBQ0csUUFBUSxFQUFFO1lBQ3ZDYyxJQUFJLEVBQUVqQixNQUFNLENBQUNpQixJQUFJO1lBQ2pCQyxRQUFRO1lBQ1JDO1VBQ0YsQ0FBQyxDQUFDO1FBQ0o7UUFDQSxPQUFPRCxRQUFRO01BQ2pCLENBQUMsQ0FBQyxDQUNEc0IsS0FBSyxDQUFDM0IsS0FBSyxJQUFJO1FBQ2QsTUFBTThCLFNBQVMsR0FBRyxJQUFJLENBQUNELFlBQVksQ0FBQyxDQUFDO1FBQ3JDO1FBQ0EsSUFBSXZCLFNBQVMsSUFBSXdCLFNBQVMsRUFBRTtVQUMxQixJQUFJLENBQUM5QyxVQUFVLENBQUNXLE9BQU8sQ0FBQ1IsTUFBTSxDQUFDRyxRQUFRLEVBQUU7WUFDdkNjLElBQUksRUFBRWpCLE1BQU0sQ0FBQ2lCLElBQUk7WUFDakJDLFFBQVEsRUFBRUwsS0FBSztZQUNmTSxTQUFTO1lBQ1ROLEtBQUssRUFBRTtVQUNULENBQUMsQ0FBQztRQUNKO1FBQ0EsTUFBTUEsS0FBSztNQUNiLENBQUMsQ0FBQztNQUNKLE9BQU9zQixPQUFPO0lBQ2hCLENBQUM7SUFFRCxJQUFJUyxRQUFRLEVBQUU7TUFDWixPQUFPLElBQUksQ0FBQ0EsUUFBUSxDQUFDNUMsTUFBTSxDQUFDVyxHQUFHLEVBQUVrQyxZQUFZLEVBQUUxQixTQUFTLENBQUMsQ0FDdERWLElBQUksQ0FBQ3NDLElBQUksSUFBSXZDLE9BQU8sQ0FBQ3VDLElBQUksQ0FBQyxDQUFDLENBQzNCUCxLQUFLLENBQUMzQixLQUFLLElBQUlZLE1BQU0sQ0FBQ1osS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxNQUFNO01BQ0wsT0FBT2dDLFlBQVksQ0FBQyxDQUFDLENBQUNMLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDO0VBQ0Y7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7RUFDWXhCLFNBQVNBLENBQUNoQixNQUF5QixFQUFFO0lBQzdDO0lBQ0EsSUFBSSxJQUFJLENBQUNMLFFBQVEsQ0FBQ2UsR0FBRyxDQUFDVixNQUFNLENBQUNXLEdBQUcsQ0FBQyxFQUFFO01BQ2pDLE1BQU07UUFBRWMsTUFBTTtRQUFFakI7TUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDYixRQUFRLENBQUM0QyxHQUFHLENBQUN2QyxNQUFNLENBQUNXLEdBQUcsQ0FBaUI7TUFDekUsSUFBSVgsTUFBTSxDQUFDYSxLQUFLLEVBQUU7UUFDaEJZLE1BQU0sQ0FBQ3pCLE1BQU0sQ0FBQ2tCLFFBQVEsQ0FBQztNQUN6QixDQUFDLE1BQU07UUFDTFYsT0FBTyxDQUFDUixNQUFNLENBQUNrQixRQUFRLENBQUM7TUFDMUI7O01BRUE7TUFDQSxJQUFJLENBQUNvQixLQUFLLENBQUN0QyxNQUFNLENBQUNXLEdBQUcsQ0FBQztJQUN4QjtFQUNGOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ1lpQyxRQUFRQSxDQUNoQmpDLEdBQVcsRUFDWDBDLEtBQXlCLEVBQ3pCbEMsU0FBaUIsRUFDSDtJQUNkLE1BQU13QixTQUFTLEdBQUcsSUFBSSxDQUFDRCxZQUFZLENBQUMsQ0FBQztJQUNyQyxJQUFJWSxTQUFTLEdBQUcsSUFBSSxDQUFDM0QsUUFBUSxDQUFDNEMsR0FBRyxDQUFDNUIsR0FBRyxDQUFDOztJQUV0QztJQUNBO0lBQ0EsSUFBSTJDLFNBQVMsSUFBSUEsU0FBUyxDQUFDbkMsU0FBUyxHQUFHd0IsU0FBUyxFQUFFO01BQ2hELE9BQU9XLFNBQVMsQ0FBQ25CLE9BQU87SUFDMUI7SUFFQW1CLFNBQVMsR0FBR0MsWUFBWSxDQUFDcEMsU0FBUyxDQUFDO0lBQ25DLElBQUksQ0FBQ3hCLFFBQVEsQ0FBQzZELEdBQUcsQ0FBQzdDLEdBQUcsRUFBRTJDLFNBQVMsQ0FBQztJQUVqQyxJQUFJLENBQUNHLFlBQVksQ0FDZixNQUFNO01BQ0o7TUFDQTtNQUNBO01BQ0FKLEtBQUssQ0FBQyxDQUFDLENBQUNiLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQztJQUMzQixDQUFDLEVBQ0Q7TUFBRWtCLE9BQU8sRUFBRTtJQUFJLENBQ2pCLENBQUM7SUFFRCxPQUFPSixTQUFTLENBQUNuQixPQUFPO0VBQzFCOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0VBQ1lzQixZQUFZQSxDQUNwQkUsUUFBa0MsRUFDbENDLE9BQTRCLEVBQzVCO0lBQ0FELFFBQVEsQ0FBQyxDQUFDO0VBQ1o7QUFDRjtBQUVBLFNBQVNKLFlBQVlBLENBQUNwQyxTQUFpQixFQUFnQjtFQUNyRCxNQUFNbUMsU0FBUyxHQUFHO0lBQUVuQztFQUFVLENBQWlCO0VBQy9DbUMsU0FBUyxDQUFDbkIsT0FBTyxHQUFHLElBQUk1QixPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFaUIsTUFBTSxLQUFLO0lBQ25ENkIsU0FBUyxDQUFDOUMsT0FBTyxHQUFHQSxPQUFPO0lBQzNCOEMsU0FBUyxDQUFDN0IsTUFBTSxHQUFHQSxNQUFNO0VBQzNCLENBQUMsQ0FBQztFQUNGLE9BQU82QixTQUFTO0FBQ2xCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GCPolicy.d.ts","sourceRoot":"","sources":["../../src/state/GCPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,UAAU,MAAM,6BAA6B,CAAC;AAErD,qBAAa,QAAS,YAAW,WAAW;IAC1C,SAAS,CAAC,aAAa,sBAA6B;IACpD,SAAS,CAAC,WAAW,mCAA0C;IAC/D,SAAS,CAAC,UAAU,cAAqB;IACzC,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,CAAM;IAEvC,UAAkB,UAAU,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAC7D,UAAkB,UAAU,EAAE,UAAU,CAAC;IACzC,UAAkB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;gBAEtD,EAEV,UAA0B,EAC1B,gBAAoB,EACpB,SAAS,GACV,GAAE,SAAc;IAUjB,IAAI,CAAC,UAAU,EAAE,UAAU;IAQ3B,OAAO;IAIP,cAAc,CAAC,EAAE,GAAG,EAAE,KAAU,EAAE,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"GCPolicy.d.ts","sourceRoot":"","sources":["../../src/state/GCPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,UAAU,MAAM,6BAA6B,CAAC;AAErD,qBAAa,QAAS,YAAW,WAAW;IAC1C,SAAS,CAAC,aAAa,sBAA6B;IACpD,SAAS,CAAC,WAAW,mCAA0C;IAC/D,SAAS,CAAC,UAAU,cAAqB;IACzC,SAAS,CAAC,SAAS,EAAE,UAAU,EAAE,CAAM;IAEvC,UAAkB,UAAU,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;IAC7D,UAAkB,UAAU,EAAE,UAAU,CAAC;IACzC,UAAkB,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;gBAEtD,EAEV,UAA0B,EAC1B,gBAAoB,EACpB,SAAS,GACV,GAAE,SAAc;IAUjB,IAAI,CAAC,UAAU,EAAE,UAAU;IAQ3B,OAAO;IAIP,cAAc,CAAC,EAAE,GAAG,EAAE,KAAU,EAAE,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE;IAiD1E,SAAS,CAAC,SAAS,CAAC,EAClB,SAAS,EACT,SAAS,GACV,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM;IASV,SAAS,CAAC,QAAQ;IAiDlB;;;OAGG;IACH,SAAS,CAAC,YAAY,CACpB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAClC,OAAO,CAAC,EAAE,kBAAkB;CAQ/B;AAED,qBAAa,gBAAiB,YAAW,WAAW;IAElD,IAAI;IAEJ,OAAO;IACP,cAAc;CAGf;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,KAAK,MAAM,CAAC;CACd;AACD,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;KAAE,GAAG,MAAM,MAAM,IAAI,CAAC;CAC5E;AACD,MAAM,WAAW,WAAW;IAC1B,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACnC,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
package/lib/state/GCPolicy.js
CHANGED
|
@@ -39,11 +39,15 @@ export class GCPolicy {
|
|
|
39
39
|
if (key) this.endpointCount.set(key, ((_this$endpointCount$g = this.endpointCount.get(key)) != null ? _this$endpointCount$g : 0) + 1);
|
|
40
40
|
paths.forEach(path => {
|
|
41
41
|
var _instanceCount$get;
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
const {
|
|
43
|
+
key,
|
|
44
|
+
pk
|
|
45
|
+
} = path;
|
|
46
|
+
if (!this.entityCount.has(key)) {
|
|
47
|
+
this.entityCount.set(key, new Map());
|
|
44
48
|
}
|
|
45
|
-
const instanceCount = this.entityCount.get(
|
|
46
|
-
instanceCount.set(
|
|
49
|
+
const instanceCount = this.entityCount.get(key);
|
|
50
|
+
instanceCount.set(pk, ((_instanceCount$get = instanceCount.get(pk)) != null ? _instanceCount$get : 0) + 1);
|
|
47
51
|
});
|
|
48
52
|
|
|
49
53
|
// decrement
|
|
@@ -61,18 +65,22 @@ export class GCPolicy {
|
|
|
61
65
|
}
|
|
62
66
|
}
|
|
63
67
|
paths.forEach(path => {
|
|
64
|
-
|
|
68
|
+
const {
|
|
69
|
+
key,
|
|
70
|
+
pk
|
|
71
|
+
} = path;
|
|
72
|
+
if (!this.entityCount.has(key)) {
|
|
65
73
|
return;
|
|
66
74
|
}
|
|
67
|
-
const instanceCount = this.entityCount.get(
|
|
68
|
-
const entityCount = instanceCount.get(
|
|
75
|
+
const instanceCount = this.entityCount.get(key);
|
|
76
|
+
const entityCount = instanceCount.get(pk);
|
|
69
77
|
if (entityCount !== undefined) {
|
|
70
78
|
if (entityCount <= 1) {
|
|
71
|
-
instanceCount.delete(
|
|
79
|
+
instanceCount.delete(pk);
|
|
72
80
|
// queue for cleanup
|
|
73
81
|
this.entitiesQ.push(path);
|
|
74
82
|
} else {
|
|
75
|
-
instanceCount.set(
|
|
83
|
+
instanceCount.set(pk, entityCount - 1);
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
86
|
});
|
|
@@ -106,8 +114,8 @@ export class GCPolicy {
|
|
|
106
114
|
this.endpointsQ = nextEndpointsQ;
|
|
107
115
|
const nextEntitiesQ = [];
|
|
108
116
|
for (const path of this.entitiesQ) {
|
|
109
|
-
var _this$entityCount$get, _state$
|
|
110
|
-
if (!((_this$entityCount$get = this.entityCount.get(path.key)) != null && _this$entityCount$get.has(path.pk)) && this.expiresAt((_state$
|
|
117
|
+
var _this$entityCount$get, _state$entitiesMeta$p, _state$entitiesMeta$p2;
|
|
118
|
+
if (!((_this$entityCount$get = this.entityCount.get(path.key)) != null && _this$entityCount$get.has(path.pk)) && this.expiresAt((_state$entitiesMeta$p = (_state$entitiesMeta$p2 = state.entitiesMeta[path.key]) == null ? void 0 : _state$entitiesMeta$p2[path.pk]) != null ? _state$entitiesMeta$p : {
|
|
111
119
|
fetchedAt: 0,
|
|
112
120
|
date: 0,
|
|
113
121
|
expiresAt: 0
|
|
@@ -148,4 +156,4 @@ export class ImmortalGCPolicy {
|
|
|
148
156
|
return () => () => undefined;
|
|
149
157
|
}
|
|
150
158
|
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHQyIsIkdDUG9saWN5IiwiY29uc3RydWN0b3IiLCJpbnRlcnZhbE1TIiwiZXhwaXJ5TXVsdGlwbGllciIsImV4cGlyZXNBdCIsImVuZHBvaW50Q291bnQiLCJNYXAiLCJlbnRpdHlDb3VudCIsImVuZHBvaW50c1EiLCJTZXQiLCJlbnRpdGllc1EiLCJiaW5kIiwib3B0aW9ucyIsImluaXQiLCJjb250cm9sbGVyIiwiaW50ZXJ2YWxJZCIsInNldEludGVydmFsIiwiaWRsZUNhbGxiYWNrIiwicnVuU3dlZXAiLCJ0aW1lb3V0IiwiY2xlYW51cCIsImNsZWFySW50ZXJ2YWwiLCJjcmVhdGVDb3VudFJlZiIsImtleSIsInBhdGhzIiwiX3RoaXMkZW5kcG9pbnRDb3VudCRnIiwic2V0IiwiZ2V0IiwiZm9yRWFjaCIsInBhdGgiLCJfaW5zdGFuY2VDb3VudCRnZXQiLCJoYXMiLCJpbnN0YW5jZUNvdW50IiwicGsiLCJjdXJyZW50Q291bnQiLCJ1bmRlZmluZWQiLCJkZWxldGUiLCJhZGQiLCJwdXNoIiwiZmV0Y2hlZEF0IiwiTWF0aCIsIm1heCIsInN0YXRlIiwiZ2V0U3RhdGUiLCJlbnRpdGllcyIsImVuZHBvaW50cyIsIm5vdyIsIkRhdGUiLCJuZXh0RW5kcG9pbnRzUSIsIl9zdGF0ZSRtZXRhJGtleSIsIm1ldGEiLCJkYXRlIiwibmV4dEVudGl0aWVzUSIsIl90aGlzJGVudGl0eUNvdW50JGdldCIsIl9zdGF0ZSRlbnRpdHlNZXRhJHBhdCIsIl9zdGF0ZSRlbnRpdHlNZXRhJHBhdDIiLCJlbnRpdHlNZXRhIiwibGVuZ3RoIiwiZGlzcGF0Y2giLCJ0eXBlIiwiY2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiSW1tb3J0YWxHQ1BvbGljeSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0ZS9HQ1BvbGljeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVBhdGggfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgR0MgfSBmcm9tICcuLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tICcuLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuXG5leHBvcnQgY2xhc3MgR0NQb2xpY3kgaW1wbGVtZW50cyBHQ0ludGVyZmFjZSB7XG4gIHByb3RlY3RlZCBlbmRwb2ludENvdW50ID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgcHJvdGVjdGVkIGVudGl0eUNvdW50ID0gbmV3IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIG51bWJlcj4+KCk7XG4gIHByb3RlY3RlZCBlbmRwb2ludHNRID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByb3RlY3RlZCBlbnRpdGllc1E6IEVudGl0eVBhdGhbXSA9IFtdO1xuXG4gIGRlY2xhcmUgcHJvdGVjdGVkIGludGVydmFsSWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPjtcbiAgZGVjbGFyZSBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlcjtcbiAgZGVjbGFyZSBwcm90ZWN0ZWQgb3B0aW9uczogUmVxdWlyZWQ8T21pdDxHQ09wdGlvbnMsICdleHBpcmVzQXQnPj47XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIC8vIGV2ZXJ5IDUgbWluXG4gICAgaW50ZXJ2YWxNUyA9IDYwICogMTAwMCAqIDUsXG4gICAgZXhwaXJ5TXVsdGlwbGllciA9IDIsXG4gICAgZXhwaXJlc0F0LFxuICB9OiBHQ09wdGlvbnMgPSB7fSkge1xuICAgIGlmIChleHBpcmVzQXQpIHtcbiAgICAgIHRoaXMuZXhwaXJlc0F0ID0gZXhwaXJlc0F0LmJpbmQodGhpcyk7XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIGludGVydmFsTVMsXG4gICAgICBleHBpcnlNdWx0aXBsaWVyLFxuICAgIH07XG4gIH1cblxuICBpbml0KGNvbnRyb2xsZXI6IENvbnRyb2xsZXIpIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuXG4gICAgdGhpcy5pbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5pZGxlQ2FsbGJhY2soKCkgPT4gdGhpcy5ydW5Td2VlcCgpLCB7IHRpbWVvdXQ6IDEwMDAgfSk7XG4gICAgfSwgdGhpcy5vcHRpb25zLmludGVydmFsTVMpO1xuICB9XG5cbiAgY2xlYW51cCgpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XG4gIH1cblxuICBjcmVhdGVDb3VudFJlZih7IGtleSwgcGF0aHMgPSBbXSB9OiB7IGtleT86IHN0cmluZzsgcGF0aHM/OiBFbnRpdHlQYXRoW10gfSkge1xuICAgIC8vIGluY3JlbWVudFxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoa2V5KVxuICAgICAgICB0aGlzLmVuZHBvaW50Q291bnQuc2V0KGtleSwgKHRoaXMuZW5kcG9pbnRDb3VudC5nZXQoa2V5KSA/PyAwKSArIDEpO1xuICAgICAgcGF0aHMuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmVudGl0eUNvdW50LmhhcyhwYXRoLmtleSkpIHtcbiAgICAgICAgICB0aGlzLmVudGl0eUNvdW50LnNldChwYXRoLmtleSwgbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5zdGFuY2VDb3VudCA9IHRoaXMuZW50aXR5Q291bnQuZ2V0KHBhdGgua2V5KSE7XG4gICAgICAgIGluc3RhbmNlQ291bnQuc2V0KHBhdGgucGssIChpbnN0YW5jZUNvdW50LmdldChwYXRoLnBrKSA/PyAwKSArIDEpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGRlY3JlbWVudFxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb3VudCA9IHRoaXMuZW5kcG9pbnRDb3VudC5nZXQoa2V5KSE7XG4gICAgICAgICAgaWYgKGN1cnJlbnRDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudENvdW50IDw9IDEpIHtcbiAgICAgICAgICAgICAgdGhpcy5lbmRwb2ludENvdW50LmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAvLyBxdWV1ZSBmb3IgY2xlYW51cFxuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50c1EuYWRkKGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50Q291bnQuc2V0KGtleSwgY3VycmVudENvdW50IC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhdGhzLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLmVudGl0eUNvdW50LmhhcyhwYXRoLmtleSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgaW5zdGFuY2VDb3VudCA9IHRoaXMuZW50aXR5Q291bnQuZ2V0KHBhdGgua2V5KSE7XG4gICAgICAgICAgY29uc3QgZW50aXR5Q291bnQgPSBpbnN0YW5jZUNvdW50LmdldChwYXRoLnBrKSE7XG4gICAgICAgICAgaWYgKGVudGl0eUNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChlbnRpdHlDb3VudCA8PSAxKSB7XG4gICAgICAgICAgICAgIGluc3RhbmNlQ291bnQuZGVsZXRlKHBhdGgucGspO1xuICAgICAgICAgICAgICAvLyBxdWV1ZSBmb3IgY2xlYW51cFxuICAgICAgICAgICAgICB0aGlzLmVudGl0aWVzUS5wdXNoKHBhdGgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaW5zdGFuY2VDb3VudC5zZXQocGF0aC5waywgZW50aXR5Q291bnQgLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGV4cGlyZXNBdCh7XG4gICAgZmV0Y2hlZEF0LFxuICAgIGV4cGlyZXNBdCxcbiAgfToge1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGRhdGU6IG51bWJlcjtcbiAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgfSk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIE1hdGgubWF4KFxuICAgICAgICAoZXhwaXJlc0F0IC0gZmV0Y2hlZEF0KSAqIHRoaXMub3B0aW9ucy5leHBpcnlNdWx0aXBsaWVyLFxuICAgICAgICAxMjAwMDAsXG4gICAgICApICsgZmV0Y2hlZEF0XG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBydW5Td2VlcCgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IGVudGl0aWVzOiBFbnRpdHlQYXRoW10gPSBbXTtcbiAgICBjb25zdCBlbmRwb2ludHM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGNvbnN0IG5leHRFbmRwb2ludHNRID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5lbmRwb2ludHNRKSB7XG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmVuZHBvaW50Q291bnQuaGFzKGtleSkgJiZcbiAgICAgICAgdGhpcy5leHBpcmVzQXQoXG4gICAgICAgICAgc3RhdGUubWV0YVtrZXldID8/IHtcbiAgICAgICAgICAgIGZldGNoZWRBdDogMCxcbiAgICAgICAgICAgIGRhdGU6IDAsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSA8IG5vd1xuICAgICAgKSB7XG4gICAgICAgIGVuZHBvaW50cy5wdXNoKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0RW5kcG9pbnRzUS5hZGQoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbmRwb2ludHNRID0gbmV4dEVuZHBvaW50c1E7XG5cbiAgICBjb25zdCBuZXh0RW50aXRpZXNROiBFbnRpdHlQYXRoW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgdGhpcy5lbnRpdGllc1EpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuZW50aXR5Q291bnQuZ2V0KHBhdGgua2V5KT8uaGFzKHBhdGgucGspICYmXG4gICAgICAgIHRoaXMuZXhwaXJlc0F0KFxuICAgICAgICAgIHN0YXRlLmVudGl0eU1ldGFbcGF0aC5rZXldPy5bcGF0aC5wa10gPz8ge1xuICAgICAgICAgICAgZmV0Y2hlZEF0OiAwLFxuICAgICAgICAgICAgZGF0ZTogMCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogMCxcbiAgICAgICAgICB9LFxuICAgICAgICApIDwgbm93XG4gICAgICApIHtcbiAgICAgICAgZW50aXRpZXMucHVzaChwYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRFbnRpdGllc1EucHVzaChwYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbnRpdGllc1EgPSBuZXh0RW50aXRpZXNRO1xuXG4gICAgaWYgKGVudGl0aWVzLmxlbmd0aCB8fCBlbmRwb2ludHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNvbnRyb2xsZXIuZGlzcGF0Y2goeyB0eXBlOiBHQywgZW50aXRpZXMsIGVuZHBvaW50cyB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbHMgdGhlIGNhbGxiYWNrIHdoZW4gY2xpZW50IGlzIG5vdCAnYnVzeScgd2l0aCBoaWdoIHByaW9yaXR5IGludGVyYWN0aW9uIHRhc2tzXG4gICAqXG4gICAqIE92ZXJyaWRlIGZvciBwbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCBpZGxlQ2FsbGJhY2soXG4gICAgY2FsbGJhY2s6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCxcbiAgICBvcHRpb25zPzogSWRsZVJlcXVlc3RPcHRpb25zLFxuICApIHtcbiAgICBpZiAodHlwZW9mIHJlcXVlc3RJZGxlQ2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soY2FsbGJhY2ssIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjaygpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW1tb3J0YWxHQ1BvbGljeSBpbXBsZW1lbnRzIEdDSW50ZXJmYWNlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBpbml0KCkge31cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBjbGVhbnVwKCkge31cbiAgY3JlYXRlQ291bnRSZWYoKSB7XG4gICAgcmV0dXJuICgpID0+ICgpID0+IHVuZGVmaW5lZDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdDT3B0aW9ucyB7XG4gIGludGVydmFsTVM/OiBudW1iZXI7XG4gIGV4cGlyeU11bHRpcGxpZXI/OiBudW1iZXI7XG4gIGV4cGlyZXNBdD86IChtZXRhOiB7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgZGF0ZTogbnVtYmVyO1xuICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICB9KSA9PiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvdW50UmVmIHtcbiAgKHsga2V5LCBwYXRocyB9OiB7IGtleT86IHN0cmluZzsgcGF0aHM/OiBFbnRpdHlQYXRoW10gfSk6ICgpID0+ICgpID0+IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIEdDSW50ZXJmYWNlIHtcbiAgY3JlYXRlQ291bnRSZWY6IENyZWF0ZUNvdW50UmVmO1xuICBpbml0KGNvbnRyb2xsZXI6IENvbnRyb2xsZXIpOiB2b2lkO1xuICBjbGVhbnVwKCk6IHZvaWQ7XG59XG4iXSwibWFw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
|
|
159
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHQyIsIkdDUG9saWN5IiwiY29uc3RydWN0b3IiLCJpbnRlcnZhbE1TIiwiZXhwaXJ5TXVsdGlwbGllciIsImV4cGlyZXNBdCIsImVuZHBvaW50Q291bnQiLCJNYXAiLCJlbnRpdHlDb3VudCIsImVuZHBvaW50c1EiLCJTZXQiLCJlbnRpdGllc1EiLCJiaW5kIiwib3B0aW9ucyIsImluaXQiLCJjb250cm9sbGVyIiwiaW50ZXJ2YWxJZCIsInNldEludGVydmFsIiwiaWRsZUNhbGxiYWNrIiwicnVuU3dlZXAiLCJ0aW1lb3V0IiwiY2xlYW51cCIsImNsZWFySW50ZXJ2YWwiLCJjcmVhdGVDb3VudFJlZiIsImtleSIsInBhdGhzIiwiX3RoaXMkZW5kcG9pbnRDb3VudCRnIiwic2V0IiwiZ2V0IiwiZm9yRWFjaCIsInBhdGgiLCJfaW5zdGFuY2VDb3VudCRnZXQiLCJwayIsImhhcyIsImluc3RhbmNlQ291bnQiLCJjdXJyZW50Q291bnQiLCJ1bmRlZmluZWQiLCJkZWxldGUiLCJhZGQiLCJwdXNoIiwiZmV0Y2hlZEF0IiwiTWF0aCIsIm1heCIsInN0YXRlIiwiZ2V0U3RhdGUiLCJlbnRpdGllcyIsImVuZHBvaW50cyIsIm5vdyIsIkRhdGUiLCJuZXh0RW5kcG9pbnRzUSIsIl9zdGF0ZSRtZXRhJGtleSIsIm1ldGEiLCJkYXRlIiwibmV4dEVudGl0aWVzUSIsIl90aGlzJGVudGl0eUNvdW50JGdldCIsIl9zdGF0ZSRlbnRpdGllc01ldGEkcCIsIl9zdGF0ZSRlbnRpdGllc01ldGEkcDIiLCJlbnRpdGllc01ldGEiLCJsZW5ndGgiLCJkaXNwYXRjaCIsInR5cGUiLCJjYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJJbW1vcnRhbEdDUG9saWN5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlL0dDUG9saWN5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5UGF0aCB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBHQyB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBHQ1BvbGljeSBpbXBsZW1lbnRzIEdDSW50ZXJmYWNlIHtcbiAgcHJvdGVjdGVkIGVuZHBvaW50Q291bnQgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBwcm90ZWN0ZWQgZW50aXR5Q291bnQgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgbnVtYmVyPj4oKTtcbiAgcHJvdGVjdGVkIGVuZHBvaW50c1EgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcHJvdGVjdGVkIGVudGl0aWVzUTogRW50aXR5UGF0aFtdID0gW107XG5cbiAgZGVjbGFyZSBwcm90ZWN0ZWQgaW50ZXJ2YWxJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xuICBkZWNsYXJlIHByb3RlY3RlZCBjb250cm9sbGVyOiBDb250cm9sbGVyO1xuICBkZWNsYXJlIHByb3RlY3RlZCBvcHRpb25zOiBSZXF1aXJlZDxPbWl0PEdDT3B0aW9ucywgJ2V4cGlyZXNBdCc+PjtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgLy8gZXZlcnkgNSBtaW5cbiAgICBpbnRlcnZhbE1TID0gNjAgKiAxMDAwICogNSxcbiAgICBleHBpcnlNdWx0aXBsaWVyID0gMixcbiAgICBleHBpcmVzQXQsXG4gIH06IEdDT3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKGV4cGlyZXNBdCkge1xuICAgICAgdGhpcy5leHBpcmVzQXQgPSBleHBpcmVzQXQuYmluZCh0aGlzKTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgaW50ZXJ2YWxNUyxcbiAgICAgIGV4cGlyeU11bHRpcGxpZXIsXG4gICAgfTtcbiAgfVxuXG4gIGluaXQoY29udHJvbGxlcjogQ29udHJvbGxlcikge1xuICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG5cbiAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLmlkbGVDYWxsYmFjaygoKSA9PiB0aGlzLnJ1blN3ZWVwKCksIHsgdGltZW91dDogMTAwMCB9KTtcbiAgICB9LCB0aGlzLm9wdGlvbnMuaW50ZXJ2YWxNUyk7XG4gIH1cblxuICBjbGVhbnVwKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgfVxuXG4gIGNyZWF0ZUNvdW50UmVmKHsga2V5LCBwYXRocyA9IFtdIH06IHsga2V5Pzogc3RyaW5nOyBwYXRocz86IEVudGl0eVBhdGhbXSB9KSB7XG4gICAgLy8gaW5jcmVtZW50XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChrZXkpXG4gICAgICAgIHRoaXMuZW5kcG9pbnRDb3VudC5zZXQoa2V5LCAodGhpcy5lbmRwb2ludENvdW50LmdldChrZXkpID8/IDApICsgMSk7XG4gICAgICBwYXRocy5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgICBjb25zdCB7IGtleSwgcGsgfSA9IHBhdGg7XG4gICAgICAgIGlmICghdGhpcy5lbnRpdHlDb3VudC5oYXMoa2V5KSkge1xuICAgICAgICAgIHRoaXMuZW50aXR5Q291bnQuc2V0KGtleSwgbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5zdGFuY2VDb3VudCA9IHRoaXMuZW50aXR5Q291bnQuZ2V0KGtleSkhO1xuICAgICAgICBpbnN0YW5jZUNvdW50LnNldChwaywgKGluc3RhbmNlQ291bnQuZ2V0KHBrKSA/PyAwKSArIDEpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGRlY3JlbWVudFxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb3VudCA9IHRoaXMuZW5kcG9pbnRDb3VudC5nZXQoa2V5KSE7XG4gICAgICAgICAgaWYgKGN1cnJlbnRDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudENvdW50IDw9IDEpIHtcbiAgICAgICAgICAgICAgdGhpcy5lbmRwb2ludENvdW50LmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAvLyBxdWV1ZSBmb3IgY2xlYW51cFxuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50c1EuYWRkKGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50Q291bnQuc2V0KGtleSwgY3VycmVudENvdW50IC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhdGhzLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICAgICAgY29uc3QgeyBrZXksIHBrIH0gPSBwYXRoO1xuICAgICAgICAgIGlmICghdGhpcy5lbnRpdHlDb3VudC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpbnN0YW5jZUNvdW50ID0gdGhpcy5lbnRpdHlDb3VudC5nZXQoa2V5KSE7XG4gICAgICAgICAgY29uc3QgZW50aXR5Q291bnQgPSBpbnN0YW5jZUNvdW50LmdldChwaykhO1xuICAgICAgICAgIGlmIChlbnRpdHlDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoZW50aXR5Q291bnQgPD0gMSkge1xuICAgICAgICAgICAgICBpbnN0YW5jZUNvdW50LmRlbGV0ZShwayk7XG4gICAgICAgICAgICAgIC8vIHF1ZXVlIGZvciBjbGVhbnVwXG4gICAgICAgICAgICAgIHRoaXMuZW50aXRpZXNRLnB1c2gocGF0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpbnN0YW5jZUNvdW50LnNldChwaywgZW50aXR5Q291bnQgLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGV4cGlyZXNBdCh7XG4gICAgZmV0Y2hlZEF0LFxuICAgIGV4cGlyZXNBdCxcbiAgfToge1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGRhdGU6IG51bWJlcjtcbiAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgfSk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIE1hdGgubWF4KFxuICAgICAgICAoZXhwaXJlc0F0IC0gZmV0Y2hlZEF0KSAqIHRoaXMub3B0aW9ucy5leHBpcnlNdWx0aXBsaWVyLFxuICAgICAgICAxMjAwMDAsXG4gICAgICApICsgZmV0Y2hlZEF0XG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBydW5Td2VlcCgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IGVudGl0aWVzOiBFbnRpdHlQYXRoW10gPSBbXTtcbiAgICBjb25zdCBlbmRwb2ludHM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGNvbnN0IG5leHRFbmRwb2ludHNRID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5lbmRwb2ludHNRKSB7XG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmVuZHBvaW50Q291bnQuaGFzKGtleSkgJiZcbiAgICAgICAgdGhpcy5leHBpcmVzQXQoXG4gICAgICAgICAgc3RhdGUubWV0YVtrZXldID8/IHtcbiAgICAgICAgICAgIGZldGNoZWRBdDogMCxcbiAgICAgICAgICAgIGRhdGU6IDAsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSA8IG5vd1xuICAgICAgKSB7XG4gICAgICAgIGVuZHBvaW50cy5wdXNoKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0RW5kcG9pbnRzUS5hZGQoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbmRwb2ludHNRID0gbmV4dEVuZHBvaW50c1E7XG5cbiAgICBjb25zdCBuZXh0RW50aXRpZXNROiBFbnRpdHlQYXRoW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgdGhpcy5lbnRpdGllc1EpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuZW50aXR5Q291bnQuZ2V0KHBhdGgua2V5KT8uaGFzKHBhdGgucGspICYmXG4gICAgICAgIHRoaXMuZXhwaXJlc0F0KFxuICAgICAgICAgIHN0YXRlLmVudGl0aWVzTWV0YVtwYXRoLmtleV0/LltwYXRoLnBrXSA/PyB7XG4gICAgICAgICAgICBmZXRjaGVkQXQ6IDAsXG4gICAgICAgICAgICBkYXRlOiAwLFxuICAgICAgICAgICAgZXhwaXJlc0F0OiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICkgPCBub3dcbiAgICAgICkge1xuICAgICAgICBlbnRpdGllcy5wdXNoKHBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dEVudGl0aWVzUS5wdXNoKHBhdGgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmVudGl0aWVzUSA9IG5leHRFbnRpdGllc1E7XG5cbiAgICBpZiAoZW50aXRpZXMubGVuZ3RoIHx8IGVuZHBvaW50cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY29udHJvbGxlci5kaXNwYXRjaCh7IHR5cGU6IEdDLCBlbnRpdGllcywgZW5kcG9pbnRzIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxscyB0aGUgY2FsbGJhY2sgd2hlbiBjbGllbnQgaXMgbm90ICdidXN5JyB3aXRoIGhpZ2ggcHJpb3JpdHkgaW50ZXJhY3Rpb24gdGFza3NcbiAgICpcbiAgICogT3ZlcnJpZGUgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLFxuICAgIG9wdGlvbnM/OiBJZGxlUmVxdWVzdE9wdGlvbnMsXG4gICkge1xuICAgIGlmICh0eXBlb2YgcmVxdWVzdElkbGVDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmVxdWVzdElkbGVDYWxsYmFjayhjYWxsYmFjaywgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbW1vcnRhbEdDUG9saWN5IGltcGxlbWVudHMgR0NJbnRlcmZhY2Uge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIGluaXQoKSB7fVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIGNsZWFudXAoKSB7fVxuICBjcmVhdGVDb3VudFJlZigpIHtcbiAgICByZXR1cm4gKCkgPT4gKCkgPT4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR0NPcHRpb25zIHtcbiAgaW50ZXJ2YWxNUz86IG51bWJlcjtcbiAgZXhwaXJ5TXVsdGlwbGllcj86IG51bWJlcjtcbiAgZXhwaXJlc0F0PzogKG1ldGE6IHtcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICBkYXRlOiBudW1iZXI7XG4gICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gIH0pID0+IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ291bnRSZWYge1xuICAoeyBrZXksIHBhdGhzIH06IHsga2V5Pzogc3RyaW5nOyBwYXRocz86IEVudGl0eVBhdGhbXSB9KTogKCkgPT4gKCkgPT4gdm9pZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR0NJbnRlcmZhY2Uge1xuICBjcmVhdGVDb3VudFJlZjogQ3JlYXRlQ291bnRSZWY7XG4gIGluaXQoY29udHJvbGxlcjogQ29udHJvbGxlcik6IHZvaWQ7XG4gIGNs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
|
|
@@ -14,9 +14,9 @@ export default function createReducer(controller) {
|
|
|
14
14
|
key,
|
|
15
15
|
pk
|
|
16
16
|
}) => {
|
|
17
|
-
var _entities$key,
|
|
17
|
+
var _entities$key, _entitiesMeta$key;
|
|
18
18
|
(_entities$key = state.entities[key]) == null || delete _entities$key[pk];
|
|
19
|
-
(
|
|
19
|
+
(_entitiesMeta$key = state.entitiesMeta[key]) == null || delete _entitiesMeta$key[pk];
|
|
20
20
|
});
|
|
21
21
|
action.endpoints.forEach(fetchKey => {
|
|
22
22
|
delete state.endpoints[fetchKey];
|
|
@@ -53,8 +53,8 @@ export const initialState = {
|
|
|
53
53
|
endpoints: {},
|
|
54
54
|
indexes: {},
|
|
55
55
|
meta: {},
|
|
56
|
-
|
|
56
|
+
entitiesMeta: {},
|
|
57
57
|
optimistic: [],
|
|
58
58
|
lastReset: 0
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBpcmVSZWR1Y2VyIiwiZmV0Y2hSZWR1Y2VyIiwiaW52YWxpZGF0ZVJlZHVjZXIiLCJzZXRSZWR1Y2VyIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwiU0VUIiwiSU5WQUxJREFURSIsIlJFU0VUIiwiRkVUQ0giLCJHQyIsIk9QVElNSVNUSUMiLCJJTlZBTElEQVRFQUxMIiwiRVhQSVJFQUxMIiwiU0VUX1JFU1BPTlNFIiwiY3JlYXRlUmVkdWNlciIsImNvbnRyb2xsZXIiLCJyZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJpbml0aWFsU3RhdGUiLCJ0eXBlIiwiZW50aXRpZXMiLCJmb3JFYWNoIiwia2V5IiwicGsiLCJfZW50aXRpZXMka2V5IiwiX2VudGl0aWVzTWV0YSRrZXkiLCJlbnRpdGllc01ldGEiLCJlbmRwb2ludHMiLCJmZXRjaEtleSIsIm1ldGEiLCJsYXN0UmVzZXQiLCJkYXRlIiwiaW5kZXhlcyIsIm9wdGltaXN0aWMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9jcmVhdGVSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4cGlyZVJlZHVjZXIgfSBmcm9tICcuL2V4cGlyZVJlZHVjZXIuanMnO1xuaW1wb3J0IHsgZmV0Y2hSZWR1Y2VyIH0gZnJvbSAnLi9mZXRjaFJlZHVjZXIuanMnO1xuaW1wb3J0IHsgaW52YWxpZGF0ZVJlZHVjZXIgfSBmcm9tICcuL2ludmFsaWRhdGVSZWR1Y2VyLmpzJztcbmltcG9ydCB7IHNldFJlZHVjZXIgfSBmcm9tICcuL3NldFJlZHVjZXIuanMnO1xuaW1wb3J0IHsgc2V0UmVzcG9uc2VSZWR1Y2VyIH0gZnJvbSAnLi9zZXRSZXNwb25zZVJlZHVjZXIuanMnO1xuaW1wb3J0IHtcbiAgU0VULFxuICBJTlZBTElEQVRFLFxuICBSRVNFVCxcbiAgRkVUQ0gsXG4gIEdDLFxuICBPUFRJTUlTVElDLFxuICBJTlZBTElEQVRFQUxMLFxuICBFWFBJUkVBTEwsXG4gIFNFVF9SRVNQT05TRSxcbn0gZnJvbSAnLi4vLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tICcuLi8uLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25UeXBlcywgU3RhdGUgfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVJlZHVjZXIoY29udHJvbGxlcjogQ29udHJvbGxlcik6IFJlZHVjZXJUeXBlIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHJlZHVjZXIoXG4gICAgc3RhdGU6IFN0YXRlPHVua25vd24+IHwgdW5kZWZpbmVkLFxuICAgIGFjdGlvbjogQWN0aW9uVHlwZXMsXG4gICk6IFN0YXRlPHVua25vd24+IHtcbiAgICBpZiAoIXN0YXRlKSBzdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIEdDOlxuICAgICAgICAvLyBpbmxpbmUgZGVsZXRlcyBhcmUgZmluZSBhcyB0aGVzZSBzaG91bGQgaGF2ZSAwIHJlZmNvdW50c1xuICAgICAgICBhY3Rpb24uZW50aXRpZXMuZm9yRWFjaCgoeyBrZXksIHBrIH0pID0+IHtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW50aXRpZXNba2V5XT8uW3BrXTtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW50aXRpZXNNZXRhW2tleV0/Lltwa107XG4gICAgICAgIH0pO1xuICAgICAgICBhY3Rpb24uZW5kcG9pbnRzLmZvckVhY2goZmV0Y2hLZXkgPT4ge1xuICAgICAgICAgIGRlbGV0ZSAoc3RhdGUgYXMgYW55KS5lbmRwb2ludHNbZmV0Y2hLZXldO1xuICAgICAgICAgIGRlbGV0ZSAoc3RhdGUgYXMgYW55KS5tZXRhW2ZldGNoS2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIGNhc2UgRkVUQ0g6XG4gICAgICAgIHJldHVybiBmZXRjaFJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG5cbiAgICAgIGNhc2UgT1BUSU1JU1RJQzpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgY2FzZSBTRVRfUkVTUE9OU0U6XG4gICAgICAgIHJldHVybiBzZXRSZXNwb25zZVJlZHVjZXIoc3RhdGUsIGFjdGlvbiwgY29udHJvbGxlcik7XG5cbiAgICAgIGNhc2UgU0VUOlxuICAgICAgICByZXR1cm4gc2V0UmVkdWNlcihzdGF0ZSwgYWN0aW9uLCBjb250cm9sbGVyKTtcblxuICAgICAgY2FzZSBJTlZBTElEQVRFQUxMOlxuICAgICAgY2FzZSBJTlZBTElEQVRFOlxuICAgICAgICByZXR1cm4gaW52YWxpZGF0ZVJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG5cbiAgICAgIGNhc2UgRVhQSVJFQUxMOlxuICAgICAgICByZXR1cm4gZXhwaXJlUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcblxuICAgICAgY2FzZSBSRVNFVDpcbiAgICAgICAgcmV0dXJuIHsgLi4uaW5pdGlhbFN0YXRlLCBsYXN0UmVzZXQ6IGFjdGlvbi5kYXRlIH07XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIC8vIEEgcmVkdWNlciBtdXN0IGFsd2F5cyByZXR1cm4gYSB2YWxpZCBzdGF0ZS5cbiAgICAgICAgLy8gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHRocm93IGFuIGVycm9yIGlmIGFuIGludmFsaWQgYWN0aW9uIGlzIGRpc3BhdGNoZWQuXG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gIH0gYXMgYW55O1xufVxuXG5leHBvcnQgY29uc3QgaW5pdGlhbFN0YXRlOiBTdGF0ZTx1bmtub3duPiA9IHtcbiAgZW50aXRpZXM6IHt9LFxuICBlbmRwb2ludHM6IHt9LFxuICBpbmRleGVzOiB7fSxcbiAgbWV0YToge30sXG4gIGVudGl0aWVzTWV0YToge30sXG4gIG9wdGltaXN0aWM6IFtdLFxuICBsYXN0UmVzZXQ6IDAsXG59O1xuXG50eXBlIFJlZHVjZXJUeXBlID0gKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4gfCB1bmRlZmluZWQsXG4gIGFjdGlvbjogQWN0aW9uVHlwZXMsXG4pID0+IFN0YXRlPHVua25vd24+O1xuXG50eXBlIFdyaXRhYmxlPFQ+ID0geyBbUCBpbiBrZXlvZiBUXTogTm9uTnVsbGFibGU8V3JpdGFibGU8VFtQXT4+IH07XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsUUFBUSxvQkFBb0I7QUFDbEQsU0FBU0MsWUFBWSxRQUFRLG1CQUFtQjtBQUNoRCxTQUFTQyxpQkFBaUIsUUFBUSx3QkFBd0I7QUFDMUQsU0FBU0MsVUFBVSxRQUFRLGlCQUFpQjtBQUM1QyxTQUFTQyxrQkFBa0IsUUFBUSx5QkFBeUI7QUFDNUQsU0FDRUMsR0FBRyxFQUNIQyxVQUFVLEVBQ1ZDLEtBQUssRUFDTEMsS0FBSyxFQUNMQyxFQUFFLEVBQ0ZDLFVBQVUsRUFDVkMsYUFBYSxFQUNiQyxTQUFTLEVBQ1RDLFlBQVksUUFDUCxzQkFBc0I7QUFJN0IsZUFBZSxTQUFTQyxhQUFhQSxDQUFDQyxVQUFzQixFQUFlO0VBQ3pFLE9BQU8sU0FBU0MsT0FBT0EsQ0FDckJDLEtBQWlDLEVBQ2pDQyxNQUFtQixFQUNIO0lBQ2hCLElBQUksQ0FBQ0QsS0FBSyxFQUFFQSxLQUFLLEdBQUdFLFlBQVk7SUFDaEMsUUFBUUQsTUFBTSxDQUFDRSxJQUFJO01BQ2pCLEtBQUtYLEVBQUU7UUFDTDtRQUNBUyxNQUFNLENBQUNHLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDLENBQUM7VUFBRUMsR0FBRztVQUFFQztRQUFHLENBQUMsS0FBSztVQUFBLElBQUFDLGFBQUEsRUFBQUMsaUJBQUE7VUFDdkMsQ0FBQUQsYUFBQSxHQUFRUixLQUFLLENBQVNJLFFBQVEsQ0FBQ0UsR0FBRyxDQUFDLGFBQW5DLE9BQU9FLGFBQUEsQ0FBK0JELEVBQUUsQ0FBQztVQUN6QyxDQUFBRSxpQkFBQSxHQUFRVCxLQUFLLENBQVNVLFlBQVksQ0FBQ0osR0FBRyxDQUFDLGFBQXZDLE9BQU9HLGlCQUFBLENBQW1DRixFQUFFLENBQUM7UUFDL0MsQ0FBQyxDQUFDO1FBQ0ZOLE1BQU0sQ0FBQ1UsU0FBUyxDQUFDTixPQUFPLENBQUNPLFFBQVEsSUFBSTtVQUNuQyxPQUFRWixLQUFLLENBQVNXLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDO1VBQ3pDLE9BQVFaLEtBQUssQ0FBU2EsSUFBSSxDQUFDRCxRQUFRLENBQUM7UUFDdEMsQ0FBQyxDQUFDO1FBQ0YsT0FBT1osS0FBSztNQUNkLEtBQUtULEtBQUs7UUFDUixPQUFPUCxZQUFZLENBQUNnQixLQUFLLEVBQUVDLE1BQU0sQ0FBQztNQUVwQyxLQUFLUixVQUFVO01BQ2Y7TUFDQSxLQUFLRyxZQUFZO1FBQ2YsT0FBT1Qsa0JBQWtCLENBQUNhLEtBQUssRUFBRUMsTUFBTSxFQUFFSCxVQUFVLENBQUM7TUFFdEQsS0FBS1YsR0FBRztRQUNOLE9BQU9GLFVBQVUsQ0FBQ2MsS0FBSyxFQUFFQyxNQUFNLEVBQUVILFVBQVUsQ0FBQztNQUU5QyxLQUFLSixhQUFhO01BQ2xCLEtBQUtMLFVBQVU7UUFDYixPQUFPSixpQkFBaUIsQ0FBQ2UsS0FBSyxFQUFFQyxNQUFNLENBQUM7TUFFekMsS0FBS04sU0FBUztRQUNaLE9BQU9aLGFBQWEsQ0FBQ2lCLEtBQUssRUFBRUMsTUFBTSxDQUFDO01BRXJDLEtBQUtYLEtBQUs7UUFDUixPQUFPO1VBQUUsR0FBR1ksWUFBWTtVQUFFWSxTQUFTLEVBQUViLE1BQU0sQ0FBQ2M7UUFBSyxDQUFDO01BRXBEO1FBQ0U7UUFDQTtRQUNBLE9BQU9mLEtBQUs7SUFDaEI7RUFDRixDQUFDO0FBQ0g7QUFFQSxPQUFPLE1BQU1FLFlBQTRCLEdBQUc7RUFDMUNFLFFBQVEsRUFBRSxDQUFDLENBQUM7RUFDWk8sU0FBUyxFQUFFLENBQUMsQ0FBQztFQUNiSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0VBQ1hILElBQUksRUFBRSxDQUFDLENBQUM7RUFDUkgsWUFBWSxFQUFFLENBQUMsQ0FBQztFQUNoQk8sVUFBVSxFQUFFLEVBQUU7RUFDZEgsU0FBUyxFQUFFO0FBQ2IsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -20,7 +20,7 @@ export declare function expireReducer(state: State<unknown>, action: ExpireAllAc
|
|
|
20
20
|
readonly [key: string]: unknown | import("../../types.js").PK[] | import("../../types.js").PK | undefined;
|
|
21
21
|
};
|
|
22
22
|
indexes: import("packages/normalizr/lib/interface.js").NormalizedIndex;
|
|
23
|
-
|
|
23
|
+
entitiesMeta: {
|
|
24
24
|
readonly [entityKey: string]: {
|
|
25
25
|
readonly [pk: string]: {
|
|
26
26
|
readonly fetchedAt: number;
|
|
@@ -20,7 +20,7 @@ export declare function invalidateReducer(state: State<unknown>, action: Invalid
|
|
|
20
20
|
} | undefined;
|
|
21
21
|
};
|
|
22
22
|
indexes: import("packages/normalizr/lib/interface.js").NormalizedIndex;
|
|
23
|
-
|
|
23
|
+
entitiesMeta: {
|
|
24
24
|
readonly [entityKey: string]: {
|
|
25
25
|
readonly [pk: string]: {
|
|
26
26
|
readonly fetchedAt: number;
|
|
@@ -19,7 +19,7 @@ export declare function setReducer(state: State<unknown>, action: SetAction, con
|
|
|
19
19
|
readonly errorPolicy?: "hard" | "soft" | undefined;
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
|
-
|
|
22
|
+
entitiesMeta: import("packages/normalizr/lib/types.js").EntitiesToMeta<{
|
|
23
23
|
[x: string]: /*elided*/ any;
|
|
24
24
|
}>;
|
|
25
25
|
optimistic: (import("../../actions.js").OptimisticAction<import("@data-client/normalizr").EndpointInterface<import("@data-client/normalizr").FetchFunction, import("@data-client/normalizr").Schema | undefined, boolean | undefined> & {
|
|
@@ -12,14 +12,14 @@ export function setReducer(state, action, controller) {
|
|
|
12
12
|
const {
|
|
13
13
|
entities,
|
|
14
14
|
indexes,
|
|
15
|
-
|
|
15
|
+
entitiesMeta
|
|
16
16
|
} = normalize(action.schema, value, action.args, state, action.meta);
|
|
17
17
|
return {
|
|
18
18
|
entities,
|
|
19
19
|
endpoints: state.endpoints,
|
|
20
20
|
indexes,
|
|
21
21
|
meta: state.meta,
|
|
22
|
-
|
|
22
|
+
entitiesMeta,
|
|
23
23
|
optimistic: state.optimistic,
|
|
24
24
|
lastReset: state.lastReset
|
|
25
25
|
};
|
|
@@ -33,4 +33,4 @@ export function setReducer(state, action, controller) {
|
|
|
33
33
|
return state;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJzZXRSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwidmFsdWUiLCJwcmV2aW91c1ZhbHVlIiwiZ2V0Iiwic2NoZW1hIiwiYXJncyIsInVuZGVmaW5lZCIsImVudGl0aWVzIiwiaW5kZXhlcyIsImVudGl0aWVzTWV0YSIsIm1ldGEiLCJlbmRwb2ludHMiLCJvcHRpbWlzdGljIiwibGFzdFJlc2V0IiwiZXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvc2V0UmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhdGUsIFNldEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZHVjZXIoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgYWN0aW9uOiBTZXRBY3Rpb24sXG4gIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIsXG4pIHtcbiAgbGV0IHZhbHVlOiBhbnk7XG4gIGlmICh0eXBlb2YgYWN0aW9uLnZhbHVlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGNvbnRyb2xsZXIuZ2V0KGFjdGlvbi5zY2hlbWEsIC4uLmFjdGlvbi5hcmdzLCBzdGF0ZSk7XG4gICAgaWYgKHByZXZpb3VzVmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHN0YXRlO1xuICAgIHZhbHVlID0gYWN0aW9uLnZhbHVlKHByZXZpb3VzVmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHZhbHVlID0gYWN0aW9uLnZhbHVlO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgeyBlbnRpdGllcywgaW5kZXhlcywgZW50aXRpZXNNZXRhIH0gPSBub3JtYWxpemUoXG4gICAgICBhY3Rpb24uc2NoZW1hLFxuICAgICAgdmFsdWUsXG4gICAgICBhY3Rpb24uYXJncyxcbiAgICAgIHN0YXRlLFxuICAgICAgYWN0aW9uLm1ldGEsXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBlbmRwb2ludHM6IHN0YXRlLmVuZHBvaW50cyxcbiAgICAgIGluZGV4ZXMsXG4gICAgICBtZXRhOiBzdGF0ZS5tZXRhLFxuICAgICAgZW50aXRpZXNNZXRhLFxuICAgICAgb3B0aW1pc3RpYzogc3RhdGUub3B0aW1pc3RpYyxcbiAgICAgIGxhc3RSZXNldDogc3RhdGUubGFzdFJlc2V0LFxuICAgIH07XG4gICAgLy8gcmVkdWNlciBtdXN0IHVwZGF0ZSB0aGUgc3RhdGUsIHNvIGluIGNhc2Ugb2YgcHJvY2Vzc2luZyBlcnJvcnMgd2Ugc2ltcGx5IGNvbXB1dGUgdGhlIGVuZHBvaW50cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIC8vIHRoaXMgaXMgbm90IGFsd2F5cyBidWJibGVkIHVwLCBzbyBsZXQncyBkb3VibGUgc3VyZSB0aGlzIGRvZXNuJ3QgZmFpbCBzaWxlbnRseVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxRQUFRLHdCQUF3QjtBQUtsRCxPQUFPLFNBQVNDLFVBQVVBLENBQ3hCQyxLQUFxQixFQUNyQkMsTUFBaUIsRUFDakJDLFVBQXNCLEVBQ3RCO0VBQ0EsSUFBSUMsS0FBVTtFQUNkLElBQUksT0FBT0YsTUFBTSxDQUFDRSxLQUFLLEtBQUssVUFBVSxFQUFFO0lBQ3RDLE1BQU1DLGFBQWEsR0FBR0YsVUFBVSxDQUFDRyxHQUFHLENBQUNKLE1BQU0sQ0FBQ0ssTUFBTSxFQUFFLEdBQUdMLE1BQU0sQ0FBQ00sSUFBSSxFQUFFUCxLQUFLLENBQUM7SUFDMUUsSUFBSUksYUFBYSxLQUFLSSxTQUFTLEVBQUUsT0FBT1IsS0FBSztJQUM3Q0csS0FBSyxHQUFHRixNQUFNLENBQUNFLEtBQUssQ0FBQ0MsYUFBYSxDQUFDO0VBQ3JDLENBQUMsTUFBTTtJQUNMRCxLQUFLLEdBQUdGLE1BQU0sQ0FBQ0UsS0FBSztFQUN0QjtFQUNBLElBQUk7SUFDRixNQUFNO01BQUVNLFFBQVE7TUFBRUMsT0FBTztNQUFFQztJQUFhLENBQUMsR0FBR2IsU0FBUyxDQUNuREcsTUFBTSxDQUFDSyxNQUFNLEVBQ2JILEtBQUssRUFDTEYsTUFBTSxDQUFDTSxJQUFJLEVBQ1hQLEtBQUssRUFDTEMsTUFBTSxDQUFDVyxJQUNULENBQUM7SUFDRCxPQUFPO01BQ0xILFFBQVE7TUFDUkksU0FBUyxFQUFFYixLQUFLLENBQUNhLFNBQVM7TUFDMUJILE9BQU87TUFDUEUsSUFBSSxFQUFFWixLQUFLLENBQUNZLElBQUk7TUFDaEJELFlBQVk7TUFDWkcsVUFBVSxFQUFFZCxLQUFLLENBQUNjLFVBQVU7TUFDNUJDLFNBQVMsRUFBRWYsS0FBSyxDQUFDZTtJQUNuQixDQUFDO0lBQ0Q7RUFDRixDQUFDLENBQUMsT0FBT0MsS0FBVSxFQUFFO0lBQ25CO0lBQ0E7SUFDQSxJQUFJQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtNQUN6Q0MsT0FBTyxDQUFDSixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUN0QjtJQUNBLE9BQU9oQixLQUFLO0VBQ2Q7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -22,7 +22,7 @@ export declare function setResponseReducer(state: State<unknown>, action: Optimi
|
|
|
22
22
|
prevExpiresAt: number;
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
|
-
|
|
25
|
+
entitiesMeta: import("packages/normalizr/lib/types.js").EntitiesToMeta<{
|
|
26
26
|
[x: string]: /*elided*/ any;
|
|
27
27
|
}>;
|
|
28
28
|
optimistic: (OptimisticAction<import("@data-client/normalizr").EndpointInterface<import("@data-client/normalizr").FetchFunction, import("@data-client/normalizr").Schema | undefined, boolean | undefined> & {
|
|
@@ -30,7 +30,7 @@ export function setResponseReducer(state, action, controller) {
|
|
|
30
30
|
result,
|
|
31
31
|
entities,
|
|
32
32
|
indexes,
|
|
33
|
-
|
|
33
|
+
entitiesMeta
|
|
34
34
|
} = normalize(action.endpoint.schema, response, action.args, state, action.meta);
|
|
35
35
|
const endpoints = {
|
|
36
36
|
...state.endpoints,
|
|
@@ -62,7 +62,7 @@ export function setResponseReducer(state, action, controller) {
|
|
|
62
62
|
prevExpiresAt: (_state$meta$action$ke = state.meta[action.key]) == null ? void 0 : _state$meta$action$ke.expiresAt
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
|
-
|
|
65
|
+
entitiesMeta,
|
|
66
66
|
optimistic: filterOptimistic(state, action),
|
|
67
67
|
lastReset: state.lastReset
|
|
68
68
|
};
|
|
@@ -86,7 +86,7 @@ function reduceError(state, action, error) {
|
|
|
86
86
|
if (error.name === 'AbortError') {
|
|
87
87
|
// In case we abort simply undo the optimistic update and act like no fetch even occured
|
|
88
88
|
// We still want those watching promises from fetch directly to observed the abort, but we don't want to
|
|
89
|
-
// Trigger errors in this case. This means theoretically improperly built
|
|
89
|
+
// Trigger errors in this case. This means theoretically improperly built aborts useSuspense() could suspend forever.
|
|
90
90
|
return {
|
|
91
91
|
...state,
|
|
92
92
|
optimistic: filterOptimistic(state, action)
|
|
@@ -111,4 +111,4 @@ function reduceError(state, action, error) {
|
|
|
111
111
|
function filterOptimistic(state, resolvingAction) {
|
|
112
112
|
return state.optimistic.filter(optimisticAction => optimisticAction.key !== resolvingAction.key || (optimisticAction.type === OPTIMISTIC ? optimisticAction.meta.fetchedAt !== resolvingAction.meta.fetchedAt : optimisticAction.meta.date > resolvingAction.meta.date));
|
|
113
113
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDIiwiQWJvcnRPcHRpbWlzdGljIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInJlc3BvbnNlIiwiX3N0YXRlJG1ldGEkYWN0aW9uJGtlIiwidHlwZSIsImVuZHBvaW50IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwiY2FsbCIsInNuYXBzaG90IiwibWV0YSIsImZldGNoZWRBdCIsImFyZ3MiLCJlIiwiY29uc3RydWN0b3IiLCJyZXN1bHQiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJlbnRpdHlNZXRhIiwic2NoZW1hIiwiZW5kcG9pbnRzIiwia2V5IiwidXBkYXRlIiwidXBkYXRlcnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImNvbnNvbGUiLCJkYXRlIiwiZXhwaXJlc0F0IiwicHJldkV4cGlyZXNBdCIsIm9wdGltaXN0aWMiLCJmaWx0ZXJPcHRpbWlzdGljIiwibGFzdFJlc2V0IiwibWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJzdGF0dXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJuYW1lIiwiZXJyb3JQb2xpY3kiLCJyZXNvbHZpbmdBY3Rpb24iLCJmaWx0ZXIiLCJvcHRpbWlzdGljQWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvc2V0UmVzcG9uc2VSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBPUFRJTUlTVElDIH0gZnJvbSAnLi4vLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IEFib3J0T3B0aW1pc3RpYyBmcm9tICcuLi8uLi9jb250cm9sbGVyL0Fib3J0T3B0aW1pc3RpYy5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFN0YXRlLFxuICBTZXRSZXNwb25zZUFjdGlvbixcbiAgT3B0aW1pc3RpY0FjdGlvbixcbn0gZnJvbSAnLi4vLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVzcG9uc2VSZWR1Y2VyKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogT3B0aW1pc3RpY0FjdGlvbiB8IFNldFJlc3BvbnNlQWN0aW9uLFxuICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuKSB7XG4gIGlmIChhY3Rpb24uZXJyb3IpIHtcbiAgICByZXR1cm4gcmVkdWNlRXJyb3Ioc3RhdGUsIGFjdGlvbiwgYWN0aW9uLnJlc3BvbnNlKTtcbiAgfVxuICB0cnkge1xuICAgIGxldCByZXNwb25zZTogYW55O1xuICAgIC8vIGZvciB0cnVlIHNldCdzIHJlc3BvbnNlIGlzIGNvbnRhaW5lZCBpbiBhY3Rpb25cbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09IE9QVElNSVNUSUMpIHtcbiAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoIWFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UpIHJldHVybiBzdGF0ZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGNvbXB1dGUgb3B0aW1pc3RpYyByZXNwb25zZSBiYXNlZCBvbiBjdXJyZW50IHN0YXRlXG4gICAgICAgIHJlc3BvbnNlID0gYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZS5jYWxsKFxuICAgICAgICAgIGFjdGlvbi5lbmRwb2ludCxcbiAgICAgICAgICBjb250cm9sbGVyLnNuYXBzaG90KHN0YXRlLCBhY3Rpb24ubWV0YS5mZXRjaGVkQXQpLFxuICAgICAgICAgIC4uLmFjdGlvbi5hcmdzLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIC8vIEFib3J0T3B0aW1pc3RpYyBtZWFucyAnZG8gbm90aGluZycsIG90aGVyd2lzZSB3ZSBjb3VudCB0aGUgZXhjZXB0aW9uIGFzIGVuZHBvaW50IGZhaWx1cmVcbiAgICAgICAgaWYgKGUuY29uc3RydWN0b3IgPT09IEFib3J0T3B0aW1pc3RpYykge1xuICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZSA9IGFjdGlvbi5yZXNwb25zZTtcbiAgICB9XG4gICAgY29uc3QgeyByZXN1bHQsIGVudGl0aWVzLCBpbmRleGVzLCBlbnRpdHlNZXRhIH0gPSBub3JtYWxpemUoXG4gICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBhY3Rpb24uYXJncyxcbiAgICAgIHN0YXRlLFxuICAgICAgYWN0aW9uLm1ldGEsXG4gICAgKTtcbiAgICBjb25zdCBlbmRwb2ludHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgLi4uc3RhdGUuZW5kcG9pbnRzLFxuICAgICAgW2FjdGlvbi5rZXldOiByZXN1bHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgaWYgKGFjdGlvbi5lbmRwb2ludC51cGRhdGUpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlcnMgPSBhY3Rpb24uZW5kcG9pbnQudXBkYXRlKHJlc3VsdCwgLi4uYWN0aW9uLmFyZ3MpO1xuICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIGVuZHBvaW50c1trZXldID0gdXBkYXRlcnNba2V5XShlbmRwb2ludHNba2V5XSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gbm8gcmVhc29uIHRvIGNvbXBsZXRlbHkgZmFpbCBiZWNhdXNlIG9mIHVzZXItY29kZSBlcnJvclxuICAgICAgLy8gaW50ZWdyaXR5IG9mIHRoaXMgc3RhdGUgdXBkYXRlIGlzIHN0aWxsIGd1YXJhbnRlZWRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgZXJyb3Igb2NjdXJlZCBkdXJpbmcgRW5kcG9pbnQudXBkYXRlKCkgZm9yICR7YWN0aW9uLmtleX1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBlbmRwb2ludHMsXG4gICAgICBpbmRleGVzLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgICBbYWN0aW9uLmtleV06IHtcbiAgICAgICAgICBkYXRlOiBhY3Rpb24ubWV0YS5kYXRlLFxuICAgICAgICAgIGZldGNoZWRBdDogYWN0aW9uLm1ldGEuZmV0Y2hlZEF0LFxuICAgICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICAgIHByZXZFeHBpcmVzQXQ6IHN0YXRlLm1ldGFbYWN0aW9uLmtleV0/LmV4cGlyZXNBdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBlbnRpdHlNZXRhLFxuICAgICAgb3B0aW1pc3RpYzogZmlsdGVyT3B0aW1pc3RpYyhzdGF0ZSwgYWN0aW9uKSxcbiAgICAgIGxhc3RSZXNldDogc3RhdGUubGFzdFJlc2V0LFxuICAgIH07XG4gICAgLy8gcmVkdWNlciBtdXN0IHVwZGF0ZSB0aGUgc3RhdGUsIHNvIGluIGNhc2Ugb2YgcHJvY2Vzc2luZyBlcnJvcnMgd2Ugc2ltcGx5IGNvbXB1dGUgdGhlIGVuZHBvaW50cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLmtleVxuICAgICAgfVxcblxcbkZ1bGwgU2NoZW1hOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIDIsXG4gICAgICApfVxcblxcbkVycm9yOlxcbiR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgaWYgKCdyZXNwb25zZScgaW4gYWN0aW9uKSBlcnJvci5yZXNwb25zZSA9IGFjdGlvbi5yZXNwb25zZTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGlzIG5vdCBhbHdheXMgYnViYmxlZCB1cCwgc28gbGV0J3MgZG91YmxlIHN1cmUgdGhpcyBkb2Vzbid0IGZhaWwgc2lsZW50bHlcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGVycm9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWR1Y2VFcnJvcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRlcyB1c2VSZXNvdXJjZSgpIGNvdWxkIHN1c3BlbmQgZm9yZXZlci5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZXRhOiB7XG4gICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgW2FjdGlvbi5rZXldOiB7XG4gICAgICAgIGRhdGU6IGFjdGlvbi5tZXRhLmRhdGUsXG4gICAgICAgIGZldGNoZWRBdDogYWN0aW9uLm1ldGEuZmV0Y2hlZEF0LFxuICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIGVycm9yUG9saWN5OiBhY3Rpb24uZW5kcG9pbnQuZXJyb3JQb2xpY3k/LihlcnJvciksXG4gICAgICB9LFxuICAgIH0sXG4gICAgb3B0aW1pc3RpYzogZmlsdGVyT3B0aW1pc3RpYyhzdGF0ZSwgYWN0aW9uKSxcbiAgfTtcbn1cbi8qKiBGaWx0ZXIgYWxsIHJlcXVlc3RzIHdpdGggc2FtZSBzZXJpYWxpemF0aW9uIHRoYXQgZGlkIG5vdCBzdGFydCBhZnRlciB0aGUgcmVzb2x2aW5nIHJlcXVlc3QgKi9cbmZ1bmN0aW9uIGZpbHRlck9wdGltaXN0aWMoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgcmVzb2x2aW5nQWN0aW9uOiBTZXRSZXNwb25zZUFjdGlvbiB8IE9wdGltaXN0aWNBY3Rpb24sXG4pIHtcbiAgcmV0dXJuIHN0YXRlLm9wdGltaXN0aWMuZmlsdGVyKFxuICAgIG9wdGltaXN0aWNBY3Rpb24gPT5cbiAgICAgIG9wdGltaXN0aWNBY3Rpb24ua2V5ICE9PSByZXNvbHZpbmdBY3Rpb24ua2V5IHx8XG4gICAgICAob3B0aW1pc3RpY0FjdGlvbi50eXBlID09PSBPUFRJTUlTVElDID9cbiAgICAgICAgb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmZldGNoZWRBdCAhPT0gcmVzb2x2aW5nQWN0aW9uLm1ldGEuZmV0Y2hlZEF0XG4gICAgICA6IG9wdGltaXN0aWNBY3Rpb24ubWV0YS5kYXRlID4gcmVzb2x2aW5nQWN0aW9uLm1ldGEuZGF0ZSksXG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsUUFBUSx3QkFBd0I7QUFFbEQsU0FBU0MsVUFBVSxRQUFRLHNCQUFzQjtBQUNqRCxPQUFPQyxlQUFlLE1BQU0scUNBQXFDO0FBUWpFLE9BQU8sU0FBU0Msa0JBQWtCQSxDQUNoQ0MsS0FBcUIsRUFDckJDLE1BQTRDLEVBQzVDQyxVQUFzQixFQUN0QjtFQUNBLElBQUlELE1BQU0sQ0FBQ0UsS0FBSyxFQUFFO0lBQ2hCLE9BQU9DLFdBQVcsQ0FBQ0osS0FBSyxFQUFFQyxNQUFNLEVBQUVBLE1BQU0sQ0FBQ0ksUUFBUSxDQUFDO0VBQ3BEO0VBQ0EsSUFBSTtJQUFBLElBQUFDLHFCQUFBO0lBQ0YsSUFBSUQsUUFBYTtJQUNqQjtJQUNBLElBQUlKLE1BQU0sQ0FBQ00sSUFBSSxLQUFLVixVQUFVLEVBQUU7TUFDOUI7TUFDQTtNQUNBLElBQUksQ0FBQ0ksTUFBTSxDQUFDTyxRQUFRLENBQUNDLHFCQUFxQixFQUFFLE9BQU9ULEtBQUs7TUFDeEQsSUFBSTtRQUNGO1FBQ0FLLFFBQVEsR0FBR0osTUFBTSxDQUFDTyxRQUFRLENBQUNDLHFCQUFxQixDQUFDQyxJQUFJLENBQ25EVCxNQUFNLENBQUNPLFFBQVEsRUFDZk4sVUFBVSxDQUFDUyxRQUFRLENBQUNYLEtBQUssRUFBRUMsTUFBTSxDQUFDVyxJQUFJLENBQUNDLFNBQVMsQ0FBQyxFQUNqRCxHQUFHWixNQUFNLENBQUNhLElBQ1osQ0FBQztNQUNILENBQUMsQ0FBQyxPQUFPQyxDQUFNLEVBQUU7UUFD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ZCxPQUFPLENBQUMxQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUN0QjtJQUNBLE9BQU9DLFdBQVcsQ0FBQ0osS0FBSyxFQUFFQyxNQUFNLEVBQUVFLEtBQUssQ0FBQztFQUMxQztBQUNGO0FBRUEsU0FBU0MsV0FBV0EsQ0FDbEJKLEtBQXFCLEVBQ3JCQyxNQUE0QyxFQUM1Q0UsS0FBVSxFQUNNO0VBQ2hCLElBQUlBLEtBQUssQ0FBQ3lDLElBQUksS0FBSyxZQUFZLEVBQUU7SUFDL0I7SUFDQTtJQUNBO0lBQ0EsT0FBTztNQUNMLEdBQUc1QyxLQUFLO01BQ1JpQyxVQUFVLEVBQUVDLGdCQUFnQixDQUFDbEMsS0FBSyxFQUFFQyxNQUFNO0lBQzVDLENBQUM7RUFDSDtFQUNBLE9BQU87SUFDTCxHQUFHRCxLQUFLO0lBQ1JZLElBQUksRUFBRTtNQUNKLEdBQUdaLEtBQUssQ0FBQ1ksSUFBSTtNQUNiLENBQUNYLE1BQU0sQ0FBQ3NCLEdBQUcsR0FBRztRQUNaTyxJQUFJLEVBQUU3QixNQUFNLENBQUNXLElBQUksQ0FBQ2tCLElBQUk7UUFDdEJqQixTQUFTLEVBQUVaLE1BQU0sQ0FBQ1csSUFBSSxDQUFDQyxTQUFTO1FBQ2hDa0IsU0FBUyxFQUFFOUIsTUFBTSxDQUFDVyxJQUFJLENBQUNtQixTQUFTO1FBQ2hDNUIsS0FBSztRQUNMMEMsV0FBVyxFQUFFNUMsTUFBTSxDQUFDTyxRQUFRLENBQUNxQyxXQUFXLG9CQUEzQjVDLE1BQU0sQ0FBQ08sUUFBUSxDQUFDcUMsV0FBVyxDQUFHMUMsS0FBSztNQUNsRDtJQUNGLENBQUM7SUFDRDhCLFVBQVUsRUFBRUMsZ0JBQWdCLENBQUNsQyxLQUFLLEVBQUVDLE1BQU07RUFDNUMsQ0FBQztBQUNIO0FBQ0E7QUFDQSxTQUFTaUMsZ0JBQWdCQSxDQUN2QmxDLEtBQXFCLEVBQ3JCOEMsZUFBcUQsRUFDckQ7RUFDQSxPQUFPOUMsS0FBSyxDQUFDaUMsVUFBVSxDQUFDYyxNQUFNLENBQzVCQyxnQkFBZ0IsSUFDZEEsZ0JBQWdCLENBQUN6QixHQUFHLEtBQUt1QixlQUFlLENBQUN2QixHQUFHLEtBQzNDeUIsZ0JBQWdCLENBQUN6QyxJQUFJLEtBQUtWLFVBQVUsR0FDbkNtRCxnQkFBZ0IsQ0FBQ3BDLElBQUksQ0FBQ0MsU0FBUyxLQUFLaUMsZUFBZSxDQUFDbEMsSUFBSSxDQUFDQyxTQUFTLEdBQ2xFbUMsZ0JBQWdCLENBQUNwQyxJQUFJLENBQUNrQixJQUFJLEdBQUdnQixlQUFlLENBQUNsQyxJQUFJLENBQUNrQixJQUFJLENBQzVELENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
114
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDIiwiQWJvcnRPcHRpbWlzdGljIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInJlc3BvbnNlIiwiX3N0YXRlJG1ldGEkYWN0aW9uJGtlIiwidHlwZSIsImVuZHBvaW50IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwiY2FsbCIsInNuYXBzaG90IiwibWV0YSIsImZldGNoZWRBdCIsImFyZ3MiLCJlIiwiY29uc3RydWN0b3IiLCJyZXN1bHQiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJlbnRpdGllc01ldGEiLCJzY2hlbWEiLCJlbmRwb2ludHMiLCJrZXkiLCJ1cGRhdGUiLCJ1cGRhdGVycyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiY29uc29sZSIsImRhdGUiLCJleHBpcmVzQXQiLCJwcmV2RXhwaXJlc0F0Iiwib3B0aW1pc3RpYyIsImZpbHRlck9wdGltaXN0aWMiLCJsYXN0UmVzZXQiLCJtZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsInVuZGVmaW5lZCIsInN0YXR1cyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm5hbWUiLCJlcnJvclBvbGljeSIsInJlc29sdmluZ0FjdGlvbiIsImZpbHRlciIsIm9wdGltaXN0aWNBY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9zZXRSZXNwb25zZVJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCB7IE9QVElNSVNUSUMgfSBmcm9tICcuLi8uLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgQWJvcnRPcHRpbWlzdGljIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQWJvcnRPcHRpbWlzdGljLmpzJztcbmltcG9ydCB0eXBlIENvbnRyb2xsZXIgZnJvbSAnLi4vLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgU3RhdGUsXG4gIFNldFJlc3BvbnNlQWN0aW9uLFxuICBPcHRpbWlzdGljQWN0aW9uLFxufSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZXNwb25zZVJlZHVjZXIoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgYWN0aW9uOiBPcHRpbWlzdGljQWN0aW9uIHwgU2V0UmVzcG9uc2VBY3Rpb24sXG4gIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIsXG4pIHtcbiAgaWYgKGFjdGlvbi5lcnJvcikge1xuICAgIHJldHVybiByZWR1Y2VFcnJvcihzdGF0ZSwgYWN0aW9uLCBhY3Rpb24ucmVzcG9uc2UpO1xuICB9XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlOiBhbnk7XG4gICAgLy8gZm9yIHRydWUgc2V0J3MgcmVzcG9uc2UgaXMgY29udGFpbmVkIGluIGFjdGlvblxuICAgIGlmIChhY3Rpb24udHlwZSA9PT0gT1BUSU1JU1RJQykge1xuICAgICAgLy8gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZSkgcmV0dXJuIHN0YXRlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gY29tcHV0ZSBvcHRpbWlzdGljIHJlc3BvbnNlIGJhc2VkIG9uIGN1cnJlbnQgc3RhdGVcbiAgICAgICAgcmVzcG9uc2UgPSBhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlLmNhbGwoXG4gICAgICAgICAgYWN0aW9uLmVuZHBvaW50LFxuICAgICAgICAgIGNvbnRyb2xsZXIuc25hcHNob3Qoc3RhdGUsIGFjdGlvbi5tZXRhLmZldGNoZWRBdCksXG4gICAgICAgICAgLi4uYWN0aW9uLmFyZ3MsXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgLy8gQWJvcnRPcHRpbWlzdGljIG1lYW5zICdkbyBub3RoaW5nJywgb3RoZXJ3aXNlIHdlIGNvdW50IHRoZSBleGNlcHRpb24gYXMgZW5kcG9pbnQgZmFpbHVyZVxuICAgICAgICBpZiAoZS5jb25zdHJ1Y3RvciA9PT0gQWJvcnRPcHRpbWlzdGljKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3BvbnNlID0gYWN0aW9uLnJlc3BvbnNlO1xuICAgIH1cbiAgICBjb25zdCB7IHJlc3VsdCwgZW50aXRpZXMsIGluZGV4ZXMsIGVudGl0aWVzTWV0YSB9ID0gbm9ybWFsaXplKFxuICAgICAgYWN0aW9uLmVuZHBvaW50LnNjaGVtYSxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgYWN0aW9uLmFyZ3MsXG4gICAgICBzdGF0ZSxcbiAgICAgIGFjdGlvbi5tZXRhLFxuICAgICk7XG4gICAgY29uc3QgZW5kcG9pbnRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIC4uLnN0YXRlLmVuZHBvaW50cyxcbiAgICAgIFthY3Rpb24ua2V5XTogcmVzdWx0LFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGlmIChhY3Rpb24uZW5kcG9pbnQudXBkYXRlKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZXJzID0gYWN0aW9uLmVuZHBvaW50LnVwZGF0ZShyZXN1bHQsIC4uLmFjdGlvbi5hcmdzKTtcbiAgICAgICAgT2JqZWN0LmtleXModXBkYXRlcnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICBlbmRwb2ludHNba2V5XSA9IHVwZGF0ZXJzW2tleV0oZW5kcG9pbnRzW2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIG5vIHJlYXNvbiB0byBjb21wbGV0ZWx5IGZhaWwgYmVjYXVzZSBvZiB1c2VyLWNvZGUgZXJyb3JcbiAgICAgIC8vIGludGVncml0eSBvZiB0aGlzIHN0YXRlIHVwZGF0ZSBpcyBzdGlsbCBndWFyYW50ZWVkXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGBUaGUgZm9sbG93aW5nIGVycm9yIG9jY3VyZWQgZHVyaW5nIEVuZHBvaW50LnVwZGF0ZSgpIGZvciAke2FjdGlvbi5rZXl9YCxcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGVudGl0aWVzLFxuICAgICAgZW5kcG9pbnRzLFxuICAgICAgaW5kZXhlcyxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgLi4uc3RhdGUubWV0YSxcbiAgICAgICAgW2FjdGlvbi5rZXldOiB7XG4gICAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgICBmZXRjaGVkQXQ6IGFjdGlvbi5tZXRhLmZldGNoZWRBdCxcbiAgICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgICBwcmV2RXhwaXJlc0F0OiBzdGF0ZS5tZXRhW2FjdGlvbi5rZXldPy5leHBpcmVzQXQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZW50aXRpZXNNZXRhLFxuICAgICAgb3B0aW1pc3RpYzogZmlsdGVyT3B0aW1pc3RpYyhzdGF0ZSwgYWN0aW9uKSxcbiAgICAgIGxhc3RSZXNldDogc3RhdGUubGFzdFJlc2V0LFxuICAgIH07XG4gICAgLy8gcmVkdWNlciBtdXN0IHVwZGF0ZSB0aGUgc3RhdGUsIHNvIGluIGNhc2Ugb2YgcHJvY2Vzc2luZyBlcnJvcnMgd2Ugc2ltcGx5IGNvbXB1dGUgdGhlIGVuZHBvaW50cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLmtleVxuICAgICAgfVxcblxcbkZ1bGwgU2NoZW1hOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIDIsXG4gICAgICApfVxcblxcbkVycm9yOlxcbiR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgaWYgKCdyZXNwb25zZScgaW4gYWN0aW9uKSBlcnJvci5yZXNwb25zZSA9IGFjdGlvbi5yZXNwb25zZTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGlzIG5vdCBhbHdheXMgYnViYmxlZCB1cCwgc28gbGV0J3MgZG91YmxlIHN1cmUgdGhpcyBkb2Vzbid0IGZhaWwgc2lsZW50bHlcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGVycm9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWR1Y2VFcnJvcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRzIHVzZVN1c3BlbnNlKCkgY291bGQgc3VzcGVuZCBmb3JldmVyLlxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG9wdGltaXN0aWM6IGZpbHRlck9wdGltaXN0aWMoc3RhdGUsIGFjdGlvbiksXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1ldGE6IHtcbiAgICAgIC4uLnN0YXRlLm1ldGEsXG4gICAgICBbYWN0aW9uLmtleV06IHtcbiAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgZmV0Y2hlZEF0OiBhY3Rpb24ubWV0YS5mZXRjaGVkQXQsXG4gICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICBlcnJvcixcbiAgICAgICAgZXJyb3JQb2xpY3k6IGFjdGlvbi5lbmRwb2ludC5lcnJvclBvbGljeT8uKGVycm9yKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICB9O1xufVxuLyoqIEZpbHRlciBhbGwgcmVxdWVzdHMgd2l0aCBzYW1lIHNlcmlhbGl6YXRpb24gdGhhdCBkaWQgbm90IHN0YXJ0IGFmdGVyIHRoZSByZXNvbHZpbmcgcmVxdWVzdCAqL1xuZnVuY3Rpb24gZmlsdGVyT3B0aW1pc3RpYyhcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICByZXNvbHZpbmdBY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbikge1xuICByZXR1cm4gc3RhdGUub3B0aW1pc3RpYy5maWx0ZXIoXG4gICAgb3B0aW1pc3RpY0FjdGlvbiA9PlxuICAgICAgb3B0aW1pc3RpY0FjdGlvbi5rZXkgIT09IHJlc29sdmluZ0FjdGlvbi5rZXkgfHxcbiAgICAgIChvcHRpbWlzdGljQWN0aW9uLnR5cGUgPT09IE9QVElNSVNUSUMgP1xuICAgICAgICBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZmV0Y2hlZEF0ICE9PSByZXNvbHZpbmdBY3Rpb24ubWV0YS5mZXRjaGVkQXRcbiAgICAgIDogb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmRhdGUgPiByZXNvbHZpbmdBY3Rpb24ubWV0YS5kYXRlKSxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxRQUFRLHdCQUF3QjtBQUVsRCxTQUFTQyxVQUFVLFFBQVEsc0JBQXNCO0FBQ2pELE9BQU9DLGVBQWUsTUFBTSxxQ0FBcUM7QUFRakUsT0FBTyxTQUFTQyxrQkFBa0JBLENBQ2hDQyxLQUFxQixFQUNyQkMsTUFBNEMsRUFDNUNDLFVBQXNCLEVBQ3RCO0VBQ0EsSUFBSUQsTUFBTSxDQUFDRSxLQUFLLEVBQUU7SUFDaEIsT0FBT0MsV0FBVyxDQUFDSixLQUFLLEVBQUVDLE1BQU0sRUFBRUEsTUFBTSxDQUFDSSxRQUFRLENBQUM7RUFDcEQ7RUFDQSxJQUFJO0lBQUEsSUFBQUMscUJBQUE7SUFDRixJQUFJRCxRQUFhO0lBQ2pCO0lBQ0EsSUFBSUosTUFBTSxDQUFDTSxJQUFJLEtBQUtWLFVBQVUsRUFBRTtNQUM5QjtNQUNBO01BQ0EsSUFBSSxDQUFDSSxNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLEVBQUUsT0FBT1QsS0FBSztNQUN4RCxJQUFJO1FBQ0Y7UUFDQUssUUFBUSxHQUFHSixNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLENBQUNDLElBQUksQ0FDbkRULE1BQU0sQ0FBQ08sUUFBUSxFQUNmTixVQUFVLENBQUNTLFFBQVEsQ0FBQ1gsS0FBSyxFQUFFQyxNQUFNLENBQUNXLElBQUksQ0FBQ0MsU0FBUyxDQUFDLEVBQ2pELEdBQUdaLE1BQU0sQ0FBQ2EsSUFDWixDQUFDO01BQ0gsQ0FBQyxDQUFDLE9BQU9DLENBQU0sRUFB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TUFDekNkLE9BQU8sQ0FBQzFCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQ3RCO0lBQ0EsT0FBT0MsV0FBVyxDQUFDSixLQUFLLEVBQUVDLE1BQU0sRUFBRUUsS0FBSyxDQUFDO0VBQzFDO0FBQ0Y7QUFFQSxTQUFTQyxXQUFXQSxDQUNsQkosS0FBcUIsRUFDckJDLE1BQTRDLEVBQzVDRSxLQUFVLEVBQ007RUFDaEIsSUFBSUEsS0FBSyxDQUFDeUMsSUFBSSxLQUFLLFlBQVksRUFBRTtJQUMvQjtJQUNBO0lBQ0E7SUFDQSxPQUFPO01BQ0wsR0FBRzVDLEtBQUs7TUFDUmlDLFVBQVUsRUFBRUMsZ0JBQWdCLENBQUNsQyxLQUFLLEVBQUVDLE1BQU07SUFDNUMsQ0FBQztFQUNIO0VBQ0EsT0FBTztJQUNMLEdBQUdELEtBQUs7SUFDUlksSUFBSSxFQUFFO01BQ0osR0FBR1osS0FBSyxDQUFDWSxJQUFJO01BQ2IsQ0FBQ1gsTUFBTSxDQUFDc0IsR0FBRyxHQUFHO1FBQ1pPLElBQUksRUFBRTdCLE1BQU0sQ0FBQ1csSUFBSSxDQUFDa0IsSUFBSTtRQUN0QmpCLFNBQVMsRUFBRVosTUFBTSxDQUFDVyxJQUFJLENBQUNDLFNBQVM7UUFDaENrQixTQUFTLEVBQUU5QixNQUFNLENBQUNXLElBQUksQ0FBQ21CLFNBQVM7UUFDaEM1QixLQUFLO1FBQ0wwQyxXQUFXLEVBQUU1QyxNQUFNLENBQUNPLFFBQVEsQ0FBQ3FDLFdBQVcsb0JBQTNCNUMsTUFBTSxDQUFDTyxRQUFRLENBQUNxQyxXQUFXLENBQUcxQyxLQUFLO01BQ2xEO0lBQ0YsQ0FBQztJQUNEOEIsVUFBVSxFQUFFQyxnQkFBZ0IsQ0FBQ2xDLEtBQUssRUFBRUMsTUFBTTtFQUM1QyxDQUFDO0FBQ0g7QUFDQTtBQUNBLFNBQVNpQyxnQkFBZ0JBLENBQ3ZCbEMsS0FBcUIsRUFDckI4QyxlQUFxRCxFQUNyRDtFQUNBLE9BQU85QyxLQUFLLENBQUNpQyxVQUFVLENBQUNjLE1BQU0sQ0FDNUJDLGdCQUFnQixJQUNkQSxnQkFBZ0IsQ0FBQ3pCLEdBQUcsS0FBS3VCLGVBQWUsQ0FBQ3ZCLEdBQUcsS0FDM0N5QixnQkFBZ0IsQ0FBQ3pDLElBQUksS0FBS1YsVUFBVSxHQUNuQ21ELGdCQUFnQixDQUFDcEMsSUFBSSxDQUFDQyxTQUFTLEtBQUtpQyxlQUFlLENBQUNsQyxJQUFJLENBQUNDLFNBQVMsR0FDbEVtQyxnQkFBZ0IsQ0FBQ3BDLElBQUksQ0FBQ2tCLElBQUksR0FBR2dCLGVBQWUsQ0FBQ2xDLElBQUksQ0FBQ2tCLElBQUksQ0FDNUQsQ0FBQztBQUNIIiwiaWdub3JlTGlzdCI6W119
|