@memberjunction/global 6.2.0-edge.4 → 6.2.0-edge.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ClassFactory.d.ts +16 -3
- package/dist/ClassFactory.d.ts.map +1 -1
- package/dist/ClassFactory.js +112 -48
- package/dist/ClassFactory.js.map +1 -1
- package/dist/DeepDiff.d.ts +2 -0
- package/dist/DeepDiff.d.ts.map +1 -1
- package/dist/DeepDiff.js +40 -38
- package/dist/DeepDiff.js.map +1 -1
- package/dist/KeyedSerialTaskQueue.d.ts +18 -1
- package/dist/KeyedSerialTaskQueue.d.ts.map +1 -1
- package/dist/KeyedSerialTaskQueue.js +24 -3
- package/dist/KeyedSerialTaskQueue.js.map +1 -1
- package/dist/ObjectCache.d.ts +1 -0
- package/dist/ObjectCache.d.ts.map +1 -1
- package/dist/ObjectCache.js +14 -22
- package/dist/ObjectCache.js.map +1 -1
- package/dist/SQLExpressionValidator.d.ts +70 -41
- package/dist/SQLExpressionValidator.d.ts.map +1 -1
- package/dist/SQLExpressionValidator.js +183 -134
- package/dist/SQLExpressionValidator.js.map +1 -1
- package/dist/SQLScreeningScanner.d.ts +117 -0
- package/dist/SQLScreeningScanner.d.ts.map +1 -0
- package/dist/SQLScreeningScanner.js +475 -0
- package/dist/SQLScreeningScanner.js.map +1 -0
- package/dist/__tests__/FieldSecurityEgressCompliance.test.d.ts +2 -0
- package/dist/__tests__/FieldSecurityEgressCompliance.test.d.ts.map +1 -0
- package/dist/__tests__/FieldSecurityEgressCompliance.test.js +228 -0
- package/dist/__tests__/FieldSecurityEgressCompliance.test.js.map +1 -0
- package/dist/__tests__/KeyedSerialTaskQueue.test.js +92 -0
- package/dist/__tests__/KeyedSerialTaskQueue.test.js.map +1 -1
- package/dist/__tests__/ProofOfPossession.test.d.ts +2 -0
- package/dist/__tests__/ProofOfPossession.test.d.ts.map +1 -0
- package/dist/__tests__/ProofOfPossession.test.js +123 -0
- package/dist/__tests__/ProofOfPossession.test.js.map +1 -0
- package/dist/__tests__/SQLExpressionValidator.dialect.test.d.ts +2 -0
- package/dist/__tests__/SQLExpressionValidator.dialect.test.d.ts.map +1 -0
- package/dist/__tests__/SQLExpressionValidator.dialect.test.js +183 -0
- package/dist/__tests__/SQLExpressionValidator.dialect.test.js.map +1 -0
- package/dist/__tests__/SQLExpressionValidator.security.test.js +176 -2
- package/dist/__tests__/SQLExpressionValidator.security.test.js.map +1 -1
- package/dist/__tests__/SQLScreeningScanner.test.d.ts +2 -0
- package/dist/__tests__/SQLScreeningScanner.test.d.ts.map +1 -0
- package/dist/__tests__/SQLScreeningScanner.test.js +172 -0
- package/dist/__tests__/SQLScreeningScanner.test.js.map +1 -0
- package/dist/__tests__/SQLScreeningScanner.tokens.test.d.ts +2 -0
- package/dist/__tests__/SQLScreeningScanner.tokens.test.d.ts.map +1 -0
- package/dist/__tests__/SQLScreeningScanner.tokens.test.js +82 -0
- package/dist/__tests__/SQLScreeningScanner.tokens.test.js.map +1 -0
- package/dist/__tests__/UUIDCompliance.test.js +4 -4
- package/dist/__tests__/UUIDCompliance.test.js.map +1 -1
- package/dist/__tests__/UserScopedCacheKey.test.d.ts +2 -0
- package/dist/__tests__/UserScopedCacheKey.test.d.ts.map +1 -0
- package/dist/__tests__/UserScopedCacheKey.test.js +25 -0
- package/dist/__tests__/UserScopedCacheKey.test.js.map +1 -0
- package/dist/__tests__/util.valuesEqual.test.d.ts +2 -0
- package/dist/__tests__/util.valuesEqual.test.d.ts.map +1 -0
- package/dist/__tests__/util.valuesEqual.test.js +37 -0
- package/dist/__tests__/util.valuesEqual.test.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/util/ProofOfPossession.d.ts +68 -0
- package/dist/util/ProofOfPossession.d.ts.map +1 -0
- package/dist/util/ProofOfPossession.js +163 -0
- package/dist/util/ProofOfPossession.js.map +1 -0
- package/dist/util/UserScopedCacheKey.d.ts +42 -0
- package/dist/util/UserScopedCacheKey.d.ts.map +1 -0
- package/dist/util/UserScopedCacheKey.js +49 -0
- package/dist/util/UserScopedCacheKey.js.map +1 -0
- package/dist/util.d.ts +25 -0
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +38 -0
- package/dist/util.js.map +1 -1
- package/package.json +1 -1
package/dist/ClassFactory.d.ts
CHANGED
|
@@ -69,6 +69,14 @@ export type ClassResolutionResult<T> = {
|
|
|
69
69
|
*/
|
|
70
70
|
export declare class ClassFactory {
|
|
71
71
|
private _registrations;
|
|
72
|
+
/** Registrations indexed by `baseClassName` for fast per-base queries. */
|
|
73
|
+
private _byBaseClass;
|
|
74
|
+
/** Registrations indexed by `baseClassName|normalizedKey` for O(1) keyed lookups. */
|
|
75
|
+
private _byBaseAndKey;
|
|
76
|
+
/** Registrations indexed by `rootClassName` for hierarchy queries. */
|
|
77
|
+
private _byRootClass;
|
|
78
|
+
private _indexedRegistrationsRef;
|
|
79
|
+
private _indexedRegistrationsLength;
|
|
72
80
|
/** Per-base fallback-warning counter, backing the volume cap in reportResolutionFailure. */
|
|
73
81
|
private _fallbackCountByBase;
|
|
74
82
|
/** Fallback warnings emitted per base class before summarising and going quiet. */
|
|
@@ -147,6 +155,12 @@ export declare class ClassFactory {
|
|
|
147
155
|
* @param autoRegisterWithRootClass If true, will automatically register the subclass with the root class of the baseClass hierarchy. This ensures proper priority ordering when multiple subclasses are registered in a hierarchy. Defaults to false to preserve the original registration contract where classes are stored under the baseClass you specify.
|
|
148
156
|
*/
|
|
149
157
|
Register(baseClass: unknown, subClass: unknown, key?: string | null, priority?: number, skipNullKeyWarning?: boolean, autoRegisterWithRootClass?: boolean, metadata?: Record<string, unknown>): void;
|
|
158
|
+
/**
|
|
159
|
+
* Rebuilds the secondary lookup maps if `_registrations` was reassigned or mutated
|
|
160
|
+
* directly (as several unit test suites do in `afterEach` cleanup).
|
|
161
|
+
*/
|
|
162
|
+
private ensureIndexes;
|
|
163
|
+
private indexRegistration;
|
|
150
164
|
/**
|
|
151
165
|
* Emits a single warning when an incoming registration collides with one or more EXISTING
|
|
152
166
|
* registrations for the same base class + key that are **not in its inheritance chain**.
|
|
@@ -243,9 +257,8 @@ export declare class ClassFactory {
|
|
|
243
257
|
*/
|
|
244
258
|
GetRegistration(baseClass: unknown, key?: string | null): ClassRegistration | null;
|
|
245
259
|
/**
|
|
246
|
-
* Uncached core of {@link GetRegistration}:
|
|
247
|
-
* the highest-priority (last-registered on ties).
|
|
248
|
-
* memoize without the cache logic obscuring the resolution rule.
|
|
260
|
+
* Uncached core of {@link GetRegistration}: finds all matching registrations in the
|
|
261
|
+
* per-base/key index and returns the highest-priority (last-registered on ties).
|
|
249
262
|
*/
|
|
250
263
|
private resolveRegistration;
|
|
251
264
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassFactory.d.ts","sourceRoot":"","sources":["../src/ClassFactory.ts"],"names":[],"mappings":"AAAA;;;;;;wGAMwG;AAWxG;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,SAAS,EAAE,GAAG,CAAC;IAEf,QAAQ,EAAE,GAAG,CAAC;IAEd,SAAS,EAAE,GAAG,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1B,QAAQ,EAAE,MAAM,CAAK;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAGD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACnC;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;IACnB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AAMH;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,cAAc,CAA2B;
|
|
1
|
+
{"version":3,"file":"ClassFactory.d.ts","sourceRoot":"","sources":["../src/ClassFactory.ts"],"names":[],"mappings":"AAAA;;;;;;wGAMwG;AAWxG;;GAEG;AACH,qBAAa,iBAAiB;IAE1B,SAAS,EAAE,GAAG,CAAC;IAEf,QAAQ,EAAE,GAAG,CAAC;IAEd,SAAS,EAAE,GAAG,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE1B,QAAQ,EAAE,MAAM,CAAK;IACrB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAGD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACnC;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;IACnB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;;GAMG;AAMH;;;GAGG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,cAAc,CAA2B;IACjD,0EAA0E;IAC1E,OAAO,CAAC,YAAY,CAA0C;IAC9D,qFAAqF;IACrF,OAAO,CAAC,aAAa,CAA0C;IAC/D,sEAAsE;IACtE,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,wBAAwB,CAAoC;IACpE,OAAO,CAAC,2BAA2B,CAAa;IAEhD,4FAA4F;IAC5F,OAAO,CAAC,oBAAoB,CAA6B;IACzD,mFAAmF;IACnF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,CAAK;IAE1D;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB,CAAoD;IAE9E;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,CAAoE;IAExF;;;OAGG;IACH,OAAO,CAAC,2BAA2B,CAA0B;IAE7D;;;;;;;OAOG;IACI,kBAAkB,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI;IAIjG;;;OAGG;YACW,WAAW;IAWzB;;;;;;;;OAQG;IACU,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAW7G;;;;;;;;OAQG;IACU,mBAAmB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAa3H;;;OAGG;IACU,sBAAsB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAQ9I;;;;;;;;OAQG;IACI,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,EAAE,QAAQ,GAAE,MAAU,EAAE,kBAAkB,GAAE,OAAe,EAAE,yBAAyB,GAAE,OAAe,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgFlO;;;OAGG;IACH,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,iBAAiB;IAgCzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,4BAA4B;IAqBpC;;;;;;;;;;;;OAYG;IACI,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI;IASvG;;;;;;;;;;;;OAYG;IACI,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAE,MAAM,GAAG,IAAW,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAI1H;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IA6E7B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAqBjC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAqC/B;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,EAAE;IAexF;;;;;;;OAOG;IACI,8BAA8B,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAUjG;;;;OAIG;IACI,+BAA+B,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAShG;;;;;;;;OAQG;IACI,6BAA6B,CAChC,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,YAAY,EAAE,iBAAiB,KAAK,OAAO,GACvG,iBAAiB,EAAE;IAStB;;OAEG;IACI,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,GAAG,IAAI;IAczF;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;;;;;OAMG;IACI,2BAA2B,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,EAAE;CAgBnG"}
|
package/dist/ClassFactory.js
CHANGED
|
@@ -36,6 +36,14 @@ export class ClassRegistration {
|
|
|
36
36
|
export class ClassFactory {
|
|
37
37
|
constructor() {
|
|
38
38
|
this._registrations = [];
|
|
39
|
+
/** Registrations indexed by `baseClassName` for fast per-base queries. */
|
|
40
|
+
this._byBaseClass = new Map();
|
|
41
|
+
/** Registrations indexed by `baseClassName|normalizedKey` for O(1) keyed lookups. */
|
|
42
|
+
this._byBaseAndKey = new Map();
|
|
43
|
+
/** Registrations indexed by `rootClassName` for hierarchy queries. */
|
|
44
|
+
this._byRootClass = new Map();
|
|
45
|
+
this._indexedRegistrationsRef = null;
|
|
46
|
+
this._indexedRegistrationsLength = 0;
|
|
39
47
|
/** Per-base fallback-warning counter, backing the volume cap in reportResolutionFailure. */
|
|
40
48
|
this._fallbackCountByBase = new Map();
|
|
41
49
|
/**
|
|
@@ -206,7 +214,11 @@ export class ClassFactory {
|
|
|
206
214
|
reg.Priority = priority;
|
|
207
215
|
if (metadata !== undefined)
|
|
208
216
|
reg.Metadata = metadata;
|
|
217
|
+
this.ensureIndexes();
|
|
209
218
|
this._registrations.push(reg);
|
|
219
|
+
this.indexRegistration(reg);
|
|
220
|
+
this._indexedRegistrationsRef = this._registrations;
|
|
221
|
+
this._indexedRegistrationsLength = this._registrations.length;
|
|
210
222
|
// Invalidate the GetRegistration memo — a new registration may change the
|
|
211
223
|
// highest-priority winner for any (baseClass, key) bucket.
|
|
212
224
|
this._registrationCache.clear();
|
|
@@ -215,6 +227,53 @@ export class ClassFactory {
|
|
|
215
227
|
this._reportedResolutionFailures.clear();
|
|
216
228
|
}
|
|
217
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Rebuilds the secondary lookup maps if `_registrations` was reassigned or mutated
|
|
232
|
+
* directly (as several unit test suites do in `afterEach` cleanup).
|
|
233
|
+
*/
|
|
234
|
+
ensureIndexes() {
|
|
235
|
+
if (this._indexedRegistrationsRef === this._registrations && this._indexedRegistrationsLength === this._registrations.length) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
this._byBaseClass.clear();
|
|
239
|
+
this._byBaseAndKey.clear();
|
|
240
|
+
this._byRootClass.clear();
|
|
241
|
+
this._registrationCache.clear();
|
|
242
|
+
for (let i = 0; i < this._registrations.length; i++) {
|
|
243
|
+
this.indexRegistration(this._registrations[i]);
|
|
244
|
+
}
|
|
245
|
+
this._indexedRegistrationsRef = this._registrations;
|
|
246
|
+
this._indexedRegistrationsLength = this._registrations.length;
|
|
247
|
+
}
|
|
248
|
+
indexRegistration(reg) {
|
|
249
|
+
const effectiveBaseClassName = reg.BaseClass?.name;
|
|
250
|
+
if (effectiveBaseClassName) {
|
|
251
|
+
let baseBucket = this._byBaseClass.get(effectiveBaseClassName);
|
|
252
|
+
if (!baseBucket) {
|
|
253
|
+
baseBucket = [];
|
|
254
|
+
this._byBaseClass.set(effectiveBaseClassName, baseBucket);
|
|
255
|
+
}
|
|
256
|
+
baseBucket.push(reg);
|
|
257
|
+
if (reg.Key !== undefined && reg.Key !== null) {
|
|
258
|
+
const baseKey = `${effectiveBaseClassName}|${reg.Key.trim().toLowerCase()}`;
|
|
259
|
+
let keyBucket = this._byBaseAndKey.get(baseKey);
|
|
260
|
+
if (!keyBucket) {
|
|
261
|
+
keyBucket = [];
|
|
262
|
+
this._byBaseAndKey.set(baseKey, keyBucket);
|
|
263
|
+
}
|
|
264
|
+
keyBucket.push(reg);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
const rootClassName = reg.RootClass?.name;
|
|
268
|
+
if (rootClassName) {
|
|
269
|
+
let rootBucket = this._byRootClass.get(rootClassName);
|
|
270
|
+
if (!rootBucket) {
|
|
271
|
+
rootBucket = [];
|
|
272
|
+
this._byRootClass.set(rootClassName, rootBucket);
|
|
273
|
+
}
|
|
274
|
+
rootBucket.push(reg);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
218
277
|
/**
|
|
219
278
|
* Emits a single warning when an incoming registration collides with one or more EXISTING
|
|
220
279
|
* registrations for the same base class + key that are **not in its inheritance chain**.
|
|
@@ -416,19 +475,18 @@ export class ClassFactory {
|
|
|
416
475
|
* @returns
|
|
417
476
|
*/
|
|
418
477
|
GetAllRegistrations(baseClass, key) {
|
|
419
|
-
if (baseClass) {
|
|
420
|
-
// baseClassName and the normalised key are loop-invariant — computed once here rather
|
|
421
|
-
// than once per registration. This filter runs over every registration in the process.
|
|
422
|
-
const baseClassName = baseClass.name;
|
|
423
|
-
const normalizedKey = key === undefined || key === null ? null : key.trim().toLowerCase();
|
|
424
|
-
return this._registrations.filter(r => {
|
|
425
|
-
const regBaseClassName = r.BaseClass.name;
|
|
426
|
-
return regBaseClassName === baseClassName && // we use the name of the class instead of the class itself because JS is finicky about this since a given module can be loaded in various places (like from multiple other modules) and the class itself will be different in each case
|
|
427
|
-
(normalizedKey === null ? true : r.Key?.trim().toLowerCase() === normalizedKey);
|
|
428
|
-
});
|
|
429
|
-
}
|
|
430
|
-
else
|
|
478
|
+
if (!baseClass) {
|
|
431
479
|
return [];
|
|
480
|
+
}
|
|
481
|
+
this.ensureIndexes();
|
|
482
|
+
const baseClassName = baseClass.name;
|
|
483
|
+
if (key === undefined || key === null) {
|
|
484
|
+
const bucket = this._byBaseClass.get(baseClassName);
|
|
485
|
+
return bucket ? [...bucket] : [];
|
|
486
|
+
}
|
|
487
|
+
const normalizedKey = key.trim().toLowerCase();
|
|
488
|
+
const bucket = this._byBaseAndKey.get(`${baseClassName}|${normalizedKey}`);
|
|
489
|
+
return bucket ? [...bucket] : [];
|
|
432
490
|
}
|
|
433
491
|
/**
|
|
434
492
|
* Returns all registrations for a given base class whose `Key` STARTS WITH the
|
|
@@ -441,14 +499,13 @@ export class ClassFactory {
|
|
|
441
499
|
GetAllRegistrationsByKeyPrefix(baseClass, keyPrefix) {
|
|
442
500
|
if (!baseClass || keyPrefix == null)
|
|
443
501
|
return [];
|
|
502
|
+
this.ensureIndexes();
|
|
444
503
|
const baseClassName = baseClass.name;
|
|
504
|
+
const bucket = this._byBaseClass.get(baseClassName);
|
|
505
|
+
if (!bucket)
|
|
506
|
+
return [];
|
|
445
507
|
const needle = keyPrefix.trim().toLowerCase();
|
|
446
|
-
return
|
|
447
|
-
const regBaseClassName = r.BaseClass.name;
|
|
448
|
-
if (regBaseClassName !== baseClassName)
|
|
449
|
-
return false;
|
|
450
|
-
return r.Key != null && r.Key.trim().toLowerCase().startsWith(needle);
|
|
451
|
-
});
|
|
508
|
+
return bucket.filter(r => r.Key != null && r.Key.trim().toLowerCase().startsWith(needle));
|
|
452
509
|
}
|
|
453
510
|
/**
|
|
454
511
|
* Returns all registrations for a given base class whose `Key` matches the
|
|
@@ -458,13 +515,12 @@ export class ClassFactory {
|
|
|
458
515
|
GetAllRegistrationsByKeyPattern(baseClass, pattern) {
|
|
459
516
|
if (!baseClass || !pattern)
|
|
460
517
|
return [];
|
|
518
|
+
this.ensureIndexes();
|
|
461
519
|
const baseClassName = baseClass.name;
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
return r.Key != null && pattern.test(r.Key.trim());
|
|
467
|
-
});
|
|
520
|
+
const bucket = this._byBaseClass.get(baseClassName);
|
|
521
|
+
if (!bucket)
|
|
522
|
+
return [];
|
|
523
|
+
return bucket.filter(r => r.Key != null && pattern.test(r.Key.trim()));
|
|
468
524
|
}
|
|
469
525
|
/**
|
|
470
526
|
* Returns all registrations for a given base class whose attached `Metadata`
|
|
@@ -478,13 +534,12 @@ export class ClassFactory {
|
|
|
478
534
|
GetAllRegistrationsByMetadata(baseClass, predicate) {
|
|
479
535
|
if (!baseClass || typeof predicate !== 'function')
|
|
480
536
|
return [];
|
|
537
|
+
this.ensureIndexes();
|
|
481
538
|
const baseClassName = baseClass.name;
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
return predicate(r.Metadata, r);
|
|
487
|
-
});
|
|
539
|
+
const bucket = this._byBaseClass.get(baseClassName);
|
|
540
|
+
if (!bucket)
|
|
541
|
+
return [];
|
|
542
|
+
return bucket.filter(r => predicate(r.Metadata, r));
|
|
488
543
|
}
|
|
489
544
|
/**
|
|
490
545
|
* Returns the registration with the highest priority for a given base class and key. If key is not provided, will return the registration with the highest priority for the base class.
|
|
@@ -492,6 +547,7 @@ export class ClassFactory {
|
|
|
492
547
|
GetRegistration(baseClass, key) {
|
|
493
548
|
if (!baseClass)
|
|
494
549
|
return null;
|
|
550
|
+
this.ensureIndexes();
|
|
495
551
|
// Memoized fast path — avoids re-filtering the entire registration list on every call.
|
|
496
552
|
const cacheKey = `${baseClass.name}|${key == null ? '' : key.trim().toLowerCase()}`;
|
|
497
553
|
const cached = this._registrationCache.get(cacheKey);
|
|
@@ -502,23 +558,26 @@ export class ClassFactory {
|
|
|
502
558
|
return resolved;
|
|
503
559
|
}
|
|
504
560
|
/**
|
|
505
|
-
* Uncached core of {@link GetRegistration}:
|
|
506
|
-
* the highest-priority (last-registered on ties).
|
|
507
|
-
* memoize without the cache logic obscuring the resolution rule.
|
|
561
|
+
* Uncached core of {@link GetRegistration}: finds all matching registrations in the
|
|
562
|
+
* per-base/key index and returns the highest-priority (last-registered on ties).
|
|
508
563
|
*/
|
|
509
564
|
resolveRegistration(baseClass, key) {
|
|
510
|
-
|
|
565
|
+
const baseClassName = baseClass.name;
|
|
566
|
+
const matches = key === undefined || key === null
|
|
567
|
+
? this._byBaseClass.get(baseClassName)
|
|
568
|
+
: this._byBaseAndKey.get(`${baseClassName}|${key.trim().toLowerCase()}`);
|
|
511
569
|
if (matches && matches.length > 0) {
|
|
512
|
-
// figure out the highest priority for all the matching registrations
|
|
513
570
|
let highestPriority = 0;
|
|
514
571
|
for (let i = 0; i < matches.length; i++) {
|
|
515
|
-
if (matches[i].Priority > highestPriority)
|
|
572
|
+
if (matches[i].Priority > highestPriority) {
|
|
516
573
|
highestPriority = matches[i].Priority;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
for (let i = matches.length - 1; i >= 0; i--) {
|
|
577
|
+
if (matches[i].Priority === highestPriority) {
|
|
578
|
+
return matches[i];
|
|
579
|
+
}
|
|
517
580
|
}
|
|
518
|
-
// now filter the matches to only those that have the highest priority
|
|
519
|
-
const highest = matches.filter(r => r.Priority === highestPriority);
|
|
520
|
-
// return the last one in the list, which will be the last one registered - so that if everyone has the same priority number, we use the LAST one registered
|
|
521
|
-
return highest[highest.length - 1];
|
|
522
581
|
}
|
|
523
582
|
return null;
|
|
524
583
|
}
|
|
@@ -530,15 +589,20 @@ export class ClassFactory {
|
|
|
530
589
|
* @returns Array of matching registrations
|
|
531
590
|
*/
|
|
532
591
|
GetRegistrationsByRootClass(rootClass, key) {
|
|
533
|
-
if (rootClass) {
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
592
|
+
if (!rootClass) {
|
|
593
|
+
return [];
|
|
594
|
+
}
|
|
595
|
+
this.ensureIndexes();
|
|
596
|
+
const rootClassName = rootClass.name;
|
|
597
|
+
const bucket = this._byRootClass.get(rootClassName);
|
|
598
|
+
if (!bucket) {
|
|
599
|
+
return [];
|
|
600
|
+
}
|
|
601
|
+
if (key === undefined || key === null) {
|
|
602
|
+
return [...bucket];
|
|
540
603
|
}
|
|
541
|
-
|
|
604
|
+
const normalizedKey = key.trim().toLowerCase();
|
|
605
|
+
return bucket.filter(r => r.Key?.trim().toLowerCase() === normalizedKey);
|
|
542
606
|
}
|
|
543
607
|
}
|
|
544
608
|
//# sourceMappingURL=ClassFactory.js.map
|
package/dist/ClassFactory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClassFactory.js","sourceRoot":"","sources":["../src/ClassFactory.ts"],"names":[],"mappings":"AAAA;;;;;;wGAMwG;AAExG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAe,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AAOnF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QAOI,QAAG,GAAkB,IAAI,CAAC,CAAC,gMAAgM;QAC/M,uGAAuG;QACnH,aAAQ,GAAW,CAAC,CAAC,CAAC,kMAAkM;IAW5N,CAAC;CAAA;AAmCD;;;;;;GAMG;AACH,4FAA4F;AAC5F,4FAA4F;AAC5F,4FAA4F;AAC5F,0CAA0C;AAE1C;;;GAGG;AACH,MAAM,OAAO,YAAY;IAAzB;QACY,mBAAc,GAAwB,EAAE,CAAC;QAEjD,4FAA4F;QACpF,yBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAIzD;;;;;;;;WAQG;QACK,uBAAkB,GAA0C,IAAI,GAAG,EAAE,CAAC;QAE9E;;;;;;;;WAQG;QACK,iBAAY,GAAiE,EAAE,CAAC;QAExF;;;WAGG;QACK,gCAA2B,GAAgB,IAAI,GAAG,EAAE,CAAC;IA8gBjE,CAAC;IA3iBG,mFAAmF;aAC3D,kCAA6B,GAAG,CAAC,AAAJ,CAAK;IA8B1D;;;;;;;OAOG;IACI,kBAAkB,CAAC,MAAgE;QACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,WAAW,CAAC,SAAkB,EAAE,GAAW;QACrD,MAAM,aAAa,GAAI,SAAwB,CAAC,IAAI,CAAC;QACrD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,oBAAoB,CAAC,SAAkB,EAAE,GAAmB;QACrE,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE,CAAC;gBACT,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,mBAAmB,CAAI,SAAkB,EAAE,MAAqB,IAAI,EAAE,GAAG,MAAiB;QACnG,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,sBAAsB,CAAI,SAAkB,EAAE,MAAqB,IAAI,EAAE,GAAG,MAAiB;QACtG,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;QACpG,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;OAQG;IACI,QAAQ,CAAC,SAAkB,EAAE,QAAiB,EAAE,MAAqB,IAAI,EAAE,WAAmB,CAAC,EAAE,qBAA8B,KAAK,EAAE,4BAAqC,KAAK,EAAE,QAAkC;QACvN,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,aAAa,GAAI,SAAwB,CAAC,IAAI,CAAC;YACrD,MAAM,YAAY,GAAI,QAAuB,CAAC,IAAI,CAAC;YAEnD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,iEAAiE,aAAa,0JAA0J,CAAC,CAAA;YAC1P,CAAC;YAED,2CAA2C;YAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAI,SAAwB,CAAC,IAAI,CAAC;YAErD,qDAAqD;YACrD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,MAAM,sBAAsB,GAAI,kBAAiC,CAAC,IAAI,CAAC;YAEvE,gDAAgD;YAChD,IAAI,yBAAyB,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,2CAA2C,YAAY,oBAAoB,aAAa,eAAe,aAAa,EAAE,CAAC,CAAC;YACzI,CAAC;YAED,6EAA6E;YAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YAExE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACf,yJAAyJ;gBACzJ,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;gBACpE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,gDAAgD,YAAY,mBAAmB,sBAAsB,qBAAqB,GAAG,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,0OAA0O,CAAC,CAAC;gBAC1Z,CAAC;YACL,CAAC;iBACI,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrE,mJAAmJ;gBACnJ,oHAAoH;gBACpH,IAAI,eAAe,GAAG,CAAC,CAAC;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,eAAe;wBAC3C,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACpD,CAAC;gBAED,qFAAqF;gBACrF,oFAAoF;gBACpF,wFAAwF;gBACxF,4EAA4E;gBAC5E,qFAAqF;gBACrF,qFAAqF;gBACrF,oFAAoF;gBACpF,oFAAoF;gBACpF,2DAA2D;gBAC3D,IAAI,CAAC,4BAA4B,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;gBAEtG,wEAAwE;gBACxE,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,wEAAwE;YACxE,IAAI,GAAG,GAAG,IAAI,iBAAiB,EAAE,CAAC;YAClC,GAAG,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACnC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACxB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;YAC1B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YACd,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACxB,IAAI,QAAQ,KAAK,SAAS;gBAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAEpD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,0EAA0E;YAC1E,2DAA2D;YAC3D,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAChC,+EAA+E;YAC/E,4DAA4D;YAC5D,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QAC7C,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACK,4BAA4B,CAChC,aAAkC,EAClC,QAAiB,EACjB,YAAoB,EACpB,sBAA8B,EAC9B,GAAkB;QAElB,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,QAAuB,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CACR,8BAA8B,YAAY,kCAAkC,sBAAsB,GAAG;YACrG,aAAa,GAAG,0DAA0D,KAAK,yBAAyB;YACxG,oFAAoF,YAAY,QAAQ;YACxG,2CAA2C,KAAK,yDAAyD;YACzG,gGAAgG,CACnG,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,cAAc,CAAI,SAAkB,EAAE,MAAqB,IAAI,EAAE,GAAG,MAAiB;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3G,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,EAAE,CAAC;YAC5D,+FAA+F;YAC/F,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,iBAAiB,CAAI,SAAkB,EAAE,MAAqB,IAAI,EAAE,GAAG,MAAiB;QAC3F,OAAO,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACvG,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CACzB,SAAkB,EAClB,GAA6B,EAC7B,GAAkB,EAClB,MAAiB;QAEjB,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;QACpG,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,mBAAmB,GAAG,GAAG,CAAC,QAAyC,CAAC;YAC1E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAC5E,CAAC;QAED,qFAAqF;QACrF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC1D,sDAAsD;QACtD,EAAE;QACF,4FAA4F;QAC5F,6FAA6F;QAC7F,wFAAwF;QACxF,qFAAqF;QACrF,4FAA4F;QAC5F,oFAAoF;QACpF,kFAAkF;QAClF,6FAA6F;QAC7F,4FAA4F;QAC5F,IAAI,eAAmC,CAAC;QACxC,MAAM,MAAM,GAAG,GAAW,EAAE,CACxB,CAAC,eAAe,KAAK,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAE3F,qEAAqE;QACrE,EAAE;QACF,yFAAyF;QACzF,wFAAwF;QACxF,gFAAgF;QAChF,sFAAsF;QACtF,yDAAyD;QACzD,EAAE;QACF,mFAAmF;QACnF,4CAA4C;QAC5C,MAAM,cAAc,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1F,0FAA0F;QAC1F,wFAAwF;QACxF,2FAA2F;QAC3F,wFAAwF;QACxF,yFAAyF;QACzF,0BAA0B;QAC1B,MAAM,kBAAkB,GAAG,CAAC,gBAAgB,IAAI,kCAAkC,CAAC,SAAS,CAAC,CAAC;QAC9F,IAAI,CAAC,cAAc,IAAI,CAAC,kBAAkB,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAC9D,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;QAGD,IAAI,gBAAgB,EAAE,CAAC;YACnB,gFAAgF;YAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;QACjE,CAAC;QAED,qFAAqF;QACrF,mEAAmE;QACnE,EAAE;QACF,4FAA4F;QAC5F,qFAAqF;QACrF,uFAAuF;QACvF,iCAAiC;QACjC,MAAM,oBAAoB,GAAG,SAA0C,CAAC;QACxE,OAAO;YACH,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI,oBAAoB,CAAC,GAAG,MAAM,CAAC;YAC7C,IAAI,MAAM;gBACN,OAAO,MAAM,EAAE,CAAC;YACpB,CAAC;SACJ,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,yBAAyB,CAAC,SAAkB,EAAE,GAAkB,EAAE,gBAAyB;QAC/F,MAAM,aAAa,GAAI,SAAwB,CAAC,IAAI,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACf,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEhG,OAAO,CACH,uDAAuD,aAAa,eAAe,GAAG,IAAI,QAAQ,KAAK;YACvG,wBAAwB,aAAa,MAAM,SAAS,IAAI;YACxD,oBAAoB,gBAAgB,IAAI;YACxC,CAAC,gBAAgB;gBACb,CAAC,CAAC,IAAI,aAAa,0EAA0E;oBAC3F,6FAA6F;oBAC7F,mGAAmG;gBACrG,CAAC,CAAC,mCAAmC,aAAa,qDAAqD;oBACrG,+EAA+E,CAAC,CACzF,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,SAAkB,EAAE,GAAkB,EAAE,gBAAyB,EAAE,MAAoB;QACnH,iDAAiD;QACjD,EAAE;QACF,yFAAyF;QACzF,oFAAoF;QACpF,kFAAkF;QAClF,yFAAyF;QACzF,yFAAyF;QACzF,mCAAmC;QACnC,EAAE;QACF,yFAAyF;QACzF,2FAA2F;QAC3F,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAI,SAAwB,CAAC,IAAI,CAAC;YAChD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,IAAI,KAAK,YAAY,CAAC,6BAA6B,GAAG,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,0BAA0B,QAAQ,mCAAmC,YAAY,CAAC,6BAA6B,4FAA4F,CAAC,CAAC;gBAC1N,OAAO;YACX,CAAC;YACD,IAAI,IAAI,GAAG,YAAY,CAAC,6BAA6B,EAAE,CAAC;gBACpD,OAAO;YACX,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,GAAI,SAAwB,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAClG,IAAI,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACzD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE7C,uFAAuF;QACvF,+CAA+C;QAC/C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,qBAAqB,CAAC;QACzD,MAAM,OAAO,GAAG,GAAG,MAAM,EAAE,iBAAiB,KAAK,EAAE,CAAC;QACpD,IAAI,gBAAgB;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;YACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CAAC,SAAkB,EAAE,GAAmB;QAC9D,IAAI,SAAS,EAAE,CAAC;YACZ,sFAAsF;YACtF,uFAAuF;YACvF,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;YAC3D,MAAM,aAAa,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC1F,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClC,MAAM,gBAAgB,GAAI,CAAC,CAAC,SAA8B,CAAC,IAAI,CAAC;gBAChE,OAAQ,gBAAgB,KAAK,aAAa,IAAI,wOAAwO;oBAC9Q,CAAE,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAA;YAC5F,CAAC,CAAE,CAAC;QACR,CAAC;;YAEG,OAAO,EAAE,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACI,8BAA8B,CAAC,SAAkB,EAAE,SAAiB;QACvE,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,EAAE,CAAC;QAC/C,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAClC,MAAM,gBAAgB,GAAI,CAAC,CAAC,SAA8B,CAAC,IAAI,CAAC;YAChE,IAAI,gBAAgB,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC;YACrD,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACI,+BAA+B,CAAC,SAAkB,EAAE,OAAe;QACtE,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAClC,MAAM,gBAAgB,GAAI,CAAC,CAAC,SAA8B,CAAC,IAAI,CAAC;YAChE,IAAI,gBAAgB,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC;YACrD,OAAO,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACI,6BAA6B,CAChC,SAAkB,EAClB,SAAsG;QAEtG,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,UAAU;YAAE,OAAO,EAAE,CAAC;QAC7D,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAClC,MAAM,gBAAgB,GAAI,CAAC,CAAC,SAA8B,CAAC,IAAI,CAAC;YAChE,IAAI,gBAAgB,KAAK,aAAa;gBAAE,OAAO,KAAK,CAAC;YACrD,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,SAAkB,EAAE,GAAmB;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,uFAAuF;QACvF,MAAM,QAAQ,GAAG,GAAI,SAA8B,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1G,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,CAAC,mDAAmD;QAE5F,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CAAC,SAAkB,EAAE,GAAmB;QAC/D,IAAI,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QACtD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,qEAAqE;YACrE,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,eAAe;oBACrC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9C,CAAC;YAED,sEAAsE;YACtE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe,CAAC,CAAC;YAEpE,4JAA4J;YAC5J,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,2BAA2B,CAAC,SAAkB,EAAE,GAAmB;QACtE,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;YAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBAClC,MAAM,gBAAgB,GAAI,CAAC,CAAC,SAA+B,EAAE,IAAI,CAAC;gBAClE,OAAO,gBAAgB,KAAK,aAAa;oBAClC,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;YAChH,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"ClassFactory.js","sourceRoot":"","sources":["../src/ClassFactory.ts"],"names":[],"mappings":"AAAA;;;;;;wGAMwG;AAExG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAe,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kCAAkC,EAAE,MAAM,+BAA+B,CAAC;AAOnF;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QAOI,QAAG,GAAkB,IAAI,CAAC,CAAC,gMAAgM;QAC/M,uGAAuG;QACnH,aAAQ,GAAW,CAAC,CAAC,CAAC,kMAAkM;IAW5N,CAAC;CAAA;AAmCD;;;;;;GAMG;AACH,4FAA4F;AAC5F,4FAA4F;AAC5F,4FAA4F;AAC5F,0CAA0C;AAE1C;;;GAGG;AACH,MAAM,OAAO,YAAY;IAAzB;QACY,mBAAc,GAAwB,EAAE,CAAC;QACjD,0EAA0E;QAClE,iBAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC9D,qFAAqF;QAC7E,kBAAa,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC/D,sEAAsE;QAC9D,iBAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;QACtD,6BAAwB,GAA+B,IAAI,CAAC;QAC5D,gCAA2B,GAAW,CAAC,CAAC;QAEhD,4FAA4F;QACpF,yBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAIzD;;;;;;;;WAQG;QACK,uBAAkB,GAA0C,IAAI,GAAG,EAAE,CAAC;QAE9E;;;;;;;;WAQG;QACK,iBAAY,GAAiE,EAAE,CAAC;QAExF;;;WAGG;QACK,gCAA2B,GAAgB,IAAI,GAAG,EAAE,CAAC;IA2kBjE,CAAC;IAxmBG,mFAAmF;aAC3D,kCAA6B,GAAG,CAAC,AAAJ,CAAK;IA8B1D;;;;;;;OAOG;IACI,kBAAkB,CAAC,MAAgE;QACtF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,WAAW,CAAC,SAAkB,EAAE,GAAW;QACrD,MAAM,aAAa,GAAI,SAAwB,CAAC,IAAI,CAAC;QACrD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAChD,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,oBAAoB,CAAC,SAAkB,EAAE,GAAmB;QACrE,IAAI,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE,CAAC;gBACT,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,mBAAmB,CAAI,SAAkB,EAAE,MAAqB,IAAI,EAAE,GAAG,MAAiB;QACnG,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,sBAAsB,CAAI,SAAkB,EAAE,MAAqB,IAAI,EAAE,GAAG,MAAiB;QACtG,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;QACpG,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;OAQG;IACI,QAAQ,CAAC,SAAkB,EAAE,QAAiB,EAAE,MAAqB,IAAI,EAAE,WAAmB,CAAC,EAAE,qBAA8B,KAAK,EAAE,4BAAqC,KAAK,EAAE,QAAkC;QACvN,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,aAAa,GAAI,SAAwB,CAAC,IAAI,CAAC;YACrD,MAAM,YAAY,GAAI,QAAuB,CAAC,IAAI,CAAC;YAEnD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC,iEAAiE,aAAa,0JAA0J,CAAC,CAAA;YAC1P,CAAC;YAED,2CAA2C;YAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAI,SAAwB,CAAC,IAAI,CAAC;YAErD,qDAAqD;YACrD,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7E,MAAM,sBAAsB,GAAI,kBAAiC,CAAC,IAAI,CAAC;YAEvE,gDAAgD;YAChD,IAAI,yBAAyB,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,2CAA2C,YAAY,oBAAoB,aAAa,eAAe,aAAa,EAAE,CAAC,CAAC;YACzI,CAAC;YAED,6EAA6E;YAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;YAExE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACf,yJAAyJ;gBACzJ,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;gBACpE,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC,gDAAgD,YAAY,mBAAmB,sBAAsB,qBAAqB,GAAG,IAAI,QAAQ,KAAK,QAAQ,CAAC,MAAM,0OAA0O,CAAC,CAAC;gBAC1Z,CAAC;YACL,CAAC;iBACI,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACrE,mJAAmJ;gBACnJ,oHAAoH;gBACpH,IAAI,eAAe,GAAG,CAAC,CAAC;gBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,eAAe;wBAC3C,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACpD,CAAC;gBAED,qFAAqF;gBACrF,oFAAoF;gBACpF,wFAAwF;gBACxF,4EAA4E;gBAC5E,qFAAqF;gBACrF,qFAAqF;gBACrF,oFAAoF;gBACpF,oFAAoF;gBACpF,2DAA2D;gBAC3D,IAAI,CAAC,4BAA4B,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,CAAC,CAAC;gBAEtG,wEAAwE;gBACxE,QAAQ,GAAG,eAAe,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,wEAAwE;YACxE,IAAI,GAAG,GAAG,IAAI,iBAAiB,EAAE,CAAC;YAClC,GAAG,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACnC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACxB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC;YAC1B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;YACd,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACxB,IAAI,QAAQ,KAAK,SAAS;gBAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAEpD,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,cAAc,CAAC;YACpD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAE9D,0EAA0E;YAC1E,2DAA2D;YAC3D,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAChC,+EAA+E;YAC/E,4DAA4D;YAC5D,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QAC7C,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,aAAa;QACjB,IAAI,IAAI,CAAC,wBAAwB,KAAK,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,2BAA2B,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC3H,OAAO;QACX,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,cAAc,CAAC;QACpD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IAClE,CAAC;IAEO,iBAAiB,CAAC,GAAsB;QAC5C,MAAM,sBAAsB,GAAI,GAAG,CAAC,SAAoC,EAAE,IAAI,CAAC;QAC/E,IAAI,sBAAsB,EAAE,CAAC;YACzB,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YAC/D,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,UAAU,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAErB,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,GAAG,sBAAsB,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC5E,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,SAAS,GAAG,EAAE,CAAC;oBACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC/C,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACL,CAAC;QAED,MAAM,aAAa,GAAI,GAAG,CAAC,SAAoC,EAAE,IAAI,CAAC;QACtE,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,UAAU,GAAG,EAAE,CAAC;gBAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACrD,CAAC;YACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACK,4BAA4B,CAChC,aAAkC,EAClC,QAAiB,EACjB,YAAoB,EACpB,sBAA8B,EAC9B,GAAkB;QAElB,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QACD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,CAAC,QAAuB,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CACR,8BAA8B,YAAY,kCAAkC,sBAAsB,GAAG;YACrG,aAAa,GAAG,0DAA0D,KAAK,yBAAyB;YACxG,oFAAoF,YAAY,QAAQ;YACxG,2CAA2C,KAAK,yDAAyD;YACzG,gGAAgG,CACnG,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,cAAc,CAAI,SAAkB,EAAE,MAAqB,IAAI,EAAE,GAAG,MAAiB;QACxF,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3G,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,EAAE,CAAC;YAC5D,+FAA+F;YAC/F,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,iBAAiB,CAAI,SAAkB,EAAE,MAAqB,IAAI,EAAE,GAAG,MAAiB;QAC3F,OAAO,IAAI,CAAC,qBAAqB,CAAI,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IACvG,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CACzB,SAAkB,EAClB,GAA6B,EAC7B,GAAkB,EAClB,MAAiB;QAEjB,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAC;QACpG,CAAC;QAED,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,mBAAmB,GAAG,GAAG,CAAC,QAAyC,CAAC;YAC1E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,mBAAmB,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAC5E,CAAC;QAED,qFAAqF;QACrF,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAC1D,sDAAsD;QACtD,EAAE;QACF,4FAA4F;QAC5F,6FAA6F;QAC7F,wFAAwF;QACxF,qFAAqF;QACrF,4FAA4F;QAC5F,oFAAoF;QACpF,kFAAkF;QAClF,6FAA6F;QAC7F,4FAA4F;QAC5F,IAAI,eAAmC,CAAC;QACxC,MAAM,MAAM,GAAG,GAAW,EAAE,CACxB,CAAC,eAAe,KAAK,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC,CAAC;QAE3F,qEAAqE;QACrE,EAAE;QACF,yFAAyF;QACzF,wFAAwF;QACxF,gFAAgF;QAChF,sFAAsF;QACtF,yDAAyD;QACzD,EAAE;QACF,mFAAmF;QACnF,4CAA4C;QAC5C,MAAM,cAAc,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1F,0FAA0F;QAC1F,wFAAwF;QACxF,2FAA2F;QAC3F,wFAAwF;QACxF,yFAAyF;QACzF,0BAA0B;QAC1B,MAAM,kBAAkB,GAAG,CAAC,gBAAgB,IAAI,kCAAkC,CAAC,SAAS,CAAC,CAAC;QAC9F,IAAI,CAAC,cAAc,IAAI,CAAC,kBAAkB,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAC9D,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QAC3E,CAAC;QAGD,IAAI,gBAAgB,EAAE,CAAC;YACnB,gFAAgF;YAChF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;QACjE,CAAC;QAED,qFAAqF;QACrF,mEAAmE;QACnE,EAAE;QACF,4FAA4F;QAC5F,qFAAqF;QACrF,uFAAuF;QACvF,iCAAiC;QACjC,MAAM,oBAAoB,GAAG,SAA0C,CAAC;QACxE,OAAO;YACH,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI,oBAAoB,CAAC,GAAG,MAAM,CAAC;YAC7C,IAAI,MAAM;gBACN,OAAO,MAAM,EAAE,CAAC;YACpB,CAAC;SACJ,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,yBAAyB,CAAC,SAAkB,EAAE,GAAkB,EAAE,gBAAyB;QAC/F,MAAM,aAAa,GAAI,SAAwB,CAAC,IAAI,CAAC;QACrD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACf,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEhG,OAAO,CACH,uDAAuD,aAAa,eAAe,GAAG,IAAI,QAAQ,KAAK;YACvG,wBAAwB,aAAa,MAAM,SAAS,IAAI;YACxD,oBAAoB,gBAAgB,IAAI;YACxC,CAAC,gBAAgB;gBACb,CAAC,CAAC,IAAI,aAAa,0EAA0E;oBAC3F,6FAA6F;oBAC7F,mGAAmG;gBACrG,CAAC,CAAC,mCAAmC,aAAa,qDAAqD;oBACrG,+EAA+E,CAAC,CACzF,CAAC;IACN,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,SAAkB,EAAE,GAAkB,EAAE,gBAAyB,EAAE,MAAoB;QACnH,iDAAiD;QACjD,EAAE;QACF,yFAAyF;QACzF,oFAAoF;QACpF,kFAAkF;QAClF,yFAAyF;QACzF,yFAAyF;QACzF,mCAAmC;QACnC,EAAE;QACF,yFAAyF;QACzF,2FAA2F;QAC3F,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAI,SAAwB,CAAC,IAAI,CAAC;YAChD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,IAAI,KAAK,YAAY,CAAC,6BAA6B,GAAG,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,0BAA0B,QAAQ,mCAAmC,YAAY,CAAC,6BAA6B,4FAA4F,CAAC,CAAC;gBAC1N,OAAO;YACX,CAAC;YACD,IAAI,IAAI,GAAG,YAAY,CAAC,6BAA6B,EAAE,CAAC;gBACpD,OAAO;YACX,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,GAAI,SAAwB,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAClG,IAAI,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QACzD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE7C,uFAAuF;QACvF,+CAA+C;QAC/C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,IAAI,qBAAqB,CAAC;QACzD,MAAM,OAAO,GAAG,GAAG,MAAM,EAAE,iBAAiB,KAAK,EAAE,CAAC;QACpD,IAAI,gBAAgB;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;;YACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CAAC,SAAkB,EAAE,GAAmB;QAC9D,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,CAAC;QACD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,IAAI,aAAa,EAAE,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACI,8BAA8B,CAAC,SAAkB,EAAE,SAAiB;QACvE,IAAI,CAAC,SAAS,IAAI,SAAS,IAAI,IAAI;YAAE,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED;;;;OAIG;IACI,+BAA+B,CAAC,SAAkB,EAAE,OAAe;QACtE,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;OAQG;IACI,6BAA6B,CAChC,SAAkB,EAClB,SAAsG;QAEtG,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,UAAU;YAAE,OAAO,EAAE,CAAC;QAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,eAAe,CAAC,SAAkB,EAAE,GAAmB;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,uFAAuF;QACvF,MAAM,QAAQ,GAAG,GAAI,SAA8B,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAC1G,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,CAAC,mDAAmD;QAE5F,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,mBAAmB,CAAC,SAAkB,EAAE,GAAmB;QAC/D,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,MAAM,OAAO,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAC7C,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE7E,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,IAAI,eAAe,GAAG,CAAC,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,eAAe,EAAE,CAAC;oBACxC,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC1C,CAAC;YACL,CAAC;YAED,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,eAAe,EAAE,CAAC;oBAC1C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;gBACtB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,2BAA2B,CAAC,SAAkB,EAAE,GAAmB;QACtE,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,aAAa,GAAI,SAA8B,CAAC,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;QACd,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,CAAC;IAC7E,CAAC"}
|
package/dist/DeepDiff.d.ts
CHANGED
|
@@ -183,6 +183,8 @@ export declare class DeepDiffer {
|
|
|
183
183
|
UpdateConfig(config: Partial<DeepDiffConfig>): void;
|
|
184
184
|
/** @deprecated Use {@link UpdateConfig}. */
|
|
185
185
|
updateConfig(config: Partial<DeepDiffConfig>): void;
|
|
186
|
+
private isEffectivelyUndefined;
|
|
187
|
+
private areEffectivelyEqual;
|
|
186
188
|
/**
|
|
187
189
|
* Recursively generate diff between two values
|
|
188
190
|
* @private
|
package/dist/DeepDiff.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepDiff.d.ts","sourceRoot":"","sources":["../src/DeepDiff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAIH;;GAEG;AACH,oBAAY,cAAc;IACtB,wCAAwC;IACxC,KAAK,UAAU;IACf,gDAAgD;IAChD,OAAO,YAAY;IACnB,yDAAyD;IACzD,QAAQ,aAAa;IACrB,uEAAuE;IACvE,SAAS,cAAc;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,oDAAoD;IACpD,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,oCAAoC;IACpC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,wCAAwC;IACxC,OAAO,EAAE;QACL,kDAAkD;QAClD,KAAK,EAAE,MAAM,CAAC;QACd,oDAAoD;QACpD,OAAO,EAAE,MAAM,CAAC;QAChB,qDAAqD;QACrD,QAAQ,EAAE,MAAM,CAAC;QACjB,uEAAuE;QACvE,SAAS,EAAE,MAAM,CAAC;QAClB,qCAAqC;QACrC,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzD;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;OAGG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAW5C;;;;;;;;;;;;;;;OAeG;IACI,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,cAAc;IAkC9D,oCAAoC;IAC7B,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,cAAc;IAI9D;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAI1D,4CAA4C;IACrC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAI1D;;;OAGG;IACH,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"DeepDiff.d.ts","sourceRoot":"","sources":["../src/DeepDiff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAIH;;GAEG;AACH,oBAAY,cAAc;IACtB,wCAAwC;IACxC,KAAK,UAAU;IACf,gDAAgD;IAChD,OAAO,YAAY;IACnB,yDAAyD;IACzD,QAAQ,aAAa;IACrB,uEAAuE;IACvE,SAAS,cAAc;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,oDAAoD;IACpD,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,oCAAoC;IACpC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,wCAAwC;IACxC,OAAO,EAAE;QACL,kDAAkD;QAClD,KAAK,EAAE,MAAM,CAAC;QACd,oDAAoD;QACpD,OAAO,EAAE,MAAM,CAAC;QAChB,qDAAqD;QACrD,QAAQ,EAAE,MAAM,CAAC;QACjB,uEAAuE;QACvE,SAAS,EAAE,MAAM,CAAC;QAClB,qCAAqC;QACrC,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;;;OAIG;IACH,gBAAgB,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzD;AAED;;;;;GAKG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAiB;IAE/B;;;OAGG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAW5C;;;;;;;;;;;;;;;OAeG;IACI,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,cAAc;IAkC9D,oCAAoC;IAC7B,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,cAAc;IAI9D;;;OAGG;IACI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAI1D,4CAA4C;IACrC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAI1D,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,mBAAmB;IAQ3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAqDpB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAgDlB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAsCnB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAUrB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;;OAGG;IACH,OAAO,CAAC,UAAU;CAsCrB"}
|
package/dist/DeepDiff.js
CHANGED
|
@@ -138,6 +138,17 @@ export class DeepDiffer {
|
|
|
138
138
|
updateConfig(config) {
|
|
139
139
|
return this.UpdateConfig(config);
|
|
140
140
|
}
|
|
141
|
+
isEffectivelyUndefined(value) {
|
|
142
|
+
return value === undefined || (this.config.treatNullAsUndefined && value === null);
|
|
143
|
+
}
|
|
144
|
+
areEffectivelyEqual(val1, val2) {
|
|
145
|
+
if (val1 === val2)
|
|
146
|
+
return true;
|
|
147
|
+
if (this.config.treatNullAsUndefined && this.isEffectivelyUndefined(val1) && this.isEffectivelyUndefined(val2)) {
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
141
152
|
/**
|
|
142
153
|
* Recursively generate diff between two values
|
|
143
154
|
* @private
|
|
@@ -147,25 +158,11 @@ export class DeepDiffer {
|
|
|
147
158
|
if (depth > this.config.maxDepth) {
|
|
148
159
|
return;
|
|
149
160
|
}
|
|
150
|
-
const pathStr = path.join('.');
|
|
151
|
-
// Helper to check if a value is effectively undefined (includes null if treatNullAsUndefined is true)
|
|
152
|
-
const isEffectivelyUndefined = (value) => {
|
|
153
|
-
return value === undefined || (this.config.treatNullAsUndefined && value === null);
|
|
154
|
-
};
|
|
155
|
-
// Helper to check if values are effectively equal
|
|
156
|
-
const areEffectivelyEqual = (val1, val2) => {
|
|
157
|
-
if (val1 === val2)
|
|
158
|
-
return true;
|
|
159
|
-
if (this.config.treatNullAsUndefined && isEffectivelyUndefined(val1) && isEffectivelyUndefined(val2)) {
|
|
160
|
-
return true;
|
|
161
|
-
}
|
|
162
|
-
return false;
|
|
163
|
-
};
|
|
164
161
|
// Handle different cases
|
|
165
|
-
if (areEffectivelyEqual(oldValue, newValue)) {
|
|
162
|
+
if (this.areEffectivelyEqual(oldValue, newValue)) {
|
|
166
163
|
if (this.config.includeUnchanged) {
|
|
167
164
|
changes.push({
|
|
168
|
-
path:
|
|
165
|
+
path: path.join('.') || 'root',
|
|
169
166
|
type: DiffChangeType.Unchanged,
|
|
170
167
|
oldValue,
|
|
171
168
|
newValue,
|
|
@@ -173,17 +170,17 @@ export class DeepDiffer {
|
|
|
173
170
|
});
|
|
174
171
|
}
|
|
175
172
|
}
|
|
176
|
-
else if (isEffectivelyUndefined(oldValue) && !isEffectivelyUndefined(newValue)) {
|
|
173
|
+
else if (this.isEffectivelyUndefined(oldValue) && !this.isEffectivelyUndefined(newValue)) {
|
|
177
174
|
changes.push({
|
|
178
|
-
path:
|
|
175
|
+
path: path.join('.') || 'root',
|
|
179
176
|
type: DiffChangeType.Added,
|
|
180
177
|
newValue,
|
|
181
178
|
description: this.describeValue(newValue, 'Added')
|
|
182
179
|
});
|
|
183
180
|
}
|
|
184
|
-
else if (!isEffectivelyUndefined(oldValue) && isEffectivelyUndefined(newValue)) {
|
|
181
|
+
else if (!this.isEffectivelyUndefined(oldValue) && this.isEffectivelyUndefined(newValue)) {
|
|
185
182
|
changes.push({
|
|
186
|
-
path:
|
|
183
|
+
path: path.join('.') || 'root',
|
|
187
184
|
type: DiffChangeType.Removed,
|
|
188
185
|
oldValue,
|
|
189
186
|
description: this.describeValue(oldValue, 'Removed')
|
|
@@ -198,7 +195,7 @@ export class DeepDiffer {
|
|
|
198
195
|
else {
|
|
199
196
|
// Values are different types or primitives
|
|
200
197
|
changes.push({
|
|
201
|
-
path:
|
|
198
|
+
path: path.join('.') || 'root',
|
|
202
199
|
type: DiffChangeType.Modified,
|
|
203
200
|
oldValue,
|
|
204
201
|
newValue,
|
|
@@ -211,11 +208,10 @@ export class DeepDiffer {
|
|
|
211
208
|
* @private
|
|
212
209
|
*/
|
|
213
210
|
diffArrays(oldArray, newArray, path, changes, depth) {
|
|
214
|
-
const pathStr = path.join('.');
|
|
215
211
|
// Check if array lengths are different
|
|
216
212
|
if (oldArray.length !== newArray.length) {
|
|
217
213
|
changes.push({
|
|
218
|
-
path:
|
|
214
|
+
path: path.join('.') || 'root',
|
|
219
215
|
type: DiffChangeType.Modified,
|
|
220
216
|
oldValue: `Array[${oldArray.length}]`,
|
|
221
217
|
newValue: `Array[${newArray.length}]`,
|
|
@@ -224,18 +220,17 @@ export class DeepDiffer {
|
|
|
224
220
|
}
|
|
225
221
|
// Compare array elements
|
|
226
222
|
const maxLength = Math.max(oldArray.length, newArray.length);
|
|
223
|
+
const includeIndices = this.config.includeArrayIndices;
|
|
227
224
|
for (let i = 0; i < maxLength; i++) {
|
|
228
|
-
|
|
229
|
-
? [...path, `[${i}]`]
|
|
230
|
-
: [...path, `[]`];
|
|
225
|
+
path.push(includeIndices ? `[${i}]` : `[]`);
|
|
231
226
|
if (i < oldArray.length && i < newArray.length) {
|
|
232
227
|
// Element exists in both arrays
|
|
233
|
-
this.generateDiff(oldArray[i], newArray[i],
|
|
228
|
+
this.generateDiff(oldArray[i], newArray[i], path, changes, depth + 1);
|
|
234
229
|
}
|
|
235
230
|
else if (i < oldArray.length) {
|
|
236
231
|
// Element was removed
|
|
237
232
|
changes.push({
|
|
238
|
-
path:
|
|
233
|
+
path: path.join('.'),
|
|
239
234
|
type: DiffChangeType.Removed,
|
|
240
235
|
oldValue: oldArray[i],
|
|
241
236
|
description: this.describeValue(oldArray[i], 'Removed')
|
|
@@ -244,12 +239,13 @@ export class DeepDiffer {
|
|
|
244
239
|
else {
|
|
245
240
|
// Element was added
|
|
246
241
|
changes.push({
|
|
247
|
-
path:
|
|
242
|
+
path: path.join('.'),
|
|
248
243
|
type: DiffChangeType.Added,
|
|
249
244
|
newValue: newArray[i],
|
|
250
245
|
description: this.describeValue(newArray[i], 'Added')
|
|
251
246
|
});
|
|
252
247
|
}
|
|
248
|
+
path.pop();
|
|
253
249
|
}
|
|
254
250
|
}
|
|
255
251
|
/**
|
|
@@ -257,15 +253,21 @@ export class DeepDiffer {
|
|
|
257
253
|
* @private
|
|
258
254
|
*/
|
|
259
255
|
diffObjects(oldObj, newObj, path, changes, depth) {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
256
|
+
const oldKeys = Object.keys(oldObj);
|
|
257
|
+
for (let i = 0; i < oldKeys.length; i++) {
|
|
258
|
+
const key = oldKeys[i];
|
|
259
|
+
path.push(key);
|
|
260
|
+
this.generateDiff(oldObj[key], newObj[key], path, changes, depth + 1);
|
|
261
|
+
path.pop();
|
|
262
|
+
}
|
|
263
|
+
const newKeys = Object.keys(newObj);
|
|
264
|
+
for (let i = 0; i < newKeys.length; i++) {
|
|
265
|
+
const key = newKeys[i];
|
|
266
|
+
if (!Object.prototype.hasOwnProperty.call(oldObj, key)) {
|
|
267
|
+
path.push(key);
|
|
268
|
+
this.generateDiff(undefined, newObj[key], path, changes, depth + 1);
|
|
269
|
+
path.pop();
|
|
270
|
+
}
|
|
269
271
|
}
|
|
270
272
|
}
|
|
271
273
|
/**
|
package/dist/DeepDiff.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeepDiff.js","sourceRoot":"","sources":["../src/DeepDiff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB;;GAEG;AACH,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACtB,wCAAwC;IACxC,iCAAe,CAAA;IACf,gDAAgD;IAChD,qCAAmB,CAAA;IACnB,yDAAyD;IACzD,uCAAqB,CAAA;IACrB,uEAAuE;IACvE,yCAAuB,CAAA;AAC3B,CAAC,EATW,cAAc,KAAd,cAAc,QASzB;AA4FD;;;;;GAKG;AACH,MAAM,OAAO,UAAU;IAGnB;;;OAGG;IACH,YAAY,MAAgC;QACxC,IAAI,CAAC,MAAM,GAAG;YACV,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,GAAG;YACpB,mBAAmB,EAAE,IAAI;YACzB,oBAAoB,EAAE,KAAK;YAC3B,GAAG,MAAM;SACZ,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,IAAI,CAAU,QAAW,EAAE,QAAW;QACzC,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,gCAAgC;QAChC,IAAI,CAAC,YAAY,CACb,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,OAAO,EACP,CAAC,CACJ,CAAC;QAEF,uCAAuC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAErD,mBAAmB;QACnB,MAAM,OAAO,GAAG;YACZ,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM;YAClE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM;YACtE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM;YACxE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM;YAC1E,UAAU,EAAE,OAAO,CAAC,MAAM;SAC7B,CAAC;QAEF,4BAA4B;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEpD,OAAO;YACH,OAAO;YACP,OAAO;YACP,SAAS;SACZ,CAAC;IACN,CAAC;IAED,oCAAoC;IAC7B,IAAI,CAAU,QAAW,EAAE,QAAW;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,MAA+B;QAC/C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAChD,CAAC;IAED,4CAA4C;IACrC,YAAY,CAAC,MAA+B;QAC/C,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"DeepDiff.js","sourceRoot":"","sources":["../src/DeepDiff.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,18 +49,35 @@ export declare class KeyedSerialTaskQueue {
|
|
|
49
49
|
* @param opts.after Optional dependency key — the task waits for this key's latest task to settle
|
|
50
50
|
* before running, in addition to waiting for its own key's prior tasks. Use this to honour
|
|
51
51
|
* cross-instance ordering constraints like self-referencing foreign keys (e.g. a child step's
|
|
52
|
-
* INSERT must land after its parent step's INSERT).
|
|
52
|
+
* INSERT must land after its parent step's INSERT). This is the in-queue form of the wait; when the
|
|
53
|
+
* dependent write lives in a *different* queue, use {@link Settled} instead.
|
|
54
|
+
* @param opts.ready Optional promise the task also waits for. Use it when the task depends on work
|
|
55
|
+
* outside this queue — typically another queue's {@link Settled}, so a child row waits for a parent
|
|
56
|
+
* row that a different queue is writing. The task is queued (and counted by {@link Flush}) at once;
|
|
57
|
+
* only its start is held back, so the caller never waits. A rejected `ready` still runs the task,
|
|
58
|
+
* the same as a failed prior task: the task's own outcome is what gets tallied.
|
|
53
59
|
*/
|
|
54
60
|
Enqueue<T>(key: object, task: () => Promise<T>, opts?: {
|
|
55
61
|
label?: string;
|
|
56
62
|
isOk?: (v: T) => boolean;
|
|
57
63
|
after?: object;
|
|
64
|
+
ready?: Promise<void>;
|
|
58
65
|
}): Promise<T | undefined>;
|
|
66
|
+
/**
|
|
67
|
+
* Resolves once every task enqueued so far for `key` has settled — at once when the key has no
|
|
68
|
+
* pending task. The cross-queue form of `Enqueue`'s `after` option: `after` can only see keys in this
|
|
69
|
+
* instance, so a caller that must order a write in another queue behind this key awaits this instead.
|
|
70
|
+
*
|
|
71
|
+
* A pure read: it never rejects (a failed task is already tallied and routed to `onError`), and it
|
|
72
|
+
* neither enqueues anything nor delays later tasks. Tasks enqueued after the call are not awaited.
|
|
73
|
+
*/
|
|
74
|
+
Settled(key: object): Promise<void>;
|
|
59
75
|
/** @deprecated Use {@link Enqueue}. */
|
|
60
76
|
enqueue<T>(key: object, task: () => Promise<T>, opts?: {
|
|
61
77
|
label?: string;
|
|
62
78
|
isOk?: (v: T) => boolean;
|
|
63
79
|
after?: object;
|
|
80
|
+
ready?: Promise<void>;
|
|
64
81
|
}): Promise<T | undefined>;
|
|
65
82
|
/**
|
|
66
83
|
* Awaits the currently in-flight tasks, then reports and resets the failure tally accumulated since
|