@entity-access/entity-access 1.0.111 → 1.0.112
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/common/ObjectPool.d.ts +6 -2
- package/dist/common/ObjectPool.d.ts.map +1 -1
- package/dist/common/ObjectPool.js +33 -27
- package/dist/common/ObjectPool.js.map +1 -1
- package/dist/common/sleep.d.ts.map +1 -1
- package/dist/common/sleep.js +23 -2
- package/dist/common/sleep.js.map +1 -1
- package/dist/decorators/Relate.d.ts +16 -10
- package/dist/decorators/Relate.d.ts.map +1 -1
- package/dist/decorators/Relate.js +52 -46
- package/dist/decorators/Relate.js.map +1 -1
- package/dist/tests/model/ShoppingContext.d.ts.map +1 -1
- package/dist/tests/model/ShoppingContext.js +2 -1
- package/dist/tests/model/ShoppingContext.js.map +1 -1
- package/dist/tests/pool/pool-test.d.ts.map +1 -1
- package/dist/tests/pool/pool-test.js +55 -47
- package/dist/tests/pool/pool-test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/common/ObjectPool.ts +44 -28
- package/src/common/sleep.ts +23 -2
- package/src/decorators/Relate.ts +91 -97
- package/src/tests/model/ShoppingContext.ts +3 -2
- package/src/tests/pool/pool-test.ts +58 -51
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import "./IDisposable.js";
|
|
1
2
|
interface IObjectPool<T> {
|
|
2
3
|
factory?: () => T;
|
|
3
4
|
asyncFactory?: () => Promise<T>;
|
|
@@ -13,9 +14,10 @@ interface IObjectPool<T> {
|
|
|
13
14
|
maxSize?: number;
|
|
14
15
|
/**
|
|
15
16
|
* Max wait in milliseconds before creating
|
|
16
|
-
* new object, default is
|
|
17
|
+
* new object, default is 5 seconds
|
|
17
18
|
*/
|
|
18
19
|
maxWait?: number;
|
|
20
|
+
logger?: (text: string) => void;
|
|
19
21
|
}
|
|
20
22
|
export type IPooledObject<T> = T & {
|
|
21
23
|
[Symbol.asyncDisposable](): Promise<any>;
|
|
@@ -36,9 +38,11 @@ export default class ObjectPool<T> {
|
|
|
36
38
|
private free;
|
|
37
39
|
private total;
|
|
38
40
|
private awaited;
|
|
39
|
-
|
|
41
|
+
private logger;
|
|
42
|
+
constructor({ maxSize, maxWait, poolSize, logger, asyncFactory, factory, destroy, subscribeForRemoval }: IObjectPool<T>);
|
|
40
43
|
dispose(): Promise<void>;
|
|
41
44
|
acquire(): Promise<IPooledObject<T>>;
|
|
45
|
+
private setupItem;
|
|
42
46
|
}
|
|
43
47
|
export declare class NamedObjectPool<T> {
|
|
44
48
|
private config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectPool.d.ts","sourceRoot":"","sources":["../../src/common/ObjectPool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ObjectPool.d.ts","sourceRoot":"","sources":["../../src/common/ObjectPool.ts"],"names":[],"mappings":"AAIA,OAAO,kBAAkB,CAAC;AAE1B,UAAU,WAAW,CAAC,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC;IAE1B,mBAAmB,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAEvE;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG;IAC/B,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;CAC5C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU,CAAC,CAAC;IAE7B,IAAW,QAAQ,WAElB;IAGD,IAAW,WAAW,WAErB;IAED,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,YAAY,CAAmB;IAEvC,OAAO,CAAC,OAAO,CAAmB;IAElC,OAAO,CAAC,mBAAmB,CAAqD;IAEhF,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,IAAI,CAAW;IAEvB,OAAO,CAAC,KAAK,CAAa;IAE1B,OAAO,CAAC,OAAO,CAAmC;IAElD,OAAO,CAAC,MAAM,CAAyB;gBAE3B,EACR,OAAY,EACZ,OAAc,EACd,QAAa,EACb,MAAM,EACN,YAAY,EACZ,OAAO,EACP,OAAO,EACP,mBAAmB,EACtB,EAAE,WAAW,CAAC,CAAC,CAAC;IAWJ,OAAO;IAYP,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IA+BjD,OAAO,CAAC,SAAS;CAsBpB;AAED,qBAAa,eAAe,CAAC,CAAC;IAId,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,UAAU,CAAyD;gBAEvD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;IAIrD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAKxD"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import EntityAccessError from "./EntityAccessError.js";
|
|
3
3
|
import TimedCache from "./cache/TimedCache.js";
|
|
4
4
|
import sleep from "./sleep.js";
|
|
5
|
+
import "./IDisposable.js";
|
|
5
6
|
/**
|
|
6
7
|
* Most pool implementations are poor and are having too many errors.
|
|
7
8
|
*/
|
|
@@ -22,7 +23,8 @@ export default class ObjectPool {
|
|
|
22
23
|
free = [];
|
|
23
24
|
total = 0;
|
|
24
25
|
awaited = new Set();
|
|
25
|
-
|
|
26
|
+
logger;
|
|
27
|
+
constructor({ maxSize = 40, maxWait = 5000, poolSize = 20, logger, asyncFactory, factory, destroy, subscribeForRemoval }) {
|
|
26
28
|
this.maxSize = maxSize;
|
|
27
29
|
this.maxWait = maxWait;
|
|
28
30
|
this.poolSize = poolSize;
|
|
@@ -30,6 +32,7 @@ export default class ObjectPool {
|
|
|
30
32
|
this.factory = factory;
|
|
31
33
|
this.destroy = destroy;
|
|
32
34
|
this.subscribeForRemoval = subscribeForRemoval;
|
|
35
|
+
this.logger = logger;
|
|
33
36
|
}
|
|
34
37
|
async dispose() {
|
|
35
38
|
const copy = [].concat(this.free);
|
|
@@ -43,48 +46,51 @@ export default class ObjectPool {
|
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
48
|
async acquire() {
|
|
46
|
-
let
|
|
47
|
-
if (!
|
|
49
|
+
let existing = this.free.pop();
|
|
50
|
+
if (!existing) {
|
|
48
51
|
if (this.total >= this.poolSize) {
|
|
49
52
|
const a = new AbortController();
|
|
50
53
|
this.awaited.add(a);
|
|
51
54
|
await sleep(this.maxWait, a.signal);
|
|
52
55
|
this.awaited.delete(a);
|
|
53
|
-
|
|
56
|
+
existing = this.free.pop();
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
|
-
if (
|
|
57
|
-
|
|
58
|
-
throw new EntityAccessError(`Maximum size of pool reached. Retry after sometime.`);
|
|
59
|
-
}
|
|
60
|
-
this.total++;
|
|
61
|
-
// create new..
|
|
62
|
-
if (this.factory) {
|
|
63
|
-
item = this.factory();
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
item = await this.asyncFactory();
|
|
67
|
-
}
|
|
68
|
-
this.subscribeForRemoval(item, () => {
|
|
69
|
-
const index = this.free.indexOf(item);
|
|
70
|
-
this.free.splice(index, 1);
|
|
71
|
-
});
|
|
59
|
+
if (existing) {
|
|
60
|
+
return existing;
|
|
72
61
|
}
|
|
62
|
+
if (this.total >= this.maxSize) {
|
|
63
|
+
throw new EntityAccessError(`Maximum size of pool reached. Retry after sometime.`);
|
|
64
|
+
}
|
|
65
|
+
this.total++;
|
|
66
|
+
// create new..
|
|
67
|
+
const item = this.factory?.() ?? (await this.asyncFactory());
|
|
68
|
+
this.subscribeForRemoval(item, () => {
|
|
69
|
+
const index = this.free.indexOf(item);
|
|
70
|
+
this.free.splice(index, 1);
|
|
71
|
+
});
|
|
72
|
+
return this.setupItem(item);
|
|
73
|
+
}
|
|
74
|
+
setupItem(item) {
|
|
73
75
|
const pooledItem = item;
|
|
74
76
|
pooledItem[Symbol.asyncDisposable] = async () => {
|
|
77
|
+
delete this[Symbol.asyncDisposable];
|
|
75
78
|
if (this.free.length < this.poolSize) {
|
|
76
|
-
this.
|
|
77
|
-
|
|
79
|
+
this.logger?.(`Pooled item ${pooledItem} freed.`);
|
|
80
|
+
this.free.push(pooledItem);
|
|
81
|
+
for (const [iterator] of this.awaited.entries()) {
|
|
78
82
|
this.awaited.delete(iterator);
|
|
79
83
|
iterator.abort();
|
|
80
|
-
|
|
84
|
+
return;
|
|
81
85
|
}
|
|
86
|
+
return;
|
|
82
87
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
88
|
+
this.total--;
|
|
89
|
+
this.logger?.(`Pooled item ${pooledItem} destoryed.`);
|
|
90
|
+
void this.destroy(pooledItem)?.catch(console.error);
|
|
87
91
|
};
|
|
92
|
+
this.logger?.(`Pooled item ${pooledItem} acquired.`);
|
|
93
|
+
this.logger?.(`Item ${pooledItem} has disposable ${typeof pooledItem[Symbol.asyncDisposable]}`);
|
|
88
94
|
return item;
|
|
89
95
|
}
|
|
90
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["../../src/common/ObjectPool.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,UAAU,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["../../src/common/ObjectPool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../src/common/sleep.ts"],"names":[],"mappings":";AAAA,wBAA8B,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,UAAQ,
|
|
1
|
+
{"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../src/common/sleep.ts"],"names":[],"mappings":";AAAA,wBAA8B,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,UAAQ,iBAoCxF"}
|
package/dist/common/sleep.js
CHANGED
|
@@ -3,15 +3,36 @@ export default async function sleep(n, signal, throwOnAbort = false) {
|
|
|
3
3
|
return;
|
|
4
4
|
}
|
|
5
5
|
return new Promise((resolve, reject) => {
|
|
6
|
+
if (!signal) {
|
|
7
|
+
setTimeout(resolve, n);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
let resolved = false;
|
|
11
|
+
const old = resolve;
|
|
12
|
+
resolve = () => {
|
|
13
|
+
if (resolved) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
resolved = true;
|
|
17
|
+
old();
|
|
18
|
+
};
|
|
19
|
+
const oldReject = reject;
|
|
20
|
+
reject = (r) => {
|
|
21
|
+
if (resolved) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
resolved = true;
|
|
25
|
+
oldReject(r);
|
|
26
|
+
};
|
|
6
27
|
const id = setTimeout(resolve, n);
|
|
7
|
-
signal
|
|
28
|
+
signal.onabort = () => {
|
|
8
29
|
clearTimeout(id);
|
|
9
30
|
if (throwOnAbort) {
|
|
10
31
|
reject("cancelled");
|
|
11
32
|
return;
|
|
12
33
|
}
|
|
13
34
|
resolve();
|
|
14
|
-
}
|
|
35
|
+
};
|
|
15
36
|
});
|
|
16
37
|
}
|
|
17
38
|
//# sourceMappingURL=sleep.js.map
|
package/dist/common/sleep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../src/common/sleep.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,CAAS,EAAE,MAAoB,EAAE,YAAY,GAAG,KAAK;IACrF,IAAI,MAAM,EAAE,OAAO,EAAE;QACjB,OAAO;KACV;IACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,MAAM,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../src/common/sleep.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,CAAS,EAAE,MAAoB,EAAE,YAAY,GAAG,KAAK;IACrF,IAAI,MAAM,EAAE,OAAO,EAAE;QACjB,OAAO;KACV;IACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,IAAI,CAAC,MAAM,EAAE;YACT,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvB,OAAO;SACV;QACD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,GAAG,GAAG,OAAO,CAAC;QACpB,OAAO,GAAG,GAAG,EAAE;YACX,IAAI,QAAQ,EAAE;gBACV,OAAO;aACV;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,GAAG,EAAE,CAAC;QACV,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC;QACzB,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE;YACX,IAAI,QAAQ,EAAE;gBACV,OAAO;aACV;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,IAAI,YAAY,EAAE;gBACd,MAAM,CAAC,WAAW,CAAC,CAAC;gBACpB,OAAO;aACV;YACD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
import type { IClassOf } from "./IClassOf.js";
|
|
2
|
-
export
|
|
3
|
-
|
|
2
|
+
export interface IRelatedType<T, TRelated> {
|
|
3
|
+
property: (item: T) => TRelated;
|
|
4
4
|
inverseProperty: (item: TRelated) => T[];
|
|
5
5
|
inverseKey?: (item: TRelated) => any;
|
|
6
6
|
dotNotCreateIndex?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export
|
|
9
|
-
|
|
7
|
+
}
|
|
8
|
+
export interface IRelatedTypeOne<T, TRelated> {
|
|
9
|
+
property: (item: T) => TRelated;
|
|
10
10
|
inverseProperty: (item: TRelated) => T;
|
|
11
11
|
inverseKey?: (item: TRelated) => any;
|
|
12
12
|
dotNotCreateIndex?: boolean;
|
|
13
|
-
}
|
|
14
|
-
export
|
|
13
|
+
}
|
|
14
|
+
export interface IRelatedTypeWithType<T, TRelated> {
|
|
15
|
+
type: () => IClassOf<TRelated>;
|
|
15
16
|
property: (item: T) => TRelated;
|
|
16
17
|
inverseProperty: (item: TRelated) => T[];
|
|
17
18
|
inverseKey?: (item: TRelated) => any;
|
|
18
19
|
dotNotCreateIndex?: boolean;
|
|
19
|
-
}
|
|
20
|
-
export
|
|
20
|
+
}
|
|
21
|
+
export interface IRelatedTypeOneWithType<T, TRelated> {
|
|
22
|
+
type: () => IClassOf<TRelated>;
|
|
21
23
|
property: (item: T) => TRelated;
|
|
22
24
|
inverseProperty: (item: TRelated) => T;
|
|
23
25
|
inverseKey?: (item: TRelated) => any;
|
|
24
26
|
dotNotCreateIndex?: boolean;
|
|
25
|
-
}
|
|
27
|
+
}
|
|
28
|
+
export declare function RelateTo<T, TRelated>(p: IRelatedTypeWithType<T, TRelated>): (target: T, key: string) => any;
|
|
29
|
+
export declare function RelateTo<T, TRelated>(c: IClassOf<TRelated>, p: IRelatedType<T, TRelated>): (target: T, key: string) => any;
|
|
30
|
+
export declare function RelateToOne<T, TRelated>(p: IRelatedTypeOneWithType<T, TRelated>): (target: T, key: string) => any;
|
|
31
|
+
export declare function RelateToOne<T, TRelated>(c: IClassOf<TRelated>, p: IRelatedTypeOne<T, TRelated>): (target: T, key: string) => any;
|
|
26
32
|
//# sourceMappingURL=Relate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relate.d.ts","sourceRoot":"","sources":["../../src/decorators/Relate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Relate.d.ts","sourceRoot":"","sources":["../../src/decorators/Relate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,MAAM,WAAW,YAAY,CAAC,CAAC,EAAE,QAAQ;IACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,EAAE,QAAQ;IACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,EAAE,QAAQ;IAC7C,IAAI,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,EAAE,QAAQ;IAChD,IAAI,EAAE,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAChC,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,GAAG,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,oBAAoB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AAC7G,wBAAgB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AA8B5H,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC;AACnH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,KAAK,GAAG,CAAC"}
|
|
@@ -1,65 +1,71 @@
|
|
|
1
1
|
import SchemaRegistry from "./SchemaRegistry.js";
|
|
2
2
|
import NameParser from "./parser/NameParser.js";
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
name: key,
|
|
10
|
-
foreignKey: NameParser.parseMember(name),
|
|
11
|
-
relatedTypeClass: c,
|
|
12
|
-
relatedName: NameParser.parseMember(inv),
|
|
13
|
-
relatedKey: invKey ? NameParser.parseMember(invKey) : void 0,
|
|
14
|
-
dotNotCreateIndex
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export function RelateOne(c, { foreignKey: name, inverseProperty: inv, inverseKey: invKey, dotNotCreateIndex }) {
|
|
19
|
-
return (target, key) => {
|
|
20
|
-
const cn = target.constructor ?? target;
|
|
21
|
-
const type = SchemaRegistry.model(cn);
|
|
22
|
-
const r = type.addRelation({
|
|
23
|
-
type,
|
|
24
|
-
name: key,
|
|
25
|
-
foreignKey: NameParser.parseMember(name),
|
|
26
|
-
relatedTypeClass: c,
|
|
27
|
-
relatedName: NameParser.parseMember(inv),
|
|
28
|
-
relatedKey: invKey ? NameParser.parseMember(invKey) : void 0,
|
|
29
|
-
dotNotCreateIndex
|
|
30
|
-
});
|
|
31
|
-
r.relatedRelation.isCollection = false;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export function RelateTo(c, { property, inverseProperty, inverseKey: invKey, dotNotCreateIndex }) {
|
|
3
|
+
export function RelateTo(c, p) {
|
|
4
|
+
if (p === void 0) {
|
|
5
|
+
p = c;
|
|
6
|
+
c = p.type?.();
|
|
7
|
+
}
|
|
8
|
+
const { property, inverseKey: invKey, inverseProperty, dotNotCreateIndex } = p;
|
|
35
9
|
return (target, foreignKey) => {
|
|
36
10
|
const cn = target.constructor ?? target;
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
11
|
+
const entityType = SchemaRegistry.model(cn);
|
|
12
|
+
const name = NameParser.parseMember(property);
|
|
13
|
+
entityType.addRelation({
|
|
14
|
+
type: entityType,
|
|
15
|
+
name,
|
|
41
16
|
foreignKey,
|
|
42
|
-
relatedTypeClass: c,
|
|
17
|
+
relatedTypeClass: c ?? Reflect.getMetadata("design:type", target, name),
|
|
43
18
|
relatedName: NameParser.parseMember(inverseProperty),
|
|
44
19
|
relatedKey: invKey ? NameParser.parseMember(invKey) : void 0,
|
|
45
20
|
dotNotCreateIndex
|
|
46
21
|
});
|
|
47
22
|
};
|
|
48
23
|
}
|
|
49
|
-
export function RelateToOne(c,
|
|
50
|
-
|
|
24
|
+
export function RelateToOne(c, p) {
|
|
25
|
+
if (p === void 0) {
|
|
26
|
+
p = c;
|
|
27
|
+
c = p.type?.();
|
|
28
|
+
}
|
|
29
|
+
const { property, inverseKey: invKey, inverseProperty, dotNotCreateIndex } = p;
|
|
30
|
+
return (target, foreignKey) => {
|
|
51
31
|
const cn = target.constructor ?? target;
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
32
|
+
const entityType = SchemaRegistry.model(cn);
|
|
33
|
+
const name = NameParser.parseMember(property);
|
|
34
|
+
entityType.addRelation({
|
|
35
|
+
type: entityType,
|
|
36
|
+
name,
|
|
37
|
+
foreignKey,
|
|
38
|
+
relatedTypeClass: c ?? Reflect.getMetadata("design:type", target, name),
|
|
39
|
+
relatedName: NameParser.parseMember(inverseProperty),
|
|
59
40
|
relatedKey: invKey ? NameParser.parseMember(invKey) : void 0,
|
|
60
41
|
dotNotCreateIndex,
|
|
61
42
|
singleInverseRelation: true
|
|
62
43
|
});
|
|
63
44
|
};
|
|
64
45
|
}
|
|
46
|
+
// export function RelateToOne<T, TRelated>(c: IClassOf<TRelated>,
|
|
47
|
+
// {
|
|
48
|
+
// property: name, inverseProperty: inv, inverseKey: invKey, dotNotCreateIndex
|
|
49
|
+
// }: {
|
|
50
|
+
// property: (item: T) => TRelated;
|
|
51
|
+
// inverseProperty: (item: TRelated) => T;
|
|
52
|
+
// inverseKey?: (item: TRelated) => any;
|
|
53
|
+
// dotNotCreateIndex?: boolean;
|
|
54
|
+
// }
|
|
55
|
+
// ) {
|
|
56
|
+
// return (target: T, key: string): any => {
|
|
57
|
+
// const cn = target.constructor ?? target;
|
|
58
|
+
// const type = SchemaRegistry.model(cn);
|
|
59
|
+
// const r = type.addRelation({
|
|
60
|
+
// type,
|
|
61
|
+
// name: NameParser.parseMember(name),
|
|
62
|
+
// foreignKey: key,
|
|
63
|
+
// relatedTypeClass: c,
|
|
64
|
+
// relatedName: NameParser.parseMember(inv),
|
|
65
|
+
// relatedKey: invKey ? NameParser.parseMember(invKey) : void 0,
|
|
66
|
+
// dotNotCreateIndex,
|
|
67
|
+
// singleInverseRelation: true
|
|
68
|
+
// });
|
|
69
|
+
// };
|
|
70
|
+
// }
|
|
65
71
|
//# sourceMappingURL=Relate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Relate.js","sourceRoot":"","sources":["../../src/decorators/Relate.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,UAAU,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"Relate.js","sourceRoot":"","sources":["../../src/decorators/Relate.ts"],"names":[],"mappings":"AACA,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAiChD,MAAM,UAAU,QAAQ,CAAC,CAAC,EAAE,CAAE;IAE1B,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;QACd,CAAC,GAAG,CAAC,CAAC;QACN,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;KAClB;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE/E,OAAO,CAAC,MAAW,EAAE,UAAkB,EAAO,EAAE;QAE5C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,UAAU,CAAC,WAAW,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,UAAU;YACV,gBAAgB,EAAE,CAAC,IAAK,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC;YAChF,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC;YACpD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5D,iBAAiB;SACpB,CAAC,CAAC;IAEP,CAAC,CAAC;AACN,CAAC;AAID,MAAM,UAAU,WAAW,CAAC,CAAC,EAAE,CAAE;IAE7B,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;QACd,CAAC,GAAG,CAAC,CAAC;QACN,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;KAClB;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAE/E,OAAO,CAAC,MAAW,EAAE,UAAkB,EAAO,EAAE;QAE5C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC;QACxC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,UAAU,CAAC,WAAW,CAAC;YACnB,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,UAAU;YACV,gBAAgB,EAAE,CAAC,IAAK,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC;YAChF,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC;YACpD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5D,iBAAiB;YACjB,qBAAqB,EAAE,IAAI;SAC9B,CAAC,CAAC;IAEP,CAAC,CAAC;AACN,CAAC;AAED,kEAAkE;AAClE,QAAQ;AACR,sFAAsF;AACtF,WAAW;AAEX,2CAA2C;AAC3C,kDAAkD;AAElD,gDAAgD;AAChD,uCAAuC;AACvC,QAAQ;AAER,MAAM;AACN,gDAAgD;AAEhD,mDAAmD;AACnD,iDAAiD;AAEjD,uCAAuC;AACvC,oBAAoB;AACpB,kDAAkD;AAClD,+BAA+B;AAC/B,mCAAmC;AACnC,wDAAwD;AACxD,4EAA4E;AAC5E,iCAAiC;AACjC,0CAA0C;AAC1C,cAAc;AACd,SAAS;AACT,IAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShoppingContext.d.ts","sourceRoot":"","sources":["../../../src/tests/model/ShoppingContext.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ShoppingContext.d.ts","sourceRoot":"","sources":["../../../src/tests/model/ShoppingContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -312,7 +312,8 @@ __decorate([
|
|
|
312
312
|
], OrderItem.prototype, "orderItemID", void 0);
|
|
313
313
|
__decorate([
|
|
314
314
|
Column(),
|
|
315
|
-
RelateTo(
|
|
315
|
+
RelateTo({
|
|
316
|
+
type: () => Order,
|
|
316
317
|
property: (orderItem) => orderItem.order,
|
|
317
318
|
inverseProperty: (order) => order.orderItems
|
|
318
319
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShoppingContext.js","sourceRoot":"","sources":["../../../src/tests/model/ShoppingContext.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,MAAM,MAAM,4BAA4B,CAAC;AAChD,
|
|
1
|
+
{"version":3,"file":"ShoppingContext.js","sourceRoot":"","sources":["../../../src/tests/model/ShoppingContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool-test.d.ts","sourceRoot":"","sources":["../../../src/tests/pool/pool-test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pool-test.d.ts","sourceRoot":"","sources":["../../../src/tests/pool/pool-test.ts"],"names":[],"mappings":"AAMA,0CAwEC"}
|
|
@@ -3,56 +3,64 @@ import assert from "assert";
|
|
|
3
3
|
import ObjectPool from "../../common/ObjectPool.js";
|
|
4
4
|
import sleep from "../../common/sleep.js";
|
|
5
5
|
export default async function () {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
await sleep(10);
|
|
9
|
-
return Promise.resolve({});
|
|
10
|
-
},
|
|
11
|
-
subscribeForRemoval: (po, clear) => void 0,
|
|
12
|
-
destroy(item) {
|
|
13
|
-
return sleep(10);
|
|
14
|
-
},
|
|
15
|
-
maxSize: 5,
|
|
16
|
-
poolSize: 2,
|
|
17
|
-
maxWait: 100
|
|
18
|
-
});
|
|
19
|
-
const c1 = await pool.acquire();
|
|
20
|
-
const c2 = await pool.acquire();
|
|
21
|
-
await c1[Symbol.asyncDisposable]();
|
|
22
|
-
assert.equal(pool.freeSize, 1);
|
|
23
|
-
const c3 = await pool.acquire();
|
|
24
|
-
assert.equal(c1, c3);
|
|
25
|
-
assert.equal(pool.freeSize, 0);
|
|
26
|
-
const c4 = await pool.acquire();
|
|
27
|
-
assert.notEqual(c4, c1);
|
|
28
|
-
assert.notEqual(c4, c2);
|
|
29
|
-
assert.equal(pool.currentSize, 3);
|
|
30
|
-
await c3[Symbol.asyncDisposable]();
|
|
31
|
-
assert.equal(pool.currentSize, 3);
|
|
32
|
-
await c4[Symbol.asyncDisposable]();
|
|
33
|
-
await c2[Symbol.asyncDisposable]();
|
|
34
|
-
assert.equal(pool.currentSize, 2);
|
|
35
|
-
assert.equal(pool.freeSize, 2);
|
|
36
|
-
await pool.acquire();
|
|
37
|
-
await pool.acquire();
|
|
38
|
-
await pool.acquire();
|
|
39
|
-
await pool.acquire();
|
|
40
|
-
const last = await pool.acquire();
|
|
41
|
-
let lastError;
|
|
6
|
+
let id = 1;
|
|
7
|
+
const logs = [];
|
|
42
8
|
try {
|
|
9
|
+
const pool = new ObjectPool({
|
|
10
|
+
asyncFactory: async () => {
|
|
11
|
+
await sleep(1);
|
|
12
|
+
return Promise.resolve({ id: id++, toString() { return `item-${this.id}`; } });
|
|
13
|
+
},
|
|
14
|
+
subscribeForRemoval: (po, clear) => void 0,
|
|
15
|
+
destroy(item) {
|
|
16
|
+
return Promise.resolve();
|
|
17
|
+
},
|
|
18
|
+
maxSize: 5,
|
|
19
|
+
poolSize: 2,
|
|
20
|
+
maxWait: 5000,
|
|
21
|
+
logger: (t) => logs.push(t)
|
|
22
|
+
});
|
|
23
|
+
const c1 = await pool.acquire();
|
|
24
|
+
const c2 = await pool.acquire();
|
|
25
|
+
assert.equal(2, c2.id);
|
|
26
|
+
assert.notStrictEqual(c1, c2);
|
|
27
|
+
await c1[Symbol.asyncDisposable]();
|
|
28
|
+
assert.equal(pool.freeSize, 1);
|
|
29
|
+
const c3 = await pool.acquire();
|
|
30
|
+
assert.strictEqual(c1, c3);
|
|
31
|
+
assert.notStrictEqual(c2, c3);
|
|
32
|
+
assert.strictEqual(pool.freeSize, 0);
|
|
33
|
+
const c4 = await pool.acquire();
|
|
34
|
+
assert.notStrictEqual(c4, c1);
|
|
35
|
+
assert.notStrictEqual(c4, c2);
|
|
36
|
+
assert.strictEqual(pool.currentSize, 3);
|
|
37
|
+
await c4[Symbol.asyncDisposable]();
|
|
38
|
+
await c2[Symbol.asyncDisposable]();
|
|
39
|
+
assert.equal(pool.currentSize, 3);
|
|
40
|
+
assert.equal(pool.freeSize, 2);
|
|
41
|
+
await pool.acquire();
|
|
42
|
+
await pool.acquire();
|
|
43
|
+
await pool.acquire();
|
|
44
|
+
const last = await pool.acquire();
|
|
45
|
+
let lastError;
|
|
46
|
+
try {
|
|
47
|
+
await pool.acquire();
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
lastError = error;
|
|
51
|
+
}
|
|
52
|
+
if (!lastError) {
|
|
53
|
+
assert.fail("Failed");
|
|
54
|
+
}
|
|
55
|
+
// free last after few milliseconds
|
|
56
|
+
setTimeout(() => {
|
|
57
|
+
last[Symbol.asyncDisposable]().catch(console.error);
|
|
58
|
+
}, 10);
|
|
59
|
+
// this should not fail
|
|
43
60
|
await pool.acquire();
|
|
44
61
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
if (!lastError) {
|
|
49
|
-
assert.fail("Failed");
|
|
62
|
+
finally {
|
|
63
|
+
console.log(logs.join("\n"));
|
|
50
64
|
}
|
|
51
|
-
// free last after few milliseconds
|
|
52
|
-
setTimeout(() => {
|
|
53
|
-
last[Symbol.asyncDisposable]().catch(console.error);
|
|
54
|
-
}, 10);
|
|
55
|
-
// this should not fail
|
|
56
|
-
await pool.acquire();
|
|
57
65
|
}
|
|
58
66
|
//# sourceMappingURL=pool-test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool-test.js","sourceRoot":"","sources":["../../../src/tests/pool/pool-test.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,UAAU,MAAM,4BAA4B,CAAC;AACpD,OAAO,KAAK,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pool-test.js","sourceRoot":"","sources":["../../../src/tests/pool/pool-test.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,UAAU,MAAM,4BAA4B,CAAC;AACpD,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAG1C,MAAM,CAAC,OAAO,CAAC,KAAK;IAChB,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,MAAM,IAAI,GAAG,EAAc,CAAC;IAC5B,IAAI;QACA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;YACxB,YAAY,EAAE,KAAK,IAAI,EAAE;gBACrB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;gBACf,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,QAAQ,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;YAC1C,OAAO,CAAC,IAAI;gBACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YACD,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAEhC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAEvB,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAE9B,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAEnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE/B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAErC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAE9B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAExC,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,MAAM,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAEnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAElC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE/B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,SAAS,CAAC;QACd,IAAI;YACA,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;SACxB;QAAC,OAAO,KAAK,EAAE;YACZ,SAAS,GAAG,KAAK,CAAC;SACrB;QACD,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzB;QAED,mCAAmC;QACnC,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,uBAAuB;QACvB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;KACxB;YAAS;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KAChC;AACL,CAAC"}
|