@kovalenko/http-request-cache 1.3.6 → 1.3.7
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 +9 -0
- package/esm2020/lib/http-request-cache.decorator.mjs +85 -13
- package/fesm2015/kovalenko-http-request-cache.mjs +85 -13
- package/fesm2015/kovalenko-http-request-cache.mjs.map +1 -1
- package/fesm2020/kovalenko-http-request-cache.mjs +84 -12
- package/fesm2020/kovalenko-http-request-cache.mjs.map +1 -1
- package/lib/http-request-cache.decorator.js +86 -14
- package/lib/http-request-cache.decorator.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [1.3.7](https://github.com/menelai/http-request-cache/compare/v1.3.6...v1.3.7) (2026-09-28)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* args serializer ([242948a](https://github.com/menelai/http-request-cache/commit/242948ae49188e6e574c3d159a3e1df16871af45))
|
|
7
|
+
* cache in instance ([736dde3](https://github.com/menelai/http-request-cache/commit/736dde34e799a6d64c786f9948bf502b950e8c84))
|
|
8
|
+
* subscriber number increment ([449b56e](https://github.com/menelai/http-request-cache/commit/449b56ef1ea0c5db4c26bcaa6d5f90246c9d257a))
|
|
9
|
+
|
|
1
10
|
## [1.3.6](https://github.com/menelai/http-request-cache/compare/v1.3.5...v1.3.6) (2026-09-28)
|
|
2
11
|
|
|
3
12
|
|
|
@@ -1,6 +1,66 @@
|
|
|
1
1
|
import { filter, finalize, merge, NEVER, ReplaySubject, share, startWith, Subject, switchMap, tap, timer, } from 'rxjs';
|
|
2
2
|
import { DefaultStorage } from './default-storage';
|
|
3
3
|
import { RequestTimes } from './request-times';
|
|
4
|
+
const serializeArg = (value) => {
|
|
5
|
+
const seen = new WeakMap();
|
|
6
|
+
let counter = 0;
|
|
7
|
+
const serialize = (v) => {
|
|
8
|
+
if (v === null) {
|
|
9
|
+
return 'null';
|
|
10
|
+
}
|
|
11
|
+
const t = typeof v;
|
|
12
|
+
if (t === 'number' || t === 'boolean') {
|
|
13
|
+
return String(v);
|
|
14
|
+
}
|
|
15
|
+
if (t === 'bigint') {
|
|
16
|
+
return `${v}n`;
|
|
17
|
+
}
|
|
18
|
+
if (t === 'undefined' || t === 'symbol' || t === 'function') {
|
|
19
|
+
return 'undef';
|
|
20
|
+
}
|
|
21
|
+
if (t === 'string') {
|
|
22
|
+
return `str:${v}`;
|
|
23
|
+
}
|
|
24
|
+
if (t !== 'object') {
|
|
25
|
+
return `${t}:${String(v)}`;
|
|
26
|
+
}
|
|
27
|
+
if (v instanceof Date) {
|
|
28
|
+
return `date:${v.toISOString()}`;
|
|
29
|
+
}
|
|
30
|
+
if (v instanceof RegExp) {
|
|
31
|
+
return `regexp:${v.toString()}`;
|
|
32
|
+
}
|
|
33
|
+
const path = seen.get(v);
|
|
34
|
+
if (path !== undefined) {
|
|
35
|
+
return `circ:${path}`;
|
|
36
|
+
}
|
|
37
|
+
seen.set(v, `v${counter++}`);
|
|
38
|
+
let out;
|
|
39
|
+
if (v instanceof Map) {
|
|
40
|
+
out = `map:${serialize(Array.from(v.entries()))}`;
|
|
41
|
+
}
|
|
42
|
+
else if (v instanceof Set) {
|
|
43
|
+
out = `set:${serialize(Array.from(v.values()))}`;
|
|
44
|
+
}
|
|
45
|
+
else if (Array.isArray(v)) {
|
|
46
|
+
out = `[${v.map(serialize).join(',')}]`;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
out = `{${Object.keys(v).sort().map((k) => `${serialize(k)}:${serialize(v[k])}`).join(',')}}`;
|
|
50
|
+
}
|
|
51
|
+
seen.delete(v);
|
|
52
|
+
return out;
|
|
53
|
+
};
|
|
54
|
+
return serialize(value);
|
|
55
|
+
};
|
|
56
|
+
const hashArgs = (input) => {
|
|
57
|
+
let h = 0x811c9dc5;
|
|
58
|
+
for (let i = 0; i < input.length; i++) {
|
|
59
|
+
h ^= input.charCodeAt(i);
|
|
60
|
+
h = Math.imul(h, 0x01000193);
|
|
61
|
+
}
|
|
62
|
+
return (h >>> 0).toString(36);
|
|
63
|
+
};
|
|
4
64
|
export const HttpRequestCache = (optionsHandler) => {
|
|
5
65
|
return (target, methodName, descriptor) => {
|
|
6
66
|
if (!(descriptor?.value instanceof Function)) {
|
|
@@ -11,16 +71,28 @@ export const HttpRequestCache = (optionsHandler) => {
|
|
|
11
71
|
const working = {};
|
|
12
72
|
const subscribers = {};
|
|
13
73
|
const removeTimers = {};
|
|
74
|
+
const instanceIds = new WeakMap();
|
|
75
|
+
let instanceIdCounter = 0;
|
|
14
76
|
descriptor.value = function (...args) {
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
77
|
+
const self = this ?? target;
|
|
78
|
+
const options = optionsHandler?.call(self, self, ...args);
|
|
79
|
+
if (!options?.storage && !self.___storage___) {
|
|
80
|
+
self.___storage___ = new DefaultStorage();
|
|
18
81
|
}
|
|
19
|
-
if (options?.ttl && !
|
|
20
|
-
|
|
82
|
+
if (options?.ttl && !self.___ttl_storage___) {
|
|
83
|
+
self.___ttl_storage___ = new RequestTimes();
|
|
84
|
+
}
|
|
85
|
+
const storage = options?.storage ?? self.___storage___;
|
|
86
|
+
let instanceId = '';
|
|
87
|
+
if (!options?.storage) {
|
|
88
|
+
let id = instanceIds.get(self);
|
|
89
|
+
if (id === undefined) {
|
|
90
|
+
id = ++instanceIdCounter;
|
|
91
|
+
instanceIds.set(self, id);
|
|
92
|
+
}
|
|
93
|
+
instanceId = `_${id}`;
|
|
21
94
|
}
|
|
22
|
-
const
|
|
23
|
-
const key = `${cacheKeyPrefix}_${JSON.stringify(args)}`;
|
|
95
|
+
const key = `${cacheKeyPrefix}${instanceId}_${hashArgs(serializeArg(args))}`;
|
|
24
96
|
// отменяем запланированное удаление
|
|
25
97
|
if (removeTimers[key]) {
|
|
26
98
|
clearTimeout(removeTimers[key]);
|
|
@@ -28,7 +100,7 @@ export const HttpRequestCache = (optionsHandler) => {
|
|
|
28
100
|
}
|
|
29
101
|
let ttl = undefined;
|
|
30
102
|
if (options?.ttl) {
|
|
31
|
-
ttl =
|
|
103
|
+
ttl = self.___ttl_storage___.getItem(key);
|
|
32
104
|
if (!ttl) {
|
|
33
105
|
ttl = {
|
|
34
106
|
requestTime: Date.now(),
|
|
@@ -40,7 +112,7 @@ export const HttpRequestCache = (optionsHandler) => {
|
|
|
40
112
|
ttl.requestTime = Date.now();
|
|
41
113
|
ttl.subject.next();
|
|
42
114
|
}
|
|
43
|
-
|
|
115
|
+
self.___ttl_storage___.setItem(key, ttl);
|
|
44
116
|
}
|
|
45
117
|
const refreshOn = merge(options?.refreshOn ?? NEVER, ttl?.subject ?? NEVER);
|
|
46
118
|
let observable = storage.getItem(key);
|
|
@@ -63,7 +135,7 @@ export const HttpRequestCache = (optionsHandler) => {
|
|
|
63
135
|
if (options?.refCount) {
|
|
64
136
|
const unset = () => {
|
|
65
137
|
storage.deleteItem(key);
|
|
66
|
-
|
|
138
|
+
self.___ttl_storage___?.deleteItem(key);
|
|
67
139
|
delete removeTimers[key];
|
|
68
140
|
};
|
|
69
141
|
if (options.refCountDelay == null) {
|
|
@@ -79,14 +151,14 @@ export const HttpRequestCache = (optionsHandler) => {
|
|
|
79
151
|
if (options?.windowTime) {
|
|
80
152
|
setTimeout(() => {
|
|
81
153
|
storage.deleteItem(key);
|
|
82
|
-
|
|
154
|
+
self.___ttl_storage___?.deleteItem(key);
|
|
83
155
|
}, options.windowTime);
|
|
84
156
|
}
|
|
85
157
|
}
|
|
86
|
-
subscribers[key]
|
|
158
|
+
subscribers[key] = (subscribers[key] ?? 0) + 1;
|
|
87
159
|
return observable;
|
|
88
160
|
};
|
|
89
161
|
return descriptor;
|
|
90
162
|
};
|
|
91
163
|
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LWNhY2hlLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1jYWNoZS9zcmMvbGliL2h0dHAtcmVxdWVzdC1jYWNoZS5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFFTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxLQUFLLEdBQ04sTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSTdDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQWdDLGNBQTZELEVBQUUsRUFBRTtJQUMvSCxPQUFPLENBQ0wsTUFBUyxFQUNULFVBQWtCLEVBQ2xCLFVBQTJELEVBQ1YsRUFBRTtRQUNuRCxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxZQUFZLFFBQVEsQ0FBQyxFQUFFO1lBQzVDLE1BQU0sS0FBSyxDQUFDLHlGQUF5RixDQUFDLENBQUM7U0FDeEc7UUFFRCxNQUFNLGNBQWMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2xFLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUM1QyxNQUFNLFdBQVcsR0FBMkIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFrRCxFQUFFLENBQUM7UUFFdkUsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFTLEdBQUcsSUFBVztZQUN4QyxNQUFNLE9BQU8sR0FBRyxjQUFjLEVBQUUs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V0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFFbkIsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQyxDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZmlsdGVyLFxuICBmaW5hbGl6ZSxcbiAgbWVyZ2UsXG4gIE5FVkVSLFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBzaGFyZSxcbiAgc3RhcnRXaXRoLFxuICBTdWJqZWN0LFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbiAgdGltZXIsXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0RlZmF1bHRTdG9yYWdlfSBmcm9tICcuL2RlZmF1bHQtc3RvcmFnZSc7XG5pbXBvcnQge0h0dHBDYWNoZU9wdGlvbnN9IGZyb20gJy4vaHR0cC1jYWNoZS1vcHRpb25zJztcbmltcG9ydCB7UmVxdWVzdFRpbWVzfSBmcm9tICcuL3JlcXVlc3QtdGltZXMnO1xuXG50eXBlIEh0dHBSZXF1ZXN0Q2FjaGVNZXRob2QgPSAoLi4uYXJnczogYW55W10pID0+IE9ic2VydmFibGU8YW55PjtcblxuZXhwb3J0IGNvbnN0IEh0dHBSZXF1ZXN0Q2FjaGUgPSA8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+KG9wdGlvbnNIYW5kbGVyPzogKG9iajogVCwgLi4uYXJnczogYW55W10pID0+IEh0dHBDYWNoZU9wdGlvbnMpID0+IHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IFQsXG4gICAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEh0dHBSZXF1ZXN0Q2FjaGVNZXRob2Q+LFxuICApOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxIdHRwUmVxdWVzdENhY2hlTWV0aG9kPiA9PiB7XG4gICAgaWYgKCEoZGVzY3JpcHRvcj8udmFsdWUgaW5zdGFuY2VvZiBGdW5jdGlvbikpIHtcbiAgICAgIHRocm93IEVycm9yKGAnQEh0dHBSZXF1ZXN0Q2FjaGUnIGNhbiBiZSBhcHBsaWVkIG9ubHkgdG8gdGhlIGNsYXNzIG1ldGhvZCB3aGljaCByZXR1cm5zIGFuIE9ic2VydmFibGVgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjYWNoZUtleVByZWZpeCA9IGAke3RhcmdldC5jb25zdHJ1Y3Rvci5uYW1lfV8ke21ldGhvZE5hbWV9YDtcbiAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgY29uc3Qgd29ya2luZzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcbiAgICBjb25zdCBzdWJzY3JpYmVyczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9O1xuICAgIGNvbnN0IHJlbW92ZVRpbWVyczogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+ID0ge307XG5cbiAgICBkZXNjcmlwdG9yLnZhbHVlID0gZnVuY3Rpb24oLi4uYXJnczogYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IG9wdGlvbnNIYW5kbGVyPy5jYWxsKHRoaXMgYXMgVCwgdGhpcyBhcyBULCAuLi5hcmdzKTtcblxuICAgICAgaWYgKCFvcHRpb25zPy5zdG9yYWdlICYmICEodGFyZ2V0IGFzIGFueSkuX19fX19zdG9yYWdlX19fX18pIHtcbiAgICAgICAgKHRhcmdldCBhcyBhbnkpLl9fX19fc3RvcmFnZV9fX19fID0gbmV3IERlZmF1bHRTdG9yYWdlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zPy50dGwgJiYgISh0YXJnZXQgYXMgYW55KS5fX19fX3R0bF9zdG9yYWdlX19fX18pIHtcbiAgICAgICAgKHRhcmdldCBhcyBhbnkpLl9fX19fdHRsX3N0b3JhZ2VfX19fXyA9IG5ldyBSZXF1ZXN0VGltZXMoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RvcmFnZSA9IG9wdGlvbnM/LnN0b3JhZ2UgPz8gKHRhcmdldCBhcyBhbnkpLl9fX19fc3RvcmFnZV9fX19fO1xuXG4gICAgICBjb25zdCBrZXkgPSBgJHtjYWNoZUtleVByZWZpeH1fJHtKU09OLnN0cmluZ2lmeShhcmdzKX1gO1xuXG4gICAgICAvLyDQvtGC0LzQtdC90Y/QtdC8INC30LDQv9C70LDQvdC40YDQvtCy0LDQvdC90L7QtSDRg9C00LDQu9C10L3QuNC1XG4gICAgICBpZiAocmVtb3ZlVGltZXJzW2tleV0pIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHJlbW92ZVRpbWVyc1trZXldKTtcbiAgICAgICAgZGVsZXRlIHJlbW92ZVRpbWVyc1trZXldO1xuICAgICAgfVxuXG4gICAgICBsZXQgdHRsOiB7cmVxdWVzdFRpbWU6IG51bWJlciwgc3ViamVjdDogU3ViamVjdDx2b2lkPn0gPSB1bmRlZmluZWQgYXMgYW55O1xuXG4gICAgICBpZiAob3B0aW9ucz8udHRsKSB7XG4gICAgICAgIHR0bCA9ICh0YXJnZXQgYXMgYW55KS5fX19fX3R0bF9zdG9yYWdlX19fX18uZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgIGlmICghdHRsKSB7XG4gICAgICAgICAgdHRsID0ge1xuICAgICAgICAgICAgcmVxdWVzdFRpbWU6IERhdGUubm93KCksXG4gICAgICAgICAgICBzdWJqZWN0OiBuZXcgU3ViamVjdCgpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAodHRsLnJlcXVlc3RUaW1lICsgb3B0aW9ucy50dGwgPD0gRGF0ZS5ub3coKSkge1xuICAgICAgICAgIHdvcmtpbmdba2V5XSA9IHRydWU7XG4gICAgICAgICAgdHRsLnJlcXVlc3RUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICB0dGwuc3ViamVjdC5uZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICAodGFyZ2V0IGFzIGFueSkuX19fX190dGxfc3RvcmFnZV9fX19fLnNldEl0ZW0oa2V5LCB0dGwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZWZyZXNoT24gPSBtZXJnZShcbiAgICAgICAgb3B0aW9ucz8ucmVmcmVzaE9uID8/IE5FVkVSIGFzIE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgICAgIHR0bD8uc3ViamVjdCA/PyBORVZFUiBhcyBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgKTtcblxuICAgICAgbGV0IG9ic2VydmFibGUgPSBzdG9yYWdlLmdldEl0ZW0oa2V5KTtcblxuICAgICAgaWYgKCFvYnNlcnZhYmxlKSB7XG4gICAgICAgIG9ic2VydmFibGUgPSByZWZyZXNoT24ucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgodHJ1ZSksXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIFsuLi5hcmdzXSkpLFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBkZWxldGUgd29ya2luZ1trZXldO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHNoYXJlKHtcbiAgICAgICAgICAgIGNvbm5lY3RvcjogKCkgPT4gbmV3IFJlcGxheVN1YmplY3QoMSksXG4gICAgICAgICAgICByZXNldE9uQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgcmVzZXRPbkVycm9yOiB0cnVlLFxuICAgICAgICAgICAgcmVzZXRPblJlZkNvdW50WmVybzogIW9wdGlvbnM/LnJlZkNvdW50XG4gICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgOiBvcHRpb25zLnJlZkNvdW50RGVsYXkgIT0gbnVsbFxuICAgICAgICAgICAgICAgID8gKCkgPT4gdGltZXIob3B0aW9ucy5yZWZDb3VudERlbGF5ISlcbiAgICAgICAgICAgICAgICA6IHRydWUsXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsdGVyKCgpID0+ICF3b3JraW5nW2tleV0pLFxuICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmliZXJzW2tleV0tLTtcblxuICAgICAgICAgICAgaWYgKHN1YnNjcmliZXJzW2tleV0gPD0gMCkge1xuICAgICAgICAgICAgICBkZWxldGUgc3Vic2NyaWJlcnNba2V5XTtcblxuICAgICAgICAgICAgICBpZiAob3B0aW9ucz8ucmVmQ291bnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1bnNldCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHN0b3JhZ2UuZGVsZXRlSXRlbShrZXkpO1xuICAgICAgICAgICAgICAgICAgKHRhcmdldCBhcyBhbnkpLl9fX19fdHRsX3N0b3JhZ2VfX19fXz8uZGVsZXRlSXRlbShrZXkpO1xuXG4gICAgICAgICAgICAgICAgICBkZWxldGUgcmVtb3ZlVGltZXJzW2tleV07XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnJlZkNvdW50RGVsYXkgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgdW5zZXQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgcmVtb3ZlVGltZXJzW2tleV0gPSBzZXRUaW1lb3V0KHVuc2V0LCBvcHRpb25zLnJlZkNvdW50RGVsYXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgICBzdG9yYWdlLnNldEl0ZW0oa2V5LCBvYnNlcnZhYmxlKTtcblxuICAgICAgICBpZiAob3B0aW9ucz8ud2luZG93VGltZSkge1xuICAgICAgICAgIHNldFRpbWVvdXQoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgIHN0b3JhZ2UuZGVsZXRlSXRlbShrZXkpO1xuICAgICAgICAgICAgICAodGFyZ2V0IGFzIGFueSkuX19fX190dGxfc3RvcmFnZV9fX19fPy5kZWxldGVJdGVtKGtleSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3B0aW9ucy53aW5kb3dUaW1lLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3Vic2NyaWJlcnNba2V5XSsrO1xuXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59O1xuXG4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1yZXF1ZXN0LWNhY2hlLmRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1jYWNoZS9zcmMvbGliL2h0dHAtcmVxdWVzdC1jYWNoZS5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFFTCxhQUFhLEVBQ2IsS0FBSyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsRUFDSCxLQUFLLEdBQ04sTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSTdDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBVSxFQUFVLEVBQUU7SUFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7SUFDM0MsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBRWhCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBTSxFQUFVLEVBQUU7UUFDbkMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ2QsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUNELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRW5CLElBQUksQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3JDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ2xCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxLQUFLLFdBQVcsSUFBSSxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxVQUFVLEVBQUU7WUFDM0QsT0FBTyxP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QUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGZpbHRlcixcbiAgZmluYWxpemUsXG4gIG1lcmdlLFxuICBORVZFUixcbiAgT2JzZXJ2YWJsZSxcbiAgUmVwbGF5U3ViamVjdCxcbiAgc2hhcmUsXG4gIHN0YXJ0V2l0aCxcbiAgU3ViamVjdCxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG4gIHRpbWVyLFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtEZWZhdWx0U3RvcmFnZX0gZnJvbSAnLi9kZWZhdWx0LXN0b3JhZ2UnO1xuaW1wb3J0IHtIdHRwQ2FjaGVPcHRpb25zfSBmcm9tICcuL2h0dHAtY2FjaGUtb3B0aW9ucyc7XG5pbXBvcnQge1JlcXVlc3RUaW1lc30gZnJvbSAnLi9yZXF1ZXN0LXRpbWVzJztcblxudHlwZSBIdHRwUmVxdWVzdENhY2hlTWV0aG9kID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBPYnNlcnZhYmxlPGFueT47XG5cbmNvbnN0IHNlcmlhbGl6ZUFyZyA9ICh2YWx1ZTogYW55KTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc2VlbiA9IG5ldyBXZWFrTWFwPG9iamVjdCwgc3RyaW5nPigpO1xuICBsZXQgY291bnRlciA9IDA7XG5cbiAgY29uc3Qgc2VyaWFsaXplID0gKHY6IGFueSk6IHN0cmluZyA9PiB7XG4gICAgaWYgKHYgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnbnVsbCc7XG4gICAgfVxuICAgIGNvbnN0IHQgPSB0eXBlb2YgdjtcblxuICAgIGlmICh0ID09PSAnbnVtYmVyJyB8fCB0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBTdHJpbmcodik7XG4gICAgfVxuICAgIGlmICh0ID09PSAnYmlnaW50Jykge1xuICAgICAgcmV0dXJuIGAke3Z9bmA7XG4gICAgfVxuICAgIGlmICh0ID09PSAndW5kZWZpbmVkJyB8fCB0ID09PSAnc3ltYm9sJyB8fCB0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gJ3VuZGVmJztcbiAgICB9XG4gICAgaWYgKHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYHN0cjoke3Z9YDtcbiAgICB9XG4gICAgaWYgKHQgIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gYCR7dH06JHtTdHJpbmcodil9YDtcbiAgICB9XG5cbiAgICBpZiAodiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiBgZGF0ZToke3YudG9JU09TdHJpbmcoKX1gO1xuICAgIH1cbiAgICBpZiAodiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIGByZWdleHA6JHt2LnRvU3RyaW5nKCl9YDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXRoID0gc2Vlbi5nZXQodik7XG4gICAgaWYgKHBhdGggIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGBjaXJjOiR7cGF0aH1gO1xuICAgIH1cbiAgICBzZWVuLnNldCh2LCBgdiR7Y291bnRlcisrfWApO1xuXG4gICAgbGV0IG91dDogc3RyaW5nO1xuICAgIGlmICh2IGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICBvdXQgPSBgbWFwOiR7c2VyaWFsaXplKEFycmF5LmZyb20odi5lbnRyaWVzKCkpKX1gO1xuICAgIH0gZWxzZSBpZiAodiBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgb3V0ID0gYHNldDoke3NlcmlhbGl6ZShBcnJheS5mcm9tKHYudmFsdWVzKCkpKX1gO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgb3V0ID0gYFske3YubWFwKHNlcmlhbGl6ZSkuam9pbignLCcpfV1gO1xuICAgIH0gZWxzZSB7XG4gICAgICBvdXQgPSBgeyR7T2JqZWN0LmtleXModikuc29ydCgpLm1hcCgoazogc3RyaW5nKTogc3RyaW5nID0+IGAke3NlcmlhbGl6ZShrKX06JHtzZXJpYWxpemUodltrXSl9YCkuam9pbignLCcpfX1gO1xuICAgIH1cblxuICAgIHNlZW4uZGVsZXRlKHYpO1xuICAgIHJldHVybiBvdXQ7XG4gIH07XG5cbiAgcmV0dXJuIHNlcmlhbGl6ZSh2YWx1ZSk7XG59O1xuXG5jb25zdCBoYXNoQXJncyA9IChpbnB1dDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgbGV0IGggPSAweDgxMWM5ZGM1O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgaCBePSBpbnB1dC5jaGFyQ29kZUF0KGkpO1xuICAgIGggPSBNYXRoLmltdWwoaCwgMHgwMTAwMDE5Myk7XG4gIH1cbiAgcmV0dXJuIChoID4+PiAwKS50b1N0cmluZygzNik7XG59O1xuXG5leHBvcnQgY29uc3QgSHR0cFJlcXVlc3RDYWNoZSA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4ob3B0aW9uc0hhbmRsZXI/OiAob2JqOiBULCAuLi5hcmdzOiBhbnlbXSkgPT4gSHR0cENhY2hlT3B0aW9ucykgPT4ge1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogVCxcbiAgICBtZXRob2ROYW1lOiBzdHJpbmcsXG4gICAgZGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8SHR0cFJlcXVlc3RDYWNoZU1ldGhvZD4sXG4gICk6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPEh0dHBSZXF1ZXN0Q2FjaGVNZXRob2Q+ID0+IHtcbiAgICBpZiAoIShkZXNjcmlwdG9yPy52YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYCdASHR0cFJlcXVlc3RDYWNoZScgY2FuIGJlIGFwcGxpZWQgb25seSB0byB0aGUgY2xhc3MgbWV0aG9kIHdoaWNoIHJldHVybnMgYW4gT2JzZXJ2YWJsZWApO1xuICAgIH1cblxuICAgIGNvbnN0IGNhY2hlS2V5UHJlZml4ID0gYCR7dGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWV9XyR7bWV0aG9kTmFtZX1gO1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gZGVzY3JpcHRvci52YWx1ZTtcbiAgICBjb25zdCB3b3JraW5nOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xuICAgIGNvbnN0IHN1YnNjcmliZXJzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge307XG4gICAgY29uc3QgcmVtb3ZlVGltZXJzOiBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4gPSB7fTtcbiAgICBjb25zdCBpbnN0YW5jZUlkcyA9IG5ldyBXZWFrTWFwPG9iamVjdCwgbnVtYmVyPigpO1xuICAgIGxldCBpbnN0YW5jZUlkQ291bnRlciA9IDA7XG5cbiAgICBkZXNjcmlwdG9yLnZhbHVlID0gZnVuY3Rpb24oLi4uYXJnczogYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgY29uc3Qgc2VsZiA9ICh0aGlzIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pID8/IHRhcmdldDtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBvcHRpb25zSGFuZGxlcj8uY2FsbChzZWxmIGFzIFQsIHNlbGYgYXMgVCwgLi4uYXJncyk7XG5cbiAgICAgIGlmICghb3B0aW9ucz8uc3RvcmFnZSAmJiAhc2VsZi5fX19zdG9yYWdlX19fKSB7XG4gICAgICAgIHNlbGYuX19fc3RvcmFnZV9fXyA9IG5ldyBEZWZhdWx0U3RvcmFnZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0aW9ucz8udHRsICYmICFzZWxmLl9fX3R0bF9zdG9yYWdlX19fKSB7XG4gICAgICAgIHNlbGYuX19fdHRsX3N0b3JhZ2VfX18gPSBuZXcgUmVxdWVzdFRpbWVzKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBvcHRpb25zPy5zdG9yYWdlID8/IHNlbGYuX19fc3RvcmFnZV9fXztcblxuICAgICAgbGV0IGluc3RhbmNlSWQgPSAnJztcbiAgICAgIGlmICghb3B0aW9ucz8uc3RvcmFnZSkge1xuICAgICAgICBsZXQgaWQgPSBpbnN0YW5jZUlkcy5nZXQoc2VsZik7XG4gICAgICAgIGlmIChpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgaWQgPSArK2luc3RhbmNlSWRDb3VudGVyO1xuICAgICAgICAgIGluc3RhbmNlSWRzLnNldChzZWxmLCBpZCk7XG4gICAgICAgIH1cbiAgICAgICAgaW5zdGFuY2VJZCA9IGBfJHtpZH1gO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBrZXkgPSBgJHtjYWNoZUtleVByZWZpeH0ke2luc3RhbmNlSWR9XyR7aGFzaEFyZ3Moc2VyaWFsaXplQXJnKGFyZ3MpKX1gO1xuXG4gICAgICAvLyDQvtGC0LzQtdC90Y/QtdC8INC30LDQv9C70LDQvdC40YDQvtCy0LDQvdC90L7QtSDRg9C00LDQu9C10L3QuNC1XG4gICAgICBpZiAocmVtb3ZlVGltZXJzW2tleV0pIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHJlbW92ZVRpbWVyc1trZXldKTtcbiAgICAgICAgZGVsZXRlIHJlbW92ZVRpbWVyc1trZXldO1xuICAgICAgfVxuXG4gICAgICBsZXQgdHRsOiB7cmVxdWVzdFRpbWU6IG51bWJlciwgc3ViamVjdDogU3ViamVjdDx2b2lkPn0gPSB1bmRlZmluZWQgYXMgYW55O1xuXG4gICAgICBpZiAob3B0aW9ucz8udHRsKSB7XG4gICAgICAgIHR0bCA9IHNlbGYuX19fdHRsX3N0b3JhZ2VfX18uZ2V0SXRlbShrZXkpO1xuXG4gICAgICAgIGlmICghdHRsKSB7XG4gICAgICAgICAgdHRsID0ge1xuICAgICAgICAgICAgcmVxdWVzdFRpbWU6IERhdGUubm93KCksXG4gICAgICAgICAgICBzdWJqZWN0OiBuZXcgU3ViamVjdCgpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSBpZiAodHRsLnJlcXVlc3RUaW1lICsgb3B0aW9ucy50dGwgPD0gRGF0ZS5ub3coKSkge1xuICAgICAgICAgIHdvcmtpbmdba2V5XSA9IHRydWU7XG4gICAgICAgICAgdHRsLnJlcXVlc3RUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICB0dGwuc3ViamVjdC5uZXh0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZWxmLl9fX3R0bF9zdG9yYWdlX19fLnNldEl0ZW0oa2V5LCB0dGwpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZWZyZXNoT24gPSBtZXJnZShcbiAgICAgICAgb3B0aW9ucz8ucmVmcmVzaE9uID8/IE5FVkVSIGFzIE9ic2VydmFibGU8dW5rbm93bj4sXG4gICAgICAgIHR0bD8uc3ViamVjdCA/PyBORVZFUiBhcyBPYnNlcnZhYmxlPHVua25vd24+LFxuICAgICAgKTtcblxuICAgICAgbGV0IG9ic2VydmFibGUgPSBzdG9yYWdlLmdldEl0ZW0oa2V5KTtcblxuICAgICAgaWYgKCFvYnNlcnZhYmxlKSB7XG4gICAgICAgIG9ic2VydmFibGUgPSByZWZyZXNoT24ucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgodHJ1ZSksXG4gICAgICAgICAgc3dpdGNoTWFwKCgpID0+IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIFsuLi5hcmdzXSkpLFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBkZWxldGUgd29ya2luZ1trZXldO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHNoYXJlKHtcbiAgICAgICAgICAgIGNvbm5lY3RvcjogKCkgPT4gbmV3IFJlcGxheVN1YmplY3QoMSksXG4gICAgICAgICAgICByZXNldE9uQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgcmVzZXRPbkVycm9yOiB0cnVlLFxuICAgICAgICAgICAgcmVzZXRPblJlZkNvdW50WmVybzogIW9wdGlvbnM/LnJlZkNvdW50XG4gICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgOiBvcHRpb25zLnJlZkNvdW50RGVsYXkgIT0gbnVsbFxuICAgICAgICAgICAgICAgID8gKCk6IE9ic2VydmFibGU8bnVtYmVyPiA9PiB0aW1lcihvcHRpb25zLnJlZkNvdW50RGVsYXkhKVxuICAgICAgICAgICAgICAgIDogdHJ1ZSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBmaWx0ZXIoKCkgPT4gIXdvcmtpbmdba2V5XSksXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgc3Vic2NyaWJlcnNba2V5XS0tO1xuXG4gICAgICAgICAgICBpZiAoc3Vic2NyaWJlcnNba2V5XSA8PSAwKSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBzdWJzY3JpYmVyc1trZXldO1xuXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zPy5yZWZDb3VudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuc2V0ID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGVJdGVtKGtleSk7XG4gICAgICAgICAgICAgICAgICBzZWxmLl9fX3R0bF9zdG9yYWdlX19fPy5kZWxldGVJdGVtKGtleSk7XG5cbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSByZW1vdmVUaW1lcnNba2V5XTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMucmVmQ291bnREZWxheSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICB1bnNldCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZW1vdmVUaW1lcnNba2V5XSA9IHNldFRpbWVvdXQodW5zZXQsIG9wdGlvbnMucmVmQ291bnREZWxheSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShrZXksIG9ic2VydmFibGUpO1xuXG4gICAgICAgIGlmIChvcHRpb25zPy53aW5kb3dUaW1lKSB7XG4gICAgICAgICAgc2V0VGltZW91dChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGVJdGVtKGtleSk7XG4gICAgICAgICAgICAgIHNlbGYuX19fdHRsX3N0b3JhZ2VfX18/LmRlbGV0ZUl0ZW0oa2V5KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcHRpb25zLndpbmRvd1RpbWUsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBzdWJzY3JpYmVyc1trZXldID0gKHN1YnNjcmliZXJzW2tleV0gPz8gMCkgKyAxO1xuXG4gICAgICByZXR1cm4gb2JzZXJ2YWJsZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59O1xuXG4iXX0=
|
|
@@ -30,6 +30,66 @@ class RequestTimes {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
const serializeArg = (value) => {
|
|
34
|
+
const seen = new WeakMap();
|
|
35
|
+
let counter = 0;
|
|
36
|
+
const serialize = (v) => {
|
|
37
|
+
if (v === null) {
|
|
38
|
+
return 'null';
|
|
39
|
+
}
|
|
40
|
+
const t = typeof v;
|
|
41
|
+
if (t === 'number' || t === 'boolean') {
|
|
42
|
+
return String(v);
|
|
43
|
+
}
|
|
44
|
+
if (t === 'bigint') {
|
|
45
|
+
return `${v}n`;
|
|
46
|
+
}
|
|
47
|
+
if (t === 'undefined' || t === 'symbol' || t === 'function') {
|
|
48
|
+
return 'undef';
|
|
49
|
+
}
|
|
50
|
+
if (t === 'string') {
|
|
51
|
+
return `str:${v}`;
|
|
52
|
+
}
|
|
53
|
+
if (t !== 'object') {
|
|
54
|
+
return `${t}:${String(v)}`;
|
|
55
|
+
}
|
|
56
|
+
if (v instanceof Date) {
|
|
57
|
+
return `date:${v.toISOString()}`;
|
|
58
|
+
}
|
|
59
|
+
if (v instanceof RegExp) {
|
|
60
|
+
return `regexp:${v.toString()}`;
|
|
61
|
+
}
|
|
62
|
+
const path = seen.get(v);
|
|
63
|
+
if (path !== undefined) {
|
|
64
|
+
return `circ:${path}`;
|
|
65
|
+
}
|
|
66
|
+
seen.set(v, `v${counter++}`);
|
|
67
|
+
let out;
|
|
68
|
+
if (v instanceof Map) {
|
|
69
|
+
out = `map:${serialize(Array.from(v.entries()))}`;
|
|
70
|
+
}
|
|
71
|
+
else if (v instanceof Set) {
|
|
72
|
+
out = `set:${serialize(Array.from(v.values()))}`;
|
|
73
|
+
}
|
|
74
|
+
else if (Array.isArray(v)) {
|
|
75
|
+
out = `[${v.map(serialize).join(',')}]`;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
out = `{${Object.keys(v).sort().map((k) => `${serialize(k)}:${serialize(v[k])}`).join(',')}}`;
|
|
79
|
+
}
|
|
80
|
+
seen.delete(v);
|
|
81
|
+
return out;
|
|
82
|
+
};
|
|
83
|
+
return serialize(value);
|
|
84
|
+
};
|
|
85
|
+
const hashArgs = (input) => {
|
|
86
|
+
let h = 0x811c9dc5;
|
|
87
|
+
for (let i = 0; i < input.length; i++) {
|
|
88
|
+
h ^= input.charCodeAt(i);
|
|
89
|
+
h = Math.imul(h, 0x01000193);
|
|
90
|
+
}
|
|
91
|
+
return (h >>> 0).toString(36);
|
|
92
|
+
};
|
|
33
93
|
const HttpRequestCache = (optionsHandler) => {
|
|
34
94
|
return (target, methodName, descriptor) => {
|
|
35
95
|
if (!((descriptor === null || descriptor === void 0 ? void 0 : descriptor.value) instanceof Function)) {
|
|
@@ -40,17 +100,29 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
40
100
|
const working = {};
|
|
41
101
|
const subscribers = {};
|
|
42
102
|
const removeTimers = {};
|
|
103
|
+
const instanceIds = new WeakMap();
|
|
104
|
+
let instanceIdCounter = 0;
|
|
43
105
|
descriptor.value = function (...args) {
|
|
44
|
-
var _a, _b, _c;
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
106
|
+
var _a, _b, _c, _d;
|
|
107
|
+
const self = this !== null && this !== void 0 ? this : target;
|
|
108
|
+
const options = optionsHandler === null || optionsHandler === void 0 ? void 0 : optionsHandler.call(self, self, ...args);
|
|
109
|
+
if (!(options === null || options === void 0 ? void 0 : options.storage) && !self.___storage___) {
|
|
110
|
+
self.___storage___ = new DefaultStorage();
|
|
48
111
|
}
|
|
49
|
-
if ((options === null || options === void 0 ? void 0 : options.ttl) && !
|
|
50
|
-
|
|
112
|
+
if ((options === null || options === void 0 ? void 0 : options.ttl) && !self.___ttl_storage___) {
|
|
113
|
+
self.___ttl_storage___ = new RequestTimes();
|
|
114
|
+
}
|
|
115
|
+
const storage = (_a = options === null || options === void 0 ? void 0 : options.storage) !== null && _a !== void 0 ? _a : self.___storage___;
|
|
116
|
+
let instanceId = '';
|
|
117
|
+
if (!(options === null || options === void 0 ? void 0 : options.storage)) {
|
|
118
|
+
let id = instanceIds.get(self);
|
|
119
|
+
if (id === undefined) {
|
|
120
|
+
id = ++instanceIdCounter;
|
|
121
|
+
instanceIds.set(self, id);
|
|
122
|
+
}
|
|
123
|
+
instanceId = `_${id}`;
|
|
51
124
|
}
|
|
52
|
-
const
|
|
53
|
-
const key = `${cacheKeyPrefix}_${JSON.stringify(args)}`;
|
|
125
|
+
const key = `${cacheKeyPrefix}${instanceId}_${hashArgs(serializeArg(args))}`;
|
|
54
126
|
// отменяем запланированное удаление
|
|
55
127
|
if (removeTimers[key]) {
|
|
56
128
|
clearTimeout(removeTimers[key]);
|
|
@@ -58,7 +130,7 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
58
130
|
}
|
|
59
131
|
let ttl = undefined;
|
|
60
132
|
if (options === null || options === void 0 ? void 0 : options.ttl) {
|
|
61
|
-
ttl =
|
|
133
|
+
ttl = self.___ttl_storage___.getItem(key);
|
|
62
134
|
if (!ttl) {
|
|
63
135
|
ttl = {
|
|
64
136
|
requestTime: Date.now(),
|
|
@@ -70,7 +142,7 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
70
142
|
ttl.requestTime = Date.now();
|
|
71
143
|
ttl.subject.next();
|
|
72
144
|
}
|
|
73
|
-
|
|
145
|
+
self.___ttl_storage___.setItem(key, ttl);
|
|
74
146
|
}
|
|
75
147
|
const refreshOn = merge((_b = options === null || options === void 0 ? void 0 : options.refreshOn) !== null && _b !== void 0 ? _b : NEVER, (_c = ttl === null || ttl === void 0 ? void 0 : ttl.subject) !== null && _c !== void 0 ? _c : NEVER);
|
|
76
148
|
let observable = storage.getItem(key);
|
|
@@ -94,7 +166,7 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
94
166
|
const unset = () => {
|
|
95
167
|
var _a;
|
|
96
168
|
storage.deleteItem(key);
|
|
97
|
-
(_a =
|
|
169
|
+
(_a = self.___ttl_storage___) === null || _a === void 0 ? void 0 : _a.deleteItem(key);
|
|
98
170
|
delete removeTimers[key];
|
|
99
171
|
};
|
|
100
172
|
if (options.refCountDelay == null) {
|
|
@@ -111,11 +183,11 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
111
183
|
setTimeout(() => {
|
|
112
184
|
var _a;
|
|
113
185
|
storage.deleteItem(key);
|
|
114
|
-
(_a =
|
|
186
|
+
(_a = self.___ttl_storage___) === null || _a === void 0 ? void 0 : _a.deleteItem(key);
|
|
115
187
|
}, options.windowTime);
|
|
116
188
|
}
|
|
117
189
|
}
|
|
118
|
-
subscribers[key]
|
|
190
|
+
subscribers[key] = ((_d = subscribers[key]) !== null && _d !== void 0 ? _d : 0) + 1;
|
|
119
191
|
return observable;
|
|
120
192
|
};
|
|
121
193
|
return descriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kovalenko-http-request-cache.mjs","sources":["../../../projects/http-request-cache/src/lib/default-storage.ts","../../../projects/http-request-cache/src/lib/request-times.ts","../../../projects/http-request-cache/src/lib/http-request-cache.decorator.ts","../../../projects/http-request-cache/src/public-api.ts","../../../projects/http-request-cache/src/kovalenko-http-request-cache.ts"],"sourcesContent":["import {HttpCacheStorage} from './http-cache-storage';\nimport {Observable} from 'rxjs';\n\nexport class DefaultStorage implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n","import {HttpCacheStorage} from './http-cache-storage';\nimport {Observable} from 'rxjs';\n\nexport class RequestTimes implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n","import {\n filter,\n finalize,\n merge,\n NEVER,\n Observable,\n ReplaySubject,\n share,\n startWith,\n Subject,\n switchMap,\n tap,\n timer,\n} from 'rxjs';\n\nimport {DefaultStorage} from './default-storage';\nimport {HttpCacheOptions} from './http-cache-options';\nimport {RequestTimes} from './request-times';\n\ntype HttpRequestCacheMethod = (...args: any[]) => Observable<any>;\n\nexport const HttpRequestCache = <T extends Record<string, any>>(optionsHandler?: (obj: T, ...args: any[]) => HttpCacheOptions) => {\n return (\n target: T,\n methodName: string,\n descriptor: TypedPropertyDescriptor<HttpRequestCacheMethod>,\n ): TypedPropertyDescriptor<HttpRequestCacheMethod> => {\n if (!(descriptor?.value instanceof Function)) {\n throw Error(`'@HttpRequestCache' can be applied only to the class method which returns an Observable`);\n }\n\n const cacheKeyPrefix = `${target.constructor.name}_${methodName}`;\n const originalMethod = descriptor.value;\n const working: Record<string, boolean> = {};\n const subscribers: Record<string, number> = {};\n const removeTimers: Record<string, ReturnType<typeof setTimeout>> = {};\n\n descriptor.value = function(...args: any[]): Observable<any> {\n const options = optionsHandler?.call(this as T, this as T, ...args);\n\n if (!options?.storage && !(target as any)._____storage_____) {\n (target as any)._____storage_____ = new DefaultStorage();\n }\n\n if (options?.ttl && !(target as any)._____ttl_storage_____) {\n (target as any)._____ttl_storage_____ = new RequestTimes();\n }\n\n const storage = options?.storage ?? (target as any)._____storage_____;\n\n const key = `${cacheKeyPrefix}_${JSON.stringify(args)}`;\n\n // отменяем запланированное удаление\n if (removeTimers[key]) {\n clearTimeout(removeTimers[key]);\n delete removeTimers[key];\n }\n\n let ttl: {requestTime: number, subject: Subject<void>} = undefined as any;\n\n if (options?.ttl) {\n ttl = (target as any)._____ttl_storage_____.getItem(key);\n\n if (!ttl) {\n ttl = {\n requestTime: Date.now(),\n subject: new Subject(),\n };\n } else if (ttl.requestTime + options.ttl <= Date.now()) {\n working[key] = true;\n ttl.requestTime = Date.now();\n ttl.subject.next();\n }\n\n (target as any)._____ttl_storage_____.setItem(key, ttl);\n }\n\n const refreshOn = merge(\n options?.refreshOn ?? NEVER as Observable<unknown>,\n ttl?.subject ?? NEVER as Observable<unknown>,\n );\n\n let observable = storage.getItem(key);\n\n if (!observable) {\n observable = refreshOn.pipe(\n startWith(true),\n switchMap(() => originalMethod.apply(this, [...args])),\n tap(() => {\n delete working[key];\n }),\n share({\n connector: () => new ReplaySubject(1),\n resetOnComplete: false,\n resetOnError: true,\n resetOnRefCountZero: !options?.refCount\n ? false\n : options.refCountDelay != null\n ? () => timer(options.refCountDelay!)\n : true,\n }),\n filter(() => !working[key]),\n finalize(() => {\n subscribers[key]--;\n\n if (subscribers[key] <= 0) {\n delete subscribers[key];\n\n if (options?.refCount) {\n const unset = () => {\n storage.deleteItem(key);\n (target as any)._____ttl_storage_____?.deleteItem(key);\n\n delete removeTimers[key];\n };\n\n if (options.refCountDelay == null) {\n unset();\n } else {\n removeTimers[key] = setTimeout(unset, options.refCountDelay);\n }\n }\n }\n }),\n );\n storage.setItem(key, observable);\n\n if (options?.windowTime) {\n setTimeout(\n () => {\n storage.deleteItem(key);\n (target as any)._____ttl_storage_____?.deleteItem(key);\n },\n options.windowTime,\n );\n }\n }\n\n subscribers[key]++;\n\n return observable;\n };\n\n return descriptor;\n };\n};\n\n","/*\n * Public API Surface of http-request-cache\n */\n\nexport * from './lib/http-request-cache.decorator';\nexport * from './lib/http-cache-storage';\nexport * from './lib/http-cache-options';\nexport * from './lib/default-storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kovalenko-http-request-cache.mjs","sources":["../../../projects/http-request-cache/src/lib/default-storage.ts","../../../projects/http-request-cache/src/lib/request-times.ts","../../../projects/http-request-cache/src/lib/http-request-cache.decorator.ts","../../../projects/http-request-cache/src/public-api.ts","../../../projects/http-request-cache/src/kovalenko-http-request-cache.ts"],"sourcesContent":["import {HttpCacheStorage} from './http-cache-storage';\nimport {Observable} from 'rxjs';\n\nexport class DefaultStorage implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n","import {HttpCacheStorage} from './http-cache-storage';\nimport {Observable} from 'rxjs';\n\nexport class RequestTimes implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n","import {\n filter,\n finalize,\n merge,\n NEVER,\n Observable,\n ReplaySubject,\n share,\n startWith,\n Subject,\n switchMap,\n tap,\n timer,\n} from 'rxjs';\n\nimport {DefaultStorage} from './default-storage';\nimport {HttpCacheOptions} from './http-cache-options';\nimport {RequestTimes} from './request-times';\n\ntype HttpRequestCacheMethod = (...args: any[]) => Observable<any>;\n\nconst serializeArg = (value: any): string => {\n const seen = new WeakMap<object, string>();\n let counter = 0;\n\n const serialize = (v: any): string => {\n if (v === null) {\n return 'null';\n }\n const t = typeof v;\n\n if (t === 'number' || t === 'boolean') {\n return String(v);\n }\n if (t === 'bigint') {\n return `${v}n`;\n }\n if (t === 'undefined' || t === 'symbol' || t === 'function') {\n return 'undef';\n }\n if (t === 'string') {\n return `str:${v}`;\n }\n if (t !== 'object') {\n return `${t}:${String(v)}`;\n }\n\n if (v instanceof Date) {\n return `date:${v.toISOString()}`;\n }\n if (v instanceof RegExp) {\n return `regexp:${v.toString()}`;\n }\n\n const path = seen.get(v);\n if (path !== undefined) {\n return `circ:${path}`;\n }\n seen.set(v, `v${counter++}`);\n\n let out: string;\n if (v instanceof Map) {\n out = `map:${serialize(Array.from(v.entries()))}`;\n } else if (v instanceof Set) {\n out = `set:${serialize(Array.from(v.values()))}`;\n } else if (Array.isArray(v)) {\n out = `[${v.map(serialize).join(',')}]`;\n } else {\n out = `{${Object.keys(v).sort().map((k: string): string => `${serialize(k)}:${serialize(v[k])}`).join(',')}}`;\n }\n\n seen.delete(v);\n return out;\n };\n\n return serialize(value);\n};\n\nconst hashArgs = (input: string): string => {\n let h = 0x811c9dc5;\n for (let i = 0; i < input.length; i++) {\n h ^= input.charCodeAt(i);\n h = Math.imul(h, 0x01000193);\n }\n return (h >>> 0).toString(36);\n};\n\nexport const HttpRequestCache = <T extends Record<string, any>>(optionsHandler?: (obj: T, ...args: any[]) => HttpCacheOptions) => {\n return (\n target: T,\n methodName: string,\n descriptor: TypedPropertyDescriptor<HttpRequestCacheMethod>,\n ): TypedPropertyDescriptor<HttpRequestCacheMethod> => {\n if (!(descriptor?.value instanceof Function)) {\n throw Error(`'@HttpRequestCache' can be applied only to the class method which returns an Observable`);\n }\n\n const cacheKeyPrefix = `${target.constructor.name}_${methodName}`;\n const originalMethod = descriptor.value;\n const working: Record<string, boolean> = {};\n const subscribers: Record<string, number> = {};\n const removeTimers: Record<string, ReturnType<typeof setTimeout>> = {};\n const instanceIds = new WeakMap<object, number>();\n let instanceIdCounter = 0;\n\n descriptor.value = function(...args: any[]): Observable<any> {\n const self = (this as Record<string, any>) ?? target;\n const options = optionsHandler?.call(self as T, self as T, ...args);\n\n if (!options?.storage && !self.___storage___) {\n self.___storage___ = new DefaultStorage();\n }\n\n if (options?.ttl && !self.___ttl_storage___) {\n self.___ttl_storage___ = new RequestTimes();\n }\n\n const storage = options?.storage ?? self.___storage___;\n\n let instanceId = '';\n if (!options?.storage) {\n let id = instanceIds.get(self);\n if (id === undefined) {\n id = ++instanceIdCounter;\n instanceIds.set(self, id);\n }\n instanceId = `_${id}`;\n }\n\n const key = `${cacheKeyPrefix}${instanceId}_${hashArgs(serializeArg(args))}`;\n\n // отменяем запланированное удаление\n if (removeTimers[key]) {\n clearTimeout(removeTimers[key]);\n delete removeTimers[key];\n }\n\n let ttl: {requestTime: number, subject: Subject<void>} = undefined as any;\n\n if (options?.ttl) {\n ttl = self.___ttl_storage___.getItem(key);\n\n if (!ttl) {\n ttl = {\n requestTime: Date.now(),\n subject: new Subject(),\n };\n } else if (ttl.requestTime + options.ttl <= Date.now()) {\n working[key] = true;\n ttl.requestTime = Date.now();\n ttl.subject.next();\n }\n\n self.___ttl_storage___.setItem(key, ttl);\n }\n\n const refreshOn = merge(\n options?.refreshOn ?? NEVER as Observable<unknown>,\n ttl?.subject ?? NEVER as Observable<unknown>,\n );\n\n let observable = storage.getItem(key);\n\n if (!observable) {\n observable = refreshOn.pipe(\n startWith(true),\n switchMap(() => originalMethod.apply(this, [...args])),\n tap(() => {\n delete working[key];\n }),\n share({\n connector: () => new ReplaySubject(1),\n resetOnComplete: false,\n resetOnError: true,\n resetOnRefCountZero: !options?.refCount\n ? false\n : options.refCountDelay != null\n ? (): Observable<number> => timer(options.refCountDelay!)\n : true,\n }),\n filter(() => !working[key]),\n finalize(() => {\n subscribers[key]--;\n\n if (subscribers[key] <= 0) {\n delete subscribers[key];\n\n if (options?.refCount) {\n const unset = (): void => {\n storage.deleteItem(key);\n self.___ttl_storage___?.deleteItem(key);\n\n delete removeTimers[key];\n };\n\n if (options.refCountDelay == null) {\n unset();\n } else {\n removeTimers[key] = setTimeout(unset, options.refCountDelay);\n }\n }\n }\n }),\n );\n storage.setItem(key, observable);\n\n if (options?.windowTime) {\n setTimeout(\n () => {\n storage.deleteItem(key);\n self.___ttl_storage___?.deleteItem(key);\n },\n options.windowTime,\n );\n }\n }\n\n subscribers[key] = (subscribers[key] ?? 0) + 1;\n\n return observable;\n };\n\n return descriptor;\n };\n};\n\n","/*\n * Public API Surface of http-request-cache\n */\n\nexport * from './lib/http-request-cache.decorator';\nexport * from './lib/http-cache-storage';\nexport * from './lib/http-cache-options';\nexport * from './lib/default-storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,66 @@ class RequestTimes {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
const serializeArg = (value) => {
|
|
34
|
+
const seen = new WeakMap();
|
|
35
|
+
let counter = 0;
|
|
36
|
+
const serialize = (v) => {
|
|
37
|
+
if (v === null) {
|
|
38
|
+
return 'null';
|
|
39
|
+
}
|
|
40
|
+
const t = typeof v;
|
|
41
|
+
if (t === 'number' || t === 'boolean') {
|
|
42
|
+
return String(v);
|
|
43
|
+
}
|
|
44
|
+
if (t === 'bigint') {
|
|
45
|
+
return `${v}n`;
|
|
46
|
+
}
|
|
47
|
+
if (t === 'undefined' || t === 'symbol' || t === 'function') {
|
|
48
|
+
return 'undef';
|
|
49
|
+
}
|
|
50
|
+
if (t === 'string') {
|
|
51
|
+
return `str:${v}`;
|
|
52
|
+
}
|
|
53
|
+
if (t !== 'object') {
|
|
54
|
+
return `${t}:${String(v)}`;
|
|
55
|
+
}
|
|
56
|
+
if (v instanceof Date) {
|
|
57
|
+
return `date:${v.toISOString()}`;
|
|
58
|
+
}
|
|
59
|
+
if (v instanceof RegExp) {
|
|
60
|
+
return `regexp:${v.toString()}`;
|
|
61
|
+
}
|
|
62
|
+
const path = seen.get(v);
|
|
63
|
+
if (path !== undefined) {
|
|
64
|
+
return `circ:${path}`;
|
|
65
|
+
}
|
|
66
|
+
seen.set(v, `v${counter++}`);
|
|
67
|
+
let out;
|
|
68
|
+
if (v instanceof Map) {
|
|
69
|
+
out = `map:${serialize(Array.from(v.entries()))}`;
|
|
70
|
+
}
|
|
71
|
+
else if (v instanceof Set) {
|
|
72
|
+
out = `set:${serialize(Array.from(v.values()))}`;
|
|
73
|
+
}
|
|
74
|
+
else if (Array.isArray(v)) {
|
|
75
|
+
out = `[${v.map(serialize).join(',')}]`;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
out = `{${Object.keys(v).sort().map((k) => `${serialize(k)}:${serialize(v[k])}`).join(',')}}`;
|
|
79
|
+
}
|
|
80
|
+
seen.delete(v);
|
|
81
|
+
return out;
|
|
82
|
+
};
|
|
83
|
+
return serialize(value);
|
|
84
|
+
};
|
|
85
|
+
const hashArgs = (input) => {
|
|
86
|
+
let h = 0x811c9dc5;
|
|
87
|
+
for (let i = 0; i < input.length; i++) {
|
|
88
|
+
h ^= input.charCodeAt(i);
|
|
89
|
+
h = Math.imul(h, 0x01000193);
|
|
90
|
+
}
|
|
91
|
+
return (h >>> 0).toString(36);
|
|
92
|
+
};
|
|
33
93
|
const HttpRequestCache = (optionsHandler) => {
|
|
34
94
|
return (target, methodName, descriptor) => {
|
|
35
95
|
if (!(descriptor?.value instanceof Function)) {
|
|
@@ -40,16 +100,28 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
40
100
|
const working = {};
|
|
41
101
|
const subscribers = {};
|
|
42
102
|
const removeTimers = {};
|
|
103
|
+
const instanceIds = new WeakMap();
|
|
104
|
+
let instanceIdCounter = 0;
|
|
43
105
|
descriptor.value = function (...args) {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
106
|
+
const self = this ?? target;
|
|
107
|
+
const options = optionsHandler?.call(self, self, ...args);
|
|
108
|
+
if (!options?.storage && !self.___storage___) {
|
|
109
|
+
self.___storage___ = new DefaultStorage();
|
|
47
110
|
}
|
|
48
|
-
if (options?.ttl && !
|
|
49
|
-
|
|
111
|
+
if (options?.ttl && !self.___ttl_storage___) {
|
|
112
|
+
self.___ttl_storage___ = new RequestTimes();
|
|
113
|
+
}
|
|
114
|
+
const storage = options?.storage ?? self.___storage___;
|
|
115
|
+
let instanceId = '';
|
|
116
|
+
if (!options?.storage) {
|
|
117
|
+
let id = instanceIds.get(self);
|
|
118
|
+
if (id === undefined) {
|
|
119
|
+
id = ++instanceIdCounter;
|
|
120
|
+
instanceIds.set(self, id);
|
|
121
|
+
}
|
|
122
|
+
instanceId = `_${id}`;
|
|
50
123
|
}
|
|
51
|
-
const
|
|
52
|
-
const key = `${cacheKeyPrefix}_${JSON.stringify(args)}`;
|
|
124
|
+
const key = `${cacheKeyPrefix}${instanceId}_${hashArgs(serializeArg(args))}`;
|
|
53
125
|
// отменяем запланированное удаление
|
|
54
126
|
if (removeTimers[key]) {
|
|
55
127
|
clearTimeout(removeTimers[key]);
|
|
@@ -57,7 +129,7 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
57
129
|
}
|
|
58
130
|
let ttl = undefined;
|
|
59
131
|
if (options?.ttl) {
|
|
60
|
-
ttl =
|
|
132
|
+
ttl = self.___ttl_storage___.getItem(key);
|
|
61
133
|
if (!ttl) {
|
|
62
134
|
ttl = {
|
|
63
135
|
requestTime: Date.now(),
|
|
@@ -69,7 +141,7 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
69
141
|
ttl.requestTime = Date.now();
|
|
70
142
|
ttl.subject.next();
|
|
71
143
|
}
|
|
72
|
-
|
|
144
|
+
self.___ttl_storage___.setItem(key, ttl);
|
|
73
145
|
}
|
|
74
146
|
const refreshOn = merge(options?.refreshOn ?? NEVER, ttl?.subject ?? NEVER);
|
|
75
147
|
let observable = storage.getItem(key);
|
|
@@ -92,7 +164,7 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
92
164
|
if (options?.refCount) {
|
|
93
165
|
const unset = () => {
|
|
94
166
|
storage.deleteItem(key);
|
|
95
|
-
|
|
167
|
+
self.___ttl_storage___?.deleteItem(key);
|
|
96
168
|
delete removeTimers[key];
|
|
97
169
|
};
|
|
98
170
|
if (options.refCountDelay == null) {
|
|
@@ -108,11 +180,11 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
108
180
|
if (options?.windowTime) {
|
|
109
181
|
setTimeout(() => {
|
|
110
182
|
storage.deleteItem(key);
|
|
111
|
-
|
|
183
|
+
self.___ttl_storage___?.deleteItem(key);
|
|
112
184
|
}, options.windowTime);
|
|
113
185
|
}
|
|
114
186
|
}
|
|
115
|
-
subscribers[key]
|
|
187
|
+
subscribers[key] = (subscribers[key] ?? 0) + 1;
|
|
116
188
|
return observable;
|
|
117
189
|
};
|
|
118
190
|
return descriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kovalenko-http-request-cache.mjs","sources":["../../../projects/http-request-cache/src/lib/default-storage.ts","../../../projects/http-request-cache/src/lib/request-times.ts","../../../projects/http-request-cache/src/lib/http-request-cache.decorator.ts","../../../projects/http-request-cache/src/public-api.ts","../../../projects/http-request-cache/src/kovalenko-http-request-cache.ts"],"sourcesContent":["import {HttpCacheStorage} from './http-cache-storage';\nimport {Observable} from 'rxjs';\n\nexport class DefaultStorage implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n","import {HttpCacheStorage} from './http-cache-storage';\nimport {Observable} from 'rxjs';\n\nexport class RequestTimes implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n","import {\n filter,\n finalize,\n merge,\n NEVER,\n Observable,\n ReplaySubject,\n share,\n startWith,\n Subject,\n switchMap,\n tap,\n timer,\n} from 'rxjs';\n\nimport {DefaultStorage} from './default-storage';\nimport {HttpCacheOptions} from './http-cache-options';\nimport {RequestTimes} from './request-times';\n\ntype HttpRequestCacheMethod = (...args: any[]) => Observable<any>;\n\nexport const HttpRequestCache = <T extends Record<string, any>>(optionsHandler?: (obj: T, ...args: any[]) => HttpCacheOptions) => {\n return (\n target: T,\n methodName: string,\n descriptor: TypedPropertyDescriptor<HttpRequestCacheMethod>,\n ): TypedPropertyDescriptor<HttpRequestCacheMethod> => {\n if (!(descriptor?.value instanceof Function)) {\n throw Error(`'@HttpRequestCache' can be applied only to the class method which returns an Observable`);\n }\n\n const cacheKeyPrefix = `${target.constructor.name}_${methodName}`;\n const originalMethod = descriptor.value;\n const working: Record<string, boolean> = {};\n const subscribers: Record<string, number> = {};\n const removeTimers: Record<string, ReturnType<typeof setTimeout>> = {};\n\n descriptor.value = function(...args: any[]): Observable<any> {\n const options = optionsHandler?.call(this as T, this as T, ...args);\n\n if (!options?.storage && !(target as any)._____storage_____) {\n (target as any)._____storage_____ = new DefaultStorage();\n }\n\n if (options?.ttl && !(target as any)._____ttl_storage_____) {\n (target as any)._____ttl_storage_____ = new RequestTimes();\n }\n\n const storage = options?.storage ?? (target as any)._____storage_____;\n\n const key = `${cacheKeyPrefix}_${JSON.stringify(args)}`;\n\n // отменяем запланированное удаление\n if (removeTimers[key]) {\n clearTimeout(removeTimers[key]);\n delete removeTimers[key];\n }\n\n let ttl: {requestTime: number, subject: Subject<void>} = undefined as any;\n\n if (options?.ttl) {\n ttl = (target as any)._____ttl_storage_____.getItem(key);\n\n if (!ttl) {\n ttl = {\n requestTime: Date.now(),\n subject: new Subject(),\n };\n } else if (ttl.requestTime + options.ttl <= Date.now()) {\n working[key] = true;\n ttl.requestTime = Date.now();\n ttl.subject.next();\n }\n\n (target as any)._____ttl_storage_____.setItem(key, ttl);\n }\n\n const refreshOn = merge(\n options?.refreshOn ?? NEVER as Observable<unknown>,\n ttl?.subject ?? NEVER as Observable<unknown>,\n );\n\n let observable = storage.getItem(key);\n\n if (!observable) {\n observable = refreshOn.pipe(\n startWith(true),\n switchMap(() => originalMethod.apply(this, [...args])),\n tap(() => {\n delete working[key];\n }),\n share({\n connector: () => new ReplaySubject(1),\n resetOnComplete: false,\n resetOnError: true,\n resetOnRefCountZero: !options?.refCount\n ? false\n : options.refCountDelay != null\n ? () => timer(options.refCountDelay!)\n : true,\n }),\n filter(() => !working[key]),\n finalize(() => {\n subscribers[key]--;\n\n if (subscribers[key] <= 0) {\n delete subscribers[key];\n\n if (options?.refCount) {\n const unset = () => {\n storage.deleteItem(key);\n (target as any)._____ttl_storage_____?.deleteItem(key);\n\n delete removeTimers[key];\n };\n\n if (options.refCountDelay == null) {\n unset();\n } else {\n removeTimers[key] = setTimeout(unset, options.refCountDelay);\n }\n }\n }\n }),\n );\n storage.setItem(key, observable);\n\n if (options?.windowTime) {\n setTimeout(\n () => {\n storage.deleteItem(key);\n (target as any)._____ttl_storage_____?.deleteItem(key);\n },\n options.windowTime,\n );\n }\n }\n\n subscribers[key]++;\n\n return observable;\n };\n\n return descriptor;\n };\n};\n\n","/*\n * Public API Surface of http-request-cache\n */\n\nexport * from './lib/http-request-cache.decorator';\nexport * from './lib/http-cache-storage';\nexport * from './lib/http-cache-options';\nexport * from './lib/default-storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kovalenko-http-request-cache.mjs","sources":["../../../projects/http-request-cache/src/lib/default-storage.ts","../../../projects/http-request-cache/src/lib/request-times.ts","../../../projects/http-request-cache/src/lib/http-request-cache.decorator.ts","../../../projects/http-request-cache/src/public-api.ts","../../../projects/http-request-cache/src/kovalenko-http-request-cache.ts"],"sourcesContent":["import {HttpCacheStorage} from './http-cache-storage';\nimport {Observable} from 'rxjs';\n\nexport class DefaultStorage implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n","import {HttpCacheStorage} from './http-cache-storage';\nimport {Observable} from 'rxjs';\n\nexport class RequestTimes implements HttpCacheStorage {\n private storage = new Map<string, Observable<any>>();\n\n getItem(key: string): Observable<any> | undefined {\n return this.storage.get(key);\n }\n\n setItem(key: string, item: Observable<any>): void {\n this.storage.set(key, item);\n }\n\n deleteItem(key: string): void {\n this.storage.delete(key);\n }\n}\n","import {\n filter,\n finalize,\n merge,\n NEVER,\n Observable,\n ReplaySubject,\n share,\n startWith,\n Subject,\n switchMap,\n tap,\n timer,\n} from 'rxjs';\n\nimport {DefaultStorage} from './default-storage';\nimport {HttpCacheOptions} from './http-cache-options';\nimport {RequestTimes} from './request-times';\n\ntype HttpRequestCacheMethod = (...args: any[]) => Observable<any>;\n\nconst serializeArg = (value: any): string => {\n const seen = new WeakMap<object, string>();\n let counter = 0;\n\n const serialize = (v: any): string => {\n if (v === null) {\n return 'null';\n }\n const t = typeof v;\n\n if (t === 'number' || t === 'boolean') {\n return String(v);\n }\n if (t === 'bigint') {\n return `${v}n`;\n }\n if (t === 'undefined' || t === 'symbol' || t === 'function') {\n return 'undef';\n }\n if (t === 'string') {\n return `str:${v}`;\n }\n if (t !== 'object') {\n return `${t}:${String(v)}`;\n }\n\n if (v instanceof Date) {\n return `date:${v.toISOString()}`;\n }\n if (v instanceof RegExp) {\n return `regexp:${v.toString()}`;\n }\n\n const path = seen.get(v);\n if (path !== undefined) {\n return `circ:${path}`;\n }\n seen.set(v, `v${counter++}`);\n\n let out: string;\n if (v instanceof Map) {\n out = `map:${serialize(Array.from(v.entries()))}`;\n } else if (v instanceof Set) {\n out = `set:${serialize(Array.from(v.values()))}`;\n } else if (Array.isArray(v)) {\n out = `[${v.map(serialize).join(',')}]`;\n } else {\n out = `{${Object.keys(v).sort().map((k: string): string => `${serialize(k)}:${serialize(v[k])}`).join(',')}}`;\n }\n\n seen.delete(v);\n return out;\n };\n\n return serialize(value);\n};\n\nconst hashArgs = (input: string): string => {\n let h = 0x811c9dc5;\n for (let i = 0; i < input.length; i++) {\n h ^= input.charCodeAt(i);\n h = Math.imul(h, 0x01000193);\n }\n return (h >>> 0).toString(36);\n};\n\nexport const HttpRequestCache = <T extends Record<string, any>>(optionsHandler?: (obj: T, ...args: any[]) => HttpCacheOptions) => {\n return (\n target: T,\n methodName: string,\n descriptor: TypedPropertyDescriptor<HttpRequestCacheMethod>,\n ): TypedPropertyDescriptor<HttpRequestCacheMethod> => {\n if (!(descriptor?.value instanceof Function)) {\n throw Error(`'@HttpRequestCache' can be applied only to the class method which returns an Observable`);\n }\n\n const cacheKeyPrefix = `${target.constructor.name}_${methodName}`;\n const originalMethod = descriptor.value;\n const working: Record<string, boolean> = {};\n const subscribers: Record<string, number> = {};\n const removeTimers: Record<string, ReturnType<typeof setTimeout>> = {};\n const instanceIds = new WeakMap<object, number>();\n let instanceIdCounter = 0;\n\n descriptor.value = function(...args: any[]): Observable<any> {\n const self = (this as Record<string, any>) ?? target;\n const options = optionsHandler?.call(self as T, self as T, ...args);\n\n if (!options?.storage && !self.___storage___) {\n self.___storage___ = new DefaultStorage();\n }\n\n if (options?.ttl && !self.___ttl_storage___) {\n self.___ttl_storage___ = new RequestTimes();\n }\n\n const storage = options?.storage ?? self.___storage___;\n\n let instanceId = '';\n if (!options?.storage) {\n let id = instanceIds.get(self);\n if (id === undefined) {\n id = ++instanceIdCounter;\n instanceIds.set(self, id);\n }\n instanceId = `_${id}`;\n }\n\n const key = `${cacheKeyPrefix}${instanceId}_${hashArgs(serializeArg(args))}`;\n\n // отменяем запланированное удаление\n if (removeTimers[key]) {\n clearTimeout(removeTimers[key]);\n delete removeTimers[key];\n }\n\n let ttl: {requestTime: number, subject: Subject<void>} = undefined as any;\n\n if (options?.ttl) {\n ttl = self.___ttl_storage___.getItem(key);\n\n if (!ttl) {\n ttl = {\n requestTime: Date.now(),\n subject: new Subject(),\n };\n } else if (ttl.requestTime + options.ttl <= Date.now()) {\n working[key] = true;\n ttl.requestTime = Date.now();\n ttl.subject.next();\n }\n\n self.___ttl_storage___.setItem(key, ttl);\n }\n\n const refreshOn = merge(\n options?.refreshOn ?? NEVER as Observable<unknown>,\n ttl?.subject ?? NEVER as Observable<unknown>,\n );\n\n let observable = storage.getItem(key);\n\n if (!observable) {\n observable = refreshOn.pipe(\n startWith(true),\n switchMap(() => originalMethod.apply(this, [...args])),\n tap(() => {\n delete working[key];\n }),\n share({\n connector: () => new ReplaySubject(1),\n resetOnComplete: false,\n resetOnError: true,\n resetOnRefCountZero: !options?.refCount\n ? false\n : options.refCountDelay != null\n ? (): Observable<number> => timer(options.refCountDelay!)\n : true,\n }),\n filter(() => !working[key]),\n finalize(() => {\n subscribers[key]--;\n\n if (subscribers[key] <= 0) {\n delete subscribers[key];\n\n if (options?.refCount) {\n const unset = (): void => {\n storage.deleteItem(key);\n self.___ttl_storage___?.deleteItem(key);\n\n delete removeTimers[key];\n };\n\n if (options.refCountDelay == null) {\n unset();\n } else {\n removeTimers[key] = setTimeout(unset, options.refCountDelay);\n }\n }\n }\n }),\n );\n storage.setItem(key, observable);\n\n if (options?.windowTime) {\n setTimeout(\n () => {\n storage.deleteItem(key);\n self.___ttl_storage___?.deleteItem(key);\n },\n options.windowTime,\n );\n }\n }\n\n subscribers[key] = (subscribers[key] ?? 0) + 1;\n\n return observable;\n };\n\n return descriptor;\n };\n};\n\n","/*\n * Public API Surface of http-request-cache\n */\n\nexport * from './lib/http-request-cache.decorator';\nexport * from './lib/http-cache-storage';\nexport * from './lib/http-cache-options';\nexport * from './lib/default-storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,66 @@ exports.HttpRequestCache = void 0;
|
|
|
4
4
|
const rxjs_1 = require("rxjs");
|
|
5
5
|
const default_storage_1 = require("./default-storage");
|
|
6
6
|
const request_times_1 = require("./request-times");
|
|
7
|
+
const serializeArg = (value) => {
|
|
8
|
+
const seen = new WeakMap();
|
|
9
|
+
let counter = 0;
|
|
10
|
+
const serialize = (v) => {
|
|
11
|
+
if (v === null) {
|
|
12
|
+
return 'null';
|
|
13
|
+
}
|
|
14
|
+
const t = typeof v;
|
|
15
|
+
if (t === 'number' || t === 'boolean') {
|
|
16
|
+
return String(v);
|
|
17
|
+
}
|
|
18
|
+
if (t === 'bigint') {
|
|
19
|
+
return `${v}n`;
|
|
20
|
+
}
|
|
21
|
+
if (t === 'undefined' || t === 'symbol' || t === 'function') {
|
|
22
|
+
return 'undef';
|
|
23
|
+
}
|
|
24
|
+
if (t === 'string') {
|
|
25
|
+
return `str:${v}`;
|
|
26
|
+
}
|
|
27
|
+
if (t !== 'object') {
|
|
28
|
+
return `${t}:${String(v)}`;
|
|
29
|
+
}
|
|
30
|
+
if (v instanceof Date) {
|
|
31
|
+
return `date:${v.toISOString()}`;
|
|
32
|
+
}
|
|
33
|
+
if (v instanceof RegExp) {
|
|
34
|
+
return `regexp:${v.toString()}`;
|
|
35
|
+
}
|
|
36
|
+
const path = seen.get(v);
|
|
37
|
+
if (path !== undefined) {
|
|
38
|
+
return `circ:${path}`;
|
|
39
|
+
}
|
|
40
|
+
seen.set(v, `v${counter++}`);
|
|
41
|
+
let out;
|
|
42
|
+
if (v instanceof Map) {
|
|
43
|
+
out = `map:${serialize(Array.from(v.entries()))}`;
|
|
44
|
+
}
|
|
45
|
+
else if (v instanceof Set) {
|
|
46
|
+
out = `set:${serialize(Array.from(v.values()))}`;
|
|
47
|
+
}
|
|
48
|
+
else if (Array.isArray(v)) {
|
|
49
|
+
out = `[${v.map(serialize).join(',')}]`;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
out = `{${Object.keys(v).sort().map((k) => `${serialize(k)}:${serialize(v[k])}`).join(',')}}`;
|
|
53
|
+
}
|
|
54
|
+
seen.delete(v);
|
|
55
|
+
return out;
|
|
56
|
+
};
|
|
57
|
+
return serialize(value);
|
|
58
|
+
};
|
|
59
|
+
const hashArgs = (input) => {
|
|
60
|
+
let h = 0x811c9dc5;
|
|
61
|
+
for (let i = 0; i < input.length; i++) {
|
|
62
|
+
h ^= input.charCodeAt(i);
|
|
63
|
+
h = Math.imul(h, 0x01000193);
|
|
64
|
+
}
|
|
65
|
+
return (h >>> 0).toString(36);
|
|
66
|
+
};
|
|
7
67
|
const HttpRequestCache = (optionsHandler) => {
|
|
8
68
|
return (target, methodName, descriptor) => {
|
|
9
69
|
if (!((descriptor === null || descriptor === void 0 ? void 0 : descriptor.value) instanceof Function)) {
|
|
@@ -14,24 +74,36 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
14
74
|
const working = {};
|
|
15
75
|
const subscribers = {};
|
|
16
76
|
const removeTimers = {};
|
|
77
|
+
const instanceIds = new WeakMap();
|
|
78
|
+
let instanceIdCounter = 0;
|
|
17
79
|
descriptor.value = function (...args) {
|
|
18
|
-
var _a, _b, _c;
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
80
|
+
var _a, _b, _c, _d, _e;
|
|
81
|
+
const self = (_a = this) !== null && _a !== void 0 ? _a : target;
|
|
82
|
+
const options = optionsHandler === null || optionsHandler === void 0 ? void 0 : optionsHandler.call(self, self, ...args);
|
|
83
|
+
if (!(options === null || options === void 0 ? void 0 : options.storage) && !self.___storage___) {
|
|
84
|
+
self.___storage___ = new default_storage_1.DefaultStorage();
|
|
22
85
|
}
|
|
23
|
-
if ((options === null || options === void 0 ? void 0 : options.ttl) && !
|
|
24
|
-
|
|
86
|
+
if ((options === null || options === void 0 ? void 0 : options.ttl) && !self.___ttl_storage___) {
|
|
87
|
+
self.___ttl_storage___ = new request_times_1.RequestTimes();
|
|
88
|
+
}
|
|
89
|
+
const storage = (_b = options === null || options === void 0 ? void 0 : options.storage) !== null && _b !== void 0 ? _b : self.___storage___;
|
|
90
|
+
let instanceId = '';
|
|
91
|
+
if (!(options === null || options === void 0 ? void 0 : options.storage)) {
|
|
92
|
+
let id = instanceIds.get(self);
|
|
93
|
+
if (id === undefined) {
|
|
94
|
+
id = ++instanceIdCounter;
|
|
95
|
+
instanceIds.set(self, id);
|
|
96
|
+
}
|
|
97
|
+
instanceId = `_${id}`;
|
|
25
98
|
}
|
|
26
|
-
const
|
|
27
|
-
const key = `${cacheKeyPrefix}_${JSON.stringify(args)}`;
|
|
99
|
+
const key = `${cacheKeyPrefix}${instanceId}_${hashArgs(serializeArg(args))}`;
|
|
28
100
|
if (removeTimers[key]) {
|
|
29
101
|
clearTimeout(removeTimers[key]);
|
|
30
102
|
delete removeTimers[key];
|
|
31
103
|
}
|
|
32
104
|
let ttl = undefined;
|
|
33
105
|
if (options === null || options === void 0 ? void 0 : options.ttl) {
|
|
34
|
-
ttl =
|
|
106
|
+
ttl = self.___ttl_storage___.getItem(key);
|
|
35
107
|
if (!ttl) {
|
|
36
108
|
ttl = {
|
|
37
109
|
requestTime: Date.now(),
|
|
@@ -43,9 +115,9 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
43
115
|
ttl.requestTime = Date.now();
|
|
44
116
|
ttl.subject.next();
|
|
45
117
|
}
|
|
46
|
-
|
|
118
|
+
self.___ttl_storage___.setItem(key, ttl);
|
|
47
119
|
}
|
|
48
|
-
const refreshOn = (0, rxjs_1.merge)((
|
|
120
|
+
const refreshOn = (0, rxjs_1.merge)((_c = options === null || options === void 0 ? void 0 : options.refreshOn) !== null && _c !== void 0 ? _c : rxjs_1.NEVER, (_d = ttl === null || ttl === void 0 ? void 0 : ttl.subject) !== null && _d !== void 0 ? _d : rxjs_1.NEVER);
|
|
49
121
|
let observable = storage.getItem(key);
|
|
50
122
|
if (!observable) {
|
|
51
123
|
observable = refreshOn.pipe((0, rxjs_1.startWith)(true), (0, rxjs_1.switchMap)(() => originalMethod.apply(this, [...args])), (0, rxjs_1.tap)(() => {
|
|
@@ -67,7 +139,7 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
67
139
|
const unset = () => {
|
|
68
140
|
var _a;
|
|
69
141
|
storage.deleteItem(key);
|
|
70
|
-
(_a =
|
|
142
|
+
(_a = self.___ttl_storage___) === null || _a === void 0 ? void 0 : _a.deleteItem(key);
|
|
71
143
|
delete removeTimers[key];
|
|
72
144
|
};
|
|
73
145
|
if (options.refCountDelay == null) {
|
|
@@ -84,11 +156,11 @@ const HttpRequestCache = (optionsHandler) => {
|
|
|
84
156
|
setTimeout(() => {
|
|
85
157
|
var _a;
|
|
86
158
|
storage.deleteItem(key);
|
|
87
|
-
(_a =
|
|
159
|
+
(_a = self.___ttl_storage___) === null || _a === void 0 ? void 0 : _a.deleteItem(key);
|
|
88
160
|
}, options.windowTime);
|
|
89
161
|
}
|
|
90
162
|
}
|
|
91
|
-
subscribers[key]
|
|
163
|
+
subscribers[key] = ((_e = subscribers[key]) !== null && _e !== void 0 ? _e : 0) + 1;
|
|
92
164
|
return observable;
|
|
93
165
|
};
|
|
94
166
|
return descriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-request-cache.decorator.js","sourceRoot":"","sources":["../../../projects/http-request-cache/src/lib/http-request-cache.decorator.ts"],"names":[],"mappings":";;;AAAA,+BAac;AAEd,uDAAiD;AAEjD,mDAA6C;
|
|
1
|
+
{"version":3,"file":"http-request-cache.decorator.js","sourceRoot":"","sources":["../../../projects/http-request-cache/src/lib/http-request-cache.decorator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2019.full.d.ts","../../node_modules/rxjs/dist/types/internal/Subscription.d.ts","../../node_modules/rxjs/dist/types/internal/Subscriber.d.ts","../../node_modules/rxjs/dist/types/internal/Operator.d.ts","../../node_modules/rxjs/dist/types/internal/Observable.d.ts","../../node_modules/rxjs/dist/types/internal/types.d.ts","../../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../../node_modules/rxjs/dist/types/internal/operators/auditTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../../node_modules/rxjs/dist/types/internal/operators/bufferCount.d.ts","../../node_modules/rxjs/dist/types/internal/operators/bufferTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/bufferToggle.d.ts","../../node_modules/rxjs/dist/types/internal/operators/bufferWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/catchError.d.ts","../../node_modules/rxjs/dist/types/internal/operators/combineLatestAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/combineAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/combineLatest.d.ts","../../node_modules/rxjs/dist/types/internal/operators/combineLatestWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concatAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concatMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concatMapTo.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concatWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../../node_modules/rxjs/dist/types/internal/operators/debounceTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/defaultIfEmpty.d.ts","../../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../../node_modules/rxjs/dist/types/internal/operators/delayWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../../node_modules/rxjs/dist/types/internal/operators/distinctUntilChanged.d.ts","../../node_modules/rxjs/dist/types/internal/operators/distinctUntilKeyChanged.d.ts","../../node_modules/rxjs/dist/types/internal/operators/elementAt.d.ts","../../node_modules/rxjs/dist/types/internal/operators/endWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../../node_modules/rxjs/dist/types/internal/operators/exhaustAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../../node_modules/rxjs/dist/types/internal/operators/exhaustMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../../node_modules/rxjs/dist/types/internal/operators/findIndex.d.ts","../../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../../node_modules/rxjs/dist/types/internal/Subject.d.ts","../../node_modules/rxjs/dist/types/internal/operators/groupBy.d.ts","../../node_modules/rxjs/dist/types/internal/operators/ignoreElements.d.ts","../../node_modules/rxjs/dist/types/internal/operators/isEmpty.d.ts","../../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mapTo.d.ts","../../node_modules/rxjs/dist/types/internal/Notification.d.ts","../../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/flatMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeMapTo.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeScan.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../../node_modules/rxjs/dist/types/internal/observable/ConnectableObservable.d.ts","../../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../../node_modules/rxjs/dist/types/internal/operators/observeOn.d.ts","../../node_modules/rxjs/dist/types/internal/operators/onErrorResumeNext.d.ts","../../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../../node_modules/rxjs/dist/types/internal/operators/publishBehavior.d.ts","../../node_modules/rxjs/dist/types/internal/operators/publishLast.d.ts","../../node_modules/rxjs/dist/types/internal/operators/publishReplay.d.ts","../../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../../node_modules/rxjs/dist/types/internal/operators/raceWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../../node_modules/rxjs/dist/types/internal/operators/repeatWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../../node_modules/rxjs/dist/types/internal/operators/retryWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/refCount.d.ts","../../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../../node_modules/rxjs/dist/types/internal/operators/sampleTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../../node_modules/rxjs/dist/types/internal/operators/sequenceEqual.d.ts","../../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../../node_modules/rxjs/dist/types/internal/operators/shareReplay.d.ts","../../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../../node_modules/rxjs/dist/types/internal/operators/skipLast.d.ts","../../node_modules/rxjs/dist/types/internal/operators/skipUntil.d.ts","../../node_modules/rxjs/dist/types/internal/operators/skipWhile.d.ts","../../node_modules/rxjs/dist/types/internal/operators/startWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/subscribeOn.d.ts","../../node_modules/rxjs/dist/types/internal/operators/switchAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/switchMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/switchMapTo.d.ts","../../node_modules/rxjs/dist/types/internal/operators/switchScan.d.ts","../../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../../node_modules/rxjs/dist/types/internal/operators/takeLast.d.ts","../../node_modules/rxjs/dist/types/internal/operators/takeUntil.d.ts","../../node_modules/rxjs/dist/types/internal/operators/takeWhile.d.ts","../../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../../node_modules/rxjs/dist/types/internal/operators/throttleTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/throwIfEmpty.d.ts","../../node_modules/rxjs/dist/types/internal/operators/timeInterval.d.ts","../../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../../node_modules/rxjs/dist/types/internal/operators/timeoutWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../../node_modules/rxjs/dist/types/internal/operators/toArray.d.ts","../../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../../node_modules/rxjs/dist/types/internal/operators/windowCount.d.ts","../../node_modules/rxjs/dist/types/internal/operators/windowTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/windowToggle.d.ts","../../node_modules/rxjs/dist/types/internal/operators/windowWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/withLatestFrom.d.ts","../../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../../node_modules/rxjs/dist/types/internal/operators/zipAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/zipWith.d.ts","../../node_modules/rxjs/dist/types/operators/index.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/Action.d.ts","../../node_modules/rxjs/dist/types/internal/Scheduler.d.ts","../../node_modules/rxjs/dist/types/internal/testing/TestMessage.d.ts","../../node_modules/rxjs/dist/types/internal/testing/SubscriptionLog.d.ts","../../node_modules/rxjs/dist/types/internal/testing/SubscriptionLoggable.d.ts","../../node_modules/rxjs/dist/types/internal/testing/ColdObservable.d.ts","../../node_modules/rxjs/dist/types/internal/testing/HotObservable.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/AsyncScheduler.d.ts","../../node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/@types/node/web-globals/events.d.ts","../../node_modules/buffer/index.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.generated.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/ts5.6/index.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/timerHandle.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/AsyncAction.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/VirtualTimeScheduler.d.ts","../../node_modules/rxjs/dist/types/internal/testing/TestScheduler.d.ts","../../node_modules/rxjs/dist/types/testing/index.d.ts","../../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../../node_modules/rxjs/dist/types/internal/observable/dom/animationFrames.d.ts","../../node_modules/rxjs/dist/types/internal/BehaviorSubject.d.ts","../../node_modules/rxjs/dist/types/internal/ReplaySubject.d.ts","../../node_modules/rxjs/dist/types/internal/AsyncSubject.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/AsapScheduler.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/QueueScheduler.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/AnimationFrameScheduler.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/animationFrame.d.ts","../../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../../node_modules/rxjs/dist/types/internal/util/isObservable.d.ts","../../node_modules/rxjs/dist/types/internal/lastValueFrom.d.ts","../../node_modules/rxjs/dist/types/internal/firstValueFrom.d.ts","../../node_modules/rxjs/dist/types/internal/util/ArgumentOutOfRangeError.d.ts","../../node_modules/rxjs/dist/types/internal/util/EmptyError.d.ts","../../node_modules/rxjs/dist/types/internal/util/NotFoundError.d.ts","../../node_modules/rxjs/dist/types/internal/util/ObjectUnsubscribedError.d.ts","../../node_modules/rxjs/dist/types/internal/util/SequenceError.d.ts","../../node_modules/rxjs/dist/types/internal/util/UnsubscriptionError.d.ts","../../node_modules/rxjs/dist/types/internal/observable/bindCallback.d.ts","../../node_modules/rxjs/dist/types/internal/observable/bindNodeCallback.d.ts","../../node_modules/rxjs/dist/types/internal/AnyCatcher.d.ts","../../node_modules/rxjs/dist/types/internal/observable/combineLatest.d.ts","../../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../../node_modules/rxjs/dist/types/internal/observable/forkJoin.d.ts","../../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../../node_modules/rxjs/dist/types/internal/observable/fromEvent.d.ts","../../node_modules/rxjs/dist/types/internal/observable/fromEventPattern.d.ts","../../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../../node_modules/rxjs/dist/types/internal/observable/onErrorResumeNext.d.ts","../../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../../node_modules/rxjs/dist/types/internal/observable/throwError.d.ts","../../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../../node_modules/rxjs/dist/types/internal/config.d.ts","../../node_modules/rxjs/dist/types/index.d.ts","../../projects/http-request-cache/src/lib/http-cache-storage.ts","../../projects/http-request-cache/src/lib/default-storage.ts","../../projects/http-request-cache/src/lib/http-cache-options.ts","../../projects/http-request-cache/src/lib/request-times.ts","../../projects/http-request-cache/src/lib/http-request-cache.decorator.ts","../../projects/http-request-cache/src/public-api.ts","../../node_modules/zone.js/zone.d.ts","../../node_modules/@angular/core/index.d.ts","../../node_modules/@angular/core/testing/index.d.ts","../../node_modules/@angular/common/index.d.ts","../../node_modules/@angular/platform-browser/index.d.ts","../../node_modules/@angular/platform-browser/testing/index.d.ts","../../node_modules/@angular/platform-browser-dynamic/testing/index.d.ts","../../projects/http-request-cache/src/test.ts","../../node_modules/@types/connect/index.d.ts","../../node_modules/@types/body-parser/index.d.ts","../../node_modules/@types/bonjour/index.d.ts","../../node_modules/@types/send/index.d.ts","../../node_modules/@types/qs/index.d.ts","../../node_modules/@types/range-parser/index.d.ts","../../node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/connect-history-api-fallback/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/eslint/use-at-your-own-risk.d.ts","../../node_modules/@types/eslint/index.d.ts","../../node_modules/@eslint/core/dist/esm/types.d.ts","../../node_modules/@eslint/plugin-kit/dist/esm/index.d.ts","../../node_modules/eslint/lib/types/index.d.ts","../../node_modules/@types/eslint-scope/index.d.ts","../../node_modules/@types/esrecurse/index.d.ts","../../node_modules/@types/http-errors/index.d.ts","../../node_modules/@types/mime/index.d.ts","../../node_modules/@types/serve-static/node_modules/@types/send/index.d.ts","../../node_modules/@types/serve-static/index.d.ts","../../node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/express/index.d.ts","../../node_modules/@types/http-proxy/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/node-forge/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/@types/q/index.d.ts","../../node_modules/@types/resolve/index.d.ts","../../node_modules/@types/retry/index.d.ts","../../node_modules/@types/selenium-webdriver/http.d.ts","../../node_modules/@types/selenium-webdriver/remote.d.ts","../../node_modules/@types/selenium-webdriver/chrome.d.ts","../../node_modules/@types/selenium-webdriver/edge.d.ts","../../node_modules/@types/selenium-webdriver/firefox.d.ts","../../node_modules/@types/selenium-webdriver/ie.d.ts","../../node_modules/@types/selenium-webdriver/opera.d.ts","../../node_modules/@types/selenium-webdriver/safari.d.ts","../../node_modules/@types/selenium-webdriver/index.d.ts","../../node_modules/@types/serve-index/index.d.ts","../../node_modules/@types/sockjs/index.d.ts","../../node_modules/@types/ws/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","fa3d0cd03fa17459d9ddd98b120b4bb084da39f0391cbdce480a6ef74be0cc7a","e3fd84e6470b7e0679c4073ee5ce971d324182486dde5a49b67cae29168b51d2","dd8331d0a5190a4735ce6c152e420230188c4966067a756673c36dd7ba72b10e","cfdf36cfc0721c29f58651fc12f0f5a349d29da3a63180afc5b3d77b95653f82",{"version":"d57e7ff5243e0dcd04cf2edf9ad9520af40edd6eba31c14c3f405f0c437fa379","affectsGlobalScope":true},"0f882d4ae58f431454030289154feb0132e1b00ca5c3197c6b749bd098aed73a","7ff7f4632a6e7b6872fb1843f3c0df495b49840eae2a23c6fbc943f863da8c29","d267771149e172ade39e3ef96b4063209d5a7e8291702fe03983aa52f2b3d5f6","a78590b0efcef281236e3234520c348d63be1d4561b63b20e6c3b6fc18b37dfb","4d59c6a10b6c79a0927c79efa89b3c9f71d174ec14ec2792076cfd2330d0cf8e","a496f51933422872de22729b7a0233589325a1a1707cccd05cd914098944a202","75b6663bc569724017997481b6b3774065c204b316cb4f5ad7df3b5162d2dce1","06a38095ad4368314366bc08f7cbc0fe274ef7321ec611005d0bdd9c6565e4d5","4599793db9aed9b84677f0ca1cf7ef3c69bb91cda4fe4329cbab778ca4d80a58","ad0028f96921778931fb8419d8de33b10908314fa99699de1702020f69235da1","ccd2a35321c0786bd3808042dc43b960cac13f2cc660ac37a0087e12bc97d2fc","df524ed01de4f19efb44bded628dbba9f840148be4b6cfe096e29d4b01589de3","2e3981b9cee48174ff85ae15019fd72933f7023a4ed05094740f7e6f7775623c","836ebdc3b9e4c006acc4f405b7e558e56d47830e05c40d991b1e27fe8bc91157","2cc6b617c6120ba64b5778ccd4b74c951adc3a3941bb6b39f47d48701c44af39","eca02b99615a8f1652e21399d832618e38bf166c0747c9247349bc901a2f7741","7f7d6d42e5780e86f5b860a6f95179fae06a368b3af28c1c4230397c47021a59","4740a7d11ab3b381be0f269f1903fb3ff226a2fba55a01756b2997e67cd853f2","863dbc4e77f0353e6f9d6bc0e2b4622d5c07ff6f099ff66cafd7924b2ff4dd3f","bf034a18ed7e2a058f9e48c4c2480a124138fbd3586a80c77736a9ec079d12a8","f88758992a0bf13d095520aacd4381fb456ff121fb9aa184e6eb0eecb26cfadc","c249e9ae33bfcad97deec3c73c9ed2656e112fbdf22deace0b39724be6a5dcf0","d8b45924965c0c4fc0b946c0b6d597aa8d5de9cdf5c727e3d39422d17efec438","d07ea953cfea0c4bd11641912846bd955f4fd26ad2b7b8a279d69c7ab9cb3add","feddabf6ab0eb191e721f0126f3db8688db97c77a1234968bde7a2d70c4ae513","dbbda62ea5f4d1f8b40cc2b7e2e2fae424abbb4715a04a3659cb8b317f7b228b","cde0568b836865a24f4ee5859462004a326dfb76d514e6f56c8e78feedebed58","7f5cb3a03588ed46d52a6c2138315d930cd6ffb5c2134247cd07bc23cbea0b5a","7797f4c91491dcb0f21fa318fd8a1014990d5a72f8a32de2af06eb4d4476a3b5","f39fb20b83c3f9853c13d4ac95533760979d3023c0a5affe2c0a62d91ab3afd8","e4fca08aed8afb32bb8643d7469810bc8681115fe398e56a028df9e73b2d867f","2622639d24718ddfccc33a9a6daf5a2dd94d540ca41e3da00fe365d2c3f25db3","078966067552650f44ca96c68eddbb8539f30ee48a9ab3f24abdcf0a4037b535","2cd6250c43dba360377481c98d48db6ab1532a7527339edb0deffddc28ba66b1","7a9d600990fbe263a23daebed9ba1bbc5761e45679a7e2b2774a42756ef077a2","66bc155515fbea8c31a4efccbbac44de7c037b01f3aa00b76312cf7252725d30","5703288ddbfc4f7845cdbf80c6af17c8cde2a228757479796c2378b1662fcd48","0dfd353f0c16dd5107a7e0713dc52d0a2538293b0a0eac6000a017f9c0a60b56","9cd683a4663ef4d9c6486f1b8a34c73bdbc344d69490931bfe2fbcada12ab35b","42f6a409bad5259ece69df25d2b8ace2ff2ade45fe6386ee45203bdd9329f971","d3b1a8b87a5e77d70056325e137a0e04d984b991546fdd3c1034ff4102d603c4","2eb162efd6dba5972b9f8f85141d900d09da4fba23864f287f98f9890a05e95f","3f878fb5be9ebe8bd0ac5c22515d42b8b72d3745ef7617e73e9b2548ccbdf54b","e9ed562b7599c8c8c01595891480a30f9945a93a46456d22ee67ebf346b7538a","e7bf975a98cecefe2e8902fb7da9314675ecdce553aea722aaec97327668e18b","3d36f93648518338c875d9f77a8eab52905365483dbb3afe43ed68f1b712b67c","4fa54df9184d291bd78b36f5063372042cd995460e906cb14014e40d1442a326","b4e32bd5e3b493e4ea6b5ec69a4c02aa1fdaa78e1df9a863bb07604de8f9d123","f6bd1aa152ca2b5064e06282ee3137842ae6825b6b09aa89a2ff063b976a56f3","bce2390bb3a76f8bf2ba4397c66db5277bf3e698ee614347e5eb79d7fc0942c6","fbdc8d7cc7daf4101bf567512c67fb990d8fe300e0ba7f213171192177f44aa0","298e0da6d858e39fc0c1eebfa4f5c8af487868c6f2e98c3ef800537d402fb5c3","3b6457fb3866562d279377f923cf3758c80ed7bfcc19414b72a24d0a98188e0c","4fb5d7efb3520b92c1b767ce18968057c5e70886d7fb3416c487231df9275af9","df2303a61eb57b2717d17123e82bc0f3fd60f6e4673cb5506192dfe23c9480bf","b104960f4c5f807535ab43282356b2fe29c5d14a02035c623ac2012be3d5f76c","a35ca245eb852b70b20300546443abb1fcbac6e5066e4baaa092af4ea614d9b5","55da140feab55f10a538a9879a97c4be3df4934cbd679665c91a7263a86095e1","1a39e51e3362aec7d4edec9b317ff83916fe0471f86ddf2d3ef3af5952e87d9e","4b3f36b96f129a8e125c91d41a05f711e73b3285f80bceb3a1aecb13c97c4502","852779920fc4220bc42ec6d3c9b6164e23ea9371a788531b48b4005fe0cb4392","9a82e1b959524c1abfeeb024ee1a400234130a341f2b90a313ce4e37833b7dd2","515b97cede17d91c9669cc1c7fb7a8a5f0a5f2d8999f925a5f70b4ebea93723e","08e8e57241f874bdbf69ab2b65cb0ee18b4183d5c9452937da49b934fc679c4b","944af466f063d4bd090ab9d988c620b90a014e919d5f78963f6074a136ea225e","644addd4811636da491c9546654bc005ba8599f23df6d731d91eba86f3137fc2","a9249493114b181814728cbfeb7234738193a4169b654ec4705d48d7a4d25222","aad6f20d6eb01192ae02294361faa6e1f320d72447b56f433db853bbe80b15ca","876fbedec2f494eb6f834ce8636b07d581c657d205d81a3ba894eff0facc6b84","58527aa45f11c9b259a6a9d78b397f35020bfbb104f4d3bb177039b5c18146bd","91b8b61d45b5d22f3458a4ac82e03b464a0926bab795a920fe0eca805ec476eb","2744532f8fb960eb78497ac660db719f503a10c801f87131d26fd9cbef75dcef","6884287c54891ac19cfbe056f3ed29cab1732a00dec69bd3b140ce62c11783c6","abc3487041159734b8611d9d6fd85de6892f11ebe8c2583baedfc1f87c53757c","cb46657d3237f80742d5701ebcced8f6e5cf8938442354387d6c77d7048dfae6","76281a3b799bbd17ec8e6de7d2fa45ccf749049fd53f00857daf0dbc449616b8","661f322e45545a554e4ffc38db6c4068a66e1323baf66acb0d8a9fa28195a669","91d70dce48c2a2bb55f0b851cf1bdba4202f107f1e8fdf45f94ff6be4b8e8f99","ce978e20a6f26f606b535f0d6deb384ae6a73f8d0bd0dfca0925f5317cad1f25","f2d3567210ca4d559d8297d6c4402599c93e3bc7485054192d38db5e132fbc0a","887d8058aeeade45984fdb8696147078bc630d3fea15ab2b7baacde0fe281fb7","ad27aa59d346179ac449bd3077d245f213152879e4027356306ccf1722d61d51","ea546a7ed9eaa71ba78d4d392509dadea4bafed283269dd6c4b09e7d8824e986","4ec0f2a141a9ae7d3557b8efe630ac2021bc3a9ac61238b59293f4cf2f196e82","b2db743c71652e03c52d51445af58d0af3316231faa92b66018b29c7ba975f6c","0863a5876c85fbaffbb8ec8aeda8b5042deb6932616139706d2b82cde9d3f7c7","1294b8ecdd212362323f349dd83b5c94ea77bfee4dad24fc290980a3c8af6ce3","ba9c46725e2a0bd9df59d3a1e801cc60f90db3ef7817131c53945dce2b8c0c56","281d373eeabf80c4851f8de991e6abe4d385c30379d80897bbc3df3dcac99cee","624c5dce95672d9dcca40d9d9d82ef855f5f902292f43aa265cc8fd963c6ce84","8a48d9c6184992d1c3ed5daa55f83d708c37582916926a5555a900608f804b60","605dd288c636cf9b5317fe76dec75d3c7fb855fdcd3ee8cb4fea7d7091ca6fb4","95addea67857d4e568a02e429b15458cec203876b2ea5f5ea18ccfeeb91b8ce0","b5a615b0ad865ffa562980a10bda162ac1744fd363b4edc2cfc664222071cbcf","bbccd721363897950a55ce09529503f25a69522e5c91a22679b66e941e5f8654","d3a1e70795c38d7851b6e4f3b441c5ffdae171d6e2576a2204b7d79059aeea66","d7b8d41887c5fccfe19802c4336d34348b752abf0d98839575699d71deff60be","063fe3004728b8516a4d799ee16f9a71801ba24e0443dd98638cef1bd4353a7c","b8a0236f47d9037efdaf93da602415ae425dababe097fc92f83fd47ce9aaa69f","fab7912fc3ff45fce2f5d5febc9494c4d0a85d6c63fff68f21e4669c32eaacb9","f6c3fcb9d75d8aea778236fd9327ceb935b41865dbf3beac698be77e0ae9018d","b20bc124abd8ee572d0d756713ff987b116cdae908a6fcbc40e80d4b999f56b4","a599f3f450ad62c3fdc0c3fd25cddcc9332ffb44327087947d48914a8da81364","645dff895168aa82350c9aa60aa0b3621b84289fef043be842f45a9c6c0ac6e2","f068ff5b7fb3bdc5380e0c677e21de829bd25cdac63a9b083fdc220fcb225280","09d2fdca6ea6c135897a26976ad3c0db724adaf23ef4e38ad852b1d8efef1ae6","15de5b7739bf7e40213a200853bf78455ee5958af08eda786605a54a7f25ade6","f3acb439e08f0c2c78c712a876dc6c2080302c46916f1d63b7dbe509616ce9ae","37862e711637ebd927907a82cbf0143ea30e95eb165df554926c43936b1d77a9","89e253db2c2cc9a510c521f14dd2b1aae4de2556ee5159ad8d118d3587e3a880","3d0a172cee184a0f4111a7bd7fbb8729af3f54b30c06a2677d85c20ea9c811ab","d6a07e5e8dee6dc63c7ecd9c21756babf097e1537fbc91ddfec17328a063f65d","6fdc88b1287c276b55b7f7c4c7b49587813c763eea9751ce0baf0a7e61cd5d89","6a02443704052768bd021f24783aa104b02ae4444e9b735317bf13c6b857a11e","37987b0fe9800cf25473c882ce07bccdab2763c5681c1a2d16816aead46aa8d1","c84c03c721154068e1a60d83e9e85819bd3ef70b824ac2edc498aa31c06e5781","c23a403716784b53cf6ce9ffff9dcdb959b7cacdf115294a3377d96b6df1e161","c96fb6a0c1e879f95634ab0ff439cbb6fff6227b26bbf0153bef9ed0aabba60d","db936079fe6396aad9bf7ad0479ffc9220cec808a26a745baebb5f9e2ef9dbc7","06bc0b9cc7bf0b92534f1517fe5adde1f23f60cc6cc5c59f8e1c65db48a40067","919a753b0cbb12ccc606c62e2d34884d75a48ba19b1dda497c72621b11dac088","2c27e33ee0bf722988da00abd582cc9b806ce3fd9153a864800a339ad13f3fcf","92d7b3a5aa5dc872e54cbad2a7094b3ea4f72c7901de1d07b4c334ff658297f0","7a52922b38e9686d5bdc6e75774929eec6688d26c1dfe4a03ddec77ede468e87","aa5efca2833d89b55248f1889a6433dab1b1f41768e9a75f8ce35f9bf56c5ec4",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true},"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a",{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true},{"version":"d2662405c15ec112ebc0c3ec787edb82d58d6acb1a9d109317d7bf9cff9d09a7","affectsGlobalScope":true},{"version":"362d474eb9feae178a83ead94d757c21e42d6d7090e4182f0c12e92830a3d25e","affectsGlobalScope":true},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true},{"version":"dc27badd4bf4a2b0024a0cd32a9bbf0be7073902c5177a58be14242e7d8bf2c7","affectsGlobalScope":true},"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"b972357e61ef2e072f8a88b9f4f5a70984c417237e6106f6b2390414a09ce523","affectsGlobalScope":true},"076cac5898bd833255def0f7c5717b83534212873505c9c958f1926d49f9bec6","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","75eb536b960b85f75e21490beeab53ea616646a995ad203e1af532d67a774fb6",{"version":"36d0976d3dad74078f707af107b5082dbe42ffcadb3442ff140c36c8a33b4887","affectsGlobalScope":true},"86e0d632e9ef88593e8724ffb6af05104e13a08f9d8df733a30f9991ac387fff","7646ad748a9ca15bf43d4c88f83cc851c67f8ec9c1186295605b59ba6bb36dcb",{"version":"cef8931bc129687165253f0642427c2a72705a4613b3ac461b9fa78c7cdaef32","affectsGlobalScope":true},"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","47b62c294beb69daa5879f052e416b02e6518f3e4541ae98adbfb27805dd6711","f8375506002c556ec412c7e2a5a9ece401079ee5d9eb2c1372e9f5377fac56c7","8edd6482bd72eca772f9df15d05c838dd688cdbd4d62690891fca6578cfda6fe","07ba29a1a495b710aea48a4cf19ae12b3cbda2a8e9ac62192af477027a99e8de","6dead64c944504250dd2fc9095231f36887cfc1534f1ff57737c19f92d165c91","b9a4824bb83f25d6d227394db2ed99985308cf2a3a35f0d6d39aa72b15473982",{"version":"6e9948b1e396106601365283680c319a9103c71a5725e7d03e26fe246df60c4c","affectsGlobalScope":true},"8e8e284b3832911aeede987e4d74cf0a00f2b03896b2fd3bf924344cc0f96b3c","37d37474a969ab1b91fc332eb6a375885dfd25279624dfa84dea48c9aedf4472","1ddd8c1a3ae1f8ab28affd53b13910be4afe0b35f28517b7f14c268e9e42647a","f1a79b6047d006548185e55478837dfbcdd234d6fe51532783f5dffd401cfb2b","cbc91187014fb1e738ef252751a9f84abf2989ec1c3b1637ec23b5b39cdf3d25","e822320b448edce0c7ede9cbeada034c72e1f1c8c8281974817030564c63dcb1",{"version":"9d65568cba17c9db40251023406668695ad698ea4a34542364af3e78edd37811","affectsGlobalScope":true},"f23e3d484de54d235bf702072100b541553a1df2550bad691fe84995e15cf7be","821c79b046e40d54a447bebd9307e70b86399a89980a87bbc98114411169e274","17bc38afc78d40b2f54af216c0cc31a4bd0c6897a5945fa39945dfc43260be2c",{"version":"d201b44ff390c220a94fb0ff6a534fe9fa15b44f8a86d0470009cdde3a3e62ab","affectsGlobalScope":true},{"version":"d44445141f204d5672c502a39c1124bcf1df225eba05df0d2957f79122be87b5","affectsGlobalScope":true},"de905bc5f7e7a81cb420e212b95ab5e3ab840f93e0cfa8ce879f6e7fa465d4a2","bc2ff43214898bc6d53cab92fb41b5309efec9cbb59a0650525980aee994de2b","bede3143eeddca3b8ec3592b09d7eb02042f9e195251040c5146eac09b173236","64a40cf4ec8a7a29db2b4bc35f042e5be8537c4be316e5221f40f30ca8ed7051","294c082d609e6523520290db4f1d54114ebc83643fb42abd965be5bcc5d9416b","cf7d740e39bd8adbdc7840ee91bef0af489052f6467edfcefb7197921757ec3b","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093",{"version":"b9f0681c4d2cb00a5cfe08a7be9662627b912de562926819ebddfe2ef6a9b5ee","affectsGlobalScope":true},"b85151402164ab7cb665e58df5c1a29aa25ea4ed3a367f84a15589e7d7a9c8ca","89eb8abe2b5c146fbb8f3bf72f4e91de3541f2fb559ad5fed4ad5bf223a3dedb",{"version":"bc6cb10764a82f3025c0f4822b8ad711c16d1a5c75789be2d188d553b69b2d48","affectsGlobalScope":true},"41d510caf7ed692923cb6ef5932dc9cf1ed0f57de8eb518c5bab8358a21af674","2751c5a6b9054b61c9b03b3770b2d39b1327564672b63e3485ac03ffeb28b4f6","dc058956a93388aab38307b7b3b9b6379e1021e73a244aab6ac9427dc3a252a7","f33302cf240672359992c356f2005d395b559e176196d03f31a28cc7b01e69bc",{"version":"3ce25041ff6ae06c08fcaccd5fcd9baf4ca6e80e6cb5a922773a1985672e74c2","affectsGlobalScope":true},{"version":"652c0de14329a834ff06af6ad44670fac35849654a464fd9ae36edb92a362c12","affectsGlobalScope":true},"3b1e178016d3fc554505ae087c249b205b1c50624d482c542be9d4682bab81fc","5db7c5bb02ef47aaaec6d262d50c4e9355c80937d649365c343fa5e84569621d","cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a",{"version":"6831f13f06a15391dfeb2477d48ac58311ab675f85846a05499ee92d6e856933","affectsGlobalScope":true},"37bef1064b7d015aeaa7c0716fe23a0b3844abe2c0a3df7144153ca8445fe0da","59ef5d8f9f0274a03123bdd45bf38bf0e2a96d600ccb0606e0d780384e58f26a","3da085d344bf625767c5b1fcada31a5d94ebefc4e36bf18a676ca37460bc4e4e","006855ddea8674d084173a768f88519dc154be94eba5e2120262a33709832b9b","17dd843a266f99ca4b3a1257538bd1cc69dc5c7f2f23c3891f0430615b8c9c1c","5430364886c721a30475253356162b6c27871718094cb3e69e2bcea71a17e533","1218398da7c8dc4add10bdb3aa2856aad54b123d847eaf574d1d694ac269bfb5","189014f3213ee7457dbeea04dca10ca5d9ed2062cd39641aca5f3b4c75de9d99","b637cd92688a6cdf4f8f184ff529dc2bc7f15692828e2c0c66a60e6972f400c7","7061e83d6792897077bcac039fccf7325234004769f591c63a8cf8478bf551bb","7ab905865063322f2bba361d0f2ef93520f64a382bac13b127479860ad99f62e","277a358d61376fce7ac3392402909c96cf6a0a613146549fc0165ccff953e012","50614c808e099a1d4413786f3783d9eeaaa74b267f2c87fcf8a893287e91c301","f4cb6530f248e87cefa74ef623206fec805f6252f885f8e14ef3d1a5872cef2d","38c332caadd8391566552395d592076470a5e7423f70964620eabf05c02907cd","eb17b5bf1fc763a644c21d76572c0e41e351c3f6dfcde649428d5d829f7294d2","cb124162c87b29ff5121e3ee5bb29c782f101e0135d6c2644ab1b31d530a435e","406d6f5d3707c488362fb40d1c1f8a7b0a42b70554b427160185d93e430228f5","2e9776410c5bc290d9432a9215c67398a273e514a79b9e15f32ecddfde8a03be","313ff8df074b81d3e4f088ff3a3a06df3d9b0d0c7f55469ccc2ac887ecb6b867","c718475bca06806cc243e77777641cb67ba68f2c57321a4773ebb47760a3bcf2","96e6bf811343caab5112b68880905c5d20d9257054afac6c18e718a4c549ed27","a2793bc73ba63ca7d259cb0f0b61d0023820170d08a1f9715006c8042d060165","d5011b38165771fdf75a9a06d6d379a1fc7edd7eb695ebdc52319fb6e3c6d81f","88417fb19d339304e9616a38ea513251047c9e300c81f9467fc317df8a582e71","3e8e2d132f726dddbda57819f5391504e585cb3beab6b32203064e7e40618583","6e23627cd3f10418b5b2db102fdcf557b75f2837f266d88afac6b18f333bb1bc","866046dcea88f23d766a65487ee7870c4cf8285a4c75407c80a5c26ed250ef8d","019f4f1cbc781cc15c6173f8be5ef907405722194ab297127b3c3426e5368339","41f4413eac08210dfc1b1cdb5891ad08b05c79f5038bdf8c06e4aedaa85b943d","c79f1c8b51d8475dde8d2973f740f43ca34b1f0a95d93649cd76c1ee20abba19","35f0d2bd2c5c05c0cb19095bf5b7c44365b1c88efe6285370855b90417277a64","8264b129f4c4eb4799703f8e5ee2223a184d1cdbfc782158b1f40a88a4435a1f","527ddda6f8be1279f3294714534c49d6e90f238cea325519882ebf88d7ec5bd2","b23877792e8bd00271d0ec5d401b68e4228540a4316de3d9dfb697b955c161a4","35b2eb1de01633db90d41abe93730b29984856fcc840b4c2801bfd3761a2097b","95f0c9127b879c2fc7e31f8e09ff45bb4aae302e60f4b9ceaf4d9ee6bc51ec66","2a6b4655a6edce9e07c7d826848f72533c9991d40bc36e3f85558ad20e87ce2d","6e3d29fdc96ebbb2ac672d2dae710c689c1ea0d0e9469e0847616f3c38fd085f","d505055b8fadd42da235c85947911d8d198ad70c5f5775991e7821d4f89c90f5","8b5a5852099dca7d7e7a7cef6d681dc1586aafacdb963ca180fe5cabbfa3a24b","0d1aa3341d1ad2064adada71c5d01a2f572e4aac09410e5616d90894105a0eb9","52494ca5a884da3bf11b8165ab31429715f0970d9c6383240c5666f4bd713e01","162fafa2291749df2ab4516854aa781fcee1d9fca2ecd85fb48ae794c0700ce2","b4b9b51ee6f6309cda2e539245235a8caeca2b1d6bf12b5e5c162d17333c450f","d2ffe8356f060b88c1c5cf1fa874a4b779fb87fd1977084876e8be9eab6bf485","c76053984b39150d00ade365b096a8bc21a4a7f2ee9e0a926711b00f8e7bf701","956b510767e3d6f362ea5800510635197723737af5d19ae07ee987ea4a90bfa5","cd1a8ff61f5063d7e6e2094e25d35c90b499961b63911f2f4ae0ff5555c2b4d7","1cf09b5945779e9bc75c4dcd805fb149c28fc90da3335186ef620647a3c540e1","9cdc0b9a313090ec45b34ea1eb02fbace433f509e753634b043e9b83038261e6","c93474cff0088351a65d3cad24037874a26a5371a48528563e56efe31cb3d8bb","b4580df8ea7f62d7b06588001952bf69426e6b03cf3d2569f5f608e45f29ba08","de27f7bb9be9d8a2b4557ec6503b8a315f74d598ce9a0ab81b5ed5610e1a8e81","fe3c378dcefa7ed8b21bd6822f5d7838b1119836da75ae1e1fb485d27b8ffb62","7365bf3333d4277b6fe374ed055624e5ec080dbb919e2d78f1cb75a3f1a4b4f6","a5fbf3bc5c16ab5c84465ba7a043a4bee4c2b20bd3633d50d80118a3844edbaf","0923e4ac8c894ad507bd2daee0df66b699de88467201381ece011ba5a080e1ff","e4f6626f827ea509255647e1b6db82145a2eb1a6b46202655e7d9bb19145c33b","26e23972c40f378f0301d8d7025ea895557c2865a1a31c8ea9c3fff0dbc27075","bfddbff94132b423ad1d71bdbefb1d388c21a74ac1a8742df9324e5bf6109058",{"version":"853a275ae75f17c716f0029653179161c9a01d2632b2416bf76120ceebb286cc","signature":"1da12c93152e4f551124aeb3bc414f6b5a26e0ab9d72852dc3029564d8d6fb51"},{"version":"d801c3b9e8e3cd7083afa2418a71f8ba65dd4c629eb7981301d4037d668f2ef2","signature":"d984e254dfe7422602484d69ac13731e54948d182a8e249cb0ba37f5389433de"},{"version":"ec8804ec1a79904d452400f98e99759f6074ce570d6b3d7d6c0a26368c22c82f","signature":"0550e90cbe6ca302cb2d083daa96a14239231961ef3495f8b19b9da684ee7f5b"},{"version":"912d4e327bc18f4084d4bbdd7d90b113b133b77f3d9d82b09f4e353e59746d92","signature":"aafa1fe4195675b511dd70a61ec4c91dc955d830ceda7916392ac3af3b113c6a"},{"version":"b586b62a03e6ce60ad5b94c637e3911172e0703705858364512ade91d1f91c32","signature":"b8e5766cf15ac303c21740591c1233ecdad3119c1d2a171742eab5c3c778816e"},{"version":"581a609721a0f6de2cb066eea0a5182811e9e3a9debe9ca7085948aad3133a65","signature":"c763c307c269804e4490b8b48105de582087200bd33241e2ce45f384cd02d1bd"},{"version":"bf0083f100501bd1a44d40f91c87c3a0b75e7ebcdae40e8d031a59406aac32c1","affectsGlobalScope":true},"614a8a30fbc27e0ac9e0e8e4315f01ee2fc881fe6bed736b88ceb68c8a75eed3","f05ed1afd2c5a1cf9a226e5128053fff3413eff516147263e5994039b1b8e12e","e72926bd4f9e25d763a7670122f7ca42cdc804b769b3bb8d68f2259201db1516","0e44a90a7f7630f8f31ee704f928bdbff14186e44608e224e985e97d054d1a3c","33d0882f9e69e11d2cb9a9e252f843665a9b1e4e9c1229a9750f40c1c176cde8","f033fe67144d713092f9bc72893c0957681d44509626be7edba200d56fa71419",{"version":"c6e6204f1b74de221cfd87f85b1ceb58fc8fc25a062b59944dad333431290a1b","signature":"ad9601b4aabeaf1846d8c26afa1c8e0ce253c29b22b193b175953309f772c44d"},"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","f9e22729fa06ed20f8b1fe60670b7c74933fdfd44d869ddfb1919c15a5cf12fb","d34aa8df2d0b18fb56b1d772ff9b3c7aea7256cf0d692f969be6e1d27b74d660","93a3b8e57c68e348fc4054b245bd7cf4893225f56c991028844b693c2fa8c03c","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed",{"version":"1b3395fe23460dd30674c940494aaf8422dc6afbc516a72c431404fb97473c3f","affectsGlobalScope":true},"689be50b735f145624c6f391042155ae2ff6b90a93bac11ca5712bc866f6010c","751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","a4a39b5714adfcadd3bbea6698ca2e942606d833bde62ad5fb6ec55f5e438ff8","bbc1d029093135d7d9bfa4b38cbf8761db505026cc458b5e9c8b74f4000e5e75","3671af8f58c05e9c83409ae56cb2a3db3c2e0a4cd082e685933d72f1c1a621ae","4571317119a9fc37fc70c37accd12c3c492178231ec820405af86f4005dd4766","b18888ee17fdf1cc38bb2579543393712ef9127aab23606402dbdb23e56b3534","1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe","d5799bcf7fe4e6de3063abf4e321c14b051706f03cf5716d8a19f22fe1f69519","b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","cb90077223cc1365fa21ef0911a1f9b8f2f878943523d97350dc557973ca3823","18f1541b81b80d806120a3489af683edfb811deb91aeca19735d9bb2613e6311",{"version":"7850260a82d3d1d797b4a7d4da1f29383ddc847146a11ae9aa0b7c4c2accf49f","affectsGlobalScope":true},"232f118ae64ab84dcd26ddb60eaed5a6e44302d36249abf05e9e3fc2cbb701a2","26b7d0cd4b41ab557ef9e3bfeec42dcf24252843633e3d29f38d2c0b13aaa528","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","7fadb2778688ebf3fd5b8d04f63d5bf27a43a3e420bc80732d3c6239067d1a4b","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","026aa0540cf6376b64fff7c22f4dc127c2bbe7885daeabbc88f0a3513faaf78a","8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede","199f9ead0daf25ae4c5632e3d1f42570af59685294a38123eef457407e13f365","3e3136df4c4894bc13e897da8393fa0d8b05c6c82267e3ffc91a37edd5d14b17","1df70d9b0f1b44d109d5f907ae88e9d6a39b74bfc299d657c91417824e6f9fe8","2f8716f59642e8a9dcf4f0a651fcda343cc6ccc91813287241528797c57cec93","b2486391e3331a6b3925ea6a8752456a66fdc880958770200e4b18a49f79720e","e0ff1b3fdb6885034bef9e26f174fb0845a3af57a4d17363d024fa2188457db8","4d98aba15b636a02a7d8c7169db35741c897db2d8ea48213fe2a3d762b5ec1e3","f11e1ae5d776fee3a2d434adc95df90b4dcc08f0bcc180bdfc5f271e60903933","31df58b7359d69009932b38dacfacba6f983d63902407b1442bd7311f30c3fc5","5c738ff4573e622ec2b507b7484c16dfc49199c670e1eec3c72458f73e6f02b6","ddef25f825320de051dcb0e62ffce621b41c67712b5b4105740c32fd83f4c449","1b3dffaa4ca8e38ac434856843505af767a614d187fb3a5ef4fcebb023c355aa","1ba59c8bbeed2cb75b239bb12041582fa3e8ef32f8d0bd0ec802e38442d3f317"],"options":{"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"target":6},"fileIdsList":[[180,222,328,336],[180,222,328],[180,222,336],[180,222,336,337,340],[180,222,336,338],[180,222,336,339],[180,222,352],[180,222,355],[180,222,236,269,343],[180,222,228,269],[180,222,262,269,349],[180,222,236,269],[180,222,351,357],[180,222,351,352,353],[180,222,354],[180,222],[180,222,233,236,269,346,347,348],[180,222,344,347,349,363,364],[180,222,233,236,238,241,251,262,269],[180,222,269],[180,219,222],[180,221,222],[180,222,227,254],[180,222,223,233,241,251,262],[180,222,223,224,233,241],[175,176,177,180,222],[180,222,225,263],[180,222,226,227,234,242],[180,222,227,251,259],[180,222,228,230,233,241],[180,221,222,229],[180,222,230,231],[180,222,232,233],[180,221,222,233],[180,222,233,234,235,251,262],[180,222,233,234,235,248,251,254],[180,222,230,233,236,241,251,262],[180,222,233,234,236,237,241,251,259,262],[180,222,236,238,251,259,262],[180,222,233,239],[180,222,240,262,267],[180,222,230,233,241,251],[180,222,242],[180,222,243],[180,221,222,244],[180,222,245,261,267],[180,222,246],[180,222,247],[180,222,233,248,249],[180,222,248,250,263,265],[180,222,233,251,252,254],[180,222,253,254],[180,222,251,252],[180,222,254],[180,222,255],[180,222,251,256],[180,222,233,257,258],[180,222,257,258],[180,222,227,241,251,259],[180,222,260],[222],[178,179,180,181,182,183,184,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268],[180,222,241,261],[180,222,236,247,262],[180,222,227,263],[180,222,251,264],[180,222,240,265],[180,222,266],[180,217,222],[180,217,222,233,235,244,251,254,262,265,267],[180,222,251,268],[180,222,374,375,382],[180,222,375,382],[180,222,382],[180,222,376,377,378,379,380,381],[180,222,234,251,269],[180,222,234,365],[180,222,236,269,360,362],[180,222,234,251,269,361],[180,222,233,236,238,241,251,259,262,268,269],[180,222,351,355,356],[45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,61,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,101,102,103,104,105,106,107,108,109,110,112,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,164,165,166,168,180,222,272,274,275,276,277,278,279,281,282,284,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327],[90,180,222],[48,49,180,222],[45,46,47,49,180,222],[46,49,180,222],[49,90,180,222],[45,49,167,180,222],[47,48,49,180,222],[45,49,180,222],[49,180,222],[48,180,222],[45,48,90,180,222],[46,48,49,180,222,301],[48,49,180,222,301],[48,180,222,309],[46,48,49,180,222],[58,180,222],[81,180,222],[102,180,222],[48,49,90,180,222],[49,97,180,222],[48,49,90,108,180,222],[48,49,108,180,222],[49,149,180,222],[45,49,168,180,222],[174,180,222,271],[45,49,167,174,180,222,270],[167,168,180,222,271],[174,180,222],[45,49,174,180,222,270,271],[180,222,285],[180,222,280],[180,222,283],[46,48,168,169,170,171,180,222],[90,168,169,170,171,180,222],[168,170,180,222],[48,169,170,172,173,180,222,272],[45,48,180,222],[49,180,222,287],[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,98,99,100,101,102,103,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,180,222],[180,222,273],[180,194,198,222,262],[180,194,222,251,262],[180,189,222],[180,191,194,222,259,262],[180,222,241,259],[180,189,222,269],[180,191,194,222,241,262],[180,186,187,190,193,222,233,251,262],[180,186,192,222],[180,190,194,222,254,262,269],[180,210,222,269],[180,188,189,222,269],[180,194,222],[180,188,189,190,191,192,193,194,195,196,198,199,200,201,202,203,204,205,206,207,208,209,211,212,213,214,215,216,222],[180,194,201,202,222],[180,192,194,202,203,222],[180,193,222],[180,186,189,194,222],[180,194,198,202,203,222],[180,198,222],[180,192,194,197,222,262],[180,186,191,192,194,198,201,222],[180,222,251],[180,189,194,210,222,267,269],[180,222,328,329],[180,222,328,330,331,332],[180,222,329,330,331,333],[180,222,337,341],[328,329],[328],[328,331],[329,330,331,333]],"referencedMap":[[338,1],[336,2],[337,3],[341,4],[339,5],[340,6],[355,7],[356,8],[344,9],[345,10],[350,11],[343,12],[358,13],[354,14],[353,15],[359,16],[351,16],[349,17],[365,18],[364,17],[360,16],[366,19],[352,16],[361,16],[367,16],[368,20],[219,21],[220,21],[221,22],[222,23],[223,24],[224,25],[175,16],[178,26],[176,16],[177,16],[225,27],[226,28],[227,29],[228,30],[229,31],[230,32],[231,32],[232,33],[233,34],[234,35],[235,36],[181,16],[236,37],[237,38],[238,39],[239,40],[240,41],[241,42],[242,43],[243,44],[244,45],[245,46],[246,47],[247,48],[248,49],[249,49],[250,50],[251,51],[253,52],[252,53],[254,54],[255,55],[256,56],[257,57],[258,58],[259,59],[260,60],[180,61],[179,16],[269,62],[261,63],[262,64],[263,65],[264,66],[265,67],[266,68],[182,16],[183,16],[184,16],[218,69],[267,70],[268,71],[369,16],[370,16],[371,16],[347,16],[348,16],[372,20],[373,16],[376,72],[377,73],[378,72],[374,74],[379,74],[382,75],[380,73],[375,74],[381,74],[346,76],[383,77],[363,78],[362,79],[384,12],[385,80],[185,16],[357,81],[328,82],[301,16],[279,83],[277,83],[97,84],[48,85],[47,86],[278,87],[168,88],[90,89],[46,90],[45,91],[327,86],[292,92],[291,92],[108,93],[299,84],[300,84],[302,94],[303,84],[304,91],[305,84],[276,84],[306,84],[307,95],[308,84],[309,92],[310,96],[311,84],[312,84],[313,84],[314,84],[315,92],[316,84],[317,84],[318,84],[319,84],[320,97],[321,84],[322,84],[323,84],[324,84],[325,84],[50,91],[51,91],[52,84],[53,91],[54,91],[55,91],[56,91],[57,84],[59,98],[60,91],[58,91],[61,91],[62,91],[63,91],[64,91],[65,91],[66,91],[67,84],[68,91],[69,91],[70,91],[71,91],[72,91],[73,84],[74,91],[75,84],[76,91],[77,91],[78,91],[79,91],[80,84],[82,99],[81,91],[83,91],[84,91],[85,91],[86,91],[87,97],[88,84],[89,84],[103,100],[91,101],[92,91],[93,91],[94,84],[95,91],[96,91],[98,102],[99,91],[100,91],[101,91],[102,91],[104,91],[105,91],[106,91],[107,91],[109,103],[110,91],[111,91],[112,91],[113,84],[114,91],[115,104],[116,104],[117,104],[118,84],[119,91],[120,91],[121,91],[126,91],[122,91],[123,84],[124,91],[125,84],[127,84],[128,91],[129,91],[130,84],[131,84],[132,91],[133,84],[134,91],[135,91],[136,84],[137,91],[138,91],[139,91],[140,91],[141,91],[142,91],[143,91],[144,91],[145,91],[146,91],[147,91],[148,91],[149,91],[150,105],[151,91],[152,91],[153,91],[154,91],[155,91],[156,91],[157,84],[158,84],[159,84],[160,84],[161,84],[162,91],[163,91],[164,91],[165,91],[326,84],[167,106],[285,107],[280,107],[271,108],[174,109],[283,110],[272,111],[286,112],[281,113],[282,110],[284,114],[270,20],[275,16],[172,115],[173,116],[170,16],[171,117],[169,91],[273,118],[49,119],[293,16],[294,16],[295,16],[296,16],[297,16],[298,16],[287,16],[290,92],[289,16],[288,120],[166,121],[274,122],[8,16],[9,16],[13,16],[12,16],[2,16],[14,16],[15,16],[16,16],[17,16],[18,16],[19,16],[20,16],[21,16],[3,16],[4,16],[25,16],[22,16],[23,16],[24,16],[26,16],[27,16],[28,16],[5,16],[29,16],[30,16],[31,16],[32,16],[6,16],[44,16],[33,16],[34,16],[35,16],[36,16],[7,16],[37,16],[42,16],[43,16],[38,16],[39,16],[40,16],[41,16],[1,16],[11,16],[10,16],[201,123],[208,124],[200,123],[215,125],[192,126],[191,127],[214,20],[209,128],[212,129],[194,130],[193,131],[189,132],[188,20],[211,133],[190,134],[195,135],[196,16],[199,135],[186,16],[217,136],[216,135],[203,137],[204,138],[206,139],[202,140],[205,141],[210,20],[197,142],[198,143],[207,144],[187,145],[213,146],[335,16],[330,147],[331,147],[329,2],[333,148],[332,147],[334,149],[342,150]],"exportedModulesMap":[[338,1],[336,2],[337,3],[341,4],[339,5],[340,6],[355,7],[356,8],[344,9],[345,10],[350,11],[343,12],[358,13],[354,14],[353,15],[359,16],[351,16],[349,17],[365,18],[364,17],[360,16],[366,19],[352,16],[361,16],[367,16],[368,20],[219,21],[220,21],[221,22],[222,23],[223,24],[224,25],[175,16],[178,26],[176,16],[177,16],[225,27],[226,28],[227,29],[228,30],[229,31],[230,32],[231,32],[232,33],[233,34],[234,35],[235,36],[181,16],[236,37],[237,38],[238,39],[239,40],[240,41],[241,42],[242,43],[243,44],[244,45],[245,46],[246,47],[247,48],[248,49],[249,49],[250,50],[251,51],[253,52],[252,53],[254,54],[255,55],[256,56],[257,57],[258,58],[259,59],[260,60],[180,61],[179,16],[269,62],[261,63],[262,64],[263,65],[264,66],[265,67],[266,68],[182,16],[183,16],[184,16],[218,69],[267,70],[268,71],[369,16],[370,16],[371,16],[347,16],[348,16],[372,20],[373,16],[376,72],[377,73],[378,72],[374,74],[379,74],[382,75],[380,73],[375,74],[381,74],[346,76],[383,77],[363,78],[362,79],[384,12],[385,80],[185,16],[357,81],[328,82],[301,16],[279,83],[277,83],[97,84],[48,85],[47,86],[278,87],[168,88],[90,89],[46,90],[45,91],[327,86],[292,92],[291,92],[108,93],[299,84],[300,84],[302,94],[303,84],[304,91],[305,84],[276,84],[306,84],[307,95],[308,84],[309,92],[310,96],[311,84],[312,84],[313,84],[314,84],[315,92],[316,84],[317,84],[318,84],[319,84],[320,97],[321,84],[322,84],[323,84],[324,84],[325,84],[50,91],[51,91],[52,84],[53,91],[54,91],[55,91],[56,91],[57,84],[59,98],[60,91],[58,91],[61,91],[62,91],[63,91],[64,91],[65,91],[66,91],[67,84],[68,91],[69,91],[70,91],[71,91],[72,91],[73,84],[74,91],[75,84],[76,91],[77,91],[78,91],[79,91],[80,84],[82,99],[81,91],[83,91],[84,91],[85,91],[86,91],[87,97],[88,84],[89,84],[103,100],[91,101],[92,91],[93,91],[94,84],[95,91],[96,91],[98,102],[99,91],[100,91],[101,91],[102,91],[104,91],[105,91],[106,91],[107,91],[109,103],[110,91],[111,91],[112,91],[113,84],[114,91],[115,104],[116,104],[117,104],[118,84],[119,91],[120,91],[121,91],[126,91],[122,91],[123,84],[124,91],[125,84],[127,84],[128,91],[129,91],[130,84],[131,84],[132,91],[133,84],[134,91],[135,91],[136,84],[137,91],[138,91],[139,91],[140,91],[141,91],[142,91],[143,91],[144,91],[145,91],[146,91],[147,91],[148,91],[149,91],[150,105],[151,91],[152,91],[153,91],[154,91],[155,91],[156,91],[157,84],[158,84],[159,84],[160,84],[161,84],[162,91],[163,91],[164,91],[165,91],[326,84],[167,106],[285,107],[280,107],[271,108],[174,109],[283,110],[272,111],[286,112],[281,113],[282,110],[284,114],[270,20],[275,16],[172,115],[173,116],[170,16],[171,117],[169,91],[273,118],[49,119],[293,16],[294,16],[295,16],[296,16],[297,16],[298,16],[287,16],[290,92],[289,16],[288,120],[166,121],[274,122],[8,16],[9,16],[13,16],[12,16],[2,16],[14,16],[15,16],[16,16],[17,16],[18,16],[19,16],[20,16],[21,16],[3,16],[4,16],[25,16],[22,16],[23,16],[24,16],[26,16],[27,16],[28,16],[5,16],[29,16],[30,16],[31,16],[32,16],[6,16],[44,16],[33,16],[34,16],[35,16],[36,16],[7,16],[37,16],[42,16],[43,16],[38,16],[39,16],[40,16],[41,16],[1,16],[11,16],[10,16],[201,123],[208,124],[200,123],[215,125],[192,126],[191,127],[214,20],[209,128],[212,129],[194,130],[193,131],[189,132],[188,20],[211,133],[190,134],[195,135],[196,16],[199,135],[186,16],[217,136],[216,135],[203,137],[204,138],[206,139],[202,140],[205,141],[210,20],[197,142],[198,143],[207,144],[187,145],[213,146],[335,16],[330,151],[331,151],[329,152],[333,153],[332,151],[334,154]],"semanticDiagnosticsPerFile":[338,336,337,341,339,340,355,356,344,345,350,343,358,354,353,359,351,349,365,364,360,366,352,361,367,368,219,220,221,222,223,224,175,178,176,177,225,226,227,228,229,230,231,232,233,234,235,181,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,253,252,254,255,256,257,258,259,260,180,179,269,261,262,263,264,265,266,182,183,184,218,267,268,369,370,371,347,348,372,373,376,377,378,374,379,382,380,375,381,346,383,363,362,384,385,185,357,328,301,279,277,97,48,47,278,168,90,46,45,327,292,291,108,299,300,302,303,304,305,276,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,50,51,52,53,54,55,56,57,59,60,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,81,83,84,85,86,87,88,89,103,91,92,93,94,95,96,98,99,100,101,102,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,126,122,123,124,125,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,326,167,285,280,271,174,283,272,286,281,282,284,270,275,172,173,170,171,169,273,49,293,294,295,296,297,298,287,290,289,288,166,274,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,44,33,34,35,36,7,37,42,43,38,39,40,41,1,11,10,201,208,200,215,192,191,214,209,212,194,193,189,188,211,190,195,196,199,186,217,216,203,204,206,202,205,210,197,198,207,187,213,335,330,331,329,333,332,334,342]},"version":"4.8.4"}
|
|
1
|
+
{"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../node_modules/typescript/lib/lib.scripthost.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2019.full.d.ts","../../node_modules/rxjs/dist/types/internal/Subscription.d.ts","../../node_modules/rxjs/dist/types/internal/Subscriber.d.ts","../../node_modules/rxjs/dist/types/internal/Operator.d.ts","../../node_modules/rxjs/dist/types/internal/Observable.d.ts","../../node_modules/rxjs/dist/types/internal/types.d.ts","../../node_modules/rxjs/dist/types/internal/operators/audit.d.ts","../../node_modules/rxjs/dist/types/internal/operators/auditTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","../../node_modules/rxjs/dist/types/internal/operators/bufferCount.d.ts","../../node_modules/rxjs/dist/types/internal/operators/bufferTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/bufferToggle.d.ts","../../node_modules/rxjs/dist/types/internal/operators/bufferWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/catchError.d.ts","../../node_modules/rxjs/dist/types/internal/operators/combineLatestAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/combineAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/combineLatest.d.ts","../../node_modules/rxjs/dist/types/internal/operators/combineLatestWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concat.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concatAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concatMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concatMapTo.d.ts","../../node_modules/rxjs/dist/types/internal/operators/concatWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/connect.d.ts","../../node_modules/rxjs/dist/types/internal/operators/count.d.ts","../../node_modules/rxjs/dist/types/internal/operators/debounce.d.ts","../../node_modules/rxjs/dist/types/internal/operators/debounceTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/defaultIfEmpty.d.ts","../../node_modules/rxjs/dist/types/internal/operators/delay.d.ts","../../node_modules/rxjs/dist/types/internal/operators/delayWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/dematerialize.d.ts","../../node_modules/rxjs/dist/types/internal/operators/distinct.d.ts","../../node_modules/rxjs/dist/types/internal/operators/distinctUntilChanged.d.ts","../../node_modules/rxjs/dist/types/internal/operators/distinctUntilKeyChanged.d.ts","../../node_modules/rxjs/dist/types/internal/operators/elementAt.d.ts","../../node_modules/rxjs/dist/types/internal/operators/endWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/every.d.ts","../../node_modules/rxjs/dist/types/internal/operators/exhaustAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/exhaust.d.ts","../../node_modules/rxjs/dist/types/internal/operators/exhaustMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/expand.d.ts","../../node_modules/rxjs/dist/types/internal/operators/filter.d.ts","../../node_modules/rxjs/dist/types/internal/operators/finalize.d.ts","../../node_modules/rxjs/dist/types/internal/operators/find.d.ts","../../node_modules/rxjs/dist/types/internal/operators/findIndex.d.ts","../../node_modules/rxjs/dist/types/internal/operators/first.d.ts","../../node_modules/rxjs/dist/types/internal/Subject.d.ts","../../node_modules/rxjs/dist/types/internal/operators/groupBy.d.ts","../../node_modules/rxjs/dist/types/internal/operators/ignoreElements.d.ts","../../node_modules/rxjs/dist/types/internal/operators/isEmpty.d.ts","../../node_modules/rxjs/dist/types/internal/operators/last.d.ts","../../node_modules/rxjs/dist/types/internal/operators/map.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mapTo.d.ts","../../node_modules/rxjs/dist/types/internal/Notification.d.ts","../../node_modules/rxjs/dist/types/internal/operators/materialize.d.ts","../../node_modules/rxjs/dist/types/internal/operators/max.d.ts","../../node_modules/rxjs/dist/types/internal/operators/merge.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/flatMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeMapTo.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeScan.d.ts","../../node_modules/rxjs/dist/types/internal/operators/mergeWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/min.d.ts","../../node_modules/rxjs/dist/types/internal/observable/ConnectableObservable.d.ts","../../node_modules/rxjs/dist/types/internal/operators/multicast.d.ts","../../node_modules/rxjs/dist/types/internal/operators/observeOn.d.ts","../../node_modules/rxjs/dist/types/internal/operators/onErrorResumeNext.d.ts","../../node_modules/rxjs/dist/types/internal/operators/pairwise.d.ts","../../node_modules/rxjs/dist/types/internal/operators/partition.d.ts","../../node_modules/rxjs/dist/types/internal/operators/pluck.d.ts","../../node_modules/rxjs/dist/types/internal/operators/publish.d.ts","../../node_modules/rxjs/dist/types/internal/operators/publishBehavior.d.ts","../../node_modules/rxjs/dist/types/internal/operators/publishLast.d.ts","../../node_modules/rxjs/dist/types/internal/operators/publishReplay.d.ts","../../node_modules/rxjs/dist/types/internal/operators/race.d.ts","../../node_modules/rxjs/dist/types/internal/operators/raceWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/reduce.d.ts","../../node_modules/rxjs/dist/types/internal/operators/repeat.d.ts","../../node_modules/rxjs/dist/types/internal/operators/repeatWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/retry.d.ts","../../node_modules/rxjs/dist/types/internal/operators/retryWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/refCount.d.ts","../../node_modules/rxjs/dist/types/internal/operators/sample.d.ts","../../node_modules/rxjs/dist/types/internal/operators/sampleTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/scan.d.ts","../../node_modules/rxjs/dist/types/internal/operators/sequenceEqual.d.ts","../../node_modules/rxjs/dist/types/internal/operators/share.d.ts","../../node_modules/rxjs/dist/types/internal/operators/shareReplay.d.ts","../../node_modules/rxjs/dist/types/internal/operators/single.d.ts","../../node_modules/rxjs/dist/types/internal/operators/skip.d.ts","../../node_modules/rxjs/dist/types/internal/operators/skipLast.d.ts","../../node_modules/rxjs/dist/types/internal/operators/skipUntil.d.ts","../../node_modules/rxjs/dist/types/internal/operators/skipWhile.d.ts","../../node_modules/rxjs/dist/types/internal/operators/startWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/subscribeOn.d.ts","../../node_modules/rxjs/dist/types/internal/operators/switchAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/switchMap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/switchMapTo.d.ts","../../node_modules/rxjs/dist/types/internal/operators/switchScan.d.ts","../../node_modules/rxjs/dist/types/internal/operators/take.d.ts","../../node_modules/rxjs/dist/types/internal/operators/takeLast.d.ts","../../node_modules/rxjs/dist/types/internal/operators/takeUntil.d.ts","../../node_modules/rxjs/dist/types/internal/operators/takeWhile.d.ts","../../node_modules/rxjs/dist/types/internal/operators/tap.d.ts","../../node_modules/rxjs/dist/types/internal/operators/throttle.d.ts","../../node_modules/rxjs/dist/types/internal/operators/throttleTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/throwIfEmpty.d.ts","../../node_modules/rxjs/dist/types/internal/operators/timeInterval.d.ts","../../node_modules/rxjs/dist/types/internal/operators/timeout.d.ts","../../node_modules/rxjs/dist/types/internal/operators/timeoutWith.d.ts","../../node_modules/rxjs/dist/types/internal/operators/timestamp.d.ts","../../node_modules/rxjs/dist/types/internal/operators/toArray.d.ts","../../node_modules/rxjs/dist/types/internal/operators/window.d.ts","../../node_modules/rxjs/dist/types/internal/operators/windowCount.d.ts","../../node_modules/rxjs/dist/types/internal/operators/windowTime.d.ts","../../node_modules/rxjs/dist/types/internal/operators/windowToggle.d.ts","../../node_modules/rxjs/dist/types/internal/operators/windowWhen.d.ts","../../node_modules/rxjs/dist/types/internal/operators/withLatestFrom.d.ts","../../node_modules/rxjs/dist/types/internal/operators/zip.d.ts","../../node_modules/rxjs/dist/types/internal/operators/zipAll.d.ts","../../node_modules/rxjs/dist/types/internal/operators/zipWith.d.ts","../../node_modules/rxjs/dist/types/operators/index.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/Action.d.ts","../../node_modules/rxjs/dist/types/internal/Scheduler.d.ts","../../node_modules/rxjs/dist/types/internal/testing/TestMessage.d.ts","../../node_modules/rxjs/dist/types/internal/testing/SubscriptionLog.d.ts","../../node_modules/rxjs/dist/types/internal/testing/SubscriptionLoggable.d.ts","../../node_modules/rxjs/dist/types/internal/testing/ColdObservable.d.ts","../../node_modules/rxjs/dist/types/internal/testing/HotObservable.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/AsyncScheduler.d.ts","../../node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../../node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/@types/node/web-globals/events.d.ts","../../node_modules/buffer/index.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.generated.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/ts5.6/index.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/timerHandle.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/AsyncAction.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/VirtualTimeScheduler.d.ts","../../node_modules/rxjs/dist/types/internal/testing/TestScheduler.d.ts","../../node_modules/rxjs/dist/types/testing/index.d.ts","../../node_modules/rxjs/dist/types/internal/symbol/observable.d.ts","../../node_modules/rxjs/dist/types/internal/observable/dom/animationFrames.d.ts","../../node_modules/rxjs/dist/types/internal/BehaviorSubject.d.ts","../../node_modules/rxjs/dist/types/internal/ReplaySubject.d.ts","../../node_modules/rxjs/dist/types/internal/AsyncSubject.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/AsapScheduler.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/asap.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/async.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/QueueScheduler.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/queue.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/AnimationFrameScheduler.d.ts","../../node_modules/rxjs/dist/types/internal/scheduler/animationFrame.d.ts","../../node_modules/rxjs/dist/types/internal/util/identity.d.ts","../../node_modules/rxjs/dist/types/internal/util/pipe.d.ts","../../node_modules/rxjs/dist/types/internal/util/noop.d.ts","../../node_modules/rxjs/dist/types/internal/util/isObservable.d.ts","../../node_modules/rxjs/dist/types/internal/lastValueFrom.d.ts","../../node_modules/rxjs/dist/types/internal/firstValueFrom.d.ts","../../node_modules/rxjs/dist/types/internal/util/ArgumentOutOfRangeError.d.ts","../../node_modules/rxjs/dist/types/internal/util/EmptyError.d.ts","../../node_modules/rxjs/dist/types/internal/util/NotFoundError.d.ts","../../node_modules/rxjs/dist/types/internal/util/ObjectUnsubscribedError.d.ts","../../node_modules/rxjs/dist/types/internal/util/SequenceError.d.ts","../../node_modules/rxjs/dist/types/internal/util/UnsubscriptionError.d.ts","../../node_modules/rxjs/dist/types/internal/observable/bindCallback.d.ts","../../node_modules/rxjs/dist/types/internal/observable/bindNodeCallback.d.ts","../../node_modules/rxjs/dist/types/internal/AnyCatcher.d.ts","../../node_modules/rxjs/dist/types/internal/observable/combineLatest.d.ts","../../node_modules/rxjs/dist/types/internal/observable/concat.d.ts","../../node_modules/rxjs/dist/types/internal/observable/connectable.d.ts","../../node_modules/rxjs/dist/types/internal/observable/defer.d.ts","../../node_modules/rxjs/dist/types/internal/observable/empty.d.ts","../../node_modules/rxjs/dist/types/internal/observable/forkJoin.d.ts","../../node_modules/rxjs/dist/types/internal/observable/from.d.ts","../../node_modules/rxjs/dist/types/internal/observable/fromEvent.d.ts","../../node_modules/rxjs/dist/types/internal/observable/fromEventPattern.d.ts","../../node_modules/rxjs/dist/types/internal/observable/generate.d.ts","../../node_modules/rxjs/dist/types/internal/observable/iif.d.ts","../../node_modules/rxjs/dist/types/internal/observable/interval.d.ts","../../node_modules/rxjs/dist/types/internal/observable/merge.d.ts","../../node_modules/rxjs/dist/types/internal/observable/never.d.ts","../../node_modules/rxjs/dist/types/internal/observable/of.d.ts","../../node_modules/rxjs/dist/types/internal/observable/onErrorResumeNext.d.ts","../../node_modules/rxjs/dist/types/internal/observable/pairs.d.ts","../../node_modules/rxjs/dist/types/internal/observable/partition.d.ts","../../node_modules/rxjs/dist/types/internal/observable/race.d.ts","../../node_modules/rxjs/dist/types/internal/observable/range.d.ts","../../node_modules/rxjs/dist/types/internal/observable/throwError.d.ts","../../node_modules/rxjs/dist/types/internal/observable/timer.d.ts","../../node_modules/rxjs/dist/types/internal/observable/using.d.ts","../../node_modules/rxjs/dist/types/internal/observable/zip.d.ts","../../node_modules/rxjs/dist/types/internal/scheduled/scheduled.d.ts","../../node_modules/rxjs/dist/types/internal/config.d.ts","../../node_modules/rxjs/dist/types/index.d.ts","../../projects/http-request-cache/src/lib/http-cache-storage.ts","../../projects/http-request-cache/src/lib/default-storage.ts","../../projects/http-request-cache/src/lib/http-cache-options.ts","../../projects/http-request-cache/src/lib/request-times.ts","../../projects/http-request-cache/src/lib/http-request-cache.decorator.ts","../../projects/http-request-cache/src/public-api.ts","../../node_modules/zone.js/zone.d.ts","../../node_modules/@angular/core/index.d.ts","../../node_modules/@angular/core/testing/index.d.ts","../../node_modules/@angular/common/index.d.ts","../../node_modules/@angular/platform-browser/index.d.ts","../../node_modules/@angular/platform-browser/testing/index.d.ts","../../node_modules/@angular/platform-browser-dynamic/testing/index.d.ts","../../projects/http-request-cache/src/test.ts","../../node_modules/@types/connect/index.d.ts","../../node_modules/@types/body-parser/index.d.ts","../../node_modules/@types/bonjour/index.d.ts","../../node_modules/@types/send/index.d.ts","../../node_modules/@types/qs/index.d.ts","../../node_modules/@types/range-parser/index.d.ts","../../node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/connect-history-api-fallback/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/eslint/use-at-your-own-risk.d.ts","../../node_modules/@types/eslint/index.d.ts","../../node_modules/@eslint/core/dist/esm/types.d.ts","../../node_modules/@eslint/plugin-kit/dist/esm/index.d.ts","../../node_modules/eslint/lib/types/index.d.ts","../../node_modules/@types/eslint-scope/index.d.ts","../../node_modules/@types/esrecurse/index.d.ts","../../node_modules/@types/http-errors/index.d.ts","../../node_modules/@types/mime/index.d.ts","../../node_modules/@types/serve-static/node_modules/@types/send/index.d.ts","../../node_modules/@types/serve-static/index.d.ts","../../node_modules/@types/express/node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/express/index.d.ts","../../node_modules/@types/http-proxy/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/node-forge/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/@types/q/index.d.ts","../../node_modules/@types/resolve/index.d.ts","../../node_modules/@types/retry/index.d.ts","../../node_modules/@types/selenium-webdriver/http.d.ts","../../node_modules/@types/selenium-webdriver/remote.d.ts","../../node_modules/@types/selenium-webdriver/chrome.d.ts","../../node_modules/@types/selenium-webdriver/edge.d.ts","../../node_modules/@types/selenium-webdriver/firefox.d.ts","../../node_modules/@types/selenium-webdriver/ie.d.ts","../../node_modules/@types/selenium-webdriver/opera.d.ts","../../node_modules/@types/selenium-webdriver/safari.d.ts","../../node_modules/@types/selenium-webdriver/index.d.ts","../../node_modules/@types/serve-index/index.d.ts","../../node_modules/@types/sockjs/index.d.ts","../../node_modules/@types/ws/index.d.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"9b087de7268e4efc5f215347a62656663933d63c0b1d7b624913240367b999ea","affectsGlobalScope":true},{"version":"3260e3386d9535b804205bdddb5618a9a27735bd22927f48ad54363abcd23d45","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","fa3d0cd03fa17459d9ddd98b120b4bb084da39f0391cbdce480a6ef74be0cc7a","e3fd84e6470b7e0679c4073ee5ce971d324182486dde5a49b67cae29168b51d2","dd8331d0a5190a4735ce6c152e420230188c4966067a756673c36dd7ba72b10e","cfdf36cfc0721c29f58651fc12f0f5a349d29da3a63180afc5b3d77b95653f82",{"version":"d57e7ff5243e0dcd04cf2edf9ad9520af40edd6eba31c14c3f405f0c437fa379","affectsGlobalScope":true},"0f882d4ae58f431454030289154feb0132e1b00ca5c3197c6b749bd098aed73a","7ff7f4632a6e7b6872fb1843f3c0df495b49840eae2a23c6fbc943f863da8c29","d267771149e172ade39e3ef96b4063209d5a7e8291702fe03983aa52f2b3d5f6","a78590b0efcef281236e3234520c348d63be1d4561b63b20e6c3b6fc18b37dfb","4d59c6a10b6c79a0927c79efa89b3c9f71d174ec14ec2792076cfd2330d0cf8e","a496f51933422872de22729b7a0233589325a1a1707cccd05cd914098944a202","75b6663bc569724017997481b6b3774065c204b316cb4f5ad7df3b5162d2dce1","06a38095ad4368314366bc08f7cbc0fe274ef7321ec611005d0bdd9c6565e4d5","4599793db9aed9b84677f0ca1cf7ef3c69bb91cda4fe4329cbab778ca4d80a58","ad0028f96921778931fb8419d8de33b10908314fa99699de1702020f69235da1","ccd2a35321c0786bd3808042dc43b960cac13f2cc660ac37a0087e12bc97d2fc","df524ed01de4f19efb44bded628dbba9f840148be4b6cfe096e29d4b01589de3","2e3981b9cee48174ff85ae15019fd72933f7023a4ed05094740f7e6f7775623c","836ebdc3b9e4c006acc4f405b7e558e56d47830e05c40d991b1e27fe8bc91157","2cc6b617c6120ba64b5778ccd4b74c951adc3a3941bb6b39f47d48701c44af39","eca02b99615a8f1652e21399d832618e38bf166c0747c9247349bc901a2f7741","7f7d6d42e5780e86f5b860a6f95179fae06a368b3af28c1c4230397c47021a59","4740a7d11ab3b381be0f269f1903fb3ff226a2fba55a01756b2997e67cd853f2","863dbc4e77f0353e6f9d6bc0e2b4622d5c07ff6f099ff66cafd7924b2ff4dd3f","bf034a18ed7e2a058f9e48c4c2480a124138fbd3586a80c77736a9ec079d12a8","f88758992a0bf13d095520aacd4381fb456ff121fb9aa184e6eb0eecb26cfadc","c249e9ae33bfcad97deec3c73c9ed2656e112fbdf22deace0b39724be6a5dcf0","d8b45924965c0c4fc0b946c0b6d597aa8d5de9cdf5c727e3d39422d17efec438","d07ea953cfea0c4bd11641912846bd955f4fd26ad2b7b8a279d69c7ab9cb3add","feddabf6ab0eb191e721f0126f3db8688db97c77a1234968bde7a2d70c4ae513","dbbda62ea5f4d1f8b40cc2b7e2e2fae424abbb4715a04a3659cb8b317f7b228b","cde0568b836865a24f4ee5859462004a326dfb76d514e6f56c8e78feedebed58","7f5cb3a03588ed46d52a6c2138315d930cd6ffb5c2134247cd07bc23cbea0b5a","7797f4c91491dcb0f21fa318fd8a1014990d5a72f8a32de2af06eb4d4476a3b5","f39fb20b83c3f9853c13d4ac95533760979d3023c0a5affe2c0a62d91ab3afd8","e4fca08aed8afb32bb8643d7469810bc8681115fe398e56a028df9e73b2d867f","2622639d24718ddfccc33a9a6daf5a2dd94d540ca41e3da00fe365d2c3f25db3","078966067552650f44ca96c68eddbb8539f30ee48a9ab3f24abdcf0a4037b535","2cd6250c43dba360377481c98d48db6ab1532a7527339edb0deffddc28ba66b1","7a9d600990fbe263a23daebed9ba1bbc5761e45679a7e2b2774a42756ef077a2","66bc155515fbea8c31a4efccbbac44de7c037b01f3aa00b76312cf7252725d30","5703288ddbfc4f7845cdbf80c6af17c8cde2a228757479796c2378b1662fcd48","0dfd353f0c16dd5107a7e0713dc52d0a2538293b0a0eac6000a017f9c0a60b56","9cd683a4663ef4d9c6486f1b8a34c73bdbc344d69490931bfe2fbcada12ab35b","42f6a409bad5259ece69df25d2b8ace2ff2ade45fe6386ee45203bdd9329f971","d3b1a8b87a5e77d70056325e137a0e04d984b991546fdd3c1034ff4102d603c4","2eb162efd6dba5972b9f8f85141d900d09da4fba23864f287f98f9890a05e95f","3f878fb5be9ebe8bd0ac5c22515d42b8b72d3745ef7617e73e9b2548ccbdf54b","e9ed562b7599c8c8c01595891480a30f9945a93a46456d22ee67ebf346b7538a","e7bf975a98cecefe2e8902fb7da9314675ecdce553aea722aaec97327668e18b","3d36f93648518338c875d9f77a8eab52905365483dbb3afe43ed68f1b712b67c","4fa54df9184d291bd78b36f5063372042cd995460e906cb14014e40d1442a326","b4e32bd5e3b493e4ea6b5ec69a4c02aa1fdaa78e1df9a863bb07604de8f9d123","f6bd1aa152ca2b5064e06282ee3137842ae6825b6b09aa89a2ff063b976a56f3","bce2390bb3a76f8bf2ba4397c66db5277bf3e698ee614347e5eb79d7fc0942c6","fbdc8d7cc7daf4101bf567512c67fb990d8fe300e0ba7f213171192177f44aa0","298e0da6d858e39fc0c1eebfa4f5c8af487868c6f2e98c3ef800537d402fb5c3","3b6457fb3866562d279377f923cf3758c80ed7bfcc19414b72a24d0a98188e0c","4fb5d7efb3520b92c1b767ce18968057c5e70886d7fb3416c487231df9275af9","df2303a61eb57b2717d17123e82bc0f3fd60f6e4673cb5506192dfe23c9480bf","b104960f4c5f807535ab43282356b2fe29c5d14a02035c623ac2012be3d5f76c","a35ca245eb852b70b20300546443abb1fcbac6e5066e4baaa092af4ea614d9b5","55da140feab55f10a538a9879a97c4be3df4934cbd679665c91a7263a86095e1","1a39e51e3362aec7d4edec9b317ff83916fe0471f86ddf2d3ef3af5952e87d9e","4b3f36b96f129a8e125c91d41a05f711e73b3285f80bceb3a1aecb13c97c4502","852779920fc4220bc42ec6d3c9b6164e23ea9371a788531b48b4005fe0cb4392","9a82e1b959524c1abfeeb024ee1a400234130a341f2b90a313ce4e37833b7dd2","515b97cede17d91c9669cc1c7fb7a8a5f0a5f2d8999f925a5f70b4ebea93723e","08e8e57241f874bdbf69ab2b65cb0ee18b4183d5c9452937da49b934fc679c4b","944af466f063d4bd090ab9d988c620b90a014e919d5f78963f6074a136ea225e","644addd4811636da491c9546654bc005ba8599f23df6d731d91eba86f3137fc2","a9249493114b181814728cbfeb7234738193a4169b654ec4705d48d7a4d25222","aad6f20d6eb01192ae02294361faa6e1f320d72447b56f433db853bbe80b15ca","876fbedec2f494eb6f834ce8636b07d581c657d205d81a3ba894eff0facc6b84","58527aa45f11c9b259a6a9d78b397f35020bfbb104f4d3bb177039b5c18146bd","91b8b61d45b5d22f3458a4ac82e03b464a0926bab795a920fe0eca805ec476eb","2744532f8fb960eb78497ac660db719f503a10c801f87131d26fd9cbef75dcef","6884287c54891ac19cfbe056f3ed29cab1732a00dec69bd3b140ce62c11783c6","abc3487041159734b8611d9d6fd85de6892f11ebe8c2583baedfc1f87c53757c","cb46657d3237f80742d5701ebcced8f6e5cf8938442354387d6c77d7048dfae6","76281a3b799bbd17ec8e6de7d2fa45ccf749049fd53f00857daf0dbc449616b8","661f322e45545a554e4ffc38db6c4068a66e1323baf66acb0d8a9fa28195a669","91d70dce48c2a2bb55f0b851cf1bdba4202f107f1e8fdf45f94ff6be4b8e8f99","ce978e20a6f26f606b535f0d6deb384ae6a73f8d0bd0dfca0925f5317cad1f25","f2d3567210ca4d559d8297d6c4402599c93e3bc7485054192d38db5e132fbc0a","887d8058aeeade45984fdb8696147078bc630d3fea15ab2b7baacde0fe281fb7","ad27aa59d346179ac449bd3077d245f213152879e4027356306ccf1722d61d51","ea546a7ed9eaa71ba78d4d392509dadea4bafed283269dd6c4b09e7d8824e986","4ec0f2a141a9ae7d3557b8efe630ac2021bc3a9ac61238b59293f4cf2f196e82","b2db743c71652e03c52d51445af58d0af3316231faa92b66018b29c7ba975f6c","0863a5876c85fbaffbb8ec8aeda8b5042deb6932616139706d2b82cde9d3f7c7","1294b8ecdd212362323f349dd83b5c94ea77bfee4dad24fc290980a3c8af6ce3","ba9c46725e2a0bd9df59d3a1e801cc60f90db3ef7817131c53945dce2b8c0c56","281d373eeabf80c4851f8de991e6abe4d385c30379d80897bbc3df3dcac99cee","624c5dce95672d9dcca40d9d9d82ef855f5f902292f43aa265cc8fd963c6ce84","8a48d9c6184992d1c3ed5daa55f83d708c37582916926a5555a900608f804b60","605dd288c636cf9b5317fe76dec75d3c7fb855fdcd3ee8cb4fea7d7091ca6fb4","95addea67857d4e568a02e429b15458cec203876b2ea5f5ea18ccfeeb91b8ce0","b5a615b0ad865ffa562980a10bda162ac1744fd363b4edc2cfc664222071cbcf","bbccd721363897950a55ce09529503f25a69522e5c91a22679b66e941e5f8654","d3a1e70795c38d7851b6e4f3b441c5ffdae171d6e2576a2204b7d79059aeea66","d7b8d41887c5fccfe19802c4336d34348b752abf0d98839575699d71deff60be","063fe3004728b8516a4d799ee16f9a71801ba24e0443dd98638cef1bd4353a7c","b8a0236f47d9037efdaf93da602415ae425dababe097fc92f83fd47ce9aaa69f","fab7912fc3ff45fce2f5d5febc9494c4d0a85d6c63fff68f21e4669c32eaacb9","f6c3fcb9d75d8aea778236fd9327ceb935b41865dbf3beac698be77e0ae9018d","b20bc124abd8ee572d0d756713ff987b116cdae908a6fcbc40e80d4b999f56b4","a599f3f450ad62c3fdc0c3fd25cddcc9332ffb44327087947d48914a8da81364","645dff895168aa82350c9aa60aa0b3621b84289fef043be842f45a9c6c0ac6e2","f068ff5b7fb3bdc5380e0c677e21de829bd25cdac63a9b083fdc220fcb225280","09d2fdca6ea6c135897a26976ad3c0db724adaf23ef4e38ad852b1d8efef1ae6","15de5b7739bf7e40213a200853bf78455ee5958af08eda786605a54a7f25ade6","f3acb439e08f0c2c78c712a876dc6c2080302c46916f1d63b7dbe509616ce9ae","37862e711637ebd927907a82cbf0143ea30e95eb165df554926c43936b1d77a9","89e253db2c2cc9a510c521f14dd2b1aae4de2556ee5159ad8d118d3587e3a880","3d0a172cee184a0f4111a7bd7fbb8729af3f54b30c06a2677d85c20ea9c811ab","d6a07e5e8dee6dc63c7ecd9c21756babf097e1537fbc91ddfec17328a063f65d","6fdc88b1287c276b55b7f7c4c7b49587813c763eea9751ce0baf0a7e61cd5d89","6a02443704052768bd021f24783aa104b02ae4444e9b735317bf13c6b857a11e","37987b0fe9800cf25473c882ce07bccdab2763c5681c1a2d16816aead46aa8d1","c84c03c721154068e1a60d83e9e85819bd3ef70b824ac2edc498aa31c06e5781","c23a403716784b53cf6ce9ffff9dcdb959b7cacdf115294a3377d96b6df1e161","c96fb6a0c1e879f95634ab0ff439cbb6fff6227b26bbf0153bef9ed0aabba60d","db936079fe6396aad9bf7ad0479ffc9220cec808a26a745baebb5f9e2ef9dbc7","06bc0b9cc7bf0b92534f1517fe5adde1f23f60cc6cc5c59f8e1c65db48a40067","919a753b0cbb12ccc606c62e2d34884d75a48ba19b1dda497c72621b11dac088","2c27e33ee0bf722988da00abd582cc9b806ce3fd9153a864800a339ad13f3fcf","92d7b3a5aa5dc872e54cbad2a7094b3ea4f72c7901de1d07b4c334ff658297f0","7a52922b38e9686d5bdc6e75774929eec6688d26c1dfe4a03ddec77ede468e87","aa5efca2833d89b55248f1889a6433dab1b1f41768e9a75f8ce35f9bf56c5ec4",{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true},"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a",{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true},{"version":"d2662405c15ec112ebc0c3ec787edb82d58d6acb1a9d109317d7bf9cff9d09a7","affectsGlobalScope":true},{"version":"362d474eb9feae178a83ead94d757c21e42d6d7090e4182f0c12e92830a3d25e","affectsGlobalScope":true},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true},{"version":"dc27badd4bf4a2b0024a0cd32a9bbf0be7073902c5177a58be14242e7d8bf2c7","affectsGlobalScope":true},"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"b972357e61ef2e072f8a88b9f4f5a70984c417237e6106f6b2390414a09ce523","affectsGlobalScope":true},"076cac5898bd833255def0f7c5717b83534212873505c9c958f1926d49f9bec6","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","75eb536b960b85f75e21490beeab53ea616646a995ad203e1af532d67a774fb6",{"version":"36d0976d3dad74078f707af107b5082dbe42ffcadb3442ff140c36c8a33b4887","affectsGlobalScope":true},"86e0d632e9ef88593e8724ffb6af05104e13a08f9d8df733a30f9991ac387fff","7646ad748a9ca15bf43d4c88f83cc851c67f8ec9c1186295605b59ba6bb36dcb",{"version":"cef8931bc129687165253f0642427c2a72705a4613b3ac461b9fa78c7cdaef32","affectsGlobalScope":true},"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","47b62c294beb69daa5879f052e416b02e6518f3e4541ae98adbfb27805dd6711","f8375506002c556ec412c7e2a5a9ece401079ee5d9eb2c1372e9f5377fac56c7","8edd6482bd72eca772f9df15d05c838dd688cdbd4d62690891fca6578cfda6fe","07ba29a1a495b710aea48a4cf19ae12b3cbda2a8e9ac62192af477027a99e8de","6dead64c944504250dd2fc9095231f36887cfc1534f1ff57737c19f92d165c91","b9a4824bb83f25d6d227394db2ed99985308cf2a3a35f0d6d39aa72b15473982",{"version":"6e9948b1e396106601365283680c319a9103c71a5725e7d03e26fe246df60c4c","affectsGlobalScope":true},"8e8e284b3832911aeede987e4d74cf0a00f2b03896b2fd3bf924344cc0f96b3c","37d37474a969ab1b91fc332eb6a375885dfd25279624dfa84dea48c9aedf4472","1ddd8c1a3ae1f8ab28affd53b13910be4afe0b35f28517b7f14c268e9e42647a","f1a79b6047d006548185e55478837dfbcdd234d6fe51532783f5dffd401cfb2b","cbc91187014fb1e738ef252751a9f84abf2989ec1c3b1637ec23b5b39cdf3d25","e822320b448edce0c7ede9cbeada034c72e1f1c8c8281974817030564c63dcb1",{"version":"9d65568cba17c9db40251023406668695ad698ea4a34542364af3e78edd37811","affectsGlobalScope":true},"f23e3d484de54d235bf702072100b541553a1df2550bad691fe84995e15cf7be","821c79b046e40d54a447bebd9307e70b86399a89980a87bbc98114411169e274","17bc38afc78d40b2f54af216c0cc31a4bd0c6897a5945fa39945dfc43260be2c",{"version":"d201b44ff390c220a94fb0ff6a534fe9fa15b44f8a86d0470009cdde3a3e62ab","affectsGlobalScope":true},{"version":"d44445141f204d5672c502a39c1124bcf1df225eba05df0d2957f79122be87b5","affectsGlobalScope":true},"de905bc5f7e7a81cb420e212b95ab5e3ab840f93e0cfa8ce879f6e7fa465d4a2","bc2ff43214898bc6d53cab92fb41b5309efec9cbb59a0650525980aee994de2b","bede3143eeddca3b8ec3592b09d7eb02042f9e195251040c5146eac09b173236","64a40cf4ec8a7a29db2b4bc35f042e5be8537c4be316e5221f40f30ca8ed7051","294c082d609e6523520290db4f1d54114ebc83643fb42abd965be5bcc5d9416b","cf7d740e39bd8adbdc7840ee91bef0af489052f6467edfcefb7197921757ec3b","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093",{"version":"b9f0681c4d2cb00a5cfe08a7be9662627b912de562926819ebddfe2ef6a9b5ee","affectsGlobalScope":true},"b85151402164ab7cb665e58df5c1a29aa25ea4ed3a367f84a15589e7d7a9c8ca","89eb8abe2b5c146fbb8f3bf72f4e91de3541f2fb559ad5fed4ad5bf223a3dedb",{"version":"bc6cb10764a82f3025c0f4822b8ad711c16d1a5c75789be2d188d553b69b2d48","affectsGlobalScope":true},"41d510caf7ed692923cb6ef5932dc9cf1ed0f57de8eb518c5bab8358a21af674","2751c5a6b9054b61c9b03b3770b2d39b1327564672b63e3485ac03ffeb28b4f6","dc058956a93388aab38307b7b3b9b6379e1021e73a244aab6ac9427dc3a252a7","f33302cf240672359992c356f2005d395b559e176196d03f31a28cc7b01e69bc",{"version":"3ce25041ff6ae06c08fcaccd5fcd9baf4ca6e80e6cb5a922773a1985672e74c2","affectsGlobalScope":true},{"version":"652c0de14329a834ff06af6ad44670fac35849654a464fd9ae36edb92a362c12","affectsGlobalScope":true},"3b1e178016d3fc554505ae087c249b205b1c50624d482c542be9d4682bab81fc","5db7c5bb02ef47aaaec6d262d50c4e9355c80937d649365c343fa5e84569621d","cf45d0510b661f1da461479851ff902f188edb111777c37055eff12fa986a23a",{"version":"6831f13f06a15391dfeb2477d48ac58311ab675f85846a05499ee92d6e856933","affectsGlobalScope":true},"37bef1064b7d015aeaa7c0716fe23a0b3844abe2c0a3df7144153ca8445fe0da","59ef5d8f9f0274a03123bdd45bf38bf0e2a96d600ccb0606e0d780384e58f26a","3da085d344bf625767c5b1fcada31a5d94ebefc4e36bf18a676ca37460bc4e4e","006855ddea8674d084173a768f88519dc154be94eba5e2120262a33709832b9b","17dd843a266f99ca4b3a1257538bd1cc69dc5c7f2f23c3891f0430615b8c9c1c","5430364886c721a30475253356162b6c27871718094cb3e69e2bcea71a17e533","1218398da7c8dc4add10bdb3aa2856aad54b123d847eaf574d1d694ac269bfb5","189014f3213ee7457dbeea04dca10ca5d9ed2062cd39641aca5f3b4c75de9d99","b637cd92688a6cdf4f8f184ff529dc2bc7f15692828e2c0c66a60e6972f400c7","7061e83d6792897077bcac039fccf7325234004769f591c63a8cf8478bf551bb","7ab905865063322f2bba361d0f2ef93520f64a382bac13b127479860ad99f62e","277a358d61376fce7ac3392402909c96cf6a0a613146549fc0165ccff953e012","50614c808e099a1d4413786f3783d9eeaaa74b267f2c87fcf8a893287e91c301","f4cb6530f248e87cefa74ef623206fec805f6252f885f8e14ef3d1a5872cef2d","38c332caadd8391566552395d592076470a5e7423f70964620eabf05c02907cd","eb17b5bf1fc763a644c21d76572c0e41e351c3f6dfcde649428d5d829f7294d2","cb124162c87b29ff5121e3ee5bb29c782f101e0135d6c2644ab1b31d530a435e","406d6f5d3707c488362fb40d1c1f8a7b0a42b70554b427160185d93e430228f5","2e9776410c5bc290d9432a9215c67398a273e514a79b9e15f32ecddfde8a03be","313ff8df074b81d3e4f088ff3a3a06df3d9b0d0c7f55469ccc2ac887ecb6b867","c718475bca06806cc243e77777641cb67ba68f2c57321a4773ebb47760a3bcf2","96e6bf811343caab5112b68880905c5d20d9257054afac6c18e718a4c549ed27","a2793bc73ba63ca7d259cb0f0b61d0023820170d08a1f9715006c8042d060165","d5011b38165771fdf75a9a06d6d379a1fc7edd7eb695ebdc52319fb6e3c6d81f","88417fb19d339304e9616a38ea513251047c9e300c81f9467fc317df8a582e71","3e8e2d132f726dddbda57819f5391504e585cb3beab6b32203064e7e40618583","6e23627cd3f10418b5b2db102fdcf557b75f2837f266d88afac6b18f333bb1bc","866046dcea88f23d766a65487ee7870c4cf8285a4c75407c80a5c26ed250ef8d","019f4f1cbc781cc15c6173f8be5ef907405722194ab297127b3c3426e5368339","41f4413eac08210dfc1b1cdb5891ad08b05c79f5038bdf8c06e4aedaa85b943d","c79f1c8b51d8475dde8d2973f740f43ca34b1f0a95d93649cd76c1ee20abba19","35f0d2bd2c5c05c0cb19095bf5b7c44365b1c88efe6285370855b90417277a64","8264b129f4c4eb4799703f8e5ee2223a184d1cdbfc782158b1f40a88a4435a1f","527ddda6f8be1279f3294714534c49d6e90f238cea325519882ebf88d7ec5bd2","b23877792e8bd00271d0ec5d401b68e4228540a4316de3d9dfb697b955c161a4","35b2eb1de01633db90d41abe93730b29984856fcc840b4c2801bfd3761a2097b","95f0c9127b879c2fc7e31f8e09ff45bb4aae302e60f4b9ceaf4d9ee6bc51ec66","2a6b4655a6edce9e07c7d826848f72533c9991d40bc36e3f85558ad20e87ce2d","6e3d29fdc96ebbb2ac672d2dae710c689c1ea0d0e9469e0847616f3c38fd085f","d505055b8fadd42da235c85947911d8d198ad70c5f5775991e7821d4f89c90f5","8b5a5852099dca7d7e7a7cef6d681dc1586aafacdb963ca180fe5cabbfa3a24b","0d1aa3341d1ad2064adada71c5d01a2f572e4aac09410e5616d90894105a0eb9","52494ca5a884da3bf11b8165ab31429715f0970d9c6383240c5666f4bd713e01","162fafa2291749df2ab4516854aa781fcee1d9fca2ecd85fb48ae794c0700ce2","b4b9b51ee6f6309cda2e539245235a8caeca2b1d6bf12b5e5c162d17333c450f","d2ffe8356f060b88c1c5cf1fa874a4b779fb87fd1977084876e8be9eab6bf485","c76053984b39150d00ade365b096a8bc21a4a7f2ee9e0a926711b00f8e7bf701","956b510767e3d6f362ea5800510635197723737af5d19ae07ee987ea4a90bfa5","cd1a8ff61f5063d7e6e2094e25d35c90b499961b63911f2f4ae0ff5555c2b4d7","1cf09b5945779e9bc75c4dcd805fb149c28fc90da3335186ef620647a3c540e1","9cdc0b9a313090ec45b34ea1eb02fbace433f509e753634b043e9b83038261e6","c93474cff0088351a65d3cad24037874a26a5371a48528563e56efe31cb3d8bb","b4580df8ea7f62d7b06588001952bf69426e6b03cf3d2569f5f608e45f29ba08","de27f7bb9be9d8a2b4557ec6503b8a315f74d598ce9a0ab81b5ed5610e1a8e81","fe3c378dcefa7ed8b21bd6822f5d7838b1119836da75ae1e1fb485d27b8ffb62","7365bf3333d4277b6fe374ed055624e5ec080dbb919e2d78f1cb75a3f1a4b4f6","a5fbf3bc5c16ab5c84465ba7a043a4bee4c2b20bd3633d50d80118a3844edbaf","0923e4ac8c894ad507bd2daee0df66b699de88467201381ece011ba5a080e1ff","e4f6626f827ea509255647e1b6db82145a2eb1a6b46202655e7d9bb19145c33b","26e23972c40f378f0301d8d7025ea895557c2865a1a31c8ea9c3fff0dbc27075","bfddbff94132b423ad1d71bdbefb1d388c21a74ac1a8742df9324e5bf6109058",{"version":"853a275ae75f17c716f0029653179161c9a01d2632b2416bf76120ceebb286cc","signature":"1da12c93152e4f551124aeb3bc414f6b5a26e0ab9d72852dc3029564d8d6fb51"},{"version":"d801c3b9e8e3cd7083afa2418a71f8ba65dd4c629eb7981301d4037d668f2ef2","signature":"d984e254dfe7422602484d69ac13731e54948d182a8e249cb0ba37f5389433de"},{"version":"ec8804ec1a79904d452400f98e99759f6074ce570d6b3d7d6c0a26368c22c82f","signature":"0550e90cbe6ca302cb2d083daa96a14239231961ef3495f8b19b9da684ee7f5b"},{"version":"912d4e327bc18f4084d4bbdd7d90b113b133b77f3d9d82b09f4e353e59746d92","signature":"aafa1fe4195675b511dd70a61ec4c91dc955d830ceda7916392ac3af3b113c6a"},{"version":"f334b5f42f3cc90d4abd83f1348bb7b4192bebab3642f56d605c9da4729e39b9","signature":"b8e5766cf15ac303c21740591c1233ecdad3119c1d2a171742eab5c3c778816e"},{"version":"581a609721a0f6de2cb066eea0a5182811e9e3a9debe9ca7085948aad3133a65","signature":"c763c307c269804e4490b8b48105de582087200bd33241e2ce45f384cd02d1bd"},{"version":"bf0083f100501bd1a44d40f91c87c3a0b75e7ebcdae40e8d031a59406aac32c1","affectsGlobalScope":true},"614a8a30fbc27e0ac9e0e8e4315f01ee2fc881fe6bed736b88ceb68c8a75eed3","f05ed1afd2c5a1cf9a226e5128053fff3413eff516147263e5994039b1b8e12e","e72926bd4f9e25d763a7670122f7ca42cdc804b769b3bb8d68f2259201db1516","0e44a90a7f7630f8f31ee704f928bdbff14186e44608e224e985e97d054d1a3c","33d0882f9e69e11d2cb9a9e252f843665a9b1e4e9c1229a9750f40c1c176cde8","f033fe67144d713092f9bc72893c0957681d44509626be7edba200d56fa71419",{"version":"c6e6204f1b74de221cfd87f85b1ceb58fc8fc25a062b59944dad333431290a1b","signature":"ad9601b4aabeaf1846d8c26afa1c8e0ce253c29b22b193b175953309f772c44d"},"104c67f0da1bdf0d94865419247e20eded83ce7f9911a1aa75fc675c077ca66e","cc0d0b339f31ce0ab3b7a5b714d8e578ce698f1e13d7f8c60bfb766baeb1d35c","f9e22729fa06ed20f8b1fe60670b7c74933fdfd44d869ddfb1919c15a5cf12fb","d34aa8df2d0b18fb56b1d772ff9b3c7aea7256cf0d692f969be6e1d27b74d660","93a3b8e57c68e348fc4054b245bd7cf4893225f56c991028844b693c2fa8c03c","2f5747b1508ccf83fad0c251ba1e5da2f5a30b78b09ffa1cfaf633045160afed",{"version":"1b3395fe23460dd30674c940494aaf8422dc6afbc516a72c431404fb97473c3f","affectsGlobalScope":true},"689be50b735f145624c6f391042155ae2ff6b90a93bac11ca5712bc866f6010c","751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","a4a39b5714adfcadd3bbea6698ca2e942606d833bde62ad5fb6ec55f5e438ff8","bbc1d029093135d7d9bfa4b38cbf8761db505026cc458b5e9c8b74f4000e5e75","3671af8f58c05e9c83409ae56cb2a3db3c2e0a4cd082e685933d72f1c1a621ae","4571317119a9fc37fc70c37accd12c3c492178231ec820405af86f4005dd4766","b18888ee17fdf1cc38bb2579543393712ef9127aab23606402dbdb23e56b3534","1f68ab0e055994eb337b67aa87d2a15e0200951e9664959b3866ee6f6b11a0fe","d5799bcf7fe4e6de3063abf4e321c14b051706f03cf5716d8a19f22fe1f69519","b71c603a539078a5e3a039b20f2b0a0d1708967530cf97dec8850a9ca45baa2b","d3f2d715f57df3f04bf7b16dde01dec10366f64fce44503c92b8f78f614c1769","cb90077223cc1365fa21ef0911a1f9b8f2f878943523d97350dc557973ca3823","18f1541b81b80d806120a3489af683edfb811deb91aeca19735d9bb2613e6311",{"version":"7850260a82d3d1d797b4a7d4da1f29383ddc847146a11ae9aa0b7c4c2accf49f","affectsGlobalScope":true},"232f118ae64ab84dcd26ddb60eaed5a6e44302d36249abf05e9e3fc2cbb701a2","26b7d0cd4b41ab557ef9e3bfeec42dcf24252843633e3d29f38d2c0b13aaa528","fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","7fadb2778688ebf3fd5b8d04f63d5bf27a43a3e420bc80732d3c6239067d1a4b","22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","026aa0540cf6376b64fff7c22f4dc127c2bbe7885daeabbc88f0a3513faaf78a","8a19491eba2108d5c333c249699f40aff05ad312c04a17504573b27d91f0aede","199f9ead0daf25ae4c5632e3d1f42570af59685294a38123eef457407e13f365","3e3136df4c4894bc13e897da8393fa0d8b05c6c82267e3ffc91a37edd5d14b17","1df70d9b0f1b44d109d5f907ae88e9d6a39b74bfc299d657c91417824e6f9fe8","2f8716f59642e8a9dcf4f0a651fcda343cc6ccc91813287241528797c57cec93","b2486391e3331a6b3925ea6a8752456a66fdc880958770200e4b18a49f79720e","e0ff1b3fdb6885034bef9e26f174fb0845a3af57a4d17363d024fa2188457db8","4d98aba15b636a02a7d8c7169db35741c897db2d8ea48213fe2a3d762b5ec1e3","f11e1ae5d776fee3a2d434adc95df90b4dcc08f0bcc180bdfc5f271e60903933","31df58b7359d69009932b38dacfacba6f983d63902407b1442bd7311f30c3fc5","5c738ff4573e622ec2b507b7484c16dfc49199c670e1eec3c72458f73e6f02b6","ddef25f825320de051dcb0e62ffce621b41c67712b5b4105740c32fd83f4c449","1b3dffaa4ca8e38ac434856843505af767a614d187fb3a5ef4fcebb023c355aa","1ba59c8bbeed2cb75b239bb12041582fa3e8ef32f8d0bd0ec802e38442d3f317"],"options":{"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"outDir":"./","removeComments":true,"skipLibCheck":true,"sourceMap":true,"target":6},"fileIdsList":[[180,222,328,336],[180,222,328],[180,222,336],[180,222,336,337,340],[180,222,336,338],[180,222,336,339],[180,222,352],[180,222,355],[180,222,236,269,343],[180,222,228,269],[180,222,262,269,349],[180,222,236,269],[180,222,351,357],[180,222,351,352,353],[180,222,354],[180,222],[180,222,233,236,269,346,347,348],[180,222,344,347,349,363,364],[180,222,233,236,238,241,251,262,269],[180,222,269],[180,219,222],[180,221,222],[180,222,227,254],[180,222,223,233,241,251,262],[180,222,223,224,233,241],[175,176,177,180,222],[180,222,225,263],[180,222,226,227,234,242],[180,222,227,251,259],[180,222,228,230,233,241],[180,221,222,229],[180,222,230,231],[180,222,232,233],[180,221,222,233],[180,222,233,234,235,251,262],[180,222,233,234,235,248,251,254],[180,222,230,233,236,241,251,262],[180,222,233,234,236,237,241,251,259,262],[180,222,236,238,251,259,262],[180,222,233,239],[180,222,240,262,267],[180,222,230,233,241,251],[180,222,242],[180,222,243],[180,221,222,244],[180,222,245,261,267],[180,222,246],[180,222,247],[180,222,233,248,249],[180,222,248,250,263,265],[180,222,233,251,252,254],[180,222,253,254],[180,222,251,252],[180,222,254],[180,222,255],[180,222,251,256],[180,222,233,257,258],[180,222,257,258],[180,222,227,241,251,259],[180,222,260],[222],[178,179,180,181,182,183,184,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268],[180,222,241,261],[180,222,236,247,262],[180,222,227,263],[180,222,251,264],[180,222,240,265],[180,222,266],[180,217,222],[180,217,222,233,235,244,251,254,262,265,267],[180,222,251,268],[180,222,374,375,382],[180,222,375,382],[180,222,382],[180,222,376,377,378,379,380,381],[180,222,234,251,269],[180,222,234,365],[180,222,236,269,360,362],[180,222,234,251,269,361],[180,222,233,236,238,241,251,259,262,268,269],[180,222,351,355,356],[45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,61,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,101,102,103,104,105,106,107,108,109,110,112,114,115,116,117,118,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,164,165,166,168,180,222,272,274,275,276,277,278,279,281,282,284,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327],[90,180,222],[48,49,180,222],[45,46,47,49,180,222],[46,49,180,222],[49,90,180,222],[45,49,167,180,222],[47,48,49,180,222],[45,49,180,222],[49,180,222],[48,180,222],[45,48,90,180,222],[46,48,49,180,222,301],[48,49,180,222,301],[48,180,222,309],[46,48,49,180,222],[58,180,222],[81,180,222],[102,180,222],[48,49,90,180,222],[49,97,180,222],[48,49,90,108,180,222],[48,49,108,180,222],[49,149,180,222],[45,49,168,180,222],[174,180,222,271],[45,49,167,174,180,222,270],[167,168,180,222,271],[174,180,222],[45,49,174,180,222,270,271],[180,222,285],[180,222,280],[180,222,283],[46,48,168,169,170,171,180,222],[90,168,169,170,171,180,222],[168,170,180,222],[48,169,170,172,173,180,222,272],[45,48,180,222],[49,180,222,287],[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,92,93,94,95,96,98,99,100,101,102,103,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,180,222],[180,222,273],[180,194,198,222,262],[180,194,222,251,262],[180,189,222],[180,191,194,222,259,262],[180,222,241,259],[180,189,222,269],[180,191,194,222,241,262],[180,186,187,190,193,222,233,251,262],[180,186,192,222],[180,190,194,222,254,262,269],[180,210,222,269],[180,188,189,222,269],[180,194,222],[180,188,189,190,191,192,193,194,195,196,198,199,200,201,202,203,204,205,206,207,208,209,211,212,213,214,215,216,222],[180,194,201,202,222],[180,192,194,202,203,222],[180,193,222],[180,186,189,194,222],[180,194,198,202,203,222],[180,198,222],[180,192,194,197,222,262],[180,186,191,192,194,198,201,222],[180,222,251],[180,189,194,210,222,267,269],[180,222,328,329],[180,222,328,330,331,332],[180,222,329,330,331,333],[180,222,337,341],[328,329],[328],[328,331],[329,330,331,333]],"referencedMap":[[338,1],[336,2],[337,3],[341,4],[339,5],[340,6],[355,7],[356,8],[344,9],[345,10],[350,11],[343,12],[358,13],[354,14],[353,15],[359,16],[351,16],[349,17],[365,18],[364,17],[360,16],[366,19],[352,16],[361,16],[367,16],[368,20],[219,21],[220,21],[221,22],[222,23],[223,24],[224,25],[175,16],[178,26],[176,16],[177,16],[225,27],[226,28],[227,29],[228,30],[229,31],[230,32],[231,32],[232,33],[233,34],[234,35],[235,36],[181,16],[236,37],[237,38],[238,39],[239,40],[240,41],[241,42],[242,43],[243,44],[244,45],[245,46],[246,47],[247,48],[248,49],[249,49],[250,50],[251,51],[253,52],[252,53],[254,54],[255,55],[256,56],[257,57],[258,58],[259,59],[260,60],[180,61],[179,16],[269,62],[261,63],[262,64],[263,65],[264,66],[265,67],[266,68],[182,16],[183,16],[184,16],[218,69],[267,70],[268,71],[369,16],[370,16],[371,16],[347,16],[348,16],[372,20],[373,16],[376,72],[377,73],[378,72],[374,74],[379,74],[382,75],[380,73],[375,74],[381,74],[346,76],[383,77],[363,78],[362,79],[384,12],[385,80],[185,16],[357,81],[328,82],[301,16],[279,83],[277,83],[97,84],[48,85],[47,86],[278,87],[168,88],[90,89],[46,90],[45,91],[327,86],[292,92],[291,92],[108,93],[299,84],[300,84],[302,94],[303,84],[304,91],[305,84],[276,84],[306,84],[307,95],[308,84],[309,92],[310,96],[311,84],[312,84],[313,84],[314,84],[315,92],[316,84],[317,84],[318,84],[319,84],[320,97],[321,84],[322,84],[323,84],[324,84],[325,84],[50,91],[51,91],[52,84],[53,91],[54,91],[55,91],[56,91],[57,84],[59,98],[60,91],[58,91],[61,91],[62,91],[63,91],[64,91],[65,91],[66,91],[67,84],[68,91],[69,91],[70,91],[71,91],[72,91],[73,84],[74,91],[75,84],[76,91],[77,91],[78,91],[79,91],[80,84],[82,99],[81,91],[83,91],[84,91],[85,91],[86,91],[87,97],[88,84],[89,84],[103,100],[91,101],[92,91],[93,91],[94,84],[95,91],[96,91],[98,102],[99,91],[100,91],[101,91],[102,91],[104,91],[105,91],[106,91],[107,91],[109,103],[110,91],[111,91],[112,91],[113,84],[114,91],[115,104],[116,104],[117,104],[118,84],[119,91],[120,91],[121,91],[126,91],[122,91],[123,84],[124,91],[125,84],[127,84],[128,91],[129,91],[130,84],[131,84],[132,91],[133,84],[134,91],[135,91],[136,84],[137,91],[138,91],[139,91],[140,91],[141,91],[142,91],[143,91],[144,91],[145,91],[146,91],[147,91],[148,91],[149,91],[150,105],[151,91],[152,91],[153,91],[154,91],[155,91],[156,91],[157,84],[158,84],[159,84],[160,84],[161,84],[162,91],[163,91],[164,91],[165,91],[326,84],[167,106],[285,107],[280,107],[271,108],[174,109],[283,110],[272,111],[286,112],[281,113],[282,110],[284,114],[270,20],[275,16],[172,115],[173,116],[170,16],[171,117],[169,91],[273,118],[49,119],[293,16],[294,16],[295,16],[296,16],[297,16],[298,16],[287,16],[290,92],[289,16],[288,120],[166,121],[274,122],[8,16],[9,16],[13,16],[12,16],[2,16],[14,16],[15,16],[16,16],[17,16],[18,16],[19,16],[20,16],[21,16],[3,16],[4,16],[25,16],[22,16],[23,16],[24,16],[26,16],[27,16],[28,16],[5,16],[29,16],[30,16],[31,16],[32,16],[6,16],[44,16],[33,16],[34,16],[35,16],[36,16],[7,16],[37,16],[42,16],[43,16],[38,16],[39,16],[40,16],[41,16],[1,16],[11,16],[10,16],[201,123],[208,124],[200,123],[215,125],[192,126],[191,127],[214,20],[209,128],[212,129],[194,130],[193,131],[189,132],[188,20],[211,133],[190,134],[195,135],[196,16],[199,135],[186,16],[217,136],[216,135],[203,137],[204,138],[206,139],[202,140],[205,141],[210,20],[197,142],[198,143],[207,144],[187,145],[213,146],[335,16],[330,147],[331,147],[329,2],[333,148],[332,147],[334,149],[342,150]],"exportedModulesMap":[[338,1],[336,2],[337,3],[341,4],[339,5],[340,6],[355,7],[356,8],[344,9],[345,10],[350,11],[343,12],[358,13],[354,14],[353,15],[359,16],[351,16],[349,17],[365,18],[364,17],[360,16],[366,19],[352,16],[361,16],[367,16],[368,20],[219,21],[220,21],[221,22],[222,23],[223,24],[224,25],[175,16],[178,26],[176,16],[177,16],[225,27],[226,28],[227,29],[228,30],[229,31],[230,32],[231,32],[232,33],[233,34],[234,35],[235,36],[181,16],[236,37],[237,38],[238,39],[239,40],[240,41],[241,42],[242,43],[243,44],[244,45],[245,46],[246,47],[247,48],[248,49],[249,49],[250,50],[251,51],[253,52],[252,53],[254,54],[255,55],[256,56],[257,57],[258,58],[259,59],[260,60],[180,61],[179,16],[269,62],[261,63],[262,64],[263,65],[264,66],[265,67],[266,68],[182,16],[183,16],[184,16],[218,69],[267,70],[268,71],[369,16],[370,16],[371,16],[347,16],[348,16],[372,20],[373,16],[376,72],[377,73],[378,72],[374,74],[379,74],[382,75],[380,73],[375,74],[381,74],[346,76],[383,77],[363,78],[362,79],[384,12],[385,80],[185,16],[357,81],[328,82],[301,16],[279,83],[277,83],[97,84],[48,85],[47,86],[278,87],[168,88],[90,89],[46,90],[45,91],[327,86],[292,92],[291,92],[108,93],[299,84],[300,84],[302,94],[303,84],[304,91],[305,84],[276,84],[306,84],[307,95],[308,84],[309,92],[310,96],[311,84],[312,84],[313,84],[314,84],[315,92],[316,84],[317,84],[318,84],[319,84],[320,97],[321,84],[322,84],[323,84],[324,84],[325,84],[50,91],[51,91],[52,84],[53,91],[54,91],[55,91],[56,91],[57,84],[59,98],[60,91],[58,91],[61,91],[62,91],[63,91],[64,91],[65,91],[66,91],[67,84],[68,91],[69,91],[70,91],[71,91],[72,91],[73,84],[74,91],[75,84],[76,91],[77,91],[78,91],[79,91],[80,84],[82,99],[81,91],[83,91],[84,91],[85,91],[86,91],[87,97],[88,84],[89,84],[103,100],[91,101],[92,91],[93,91],[94,84],[95,91],[96,91],[98,102],[99,91],[100,91],[101,91],[102,91],[104,91],[105,91],[106,91],[107,91],[109,103],[110,91],[111,91],[112,91],[113,84],[114,91],[115,104],[116,104],[117,104],[118,84],[119,91],[120,91],[121,91],[126,91],[122,91],[123,84],[124,91],[125,84],[127,84],[128,91],[129,91],[130,84],[131,84],[132,91],[133,84],[134,91],[135,91],[136,84],[137,91],[138,91],[139,91],[140,91],[141,91],[142,91],[143,91],[144,91],[145,91],[146,91],[147,91],[148,91],[149,91],[150,105],[151,91],[152,91],[153,91],[154,91],[155,91],[156,91],[157,84],[158,84],[159,84],[160,84],[161,84],[162,91],[163,91],[164,91],[165,91],[326,84],[167,106],[285,107],[280,107],[271,108],[174,109],[283,110],[272,111],[286,112],[281,113],[282,110],[284,114],[270,20],[275,16],[172,115],[173,116],[170,16],[171,117],[169,91],[273,118],[49,119],[293,16],[294,16],[295,16],[296,16],[297,16],[298,16],[287,16],[290,92],[289,16],[288,120],[166,121],[274,122],[8,16],[9,16],[13,16],[12,16],[2,16],[14,16],[15,16],[16,16],[17,16],[18,16],[19,16],[20,16],[21,16],[3,16],[4,16],[25,16],[22,16],[23,16],[24,16],[26,16],[27,16],[28,16],[5,16],[29,16],[30,16],[31,16],[32,16],[6,16],[44,16],[33,16],[34,16],[35,16],[36,16],[7,16],[37,16],[42,16],[43,16],[38,16],[39,16],[40,16],[41,16],[1,16],[11,16],[10,16],[201,123],[208,124],[200,123],[215,125],[192,126],[191,127],[214,20],[209,128],[212,129],[194,130],[193,131],[189,132],[188,20],[211,133],[190,134],[195,135],[196,16],[199,135],[186,16],[217,136],[216,135],[203,137],[204,138],[206,139],[202,140],[205,141],[210,20],[197,142],[198,143],[207,144],[187,145],[213,146],[335,16],[330,151],[331,151],[329,152],[333,153],[332,151],[334,154]],"semanticDiagnosticsPerFile":[338,336,337,341,339,340,355,356,344,345,350,343,358,354,353,359,351,349,365,364,360,366,352,361,367,368,219,220,221,222,223,224,175,178,176,177,225,226,227,228,229,230,231,232,233,234,235,181,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,253,252,254,255,256,257,258,259,260,180,179,269,261,262,263,264,265,266,182,183,184,218,267,268,369,370,371,347,348,372,373,376,377,378,374,379,382,380,375,381,346,383,363,362,384,385,185,357,328,301,279,277,97,48,47,278,168,90,46,45,327,292,291,108,299,300,302,303,304,305,276,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,50,51,52,53,54,55,56,57,59,60,58,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,81,83,84,85,86,87,88,89,103,91,92,93,94,95,96,98,99,100,101,102,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,126,122,123,124,125,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,326,167,285,280,271,174,283,272,286,281,282,284,270,275,172,173,170,171,169,273,49,293,294,295,296,297,298,287,290,289,288,166,274,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,44,33,34,35,36,7,37,42,43,38,39,40,41,1,11,10,201,208,200,215,192,191,214,209,212,194,193,189,188,211,190,195,196,199,186,217,216,203,204,206,202,205,210,197,198,207,187,213,335,330,331,329,333,332,334,342]},"version":"4.8.4"}
|