@data-client/core 0.14.10 → 0.14.16
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 +7 -1
- package/data_client_logo_and_text.svg +9 -8
- package/dist/index.js +62 -40
- package/dist/index.umd.min.js +1 -1
- package/legacy/actionTypes.js +23 -12
- package/legacy/actions.js +1 -1
- package/legacy/controller/actions/createExpireAll.js +3 -3
- package/legacy/controller/actions/createFetch.js +3 -3
- package/legacy/controller/actions/createInvalidate.js +3 -3
- package/legacy/controller/actions/createInvalidateAll.js +3 -3
- package/legacy/controller/actions/createOptimistic.js +3 -3
- package/legacy/controller/actions/createReset.js +3 -3
- package/legacy/controller/actions/createSet.js +3 -3
- package/legacy/controller/actions/createSetResponse.js +3 -3
- package/legacy/controller/actions/createSubscription.js +4 -4
- package/legacy/index.js +2 -1
- package/legacy/manager/LogoutManager.js +3 -3
- package/legacy/manager/NetworkManager.js +6 -6
- package/legacy/manager/SubscriptionManager.js +4 -4
- package/legacy/state/reducer/createReducer.js +11 -11
- package/legacy/state/reducer/invalidateReducer.js +3 -3
- package/legacy/state/reducer/setResponseReducer.js +4 -4
- package/lib/actionTypes.d.ts +11 -0
- package/lib/actionTypes.d.ts.map +1 -1
- package/lib/actionTypes.js +23 -12
- package/lib/actions.d.ts +13 -12
- package/lib/actions.d.ts.map +1 -1
- package/lib/actions.js +1 -1
- package/lib/controller/Controller.d.ts +2 -2
- package/lib/controller/Controller.d.ts.map +1 -1
- package/lib/controller/actions/createExpireAll.js +3 -3
- package/lib/controller/actions/createFetch.js +3 -3
- package/lib/controller/actions/createInvalidate.js +3 -3
- package/lib/controller/actions/createInvalidateAll.js +3 -3
- package/lib/controller/actions/createOptimistic.js +3 -3
- package/lib/controller/actions/createReset.js +3 -3
- package/lib/controller/actions/createSet.js +3 -3
- package/lib/controller/actions/createSetResponse.js +3 -3
- package/lib/controller/actions/createSubscription.js +4 -4
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/manager/LogoutManager.js +3 -3
- package/lib/manager/NetworkManager.js +6 -6
- package/lib/manager/SubscriptionManager.js +4 -4
- package/lib/state/reducer/createReducer.js +11 -11
- package/lib/state/reducer/invalidateReducer.js +3 -3
- package/lib/state/reducer/setResponseReducer.js +4 -4
- package/package.json +2 -2
- package/src/actionTypes.ts +23 -11
- package/src/actions.ts +23 -22
- package/src/controller/actions/createExpireAll.ts +2 -2
- package/src/controller/actions/createFetch.ts +2 -2
- package/src/controller/actions/createInvalidate.ts +2 -2
- package/src/controller/actions/createInvalidateAll.ts +2 -2
- package/src/controller/actions/createOptimistic.ts +2 -2
- package/src/controller/actions/createReset.ts +2 -2
- package/src/controller/actions/createSet.ts +2 -2
- package/src/controller/actions/createSetResponse.ts +2 -2
- package/src/controller/actions/createSubscription.ts +3 -3
- package/src/index.ts +1 -0
- package/src/manager/LogoutManager.ts +2 -2
- package/src/manager/NetworkManager.ts +5 -5
- package/src/manager/SubscriptionManager.ts +3 -3
- package/src/manager/__tests__/logoutManager.ts +3 -3
- package/src/manager/__tests__/networkManager.ts +6 -6
- package/src/manager/__tests__/subscriptionManager.ts +4 -4
- package/src/state/__tests__/reducer.ts +22 -22
- package/src/state/reducer/createReducer.ts +18 -18
- package/src/state/reducer/invalidateReducer.ts +2 -2
- package/src/state/reducer/setResponseReducer.ts +3 -3
- package/ts3.4/actionTypes.d.ts +11 -0
- package/ts3.4/actions.d.ts +13 -12
- package/ts3.4/controller/Controller.d.ts +2 -2
- package/ts3.4/index.d.ts +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SET_RESPONSE, FETCH, RESET } from '../actionTypes.js';
|
|
2
2
|
import { createSetResponse } from '../controller/actions/index.js';
|
|
3
3
|
import Controller from '../controller/Controller.js';
|
|
4
4
|
export class ResetError extends Error {
|
|
@@ -31,7 +31,7 @@ export default class NetworkManager {
|
|
|
31
31
|
this.controller = controller;
|
|
32
32
|
return next => action => {
|
|
33
33
|
switch (action.type) {
|
|
34
|
-
case
|
|
34
|
+
case FETCH:
|
|
35
35
|
this.handleFetch(action);
|
|
36
36
|
// This is the only case that causes any state change
|
|
37
37
|
// It's important to intercept other fetches as we don't want to trigger reducers during
|
|
@@ -40,7 +40,7 @@ export default class NetworkManager {
|
|
|
40
40
|
return next(action);
|
|
41
41
|
}
|
|
42
42
|
return Promise.resolve();
|
|
43
|
-
case
|
|
43
|
+
case SET_RESPONSE:
|
|
44
44
|
// only set after new state is computed
|
|
45
45
|
return next(action).then(() => {
|
|
46
46
|
if (action.key in this.fetched) {
|
|
@@ -60,7 +60,7 @@ export default class NetworkManager {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
});
|
|
63
|
-
case
|
|
63
|
+
case RESET:
|
|
64
64
|
{
|
|
65
65
|
const rejectors = {
|
|
66
66
|
...this.rejectors
|
|
@@ -97,7 +97,7 @@ export default class NetworkManager {
|
|
|
97
97
|
/** Used by DevtoolsManager to determine whether to log an action */
|
|
98
98
|
skipLogging(action) {
|
|
99
99
|
/* istanbul ignore next */
|
|
100
|
-
return action.type ===
|
|
100
|
+
return action.type === FETCH && action.key in this.fetched;
|
|
101
101
|
}
|
|
102
102
|
allSettled() {
|
|
103
103
|
const fetches = Object.values(this.fetched);
|
|
@@ -254,4 +254,4 @@ export default class NetworkManager {
|
|
|
254
254
|
callback();
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRVRfUkVTUE9OU0VfVFlQRSIsIkZFVENIX1RZUEUiLCJSRVNFVF9UWVBFIiwiY3JlYXRlU2V0UmVzcG9uc2UiLCJDb250cm9sbGVyIiwiUmVzZXRFcnJvciIsIkVycm9yIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiTmV0d29ya01hbmFnZXIiLCJkYXRhRXhwaXJ5TGVuZ3RoIiwiZXJyb3JFeHBpcnlMZW5ndGgiLCJmZXRjaGVkIiwiT2JqZWN0IiwiY3JlYXRlIiwicmVzb2x2ZXJzIiwicmVqZWN0b3JzIiwiZmV0Y2hlZEF0IiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZUZldGNoIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJ1bmRlZmluZWQiLCJzaWRlRWZmZWN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwia2V5IiwiX2NvbnRyb2xsZXIkZ2V0U3RhdGUkIiwiZXJyb3IiLCJnZXRTdGF0ZSIsIm1ldGEiLCJoYW5kbGVTZXQiLCJhcmdzIiwicmVzcG9uc2UiLCJjbGVhckFsbCIsImsiLCJpbml0IiwiY2xlYW51cERhdGUiLCJjbGVhbnVwIiwiRGF0ZSIsIm5vdyIsInNraXBMb2dnaW5nIiwiYWxsU2V0dGxlZCIsImZldGNoZXMiLCJ2YWx1ZXMiLCJsZW5ndGgiLCJjbGVhciIsImNhdGNoIiwiZ2V0TGFzdFJlc2V0IiwibGFzdFJlc2V0IiwicmVqZWN0IiwidGhyb3R0bGUiLCJkZWZlcmVkRmV0Y2giLCJwcm9taXNlIiwicmVzb2x2ZVByb21pc2UiLCJkYXRhIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiaXNOYU4iLCJjb25zb2xlIiwicHJvbWlzZUhhbmRsZXIiLCJmZXRjaCIsImlkbGVDYWxsYmFjayIsInRpbWVvdXQiLCJjYWxsYmFjayIsIm9wdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9OZXR3b3JrTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTRVRfUkVTUE9OU0VfVFlQRSwgRkVUQ0hfVFlQRSwgUkVTRVRfVFlQRSB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCB7IGNyZWF0ZVNldFJlc3BvbnNlIH0gZnJvbSAnLi4vY29udHJvbGxlci9hY3Rpb25zL2luZGV4LmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEZldGNoQWN0aW9uLFxuICBNYW5hZ2VyLFxuICBBY3Rpb25UeXBlcyxcbiAgTWlkZGxld2FyZUFQSSxcbiAgTWlkZGxld2FyZSxcbiAgU2V0UmVzcG9uc2VBY3Rpb24sXG59IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFJlc2V0RXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIG5hbWUgPSAnUmVzZXRFcnJvcic7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0Fib3J0ZWQgZHVlIHRvIFJFU0VUJyk7XG4gIH1cbn1cblxuLyoqIEhhbmRsZXMgYWxsIGFzeW5jIG5ldHdvcmsgZGlzcGF0Y2hlc1xuICpcbiAqIERlZHVwZXMgY29uY3VycmVudCByZXF1ZXN0cyBieSBrZWVwaW5nIHRyYWNrIG9mIGFsbCBmZXRjaGVzIGluIGZsaWdodFxuICogYW5kIHJldHVybmluZyBleGlzdGluZyBwcm9taXNlcyBmb3IgcmVxdWVzdHMgYWxyZWFkeSBpbiBmbGlnaHQuXG4gKlxuICogSW50ZXJmYWNlcyB3aXRoIHN0b3JlIHZpYSBhIHJlZHV4LWNvbXBhdGlibGUgbWlkZGxld2FyZS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9OZXR3b3JrTWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXR3b3JrTWFuYWdlciBpbXBsZW1lbnRzIE1hbmFnZXIge1xuICBwcm90ZWN0ZWQgZmV0Y2hlZDogeyBbazogc3RyaW5nXTogUHJvbWlzZTxhbnk+IH0gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBwcm90ZWN0ZWQgcmVzb2x2ZXJzOiB7IFtrOiBzdHJpbmddOiAodmFsdWU/OiBhbnkpID0+IHZvaWQgfSA9IHt9O1xuICBwcm90ZWN0ZWQgcmVqZWN0b3JzOiB7IFtrOiBzdHJpbmddOiAodmFsdWU/OiBhbnkpID0+IHZvaWQgfSA9IHt9O1xuICBwcm90ZWN0ZWQgZmV0Y2hlZEF0OiB7IFtrOiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuICBkZWNsYXJlIHJlYWRvbmx5IGRhdGFFeHBpcnlMZW5ndGg6IG51bWJlcjtcbiAgZGVjbGFyZSByZWFkb25seSBlcnJvckV4cGlyeUxlbmd0aDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG4gIGRlY2xhcmUgY2xlYW51cERhdGU/OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoeyBkYXRhRXhwaXJ5TGVuZ3RoID0gNjAwMDAsIGVycm9yRXhwaXJ5TGVuZ3RoID0gMTAwMCB9ID0ge30pIHtcbiAgICB0aGlzLmRhdGFFeHBpcnlMZW5ndGggPSBkYXRhRXhwaXJ5TGVuZ3RoO1xuICAgIHRoaXMuZXJyb3JFeHBpcnlMZW5ndGggPSBlcnJvckV4cGlyeUxlbmd0aDtcbiAgfVxuXG4gIG1pZGRsZXdhcmU6IE1pZGRsZXdhcmUgPSBjb250cm9sbGVyID0+IHtcbiAgICB0aGlzLmNvbnRyb2xsZXIgPSBjb250cm9sbGVyO1xuICAgIHJldHVybiBuZXh0ID0+IGFjdGlvbiA9PiB7XG4gICAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgRkVUQ0hfVFlQRTpcbiAgICAgICAgICB0aGlzLmhhbmRsZUZldGNoKGFjdGlvbik7XG4gICAgICAgICAgLy8gVGhpcyBpcyB0aGUgb25seSBjYXNlIHRoYXQgY2F1c2VzIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBpbnRlcmNlcHQgb3RoZXIgZmV0Y2hlcyBhcyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgcmVkdWNlcnMgZHVyaW5nXG4gICAgICAgICAgLy8gcmVuZGVyIC0gc28gd2UgbmVlZCB0byBzdG9wICdyZWFkb25seScgZmV0Y2hlcyB3aGljaCBjYW4gYmUgdHJpZ2dlcmVkIGluIHJlbmRlclxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgYWN0aW9uLmVuZHBvaW50LnNpZGVFZmZlY3RcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgY2FzZSBTRVRfUkVTUE9OU0VfVFlQRTpcbiAgICAgICAgICAvLyBvbmx5IHNldCBhZnRlciBuZXcgc3RhdGUgaXMgY29tcHV0ZWRcbiAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5rZXkgaW4gdGhpcy5mZXRjaGVkKSB7XG4gICAgICAgICAgICAgIC8vIE5vdGU6IG1ldGEgKm11c3QqIGJlIHNldCBieSByZWR1Y2VyIHNvIHRoaXMgc2hvdWxkIGJlIHNhZmVcbiAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBjb250cm9sbGVyLmdldFN0YXRlKCkubWV0YVthY3Rpb24ua2V5XT8uZXJyb3I7XG4gICAgICAgICAgICAgIC8vIHByb2Nlc3NpbmcgZXJyb3JzIHJlc3VsdCBpbiBzdGF0ZSBtZXRhIGhhdmluZyBlcnJvciwgc28gd2Ugc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlzZVxuICAgICAgICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNldChcbiAgICAgICAgICAgICAgICAgIGNyZWF0ZVNldFJlc3BvbnNlKGFjdGlvbi5lbmRwb2ludCwge1xuICAgICAgICAgICAgICAgICAgICBhcmdzOiBhY3Rpb24uYXJncyxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IGVycm9yLFxuICAgICAgICAgICAgICAgICAgICBmZXRjaGVkQXQ6IGFjdGlvbi5tZXRhLmZldGNoZWRBdCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU2V0KGFjdGlvbik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSBSRVNFVF9UWVBFOiB7XG4gICAgICAgICAgY29uc3QgcmVqZWN0b3JzID0geyAuLi50aGlzLnJlamVjdG9ycyB9O1xuXG4gICAgICAgICAgdGhpcy5jbGVhckFsbCgpO1xuICAgICAgICAgIHJldHVybiBuZXh0KGFjdGlvbikudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAvLyB0aGVyZSBjb3VsZCBiZSBleHRlcm5hbCBsaXN0ZW5lcnMgdG8gdGhlIHByb21pc2VcbiAgICAgICAgICAgIC8vIHRoaXMgbXVzdCBoYXBwZW4gYWZ0ZXIgY29tbWl0IHNvIG91ciBvd24gcmVqZWN0b3Iga25vd3Mgbm90IHRvIGRpc3BhdGNoIGFuIGVycm9yIGJhc2VkIG9uIHRoaXNcbiAgICAgICAgICAgIGZvciAoY29uc3QgayBpbiByZWplY3RvcnMpIHtcbiAgICAgICAgICAgICAgcmVqZWN0b3JzW2tdKG5ldyBSZXNldEVycm9yKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIG5leHQoYWN0aW9uKTtcbiAgICAgIH1cbiAgICB9O1xuICB9O1xuXG4gIC8qKiBPbiBtb3VudCAqL1xuICBpbml0KCkge1xuICAgIGRlbGV0ZSB0aGlzLmNsZWFudXBEYXRlO1xuICB9XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHByb21pc2VzIGFyZSBjb21wbGV0ZWQgYnkgcmVqZWN0aW5nIHJlbWFpbmluZy4gKi9cbiAgY2xlYW51cCgpIHtcbiAgICAvLyBlbnN1cmUgbm8gZGlzcGF0Y2hlcyBhZnRlciB1bm1vdW50XG4gICAgLy8gdGhpcyBtdXN0IGJlIHJldmVyc2libGUgKGRvbmUgaW4gaW5pdCkgc28gdXNlRWZmZWN0KCkgcmVtYWlucyBzeW1tZXRyaWNcbiAgICB0aGlzLmNsZWFudXBEYXRlID0gRGF0ZS5ub3coKTtcbiAgfVxuXG4gIC8qKiBVc2VkIGJ5IERldnRvb2xzTWFuYWdlciB0byBkZXRlcm1pbmUgd2hldGhlciB0byBsb2cgYW4gYWN0aW9uICovXG4gIHNraXBMb2dnaW5nKGFjdGlvbjogQWN0aW9uVHlwZXMpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBhY3Rpb24udHlwZSA9PT0gRkVUQ0hfVFlQRSAmJiBhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZDtcbiAgfVxuXG4gIGFsbFNldHRsZWQoKSB7XG4gICAgY29uc3QgZmV0Y2hlcyA9IE9iamVjdC52YWx1ZXModGhpcy5mZXRjaGVkKTtcbiAgICBpZiAoZmV0Y2hlcy5sZW5ndGgpIHJldHVybiBQcm9taXNlLmFsbFNldHRsZWQoZmV0Y2hlcyk7XG4gIH1cblxuICAvKiogQ2xlYXIgYWxsIHByb21pc2Ugc3RhdGUgKi9cbiAgcHJvdGVjdGVkIGNsZWFyQWxsKCkge1xuICAgIGZvciAoY29uc3QgayBpbiB0aGlzLnJlamVjdG9ycykge1xuICAgICAgdGhpcy5jbGVhcihrKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2xlYXIgcHJvbWlzZSBzdGF0ZSBmb3IgYSBnaXZlbiBrZXkgKi9cbiAgcHJvdGVjdGVkIGNsZWFyKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5mZXRjaGVkW2tleV0uY2F0Y2goKCkgPT4ge30pO1xuICAgIGRlbGV0ZSB0aGlzLnJlc29sdmVyc1trZXldO1xuICAgIGRlbGV0ZSB0aGlzLnJlamVjdG9yc1trZXldO1xuICAgIGRlbGV0ZSB0aGlzLmZldGNoZWRba2V5XTtcbiAgICBkZWxldGUgdGhpcy5mZXRjaGVkQXRba2V5XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRMYXN0UmVzZXQoKSB7XG4gICAgaWYgKHRoaXMuY2xlYW51cERhdGUpIHJldHVybiB0aGlzLmNsZWFudXBEYXRlO1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2xsZXIuZ2V0U3RhdGUoKS5sYXN0UmVzZXQ7XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gbWlkZGxld2FyZSBpbnRlcmNlcHRzICdyZGMvZmV0Y2gnIGFjdGlvbi5cbiAgICpcbiAgICogV2lsbCB0aGVuIHN0YXJ0IGEgcHJvbWlzZSBmb3IgYSBrZXkgYW5kIHBvdGVudGlhbGx5IHN0YXJ0IHRoZSBuZXR3b3JrXG4gICAqIGZldGNoLlxuICAgKlxuICAgKiBVc2VzIHRocm90dGxlIGVuZHBvaW50cyB3aXRob3V0IHNpZGVFZmZlY3RzLiBUaGlzIGlzIHZhbHVhYmxlXG4gICAqIGZvciBlbnN1cmVzIG11dGF0aW9uIHJlcXVlc3RzIGFsd2F5cyBnbyB0aHJvdWdoLlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZUZldGNoKGFjdGlvbjogRmV0Y2hBY3Rpb24pIHtcbiAgICBjb25zdCB7IHJlc29sdmUsIHJlamVjdCwgZmV0Y2hlZEF0IH0gPSBhY3Rpb24ubWV0YTtcbiAgICBjb25zdCB0aHJvdHRsZSA9ICFhY3Rpb24uZW5kcG9pbnQuc2lkZUVmZmVjdDtcblxuICAgIGNvbnN0IGRlZmVyZWRGZXRjaCA9ICgpID0+IHtcbiAgICAgIGxldCBwcm9taXNlID0gYWN0aW9uLmVuZHBvaW50KC4uLmFjdGlvbi5hcmdzKTtcbiAgICAgIGNvbnN0IHJlc29sdmVQcm9taXNlID0gKFxuICAgICAgICBwcm9taXNlOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IG9iamVjdCB8IG51bGw+LFxuICAgICAgKSA9PlxuICAgICAgICBwcm9taXNlXG4gICAgICAgICAgLnRoZW4oZGF0YSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKGRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH0pO1xuICAgICAgLy8gc2NoZWR1bGUgbm9uLXRocm90dGxlZCByZXNvbHV0aW9ucyBpbiBhIG1pY3JvdGFzayBiZWZvcmUgc2V0XG4gICAgICAvLyB0aGlzIGVuYWJsZXMgdXNlcnMgYXdhaXRpbmcgdGhlaXIgZmV0Y2ggdG8gdHJpZ2dlciBhbnkgcmVhY3QgdXBkYXRlcyBuZWVkZWQgdG8gZGVhbFxuICAgICAgLy8gd2l0aCB1cGNvbWluZyBjaGFuZ2VzIGJlY2F1c2Ugb2YgdGhlIGZldGNoIChmb3IgaW5zdGFuY2UgYXZvaWRpbmcgc3VzcGVuc2UgaWYgc29tZXRoaW5nIGlzIGRlbGV0ZWQpXG4gICAgICBpZiAoIXRocm90dGxlKSB7XG4gICAgICAgIHByb21pc2UgPSByZXNvbHZlUHJvbWlzZShwcm9taXNlKTtcbiAgICAgIH1cbiAgICAgIHByb21pc2UgPSBwcm9taXNlXG4gICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBsZXQgbGFzdFJlc2V0ID0gdGhpcy5nZXRMYXN0UmVzZXQoKTtcblxuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaXNOYU4obGFzdFJlc2V0KSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgJ3N0YXRlLmxhc3RSZXNldCBpcyBOYU4uIE9ubHkgcG9zaXRpdmUgdGltZXN0YW1wcyBhcmUgdmFsaWQuJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsYXN0UmVzZXQgPSAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIGRvbid0IHVwZGF0ZSBzdGF0ZSB3aXRoIHByb21pc2VzIHN0YXJ0ZWQgYmVmb3JlIGxhc3QgY2xlYXJcbiAgICAgICAgICBpZiAoZmV0Y2hlZEF0ID49IGxhc3RSZXNldCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnJlc29sdmUoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgICAgZmV0Y2hlZEF0LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBjb25zdCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuICAgICAgICAgIC8vIGRvbid0IHVwZGF0ZSBzdGF0ZSB3aXRoIHByb21pc2VzIHN0YXJ0ZWQgYmVmb3JlIGxhc3QgY2xlYXJcbiAgICAgICAgICBpZiAoZmV0Y2hlZEF0ID49IGxhc3RSZXNldCkge1xuICAgICAgICAgICAgdGhpcy5jb250cm9sbGVyLnJlc29sdmUoYWN0aW9uLmVuZHBvaW50LCB7XG4gICAgICAgICAgICAgIGFyZ3M6IGFjdGlvbi5hcmdzLFxuICAgICAgICAgICAgICByZXNwb25zZTogZXJyb3IsXG4gICAgICAgICAgICAgIGZldGNoZWRBdCxcbiAgICAgICAgICAgICAgZXJyb3I6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH0pO1xuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfTtcblxuICAgIGlmICh0aHJvdHRsZSkge1xuICAgICAgcmV0dXJuIHRoaXMudGhyb3R0bGUoYWN0aW9uLmtleSwgZGVmZXJlZEZldGNoLCBmZXRjaGVkQXQpXG4gICAgICAgIC50aGVuKGRhdGEgPT4gcmVzb2x2ZShkYXRhKSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHJlamVjdChlcnJvcikpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGVmZXJlZEZldGNoKCkuY2F0Y2goKCkgPT4ge30pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiBtaWRkbGV3YXJlIGludGVyY2VwdHMgYSBzZXQgYWN0aW9uLlxuICAgKlxuICAgKiBXaWxsIHJlc29sdmUgdGhlIHByb21pc2UgYXNzb2NpYXRlZCB3aXRoIHNldCBrZXkuXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlU2V0KGFjdGlvbjogU2V0UmVzcG9uc2VBY3Rpb24pIHtcbiAgICAvLyB0aGlzIGNhbiBzdGlsbCB0dXJuIG91dCB0byBiZSB1bnRydWUgc2luY2UgdGhpcyBpcyBhc3luY1xuICAgIGlmIChhY3Rpb24ua2V5IGluIHRoaXMuZmV0Y2hlZCkge1xuICAgICAgbGV0IHByb21pc2VIYW5kbGVyOiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gICAgICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgICAgIHByb21pc2VIYW5kbGVyID0gdGhpcy5yZWplY3RvcnNbYWN0aW9uLmtleV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9taXNlSGFuZGxlciA9IHRoaXMucmVzb2x2ZXJzW2FjdGlvbi5rZXldO1xuICAgICAgfVxuICAgICAgcHJvbWlzZUhhbmRsZXIoYWN0aW9uLnJlc3BvbnNlKTtcbiAgICAgIC8vIHNpbmNlIHdlJ3JlIHJlc29sdmVkIHdlIG5vIGxvbmdlciBuZWVkIHRvIGtlZXAgdHJhY2sgb2YgdGhpcyBwcm9taXNlXG4gICAgICB0aGlzLmNsZWFyKGFjdGlvbi5rZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbnN1cmVzIG9ubHkgb25lIHJlcXVlc3QgZm9yIGEgZ2l2ZW4ga2V5IGlzIGluIGZsaWdodCBhdCBhbnkgdGltZVxuICAgKlxuICAgKiBVc2VzIGtleSB0byBlaXRoZXIgcmV0cmlldmUgaW4tZmxpZ2h0IHByb21pc2UsIG9yIGlmIG5vdFxuICAgKiBjcmVhdGUgYSBuZXcgcHJvbWlzZSBhbmQgY2FsbCBmZXRjaC5cbiAgICpcbiAgICogTm90ZTogVGhlIG5ldyBwcm9taXNlIGlzIG5vdCBhY3R1YWxseSB0aWVkIHRvIGZldGNoIGF0IGFsbCxcbiAgICogYnV0IGlzIHJlc29sdmVkIHdoZW4gdGhlIGV4cGVjdGVkICdyZWNpZXZlJyBhY3Rpb24gaXMgcHJvY2Vzc2VkLlxuICAgKiBUaGlzIGVuc3VyZXMgcHJvbWlzZXMgYXJlIHJlc29sdmVkIG9ubHkgb25jZSB0aGVpciBkYXRhIGlzIHByb2Nlc3NlZFxuICAgKiBieSB0aGUgcmVkdWNlci5cbiAgICovXG4gIHByb3RlY3RlZCB0aHJvdHRsZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBmZXRjaDogKCkgPT4gUHJvbWlzZTxhbnk+LFxuICAgIGZldGNoZWRBdDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCBsYXN0UmVzZXQgPSB0aGlzLmdldExhc3RSZXNldCgpO1xuICAgIC8vIHdlJ3JlIGFscmVhZHkgZmV0Y2hpbmcgc28gcmV1c2UgdGhlIHByb21pc2VcbiAgICAvLyBmZXRjaGVzIGFmdGVyIHJlc2V0IGRvIG5vdCBjb3VudFxuICAgIGlmIChrZXkgaW4gdGhpcy5mZXRjaGVkICYmIHRoaXMuZmV0Y2hlZEF0W2tleV0gPiBsYXN0UmVzZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLmZldGNoZWRba2V5XTtcbiAgICB9XG5cbiAgICB0aGlzLmZldGNoZWRba2V5XSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZXJzW2tleV0gPSByZXNvbHZlO1xuICAgICAgdGhpcy5yZWplY3RvcnNba2V5XSA9IHJlamVjdDtcbiAgICB9KTtcbiAgICB0aGlzLmZldGNoZWRBdFtrZXldID0gZmV0Y2hlZEF0O1xuXG4gICAgdGhpcy5pZGxlQ2FsbGJhY2soXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIHNpbmNlIG91ciByZWFsIHByb21pc2UgaXMgcmVzb2x2ZWQgdmlhIHRoZSB3cmFwUmVkdWNlcigpLFxuICAgICAgICAvLyB3ZSBzaG91bGQganVzdCBzdG9wIGFsbCBlcnJvcnMgaGVyZS5cbiAgICAgICAgLy8gVE9ETzogZGVjb3VwbGUgdGhpcyBmcm9tIHVzZUZldGNoZXIoKSAodGhhdCdzIHdoYXQncyBkaXNwYXRjaGluZyB0aGUgZXJyb3IgdGhlIHJlc29sdmVzIGluIGhlcmUpXG4gICAgICAgIGZldGNoKCkuY2F0Y2goKCkgPT4gbnVsbCk7XG4gICAgICB9LFxuICAgICAgeyB0aW1lb3V0OiA1MDAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hlZFtrZXldO1xuICB9XG5cbiAgLyoqIENhbGxzIHRoZSBjYWxsYmFjayB3aGVuIGNsaWVudCBpcyBub3QgJ2J1c3knIHdpdGggaGlnaCBwcmlvcml0eSBpbnRlcmFjdGlvbiB0YXNrc1xuICAgKlxuICAgKiBPdmVycmlkZSBmb3IgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZUNhbGxiYWNrKFxuICAgIGNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsXG4gICAgb3B0aW9ucz86IElkbGVSZXF1ZXN0T3B0aW9ucyxcbiAgKSB7XG4gICAgY2FsbGJhY2soKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxpQkFBaUIsRUFBRUMsVUFBVSxFQUFFQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzdFLFNBQVNDLGlCQUFpQixRQUFRLGdDQUFnQztBQUNsRSxPQUFPQyxVQUFVLE1BQU0sNkJBQTZCO0FBVXBELE9BQU8sTUFBTUMsVUFBVSxTQUFTQyxLQUFLLENBQUM7RUFHcENDLFdBQVdBLENBQUEsRUFBRztJQUNaLEtBQUss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
|
|
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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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SUBSCRIBE, UNSUBSCRIBE } from '../actionTypes.js';
|
|
2
2
|
import Controller from '../controller/Controller.js';
|
|
3
3
|
|
|
4
4
|
/** Interface handling a single resource subscription */
|
|
@@ -20,14 +20,14 @@ export default class SubscriptionManager {
|
|
|
20
20
|
this.controller = controller;
|
|
21
21
|
return next => action => {
|
|
22
22
|
switch (action.type) {
|
|
23
|
-
case
|
|
23
|
+
case SUBSCRIBE:
|
|
24
24
|
try {
|
|
25
25
|
this.handleSubscribe(action);
|
|
26
26
|
} catch (e) {
|
|
27
27
|
console.error(e);
|
|
28
28
|
}
|
|
29
29
|
return Promise.resolve();
|
|
30
|
-
case
|
|
30
|
+
case UNSUBSCRIBE:
|
|
31
31
|
this.handleUnsubscribe(action);
|
|
32
32
|
return Promise.resolve();
|
|
33
33
|
default:
|
|
@@ -75,4 +75,4 @@ export default class SubscriptionManager {
|
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVUJTQ1JJQkUiLCJVTlNVQlNDUklCRSIsIkNvbnRyb2xsZXIiLCJTdWJzY3JpcHRpb25NYW5hZ2VyIiwiY29uc3RydWN0b3IiLCJTdWJzY3JpcHRpb24iLCJzdWJzY3JpcHRpb25zIiwiY29udHJvbGxlciIsIm1pZGRsZXdhcmUiLCJuZXh0IiwiYWN0aW9uIiwidHlwZSIsImhhbmRsZVN1YnNjcmliZSIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJQcm9taXNlIiwicmVzb2x2ZSIsImhhbmRsZVVuc3Vic2NyaWJlIiwiY2xlYW51cCIsImtleSIsImZyZXF1ZW5jeSIsImVuZHBvaW50IiwicG9sbEZyZXF1ZW5jeSIsImFkZCIsImVtcHR5IiwicmVtb3ZlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXIvU3Vic2NyaXB0aW9uTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVUJTQ1JJQkUsIFVOU1VCU0NSSUJFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgTWFuYWdlcixcbiAgTWlkZGxld2FyZUFQSSxcbiAgTWlkZGxld2FyZSxcbiAgVW5zdWJzY3JpYmVBY3Rpb24sXG4gIFN1YnNjcmliZUFjdGlvbixcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIEFjdGlvbnMgPSBVbnN1YnNjcmliZUFjdGlvbiB8IFN1YnNjcmliZUFjdGlvbjtcblxuLyoqIEludGVyZmFjZSBoYW5kbGluZyBhIHNpbmdsZSByZXNvdXJjZSBzdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uIHtcbiAgYWRkKGZyZXF1ZW5jeT86IG51bWJlcik6IHZvaWQ7XG4gIHJlbW92ZShmcmVxdWVuY3k/OiBudW1iZXIpOiBib29sZWFuO1xuICBjbGVhbnVwKCk6IHZvaWQ7XG59XG5cbi8qKiBUaGUgc3RhdGljIGNsYXNzIHRoYXQgY29uc3RydWN0cyBTdWJzY3JpcHRpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSB7XG4gIG5ldyAoXG4gICAgYWN0aW9uOiBPbWl0PFN1YnNjcmliZUFjdGlvbiwgJ3R5cGUnPixcbiAgICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuICApOiBTdWJzY3JpcHRpb247XG59XG5cbi8qKiBIYW5kbGVzIHN1YnNjcmlwdGlvbiBhY3Rpb25zIC0+IGZldGNoIG9yIHNldCBhY3Rpb25zXG4gKlxuICogQ29uc3RydWN0b3IgdGFrZXMgYSBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlIGNsYXNzIHRvIGNvbnRyb2wgaG93XG4gKiBzdWJzY3JpcHRpb25zIGFyZSBoYW5kbGVkLiAoZS5nLiwgcG9sbGluZywgd2Vic29ja2V0cylcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9TdWJzY3JpcHRpb25NYW5hZ2VyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1YnNjcmlwdGlvbk1hbmFnZXI8XG4gIFMgZXh0ZW5kcyBTdWJzY3JpcHRpb25Db25zdHJ1Y3RhYmxlID0gU3Vic2NyaXB0aW9uQ29uc3RydWN0YWJsZSxcbj4gaW1wbGVtZW50cyBNYW5hZ2VyPEFjdGlvbnM+XG57XG4gIHByb3RlY3RlZCBzdWJzY3JpcHRpb25zOiB7XG4gICAgW2tleTogc3RyaW5nXTogSW5zdGFuY2VUeXBlPFM+O1xuICB9ID0ge307XG5cbiAgcHJvdGVjdGVkIGRlY2xhcmUgcmVhZG9ubHkgU3Vic2NyaXB0aW9uOiBTO1xuICBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlciA9IG5ldyBDb250cm9sbGVyKCk7XG5cbiAgY29uc3RydWN0b3IoU3Vic2NyaXB0aW9uOiBTKSB7XG4gICAgdGhpcy5TdWJzY3JpcHRpb24gPSBTdWJzY3JpcHRpb247XG4gIH1cblxuICBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlID0gY29udHJvbGxlciA9PiB7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICByZXR1cm4gbmV4dCA9PiBhY3Rpb24gPT4ge1xuICAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIFNVQlNDUklCRTpcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTdWJzY3JpYmUoYWN0aW9uKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIGNhc2UgVU5TVUJTQ1JJQkU6XG4gICAgICAgICAgdGhpcy5oYW5kbGVVbnN1YnNjcmliZShhY3Rpb24pO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbmV4dChhY3Rpb24pO1xuICAgICAgfVxuICAgIH07XG4gIH07XG5cbiAgLyoqIEVuc3VyZXMgYWxsIHN1YnNjcmlwdGlvbnMgYXJlIGNsZWFuZWQgdXAuICovXG4gIGNsZWFudXAoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5jbGVhbnVwKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3N1YnNjcmliZScgYWN0aW9uLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZVN1YnNjcmliZShhY3Rpb246IFN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cbiAgICBpZiAoa2V5IGluIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgY29uc3QgZnJlcXVlbmN5ID0gYWN0aW9uLmVuZHBvaW50LnBvbGxGcmVxdWVuY3k7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnNba2V5XS5hZGQoZnJlcXVlbmN5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zW2tleV0gPSBuZXcgdGhpcy5TdWJzY3JpcHRpb24oXG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgdGhpcy5jb250cm9sbGVyLFxuICAgICAgKSBhcyBJbnN0YW5jZVR5cGU8Uz47XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIG1pZGRsZXdhcmUgaW50ZXJjZXB0cyAncmRjL3Vuc3Vic2NyaWJlJyBhY3Rpb24uXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlVW5zdWJzY3JpYmUoYWN0aW9uOiBVbnN1YnNjcmliZUFjdGlvbikge1xuICAgIGNvbnN0IGtleSA9IGFjdGlvbi5rZXk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChrZXkgaW4gdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICBjb25zdCBmcmVxdWVuY3kgPSBhY3Rpb24uZW5kcG9pbnQucG9sbEZyZXF1ZW5jeTtcbiAgICAgIGNvbnN0IGVtcHR5ID0gdGhpcy5zdWJzY3JpcHRpb25zW2tleV0ucmVtb3ZlKGZyZXF1ZW5jeSk7XG4gICAgICBpZiAoZW1wdHkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuc3Vic2NyaXB0aW9uc1trZXldO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc29sZS5lcnJvcihgTWlzbWF0Y2hlZCB1bnN1YnNjcmliZTogJHtrZXl9IGlzIG5vdCBzdWJzY3JpYmVkYCk7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsRUFBRUMsV0FBVyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxVQUFVLE1BQU0s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
|
|
@@ -3,12 +3,12 @@ import { fetchReducer } from './fetchReducer.js';
|
|
|
3
3
|
import { invalidateReducer } from './invalidateReducer.js';
|
|
4
4
|
import { setReducer } from './setReducer.js';
|
|
5
5
|
import { setResponseReducer } from './setResponseReducer.js';
|
|
6
|
-
import {
|
|
6
|
+
import { SET, INVALIDATE, RESET, FETCH, GC, OPTIMISTIC, INVALIDATEALL, EXPIREALL, SET_RESPONSE } from '../../actionTypes.js';
|
|
7
7
|
export default function createReducer(controller) {
|
|
8
8
|
return function reducer(state, action) {
|
|
9
9
|
if (!state) state = initialState;
|
|
10
10
|
switch (action.type) {
|
|
11
|
-
case
|
|
11
|
+
case GC:
|
|
12
12
|
// inline deletes are fine as these should have 0 refcounts
|
|
13
13
|
action.entities.forEach(([key, pk]) => {
|
|
14
14
|
var _entities$key, _entityMeta$key;
|
|
@@ -20,20 +20,20 @@ export default function createReducer(controller) {
|
|
|
20
20
|
delete state.meta[fetchKey];
|
|
21
21
|
});
|
|
22
22
|
return state;
|
|
23
|
-
case
|
|
23
|
+
case FETCH:
|
|
24
24
|
return fetchReducer(state, action);
|
|
25
|
-
case
|
|
25
|
+
case OPTIMISTIC:
|
|
26
26
|
// eslint-disable-next-line no-fallthrough
|
|
27
|
-
case
|
|
27
|
+
case SET_RESPONSE:
|
|
28
28
|
return setResponseReducer(state, action, controller);
|
|
29
|
-
case
|
|
29
|
+
case SET:
|
|
30
30
|
return setReducer(state, action, controller);
|
|
31
|
-
case
|
|
32
|
-
case
|
|
31
|
+
case INVALIDATEALL:
|
|
32
|
+
case INVALIDATE:
|
|
33
33
|
return invalidateReducer(state, action);
|
|
34
|
-
case
|
|
34
|
+
case EXPIREALL:
|
|
35
35
|
return expireReducer(state, action);
|
|
36
|
-
case
|
|
36
|
+
case RESET:
|
|
37
37
|
return {
|
|
38
38
|
...initialState,
|
|
39
39
|
lastReset: action.date
|
|
@@ -54,4 +54,4 @@ export const initialState = {
|
|
|
54
54
|
optimistic: [],
|
|
55
55
|
lastReset: 0
|
|
56
56
|
};
|
|
57
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBpcmVSZWR1Y2VyIiwiZmV0Y2hSZWR1Y2VyIiwiaW52YWxpZGF0ZVJlZHVjZXIiLCJzZXRSZWR1Y2VyIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwiU0VUIiwiSU5WQUxJREFURSIsIlJFU0VUIiwiRkVUQ0giLCJHQyIsIk9QVElNSVNUSUMiLCJJTlZBTElEQVRFQUxMIiwiRVhQSVJFQUxMIiwiU0VUX1JFU1BPTlNFIiwiY3JlYXRlUmVkdWNlciIsImNvbnRyb2xsZXIiLCJyZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJpbml0aWFsU3RhdGUiLCJ0eXBlIiwiZW50aXRpZXMiLCJmb3JFYWNoIiwia2V5IiwicGsiLCJfZW50aXRpZXMka2V5IiwiX2VudGl0eU1ldGEka2V5IiwiZW50aXR5TWV0YSIsImVuZHBvaW50cyIsImZldGNoS2V5IiwibWV0YSIsImxhc3RSZXNldCIsImRhdGUiLCJpbmRleGVzIiwib3B0aW1pc3RpYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0ZS9yZWR1Y2VyL2NyZWF0ZVJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhwaXJlUmVkdWNlciB9IGZyb20gJy4vZXhwaXJlUmVkdWNlci5qcyc7XG5pbXBvcnQgeyBmZXRjaFJlZHVjZXIgfSBmcm9tICcuL2ZldGNoUmVkdWNlci5qcyc7XG5pbXBvcnQgeyBpbnZhbGlkYXRlUmVkdWNlciB9IGZyb20gJy4vaW52YWxpZGF0ZVJlZHVjZXIuanMnO1xuaW1wb3J0IHsgc2V0UmVkdWNlciB9IGZyb20gJy4vc2V0UmVkdWNlci5qcyc7XG5pbXBvcnQgeyBzZXRSZXNwb25zZVJlZHVjZXIgfSBmcm9tICcuL3NldFJlc3BvbnNlUmVkdWNlci5qcyc7XG5pbXBvcnQge1xuICBTRVQsXG4gIElOVkFMSURBVEUsXG4gIFJFU0VULFxuICBGRVRDSCxcbiAgR0MsXG4gIE9QVElNSVNUSUMsXG4gIElOVkFMSURBVEVBTEwsXG4gIEVYUElSRUFMTCxcbiAgU0VUX1JFU1BPTlNFLFxufSBmcm9tICcuLi8uLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7IEFjdGlvblR5cGVzLCBTdGF0ZSB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlUmVkdWNlcihjb250cm9sbGVyOiBDb250cm9sbGVyKTogUmVkdWNlclR5cGUge1xuICByZXR1cm4gZnVuY3Rpb24gcmVkdWNlcihcbiAgICBzdGF0ZTogU3RhdGU8dW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgYWN0aW9uOiBBY3Rpb25UeXBlcyxcbiAgKTogU3RhdGU8dW5rbm93bj4ge1xuICAgIGlmICghc3RhdGUpIHN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgR0M6XG4gICAgICAgIC8vIGlubGluZSBkZWxldGVzIGFyZSBmaW5lIGFzIHRoZXNlIHNob3VsZCBoYXZlIDAgcmVmY291bnRzXG4gICAgICAgIGFjdGlvbi5lbnRpdGllcy5mb3JFYWNoKChba2V5LCBwa10pID0+IHtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW50aXRpZXNba2V5XT8uW3BrXTtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW50aXR5TWV0YVtrZXldPy5bcGtdO1xuICAgICAgICB9KTtcbiAgICAgICAgYWN0aW9uLmVuZHBvaW50cy5mb3JFYWNoKGZldGNoS2V5ID0+IHtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW5kcG9pbnRzW2ZldGNoS2V5XTtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkubWV0YVtmZXRjaEtleV07XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICBjYXNlIEZFVENIOlxuICAgICAgICByZXR1cm4gZmV0Y2hSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuXG4gICAgICBjYXNlIE9QVElNSVNUSUM6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgIGNhc2UgU0VUX1JFU1BPTlNFOlxuICAgICAgICByZXR1cm4gc2V0UmVzcG9uc2VSZWR1Y2VyKHN0YXRlLCBhY3Rpb24sIGNvbnRyb2xsZXIpO1xuXG4gICAgICBjYXNlIFNFVDpcbiAgICAgICAgcmV0dXJuIHNldFJlZHVjZXIoc3RhdGUsIGFjdGlvbiwgY29udHJvbGxlcik7XG5cbiAgICAgIGNhc2UgSU5WQUxJREFURUFMTDpcbiAgICAgIGNhc2UgSU5WQUxJREFURTpcbiAgICAgICAgcmV0dXJuIGludmFsaWRhdGVSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuXG4gICAgICBjYXNlIEVYUElSRUFMTDpcbiAgICAgICAgcmV0dXJuIGV4cGlyZVJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG5cbiAgICAgIGNhc2UgUkVTRVQ6XG4gICAgICAgIHJldHVybiB7IC4uLmluaXRpYWxTdGF0ZSwgbGFzdFJlc2V0OiBhY3Rpb24uZGF0ZSB9O1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBBIHJlZHVjZXIgbXVzdCBhbHdheXMgcmV0dXJuIGEgdmFsaWQgc3RhdGUuXG4gICAgICAgIC8vIEFsdGVybmF0aXZlbHkgeW91IGNhbiB0aHJvdyBhbiBlcnJvciBpZiBhbiBpbnZhbGlkIGFjdGlvbiBpcyBkaXNwYXRjaGVkLlxuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9IGFzIGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogU3RhdGU8dW5rbm93bj4gPSB7XG4gIGVudGl0aWVzOiB7fSxcbiAgZW5kcG9pbnRzOiB7fSxcbiAgaW5kZXhlczoge30sXG4gIG1ldGE6IHt9LFxuICBlbnRpdHlNZXRhOiB7fSxcbiAgb3B0aW1pc3RpYzogW10sXG4gIGxhc3RSZXNldDogMCxcbn07XG5cbnR5cGUgUmVkdWNlclR5cGUgPSAoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPiB8IHVuZGVmaW5lZCxcbiAgYWN0aW9uOiBBY3Rpb25UeXBlcyxcbikgPT4gU3RhdGU8dW5rbm93bj47XG5cbnR5cGUgV3JpdGFibGU8VD4gPSB7IFtQIGluIGtleW9mIFRdOiBOb25OdWxsYWJsZTxXcml0YWJsZTxUW1BdPj4gfTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxRQUFRLG9CQUFvQjtBQUNsRCxTQUFTQyxZQUFZLFFBQVEsbUJBQW1CO0FBQ2hELFNBQVNDLGlCQUFpQixRQUFRLHdCQUF3QjtBQUMxRCxTQUFTQyxVQUFVLFFBQVEsaUJBQWlCO0FBQzVDLFNBQVNDLGtCQUFrQixRQUFRLHlCQUF5QjtBQUM1RCxTQUNFQyxHQUFHLEVBQ0hDLFVBQVUsRUFDVkMsS0FBSyxFQUNMQyxLQUFLLEVBQ0xDLEVBQUUsRUFDRkMsVUFBVSxFQUNWQyxhQUFhLEVBQ2JDLFNBQVMsRUFDVEMsWUFBWSxRQUNQLHNCQUFzQjtBQUk3QixlQUFlLFNBQVNDLGFBQWFBLENBQUNDLFVBQXNCLEVBQWU7RUFDekUsT0FBTyxTQUFTQyxPQUFPQSxDQUNyQkMsS0FBaUMsRUFDakNDLE1BQW1CLEVBQ0g7SUFDaEIsSUFBSSxDQUFDRCxLQUFLLEVBQUVBLEtBQUssR0FBR0UsWUFBWTtJQUNoQyxRQUFRRCxNQUFNLENBQUNFLElBQUk7TUFDakIsS0FBS1gsRUFBRTtRQUNMO1FBQ0FTLE1BQU0sQ0FBQ0csUUFBUSxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDQyxHQUFHLEVBQUVDLEVBQUUsQ0FBQyxLQUFLO1VBQUEsSUFBQUMsYUFBQSxFQUFBQyxlQUFBO1VBQ3JDLENBQUFELGFBQUEsR0FBUVIsS0FBSyxDQUFTSSxRQUFRLENBQUNFLEdBQUcsQ0FBQyxhQUFuQyxPQUFPRSxhQUFBLENBQStCRCxFQUFFLENBQUM7VUFDekMsQ0FBQUUsZUFBQSxHQUFRVCxLQUFLLENBQVNVLFVBQVUsQ0FBQ0osR0FBRyxDQUFDLGFBQXJDLE9BQU9HLGVBQUEsQ0FBaUNGLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUM7UUFDRk4sTUFBTSxDQUFDVSxTQUFTLENBQUNOLE9BQU8sQ0FBQ08sUUFBUSxJQUFJO1VBQ25DLE9BQVFaLEtBQUssQ0FBU1csU0FBUyxDQUFDQyxRQUFRLENBQUM7VUFDekMsT0FBUVosS0FBSyxDQUFTYSxJQUFJLENBQUNELFFBQVEsQ0FBQztRQUN0QyxDQUFDLENBQUM7UUFDRixPQUFPWixLQUFLO01BQ2QsS0FBS1QsS0FBSztRQUNSLE9BQU9QLFlBQVksQ0FBQ2dCLEtBQUssRUFBRUMsTUFBTSxDQUFDO01BRXBDLEtBQUtSLFVBQVU7TUFDZjtNQUNBLEtBQUtHLFlBQVk7UUFDZixPQUFPVCxrQkFBa0IsQ0FBQ2EsS0FBSyxFQUFFQyxNQUFNLEVBQUVILFVBQVUsQ0FBQztNQUV0RCxLQUFLVixHQUFHO1FBQ04sT0FBT0YsVUFBVSxDQUFDYyxLQUFLLEVBQUVDLE1BQU0sRUFBRUgsVUFBVSxDQUFDO01BRTlDLEtBQUtKLGFBQWE7TUFDbEIsS0FBS0wsVUFBVTtRQUNiLE9BQU9KLGlCQUFpQixDQUFDZSxLQUFLLEVBQUVDLE1BQU0sQ0FBQztNQUV6QyxLQUFLTixTQUFTO1FBQ1osT0FBT1osYUFBYSxDQUFDaUIsS0FBSyxFQUFFQyxNQUFNLENBQUM7TUFFckMsS0FBS1gsS0FBSztRQUNSLE9BQU87VUFBRSxHQUFHWSxZQUFZO1VBQUVZLFNBQVMsRUFBRWIsTUFBTSxDQUFDYztRQUFLLENBQUM7TUFFcEQ7UUFDRTtRQUNBO1FBQ0EsT0FBT2YsS0FBSztJQUNoQjtFQUNGLENBQUM7QUFDSDtBQUVBLE9BQU8sTUFBTUUsWUFBNEIsR0FBRztFQUMxQ0UsUUFBUSxFQUFFLENBQUMsQ0FBQztFQUNaTyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0VBQ2JLLE9BQU8sRUFBRSxDQUFDLENBQUM7RUFDWEgsSUFBSSxFQUFFLENBQUMsQ0FBQztFQUNSSCxVQUFVLEVBQUUsQ0FBQyxDQUFDO0VBQ2RPLFVBQVUsRUFBRSxFQUFFO0VBQ2RILFNBQVMsRUFBRTtBQUNiLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { INVALIDATE } from '../../actionTypes.js';
|
|
2
2
|
export function invalidateReducer(state, action) {
|
|
3
3
|
const endpoints = {
|
|
4
4
|
...state.endpoints
|
|
@@ -16,7 +16,7 @@ export function invalidateReducer(state, action) {
|
|
|
16
16
|
delete itemMeta.error;
|
|
17
17
|
meta[key] = itemMeta;
|
|
18
18
|
};
|
|
19
|
-
if (action.type ===
|
|
19
|
+
if (action.type === INVALIDATE) {
|
|
20
20
|
invalidateKey(action.key);
|
|
21
21
|
} else {
|
|
22
22
|
Object.keys(endpoints).forEach(key => {
|
|
@@ -31,4 +31,4 @@ export function invalidateReducer(state, action) {
|
|
|
31
31
|
meta
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJTlZBTElEQVRFIiwiaW52YWxpZGF0ZVJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsImVuZHBvaW50cyIsIm1ldGEiLCJpbnZhbGlkYXRlS2V5Iiwia2V5IiwiaXRlbU1ldGEiLCJleHBpcmVzQXQiLCJpbnZhbGlkYXRlZCIsImVycm9yIiwidHlwZSIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwidGVzdEtleSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0ZS9yZWR1Y2VyL2ludmFsaWRhdGVSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElOVkFMSURBVEUgfSBmcm9tICcuLi8uLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFN0YXRlLFxuICBJbnZhbGlkYXRlQWxsQWN0aW9uLFxuICBJbnZhbGlkYXRlQWN0aW9uLFxufSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlUmVkdWNlcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IEludmFsaWRhdGVBY3Rpb24gfCBJbnZhbGlkYXRlQWxsQWN0aW9uLFxuKSB7XG4gIGNvbnN0IGVuZHBvaW50cyA9IHsgLi4uc3RhdGUuZW5kcG9pbnRzIH07XG4gIGNvbnN0IG1ldGEgPSB7IC4uLnN0YXRlLm1ldGEgfTtcbiAgY29uc3QgaW52YWxpZGF0ZUtleSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgIGRlbGV0ZSBlbmRwb2ludHNba2V5XTtcbiAgICBjb25zdCBpdGVtTWV0YSA9IHtcbiAgICAgIC4uLm1ldGFba2V5XSxcbiAgICAgIGV4cGlyZXNBdDogMCxcbiAgICAgIGludmFsaWRhdGVkOiB0cnVlLFxuICAgIH07XG4gICAgZGVsZXRlIGl0ZW1NZXRhLmVycm9yO1xuICAgIG1ldGFba2V5XSA9IGl0ZW1NZXRhO1xuICB9O1xuICBpZiAoYWN0aW9uLnR5cGUgPT09IElOVkFMSURBVEUpIHtcbiAgICBpbnZhbGlkYXRlS2V5KGFjdGlvbi5rZXkpO1xuICB9IGVsc2Uge1xuICAgIE9iamVjdC5rZXlzKGVuZHBvaW50cykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGFjdGlvbi50ZXN0S2V5KGtleSkpIHtcbiAgICAgICAgaW52YWxpZGF0ZUtleShrZXkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBlbmRwb2ludHMsXG4gICAgbWV0YSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLHNCQUFzQjtBQU9qRCxPQUFPLFNBQVNDLGlCQUFpQkEsQ0FDL0JDLEtBQXFCLEVBQ3JCQyxNQUE4QyxFQUM5QztFQUNBLE1BQU1DLFNBQVMsR0FBRztJQUFFLEdBQUdGLEtBQUssQ0FBQ0U7RUFBVSxDQUFDO0VBQ3hDLE1BQU1DLElBQUksR0FBRztJQUFFLEdBQUdILEtBQUssQ0FBQ0c7RUFBSyxDQUFDO0VBQzlCLE1BQU1DLGFBQWEsR0FBSUMsR0FBVyxJQUFLO0lBQ3JDLE9BQU9ILFNBQVMsQ0FBQ0csR0FBRyxDQUFDO0lBQ3JCLE1BQU1DLFFBQVEsR0FBRztNQUNmLEdBQUdILElBQUksQ0FBQ0UsR0FBRyxDQUFDO01BQ1pFLFNBQVMsRUFBRSxDQUFDO01BQ1pDLFdBQVcsRUFBRTtJQUNmLENBQUM7SUFDRCxPQUFPRixRQUFRLENBQUNHLEtBQUs7SUFDckJOLElBQUksQ0FBQ0UsR0FBRyxDQUFDLEdBQUdDLFFBQVE7RUFDdEIsQ0FBQztFQUNELElBQUlMLE1BQU0sQ0FBQ1MsSUFBSSxLQUFLWixVQUFVLEVBQUU7SUFDOUJNLGFBQWEsQ0FBQ0gsTUFBTSxDQUFDSSxHQUFHLENBQUM7RUFDM0IsQ0FBQyxNQUFNO0lBQ0xNLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDVixTQUFTLENBQUMsQ0FBQ1csT0FBTyxDQUFDUixHQUFHLElBQUk7TUFDcEMsSUFBSUosTUFBTSxDQUFDYSxPQUFPLENBQUNULEdBQUcsQ0FBQyxFQUFFO1FBQ3ZCRCxhQUFhLENBQUNDLEdBQUcsQ0FBQztNQUNwQjtJQUNGLENBQUMsQ0FBQztFQUNKO0VBRUEsT0FBTztJQUNMLEdBQUdMLEtBQUs7SUFDUkUsU0FBUztJQUNUQztFQUNGLENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { normalize } from '@data-client/normalizr';
|
|
2
|
-
import {
|
|
2
|
+
import { OPTIMISTIC } from '../../actionTypes.js';
|
|
3
3
|
import AbortOptimistic from '../../controller/AbortOptimistic.js';
|
|
4
4
|
export function setResponseReducer(state, action, controller) {
|
|
5
5
|
if (action.error) {
|
|
@@ -9,7 +9,7 @@ export function setResponseReducer(state, action, controller) {
|
|
|
9
9
|
var _state$meta$action$ke;
|
|
10
10
|
let response;
|
|
11
11
|
// for true set's response is contained in action
|
|
12
|
-
if (action.type ===
|
|
12
|
+
if (action.type === OPTIMISTIC) {
|
|
13
13
|
// this should never happen
|
|
14
14
|
/* istanbul ignore if */
|
|
15
15
|
if (!action.endpoint.getOptimisticResponse) return state;
|
|
@@ -107,6 +107,6 @@ function reduceError(state, action, error) {
|
|
|
107
107
|
}
|
|
108
108
|
/** Filter all requests with same serialization that did not start after the resolving request */
|
|
109
109
|
function filterOptimistic(state, resolvingAction) {
|
|
110
|
-
return state.optimistic.filter(optimisticAction => optimisticAction.key !== resolvingAction.key || (optimisticAction.type ===
|
|
110
|
+
return state.optimistic.filter(optimisticAction => optimisticAction.key !== resolvingAction.key || (optimisticAction.type === OPTIMISTIC ? optimisticAction.meta.fetchedAt !== resolvingAction.meta.fetchedAt : optimisticAction.meta.date > resolvingAction.meta.date));
|
|
111
111
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDX1RZUEUiLCJBYm9ydE9wdGltaXN0aWMiLCJzZXRSZXNwb25zZVJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsImNvbnRyb2xsZXIiLCJlcnJvciIsInJlZHVjZUVycm9yIiwicmVzcG9uc2UiLCJfc3RhdGUkbWV0YSRhY3Rpb24ka2UiLCJ0eXBlIiwiZW5kcG9pbnQiLCJnZXRPcHRpbWlzdGljUmVzcG9uc2UiLCJjYWxsIiwic25hcHNob3QiLCJtZXRhIiwiZmV0Y2hlZEF0IiwiYXJncyIsImUiLCJjb25zdHJ1Y3RvciIsInJlc3VsdCIsImVudGl0aWVzIiwiaW5kZXhlcyIsImVudGl0eU1ldGEiLCJzY2hlbWEiLCJlbmRwb2ludHMiLCJrZXkiLCJ1cGRhdGUiLCJ1cGRhdGVycyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiY29uc29sZSIsImRhdGUiLCJleHBpcmVzQXQiLCJwcmV2RXhwaXJlc0F0Iiwib3B0aW1pc3RpYyIsImZpbHRlck9wdGltaXN0aWMiLCJsYXN0UmVzZXQiLCJtZXNzYWdlIiwiSlNPTiIsInN0cmluZ2lmeSIsInVuZGVmaW5lZCIsInN0YXR1cyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIm5hbWUiLCJlcnJvclBvbGljeSIsInJlc29sdmluZ0FjdGlvbiIsImZpbHRlciIsIm9wdGltaXN0aWNBY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGUvcmVkdWNlci9zZXRSZXNwb25zZVJlZHVjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCB7IE9QVElNSVNUSUNfVFlQRSB9IGZyb20gJy4uLy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCBBYm9ydE9wdGltaXN0aWMgZnJvbSAnLi4vLi4vY29udHJvbGxlci9BYm9ydE9wdGltaXN0aWMuanMnO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tICcuLi8uLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBTdGF0ZSxcbiAgU2V0UmVzcG9uc2VBY3Rpb24sXG4gIE9wdGltaXN0aWNBY3Rpb24sXG59IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlc3BvbnNlUmVkdWNlcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IE9wdGltaXN0aWNBY3Rpb24gfCBTZXRSZXNwb25zZUFjdGlvbixcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbikge1xuICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGFjdGlvbi5yZXNwb25zZSk7XG4gIH1cbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2U6IGFueTtcbiAgICAvLyBmb3IgdHJ1ZSBzZXQncyByZXNwb25zZSBpcyBjb250YWluZWQgaW4gYWN0aW9uXG4gICAgaWYgKGFjdGlvbi50eXBlID09PSBPUFRJTUlTVElDX1RZUEUpIHtcbiAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoIWFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UpIHJldHVybiBzdGF0ZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGNvbXB1dGUgb3B0aW1pc3RpYyByZXNwb25zZSBiYXNlZCBvbiBjdXJyZW50IHN0YXRlXG4gICAgICAgIHJlc3BvbnNlID0gYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZS5jYWxsKFxuICAgICAgICAgIGFjdGlvbi5lbmRwb2ludCxcbiAgICAgICAgICBjb250cm9sbGVyLnNuYXBzaG90KHN0YXRlLCBhY3Rpb24ubWV0YS5mZXRjaGVkQXQpLFxuICAgICAgICAgIC4uLmFjdGlvbi5hcmdzLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIC8vIEFib3J0T3B0aW1pc3RpYyBtZWFucyAnZG8gbm90aGluZycsIG90aGVyd2lzZSB3ZSBjb3VudCB0aGUgZXhjZXB0aW9uIGFzIGVuZHBvaW50IGZhaWx1cmVcbiAgICAgICAgaWYgKGUuY29uc3RydWN0b3IgPT09IEFib3J0T3B0aW1pc3RpYykge1xuICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZSA9IGFjdGlvbi5yZXNwb25zZTtcbiAgICB9XG4gICAgY29uc3QgeyByZXN1bHQsIGVudGl0aWVzLCBpbmRleGVzLCBlbnRpdHlNZXRhIH0gPSBub3JtYWxpemUoXG4gICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBhY3Rpb24uYXJncyxcbiAgICAgIHN0YXRlLFxuICAgICAgYWN0aW9uLm1ldGEsXG4gICAgKTtcbiAgICBjb25zdCBlbmRwb2ludHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgLi4uc3RhdGUuZW5kcG9pbnRzLFxuICAgICAgW2FjdGlvbi5rZXldOiByZXN1bHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgaWYgKGFjdGlvbi5lbmRwb2ludC51cGRhdGUpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlcnMgPSBhY3Rpb24uZW5kcG9pbnQudXBkYXRlKHJlc3VsdCwgLi4uYWN0aW9uLmFyZ3MpO1xuICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIGVuZHBvaW50c1trZXldID0gdXBkYXRlcnNba2V5XShlbmRwb2ludHNba2V5XSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gbm8gcmVhc29uIHRvIGNvbXBsZXRlbHkgZmFpbCBiZWNhdXNlIG9mIHVzZXItY29kZSBlcnJvclxuICAgICAgLy8gaW50ZWdyaXR5IG9mIHRoaXMgc3RhdGUgdXBkYXRlIGlzIHN0aWxsIGd1YXJhbnRlZWRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgZXJyb3Igb2NjdXJlZCBkdXJpbmcgRW5kcG9pbnQudXBkYXRlKCkgZm9yICR7YWN0aW9uLmtleX1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBlbmRwb2ludHMsXG4gICAgICBpbmRleGVzLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgICBbYWN0aW9uLmtleV06IHtcbiAgICAgICAgICBkYXRlOiBhY3Rpb24ubWV0YS5kYXRlLFxuICAgICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICAgIHByZXZFeHBpcmVzQXQ6IHN0YXRlLm1ldGFbYWN0aW9uLmtleV0/LmV4cGlyZXNBdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBlbnRpdHlNZXRhLFxuICAgICAgb3B0aW1pc3RpYzogZmlsdGVyT3B0aW1pc3RpYyhzdGF0ZSwgYWN0aW9uKSxcbiAgICAgIGxhc3RSZXNldDogc3RhdGUubGFzdFJlc2V0LFxuICAgIH07XG4gICAgLy8gcmVkdWNlciBtdXN0IHVwZGF0ZSB0aGUgc3RhdGUsIHNvIGluIGNhc2Ugb2YgcHJvY2Vzc2luZyBlcnJvcnMgd2Ugc2ltcGx5IGNvbXB1dGUgdGhlIGVuZHBvaW50cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLmtleVxuICAgICAgfVxcblxcbkZ1bGwgU2NoZW1hOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIDIsXG4gICAgICApfVxcblxcbkVycm9yOlxcbiR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgaWYgKCdyZXNwb25zZScgaW4gYWN0aW9uKSBlcnJvci5yZXNwb25zZSA9IGFjdGlvbi5yZXNwb25zZTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGlzIG5vdCBhbHdheXMgYnViYmxlZCB1cCwgc28gbGV0J3MgZG91YmxlIHN1cmUgdGhpcyBkb2Vzbid0IGZhaWwgc2lsZW50bHlcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGVycm9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWR1Y2VFcnJvcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRlcyB1c2VSZXNvdXJjZSgpIGNvdWxkIHN1c3BlbmQgZm9yZXZlci5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZXRhOiB7XG4gICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgW2FjdGlvbi5rZXldOiB7XG4gICAgICAgIGRhdGU6IGFjdGlvbi5tZXRhLmRhdGUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgZXJyb3JQb2xpY3k6IGFjdGlvbi5lbmRwb2ludC5lcnJvclBvbGljeT8uKGVycm9yKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICB9O1xufVxuLyoqIEZpbHRlciBhbGwgcmVxdWVzdHMgd2l0aCBzYW1lIHNlcmlhbGl6YXRpb24gdGhhdCBkaWQgbm90IHN0YXJ0IGFmdGVyIHRoZSByZXNvbHZpbmcgcmVxdWVzdCAqL1xuZnVuY3Rpb24gZmlsdGVyT3B0aW1pc3RpYyhcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICByZXNvbHZpbmdBY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbikge1xuICByZXR1cm4gc3RhdGUub3B0aW1pc3RpYy5maWx0ZXIoXG4gICAgb3B0aW1pc3RpY0FjdGlvbiA9PlxuICAgICAgb3B0aW1pc3RpY0FjdGlvbi5rZXkgIT09IHJlc29sdmluZ0FjdGlvbi5rZXkgfHxcbiAgICAgIChvcHRpbWlzdGljQWN0aW9uLnR5cGUgPT09IE9QVElNSVNUSUNfVFlQRSA/XG4gICAgICAgIG9wdGltaXN0aWNBY3Rpb24ubWV0YS5mZXRjaGVkQXQgIT09IHJlc29sdmluZ0FjdGlvbi5tZXRhLmZldGNoZWRBdFxuICAgICAgOiBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZGF0ZSA+IHJlc29sdmluZ0FjdGlvbi5tZXRhLmRhdGUpLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxTQUFTLFFBQVEsd0JBQXdCO0FBRWxELFNBQVNDLGVBQWUsUUFBUSxzQkFBc0I7QUFDdEQsT0FBT0MsZUFBZSxNQUFNLHFDQUFxQztBQVFqRSxPQUFPLFNBQVNDLGtCQUFrQkEsQ0FDaENDLEtBQXFCLEVBQ3JCQyxNQUE0QyxFQUM1Q0MsVUFBc0IsRUFDdEI7RUFDQSxJQUFJRCxNQUFNLENBQUNFLEtBQUssRUFBRTtJQUNoQixPQUFPQyxXQUFXLENBQUNKLEtBQUssRUFBRUMsTUFBTSxFQUFFQSxNQUFNLENBQUNJLFFBQVEsQ0FBQztFQUNwRDtFQUNBLElBQUk7SUFBQSxJQUFBQyxxQkFBQTtJQUNGLElBQUlELFFBQWE7SUFDakI7SUFDQSxJQUFJSixNQUFNLENBQUNNLElBQUksS0FBS1YsZUFBZSxFQUFFO01BQ25DO01BQ0E7TUFDQSxJQUFJLENBQUNJLE1BQU0sQ0FBQ08sUUFBUSxDQUFDQyxxQkFBcUIsRUFBRSxPQUFPVCxLQUFLO01BQ3hELElBQUk7UUFDRjtRQUNBSyxRQUFRLEdBQUdKLE1BQU0sQ0FBQ08sUUFBUSxDQUFDQyxxQkFBcUIsQ0FBQ0MsSUFBSSxDQUNuRFQsTUFBTSxDQUFDTyxRQUFRLEVBQ2ZOLFVBQVUsQ0FBQ1MsUUFBUSxDQUFDWCxLQUFLLEVBQUVDLE1BQU0sQ0FBQ1csSUFBSSxDQUFDQyxTQUFTLENBQUMsRUFDakQsR0FBR1osTUFBTSxDQUFDYSxJQUNaLENBQUM7TUFDSCxDQUFDLENBQUMsT0FBT0MsQ0FBTSxFQUFFO1FBQ2Y7UUFDQSxJQUFJQSxDQUFDLENBQUNDLFdBQVcsS0FBS2xCLGVBQWUsRUFBRTtVQUNyQyxPQUFPRSxLQUFLO1FBQ2Q7UUFDQSxNQUFNZSxDQUFDO01BQ1Q7SUFDRixDQUFDLE1BQU07TUFDTFYsUUFBUSxHQUFHSixNQUFNLENBQUNJLFFBQVE7SUFDNUI7SUFDQSxNQUFNO01BQUVZLE1BQU07TUFBRUMsUUFBUTtNQUFFQyxPQUFPO01BQUVDO0lBQVcsQ0FBQyxHQUFHeEIsU0FBUyxDQUN6REssTUFBTSxDQUFDTyxRQUFRLENBQUNhLE1BQU0sRUFDdEJoQixRQUFRLEVBQ1JKLE1BQU0sQ0FBQ2EsSUFBSSxFQUNYZCxLQUFLLEVBQ0xDLE1BQU0sQ0FBQ1csSUFDVCxDQUFDO0lBQ0QsTUFBTVUsU0FBa0MsR0FBRztNQUN6QyxHQUFHdEIsS0FBSyxDQUFDc0IsU0FBUztNQUNsQixDQUFDckIsTUFBTSxDQUFDc0IsR0FBRyxHQUFHTjtJQUNoQixDQUFDO0lBQ0QsSUFBSTtNQUNGLElBQUloQixNQUFNLENBQUNPLFFBQVEsQ0FBQ2dCLE1BQU0sRUFBRTtRQUMxQixNQUFNQyxRQUFRLEdBQUd4QixNQUFNLENBQUNPLFFBQVEsQ0FBQ2dCLE1BQU0sQ0FBQ1AsTUFBTSxFQUFFLEdBQUdoQixNQUFNLENBQUNhLElBQUksQ0FBQztRQUMvRFksTUFBTSxDQUFDQyxJQUFJLENBQUNGLFFBQVEsQ0FBQyxDQUFDRyxPQUFPLENBQUNMLEdBQUcsSUFBSTtVQUNuQ0QsU0FBUyxDQUFDQyxHQUFHLENBQUMsR0FBR0UsUUFBUSxDQUFDRixHQUFHLENBQUMsQ0FBQ0QsU0FBUyxDQUFDQyxHQUFHLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUM7TUFDSjtNQUNBO01BQ0E7SUFDRixDQUFDLENBQUMsT0FBT3BCLEtBQUssRUFBRTtNQUNkMEIsT0FBTyxDQUFDMUIsS0FBSyxDQUNYLDREQUE0REYsTUFBTSxDQUFDc0IsR0FBRyxFQUN4RSxDQUFDO01BQ0RNLE9BQU8sQ0FBQzFCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQ3RCO0lBQ0EsT0FBTztNQUNMZSxRQUFRO01BQ1JJLFNBQVM7TUFDVEgsT0FBTztNQUNQUCxJQUFJLEVBQUU7UUFDSixHQUFHWixLQUFLLENBQUNZLElBQUk7UUFDYixDQUFDWCxNQUFNLENBQUNzQixHQUFHLEdBQUc7VUFDWk8sSUFBSSxFQUFFN0IsTUFBTSxDQUFDVyxJQUFJLENBQUNrQixJQUFJO1VBQ3RCQyxTQUFTLEVBQUU5QixNQUFNLENBQUNXLElBQUksQ0FBQ21CLFNBQVM7VUFDaENDLGFBQWEsR0FBQTFCLHFCQUFBLEdBQUVOLEtBQUssQ0FBQ1ksSUFBSSxDQUFDWCxNQUFNLENBQUNzQixHQUFHLENBQUMscUJBQXRCakIscUJBQUEsQ0FBd0J5QjtRQUN6QztNQUNGLENBQUM7TUFDRFgsVUFBVTtNQUNWYSxVQUFVLEVBQUVDLGdCQUFnQixDQUFDbEMsS0FBSyxFQUFFQyxNQUFNLENBQUM7TUFDM0NrQyxTQUFTLEVBQUVuQyxLQUFLLENBQUNtQztJQUNuQixDQUFDO0lBQ0Q7RUFDRixDQUFDLENBQUMsT0FBT2hDLEtBQVUsRUFBRTtJQUNuQixJQUFJLE9BQU9BLEtBQUssS0FBSyxRQUFRLEVBQUU7TUFDN0JBLEtBQUssQ0FBQ2lDLE9BQU8sR0FBRyxvQkFDZG5DLE1BQU0sQ0FBQ3NCLEdBQUcsb0JBQ1FjLElBQUksQ0FBQ0MsU0FBUyxDQUNoQ3JDLE1BQU0sQ0FBQ08sUUFBUSxDQUFDYSxNQUFNLEVBQ3RCa0IsU0FBUyxFQUNULENBQ0YsQ0FBQyxlQUFlcEMsS0FBSyxDQUFDaUMsT0FBTyxFQUFFO01BQy9CLElBQUksVUFBVSxJQUFJbkMsTUFBTSxFQUFFRSxLQUFLLENBQUNFLFFBQVEsR0FBR0osTUFBTSxDQUFDSSxRQUFRO01BQzFERixLQUFLLENBQUNxQyxNQUFNLEdBQUcsR0FBRztJQUNwQjs7SUFFQTtJQUNBO0lBQ0EsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7TUFDekNkLE9BQU8sQ0FBQzFCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQ3RCO0lBQ0EsT0FBT0MsV0FBVyxDQUFDSixLQUFLLEVBQUVDLE1BQU0sRUFBRUUsS0FBSyxDQUFDO0VBQzFDO0FBQ0Y7QUFFQSxTQUFTQyxXQUFXQSxDQUNsQkosS0FBcUIsRUFDckJDLE1BQTRDLEVBQzVDRSxLQUFVLEVBQ007RUFDaEIsSUFBSUEsS0FBSyxDQUFDeUMsSUFBSSxLQUFLLFlBQVksRUFBRTtJQUMvQjtJQUNBO0lBQ0E7SUFDQSxPQUFPO01BQ0wsR0FBRzVDLEtBQUs7TUFDUmlDLFVBQVUsRUFBRUMsZ0JBQWdCLENBQUNsQyxLQUFLLEVBQUVDLE1BQU07SUFDNUMsQ0FBQztFQUNIO0VBQ0EsT0FBTztJQUNMLEdBQUdELEtBQUs7SUFDUlksSUFBSSxFQUFFO01BQ0osR0FBR1osS0FBSyxDQUFDWSxJQUFJO01BQ2IsQ0FBQ1gsTUFBTSxDQUFDc0IsR0FBRyxHQUFHO1FBQ1pPLElBQUksRUFBRTdCLE1BQU0sQ0FBQ1csSUFBSSxDQUFDa0IsSUFBSTtRQUN0QjNCLEtBQUs7UUFDTDRCLFNBQVMsRUFBRTlCLE1BQU0sQ0FBQ1csSUFBSSxDQUFDbUIsU0FBUztRQUNoQ2MsV0FBVyxFQUFFNUMsTUFBTSxDQUFDTyxRQUFRLENBQUNxQyxXQUFXLG9CQUEzQjVDLE1BQU0sQ0FBQ08sUUFBUSxDQUFDcUMsV0FBVyxDQUFHMUMsS0FBSztNQUNsRDtJQUNGLENBQUM7SUFDRDhCLFVBQVUsRUFBRUMsZ0JBQWdCLENBQUNsQyxLQUFLLEVBQUVDLE1BQU07RUFDNUMsQ0FBQztBQUNIO0FBQ0E7QUFDQSxTQUFTaUMsZ0JBQWdCQSxDQUN2QmxDLEtBQXFCLEVBQ3JCOEMsZUFBcUQsRUFDckQ7RUFDQSxPQUFPOUMsS0FBSyxDQUFDaUMsVUFBVSxDQUFDYyxNQUFNLENBQzVCQyxnQkFBZ0IsSUFDZEEsZ0JBQWdCLENBQUN6QixHQUFHLEtBQUt1QixlQUFlLENBQUN2QixHQUFHLEtBQzNDeUIsZ0JBQWdCLENBQUN6QyxJQUFJLEtBQUtWLGVBQWUsR0FDeENtRCxnQkFBZ0IsQ0FBQ3BDLElBQUksQ0FBQ0MsU0FBUyxLQUFLaUMsZUFBZSxDQUFDbEMsSUFBSSxDQUFDQyxTQUFTLEdBQ2xFbUMsZ0JBQWdCLENBQUNwQyxJQUFJLENBQUNrQixJQUFJLEdBQUdnQixlQUFlLENBQUNsQyxJQUFJLENBQUNrQixJQUFJLENBQzVELENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
112
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDIiwiQWJvcnRPcHRpbWlzdGljIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInJlc3BvbnNlIiwiX3N0YXRlJG1ldGEkYWN0aW9uJGtlIiwidHlwZSIsImVuZHBvaW50IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwiY2FsbCIsInNuYXBzaG90IiwibWV0YSIsImZldGNoZWRBdCIsImFyZ3MiLCJlIiwiY29uc3RydWN0b3IiLCJyZXN1bHQiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJlbnRpdHlNZXRhIiwic2NoZW1hIiwiZW5kcG9pbnRzIiwia2V5IiwidXBkYXRlIiwidXBkYXRlcnMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImNvbnNvbGUiLCJkYXRlIiwiZXhwaXJlc0F0IiwicHJldkV4cGlyZXNBdCIsIm9wdGltaXN0aWMiLCJmaWx0ZXJPcHRpbWlzdGljIiwibGFzdFJlc2V0IiwibWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJzdGF0dXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJuYW1lIiwiZXJyb3JQb2xpY3kiLCJyZXNvbHZpbmdBY3Rpb24iLCJmaWx0ZXIiLCJvcHRpbWlzdGljQWN0aW9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvc2V0UmVzcG9uc2VSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBPUFRJTUlTVElDIH0gZnJvbSAnLi4vLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IEFib3J0T3B0aW1pc3RpYyBmcm9tICcuLi8uLi9jb250cm9sbGVyL0Fib3J0T3B0aW1pc3RpYy5qcyc7XG5pbXBvcnQgdHlwZSBDb250cm9sbGVyIGZyb20gJy4uLy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFN0YXRlLFxuICBTZXRSZXNwb25zZUFjdGlvbixcbiAgT3B0aW1pc3RpY0FjdGlvbixcbn0gZnJvbSAnLi4vLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVzcG9uc2VSZWR1Y2VyKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogT3B0aW1pc3RpY0FjdGlvbiB8IFNldFJlc3BvbnNlQWN0aW9uLFxuICBjb250cm9sbGVyOiBDb250cm9sbGVyLFxuKSB7XG4gIGlmIChhY3Rpb24uZXJyb3IpIHtcbiAgICByZXR1cm4gcmVkdWNlRXJyb3Ioc3RhdGUsIGFjdGlvbiwgYWN0aW9uLnJlc3BvbnNlKTtcbiAgfVxuICB0cnkge1xuICAgIGxldCByZXNwb25zZTogYW55O1xuICAgIC8vIGZvciB0cnVlIHNldCdzIHJlc3BvbnNlIGlzIGNvbnRhaW5lZCBpbiBhY3Rpb25cbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09IE9QVElNSVNUSUMpIHtcbiAgICAgIC8vIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoIWFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UpIHJldHVybiBzdGF0ZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIGNvbXB1dGUgb3B0aW1pc3RpYyByZXNwb25zZSBiYXNlZCBvbiBjdXJyZW50IHN0YXRlXG4gICAgICAgIHJlc3BvbnNlID0gYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZS5jYWxsKFxuICAgICAgICAgIGFjdGlvbi5lbmRwb2ludCxcbiAgICAgICAgICBjb250cm9sbGVyLnNuYXBzaG90KHN0YXRlLCBhY3Rpb24ubWV0YS5mZXRjaGVkQXQpLFxuICAgICAgICAgIC4uLmFjdGlvbi5hcmdzLFxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIC8vIEFib3J0T3B0aW1pc3RpYyBtZWFucyAnZG8gbm90aGluZycsIG90aGVyd2lzZSB3ZSBjb3VudCB0aGUgZXhjZXB0aW9uIGFzIGVuZHBvaW50IGZhaWx1cmVcbiAgICAgICAgaWYgKGUuY29uc3RydWN0b3IgPT09IEFib3J0T3B0aW1pc3RpYykge1xuICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZSA9IGFjdGlvbi5yZXNwb25zZTtcbiAgICB9XG4gICAgY29uc3QgeyByZXN1bHQsIGVudGl0aWVzLCBpbmRleGVzLCBlbnRpdHlNZXRhIH0gPSBub3JtYWxpemUoXG4gICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBhY3Rpb24uYXJncyxcbiAgICAgIHN0YXRlLFxuICAgICAgYWN0aW9uLm1ldGEsXG4gICAgKTtcbiAgICBjb25zdCBlbmRwb2ludHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgLi4uc3RhdGUuZW5kcG9pbnRzLFxuICAgICAgW2FjdGlvbi5rZXldOiByZXN1bHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgaWYgKGFjdGlvbi5lbmRwb2ludC51cGRhdGUpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlcnMgPSBhY3Rpb24uZW5kcG9pbnQudXBkYXRlKHJlc3VsdCwgLi4uYWN0aW9uLmFyZ3MpO1xuICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIGVuZHBvaW50c1trZXldID0gdXBkYXRlcnNba2V5XShlbmRwb2ludHNba2V5XSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gbm8gcmVhc29uIHRvIGNvbXBsZXRlbHkgZmFpbCBiZWNhdXNlIG9mIHVzZXItY29kZSBlcnJvclxuICAgICAgLy8gaW50ZWdyaXR5IG9mIHRoaXMgc3RhdGUgdXBkYXRlIGlzIHN0aWxsIGd1YXJhbnRlZWRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgZXJyb3Igb2NjdXJlZCBkdXJpbmcgRW5kcG9pbnQudXBkYXRlKCkgZm9yICR7YWN0aW9uLmtleX1gLFxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBlbmRwb2ludHMsXG4gICAgICBpbmRleGVzLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgICBbYWN0aW9uLmtleV06IHtcbiAgICAgICAgICBkYXRlOiBhY3Rpb24ubWV0YS5kYXRlLFxuICAgICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICAgIHByZXZFeHBpcmVzQXQ6IHN0YXRlLm1ldGFbYWN0aW9uLmtleV0/LmV4cGlyZXNBdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBlbnRpdHlNZXRhLFxuICAgICAgb3B0aW1pc3RpYzogZmlsdGVyT3B0aW1pc3RpYyhzdGF0ZSwgYWN0aW9uKSxcbiAgICAgIGxhc3RSZXNldDogc3RhdGUubGFzdFJlc2V0LFxuICAgIH07XG4gICAgLy8gcmVkdWNlciBtdXN0IHVwZGF0ZSB0aGUgc3RhdGUsIHNvIGluIGNhc2Ugb2YgcHJvY2Vzc2luZyBlcnJvcnMgd2Ugc2ltcGx5IGNvbXB1dGUgdGhlIGVuZHBvaW50cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLmtleVxuICAgICAgfVxcblxcbkZ1bGwgU2NoZW1hOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIDIsXG4gICAgICApfVxcblxcbkVycm9yOlxcbiR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgaWYgKCdyZXNwb25zZScgaW4gYWN0aW9uKSBlcnJvci5yZXNwb25zZSA9IGFjdGlvbi5yZXNwb25zZTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGlzIG5vdCBhbHdheXMgYnViYmxlZCB1cCwgc28gbGV0J3MgZG91YmxlIHN1cmUgdGhpcyBkb2Vzbid0IGZhaWwgc2lsZW50bHlcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGVycm9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWR1Y2VFcnJvcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRlcyB1c2VSZXNvdXJjZSgpIGNvdWxkIHN1c3BlbmQgZm9yZXZlci5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBtZXRhOiB7XG4gICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgW2FjdGlvbi5rZXldOiB7XG4gICAgICAgIGRhdGU6IGFjdGlvbi5tZXRhLmRhdGUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgZXJyb3JQb2xpY3k6IGFjdGlvbi5lbmRwb2ludC5lcnJvclBvbGljeT8uKGVycm9yKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICB9O1xufVxuLyoqIEZpbHRlciBhbGwgcmVxdWVzdHMgd2l0aCBzYW1lIHNlcmlhbGl6YXRpb24gdGhhdCBkaWQgbm90IHN0YXJ0IGFmdGVyIHRoZSByZXNvbHZpbmcgcmVxdWVzdCAqL1xuZnVuY3Rpb24gZmlsdGVyT3B0aW1pc3RpYyhcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICByZXNvbHZpbmdBY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbikge1xuICByZXR1cm4gc3RhdGUub3B0aW1pc3RpYy5maWx0ZXIoXG4gICAgb3B0aW1pc3RpY0FjdGlvbiA9PlxuICAgICAgb3B0aW1pc3RpY0FjdGlvbi5rZXkgIT09IHJlc29sdmluZ0FjdGlvbi5rZXkgfHxcbiAgICAgIChvcHRpbWlzdGljQWN0aW9uLnR5cGUgPT09IE9QVElNSVNUSUMgP1xuICAgICAgICBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZmV0Y2hlZEF0ICE9PSByZXNvbHZpbmdBY3Rpb24ubWV0YS5mZXRjaGVkQXRcbiAgICAgIDogb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmRhdGUgPiByZXNvbHZpbmdBY3Rpb24ubWV0YS5kYXRlKSxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsU0FBUyxRQUFRLHdCQUF3QjtBQUVsRCxTQUFTQyxVQUFVLFFBQVEsc0JBQXNCO0FBQ2pELE9BQU9DLGVBQWUsTUFBTSxxQ0FBcUM7QUFRakUsT0FBTyxTQUFTQyxrQkFBa0JBLENBQ2hDQyxLQUFxQixFQUNyQkMsTUFBNEMsRUFDNUNDLFVBQXNCLEVBQ3RCO0VBQ0EsSUFBSUQsTUFBTSxDQUFDRSxLQUFLLEVBQUU7SUFDaEIsT0FBT0MsV0FBVyxDQUFDSixLQUFLLEVBQUVDLE1BQU0sRUFBRUEsTUFBTSxDQUFDSSxRQUFRLENBQUM7RUFDcEQ7RUFDQSxJQUFJO0lBQUEsSUFBQUMscUJBQUE7SUFDRixJQUFJRCxRQUFhO0lBQ2pCO0lBQ0EsSUFBSUosTUFBTSxDQUFDTSxJQUFJLEtBQUtWLFVBQVUsRUFBRTtNQUM5QjtNQUNBO01BQ0EsSUFBSSxDQUFDSSxNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLEVBQUUsT0FBT1QsS0FBSztNQUN4RCxJQUFJO1FBQ0Y7UUFDQUssUUFBUSxHQUFHSixNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLENBQUNDLElBQUksQ0FDbkRULE1BQU0sQ0FBQ08sUUFBUSxFQUNmTixVQUFVLENBQUNTLFFBQVEsQ0FBQ1gsS0FBSyxFQUFFQyxNQUFNLENBQUNXLElBQUksQ0FBQ0MsU0FBUyxDQUFDLEVBQ2pELEdBQUdaLE1BQU0sQ0FBQ2EsSUFDWixDQUFDO01BQ0gsQ0FBQyxDQUFDLE9BQU9DLENBQU0sRUFBRTtRQUNmO1FBQ0EsSUFBSUEsQ0FBQyxDQUFDQyxXQUFXLEtBQUtsQixlQUFlLEVBQUU7VUFDckMsT0FBT0UsS0FBSztRQUNkO1FBQ0EsTUFBTWUsQ0FBQztNQUNU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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-client/core",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.16",
|
|
4
4
|
"description": "Async State Management without the Management. REST, GraphQL, SSE, Websockets, Fetch",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
},
|
|
122
122
|
"dependencies": {
|
|
123
123
|
"@babel/runtime": "^7.17.0",
|
|
124
|
-
"@data-client/normalizr": "^0.14.
|
|
124
|
+
"@data-client/normalizr": "^0.14.16",
|
|
125
125
|
"flux-standard-action": "^2.1.1"
|
|
126
126
|
},
|
|
127
127
|
"devDependencies": {
|
package/src/actionTypes.ts
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
|
-
export const
|
|
2
|
-
export const
|
|
3
|
-
export const
|
|
4
|
-
export const
|
|
5
|
-
export const
|
|
6
|
-
export const
|
|
7
|
-
export const
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
11
|
-
export const
|
|
1
|
+
export const FETCH = 'rdc/fetch' as const;
|
|
2
|
+
export const SET = 'rdc/set' as const;
|
|
3
|
+
export const SET_RESPONSE = 'rdc/setresponse' as const;
|
|
4
|
+
export const OPTIMISTIC = 'rdc/optimistic' as const;
|
|
5
|
+
export const RESET = 'rdc/reset' as const;
|
|
6
|
+
export const SUBSCRIBE = 'rdc/subscribe' as const;
|
|
7
|
+
export const UNSUBSCRIBE = 'rdc/unsubscribe' as const;
|
|
8
|
+
export const INVALIDATE = 'rdc/invalidate' as const;
|
|
9
|
+
export const INVALIDATEALL = 'rdc/invalidateall' as const;
|
|
10
|
+
export const EXPIREALL = 'rdc/expireall' as const;
|
|
11
|
+
export const GC = 'rdc/gc' as const;
|
|
12
|
+
|
|
13
|
+
export const FETCH_TYPE = FETCH;
|
|
14
|
+
export const SET_TYPE = SET;
|
|
15
|
+
export const SET_RESPONSE_TYPE = SET_RESPONSE;
|
|
16
|
+
export const OPTIMISTIC_TYPE = OPTIMISTIC;
|
|
17
|
+
export const RESET_TYPE = RESET;
|
|
18
|
+
export const SUBSCRIBE_TYPE = SUBSCRIBE;
|
|
19
|
+
export const UNSUBSCRIBE_TYPE = UNSUBSCRIBE;
|
|
20
|
+
export const INVALIDATE_TYPE = INVALIDATE;
|
|
21
|
+
export const INVALIDATEALL_TYPE = INVALIDATEALL;
|
|
22
|
+
export const EXPIREALL_TYPE = EXPIREALL;
|
|
23
|
+
export const GC_TYPE = GC;
|
package/src/actions.ts
CHANGED
|
@@ -7,17 +7,17 @@ import type {
|
|
|
7
7
|
} from '@data-client/normalizr';
|
|
8
8
|
|
|
9
9
|
import type {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
SET,
|
|
11
|
+
RESET,
|
|
12
|
+
FETCH,
|
|
13
|
+
SUBSCRIBE,
|
|
14
|
+
UNSUBSCRIBE,
|
|
15
|
+
INVALIDATE,
|
|
16
|
+
GC,
|
|
17
|
+
OPTIMISTIC,
|
|
18
|
+
INVALIDATEALL,
|
|
19
|
+
EXPIREALL,
|
|
20
|
+
SET_RESPONSE,
|
|
21
21
|
} from './actionTypes.js';
|
|
22
22
|
import type { EndpointUpdateFunction } from './controller/types.js';
|
|
23
23
|
|
|
@@ -37,7 +37,7 @@ export interface ActionMeta {
|
|
|
37
37
|
|
|
38
38
|
/** Action for Controller.set() */
|
|
39
39
|
export interface SetAction<S extends Queryable = any> {
|
|
40
|
-
type: typeof
|
|
40
|
+
type: typeof SET;
|
|
41
41
|
schema: S;
|
|
42
42
|
args: readonly any[];
|
|
43
43
|
meta: ActionMeta;
|
|
@@ -48,7 +48,7 @@ export interface SetAction<S extends Queryable = any> {
|
|
|
48
48
|
export interface SetResponseActionBase<
|
|
49
49
|
E extends EndpointAndUpdate<E> = EndpointDefault,
|
|
50
50
|
> {
|
|
51
|
-
type: typeof
|
|
51
|
+
type: typeof SET_RESPONSE;
|
|
52
52
|
endpoint: E;
|
|
53
53
|
args: readonly any[];
|
|
54
54
|
key: string;
|
|
@@ -81,7 +81,7 @@ export interface FetchMeta {
|
|
|
81
81
|
|
|
82
82
|
/** Action for Controller.fetch() */
|
|
83
83
|
export interface FetchAction<E extends EndpointAndUpdate<E> = EndpointDefault> {
|
|
84
|
-
type: typeof
|
|
84
|
+
type: typeof FETCH;
|
|
85
85
|
endpoint: E;
|
|
86
86
|
args: readonly [...Parameters<E>];
|
|
87
87
|
key: string;
|
|
@@ -93,7 +93,7 @@ export interface FetchAction<E extends EndpointAndUpdate<E> = EndpointDefault> {
|
|
|
93
93
|
export interface OptimisticAction<
|
|
94
94
|
E extends EndpointAndUpdate<E> = EndpointDefault,
|
|
95
95
|
> {
|
|
96
|
-
type: typeof
|
|
96
|
+
type: typeof OPTIMISTIC;
|
|
97
97
|
endpoint: E;
|
|
98
98
|
args: readonly any[];
|
|
99
99
|
key: string;
|
|
@@ -106,7 +106,7 @@ export interface OptimisticAction<
|
|
|
106
106
|
export interface SubscribeAction<
|
|
107
107
|
E extends EndpointAndUpdate<E> = EndpointDefault,
|
|
108
108
|
> {
|
|
109
|
-
type: typeof
|
|
109
|
+
type: typeof SUBSCRIBE;
|
|
110
110
|
endpoint: E;
|
|
111
111
|
args: readonly any[];
|
|
112
112
|
key: string;
|
|
@@ -116,7 +116,7 @@ export interface SubscribeAction<
|
|
|
116
116
|
export interface UnsubscribeAction<
|
|
117
117
|
E extends EndpointAndUpdate<E> = EndpointDefault,
|
|
118
118
|
> {
|
|
119
|
-
type: typeof
|
|
119
|
+
type: typeof UNSUBSCRIBE;
|
|
120
120
|
endpoint: E;
|
|
121
121
|
args: readonly any[];
|
|
122
122
|
key: string;
|
|
@@ -124,34 +124,35 @@ export interface UnsubscribeAction<
|
|
|
124
124
|
|
|
125
125
|
/* EXPIRY */
|
|
126
126
|
export interface ExpireAllAction {
|
|
127
|
-
type: typeof
|
|
127
|
+
type: typeof EXPIREALL;
|
|
128
128
|
testKey: (key: string) => boolean;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
/* INVALIDATE */
|
|
132
132
|
export interface InvalidateAllAction {
|
|
133
|
-
type: typeof
|
|
133
|
+
type: typeof INVALIDATEALL;
|
|
134
134
|
testKey: (key: string) => boolean;
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
export interface InvalidateAction {
|
|
138
|
-
type: typeof
|
|
138
|
+
type: typeof INVALIDATE;
|
|
139
139
|
key: string;
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
/* RESET */
|
|
143
143
|
export interface ResetAction {
|
|
144
|
-
type: typeof
|
|
144
|
+
type: typeof RESET;
|
|
145
145
|
date: number;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
/* GC */
|
|
149
149
|
export interface GCAction {
|
|
150
|
-
type: typeof
|
|
150
|
+
type: typeof GC;
|
|
151
151
|
entities: [string, string][];
|
|
152
152
|
endpoints: string[];
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
+
/** @see https://dataclient.io/docs/api/Actions */
|
|
155
156
|
export type ActionTypes =
|
|
156
157
|
| FetchAction
|
|
157
158
|
| OptimisticAction
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EXPIREALL } from '../../actionTypes.js';
|
|
2
2
|
import type { ExpireAllAction } from '../../types.js';
|
|
3
3
|
|
|
4
4
|
export function createExpireAll(
|
|
5
5
|
testKey: (key: string) => boolean,
|
|
6
6
|
): ExpireAllAction {
|
|
7
7
|
return {
|
|
8
|
-
type:
|
|
8
|
+
type: EXPIREALL,
|
|
9
9
|
testKey,
|
|
10
10
|
};
|
|
11
11
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EndpointInterface, NI } from '@data-client/normalizr';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { FETCH } from '../../actionTypes.js';
|
|
4
4
|
import type { FetchAction, FetchMeta } from '../../types.js';
|
|
5
5
|
import { EndpointUpdateFunction } from '../types.js';
|
|
6
6
|
|
|
@@ -26,7 +26,7 @@ export function createFetch<
|
|
|
26
26
|
};
|
|
27
27
|
|
|
28
28
|
return {
|
|
29
|
-
type:
|
|
29
|
+
type: FETCH,
|
|
30
30
|
key: endpoint.key(...args),
|
|
31
31
|
args,
|
|
32
32
|
endpoint,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { EndpointInterface } from '@data-client/normalizr';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { INVALIDATE } from '../../actionTypes.js';
|
|
4
4
|
import type { InvalidateAction } from '../../types.js';
|
|
5
5
|
|
|
6
6
|
export function createInvalidate<E extends EndpointInterface>(
|
|
@@ -8,7 +8,7 @@ export function createInvalidate<E extends EndpointInterface>(
|
|
|
8
8
|
{ args }: { args: readonly [...Parameters<E>] },
|
|
9
9
|
): InvalidateAction {
|
|
10
10
|
return {
|
|
11
|
-
type:
|
|
11
|
+
type: INVALIDATE,
|
|
12
12
|
key: endpoint.key(...args),
|
|
13
13
|
};
|
|
14
14
|
}
|