@nymphjs/nymph 1.0.0-beta.2 → 1.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/Nymph.d.ts +1 -1
- package/dist/Nymph.js +2 -2
- package/dist/Nymph.js.map +1 -1
- package/dist/Nymph.types.d.ts +1 -1
- package/dist/Nymph.types.js.map +1 -1
- package/dist/driver/NymphDriver.d.ts +7 -4
- package/dist/driver/NymphDriver.js +81 -64
- package/dist/driver/NymphDriver.js.map +1 -1
- package/package.json +3 -3
- package/src/Nymph.ts +2 -5
- package/src/Nymph.types.ts +12 -2
- package/src/driver/NymphDriver.ts +100 -74
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.0.0-beta.3](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.2...v1.0.0-beta.3) (2022-11-21)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- don't run query callbacks asynchronously ([02ab89d](https://github.com/sciactive/nymphjs/commit/02ab89d174d6dd366e417d070672587937b4d4b3))
|
|
11
|
+
|
|
6
12
|
# [1.0.0-beta.2](https://github.com/sciactive/nymphjs/compare/v1.0.0-beta.1...v1.0.0-beta.2) (2022-11-21)
|
|
7
13
|
|
|
8
14
|
### Features
|
package/dist/Nymph.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export default class Nymph {
|
|
|
34
34
|
clone(): Nymph;
|
|
35
35
|
connect(): Promise<boolean>;
|
|
36
36
|
disconnect(): Promise<boolean>;
|
|
37
|
-
runQueryCallbacks(options: Options, selectors: FormattedSelector[]):
|
|
37
|
+
runQueryCallbacks(options: Options, selectors: FormattedSelector[]): void;
|
|
38
38
|
startTransaction(name: string): Promise<Nymph>;
|
|
39
39
|
commit(name: string): Promise<boolean>;
|
|
40
40
|
rollback(name: string): Promise<boolean>;
|
package/dist/Nymph.js
CHANGED
|
@@ -116,10 +116,10 @@ class Nymph {
|
|
|
116
116
|
}
|
|
117
117
|
return await result;
|
|
118
118
|
}
|
|
119
|
-
|
|
119
|
+
runQueryCallbacks(options, selectors) {
|
|
120
120
|
for (let callback of this.queryCallbacks) {
|
|
121
121
|
if (callback) {
|
|
122
|
-
|
|
122
|
+
callback(this, options, selectors);
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
}
|
package/dist/Nymph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Nymph.js","sourceRoot":"","sources":["../src/Nymph.ts"],"names":[],"mappings":"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"}
|
package/dist/Nymph.types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import Nymph from './Nymph';
|
|
|
3
3
|
export type NymphEventType = 'connect' | 'disconnect' | 'query' | 'beforeGetEntity' | 'beforeGetEntities' | 'beforeSaveEntity' | 'afterSaveEntity' | 'beforeDeleteEntity' | 'afterDeleteEntity' | 'beforeDeleteEntityByID' | 'afterDeleteEntityByID' | 'beforeNewUID' | 'afterNewUID' | 'beforeSetUID' | 'afterSetUID' | 'beforeRenameUID' | 'afterRenameUID' | 'beforeDeleteUID' | 'afterDeleteUID';
|
|
4
4
|
export type NymphConnectCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
|
|
5
5
|
export type NymphDisconnectCallback = (nymph: Nymph, result: Promise<boolean>) => Promise<void>;
|
|
6
|
-
export type NymphQueryCallback = (nymph: Nymph, options: Options, selectors: FormattedSelector[]) =>
|
|
6
|
+
export type NymphQueryCallback = (nymph: Nymph, options: Options, selectors: FormattedSelector[]) => void;
|
|
7
7
|
export type NymphBeforeGetEntityCallback = (nymph: Nymph, options: Options, selectors: Selector[]) => Promise<void>;
|
|
8
8
|
export type NymphBeforeGetEntitiesCallback = (nymph: Nymph, options: Options, selectors: Selector[]) => Promise<void>;
|
|
9
9
|
export type NymphBeforeSaveEntityCallback = (nymph: Nymph, entity: EntityInterface) => Promise<void>;
|
package/dist/Nymph.types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Nymph.types.js","sourceRoot":"","sources":["../src/Nymph.types.ts"],"names":[],"mappings":";;;AAwSA,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,uEAAa,CAAA;IACb,2EAAe,CAAA;IACf,6EAAgB,CAAA;IAEhB,2EAAe,CAAA;AACjB,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B"}
|
|
@@ -58,7 +58,10 @@ export default abstract class NymphDriver {
|
|
|
58
58
|
protected cleanCache(guid: string): void;
|
|
59
59
|
deleteEntity(entity: EntityInterface): Promise<boolean>;
|
|
60
60
|
protected entityReferenceSearch(value: any, entity: EntityInterface | EntityReference | string | (EntityInterface | EntityReference | string)[]): boolean;
|
|
61
|
-
formatSelectors(selectors: Selector[], options?: Options):
|
|
61
|
+
formatSelectors(selectors: Selector[], options?: Options): {
|
|
62
|
+
selectors: FormattedSelector[];
|
|
63
|
+
qrefs: [Options, ...FormattedSelector[]][];
|
|
64
|
+
};
|
|
62
65
|
protected iterateSelectorsForQuery(selectors: FormattedSelector[], callback: (key: string, value: any, typeIsOr: boolean, typeIsNot: boolean) => string): string[];
|
|
63
66
|
getEntitySync<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
|
|
64
67
|
return: 'count';
|
|
@@ -87,7 +90,7 @@ export default abstract class NymphDriver {
|
|
|
87
90
|
svalue: string;
|
|
88
91
|
}): {
|
|
89
92
|
result: any;
|
|
90
|
-
process: () => number;
|
|
93
|
+
process: () => number | Error;
|
|
91
94
|
};
|
|
92
95
|
protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
|
|
93
96
|
return: 'guid';
|
|
@@ -102,7 +105,7 @@ export default abstract class NymphDriver {
|
|
|
102
105
|
svalue: string;
|
|
103
106
|
}): {
|
|
104
107
|
result: any;
|
|
105
|
-
process: () => string[];
|
|
108
|
+
process: () => string[] | Error;
|
|
106
109
|
};
|
|
107
110
|
protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(options: Options<T>, selectors: Selector[], performQueryCallback: (options: Options<T>, formattedSelectors: FormattedSelector[], etype: string) => {
|
|
108
111
|
result: any;
|
|
@@ -115,7 +118,7 @@ export default abstract class NymphDriver {
|
|
|
115
118
|
svalue: string;
|
|
116
119
|
}): {
|
|
117
120
|
result: any;
|
|
118
|
-
process: () => ReturnType<T['factorySync']>[];
|
|
121
|
+
process: () => ReturnType<T['factorySync']>[] | Error;
|
|
119
122
|
};
|
|
120
123
|
protected saveEntityRowLike(entity: EntityInterface, saveNewEntityCallback: (entity: EntityInterface, guid: string, tags: string[], data: EntityData, sdata: SerializedEntityData, cdate: number, etype: string) => Promise<boolean>, saveExistingEntityCallback: (entity: EntityInterface, guid: string, tags: string[], data: EntityData, sdata: SerializedEntityData, mdate: number, etype: string) => Promise<boolean>, startTransactionCallback?: (() => Promise<void>) | null, commitTransactionCallback?: ((success: boolean) => Promise<boolean>) | null): Promise<boolean>;
|
|
121
124
|
protected pullCache<T extends EntityInterface = EntityInterface>(guid: string, className: string, useSkipAc?: boolean): T | null;
|
|
@@ -144,7 +144,7 @@ class NymphDriver {
|
|
|
144
144
|
return true;
|
|
145
145
|
}
|
|
146
146
|
checkData(data, sdata, selectors, guid = null, tags = null) {
|
|
147
|
-
const formattedSelectors = this.formatSelectors(selectors);
|
|
147
|
+
const formattedSelectors = this.formatSelectors(selectors).selectors;
|
|
148
148
|
for (const curSelector of formattedSelectors) {
|
|
149
149
|
const type = curSelector.type;
|
|
150
150
|
const typeIsNot = type === '!&' || type === '!|';
|
|
@@ -334,6 +334,7 @@ class NymphDriver {
|
|
|
334
334
|
}
|
|
335
335
|
formatSelectors(selectors, options = {}) {
|
|
336
336
|
const newSelectors = [];
|
|
337
|
+
const qrefs = [];
|
|
337
338
|
for (const curSelector of selectors) {
|
|
338
339
|
const newSelector = {
|
|
339
340
|
type: curSelector.type,
|
|
@@ -364,14 +365,16 @@ class NymphDriver {
|
|
|
364
365
|
source: options.source,
|
|
365
366
|
};
|
|
366
367
|
const newSelectors = this.formatSelectors(qrefSelectors, options);
|
|
367
|
-
|
|
368
|
-
formatArr[i] = [name, [newOptions, ...newSelectors]];
|
|
368
|
+
qrefs.push([newOptions, ...newSelectors.selectors], ...newSelectors.qrefs);
|
|
369
|
+
formatArr[i] = [name, [newOptions, ...newSelectors.selectors]];
|
|
369
370
|
}
|
|
370
371
|
newSelector[key] = formatArr;
|
|
371
372
|
}
|
|
372
373
|
else if (key === 'selector' || key === '!selector') {
|
|
373
374
|
const tmpArr = (Array.isArray(value) ? value : [value]);
|
|
374
|
-
|
|
375
|
+
const newSelectors = this.formatSelectors(tmpArr, options);
|
|
376
|
+
newSelector[key] = newSelectors.selectors;
|
|
377
|
+
qrefs.push(...newSelectors.qrefs);
|
|
375
378
|
}
|
|
376
379
|
else if (!Array.isArray(value)) {
|
|
377
380
|
newSelector[key] = [[value]];
|
|
@@ -399,7 +402,7 @@ class NymphDriver {
|
|
|
399
402
|
}
|
|
400
403
|
newSelectors.push(newSelector);
|
|
401
404
|
}
|
|
402
|
-
return newSelectors;
|
|
405
|
+
return { selectors: newSelectors, qrefs };
|
|
403
406
|
}
|
|
404
407
|
iterateSelectorsForQuery(selectors, callback) {
|
|
405
408
|
const queryParts = [];
|
|
@@ -486,70 +489,84 @@ class NymphDriver {
|
|
|
486
489
|
}
|
|
487
490
|
}
|
|
488
491
|
}
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
entities.push(getGUIDCallback(row));
|
|
505
|
-
row = rowFetchCallback();
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
else {
|
|
509
|
-
while (row != null) {
|
|
510
|
-
const guid = getGUIDCallback(row);
|
|
511
|
-
const tagsAndDates = getTagsAndDatesCallback(row);
|
|
512
|
-
const tags = tagsAndDates.tags;
|
|
513
|
-
const cdate = tagsAndDates.cdate;
|
|
514
|
-
const mdate = tagsAndDates.mdate;
|
|
515
|
-
let dataNameAndSValue = getDataNameAndSValueCallback(row);
|
|
516
|
-
const data = {};
|
|
517
|
-
const sdata = {};
|
|
518
|
-
if (dataNameAndSValue.name !== '') {
|
|
519
|
-
do {
|
|
520
|
-
dataNameAndSValue = getDataNameAndSValueCallback(row);
|
|
521
|
-
sdata[dataNameAndSValue.name] = dataNameAndSValue.svalue;
|
|
522
|
-
row = rowFetchCallback();
|
|
523
|
-
} while (row != null && getGUIDCallback(row) === guid);
|
|
524
|
-
}
|
|
525
|
-
else {
|
|
492
|
+
try {
|
|
493
|
+
const formattedSelectors = this.formatSelectors(selectors, options);
|
|
494
|
+
this.nymph.runQueryCallbacks(options, formattedSelectors.selectors);
|
|
495
|
+
for (let qref of formattedSelectors.qrefs) {
|
|
496
|
+
const [options, ...selectors] = qref;
|
|
497
|
+
this.nymph.runQueryCallbacks(options, selectors);
|
|
498
|
+
}
|
|
499
|
+
const { result } = performQueryCallback(options, formattedSelectors.selectors, etype);
|
|
500
|
+
return {
|
|
501
|
+
result,
|
|
502
|
+
process: () => {
|
|
503
|
+
let row = rowFetchCallback();
|
|
504
|
+
if (options.return === 'count') {
|
|
505
|
+
while (row != null) {
|
|
506
|
+
count += getCountCallback(row);
|
|
526
507
|
row = rowFetchCallback();
|
|
527
508
|
}
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
entity.guid = guid;
|
|
534
|
-
entity.cdate = cdate;
|
|
535
|
-
entity.mdate = mdate;
|
|
536
|
-
entity.tags = tags;
|
|
537
|
-
this.putDataCounter++;
|
|
538
|
-
if (this.putDataCounter == 100) {
|
|
539
|
-
throw new Error('Infinite loop detected in Entity loading.');
|
|
509
|
+
}
|
|
510
|
+
else if (options.return === 'guid') {
|
|
511
|
+
while (row != null) {
|
|
512
|
+
entities.push(getGUIDCallback(row));
|
|
513
|
+
row = rowFetchCallback();
|
|
540
514
|
}
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
515
|
+
}
|
|
516
|
+
else {
|
|
517
|
+
while (row != null) {
|
|
518
|
+
const guid = getGUIDCallback(row);
|
|
519
|
+
const tagsAndDates = getTagsAndDatesCallback(row);
|
|
520
|
+
const tags = tagsAndDates.tags;
|
|
521
|
+
const cdate = tagsAndDates.cdate;
|
|
522
|
+
const mdate = tagsAndDates.mdate;
|
|
523
|
+
let dataNameAndSValue = getDataNameAndSValueCallback(row);
|
|
524
|
+
const data = {};
|
|
525
|
+
const sdata = {};
|
|
526
|
+
if (dataNameAndSValue.name !== '') {
|
|
527
|
+
do {
|
|
528
|
+
dataNameAndSValue = getDataNameAndSValueCallback(row);
|
|
529
|
+
sdata[dataNameAndSValue.name] = dataNameAndSValue.svalue;
|
|
530
|
+
row = rowFetchCallback();
|
|
531
|
+
} while (row != null && getGUIDCallback(row) === guid);
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
row = rowFetchCallback();
|
|
535
|
+
}
|
|
536
|
+
const entity = EntityClass.factorySync();
|
|
537
|
+
entity.$nymph = this.nymph;
|
|
538
|
+
if (options.skipAc != null) {
|
|
539
|
+
entity.$useSkipAc(!!options.skipAc);
|
|
540
|
+
}
|
|
541
|
+
entity.guid = guid;
|
|
542
|
+
entity.cdate = cdate;
|
|
543
|
+
entity.mdate = mdate;
|
|
544
|
+
entity.tags = tags;
|
|
545
|
+
this.putDataCounter++;
|
|
546
|
+
if (this.putDataCounter == 100) {
|
|
547
|
+
throw new Error('Infinite loop detected in Entity loading.');
|
|
548
|
+
}
|
|
549
|
+
entity.$putData(data, sdata);
|
|
550
|
+
this.putDataCounter--;
|
|
551
|
+
if (this.nymph.config.cache) {
|
|
552
|
+
this.pushCache(guid, cdate, mdate, tags, data, sdata);
|
|
553
|
+
}
|
|
554
|
+
entities.push(entity);
|
|
545
555
|
}
|
|
546
|
-
entities.push(entity);
|
|
547
556
|
}
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
}
|
|
552
|
-
}
|
|
557
|
+
freeResultCallback();
|
|
558
|
+
return options.return === 'count' ? count : entities;
|
|
559
|
+
},
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
catch (e) {
|
|
563
|
+
return {
|
|
564
|
+
result: Promise.resolve(e),
|
|
565
|
+
process: () => {
|
|
566
|
+
return e;
|
|
567
|
+
},
|
|
568
|
+
};
|
|
569
|
+
}
|
|
553
570
|
}
|
|
554
571
|
async saveEntityRowLike(entity, saveNewEntityCallback, saveExistingEntityCallback, startTransactionCallback = null, commitTransactionCallback = null) {
|
|
555
572
|
const mdate = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NymphDriver.js","sourceRoot":"","sources":["../../src/driver/NymphDriver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NymphDriver.js","sourceRoot":"","sources":["../../src/driver/NymphDriver.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,mCAAoC;AACpC,8DAAoC;AACpC,+EAAuD;AACvD,wCAAqC;AAUrC,sCAAyE;AAEzE,oCAA+B;AAG/B,SAAS,YAAY,CAAC,MAAc;IAClC,OAAO,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAKD,MAA8B,WAAW;IAAzC;QACY,UAAK,GAAU,IAAI,KAAK,CAAC,EAAW,EAAE;YAC9C,GAAG;gBACD,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAKO,gBAAW,GAQjB,EAAE,CAAC;QAIG,gBAAW,GAA4B,EAAE,CAAC;QAI5C,mBAAc,GAAG,CAAC,CAAC;IAooC7B,CAAC;IA5jCQ,IAAI,CAAC,KAAY;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAES,eAAe,CACvB,OAAe,EACf,OAAe,EACf,eAAe,GAAG,KAAK;QAEvB,MAAM,YAAY,GAAG;YAGnB,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,WAAW;YACX,UAAU;YACV,YAAY;SACb,CAAC;QACF,MAAM,SAAS,GAAG;YAGhB,aAAa;YACb,UAAU;YACV,aAAa;YACb,OAAO;YACP,iBAAiB;YAGjB,OAAO;YACP,aAAa;YACb,OAAO;YACP,aAAa;YACb,0CAA0C;YAC1C,eAAe;YACf,OAAO;YACP,cAAc;YACd,aAAa;SACd,CAAC;QAEF,IAAI,UAAU,GAAG,OAAO,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC5C,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACtE;QAED,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAE9D,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,QAAgB;QAClC,IAAI;YACF,MAAM,OAAO,GAAG,YAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,+BAAsB,CAAC,qCAAqC,CAAC,CAAC;aACzE;YACD,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,IAAY,EAAE,EAAE;gBACzC,YAAE,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACvB;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,WAAW;QACtB,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,IAAY,EAAE,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,cAAc,CAC5B,QAAgB,EAChB,kBAKkB,EAClB,eAA+D,EAC/D,2BAAyD,IAAI,EAC7D,4BAA0D,IAAI;QAE9D,IAAI,EAAa,CAAC;QAClB,IAAI;YACF,EAAE,GAAG,IAAI,qBAAS,CAAC,QAAQ,CAAC,CAAC;SAC9B;QAAC,OAAO,CAAM,EAAE;YACf,MAAM,IAAI,+BAAsB,CAAC,kCAAkC,CAAC,CAAC;SACtE;QACD,IAAI,IAAI,GAAkB,IAAI,CAAC;QAC/B,IAAI,IAAI,GAAmB,KAAK,CAAC;QACjC,IAAI,KAAK,GAAyB,EAAE,CAAC;QACrC,IAAI,IAAI,GAAa,EAAE,CAAC;QACxB,IAAI,KAAK,GAAG,aAAa,CAAC;QAC1B,IAAI,wBAAwB,EAAE;YAC5B,MAAM,wBAAwB,EAAE,CAAC;SAClC;QACD,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;gBACvB,SAAS;aACV;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,iDAAiD,CAClD,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC1D,IAAI,QAAQ,EAAE;gBAEZ,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzD;iBAAM,IAAI,WAAW,EAAE;gBAEtB,IAAI,IAAI,EAAE;oBACR,MAAM,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACnD,IAAI,GAAG,IAAI,CAAC;oBACZ,IAAI,GAAG,EAAE,CAAC;oBACV,KAAK,GAAG,EAAE,CAAC;oBACX,KAAK,GAAG,aAAa,CAAC;iBACvB;gBAED,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACtB,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAClC;iBAAM,IAAI,SAAS,EAAE;gBAEpB,IAAI,IAAI,EAAE;oBACR,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;iBACpC;aACF;YAED,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;SACvB;QAED,IAAI,IAAI,EAAE;YACR,MAAM,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACpD;QACD,IAAI,yBAAyB,EAAE;YAC7B,MAAM,yBAAyB,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,SAAS,CACd,IAAgB,EAChB,KAA2B,EAC3B,SAAqB,EACrB,OAAsB,IAAI,EAC1B,OAAwB,IAAI;QAE5B,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;QAErE,KAAK,MAAM,WAAW,IAAI,kBAAkB,EAAE;YAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC9B,MAAM,SAAS,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;YAC/C,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;gBAC3B,MAAM,GAAG,GAAG,CAAmB,CAAC;gBAChC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAE/B,IAAI,GAAG,KAAK,MAAM,IAAI,KAAK,IAAI,IAAI,EAAE;oBACnC,SAAS;iBACV;gBAED,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;gBAC3C,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,WAAW,EAAE;oBAC7C,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAe,CAAC;oBACtE,IAAI,GAAG,IAAA,WAAG,EACR,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAC/C,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;iBACH;qBAAM;oBACL,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE;wBACrC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;qBACzD;yBAAM;wBAGL,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;4BAC5B,IAAI,QAAQ,IAAI,IAAI,EAAE;gCACpB,SAAS;6BACV;4BAED,IACE,CAAC,CAAC,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC;gCACrD,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,EACnD;gCAEA,IAAI,GAAG,IAAI,CAAC;6BACb;iCAAM;gCACL,MAAM,QAAQ,GAAI,QAAqB,CAAC,CAAC,CAAC,CAAC;gCAG3C,IAAI,QAAQ,IAAI,KAAK,EAAE;oCACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oCAC7C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;iCACxB;gCAED,QAAQ,GAAG,EAAE;oCACX,KAAK,MAAM,CAAC;oCACZ,KAAK,OAAO;wCACV,IAAI,GAAG,IAAA,WAAG,EAAC,IAAI,IAAI,QAAQ,EAAE,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;wCACxD,MAAM;oCACR,KAAK,KAAK,CAAC;oCACX,KAAK,MAAM;wCACT,IAAI,GAAG,IAAA,WAAG,EACR,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EACrC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,SAAS,CAAC;oCACf,KAAK,UAAU;wCACb,IAAI,GAAG,IAAA,WAAG,EAAC,QAAQ,IAAI,IAAI,EAAE,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;wCACxD,MAAM;oCACR,KAAK,QAAQ,CAAC;oCACd,KAAK,SAAS;wCACZ,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,EAClC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,KAAK,CAAC;oCACX,KAAK,MAAM;wCACT,MAAM,YAAY,GAAI,QAA0B,CAAC,CAAC,CAAQ,CAAC;wCAC3D,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI;4CACd,IAAI,CAAC,qBAAqB,CACxB,IAAI,CAAC,QAAQ,CAAC,EACd,YAAY,CACb,EACH,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,OAAO,CAAC;oCACb,KAAK,QAAQ;wCACX,MAAM,cAAc,GAClB,QACD,CAAC,CAAC,CAAQ,CAAC;wCACZ,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI;4CACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gDAC5B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAClC,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,SAAS,CAAC;oCACf,KAAK,UAAU;wCACb,MAAM,gBAAgB,GACpB,QACD,CAAC,CAAC,CAAQ,CAAC;wCACZ,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI;4CACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CACpC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CACjC,KAAK,CAAC,CAAC,EACV,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,MAAM,CAAC;oCACZ,KAAK,OAAO;wCACV,MAAM,aAAa,GACjB,QACD,CAAC,CAAC,CAAW,CAAC;wCACf,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI;4CACd,IAAI,MAAM,CACR,GAAG;gDACD,YAAY,CAAC,aAAa,CAAC;qDACxB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC;qDACxB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;gDAC1B,GAAG,CACN,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EACxB,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,OAAO,CAAC;oCACb,KAAK,QAAQ;wCACX,MAAM,cAAc,GAClB,QACD,CAAC,CAAC,CAAW,CAAC;wCAEf,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI;4CACd,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EACtD,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,QAAQ,CAAC;oCACd,KAAK,SAAS;wCACZ,MAAM,eAAe,GACnB,QACD,CAAC,CAAC,CAAW,CAAC;wCAEf,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI;4CACd,IAAI,CAAC,eAAe,CAClB,eAAe,EACf,IAAI,CAAC,QAAQ,CAAC,EACd,IAAI,CACL,EACH,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,IAAI,CAAC;oCACV,KAAK,KAAK;wCACR,MAAM,WAAW,GACf,QACD,CAAC,CAAC,CAAW,CAAC;wCACf,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,WAAW,EAChD,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,KAAK,CAAC;oCACX,KAAK,MAAM;wCACT,MAAM,YAAY,GAChB,QACD,CAAC,CAAC,CAAW,CAAC;wCACf,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,EAClD,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,IAAI,CAAC;oCACV,KAAK,KAAK;wCACR,MAAM,WAAW,GACf,QACD,CAAC,CAAC,CAAW,CAAC;wCACf,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,WAAW,EAChD,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;oCACR,KAAK,KAAK,CAAC;oCACX,KAAK,MAAM;wCACT,MAAM,YAAY,GAChB,QACD,CAAC,CAAC,CAAW,CAAC;wCACf,IAAI,GAAG,IAAA,WAAG,EACR,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,EAClD,IAAA,WAAG,EAAC,SAAS,EAAE,SAAS,CAAC,CAC1B,CAAC;wCACF,MAAM;iCACT;6BACF;4BACD,IAAI,CAAC,IAAA,WAAG,EAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;gCACxB,MAAM;6BACP;yBACF;qBACF;iBACF;gBACD,IAAI,CAAC,IAAA,WAAG,EAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;oBACxB,MAAM;iBACP;aACF;YACD,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAOS,UAAU,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAAuB;QAC/C,MAAM,SAAS,GAAI,MAAM,CAAC,WAAmB,CAAC,KAAe,CAAC;QAC9D,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE;YACvB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAChE,IAAI,GAAG,EAAE;YACP,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IASS,qBAAqB,CAC7B,KAAU,EACV,MAIkD;QAGlD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,wBAAwB,EAAE;gBAC1C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACtB;iBAAM;gBACL,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE;oBAC9B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;wBACjC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBACvB;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBACnC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC1B;yBAAM,IAAI,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;wBAC7C,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;qBAC5B;iBACF;aACF;SACF;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YACrC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACpB;aAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC1C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzB;QACD,IACE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,KAAK,CAAC,CAAC,CAAC,KAAK,wBAAwB;YACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAC9B;YACA,OAAO,IAAI,CAAC;SACb;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACrD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;gBACvB,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE;oBACjD,OAAO,IAAI,CAAC;iBACb;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,eAAe,CACpB,SAAqB,EACrB,UAAmB,EAAE;QAKrB,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAwC,EAAE,CAAC;QAEtD,KAAK,MAAM,WAAW,IAAI,SAAS,EAAE;YACnC,MAAM,WAAW,GAAsB;gBACrC,IAAI,EAAE,WAAW,CAAC,IAAI;aACvB,CAAC;YAEF,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE;gBAC3B,MAAM,GAAG,GAAG,CAAmB,CAAC;gBAChC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAE/B,IAAI,GAAG,KAAK,MAAM,EAAE;oBAClB,SAAS;iBACV;gBAED,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,SAAS;iBACV;gBAED,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE;oBACrC,MAAM,MAAM,GAAG,CACb,KAAK,CAAC,OAAO,CAAC,CAAE,KAA0B,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;wBACnD,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,CAAC,KAAK,CAAC,CAC4B,CAAC;oBAC1C,MAAM,SAAS,GAAkD,EAAE,CAAC;oBACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC1B,MAAM,CAAC,WAAW,EAAE,GAAG,aAAa,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrD,MAAM,eAAe,GACnB,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ;4BACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC;4BAC9C,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;wBAC/D,MAAM,UAAU,GAAG;4BACjB,GAAG,WAAW;4BACd,KAAK,EAAE,eAAe;4BACtB,MAAM,EAAE,OAAO,CAAC,MAAM;yBACvB,CAAC;wBACF,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;wBAClE,KAAK,CAAC,IAAI,CACR,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,EACvC,GAAG,YAAY,CAAC,KAAK,CACtB,CAAC;wBACF,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;qBAChE;oBACD,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;iBAC9B;qBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,WAAW,EAAE;oBACpD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAe,CAAC;oBACtE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC3D,WAAW,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC;oBAC1C,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;iBACnC;qBAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAEhC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC9B;qBAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBACnC,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;wBAClB,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI;wBAChB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC5B;wBAEA,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAA,mBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;qBAC7D;yBAAM;wBAEL,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBAC5B;iBACF;qBAAM;oBAEL,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACxC,IACE,QAAQ,CAAC,MAAM,KAAK,CAAC;4BACrB,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI;4BACnB,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAC/B;4BACA,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAA,mBAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;yBACrD;wBACD,OAAO,QAAQ,CAAC;oBAClB,CAAC,CAAC,CAAC;iBACJ;aACF;YAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAChC;QAED,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC;IAES,wBAAwB,CAChC,SAA8B,EAC9B,QAKW;QAEX,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,WAAW,IAAI,SAAS,EAAE;YACnC,IAAI,gBAAgB,GAAG,EAAE,CAAC;YAC1B,IAAI,IAAI,GAAW,WAAW,CAAC,IAAI,CAAC;YACpC,IAAI,SAAS,GAAY,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;YACxD,IAAI,QAAQ,GAAY,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;YACtD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;gBAC7B,MAAM,KAAK,GAAS,WAAmB,CAAC,GAAG,CAAC,CAAC;gBAC7C,IAAI,GAAG,KAAK,MAAM,EAAE;oBAClB,SAAS;iBACV;gBACD,IAAI,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACzD,IAAI,QAAQ,EAAE;oBACZ,IAAI,gBAAgB,EAAE;wBACpB,gBAAgB,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;qBACjD;oBACD,gBAAgB,IAAI,QAAQ,CAAC;iBAC9B;aACF;YACD,IAAI,gBAAgB,EAAE;gBACpB,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACnC;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAqCM,aAAa,CAClB,UAAsB,EAAE,EACxB,GAAG,SAAgC;QAGnC,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YACpC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACjD;QACD,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CACnC,OAAO,EACP,GAAI,SAAwB,CAC7B,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;YAC9B,OAAO,QAA6B,CAAC;SACtC;QACD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IA0ES,iBAAiB,CACzB,OAAmB,EACnB,SAAqB,EACrB,oBAMC,EACD,gBAA2B,EAC3B,kBAA8B,EAC9B,gBAAsC,EACtC,eAAqC,EACrC,uBAIC,EACD,4BAGC;QAKD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,IAAI,6BAAoB,CAAC,qBAAqB,CAAC,CAAC;SACvD;QACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,IACE,CAAC,QAAQ;gBACT,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;gBAClC,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC;gBACrB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EACpD;gBACA,MAAM,IAAI,+BAAsB,CAC9B,iCAAiC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC7D,CAAC;aACH;SACF;QAED,IAAI,QAAQ,GAA8C,EAAE,CAAC;QAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,WAAW,GACf,OAAO,CAAC,KAAK,IAAK,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAO,CAAC;QAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAGhC,IACE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK;YACvB,CAAC,OAAO,CAAC,SAAS;YAClB,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC;YACtB,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EACrC;YAGA,IACE,SAAS,CAAC,MAAM,KAAK,CAAC;gBACtB,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG;gBACzB,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;oBACrC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EACpE;gBACA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAC3B,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EACpB,WAAW,CAAC,KAAK,EACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CACjB,CAAC;gBACF,IACE,MAAM,IAAI,IAAI;oBACd,MAAM,CAAC,IAAI,IAAI,IAAI;oBACnB,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;wBACvB,MAAM,CAAC,MAAM,CACX,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;4BACjC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;4BAClB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACxB,CAAC,EACJ;oBACA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;oBACzB,OAAO;wBACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;wBAC7B,OAAO,EAAE,GAAG,EAAE,CACZ,OAAO,CAAC,MAAM,KAAK,OAAO;4BACxB,CAAC,CAAC,IAAI;gCACJ,CAAC,CAAC,CAAC;gCACH,CAAC,CAAC,CAAC;4BACL,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM;gCAC3B,CAAC,CAAC,CAAC,IAAI,CAAC;gCACR,CAAC,CAAC,CAAC,MAAM,CAAC;qBACf,CAAC;iBACH;aACF;SACF;QAED,IAAI;YACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACpE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACpE,KAAK,IAAI,IAAI,IAAI,kBAAkB,CAAC,KAAK,EAAE;gBACzC,MAAM,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;aAClD;YACD,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CACrC,OAAO,EACP,kBAAkB,CAAC,SAAS,EAC5B,KAAK,CACN,CAAC;YAEF,OAAO;gBACL,MAAM;gBACN,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,GAAG,GAAG,gBAAgB,EAAE,CAAC;oBAC7B,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;wBAC9B,OAAO,GAAG,IAAI,IAAI,EAAE;4BAClB,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC;4BAC/B,GAAG,GAAG,gBAAgB,EAAE,CAAC;yBAC1B;qBACF;yBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;wBACpC,OAAO,GAAG,IAAI,IAAI,EAAE;4BACjB,QAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;4BAClD,GAAG,GAAG,gBAAgB,EAAE,CAAC;yBAC1B;qBACF;yBAAM;wBACL,OAAO,GAAG,IAAI,IAAI,EAAE;4BAClB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;4BAClC,MAAM,YAAY,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;4BAClD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;4BAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;4BACjC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;4BACjC,IAAI,iBAAiB,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;4BAE1D,MAAM,IAAI,GAAe,EAAE,CAAC;4BAE5B,MAAM,KAAK,GAAyB,EAAE,CAAC;4BACvC,IAAI,iBAAiB,CAAC,IAAI,KAAK,EAAE,EAAE;gCAGjC,GAAG;oCACD,iBAAiB,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;oCACtD,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC;oCACzD,GAAG,GAAG,gBAAgB,EAAE,CAAC;iCAC1B,QAAQ,GAAG,IAAI,IAAI,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;6BACxD;iCAAM;gCAEL,GAAG,GAAG,gBAAgB,EAAE,CAAC;6BAC1B;4BACD,MAAM,MAAM,GAAG,WAAW,CAAC,WAAW,EAErC,CAAC;4BACF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;4BAC3B,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE;gCAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;6BACrC;4BACD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;4BACnB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;4BACrB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;4BACrB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;4BACnB,IAAI,CAAC,cAAc,EAAE,CAAC;4BACtB,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,EAAE;gCAC9B,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;6BAC9D;4BACD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;4BAC7B,IAAI,CAAC,cAAc,EAAE,CAAC;4BACtB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;gCAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;6BACvD;4BAED,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;yBACvB;qBACF;oBAED,kBAAkB,EAAE,CAAC;oBAErB,OAAO,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACvD,CAAC;aACF,CAAC;SACH;QAAC,OAAO,CAAM,EAAE;YACf,OAAO;gBACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1B,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,CAAC;gBACX,CAAC;aACF,CAAC;SACH;IACH,CAAC;IAES,KAAK,CAAC,iBAAiB,CAC/B,MAAuB,EACvB,qBAQqB,EACrB,0BAQqB,EACrB,2BAAyD,IAAI,EAC7D,4BAEW,IAAI;QAGf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAgC,CAAC;QAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,IAAI,wBAAwB,EAAE;YAC5B,MAAM,wBAAwB,EAAE,CAAC;SAClC;QACD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,EAAE;YACvB,MAAM,KAAK,GAAG,KAAK,CAAC;YACpB,MAAM,KAAK,GAAG,IAAA,WAAI,GAAE,CAAC;YACrB,OAAO,GAAG,MAAM,qBAAqB,CACnC,MAAM,EACN,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,CACN,CAAC;YACF,IAAI,OAAO,EAAE;gBACX,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;gBACpB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBACrB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;aACtB;SACF;aAAM;YAEL,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC9B;YACD,OAAO,GAAG,MAAM,0BAA0B,CACxC,MAAM,EACN,MAAM,CAAC,IAAI,EACX,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,CACN,CAAC;YACF,IAAI,OAAO,EAAE;gBACX,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;aACtB;SACF;QACD,IAAI,yBAAyB,EAAE;YAC7B,OAAO,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;SACpD;QAED,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;YACtC,IAAI,CAAC,SAAS,CACZ,MAAM,CAAC,IAAc,EACrB,MAAM,CAAC,KAAe,EACtB,MAAM,CAAC,KAAe,EACtB,MAAM,CAAC,IAAI,EACX,IAAI,EACJ,KAAK,CACN,CAAC;SACH;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAUS,SAAS,CACjB,IAAY,EACZ,SAAiB,EACjB,SAAS,GAAG,KAAK;QAGjB,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,WAAW,EAAO,CAAC;YACvE,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC3B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC/B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC7C,MAAM,CAAC,QAAQ,CACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAChC,CAAC;gBACF,OAAO,MAAM,CAAC;aACf;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAYS,SAAS,CACjB,IAAY,EACZ,KAAa,EACb,KAAa,EACb,IAAc,EACd,IAAgB,EAChB,KAA2B;QAE3B,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,OAAO;SACR;QAED,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAEzB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;YAC7D,OAAO;SACR;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;YACvB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,KAAK;SACb,CAAC;QACF,OACE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EACpE;YAEA,MAAM,KAAK,GACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;iBAC7B,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC;iBAC3D,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACxB,IAAI,KAAK,IAAI,IAAI,EAAE;gBAEjB,OAAO;aACR;YAED,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChC;IACH,CAAC;IAES,cAAc,CAAC,MAAc;QACrC,MAAM,EAAE,GAAG,+CAA+C,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAhqCD,8BAgqCC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nymphjs/nymph",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.3",
|
|
4
4
|
"description": "NymphJS - Nymph ORM",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"license": "Apache-2.0",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@nymphjs/guid": "^1.0.0-beta.
|
|
34
|
+
"@nymphjs/guid": "^1.0.0-beta.3",
|
|
35
35
|
"joi": "^17.7.0",
|
|
36
36
|
"locutus": "^2.0.16",
|
|
37
37
|
"lodash": "^4.17.21",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"ts-jest": "^29.0.3",
|
|
48
48
|
"typescript": "^4.9.3"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "7270586be5b2b03fa42d98791a91d0f51c5fd299"
|
|
51
51
|
}
|
package/src/Nymph.ts
CHANGED
|
@@ -214,13 +214,10 @@ export default class Nymph {
|
|
|
214
214
|
/**
|
|
215
215
|
* Run all the query callbacks on a query.
|
|
216
216
|
*/
|
|
217
|
-
public
|
|
218
|
-
options: Options,
|
|
219
|
-
selectors: FormattedSelector[]
|
|
220
|
-
) {
|
|
217
|
+
public runQueryCallbacks(options: Options, selectors: FormattedSelector[]) {
|
|
221
218
|
for (let callback of this.queryCallbacks) {
|
|
222
219
|
if (callback) {
|
|
223
|
-
|
|
220
|
+
callback(this, options, selectors);
|
|
224
221
|
}
|
|
225
222
|
}
|
|
226
223
|
}
|
package/src/Nymph.types.ts
CHANGED
|
@@ -29,12 +29,22 @@ export type NymphDisconnectCallback = (
|
|
|
29
29
|
nymph: Nymph,
|
|
30
30
|
result: Promise<boolean>
|
|
31
31
|
) => Promise<void>;
|
|
32
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* The NymphQueryCallback will be called on both top level and qref queries.
|
|
34
|
+
*
|
|
35
|
+
* This is the only callback that is not asynchronous.
|
|
36
|
+
*
|
|
37
|
+
* This also isn't necessarily run on every "query". It is run before a database
|
|
38
|
+
* query for an entity, but it is not run during PubSub entity change
|
|
39
|
+
* propagation. Therefore, it shouldn't do anything _entity_ specific, instead
|
|
40
|
+
* it should be _query_ specific. For example, throw an error if the user is not
|
|
41
|
+
* permitted to run the query at all.
|
|
42
|
+
*/
|
|
33
43
|
export type NymphQueryCallback = (
|
|
34
44
|
nymph: Nymph,
|
|
35
45
|
options: Options,
|
|
36
46
|
selectors: FormattedSelector[]
|
|
37
|
-
) =>
|
|
47
|
+
) => void;
|
|
38
48
|
export type NymphBeforeGetEntityCallback = (
|
|
39
49
|
nymph: Nymph,
|
|
40
50
|
options: Options,
|
|
@@ -283,7 +283,7 @@ export default abstract class NymphDriver {
|
|
|
283
283
|
guid: string | null = null,
|
|
284
284
|
tags: string[] | null = null
|
|
285
285
|
) {
|
|
286
|
-
const formattedSelectors = this.formatSelectors(selectors);
|
|
286
|
+
const formattedSelectors = this.formatSelectors(selectors).selectors;
|
|
287
287
|
|
|
288
288
|
for (const curSelector of formattedSelectors) {
|
|
289
289
|
const type = curSelector.type;
|
|
@@ -575,8 +575,12 @@ export default abstract class NymphDriver {
|
|
|
575
575
|
public formatSelectors(
|
|
576
576
|
selectors: Selector[],
|
|
577
577
|
options: Options = {}
|
|
578
|
-
):
|
|
578
|
+
): {
|
|
579
|
+
selectors: FormattedSelector[];
|
|
580
|
+
qrefs: [Options, ...FormattedSelector[]][];
|
|
581
|
+
} {
|
|
579
582
|
const newSelectors: FormattedSelector[] = [];
|
|
583
|
+
const qrefs: [Options, ...FormattedSelector[]][] = [];
|
|
580
584
|
|
|
581
585
|
for (const curSelector of selectors) {
|
|
582
586
|
const newSelector: FormattedSelector = {
|
|
@@ -615,13 +619,18 @@ export default abstract class NymphDriver {
|
|
|
615
619
|
source: options.source,
|
|
616
620
|
};
|
|
617
621
|
const newSelectors = this.formatSelectors(qrefSelectors, options);
|
|
618
|
-
|
|
619
|
-
|
|
622
|
+
qrefs.push(
|
|
623
|
+
[newOptions, ...newSelectors.selectors],
|
|
624
|
+
...newSelectors.qrefs
|
|
625
|
+
);
|
|
626
|
+
formatArr[i] = [name, [newOptions, ...newSelectors.selectors]];
|
|
620
627
|
}
|
|
621
628
|
newSelector[key] = formatArr;
|
|
622
629
|
} else if (key === 'selector' || key === '!selector') {
|
|
623
630
|
const tmpArr = (Array.isArray(value) ? value : [value]) as Selector[];
|
|
624
|
-
|
|
631
|
+
const newSelectors = this.formatSelectors(tmpArr, options);
|
|
632
|
+
newSelector[key] = newSelectors.selectors;
|
|
633
|
+
qrefs.push(...newSelectors.qrefs);
|
|
625
634
|
} else if (!Array.isArray(value)) {
|
|
626
635
|
// @ts-ignore: ts doesn't know what value is here.
|
|
627
636
|
newSelector[key] = [[value]];
|
|
@@ -655,7 +664,7 @@ export default abstract class NymphDriver {
|
|
|
655
664
|
newSelectors.push(newSelector);
|
|
656
665
|
}
|
|
657
666
|
|
|
658
|
-
return newSelectors;
|
|
667
|
+
return { selectors: newSelectors, qrefs };
|
|
659
668
|
}
|
|
660
669
|
|
|
661
670
|
protected iterateSelectorsForQuery(
|
|
@@ -774,7 +783,7 @@ export default abstract class NymphDriver {
|
|
|
774
783
|
name: string;
|
|
775
784
|
svalue: string;
|
|
776
785
|
}
|
|
777
|
-
): { result: any; process: () => number };
|
|
786
|
+
): { result: any; process: () => number | Error };
|
|
778
787
|
protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(
|
|
779
788
|
options: Options<T> & { return: 'guid' },
|
|
780
789
|
selectors: Selector[],
|
|
@@ -798,7 +807,7 @@ export default abstract class NymphDriver {
|
|
|
798
807
|
name: string;
|
|
799
808
|
svalue: string;
|
|
800
809
|
}
|
|
801
|
-
): { result: any; process: () => string[] };
|
|
810
|
+
): { result: any; process: () => string[] | Error };
|
|
802
811
|
protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(
|
|
803
812
|
options: Options<T>,
|
|
804
813
|
selectors: Selector[],
|
|
@@ -822,7 +831,7 @@ export default abstract class NymphDriver {
|
|
|
822
831
|
name: string;
|
|
823
832
|
svalue: string;
|
|
824
833
|
}
|
|
825
|
-
): { result: any; process: () => ReturnType<T['factorySync']>[] };
|
|
834
|
+
): { result: any; process: () => ReturnType<T['factorySync']>[] | Error };
|
|
826
835
|
protected getEntitesRowLike<T extends EntityConstructor = EntityConstructor>(
|
|
827
836
|
options: Options<T>,
|
|
828
837
|
selectors: Selector[],
|
|
@@ -848,7 +857,7 @@ export default abstract class NymphDriver {
|
|
|
848
857
|
}
|
|
849
858
|
): {
|
|
850
859
|
result: any;
|
|
851
|
-
process: () => ReturnType<T['factorySync']>[] | string[] | number;
|
|
860
|
+
process: () => ReturnType<T['factorySync']>[] | string[] | number | Error;
|
|
852
861
|
} {
|
|
853
862
|
if (!this.isConnected()) {
|
|
854
863
|
throw new UnableToConnectError('not connected to DB');
|
|
@@ -918,78 +927,95 @@ export default abstract class NymphDriver {
|
|
|
918
927
|
}
|
|
919
928
|
}
|
|
920
929
|
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
930
|
+
try {
|
|
931
|
+
const formattedSelectors = this.formatSelectors(selectors, options);
|
|
932
|
+
this.nymph.runQueryCallbacks(options, formattedSelectors.selectors);
|
|
933
|
+
for (let qref of formattedSelectors.qrefs) {
|
|
934
|
+
const [options, ...selectors] = qref;
|
|
935
|
+
this.nymph.runQueryCallbacks(options, selectors);
|
|
936
|
+
}
|
|
937
|
+
const { result } = performQueryCallback(
|
|
938
|
+
options,
|
|
939
|
+
formattedSelectors.selectors,
|
|
940
|
+
etype
|
|
941
|
+
);
|
|
924
942
|
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
row = rowFetchCallback();
|
|
933
|
-
}
|
|
934
|
-
} else if (options.return === 'guid') {
|
|
935
|
-
while (row != null) {
|
|
936
|
-
(entities as string[]).push(getGUIDCallback(row));
|
|
937
|
-
row = rowFetchCallback();
|
|
938
|
-
}
|
|
939
|
-
} else {
|
|
940
|
-
while (row != null) {
|
|
941
|
-
const guid = getGUIDCallback(row);
|
|
942
|
-
const tagsAndDates = getTagsAndDatesCallback(row);
|
|
943
|
-
const tags = tagsAndDates.tags;
|
|
944
|
-
const cdate = tagsAndDates.cdate;
|
|
945
|
-
const mdate = tagsAndDates.mdate;
|
|
946
|
-
let dataNameAndSValue = getDataNameAndSValueCallback(row);
|
|
947
|
-
// Data.
|
|
948
|
-
const data: EntityData = {};
|
|
949
|
-
// Serialized data.
|
|
950
|
-
const sdata: SerializedEntityData = {};
|
|
951
|
-
if (dataNameAndSValue.name !== '') {
|
|
952
|
-
// This do will keep going and adding the data until the
|
|
953
|
-
// next entity is reached. $row will end on the next entity.
|
|
954
|
-
do {
|
|
955
|
-
dataNameAndSValue = getDataNameAndSValueCallback(row);
|
|
956
|
-
sdata[dataNameAndSValue.name] = dataNameAndSValue.svalue;
|
|
957
|
-
row = rowFetchCallback();
|
|
958
|
-
} while (row != null && getGUIDCallback(row) === guid);
|
|
959
|
-
} else {
|
|
960
|
-
// Make sure that $row is incremented :)
|
|
943
|
+
return {
|
|
944
|
+
result,
|
|
945
|
+
process: () => {
|
|
946
|
+
let row = rowFetchCallback();
|
|
947
|
+
if (options.return === 'count') {
|
|
948
|
+
while (row != null) {
|
|
949
|
+
count += getCountCallback(row);
|
|
961
950
|
row = rowFetchCallback();
|
|
962
951
|
}
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
if (options.skipAc != null) {
|
|
968
|
-
entity.$useSkipAc(!!options.skipAc);
|
|
969
|
-
}
|
|
970
|
-
entity.guid = guid;
|
|
971
|
-
entity.cdate = cdate;
|
|
972
|
-
entity.mdate = mdate;
|
|
973
|
-
entity.tags = tags;
|
|
974
|
-
this.putDataCounter++;
|
|
975
|
-
if (this.putDataCounter == 100) {
|
|
976
|
-
throw new Error('Infinite loop detected in Entity loading.');
|
|
952
|
+
} else if (options.return === 'guid') {
|
|
953
|
+
while (row != null) {
|
|
954
|
+
(entities as string[]).push(getGUIDCallback(row));
|
|
955
|
+
row = rowFetchCallback();
|
|
977
956
|
}
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
957
|
+
} else {
|
|
958
|
+
while (row != null) {
|
|
959
|
+
const guid = getGUIDCallback(row);
|
|
960
|
+
const tagsAndDates = getTagsAndDatesCallback(row);
|
|
961
|
+
const tags = tagsAndDates.tags;
|
|
962
|
+
const cdate = tagsAndDates.cdate;
|
|
963
|
+
const mdate = tagsAndDates.mdate;
|
|
964
|
+
let dataNameAndSValue = getDataNameAndSValueCallback(row);
|
|
965
|
+
// Data.
|
|
966
|
+
const data: EntityData = {};
|
|
967
|
+
// Serialized data.
|
|
968
|
+
const sdata: SerializedEntityData = {};
|
|
969
|
+
if (dataNameAndSValue.name !== '') {
|
|
970
|
+
// This do will keep going and adding the data until the
|
|
971
|
+
// next entity is reached. $row will end on the next entity.
|
|
972
|
+
do {
|
|
973
|
+
dataNameAndSValue = getDataNameAndSValueCallback(row);
|
|
974
|
+
sdata[dataNameAndSValue.name] = dataNameAndSValue.svalue;
|
|
975
|
+
row = rowFetchCallback();
|
|
976
|
+
} while (row != null && getGUIDCallback(row) === guid);
|
|
977
|
+
} else {
|
|
978
|
+
// Make sure that $row is incremented :)
|
|
979
|
+
row = rowFetchCallback();
|
|
980
|
+
}
|
|
981
|
+
const entity = EntityClass.factorySync() as ReturnType<
|
|
982
|
+
T['factorySync']
|
|
983
|
+
>;
|
|
984
|
+
entity.$nymph = this.nymph;
|
|
985
|
+
if (options.skipAc != null) {
|
|
986
|
+
entity.$useSkipAc(!!options.skipAc);
|
|
987
|
+
}
|
|
988
|
+
entity.guid = guid;
|
|
989
|
+
entity.cdate = cdate;
|
|
990
|
+
entity.mdate = mdate;
|
|
991
|
+
entity.tags = tags;
|
|
992
|
+
this.putDataCounter++;
|
|
993
|
+
if (this.putDataCounter == 100) {
|
|
994
|
+
throw new Error('Infinite loop detected in Entity loading.');
|
|
995
|
+
}
|
|
996
|
+
entity.$putData(data, sdata);
|
|
997
|
+
this.putDataCounter--;
|
|
998
|
+
if (this.nymph.config.cache) {
|
|
999
|
+
this.pushCache(guid, cdate, mdate, tags, data, sdata);
|
|
1000
|
+
}
|
|
1001
|
+
// @ts-ignore: ts doesn't know the return type here.
|
|
1002
|
+
entities.push(entity);
|
|
982
1003
|
}
|
|
983
|
-
// @ts-ignore: ts doesn't know the return type here.
|
|
984
|
-
entities.push(entity);
|
|
985
1004
|
}
|
|
986
|
-
}
|
|
987
1005
|
|
|
988
|
-
|
|
1006
|
+
freeResultCallback();
|
|
989
1007
|
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
1008
|
+
return options.return === 'count' ? count : entities;
|
|
1009
|
+
},
|
|
1010
|
+
};
|
|
1011
|
+
} catch (e: any) {
|
|
1012
|
+
return {
|
|
1013
|
+
result: Promise.resolve(e),
|
|
1014
|
+
process: () => {
|
|
1015
|
+
return e;
|
|
1016
|
+
},
|
|
1017
|
+
};
|
|
1018
|
+
}
|
|
993
1019
|
}
|
|
994
1020
|
|
|
995
1021
|
protected async saveEntityRowLike(
|