@data-client/core 0.15.7 → 0.16.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/CHANGELOG.md +30 -0
- package/dist/index.js +21 -4
- package/dist/index.umd.min.js +1 -1
- package/dist/mock.js +18 -4
- package/legacy/manager/DevtoolsManager.js +18 -4
- package/legacy/state/GCPolicy.js +4 -1
- package/legacy/state/reducer/setReducer.js +1 -1
- package/legacy/state/reducer/setResponseReducer.js +1 -1
- package/lib/manager/DevtoolsManager.d.ts +1 -0
- package/lib/manager/DevtoolsManager.d.ts.map +1 -1
- package/lib/manager/DevtoolsManager.js +19 -5
- package/lib/state/GCPolicy.d.ts.map +1 -1
- package/lib/state/GCPolicy.js +4 -1
- package/lib/state/reducer/expireReducer.d.ts +2 -2
- package/lib/state/reducer/invalidateReducer.d.ts +2 -2
- package/lib/state/reducer/setReducer.d.ts +1 -27
- package/lib/state/reducer/setReducer.d.ts.map +1 -1
- package/lib/state/reducer/setReducer.js +1 -1
- package/lib/state/reducer/setResponseReducer.d.ts +1 -30
- package/lib/state/reducer/setResponseReducer.d.ts.map +1 -1
- package/lib/state/reducer/setResponseReducer.js +1 -1
- package/package.json +3 -3
- package/src/manager/DevtoolsManager.ts +21 -6
- package/src/state/GCPolicy.ts +3 -0
- package/src/state/__tests__/GCPolicy.test.ts +2 -0
- package/src/state/reducer/setReducer.ts +1 -1
- package/src/state/reducer/setResponseReducer.ts +1 -1
- package/ts3.4/manager/DevtoolsManager.d.ts +1 -0
- package/ts3.4/state/reducer/expireReducer.d.ts +2 -2
- package/ts3.4/state/reducer/invalidateReducer.d.ts +2 -2
- package/ts3.4/state/reducer/setReducer.d.ts +1 -27
- package/ts3.4/state/reducer/setResponseReducer.d.ts +1 -30
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @data-client/core
|
|
2
2
|
|
|
3
|
+
## 0.16.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#3753](https://github.com/reactive/data-client/pull/3753) [`e54c9b6`](https://github.com/reactive/data-client/commit/e54c9b6e6a48939263f41496a90387ee614d35f5) - Add `globalThis.__DC_CONTROLLERS__` Map in dev mode for programmatic store access from browser DevTools MCP, React Native debuggers, and other development tooling.
|
|
8
|
+
|
|
9
|
+
Each [DataProvider](/docs/api/DataProvider) registers its [Controller](/docs/api/Controller) keyed by the devtools connection name, supporting multiple providers on the same page.
|
|
10
|
+
|
|
11
|
+
- [#3823](https://github.com/reactive/data-client/pull/3823) [`869f28f`](https://github.com/reactive/data-client/commit/869f28fc651ca5e8b0f935089fc0b8d8ce8585cb) - Fix stack overflow during denormalization of large bidirectional entity graphs.
|
|
12
|
+
|
|
13
|
+
Add entity depth limit (64) to prevent `RangeError: Maximum call stack size exceeded`
|
|
14
|
+
when denormalizing cross-type chains with thousands of unique entities
|
|
15
|
+
(e.g., Department → Building → Department → ...). Entities beyond the depth limit
|
|
16
|
+
are returned with unresolved ids instead of fully denormalized nested objects.
|
|
17
|
+
|
|
18
|
+
The limit can be configured per-Entity with [`static maxEntityDepth`](/rest/api/Entity#maxEntityDepth):
|
|
19
|
+
|
|
20
|
+
```ts
|
|
21
|
+
class Department extends Entity {
|
|
22
|
+
static maxEntityDepth = 16;
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
- [#3774](https://github.com/reactive/data-client/pull/3774) [`0e0ff1a`](https://github.com/reactive/data-client/commit/0e0ff1ab49b1a58477b07dba3dfc73df6d4af3f5) - GCPolicy interval no longer blocks Node.js process exit
|
|
27
|
+
|
|
28
|
+
Call `.unref()` on GCPolicy's `setInterval` in Node.js environments, preventing the GC sweep timer from keeping Jest workers or other Node.js processes alive.
|
|
29
|
+
|
|
30
|
+
- Updated dependencies [[`869f28f`](https://github.com/reactive/data-client/commit/869f28fc651ca5e8b0f935089fc0b8d8ce8585cb)]:
|
|
31
|
+
- @data-client/normalizr@0.16.0
|
|
32
|
+
|
|
3
33
|
## 0.15.7
|
|
4
34
|
|
|
5
35
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -507,6 +507,9 @@ class GCPolicy {
|
|
|
507
507
|
timeout: 1000
|
|
508
508
|
});
|
|
509
509
|
}, this.options.intervalMS);
|
|
510
|
+
if (typeof this.intervalId === 'object' && 'unref' in this.intervalId) {
|
|
511
|
+
this.intervalId.unref();
|
|
512
|
+
}
|
|
510
513
|
}
|
|
511
514
|
cleanup() {
|
|
512
515
|
clearInterval(this.intervalId);
|
|
@@ -1714,14 +1717,17 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
1714
1717
|
*/
|
|
1715
1718
|
class DevToolsManager {
|
|
1716
1719
|
constructor(config, skipLogging) {
|
|
1720
|
+
var _options$name, _globalThis$document2;
|
|
1717
1721
|
this.started = false;
|
|
1718
1722
|
this.actions = [];
|
|
1719
1723
|
this.maxBufferLength = 100;
|
|
1720
1724
|
/* istanbul ignore next */
|
|
1721
|
-
|
|
1725
|
+
const options = {
|
|
1722
1726
|
...DEFAULT_CONFIG,
|
|
1723
1727
|
...config
|
|
1724
|
-
}
|
|
1728
|
+
};
|
|
1729
|
+
this.devtoolsName = (_options$name = options.name) != null ? _options$name : `Data Client: ${(_globalThis$document2 = globalThis.document) == null ? void 0 : _globalThis$document2.title}`;
|
|
1730
|
+
this.devTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__.connect(options);
|
|
1725
1731
|
// we cut it in half so we should double so we don't lose
|
|
1726
1732
|
if (config != null && config.maxAge) this.maxBufferLength = config.maxAge * 2;
|
|
1727
1733
|
if (skipLogging) this.skipLogging = skipLogging;
|
|
@@ -1740,6 +1746,10 @@ class DevToolsManager {
|
|
|
1740
1746
|
|
|
1741
1747
|
/** Called when initial state is ready */
|
|
1742
1748
|
init(state) {
|
|
1749
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
1750
|
+
var _ref, _ref$__DC_CONTROLLERS;
|
|
1751
|
+
((_ref$__DC_CONTROLLERS = (_ref = globalThis).__DC_CONTROLLERS__) != null ? _ref$__DC_CONTROLLERS : _ref.__DC_CONTROLLERS__ = new Map()).set(this.devtoolsName, this.controller);
|
|
1752
|
+
}
|
|
1743
1753
|
if (process.env.NODE_ENV !== 'production' && this.devTools) {
|
|
1744
1754
|
this.devTools.init(state);
|
|
1745
1755
|
this.devTools.subscribe(msg => {
|
|
@@ -1767,7 +1777,14 @@ class DevToolsManager {
|
|
|
1767
1777
|
}
|
|
1768
1778
|
|
|
1769
1779
|
/** Ensures all subscriptions are cleaned up. */
|
|
1770
|
-
cleanup() {
|
|
1780
|
+
cleanup() {
|
|
1781
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
1782
|
+
const map = globalThis.__DC_CONTROLLERS__;
|
|
1783
|
+
if ((map == null ? void 0 : map.get(this.devtoolsName)) === this.controller) {
|
|
1784
|
+
map.delete(this.devtoolsName);
|
|
1785
|
+
}
|
|
1786
|
+
}
|
|
1787
|
+
}
|
|
1771
1788
|
}
|
|
1772
1789
|
_DevToolsManager = DevToolsManager;
|
|
1773
1790
|
(() => {
|
|
@@ -1775,8 +1792,8 @@ _DevToolsManager = DevToolsManager;
|
|
|
1775
1792
|
/* istanbul ignore next */
|
|
1776
1793
|
if (process.env.NODE_ENV !== 'production') {
|
|
1777
1794
|
_DevToolsManager.prototype.middleware = function (controller) {
|
|
1778
|
-
if (!this.devTools) return next => action => next(action);
|
|
1779
1795
|
this.controller = controller;
|
|
1796
|
+
if (!this.devTools) return next => action => next(action);
|
|
1780
1797
|
const reducer = createReducer(controller);
|
|
1781
1798
|
let state = controller.getState();
|
|
1782
1799
|
return next => action => {
|
package/dist/index.umd.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).RDC=e.RDC||{},e.RDC.Core={}))}(this,(function(e){"use strict";class t{constructor(){this.localCache=new Map}getEntity(e,t,n,i){const s=t.key;this.localCache.has(s)||this.localCache.set(s,new Map);const r=this.localCache.get(s);return r.get(e)||i(r),r.get(e)}getResults(e,t,n){return{data:n(),paths:[]}}}const n=Symbol("INVALID"),i={};function s(e){return null!==e&&void 0!==e.pk}const r=e=>e[0],o=e=>void 0!==e&&"symbol"!=typeof e,a=(e,t,n,i,s,o)=>{e=r(e);const a=(e=>Array.isArray(e)?e:Object.keys(e).map((t=>e[t])))(t);return a.map((t=>o(e,t,n,i,s)))},c=(e,t,n,i)=>(e=r(e),t.map?t.map((t=>i(e,t))).filter(o):t);function h(){}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},l.apply(null,arguments)}const u=(e,t,n,i,s,r)=>{const o=l({},t),a=Object.keys(e);for(let n=0;n<a.length;n++){const i=a[n],c=r(e[i],t[i],t,i,s);void 0===c?delete o[i]:o[i]=c}return o},d=(e,t,i,s)=>{if(function(e){return!("function"!=typeof e.hasOwnProperty||!(Object.hasOwnProperty.call(e,"__ownerID")||e._map&&Object.hasOwnProperty.call(e._map,"__ownerID")))}(t))return function(e,t,i,s){let r=!1;const o=Object.keys(e).reduce(((t,n)=>{const i=`${n}`,o=s(e[i],t.get(i));return"symbol"==typeof o&&(r=!0),t.has(i)?t.set(i,o):t}),t);return r?n:o}(e,t,0,s);const r=l({},t);let o=!1;const a=Object.keys(e);for(let t=0;t<a.length;t++){const n=a[t],i=s(e[n],r[n]);void 0!==r[n]&&(r[n]=i),"symbol"==typeof i&&(o=!0)}return o?n:r};function p(e,t,n,i){const s={};for(const r of Object.keys(e))s[r]=n(e[r],t,i);return s}const f=(e,t,n,s)=>function(r,o){const a="object"!=typeof o,c=a?e({key:r.key,pk:o}):o;if("symbol"==typeof c)return r.denormalize(c,n,s);if(void 0===c&&a&&""!==o&&"undefined"!==o)return t.getEntity(o,r,i,(e=>{e.set(o,void 0)}));if("object"!=typeof c||null===c)return c;let h=a?o:r.pk(c,void 0,void 0,n);return void 0===h||""===h||"undefined"===h?function(e){const t=new Map;return e(t),t.get("")}((e=>y(r,c,"",e,n,s))):("string"!=typeof h&&(h=`${h}`),t.getEntity(h,r,c,(e=>y(r,c,h,e,n,s))))};function y(e,t,i,s,r,o){const a=e.createIfValid(t);void 0===a?s.set(i,n):(s.set(i,a),s.set(i,e.denormalize(a,r,o)))}const g=(e,t,n)=>{const i=f(e,t,n,r);function r(e,t){if(!e)return t;if(null==t)return t;if("function"==typeof e.denormalize)return s(e)?i(e,t):e.denormalize(t,n,r);if("function"==typeof e)return e(t);if("object"==typeof e){return(Array.isArray(e)?c:d)(e,t,n,r)}return t}return(e,n)=>{const i=Object(n)===n&&Object(e)===e;return t.getResults(n,i,(()=>r(e,n)))}};class m{constructor({entities:e,indexes:t}){this.entities=e,this.indexes=t}tracked(e){const t=this,i=[{path:[""],entity:e}];return[{INVALID:n,getIndex(...e){const n=t.getIndex(...e);return i.push({path:e,entity:n}),t.getIndexEnd(n,e[2])},getEntity(...e){const n=t.getEntity(...e);return i.push({path:e,entity:n}),n},getEntities(e){const n=t.getEntitiesObject(e);return i.push({path:[e],entity:n}),t.getEntities(e)}},i]}}class v extends m{constructor(e){super(e)}getEntitiesObject(e){return this.entities[e]}getEntities(e){const t=this.entities[e];if(void 0!==t)return{keys:()=>Object.keys(t),entries:()=>Object.entries(t)}}getEntity(e,t){var n;return null==(n=this.entities[e])?void 0:n[t]}getIndex(e,t){var n;return null==(n=this.indexes[e])?void 0:n[t]}getIndexEnd(e,t){return null==e?void 0:e[t]}}const E={QueryDelegate:v,getEntities:e=>({key:t,pk:n})=>{var i;return null==(i=e[t])?void 0:i[n]}};class w{constructor(){this.next=new WeakMap,this.nextPath=void 0}get(e,t){let n=this.next.get(e);if(!n)return x;for(;n.nextPath;){var s;const e=null!=(s=t(n.nextPath))?s:i;if(n=n.next.get(e),!n)return x}return[n.value,n.journey]}set(e,t){if(e.length<1)throw new k;let n=this;for(const{path:t,entity:s}of e){let e=n.next.get(s);e||(e=new b,n.next.set(null!=s?s:i,e)),n.nextPath=t,n=e}n.nextPath=void 0,n.value=t,n.journey=e.map((e=>e.path))}}const x=[void 0,void 0];class b{constructor(){this.next=new WeakMap,this.nextPath=void 0,this.value=void 0,this.journey=[]}}class k extends Error{constructor(...e){super(...e),this.message="Keys must include at least one member"}}class I extends v{constructor(e,t){super(e),this.newEntities=new Map,this.newIndexes=new Map,this.entitiesMeta=e.entitiesMeta,this.meta=t,this.checkLoop=function(){const e=new Map;return function(t,n,i){let s=e.get(t);s||(s=new Map,e.set(t,s));let r=s.get(n);return r||(r=new Set,s.set(n,r)),!!r.has(i)||(r.add(i),!1)}}()}getNewEntity(e,t){return this.getNewEntities(e).get(t)}getNewEntities(e){return this.newEntities.has(e)||(this.newEntities.set(e,new Map),this.entities[e]=l({},this.entities[e]),this.entitiesMeta[e]=l({},this.entitiesMeta[e])),this.newEntities.get(e)}getNewIndexes(e){return this.newIndexes.has(e)||(this.newIndexes.set(e,new Map),this.indexes[e]=l({},this.indexes[e])),this.newIndexes.get(e)}mergeEntity(e,t,n){const i=e.key;let s=n,r=this.meta,o=this.getNewEntity(i,t);if(o)s=e.merge(o,n);else if(o=this.getEntity(i,t),o){const a=this.getMeta(i,t);s=e.mergeWithStore(a,r,o,n),r=e.mergeMetaWithStore(a,r,o,n)}this.setEntity(e,t,s,r)}setEntity(e,t,i,s=this.meta){const r=e.key,o=this.getNewEntities(r),a=!o.has(t);o.set(t,i),e.indexes&&function(e,t,i,s,r,o){for(const a of t){i.has(a)||i.set(a,s[a]={});const t=i.get(a);o[e]&&delete t[o[e][a]],o&&o[e]&&o[e][a]!==r[a]&&(t[o[e][a]]=n),a in r&&(t[r[a]]=e)}}(t,e.indexes,this.getNewIndexes(r),this.indexes[r],i,this.entities[r]),this._setEntity(r,t,i),a&&this._setMeta(r,t,s)}invalidate({key:e},t){this.setEntity({key:e},t,n)}_setEntity(e,t,n){this.entities[e][t]=n}_setMeta(e,t,n){this.entitiesMeta[e][t]=n}getMeta(e,t){return this.entitiesMeta[e][t]}}const A=(e,t,n=[],{entities:i,indexes:s,entitiesMeta:r}=L,o={fetchedAt:0,date:Date.now(),expiresAt:1/0})=>{if(null==e)return{result:t,entities:i,indexes:s,entitiesMeta:r};const c=function(e){return["object","function"].includes(typeof e)?"object":typeof e}(e);if(null===t||typeof t!==c&&(void 0===e.key||void 0!==e.pk||"string"!=typeof t))throw new Error(`Unexpected input given to normalize. Expected type to be "${c}", found "${null===t?"null":typeof t}".`);const h={result:"",entities:l({},i),indexes:l({},s),entitiesMeta:l({},r)},d=(e=>{const t=(n,i,s,r,o)=>i&&n?n.normalize&&"function"==typeof n.normalize?"object"!=typeof i?n.pk?`${i}`:i:n.normalize(i,s,r,o,t,e):"object"!=typeof i||"object"!=typeof n?i:(Array.isArray(n)?a:u)(n,i,s,r,o,t):i;return t})(new I(h,o));return h.result=d(e,t,t,void 0,n),h};const L={entities:{},indexes:{},entitiesMeta:{}};class S{constructor(e,t,n){this.dependencies=[],this.cycleCache=new Map,this.cycleIndex=-1,this.localCache=new Map,this._getEntity=e,this._getCache=t,this._resultCache=n}getEntity(e,t,n,i){const s=t.key,{localCacheKey:r,cycleCacheKey:o}=this.getCacheKey(s);if(r.get(e))o.has(e)?this.cycleIndex=o.get(e):this.dependencies.push({path:{key:s,pk:e},entity:n});else{const a=this._getCache(e,t),[c,h]=a.get(n,this._getEntity);if(h)return r.set(e,c.value),this.dependencies.push(...c.dependencies),c.value;{const t=this.dependencies.length;o.set(e,t),this.dependencies.push({path:{key:s,pk:e},entity:n}),i(r),o.delete(e);const c=this.dependencies.slice(-1===this.cycleIndex?t:this.cycleIndex),h={dependencies:c,value:r.get(e)};a.set(c,h),this.cycleIndex===t&&(this.cycleIndex=-1)}}return r.get(e)}getCacheKey(e){this.localCache.has(e)||this.localCache.set(e,new Map),this.cycleCache.has(e)||this.cycleCache.set(e,new Map);return{localCacheKey:this.localCache.get(e),cycleCacheKey:this.cycleCache.get(e)}}getResults(e,t,n){if(!t)return{data:n(),paths:this.paths()};let[i,s]=this._resultCache.get(e,this._getEntity);return void 0===s?(i=n(),s=this.paths(),this.dependencies.unshift({path:{key:"",pk:""},entity:e}),this._resultCache.set(this.dependencies,i)):s.shift(),{data:i,paths:s}}paths(){return this.dependencies.map((e=>e.path))}}function M(e){return void 0!==e&&(!(e&&"object"==typeof e&&!Array.isArray(e))||Object.values(e).every(M))}class C{constructor(e=E){var t;this.endpoints=new w,this.queryKeys=new Map,this.policy=e,this._getCache=(t=new Map,(e,n)=>{var i;const s=n.key,r=null!=(i=n.cacheWith)?i:n;t.has(s)||t.set(s,new Map);const o=t.get(s);o.has(e)||o.set(e,new WeakMap);const a=o.get(e);let c=a.get(r);return c||(c=new w,a.set(r,c)),c})}denormalize(e,t,n,i=[]){if(void 0===e)return{data:t,paths:[]};if(void 0===t)return{data:void 0,paths:[]};const s=this.policy.getEntities(n);return g(s,new S(s,this._getCache,this.endpoints),i)(e,t)}query(e,t,n,i=JSON.stringify(t)){const s=this.buildQueryKey(e,t,n,i);return s?this.denormalize(e,s,n.entities,t):{data:void 0,paths:[]}}buildQueryKey(e,t,n,i=JSON.stringify(t)){if("object"!=typeof e&&"function"!=typeof e.queryKey||!e)return e;let s=this.queryKeys.get(i);s||(s=new w,this.queryKeys.set(i,s));const r=new this.policy.QueryDelegate(n);let[o,a]=s.get(e,(c=r,e=>c[["","getEntitiesObject","getEntity","getIndex"][e.length]](...e)));var c;if(!a){const[n,i]=r.tracked(e);o=function(e){return function t(n,i){return function(e){return!!e&&"function"==typeof e.queryKey}(n)?n.queryKey(i,t,e):"object"==typeof n&&n?(Array.isArray(n)?h:p)(n,i,t,e):n}}(n)(e,t),s.set(i,o)}return o}}var O={Invalid:1,InvalidIfStale:2,Valid:3};function _(e,t){const n=Date.now();return{fetchedAt:null!=t?t:n,date:n,expiresAt:n+e}}const R="rdc/fetch",P="rdc/set",j="rdc/setresponse",T="rdc/optimistic",q="rdc/reset",D="rdc/subscribe",N="rdc/unsubscribe",K="rdc/invalidate",z="rdc/invalidateall",Q="rdc/expireall",H="rdc/gc",F=R,V=P,B=j,U=T,Y=q,$=D,W=N,X=K,G=z,J=Q,Z=H;var ee=Object.freeze({__proto__:null,EXPIREALL:Q,EXPIREALL_TYPE:J,FETCH:R,FETCH_TYPE:F,GC:H,GC_TYPE:Z,INVALIDATE:K,INVALIDATEALL:z,INVALIDATEALL_TYPE:G,INVALIDATE_TYPE:X,OPTIMISTIC:T,OPTIMISTIC_TYPE:U,RESET:q,RESET_TYPE:Y,SET:P,SET_RESPONSE:j,SET_RESPONSE_TYPE:B,SET_TYPE:V,SUBSCRIBE:D,SUBSCRIBE_TYPE:$,UNSUBSCRIBE:N,UNSUBSCRIBE_TYPE:W});const te="undefined"!=typeof FormData?e=>e instanceof FormData?Object.fromEntries(e.entries()):e:e=>e;function ne(e,t,n){var i;return{type:T,key:e.key(...t),args:t.map(te),endpoint:e,meta:_(null!=(i=e.dataExpiryLength)?i:6e4,n)}}class ie extends Error{}function se(e,t,n){return"AbortError"===n.name?l({},e,{optimistic:re(e,t)}):l({},e,{meta:l({},e.meta,{[t.key]:{date:t.meta.date,fetchedAt:t.meta.fetchedAt,expiresAt:t.meta.expiresAt,error:n,errorPolicy:null==t.endpoint.errorPolicy?void 0:t.endpoint.errorPolicy(n)}}),optimistic:re(e,t)})}function re(e,t){return e.optimistic.filter((e=>e.key!==t.key||(e.type===T?e.meta.fetchedAt!==t.meta.fetchedAt:e.meta.date>t.meta.date)))}const oe={entities:{},endpoints:{},indexes:{},meta:{},entitiesMeta:{},optimistic:[],lastReset:0};var ae=Object.freeze({__proto__:null,INVALID:n,MemoCache:C,initialState:oe});function ce(e,{args:t}){return{type:D,key:e.key(...t),args:t,endpoint:e}}function he(e,{args:t}){return{type:N,key:e.key(...t),args:t,endpoint:e}}function le(e,{args:t,fetchedAt:n,response:i,error:s=!1}){var r,o;const a=s?null!=(r=e.errorExpiryLength)?r:1e3:null!=(o=e.dataExpiryLength)?o:6e4;return{type:j,key:e.key(...t),response:i,args:t.map(te),endpoint:e,meta:_(a,n),error:s}}function ue(e,{args:t,fetchedAt:n,value:i}){return{type:P,value:i,args:t.map(te),schema:e,meta:_(6e4,n)}}function de(){return{type:q,date:Date.now()}}function pe(e){return{type:z,testKey:e}}function fe(e,{args:t}){return{type:K,key:e.key(...t)}}function ye(e,{args:t}){let n=0,i=0;const s=new Promise(((e,t)=>{[n,i]=[e,t]})),r={fetchedAt:Date.now(),resolve:n,reject:i,promise:s};return{type:R,key:e.key(...t),args:t,endpoint:e,meta:r}}function ge(e){return{type:Q,testKey:e}}var me=Object.freeze({__proto__:null,createExpireAll:ge,createFetch:ye,createInvalidate:fe,createInvalidateAll:pe,createMeta:_,createOptimistic:ne,createReset:de,createSet:ue,createSetResponse:le,createSubscription:ce,createUnsubscription:he});class ve{init(){}cleanup(){}createCountRef(){return()=>()=>{}}}function Ee(e,t){return e.meta[t]}const we=e=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},xe=()=>oe;class be{constructor({dispatch:e=we,getState:n=xe,memo:i=new C,gcPolicy:s=new ve}={}){this.fetch=(e,...n)=>{const i=ye(e,{args:n});return this.dispatch(i),e.schema?i.meta.promise.then((i=>function(e,n,i,s=[]){return void 0===e||void 0===n?n:g(E.getEntities(i),new t,s)(e,n).data}(e.schema,i,{},n))):i.meta.promise},this.fetchIfStale=(e,...t)=>{const{data:n,expiresAt:i,expiryStatus:s}=this.getResponseMeta(e,...t,this.getState());return s!==O.Invalid&&Date.now()<=i?n:this.fetch(e,...t)},this.invalidate=(e,...t)=>null!==t[0]?this.dispatch(fe(e,{args:t})):Promise.resolve(),this.invalidateAll=e=>this.dispatch(pe((t=>e.testKey(t)))),this.expireAll=e=>this.dispatch(ge((t=>e.testKey(t)))),this.resetEntireStore=()=>this.dispatch(de()),this.setResponse=(e,...t)=>{const n=t[t.length-1],i=le(e,{args:t.slice(0,t.length-1),response:n});return this.dispatch(i)},this.setError=(e,...t)=>{const n=t[t.length-1],i=le(e,{args:t.slice(0,t.length-1),response:n,error:!0});return this.dispatch(i)},this.resolve=(e,t)=>this.dispatch(le(e,t)),this.subscribe=(e,...t)=>null!==t[0]?this.dispatch(ce(e,{args:t})):Promise.resolve(),this.unsubscribe=(e,...t)=>null!==t[0]?this.dispatch(he(e,{args:t})):Promise.resolve(),this.snapshot=(e,t)=>new Ie(this,e,t),this._dispatch=e,this.getState=n,this.memo=i,this.gcPolicy=s}set dispatch(e){this._dispatch=e}get dispatch(){return this._dispatch}bindMiddleware({dispatch:e,getState:t}){this._dispatch=e,this.getState=t}set(e,...t){const n=t[t.length-1],i=ue(e,{args:t.slice(0,t.length-1),value:n});return this.dispatch(i)}getError(e,...t){if(null===t[0])return;const n=t[t.length-1],i=t.slice(0,t.length-1),s=e.key(...i),r=Ee(n,s);return void 0===n.endpoints[s]||"soft"!==(null==r?void 0:r.errorPolicy)?null==r?void 0:r.error:void 0}getResponse(e,...t){return this.getResponseMeta(e,...t)}getResponseMeta(e,...t){const[n,i]=Ae(t),s=1!==i.length||null!==i[0],r=s?e.key(...i):"",o=s?n.endpoints[r]:void 0,a=e.schema,c=Ee(n,r);let h=null==c?void 0:c.expiresAt;const l=void 0===o&&void 0!==a,u=l?this.memo.buildQueryKey(a,i,n,r):o;if(!s)return{data:u,expiryStatus:O.Valid,expiresAt:1/0,countRef:()=>()=>{}};let d=!1;if(l)d=!M(u);else if(!a||!ke(a))return{data:o,expiryStatus:this.getExpiryStatus(!o,!!e.invalidIfStale,c),expiresAt:h||0,countRef:this.gcPolicy.createCountRef({key:r})};const{data:p,paths:f}=this.memo.denormalize(a,u,n.entities,i);return h||(h=d?1:function(e,t){let n=1/0;for(const{key:s,pk:r}of e){var i;const e=null==(i=t[s])||null==(i=i[r])?void 0:i.expiresAt;e<n&&(n=e)}return n}(f,n.entitiesMeta)),{data:p,expiryStatus:this.getExpiryStatus("symbol"==typeof p,!!e.invalidIfStale||d,c),expiresAt:h,countRef:this.gcPolicy.createCountRef({key:r,paths:f})}}get(e,...t){const[n,i]=Ae(t),{data:s}=this.memo.query(e,i,n);return"symbol"==typeof s?void 0:s}getQueryMeta(e,...t){const[n,i]=Ae(t),{data:s,paths:r}=this.memo.query(e,i,n);return{data:"symbol"==typeof s?void 0:s,countRef:this.gcPolicy.createCountRef({paths:r})}}getExpiryStatus(e,t,n={}){return n.invalidated||e&&!n.error?O.Invalid:e||t?O.InvalidIfStale:O.Valid}}function ke(e){if(s(e))return!0;if(Array.isArray(e))return 0!==e.length&&ke(e[0]);if(e&&("object"==typeof e||"function"==typeof e)){const t="schema"in e?e.schema:e;return"function"==typeof t?ke(t):Object.values(t).some((e=>ke(e)))}return!1}class Ie{constructor(e,t,n=0){this.state=void 0,this.controller=void 0,this.fetchedAt=void 0,this.abort=Ie.abort,this.state=t,this.controller=e,this.fetchedAt=n}getResponse(e,...t){return this.controller.getResponse(e,...t,this.state)}getResponseMeta(e,...t){return this.controller.getResponseMeta(e,...t,this.state)}getError(e,...t){return this.controller.getError(e,...t,this.state)}get(e,...t){return this.controller.get(e,...t,this.state)}getQueryMeta(e,...t){return this.controller.getQueryMeta(e,...t,this.state)}}function Ae(e){const t=e.length,n=new Array(t-1);for(let i=0;i<t-1;i++)n[i]=te(e[i]);return[e[t-1],n]}Ie.abort=new ie;class Le extends Error{constructor(){super("Aborted due to RESET"),this.name="ResetError"}}class Se{isOnline(){return void 0===navigator.onLine||navigator.onLine}addOnlineListener(e){addEventListener("online",e)}removeOnlineListener(e){removeEventListener("online",e)}addOfflineListener(e){addEventListener("offline",e)}removeOfflineListener(e){removeEventListener("offline",e)}}class Me{isOnline(){return!0}addOnlineListener(){}removeOnlineListener(){}addOfflineListener(){}removeOfflineListener(){}}let Ce;Ce="undefined"!=typeof navigator&&"function"==typeof addEventListener?Se:Me;var Oe=Ce;let _e={};class Re{constructor(e,t){this.started=!1,this.actions=[],this.maxBufferLength=100,this.devTools="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__.connect(l({},_e,e)),null!=e&&e.maxAge&&(this.maxBufferLength=2*e.maxAge),t&&(this.skipLogging=t)}handleAction(e,t){this.started?this.devTools.send(e,t):(this.actions.length>this.maxBufferLength&&(this.actions=this.actions.slice(this.maxBufferLength/2)),this.actions.push([e,t]))}init(e){}cleanup(){}}Re.prototype.middleware=()=>e=>t=>e(t);e.Controller=be,e.DefaultConnectionListener=Oe,e.DevToolsManager=Re,e.ExpiryStatus=O,e.GCPolicy=class{constructor({intervalMS:e=3e5,expiryMultiplier:t=2,expiresAt:n}={}){this.endpointCount=new Map,this.entityCount=new Map,this.endpointsQ=new Set,this.entitiesQ=[],n&&(this.expiresAt=n.bind(this)),this.options={intervalMS:e,expiryMultiplier:t}}init(e){this.controller=e,this.intervalId=setInterval((()=>{this.idleCallback((()=>this.runSweep()),{timeout:1e3})}),this.options.intervalMS)}cleanup(){clearInterval(this.intervalId)}createCountRef({key:e,paths:t=[]}){return()=>{var n;return e&&this.endpointCount.set(e,(null!=(n=this.endpointCount.get(e))?n:0)+1),t.forEach((e=>{var t;const{key:n,pk:i}=e;this.entityCount.has(n)||this.entityCount.set(n,new Map);const s=this.entityCount.get(n);s.set(i,(null!=(t=s.get(i))?t:0)+1)})),()=>{if(e){const t=this.endpointCount.get(e);void 0!==t&&(t<=1?(this.endpointCount.delete(e),this.endpointsQ.add(e)):this.endpointCount.set(e,t-1))}t.forEach((e=>{const{key:t,pk:n}=e;if(!this.entityCount.has(t))return;const i=this.entityCount.get(t),s=i.get(n);void 0!==s&&(s<=1?(i.delete(n),this.entitiesQ.push(e)):i.set(n,s-1))}))}}}expiresAt({fetchedAt:e,expiresAt:t}){return Math.max((t-e)*this.options.expiryMultiplier,12e4)+e}runSweep(){const e=this.controller.getState(),t=[],n=[],i=Date.now(),s=new Set;for(const t of this.endpointsQ){var r;!this.endpointCount.has(t)&&this.expiresAt(null!=(r=e.meta[t])?r:{fetchedAt:0,date:0,expiresAt:0})<i?n.push(t):s.add(t)}this.endpointsQ=s;const o=[];for(const n of this.entitiesQ){var a,c,h;(null==(a=this.entityCount.get(n.key))||!a.has(n.pk))&&this.expiresAt(null!=(c=null==(h=e.entitiesMeta[n.key])?void 0:h[n.pk])?c:{fetchedAt:0,date:0,expiresAt:0})<i?t.push(n):o.push(n)}this.entitiesQ=o,(t.length||n.length)&&this.controller.dispatch({type:H,entities:t,endpoints:n})}idleCallback(e,t){"function"==typeof requestIdleCallback?requestIdleCallback(e,t):e()}},e.ImmortalGCPolicy=ve,e.LogoutManager=class{constructor({handleLogout:e,shouldLogout:t}={}){this.middleware=e=>t=>async n=>{await t(n),n.type===j&&n.error&&this.shouldLogout(n.response)&&this.handleLogout(e)},e&&(this.handleLogout=e),t&&(this.shouldLogout=t)}cleanup(){}shouldLogout(e){return 401===e.status}handleLogout(e){e.resetEntireStore()}},e.NetworkManager=class{constructor({dataExpiryLength:e=6e4,errorExpiryLength:t=1e3}={}){this.fetching=new Map,this.controller=new be,this.middleware=e=>(this.controller=e,t=>n=>{switch(n.type){case R:return this.handleFetch(n),void 0!==n.endpoint.getOptimisticResponse&&n.endpoint.sideEffect?t(n):Promise.resolve();case j:return t(n).then((()=>{if(this.fetching.has(n.key)){var t;const i=null==(t=e.getState().meta[n.key])?void 0:t.error;i?this.handleSet(le(n.endpoint,{args:n.args,response:i,fetchedAt:n.meta.fetchedAt,error:!0})):this.handleSet(n)}}));case q:{const e=Array.from(this.fetching.values());return this.clearAll(),t(n).then((()=>{for(const{reject:t}of e)t(new Le)}))}default:return t(n)}}),this.dataExpiryLength=e,this.errorExpiryLength=t}init(){delete this.cleanupDate}cleanup(){this.cleanupDate=Date.now()}skipLogging(e){return e.type===R&&this.fetching.has(e.key)}allSettled(){if(this.fetching.size)return Promise.allSettled(this.fetching.values().map((({promise:e})=>e)))}clearAll(){for(const e of this.fetching.keys())this.clear(e)}clear(e){this.fetching.has(e)&&(this.fetching.get(e).promise.catch((()=>{})),this.fetching.delete(e))}getLastReset(){return this.cleanupDate?this.cleanupDate:this.controller.getState().lastReset}handleFetch(e){const{resolve:t,reject:n,fetchedAt:i}=e.meta,s=!e.endpoint.sideEffect,r=()=>{let r=e.endpoint(...e.args);return s||(r=(e=>e.then((e=>(t(e),e))).catch((e=>{throw n(e),e})))(r)),r=r.then((t=>{let n=this.getLastReset();return i>=n&&this.controller.resolve(e.endpoint,{args:e.args,response:t,fetchedAt:i}),t})).catch((t=>{const n=this.getLastReset();throw i>=n&&this.controller.resolve(e.endpoint,{args:e.args,response:t,fetchedAt:i,error:!0}),t})),r};return s?this.throttle(e.key,r,i).then((e=>t(e))).catch((e=>n(e))):r().catch((()=>{}))}handleSet(e){if(this.fetching.has(e.key)){const{reject:t,resolve:n}=this.fetching.get(e.key);e.error?t(e.response):n(e.response),this.clear(e.key)}}throttle(e,t,n){const i=this.getLastReset();let s=this.fetching.get(e);return s&&s.fetchedAt>i||(s=function(e){const t={fetchedAt:e};return t.promise=new Promise(((e,n)=>{t.resolve=e,t.reject=n})),t}(n),this.fetching.set(e,s),this.idleCallback((()=>{t().catch((()=>null))}),{timeout:500})),s.promise}idleCallback(e,t){e()}},e.PollingSubscription=class{constructor(e,t,n){if(this.frequencyHistogram=new Map,this.offlineListener=()=>{this.cleanup(),this.connectionListener.addOnlineListener(this.onlineListener)},this.onlineListener=()=>{this.connectionListener.removeOnlineListener(this.onlineListener);const e=Date.now();this.startId=setTimeout((()=>{this.startId&&(delete this.startId,this.update(),this.run())}),Math.max(0,this.lastFetchTime()-e+this.frequency)),this.connectionListener.addOfflineListener(this.offlineListener)},void 0===e.endpoint.pollFrequency)throw new Error("frequency needed for polling subscription");this.endpoint=e.endpoint,this.frequency=e.endpoint.pollFrequency,this.args=e.args,this.key=e.key,this.frequencyHistogram.set(this.frequency,1),this.controller=t,this.connectionListener=n||new Oe,this.connectionListener.isOnline()?this.onlineListener():this.offlineListener()}add(e){void 0!==e&&(this.frequencyHistogram.has(e)?this.frequencyHistogram.set(e,this.frequencyHistogram.get(e)+1):(this.frequencyHistogram.set(e,1),e<this.frequency&&(this.frequency=e,this.run())))}remove(e){if(void 0===e)return!1;if(this.frequencyHistogram.has(e)&&(this.frequencyHistogram.set(e,this.frequencyHistogram.get(e)-1),this.frequencyHistogram.get(e)<1)){if(this.frequencyHistogram.delete(e),0===this.frequencyHistogram.size)return this.cleanup(),!0;e<=this.frequency&&(this.frequency=Math.min(...this.frequencyHistogram.keys()),this.run())}return!1}cleanup(){this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId),this.lastIntervalId&&(clearInterval(this.lastIntervalId),delete this.lastIntervalId),this.startId&&(clearTimeout(this.startId),delete this.startId),this.connectionListener.removeOnlineListener(this.onlineListener),this.connectionListener.removeOfflineListener(this.offlineListener)}update(){const e=this.endpoint,t=function(...t){return e.call(this,...t)};Object.assign(t,this.endpoint),t.dataExpiryLength=this.frequency/2,t.errorExpiryLength=this.frequency/10,t.errorPolicy=()=>"soft",t.key=()=>this.key,this.controller.fetch(t,...this.args).catch((()=>null))}run(){this.startId||(this.intervalId&&(this.lastIntervalId=this.intervalId),this.intervalId=setInterval((()=>{this.lastIntervalId&&(clearInterval(this.lastIntervalId),delete this.lastIntervalId),this.intervalId&&this.update()}),this.frequency))}lastFetchTime(){var e,t;return null!=(e=null==(t=this.controller.getState().meta[this.key])?void 0:t.date)?e:0}},e.ResetError=Le,e.SubscriptionManager=class{constructor(e){this.subscriptions={},this.controller=new be,this.middleware=e=>(this.controller=e,e=>t=>{switch(t.type){case D:try{this.handleSubscribe(t)}catch(e){console.error(e)}return Promise.resolve();case N:return this.handleUnsubscribe(t),Promise.resolve();default:return e(t)}}),this.Subscription=e}cleanup(){for(const e in this.subscriptions)this.subscriptions[e].cleanup()}handleSubscribe(e){const t=e.key;if(t in this.subscriptions){const n=e.endpoint.pollFrequency;this.subscriptions[t].add(n)}else this.subscriptions[t]=new this.Subscription(e,this.controller)}handleUnsubscribe(e){const t=e.key;if(t in this.subscriptions){const n=e.endpoint.pollFrequency;this.subscriptions[t].remove(n)&&delete this.subscriptions[t]}}},e.__INTERNAL__=ae,e.actionTypes=ee,e.actions=me,e.applyManager=function(e,t){return e.map(((e,n)=>(e.middleware||(e.middleware=null==e.getMiddleware?void 0:e.getMiddleware()),i=>(0===n&&t.bindMiddleware(i),e.middleware(t)))))},e.createReducer=function(e){return function(t,n){switch(t||(t=oe),n.type){case H:return n.entities.forEach((({key:e,pk:n})=>{var i,s;null==(i=t.entities[e])||delete i[n],null==(s=t.entitiesMeta[e])||delete s[n]})),n.endpoints.forEach((e=>{delete t.endpoints[e],delete t.meta[e]})),t;case R:return function(e,t){if(t.endpoint.getOptimisticResponse&&t.endpoint.sideEffect){const n=ne(t.endpoint,t.args,t.meta.fetchedAt);return l({},e,{optimistic:[...e.optimistic,n]})}return e}(t,n);case T:case j:return function(e,t,n){if(t.error)return se(e,t,t.response);try{var i;let s;if(t.type===T){if(!t.endpoint.getOptimisticResponse)return e;try{s=t.endpoint.getOptimisticResponse.call(t.endpoint,n.snapshot(e,t.meta.fetchedAt),...t.args)}catch(t){if(t.constructor===ie)return e;throw t}}else s=t.response;const{result:r,entities:o,indexes:a,entitiesMeta:c}=A(t.endpoint.schema,s,t.args,e,t.meta),h=l({},e.endpoints,{[t.key]:r});try{if(t.endpoint.update){const e=t.endpoint.update(r,...t.args);Object.keys(e).forEach((t=>{h[t]=e[t](h[t])}))}}catch(e){console.error(`Endpoint.update() error: ${t.key}`),console.error(e)}return{entities:o,endpoints:h,indexes:a,meta:l({},e.meta,{[t.key]:{date:t.meta.date,fetchedAt:t.meta.fetchedAt,expiresAt:t.meta.expiresAt,prevExpiresAt:null==(i=e.meta[t.key])?void 0:i.expiresAt}}),entitiesMeta:c,optimistic:re(e,t),lastReset:e.lastReset}}catch(n){return"object"==typeof n&&(n.message=`Error processing ${t.key}\n\nFull Schema: ${JSON.stringify(t.endpoint.schema,void 0,2)}\n\nError:\n${n.message}`,"response"in t&&(n.response=t.response),n.status=400),se(e,t,n)}}(t,n,e);case P:return function(e,t,n){let i;if("function"==typeof t.value){const s=n.get(t.schema,...t.args,e);if(void 0===s)return e;i=t.value(s)}else i=t.value;try{const{entities:n,indexes:s,entitiesMeta:r}=A(t.schema,i,t.args,e,t.meta);return{entities:n,endpoints:e.endpoints,indexes:s,meta:e.meta,entitiesMeta:r,optimistic:e.optimistic,lastReset:e.lastReset}}catch(t){return e}}(t,n,e);case z:case K:return function(e,t){const n=l({},e.endpoints),i=l({},e.meta),s=e=>{delete n[e];const t=l({},i[e],{expiresAt:0,invalidated:!0});delete t.error,i[e]=t};return t.type===K?s(t.key):Object.keys(n).forEach((e=>{t.testKey(e)&&s(e)})),l({},e,{endpoints:n,meta:i})}(t,n);case Q:return function(e,t){const n=l({},e.meta);return Object.keys(n).forEach((e=>{t.testKey(e)&&(n[e]=l({},n[e],{expiresAt:1}))})),l({},e,{meta:n})}(t,n);case q:return l({},oe,{lastReset:n.date});default:return t}}},e.initManager=function(e,t,n){return()=>(e.forEach((e=>{null==e.init||e.init(n)})),t.gcPolicy.init(t),()=>{e.forEach((e=>{e.cleanup()})),t.gcPolicy.cleanup()})},e.initialState=oe}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).RDC=e.RDC||{},e.RDC.Core={}))}(this,(function(e){"use strict";class t{constructor(){this.localCache=new Map}getEntity(e,t,n,i){const s=t.key;this.localCache.has(s)||this.localCache.set(s,new Map);const r=this.localCache.get(s);return r.get(e)||i(r),r.get(e)}getResults(e,t,n){return{data:n(),paths:[]}}}const n=Symbol("INVALID"),i={};function s(e){return null!==e&&void 0!==e.pk}const r=e=>e[0],o=e=>void 0!==e&&"symbol"!=typeof e,a=(e,t,n,i,s,o)=>{e=r(e);const a=(e=>Array.isArray(e)?e:Object.keys(e).map((t=>e[t])))(t);return a.map((t=>o(e,t,n,i,s)))},c=(e,t,n,i)=>(e=r(e),t.map?t.map((t=>i(e,t))).filter(o):t);function h(){}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},l.apply(null,arguments)}const u=(e,t,n,i,s,r)=>{const o=l({},t),a=Object.keys(e);for(let n=0;n<a.length;n++){const i=a[n],c=r(e[i],t[i],t,i,s);void 0===c?delete o[i]:o[i]=c}return o},d=(e,t,i,s)=>{if(function(e){return!("function"!=typeof e.hasOwnProperty||!(Object.hasOwnProperty.call(e,"__ownerID")||e._map&&Object.hasOwnProperty.call(e._map,"__ownerID")))}(t))return function(e,t,i,s){let r=!1;const o=Object.keys(e).reduce(((t,n)=>{const i=`${n}`,o=s(e[i],t.get(i));return"symbol"==typeof o&&(r=!0),t.has(i)?t.set(i,o):t}),t);return r?n:o}(e,t,0,s);const r=l({},t);let o=!1;const a=Object.keys(e);for(let t=0;t<a.length;t++){const n=a[t],i=s(e[n],r[n]);void 0!==r[n]&&(r[n]=i),"symbol"==typeof i&&(o=!0)}return o?n:r};function p(e,t,n,i){const s={};for(const r of Object.keys(e))s[r]=n(e[r],t,i);return s}const f=(e,t,n,s)=>function(r,o){const a="object"!=typeof o,c=a?e({key:r.key,pk:o}):o;if("symbol"==typeof c)return r.denormalize(c,n,s);if(void 0===c&&a&&""!==o&&"undefined"!==o)return t.getEntity(o,r,i,(e=>{e.set(o,void 0)}));if("object"!=typeof c||null===c)return c;let h=a?o:r.pk(c,void 0,void 0,n);return void 0===h||""===h||"undefined"===h?function(e){const t=new Map;return e(t),t.get("")}((e=>y(r,c,"",e,n,s))):("string"!=typeof h&&(h=`${h}`),t.getEntity(h,r,c,(e=>y(r,c,h,e,n,s))))};function y(e,t,i,s,r,o){const a=e.createIfValid(t);void 0===a?s.set(i,n):(s.set(i,a),s.set(i,e.denormalize(a,r,o)))}const g=(e,t,i)=>{let r=0;const o=f(e,t,i,a);function a(t,h){if(!t)return h;if(null==h)return h;if("function"==typeof t.denormalize){if(s(t)){var l;if(r>=(null!=(l=t.maxEntityDepth)?l:64))return function(e,t,i){var s;const r="object"!=typeof i?e({key:t.key,pk:i}):i;return"object"!=typeof r||null===r?r:null!=(s=t.createIfValid(r))?s:n}(e,t,h);r++;const i=o(t,h);return r--,i}return t.denormalize(h,i,a)}if("function"==typeof t)return t(h);if("object"==typeof t){return(Array.isArray(t)?c:d)(t,h,i,a)}return h}return(e,n)=>{const i=Object(n)===n&&Object(e)===e;return t.getResults(n,i,(()=>a(e,n)))}};class m{constructor({entities:e,indexes:t}){this.entities=e,this.indexes=t}tracked(e){const t=this,i=[{path:[""],entity:e}];return[{INVALID:n,getIndex(...e){const n=t.getIndex(...e);return i.push({path:e,entity:n}),t.getIndexEnd(n,e[2])},getEntity(...e){const n=t.getEntity(...e);return i.push({path:e,entity:n}),n},getEntities(e){const n=t.getEntitiesObject(e);return i.push({path:[e],entity:n}),t.getEntities(e)}},i]}}class v extends m{constructor(e){super(e)}getEntitiesObject(e){return this.entities[e]}getEntities(e){const t=this.entities[e];if(void 0!==t)return{keys:()=>Object.keys(t),entries:()=>Object.entries(t)}}getEntity(e,t){var n;return null==(n=this.entities[e])?void 0:n[t]}getIndex(e,t){var n;return null==(n=this.indexes[e])?void 0:n[t]}getIndexEnd(e,t){return null==e?void 0:e[t]}}const E={QueryDelegate:v,getEntities:e=>({key:t,pk:n})=>{var i;return null==(i=e[t])?void 0:i[n]}};class w{constructor(){this.next=new WeakMap,this.nextPath=void 0}get(e,t){let n=this.next.get(e);if(!n)return x;for(;n.nextPath;){var s;const e=null!=(s=t(n.nextPath))?s:i;if(n=n.next.get(e),!n)return x}return[n.value,n.journey]}set(e,t){if(e.length<1)throw new k;let n=this;for(const{path:t,entity:s}of e){let e=n.next.get(s);e||(e=new b,n.next.set(null!=s?s:i,e)),n.nextPath=t,n=e}n.nextPath=void 0,n.value=t,n.journey=e.map((e=>e.path))}}const x=[void 0,void 0];class b{constructor(){this.next=new WeakMap,this.nextPath=void 0,this.value=void 0,this.journey=[]}}class k extends Error{constructor(...e){super(...e),this.message="Keys must include at least one member"}}class I extends v{constructor(e,t){super(e),this.newEntities=new Map,this.newIndexes=new Map,this.entitiesMeta=e.entitiesMeta,this.meta=t,this.checkLoop=function(){const e=new Map;return function(t,n,i){let s=e.get(t);s||(s=new Map,e.set(t,s));let r=s.get(n);return r||(r=new Set,s.set(n,r)),!!r.has(i)||(r.add(i),!1)}}()}getNewEntity(e,t){return this.getNewEntities(e).get(t)}getNewEntities(e){return this.newEntities.has(e)||(this.newEntities.set(e,new Map),this.entities[e]=l({},this.entities[e]),this.entitiesMeta[e]=l({},this.entitiesMeta[e])),this.newEntities.get(e)}getNewIndexes(e){return this.newIndexes.has(e)||(this.newIndexes.set(e,new Map),this.indexes[e]=l({},this.indexes[e])),this.newIndexes.get(e)}mergeEntity(e,t,n){const i=e.key;let s=n,r=this.meta,o=this.getNewEntity(i,t);if(o)s=e.merge(o,n);else if(o=this.getEntity(i,t),o){const a=this.getMeta(i,t);s=e.mergeWithStore(a,r,o,n),r=e.mergeMetaWithStore(a,r,o,n)}this.setEntity(e,t,s,r)}setEntity(e,t,i,s=this.meta){const r=e.key,o=this.getNewEntities(r),a=!o.has(t);o.set(t,i),e.indexes&&function(e,t,i,s,r,o){for(const a of t){i.has(a)||i.set(a,s[a]={});const t=i.get(a);o[e]&&delete t[o[e][a]],o&&o[e]&&o[e][a]!==r[a]&&(t[o[e][a]]=n),a in r&&(t[r[a]]=e)}}(t,e.indexes,this.getNewIndexes(r),this.indexes[r],i,this.entities[r]),this._setEntity(r,t,i),a&&this._setMeta(r,t,s)}invalidate({key:e},t){this.setEntity({key:e},t,n)}_setEntity(e,t,n){this.entities[e][t]=n}_setMeta(e,t,n){this.entitiesMeta[e][t]=n}getMeta(e,t){return this.entitiesMeta[e][t]}}const A=(e,t,n=[],{entities:i,indexes:s,entitiesMeta:r}=L,o={fetchedAt:0,date:Date.now(),expiresAt:1/0})=>{if(null==e)return{result:t,entities:i,indexes:s,entitiesMeta:r};const c=function(e){return["object","function"].includes(typeof e)?"object":typeof e}(e);if(null===t||typeof t!==c&&(void 0===e.key||void 0!==e.pk||"string"!=typeof t))throw new Error(`Unexpected input given to normalize. Expected type to be "${c}", found "${null===t?"null":typeof t}".`);const h={result:"",entities:l({},i),indexes:l({},s),entitiesMeta:l({},r)},d=(e=>{const t=(n,i,s,r,o)=>i&&n?n.normalize&&"function"==typeof n.normalize?"object"!=typeof i?n.pk?`${i}`:i:n.normalize(i,s,r,o,t,e):"object"!=typeof i||"object"!=typeof n?i:(Array.isArray(n)?a:u)(n,i,s,r,o,t):i;return t})(new I(h,o));return h.result=d(e,t,t,void 0,n),h};const L={entities:{},indexes:{},entitiesMeta:{}};class S{constructor(e,t,n){this.dependencies=[],this.cycleCache=new Map,this.cycleIndex=-1,this.localCache=new Map,this._getEntity=e,this._getCache=t,this._resultCache=n}getEntity(e,t,n,i){const s=t.key,{localCacheKey:r,cycleCacheKey:o}=this.getCacheKey(s);if(r.get(e))o.has(e)?this.cycleIndex=o.get(e):this.dependencies.push({path:{key:s,pk:e},entity:n});else{const a=this._getCache(e,t),[c,h]=a.get(n,this._getEntity);if(h)return r.set(e,c.value),this.dependencies.push(...c.dependencies),c.value;{const t=this.dependencies.length;o.set(e,t),this.dependencies.push({path:{key:s,pk:e},entity:n}),i(r),o.delete(e);const c=this.dependencies.slice(-1===this.cycleIndex?t:this.cycleIndex),h={dependencies:c,value:r.get(e)};a.set(c,h),this.cycleIndex===t&&(this.cycleIndex=-1)}}return r.get(e)}getCacheKey(e){this.localCache.has(e)||this.localCache.set(e,new Map),this.cycleCache.has(e)||this.cycleCache.set(e,new Map);return{localCacheKey:this.localCache.get(e),cycleCacheKey:this.cycleCache.get(e)}}getResults(e,t,n){if(!t)return{data:n(),paths:this.paths()};let[i,s]=this._resultCache.get(e,this._getEntity);return void 0===s?(i=n(),s=this.paths(),this.dependencies.unshift({path:{key:"",pk:""},entity:e}),this._resultCache.set(this.dependencies,i)):s.shift(),{data:i,paths:s}}paths(){return this.dependencies.map((e=>e.path))}}function M(e){return void 0!==e&&(!(e&&"object"==typeof e&&!Array.isArray(e))||Object.values(e).every(M))}class C{constructor(e=E){var t;this.endpoints=new w,this.queryKeys=new Map,this.policy=e,this._getCache=(t=new Map,(e,n)=>{var i;const s=n.key,r=null!=(i=n.cacheWith)?i:n;t.has(s)||t.set(s,new Map);const o=t.get(s);o.has(e)||o.set(e,new WeakMap);const a=o.get(e);let c=a.get(r);return c||(c=new w,a.set(r,c)),c})}denormalize(e,t,n,i=[]){if(void 0===e)return{data:t,paths:[]};if(void 0===t)return{data:void 0,paths:[]};const s=this.policy.getEntities(n);return g(s,new S(s,this._getCache,this.endpoints),i)(e,t)}query(e,t,n,i=JSON.stringify(t)){const s=this.buildQueryKey(e,t,n,i);return s?this.denormalize(e,s,n.entities,t):{data:void 0,paths:[]}}buildQueryKey(e,t,n,i=JSON.stringify(t)){if("object"!=typeof e&&"function"!=typeof e.queryKey||!e)return e;let s=this.queryKeys.get(i);s||(s=new w,this.queryKeys.set(i,s));const r=new this.policy.QueryDelegate(n);let[o,a]=s.get(e,(c=r,e=>c[["","getEntitiesObject","getEntity","getIndex"][e.length]](...e)));var c;if(!a){const[n,i]=r.tracked(e);o=function(e){return function t(n,i){return function(e){return!!e&&"function"==typeof e.queryKey}(n)?n.queryKey(i,t,e):"object"==typeof n&&n?(Array.isArray(n)?h:p)(n,i,t,e):n}}(n)(e,t),s.set(i,o)}return o}}var O={Invalid:1,InvalidIfStale:2,Valid:3};function _(e,t){const n=Date.now();return{fetchedAt:null!=t?t:n,date:n,expiresAt:n+e}}const R="rdc/fetch",j="rdc/set",P="rdc/setresponse",T="rdc/optimistic",q="rdc/reset",D="rdc/subscribe",N="rdc/unsubscribe",K="rdc/invalidate",z="rdc/invalidateall",Q="rdc/expireall",H="rdc/gc",F=R,V=j,B=P,U=T,Y=q,$=D,W=N,X=K,G=z,J=Q,Z=H;var ee=Object.freeze({__proto__:null,EXPIREALL:Q,EXPIREALL_TYPE:J,FETCH:R,FETCH_TYPE:F,GC:H,GC_TYPE:Z,INVALIDATE:K,INVALIDATEALL:z,INVALIDATEALL_TYPE:G,INVALIDATE_TYPE:X,OPTIMISTIC:T,OPTIMISTIC_TYPE:U,RESET:q,RESET_TYPE:Y,SET:j,SET_RESPONSE:P,SET_RESPONSE_TYPE:B,SET_TYPE:V,SUBSCRIBE:D,SUBSCRIBE_TYPE:$,UNSUBSCRIBE:N,UNSUBSCRIBE_TYPE:W});const te="undefined"!=typeof FormData?e=>e instanceof FormData?Object.fromEntries(e.entries()):e:e=>e;function ne(e,t,n){var i;return{type:T,key:e.key(...t),args:t.map(te),endpoint:e,meta:_(null!=(i=e.dataExpiryLength)?i:6e4,n)}}class ie extends Error{}function se(e,t,n){return"AbortError"===n.name?l({},e,{optimistic:re(e,t)}):l({},e,{meta:l({},e.meta,{[t.key]:{date:t.meta.date,fetchedAt:t.meta.fetchedAt,expiresAt:t.meta.expiresAt,error:n,errorPolicy:null==t.endpoint.errorPolicy?void 0:t.endpoint.errorPolicy(n)}}),optimistic:re(e,t)})}function re(e,t){return e.optimistic.filter((e=>e.key!==t.key||(e.type===T?e.meta.fetchedAt!==t.meta.fetchedAt:e.meta.date>t.meta.date)))}const oe={entities:{},endpoints:{},indexes:{},meta:{},entitiesMeta:{},optimistic:[],lastReset:0};var ae=Object.freeze({__proto__:null,INVALID:n,MemoCache:C,initialState:oe});function ce(e,{args:t}){return{type:D,key:e.key(...t),args:t,endpoint:e}}function he(e,{args:t}){return{type:N,key:e.key(...t),args:t,endpoint:e}}function le(e,{args:t,fetchedAt:n,response:i,error:s=!1}){var r,o;const a=s?null!=(r=e.errorExpiryLength)?r:1e3:null!=(o=e.dataExpiryLength)?o:6e4;return{type:P,key:e.key(...t),response:i,args:t.map(te),endpoint:e,meta:_(a,n),error:s}}function ue(e,{args:t,fetchedAt:n,value:i}){return{type:j,value:i,args:t.map(te),schema:e,meta:_(6e4,n)}}function de(){return{type:q,date:Date.now()}}function pe(e){return{type:z,testKey:e}}function fe(e,{args:t}){return{type:K,key:e.key(...t)}}function ye(e,{args:t}){let n=0,i=0;const s=new Promise(((e,t)=>{[n,i]=[e,t]})),r={fetchedAt:Date.now(),resolve:n,reject:i,promise:s};return{type:R,key:e.key(...t),args:t,endpoint:e,meta:r}}function ge(e){return{type:Q,testKey:e}}var me=Object.freeze({__proto__:null,createExpireAll:ge,createFetch:ye,createInvalidate:fe,createInvalidateAll:pe,createMeta:_,createOptimistic:ne,createReset:de,createSet:ue,createSetResponse:le,createSubscription:ce,createUnsubscription:he});class ve{init(){}cleanup(){}createCountRef(){return()=>()=>{}}}function Ee(e,t){return e.meta[t]}const we=e=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},xe=()=>oe;class be{constructor({dispatch:e=we,getState:n=xe,memo:i=new C,gcPolicy:s=new ve}={}){this.fetch=(e,...n)=>{const i=ye(e,{args:n});return this.dispatch(i),e.schema?i.meta.promise.then((i=>function(e,n,i,s=[]){return void 0===e||void 0===n?n:g(E.getEntities(i),new t,s)(e,n).data}(e.schema,i,{},n))):i.meta.promise},this.fetchIfStale=(e,...t)=>{const{data:n,expiresAt:i,expiryStatus:s}=this.getResponseMeta(e,...t,this.getState());return s!==O.Invalid&&Date.now()<=i?n:this.fetch(e,...t)},this.invalidate=(e,...t)=>null!==t[0]?this.dispatch(fe(e,{args:t})):Promise.resolve(),this.invalidateAll=e=>this.dispatch(pe((t=>e.testKey(t)))),this.expireAll=e=>this.dispatch(ge((t=>e.testKey(t)))),this.resetEntireStore=()=>this.dispatch(de()),this.setResponse=(e,...t)=>{const n=t[t.length-1],i=le(e,{args:t.slice(0,t.length-1),response:n});return this.dispatch(i)},this.setError=(e,...t)=>{const n=t[t.length-1],i=le(e,{args:t.slice(0,t.length-1),response:n,error:!0});return this.dispatch(i)},this.resolve=(e,t)=>this.dispatch(le(e,t)),this.subscribe=(e,...t)=>null!==t[0]?this.dispatch(ce(e,{args:t})):Promise.resolve(),this.unsubscribe=(e,...t)=>null!==t[0]?this.dispatch(he(e,{args:t})):Promise.resolve(),this.snapshot=(e,t)=>new Ie(this,e,t),this._dispatch=e,this.getState=n,this.memo=i,this.gcPolicy=s}set dispatch(e){this._dispatch=e}get dispatch(){return this._dispatch}bindMiddleware({dispatch:e,getState:t}){this._dispatch=e,this.getState=t}set(e,...t){const n=t[t.length-1],i=ue(e,{args:t.slice(0,t.length-1),value:n});return this.dispatch(i)}getError(e,...t){if(null===t[0])return;const n=t[t.length-1],i=t.slice(0,t.length-1),s=e.key(...i),r=Ee(n,s);return void 0===n.endpoints[s]||"soft"!==(null==r?void 0:r.errorPolicy)?null==r?void 0:r.error:void 0}getResponse(e,...t){return this.getResponseMeta(e,...t)}getResponseMeta(e,...t){const[n,i]=Ae(t),s=1!==i.length||null!==i[0],r=s?e.key(...i):"",o=s?n.endpoints[r]:void 0,a=e.schema,c=Ee(n,r);let h=null==c?void 0:c.expiresAt;const l=void 0===o&&void 0!==a,u=l?this.memo.buildQueryKey(a,i,n,r):o;if(!s)return{data:u,expiryStatus:O.Valid,expiresAt:1/0,countRef:()=>()=>{}};let d=!1;if(l)d=!M(u);else if(!a||!ke(a))return{data:o,expiryStatus:this.getExpiryStatus(!o,!!e.invalidIfStale,c),expiresAt:h||0,countRef:this.gcPolicy.createCountRef({key:r})};const{data:p,paths:f}=this.memo.denormalize(a,u,n.entities,i);return h||(h=d?1:function(e,t){let n=1/0;for(const{key:s,pk:r}of e){var i;const e=null==(i=t[s])||null==(i=i[r])?void 0:i.expiresAt;e<n&&(n=e)}return n}(f,n.entitiesMeta)),{data:p,expiryStatus:this.getExpiryStatus("symbol"==typeof p,!!e.invalidIfStale||d,c),expiresAt:h,countRef:this.gcPolicy.createCountRef({key:r,paths:f})}}get(e,...t){const[n,i]=Ae(t),{data:s}=this.memo.query(e,i,n);return"symbol"==typeof s?void 0:s}getQueryMeta(e,...t){const[n,i]=Ae(t),{data:s,paths:r}=this.memo.query(e,i,n);return{data:"symbol"==typeof s?void 0:s,countRef:this.gcPolicy.createCountRef({paths:r})}}getExpiryStatus(e,t,n={}){return n.invalidated||e&&!n.error?O.Invalid:e||t?O.InvalidIfStale:O.Valid}}function ke(e){if(s(e))return!0;if(Array.isArray(e))return 0!==e.length&&ke(e[0]);if(e&&("object"==typeof e||"function"==typeof e)){const t="schema"in e?e.schema:e;return"function"==typeof t?ke(t):Object.values(t).some((e=>ke(e)))}return!1}class Ie{constructor(e,t,n=0){this.state=void 0,this.controller=void 0,this.fetchedAt=void 0,this.abort=Ie.abort,this.state=t,this.controller=e,this.fetchedAt=n}getResponse(e,...t){return this.controller.getResponse(e,...t,this.state)}getResponseMeta(e,...t){return this.controller.getResponseMeta(e,...t,this.state)}getError(e,...t){return this.controller.getError(e,...t,this.state)}get(e,...t){return this.controller.get(e,...t,this.state)}getQueryMeta(e,...t){return this.controller.getQueryMeta(e,...t,this.state)}}function Ae(e){const t=e.length,n=new Array(t-1);for(let i=0;i<t-1;i++)n[i]=te(e[i]);return[e[t-1],n]}Ie.abort=new ie;class Le extends Error{constructor(){super("Aborted due to RESET"),this.name="ResetError"}}class Se{isOnline(){return void 0===navigator.onLine||navigator.onLine}addOnlineListener(e){addEventListener("online",e)}removeOnlineListener(e){removeEventListener("online",e)}addOfflineListener(e){addEventListener("offline",e)}removeOfflineListener(e){removeEventListener("offline",e)}}class Me{isOnline(){return!0}addOnlineListener(){}removeOnlineListener(){}addOfflineListener(){}removeOfflineListener(){}}let Ce;Ce="undefined"!=typeof navigator&&"function"==typeof addEventListener?Se:Me;var Oe=Ce;let _e={};class Re{constructor(e,t){var n,i;this.started=!1,this.actions=[],this.maxBufferLength=100;const s=l({},_e,e);this.devtoolsName=null!=(n=s.name)?n:`Data Client: ${null==(i=globalThis.document)?void 0:i.title}`,this.devTools="undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__.connect(s),null!=e&&e.maxAge&&(this.maxBufferLength=2*e.maxAge),t&&(this.skipLogging=t)}handleAction(e,t){this.started?this.devTools.send(e,t):(this.actions.length>this.maxBufferLength&&(this.actions=this.actions.slice(this.maxBufferLength/2)),this.actions.push([e,t]))}init(e){}cleanup(){}}Re.prototype.middleware=()=>e=>t=>e(t);e.Controller=be,e.DefaultConnectionListener=Oe,e.DevToolsManager=Re,e.ExpiryStatus=O,e.GCPolicy=class{constructor({intervalMS:e=3e5,expiryMultiplier:t=2,expiresAt:n}={}){this.endpointCount=new Map,this.entityCount=new Map,this.endpointsQ=new Set,this.entitiesQ=[],n&&(this.expiresAt=n.bind(this)),this.options={intervalMS:e,expiryMultiplier:t}}init(e){this.controller=e,this.intervalId=setInterval((()=>{this.idleCallback((()=>this.runSweep()),{timeout:1e3})}),this.options.intervalMS),"object"==typeof this.intervalId&&"unref"in this.intervalId&&this.intervalId.unref()}cleanup(){clearInterval(this.intervalId)}createCountRef({key:e,paths:t=[]}){return()=>{var n;return e&&this.endpointCount.set(e,(null!=(n=this.endpointCount.get(e))?n:0)+1),t.forEach((e=>{var t;const{key:n,pk:i}=e;this.entityCount.has(n)||this.entityCount.set(n,new Map);const s=this.entityCount.get(n);s.set(i,(null!=(t=s.get(i))?t:0)+1)})),()=>{if(e){const t=this.endpointCount.get(e);void 0!==t&&(t<=1?(this.endpointCount.delete(e),this.endpointsQ.add(e)):this.endpointCount.set(e,t-1))}t.forEach((e=>{const{key:t,pk:n}=e;if(!this.entityCount.has(t))return;const i=this.entityCount.get(t),s=i.get(n);void 0!==s&&(s<=1?(i.delete(n),this.entitiesQ.push(e)):i.set(n,s-1))}))}}}expiresAt({fetchedAt:e,expiresAt:t}){return Math.max((t-e)*this.options.expiryMultiplier,12e4)+e}runSweep(){const e=this.controller.getState(),t=[],n=[],i=Date.now(),s=new Set;for(const t of this.endpointsQ){var r;!this.endpointCount.has(t)&&this.expiresAt(null!=(r=e.meta[t])?r:{fetchedAt:0,date:0,expiresAt:0})<i?n.push(t):s.add(t)}this.endpointsQ=s;const o=[];for(const n of this.entitiesQ){var a,c,h;(null==(a=this.entityCount.get(n.key))||!a.has(n.pk))&&this.expiresAt(null!=(c=null==(h=e.entitiesMeta[n.key])?void 0:h[n.pk])?c:{fetchedAt:0,date:0,expiresAt:0})<i?t.push(n):o.push(n)}this.entitiesQ=o,(t.length||n.length)&&this.controller.dispatch({type:H,entities:t,endpoints:n})}idleCallback(e,t){"function"==typeof requestIdleCallback?requestIdleCallback(e,t):e()}},e.ImmortalGCPolicy=ve,e.LogoutManager=class{constructor({handleLogout:e,shouldLogout:t}={}){this.middleware=e=>t=>async n=>{await t(n),n.type===P&&n.error&&this.shouldLogout(n.response)&&this.handleLogout(e)},e&&(this.handleLogout=e),t&&(this.shouldLogout=t)}cleanup(){}shouldLogout(e){return 401===e.status}handleLogout(e){e.resetEntireStore()}},e.NetworkManager=class{constructor({dataExpiryLength:e=6e4,errorExpiryLength:t=1e3}={}){this.fetching=new Map,this.controller=new be,this.middleware=e=>(this.controller=e,t=>n=>{switch(n.type){case R:return this.handleFetch(n),void 0!==n.endpoint.getOptimisticResponse&&n.endpoint.sideEffect?t(n):Promise.resolve();case P:return t(n).then((()=>{if(this.fetching.has(n.key)){var t;const i=null==(t=e.getState().meta[n.key])?void 0:t.error;i?this.handleSet(le(n.endpoint,{args:n.args,response:i,fetchedAt:n.meta.fetchedAt,error:!0})):this.handleSet(n)}}));case q:{const e=Array.from(this.fetching.values());return this.clearAll(),t(n).then((()=>{for(const{reject:t}of e)t(new Le)}))}default:return t(n)}}),this.dataExpiryLength=e,this.errorExpiryLength=t}init(){delete this.cleanupDate}cleanup(){this.cleanupDate=Date.now()}skipLogging(e){return e.type===R&&this.fetching.has(e.key)}allSettled(){if(this.fetching.size)return Promise.allSettled(this.fetching.values().map((({promise:e})=>e)))}clearAll(){for(const e of this.fetching.keys())this.clear(e)}clear(e){this.fetching.has(e)&&(this.fetching.get(e).promise.catch((()=>{})),this.fetching.delete(e))}getLastReset(){return this.cleanupDate?this.cleanupDate:this.controller.getState().lastReset}handleFetch(e){const{resolve:t,reject:n,fetchedAt:i}=e.meta,s=!e.endpoint.sideEffect,r=()=>{let r=e.endpoint(...e.args);return s||(r=(e=>e.then((e=>(t(e),e))).catch((e=>{throw n(e),e})))(r)),r=r.then((t=>{let n=this.getLastReset();return i>=n&&this.controller.resolve(e.endpoint,{args:e.args,response:t,fetchedAt:i}),t})).catch((t=>{const n=this.getLastReset();throw i>=n&&this.controller.resolve(e.endpoint,{args:e.args,response:t,fetchedAt:i,error:!0}),t})),r};return s?this.throttle(e.key,r,i).then((e=>t(e))).catch((e=>n(e))):r().catch((()=>{}))}handleSet(e){if(this.fetching.has(e.key)){const{reject:t,resolve:n}=this.fetching.get(e.key);e.error?t(e.response):n(e.response),this.clear(e.key)}}throttle(e,t,n){const i=this.getLastReset();let s=this.fetching.get(e);return s&&s.fetchedAt>i||(s=function(e){const t={fetchedAt:e};return t.promise=new Promise(((e,n)=>{t.resolve=e,t.reject=n})),t}(n),this.fetching.set(e,s),this.idleCallback((()=>{t().catch((()=>null))}),{timeout:500})),s.promise}idleCallback(e,t){e()}},e.PollingSubscription=class{constructor(e,t,n){if(this.frequencyHistogram=new Map,this.offlineListener=()=>{this.cleanup(),this.connectionListener.addOnlineListener(this.onlineListener)},this.onlineListener=()=>{this.connectionListener.removeOnlineListener(this.onlineListener);const e=Date.now();this.startId=setTimeout((()=>{this.startId&&(delete this.startId,this.update(),this.run())}),Math.max(0,this.lastFetchTime()-e+this.frequency)),this.connectionListener.addOfflineListener(this.offlineListener)},void 0===e.endpoint.pollFrequency)throw new Error("frequency needed for polling subscription");this.endpoint=e.endpoint,this.frequency=e.endpoint.pollFrequency,this.args=e.args,this.key=e.key,this.frequencyHistogram.set(this.frequency,1),this.controller=t,this.connectionListener=n||new Oe,this.connectionListener.isOnline()?this.onlineListener():this.offlineListener()}add(e){void 0!==e&&(this.frequencyHistogram.has(e)?this.frequencyHistogram.set(e,this.frequencyHistogram.get(e)+1):(this.frequencyHistogram.set(e,1),e<this.frequency&&(this.frequency=e,this.run())))}remove(e){if(void 0===e)return!1;if(this.frequencyHistogram.has(e)&&(this.frequencyHistogram.set(e,this.frequencyHistogram.get(e)-1),this.frequencyHistogram.get(e)<1)){if(this.frequencyHistogram.delete(e),0===this.frequencyHistogram.size)return this.cleanup(),!0;e<=this.frequency&&(this.frequency=Math.min(...this.frequencyHistogram.keys()),this.run())}return!1}cleanup(){this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId),this.lastIntervalId&&(clearInterval(this.lastIntervalId),delete this.lastIntervalId),this.startId&&(clearTimeout(this.startId),delete this.startId),this.connectionListener.removeOnlineListener(this.onlineListener),this.connectionListener.removeOfflineListener(this.offlineListener)}update(){const e=this.endpoint,t=function(...t){return e.call(this,...t)};Object.assign(t,this.endpoint),t.dataExpiryLength=this.frequency/2,t.errorExpiryLength=this.frequency/10,t.errorPolicy=()=>"soft",t.key=()=>this.key,this.controller.fetch(t,...this.args).catch((()=>null))}run(){this.startId||(this.intervalId&&(this.lastIntervalId=this.intervalId),this.intervalId=setInterval((()=>{this.lastIntervalId&&(clearInterval(this.lastIntervalId),delete this.lastIntervalId),this.intervalId&&this.update()}),this.frequency))}lastFetchTime(){var e,t;return null!=(e=null==(t=this.controller.getState().meta[this.key])?void 0:t.date)?e:0}},e.ResetError=Le,e.SubscriptionManager=class{constructor(e){this.subscriptions={},this.controller=new be,this.middleware=e=>(this.controller=e,e=>t=>{switch(t.type){case D:try{this.handleSubscribe(t)}catch(e){console.error(e)}return Promise.resolve();case N:return this.handleUnsubscribe(t),Promise.resolve();default:return e(t)}}),this.Subscription=e}cleanup(){for(const e in this.subscriptions)this.subscriptions[e].cleanup()}handleSubscribe(e){const t=e.key;if(t in this.subscriptions){const n=e.endpoint.pollFrequency;this.subscriptions[t].add(n)}else this.subscriptions[t]=new this.Subscription(e,this.controller)}handleUnsubscribe(e){const t=e.key;if(t in this.subscriptions){const n=e.endpoint.pollFrequency;this.subscriptions[t].remove(n)&&delete this.subscriptions[t]}}},e.__INTERNAL__=ae,e.actionTypes=ee,e.actions=me,e.applyManager=function(e,t){return e.map(((e,n)=>(e.middleware||(e.middleware=null==e.getMiddleware?void 0:e.getMiddleware()),i=>(0===n&&t.bindMiddleware(i),e.middleware(t)))))},e.createReducer=function(e){return function(t,n){switch(t||(t=oe),n.type){case H:return n.entities.forEach((({key:e,pk:n})=>{var i,s;null==(i=t.entities[e])||delete i[n],null==(s=t.entitiesMeta[e])||delete s[n]})),n.endpoints.forEach((e=>{delete t.endpoints[e],delete t.meta[e]})),t;case R:return function(e,t){if(t.endpoint.getOptimisticResponse&&t.endpoint.sideEffect){const n=ne(t.endpoint,t.args,t.meta.fetchedAt);return l({},e,{optimistic:[...e.optimistic,n]})}return e}(t,n);case T:case P:return function(e,t,n){if(t.error)return se(e,t,t.response);try{var i;let s;if(t.type===T){if(!t.endpoint.getOptimisticResponse)return e;try{s=t.endpoint.getOptimisticResponse.call(t.endpoint,n.snapshot(e,t.meta.fetchedAt),...t.args)}catch(t){if(t.constructor===ie)return e;throw t}}else s=t.response;const{result:r,entities:o,indexes:a,entitiesMeta:c}=A(t.endpoint.schema,s,t.args,e,t.meta),h=l({},e.endpoints,{[t.key]:r});try{if(t.endpoint.update){const e=t.endpoint.update(r,...t.args);Object.keys(e).forEach((t=>{h[t]=e[t](h[t])}))}}catch(e){console.error(`Endpoint.update() error: ${t.key}`),console.error(e)}return{entities:o,endpoints:h,indexes:a,meta:l({},e.meta,{[t.key]:{date:t.meta.date,fetchedAt:t.meta.fetchedAt,expiresAt:t.meta.expiresAt,prevExpiresAt:null==(i=e.meta[t.key])?void 0:i.expiresAt}}),entitiesMeta:c,optimistic:re(e,t),lastReset:e.lastReset}}catch(n){return"object"==typeof n&&(n.message=`Error processing ${t.key}\n\nFull Schema: ${JSON.stringify(t.endpoint.schema,void 0,2)}\n\nError:\n${n.message}`,"response"in t&&(n.response=t.response),n.status=400),se(e,t,n)}}(t,n,e);case j:return function(e,t,n){let i;if("function"==typeof t.value){const s=n.get(t.schema,...t.args,e);if(void 0===s)return e;i=t.value(s)}else i=t.value;try{const{entities:n,indexes:s,entitiesMeta:r}=A(t.schema,i,t.args,e,t.meta);return{entities:n,endpoints:e.endpoints,indexes:s,meta:e.meta,entitiesMeta:r,optimistic:e.optimistic,lastReset:e.lastReset}}catch(t){return e}}(t,n,e);case z:case K:return function(e,t){const n=l({},e.endpoints),i=l({},e.meta),s=e=>{delete n[e];const t=l({},i[e],{expiresAt:0,invalidated:!0});delete t.error,i[e]=t};return t.type===K?s(t.key):Object.keys(n).forEach((e=>{t.testKey(e)&&s(e)})),l({},e,{endpoints:n,meta:i})}(t,n);case Q:return function(e,t){const n=l({},e.meta);return Object.keys(n).forEach((e=>{t.testKey(e)&&(n[e]=l({},n[e],{expiresAt:1}))})),l({},e,{meta:n})}(t,n);case q:return l({},oe,{lastReset:n.date});default:return t}}},e.initManager=function(e,t,n){return()=>(e.forEach((e=>{null==e.init||e.init(n)})),t.gcPolicy.init(t),()=>{e.forEach((e=>{e.cleanup()})),t.gcPolicy.cleanup()})},e.initialState=oe}));
|
package/dist/mock.js
CHANGED
|
@@ -944,14 +944,17 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
944
944
|
*/
|
|
945
945
|
class DevToolsManager {
|
|
946
946
|
constructor(config, skipLogging) {
|
|
947
|
+
var _options$name, _globalThis$document2;
|
|
947
948
|
this.started = false;
|
|
948
949
|
this.actions = [];
|
|
949
950
|
this.maxBufferLength = 100;
|
|
950
951
|
/* istanbul ignore next */
|
|
951
|
-
|
|
952
|
+
const options = {
|
|
952
953
|
...DEFAULT_CONFIG,
|
|
953
954
|
...config
|
|
954
|
-
}
|
|
955
|
+
};
|
|
956
|
+
this.devtoolsName = (_options$name = options.name) != null ? _options$name : `Data Client: ${(_globalThis$document2 = globalThis.document) == null ? void 0 : _globalThis$document2.title}`;
|
|
957
|
+
this.devTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__.connect(options);
|
|
955
958
|
// we cut it in half so we should double so we don't lose
|
|
956
959
|
if (config != null && config.maxAge) this.maxBufferLength = config.maxAge * 2;
|
|
957
960
|
if (skipLogging) this.skipLogging = skipLogging;
|
|
@@ -970,6 +973,10 @@ class DevToolsManager {
|
|
|
970
973
|
|
|
971
974
|
/** Called when initial state is ready */
|
|
972
975
|
init(state) {
|
|
976
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
977
|
+
var _ref, _ref$__DC_CONTROLLERS;
|
|
978
|
+
((_ref$__DC_CONTROLLERS = (_ref = globalThis).__DC_CONTROLLERS__) != null ? _ref$__DC_CONTROLLERS : _ref.__DC_CONTROLLERS__ = new Map()).set(this.devtoolsName, this.controller);
|
|
979
|
+
}
|
|
973
980
|
if (process.env.NODE_ENV !== 'production' && this.devTools) {
|
|
974
981
|
this.devTools.init(state);
|
|
975
982
|
this.devTools.subscribe(msg => {
|
|
@@ -997,7 +1004,14 @@ class DevToolsManager {
|
|
|
997
1004
|
}
|
|
998
1005
|
|
|
999
1006
|
/** Ensures all subscriptions are cleaned up. */
|
|
1000
|
-
cleanup() {
|
|
1007
|
+
cleanup() {
|
|
1008
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
1009
|
+
const map = globalThis.__DC_CONTROLLERS__;
|
|
1010
|
+
if ((map == null ? void 0 : map.get(this.devtoolsName)) === this.controller) {
|
|
1011
|
+
map.delete(this.devtoolsName);
|
|
1012
|
+
}
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1001
1015
|
}
|
|
1002
1016
|
_DevToolsManager = DevToolsManager;
|
|
1003
1017
|
(() => {
|
|
@@ -1005,8 +1019,8 @@ _DevToolsManager = DevToolsManager;
|
|
|
1005
1019
|
/* istanbul ignore next */
|
|
1006
1020
|
if (process.env.NODE_ENV !== 'production') {
|
|
1007
1021
|
_DevToolsManager.prototype.middleware = function (controller) {
|
|
1008
|
-
if (!this.devTools) return next => action => next(action);
|
|
1009
1022
|
this.controller = controller;
|
|
1023
|
+
if (!this.devTools) return next => action => next(action);
|
|
1010
1024
|
const reducer = createReducer(controller);
|
|
1011
1025
|
let state = controller.getState();
|
|
1012
1026
|
return next => action => {
|
|
@@ -74,11 +74,14 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
74
74
|
*/
|
|
75
75
|
export default class DevToolsManager {
|
|
76
76
|
constructor(config, skipLogging) {
|
|
77
|
+
var _options$name, _globalThis$document2;
|
|
77
78
|
this.started = false;
|
|
78
79
|
this.actions = [];
|
|
79
80
|
this.maxBufferLength = 100;
|
|
80
81
|
/* istanbul ignore next */
|
|
81
|
-
|
|
82
|
+
const options = _extends({}, DEFAULT_CONFIG, config);
|
|
83
|
+
this.devtoolsName = (_options$name = options.name) != null ? _options$name : `Data Client: ${(_globalThis$document2 = globalThis.document) == null ? void 0 : _globalThis$document2.title}`;
|
|
84
|
+
this.devTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__.connect(options);
|
|
82
85
|
// we cut it in half so we should double so we don't lose
|
|
83
86
|
if (config != null && config.maxAge) this.maxBufferLength = config.maxAge * 2;
|
|
84
87
|
if (skipLogging) this.skipLogging = skipLogging;
|
|
@@ -97,6 +100,10 @@ export default class DevToolsManager {
|
|
|
97
100
|
|
|
98
101
|
/** Called when initial state is ready */
|
|
99
102
|
init(state) {
|
|
103
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
104
|
+
var _ref, _ref$__DC_CONTROLLERS;
|
|
105
|
+
((_ref$__DC_CONTROLLERS = (_ref = globalThis).__DC_CONTROLLERS__) != null ? _ref$__DC_CONTROLLERS : _ref.__DC_CONTROLLERS__ = new Map()).set(this.devtoolsName, this.controller);
|
|
106
|
+
}
|
|
100
107
|
if (process.env.NODE_ENV !== 'production' && this.devTools) {
|
|
101
108
|
this.devTools.init(state);
|
|
102
109
|
this.devTools.subscribe(msg => {
|
|
@@ -124,7 +131,14 @@ export default class DevToolsManager {
|
|
|
124
131
|
}
|
|
125
132
|
|
|
126
133
|
/** Ensures all subscriptions are cleaned up. */
|
|
127
|
-
cleanup() {
|
|
134
|
+
cleanup() {
|
|
135
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
136
|
+
const map = globalThis.__DC_CONTROLLERS__;
|
|
137
|
+
if ((map == null ? void 0 : map.get(this.devtoolsName)) === this.controller) {
|
|
138
|
+
map.delete(this.devtoolsName);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
128
142
|
}
|
|
129
143
|
_DevToolsManager = DevToolsManager;
|
|
130
144
|
(() => {
|
|
@@ -132,8 +146,8 @@ _DevToolsManager = DevToolsManager;
|
|
|
132
146
|
/* istanbul ignore next */
|
|
133
147
|
if (process.env.NODE_ENV !== 'production') {
|
|
134
148
|
_DevToolsManager.prototype.middleware = function (controller) {
|
|
135
|
-
if (!this.devTools) return next => action => next(action);
|
|
136
149
|
this.controller = controller;
|
|
150
|
+
if (!this.devTools) return next => action => next(action);
|
|
137
151
|
const reducer = createReducer(controller);
|
|
138
152
|
let state = controller.getState();
|
|
139
153
|
return next => action => {
|
|
@@ -157,4 +171,4 @@ _DevToolsManager = DevToolsManager;
|
|
|
157
171
|
_DevToolsManager.prototype.middleware = () => next => action => next(action);
|
|
158
172
|
}
|
|
159
173
|
})();
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVSZWR1Y2VyIiwiREVGQVVMVF9DT05GSUciLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfZ2xvYmFsVGhpcyRkb2N1bWVudCIsImV4dHJhRW5kcG9pbnRLZXlzIiwic2VyaWFsaXplRW5kcG9pbnQiLCJlbmRwb2ludCIsIl90b0pTT04iLCJfZW5kcG9pbnQkc2NoZW1hIiwic2VyaWFsIiwibmFtZSIsInNjaGVtYSIsInRvSlNPTiIsInNpZGVFZmZlY3QiLCJmb3JFYWNoIiwia2V5IiwiSEFTSU5UTCIsIkludGwiLCJnbG9iYWxUaGlzIiwiZG9jdW1lbnQiLCJ0aXRsZSIsImF1dG9QYXVzZSIsImZlYXR1cmVzIiwicGF1c2UiLCJsb2NrIiwicGVyc2lzdCIsImV4cG9ydCIsImltcG9ydCIsImp1bXAiLCJza2lwIiwicmVvcmRlciIsImRpc3BhdGNoIiwidGVzdCIsImFjdGlvblNhbml0aXplciIsImFjdGlvbiIsIl9leHRlbmRzIiwic2VyaWFsaXplIiwib3B0aW9ucyIsInVuZGVmaW5lZCIsInJlcGxhY2VyIiwidmFsdWUiLCJpc0Zpbml0ZSIsImVuZHNXaXRoIiwiRGF0ZVRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwic2Vjb25kIiwiZnJhY3Rpb25hbFNlY29uZERpZ2l0cyIsImZvcm1hdCIsIkRldlRvb2xzTWFuYWdlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwic2tpcExvZ2dpbmciLCJzdGFydGVkIiwiYWN0aW9ucyIsIm1heEJ1ZmZlckxlbmd0aCIsImRldlRvb2xzIiwid2luZG93IiwiX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyIsImNvbm5lY3QiLCJtYXhBZ2UiLCJoYW5kbGVBY3Rpb24iLCJzdGF0ZSIsInNlbmQiLCJsZW5ndGgiLCJzbGljZSIsInB1c2giLCJpbml0Iiwic3Vic2NyaWJlIiwibXNnIiwidHlwZSIsInBheWxvYWQiLCJjb250cm9sbGVyIiwicmVzZXRFbnRpcmVTdG9yZSIsImNsZWFudXAiLCJfRGV2VG9vbHNNYW5hZ2VyIiwicHJvdG90eXBlIiwibWlkZGxld2FyZSIsIm5leHQiLCJyZWR1Y2VyIiwiZ2V0U3RhdGUiLCJfdGhpcyRza2lwTG9nZ2luZyIsInNob3VsZFNraXAiLCJjYWxsIiwicmV0IiwidGhlbiIsIm9wdGltaXN0aWMiLCJyZWR1Y2UiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlci9EZXZ0b29sc01hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXZUb29sc0NvbmZpZyB9IGZyb20gJy4vZGV2dG9vbHNUeXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbnRyb2xsZXIsIEVuZHBvaW50SW50ZXJmYWNlIH0gZnJvbSAnLi4vaW5kZXguanMnO1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlIH0gZnJvbSAnLi4vbWlkZGxld2FyZVR5cGVzLmpzJztcbmltcG9ydCBjcmVhdGVSZWR1Y2VyIGZyb20gJy4uL3N0YXRlL3JlZHVjZXIvY3JlYXRlUmVkdWNlci5qcyc7XG5pbXBvcnQgdHlwZSB7IE1hbmFnZXIsIFN0YXRlLCBBY3Rpb25UeXBlcyB9IGZyb20gJy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgeyBEZXZUb29sc0NvbmZpZyB9O1xuXG5sZXQgREVGQVVMVF9DT05GSUcgPSB7fTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgY29uc3QgZXh0cmFFbmRwb2ludEtleXMgPSBbXG4gICAgJ2RhdGFFeHBpcnlMZW5ndGgnLFxuICAgICdlcnJvckV4cGlyeUxlbmd0aCcsXG4gICAgJ2Vycm9yUG9saWN5JyxcbiAgICAnaW52YWxpZElmU3RhbGUnLFxuICAgICdwb2xsRnJlcXVlbmN5JyxcbiAgICAnZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlJyxcbiAgICAndXBkYXRlJyxcbiAgXTtcblxuICBmdW5jdGlvbiBzZXJpYWxpemVFbmRwb2ludChlbmRwb2ludDogRW5kcG9pbnRJbnRlcmZhY2UpIHtcbiAgICBjb25zdCBzZXJpYWw6IGFueSA9IHtcbiAgICAgIG5hbWU6IGVuZHBvaW50Lm5hbWUsXG4gICAgICBzY2hlbWE6IChlbmRwb2ludC5zY2hlbWEgYXMgYW55KT8udG9KU09OPy4oKSA/PyBlbmRwb2ludC5zY2hlbWEsXG4gICAgICBzaWRlRWZmZWN0OiBlbmRwb2ludC5zaWRlRWZmZWN0LFxuICAgIH07XG4gICAgZXh0cmFFbmRwb2ludEtleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKGtleSBpbiBlbmRwb2ludClcbiAgICAgICAgc2VyaWFsW2tleV0gPSBlbmRwb2ludFtrZXkgYXMga2V5b2YgRW5kcG9pbnRJbnRlcmZhY2VdO1xuICAgIH0pO1xuICAgIHJldHVybiBzZXJpYWw7XG4gIH1cblxuICBjb25zdCBIQVNJTlRMID0gdHlwZW9mIEludGwgIT09ICd1bmRlZmluZWQnO1xuICBERUZBVUxUX0NPTkZJRyA9IHtcbiAgICBuYW1lOiBgRGF0YSBDbGllbnQ6ICR7Z2xvYmFsVGhpcy5kb2N1bWVudD8udGl0bGV9YCxcbiAgICBhdXRvUGF1c2U6IHRydWUsXG4gICAgZmVhdHVyZXM6IHtcbiAgICAgIHBhdXNlOiB0cnVlLCAvLyBzdGFydC9wYXVzZSByZWNvcmRpbmcgb2YgZGlzcGF0Y2hlZCBhY3Rpb25zXG4gICAgICBsb2NrOiB0cnVlLCAvLyBsb2NrL3VubG9jayBkaXNwYXRjaGluZyBhY3Rpb25zIGFuZCBzaWRlIGVmZmVjdHNcbiAgICAgIHBlcnNpc3Q6IGZhbHNlLCAvLyBwZXJzaXN0IHN0YXRlcyBvbiBwYWdlIHJlbG9hZGluZ1xuICAgICAgZXhwb3J0OiB0cnVlLCAvLyBleHBvcnQgaGlzdG9yeSBvZiBhY3Rpb25zIGluIGEgZmlsZVxuICAgICAgaW1wb3J0OiAnY3VzdG9tJywgLy8gaW1wb3J0IGhpc3Rvcnkgb2YgYWN0aW9ucyBmcm9tIGEgZmlsZVxuICAgICAganVtcDogdHJ1ZSwgLy8ganVtcCBiYWNrIGFuZCBmb3J0aCAodGltZSB0cmF2ZWxsaW5nKVxuICAgICAgc2tpcDogdHJ1ZSwgLy8gc2tpcCAoY2FuY2VsKSBhY3Rpb25zXG4gICAgICByZW9yZGVyOiB0cnVlLCAvLyBkcmFnIGFuZCBkcm9wIGFjdGlvbnMgaW4gdGhlIGhpc3RvcnkgbGlzdFxuICAgICAgZGlzcGF0Y2g6IGZhbHNlLCAvLyBkaXNwYXRjaCBjdXN0b20gYWN0aW9ucyBvciBhY3Rpb24gY3JlYXRvcnNcbiAgICAgIHRlc3Q6IGZhbHNlLCAvLyBnZW5lcmF0ZSB0ZXN0cyBmb3IgdGhlIHNlbGVjdGVkIGFjdGlvbnNcbiAgICB9LFxuICAgIGFjdGlvblNhbml0aXplcjogKGFjdGlvbjogQWN0aW9uVHlwZXMpID0+IHtcbiAgICAgIGlmICghKCdlbmRwb2ludCcgaW4gYWN0aW9uKSkgcmV0dXJuIGFjdGlvbjtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFjdGlvbixcbiAgICAgICAgZW5kcG9pbnQ6IHNlcmlhbGl6ZUVuZHBvaW50KGFjdGlvbi5lbmRwb2ludCksXG4gICAgICB9O1xuICAgIH0sXG4gICAgc2VyaWFsaXplOiB7XG4gICAgICBvcHRpb25zOiB1bmRlZmluZWQsXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgcmVwbGFjZXI6XG4gICAgICAgIEhBU0lOVEwgP1xuICAgICAgICAgIChrZXk6IHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgdmFsdWU6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAgICAgICB0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgICBpc0Zpbml0ZSh2YWx1ZSkgJiZcbiAgICAgICAgICAgICAgKGtleSA9PT0gJ2RhdGUnIHx8IGtleS5lbmRzV2l0aCgnQXQnKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnLCB7XG4gICAgICAgICAgICAgICAgaG91cjogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgIG1pbnV0ZTogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgIHNlY29uZDogJ251bWVyaWMnLFxuICAgICAgICAgICAgICAgIGZyYWN0aW9uYWxTZWNvbmREaWdpdHM6IDMsXG4gICAgICAgICAgICAgIH0pLmZvcm1hdCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9LFxuICB9O1xufVxuXG4vKiogSW50ZWdyYXRlcyB3aXRoIGh0dHBzOi8vZ2l0aHViLmNvbS9yZWR1eGpzL3JlZHV4LWRldnRvb2xzXG4gKlxuICogT3B0aW9uczogaHR0cHM6Ly9naXRodWIuY29tL3JlZHV4anMvcmVkdXgtZGV2dG9vbHMvYmxvYi9tYWluL2V4dGVuc2lvbi9kb2NzL0FQSS9Bcmd1bWVudHMubWRcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9kb2NzL2FwaS9EZXZUb29sc01hbmFnZXJcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGV2VG9vbHNNYW5hZ2VyIGltcGxlbWVudHMgTWFuYWdlciB7XG4gIGRlY2xhcmUgbWlkZGxld2FyZTogTWlkZGxld2FyZTtcbiAgZGVjbGFyZSBwcm90ZWN0ZWQgZGV2VG9vbHM6IHVuZGVmaW5lZCB8IGFueTtcbiAgcHJvdGVjdGVkIHN0YXJ0ZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIGFjdGlvbnM6IFtBY3Rpb25UeXBlcywgU3RhdGU8dW5rbm93bj5dW10gPSBbXTtcbiAgZGVjbGFyZSBwcm90ZWN0ZWQgY29udHJvbGxlcjogQ29udHJvbGxlcjtcbiAgZGVjbGFyZSBza2lwTG9nZ2luZz86IChhY3Rpb246IEFjdGlvblR5cGVzKSA9PiBib29sZWFuO1xuICBtYXhCdWZmZXJMZW5ndGggPSAxMDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY29uZmlnPzogRGV2VG9vbHNDb25maWcsXG4gICAgc2tpcExvZ2dpbmc/OiAoYWN0aW9uOiBBY3Rpb25UeXBlcykgPT4gYm9vbGVhbixcbiAgKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB0aGlzLmRldlRvb2xzID1cbiAgICAgIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAod2luZG93IGFzIGFueSkuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXyAmJlxuICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18uY29ubmVjdCh7XG4gICAgICAgIC4uLkRFRkFVTFRfQ09ORklHLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICB9KTtcbiAgICAvLyB3ZSBjdXQgaXQgaW4gaGFsZiBzbyB3ZSBzaG91bGQgZG91YmxlIHNvIHdlIGRvbid0IGxvc2VcbiAgICBpZiAoY29uZmlnPy5tYXhBZ2UpIHRoaXMubWF4QnVmZmVyTGVuZ3RoID0gY29uZmlnLm1heEFnZSAqIDI7XG4gICAgaWYgKHNraXBMb2dnaW5nKSB0aGlzLnNraXBMb2dnaW5nID0gc2tpcExvZ2dpbmc7XG4gIH1cblxuICBzdGF0aWMge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHRoaXMucHJvdG90eXBlLm1pZGRsZXdhcmUgPSBmdW5jdGlvbiAoY29udHJvbGxlcikge1xuICAgICAgICBpZiAoIXRoaXMuZGV2VG9vbHMpIHJldHVybiBuZXh0ID0+IGFjdGlvbiA9PiBuZXh0KGFjdGlvbik7XG4gICAgICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG4gICAgICAgIGNvbnN0IHJlZHVjZXIgPSBjcmVhdGVSZWR1Y2VyKGNvbnRyb2xsZXIgYXMgYW55KTtcbiAgICAgICAgbGV0IHN0YXRlID0gY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgICAgICByZXR1cm4gbmV4dCA9PiBhY3Rpb24gPT4ge1xuICAgICAgICAgIGNvbnN0IHNob3VsZFNraXAgPSB0aGlzLnNraXBMb2dnaW5nPy4oYWN0aW9uKTtcbiAgICAgICAgICBjb25zdCByZXQgPSBuZXh0KGFjdGlvbik7XG4gICAgICAgICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgICAgICAgLy8gd2UgdHJhY2sgc3RhdGUgY2hhbmdlcyBoZXJlIHNpbmNlIGdldFN0YXRlKCkgd2lsbCBvbmx5IHVwZGF0ZSBhZnRlciBhIGJhdGNoIGNvbW1pdFxuICAgICAgICAgICAgc3RhdGUgPSByZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZSA9IGNvbnRyb2xsZXIuZ2V0U3RhdGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0LnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNob3VsZFNraXApIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uKGFjdGlvbiwgc3RhdGUub3B0aW1pc3RpYy5yZWR1Y2UocmVkdWNlciwgc3RhdGUpKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm90b3R5cGUubWlkZGxld2FyZSA9ICgpID0+IG5leHQgPT4gYWN0aW9uID0+IG5leHQoYWN0aW9uKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVBY3Rpb24oYWN0aW9uOiBhbnksIHN0YXRlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5zdGFydGVkKSB7XG4gICAgICB0aGlzLmRldlRvb2xzLnNlbmQoYWN0aW9uLCBzdGF0ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGF2b2lkIHRoaXMgZ2V0dGluZyB0b28gYmlnIGluIGNhc2UgdGhpcyBpcyBsb25nIHJ1bm5pbmdcbiAgICAgIC8vIHdlIGN1dCBpbiBoYWxmIHNvIHdlIGFyZW4ndCBjb25zdGFudGx5IHJlYWxsb2NhdGluZ1xuICAgICAgaWYgKHRoaXMuYWN0aW9ucy5sZW5ndGggPiB0aGlzLm1heEJ1ZmZlckxlbmd0aClcbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zLnNsaWNlKHRoaXMubWF4QnVmZmVyTGVuZ3RoIC8gMik7XG4gICAgICAvLyBxdWV1ZSBhY3Rpb25zXG4gICAgICB0aGlzLmFjdGlvbnMucHVzaChbYWN0aW9uLCBzdGF0ZV0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxsZWQgd2hlbiBpbml0aWFsIHN0YXRlIGlzIHJlYWR5ICovXG4gIGluaXQoc3RhdGU6IFN0YXRlPGFueT4pIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0aGlzLmRldlRvb2xzKSB7XG4gICAgICB0aGlzLmRldlRvb2xzLmluaXQoc3RhdGUpO1xuICAgICAgdGhpcy5kZXZUb29scy5zdWJzY3JpYmUoKG1zZzogYW55KSA9PiB7XG4gICAgICAgIHN3aXRjaCAobXNnLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdTVEFSVCc6XG4gICAgICAgICAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoW2FjdGlvbiwgc3RhdGVdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBY3Rpb24oYWN0aW9uLCBzdGF0ZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1NUT1AnOlxuICAgICAgICAgICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdESVNQQVRDSCc6XG4gICAgICAgICAgICBpZiAobXNnLnBheWxvYWQudHlwZSA9PT0gJ1JFU0VUJykge1xuICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIucmVzZXRFbnRpcmVTdG9yZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbnN1cmVzIGFsbCBzdWJzY3JpcHRpb25zIGFyZSBjbGVhbmVkIHVwLiAqL1xuICBjbGVhbnVwKCkge31cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFHQSxPQUFPQSxhQUFhLE1BQU0sbUNBQW1DO0FBSzdELElBQUlDLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFFdkIsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7RUFBQSxJQUFBQyxvQkFBQTtFQUN6QyxNQUFNQyxpQkFBaUIsR0FBRyxDQUN4QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixRQUFRLENBQ1Q7RUFFRCxTQUFTQyxpQkFBaUJBLENBQUNDLFFBQTJCLEVBQUU7SUFBQSxJQUFBQyxPQUFBLEVBQUFDLGdCQUFBO0lBQ3RELE1BQU1DLE1BQVcsR0FBRztNQUNsQkMsSUFBSSxFQUFFSixRQUFRLENBQUNJLElBQUk7TUFDbkJDLE1BQU0sR0FBQUosT0FBQSxJQUFBQyxnQkFBQSxHQUFHRixRQUFRLENBQUNLLE1BQU0sYUFBaEJILGdCQUFBLENBQTBCSSxNQUFNLG9CQUFoQ0osZ0JBQUEsQ0FBMEJJLE1BQU0sQ0FBRyxDQUFDLFlBQUFMLE9BQUEsR0FBSUQsUUFBUSxDQUFDSyxNQUFNO01BQy9ERSxVQUFVLEVBQUVQLFFBQVEsQ0FBQ087SUFDdkIsQ0FBQztJQUNEVCxpQkFBaUIsQ0FBQ1UsT0FBTyxDQUFDQyxHQUFHLElBQUk7TUFDL0IsSUFBSUEsR0FBRyxJ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
|
|
174
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVSZWR1Y2VyIiwiREVGQVVMVF9DT05GSUciLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfZ2xvYmFsVGhpcyRkb2N1bWVudCIsImV4dHJhRW5kcG9pbnRLZXlzIiwic2VyaWFsaXplRW5kcG9pbnQiLCJlbmRwb2ludCIsIl90b0pTT04iLCJfZW5kcG9pbnQkc2NoZW1hIiwic2VyaWFsIiwibmFtZSIsInNjaGVtYSIsInRvSlNPTiIsInNpZGVFZmZlY3QiLCJmb3JFYWNoIiwia2V5IiwiSEFTSU5UTCIsIkludGwiLCJnbG9iYWxUaGlzIiwiZG9jdW1lbnQiLCJ0aXRsZSIsImF1dG9QYXVzZSIsImZlYXR1cmVzIiwicGF1c2UiLCJsb2NrIiwicGVyc2lzdCIsImV4cG9ydCIsImltcG9ydCIsImp1bXAiLCJza2lwIiwicmVvcmRlciIsImRpc3BhdGNoIiwidGVzdCIsImFjdGlvblNhbml0aXplciIsImFjdGlvbiIsIl9leHRlbmRzIiwic2VyaWFsaXplIiwib3B0aW9ucyIsInVuZGVmaW5lZCIsInJlcGxhY2VyIiwidmFsdWUiLCJpc0Zpbml0ZSIsImVuZHNXaXRoIiwiRGF0ZVRpbWVGb3JtYXQiLCJob3VyIiwibWludXRlIiwic2Vjb25kIiwiZnJhY3Rpb25hbFNlY29uZERpZ2l0cyIsImZvcm1hdCIsIkRldlRvb2xzTWFuYWdlciIsImNvbnN0cnVjdG9yIiwiY29uZmlnIiwic2tpcExvZ2dpbmciLCJfb3B0aW9ucyRuYW1lIiwiX2dsb2JhbFRoaXMkZG9jdW1lbnQyIiwic3RhcnRlZCIsImFjdGlvbnMiLCJtYXhCdWZmZXJMZW5ndGgiLCJkZXZ0b29sc05hbWUiLCJkZXZUb29scyIsIndpbmRvdyIsIl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18iLCJjb25uZWN0IiwibWF4QWdlIiwiaGFuZGxlQWN0aW9uIiwic3RhdGUiLCJzZW5kIiwibGVuZ3RoIiwic2xpY2UiLCJwdXNoIiwiaW5pdCIsIl9yZWYiLCJfcmVmJF9fRENfQ09OVFJPTExFUlMiLCJfX0RDX0NPTlRST0xMRVJTX18iLCJNYXAiLCJzZXQiLCJjb250cm9sbGVyIiwic3Vic2NyaWJlIiwibXNnIiwidHlwZSIsInBheWxvYWQiLCJyZXNldEVudGlyZVN0b3JlIiwiY2xlYW51cCIsIm1hcCIsImdldCIsImRlbGV0ZSIsIl9EZXZUb29sc01hbmFnZXIiLCJwcm90b3R5cGUiLCJtaWRkbGV3YXJlIiwibmV4dCIsInJlZHVjZXIiLCJnZXRTdGF0ZSIsIl90aGlzJHNraXBMb2dnaW5nIiwic2hvdWxkU2tpcCIsImNhbGwiLCJyZXQiLCJ0aGVuIiwib3B0aW1pc3RpYyIsInJlZHVjZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL0RldnRvb2xzTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERldlRvb2xzQ29uZmlnIH0gZnJvbSAnLi9kZXZ0b29sc1R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgQ29udHJvbGxlciwgRW5kcG9pbnRJbnRlcmZhY2UgfSBmcm9tICcuLi9pbmRleC5qcyc7XG5pbXBvcnQgdHlwZSB7IE1pZGRsZXdhcmUgfSBmcm9tICcuLi9taWRkbGV3YXJlVHlwZXMuanMnO1xuaW1wb3J0IGNyZWF0ZVJlZHVjZXIgZnJvbSAnLi4vc3RhdGUvcmVkdWNlci9jcmVhdGVSZWR1Y2VyLmpzJztcbmltcG9ydCB0eXBlIHsgTWFuYWdlciwgU3RhdGUsIEFjdGlvblR5cGVzIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSB7IERldlRvb2xzQ29uZmlnIH07XG5cbmxldCBERUZBVUxUX0NPTkZJRyA9IHt9O1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCBleHRyYUVuZHBvaW50S2V5cyA9IFtcbiAgICAnZGF0YUV4cGlyeUxlbmd0aCcsXG4gICAgJ2Vycm9yRXhwaXJ5TGVuZ3RoJyxcbiAgICAnZXJyb3JQb2xpY3knLFxuICAgICdpbnZhbGlkSWZTdGFsZScsXG4gICAgJ3BvbGxGcmVxdWVuY3knLFxuICAgICdnZXRPcHRpbWlzdGljUmVzcG9uc2UnLFxuICAgICd1cGRhdGUnLFxuICBdO1xuXG4gIGZ1bmN0aW9uIHNlcmlhbGl6ZUVuZHBvaW50KGVuZHBvaW50OiBFbmRwb2ludEludGVyZmFjZSkge1xuICAgIGNvbnN0IHNlcmlhbDogYW55ID0ge1xuICAgICAgbmFtZTogZW5kcG9pbnQubmFtZSxcbiAgICAgIHNjaGVtYTogKGVuZHBvaW50LnNjaGVtYSBhcyBhbnkpPy50b0pTT04/LigpID8/IGVuZHBvaW50LnNjaGVtYSxcbiAgICAgIHNpZGVFZmZlY3Q6IGVuZHBvaW50LnNpZGVFZmZlY3QsXG4gICAgfTtcbiAgICBleHRyYUVuZHBvaW50S2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBpZiAoa2V5IGluIGVuZHBvaW50KVxuICAgICAgICBzZXJpYWxba2V5XSA9IGVuZHBvaW50W2tleSBhcyBrZXlvZiBFbmRwb2ludEludGVyZmFjZV07XG4gICAgfSk7XG4gICAgcmV0dXJuIHNlcmlhbDtcbiAgfVxuXG4gIGNvbnN0IEhBU0lOVEwgPSB0eXBlb2YgSW50bCAhPT0gJ3VuZGVmaW5lZCc7XG4gIERFRkFVTFRfQ09ORklHID0ge1xuICAgIG5hbWU6IGBEYXRhIENsaWVudDogJHtnbG9iYWxUaGlzLmRvY3VtZW50Py50aXRsZX1gLFxuICAgIGF1dG9QYXVzZTogdHJ1ZSxcbiAgICBmZWF0dXJlczoge1xuICAgICAgcGF1c2U6IHRydWUsIC8vIHN0YXJ0L3BhdXNlIHJlY29yZGluZyBvZiBkaXNwYXRjaGVkIGFjdGlvbnNcbiAgICAgIGxvY2s6IHRydWUsIC8vIGxvY2svdW5sb2NrIGRpc3BhdGNoaW5nIGFjdGlvbnMgYW5kIHNpZGUgZWZmZWN0c1xuICAgICAgcGVyc2lzdDogZmFsc2UsIC8vIHBlcnNpc3Qgc3RhdGVzIG9uIHBhZ2UgcmVsb2FkaW5nXG4gICAgICBleHBvcnQ6IHRydWUsIC8vIGV4cG9ydCBoaXN0b3J5IG9mIGFjdGlvbnMgaW4gYSBmaWxlXG4gICAgICBpbXBvcnQ6ICdjdXN0b20nLCAvLyBpbXBvcnQgaGlzdG9yeSBvZiBhY3Rpb25zIGZyb20gYSBmaWxlXG4gICAgICBqdW1wOiB0cnVlLCAvLyBqdW1wIGJhY2sgYW5kIGZvcnRoICh0aW1lIHRyYXZlbGxpbmcpXG4gICAgICBza2lwOiB0cnVlLCAvLyBza2lwIChjYW5jZWwpIGFjdGlvbnNcbiAgICAgIHJlb3JkZXI6IHRydWUsIC8vIGRyYWcgYW5kIGRyb3AgYWN0aW9ucyBpbiB0aGUgaGlzdG9yeSBsaXN0XG4gICAgICBkaXNwYXRjaDogZmFsc2UsIC8vIGRpc3BhdGNoIGN1c3RvbSBhY3Rpb25zIG9yIGFjdGlvbiBjcmVhdG9yc1xuICAgICAgdGVzdDogZmFsc2UsIC8vIGdlbmVyYXRlIHRlc3RzIGZvciB0aGUgc2VsZWN0ZWQgYWN0aW9uc1xuICAgIH0sXG4gICAgYWN0aW9uU2FuaXRpemVyOiAoYWN0aW9uOiBBY3Rpb25UeXBlcykgPT4ge1xuICAgICAgaWYgKCEoJ2VuZHBvaW50JyBpbiBhY3Rpb24pKSByZXR1cm4gYWN0aW9uO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWN0aW9uLFxuICAgICAgICBlbmRwb2ludDogc2VyaWFsaXplRW5kcG9pbnQoYWN0aW9uLmVuZHBvaW50KSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBzZXJpYWxpemU6IHtcbiAgICAgIG9wdGlvbnM6IHVuZGVmaW5lZCxcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICByZXBsYWNlcjpcbiAgICAgICAgSEFTSU5UTCA/XG4gICAgICAgICAgKGtleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sLCB2YWx1ZTogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmXG4gICAgICAgICAgICAgIHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICAgIGlzRmluaXRlKHZhbHVlKSAmJlxuICAgICAgICAgICAgICAoa2V5ID09PSAnZGF0ZScgfHwga2V5LmVuZHNXaXRoKCdBdCcpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBJbnRsLkRhdGVUaW1lRm9ybWF0KCdlbi1VUycsIHtcbiAgICAgICAgICAgICAgICBob3VyOiAnbnVtZXJpYycsXG4gICAgICAgICAgICAgICAgbWludXRlOiAnbnVtZXJpYycsXG4gICAgICAgICAgICAgICAgc2Vjb25kOiAnbnVtZXJpYycsXG4gICAgICAgICAgICAgICAgZnJhY3Rpb25hbFNlY29uZERpZ2l0czogMyxcbiAgICAgICAgICAgICAgfSkuZm9ybWF0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0sXG4gIH07XG59XG5cbi8qKiBJbnRlZ3JhdGVzIHdpdGggaHR0cHM6Ly9naXRodWIuY29tL3JlZHV4anMvcmVkdXgtZGV2dG9vbHNcbiAqXG4gKiBPcHRpb25zOiBodHRwczovL2dpdGh1Yi5jb20vcmVkdXhqcy9yZWR1eC1kZXZ0b29scy9ibG9iL21haW4vZXh0ZW5zaW9uL2RvY3MvQVBJL0FyZ3VtZW50cy5tZFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL2RvY3MvYXBpL0RldlRvb2xzTWFuYWdlclxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEZXZUb29sc01hbmFnZXIgaW1wbGVtZW50cyBNYW5hZ2VyIHtcbiAgZGVjbGFyZSBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlO1xuICBkZWNsYXJlIHByb3RlY3RlZCBkZXZUb29sczogdW5kZWZpbmVkIHwgYW55O1xuICBwcm90ZWN0ZWQgc3RhcnRlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgYWN0aW9uczogW0FjdGlvblR5cGVzLCBTdGF0ZTx1bmtub3duPl1bXSA9IFtdO1xuICBkZWNsYXJlIHByb3RlY3RlZCBjb250cm9sbGVyOiBDb250cm9sbGVyO1xuICBkZWNsYXJlIHNraXBMb2dnaW5nPzogKGFjdGlvbjogQWN0aW9uVHlwZXMpID0+IGJvb2xlYW47XG4gIGRlY2xhcmUgZGV2dG9vbHNOYW1lOiBzdHJpbmc7XG4gIG1heEJ1ZmZlckxlbmd0aCA9IDEwMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb25maWc/OiBEZXZUb29sc0NvbmZpZyxcbiAgICBza2lwTG9nZ2luZz86IChhY3Rpb246IEFjdGlvblR5cGVzKSA9PiBib29sZWFuLFxuICApIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLkRFRkFVTFRfQ09ORklHLCAuLi5jb25maWcgfTtcbiAgICB0aGlzLmRldnRvb2xzTmFtZSA9XG4gICAgICBvcHRpb25zLm5hbWUgPz8gYERhdGEgQ2xpZW50OiAke2dsb2JhbFRoaXMuZG9jdW1lbnQ/LnRpdGxlfWA7XG4gICAgdGhpcy5kZXZUb29scyA9XG4gICAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgKHdpbmRvdyBhcyBhbnkpLl9fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18gJiZcbiAgICAgICh3aW5kb3cgYXMgYW55KS5fX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fLmNvbm5lY3Qob3B0aW9ucyk7XG4gICAgLy8gd2UgY3V0IGl0IGluIGhhbGYgc28gd2Ugc2hvdWxkIGRvdWJsZSBzbyB3ZSBkb24ndCBsb3NlXG4gICAgaWYgKGNvbmZpZz8ubWF4QWdlKSB0aGlzLm1heEJ1ZmZlckxlbmd0aCA9IGNvbmZpZy5tYXhBZ2UgKiAyO1xuICAgIGlmIChza2lwTG9nZ2luZykgdGhpcy5za2lwTG9nZ2luZyA9IHNraXBMb2dnaW5nO1xuICB9XG5cbiAgc3RhdGljIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB0aGlzLnByb3RvdHlwZS5taWRkbGV3YXJlID0gZnVuY3Rpb24gKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcbiAgICAgICAgaWYgKCF0aGlzLmRldlRvb2xzKSByZXR1cm4gbmV4dCA9PiBhY3Rpb24gPT4gbmV4dChhY3Rpb24pO1xuICAgICAgICBjb25zdCByZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihjb250cm9sbGVyIGFzIGFueSk7XG4gICAgICAgIGxldCBzdGF0ZSA9IGNvbnRyb2xsZXIuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIG5leHQgPT4gYWN0aW9uID0+IHtcbiAgICAgICAgICBjb25zdCBzaG91bGRTa2lwID0gdGhpcy5za2lwTG9nZ2luZz8uKGFjdGlvbik7XG4gICAgICAgICAgY29uc3QgcmV0ID0gbmV4dChhY3Rpb24pO1xuICAgICAgICAgIGlmICh0aGlzLnN0YXJ0ZWQpIHtcbiAgICAgICAgICAgIC8vIHdlIHRyYWNrIHN0YXRlIGNoYW5nZXMgaGVyZSBzaW5jZSBnZXRTdGF0ZSgpIHdpbGwgb25seSB1cGRhdGUgYWZ0ZXIgYSBiYXRjaCBjb21taXRcbiAgICAgICAgICAgIHN0YXRlID0gcmVkdWNlcihzdGF0ZSwgYWN0aW9uKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGUgPSBjb250cm9sbGVyLmdldFN0YXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChzaG91bGRTa2lwKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFjdGlvbihhY3Rpb24sIHN0YXRlLm9wdGltaXN0aWMucmVkdWNlKHJlZHVjZXIsIHN0YXRlKSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvdG90eXBlLm1pZGRsZXdhcmUgPSAoKSA9PiBuZXh0ID0+IGFjdGlvbiA9PiBuZXh0KGFjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQWN0aW9uKGFjdGlvbjogYW55LCBzdGF0ZTogYW55KSB7XG4gICAgaWYgKHRoaXMuc3RhcnRlZCkge1xuICAgICAgdGhpcy5kZXZUb29scy5zZW5kKGFjdGlvbiwgc3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBhdm9pZCB0aGlzIGdldHRpbmcgdG9vIGJpZyBpbiBjYXNlIHRoaXMgaXMgbG9uZyBydW5uaW5nXG4gICAgICAvLyB3ZSBjdXQgaW4gaGFsZiBzbyB3ZSBhcmVuJ3QgY29uc3RhbnRseSByZWFsbG9jYXRpbmdcbiAgICAgIGlmICh0aGlzLmFjdGlvbnMubGVuZ3RoID4gdGhpcy5tYXhCdWZmZXJMZW5ndGgpXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5zbGljZSh0aGlzLm1heEJ1ZmZlckxlbmd0aCAvIDIpO1xuICAgICAgLy8gcXVldWUgYWN0aW9uc1xuICAgICAgdGhpcy5hY3Rpb25zLnB1c2goW2FjdGlvbiwgc3RhdGVdKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gaW5pdGlhbCBzdGF0ZSBpcyByZWFkeSAqL1xuICBpbml0KHN0YXRlOiBTdGF0ZTxhbnk+KSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICgoZ2xvYmFsVGhpcyBhcyBhbnkpLl9fRENfQ09OVFJPTExFUlNfXyA/Pz0gbmV3IE1hcCgpKS5zZXQoXG4gICAgICAgIHRoaXMuZGV2dG9vbHNOYW1lLFxuICAgICAgICB0aGlzLmNvbnRyb2xsZXIsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0aGlzLmRldlRvb2xzKSB7XG4gICAgICB0aGlzLmRldlRvb2xzLmluaXQoc3RhdGUpO1xuICAgICAgdGhpcy5kZXZUb29scy5zdWJzY3JpYmUoKG1zZzogYW55KSA9PiB7XG4gICAgICAgIHN3aXRjaCAobXNnLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdTVEFSVCc6XG4gICAgICAgICAgICB0aGlzLnN0YXJ0ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoW2FjdGlvbiwgc3RhdGVdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVBY3Rpb24oYWN0aW9uLCBzdGF0ZSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB0aGlzLmFjdGlvbnMgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ1NUT1AnOlxuICAgICAgICAgICAgdGhpcy5zdGFydGVkID0gZmFsc2U7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdESVNQQVRDSCc6XG4gICAgICAgICAgICBpZiAobXNnLnBheWxvYWQudHlwZSA9PT0gJ1JFU0VUJykge1xuICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXIucmVzZXRFbnRpcmVTdG9yZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBFbnN1cmVzIGFsbCBzdWJzY3JpcHRpb25zIGFyZSBjbGVhbmVkIHVwLiAqL1xuICBjbGVhbnVwKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zdCBtYXA6IE1hcDxzdHJpbmcsIENvbnRyb2xsZXI+IHwgdW5kZWZpbmVkID0gKGdsb2JhbFRoaXMgYXMgYW55KVxuICAgICAgICAuX19EQ19DT05UUk9MTEVSU19fO1xuICAgICAgaWYgKG1hcD8uZ2V0KHRoaXMuZGV2dG9vbHNOYW1lKSA9PT0gdGhpcy5jb250cm9sbGVyKSB7XG4gICAgICAgIG1hcC5kZWxldGUodGhpcy5kZXZ0b29sc05hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUdBLE9BQU9BLGFBQWEsTUFBTSxtQ0FBbUM7QUFLN0QsSUFBSUMsY0FBYyxHQUFHLENBQUMsQ0FBQztBQUV2QixJQUFJQyxPQUFPLENBQUNDLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtFQUFBLElBQUFDLG9CQUFBO0VBQ3pDLE1BQU1DLGlCQUFpQixHQUFHLENBQ3hCLGtCQUFrQixFQUNsQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFFBQVEsQ0FDVDtFQUVELFNBQVNDLGlCQUFpQkEsQ0FBQ0MsUUFBMkIsRUFBRTtJQUFBLElBQUFDLE9BQUEsRUFBQUMsZ0JBQUE7SUFDdEQsTUFBTUMsTUFBVyxHQUFHO01BQ2xCQyxJQUFJLEVBQUVKLFFBQVEsQ0FBQ0ksSUFBSTtNQUNuQkMsTUFBTSxHQUFBSixPQUFBLElBQUFDLGdCQUFBLEdBQUdGLFFBQVEsQ0FBQ0ssTUFBTSxhQUFoQkgsZ0JBQUEsQ0FBMEJJLE1BQU0sb0JBQWhDSixnQkFBQSxDQUEwQkksTUFBTSxDQUFHLENBQUMsWUFBQUwsT0FBQSxHQUFJRCxRQUFRLENBQUNLLE1BQU07TUFDL0RFLFVBQVUsRUFBRVAsUUFBUSxDQUFDTztJQUN2QixDQUFDO0lBQ0RULGlCQUFpQixDQUFDVSxPQUFPLENBQUNDLEdBQUcsSUFBSTtNQUMvQixJQUFJQSxHQUFHLElBQUlULFFBQVEsRUFDakJHLE1BQU0sQ0FBQ00sR0FBRyxDQUFDLEdBQUdULFFBQVEsQ0FBQ1MsR0FBRyxDQUE0QjtJQUMxRCxDQUFDLENBQUM7SUFDRixPQUFPTixNQUFNO0VBQ2Y7RUFFQSxNQUFNTyxPQUFPLEdBQUcsT0FBT0MsSUFBSSxLQUFLLFdBQVc7RUFDM0NsQixjQUFjLEdBQUc7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
|
package/legacy/state/GCPolicy.js
CHANGED
|
@@ -25,6 +25,9 @@ export class GCPolicy {
|
|
|
25
25
|
timeout: 1000
|
|
26
26
|
});
|
|
27
27
|
}, this.options.intervalMS);
|
|
28
|
+
if (typeof this.intervalId === 'object' && 'unref' in this.intervalId) {
|
|
29
|
+
this.intervalId.unref();
|
|
30
|
+
}
|
|
28
31
|
}
|
|
29
32
|
cleanup() {
|
|
30
33
|
clearInterval(this.intervalId);
|
|
@@ -156,4 +159,4 @@ export class ImmortalGCPolicy {
|
|
|
156
159
|
return () => () => undefined;
|
|
157
160
|
}
|
|
158
161
|
}
|
|
159
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHQyIsIkdDUG9saWN5IiwiY29uc3RydWN0b3IiLCJpbnRlcnZhbE1TIiwiZXhwaXJ5TXVsdGlwbGllciIsImV4cGlyZXNBdCIsImVuZHBvaW50Q291bnQiLCJNYXAiLCJlbnRpdHlDb3VudCIsImVuZHBvaW50c1EiLCJTZXQiLCJlbnRpdGllc1EiLCJiaW5kIiwib3B0aW9ucyIsImluaXQiLCJjb250cm9sbGVyIiwiaW50ZXJ2YWxJZCIsInNldEludGVydmFsIiwiaWRsZUNhbGxiYWNrIiwicnVuU3dlZXAiLCJ0aW1lb3V0IiwiY2xlYW51cCIsImNsZWFySW50ZXJ2YWwiLCJjcmVhdGVDb3VudFJlZiIsImtleSIsInBhdGhzIiwiX3RoaXMkZW5kcG9pbnRDb3VudCRnIiwic2V0IiwiZ2V0IiwiZm9yRWFjaCIsInBhdGgiLCJfaW5zdGFuY2VDb3VudCRnZXQiLCJwayIsImhhcyIsImluc3RhbmNlQ291bnQiLCJjdXJyZW50Q291bnQiLCJ1bmRlZmluZWQiLCJkZWxldGUiLCJhZGQiLCJwdXNoIiwiZmV0Y2hlZEF0IiwiTWF0aCIsIm1heCIsInN0YXRlIiwiZ2V0U3RhdGUiLCJlbnRpdGllcyIsImVuZHBvaW50cyIsIm5vdyIsIkRhdGUiLCJuZXh0RW5kcG9pbnRzUSIsIl9zdGF0ZSRtZXRhJGtleSIsIm1ldGEiLCJkYXRlIiwibmV4dEVudGl0aWVzUSIsIl90aGlzJGVudGl0eUNvdW50JGdldCIsIl9zdGF0ZSRlbnRpdGllc01ldGEkcCIsIl9zdGF0ZSRlbnRpdGllc01ldGEkcDIiLCJlbnRpdGllc01ldGEiLCJsZW5ndGgiLCJkaXNwYXRjaCIsInR5cGUiLCJjYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJJbW1vcnRhbEdDUG9saWN5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0YXRlL0dDUG9saWN5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRW50aXR5UGF0aCB9IGZyb20gJ0BkYXRhLWNsaWVudC9ub3JtYWxpenInO1xuXG5pbXBvcnQgeyBHQyB9IGZyb20gJy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCBDb250cm9sbGVyIGZyb20gJy4uL2NvbnRyb2xsZXIvQ29udHJvbGxlci5qcyc7XG5cbmV4cG9ydCBjbGFzcyBHQ1BvbGljeSBpbXBsZW1lbnRzIEdDSW50ZXJmYWNlIHtcbiAgcHJvdGVjdGVkIGVuZHBvaW50Q291bnQgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICBwcm90ZWN0ZWQgZW50aXR5Q291bnQgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgbnVtYmVyPj4oKTtcbiAgcHJvdGVjdGVkIGVuZHBvaW50c1EgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcHJvdGVjdGVkIGVudGl0aWVzUTogRW50aXR5UGF0aFtdID0gW107XG5cbiAgZGVjbGFyZSBwcm90ZWN0ZWQgaW50ZXJ2YWxJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+O1xuICBkZWNsYXJlIHByb3RlY3RlZCBjb250cm9sbGVyOiBDb250cm9sbGVyO1xuICBkZWNsYXJlIHByb3RlY3RlZCBvcHRpb25zOiBSZXF1aXJlZDxPbWl0PEdDT3B0aW9ucywgJ2V4cGlyZXNBdCc+PjtcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgLy8gZXZlcnkgNSBtaW5cbiAgICBpbnRlcnZhbE1TID0gNjAgKiAxMDAwICogNSxcbiAgICBleHBpcnlNdWx0aXBsaWVyID0gMixcbiAgICBleHBpcmVzQXQsXG4gIH06IEdDT3B0aW9ucyA9IHt9KSB7XG4gICAgaWYgKGV4cGlyZXNBdCkge1xuICAgICAgdGhpcy5leHBpcmVzQXQgPSBleHBpcmVzQXQuYmluZCh0aGlzKTtcbiAgICB9XG4gICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgaW50ZXJ2YWxNUyxcbiAgICAgIGV4cGlyeU11bHRpcGxpZXIsXG4gICAgfTtcbiAgfVxuXG4gIGluaXQoY29udHJvbGxlcjogQ29udHJvbGxlcikge1xuICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXI7XG5cbiAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLmlkbGVDYWxsYmFjaygoKSA9PiB0aGlzLnJ1blN3ZWVwKCksIHsgdGltZW91dDogMTAwMCB9KTtcbiAgICB9LCB0aGlzLm9wdGlvbnMuaW50ZXJ2YWxNUyk7XG4gIH1cblxuICBjbGVhbnVwKCkge1xuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgfVxuXG4gIGNyZWF0ZUNvdW50UmVmKHsga2V5LCBwYXRocyA9IFtdIH06IHsga2V5Pzogc3RyaW5nOyBwYXRocz86IEVudGl0eVBhdGhbXSB9KSB7XG4gICAgLy8gaW5jcmVtZW50XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChrZXkpXG4gICAgICAgIHRoaXMuZW5kcG9pbnRDb3VudC5zZXQoa2V5LCAodGhpcy5lbmRwb2ludENvdW50LmdldChrZXkpID8/IDApICsgMSk7XG4gICAgICBwYXRocy5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgICBjb25zdCB7IGtleSwgcGsgfSA9IHBhdGg7XG4gICAgICAgIGlmICghdGhpcy5lbnRpdHlDb3VudC5oYXMoa2V5KSkge1xuICAgICAgICAgIHRoaXMuZW50aXR5Q291bnQuc2V0KGtleSwgbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5zdGFuY2VDb3VudCA9IHRoaXMuZW50aXR5Q291bnQuZ2V0KGtleSkhO1xuICAgICAgICBpbnN0YW5jZUNvdW50LnNldChwaywgKGluc3RhbmNlQ291bnQuZ2V0KHBrKSA/PyAwKSArIDEpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIGRlY3JlbWVudFxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRDb3VudCA9IHRoaXMuZW5kcG9pbnRDb3VudC5nZXQoa2V5KSE7XG4gICAgICAgICAgaWYgKGN1cnJlbnRDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudENvdW50IDw9IDEpIHtcbiAgICAgICAgICAgICAgdGhpcy5lbmRwb2ludENvdW50LmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAvLyBxdWV1ZSBmb3IgY2xlYW51cFxuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50c1EuYWRkKGtleSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50Q291bnQuc2V0KGtleSwgY3VycmVudENvdW50IC0gMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHBhdGhzLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICAgICAgY29uc3QgeyBrZXksIHBrIH0gPSBwYXRoO1xuICAgICAgICAgIGlmICghdGhpcy5lbnRpdHlDb3VudC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBpbnN0YW5jZUNvdW50ID0gdGhpcy5lbnRpdHlDb3VudC5nZXQoa2V5KSE7XG4gICAgICAgICAgY29uc3QgZW50aXR5Q291bnQgPSBpbnN0YW5jZUNvdW50LmdldChwaykhO1xuICAgICAgICAgIGlmIChlbnRpdHlDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoZW50aXR5Q291bnQgPD0gMSkge1xuICAgICAgICAgICAgICBpbnN0YW5jZUNvdW50LmRlbGV0ZShwayk7XG4gICAgICAgICAgICAgIC8vIHF1ZXVlIGZvciBjbGVhbnVwXG4gICAgICAgICAgICAgIHRoaXMuZW50aXRpZXNRLnB1c2gocGF0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpbnN0YW5jZUNvdW50LnNldChwaywgZW50aXR5Q291bnQgLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGV4cGlyZXNBdCh7XG4gICAgZmV0Y2hlZEF0LFxuICAgIGV4cGlyZXNBdCxcbiAgfToge1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGRhdGU6IG51bWJlcjtcbiAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgfSk6IG51bWJlciB7XG4gICAgcmV0dXJuIChcbiAgICAgIE1hdGgubWF4KFxuICAgICAgICAoZXhwaXJlc0F0IC0gZmV0Y2hlZEF0KSAqIHRoaXMub3B0aW9ucy5leHBpcnlNdWx0aXBsaWVyLFxuICAgICAgICAxMjAwMDAsXG4gICAgICApICsgZmV0Y2hlZEF0XG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBydW5Td2VlcCgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuY29udHJvbGxlci5nZXRTdGF0ZSgpO1xuICAgIGNvbnN0IGVudGl0aWVzOiBFbnRpdHlQYXRoW10gPSBbXTtcbiAgICBjb25zdCBlbmRwb2ludHM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcblxuICAgIGNvbnN0IG5leHRFbmRwb2ludHNRID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5lbmRwb2ludHNRKSB7XG4gICAgICBpZiAoXG4gICAgICAgICF0aGlzLmVuZHBvaW50Q291bnQuaGFzKGtleSkgJiZcbiAgICAgICAgdGhpcy5leHBpcmVzQXQoXG4gICAgICAgICAgc3RhdGUubWV0YVtrZXldID8/IHtcbiAgICAgICAgICAgIGZldGNoZWRBdDogMCxcbiAgICAgICAgICAgIGRhdGU6IDAsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSA8IG5vd1xuICAgICAgKSB7XG4gICAgICAgIGVuZHBvaW50cy5wdXNoKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0RW5kcG9pbnRzUS5hZGQoa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5lbmRwb2ludHNRID0gbmV4dEVuZHBvaW50c1E7XG5cbiAgICBjb25zdCBuZXh0RW50aXRpZXNROiBFbnRpdHlQYXRoW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHBhdGggb2YgdGhpcy5lbnRpdGllc1EpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuZW50aXR5Q291bnQuZ2V0KHBhdGgua2V5KT8uaGFzKHBhdGgucGspICYmXG4gICAgICAgIHRoaXMuZXhwaXJlc0F0KFxuICAgICAgICAgIHN0YXRlLmVudGl0aWVzTWV0YVtwYXRoLmtleV0/LltwYXRoLnBrXSA/PyB7XG4gICAgICAgICAgICBmZXRjaGVkQXQ6IDAsXG4gICAgICAgICAgICBkYXRlOiAwLFxuICAgICAgICAgICAgZXhwaXJlc0F0OiAwLFxuICAgICAgICAgIH0sXG4gICAgICAgICkgPCBub3dcbiAgICAgICkge1xuICAgICAgICBlbnRpdGllcy5wdXNoKHBhdGgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dEVudGl0aWVzUS5wdXNoKHBhdGgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmVudGl0aWVzUSA9IG5leHRFbnRpdGllc1E7XG5cbiAgICBpZiAoZW50aXRpZXMubGVuZ3RoIHx8IGVuZHBvaW50cy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY29udHJvbGxlci5kaXNwYXRjaCh7IHR5cGU6IEdDLCBlbnRpdGllcywgZW5kcG9pbnRzIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBDYWxscyB0aGUgY2FsbGJhY2sgd2hlbiBjbGllbnQgaXMgbm90ICdidXN5JyB3aXRoIGhpZ2ggcHJpb3JpdHkgaW50ZXJhY3Rpb24gdGFza3NcbiAgICpcbiAgICogT3ZlcnJpZGUgZm9yIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICAgKi9cbiAgcHJvdGVjdGVkIGlkbGVDYWxsYmFjayhcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkLFxuICAgIG9wdGlvbnM/OiBJZGxlUmVxdWVzdE9wdGlvbnMsXG4gICkge1xuICAgIGlmICh0eXBlb2YgcmVxdWVzdElkbGVDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmVxdWVzdElkbGVDYWxsYmFjayhjYWxsYmFjaywgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxiYWNrKCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJbW1vcnRhbEdDUG9saWN5IGltcGxlbWVudHMgR0NJbnRlcmZhY2Uge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIGluaXQoKSB7fVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIGNsZWFudXAoKSB7fVxuICBjcmVhdGVDb3VudFJlZigpIHtcbiAgICByZXR1cm4gKCkgPT4gKCkgPT4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR0NPcHRpb25zIHtcbiAgaW50ZXJ2YWxNUz86IG51bWJlcjtcbiAgZXhwaXJ5TXVsdGlwbGllcj86IG51bWJlcjtcbiAgZXhwaXJlc0F0PzogKG1ldGE6IHtcbiAgICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgICBkYXRlOiBudW1iZXI7XG4gICAgZmV0Y2hlZEF0OiBudW1iZXI7XG4gIH0pID0+IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ291bnRSZWYge1xuICAoeyBrZXksIHBhdGhzIH06IHsga2V5Pzogc3RyaW5nOyBwYXRocz86IEVudGl0eVBhdGhbXSB9KTogKCkgPT4gKCkgPT4gdm9pZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR0NJbnRlcmZhY2Uge1xuICBjcmVhdGVDb3VudFJlZjogQ3JlYXRlQ291bnRSZWY7XG4gIGluaXQoY29udHJvbGxlcjogQ29udHJvbGxlcik6IHZvaWQ7XG4gIGNs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
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJHQyIsIkdDUG9saWN5IiwiY29uc3RydWN0b3IiLCJpbnRlcnZhbE1TIiwiZXhwaXJ5TXVsdGlwbGllciIsImV4cGlyZXNBdCIsImVuZHBvaW50Q291bnQiLCJNYXAiLCJlbnRpdHlDb3VudCIsImVuZHBvaW50c1EiLCJTZXQiLCJlbnRpdGllc1EiLCJiaW5kIiwib3B0aW9ucyIsImluaXQiLCJjb250cm9sbGVyIiwiaW50ZXJ2YWxJZCIsInNldEludGVydmFsIiwiaWRsZUNhbGxiYWNrIiwicnVuU3dlZXAiLCJ0aW1lb3V0IiwidW5yZWYiLCJjbGVhbnVwIiwiY2xlYXJJbnRlcnZhbCIsImNyZWF0ZUNvdW50UmVmIiwia2V5IiwicGF0aHMiLCJfdGhpcyRlbmRwb2ludENvdW50JGciLCJzZXQiLCJnZXQiLCJmb3JFYWNoIiwicGF0aCIsIl9pbnN0YW5jZUNvdW50JGdldCIsInBrIiwiaGFzIiwiaW5zdGFuY2VDb3VudCIsImN1cnJlbnRDb3VudCIsInVuZGVmaW5lZCIsImRlbGV0ZSIsImFkZCIsInB1c2giLCJmZXRjaGVkQXQiLCJNYXRoIiwibWF4Iiwic3RhdGUiLCJnZXRTdGF0ZSIsImVudGl0aWVzIiwiZW5kcG9pbnRzIiwibm93IiwiRGF0ZSIsIm5leHRFbmRwb2ludHNRIiwiX3N0YXRlJG1ldGEka2V5IiwibWV0YSIsImRhdGUiLCJuZXh0RW50aXRpZXNRIiwiX3RoaXMkZW50aXR5Q291bnQkZ2V0IiwiX3N0YXRlJGVudGl0aWVzTWV0YSRwIiwiX3N0YXRlJGVudGl0aWVzTWV0YSRwMiIsImVudGl0aWVzTWV0YSIsImxlbmd0aCIsImRpc3BhdGNoIiwidHlwZSIsImNhbGxiYWNrIiwicmVxdWVzdElkbGVDYWxsYmFjayIsIkltbW9ydGFsR0NQb2xpY3kiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdGUvR0NQb2xpY3kudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbnRpdHlQYXRoIH0gZnJvbSAnQGRhdGEtY2xpZW50L25vcm1hbGl6cic7XG5cbmltcG9ydCB7IEdDIH0gZnJvbSAnLi4vYWN0aW9uVHlwZXMuanMnO1xuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcblxuZXhwb3J0IGNsYXNzIEdDUG9saWN5IGltcGxlbWVudHMgR0NJbnRlcmZhY2Uge1xuICBwcm90ZWN0ZWQgZW5kcG9pbnRDb3VudCA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIHByb3RlY3RlZCBlbnRpdHlDb3VudCA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBudW1iZXI+PigpO1xuICBwcm90ZWN0ZWQgZW5kcG9pbnRzUSA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBwcm90ZWN0ZWQgZW50aXRpZXNROiBFbnRpdHlQYXRoW10gPSBbXTtcblxuICBkZWNsYXJlIHByb3RlY3RlZCBpbnRlcnZhbElkOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD47XG4gIGRlY2xhcmUgcHJvdGVjdGVkIGNvbnRyb2xsZXI6IENvbnRyb2xsZXI7XG4gIGRlY2xhcmUgcHJvdGVjdGVkIG9wdGlvbnM6IFJlcXVpcmVkPE9taXQ8R0NPcHRpb25zLCAnZXhwaXJlc0F0Jz4+O1xuXG4gIGNvbnN0cnVjdG9yKHtcbiAgICAvLyBldmVyeSA1IG1pblxuICAgIGludGVydmFsTVMgPSA2MCAqIDEwMDAgKiA1LFxuICAgIGV4cGlyeU11bHRpcGxpZXIgPSAyLFxuICAgIGV4cGlyZXNBdCxcbiAgfTogR0NPcHRpb25zID0ge30pIHtcbiAgICBpZiAoZXhwaXJlc0F0KSB7XG4gICAgICB0aGlzLmV4cGlyZXNBdCA9IGV4cGlyZXNBdC5iaW5kKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICBpbnRlcnZhbE1TLFxuICAgICAgZXhwaXJ5TXVsdGlwbGllcixcbiAgICB9O1xuICB9XG5cbiAgaW5pdChjb250cm9sbGVyOiBDb250cm9sbGVyKSB7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlcjtcblxuICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuaWRsZUNhbGxiYWNrKCgpID0+IHRoaXMucnVuU3dlZXAoKSwgeyB0aW1lb3V0OiAxMDAwIH0pO1xuICAgIH0sIHRoaXMub3B0aW9ucy5pbnRlcnZhbE1TKTtcbiAgICBpZiAodHlwZW9mIHRoaXMuaW50ZXJ2YWxJZCA9PT0gJ29iamVjdCcgJiYgJ3VucmVmJyBpbiB0aGlzLmludGVydmFsSWQpIHtcbiAgICAgIHRoaXMuaW50ZXJ2YWxJZC51bnJlZigpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFudXAoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICB9XG5cbiAgY3JlYXRlQ291bnRSZWYoeyBrZXksIHBhdGhzID0gW10gfTogeyBrZXk/OiBzdHJpbmc7IHBhdGhzPzogRW50aXR5UGF0aFtdIH0pIHtcbiAgICAvLyBpbmNyZW1lbnRcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGtleSlcbiAgICAgICAgdGhpcy5lbmRwb2ludENvdW50LnNldChrZXksICh0aGlzLmVuZHBvaW50Q291bnQuZ2V0KGtleSkgPz8gMCkgKyAxKTtcbiAgICAgIHBhdGhzLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICAgIGNvbnN0IHsga2V5LCBwayB9ID0gcGF0aDtcbiAgICAgICAgaWYgKCF0aGlzLmVudGl0eUNvdW50LmhhcyhrZXkpKSB7XG4gICAgICAgICAgdGhpcy5lbnRpdHlDb3VudC5zZXQoa2V5LCBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnN0YW5jZUNvdW50ID0gdGhpcy5lbnRpdHlDb3VudC5nZXQoa2V5KSE7XG4gICAgICAgIGluc3RhbmNlQ291bnQuc2V0KHBrLCAoaW5zdGFuY2VDb3VudC5nZXQocGspID8/IDApICsgMSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gZGVjcmVtZW50XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudENvdW50ID0gdGhpcy5lbmRwb2ludENvdW50LmdldChrZXkpITtcbiAgICAgICAgICBpZiAoY3VycmVudENvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Q291bnQgPD0gMSkge1xuICAgICAgICAgICAgICB0aGlzLmVuZHBvaW50Q291bnQuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICAgIC8vIHF1ZXVlIGZvciBjbGVhbnVwXG4gICAgICAgICAgICAgIHRoaXMuZW5kcG9pbnRzUS5hZGQoa2V5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuZW5kcG9pbnRDb3VudC5zZXQoa2V5LCBjdXJyZW50Q291bnQgLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGF0aHMuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgICAgICBjb25zdCB7IGtleSwgcGsgfSA9IHBhdGg7XG4gICAgICAgICAgaWYgKCF0aGlzLmVudGl0eUNvdW50LmhhcyhrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGluc3RhbmNlQ291bnQgPSB0aGlzLmVudGl0eUNvdW50LmdldChrZXkpITtcbiAgICAgICAgICBjb25zdCBlbnRpdHlDb3VudCA9IGluc3RhbmNlQ291bnQuZ2V0KHBrKSE7XG4gICAgICAgICAgaWYgKGVudGl0eUNvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChlbnRpdHlDb3VudCA8PSAxKSB7XG4gICAgICAgICAgICAgIGluc3RhbmNlQ291bnQuZGVsZXRlKHBrKTtcbiAgICAgICAgICAgICAgLy8gcXVldWUgZm9yIGNsZWFudXBcbiAgICAgICAgICAgICAgdGhpcy5lbnRpdGllc1EucHVzaChwYXRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGluc3RhbmNlQ291bnQuc2V0KHBrLCBlbnRpdHlDb3VudCAtIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZXhwaXJlc0F0KHtcbiAgICBmZXRjaGVkQXQsXG4gICAgZXhwaXJlc0F0LFxuICB9OiB7XG4gICAgZXhwaXJlc0F0OiBudW1iZXI7XG4gICAgZGF0ZTogbnVtYmVyO1xuICAgIGZldGNoZWRBdDogbnVtYmVyO1xuICB9KTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgTWF0aC5tYXgoXG4gICAgICAgIChleHBpcmVzQXQgLSBmZXRjaGVkQXQpICogdGhpcy5vcHRpb25zLmV4cGlyeU11bHRpcGxpZXIsXG4gICAgICAgIDEyMDAwMCxcbiAgICAgICkgKyBmZXRjaGVkQXRcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJ1blN3ZWVwKCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5jb250cm9sbGVyLmdldFN0YXRlKCk7XG4gICAgY29uc3QgZW50aXRpZXM6IEVudGl0eVBhdGhbXSA9IFtdO1xuICAgIGNvbnN0IGVuZHBvaW50czogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuXG4gICAgY29uc3QgbmV4dEVuZHBvaW50c1EgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmVuZHBvaW50c1EpIHtcbiAgICAgIGlmIChcbiAgICAgICAgIXRoaXMuZW5kcG9pbnRDb3VudC5oYXMoa2V5KSAmJlxuICAgICAgICB0aGlzLmV4cGlyZXNBdChcbiAgICAgICAgICBzdGF0ZS5tZXRhW2tleV0gPz8ge1xuICAgICAgICAgICAgZmV0Y2hlZEF0OiAwLFxuICAgICAgICAgICAgZGF0ZTogMCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogMCxcbiAgICAgICAgICB9LFxuICAgICAgICApIDwgbm93XG4gICAgICApIHtcbiAgICAgICAgZW5kcG9pbnRzLnB1c2goa2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRFbmRwb2ludHNRLmFkZChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmVuZHBvaW50c1EgPSBuZXh0RW5kcG9pbnRzUTtcblxuICAgIGNvbnN0IG5leHRFbnRpdGllc1E6IEVudGl0eVBhdGhbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcGF0aCBvZiB0aGlzLmVudGl0aWVzUSkge1xuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5lbnRpdHlDb3VudC5nZXQocGF0aC5rZXkpPy5oYXMocGF0aC5waykgJiZcbiAgICAgICAgdGhpcy5leHBpcmVzQXQoXG4gICAgICAgICAgc3RhdGUuZW50aXRpZXNNZXRhW3BhdGgua2V5XT8uW3BhdGgucGtdID8/IHtcbiAgICAgICAgICAgIGZldGNoZWRBdDogMCxcbiAgICAgICAgICAgIGRhdGU6IDAsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IDAsXG4gICAgICAgICAgfSxcbiAgICAgICAgKSA8IG5vd1xuICAgICAgKSB7XG4gICAgICAgIGVudGl0aWVzLnB1c2gocGF0aCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0RW50aXRpZXNRLnB1c2gocGF0aCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZW50aXRpZXNRID0gbmV4dEVudGl0aWVzUTtcblxuICAgIGlmIChlbnRpdGllcy5sZW5ndGggfHwgZW5kcG9pbnRzLmxlbmd0aCkge1xuICAgICAgdGhpcy5jb250cm9sbGVyLmRpc3BhdGNoKHsgdHlwZTogR0MsIGVudGl0aWVzLCBlbmRwb2ludHMgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENhbGxzIHRoZSBjYWxsYmFjayB3aGVuIGNsaWVudCBpcyBub3QgJ2J1c3knIHdpdGggaGlnaCBwcmlvcml0eSBpbnRlcmFjdGlvbiB0YXNrc1xuICAgKlxuICAgKiBPdmVycmlkZSBmb3IgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zXG4gICAqL1xuICBwcm90ZWN0ZWQgaWRsZUNhbGxiYWNrKFxuICAgIGNhbGxiYWNrOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQsXG4gICAgb3B0aW9ucz86IElkbGVSZXF1ZXN0T3B0aW9ucyxcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiByZXF1ZXN0SWRsZUNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKGNhbGxiYWNrLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEltbW9ydGFsR0NQb2xpY3kgaW1wbGVtZW50cyBHQ0ludGVyZmFjZSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgaW5pdCgpIHt9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgY2xlYW51cCgpIHt9XG4gIGNyZWF0ZUNvdW50UmVmKCkge1xuICAgIHJldHVybiAoKSA9PiAoKSA9PiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBHQ09wdGlvbnMge1xuICBpbnRlcnZhbE1TPzogbnVtYmVyO1xuICBleHBpcnlNdWx0aXBsaWVyPzogbnVtYmVyO1xuICBleHBpcmVzQXQ/OiAobWV0YToge1xuICAgIGV4cGlyZXNBdDogbnVtYmVyO1xuICAgIGRhdGU6IG51bWJlcjtcbiAgICBmZXRjaGVkQXQ6IG51bWJlcjtcbiAgfSkgPT4gbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDb3VudFJlZiB7XG4gICh7IGtleSwgcGF0aHMgfTogeyBrZXk/OiBzdHJpbmc7IHBhdGhzPzogRW50aXR5UGF0aFtdIH0pOiAoKSA9PiAoKSA9PiB2b2lkO1xufVxuZXhwb3J0IGludGVyZmFjZSBHQ0ludGVyZmFjZSB7XG4gIGNyZWF0ZUNvdW50UmVmOiBDcmVhdGVDb3VudFJlZjtcbiAgaW5pdChjb250cm9sbGVyOiBDb250cm9sbGVyKTogdm9pZDtcbiAgY2xlYW51cCgpOiB2b2lkO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxFQUFFLFFBQVEsbUJBQW1CO0FBR3RDLE9BQU8sTUFBTUMsUUFBUSxDQUF3QjtFQVUzQ0MsV0FBV0EsQ0FBQztJQUNWO0lBQ0FDLFVBQVUsR0FBRyxFQUFFLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDMUJDLGdCQUFnQixHQUFHLENBQUM7SUFDcEJDO0VBQ1MsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO0lBQUEsS0FkVEMsYUFBYSxHQUFHLElBQUlDLEdBQUcsQ0FBaUIsQ0FBQztJQUFBLEtBQ3pDQyxXQUFXLEdBQUcsSUFBSUQsR0FBRyxDQUE4QixDQUFDO0lBQUEsS0FDcERFLFVBQVUsR0FBRyxJQUFJQyxHQUFHLENBQVMsQ0FBQztJQUFBLEtBQzlCQyxTQUFTLEdBQWlCLEVBQUU7SUFZcEMsSUFBSU4sU0FBUyxFQUFFO01BQ2IsSUFBSSxDQUFDQSxTQUFTLEdBQUdBLFNBQVMsQ0FBQ08sSUFBSSxDQUFDLElBQUksQ0FBQztJQUN2QztJQUNBLElBQUksQ0FBQ0MsT0FBTyxHQUFHO01BQ2JWLFVBQVU7TUFDVkM7SUFDRixDQUFDO0VBQ0g7RUFFQVUsSUFBSUEsQ0FBQ0MsVUFBc0IsRUFBRTtJQUMzQixJQUFJLENBQUNBLFVBQVUsR0FBR0EsVUFBVTtJQUU1QixJQUFJLENBQUNDLFVBQVUsR0FBR0MsV0FBVyxDQUFDLE1BQU07TUFDbEMsSUFBSSxDQUFDQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUNDLFFBQVEsQ0FBQyxDQUFDLEVBQUU7UUFBRUMsT0FBTyxFQUFFO01BQUssQ0FBQyxDQUFDO0lBQzdELENBQUMsRUFBRSxJQUFJLENBQUNQLE9BQU8sQ0FBQ1YsVUFBVSxDQUFDO0lBQzNCLElBQUks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
|
|
@@ -33,4 +33,4 @@ export function setReducer(state, action, controller) {
|
|
|
33
33
|
return state;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJzZXRSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwidmFsdWUiLCJwcmV2aW91c1ZhbHVlIiwiZ2V0Iiwic2NoZW1hIiwiYXJncyIsInVuZGVmaW5lZCIsImVudGl0aWVzIiwiaW5kZXhlcyIsImVudGl0aWVzTWV0YSIsIm1ldGEiLCJlbmRwb2ludHMiLCJvcHRpbWlzdGljIiwibGFzdFJlc2V0IiwiZXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJjb25zb2xlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRlL3JlZHVjZXIvc2V0UmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IENvbnRyb2xsZXIgZnJvbSAnLi4vLi4vY29udHJvbGxlci9Db250cm9sbGVyLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhdGUsIFNldEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlZHVjZXIoXG4gIHN0YXRlOiBTdGF0ZTx1bmtub3duPixcbiAgYWN0aW9uOiBTZXRBY3Rpb24sXG4gIGNvbnRyb2xsZXI6IENvbnRyb2xsZXIsXG4pOiBTdGF0ZTx1bmtub3duPiB7XG4gIGxldCB2YWx1ZTogYW55O1xuICBpZiAodHlwZW9mIGFjdGlvbi52YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBjb250cm9sbGVyLmdldChhY3Rpb24uc2NoZW1hLCAuLi5hY3Rpb24uYXJncywgc3RhdGUpO1xuICAgIGlmIChwcmV2aW91c1ZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBzdGF0ZTtcbiAgICB2YWx1ZSA9IGFjdGlvbi52YWx1ZShwcmV2aW91c1ZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB2YWx1ZSA9IGFjdGlvbi52YWx1ZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHsgZW50aXRpZXMsIGluZGV4ZXMsIGVudGl0aWVzTWV0YSB9ID0gbm9ybWFsaXplKFxuICAgICAgYWN0aW9uLnNjaGVtYSxcbiAgICAgIHZhbHVlLFxuICAgICAgYWN0aW9uLmFyZ3MsXG4gICAgICBzdGF0ZSxcbiAgICAgIGFjdGlvbi5tZXRhLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVudGl0aWVzLFxuICAgICAgZW5kcG9pbnRzOiBzdGF0ZS5lbmRwb2ludHMsXG4gICAgICBpbmRleGVzLFxuICAgICAgbWV0YTogc3RhdGUubWV0YSxcbiAgICAgIGVudGl0aWVzTWV0YSxcbiAgICAgIG9wdGltaXN0aWM6IHN0YXRlLm9wdGltaXN0aWMsXG4gICAgICBsYXN0UmVzZXQ6IHN0YXRlLmxhc3RSZXNldCxcbiAgICB9O1xuICAgIC8vIHJlZHVjZXIgbXVzdCB1cGRhdGUgdGhlIHN0YXRlLCBzbyBpbiBjYXNlIG9mIHByb2Nlc3NpbmcgZXJyb3JzIHdlIHNpbXBseSBjb21wdXRlIHRoZSBlbmRwb2ludHMgaW5saW5lXG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAvLyB0aGlzIGlzIG5vdCBhbHdheXMgYnViYmxlZCB1cCwgc28gbGV0J3MgZG91YmxlIHN1cmUgdGhpcyBkb2Vzbid0IGZhaWwgc2lsZW50bHlcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFNBQVMsUUFBUSx3QkFBd0I7QUFLbEQsT0FBTyxTQUFTQyxVQUFVQSxDQUN4QkMsS0FBcUIsRUFDckJDLE1BQWlCLEVBQ2pCQyxVQUFzQixFQUNOO0VBQ2hCLElBQUlDLEtBQVU7RUFDZCxJQUFJLE9BQU9GLE1BQU0sQ0FBQ0UsS0FBSyxLQUFLLFVBQVUsRUFBRTtJQUN0QyxNQUFNQyxhQUFhLEdBQUdGLFVBQVUsQ0FBQ0csR0FBRyxDQUFDSixNQUFNLENBQUNLLE1BQU0sRUFBRSxHQUFHTCxNQUFNLENBQUNNLElBQUksRUFBRVAsS0FBSyxDQUFDO0lBQzFFLElBQUlJLGFBQWEsS0FBS0ksU0FBUyxFQUFFLE9BQU9SLEtBQUs7SUFDN0NHLEtBQUssR0FBR0YsTUFBTSxDQUFDRSxLQUFLLENBQUNDLGFBQWEsQ0FBQztFQUNyQyxDQUFDLE1BQU07SUFDTEQsS0FBSyxHQUFHRixNQUFNLENBQUNFLEtBQUs7RUFDdEI7RUFDQSxJQUFJO0lBQ0YsTUFBTTtNQUFFTSxRQUFRO01BQUVDLE9BQU87TUFBRUM7SUFBYSxDQUFDLEdBQUdiLFNBQVMsQ0FDbkRHLE1BQU0sQ0FBQ0ssTUFBTSxFQUNiSCxLQUFLLEVBQ0xGLE1BQU0sQ0FBQ00sSUFBSSxFQUNYUCxLQUFLLEVBQ0xDLE1BQU0sQ0FBQ1csSUFDVCxDQUFDO0lBQ0QsT0FBTztNQUNMSCxRQUFRO01BQ1JJLFNBQVMsRUFBRWIsS0FBSyxDQUFDYSxTQUFTO01BQzFCSCxPQUFPO01BQ1BFLElBQUksRUFBRVosS0FBSyxDQUFDWSxJQUFJO01BQ2hCRCxZQUFZO01BQ1pHLFVBQVUsRUFBRWQsS0FBSyxDQUFDYyxVQUFVO01BQzVCQyxTQUFTLEVBQUVmLEtBQUssQ0FBQ2U7SUFDbkIsQ0FBQztJQUNEO0VBQ0YsQ0FBQyxDQUFDLE9BQU9DLEtBQVUsRUFBRTtJQUNuQjtJQUNBO0lBQ0EsSUFBSUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7TUFDekNDLE9BQU8sQ0FBQ0osS0FBSyxDQUFDQSxLQUFLLENBQUM7SUFDdEI7SUFDQSxPQUFPaEIsS0FBSztFQUNkO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -107,4 +107,4 @@ function reduceError(state, action, error) {
|
|
|
107
107
|
function filterOptimistic(state, resolvingAction) {
|
|
108
108
|
return state.optimistic.filter(optimisticAction => optimisticAction.key !== resolvingAction.key || (optimisticAction.type === OPTIMISTIC ? optimisticAction.meta.fetchedAt !== resolvingAction.meta.fetchedAt : optimisticAction.meta.date > resolvingAction.meta.date));
|
|
109
109
|
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDIiwiQWJvcnRPcHRpbWlzdGljIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInJlc3BvbnNlIiwiX3N0YXRlJG1ldGEkYWN0aW9uJGtlIiwidHlwZSIsImVuZHBvaW50IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwiY2FsbCIsInNuYXBzaG90IiwibWV0YSIsImZldGNoZWRBdCIsImFyZ3MiLCJlIiwiY29uc3RydWN0b3IiLCJyZXN1bHQiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJlbnRpdGllc01ldGEiLCJzY2hlbWEiLCJlbmRwb2ludHMiLCJfZXh0ZW5kcyIsImtleSIsInVwZGF0ZSIsInVwZGF0ZXJzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJjb25zb2xlIiwiZGF0ZSIsImV4cGlyZXNBdCIsInByZXZFeHBpcmVzQXQiLCJvcHRpbWlzdGljIiwiZmlsdGVyT3B0aW1pc3RpYyIsImxhc3RSZXNldCIsIm1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwidW5kZWZpbmVkIiwic3RhdHVzIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwibmFtZSIsImVycm9yUG9saWN5IiwicmVzb2x2aW5nQWN0aW9uIiwiZmlsdGVyIiwib3B0aW1pc3RpY0FjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0ZS9yZWR1Y2VyL3NldFJlc3BvbnNlUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgT1BUSU1JU1RJQyB9IGZyb20gJy4uLy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCBBYm9ydE9wdGltaXN0aWMgZnJvbSAnLi4vLi4vY29udHJvbGxlci9BYm9ydE9wdGltaXN0aWMuanMnO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tICcuLi8uLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBTdGF0ZSxcbiAgU2V0UmVzcG9uc2VBY3Rpb24sXG4gIE9wdGltaXN0aWNBY3Rpb24sXG59IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlc3BvbnNlUmVkdWNlcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IE9wdGltaXN0aWNBY3Rpb24gfCBTZXRSZXNwb25zZUFjdGlvbixcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbikge1xuICBpZiAoYWN0aW9uLmVycm9yKSB7XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGFjdGlvbi5yZXNwb25zZSk7XG4gIH1cbiAgdHJ5IHtcbiAgICBsZXQgcmVzcG9uc2U6IGFueTtcbiAgICAvLyBmb3IgdHJ1ZSBzZXQncyByZXNwb25zZSBpcyBjb250YWluZWQgaW4gYWN0aW9uXG4gICAgaWYgKGFjdGlvbi50eXBlID09PSBPUFRJTUlTVElDKSB7XG4gICAgICAvLyB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKCFhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlKSByZXR1cm4gc3RhdGU7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBjb21wdXRlIG9wdGltaXN0aWMgcmVzcG9uc2UgYmFzZWQgb24gY3VycmVudCBzdGF0ZVxuICAgICAgICByZXNwb25zZSA9IGFjdGlvbi5lbmRwb2ludC5nZXRPcHRpbWlzdGljUmVzcG9uc2UuY2FsbChcbiAgICAgICAgICBhY3Rpb24uZW5kcG9pbnQsXG4gICAgICAgICAgY29udHJvbGxlci5zbmFwc2hvdChzdGF0ZSwgYWN0aW9uLm1ldGEuZmV0Y2hlZEF0KSxcbiAgICAgICAgICAuLi5hY3Rpb24uYXJncyxcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAvLyBBYm9ydE9wdGltaXN0aWMgbWVhbnMgJ2RvIG5vdGhpbmcnLCBvdGhlcndpc2Ugd2UgY291bnQgdGhlIGV4Y2VwdGlvbiBhcyBlbmRwb2ludCBmYWlsdXJlXG4gICAgICAgIGlmIChlLmNvbnN0cnVjdG9yID09PSBBYm9ydE9wdGltaXN0aWMpIHtcbiAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzcG9uc2UgPSBhY3Rpb24ucmVzcG9uc2U7XG4gICAgfVxuICAgIGNvbnN0IHsgcmVzdWx0LCBlbnRpdGllcywgaW5kZXhlcywgZW50aXRpZXNNZXRhIH0gPSBub3JtYWxpemUoXG4gICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgcmVzcG9uc2UsXG4gICAgICBhY3Rpb24uYXJncyxcbiAgICAgIHN0YXRlLFxuICAgICAgYWN0aW9uLm1ldGEsXG4gICAgKTtcbiAgICBjb25zdCBlbmRwb2ludHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgLi4uc3RhdGUuZW5kcG9pbnRzLFxuICAgICAgW2FjdGlvbi5rZXldOiByZXN1bHQsXG4gICAgfTtcbiAgICB0cnkge1xuICAgICAgaWYgKGFjdGlvbi5lbmRwb2ludC51cGRhdGUpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlcnMgPSBhY3Rpb24uZW5kcG9pbnQudXBkYXRlKHJlc3VsdCwgLi4uYWN0aW9uLmFyZ3MpO1xuICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIGVuZHBvaW50c1trZXldID0gdXBkYXRlcnNba2V5XShlbmRwb2ludHNba2V5XSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgLy8gbm8gcmVhc29uIHRvIGNvbXBsZXRlbHkgZmFpbCBiZWNhdXNlIG9mIHVzZXItY29kZSBlcnJvclxuICAgICAgLy8gaW50ZWdyaXR5IG9mIHRoaXMgc3RhdGUgdXBkYXRlIGlzIHN0aWxsIGd1YXJhbnRlZWRcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihgRW5kcG9pbnQudXBkYXRlKCkgZXJyb3I6ICR7YWN0aW9uLmtleX1gKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZW50aXRpZXMsXG4gICAgICBlbmRwb2ludHMsXG4gICAgICBpbmRleGVzLFxuICAgICAgbWV0YToge1xuICAgICAgICAuLi5zdGF0ZS5tZXRhLFxuICAgICAgICBbYWN0aW9uLmtleV06IHtcbiAgICAgICAgICBkYXRlOiBhY3Rpb24ubWV0YS5kYXRlLFxuICAgICAgICAgIGZldGNoZWRBdDogYWN0aW9uLm1ldGEuZmV0Y2hlZEF0LFxuICAgICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICAgIHByZXZFeHBpcmVzQXQ6IHN0YXRlLm1ldGFbYWN0aW9uLmtleV0/LmV4cGlyZXNBdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBlbnRpdGllc01ldGEsXG4gICAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICAgICAgbGFzdFJlc2V0OiBzdGF0ZS5sYXN0UmVzZXQsXG4gICAgfTtcbiAgICAvLyByZWR1Y2VyIG11c3QgdXBkYXRlIHRoZSBzdGF0ZSwgc28gaW4gY2FzZSBvZiBwcm9jZXNzaW5nIGVycm9ycyB3ZSBzaW1wbHkgY29tcHV0ZSB0aGUgZW5kcG9pbnRzIGlubGluZVxuICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSBgRXJyb3IgcHJvY2Vzc2luZyAke1xuICAgICAgICBhY3Rpb24ua2V5XG4gICAgICB9XFxuXFxuRnVsbCBTY2hlbWE6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGFjdGlvbi5lbmRwb2ludC5zY2hlbWEsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgMixcbiAgICAgICl9XFxuXFxuRXJyb3I6XFxuJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICBpZiAoJ3Jlc3BvbnNlJyBpbiBhY3Rpb24pIGVycm9yLnJlc3BvbnNlID0gYWN0aW9uLnJlc3BvbnNlO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgIH1cblxuICAgIC8vIHRoaXMgaXMgbm90IGFsd2F5cyBidWJibGVkIHVwLCBzbyBsZXQncyBkb3VibGUgc3VyZSB0aGlzIGRvZXNuJ3QgZmFpbCBzaWxlbnRseVxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICByZXR1cm4gcmVkdWNlRXJyb3Ioc3RhdGUsIGFjdGlvbiwgZXJyb3IpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlZHVjZUVycm9yKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIGFjdGlvbjogU2V0UmVzcG9uc2VBY3Rpb24gfCBPcHRpbWlzdGljQWN0aW9uLFxuICBlcnJvcjogYW55LFxuKTogU3RhdGU8dW5rbm93bj4ge1xuICBpZiAoZXJyb3IubmFtZSA9PT0gJ0Fib3J0RXJyb3InKSB7XG4gICAgLy8gSW4gY2FzZSB3ZSBhYm9ydCBzaW1wbHkgdW5kbyB0aGUgb3B0aW1pc3RpYyB1cGRhdGUgYW5kIGFjdCBsaWtlIG5vIGZldGNoIGV2ZW4gb2NjdXJlZFxuICAgIC8vIFdlIHN0aWxsIHdhbnQgdGhvc2Ugd2F0Y2hpbmcgcHJvbWlzZXMgZnJvbSBmZXRjaCBkaXJlY3RseSB0byBvYnNlcnZlZCB0aGUgYWJvcnQsIGJ1dCB3ZSBkb24ndCB3YW50IHRvXG4gICAgLy8gVHJpZ2dlciBlcnJvcnMgaW4gdGhpcyBjYXNlLiBUaGlzIG1lYW5zIHRoZW9yZXRpY2FsbHkgaW1wcm9wZXJseSBidWlsdCBhYm9ydHMgdXNlU3VzcGVuc2UoKSBjb3VsZCBzdXNwZW5kIGZvcmV2ZXIuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgb3B0aW1pc3RpYzogZmlsdGVyT3B0aW1pc3RpYyhzdGF0ZSwgYWN0aW9uKSxcbiAgICB9O1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWV0YToge1xuICAgICAgLi4uc3RhdGUubWV0YSxcbiAgICAgIFthY3Rpb24ua2V5XToge1xuICAgICAgICBkYXRlOiBhY3Rpb24ubWV0YS5kYXRlLFxuICAgICAgICBmZXRjaGVkQXQ6IGFjdGlvbi5tZXRhLmZldGNoZWRBdCxcbiAgICAgICAgZXhwaXJlc0F0OiBhY3Rpb24ubWV0YS5leHBpcmVzQXQsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBlcnJvclBvbGljeTogYWN0aW9uLmVuZHBvaW50LmVycm9yUG9saWN5Py4oZXJyb3IpLFxuICAgICAgfSxcbiAgICB9LFxuICAgIG9wdGltaXN0aWM6IGZpbHRlck9wdGltaXN0aWMoc3RhdGUsIGFjdGlvbiksXG4gIH07XG59XG4vKiogRmlsdGVyIGFsbCByZXF1ZXN0cyB3aXRoIHNhbWUgc2VyaWFsaXphdGlvbiB0aGF0IGRpZCBub3Qgc3RhcnQgYWZ0ZXIgdGhlIHJlc29sdmluZyByZXF1ZXN0ICovXG5mdW5jdGlvbiBmaWx0ZXJPcHRpbWlzdGljKFxuICBzdGF0ZTogU3RhdGU8dW5rbm93bj4sXG4gIHJlc29sdmluZ0FjdGlvbjogU2V0UmVzcG9uc2VBY3Rpb24gfCBPcHRpbWlzdGljQWN0aW9uLFxuKSB7XG4gIHJldHVybiBzdGF0ZS5vcHRpbWlzdGljLmZpbHRlcihcbiAgICBvcHRpbWlzdGljQWN0aW9uID0+XG4gICAgICBvcHRpbWlzdGljQWN0aW9uLmtleSAhPT0gcmVzb2x2aW5nQWN0aW9uLmtleSB8fFxuICAgICAgKG9wdGltaXN0aWNBY3Rpb24udHlwZSA9PT0gT1BUSU1JU1RJQyA/XG4gICAgICAgIG9wdGltaXN0aWNBY3Rpb24ubWV0YS5mZXRjaGVkQXQgIT09IHJlc29sdmluZ0FjdGlvbi5tZXRhLmZldGNoZWRBdFxuICAgICAgOiBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZGF0ZSA+IHJlc29sdmluZ0FjdGlvbi5tZXRhLmRhdGUpLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsU0FBUyxRQUFRLHdCQUF3QjtBQUVsRCxTQUFTQyxVQUFVLFFBQVEsc0JBQXNCO0FBQ2pELE9BQU9DLGVBQWUsTUFBTSxxQ0FBcUM7QUFRakUsT0FBTyxTQUFTQyxrQkFBa0JBLENBQ2hDQyxLQUFxQixFQUNyQkMsTUFBNEMsRUFDNUNDLFVBQXNCLEVBQ3RCO0VBQ0EsSUFBSUQsTUFBTSxDQUFDRSxLQUFLLEVBQUU7SUFDaEIsT0FBT0MsV0FBVyxDQUFDSixLQUFLLEVBQUVDLE1BQU0sRUFBRUEsTUFBTSxDQUFDSSxRQUFRLENBQUM7RUFDcEQ7RUFDQSxJQUFJO0lBQUEsSUFBQUMscUJBQUE7SUFDRixJQUFJRCxRQUFhO0lBQ2pCO0lBQ0EsSUFBSUosTUFBTSxDQUFDTSxJQUFJLEtBQUtWLFVBQVUsRUFBRTtNQUM5QjtNQUNBO01BQ0EsSUFBSSxDQUFDSSxNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLEVBQUUsT0FBT1QsS0FBSztNQUN4RCxJQUFJO1FBQ0Y7UUFDQUssUUFBUSxHQUFHSixNQUFNLENBQUNPLFFBQVEsQ0FBQ0MscUJBQXFCLENBQUNDLElBQUksQ0FDbkRULE1BQU0sQ0FBQ08sUUFBUSxFQUNmTixVQUFVLENBQUNTLFFBQVEsQ0FBQ1gsS0FBSyxFQUFFQyxNQUFNLENBQUNXLElBQUksQ0FBQ0MsU0FBUyxDQUFDLEVBQ2pELEdBQUdaLE1BQU0sQ0FBQ2EsSUFDWixDQUFDO01BQ0gsQ0FBQyxDQUFDLE9BQU9DLENBQU0sRUFBRTtRQUNmO1FBQ0EsSUFBSUEsQ0FBQyxDQUFDQyxXQUFXLEtBQUts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QUFDO0lBQ3RCO0lBQ0EsT0FBT0MsV0FBVyxDQUFDSixLQUFLLEVBQUVDLE1BQU0sRUFBRUUsS0FBSyxDQUFDO0VBQzFDO0FBQ0Y7QUFFQSxTQUFTQyxXQUFXQSxDQUNsQkosS0FBcUIsRUFDckJDLE1BQTRDLEVBQzVDRSxLQUFVLEVBQ007RUFDaEIsSUFBSUEsS0FBSyxDQUFDMEMsSUFBSSxLQUFLLFlBQVksRUFBRTtJQUMvQjtJQUNBO0lBQ0E7SUFDQSxPQUFBdEIsUUFBQSxLQUNLdkIsS0FBSztNQUNSa0MsVUFBVSxFQUFFQyxnQkFBZ0IsQ0FBQ25DLEtBQUssRUFBRUMsTUFBTTtJQUFDO0VBRS9DO0VBQ0EsT0FBQXNCLFFBQUEsS0FDS3ZCLEtBQUs7SUFDUlksSUFBSSxFQUFBVyxRQUFBLEtBQ0N2QixLQUFLLENBQUNZLElBQUk7TUFDYixDQUFDWCxNQUFNLENBQUN1QixHQUFHLEdBQUc7UUFDWk8sSUFBSSxFQUFFOUIsTUFBTSxDQUFDVyxJQUFJLENBQUNtQixJQUFJO1FBQ3RCbEIsU0FBUyxFQUFFWixNQUFNLENBQUNXLElBQUksQ0FBQ0MsU0FBUztRQUNoQ21CLFNBQVMsRUFBRS9CLE1BQU0sQ0FBQ1csSUFBSSxDQUFDb0IsU0FBUztRQUNoQzdCLEtBQUs7UUFDTDJDLFdBQVcsRUFBRTdDLE1BQU0sQ0FBQ08sUUFBUSxDQUFDc0MsV0FBVyxvQkFBM0I3QyxNQUFNLENBQUNPLFFBQVEsQ0FBQ3NDLFdBQVcsQ0FBRzNDLEtBQUs7TUFDbEQ7SUFBQyxFQUNGO0lBQ0QrQixVQUFVLEVBQUVDLGdCQUFnQixDQUFDbkMsS0FBSyxFQUFFQyxNQUFNO0VBQUM7QUFFL0M7QUFDQTtBQUNBLFNBQVNrQyxnQkFBZ0JBLENBQ3ZCbkMsS0FBcUIsRUFDckIrQyxlQUFxRCxFQUNyRDtFQUNBLE9BQU8vQyxLQUFLLENBQUNrQyxVQUFVLENBQUNjLE1BQU0sQ0FDNUJDLGdCQUFnQixJQUNkQSxnQkFBZ0IsQ0FBQ3pCLEdBQUcsS0FBS3VCLGVBQWUsQ0FBQ3ZCLEdBQUcsS0FDM0N5QixnQkFBZ0IsQ0FBQzFDLElBQUksS0FBS1YsVUFBVSxHQUNuQ29ELGdCQUFnQixDQUFDckMsSUFBSSxDQUFDQyxTQUFTLEtBQUtrQyxlQUFlLENBQUNuQyxJQUFJLENBQUNDLFNBQVMsR0FDbEVvQyxnQkFBZ0IsQ0FBQ3JDLElBQUksQ0FBQ21CLElBQUksR0FBR2dCLGVBQWUsQ0FBQ25DLElBQUksQ0FBQ21CLElBQUksQ0FDNUQsQ0FBQztBQUNIIiwiaWdub3JlTGlzdCI6W119
|
|
110
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJub3JtYWxpemUiLCJPUFRJTUlTVElDIiwiQWJvcnRPcHRpbWlzdGljIiwic2V0UmVzcG9uc2VSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJjb250cm9sbGVyIiwiZXJyb3IiLCJyZWR1Y2VFcnJvciIsInJlc3BvbnNlIiwiX3N0YXRlJG1ldGEkYWN0aW9uJGtlIiwidHlwZSIsImVuZHBvaW50IiwiZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlIiwiY2FsbCIsInNuYXBzaG90IiwibWV0YSIsImZldGNoZWRBdCIsImFyZ3MiLCJlIiwiY29uc3RydWN0b3IiLCJyZXN1bHQiLCJlbnRpdGllcyIsImluZGV4ZXMiLCJlbnRpdGllc01ldGEiLCJzY2hlbWEiLCJlbmRwb2ludHMiLCJfZXh0ZW5kcyIsImtleSIsInVwZGF0ZSIsInVwZGF0ZXJzIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJjb25zb2xlIiwiZGF0ZSIsImV4cGlyZXNBdCIsInByZXZFeHBpcmVzQXQiLCJvcHRpbWlzdGljIiwiZmlsdGVyT3B0aW1pc3RpYyIsImxhc3RSZXNldCIsIm1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwidW5kZWZpbmVkIiwic3RhdHVzIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwibmFtZSIsImVycm9yUG9saWN5IiwicmVzb2x2aW5nQWN0aW9uIiwiZmlsdGVyIiwib3B0aW1pc3RpY0FjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0ZS9yZWR1Y2VyL3NldFJlc3BvbnNlUmVkdWNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub3JtYWxpemUgfSBmcm9tICdAZGF0YS1jbGllbnQvbm9ybWFsaXpyJztcblxuaW1wb3J0IHsgT1BUSU1JU1RJQyB9IGZyb20gJy4uLy4uL2FjdGlvblR5cGVzLmpzJztcbmltcG9ydCBBYm9ydE9wdGltaXN0aWMgZnJvbSAnLi4vLi4vY29udHJvbGxlci9BYm9ydE9wdGltaXN0aWMuanMnO1xuaW1wb3J0IHR5cGUgQ29udHJvbGxlciBmcm9tICcuLi8uLi9jb250cm9sbGVyL0NvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHR5cGUge1xuICBTdGF0ZSxcbiAgU2V0UmVzcG9uc2VBY3Rpb24sXG4gIE9wdGltaXN0aWNBY3Rpb24sXG59IGZyb20gJy4uLy4uL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlc3BvbnNlUmVkdWNlcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IE9wdGltaXN0aWNBY3Rpb24gfCBTZXRSZXNwb25zZUFjdGlvbixcbiAgY29udHJvbGxlcjogQ29udHJvbGxlcixcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGFjdGlvbi5lcnJvcikge1xuICAgIHJldHVybiByZWR1Y2VFcnJvcihzdGF0ZSwgYWN0aW9uLCBhY3Rpb24ucmVzcG9uc2UpO1xuICB9XG4gIHRyeSB7XG4gICAgbGV0IHJlc3BvbnNlOiBhbnk7XG4gICAgLy8gZm9yIHRydWUgc2V0J3MgcmVzcG9uc2UgaXMgY29udGFpbmVkIGluIGFjdGlvblxuICAgIGlmIChhY3Rpb24udHlwZSA9PT0gT1BUSU1JU1RJQykge1xuICAgICAgLy8gdGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghYWN0aW9uLmVuZHBvaW50LmdldE9wdGltaXN0aWNSZXNwb25zZSkgcmV0dXJuIHN0YXRlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gY29tcHV0ZSBvcHRpbWlzdGljIHJlc3BvbnNlIGJhc2VkIG9uIGN1cnJlbnQgc3RhdGVcbiAgICAgICAgcmVzcG9uc2UgPSBhY3Rpb24uZW5kcG9pbnQuZ2V0T3B0aW1pc3RpY1Jlc3BvbnNlLmNhbGwoXG4gICAgICAgICAgYWN0aW9uLmVuZHBvaW50LFxuICAgICAgICAgIGNvbnRyb2xsZXIuc25hcHNob3Qoc3RhdGUsIGFjdGlvbi5tZXRhLmZldGNoZWRBdCksXG4gICAgICAgICAgLi4uYWN0aW9uLmFyZ3MsXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgLy8gQWJvcnRPcHRpbWlzdGljIG1lYW5zICdkbyBub3RoaW5nJywgb3RoZXJ3aXNlIHdlIGNvdW50IHRoZSBleGNlcHRpb24gYXMgZW5kcG9pbnQgZmFpbHVyZVxuICAgICAgICBpZiAoZS5jb25zdHJ1Y3RvciA9PT0gQWJvcnRPcHRpbWlzdGljKSB7XG4gICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3BvbnNlID0gYWN0aW9uLnJlc3BvbnNlO1xuICAgIH1cbiAgICBjb25zdCB7IHJlc3VsdCwgZW50aXRpZXMsIGluZGV4ZXMsIGVudGl0aWVzTWV0YSB9ID0gbm9ybWFsaXplKFxuICAgICAgYWN0aW9uLmVuZHBvaW50LnNjaGVtYSxcbiAgICAgIHJlc3BvbnNlLFxuICAgICAgYWN0aW9uLmFyZ3MsXG4gICAgICBzdGF0ZSxcbiAgICAgIGFjdGlvbi5tZXRhLFxuICAgICk7XG4gICAgY29uc3QgZW5kcG9pbnRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcbiAgICAgIC4uLnN0YXRlLmVuZHBvaW50cyxcbiAgICAgIFthY3Rpb24ua2V5XTogcmVzdWx0LFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGlmIChhY3Rpb24uZW5kcG9pbnQudXBkYXRlKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZXJzID0gYWN0aW9uLmVuZHBvaW50LnVwZGF0ZShyZXN1bHQsIC4uLmFjdGlvbi5hcmdzKTtcbiAgICAgICAgT2JqZWN0LmtleXModXBkYXRlcnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICBlbmRwb2ludHNba2V5XSA9IHVwZGF0ZXJzW2tleV0oZW5kcG9pbnRzW2tleV0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIG5vIHJlYXNvbiB0byBjb21wbGV0ZWx5IGZhaWwgYmVjYXVzZSBvZiB1c2VyLWNvZGUgZXJyb3JcbiAgICAgIC8vIGludGVncml0eSBvZiB0aGlzIHN0YXRlIHVwZGF0ZSBpcyBzdGlsbCBndWFyYW50ZWVkXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEVuZHBvaW50LnVwZGF0ZSgpIGVycm9yOiAke2FjdGlvbi5rZXl9YCk7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGVudGl0aWVzLFxuICAgICAgZW5kcG9pbnRzLFxuICAgICAgaW5kZXhlcyxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgLi4uc3RhdGUubWV0YSxcbiAgICAgICAgW2FjdGlvbi5rZXldOiB7XG4gICAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgICBmZXRjaGVkQXQ6IGFjdGlvbi5tZXRhLmZldGNoZWRBdCxcbiAgICAgICAgICBleHBpcmVzQXQ6IGFjdGlvbi5tZXRhLmV4cGlyZXNBdCxcbiAgICAgICAgICBwcmV2RXhwaXJlc0F0OiBzdGF0ZS5tZXRhW2FjdGlvbi5rZXldPy5leHBpcmVzQXQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZW50aXRpZXNNZXRhLFxuICAgICAgb3B0aW1pc3RpYzogZmlsdGVyT3B0aW1pc3RpYyhzdGF0ZSwgYWN0aW9uKSxcbiAgICAgIGxhc3RSZXNldDogc3RhdGUubGFzdFJlc2V0LFxuICAgIH07XG4gICAgLy8gcmVkdWNlciBtdXN0IHVwZGF0ZSB0aGUgc3RhdGUsIHNvIGluIGNhc2Ugb2YgcHJvY2Vzc2luZyBlcnJvcnMgd2Ugc2ltcGx5IGNvbXB1dGUgdGhlIGVuZHBvaW50cyBpbmxpbmVcbiAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYEVycm9yIHByb2Nlc3NpbmcgJHtcbiAgICAgICAgYWN0aW9uLmtleVxuICAgICAgfVxcblxcbkZ1bGwgU2NoZW1hOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICBhY3Rpb24uZW5kcG9pbnQuc2NoZW1hLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIDIsXG4gICAgICApfVxcblxcbkVycm9yOlxcbiR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgaWYgKCdyZXNwb25zZScgaW4gYWN0aW9uKSBlcnJvci5yZXNwb25zZSA9IGFjdGlvbi5yZXNwb25zZTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGlzIG5vdCBhbHdheXMgYnViYmxlZCB1cCwgc28gbGV0J3MgZG91YmxlIHN1cmUgdGhpcyBkb2Vzbid0IGZhaWwgc2lsZW50bHlcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlZHVjZUVycm9yKHN0YXRlLCBhY3Rpb24sIGVycm9yKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWR1Y2VFcnJvcihcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICBhY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbiAgZXJyb3I6IGFueSxcbik6IFN0YXRlPHVua25vd24+IHtcbiAgaWYgKGVycm9yLm5hbWUgPT09ICdBYm9ydEVycm9yJykge1xuICAgIC8vIEluIGNhc2Ugd2UgYWJvcnQgc2ltcGx5IHVuZG8gdGhlIG9wdGltaXN0aWMgdXBkYXRlIGFuZCBhY3QgbGlrZSBubyBmZXRjaCBldmVuIG9jY3VyZWRcbiAgICAvLyBXZSBzdGlsbCB3YW50IHRob3NlIHdhdGNoaW5nIHByb21pc2VzIGZyb20gZmV0Y2ggZGlyZWN0bHkgdG8gb2JzZXJ2ZWQgdGhlIGFib3J0LCBidXQgd2UgZG9uJ3Qgd2FudCB0b1xuICAgIC8vIFRyaWdnZXIgZXJyb3JzIGluIHRoaXMgY2FzZS4gVGhpcyBtZWFucyB0aGVvcmV0aWNhbGx5IGltcHJvcGVybHkgYnVpbHQgYWJvcnRzIHVzZVN1c3BlbnNlKCkgY291bGQgc3VzcGVuZCBmb3JldmVyLlxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIG9wdGltaXN0aWM6IGZpbHRlck9wdGltaXN0aWMoc3RhdGUsIGFjdGlvbiksXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIG1ldGE6IHtcbiAgICAgIC4uLnN0YXRlLm1ldGEsXG4gICAgICBbYWN0aW9uLmtleV06IHtcbiAgICAgICAgZGF0ZTogYWN0aW9uLm1ldGEuZGF0ZSxcbiAgICAgICAgZmV0Y2hlZEF0OiBhY3Rpb24ubWV0YS5mZXRjaGVkQXQsXG4gICAgICAgIGV4cGlyZXNBdDogYWN0aW9uLm1ldGEuZXhwaXJlc0F0LFxuICAgICAgICBlcnJvcixcbiAgICAgICAgZXJyb3JQb2xpY3k6IGFjdGlvbi5lbmRwb2ludC5lcnJvclBvbGljeT8uKGVycm9yKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBvcHRpbWlzdGljOiBmaWx0ZXJPcHRpbWlzdGljKHN0YXRlLCBhY3Rpb24pLFxuICB9O1xufVxuLyoqIEZpbHRlciBhbGwgcmVxdWVzdHMgd2l0aCBzYW1lIHNlcmlhbGl6YXRpb24gdGhhdCBkaWQgbm90IHN0YXJ0IGFmdGVyIHRoZSByZXNvbHZpbmcgcmVxdWVzdCAqL1xuZnVuY3Rpb24gZmlsdGVyT3B0aW1pc3RpYyhcbiAgc3RhdGU6IFN0YXRlPHVua25vd24+LFxuICByZXNvbHZpbmdBY3Rpb246IFNldFJlc3BvbnNlQWN0aW9uIHwgT3B0aW1pc3RpY0FjdGlvbixcbikge1xuICByZXR1cm4gc3RhdGUub3B0aW1pc3RpYy5maWx0ZXIoXG4gICAgb3B0aW1pc3RpY0FjdGlvbiA9PlxuICAgICAgb3B0aW1pc3RpY0FjdGlvbi5rZXkgIT09IHJlc29sdmluZ0FjdGlvbi5rZXkgfHxcbiAgICAgIChvcHRpbWlzdGljQWN0aW9uLnR5cGUgPT09IE9QVElNSVNUSUMgP1xuICAgICAgICBvcHRpbWlzdGljQWN0aW9uLm1ldGEuZmV0Y2hlZEF0ICE9PSByZXNvbHZpbmdBY3Rpb24ubWV0YS5mZXRjaGVkQXRcbiAgICAgIDogb3B0aW1pc3RpY0FjdGlvbi5tZXRhLmRhdGUgPiByZXNvbHZpbmdBY3Rpb24ubWV0YS5kYXRlKSxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFNBQVMsUUFBUSx3QkFBd0I7QUFFbEQsU0FBU0MsVUFBVSxRQUFRLHNCQUFzQjtBQUNqRCxPQUFPQyxlQUFlLE1BQU0scUNBQXFDO0FBUWpFLE9BQU8sU0FBU0Msa0JBQWtCQSxDQUNoQ0MsS0FBcUIsRUFDckJDLE1BQTRDLEVBQzVDQyxVQUFzQixFQUNOO0VBQ2hCLElBQUlELE1BQU0sQ0FBQ0UsS0FBSyxFQUFFO0lBQ2hCLE9BQU9DLFdBQVcsQ0FBQ0osS0FBSyxFQUFFQyxNQUFNLEVBQUVBLE1BQU0sQ0FBQ0ksUUFBUSxDQUFDO0VBQ3BEO0VBQ0EsSUFBSTtJQUFBLElBQUFDLHFCQUFBO0lBQ0YsSUFBSUQsUUFBYTtJQUNqQjtJQUNBLElBQUlKLE1BQU0sQ0FBQ00sSUFBSSxLQUFLVixVQUFVLEVBQUU7TUFDOUI7TUFDQTtNQUNBLElBQUksQ0FBQ0ksTUFBTSxDQUFDTyxRQUFRLENBQUNDLHFCQUFxQixFQUFFLE9BQU9ULEtBQUs7TUFDeEQsSUFBSTtRQUNGO1FBQ0FLLFFBQVEsR0FBR0osTUFBTSxDQUFDTyxRQUFRLENBQUNDLHFCQUFxQixDQUFDQyxJQUFJLENBQ25EVCxNQUFNLENBQUNPLFFBQVEsRUFDZk4sVUFBVSxDQUFDUyxRQUFRLENBQUNYLEtBQUssRUFBRUMsTUFBTSxDQUFDVyxJQUFJLENBQUNDLFNBQVMsQ0FBQyxFQUNqRCxHQUFHWixNQUFNLENBQUNhLElBQ1osQ0FBQztNQUNILENBQUMsQ0FBQyxPQUFPQyxDQUFNLEVBQUU7UUFDZjtRQUNBLElBQUlBLENBQUMsQ0FBQ0MsV0FBVyxLQUFLbEIsZUFBZSxFQUFFO1VBQ3JDLE9BQU9FLEtBQUs7UUFDZDtRQUNBLE1BQU1lLENBQUM7TUFDVDtJQUNGLENBQUMsTUFBTTtNQUNMVixRQUFRLEdBQUdKLE1BQU0sQ0FBQ0ksUUFBUTtJQUM1QjtJQUNBLE1BQU07TUFBRVksTUFBTTtNQUFFQyxRQUFRO01BQUVDLE9BQU87TUFBRUM7SUFBYSxDQUFDLEdBQUd4QixTQUFTLENBQzNESyxNQUFNLENBQUNPLFFBQVEsQ0FBQ2EsTUFBTSxFQUN0QmhCLFFBQVEsRUFDUkosTUFBTSxDQUFDYSxJQUFJLEVBQ1hkLEtBQUssRUFDTEMsTUFBTSxDQUFDVyxJQUNULENBQUM7SUFDRCxNQUFNVSxTQUFrQyxHQUFBQyxRQUFBLEtBQ25DdkIsS0FBSyxDQUFDc0IsU0FBUztNQUNsQixDQUFDckIsTUFBTSxDQUFDdUIsR0FBRyxHQUFHUDtJQUFNLEVBQ3JCO0lBQ0QsSUFBSTtNQUNGLElBQUloQixNQUFNLENBQUNPLFFBQVEsQ0FBQ2lCLE1BQU0sRUFBRTtRQUMxQixNQUFNQyxRQUFRLEdBQUd6QixNQUFNLENBQUNPLFFBQVEsQ0FBQ2lCLE1BQU0sQ0FBQ1IsTUFBTSxFQUFFLEdBQUdoQixNQUFNLENBQUNhLElBQUksQ0FBQztRQUMvRGEsTUFBTSxDQUFDQyxJQUFJLENBQUNGLFFBQVEsQ0FBQyxDQUFDRyxPQUFPLENBQUNMLEdBQUcsSUFBSTtVQUNuQ0YsU0FBUyxDQUFDRSxHQUFHLENBQUMsR0FBR0UsUUFBUSxDQUFDRixHQUFHLENBQUMsQ0FBQ0YsU0FBUyxDQUFDRSxHQUFHLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUM7TUFDSjtNQUNBO01BQ0E7SUFDRixDQUFDLENBQUMsT0FBT3JCLEtBQUssRUFBRTtNQUNkMkIsT0FBTyxDQUFDM0IsS0FBSyxDQUFDLDRCQUE0QkYsTUFBTSxDQUFDdUIsR0FBRyxFQUFFLENBQUM7TUFDdkRNLE9BQU8sQ0FBQzNCLEtBQUssQ0FBQ0EsS0FBSyxDQUFDO0lBQ3RCO0lBQ0EsT0FBTztNQUNMZSxRQUFRO01BQ1JJLFNBQVM7TUFDVEgsT0FBTztNQUNQUCxJQUFJLEVBQUFXLFFBQUEsS0FDQ3ZCLEtBQUssQ0FBQ1ksSUFBSTtRQUNiLENBQUNYLE1BQU0sQ0FBQ3VCLEdBQUcsR0FBRztVQUNaTyxJQUFJLEVBQUU5QixNQUFNLENBQUNXLElBQUksQ0FBQ21CLElBQUk7VUFDdEJsQixTQUFTLEVBQUVaLE1BQU0sQ0FBQ1csSUFBSSxDQUFDQyxTQUFTO1VBQ2hDbUIsU0FBUyxFQUFFL0IsTUFBTSxDQUFDVyxJQUFJLENBQUNvQixTQUFTO1VBQ2hDQyxhQUFhLEdBQUEzQixxQkFBQSxHQUFFTixLQUFLLENBQUNZLElBQUksQ0FBQ1gsTUFBTSxDQUFDdUIsR0FBRyxDQUFDLHFCQUF0QmxCLHFCQUFBLENBQXdCMEI7UUFDekM7TUFBQyxFQUNGO01BQ0RaLFlBQVk7TUFDWmMsVUFBVSxFQUFFQyxnQkFBZ0IsQ0FBQ25DLEtBQUssRUFBRUMsTUFBTSxDQUFDO01BQzNDbUMsU0FBUyxFQUFFcEMsS0FBSyxDQUFDb0M7SUFDbkIsQ0FBQztJQUNEO0VBQ0YsQ0FBQyxDQUFDLE9BQU9qQyxLQUFVLEVBQUU7SUFDbkIsSUFBSSxPQUFPQSxLQUFLLEtBQUssUUFBUSxFQUFFO01BQzdCQSxLQUFLLENBQUNrQyxPQUFPLEdBQUcsb0JBQ2RwQyxNQUFNLENBQUN1QixHQUFHLG9CQUNRYyxJQUFJLENBQUNDLFNBQVMsQ0FDaEN0QyxNQUFNLENBQUNPLFFBQVEsQ0FBQ2EsTUFBTSxFQUN0Qm1CLFNBQVMsRUFDVCxDQUNGLENBQUMsZUFBZXJDLEtBQUssQ0FBQ2tDLE9BQU8sRUFBRTtNQUMvQixJQUFJLFVBQVUsSUFBSXBDLE1BQU0sRUFBRUUsS0FBSyxDQUFDRSxRQUFRLEdBQUdKLE1BQU0sQ0FBQ0ksUUFBUTtNQUMxREYsS0FBSyxDQUFDc0MsTUFBTSxHQUFHLEdBQUc7SUFDcEI7O0lBRUE7SUFDQTtJQUNBLElBQUlDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFO01BQ3pDZCxPQUFPLENBQUMzQixLQUFLLENBQUNBLEtBQUssQ0FBQztJQUN0QjtJQUNBLE9BQU9DLFdBQVcsQ0FBQ0osS0FBSyxFQUFFQyxNQUFNLEVBQUVFLEtBQUssQ0FBQztFQUMxQztBQUNGO0FBRUEsU0FBU0MsV0FBV0EsQ0FDbEJKLEtBQXFCLEVBQ3JCQyxNQUE0QyxFQUM1Q0UsS0FBVSxFQUNNO0VBQ2hCLElBQUlBLEtBQUssQ0FBQzBDLElBQUksS0FBSyxZQUFZLEVBQUU7SUFDL0I7SUFDQTtJQUNBO0lBQ0EsT0FBQXRCLFFBQUEsS0FDS3ZCLEtBQUs7TUFDUmtDLFVBQVUsRUFBRUMsZ0JBQWdCLENBQUNuQyxLQUFLLEVBQUVDLE1BQU07SUFBQztFQUUvQztFQUNBLE9BQUFzQixRQUFBLEtBQ0t2QixLQUFLO0lBQ1JZLElBQUksRUFBQVcsUUFBQSxLQUNDdkIsS0FBSyxDQUFDWSxJQUFJO01BQ2IsQ0FBQ1gsTUFBTSxDQUFDdUIsR0FBRyxHQUFHO1FBQ1pPLElBQUksRUFBRTlCLE1BQU0sQ0FBQ1csSUFBSSxDQUFDbUIsSUFBSTtRQUN0QmxCLFNBQVMsRUFBRVosTUFBTSxDQUFDVyxJQUFJLENBQUNDLFNBQVM7UUFDaENtQixTQUFTLEVBQUUvQixNQUFNLENBQUNXLElBQUksQ0FBQ29CLFNBQVM7UUFDaEM3QixLQUFLO1FBQ0wyQyxXQUFXLEVBQUU3QyxNQUFNLENBQUNPLFFBQVEsQ0FBQ3NDLFdBQVcsb0JBQTNCN0MsTUFBTSxDQUFDTyxRQUFRLENBQUNzQyxXQUFXLENBQUczQyxLQUFLO01BQ2xEO0lBQUMsRUFDRjtJQUNEK0IsVUFBVSxFQUFFQyxnQkFBZ0IsQ0FBQ25DLEtBQUssRUFBRUMsTUFBTTtFQUFDO0FBRS9DO0FBQ0E7QUFDQSxTQUFTa0MsZ0JBQWdCQSxDQUN2Qm5DLEtBQXFCLEVBQ3JCK0MsZUFBcUQsRUFDckQ7RUFDQSxPQUFPL0MsS0FBSyxDQUFDa0MsVUFBVSxDQUFDYyxNQUFNLENBQzVCQyxnQkFBZ0IsSUFDZEEsZ0JBQWdCLENBQUN6QixHQUFHLEtBQUt1QixlQUFlLENBQUN2QixHQUFHLEtBQzNDeUIsZ0JBQWdCLENBQUMxQyxJQUFJLEtBQUtWLFVBQVUsR0FDbkNvRCxnQkFBZ0IsQ0FBQ3JDLElBQUksQ0FBQ0MsU0FBUyxLQUFLa0MsZUFBZSxDQUFDbkMsSUFBSSxDQUFDQyxTQUFTLEdBQ2xFb0MsZ0JBQWdCLENBQUNyQyxJQUFJLENBQUNtQixJQUFJLEdBQUdnQixlQUFlLENBQUNuQyxJQUFJLENBQUNtQixJQUFJLENBQzVELENBQUM7QUFDSCIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -16,6 +16,7 @@ export default class DevToolsManager implements Manager {
|
|
|
16
16
|
protected actions: [ActionTypes, State<unknown>][];
|
|
17
17
|
protected controller: Controller;
|
|
18
18
|
skipLogging?: (action: ActionTypes) => boolean;
|
|
19
|
+
devtoolsName: string;
|
|
19
20
|
maxBufferLength: number;
|
|
20
21
|
constructor(config?: DevToolsConfig, skipLogging?: (action: ActionTypes) => boolean);
|
|
21
22
|
handleAction(action: any, state: any): void;
|