@zajno/common 2.3.5 → 2.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/async/timeout.d.ts +2 -1
- package/async/timeout.d.ts.map +1 -1
- package/async/timeout.js +6 -20
- package/async/timeout.js.map +1 -1
- package/functions/disposer.d.ts +1 -0
- package/functions/disposer.d.ts.map +1 -1
- package/functions/disposer.js.map +1 -1
- package/functions/disposer.symbols.d.ts +7 -0
- package/functions/disposer.symbols.d.ts.map +1 -0
- package/functions/disposer.symbols.js +29 -0
- package/functions/disposer.symbols.js.map +1 -0
- package/models/Model.d.ts +1 -1
- package/models/Model.d.ts.map +1 -1
- package/models/Model.js +3 -3
- package/models/Model.js.map +1 -1
- package/package.json +5 -5
- package/structures/promiseCache.d.ts +6 -3
- package/structures/promiseCache.d.ts.map +1 -1
- package/structures/promiseCache.js +23 -1
- package/structures/promiseCache.js.map +1 -1
package/async/timeout.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export declare function setTimeoutAsync(ms: number, useCancel?: null | ((cb: () => void) => void)): Promise<void>;
|
|
2
|
-
export declare function setTimeoutFramesAsync(frames: number): Promise<void>;
|
|
3
2
|
export declare function timeoutPromise<T>(p: Promise<T>, timeoutMs: number, waitForMinElapsed?: number): Promise<{
|
|
4
3
|
resolved: T | undefined;
|
|
5
4
|
timedOut?: boolean;
|
|
6
5
|
elapsed: number;
|
|
7
6
|
}>;
|
|
7
|
+
/** @deprecated Not Supported! Moved to `@zajno/common-web` package due to dependency on DOM's `requestAnimationFrame` */
|
|
8
|
+
export declare function setTimeoutFramesAsync(): void;
|
|
8
9
|
//# sourceMappingURL=timeout.d.ts.map
|
package/async/timeout.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAO,iBA0B7F;
|
|
1
|
+
{"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,IAAI,CAAO,iBA0B7F;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgCzK;AAED,yHAAyH;AACzH,wBAAgB,qBAAqB,SAEpC"}
|
package/async/timeout.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.setTimeoutFramesAsync = exports.timeoutPromise = exports.setTimeoutAsync = void 0;
|
|
4
4
|
function setTimeoutAsync(ms, useCancel = null) {
|
|
5
5
|
let canceled = false;
|
|
6
6
|
let _reject;
|
|
@@ -27,25 +27,6 @@ function setTimeoutAsync(ms, useCancel = null) {
|
|
|
27
27
|
return res;
|
|
28
28
|
}
|
|
29
29
|
exports.setTimeoutAsync = setTimeoutAsync;
|
|
30
|
-
/* global requestAnimationFrame */
|
|
31
|
-
function setTimeoutFramesAsync(frames) {
|
|
32
|
-
if (typeof requestAnimationFrame === 'undefined') {
|
|
33
|
-
throw new Error('setTimeoutFramesAsync is not supported because "requestAnimationFrame" is not defined.');
|
|
34
|
-
}
|
|
35
|
-
return new Promise(resolve => {
|
|
36
|
-
let left = frames || 0;
|
|
37
|
-
const cb = () => {
|
|
38
|
-
if (--left <= 0) {
|
|
39
|
-
resolve();
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
requestAnimationFrame(cb);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
cb();
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
exports.setTimeoutFramesAsync = setTimeoutFramesAsync;
|
|
49
30
|
function timeoutPromise(p, timeoutMs, waitForMinElapsed) {
|
|
50
31
|
const started = Date.now();
|
|
51
32
|
return new Promise((resolve, reject) => {
|
|
@@ -75,4 +56,9 @@ function timeoutPromise(p, timeoutMs, waitForMinElapsed) {
|
|
|
75
56
|
});
|
|
76
57
|
}
|
|
77
58
|
exports.timeoutPromise = timeoutPromise;
|
|
59
|
+
/** @deprecated Not Supported! Moved to `@zajno/common-web` package due to dependency on DOM's `requestAnimationFrame` */
|
|
60
|
+
function setTimeoutFramesAsync() {
|
|
61
|
+
throw new Error('setTimeoutFramesAsync has been moved to "@zajno/common-web" because it depends on "window.requestAnimationFrame".');
|
|
62
|
+
}
|
|
63
|
+
exports.setTimeoutFramesAsync = setTimeoutFramesAsync;
|
|
78
64
|
//# sourceMappingURL=timeout.js.map
|
package/async/timeout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":";;;AACA,SAAgB,eAAe,CAAC,EAAU,EAAE,YAA8C,IAAI;IAC1F,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAA4B,CAAC;IACjC,IAAI,KAAoC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,OAAO,GAAG,MAAM,CAAC;QACjB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,CAAC;QACF,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AA1BD,0CA0BC;AAED,
|
|
1
|
+
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../../src/async/timeout.ts"],"names":[],"mappings":";;;AACA,SAAgB,eAAe,CAAC,EAAU,EAAE,YAA8C,IAAI;IAC1F,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAA4B,CAAC;IACjC,IAAI,KAAoC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,OAAO,GAAG,MAAM,CAAC;QACjB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACd,CAAC;QACL,CAAC,CAAC;QACF,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC;AA1BD,0CA0BC;AAED,SAAgB,cAAc,CAAI,CAAa,EAAE,SAAiB,EAAE,iBAA0B;IAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,GAAkB,EAAE,QAAiB,EAAE,EAAE;YACrD,IAAI,QAAQ,EAAE,CAAC;gBACX,OAAO;YACX,CAAC;YAED,QAAQ,GAAG,IAAI,CAAC;YAEhB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;YAChD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAE7F,MAAM,IAAI,GAAG,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;gBACZ,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACJ,QAAQ,EAAE,CAAC;YACf,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACT,YAAY,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;AACP,CAAC;AAhCD,wCAgCC;AAED,yHAAyH;AACzH,SAAgB,qBAAqB;IACjC,MAAM,IAAI,KAAK,CAAC,mHAAmH,CAAC,CAAC;AACzI,CAAC;AAFD,sDAEC"}
|
package/functions/disposer.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposer.d.ts","sourceRoot":"","sources":["../../src/functions/disposer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,IAAI,CAAC;CACZ;AAED,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAE3D,OAAO,CAAC,WAAW,CAAuB;gBAE9B,UAAU,GAAE,MAAM,GAAG,IAAW;IAIrC,aAAa,CAAC,UAAU,EAAE,MAAM;IAKhC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM;IAqBjD,OAAO,CAAC,EAAE,EAAE,MAAM;IAelB,OAAO,CAAC,GAAG,UAAQ;CAe7B;AAED,wBAAgB,gBAAgB,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAE7E;AAED,qBAAa,UAAW,YAAW,WAAW;IAE1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACtC,SAAS,CAAC,WAAW,UAAS;gBAElB,UAAU,GAAE,MAAM,GAAG,IAAW;IAIrC,OAAO,aAGZ;CACL"}
|
|
1
|
+
{"version":3,"file":"disposer.d.ts","sourceRoot":"","sources":["../../src/functions/disposer.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,UAAU,GAAG,WAAW,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC5B,IAAI,IAAI,CAAC;CACZ;AAED,qBAAa,QAAQ;IAEjB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAE3D,OAAO,CAAC,WAAW,CAAuB;gBAE9B,UAAU,GAAE,MAAM,GAAG,IAAW;IAIrC,aAAa,CAAC,UAAU,EAAE,MAAM;IAKhC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM;IAqBjD,OAAO,CAAC,EAAE,EAAE,MAAM;IAelB,OAAO,CAAC,GAAG,UAAQ;CAe7B;AAED,wBAAgB,gBAAgB,CAAC,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,CAE7E;AAED,qBAAa,UAAW,YAAW,WAAW;IAE1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACtC,SAAS,CAAC,WAAW,UAAS;gBAElB,UAAU,GAAE,MAAM,GAAG,IAAW;IAIrC,OAAO,aAGZ;CACL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposer.js","sourceRoot":"","sources":["../../src/functions/disposer.ts"],"names":[],"mappings":";;;;AAAA,+DAA+B;
|
|
1
|
+
{"version":3,"file":"disposer.js","sourceRoot":"","sources":["../../src/functions/disposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IDisposable } from './disposer';
|
|
2
|
+
export declare abstract class SymbolDisposable implements globalThis.Disposable, IDisposable {
|
|
3
|
+
[Symbol.dispose]: () => void;
|
|
4
|
+
abstract dispose(): void;
|
|
5
|
+
}
|
|
6
|
+
export declare function makeSymbolDisposable<T extends IDisposable>(obj: T): T & SymbolDisposable;
|
|
7
|
+
//# sourceMappingURL=disposer.symbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disposer.symbols.d.ts","sourceRoot":"","sources":["../../src/functions/disposer.symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAe9C,8BAAsB,gBAAiB,YAAW,UAAU,CAAC,UAAU,EAAE,WAAW;IAEhF,CAAC,MAAM,CAAC,OAAO,CAAC,aAAwB;IAExC,QAAQ,CAAC,OAAO,IAAI,IAAI;CAC3B;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAcxF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeSymbolDisposable = exports.SymbolDisposable = void 0;
|
|
4
|
+
// Symbol.dispose ??= Symbol('Symbol.dispose');
|
|
5
|
+
if (!('dispose' in Symbol)) {
|
|
6
|
+
// @ts-expect-error polyfill for Symbol.dispose
|
|
7
|
+
Symbol.dispose = Symbol('Symbol.dispose');
|
|
8
|
+
}
|
|
9
|
+
// Symbol.asyncDispose ??= Symbol('Symbol.asyncDispose');
|
|
10
|
+
if (!('asyncDispose' in Symbol)) {
|
|
11
|
+
// @ts-expect-error polyfill for Symbol.asyncDispose
|
|
12
|
+
Symbol.asyncDispose = Symbol('Symbol.asyncDispose');
|
|
13
|
+
}
|
|
14
|
+
// for demonstration purposes, but use as base class if needed
|
|
15
|
+
class SymbolDisposable {
|
|
16
|
+
[Symbol.dispose] = () => this.dispose();
|
|
17
|
+
}
|
|
18
|
+
exports.SymbolDisposable = SymbolDisposable;
|
|
19
|
+
function makeSymbolDisposable(obj) {
|
|
20
|
+
const fn = () => obj.dispose();
|
|
21
|
+
Object.defineProperty(obj, Symbol.dispose, {
|
|
22
|
+
get() {
|
|
23
|
+
return fn;
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
return obj;
|
|
27
|
+
}
|
|
28
|
+
exports.makeSymbolDisposable = makeSymbolDisposable;
|
|
29
|
+
//# sourceMappingURL=disposer.symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disposer.symbols.js","sourceRoot":"","sources":["../../src/functions/disposer.symbols.ts"],"names":[],"mappings":";;;AAEA,+CAA+C;AAC/C,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,CAAC;IACzB,+CAA+C;IAC/C,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC9C,CAAC;AAED,yDAAyD;AACzD,IAAI,CAAC,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE,CAAC;IAC9B,oDAAoD;IACpD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACxD,CAAC;AAED,8DAA8D;AAC9D,MAAsB,gBAAgB;IAElC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;CAG3C;AALD,4CAKC;AAGD,SAAgB,oBAAoB,CAAwB,GAAM;IAC9D,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAE/B,MAAM,CAAC,cAAc,CACjB,GAAG,EACH,MAAM,CAAC,OAAO,EACd;QACI,GAAG;YACC,OAAO,EAAE,CAAC;QACd,CAAC;KACJ,CACJ,CAAC;IAEF,OAAO,GAA2B,CAAC;AACvC,CAAC;AAdD,oDAcC"}
|
package/models/Model.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export declare class Model<T> implements IValueModel<Nullable<T>> {
|
|
|
7
7
|
constructor(v?: Getter<Nullable<T>>);
|
|
8
8
|
get value(): T;
|
|
9
9
|
set value(v: T);
|
|
10
|
-
readonly setValue: (value: Nullable<T
|
|
10
|
+
readonly setValue: (value: Getter<Nullable<T>>) => void;
|
|
11
11
|
readonly reset: () => void;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=Model.d.ts.map
|
package/models/Model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,KAAK,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"Model.d.ts","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,KAAK,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAExC,CAAC,GAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAQ;IAKzC,IAAW,KAAK,IACI,CAAC,CADuC;IAC5D,IAAW,KAAK,CAAC,CAAC,EAAE,CAAC,EAEpB;IAED,SAAgB,QAAQ,UAAW,OAAO,SAAS,CAAC,CAAC,CAAC,UAEpD;IAEF,SAAgB,KAAK,aAEnB;CACL"}
|
package/models/Model.js
CHANGED
|
@@ -6,10 +6,10 @@ class Model {
|
|
|
6
6
|
_value;
|
|
7
7
|
_defaultValue;
|
|
8
8
|
constructor(v = null) {
|
|
9
|
-
this._value =
|
|
9
|
+
this._value = v;
|
|
10
10
|
this._defaultValue = v;
|
|
11
11
|
}
|
|
12
|
-
get value() { return this._value; }
|
|
12
|
+
get value() { return getter_1.Getter.getValue(this._value); }
|
|
13
13
|
set value(v) {
|
|
14
14
|
this.setValue(v);
|
|
15
15
|
}
|
|
@@ -17,7 +17,7 @@ class Model {
|
|
|
17
17
|
this._value = value;
|
|
18
18
|
};
|
|
19
19
|
reset = () => {
|
|
20
|
-
this.setValue(
|
|
20
|
+
this.setValue(this._defaultValue);
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
exports.Model = Model;
|
package/models/Model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAGzC,MAAa,KAAK;IACN,MAAM,
|
|
1
|
+
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../../src/models/Model.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAGzC,MAAa,KAAK;IACN,MAAM,CAAsB;IAEnB,aAAa,CAAsB;IAEpD,YAAY,IAAyB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IAC5D,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEe,QAAQ,GAAG,CAAC,KAA0B,EAAE,EAAE;QACtD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC,CAAC;IAEc,KAAK,GAAG,GAAG,EAAE;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC,CAAC;CACL;AAtBD,sBAsBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zajno/common",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.7",
|
|
4
4
|
"description": "Zajno's re-usable utilities for JS/TS projects",
|
|
5
5
|
"private": false,
|
|
6
6
|
"repository": {
|
|
@@ -33,22 +33,22 @@
|
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@faker-js/faker": "^8.4.1",
|
|
36
|
-
"@types/node": "^20.
|
|
36
|
+
"@types/node": "^20.12.7",
|
|
37
37
|
"@vitest/coverage-istanbul": "^1.4.0",
|
|
38
38
|
"@zajno/eslint-config": "^3.0.1",
|
|
39
39
|
"cpy-cli": "^5.0.0",
|
|
40
40
|
"eslint": "^8.57.0",
|
|
41
|
-
"fast-check": "^3.
|
|
41
|
+
"fast-check": "^3.17.1",
|
|
42
42
|
"jest-extended": "^4.0.2",
|
|
43
43
|
"rimraf": "^5.0.5",
|
|
44
44
|
"scripty": "^2.1.1",
|
|
45
45
|
"ts-node": "^10.9.2",
|
|
46
46
|
"tslib": "^2.6.2",
|
|
47
|
-
"typescript": "^5.4.
|
|
47
|
+
"typescript": "^5.4.5",
|
|
48
48
|
"vitest": "^1.4.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
|
-
"tslib": "^2.6
|
|
51
|
+
"tslib": "^2.6"
|
|
52
52
|
},
|
|
53
53
|
"files": [
|
|
54
54
|
"LICENSE",
|
|
@@ -15,11 +15,12 @@ export declare class PromiseCache<T, K = string> {
|
|
|
15
15
|
private readonly fetcher;
|
|
16
16
|
private readonly keyAdapter?;
|
|
17
17
|
private readonly keyParser?;
|
|
18
|
-
protected
|
|
19
|
-
protected
|
|
20
|
-
private
|
|
18
|
+
protected _itemsCache: Record<string, T | null | undefined>;
|
|
19
|
+
protected _itemsStatus: Record<string, boolean>;
|
|
20
|
+
private _fetchCache;
|
|
21
21
|
private _batch;
|
|
22
22
|
private _logger;
|
|
23
|
+
private _version;
|
|
23
24
|
protected _busyCount: number;
|
|
24
25
|
constructor(fetcher: (id: K) => Promise<T>, keyAdapter?: (K extends string ? null : (k: K) => string) | undefined, keyParser?: (K extends string ? null : (id: string) => K) | undefined);
|
|
25
26
|
get busyCount(): number;
|
|
@@ -36,6 +37,7 @@ export declare class PromiseCache<T, K = string> {
|
|
|
36
37
|
hasKey(id: K): boolean;
|
|
37
38
|
keys(): string[];
|
|
38
39
|
keysParsed(): K[] | null;
|
|
40
|
+
clear(): void;
|
|
39
41
|
protected _set(key: string, item: T | null | undefined, promise: Promise<T> | undefined, busy: boolean | undefined): void;
|
|
40
42
|
/** @override */
|
|
41
43
|
protected setStatus(key: string, status: boolean): void;
|
|
@@ -49,6 +51,7 @@ export declare class PromiseCache<T, K = string> {
|
|
|
49
51
|
protected storeResult(key: string, res: T | null): void;
|
|
50
52
|
/** @override */
|
|
51
53
|
protected onFetchComplete(key: string): void;
|
|
54
|
+
/** @pure */
|
|
52
55
|
protected tryFetchInBatch(id: K): Promise<T | null>;
|
|
53
56
|
}
|
|
54
57
|
//# sourceMappingURL=promiseCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseCache.d.ts","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,yBAAiB,cAAc,CAAC;IAGrB,MAAM,KAAK;;;;KAIc,CAAC;CACpC;AAED,qBAAa,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"promiseCache.d.ts","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ class PromiseCache {
|
|
|
21
21
|
_fetchCache = {};
|
|
22
22
|
_batch = null;
|
|
23
23
|
_logger = null;
|
|
24
|
+
_version = 0;
|
|
24
25
|
_busyCount = 0;
|
|
25
26
|
constructor(fetcher, keyAdapter, keyParser) {
|
|
26
27
|
this.fetcher = fetcher;
|
|
@@ -94,9 +95,16 @@ class PromiseCache {
|
|
|
94
95
|
return promise;
|
|
95
96
|
}
|
|
96
97
|
_doFetchAsync = async (id, key) => {
|
|
98
|
+
let isInSameVersion = true;
|
|
97
99
|
try {
|
|
98
100
|
this.onBeforeFetch(key);
|
|
101
|
+
const v = this._version;
|
|
99
102
|
let res = await this.tryFetchInBatch(id);
|
|
103
|
+
if (v !== this._version) {
|
|
104
|
+
isInSameVersion = false;
|
|
105
|
+
// resolve with actual result but don't store it
|
|
106
|
+
return res;
|
|
107
|
+
}
|
|
100
108
|
if (this._fetchCache[key] != null) {
|
|
101
109
|
this._logger?.log(key, 'item\'s <promise> resolved to', res);
|
|
102
110
|
res = this.prepareResult(res);
|
|
@@ -105,7 +113,12 @@ class PromiseCache {
|
|
|
105
113
|
return res;
|
|
106
114
|
}
|
|
107
115
|
finally {
|
|
108
|
-
|
|
116
|
+
if (isInSameVersion) {
|
|
117
|
+
this.onFetchComplete(key);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
this._logger?.log(key, 'skipping item\'s resolve due to version change ("clear()" has been called)');
|
|
121
|
+
}
|
|
109
122
|
}
|
|
110
123
|
};
|
|
111
124
|
invalidate(id) {
|
|
@@ -129,6 +142,14 @@ class PromiseCache {
|
|
|
129
142
|
}
|
|
130
143
|
return this.keys().map(this.keyParser);
|
|
131
144
|
}
|
|
145
|
+
clear() {
|
|
146
|
+
++this._version;
|
|
147
|
+
this._busyCount = 0;
|
|
148
|
+
this._batch?.clear();
|
|
149
|
+
this._itemsCache = {};
|
|
150
|
+
this._itemsStatus = {};
|
|
151
|
+
this._fetchCache = {};
|
|
152
|
+
}
|
|
132
153
|
_set(key, item, promise, busy) {
|
|
133
154
|
_setX(key, this._fetchCache, promise);
|
|
134
155
|
_setX(key, this._itemsStatus, busy);
|
|
@@ -160,6 +181,7 @@ class PromiseCache {
|
|
|
160
181
|
delete this._fetchCache[key];
|
|
161
182
|
this._itemsStatus[key] = false;
|
|
162
183
|
}
|
|
184
|
+
/** @pure */
|
|
163
185
|
async tryFetchInBatch(id) {
|
|
164
186
|
const fetchWrap = () => this.fetcher(id).catch(err => {
|
|
165
187
|
this._logger?.warn('fetcher failed', id, err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":";;;AAAA,oDAA0D;AAC1D,sCAAkD;AAQlD,IAAiB,cAAc,CAQ9B;AARD,WAAiB,cAAc;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAO,IAAI,CAAC,CAAC;IAExC,oBAAK,GAAG;QACjB,IAAI,OAAO,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,KAAoB,OAAO,gBAAgB,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;KACA,CAAC;AACrC,CAAC,EARgB,cAAc,8BAAd,cAAc,QAQ9B;AAED,MAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"promiseCache.js","sourceRoot":"","sources":["../../src/structures/promiseCache.ts"],"names":[],"mappings":";;;AAAA,oDAA0D;AAC1D,sCAAkD;AAQlD,IAAiB,cAAc,CAQ9B;AARD,WAAiB,cAAc;IAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAO,IAAI,CAAC,CAAC;IAExC,oBAAK,GAAG;QACjB,IAAI,OAAO,KAAW,OAAO,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,OAAO,KAAoB,OAAO,gBAAgB,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;KACA,CAAC;AACrC,CAAC,EARgB,cAAc,8BAAd,cAAc,QAQ9B;AAED,MAAa,YAAY;IAcA;IACA;IACA;IAdX,WAAW,GAAyC,EAAE,CAAC;IACvD,YAAY,GAA4B,EAAE,CAAC;IAE7C,WAAW,GAAsC,EAAE,CAAC;IAEpD,MAAM,GAAqC,IAAI,CAAC;IAEhD,OAAO,GAAmB,IAAI,CAAC;IAC/B,QAAQ,GAAG,CAAC,CAAC;IACX,UAAU,GAAG,CAAC,CAAC;IAEzB,YACqB,OAA8B,EAC9B,UAAuD,EACvD,SAAuD;QAFvD,YAAO,GAAP,OAAO,CAAuB;QAC9B,eAAU,GAAV,UAAU,CAA6C;QACvD,cAAS,GAAT,SAAS,CAA8C;QAExE,EAAE;IACN,CAAC;IAED,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1C,GAAG,CAAC,CAAI;QACZ,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,YAA2C;QACjD,IAAI,YAAY,IAAI,IAAI,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAY,EAAC,iBAAiB,YAAY,IAAI,GAAG,GAAG,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,OAAmC;QAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,4BAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,GAAM;QACd,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO;YACH,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAC7C,CAAC;IACN,CAAC;IAED,SAAS,CAAC,EAAK;QACX,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,EAAK,EAAE,aAAa,GAAG,IAAI;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,EAAK;QACL,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;YACjD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,4BAA4B,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAE1B,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAEtC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE9B,OAAO,OAAO,CAAC;IACnB,CAAC;IAES,aAAa,GAAG,KAAK,EAAE,EAAK,EAAE,GAAW,EAAE,EAAE;QACnD,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;YAExB,IAAI,GAAG,GAAa,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAEnD,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtB,eAAe,GAAG,KAAK,CAAC;gBACxB,gDAAgD;gBAChD,OAAO,GAAG,CAAC;YACf,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBAC7D,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,GAAG,CAAC;QACf,CAAC;gBAAS,CAAC;YACP,IAAI,eAAe,EAAE,CAAC;gBAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,4EAA4E,CAAC,CAAC;YACzG,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,UAAU,CAAC,EAAK;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,mBAAmB,CAAC,EAAK,EAAE,KAAe;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,EAAK;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACvF,CAAC;IAED,IAAI;QACA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK;QACD,EAAE,IAAI,CAAC,QAAQ,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QAErB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;IAES,IAAI,CAAC,GAAW,EAAE,IAA0B,EAAE,OAA+B,EAAE,IAAyB;QAC9G,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,gBAAgB;IACN,SAAS,CAAC,GAAW,EAAE,MAAe;QAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACpC,CAAC;IAED,gBAAgB;IACN,UAAU,CAAC,GAAW,EAAE,OAA0B;QACxD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IACpC,CAAC;IAED,gBAAgB;IACN,aAAa,CAAC,IAAY;QAChC,EAAE,IAAI,CAAC,UAAU,CAAC;IACtB,CAAC;IAED,gBAAgB;IACN,aAAa,CAAC,GAAa;QACjC,OAAO,GAAG,IAAI,IAAI,CAAC;IACvB,CAAC;IAED,gBAAgB;IACN,WAAW,CAAC,GAAW,EAAE,GAAa;QAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAChC,CAAC;IAED,gBAAgB;IACN,eAAe,CAAC,GAAW;QACjC,EAAE,IAAI,CAAC,UAAU,CAAC;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,YAAY;IACF,KAAK,CAAC,eAAe,CAAC,EAAK;QACjC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACjD,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,SAAS,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;aACjC,KAAK,CAAC,GAAG,CAAC,EAAE;YACT,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACP,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7D,iEAAiE;YACjE,OAAO,SAAS,EAAE,CAAC;QACvB,CAAC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACJ;AApOD,oCAoOC;AAED,SAAS,KAAK,CAAI,GAAW,EAAE,GAAsB,EAAE,GAAM;IACzD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACnB,CAAC;AACL,CAAC"}
|