@decaf-ts/core 0.8.30 → 0.8.31
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/README.md +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/identity/decorators.js +1 -1
- package/lib/esm/identity/decorators.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/model/SequenceModel.js +2 -1
- package/lib/esm/model/SequenceModel.js.map +1 -1
- package/lib/esm/model/construction.d.ts +13 -0
- package/lib/esm/model/construction.js +286 -1
- package/lib/esm/model/construction.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +1 -20
- package/lib/esm/model/decorators.js +9 -41
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/model/index.d.ts +1 -0
- package/lib/esm/model/index.js +1 -0
- package/lib/esm/model/index.js.map +1 -1
- package/lib/esm/model/indexing.d.ts +20 -0
- package/lib/esm/model/indexing.js +37 -0
- package/lib/esm/model/indexing.js.map +1 -0
- package/lib/esm/persistence/Adapter.js +4 -2
- package/lib/esm/persistence/Adapter.js.map +1 -1
- package/lib/esm/repository/decorators.js +2 -1
- package/lib/esm/repository/decorators.js.map +1 -1
- package/lib/esm/tasks/TaskEngine.js +12 -5
- package/lib/esm/tasks/TaskEngine.js.map +1 -1
- package/lib/esm/tasks/TaskTracker.d.ts +2 -0
- package/lib/esm/tasks/TaskTracker.js +26 -3
- package/lib/esm/tasks/TaskTracker.js.map +1 -1
- package/lib/esm/tasks/models/TaskIOSerializer.d.ts +8 -2
- package/lib/esm/tasks/models/TaskIOSerializer.js +70 -30
- package/lib/esm/tasks/models/TaskIOSerializer.js.map +1 -1
- package/lib/identity/decorators.cjs +2 -2
- package/lib/identity/decorators.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/model/SequenceModel.cjs +2 -1
- package/lib/model/SequenceModel.js.map +1 -1
- package/lib/model/construction.cjs +293 -0
- package/lib/model/construction.d.ts +13 -0
- package/lib/model/construction.js.map +1 -1
- package/lib/model/decorators.cjs +7 -40
- package/lib/model/decorators.d.ts +1 -20
- package/lib/model/decorators.js.map +1 -1
- package/lib/model/index.cjs +1 -0
- package/lib/model/index.d.ts +1 -0
- package/lib/model/index.js.map +1 -1
- package/lib/model/indexing.cjs +40 -0
- package/lib/model/indexing.d.ts +20 -0
- package/lib/model/indexing.js.map +1 -0
- package/lib/persistence/Adapter.cjs +4 -2
- package/lib/persistence/Adapter.js.map +1 -1
- package/lib/repository/decorators.cjs +4 -3
- package/lib/repository/decorators.js.map +1 -1
- package/lib/tasks/TaskEngine.cjs +12 -5
- package/lib/tasks/TaskEngine.js.map +1 -1
- package/lib/tasks/TaskTracker.cjs +26 -3
- package/lib/tasks/TaskTracker.d.ts +2 -0
- package/lib/tasks/TaskTracker.js.map +1 -1
- package/lib/tasks/models/TaskIOSerializer.cjs +70 -30
- package/lib/tasks/models/TaskIOSerializer.d.ts +8 -2
- package/lib/tasks/models/TaskIOSerializer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Model, required } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { DefaultSequenceOptions, } from "./../interfaces/SequenceOptions.js";
|
|
3
3
|
import { DBKeys, generated, InternalError, onCreate, readonly, } from "@decaf-ts/db-decorators";
|
|
4
|
-
import { index } from "./../model/decorators.js";
|
|
5
4
|
import { OrderDirection } from "./../repository/constants.js";
|
|
6
5
|
import { apply, Decoration, Metadata, prop, propMetadata, } from "@decaf-ts/decoration";
|
|
6
|
+
import { index } from "./../model/indexing.js";
|
|
7
7
|
const defaultPkPriority = 60; // Default priority for primary key to run latter than other properties
|
|
8
8
|
/**
|
|
9
9
|
* @description Callback function for primary key creation
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/identity/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,sBAAsB,GAEvB,2CAAsC;AACvC,OAAO,EACL,MAAM,EACN,SAAS,EAET,aAAa,EACb,QAAQ,EACR,QAAQ,GACT,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/identity/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,sBAAsB,GAEvB,2CAAsC;AACvC,OAAO,EACL,MAAM,EACN,SAAS,EAET,aAAa,EACb,QAAQ,EACR,QAAQ,GACT,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,qCAAgC;AACzD,OAAO,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,EAAE,+BAA0B;AAC1C,MAAM,iBAAiB,GAAG,EAAE,CAAC,CAAC,uEAAuE;AAErG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAM9B,OAAqB,EACrB,IAAO,EACP,GAAY,EACZ,KAAQ;IAER,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,kBAAkB,GAAG,UACzB,MAAS,EACT,WAAmB,EACnB,KAA+B;QAE/B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,IAAI,aAAa,CACrB,kCAAkC,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,kBAAkB,CAAC,KAAK,EAAE,GAAa,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAwB,EAAE,SAAqB;IACnE,OAAO,SAAS,KAAK,CAAC,GAAQ,EAAE,IAAS;QACvC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACtD,IACE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAC/C,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAC3B;gBAED,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC1B,CAAC;QACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC3C,OAAO,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAC/D,0CAA0C;YAC1C,KAAK,MAAM;gBACT,OAAO,CAAC,SAAS;oBACf,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBACvE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC3C,OAAO,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAC/D,0CAA0C;YAC1C,KAAK,MAAM;gBACT,OAAO,CAAC,SAAS;oBACf,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBACtE,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC3C,OAAO,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,mBAAmB,CAAC,CAAC;YAC/D,0CAA0C;YAC1C,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;gBACtB,OAAO,CAAC,SAAS;oBACf,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBACtE,MAAM;YACR,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ;gBACX,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;gBACzB,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YAC7C,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC3B,CAAC;QAED,MAAM,IAAI,GAAG;YACX,IAAI,EAAE;YACN,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;YAC/C,QAAQ,EAAE;YACV,QAAQ,EAAE;YACV,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC;YACpD,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC;SACzC,CAAC;QACF,IAAI,OAAO,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,EAAE,CAChB,IAA4E;IAE5E,gEAAgE;IAChE,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;IAC5E,OAAO,yBAAyB,CAAC,SAAS,CAAC;IAC3C,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,yBAAyB,EAAE,IAAI,CAAoB,CAAC;IAC7E,OAAO,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;SAC7B,MAAM,CAAC;QACN,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;KAC9C,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export * from "./persistence";
|
|
|
21
21
|
* @const VERSION
|
|
22
22
|
* @memberOf module:core
|
|
23
23
|
*/
|
|
24
|
-
export declare const VERSION = "0.8.
|
|
24
|
+
export declare const VERSION = "0.8.30";
|
|
25
25
|
/**
|
|
26
26
|
* @description Stores the current package version
|
|
27
27
|
* @summary A constant representing the version of the core package
|
package/lib/esm/index.js
CHANGED
|
@@ -31,7 +31,7 @@ export * from "./persistence/index.js";
|
|
|
31
31
|
* @const VERSION
|
|
32
32
|
* @memberOf module:core
|
|
33
33
|
*/
|
|
34
|
-
export const VERSION = "0.8.
|
|
34
|
+
export const VERSION = "0.8.30";
|
|
35
35
|
/**
|
|
36
36
|
* @description Stores the current package version
|
|
37
37
|
* @summary A constant representing the version of the core package
|
|
@@ -9,8 +9,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import { model, required } from "@decaf-ts/decorator-validation";
|
|
11
11
|
import { BaseModel } from "./BaseModel.js";
|
|
12
|
-
import {
|
|
12
|
+
import { table } from "./decorators.js";
|
|
13
13
|
import { pk } from "./../identity/decorators.js";
|
|
14
|
+
import { index } from "./indexing.js";
|
|
14
15
|
/**
|
|
15
16
|
* @description RAM sequence model for auto-incrementing values
|
|
16
17
|
* @summary A model class that represents a sequence in the RAM adapter. It stores the current value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SequenceModel.js","sourceRoot":"","sources":["../../../src/model/SequenceModel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"SequenceModel.js","sourceRoot":"","sources":["../../../src/model/SequenceModel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,KAAK,EAAE,wBAAqB;AACrC,OAAO,EAAE,EAAE,EAAE,oCAA+B;AAC5C,OAAO,EAAE,KAAK,EAAE,sBAAmB;AACnC;;;;;;;;;;;;;;;;;GAiBG;AAGI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAAS;IAe1C,YAAY,GAA6B;QACvC,KAAK,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF,CAAA;AAbC;IADC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;yCAC3B;AAQZ;IAFC,QAAQ,EAAE;IACV,KAAK,EAAE;;8CACkB;AAbf,aAAa;IAFzB,KAAK,CAAC,YAAY,CAAC;IACnB,KAAK,EAAE;;GACK,aAAa,CAkBzB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { Repo } from "../repository/Repository";
|
|
3
3
|
import { RelationsMetadata } from "./types";
|
|
4
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
4
5
|
import { AdapterFlags, ContextOf } from "../persistence/types";
|
|
5
6
|
import { Context } from "../persistence/Context";
|
|
6
7
|
/**
|
|
@@ -323,6 +324,18 @@ export declare function oneToManyOnUpdate<M extends Model, R extends Repo<M>>(th
|
|
|
323
324
|
* oneToManyOnDelete-->>Caller: void
|
|
324
325
|
*/
|
|
325
326
|
export declare function oneToManyOnDelete<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
|
|
327
|
+
export declare function manyToOneOnCreate<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
|
|
328
|
+
export declare function validBidirectionalRelation<M extends Model>(model: M, data: RelationsMetadata): boolean;
|
|
329
|
+
export declare function manyToOneOnUpdate<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
|
|
330
|
+
export declare function manyToOneOnDelete<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
|
|
331
|
+
export declare function manyToManyOnCreate<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, modelA: M): Promise<void>;
|
|
332
|
+
export declare function getAndConstructJunctionTable(modelA: Model, modelB: Model | any, metadata?: RelationsMetadata): {
|
|
333
|
+
fkA: string;
|
|
334
|
+
fkB: string;
|
|
335
|
+
JunctionModel: Constructor<Model<false>>;
|
|
336
|
+
};
|
|
337
|
+
export declare function manyToManyOnUpdate<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
|
|
338
|
+
export declare function manyToManyOnDelete<M extends Model, R extends Repo<M>>(this: R, context: ContextOf<R>, data: RelationsMetadata, key: keyof M, model: M): Promise<void>;
|
|
326
339
|
/**
|
|
327
340
|
* @description Generates a key for caching populated model relationships
|
|
328
341
|
* @summary Creates a unique key for storing and retrieving populated model relationships in the cache
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { isEqual, Model, ValidationKeys, } from "@decaf-ts/decorator-validation";
|
|
1
|
+
import { model, isEqual, Model, required, ValidationKeys, } from "@decaf-ts/decorator-validation";
|
|
2
2
|
import { Repository } from "./../repository/Repository.js";
|
|
3
3
|
import { InternalError, NotFoundError } from "@decaf-ts/db-decorators";
|
|
4
4
|
import { PersistenceKeys } from "./../persistence/constants.js";
|
|
5
5
|
import { Cascade } from "./../repository/constants.js";
|
|
6
6
|
import { Metadata } from "@decaf-ts/decoration";
|
|
7
|
+
import { pk } from "./../identity/decorators.js";
|
|
7
8
|
/**
|
|
8
9
|
* @description Creates or updates a model instance
|
|
9
10
|
* @summary Determines whether to create a new model or update an existing one based on the presence of a primary key
|
|
@@ -193,6 +194,8 @@ export async function oneToOneOnCreate(context, data, key, model) {
|
|
|
193
194
|
const propertyValue = model[key];
|
|
194
195
|
if (!propertyValue)
|
|
195
196
|
return;
|
|
197
|
+
if (!validBidirectionalRelation(model, data))
|
|
198
|
+
return;
|
|
196
199
|
if (typeof propertyValue !== "object") {
|
|
197
200
|
const innerRepo = repositoryFromTypeMetadata(model, key, this.adapter.alias);
|
|
198
201
|
const read = await innerRepo.read(propertyValue, context);
|
|
@@ -393,6 +396,8 @@ export async function oneToManyOnCreate(context, data, key, model) {
|
|
|
393
396
|
const propertyValues = model[key];
|
|
394
397
|
if (!propertyValues || !propertyValues.length)
|
|
395
398
|
return;
|
|
399
|
+
if (!validBidirectionalRelation(model, data))
|
|
400
|
+
return;
|
|
396
401
|
const arrayType = typeof propertyValues[0];
|
|
397
402
|
if (!propertyValues.every((item) => typeof item === arrayType))
|
|
398
403
|
throw new InternalError(`Invalid operation. All elements of property ${key} must match the same type.`);
|
|
@@ -561,6 +566,286 @@ export async function oneToManyOnDelete(context, data, key, model) {
|
|
|
561
566
|
}
|
|
562
567
|
model[key] = ids;
|
|
563
568
|
}
|
|
569
|
+
export async function manyToOneOnCreate(context, data, key, model) {
|
|
570
|
+
const propertyValue = model[key];
|
|
571
|
+
if (!propertyValue)
|
|
572
|
+
return;
|
|
573
|
+
if (!validBidirectionalRelation(model, data))
|
|
574
|
+
return;
|
|
575
|
+
const log = context.logger.for(manyToOneOnCreate);
|
|
576
|
+
// If it's a primitive value (ID), read the existing record
|
|
577
|
+
if (typeof propertyValue !== "object") {
|
|
578
|
+
const innerRepo = repositoryFromTypeMetadata(model, key, this.adapter.alias);
|
|
579
|
+
const read = await innerRepo.read(propertyValue);
|
|
580
|
+
await cacheModelForPopulate(context, model, key, propertyValue, read);
|
|
581
|
+
model[key] = propertyValue;
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
584
|
+
const constructor = data.class instanceof Model ? data.class.constructor : data.class;
|
|
585
|
+
if (!constructor)
|
|
586
|
+
throw new InternalError(`Could not find model ${data.class}`);
|
|
587
|
+
log.info(`Creating or updating many-to-one model: ${JSON.stringify(propertyValue)}`);
|
|
588
|
+
const record = await createOrUpdate(propertyValue, context, this.adapter.alias);
|
|
589
|
+
const pk = Model.pk(record);
|
|
590
|
+
log.info(`caching: ${JSON.stringify(record)} under ${record[pk]}`);
|
|
591
|
+
await cacheModelForPopulate(context, model, key, record[pk], record);
|
|
592
|
+
model[key] = record[pk];
|
|
593
|
+
}
|
|
594
|
+
export function validBidirectionalRelation(model, data) {
|
|
595
|
+
let metaReverseRelation;
|
|
596
|
+
const relationConstructor = typeof data.class === "function" && data.class.name
|
|
597
|
+
? data.class
|
|
598
|
+
: data.class();
|
|
599
|
+
// get the inverse relation metadata
|
|
600
|
+
const metaReverseRelationMeta = Metadata.get(relationConstructor, PersistenceKeys.RELATIONS);
|
|
601
|
+
if (metaReverseRelationMeta)
|
|
602
|
+
metaReverseRelation = Object.values(metaReverseRelationMeta)?.find((rel) => {
|
|
603
|
+
const relationConstructor = typeof rel.class === "function" && rel.class.name
|
|
604
|
+
? rel.class
|
|
605
|
+
: rel.class();
|
|
606
|
+
return model instanceof relationConstructor;
|
|
607
|
+
});
|
|
608
|
+
// If populate is set to true on both sides, we should throw an error.
|
|
609
|
+
if (metaReverseRelation?.populate === true && data?.populate === true) {
|
|
610
|
+
throw new InternalError("Bidirectional populate is not allowed. Please set populate to false on one side of the relation.");
|
|
611
|
+
}
|
|
612
|
+
return true;
|
|
613
|
+
}
|
|
614
|
+
export async function manyToOneOnUpdate(context, data, key, model) {
|
|
615
|
+
const { cascade } = data;
|
|
616
|
+
if (cascade.update !== Cascade.CASCADE)
|
|
617
|
+
return;
|
|
618
|
+
return manyToOneOnCreate.apply(this, [
|
|
619
|
+
context,
|
|
620
|
+
data,
|
|
621
|
+
key,
|
|
622
|
+
model,
|
|
623
|
+
]);
|
|
624
|
+
}
|
|
625
|
+
export async function manyToOneOnDelete(context, data, key, model) {
|
|
626
|
+
if (data.cascade.delete !== Cascade.CASCADE)
|
|
627
|
+
return;
|
|
628
|
+
const value = model[key];
|
|
629
|
+
if (!value)
|
|
630
|
+
return;
|
|
631
|
+
const isInstantiated = typeof value === "object";
|
|
632
|
+
const repo = isInstantiated
|
|
633
|
+
? Repository.forModel(value, this.adapter.alias)
|
|
634
|
+
: repositoryFromTypeMetadata(model, key, this.adapter.alias);
|
|
635
|
+
const repoId = isInstantiated ? value[repo["pk"]] : value;
|
|
636
|
+
const deleted = await repo.delete(repoId);
|
|
637
|
+
await cacheModelForPopulate(context, model, key, repoId, deleted);
|
|
638
|
+
model[key] = repoId;
|
|
639
|
+
}
|
|
640
|
+
export async function manyToManyOnCreate(context, data, key, modelA) {
|
|
641
|
+
console.warn("DECORATOR manyToMany UNDER DEVELOPMENT");
|
|
642
|
+
const propertyValues = modelA[key];
|
|
643
|
+
if (!propertyValues || !propertyValues.length)
|
|
644
|
+
return;
|
|
645
|
+
if (!validBidirectionalRelation(modelA, data))
|
|
646
|
+
return;
|
|
647
|
+
const arrayType = typeof propertyValues[0];
|
|
648
|
+
if (!propertyValues.every((item) => typeof item === arrayType))
|
|
649
|
+
throw new InternalError(`Invalid operation. All elements of property ${key} must match the same type.`);
|
|
650
|
+
const log = context.logger.for(manyToManyOnCreate);
|
|
651
|
+
const uniqueValues = new Set([...propertyValues]);
|
|
652
|
+
// If it's a primitive value (ID), read the existing record
|
|
653
|
+
if (arrayType !== "object") {
|
|
654
|
+
const repo = repositoryFromTypeMetadata(modelA, key, this.adapter.alias);
|
|
655
|
+
const read = await repo.readAll([...uniqueValues.values()], context);
|
|
656
|
+
for (let i = 0; i < read.length; i++) {
|
|
657
|
+
const model = read[i];
|
|
658
|
+
log.info(`FOUND MANY TO MANY VALUE: ${JSON.stringify(model)}`);
|
|
659
|
+
await cacheModelForPopulate(context, model, key, [...uniqueValues.values()][i], read);
|
|
660
|
+
}
|
|
661
|
+
// Create junction table entries
|
|
662
|
+
await getOrCreateJunctionModel.apply(this, [
|
|
663
|
+
modelA,
|
|
664
|
+
[...propertyValues],
|
|
665
|
+
log,
|
|
666
|
+
context,
|
|
667
|
+
data,
|
|
668
|
+
]);
|
|
669
|
+
modelA[key] = [...uniqueValues];
|
|
670
|
+
log.info(`SET MANY TO MANY IDS: ${modelA[key]}`);
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
const pkName = Model.pk(propertyValues[0].constructor);
|
|
674
|
+
const result = new Set();
|
|
675
|
+
for (const propertyValue of propertyValues) {
|
|
676
|
+
log.info(`Creating or updating many-to-many model: ${JSON.stringify(propertyValue)}`);
|
|
677
|
+
const record = await createOrUpdate(propertyValue, context, this.adapter.alias);
|
|
678
|
+
log.info(`caching: ${JSON.stringify(record)} under ${record[pkName]}`);
|
|
679
|
+
await cacheModelForPopulate(context, modelA, key, record[pkName], record);
|
|
680
|
+
log.info(`Creating or updating many-to-many model: ${JSON.stringify(propertyValue)}`);
|
|
681
|
+
propertyValue.id = record.id;
|
|
682
|
+
result.add(record[pkName]);
|
|
683
|
+
}
|
|
684
|
+
// Get or generate the ID for modelA before persisting junction records
|
|
685
|
+
const modelPkName = Model.pk(modelA.constructor);
|
|
686
|
+
if (typeof modelA[modelPkName] === "undefined") {
|
|
687
|
+
const nextId = await getNextId(this, modelA, context);
|
|
688
|
+
modelA[modelPkName] = nextId;
|
|
689
|
+
}
|
|
690
|
+
// Create junction table entries
|
|
691
|
+
const JunctionModel = await getOrCreateJunctionModel.apply(this, [modelA, propertyValues, log, context, data]);
|
|
692
|
+
// This will require creating junction repository and storing the relationships
|
|
693
|
+
log.info(`Junction model created: ${JunctionModel.name}`);
|
|
694
|
+
modelA[key] = [...result];
|
|
695
|
+
}
|
|
696
|
+
async function getNextId(repo, modelA, context) {
|
|
697
|
+
// Get the next id for the model before it is persisted so we can put it in the junction table
|
|
698
|
+
const modelPkName = Model.pk(modelA.constructor);
|
|
699
|
+
const modelAId = modelA[modelPkName];
|
|
700
|
+
if (modelAId !== undefined) {
|
|
701
|
+
return modelAId;
|
|
702
|
+
}
|
|
703
|
+
const pkProps = Model.sequenceFor(modelA.constructor);
|
|
704
|
+
if (!pkProps?.name) {
|
|
705
|
+
pkProps.name = Model.sequenceName(modelA, "pk");
|
|
706
|
+
}
|
|
707
|
+
let sequence;
|
|
708
|
+
try {
|
|
709
|
+
// Access adapter through the public property 'db' or use type assertion
|
|
710
|
+
sequence = await repo.adapter.Sequence(pkProps);
|
|
711
|
+
return await sequence.next(context);
|
|
712
|
+
}
|
|
713
|
+
catch (e) {
|
|
714
|
+
throw new InternalError(`Failed to instantiate Sequence ${pkProps.name}: ${e}`);
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
async function getOrCreateJunctionModel(modelA, modelsB, log, context, metadata) {
|
|
718
|
+
const { JunctionModel, fkA, fkB } = getAndConstructJunctionTable(modelA, modelsB[0], metadata);
|
|
719
|
+
const recordIds = [];
|
|
720
|
+
for (const modelB of modelsB) {
|
|
721
|
+
log.info(`Creating or updating many-to-many junction model: ${JSON.stringify(modelB)}`);
|
|
722
|
+
// If it is a model, find and store fk content, else it is fk value directly
|
|
723
|
+
const junctionRegister = {
|
|
724
|
+
[fkA]: modelA instanceof Model
|
|
725
|
+
? modelA[Model.pk(modelA.constructor)]
|
|
726
|
+
: modelA,
|
|
727
|
+
[fkB]: modelB instanceof Model
|
|
728
|
+
? modelB[Model.pk(modelB.constructor)]
|
|
729
|
+
: modelB,
|
|
730
|
+
};
|
|
731
|
+
const record = await createOrUpdate(new JunctionModel(junctionRegister), context, this.adapter.alias);
|
|
732
|
+
if (record?.id)
|
|
733
|
+
recordIds.push(record.id);
|
|
734
|
+
}
|
|
735
|
+
if (recordIds.length === modelsB?.length) {
|
|
736
|
+
console.log(`All junction records created successfully for table ${JunctionModel?.name}`);
|
|
737
|
+
const repository = Repository.forModel(JunctionModel);
|
|
738
|
+
const results = await repository?.readAll(recordIds);
|
|
739
|
+
console.log("results:", results);
|
|
740
|
+
}
|
|
741
|
+
else
|
|
742
|
+
console.error(`Some junction records failed to be created for table ${JunctionModel?.name}`);
|
|
743
|
+
return JunctionModel;
|
|
744
|
+
}
|
|
745
|
+
export function getAndConstructJunctionTable(modelA, modelB, metadata) {
|
|
746
|
+
// Get the name of the table and fks
|
|
747
|
+
const modelAName = Model.tableName(modelA);
|
|
748
|
+
let modelBName;
|
|
749
|
+
if (modelB instanceof Model)
|
|
750
|
+
modelBName = Model.tableName(modelB);
|
|
751
|
+
else if (Model.isModel(modelB) &&
|
|
752
|
+
typeof modelB === "function") {
|
|
753
|
+
modelBName = modelB.name ? modelB.name : modelB()?.name;
|
|
754
|
+
}
|
|
755
|
+
else if (metadata?.class) {
|
|
756
|
+
const clazz = typeof metadata.class === "function" && !metadata.class.name
|
|
757
|
+
? metadata.class()
|
|
758
|
+
: metadata.class;
|
|
759
|
+
modelBName = Model.tableName(clazz);
|
|
760
|
+
}
|
|
761
|
+
if (!modelAName || !modelBName)
|
|
762
|
+
throw new InternalError("Missing tablenames to create junction table");
|
|
763
|
+
const junctionTableName = metadata?.joinTable?.name
|
|
764
|
+
? metadata?.joinTable?.name
|
|
765
|
+
: `${modelAName}_${modelBName}`;
|
|
766
|
+
const fkA = `${modelAName?.toLowerCase()}_fk`;
|
|
767
|
+
const fkB = `${modelBName?.toLowerCase()}_fk`;
|
|
768
|
+
// Anonymous class to be able to change name
|
|
769
|
+
const DynamicJunctionModel = class extends Model {
|
|
770
|
+
constructor(arg) {
|
|
771
|
+
super(arg);
|
|
772
|
+
}
|
|
773
|
+
};
|
|
774
|
+
Object.defineProperty(DynamicJunctionModel, "name", {
|
|
775
|
+
value: junctionTableName,
|
|
776
|
+
writable: false,
|
|
777
|
+
});
|
|
778
|
+
// Apply the decorators
|
|
779
|
+
pk({ type: Number })(DynamicJunctionModel.prototype, "id");
|
|
780
|
+
required()(DynamicJunctionModel.prototype, fkA);
|
|
781
|
+
required()(DynamicJunctionModel.prototype, fkB);
|
|
782
|
+
// Apply @model() decorator to the class
|
|
783
|
+
const DecoratedModel = model()(DynamicJunctionModel);
|
|
784
|
+
Metadata.set(DynamicJunctionModel, PersistenceKeys.TABLE, junctionTableName);
|
|
785
|
+
return {
|
|
786
|
+
fkA,
|
|
787
|
+
fkB,
|
|
788
|
+
JunctionModel: DecoratedModel,
|
|
789
|
+
};
|
|
790
|
+
}
|
|
791
|
+
export async function manyToManyOnUpdate(context, data, key, model) {
|
|
792
|
+
console.warn("method not yet implemented");
|
|
793
|
+
const { cascade } = data;
|
|
794
|
+
if (cascade.update !== Cascade.CASCADE)
|
|
795
|
+
return;
|
|
796
|
+
return manyToManyOnCreate.apply(this, [
|
|
797
|
+
context,
|
|
798
|
+
data,
|
|
799
|
+
key,
|
|
800
|
+
model,
|
|
801
|
+
]);
|
|
802
|
+
}
|
|
803
|
+
export async function manyToManyOnDelete(context, data, key, model) {
|
|
804
|
+
console.warn("Method under development");
|
|
805
|
+
if (data.cascade.delete !== Cascade.CASCADE)
|
|
806
|
+
return;
|
|
807
|
+
const values = model[key];
|
|
808
|
+
if (!values || !values.length)
|
|
809
|
+
return;
|
|
810
|
+
const arrayType = typeof values[0];
|
|
811
|
+
const areAllSameType = values.every((item) => typeof item === arrayType);
|
|
812
|
+
if (!areAllSameType)
|
|
813
|
+
throw new InternalError(`Invalid operation. All elements of property ${key} must match the same type.`);
|
|
814
|
+
// Delete the values and the junction table entries
|
|
815
|
+
const clazz = typeof data.class === "function" && !data.class.name
|
|
816
|
+
? data.class()
|
|
817
|
+
: data.class;
|
|
818
|
+
const isInstantiated = arrayType === "object";
|
|
819
|
+
const repo = isInstantiated
|
|
820
|
+
? Repository.forModel(clazz, this.adapter.alias)
|
|
821
|
+
: repositoryFromTypeMetadata(model, key, this.adapter.alias);
|
|
822
|
+
const uniqueValues = new Set([
|
|
823
|
+
...(isInstantiated
|
|
824
|
+
? values.map((v) => v[repo["pk"]])
|
|
825
|
+
: values),
|
|
826
|
+
]);
|
|
827
|
+
const ids = [...uniqueValues.values()];
|
|
828
|
+
let deleted;
|
|
829
|
+
try {
|
|
830
|
+
deleted = await repo.deleteAll(ids, context);
|
|
831
|
+
}
|
|
832
|
+
catch (e) {
|
|
833
|
+
context.logger.error(`Failed to delete all records`, e);
|
|
834
|
+
throw e;
|
|
835
|
+
}
|
|
836
|
+
let del;
|
|
837
|
+
for (let i = 0; i < deleted.length; i++) {
|
|
838
|
+
del = deleted[i];
|
|
839
|
+
try {
|
|
840
|
+
await cacheModelForPopulate(context, model, key, ids[i], del);
|
|
841
|
+
}
|
|
842
|
+
catch (e) {
|
|
843
|
+
context.logger.error(`Failed to cache record ${ids[i]} with key ${key} and model ${JSON.stringify(model, undefined, 2)} `, e);
|
|
844
|
+
throw e;
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
model[key] = ids;
|
|
848
|
+
}
|
|
564
849
|
/**
|
|
565
850
|
* @description Generates a key for caching populated model relationships
|
|
566
851
|
* @summary Creates a unique key for storing and retrieving populated model relationships in the cache
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"construction.js","sourceRoot":"","sources":["../../../src/model/construction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAEL,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAQ,UAAU,EAAE,sCAAiC;AAE5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,sCAAiC;AAC3D,OAAO,EAAE,OAAO,EAAE,qCAAgC;AAClD,OAAO,EAAe,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAI7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAQ,EACR,OAAmB,EACnB,KAAa,EACb,UAAoB,EACpB,SAA+B;IAE/B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW;YACd,MAAM,IAAI,aAAa,CAAC,wBAAwB,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,UAAU,GAAG,UAAU,CAAC,QAAQ,CAC9B,WAA6C,EAC7C,KAAK,CACN,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAErE,IAAI,MAAS,CAAC;IAEd,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3E,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,IAAI,CACN,eAAe,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,sBAAsB,CACvE,CAAC;QACF,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACjD,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,CAAC,YAAY,aAAa,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,CAAC;YACV,CAAC;YACD,GAAG,CAAC,IAAI,CACN,gCAAgC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CACpE,CAAC;YACF,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AACD,EAAE;AACF,4CAA4C;AAC5C,qBAAqB;AACrB,4BAA4B;AAC5B,KAAK;AACL,iBAAiB;AACjB,yBAAyB;AACzB,mBAAmB;AACnB,yBAAyB;AACzB,kBAAkB;AAClB,wDAAwD;AACxD,uBAAuB;AACvB,iEAAiE;AACjE,wBAAwB;AACxB,iCAAiC;AACjC,+DAA+D;AAC/D,WAAW;AACX,oDAAoD;AACpD,uDAAuD;AACvD,cAAc;AACd,SAAS;AACT,sDAAsD;AACtD,MAAM;AACN,mDAAmD;AACnD,EAAE;AACF,wGAAwG;AACxG,EAAE;AACF,kCAAkC;AAClC,uCAAuC;AACvC,EAAE;AACF,QAAQ;AACR,OAAO;AACP,EAAE;AACF,8BAA8B;AAC9B,eAAe;AACf,MAAM;AACN,mBAAmB;AACnB,EAAE;AACF,oEAAoE;AACpE,kFAAkF;AAClF,wDAAwD;AACxD,aAAa;AACb,gBAAgB;AAChB,+EAA+E;AAC/E,SAAS;AACT,YAAY;AACZ,0DAA0D;AAC1D,kEAAkE;AAClE,yBAAyB;AACzB,6CAA6C;AAC7C,mBAAmB;AACnB,UAAU;AACV,kBAAkB;AAClB,8EAA8E;AAC9E,WAAW;AACX,0DAA0D;AAC1D,QAAQ;AACR,EAAE;AACF,kDAAkD;AAClD,MAAM;AACN,mBAAmB;AACnB,IAAI;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAEpC,OAAqB,EACrB,IAAuB,EACvB,GAAY,EACZ,KAAQ;IAER,MAAM,aAAa,GAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,0BAA0B,CAC1C,KAAK,EACL,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,KAAK,CACnB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACrE,KAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;QACpC,OAAO;IACT,CAAC;IACD,MAAM,WAAW,GAAgB,CAC/B,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;QAClD,CAAC,CAAE,IAAI,CAAC,KAA2B,EAAE;QACrC,CAAC,CAAC,IAAI,CAAC,KAAK,CACA,CAAC;IAEjB,IAAI,CAAC,WAAW;QACd,MAAM,IAAI,aAAa,CAAC,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,MAAM,IAAI,GAAc,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,MAAM,IAAI;SACvB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;SACzB,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,KAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAEpC,OAAqB,EACrB,IAAuB,EACvB,GAAY,EACZ,KAAQ;IAER,MAAM,aAAa,GAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,aAAa;QAAE,OAAO;IAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO;QAAE,OAAO;IAEpD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,0BAA0B,CAC1C,KAAK,EACL,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,KAAK,CACnB,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,SAAS;aACzB,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;aACzB,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAChC,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACrE,KAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;QACpC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAClC,KAAK,CAAC,GAAG,CAAM,EACf,OAAO,EACP,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;IACF,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,qBAAqB,CACzB,OAAO,EACP,KAAK,EACL,GAAG,EACH,OAAO,CAAC,EAAa,CAAW,EAChC,OAAO,CACR,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,EAAa,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAEpC,OAAqB,EACrB,IAAuB,EACvB,GAAY,EACZ,KAAQ;IAER,MAAM,aAAa,GAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,aAAa;QAAE,OAAO;IAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO;QAAE,OAAO;IACpD,MAAM,SAAS,GAAY,0BAA0B,CACnD,KAAK,EACL,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,KAAK,CACnB,CAAC;IACF,IAAI,OAAU,CAAC;IACf,IAAI,CAAC,CAAC,aAAa,YAAY,KAAK,CAAC;QACnC,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAW,EAAE,OAAO,CAAC,CAAC;;QAEhE,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAC7B,KAAK,CAAC,GAAG,CAAO,CAAC,SAAS,CAAC,EAAa,CAAW,EACpD,OAAO,CACR,CAAC;IACJ,MAAM,qBAAqB,CACzB,OAAO,EACP,KAAK,EACL,GAAG,EACH,OAAO,CAAC,SAAS,CAAC,EAAE,CAAW,EAC/B,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAErC,OAAqB,EACrB,IAAuB,EACvB,GAAY,EACZ,KAAQ;IAER,MAAM,cAAc,GAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,MAAM;QAAE,OAAO;IACtD,MAAM,SAAS,GAAG,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,SAAS,CAAC;QACjE,MAAM,IAAI,aAAa,CACrB,+CAA+C,GAAa,4BAA4B,CACzF,CAAC;IACJ,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAClD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9D,MAAM,qBAAqB,CACzB,OAAO,EACP,KAAK,EACL,GAAG,EACH,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAC7B,IAAI,CACL,CAAC;QACJ,CAAC;QACD,8BAA8B;QAC9B,kDAAkD;QAClD,EAAE;QACF,IAAI;QACH,KAAa,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,wBAAyB,KAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxD,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAgB,IAAI,GAAG,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;QAC/B,GAAG,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,CAAC,EACD,OAAO,EACP,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvE,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,CAAC;IAEA,KAAa,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAErC,OAAqB,EACrB,IAAuB,EACvB,GAAY,EACZ,KAAQ;IAER,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO;QAAE,OAAO;IAC/C,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAW,EAAE;QAC1C,OAAO;QACP,IAAI;QACJ,GAAkB;QAClB,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAErC,OAAqB,EACrB,IAAuB,EACvB,GAAY,EACZ,KAAQ;IAER,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO;QAAE,OAAO;IACpD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAQ,CAAC;IACjC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO;IACtC,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC;IAC9E,IAAI,CAAC,cAAc;QACjB,MAAM,IAAI,aAAa,CACrB,+CAA+C,GAAa,4BAA4B,CACzF,CAAC;IACJ,MAAM,KAAK,GACT,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;QAClD,CAAC,CAAE,IAAI,CAAC,KAAa,EAAE;QACvB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAEjB,MAAM,cAAc,GAAG,SAAS,KAAK,QAAQ,CAAC;IAC9C,MAAM,IAAI,GAAG,cAAc;QACzB,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAChD,CAAC,CAAC,0BAA0B,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE/D,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;QAC3B,GAAG,CAAC,cAAc;YAChB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAW,CAAC,CAAC;YACjE,CAAC,CAAC,MAAM,CAAC;KACZ,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,CAAC;IACV,CAAC;IAED,IAAI,GAAQ,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,qBAAqB,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0BAA0B,GAAG,CAAC,CAAC,CAAC,aAAa,GAAa,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,EAC9G,CAAC,CACF,CAAC;YACF,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IACA,KAAa,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC5B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,SAAiB,EACjB,EAAmB;IAEnB,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC;AACD,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,SAAiB,EACjB,EAAmB;IAEnB,OAAO,CAAC,eAAe,CAAC,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAIzC,OAAmB,EACnB,WAAc,EACd,WAA6B,EAC7B,OAAwB,EACxB,UAAe;IAEf,MAAM,QAAQ,GAAG,cAAc,CAC7B,WAAW,CAAC,WAAW,CAAC,IAAI,EAC5B,WAAqB,EACrB,OAAO,CACR,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACnD,KAAK,CAAC,QAAQ,CAAyB,GAAG,UAAU,CAAC;IACtD,OAAO,OAAO,CAAC,UAAU,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAS,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAE5B,OAAqB,EACrB,IAAuB,EACvB,GAAY,EACZ,KAAQ;IAER,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO;IAC3B,MAAM,MAAM,GAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO;IAE5E,KAAK,UAAU,mBAAmB,CAChC,CAAe,EACf,KAAQ,EACR,QAAgB,EAChB,aAAoB;QAEpB,IAAI,QAAgB,CAAC;QACrB,IAAI,GAAQ,CAAC;QACb,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAC9C,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE,CAAC;YACxC,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YACzE,IAAI,CAAC;gBACH,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtB,IAAI,CAAC,GAAG;oBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBAChD,6DAA6D;YAC/D,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,EAAE,QAAmB,CAAC,CAAC;gBACpE,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBAC1D,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,mBAAmB,CACnC,OAAO,EACP,KAAK,EACL,GAAa,EACb,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAC1B,CAAC;IACD,KAAa,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAEjC,OAAqB,EACrB,IAAuB,EACvB,GAAY,EACZ,KAAQ,EACR,QAAW;IAEX,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO;QAAE,OAAO;IACpD,MAAM,MAAM,GAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QAAE,OAAO;IAC5E,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,aAAa,CACrB,oFAAoF,CACrF,CAAC;IAEJ,SAAS,UAAU,CAAC,GAAQ;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QACjD,MAAM,IAAI,aAAa,CAAC,iDAAiD,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CACrE,OAAO,CACC,CAAC;IACX,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CACrE,OAAO,CACC,CAAC;IACX,MAAM,QAAQ,GAAI,YAAsB,CAAC,MAAM,CAC7C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,YAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAC5C,CAAC;IACF,MAAM,IAAI,GAAG,0BAA0B,CAAC,KAAK,EAAE,GAAc,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,WAAW,OAAO,CAAC,MAAM,uBAAuB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,CACzG,CAAC;IACJ,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,WAAW,GAAG;IAClB,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,WAAW;IACX,MAAM;IACN,QAAQ;CACT,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAQ,EACR,WAAoB,EACpB,KAAc;IAEd,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACvE,IAAI,YAAY,CAAC;IACjB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAC9B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,KAAa,EAC3D,QAAQ,CAAC,GAAG,CACV,cAAc,CAAC,OAAO,EACtB,WAAqB,EACrB,cAAc,CAAC,IAAI,CACpB,CACF,EAAE,KAAK,CAAC;QAET,IAAI,CAAC,WAAW;YACd,MAAM,IAAI,aAAa,CACrB,gDAAgD,WAAqB,EAAE,CACxE,CAAC;QAEJ,YAAY,GAAG,CACb,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAC9D,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,UAAU,IAAI,CAAE,CAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;;QACC,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CACxC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAE,KAAa,EAC3D,WAAqB,CACtB,EAAE,WAAW,CAAC;IAEjB,MAAM,WAAW,GAAG,YAAY,EAAE,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CACxD,CAAC;IAEF,OAAO,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAQ,CAAC;AACxD,CAAC"}
|
|
1
|
+
{"version":3,"file":"construction.js","sourceRoot":"","sources":["../../../src/model/construction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { OperationKeys } from "@decaf-ts/db-decorators";
|
|
2
|
-
import {
|
|
2
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
3
3
|
import { CascadeMetadata } from "../repository/types";
|
|
4
|
-
import { OrderDirection } from "../repository/constants";
|
|
5
4
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
6
5
|
import type { Repo } from "../repository/Repository";
|
|
7
6
|
import { JoinColumnOptions, JoinTableMultipleColumnsOptions, JoinTableOptions, RelationsMetadata } from "./types";
|
|
@@ -24,24 +23,6 @@ export declare function table<OPTS = string>(opts?: OPTS): (target: any, propert
|
|
|
24
23
|
* @category Property Decorators
|
|
25
24
|
*/
|
|
26
25
|
export declare function column<OPTS = string>(columnName?: OPTS): (target: any, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
|
|
27
|
-
/**
|
|
28
|
-
* @description Creates an index on a model property for improved query performance
|
|
29
|
-
* @summary Decorator that marks a property to be indexed in the database, optionally with specific directions and compositions
|
|
30
|
-
* @param {OrderDirection[]} [directions] - Optional array of sort directions for the index
|
|
31
|
-
* @param {string[]} [compositions] - Optional array of property names to create a composite index
|
|
32
|
-
* @return {Function} A decorator function that can be applied to a class property
|
|
33
|
-
* @function index
|
|
34
|
-
* @category Property Decorators
|
|
35
|
-
*/
|
|
36
|
-
export declare function index(): ReturnType<typeof propMetadata>;
|
|
37
|
-
export declare function index(name: string): ReturnType<typeof propMetadata>;
|
|
38
|
-
export declare function index(directions: OrderDirection[]): ReturnType<typeof propMetadata>;
|
|
39
|
-
export declare function index(directions: OrderDirection[], name: string): ReturnType<typeof propMetadata>;
|
|
40
|
-
export declare function index(directions: OrderDirection[], compositions: string[]): ReturnType<typeof propMetadata>;
|
|
41
|
-
export declare function index(directions: readonly OrderDirection[], compositions: readonly string[]): ReturnType<typeof propMetadata>;
|
|
42
|
-
export declare function index(directions: readonly OrderDirection[], compositions: readonly string[], name: string): ReturnType<typeof propMetadata>;
|
|
43
|
-
export declare function index(compositions: string[]): ReturnType<typeof propMetadata>;
|
|
44
|
-
export declare function index(compositions: string[], name: string): ReturnType<typeof propMetadata>;
|
|
45
26
|
/**
|
|
46
27
|
* @description Enforces uniqueness constraint during model creation and update
|
|
47
28
|
* @summary Internal function used by the unique decorator to check if a property value already exists in the database
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { afterAny, ConflictError, onCreate, onCreateUpdate, onDelete, onUpdate, generated, OperationKeys, timestamp, afterUpdate, } from "@decaf-ts/db-decorators";
|
|
2
2
|
import { apply as newApply, Metadata, metadata as newMetadata, Decoration, propMetadata, prop, metadata, apply, } from "@decaf-ts/decoration";
|
|
3
3
|
import { PersistenceKeys } from "./../persistence/constants.js";
|
|
4
|
-
import { DefaultCascade
|
|
4
|
+
import { DefaultCascade } from "./../repository/constants.js";
|
|
5
5
|
import { async, list, Model, type } from "@decaf-ts/decorator-validation";
|
|
6
6
|
import { Condition } from "./../query/Condition.js";
|
|
7
|
-
import { cascadeDelete, oneToManyOnCreate, oneToManyOnDelete, oneToManyOnUpdate, oneToOneOnCreate, oneToOneOnDelete, oneToOneOnUpdate, populate as pop, } from "./construction.js";
|
|
7
|
+
import { manyToManyOnCreate, manyToOneOnCreate, manyToOneOnDelete, manyToOneOnUpdate, cascadeDelete, oneToManyOnCreate, oneToManyOnDelete, oneToManyOnUpdate, oneToOneOnCreate, oneToOneOnDelete, oneToOneOnUpdate, populate as pop, } from "./construction.js";
|
|
8
8
|
import { AuthorizationError } from "./../utils/errors.js";
|
|
9
9
|
/**
|
|
10
10
|
* @description Specifies the database table name for a model
|
|
@@ -47,38 +47,6 @@ export function column(columnName) {
|
|
|
47
47
|
})
|
|
48
48
|
.apply();
|
|
49
49
|
}
|
|
50
|
-
export function index(directions, compositions, name) {
|
|
51
|
-
function index(directions, compositions, name) {
|
|
52
|
-
return function index(obj, attr) {
|
|
53
|
-
if (typeof directions === "string") {
|
|
54
|
-
name = directions;
|
|
55
|
-
directions = undefined;
|
|
56
|
-
compositions = undefined;
|
|
57
|
-
}
|
|
58
|
-
if (typeof compositions === "string") {
|
|
59
|
-
name = compositions;
|
|
60
|
-
compositions = undefined;
|
|
61
|
-
}
|
|
62
|
-
if (!compositions && directions) {
|
|
63
|
-
if (directions.find((d) => ![OrderDirection.ASC, OrderDirection.DSC].includes(d))) {
|
|
64
|
-
compositions = directions;
|
|
65
|
-
directions = undefined;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return propMetadata(Metadata.key(`${PersistenceKeys.INDEX}${compositions && compositions?.length ? `.${compositions.join(".")}` : ""}`, attr), {
|
|
69
|
-
directions: directions,
|
|
70
|
-
compositions: compositions,
|
|
71
|
-
name: name,
|
|
72
|
-
})(obj, attr);
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
return Decoration.for(PersistenceKeys.INDEX)
|
|
76
|
-
.define({
|
|
77
|
-
decorator: index,
|
|
78
|
-
args: [directions, compositions, name],
|
|
79
|
-
})
|
|
80
|
-
.apply();
|
|
81
|
-
}
|
|
82
50
|
/**
|
|
83
51
|
* @description Enforces uniqueness constraint during model creation and update
|
|
84
52
|
* @summary Internal function used by the unique decorator to check if a property value already exists in the database
|
|
@@ -384,10 +352,10 @@ export function manyToOne(clazz, cascadeOptions = DefaultCascade, populate = tru
|
|
|
384
352
|
prop(),
|
|
385
353
|
relation(key, metadata),
|
|
386
354
|
type([clazz, ...pkTypes]),
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
355
|
+
onCreate(manyToOneOnCreate, metadata),
|
|
356
|
+
onUpdate(manyToOneOnUpdate, metadata),
|
|
357
|
+
onDelete(manyToOneOnDelete, metadata),
|
|
358
|
+
afterAny(pop, metadata),
|
|
391
359
|
];
|
|
392
360
|
return apply(...decs);
|
|
393
361
|
}
|
|
@@ -444,10 +412,10 @@ export function manyToMany(clazz, cascadeOptions = DefaultCascade, populate = tr
|
|
|
444
412
|
prop(),
|
|
445
413
|
relation(key, metadata),
|
|
446
414
|
list([clazz, ...pkTypes]),
|
|
447
|
-
|
|
448
|
-
|
|
415
|
+
onCreate(manyToManyOnCreate, metadata),
|
|
416
|
+
onUpdate(oneToManyOnUpdate, metadata),
|
|
449
417
|
// onDelete(oneToManyOnDelete, metadata),
|
|
450
|
-
|
|
418
|
+
afterAny(pop, metadata),
|
|
451
419
|
];
|
|
452
420
|
return apply(...decs);
|
|
453
421
|
}
|