@data-client/core 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +37 -0
- package/dist/index.umd.min.js +1 -1
- package/dist/next.js +15 -0
- package/legacy/actionTypes.js +2 -1
- package/legacy/controller/Controller.js +9 -1
- package/legacy/controller/createExpireAll.js +8 -0
- package/legacy/newActions.js +1 -1
- package/legacy/state/reducer/createReducer.js +5 -2
- package/legacy/state/reducer/expireReducer.js +15 -0
- package/lib/actionTypes.d.ts +1 -0
- package/lib/actionTypes.d.ts.map +1 -1
- package/lib/actionTypes.js +2 -1
- package/lib/controller/Controller.d.ts +9 -0
- package/lib/controller/Controller.d.ts.map +1 -1
- package/lib/controller/Controller.js +9 -1
- package/lib/controller/createExpireAll.d.ts +3 -0
- package/lib/controller/createExpireAll.d.ts.map +1 -0
- package/lib/controller/createExpireAll.js +8 -0
- package/lib/newActions.d.ts +6 -2
- package/lib/newActions.d.ts.map +1 -1
- package/lib/newActions.js +1 -1
- package/lib/state/reducer/createReducer.d.ts.map +1 -1
- package/lib/state/reducer/createReducer.js +5 -2
- package/lib/state/reducer/expireReducer.d.ts +36 -0
- package/lib/state/reducer/expireReducer.d.ts.map +1 -0
- package/lib/state/reducer/expireReducer.js +19 -0
- package/package.json +1 -1
- package/src/actionTypes.ts +1 -0
- package/src/controller/Controller.ts +10 -0
- package/src/controller/createExpireAll.ts +11 -0
- package/src/newActions.ts +8 -0
- package/src/state/reducer/createReducer.ts +5 -0
- package/src/state/reducer/expireReducer.ts +20 -0
- package/ts3.4/actionTypes.d.ts +1 -0
- package/ts3.4/controller/Controller.d.ts +9 -0
- package/ts3.4/controller/createExpireAll.d.ts +3 -0
- package/ts3.4/newActions.d.ts +6 -2
- package/ts3.4/state/reducer/expireReducer.d.ts +36 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { WeakEntityMap, ExpiryStatus, denormalizeCached, isEntity, denormalize } from '@data-client/normalizr';
|
|
2
2
|
import { inferResults, validateInference } from '@data-client/normalizr';
|
|
3
|
+
import createExpireAll from './createExpireAll.js';
|
|
3
4
|
import createFetch from './createFetch.js';
|
|
4
5
|
import createInvalidate from './createInvalidate.js';
|
|
5
6
|
import createInvalidateAll from './createInvalidateAll.js';
|
|
@@ -69,8 +70,15 @@ export default class Controller {
|
|
|
69
70
|
/**
|
|
70
71
|
* Forces refetching and suspense on useSuspense on all matching endpoint result keys.
|
|
71
72
|
* @see https://resthooks.io/docs/api/Controller#invalidateAll
|
|
73
|
+
* @returns Promise that resolves when invalidation is commited.
|
|
72
74
|
*/
|
|
73
75
|
this.invalidateAll = options => this.dispatch(createInvalidateAll(key => options.testKey(key)));
|
|
76
|
+
/**
|
|
77
|
+
* Sets all matching endpoint result keys to be STALE.
|
|
78
|
+
* @see https://dataclient.io/docs/api/Controller#expireAll
|
|
79
|
+
* @returns Promise that resolves when expiry is commited. *NOT* fetch promise
|
|
80
|
+
*/
|
|
81
|
+
this.expireAll = options => this.dispatch(createExpireAll(key => options.testKey(key)));
|
|
74
82
|
/**
|
|
75
83
|
* Resets the entire Rest Hooks cache. All inflight requests will not resolve.
|
|
76
84
|
* @see https://resthooks.io/docs/api/Controller#resetEntireStore
|
|
@@ -287,4 +295,4 @@ class Snapshot {
|
|
|
287
295
|
this.fetchedAt = fetchedAt;
|
|
288
296
|
}
|
|
289
297
|
}
|
|
290
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWFrRW50aXR5TWFwIiwiRXhwaXJ5U3RhdHVzIiwiZGVub3JtYWxpemVDYWNoZWQiLCJpc0VudGl0eSIsImRlbm9ybWFsaXplIiwiaW5mZXJSZXN1bHRzIiwidmFsaWRhdGVJbmZlcmVuY2UiLCJjcmVhdGVGZXRjaCIsImNyZWF0ZUludmFsaWRhdGUiLCJjcmVhdGVJbnZhbGlkYXRlQWxsIiwiY3JlYXRlUmVzZXQiLCJjcmVhdGVTZXQiLCJjcmVhdGVVbnN1YnNjcmlwdGlvbiIsImNyZWF0ZVN1YnNjcmlwdGlvbiIsImluaXRpYWxTdGF0ZSIsInNlbGVjdE1ldGEiLCJ1bnNldERpc3BhdGNoIiwiYWN0aW9uIiwiRXJyb3IiLCJ1bnNldFN0YXRlIiwiQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiZGlzcGF0Y2giLCJnZXRTdGF0ZSIsImdsb2JhbENhY2hlIiwiZW50aXRpZXMiLCJyZXN1bHRzIiwiZmV0Y2giLCJlbmRwb2ludCIsImFyZ3MiLCJzY2hlbWEiLCJtZXRhIiwicHJvbWlzZSIsInRoZW4iLCJpbnB1dCIsImludmFsaWRhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImludmFsaWRhdGVBbGwiLCJvcHRpb25zIiwia2V5IiwidGVzdEtleSIsInJlc2V0RW50aXJlU3RvcmUiLCJzZXRSZXNwb25zZSIsInJlc3QiLCJyZXNwb25zZSIsImxlbmd0aCIsInNsaWNlIiwicmVjZWl2ZSIsInNldEVycm9yIiwiZXJyb3IiLCJyZWNlaXZlRXJyb3IiLCJzdWJzY3JpYmUiLCJ1bnN1YnNjcmliZSIsInNuYXBzaG90Iiwic3RhdGUiLCJmZXRjaGVkQXQiLCJTbmFwc2hvdCIsImdldEVycm9yIiwidW5kZWZpbmVkIiwiZXJyb3JQb2xpY3kiLCJnZXRSZXNwb25zZSIsImlzQWN0aXZlIiwiY2FjaGVSZXN1bHRzIiwiZXhwaXJlc0F0IiwiaW52YWxpZFJlc3VsdHMiLCJpbmRleGVzIiwiZGF0YSIsImV4cGlyeVN0YXR1cyIsIlZhbGlkIiwiSW5maW5pdHkiLCJzY2hlbWFIYXNFbnRpdHkiLCJpbnZhbGlkYXRlZCIsIkludmFsaWQiLCJpbnZhbGlkSWZTdGFsZSIsIkludmFsaWRJZlN0YWxlIiwicGF0aHMiLCJpbnZhbGlkRGVub3JtYWxpemUiLCJlbnRpdHlFeHBpcmVzQXQiLCJlbnRpdHlNZXRhIiwicGsiLCJfZW50aXR5TWV0YSRrZXkiLCJfZW50aXR5TWV0YSRrZXkkcGsiLCJlbnRpdHlFeHBpcnkiLCJBcnJheSIsImlzQXJyYXkiLCJuZXN0ZWRTY2hlbWEiLCJPYmplY3QiLCJ2YWx1ZXMiLCJzb21lIiwieCIsImNvbnRyb2xsZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9Db250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRXJyb3JUeXBlcyxcbiAgU25hcHNob3RJbnRlcmZhY2UsXG4gIERlbm9ybWFsaXplQ2FjaGUsXG4gIFNjaGVtYSxcbiAgRGVub3JtYWxpemUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHtcbiAgV2Vha0VudGl0eU1hcCxcbiAgRXhwaXJ5U3RhdHVzLFxuICBFbmRwb2ludEludGVyZmFjZSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIFBhdGgsXG4gIGRlbm9ybWFsaXplQ2FjaGVkLFxuICBpc0VudGl0eSxcbiAgZGVub3JtYWxpemUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHsgaW5mZXJSZXN1bHRzLCB2YWxpZGF0ZUluZmVyZW5jZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgY3JlYXRlRmV0Y2ggZnJvbSAnLi9jcmVhdGVGZXRjaC5qcyc7XG5pbXBvcnQgY3JlYXRlSW52YWxpZGF0ZSBmcm9tICcuL2NyZWF0ZUludmFsaWRhdGUuanMnO1xuaW1wb3J0IGNyZWF0ZUludmFsaWRhdGVBbGwgZnJvbSAnLi9jcmVhdGVJbnZhbGlkYXRlQWxsLmpzJztcbmltcG9ydCBjcmVhdGVSZXNldCBmcm9tICcuL2NyZWF0ZVJlc2V0LmpzJztcbmltcG9ydCBjcmVhdGVTZXQgZnJvbSAnLi9jcmVhdGVTZXQuanMnO1xuaW1wb3J0IHtcbiAgY3JlYXRlVW5zdWJzY3JpcHRpb24sXG4gIGNyZWF0ZVN1YnNjcmlwdGlvbixcbn0gZnJvbSAnLi9jcmVhdGVTdWJzY3JpcHRpb24uanMnO1xuaW1wb3J0IHR5cGUgeyBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBpbml0aWFsU3RhdGUgfSBmcm9tICcuLi9zdGF0ZS9yZWR1Y2VyL2NyZWF0ZVJlZHVjZXIuanMnO1xuaW1wb3J0IHNlbGVjdE1ldGEgZnJvbSAnLi4vc3RhdGUvc2VsZWN0TWV0YS5qcyc7XG5pbXBvcnQgdHlwZSB7IEFjdGlvblR5cGVzLCBTdGF0ZSB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgR2VuZXJpY0Rpc3BhdGNoID0gKHZhbHVlOiBhbnkpID0+IFByb21pc2U8dm9pZD47XG5leHBvcnQgdHlwZSBEYXRhQ2xpZW50RGlzcGF0Y2ggPSAodmFsdWU6IEFjdGlvblR5cGVzKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG5pbnRlcmZhY2UgQ29uc3RydWN0b3JQcm9wczxEIGV4dGVuZHMgR2VuZXJpY0Rpc3BhdGNoID0gRGF0YUNsaWVudERpc3BhdGNoPiB7XG4gIGRpc3BhdGNoPzogRDtcbiAgZ2V0U3RhdGU/OiAoKSA9PiBTdGF0ZTx1bmtub3duPjtcbiAgZ2xvYmFsQ2FjaGU/OiBEZW5vcm1hbGl6ZUNhY2hlO1xufVxuXG5jb25zdCB1bnNldERpc3BhdGNoID0gKGFjdGlvbjogdW5rbm93bik6IFByb21pc2U8dm9pZD4gPT4ge1xuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYERpc3BhdGNoaW5nIHdoaWxlIGNvbnN0cnVjdGluZyB5b3VyIG1pZGRsZXdhcmUgaXMgbm90IGFsbG93ZWQuIGAgK1xuICAgICAgYE90aGVyIG1pZGRsZXdhcmUgd291bGQgbm90IGJlIGFwcGxpZWQgdG8gdGhpcyBkaXNwYXRjaC5gLFxuICApO1xufTtcbmNvbnN0IHVuc2V0U3RhdGUgPSAoKTogU3RhdGU8dW5rbm93bj4gPT4ge1xuICAvLyBUaGlzIGlzIG9ubHkgdGhlIHZhbHVlIHVudGlsIGl0IGlzIHNldCBieSB0aGUgQ2FjaGVQcm92aWRlclxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICByZXR1cm4gaW5pdGlhbFN0YXRlO1xufTtcblxuLyoqXG4gKiBJbXBlcmF0aXZlIGNvbnRyb2wgb2YgUmVzdCBIb29rcyBzdG9yZVxuICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRyb2xsZXI8XG4gIEQgZXh0ZW5kcyBHZW5lcmljRGlzcGF0Y2ggPSBEYXRhQ2xpZW50RGlzcGF0Y2gsXG4+IHtcbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYW4gYWN0aW9uIHRvIFJlc3QgSG9va3MgcmVkdWNlci5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2Rpc3BhdGNoXG4gICAqL1xuICBkZWNsYXJlIHJlYWRvbmx5IGRpc3BhdGNoOiBEO1xuICAvKipcbiAgICogR2V0cyB0aGUgbGF0ZXN0IHN0YXRlIHNuYXBzaG90IHRoYXQgaXMgZnVsbHkgY29tbWl0dGVkLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGltcGVyYXRpdmUgdXNlLWNhc2VzIGxpa2UgZXZlbnQgaGFuZGxlcnMuXG4gICAqIFRoaXMgc2hvdWxkICpub3QqIGJlIHVzZWQgdG8gcmVuZGVyOyBpbnN0ZWFkIHVzZVN1c3BlbnNlKCkgb3IgdXNlQ2FjaGUoKVxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZ2V0U3RhdGVcbiAgICovXG4gIGRlY2xhcmUgcmVhZG9ubHkgZ2V0U3RhdGU6ICgpID0+IFN0YXRlPHVua25vd24+O1xuICBkZWNsYXJlIHJlYWRvbmx5IGdsb2JhbENhY2hlOiBEZW5vcm1hbGl6ZUNhY2hlO1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICBkaXNwYXRjaCA9IHVuc2V0RGlzcGF0Y2ggYXMgYW55LFxuICAgIGdldFN0YXRlID0gdW5zZXRTdGF0ZSxcbiAgICBnbG9iYWxDYWNoZSA9IHtcbiAgICAgIGVudGl0aWVzOiB7fSxcbiAgICAgIHJlc3VsdHM6IHt9LFxuICAgIH0sXG4gIH06IENvbnN0cnVjdG9yUHJvcHM8RD4gPSB7fSkge1xuICAgIHRoaXMuZGlzcGF0Y2ggPSBkaXNwYXRjaDtcbiAgICB0aGlzLmdldFN0YXRlID0gZ2V0U3RhdGU7XG4gICAgdGhpcy5nbG9iYWxDYWNoZSA9IGdsb2JhbENhY2hlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKiBBY3Rpb24gRGlzcGF0Y2hlcnMgKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBlbmRwb2ludCB3aXRoIGdpdmVuIGFyZ3MsIHVwZGF0aW5nIHRoZSBSZXN0IEhvb2tzIGNhY2hlIHdpdGggdGhlIHJlc3BvbnNlIG9yIGVycm9yIHVwb24gY29tcGxldGlvbi5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2ZldGNoXG4gICAqL1xuICBmZXRjaCA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7IHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT4gfSxcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl1cbiAgKTogRVsnc2NoZW1hJ10gZXh0ZW5kcyB1bmRlZmluZWQgfCBudWxsXG4gICAgPyBSZXR1cm5UeXBlPEU+XG4gICAgOiBQcm9taXNlPERlbm9ybWFsaXplPEVbJ3NjaGVtYSddPj4gPT4ge1xuICAgIGNvbnN0IGFjdGlvbiA9IGNyZWF0ZUZldGNoKGVuZHBvaW50LCB7XG4gICAgICBhcmdzLFxuICAgIH0pO1xuICAgIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcblxuICAgIGlmIChlbmRwb2ludC5zY2hlbWEpIHtcbiAgICAgIHJldHVybiBhY3Rpb24ubWV0YS5wcm9taXNlLnRoZW4oaW5wdXQgPT5cbiAgICAgICAgZGVub3JtYWxpemUoaW5wdXQsIGVuZHBvaW50LnNjaGVtYSwge30sIGFyZ3MpLFxuICAgICAgKSBhcyBhbnk7XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb24ubWV0YS5wcm9taXNlIGFzIGFueTtcbiAgfTtcblxuICAvKipcbiAgICogRm9yY2VzIHJlZmV0Y2hpbmcgYW5kIHN1c3BlbnNlIG9uIHVzZVN1c3BlbnNlIHdpdGggdGhlIHNhbWUgRW5kcG9pbnQgYW5kIHBhcmFtZXRlcnMuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNpbnZhbGlkYXRlXG4gICAqL1xuICBpbnZhbGlkYXRlID0gPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IFByb21pc2U8dm9pZD4gPT5cbiAgICBhcmdzWzBdICE9PSBudWxsXG4gICAgICA/IHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICAgY3JlYXRlSW52YWxpZGF0ZShlbmRwb2ludCwge1xuICAgICAgICAgICAgYXJnczogYXJncyBhcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0sXG4gICAgICAgICAgfSksXG4gICAgICAgIClcbiAgICAgIDogUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgLyoqXG4gICAqIEZvcmNlcyByZWZldGNoaW5nIGFuZCBzdXNwZW5zZSBvbiB1c2VTdXNwZW5zZSBvbiBhbGwgbWF0Y2hpbmcgZW5kcG9pbnQgcmVzdWx0IGtleXMuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNpbnZhbGlkYXRlQWxsXG4gICAqL1xuICBpbnZhbGlkYXRlQWxsID0gKG9wdGlvbnM6IHsgdGVzdEtleTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuIH0pID0+XG4gICAgdGhpcy5kaXNwYXRjaChjcmVhdGVJbnZhbGlkYXRlQWxsKChrZXk6IHN0cmluZykgPT4gb3B0aW9ucy50ZXN0S2V5KGtleSkpKTtcblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBlbnRpcmUgUmVzdCBIb29rcyBjYWNoZS4gQWxsIGluZmxpZ2h0IHJlcXVlc3RzIHdpbGwgbm90IHJlc29sdmUuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNyZXNldEVudGlyZVN0b3JlXG4gICAqL1xuICByZXNldEVudGlyZVN0b3JlID0gKCk6IFByb21pc2U8dm9pZD4gPT4gdGhpcy5kaXNwYXRjaChjcmVhdGVSZXNldCgpKTtcblxuICAvKipcbiAgICogU3RvcmVzIHJlc3BvbnNlIGluIGNhY2hlIGZvciBnaXZlbiBFbmRwb2ludCBhbmQgYXJncy5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldFxuICAgKi9cbiAgc2V0UmVzcG9uc2UgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgICB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+LCBhbnldXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBSZXNvbHZlVHlwZTxFPiA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBhY3Rpb24gPSBjcmVhdGVTZXQoZW5kcG9pbnQsIHtcbiAgICAgIGFyZ3M6IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEU+LFxuICAgICAgcmVzcG9uc2UsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc2V0UmVzcG9uc2UgaW5zdGVhZFxuICAgKi9cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gcmVjZWl2ZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIGFueV1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5zZXRSZXNwb25zZShlbmRwb2ludCwgLi4ucmVzdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgcmVzdWx0IG9mIEVuZHBvaW50IGFuZCBhcmdzIGFzIHRoZSBlcnJvciBwcm92aWRlZC5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldEVycm9yXG4gICAqL1xuICBzZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIEVycm9yXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCByZXNwb25zZTogRXJyb3IgPSByZXN0W3Jlc3QubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYWN0aW9uID0gY3JlYXRlU2V0KGVuZHBvaW50LCB7XG4gICAgICBhcmdzOiByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFPixcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgZXJyb3I6IHRydWUsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfTtcblxuICAvKipcbiAgICogQW5vdGhlciBuYW1lIGZvciBzZXRFcnJvclxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNzZXRFcnJvciBpbnN0ZWFkXG4gICAqL1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyByZWNlaXZlRXJyb3IgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgICB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+LCBFcnJvcl1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5zZXRFcnJvcihlbmRwb2ludCwgLi4ucmVzdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGFuIGluZmxpZ2h0IGZldGNoLiBgZmV0Y2hlZEF0YCBzaG91bGQgYGZldGNoYCdzIGBjcmVhdGVkQXRgXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNyZXNvbHZlXG4gICAqL1xuICByZXNvbHZlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHtcbiAgICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gICAgfSxcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICBtZXRhOlxuICAgICAgfCB7XG4gICAgICAgICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgICAgICAgIHJlc3BvbnNlOiBFcnJvcjtcbiAgICAgICAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgICAgICBlcnJvcjogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgICAgICAgIHJlc3BvbnNlOiBhbnk7XG4gICAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICAgICAgZXJyb3I/OiBmYWxzZTtcbiAgICAgICAgfSxcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goY3JlYXRlU2V0KGVuZHBvaW50LCBtZXRhIGFzIGFueSkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBNYXJrcyBhIG5ldyBzdWJzY3JpcHRpb24gdG8gYSBnaXZlbiBFbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3N1YnNjcmliZVxuICAgKi9cbiAgc3Vic2NyaWJlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZTxcbiAgICAgIEZldGNoRnVuY3Rpb24sXG4gICAgICBTY2hlbWEgfCB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQgfCBmYWxzZVxuICAgID4sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IFByb21pc2U8dm9pZD4gPT5cbiAgICBhcmdzWzBdICE9PSBudWxsXG4gICAgICA/IHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICAgY3JlYXRlU3Vic2NyaXB0aW9uKGVuZHBvaW50LCB7XG4gICAgICAgICAgICBhcmdzOiBhcmdzIGFzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgOiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAvKipcbiAgICogTWFya3MgY29tcGxldGlvbiBvZiBzdWJzY3JpcHRpb24gdG8gYSBnaXZlbiBFbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3Vuc3Vic2NyaWJlXG4gICAqL1xuICB1bnN1YnNjcmliZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8XG4gICAgICBGZXRjaEZ1bmN0aW9uLFxuICAgICAgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkIHwgZmFsc2VcbiAgICA+LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB8IHJlYWRvbmx5IFtudWxsXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+XG4gICAgYXJnc1swXSAhPT0gbnVsbFxuICAgICAgPyB0aGlzLmRpc3BhdGNoKFxuICAgICAgICAgIGNyZWF0ZVVuc3Vic2NyaXB0aW9uKGVuZHBvaW50LCB7XG4gICAgICAgICAgICBhcmdzOiBhcmdzIGFzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgOiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAvKioqKioqKioqKioqKioqIE1vcmUgKioqKioqKioqKioqKioqL1xuXG4gIC8qIFRPRE86XG4gIGFib3J0ID0gPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dXG4gICk6IFByb21pc2U8dm9pZD5cbiAgKi9cblxuICAvKipcbiAgICogR2V0cyBhIHNuYXBzaG90IChodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdClcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NuYXBzaG90XG4gICAqL1xuICBzbmFwc2hvdCA9IChzdGF0ZTogU3RhdGU8dW5rbm93bj4sIGZldGNoZWRBdD86IG51bWJlcik6IFNuYXBzaG90SW50ZXJmYWNlID0+IHtcbiAgICByZXR1cm4gbmV3IFNuYXBzaG90KHRoaXMsIHN0YXRlLCBmZXRjaGVkQXQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBlcnJvciwgaWYgYW55LCBmb3IgYSBnaXZlbiBlbmRwb2ludC4gUmV0dXJucyB1bmRlZmluZWQgZm9yIG5vIGVycm9ycy5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2dldEVycm9yXG4gICAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dIHwgcmVhZG9ubHkgW251bGxdLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IFsuLi5BcmdzLCBTdGF0ZTx1bmtub3duPl1cbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHJlc3RbMF0gPT09IG51bGwpIHJldHVybjtcbiAgICBjb25zdCBzdGF0ZSA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXSBhcyBTdGF0ZTx1bmtub3duPjtcbiAgICAvLyB0aGlzIGlzIHR5cGVzY3JpcHQgZ2VuZXJpY3MgYnJlYWtpbmdcbiAgICBjb25zdCBhcmdzOiBhbnkgPSByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFWydrZXknXT47XG4gICAgY29uc3Qga2V5ID0gZW5kcG9pbnQua2V5KC4uLmFyZ3MpO1xuXG4gICAgY29uc3QgbWV0YSA9IHNlbGVjdE1ldGEoc3RhdGUsIGtleSk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHN0YXRlLnJlc3VsdHNba2V5XTtcblxuICAgIGlmIChyZXN1bHRzICE9PSB1bmRlZmluZWQgJiYgbWV0YT8uZXJyb3JQb2xpY3kgPT09ICdzb2Z0JykgcmV0dXJuO1xuXG4gICAgcmV0dXJuIG1ldGE/LmVycm9yIGFzIGFueTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgKGdsb2JhbGx5IHJlZmVyZW50aWFsbHkgc3RhYmxlKSByZXNwb25zZSBmb3IgYSBnaXZlbiBlbmRwb2ludC9hcmdzIHBhaXIgZnJvbSBzdGF0ZSBnaXZlbi5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2dldFJlc3BvbnNlXG4gICAqL1xuICBnZXRSZXNwb25zZSA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleScgfCAnc2NoZW1hJyB8ICdpbnZhbGlkSWZTdGFsZSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dIHwgcmVhZG9ubHkgW251bGxdLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IFsuLi5BcmdzLCBTdGF0ZTx1bmtub3duPl1cbiAgKToge1xuICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9ID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXSBhcyBTdGF0ZTx1bmtub3duPjtcbiAgICAvLyB0aGlzIGlzIHR5cGVzY3JpcHQgZ2VuZXJpY3MgYnJlYWtpbmdcbiAgICBjb25zdCBhcmdzOiBhbnkgPSByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFWydrZXknXT47XG4gICAgY29uc3QgaXNBY3RpdmUgPSBhcmdzLmxlbmd0aCAhPT0gMSB8fCBhcmdzWzBdICE9PSBudWxsO1xuICAgIGNvbnN0IGtleSA9IGlzQWN0aXZlID8gZW5kcG9pbnQua2V5KC4uLmFyZ3MpIDogJyc7XG4gICAgY29uc3QgY2FjaGVSZXN1bHRzID0gaXNBY3RpdmUgPyBzdGF0ZS5yZXN1bHRzW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2NoZW1hID0gZW5kcG9pbnQuc2NoZW1hO1xuICAgIGNvbnN0IG1ldGEgPSBzZWxlY3RNZXRhKHN0YXRlLCBrZXkpO1xuICAgIGxldCBleHBpcmVzQXQgPSBtZXRhPy5leHBpcmVzQXQ7XG5cbiAgICBsZXQgaW52YWxpZFJlc3VsdHMgPSBmYWxzZTtcbiAgICBsZXQgcmVzdWx0cztcbiAgICBpZiAoY2FjaGVSZXN1bHRzID09PSB1bmRlZmluZWQgJiYgZW5kcG9pbnQuc2NoZW1hICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdHMgPSBpbmZlclJlc3VsdHMoXG4gICAgICAgIGVuZHBvaW50LnNjaGVtYSxcbiAgICAgICAgYXJncyxcbiAgICAgICAgc3RhdGUuaW5kZXhlcyxcbiAgICAgICAgc3RhdGUuZW50aXRpZXMsXG4gICAgICApO1xuICAgICAgaW52YWxpZFJlc3VsdHMgPSAhdmFsaWRhdGVJbmZlcmVuY2UocmVzdWx0cyk7XG4gICAgICBpZiAoIWV4cGlyZXNBdCAmJiBpbnZhbGlkUmVzdWx0cykgZXhwaXJlc0F0ID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0cyA9IGNhY2hlUmVzdWx0cztcbiAgICB9XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiByZXN1bHRzIGFzIGFueSxcbiAgICAgICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXMuVmFsaWQsXG4gICAgICAgIGV4cGlyZXNBdDogSW5maW5pdHksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICghZW5kcG9pbnQuc2NoZW1hIHx8ICFzY2hlbWFIYXNFbnRpdHkoZW5kcG9pbnQuc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogcmVzdWx0cyxcbiAgICAgICAgZXhwaXJ5U3RhdHVzOiBtZXRhPy5pbnZhbGlkYXRlZFxuICAgICAgICAgID8gRXhwaXJ5U3RhdHVzLkludmFsaWRcbiAgICAgICAgICA6IGNhY2hlUmVzdWx0cyAmJiAhZW5kcG9pbnQuaW52YWxpZElmU3RhbGVcbiAgICAgICAgICA/IEV4cGlyeVN0YXR1cy5WYWxpZFxuICAgICAgICAgIDogRXhwaXJ5U3RhdHVzLkludmFsaWRJZlN0YWxlLFxuICAgICAgICBleHBpcmVzQXQ6IGV4cGlyZXNBdCB8fCAwLFxuICAgICAgfSBhcyB7XG4gICAgICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgICAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cztcbiAgICAgICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nbG9iYWxDYWNoZS5yZXN1bHRzW2tleV0pXG4gICAgICB0aGlzLmdsb2JhbENhY2hlLnJlc3VsdHNba2V5XSA9IG5ldyBXZWFrRW50aXR5TWFwKCk7XG5cbiAgICAvLyBzZWNvbmQgYXJndW1lbnQgaXMgZmFsc2UgaWYgYW55IGVudGl0aWVzIGFyZSBtaXNzaW5nXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgIGNvbnN0IHsgZGF0YSwgcGF0aHMgfSA9IGRlbm9ybWFsaXplQ2FjaGVkKFxuICAgICAgcmVzdWx0cyxcbiAgICAgIHNjaGVtYSxcbiAgICAgIHN0YXRlLmVudGl0aWVzLFxuICAgICAgdGhpcy5nbG9iYWxDYWNoZS5lbnRpdGllcyxcbiAgICAgIHRoaXMuZ2xvYmFsQ2FjaGUucmVzdWx0c1trZXldLFxuICAgICAgYXJncyxcbiAgICApIGFzIHsgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47IHBhdGhzOiBQYXRoW10gfTtcbiAgICBjb25zdCBpbnZhbGlkRGVub3JtYWxpemUgPSB0eXBlb2YgZGF0YSA9PT0gJ3N5bWJvbCc7XG5cbiAgICAvLyBmYWxsYmFjayB0byBlbnRpdHkgZXhwaXJ5IHRpbWVcbiAgICBpZiAoIWV4cGlyZXNBdCkge1xuICAgICAgZXhwaXJlc0F0ID0gZW50aXR5RXhwaXJlc0F0KHBhdGhzLCBzdGF0ZS5lbnRpdHlNZXRhKTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2NvbmNlcHRzL2V4cGlyeS1wb2xpY3kjZXhwaXJ5LXN0YXR1c1xuICAgIC8vIHdlIGRvbid0IHRyYWNrIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhbGUgb3IgZnJlc2ggYmVjYXVzZSB0aGF0IGlzIHRpZWQgdG8gdHJpZ2dlcmluZ1xuICAgIC8vIGNvbmRpdGlvbnNcbiAgICBjb25zdCBleHBpcnlTdGF0dXMgPVxuICAgICAgbWV0YT8uaW52YWxpZGF0ZWQgfHwgKGludmFsaWREZW5vcm1hbGl6ZSAmJiAhbWV0YT8uZXJyb3IpXG4gICAgICAgID8gRXhwaXJ5U3RhdHVzLkludmFsaWRcbiAgICAgICAgOiBpbnZhbGlkRGVub3JtYWxpemUgfHwgZW5kcG9pbnQuaW52YWxpZElmU3RhbGUgfHwgaW52YWxpZFJlc3VsdHNcbiAgICAgICAgPyBFeHBpcnlTdGF0dXMuSW52YWxpZElmU3RhbGVcbiAgICAgICAgOiBFeHBpcnlTdGF0dXMuVmFsaWQ7XG5cbiAgICByZXR1cm4geyBkYXRhLCBleHBpcnlTdGF0dXMsIGV4cGlyZXNBdCB9O1xuICB9O1xufVxuXG4vLyBiZW5jaG1hcms6IGh0dHBzOi8vd3d3Lm1lYXN1cmV0aGF0Lm5ldC9CZW5jaG1hcmtzL1Nob3cvMjQ2OTEvMC9taW4tcmVkdWNlci12cy1pbXBlcmF0aXZlLXdpdGgtcGF0aHNcbi8vIGVhcmxpZXN0IGV4cGlyeSBkaWN0YXRlcyBhZ2VcbmZ1bmN0aW9uIGVudGl0eUV4cGlyZXNBdChcbiAgcGF0aHM6IFBhdGhbXSxcbiAgZW50aXR5TWV0YToge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IFtwazogc3RyaW5nXToge1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjsgLy8gVGhpcyBpcyBvbmx5IHRoZSB2YWx1ZSB1bnRpbCBpdCBpcyBzZXQgYnkgdGhlIENhY2hlUHJvdmlkZXJcbiAgICAgIH07XG4gICAgfTtcbiAgfSxcbikge1xuICBsZXQgZXhwaXJlc0F0ID0gSW5maW5pdHk7XG4gIGZvciAoY29uc3QgeyBwaywga2V5IH0gb2YgcGF0aHMpIHtcbiAgICBjb25zdCBlbnRpdHlFeHBpcnkgPSBlbnRpdHlNZXRhW2tleV0/Lltwa10/LmV4cGlyZXNBdDtcbiAgICAvLyBleHBpcmVzQXQgd2lsbCBhbHdheXMgcmVzb2x2ZSB0byBmYWxzZSB3aXRoIGFueSBjb21wYXJpc29uXG4gICAgaWYgKGVudGl0eUV4cGlyeSA8IGV4cGlyZXNBdCkgZXhwaXJlc0F0ID0gZW50aXR5RXhwaXJ5O1xuICB9XG4gIHJldHVybiBleHBpcmVzQXQ7XG59XG5cbi8qKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgc2NoZW1hIGhhcyBhbnkgZW50aXRpZXMuXG4gKlxuICogV2l0aG91dCBlbnRpdGllcywgZGVub3JtYWxpemF0aW9uIGlzIG5vdCBuZWVkZWQsIGFuZCByZXN1bHRzIHNob3VsZCBub3QgYmUgaW5mZXJyZWQuXG4gKi9cbmZ1bmN0aW9uIHNjaGVtYUhhc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IGJvb2xlYW4ge1xuICBpZiAoaXNFbnRpdHkoc2NoZW1hKSkgcmV0dXJuIHRydWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpXG4gICAgcmV0dXJuIHNjaGVtYS5sZW5ndGggIT09IDAgJiYgc2NoZW1hSGFzRW50aXR5KHNjaGVtYVswXSk7XG4gIGlmIChzY2hlbWEgJiYgKHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgY29uc3QgbmVzdGVkU2NoZW1hID1cbiAgICAgICdzY2hlbWEnIGluIHNjaGVtYSA/IChzY2hlbWEuc2NoZW1hIGFzIFJlY29yZDxzdHJpbmcsIFNjaGVtYT4pIDogc2NoZW1hO1xuICAgIGlmICh0eXBlb2YgbmVzdGVkU2NoZW1hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gc2NoZW1hSGFzRW50aXR5KG5lc3RlZFNjaGVtYSk7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG5lc3RlZFNjaGVtYSkuc29tZSh4ID0+IHNjaGVtYUhhc0VudGl0eSh4KSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgdHlwZSB7IEVycm9yVHlwZXMgfTtcblxuY2xhc3MgU25hcHNob3Q8VCA9IHVua25vd24+IGltcGxlbWVudHMgU25hcHNob3RJbnRlcmZhY2Uge1xuICBwcml2YXRlIHN0YXRlOiBTdGF0ZTxUPjtcbiAgcHJpdmF0ZSBjb250cm9sbGVyOiBDb250cm9sbGVyO1xuICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihjb250cm9sbGVyOiBDb250cm9sbGVyLCBzdGF0ZTogU3RhdGU8VD4sIGZldGNoZWRBdCA9IDApIHtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICB0aGlzLmZldGNoZWRBdCA9IGZldGNoZWRBdDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKiogRGF0YSBBY2Nlc3MgKioqKioqKioqKioqKioqL1xuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRSZXNwb25zZSAqL1xuICBnZXRSZXNwb25zZSA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleScgfCAnc2NoZW1hJyB8ICdpbnZhbGlkSWZTdGFsZSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKToge1xuICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9ID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFJlc3BvbnNlKGVuZHBvaW50LCAuLi5hcmdzLCB0aGlzLnN0YXRlKTtcbiAgfTtcblxuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRFcnJvciAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5nZXRFcnJvcihlbmRwb2ludCwgLi4uYXJncywgdGhpcy5zdGF0ZSk7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQU9BLFNBQ0VBLGFBQWEsRUFDYkMsWUFBWSxFQU1aQyxpQkFBaUIsRUFDakJDLFFBQVEsRUFDUkMsV0FBVyxRQUNOLHdCQUF3QjtBQUMvQixTQUFTQyxZQUFZLEVBQUVDLGlC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
|
|
298
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXZWFrRW50aXR5TWFwIiwiRXhwaXJ5U3RhdHVzIiwiZGVub3JtYWxpemVDYWNoZWQiLCJpc0VudGl0eSIsImRlbm9ybWFsaXplIiwiaW5mZXJSZXN1bHRzIiwidmFsaWRhdGVJbmZlcmVuY2UiLCJjcmVhdGVFeHBpcmVBbGwiLCJjcmVhdGVGZXRjaCIsImNyZWF0ZUludmFsaWRhdGUiLCJjcmVhdGVJbnZhbGlkYXRlQWxsIiwiY3JlYXRlUmVzZXQiLCJjcmVhdGVTZXQiLCJjcmVhdGVVbnN1YnNjcmlwdGlvbiIsImNyZWF0ZVN1YnNjcmlwdGlvbiIsImluaXRpYWxTdGF0ZSIsInNlbGVjdE1ldGEiLCJ1bnNldERpc3BhdGNoIiwiYWN0aW9uIiwiRXJyb3IiLCJ1bnNldFN0YXRlIiwiQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiZGlzcGF0Y2giLCJnZXRTdGF0ZSIsImdsb2JhbENhY2hlIiwiZW50aXRpZXMiLCJyZXN1bHRzIiwiZmV0Y2giLCJlbmRwb2ludCIsImFyZ3MiLCJzY2hlbWEiLCJtZXRhIiwicHJvbWlzZSIsInRoZW4iLCJpbnB1dCIsImludmFsaWRhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImludmFsaWRhdGVBbGwiLCJvcHRpb25zIiwia2V5IiwidGVzdEtleSIsImV4cGlyZUFsbCIsInJlc2V0RW50aXJlU3RvcmUiLCJzZXRSZXNwb25zZSIsInJlc3QiLCJyZXNwb25zZSIsImxlbmd0aCIsInNsaWNlIiwicmVjZWl2ZSIsInNldEVycm9yIiwiZXJyb3IiLCJyZWNlaXZlRXJyb3IiLCJzdWJzY3JpYmUiLCJ1bnN1YnNjcmliZSIsInNuYXBzaG90Iiwic3RhdGUiLCJmZXRjaGVkQXQiLCJTbmFwc2hvdCIsImdldEVycm9yIiwidW5kZWZpbmVkIiwiZXJyb3JQb2xpY3kiLCJnZXRSZXNwb25zZSIsImlzQWN0aXZlIiwiY2FjaGVSZXN1bHRzIiwiZXhwaXJlc0F0IiwiaW52YWxpZFJlc3VsdHMiLCJpbmRleGVzIiwiZGF0YSIsImV4cGlyeVN0YXR1cyIsIlZhbGlkIiwiSW5maW5pdHkiLCJzY2hlbWFIYXNFbnRpdHkiLCJpbnZhbGlkYXRlZCIsIkludmFsaWQiLCJpbnZhbGlkSWZTdGFsZSIsIkludmFsaWRJZlN0YWxlIiwicGF0aHMiLCJpbnZhbGlkRGVub3JtYWxpemUiLCJlbnRpdHlFeHBpcmVzQXQiLCJlbnRpdHlNZXRhIiwicGsiLCJfZW50aXR5TWV0YSRrZXkiLCJfZW50aXR5TWV0YSRrZXkkcGsiLCJlbnRpdHlFeHBpcnkiLCJBcnJheSIsImlzQXJyYXkiLCJuZXN0ZWRTY2hlbWEiLCJPYmplY3QiLCJ2YWx1ZXMiLCJzb21lIiwieCIsImNvbnRyb2xsZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlci9Db250cm9sbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgRXJyb3JUeXBlcyxcbiAgU25hcHNob3RJbnRlcmZhY2UsXG4gIERlbm9ybWFsaXplQ2FjaGUsXG4gIFNjaGVtYSxcbiAgRGVub3JtYWxpemUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHtcbiAgV2Vha0VudGl0eU1hcCxcbiAgRXhwaXJ5U3RhdHVzLFxuICBFbmRwb2ludEludGVyZmFjZSxcbiAgRmV0Y2hGdW5jdGlvbixcbiAgUmVzb2x2ZVR5cGUsXG4gIERlbm9ybWFsaXplTnVsbGFibGUsXG4gIFBhdGgsXG4gIGRlbm9ybWFsaXplQ2FjaGVkLFxuICBpc0VudGl0eSxcbiAgZGVub3JtYWxpemUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuaW1wb3J0IHsgaW5mZXJSZXN1bHRzLCB2YWxpZGF0ZUluZmVyZW5jZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgY3JlYXRlRXhwaXJlQWxsIGZyb20gJy4vY3JlYXRlRXhwaXJlQWxsLmpzJztcbmltcG9ydCBjcmVhdGVGZXRjaCBmcm9tICcuL2NyZWF0ZUZldGNoLmpzJztcbmltcG9ydCBjcmVhdGVJbnZhbGlkYXRlIGZyb20gJy4vY3JlYXRlSW52YWxpZGF0ZS5qcyc7XG5pbXBvcnQgY3JlYXRlSW52YWxpZGF0ZUFsbCBmcm9tICcuL2NyZWF0ZUludmFsaWRhdGVBbGwuanMnO1xuaW1wb3J0IGNyZWF0ZVJlc2V0IGZyb20gJy4vY3JlYXRlUmVzZXQuanMnO1xuaW1wb3J0IGNyZWF0ZVNldCBmcm9tICcuL2NyZWF0ZVNldC5qcyc7XG5pbXBvcnQge1xuICBjcmVhdGVVbnN1YnNjcmlwdGlvbixcbiAgY3JlYXRlU3Vic2NyaXB0aW9uLFxufSBmcm9tICcuL2NyZWF0ZVN1YnNjcmlwdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50VXBkYXRlRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcbmltcG9ydCB7IGluaXRpYWxTdGF0ZSB9IGZyb20gJy4uL3N0YXRlL3JlZHVjZXIvY3JlYXRlUmVkdWNlci5qcyc7XG5pbXBvcnQgc2VsZWN0TWV0YSBmcm9tICcuLi9zdGF0ZS9zZWxlY3RNZXRhLmpzJztcbmltcG9ydCB0eXBlIHsgQWN0aW9uVHlwZXMsIFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSBHZW5lcmljRGlzcGF0Y2ggPSAodmFsdWU6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcbmV4cG9ydCB0eXBlIERhdGFDbGllbnREaXNwYXRjaCA9ICh2YWx1ZTogQWN0aW9uVHlwZXMpID0+IFByb21pc2U8dm9pZD47XG5cbmludGVyZmFjZSBDb25zdHJ1Y3RvclByb3BzPEQgZXh0ZW5kcyBHZW5lcmljRGlzcGF0Y2ggPSBEYXRhQ2xpZW50RGlzcGF0Y2g+IHtcbiAgZGlzcGF0Y2g/OiBEO1xuICBnZXRTdGF0ZT86ICgpID0+IFN0YXRlPHVua25vd24+O1xuICBnbG9iYWxDYWNoZT86IERlbm9ybWFsaXplQ2FjaGU7XG59XG5cbmNvbnN0IHVuc2V0RGlzcGF0Y2ggPSAoYWN0aW9uOiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgRGlzcGF0Y2hpbmcgd2hpbGUgY29uc3RydWN0aW5nIHlvdXIgbWlkZGxld2FyZSBpcyBub3QgYWxsb3dlZC4gYCArXG4gICAgICBgT3RoZXIgbWlkZGxld2FyZSB3b3VsZCBub3QgYmUgYXBwbGllZCB0byB0aGlzIGRpc3BhdGNoLmAsXG4gICk7XG59O1xuY29uc3QgdW5zZXRTdGF0ZSA9ICgpOiBTdGF0ZTx1bmtub3duPiA9PiB7XG4gIC8vIFRoaXMgaXMgb25seSB0aGUgdmFsdWUgdW50aWwgaXQgaXMgc2V0IGJ5IHRoZSBDYWNoZVByb3ZpZGVyXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHJldHVybiBpbml0aWFsU3RhdGU7XG59O1xuXG4vKipcbiAqIEltcGVyYXRpdmUgY29udHJvbCBvZiBSZXN0IEhvb2tzIHN0b3JlXG4gKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udHJvbGxlcjxcbiAgRCBleHRlbmRzIEdlbmVyaWNEaXNwYXRjaCA9IERhdGFDbGllbnREaXNwYXRjaCxcbj4ge1xuICAvKipcbiAgICogRGlzcGF0Y2hlcyBhbiBhY3Rpb24gdG8gUmVzdCBIb29rcyByZWR1Y2VyLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZGlzcGF0Y2hcbiAgICovXG4gIGRlY2xhcmUgcmVhZG9ubHkgZGlzcGF0Y2g6IEQ7XG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsYXRlc3Qgc3RhdGUgc25hcHNob3QgdGhhdCBpcyBmdWxseSBjb21taXR0ZWQuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgaW1wZXJhdGl2ZSB1c2UtY2FzZXMgbGlrZSBldmVudCBoYW5kbGVycy5cbiAgICogVGhpcyBzaG91bGQgKm5vdCogYmUgdXNlZCB0byByZW5kZXI7IGluc3RlYWQgdXNlU3VzcGVuc2UoKSBvciB1c2VDYWNoZSgpXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNnZXRTdGF0ZVxuICAgKi9cbiAgZGVjbGFyZSByZWFkb25seSBnZXRTdGF0ZTogKCkgPT4gU3RhdGU8dW5rbm93bj47XG4gIGRlY2xhcmUgcmVhZG9ubHkgZ2xvYmFsQ2FjaGU6IERlbm9ybWFsaXplQ2FjaGU7XG5cbiAgY29uc3RydWN0b3Ioe1xuICAgIGRpc3BhdGNoID0gdW5zZXREaXNwYXRjaCBhcyBhbnksXG4gICAgZ2V0U3RhdGUgPSB1bnNldFN0YXRlLFxuICAgIGdsb2JhbENhY2hlID0ge1xuICAgICAgZW50aXRpZXM6IHt9LFxuICAgICAgcmVzdWx0czoge30sXG4gICAgfSxcbiAgfTogQ29uc3RydWN0b3JQcm9wczxEPiA9IHt9KSB7XG4gICAgdGhpcy5kaXNwYXRjaCA9IGRpc3BhdGNoO1xuICAgIHRoaXMuZ2V0U3RhdGUgPSBnZXRTdGF0ZTtcbiAgICB0aGlzLmdsb2JhbENhY2hlID0gZ2xvYmFsQ2FjaGU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqIEFjdGlvbiBEaXNwYXRjaGVycyAqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGVuZHBvaW50IHdpdGggZ2l2ZW4gYXJncywgdXBkYXRpbmcgdGhlIFJlc3QgSG9va3MgY2FjaGUgd2l0aCB0aGUgcmVzcG9uc2Ugb3IgZXJyb3IgdXBvbiBjb21wbGV0aW9uLlxuICAgKiBAc2VlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjZmV0Y2hcbiAgICovXG4gIGZldGNoID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHsgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPiB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XVxuICApOiBFWydzY2hlbWEnXSBleHRlbmRzIHVuZGVmaW5lZCB8IG51bGxcbiAgICA/IFJldHVyblR5cGU8RT5cbiAgICA6IFByb21pc2U8RGVub3JtYWxpemU8RVsnc2NoZW1hJ10+PiA9PiB7XG4gICAgY29uc3QgYWN0aW9uID0gY3JlYXRlRmV0Y2goZW5kcG9pbnQsIHtcbiAgICAgIGFyZ3MsXG4gICAgfSk7XG4gICAgdGhpcy5kaXNwYXRjaChhY3Rpb24pO1xuXG4gICAgaWYgKGVuZHBvaW50LnNjaGVtYSkge1xuICAgICAgcmV0dXJuIGFjdGlvbi5tZXRhLnByb21pc2UudGhlbihpbnB1dCA9PlxuICAgICAgICBkZW5vcm1hbGl6ZShpbnB1dCwgZW5kcG9pbnQuc2NoZW1hLCB7fSwgYXJncyksXG4gICAgICApIGFzIGFueTtcbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvbi5tZXRhLnByb21pc2UgYXMgYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBGb3JjZXMgcmVmZXRjaGluZyBhbmQgc3VzcGVuc2Ugb24gdXNlU3VzcGVuc2Ugd2l0aCB0aGUgc2FtZSBFbmRwb2ludCBhbmQgcGFyYW1ldGVycy5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2ludmFsaWRhdGVcbiAgICovXG4gIGludmFsaWRhdGUgPSA8RSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlPihcbiAgICBlbmRwb2ludDogRSxcbiAgICAuLi5hcmdzOiByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFPl0gfCByZWFkb25seSBbbnVsbF1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PlxuICAgIGFyZ3NbMF0gIT09IG51bGxcbiAgICAgID8gdGhpcy5kaXNwYXRjaChcbiAgICAgICAgICBjcmVhdGVJbnZhbGlkYXRlKGVuZHBvaW50LCB7XG4gICAgICAgICAgICBhcmdzOiBhcmdzIGFzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgOiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAvKipcbiAgICogRm9yY2VzIHJlZmV0Y2hpbmcgYW5kIHN1c3BlbnNlIG9uIHVzZVN1c3BlbnNlIG9uIGFsbCBtYXRjaGluZyBlbmRwb2ludCByZXN1bHQga2V5cy5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2ludmFsaWRhdGVBbGxcbiAgICogQHJldHVybnMgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gaW52YWxpZGF0aW9uIGlzIGNvbW1pdGVkLlxuICAgKi9cbiAgaW52YWxpZGF0ZUFsbCA9IChvcHRpb25zOiB7IHRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbiB9KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2goY3JlYXRlSW52YWxpZGF0ZUFsbCgoa2V5OiBzdHJpbmcpID0+IG9wdGlvbnMudGVzdEtleShrZXkpKSk7XG5cbiAgLyoqXG4gICAqIFNldHMgYWxsIG1hdGNoaW5nIGVuZHBvaW50IHJlc3VsdCBrZXlzIHRvIGJlIFNUQUxFLlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9Db250cm9sbGVyI2V4cGlyZUFsbFxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBleHBpcnkgaXMgY29tbWl0ZWQuICpOT1QqIGZldGNoIHByb21pc2VcbiAgICovXG4gIGV4cGlyZUFsbCA9IChvcHRpb25zOiB7IHRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbiB9KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2goY3JlYXRlRXhwaXJlQWxsKChrZXk6IHN0cmluZykgPT4gb3B0aW9ucy50ZXN0S2V5KGtleSkpKTtcblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBlbnRpcmUgUmVzdCBIb29rcyBjYWNoZS4gQWxsIGluZmxpZ2h0IHJlcXVlc3RzIHdpbGwgbm90IHJlc29sdmUuXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNyZXNldEVudGlyZVN0b3JlXG4gICAqL1xuICByZXNldEVudGlyZVN0b3JlID0gKCk6IFByb21pc2U8dm9pZD4gPT4gdGhpcy5kaXNwYXRjaChjcmVhdGVSZXNldCgpKTtcblxuICAvKipcbiAgICogU3RvcmVzIHJlc3BvbnNlIGluIGNhY2hlIGZvciBnaXZlbiBFbmRwb2ludCBhbmQgYXJncy5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldFxuICAgKi9cbiAgc2V0UmVzcG9uc2UgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgICB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+LCBhbnldXG4gICk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBSZXNvbHZlVHlwZTxFPiA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBhY3Rpb24gPSBjcmVhdGVTZXQoZW5kcG9pbnQsIHtcbiAgICAgIGFyZ3M6IHJlc3Quc2xpY2UoMCwgcmVzdC5sZW5ndGggLSAxKSBhcyBQYXJhbWV0ZXJzPEU+LFxuICAgICAgcmVzcG9uc2UsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfTtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGh0dHBzOi8vcmVzdGhvb2tzLmlvL2RvY3MvYXBpL0NvbnRyb2xsZXIjc2V0UmVzcG9uc2UgaW5zdGVhZFxuICAgKi9cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gcmVjZWl2ZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIGFueV1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5zZXRSZXNwb25zZShlbmRwb2ludCwgLi4ucmVzdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFN0b3JlcyB0aGUgcmVzdWx0IG9mIEVuZHBvaW50IGFuZCBhcmdzIGFzIHRoZSBlcnJvciBwcm92aWRlZC5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NldEVycm9yXG4gICAqL1xuICBzZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2UgJiB7XG4gICAgICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEU+O1xuICAgIH0sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4ucmVzdDogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT4sIEVycm9yXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCByZXNwb25zZTogRXJyb3IgPSByZXN0W3Jlc3QubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgYWN0aW9uID0gY3JlYXRlU2V0KGVuZHBvaW50LCB7XG4gICAgICBhcmdzOiByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFPixcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgZXJyb3I6IHRydWUsXG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfTtcblxuICAvKipcbiAgICogQW5vdGhlciBuYW1lIGZvciBzZXRFcnJvclxuICAgKiBAZGVwcmVjYXRlZCB1c2UgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNzZXRFcnJvciBpbnN0ZWFkXG4gICAqL1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyByZWNlaXZlRXJyb3IgPSA8XG4gICAgRSBleHRlbmRzIEVuZHBvaW50SW50ZXJmYWNlICYge1xuICAgICAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbiAgICB9LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+LCBFcnJvcl1cbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5zZXRFcnJvcihlbmRwb2ludCwgLi4ucmVzdCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGFuIGluZmxpZ2h0IGZldGNoLiBgZmV0Y2hlZEF0YCBzaG91bGQgYGZldGNoYCdzIGBjcmVhdGVkQXRgXG4gICAqIEBzZWUgaHR0cHM6Ly9yZXN0aG9va3MuaW8vZG9jcy9hcGkvQ29udHJvbGxlciNyZXNvbHZlXG4gICAqL1xuICByZXNvbHZlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZSAmIHtcbiAgICAgIHVwZGF0ZT86IEVuZHBvaW50VXBkYXRlRnVuY3Rpb248RT47XG4gICAgfSxcbiAgPihcbiAgICBlbmRwb2ludDogRSxcbiAgICBtZXRhOlxuICAgICAgfCB7XG4gICAgICAgICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgICAgICAgIHJlc3BvbnNlOiBFcnJvcjtcbiAgICAgICAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgICAgICAgICBlcnJvcjogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfCB7XG4gICAgICAgICAgYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dO1xuICAgICAgICAgIHJlc3BvbnNlOiBhbnk7XG4gICAgICAgICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gICAgICAgICAgZXJyb3I/OiBmYWxzZTtcbiAgICAgICAgfSxcbiAgKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2goY3JlYXRlU2V0KGVuZHBvaW50LCBtZXRhIGFzIGFueSkpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBNYXJrcyBhIG5ldyBzdWJzY3JpcHRpb24gdG8gYSBnaXZlbiBFbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3N1YnNjcmliZVxuICAgKi9cbiAgc3Vic2NyaWJlID0gPFxuICAgIEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZTxcbiAgICAgIEZldGNoRnVuY3Rpb24sXG4gICAgICBTY2hlbWEgfCB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQgfCBmYWxzZVxuICAgID4sXG4gID4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dIHwgcmVhZG9ubHkgW251bGxdXG4gICk6IFByb21pc2U8dm9pZD4gPT5cbiAgICBhcmdzWzBdICE9PSBudWxsXG4gICAgICA/IHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICAgY3JlYXRlU3Vic2NyaXB0aW9uKGVuZHBvaW50LCB7XG4gICAgICAgICAgICBhcmdzOiBhcmdzIGFzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgOiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAvKipcbiAgICogTWFya3MgY29tcGxldGlvbiBvZiBzdWJzY3JpcHRpb24gdG8gYSBnaXZlbiBFbmRwb2ludC5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3Vuc3Vic2NyaWJlXG4gICAqL1xuICB1bnN1YnNjcmliZSA9IDxcbiAgICBFIGV4dGVuZHMgRW5kcG9pbnRJbnRlcmZhY2U8XG4gICAgICBGZXRjaEZ1bmN0aW9uLFxuICAgICAgU2NoZW1hIHwgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkIHwgZmFsc2VcbiAgICA+LFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSB8IHJlYWRvbmx5IFtudWxsXVxuICApOiBQcm9taXNlPHZvaWQ+ID0+XG4gICAgYXJnc1swXSAhPT0gbnVsbFxuICAgICAgPyB0aGlzLmRpc3BhdGNoKFxuICAgICAgICAgIGNyZWF0ZVVuc3Vic2NyaXB0aW9uKGVuZHBvaW50LCB7XG4gICAgICAgICAgICBhcmdzOiBhcmdzIGFzIHJlYWRvbmx5IFsuLi5QYXJhbWV0ZXJzPEU+XSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuICAgICAgOiBQcm9taXNlLnJlc29sdmUoKTtcblxuICAvKioqKioqKioqKioqKioqIE1vcmUgKioqKioqKioqKioqKioqL1xuXG4gIC8qIFRPRE86XG4gIGFib3J0ID0gPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4oXG4gICAgZW5kcG9pbnQ6IEUsXG4gICAgLi4uYXJnczogcmVhZG9ubHkgWy4uLlBhcmFtZXRlcnM8RT5dXG4gICk6IFByb21pc2U8dm9pZD5cbiAgKi9cblxuICAvKipcbiAgICogR2V0cyBhIHNuYXBzaG90IChodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdClcbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI3NuYXBzaG90XG4gICAqL1xuICBzbmFwc2hvdCA9IChzdGF0ZTogU3RhdGU8dW5rbm93bj4sIGZldGNoZWRBdD86IG51bWJlcik6IFNuYXBzaG90SW50ZXJmYWNlID0+IHtcbiAgICByZXR1cm4gbmV3IFNuYXBzaG90KHRoaXMsIHN0YXRlLCBmZXRjaGVkQXQpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBlcnJvciwgaWYgYW55LCBmb3IgYSBnaXZlbiBlbmRwb2ludC4gUmV0dXJucyB1bmRlZmluZWQgZm9yIG5vIGVycm9ycy5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2dldEVycm9yXG4gICAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dIHwgcmVhZG9ubHkgW251bGxdLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IFsuLi5BcmdzLCBTdGF0ZTx1bmtub3duPl1cbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHJlc3RbMF0gPT09IG51bGwpIHJldHVybjtcbiAgICBjb25zdCBzdGF0ZSA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXSBhcyBTdGF0ZTx1bmtub3duPjtcbiAgICAvLyB0aGlzIGlzIHR5cGVzY3JpcHQgZ2VuZXJpY3MgYnJlYWtpbmdcbiAgICBjb25zdCBhcmdzOiBhbnkgPSByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFWydrZXknXT47XG4gICAgY29uc3Qga2V5ID0gZW5kcG9pbnQua2V5KC4uLmFyZ3MpO1xuXG4gICAgY29uc3QgbWV0YSA9IHNlbGVjdE1ldGEoc3RhdGUsIGtleSk7XG4gICAgY29uc3QgcmVzdWx0cyA9IHN0YXRlLnJlc3VsdHNba2V5XTtcblxuICAgIGlmIChyZXN1bHRzICE9PSB1bmRlZmluZWQgJiYgbWV0YT8uZXJyb3JQb2xpY3kgPT09ICdzb2Z0JykgcmV0dXJuO1xuXG4gICAgcmV0dXJuIG1ldGE/LmVycm9yIGFzIGFueTtcbiAgfTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgKGdsb2JhbGx5IHJlZmVyZW50aWFsbHkgc3RhYmxlKSByZXNwb25zZSBmb3IgYSBnaXZlbiBlbmRwb2ludC9hcmdzIHBhaXIgZnJvbSBzdGF0ZSBnaXZlbi5cbiAgICogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9Db250cm9sbGVyI2dldFJlc3BvbnNlXG4gICAqL1xuICBnZXRSZXNwb25zZSA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleScgfCAnc2NoZW1hJyB8ICdpbnZhbGlkSWZTdGFsZSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dIHwgcmVhZG9ubHkgW251bGxdLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLnJlc3Q6IFsuLi5BcmdzLCBTdGF0ZTx1bmtub3duPl1cbiAgKToge1xuICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9ID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IHJlc3RbcmVzdC5sZW5ndGggLSAxXSBhcyBTdGF0ZTx1bmtub3duPjtcbiAgICAvLyB0aGlzIGlzIHR5cGVzY3JpcHQgZ2VuZXJpY3MgYnJlYWtpbmdcbiAgICBjb25zdCBhcmdzOiBhbnkgPSByZXN0LnNsaWNlKDAsIHJlc3QubGVuZ3RoIC0gMSkgYXMgUGFyYW1ldGVyczxFWydrZXknXT47XG4gICAgY29uc3QgaXNBY3RpdmUgPSBhcmdzLmxlbmd0aCAhPT0gMSB8fCBhcmdzWzBdICE9PSBudWxsO1xuICAgIGNvbnN0IGtleSA9IGlzQWN0aXZlID8gZW5kcG9pbnQua2V5KC4uLmFyZ3MpIDogJyc7XG4gICAgY29uc3QgY2FjaGVSZXN1bHRzID0gaXNBY3RpdmUgPyBzdGF0ZS5yZXN1bHRzW2tleV0gOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgc2NoZW1hID0gZW5kcG9pbnQuc2NoZW1hO1xuICAgIGNvbnN0IG1ldGEgPSBzZWxlY3RNZXRhKHN0YXRlLCBrZXkpO1xuICAgIGxldCBleHBpcmVzQXQgPSBtZXRhPy5leHBpcmVzQXQ7XG5cbiAgICBsZXQgaW52YWxpZFJlc3VsdHMgPSBmYWxzZTtcbiAgICBsZXQgcmVzdWx0cztcbiAgICBpZiAoY2FjaGVSZXN1bHRzID09PSB1bmRlZmluZWQgJiYgZW5kcG9pbnQuc2NoZW1hICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdHMgPSBpbmZlclJlc3VsdHMoXG4gICAgICAgIGVuZHBvaW50LnNjaGVtYSxcbiAgICAgICAgYXJncyxcbiAgICAgICAgc3RhdGUuaW5kZXhlcyxcbiAgICAgICAgc3RhdGUuZW50aXRpZXMsXG4gICAgICApO1xuICAgICAgaW52YWxpZFJlc3VsdHMgPSAhdmFsaWRhdGVJbmZlcmVuY2UocmVzdWx0cyk7XG4gICAgICBpZiAoIWV4cGlyZXNBdCAmJiBpbnZhbGlkUmVzdWx0cykgZXhwaXJlc0F0ID0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0cyA9IGNhY2hlUmVzdWx0cztcbiAgICB9XG5cbiAgICBpZiAoIWlzQWN0aXZlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiByZXN1bHRzIGFzIGFueSxcbiAgICAgICAgZXhwaXJ5U3RhdHVzOiBFeHBpcnlTdGF0dXMuVmFsaWQsXG4gICAgICAgIGV4cGlyZXNBdDogSW5maW5pdHksXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICghZW5kcG9pbnQuc2NoZW1hIHx8ICFzY2hlbWFIYXNFbnRpdHkoZW5kcG9pbnQuc2NoZW1hKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogcmVzdWx0cyxcbiAgICAgICAgZXhwaXJ5U3RhdHVzOiBtZXRhPy5pbnZhbGlkYXRlZFxuICAgICAgICAgID8gRXhwaXJ5U3RhdHVzLkludmFsaWRcbiAgICAgICAgICA6IGNhY2hlUmVzdWx0cyAmJiAhZW5kcG9pbnQuaW52YWxpZElmU3RhbGVcbiAgICAgICAgICA/IEV4cGlyeVN0YXR1cy5WYWxpZFxuICAgICAgICAgIDogRXhwaXJ5U3RhdHVzLkludmFsaWRJZlN0YWxlLFxuICAgICAgICBleHBpcmVzQXQ6IGV4cGlyZXNBdCB8fCAwLFxuICAgICAgfSBhcyB7XG4gICAgICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgICAgICBleHBpcnlTdGF0dXM6IEV4cGlyeVN0YXR1cztcbiAgICAgICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmICghdGhpcy5nbG9iYWxDYWNoZS5yZXN1bHRzW2tleV0pXG4gICAgICB0aGlzLmdsb2JhbENhY2hlLnJlc3VsdHNba2V5XSA9IG5ldyBXZWFrRW50aXR5TWFwKCk7XG5cbiAgICAvLyBzZWNvbmQgYXJndW1lbnQgaXMgZmFsc2UgaWYgYW55IGVudGl0aWVzIGFyZSBtaXNzaW5nXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgIGNvbnN0IHsgZGF0YSwgcGF0aHMgfSA9IGRlbm9ybWFsaXplQ2FjaGVkKFxuICAgICAgcmVzdWx0cyxcbiAgICAgIHNjaGVtYSxcbiAgICAgIHN0YXRlLmVudGl0aWVzLFxuICAgICAgdGhpcy5nbG9iYWxDYWNoZS5lbnRpdGllcyxcbiAgICAgIHRoaXMuZ2xvYmFsQ2FjaGUucmVzdWx0c1trZXldLFxuICAgICAgYXJncyxcbiAgICApIGFzIHsgZGF0YTogRGVub3JtYWxpemVOdWxsYWJsZTxFWydzY2hlbWEnXT47IHBhdGhzOiBQYXRoW10gfTtcbiAgICBjb25zdCBpbnZhbGlkRGVub3JtYWxpemUgPSB0eXBlb2YgZGF0YSA9PT0gJ3N5bWJvbCc7XG5cbiAgICAvLyBmYWxsYmFjayB0byBlbnRpdHkgZXhwaXJ5IHRpbWVcbiAgICBpZiAoIWV4cGlyZXNBdCkge1xuICAgICAgZXhwaXJlc0F0ID0gZW50aXR5RXhwaXJlc0F0KHBhdGhzLCBzdGF0ZS5lbnRpdHlNZXRhKTtcbiAgICB9XG5cbiAgICAvLyBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2NvbmNlcHRzL2V4cGlyeS1wb2xpY3kjZXhwaXJ5LXN0YXR1c1xuICAgIC8vIHdlIGRvbid0IHRyYWNrIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gc3RhbGUgb3IgZnJlc2ggYmVjYXVzZSB0aGF0IGlzIHRpZWQgdG8gdHJpZ2dlcmluZ1xuICAgIC8vIGNvbmRpdGlvbnNcbiAgICBjb25zdCBleHBpcnlTdGF0dXMgPVxuICAgICAgbWV0YT8uaW52YWxpZGF0ZWQgfHwgKGludmFsaWREZW5vcm1hbGl6ZSAmJiAhbWV0YT8uZXJyb3IpXG4gICAgICAgID8gRXhwaXJ5U3RhdHVzLkludmFsaWRcbiAgICAgICAgOiBpbnZhbGlkRGVub3JtYWxpemUgfHwgZW5kcG9pbnQuaW52YWxpZElmU3RhbGUgfHwgaW52YWxpZFJlc3VsdHNcbiAgICAgICAgPyBFeHBpcnlTdGF0dXMuSW52YWxpZElmU3RhbGVcbiAgICAgICAgOiBFeHBpcnlTdGF0dXMuVmFsaWQ7XG5cbiAgICByZXR1cm4geyBkYXRhLCBleHBpcnlTdGF0dXMsIGV4cGlyZXNBdCB9O1xuICB9O1xufVxuXG4vLyBiZW5jaG1hcms6IGh0dHBzOi8vd3d3Lm1lYXN1cmV0aGF0Lm5ldC9CZW5jaG1hcmtzL1Nob3cvMjQ2OTEvMC9taW4tcmVkdWNlci12cy1pbXBlcmF0aXZlLXdpdGgtcGF0aHNcbi8vIGVhcmxpZXN0IGV4cGlyeSBkaWN0YXRlcyBhZ2VcbmZ1bmN0aW9uIGVudGl0eUV4cGlyZXNBdChcbiAgcGF0aHM6IFBhdGhbXSxcbiAgZW50aXR5TWV0YToge1xuICAgIHJlYWRvbmx5IFtlbnRpdHlLZXk6IHN0cmluZ106IHtcbiAgICAgIHJlYWRvbmx5IFtwazogc3RyaW5nXToge1xuICAgICAgICByZWFkb25seSBkYXRlOiBudW1iZXI7XG4gICAgICAgIHJlYWRvbmx5IGV4cGlyZXNBdDogbnVtYmVyO1xuICAgICAgICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjsgLy8gVGhpcyBpcyBvbmx5IHRoZSB2YWx1ZSB1bnRpbCBpdCBpcyBzZXQgYnkgdGhlIENhY2hlUHJvdmlkZXJcbiAgICAgIH07XG4gICAgfTtcbiAgfSxcbikge1xuICBsZXQgZXhwaXJlc0F0ID0gSW5maW5pdHk7XG4gIGZvciAoY29uc3QgeyBwaywga2V5IH0gb2YgcGF0aHMpIHtcbiAgICBjb25zdCBlbnRpdHlFeHBpcnkgPSBlbnRpdHlNZXRhW2tleV0/Lltwa10/LmV4cGlyZXNBdDtcbiAgICAvLyBleHBpcmVzQXQgd2lsbCBhbHdheXMgcmVzb2x2ZSB0byBmYWxzZSB3aXRoIGFueSBjb21wYXJpc29uXG4gICAgaWYgKGVudGl0eUV4cGlyeSA8IGV4cGlyZXNBdCkgZXhwaXJlc0F0ID0gZW50aXR5RXhwaXJ5O1xuICB9XG4gIHJldHVybiBleHBpcmVzQXQ7XG59XG5cbi8qKiBEZXRlcm1pbmUgd2hldGhlciB0aGUgc2NoZW1hIGhhcyBhbnkgZW50aXRpZXMuXG4gKlxuICogV2l0aG91dCBlbnRpdGllcywgZGVub3JtYWxpemF0aW9uIGlzIG5vdCBuZWVkZWQsIGFuZCByZXN1bHRzIHNob3VsZCBub3QgYmUgaW5mZXJyZWQuXG4gKi9cbmZ1bmN0aW9uIHNjaGVtYUhhc0VudGl0eShzY2hlbWE6IFNjaGVtYSk6IGJvb2xlYW4ge1xuICBpZiAoaXNFbnRpdHkoc2NoZW1hKSkgcmV0dXJuIHRydWU7XG4gIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpXG4gICAgcmV0dXJuIHNjaGVtYS5sZW5ndGggIT09IDAgJiYgc2NoZW1hSGFzRW50aXR5KHNjaGVtYVswXSk7XG4gIGlmIChzY2hlbWEgJiYgKHR5cGVvZiBzY2hlbWEgPT09ICdvYmplY3QnIHx8IHR5cGVvZiBzY2hlbWEgPT09ICdmdW5jdGlvbicpKSB7XG4gICAgY29uc3QgbmVzdGVkU2NoZW1hID1cbiAgICAgICdzY2hlbWEnIGluIHNjaGVtYSA/IChzY2hlbWEuc2NoZW1hIGFzIFJlY29yZDxzdHJpbmcsIFNjaGVtYT4pIDogc2NoZW1hO1xuICAgIGlmICh0eXBlb2YgbmVzdGVkU2NoZW1hID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gc2NoZW1hSGFzRW50aXR5KG5lc3RlZFNjaGVtYSk7XG4gICAgfVxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG5lc3RlZFNjaGVtYSkuc29tZSh4ID0+IHNjaGVtYUhhc0VudGl0eSh4KSk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgdHlwZSB7IEVycm9yVHlwZXMgfTtcblxuY2xhc3MgU25hcHNob3Q8VCA9IHVua25vd24+IGltcGxlbWVudHMgU25hcHNob3RJbnRlcmZhY2Uge1xuICBwcml2YXRlIHN0YXRlOiBTdGF0ZTxUPjtcbiAgcHJpdmF0ZSBjb250cm9sbGVyOiBDb250cm9sbGVyO1xuICByZWFkb25seSBmZXRjaGVkQXQ6IG51bWJlcjtcblxuICBjb25zdHJ1Y3Rvcihjb250cm9sbGVyOiBDb250cm9sbGVyLCBzdGF0ZTogU3RhdGU8VD4sIGZldGNoZWRBdCA9IDApIHtcbiAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICB0aGlzLmZldGNoZWRBdCA9IGZldGNoZWRBdDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKiogRGF0YSBBY2Nlc3MgKioqKioqKioqKioqKioqL1xuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRSZXNwb25zZSAqL1xuICBnZXRSZXNwb25zZSA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleScgfCAnc2NoZW1hJyB8ICdpbnZhbGlkSWZTdGFsZSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKToge1xuICAgIGRhdGE6IERlbm9ybWFsaXplTnVsbGFibGU8RVsnc2NoZW1hJ10+O1xuICAgIGV4cGlyeVN0YXR1czogRXhwaXJ5U3RhdHVzO1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICB9ID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sbGVyLmdldFJlc3BvbnNlKGVuZHBvaW50LCAuLi5hcmdzLCB0aGlzLnN0YXRlKTtcbiAgfTtcblxuICAvKiogQHNlZSBodHRwczovL3Jlc3Rob29rcy5pby9kb2NzL2FwaS9TbmFwc2hvdCNnZXRFcnJvciAqL1xuICBnZXRFcnJvciA9IDxcbiAgICBFIGV4dGVuZHMgUGljazxFbmRwb2ludEludGVyZmFjZSwgJ2tleSc+LFxuICAgIEFyZ3MgZXh0ZW5kcyByZWFkb25seSBbLi4uUGFyYW1ldGVyczxFWydrZXknXT5dLFxuICA+KFxuICAgIGVuZHBvaW50OiBFLFxuICAgIC4uLmFyZ3M6IEFyZ3NcbiAgKTogRXJyb3JUeXBlcyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbGxlci5nZXRFcnJvcihlbmRwb2ludCwgLi4uYXJncywgdGhpcy5zdGF0ZSk7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQU9BLFNBQ0VBLGFBQWEsRUFDYkMsWUFBWSxFQU1aQyxpQkFBaUIsRUFDakJDLFFBQVEsRUFDUkMsV0FBVyxRQUNOLHdCQUF3QjtBQUMvQixTQUFTQyxZQUFZLEVBQUVDLGlCQUFpQixRQUFRLHdCQUF3QjtBQUV4RSxPQUFPQyxlQUFlLE1BQU0sc0JBQXNCO0FBQ2xELE9BQU9DLFdBQVcsTUFBTSxrQkFBa0I7QUFDMUMsT0FBT0MsZ0JBQWdCLE1BQU0sdUJBQXVCO0FBQ3BELE9BQU9DLG1CQUFtQixNQUFNLDBCQUEwQjtBQUMxRCxPQUFPQyxXQUFXLE1BQU0sa0JBQWtCO0FBQzFDLE9BQU9DLFNBQVMsTUFBTSxnQkFBZ0I7QUFDdEMsU0FDRUMsb0JBQW9CLEVBQ3BCQyxrQkFBa0IsUUFDYix5QkFBeUI7QUFFaEMsU0FBU0MsWUFBWSxRQUFRLG1DQUFtQztBQUNoRSxPQUFPQyxVQUFVLE1BQU0sd0JBQXdCO0FBWS9DLE1BQU1DLGFBQWEsR0FBSUMsTUFBZSxJQUFvQjtFQUN4RCxNQUFNLElBQUlDLEtBQUssQ0FDWixpRUFBZ0UsR0FDOUQseURBQ0wsQ0FBQztBQUNI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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createExpireAll.d.ts","sourceRoot":"","sources":["../../src/controller/createExpireAll.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GAChC,eAAe,CAKjB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EXPIREALL_TYPE } from '../actionTypes.js';
|
|
2
|
+
export default function createExpireAll(testKey) {
|
|
3
|
+
return {
|
|
4
|
+
type: EXPIREALL_TYPE,
|
|
5
|
+
testKey
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFWFBJUkVBTExfVFlQRSIsImNyZWF0ZUV4cGlyZUFsbCIsInRlc3RLZXkiLCJ0eXBlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyb2xsZXIvY3JlYXRlRXhwaXJlQWxsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVYUElSRUFMTF9UWVBFIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBFeHBpcmVBbGxBY3Rpb24gfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUV4cGlyZUFsbChcbiAgdGVzdEtleTogKGtleTogc3RyaW5nKSA9PiBib29sZWFuLFxuKTogRXhwaXJlQWxsQWN0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBFWFBJUkVBTExfVFlQRSxcbiAgICB0ZXN0S2V5LFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxjQUFjLFFBQVEsbUJBQW1CO0FBR2xELGVBQWUsU0FBU0MsZUFBZUEsQ0FDckNDLE9BQWlDLEVBQ2hCO0VBQ2pCLE9BQU87SUFDTEMsSUFBSSxFQUFFSCxjQUFjO0lBQ3BCRTtFQUNGLENBQUM7QUFDSCJ9
|
package/lib/newActions.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { EndpointInterface, ResolveType, UnknownError } from '@data-client/normalizr';
|
|
2
|
-
import type { SET_TYPE, RESET_TYPE, FETCH_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE, INVALIDATE_TYPE, GC_TYPE, OPTIMISTIC_TYPE, INVALIDATEALL_TYPE } from './actionTypes.js';
|
|
2
|
+
import type { SET_TYPE, RESET_TYPE, FETCH_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE, INVALIDATE_TYPE, GC_TYPE, OPTIMISTIC_TYPE, INVALIDATEALL_TYPE, EXPIREALL_TYPE } from './actionTypes.js';
|
|
3
3
|
import type { EndpointUpdateFunction } from './controller/types.js';
|
|
4
4
|
type EndpointAndUpdate<E extends EndpointInterface> = EndpointInterface & {
|
|
5
5
|
update?: EndpointUpdateFunction<E>;
|
|
@@ -69,6 +69,10 @@ export interface UnsubscribeAction<E extends EndpointAndUpdate<E> = EndpointDefa
|
|
|
69
69
|
key: string;
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
+
export interface ExpireAllAction {
|
|
73
|
+
type: typeof EXPIREALL_TYPE;
|
|
74
|
+
testKey: (key: string) => boolean;
|
|
75
|
+
}
|
|
72
76
|
export interface InvalidateAllAction {
|
|
73
77
|
type: typeof INVALIDATEALL_TYPE;
|
|
74
78
|
testKey: (key: string) => boolean;
|
|
@@ -88,6 +92,6 @@ export interface GCAction {
|
|
|
88
92
|
entities: [string, string][];
|
|
89
93
|
results: string[];
|
|
90
94
|
}
|
|
91
|
-
export type ActionTypes = FetchAction | OptimisticAction | SetAction | SubscribeAction | UnsubscribeAction | InvalidateAction | InvalidateAllAction | ResetAction | GCAction;
|
|
95
|
+
export type ActionTypes = FetchAction | OptimisticAction | SetAction | SubscribeAction | UnsubscribeAction | InvalidateAction | InvalidateAllAction | ExpireAllAction | ResetAction | GCAction;
|
|
92
96
|
export {};
|
|
93
97
|
//# sourceMappingURL=newActions.d.ts.map
|
package/lib/newActions.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"newActions.d.ts","sourceRoot":"","sources":["../src/newActions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACb,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,eAAe,EACf,kBAAkB,
|
|
1
|
+
{"version":3,"file":"newActions.d.ts","sourceRoot":"","sources":["../src/newActions.ts"],"names":[],"mappings":"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"}
|
package/lib/newActions.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL25ld0FjdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBFbmRwb2ludEludGVyZmFjZSxcbiAgUmVzb2x2ZVR5cGUsXG4gIFVua25vd25FcnJvcixcbn0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCB0eXBlIHtcbiAgU0VUX1RZUEUsXG4gIFJFU0VUX1RZUEUsXG4gIEZFVENIX1RZUEUsXG4gIFNVQlNDUklCRV9UWVBFLFxuICBVTlNVQlNDUklCRV9UWVBFLFxuICBJTlZBTElEQVRFX1RZUEUsXG4gIEdDX1RZUEUsXG4gIE9QVElNSVNUSUNfVFlQRSxcbiAgSU5WQUxJREFURUFMTF9UWVBFLFxuICBFWFBJUkVBTExfVFlQRSxcbn0gZnJvbSAnLi9hY3Rpb25UeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50VXBkYXRlRnVuY3Rpb24gfSBmcm9tICcuL2NvbnRyb2xsZXIvdHlwZXMuanMnO1xuXG50eXBlIEVuZHBvaW50QW5kVXBkYXRlPEUgZXh0ZW5kcyBFbmRwb2ludEludGVyZmFjZT4gPSBFbmRwb2ludEludGVyZmFjZSAmIHtcbiAgdXBkYXRlPzogRW5kcG9pbnRVcGRhdGVGdW5jdGlvbjxFPjtcbn07XG50eXBlIEVuZHBvaW50RGVmYXVsdCA9IEVuZHBvaW50SW50ZXJmYWNlICYge1xuICB1cGRhdGU/OiBFbmRwb2ludFVwZGF0ZUZ1bmN0aW9uPEVuZHBvaW50SW50ZXJmYWNlPjtcbn07XG5cbi8qIFJFQ0VJVkUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V0TWV0YSB7XG4gIGFyZ3M6IHJlYWRvbmx5IGFueVtdO1xuICBrZXk6IHN0cmluZztcbiAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gIGRhdGU6IG51bWJlcjtcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNldEFjdGlvblN1Y2Nlc3M8XG4gIEUgZXh0ZW5kcyBFbmRwb2ludEFuZFVwZGF0ZTxFPiA9IEVuZHBvaW50RGVmYXVsdCxcbj4ge1xuICB0eXBlOiB0eXBlb2YgU0VUX1RZUEU7XG4gIGVuZHBvaW50OiBFO1xuICBtZXRhOiBTZXRNZXRhO1xuICBwYXlsb2FkOiBSZXNvbHZlVHlwZTxFPjtcbiAgZXJyb3I/OiBmYWxzZTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2V0QWN0aW9uRXJyb3I8XG4gIEUgZXh0ZW5kcyBFbmRwb2ludEFuZFVwZGF0ZTxFPiA9IEVuZHBvaW50RGVmYXVsdCxcbj4ge1xuICB0eXBlOiB0eXBlb2YgU0VUX1RZUEU7XG4gIGVuZHBvaW50OiBFO1xuICBtZXRhOiBTZXRNZXRhO1xuICBwYXlsb2FkOiBVbmtub3duRXJyb3I7XG4gIGVycm9yOiB0cnVlO1xufVxuZXhwb3J0IHR5cGUgU2V0QWN0aW9uPEUgZXh0ZW5kcyBFbmRwb2ludEFuZFVwZGF0ZTxFPiA9IEVuZHBvaW50RGVmYXVsdD4gPVxuICB8IFNldEFjdGlvblN1Y2Nlc3M8RT5cbiAgfCBTZXRBY3Rpb25FcnJvcjxFPjtcblxuLy8gVE9ETyhicmVha2luZyk6IFJlbW92ZSAtIGxlZ2FjeSBuYW1lIGNvbXBhdGliaWxpdHlcbi8qKiBAZGVwcmVjYXRlZCB1c2UgU2V0QWN0aW9uIGluc3RlYWQgKi9cbmV4cG9ydCB0eXBlIFJlY2VpdmVBY3Rpb248RSBleHRlbmRzIEVuZHBvaW50QW5kVXBkYXRlPEU+ID0gRW5kcG9pbnREZWZhdWx0PiA9XG4gIFNldEFjdGlvbjxFPjtcblxuLyogRkVUQ0ggKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hNZXRhIHtcbiAgYXJnczogcmVhZG9ubHkgYW55W107XG4gIGtleTogc3RyaW5nO1xuICB0aHJvdHRsZTogYm9vbGVhbjtcbiAgcmVzb2x2ZTogKHZhbHVlPzogYW55IHwgUHJvbWlzZUxpa2U8YW55PikgPT4gdm9pZDtcbiAgcmVqZWN0OiAocmVhc29uPzogYW55KSA9PiB2b2lkO1xuICBwcm9taXNlOiBQcm9taXNlTGlrZTxhbnk+O1xuICBjcmVhdGVkQXQ6IG51bWJlcjtcbiAgLy8gaW5kaWNhdGVzIHdoZXRoZXIgbmV0d29yayBtYW5hZ2VyIHByb2Nlc3NlZCBpdFxuICBubT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hBY3Rpb248RSBleHRlbmRzIEVuZHBvaW50QW5kVXBkYXRlPEU+ID0gRW5kcG9pbnREZWZhdWx0PiB7XG4gIHR5cGU6IHR5cGVvZiBGRVRDSF9UWVBFO1xuICBlbmRwb2ludDogRTtcbiAgbWV0YTogRmV0Y2hNZXRhO1xuICBwYXlsb2FkOiAoKSA9PiBSZXR1cm5UeXBlPEU+O1xufVxuXG4vKiBPUFRJTUlTVElDICovXG5leHBvcnQgaW50ZXJmYWNlIE9wdGltaXN0aWNBY3Rpb248XG4gIEUgZXh0ZW5kcyBFbmRwb2ludEFuZFVwZGF0ZTxFPiA9IEVuZHBvaW50RGVmYXVsdCxcbj4ge1xuICB0eXBlOiB0eXBlb2YgT1BUSU1JU1RJQ19UWVBFO1xuICBlbmRwb2ludDogRTtcbiAgbWV0YTogU2V0TWV0YTtcbiAgZXJyb3I/OiBmYWxzZTtcbn1cblxuLyogU1VCU0NSSUJFICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmliZUFjdGlvbjxcbiAgRSBleHRlbmRzIEVuZHBvaW50QW5kVXBkYXRlPEU+ID0gRW5kcG9pbnREZWZhdWx0LFxuPiB7XG4gIHR5cGU6IHR5cGVvZiBTVUJTQ1JJQkVfVFlQRTtcbiAgZW5kcG9pbnQ6IEU7XG4gIG1ldGE6IHtcbiAgICBhcmdzOiByZWFkb25seSBhbnlbXTtcbiAgICBrZXk6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbnN1YnNjcmliZUFjdGlvbjxcbiAgRSBleHRlbmRzIEVuZHBvaW50QW5kVXBkYXRlPEU+ID0gRW5kcG9pbnREZWZhdWx0LFxuPiB7XG4gIHR5cGU6IHR5cGVvZiBVTlNVQlNDUklCRV9UWVBFO1xuICBlbmRwb2ludDogRTtcbiAgbWV0YToge1xuICAgIGFyZ3M6IHJlYWRvbmx5IGFueVtdO1xuICAgIGtleTogc3RyaW5nO1xuICB9O1xufVxuXG4vKiBFWFBJUlkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhwaXJlQWxsQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEVYUElSRUFMTF9UWVBFO1xuICB0ZXN0S2V5OiAoa2V5OiBzdHJpbmcpID0+IGJvb2xlYW47XG59XG5cbi8qIElOVkFMSURBVEUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW52YWxpZGF0ZUFsbEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBJTlZBTElEQVRFQUxMX1RZUEU7XG4gIHRlc3RLZXk6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZhbGlkYXRlQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIElOVkFMSURBVEVfVFlQRTtcbiAgbWV0YToge1xuICAgIGtleTogc3RyaW5nO1xuICB9O1xufVxuXG4vKiBSRVNFVCAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNldEFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBSRVNFVF9UWVBFO1xuICBkYXRlOiBudW1iZXI7XG59XG5cbi8qIEdDICovXG5leHBvcnQgaW50ZXJmYWNlIEdDQWN0aW9uIHtcbiAgdHlwZTogdHlwZW9mIEdDX1RZUEU7XG4gIGVudGl0aWVzOiBbc3RyaW5nLCBzdHJpbmddW107XG4gIHJlc3VsdHM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBBY3Rpb25UeXBlcyA9XG4gIHwgRmV0Y2hBY3Rpb25cbiAgfCBPcHRpbWlzdGljQWN0aW9uXG4gIHwgU2V0QWN0aW9uXG4gIHwgU3Vic2NyaWJlQWN0aW9uXG4gIHwgVW5zdWJzY3JpYmVBY3Rpb25cbiAgfCBJbnZhbGlkYXRlQWN0aW9uXG4gIHwgSW52YWxpZGF0ZUFsbEFjdGlvblxuICB8IEV4cGlyZUFsbEFjdGlvblxuICB8IFJlc2V0QWN0aW9uXG4gIHwgR0NBY3Rpb247XG4iXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createReducer.d.ts","sourceRoot":"","sources":["../../../src/state/reducer/createReducer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createReducer.d.ts","sourceRoot":"","sources":["../../../src/state/reducer/createReducer.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEzD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,WAAW,CA0CzE;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,OAAO,CAQvC,CAAC;AAEF,KAAK,WAAW,GAAG,CACjB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,SAAS,EACjC,MAAM,EAAE,WAAW,KAChB,KAAK,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { expireReducer } from './expireReducer.js';
|
|
1
2
|
import { fetchReducer } from './fetchReducer.js';
|
|
2
3
|
import { invalidateReducer } from './invalidateReducer.js';
|
|
3
4
|
import { setReducer } from './setReducer.js';
|
|
4
|
-
import { SET_TYPE, INVALIDATE_TYPE, RESET_TYPE, FETCH_TYPE, GC_TYPE, OPTIMISTIC_TYPE, INVALIDATEALL_TYPE } from '../../actionTypes.js';
|
|
5
|
+
import { SET_TYPE, INVALIDATE_TYPE, RESET_TYPE, FETCH_TYPE, GC_TYPE, OPTIMISTIC_TYPE, INVALIDATEALL_TYPE, EXPIREALL_TYPE } from '../../actionTypes.js';
|
|
5
6
|
export default function createReducer(controller) {
|
|
6
7
|
return function reducer(state, action) {
|
|
7
8
|
if (!state) state = initialState;
|
|
@@ -27,6 +28,8 @@ export default function createReducer(controller) {
|
|
|
27
28
|
case INVALIDATEALL_TYPE:
|
|
28
29
|
case INVALIDATE_TYPE:
|
|
29
30
|
return invalidateReducer(state, action);
|
|
31
|
+
case EXPIREALL_TYPE:
|
|
32
|
+
return expireReducer(state, action);
|
|
30
33
|
case RESET_TYPE:
|
|
31
34
|
return {
|
|
32
35
|
...initialState,
|
|
@@ -48,4 +51,4 @@ export const initialState = {
|
|
|
48
51
|
optimistic: [],
|
|
49
52
|
lastReset: 0
|
|
50
53
|
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBpcmVSZWR1Y2VyIiwiZmV0Y2hSZWR1Y2VyIiwiaW52YWxpZGF0ZVJlZHVjZXIiLCJzZXRSZWR1Y2VyIiwiU0VUX1RZUEUiLCJJTlZBTElEQVRFX1RZUEUiLCJSRVNFVF9UWVBFIiwiRkVUQ0hfVFlQRSIsIkdDX1RZUEUiLCJPUFRJTUlTVElDX1RZUEUiLCJJTlZBTElEQVRFQUxMX1RZUEUiLCJFWFBJUkVBTExfVFlQRSIsImNyZWF0ZVJlZHVjZXIiLCJjb250cm9sbGVyIiwicmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwiaW5pdGlhbFN0YXRlIiwidHlwZSIsImVudGl0aWVzIiwiZm9yRWFjaCIsImtleSIsInBrIiwiX2VudGl0aWVzJGtleSIsIl9lbnRpdHlNZXRhJGtleSIsImVudGl0eU1ldGEiLCJyZXN1bHRzIiwiZmV0Y2hLZXkiLCJtZXRhIiwibGFzdFJlc2V0IiwiZGF0ZSIsImluZGV4ZXMiLCJvcHRpbWlzdGljIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvY3JlYXRlUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleHBpcmVSZWR1Y2VyIH0gZnJvbSAnLi9leHBpcmVSZWR1Y2VyLmpzJztcbmltcG9ydCB7IGZldGNoUmVkdWNlciB9IGZyb20gJy4vZmV0Y2hSZWR1Y2VyLmpzJztcbmltcG9ydCB7IGludmFsaWRhdGVSZWR1Y2VyIH0gZnJvbSAnLi9pbnZhbGlkYXRlUmVkdWNlci5qcyc7XG5pbXBvcnQgeyBzZXRSZWR1Y2VyIH0gZnJvbSAnLi9zZXRSZWR1Y2VyLmpzJztcbmltcG9ydCB7XG4gIFNFVF9UWVBFLFxuICBJTlZBTElEQVRFX1RZUEUsXG4gIFJFU0VUX1RZUEUsXG4gIEZFVENIX1RZUEUsXG4gIEdDX1RZUEUsXG4gIE9QVElNSVNUSUNfVFlQRSxcbiAgSU5WQUxJREFURUFMTF9UWVBFLFxuICBFWFBJUkVBTExfVFlQRSxcbn0gZnJvbSAnLi4vLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tICcuLi8uLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25UeXBlcywgU3RhdGUgfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZVJlZHVjZXIoY29udHJvbGxlcjogQ29udHJvbGxlcik6IFJlZHVjZXJUeXBlIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIHJlZHVjZXIoXG4gICAgc3RhdGU6IFN0YXRlPHVua25vd24+IHwgdW5kZWZpbmVkLFxuICAgIGFjdGlvbjogQWN0aW9uVHlwZXMsXG4gICk6IFN0YXRlPHVua25vd24+IHtcbiAgICBpZiAoIXN0YXRlKSBzdGF0ZSA9IGluaXRpYWxTdGF0ZTtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIEdDX1RZUEU6XG4gICAgICAgIC8vIGlubGluZSBkZWxldGVzIGFyZSBmaW5lIGFzIHRoZXNlIHNob3VsZCBoYXZlIDAgcmVmY291bnRzXG4gICAgICAgIGFjdGlvbi5lbnRpdGllcy5mb3JFYWNoKChba2V5LCBwa10pID0+IHtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW50aXRpZXNba2V5XT8uW3BrXTtcbiAgICAgICAgICBkZWxldGUgKHN0YXRlIGFzIGFueSkuZW50aXR5TWV0YVtrZXldPy5bcGtdO1xuICAgICAgICB9KTtcbiAgICAgICAgYWN0aW9uLnJlc3VsdHMuZm9yRWFjaChmZXRjaEtleSA9PiB7XG4gICAgICAgICAgZGVsZXRlIChzdGF0ZSBhcyBhbnkpLnJlc3VsdHNbZmV0Y2hLZXldO1xuICAgICAgICAgIGRlbGV0ZSAoc3RhdGUgYXMgYW55KS5tZXRhW2ZldGNoS2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgIGNhc2UgRkVUQ0hfVFlQRTpcbiAgICAgICAgcmV0dXJuIGZldGNoUmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcblxuICAgICAgY2FzZSBPUFRJTUlTVElDX1RZUEU6XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgIGNhc2UgU0VUX1RZUEU6XG4gICAgICAgIHJldHVybiBzZXRSZWR1Y2VyKHN0YXRlLCBhY3Rpb24sIGNvbnRyb2xsZXIpO1xuXG4gICAgICBjYXNlIElOVkFMSURBVEVBTExfVFlQRTpcbiAgICAgIGNhc2UgSU5WQUxJREFURV9UWVBFOlxuICAgICAgICByZXR1cm4gaW52YWxpZGF0ZVJlZHVjZXIoc3RhdGUsIGFjdGlvbik7XG5cbiAgICAgIGNhc2UgRVhQSVJFQUxMX1RZUEU6XG4gICAgICAgIHJldHVybiBleHBpcmVSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuXG4gICAgICBjYXNlIFJFU0VUX1RZUEU6XG4gICAgICAgIHJldHVybiB7IC4uLmluaXRpYWxTdGF0ZSwgbGFzdFJlc2V0OiBhY3Rpb24uZGF0ZSB9O1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBBIHJlZHVjZXIgbXVzdCBhbHdheXMgcmV0dXJuIGEgdmFsaWQgc3RhdGUuXG4gICAgICAgIC8vIEFsdGVybmF0aXZlbHkgeW91IGNhbiB0aHJvdyBhbiBlcnJvciBpZiBhbiBpbnZhbGlkIGFjdGlvbiBpcyBkaXNwYXRjaGVkLlxuICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICB9IGFzIGFueTtcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogU3RhdGU8dW5rbm93bj4gPSB7XG4gIGVudGl0aWVzOiB7fSxcbiAgaW5kZXhlczoge30sXG4gIHJlc3VsdHM6IHt9LFxuICBtZXRhOiB7fSxcbiAgZW50aXR5TWV0YToge30sXG4gIG9wdGltaXN0aWM6IFtdLFxuICBsYXN0UmVzZXQ6IDAsXG59O1xuXG50eXBlIFJlZHVjZXJUeXBlID0gKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4gfCB1bmRlZmluZWQsXG4gIGFjdGlvbjogQWN0aW9uVHlwZXMsXG4pID0+IFN0YXRlPHVua25vd24+O1xuXG50eXBlIFdyaXRhYmxlPFQ+ID0geyBbUCBpbiBrZXlvZiBUXTogTm9uTnVsbGFibGU8V3JpdGFibGU8VFtQXT4+IH07XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGFBQWEsUUFBUSxvQkFBb0I7QUFDbEQsU0FBU0MsWUFBWSxRQUFRLG1CQUFtQjtBQUNoRCxTQUFTQyxpQkFBaUIsUUFBUSx3QkFBd0I7QUFDMUQsU0FBU0MsVUFBVSxRQUFRLGlCQUFpQjtBQUM1QyxTQUNFQyxRQUFRLEVBQ1JDLGVBQWUsRUFDZkMsVUFBVSxFQUNWQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsZUFBZSxFQUNmQyxrQkFBa0IsRUFDbEJDLGNBQWMsUUFDVCxzQkFBc0I7QUFJN0IsZUFBZSxTQUFTQyxhQUFhQSxDQUFDQyxVQUFzQixFQUFlO0VBQ3pFLE9BQU8sU0FBU0MsT0FBT0EsQ0FDckJDLEtBQWlDLEVBQ2pDQyxNQUFtQixFQUNIO0lBQ2hCLElBQUksQ0FBQ0QsS0FBSyxFQUFFQSxLQUFLLEdBQUdFLFlBQVk7SUFDaEMsUUFBUUQsTUFBTSxDQUFDRSxJQUFJO01BQ2pCLEtBQUtWLE9BQU87UUFDVjtRQUNBUSxNQUFNLENBQUNHLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQ0MsR0FBRyxFQUFFQyxFQUFFLENBQUMsS0FBSztVQUFBLElBQUFDLGFBQUEsRUFBQUMsZUFBQTtVQUNyQyxDQUFBRCxhQUFBLEdBQVFSLEtBQUssQ0FBU0ksUUFBUSxDQUFDRSxHQUFHLENBQUMsbUJBQW5DLE9BQU9FLGFBQUEsQ0FBK0JELEVBQUUsQ0FBQztVQUN6QyxDQUFBRSxlQUFBLEdBQVFULEtBQUssQ0FBU1UsVUFBVSxDQUFDSixHQUFHLENBQUMsbUJBQXJDLE9BQU9HLGVBQUEsQ0FBaUNGLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUM7UUFDRk4sTUFBTSxDQUFDVSxPQUFPLENBQUNOLE9BQU8sQ0FBQ08sUUFBUSxJQUFJO1VBQ2pDLE9BQVFaLEtBQUssQ0FBU1csT0FBTyxDQUFDQyxRQUFRLENBQUM7VUFDdkMsT0FBUVosS0FBSyxDQUFTYSxJQUFJLENBQUNELFFBQVEsQ0FBQztRQUN0QyxDQUFDLENBQUM7UUFDRixPQUFPWixLQUFLO01BQ2QsS0FBS1IsVUFBVTtRQUNiLE9BQU9OLFlBQVksQ0FBQ2MsS0FBSyxFQUFFQyxNQUFNLENBQUM7TUFFcEMsS0FBS1AsZUFBZTtNQUNwQjtNQUNBLEtBQUtMLFFBQVE7UUFDWCxPQUFPRCxVQUFVLENBQUNZLEtBQUssRUFBRUMsTUFBTSxFQUFFSCxVQUFVLENBQUM7TUFFOUMsS0FBS0gsa0JBQWtCO01BQ3ZCLEtBQUtMLGVBQWU7UUFDbEIsT0FBT0gsaUJBQWlCLENBQUNhLEtBQUssRUFBRUMsTUFBTSxDQUFDO01BRXpDLEtBQUtMLGNBQWM7UUFDakIsT0FBT1gsYUFBYSxDQUFDZSxLQUFLLEVBQUVDLE1BQU0sQ0FBQztNQUVyQyxLQUFLVixVQUFVO1FBQ2IsT0FBTztVQUFFLEdBQUdXLFlBQVk7VUFBRVksU0FBUyxFQUFFYixNQUFNLENBQUNjO1FBQUssQ0FBQztNQUVwRDtRQUNFO1FBQ0E7UUFDQSxPQUFPZixLQUFLO0lBQ2hCO0VBQ0YsQ0FBQztBQUNIO0FBRUEsT0FBTyxNQUFNRSxZQUE0QixHQUFHO0VBQzFDRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0VBQ1pZLE9BQU8sRUFBRSxDQUFDLENBQUM7RUFDWEwsT0FBTyxFQUFFLENBQUMsQ0FBQztFQUNYRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0VBQ1JILFVBQVUsRUFBRSxDQUFDLENBQUM7RUFDZE8sVUFBVSxFQUFFLEVBQUU7RUFDZEgsU0FBUyxFQUFFO0FBQ2IsQ0FBQyJ9
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { State, ExpireAllAction } from '../../types.js';
|
|
2
|
+
export declare function expireReducer(state: State<unknown>, action: ExpireAllAction): {
|
|
3
|
+
meta: {
|
|
4
|
+
[x: string]: {
|
|
5
|
+
readonly date: number;
|
|
6
|
+
readonly error?: import("packages/normalizr/lib/index.js").ErrorTypes | undefined;
|
|
7
|
+
readonly expiresAt: number;
|
|
8
|
+
readonly prevExpiresAt?: number | undefined;
|
|
9
|
+
readonly invalidated?: boolean | undefined;
|
|
10
|
+
readonly errorPolicy?: "hard" | "soft" | undefined;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
entities: {
|
|
14
|
+
readonly [entityKey: string]: {
|
|
15
|
+
readonly [pk: string]: unknown;
|
|
16
|
+
} | undefined;
|
|
17
|
+
};
|
|
18
|
+
indexes: import("packages/normalizr/lib/interface.js").NormalizedIndex;
|
|
19
|
+
results: {
|
|
20
|
+
readonly [key: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
entityMeta: {
|
|
23
|
+
readonly [entityKey: string]: {
|
|
24
|
+
readonly [pk: string]: {
|
|
25
|
+
readonly date: number;
|
|
26
|
+
readonly expiresAt: number;
|
|
27
|
+
readonly fetchedAt: number;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
optimistic: (import("../../newActions.js").SetAction | import("../../newActions.js").OptimisticAction<import("packages/normalizr/lib/index.js").EndpointInterface<import("packages/normalizr/lib/index.js").FetchFunction, import("packages/normalizr/lib/interface.js").Schema | undefined, boolean | undefined> & {
|
|
32
|
+
update?: import("../../index.js").EndpointUpdateFunction<import("packages/normalizr/lib/index.js").EndpointInterface<import("packages/normalizr/lib/index.js").FetchFunction, import("packages/normalizr/lib/interface.js").Schema | undefined, boolean | undefined>> | undefined;
|
|
33
|
+
}>)[];
|
|
34
|
+
lastReset: number;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=expireReducer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expireReducer.d.ts","sourceRoot":"","sources":["../../../src/state/reducer/expireReducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7D,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB3E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function expireReducer(state, action) {
|
|
2
|
+
const meta = {
|
|
3
|
+
...state.meta
|
|
4
|
+
};
|
|
5
|
+
Object.keys(meta).forEach(key => {
|
|
6
|
+
if (action.testKey(key)) {
|
|
7
|
+
meta[key] = {
|
|
8
|
+
...meta[key],
|
|
9
|
+
// 1 instead of 0 so we can do 'falsy' checks to see if it is set
|
|
10
|
+
expiresAt: 1
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
return {
|
|
15
|
+
...state,
|
|
16
|
+
meta
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJleHBpcmVSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJtZXRhIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJ0ZXN0S2V5IiwiZXhwaXJlc0F0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvZXhwaXJlUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0YXRlLCBFeHBpcmVBbGxBY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBpcmVSZWR1Y2VyKHN0YXRlOiBTdGF0ZTx1bmtub3duPiwgYWN0aW9uOiBFeHBpcmVBbGxBY3Rpb24pIHtcbiAgY29uc3QgbWV0YSA9IHsgLi4uc3RhdGUubWV0YSB9O1xuXG4gIE9iamVjdC5rZXlzKG1ldGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICBpZiAoYWN0aW9uLnRlc3RLZXkoa2V5KSkge1xuICAgICAgbWV0YVtrZXldID0ge1xuICAgICAgICAuLi5tZXRhW2tleV0sXG4gICAgICAgIC8vIDEgaW5zdGVhZCBvZiAwIHNvIHdlIGNhbiBkbyAnZmFsc3knIGNoZWNrcyB0byBzZWUgaWYgaXQgaXMgc2V0XG4gICAgICAgIGV4cGlyZXNBdDogMSxcbiAgICAgIH07XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1ldGEsXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sU0FBU0EsYUFBYUEsQ0FBQ0MsS0FBcUIsRUFBRUMsTUFBdUIsRUFBRTtFQUM1RSxNQUFNQyxJQUFJLEdBQUc7SUFBRSxHQUFHRixLQUFLLENBQUNFO0VBQUssQ0FBQztFQUU5QkMsTUFBTSxDQUFDQyxJQUFJLENBQUNGLElBQUksQ0FBQyxDQUFDRyxPQUFPLENBQUNDLEdBQUcsSUFBSTtJQUMvQixJQUFJTCxNQUFNLENBQUNNLE9BQU8sQ0FBQ0QsR0FBRyxDQUFDLEVBQUU7TUFDdkJKLElBQUksQ0FBQ0ksR0FBRyxDQUFDLEdBQUc7UUFDVixHQUFHSixJQUFJLENBQUNJLEdBQUcsQ0FBQztRQUNaO1FBQ0FFLFNBQVMsRUFBRTtNQUNiLENBQUM7SUFDSDtFQUNGLENBQUMsQ0FBQztFQUVGLE9BQU87SUFDTCxHQUFHUixLQUFLO0lBQ1JFO0VBQ0YsQ0FBQztBQUNIIn0=
|
package/package.json
CHANGED
package/src/actionTypes.ts
CHANGED
|
@@ -8,4 +8,5 @@ export const SUBSCRIBE_TYPE = 'rest-hooks/subscribe' as const;
|
|
|
8
8
|
export const UNSUBSCRIBE_TYPE = 'rest-hook/unsubscribe' as const;
|
|
9
9
|
export const INVALIDATE_TYPE = 'rest-hooks/invalidate' as const;
|
|
10
10
|
export const INVALIDATEALL_TYPE = 'rest-hooks/invalidateall' as const;
|
|
11
|
+
export const EXPIREALL_TYPE = 'rest-hooks/expireall' as const;
|
|
11
12
|
export const GC_TYPE = 'rest-hooks/gc' as const;
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
} from '@data-client/normalizr';
|
|
20
20
|
import { inferResults, validateInference } from '@data-client/normalizr';
|
|
21
21
|
|
|
22
|
+
import createExpireAll from './createExpireAll.js';
|
|
22
23
|
import createFetch from './createFetch.js';
|
|
23
24
|
import createInvalidate from './createInvalidate.js';
|
|
24
25
|
import createInvalidateAll from './createInvalidateAll.js';
|
|
@@ -136,10 +137,19 @@ export default class Controller<
|
|
|
136
137
|
/**
|
|
137
138
|
* Forces refetching and suspense on useSuspense on all matching endpoint result keys.
|
|
138
139
|
* @see https://resthooks.io/docs/api/Controller#invalidateAll
|
|
140
|
+
* @returns Promise that resolves when invalidation is commited.
|
|
139
141
|
*/
|
|
140
142
|
invalidateAll = (options: { testKey: (key: string) => boolean }) =>
|
|
141
143
|
this.dispatch(createInvalidateAll((key: string) => options.testKey(key)));
|
|
142
144
|
|
|
145
|
+
/**
|
|
146
|
+
* Sets all matching endpoint result keys to be STALE.
|
|
147
|
+
* @see https://dataclient.io/docs/api/Controller#expireAll
|
|
148
|
+
* @returns Promise that resolves when expiry is commited. *NOT* fetch promise
|
|
149
|
+
*/
|
|
150
|
+
expireAll = (options: { testKey: (key: string) => boolean }) =>
|
|
151
|
+
this.dispatch(createExpireAll((key: string) => options.testKey(key)));
|
|
152
|
+
|
|
143
153
|
/**
|
|
144
154
|
* Resets the entire Rest Hooks cache. All inflight requests will not resolve.
|
|
145
155
|
* @see https://resthooks.io/docs/api/Controller#resetEntireStore
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EXPIREALL_TYPE } from '../actionTypes.js';
|
|
2
|
+
import type { ExpireAllAction } from '../types.js';
|
|
3
|
+
|
|
4
|
+
export default function createExpireAll(
|
|
5
|
+
testKey: (key: string) => boolean,
|
|
6
|
+
): ExpireAllAction {
|
|
7
|
+
return {
|
|
8
|
+
type: EXPIREALL_TYPE,
|
|
9
|
+
testKey,
|
|
10
|
+
};
|
|
11
|
+
}
|
package/src/newActions.ts
CHANGED
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
GC_TYPE,
|
|
15
15
|
OPTIMISTIC_TYPE,
|
|
16
16
|
INVALIDATEALL_TYPE,
|
|
17
|
+
EXPIREALL_TYPE,
|
|
17
18
|
} from './actionTypes.js';
|
|
18
19
|
import type { EndpointUpdateFunction } from './controller/types.js';
|
|
19
20
|
|
|
@@ -112,6 +113,12 @@ export interface UnsubscribeAction<
|
|
|
112
113
|
};
|
|
113
114
|
}
|
|
114
115
|
|
|
116
|
+
/* EXPIRY */
|
|
117
|
+
export interface ExpireAllAction {
|
|
118
|
+
type: typeof EXPIREALL_TYPE;
|
|
119
|
+
testKey: (key: string) => boolean;
|
|
120
|
+
}
|
|
121
|
+
|
|
115
122
|
/* INVALIDATE */
|
|
116
123
|
export interface InvalidateAllAction {
|
|
117
124
|
type: typeof INVALIDATEALL_TYPE;
|
|
@@ -146,5 +153,6 @@ export type ActionTypes =
|
|
|
146
153
|
| UnsubscribeAction
|
|
147
154
|
| InvalidateAction
|
|
148
155
|
| InvalidateAllAction
|
|
156
|
+
| ExpireAllAction
|
|
149
157
|
| ResetAction
|
|
150
158
|
| GCAction;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { expireReducer } from './expireReducer.js';
|
|
1
2
|
import { fetchReducer } from './fetchReducer.js';
|
|
2
3
|
import { invalidateReducer } from './invalidateReducer.js';
|
|
3
4
|
import { setReducer } from './setReducer.js';
|
|
@@ -9,6 +10,7 @@ import {
|
|
|
9
10
|
GC_TYPE,
|
|
10
11
|
OPTIMISTIC_TYPE,
|
|
11
12
|
INVALIDATEALL_TYPE,
|
|
13
|
+
EXPIREALL_TYPE,
|
|
12
14
|
} from '../../actionTypes.js';
|
|
13
15
|
import type Controller from '../../controller/Controller.js';
|
|
14
16
|
import type { ActionTypes, State } from '../../types.js';
|
|
@@ -43,6 +45,9 @@ export default function createReducer(controller: Controller): ReducerType {
|
|
|
43
45
|
case INVALIDATE_TYPE:
|
|
44
46
|
return invalidateReducer(state, action);
|
|
45
47
|
|
|
48
|
+
case EXPIREALL_TYPE:
|
|
49
|
+
return expireReducer(state, action);
|
|
50
|
+
|
|
46
51
|
case RESET_TYPE:
|
|
47
52
|
return { ...initialState, lastReset: action.date };
|
|
48
53
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { State, ExpireAllAction } from '../../types.js';
|
|
2
|
+
|
|
3
|
+
export function expireReducer(state: State<unknown>, action: ExpireAllAction) {
|
|
4
|
+
const meta = { ...state.meta };
|
|
5
|
+
|
|
6
|
+
Object.keys(meta).forEach(key => {
|
|
7
|
+
if (action.testKey(key)) {
|
|
8
|
+
meta[key] = {
|
|
9
|
+
...meta[key],
|
|
10
|
+
// 1 instead of 0 so we can do 'falsy' checks to see if it is set
|
|
11
|
+
expiresAt: 1,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
...state,
|
|
18
|
+
meta,
|
|
19
|
+
};
|
|
20
|
+
}
|
package/ts3.4/actionTypes.d.ts
CHANGED
|
@@ -8,5 +8,6 @@ export declare const SUBSCRIBE_TYPE: "rest-hooks/subscribe";
|
|
|
8
8
|
export declare const UNSUBSCRIBE_TYPE: "rest-hook/unsubscribe";
|
|
9
9
|
export declare const INVALIDATE_TYPE: "rest-hooks/invalidate";
|
|
10
10
|
export declare const INVALIDATEALL_TYPE: "rest-hooks/invalidateall";
|
|
11
|
+
export declare const EXPIREALL_TYPE: "rest-hooks/expireall";
|
|
11
12
|
export declare const GC_TYPE: "rest-hooks/gc";
|
|
12
13
|
//# sourceMappingURL=actionTypes.d.ts.map
|
|
@@ -50,10 +50,19 @@ export default class Controller<D extends GenericDispatch = DataClientDispatch>
|
|
|
50
50
|
/**
|
|
51
51
|
* Forces refetching and suspense on useSuspense on all matching endpoint result keys.
|
|
52
52
|
* @see https://resthooks.io/docs/api/Controller#invalidateAll
|
|
53
|
+
* @returns Promise that resolves when invalidation is commited.
|
|
53
54
|
*/
|
|
54
55
|
invalidateAll: (options: {
|
|
55
56
|
testKey: (key: string) => boolean;
|
|
56
57
|
}) => Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Sets all matching endpoint result keys to be STALE.
|
|
60
|
+
* @see https://dataclient.io/docs/api/Controller#expireAll
|
|
61
|
+
* @returns Promise that resolves when expiry is commited. *NOT* fetch promise
|
|
62
|
+
*/
|
|
63
|
+
expireAll: (options: {
|
|
64
|
+
testKey: (key: string) => boolean;
|
|
65
|
+
}) => Promise<void>;
|
|
57
66
|
/**
|
|
58
67
|
* Resets the entire Rest Hooks cache. All inflight requests will not resolve.
|
|
59
68
|
* @see https://resthooks.io/docs/api/Controller#resetEntireStore
|
package/ts3.4/newActions.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EndpointInterface, ResolveType, UnknownError } from '@data-client/normalizr';
|
|
2
|
-
import { SET_TYPE, RESET_TYPE, FETCH_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE, INVALIDATE_TYPE, GC_TYPE, OPTIMISTIC_TYPE, INVALIDATEALL_TYPE } from './actionTypes.js';
|
|
2
|
+
import { SET_TYPE, RESET_TYPE, FETCH_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE, INVALIDATE_TYPE, GC_TYPE, OPTIMISTIC_TYPE, INVALIDATEALL_TYPE, EXPIREALL_TYPE } from './actionTypes.js';
|
|
3
3
|
import { EndpointUpdateFunction } from './controller/types.js';
|
|
4
4
|
type EndpointAndUpdate<E extends EndpointInterface> = EndpointInterface & {
|
|
5
5
|
update?: EndpointUpdateFunction<E>;
|
|
@@ -69,6 +69,10 @@ export interface UnsubscribeAction<E extends EndpointAndUpdate<E> = EndpointDefa
|
|
|
69
69
|
key: string;
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
+
export interface ExpireAllAction {
|
|
73
|
+
type: typeof EXPIREALL_TYPE;
|
|
74
|
+
testKey: (key: string) => boolean;
|
|
75
|
+
}
|
|
72
76
|
export interface InvalidateAllAction {
|
|
73
77
|
type: typeof INVALIDATEALL_TYPE;
|
|
74
78
|
testKey: (key: string) => boolean;
|
|
@@ -91,6 +95,6 @@ export interface GCAction {
|
|
|
91
95
|
][];
|
|
92
96
|
results: string[];
|
|
93
97
|
}
|
|
94
|
-
export type ActionTypes = FetchAction | OptimisticAction | SetAction | SubscribeAction | UnsubscribeAction | InvalidateAction | InvalidateAllAction | ResetAction | GCAction;
|
|
98
|
+
export type ActionTypes = FetchAction | OptimisticAction | SetAction | SubscribeAction | UnsubscribeAction | InvalidateAction | InvalidateAllAction | ExpireAllAction | ResetAction | GCAction;
|
|
95
99
|
export {};
|
|
96
100
|
//# sourceMappingURL=newActions.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { State, ExpireAllAction } from '../../types.js';
|
|
2
|
+
export declare function expireReducer(state: State<unknown>, action: ExpireAllAction): {
|
|
3
|
+
meta: {
|
|
4
|
+
[x: string]: {
|
|
5
|
+
readonly date: number;
|
|
6
|
+
readonly error?: import("packages/normalizr/lib/index.js").ErrorTypes | undefined;
|
|
7
|
+
readonly expiresAt: number;
|
|
8
|
+
readonly prevExpiresAt?: number | undefined;
|
|
9
|
+
readonly invalidated?: boolean | undefined;
|
|
10
|
+
readonly errorPolicy?: "hard" | "soft" | undefined;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
entities: {
|
|
14
|
+
readonly [entityKey: string]: {
|
|
15
|
+
readonly [pk: string]: unknown;
|
|
16
|
+
} | undefined;
|
|
17
|
+
};
|
|
18
|
+
indexes: import("packages/normalizr/lib/interface.js").NormalizedIndex;
|
|
19
|
+
results: {
|
|
20
|
+
readonly [key: string]: unknown;
|
|
21
|
+
};
|
|
22
|
+
entityMeta: {
|
|
23
|
+
readonly [entityKey: string]: {
|
|
24
|
+
readonly [pk: string]: {
|
|
25
|
+
readonly date: number;
|
|
26
|
+
readonly expiresAt: number;
|
|
27
|
+
readonly fetchedAt: number;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
optimistic: (import("../../newActions.js").SetAction | import("../../newActions.js").OptimisticAction<import("packages/normalizr/lib/index.js").EndpointInterface<import("packages/normalizr/lib/index.js").FetchFunction, import("packages/normalizr/lib/interface.js").Schema | undefined, boolean | undefined> & {
|
|
32
|
+
update?: import("../../index.js").EndpointUpdateFunction<import("packages/normalizr/lib/index.js").EndpointInterface<import("packages/normalizr/lib/index.js").FetchFunction, import("packages/normalizr/lib/interface.js").Schema | undefined, boolean | undefined>> | undefined;
|
|
33
|
+
}>)[];
|
|
34
|
+
lastReset: number;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=expireReducer.d.ts.map
|