@node-c/persistance-rdb 1.0.0-alpha3 → 1.0.0-alpha30
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/common/definitions/common.constants.d.ts +4 -0
- package/dist/common/definitions/common.constants.js +4 -0
- package/dist/common/definitions/common.constants.js.map +1 -1
- package/dist/{entityService → entity}/index.d.ts +2 -1
- package/dist/{entityService → entity}/index.js +2 -1
- package/dist/entity/index.js.map +1 -0
- package/dist/entity/rdb.entity.schema.d.ts +11 -0
- package/dist/{module/rdb.module.definitions.js → entity/rdb.entity.schema.js} +1 -1
- package/dist/entity/rdb.entity.schema.js.map +1 -0
- package/dist/entity/rdb.entity.service.d.ts +41 -0
- package/dist/entity/rdb.entity.service.definitions.d.ts +28 -0
- package/dist/entity/rdb.entity.service.definitions.js.map +1 -0
- package/dist/entity/rdb.entity.service.js +448 -0
- package/dist/entity/rdb.entity.service.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/ormQueryBuilder/index.d.ts +1 -0
- package/dist/{module → ormQueryBuilder}/index.js +1 -2
- package/dist/ormQueryBuilder/index.js.map +1 -0
- package/dist/ormQueryBuilder/rdb.ormQueryBuilder.d.ts +38 -0
- package/dist/ormQueryBuilder/rdb.ormQueryBuilder.js +16 -0
- package/dist/ormQueryBuilder/rdb.ormQueryBuilder.js.map +1 -0
- package/dist/repository/index.d.ts +1 -2
- package/dist/repository/index.js +1 -2
- package/dist/repository/index.js.map +1 -1
- package/dist/repository/rdb.repository.d.ts +22 -0
- package/dist/repository/rdb.repository.js +10 -0
- package/dist/repository/rdb.repository.js.map +1 -0
- package/dist/sqlQueryBuilder/index.d.ts +3 -3
- package/dist/sqlQueryBuilder/index.js +3 -3
- package/dist/sqlQueryBuilder/index.js.map +1 -1
- package/dist/sqlQueryBuilder/{sqlQueryBuilder.definitions.d.ts → rdb.sqlQueryBuilder.definitions.d.ts} +2 -6
- package/dist/{repository/rdb.repository.definitions.js → sqlQueryBuilder/rdb.sqlQueryBuilder.definitions.js} +1 -1
- package/dist/sqlQueryBuilder/rdb.sqlQueryBuilder.definitions.js.map +1 -0
- package/dist/sqlQueryBuilder/{sqlQueryBuilder.module.d.ts → rdb.sqlQueryBuilder.module.d.ts} +1 -1
- package/dist/sqlQueryBuilder/{sqlQueryBuilder.module.js → rdb.sqlQueryBuilder.module.js} +9 -4
- package/dist/sqlQueryBuilder/rdb.sqlQueryBuilder.module.js.map +1 -0
- package/dist/sqlQueryBuilder/{sqlQueryBuilder.service.d.ts → rdb.sqlQueryBuilder.service.d.ts} +12 -11
- package/dist/sqlQueryBuilder/{sqlQueryBuilder.service.js → rdb.sqlQueryBuilder.service.js} +53 -28
- package/dist/sqlQueryBuilder/rdb.sqlQueryBuilder.service.js.map +1 -0
- package/package.json +8 -5
- package/dist/entityService/index.js.map +0 -1
- package/dist/entityService/rdb.entity.service.d.ts +0 -34
- package/dist/entityService/rdb.entity.service.definitions.d.ts +0 -21
- package/dist/entityService/rdb.entity.service.definitions.js.map +0 -1
- package/dist/entityService/rdb.entity.service.js +0 -304
- package/dist/entityService/rdb.entity.service.js.map +0 -1
- package/dist/module/index.d.ts +0 -2
- package/dist/module/index.js.map +0 -1
- package/dist/module/rdb.module.d.ts +0 -5
- package/dist/module/rdb.module.definitions.d.ts +0 -15
- package/dist/module/rdb.module.definitions.js.map +0 -1
- package/dist/module/rdb.module.js +0 -45
- package/dist/module/rdb.module.js.map +0 -1
- package/dist/repository/rdb.repository.definitions.d.ts +0 -5
- package/dist/repository/rdb.repository.definitions.js.map +0 -1
- package/dist/repository/rdb.repository.module.d.ts +0 -6
- package/dist/repository/rdb.repository.module.js +0 -38
- package/dist/repository/rdb.repository.module.js.map +0 -1
- package/dist/sqlQueryBuilder/sqlQueryBuilder.definitions.js +0 -3
- package/dist/sqlQueryBuilder/sqlQueryBuilder.definitions.js.map +0 -1
- package/dist/sqlQueryBuilder/sqlQueryBuilder.module.js.map +0 -1
- package/dist/sqlQueryBuilder/sqlQueryBuilder.service.js.map +0 -1
- /package/dist/{entityService → entity}/rdb.entity.service.definitions.js +0 -0
package/dist/index.js
CHANGED
|
@@ -15,8 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./common/definitions"), exports);
|
|
18
|
-
__exportStar(require("./
|
|
19
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./entity"), exports);
|
|
19
|
+
__exportStar(require("./ormQueryBuilder"), exports);
|
|
20
20
|
__exportStar(require("./repository"), exports);
|
|
21
21
|
__exportStar(require("./sqlQueryBuilder"), exports);
|
|
22
22
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,2CAAyB;AACzB,oDAAkC;AAClC,+CAA6B;AAC7B,oDAAkC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './rdb.ormQueryBuilder';
|
|
@@ -14,6 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./rdb.
|
|
18
|
-
__exportStar(require("./rdb.module"), exports);
|
|
17
|
+
__exportStar(require("./rdb.ormQueryBuilder"), exports);
|
|
19
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ormQueryBuilder/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PersistanceOrderByDirection } from '@node-c/core';
|
|
2
|
+
export declare abstract class OrmBaseQueryBuilder<Entity> {
|
|
3
|
+
abstract andWhere(..._args: unknown[]): OrmBaseQueryBuilder<Entity>;
|
|
4
|
+
abstract orWhere(..._args: unknown[]): OrmBaseQueryBuilder<Entity>;
|
|
5
|
+
abstract where(..._args: unknown[]): OrmBaseQueryBuilder<Entity>;
|
|
6
|
+
}
|
|
7
|
+
export declare abstract class OrmDeleteQueryBuilder<Entity> extends OrmBaseQueryBuilder<Entity> {
|
|
8
|
+
abstract execute(): Promise<OrmDeleteQueryBuilderDeleteResult>;
|
|
9
|
+
}
|
|
10
|
+
export interface OrmDeleteQueryBuilderDeleteResult {
|
|
11
|
+
affected?: number | null;
|
|
12
|
+
raw: unknown;
|
|
13
|
+
}
|
|
14
|
+
export declare abstract class OrmSelectQueryBuilder<Entity> extends OrmBaseQueryBuilder<Entity> {
|
|
15
|
+
abstract addOrderBy(_field: string, _direction: PersistanceOrderByDirection): OrmSelectQueryBuilder<Entity>;
|
|
16
|
+
abstract delete(): OrmDeleteQueryBuilder<Entity>;
|
|
17
|
+
abstract getCount(): Promise<number>;
|
|
18
|
+
abstract getMany(): Promise<Entity[]>;
|
|
19
|
+
abstract getOne(): Promise<Entity | null>;
|
|
20
|
+
abstract leftJoinAndSelect(..._args: unknown[]): OrmSelectQueryBuilder<Entity>;
|
|
21
|
+
abstract orderBy(_field: string, _direction: PersistanceOrderByDirection): OrmSelectQueryBuilder<Entity>;
|
|
22
|
+
abstract select(_selection: string[]): OrmSelectQueryBuilder<Entity>;
|
|
23
|
+
abstract skip(_skipCount: number): OrmSelectQueryBuilder<Entity>;
|
|
24
|
+
abstract softDelete(): OrmDeleteQueryBuilder<Entity>;
|
|
25
|
+
abstract take(_takeCount: number): OrmSelectQueryBuilder<Entity>;
|
|
26
|
+
abstract update(): OrmUpdateQueryBuilder<Entity>;
|
|
27
|
+
abstract withDeleted(): OrmSelectQueryBuilder<Entity>;
|
|
28
|
+
}
|
|
29
|
+
export declare abstract class OrmUpdateQueryBuilder<Entity> extends OrmBaseQueryBuilder<Entity> {
|
|
30
|
+
abstract execute(): Promise<OrmUpdateQueryBuilderUpdateResult>;
|
|
31
|
+
abstract returning(_selection: string | string[]): OrmUpdateQueryBuilder<Entity>;
|
|
32
|
+
abstract set(..._args: unknown[]): OrmUpdateQueryBuilder<Entity>;
|
|
33
|
+
}
|
|
34
|
+
export interface OrmUpdateQueryBuilderUpdateResult {
|
|
35
|
+
affected?: number;
|
|
36
|
+
generatedMaps?: object[];
|
|
37
|
+
raw: unknown;
|
|
38
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrmUpdateQueryBuilder = exports.OrmSelectQueryBuilder = exports.OrmDeleteQueryBuilder = exports.OrmBaseQueryBuilder = void 0;
|
|
4
|
+
class OrmBaseQueryBuilder {
|
|
5
|
+
}
|
|
6
|
+
exports.OrmBaseQueryBuilder = OrmBaseQueryBuilder;
|
|
7
|
+
class OrmDeleteQueryBuilder extends OrmBaseQueryBuilder {
|
|
8
|
+
}
|
|
9
|
+
exports.OrmDeleteQueryBuilder = OrmDeleteQueryBuilder;
|
|
10
|
+
class OrmSelectQueryBuilder extends OrmBaseQueryBuilder {
|
|
11
|
+
}
|
|
12
|
+
exports.OrmSelectQueryBuilder = OrmSelectQueryBuilder;
|
|
13
|
+
class OrmUpdateQueryBuilder extends OrmBaseQueryBuilder {
|
|
14
|
+
}
|
|
15
|
+
exports.OrmUpdateQueryBuilder = OrmUpdateQueryBuilder;
|
|
16
|
+
//# sourceMappingURL=rdb.ormQueryBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdb.ormQueryBuilder.js","sourceRoot":"","sources":["../../src/ormQueryBuilder/rdb.ormQueryBuilder.ts"],"names":[],"mappings":";;;AAEA,MAAsB,mBAAmB;CAIxC;AAJD,kDAIC;AAED,MAAsB,qBAA8B,SAAQ,mBAA2B;CAEtF;AAFD,sDAEC;AAOD,MAAsB,qBAA8B,SAAQ,mBAA2B;CActF;AAdD,sDAcC;AAED,MAAsB,qBAA8B,SAAQ,mBAA2B;CAItF;AAJD,sDAIC"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export * from './rdb.repository
|
|
2
|
-
export * from './rdb.repository.module';
|
|
1
|
+
export * from './rdb.repository';
|
package/dist/repository/index.js
CHANGED
|
@@ -14,6 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./rdb.repository
|
|
18
|
-
__exportStar(require("./rdb.repository.module"), exports);
|
|
17
|
+
__exportStar(require("./rdb.repository"), exports);
|
|
19
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { GenericObject, GenericObjectType } from '@node-c/core';
|
|
2
|
+
import { OrmSelectQueryBuilder } from '../ormQueryBuilder';
|
|
3
|
+
export declare abstract class RDBEntityManager {
|
|
4
|
+
abstract getRepository<Entity extends GenericObject<unknown>>(_target: unknown): RDBRepository<Entity>;
|
|
5
|
+
abstract query(_query: string, _params?: unknown[]): Promise<unknown>;
|
|
6
|
+
abstract save<Entity extends GenericObject<unknown> = GenericObject<unknown>>(_target: unknown, _data: Partial<Entity> | Partial<Entity[]>, _options?: unknown): Promise<unknown>;
|
|
7
|
+
abstract transaction(_callback: (_em: RDBEntityManager) => Promise<unknown>): Promise<unknown>;
|
|
8
|
+
}
|
|
9
|
+
export type RDBEntityTarget<Entity> = string | {
|
|
10
|
+
name: string;
|
|
11
|
+
type: Entity;
|
|
12
|
+
} | GenericObjectType<Entity>;
|
|
13
|
+
export declare abstract class RDBRepository<Entity extends GenericObject<unknown>> {
|
|
14
|
+
manager: RDBEntityManager;
|
|
15
|
+
metadata: {
|
|
16
|
+
name: string;
|
|
17
|
+
tableName: string;
|
|
18
|
+
};
|
|
19
|
+
target: unknown;
|
|
20
|
+
abstract createQueryBuilder(_entityName: string, _queryRunner?: unknown): OrmSelectQueryBuilder<Entity>;
|
|
21
|
+
abstract save(_data: Partial<Entity> | Partial<Entity[]>, _options?: unknown): Promise<unknown>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RDBRepository = exports.RDBEntityManager = void 0;
|
|
4
|
+
class RDBEntityManager {
|
|
5
|
+
}
|
|
6
|
+
exports.RDBEntityManager = RDBEntityManager;
|
|
7
|
+
class RDBRepository {
|
|
8
|
+
}
|
|
9
|
+
exports.RDBRepository = RDBRepository;
|
|
10
|
+
//# sourceMappingURL=rdb.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdb.repository.js","sourceRoot":"","sources":["../../src/repository/rdb.repository.ts"],"names":[],"mappings":";;;AAIA,MAAsB,gBAAgB;CASrC;AATD,4CASC;AAID,MAAsB,aAAa;CAUlC;AAVD,sCAUC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './sqlQueryBuilder.definitions';
|
|
2
|
-
export * from './sqlQueryBuilder.module';
|
|
3
|
-
export * from './sqlQueryBuilder.service';
|
|
1
|
+
export * from './rdb.sqlQueryBuilder.definitions';
|
|
2
|
+
export * from './rdb.sqlQueryBuilder.module';
|
|
3
|
+
export * from './rdb.sqlQueryBuilder.service';
|
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./sqlQueryBuilder.definitions"), exports);
|
|
18
|
-
__exportStar(require("./sqlQueryBuilder.module"), exports);
|
|
19
|
-
__exportStar(require("./sqlQueryBuilder.service"), exports);
|
|
17
|
+
__exportStar(require("./rdb.sqlQueryBuilder.definitions"), exports);
|
|
18
|
+
__exportStar(require("./rdb.sqlQueryBuilder.module"), exports);
|
|
19
|
+
__exportStar(require("./rdb.sqlQueryBuilder.service"), exports);
|
|
20
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sqlQueryBuilder/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sqlQueryBuilder/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD;AAClD,+DAA6C;AAC7C,gEAA8C"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { GenericObject } from '@node-c/core';
|
|
1
|
+
import { GenericObject, PersistanceOrderBy } from '@node-c/core';
|
|
2
2
|
export interface BuildQueryOptions {
|
|
3
3
|
deletedColumnName?: string;
|
|
4
4
|
include?: IncludeItems;
|
|
5
|
-
orderBy?:
|
|
5
|
+
orderBy?: PersistanceOrderBy[];
|
|
6
6
|
select?: string[];
|
|
7
7
|
where?: {
|
|
8
8
|
[fieldName: string]: ParsedFilter;
|
|
@@ -12,10 +12,6 @@ export interface BuildQueryOptions {
|
|
|
12
12
|
export interface IncludeItems {
|
|
13
13
|
[relationProperty: string]: string;
|
|
14
14
|
}
|
|
15
|
-
export interface OrderBy {
|
|
16
|
-
field: string;
|
|
17
|
-
direction: 'ASC' | 'DESC';
|
|
18
|
-
}
|
|
19
15
|
export interface ParsedFilter {
|
|
20
16
|
params?: GenericObject<unknown>;
|
|
21
17
|
query: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdb.sqlQueryBuilder.definitions.js","sourceRoot":"","sources":["../../src/sqlQueryBuilder/rdb.sqlQueryBuilder.definitions.ts"],"names":[],"mappings":""}
|
package/dist/sqlQueryBuilder/{sqlQueryBuilder.module.d.ts → rdb.sqlQueryBuilder.module.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DynamicModule } from '@nestjs/common';
|
|
2
|
-
import { SQLQueryBuilderModuleOptions } from './sqlQueryBuilder.definitions';
|
|
2
|
+
import { SQLQueryBuilderModuleOptions } from './rdb.sqlQueryBuilder.definitions';
|
|
3
3
|
export declare class SQLQueryBuilderModule {
|
|
4
4
|
static register(options: SQLQueryBuilderModuleOptions): DynamicModule;
|
|
5
5
|
}
|
|
@@ -9,7 +9,8 @@ var SQLQueryBuilderModule_1;
|
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.SQLQueryBuilderModule = void 0;
|
|
11
11
|
const common_1 = require("@nestjs/common");
|
|
12
|
-
const
|
|
12
|
+
const core_1 = require("@node-c/core");
|
|
13
|
+
const rdb_sqlQueryBuilder_service_1 = require("./rdb.sqlQueryBuilder.service");
|
|
13
14
|
const definitions_1 = require("../common/definitions");
|
|
14
15
|
let SQLQueryBuilderModule = SQLQueryBuilderModule_1 = class SQLQueryBuilderModule {
|
|
15
16
|
static register(options) {
|
|
@@ -23,9 +24,13 @@ let SQLQueryBuilderModule = SQLQueryBuilderModule_1 = class SQLQueryBuilderModul
|
|
|
23
24
|
provide: definitions_1.Constants.SQL_BUILDER_DB_CONFIG_PATH,
|
|
24
25
|
useValue: `config.persistance.${persistanceModuleName}`
|
|
25
26
|
},
|
|
26
|
-
{
|
|
27
|
+
{
|
|
28
|
+
provide: core_1.Constants.PERSISTANCE_MODULE_NAME,
|
|
29
|
+
useValue: persistanceModuleName
|
|
30
|
+
},
|
|
31
|
+
{ provide: serviceToken, useClass: rdb_sqlQueryBuilder_service_1.SQLQueryBuilderService }
|
|
27
32
|
],
|
|
28
|
-
exports: [{ provide: serviceToken, useClass:
|
|
33
|
+
exports: [{ provide: serviceToken, useClass: rdb_sqlQueryBuilder_service_1.SQLQueryBuilderService }]
|
|
29
34
|
};
|
|
30
35
|
}
|
|
31
36
|
};
|
|
@@ -33,4 +38,4 @@ exports.SQLQueryBuilderModule = SQLQueryBuilderModule;
|
|
|
33
38
|
exports.SQLQueryBuilderModule = SQLQueryBuilderModule = SQLQueryBuilderModule_1 = __decorate([
|
|
34
39
|
(0, common_1.Module)({})
|
|
35
40
|
], SQLQueryBuilderModule);
|
|
36
|
-
//# sourceMappingURL=sqlQueryBuilder.module.js.map
|
|
41
|
+
//# sourceMappingURL=rdb.sqlQueryBuilder.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdb.sqlQueryBuilder.module.js","sourceRoot":"","sources":["../../src/sqlQueryBuilder/rdb.sqlQueryBuilder.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AAEvD,uCAA0D;AAG1D,+EAAuE;AAEvE,uDAAkD;AAG3C,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAChC,MAAM,CAAC,QAAQ,CAAC,OAAqC;QACnD,MAAM,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAC;QAC1C,MAAM,YAAY,GAAG,GAAG,qBAAqB,GAAG,uBAAS,CAAC,gCAAgC,EAAE,CAAC;QAC7F,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,uBAAqB;YAC7B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,uBAAS,CAAC,0BAA0B;oBAC7C,QAAQ,EAAE,sBAAsB,qBAAqB,EAAE;iBACxD;gBACD;oBACE,OAAO,EAAE,gBAAa,CAAC,uBAAuB;oBAC9C,QAAQ,EAAE,qBAAqB;iBAChC;gBACD,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,oDAAsB,EAAE;aAC5D;YACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,oDAAsB,EAAE,CAAC;SACvE,CAAC;IACJ,CAAC;CACF,CAAA;AArBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,qBAAqB,CAqBjC"}
|
package/dist/sqlQueryBuilder/{sqlQueryBuilder.service.d.ts → rdb.sqlQueryBuilder.service.d.ts}
RENAMED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { ConfigProviderService, GenericObject, PersistanceSelectOperator, RDBType } from '@node-c/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { BuildQueryOptions, IncludeItems, OrderBy, ParsedFilter } from './sqlQueryBuilder.definitions';
|
|
1
|
+
import { ConfigProviderService, GenericObject, PersistanceOrderBy, PersistanceOrderByDirection, PersistanceSelectOperator, RDBType } from '@node-c/core';
|
|
2
|
+
import { BuildQueryOptions, IncludeItems, ParsedFilter } from './rdb.sqlQueryBuilder.definitions';
|
|
3
|
+
import { OrmBaseQueryBuilder, OrmSelectQueryBuilder } from '../ormQueryBuilder';
|
|
5
4
|
export declare class SQLQueryBuilderService {
|
|
6
5
|
configProvider: ConfigProviderService;
|
|
7
6
|
dbConfigPath: string;
|
|
7
|
+
persistanceModuleName: string;
|
|
8
8
|
allowedStringOperators: string[];
|
|
9
9
|
columnQuotesSymbol: string;
|
|
10
|
-
dbType: RDBType;
|
|
10
|
+
dbType: RDBType | string;
|
|
11
11
|
iLikeSupported: boolean;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
returningSupported: boolean;
|
|
13
|
+
constructor(configProvider: ConfigProviderService, dbConfigPath: string, persistanceModuleName: string);
|
|
14
|
+
buildQuery<Entity>(ormQueryBuilder: OrmBaseQueryBuilder<Entity> | OrmSelectQueryBuilder<Entity>, options: BuildQueryOptions): void;
|
|
15
|
+
getValueForFilter(entityName: string, _fieldName: string, fieldAlias: string, fieldValue: unknown, isNot: boolean, operator?: PersistanceSelectOperator): ParsedFilter;
|
|
15
16
|
parseArrayOfFilters(filtersArray: unknown[], fieldAlias: string): {
|
|
16
17
|
hasValues: boolean;
|
|
17
18
|
isSimple: boolean;
|
|
@@ -22,7 +23,7 @@ export declare class SQLQueryBuilderService {
|
|
|
22
23
|
fieldAliases?: {
|
|
23
24
|
[fieldName: string]: string;
|
|
24
25
|
};
|
|
25
|
-
isTopLevel
|
|
26
|
+
isTopLevel?: boolean;
|
|
26
27
|
operator?: PersistanceSelectOperator;
|
|
27
28
|
}): {
|
|
28
29
|
where: {
|
|
@@ -35,9 +36,9 @@ export declare class SQLQueryBuilderService {
|
|
|
35
36
|
include: IncludeItems;
|
|
36
37
|
};
|
|
37
38
|
parseRelations(entityName: string, include: string[], currentInclude?: IncludeItems): IncludeItems;
|
|
38
|
-
parseOrderBy(entityName: string, orderByData: GenericObject<
|
|
39
|
+
parseOrderBy(entityName: string, orderByData: GenericObject<PersistanceOrderByDirection>): {
|
|
39
40
|
include: IncludeItems;
|
|
40
|
-
orderBy:
|
|
41
|
+
orderBy: PersistanceOrderBy[];
|
|
41
42
|
};
|
|
42
43
|
parseSelect(selectFields: string[], include?: IncludeItems): string[];
|
|
43
44
|
}
|
|
@@ -11,52 +11,64 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
15
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
16
|
+
};
|
|
14
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
18
|
exports.SQLQueryBuilderService = void 0;
|
|
16
19
|
const common_1 = require("@nestjs/common");
|
|
17
20
|
const core_1 = require("@node-c/core");
|
|
18
|
-
const
|
|
19
|
-
const typeorm_1 = require("typeorm");
|
|
21
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
20
22
|
const definitions_1 = require("../common/definitions");
|
|
21
23
|
let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
22
|
-
constructor(configProvider, dbConfigPath) {
|
|
24
|
+
constructor(configProvider, dbConfigPath, persistanceModuleName) {
|
|
23
25
|
this.configProvider = configProvider;
|
|
24
26
|
this.dbConfigPath = dbConfigPath;
|
|
27
|
+
this.persistanceModuleName = persistanceModuleName;
|
|
25
28
|
this.allowedStringOperators = Object.values(core_1.PersistanceSelectOperator);
|
|
26
|
-
const { type } =
|
|
29
|
+
const { type } = lodash_1.default.get(configProvider, dbConfigPath);
|
|
27
30
|
this.dbType = type;
|
|
28
|
-
if (type === core_1.RDBType.MySQL) {
|
|
31
|
+
if (type === core_1.RDBType.Aurora || type === core_1.RDBType.ClickHouse || type === core_1.RDBType.MySQL) {
|
|
29
32
|
this.columnQuotesSymbol = '`';
|
|
30
33
|
this.iLikeSupported = false;
|
|
34
|
+
this.returningSupported = false;
|
|
31
35
|
}
|
|
32
36
|
else if (type === core_1.RDBType.PG) {
|
|
33
37
|
this.columnQuotesSymbol = '"';
|
|
34
38
|
this.iLikeSupported = true;
|
|
39
|
+
this.returningSupported = true;
|
|
35
40
|
}
|
|
36
41
|
}
|
|
37
|
-
buildQuery(
|
|
38
|
-
const { where, include, orderBy, select, withDeleted
|
|
42
|
+
buildQuery(ormQueryBuilder, options) {
|
|
43
|
+
const { where: optWhere, include, orderBy, select, withDeleted } = options;
|
|
39
44
|
const cqs = this.columnQuotesSymbol;
|
|
40
45
|
const deletedColumnName = options.deletedColumnName || 'deletedAt';
|
|
41
|
-
|
|
46
|
+
const where = Object.assign({}, (optWhere || {}));
|
|
47
|
+
if ('withDeleted' in ormQueryBuilder) {
|
|
48
|
+
const oqb = ormQueryBuilder;
|
|
42
49
|
if (withDeleted) {
|
|
43
|
-
|
|
50
|
+
oqb.withDeleted();
|
|
44
51
|
}
|
|
45
52
|
if (include) {
|
|
46
53
|
for (const relationProperty in include) {
|
|
47
54
|
if (withDeleted) {
|
|
48
|
-
|
|
55
|
+
oqb.leftJoinAndSelect(relationProperty, include[relationProperty]);
|
|
49
56
|
}
|
|
50
57
|
else {
|
|
51
|
-
|
|
58
|
+
oqb.leftJoinAndSelect(relationProperty, include[relationProperty], `${cqs}${include[relationProperty]}${cqs}.${cqs}${deletedColumnName}${cqs} IS NULL`);
|
|
52
59
|
}
|
|
53
60
|
}
|
|
54
61
|
}
|
|
55
62
|
if (select && select.length) {
|
|
56
|
-
|
|
63
|
+
oqb.select(this.parseSelect(select, include));
|
|
57
64
|
}
|
|
58
65
|
}
|
|
59
|
-
if (
|
|
66
|
+
else if (withDeleted === false) {
|
|
67
|
+
where[deletedColumnName] = {
|
|
68
|
+
query: `${cqs}${deletedColumnName}${cqs} IS NULL`
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (Object.keys(where).length) {
|
|
60
72
|
let isFirst = true;
|
|
61
73
|
for (const fieldName in where) {
|
|
62
74
|
const whereItem = where[fieldName];
|
|
@@ -70,10 +82,11 @@ let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
|
70
82
|
else {
|
|
71
83
|
methodName = fieldName === core_1.PersistanceSelectOperator.Or ? 'orWhere' : 'andWhere';
|
|
72
84
|
}
|
|
73
|
-
|
|
85
|
+
ormQueryBuilder[methodName](whereItem.query, whereItem.params);
|
|
74
86
|
}
|
|
75
87
|
}
|
|
76
|
-
if (orderBy &&
|
|
88
|
+
if (orderBy && 'orderBy' in ormQueryBuilder) {
|
|
89
|
+
const oqb = ormQueryBuilder;
|
|
77
90
|
let isFirst = true;
|
|
78
91
|
for (const item of orderBy) {
|
|
79
92
|
let methodName = 'addOrderBy';
|
|
@@ -81,19 +94,20 @@ let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
|
81
94
|
methodName = 'orderBy';
|
|
82
95
|
isFirst = false;
|
|
83
96
|
}
|
|
84
|
-
|
|
97
|
+
oqb[methodName](item.field, item.direction);
|
|
85
98
|
}
|
|
86
99
|
}
|
|
87
100
|
}
|
|
88
|
-
getValueForFilter(entityName,
|
|
101
|
+
getValueForFilter(entityName, _fieldName, fieldAlias, fieldValue, isNot, operator) {
|
|
89
102
|
const { columnQuotesSymbol: cqs, dbType } = this;
|
|
90
103
|
const escapedFieldAlias = fieldAlias.replace(/\$/, '__ds__');
|
|
91
|
-
const fieldString = `${cqs}${entityName}${cqs}.${cqs}${
|
|
92
|
-
|
|
104
|
+
const fieldString = `${cqs}${entityName}${cqs}.${cqs}${fieldAlias}${cqs}`;
|
|
105
|
+
let parsedInnerValue = fieldValue instanceof Date ? fieldValue.valueOf() : fieldValue;
|
|
93
106
|
if (operator === core_1.PersistanceSelectOperator.Contains) {
|
|
94
107
|
let query = '';
|
|
95
|
-
if (dbType === core_1.RDBType.MySQL) {
|
|
108
|
+
if (dbType === core_1.RDBType.Aurora || dbType === core_1.RDBType.ClickHouse || dbType === core_1.RDBType.MySQL) {
|
|
96
109
|
query = `JSON_CONTAINS(${fieldString}, :${escapedFieldAlias})`;
|
|
110
|
+
parsedInnerValue = `"${parsedInnerValue}"`;
|
|
97
111
|
}
|
|
98
112
|
else if (dbType === core_1.RDBType.PG) {
|
|
99
113
|
query = `${fieldString} ? :${escapedFieldAlias}`;
|
|
@@ -193,8 +207,8 @@ let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
|
193
207
|
if (typeof fieldValue === 'undefined') {
|
|
194
208
|
continue;
|
|
195
209
|
}
|
|
196
|
-
const fieldAlias = fieldAliases[fieldName] || fieldName;
|
|
197
210
|
const isNot = operator === core_1.PersistanceSelectOperator.Not;
|
|
211
|
+
let fieldAlias = fieldAliases[fieldName];
|
|
198
212
|
if (fieldName.match(/\./)) {
|
|
199
213
|
const fieldData = fieldName.split('.');
|
|
200
214
|
const finalItemIndex = fieldData.length - 1;
|
|
@@ -203,10 +217,13 @@ let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
|
203
217
|
let previousEntityAlias = `${entityName}`;
|
|
204
218
|
for (let i = 0; i < finalItemIndex; i++) {
|
|
205
219
|
const currentEntityName = fieldData[i];
|
|
206
|
-
entityAlias += `
|
|
220
|
+
entityAlias += `__${currentEntityName}`;
|
|
207
221
|
include[`${previousEntityAlias}.${currentEntityName}`] = entityAlias;
|
|
208
222
|
previousEntityAlias = `${entityAlias}`;
|
|
209
223
|
}
|
|
224
|
+
if (!fieldAlias) {
|
|
225
|
+
fieldAlias = actualFieldName;
|
|
226
|
+
}
|
|
210
227
|
const itemData = this.parseFilters(entityAlias, { [actualFieldName]: fieldValue }, {
|
|
211
228
|
fieldAliases: { [actualFieldName]: fieldAlias },
|
|
212
229
|
isTopLevel: false,
|
|
@@ -216,9 +233,14 @@ let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
|
216
233
|
include = Object.assign(Object.assign({}, include), itemData.include);
|
|
217
234
|
continue;
|
|
218
235
|
}
|
|
236
|
+
else {
|
|
237
|
+
if (!fieldAlias) {
|
|
238
|
+
fieldAlias = fieldName;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
219
241
|
if (fieldValue === null) {
|
|
220
242
|
where[fieldName] = {
|
|
221
|
-
query: `${cqs}${entityName}${cqs}.${cqs}${
|
|
243
|
+
query: `${cqs}${entityName}${cqs}.${cqs}${fieldAlias}${cqs} is${isNot ? ' not ' : ' '}null`
|
|
222
244
|
};
|
|
223
245
|
continue;
|
|
224
246
|
}
|
|
@@ -231,7 +253,7 @@ let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
|
231
253
|
if (operator === core_1.PersistanceSelectOperator.Between) {
|
|
232
254
|
where[fieldName] = {
|
|
233
255
|
params: paramsForQuery,
|
|
234
|
-
query: `${cqs}${entityName}${cqs}.${cqs}${
|
|
256
|
+
query: `${cqs}${entityName}${cqs}.${cqs}${fieldAlias}${cqs}${isNot ? ' not ' : ' '}` +
|
|
235
257
|
`between :${fieldAlias}_0 and :${fieldAlias}_1`
|
|
236
258
|
};
|
|
237
259
|
continue;
|
|
@@ -313,7 +335,7 @@ let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
|
313
335
|
let entityAlias = `${entityName}`;
|
|
314
336
|
let previousEntityAlias = `${entityName}`;
|
|
315
337
|
includeData.forEach(currentEntityName => {
|
|
316
|
-
entityAlias += `
|
|
338
|
+
entityAlias += `__${currentEntityName}`;
|
|
317
339
|
resultInclude[`${previousEntityAlias}.${currentEntityName}`] = entityAlias;
|
|
318
340
|
previousEntityAlias = `${entityAlias}`;
|
|
319
341
|
});
|
|
@@ -324,7 +346,9 @@ let SQLQueryBuilderService = class SQLQueryBuilderService {
|
|
|
324
346
|
const orderBy = [];
|
|
325
347
|
let include = {};
|
|
326
348
|
for (const fieldName in orderByData) {
|
|
327
|
-
const direction = orderByData[fieldName].toLowerCase() === 'desc'
|
|
349
|
+
const direction = orderByData[fieldName].toLowerCase() === 'desc'
|
|
350
|
+
? core_1.PersistanceOrderByDirection.Desc
|
|
351
|
+
: core_1.PersistanceOrderByDirection.Asc;
|
|
328
352
|
const item = { field: `${entityName}.${fieldName}`, direction };
|
|
329
353
|
if (fieldName.match(/\./)) {
|
|
330
354
|
const fieldData = fieldName.split('.');
|
|
@@ -370,6 +394,7 @@ exports.SQLQueryBuilderService = SQLQueryBuilderService;
|
|
|
370
394
|
exports.SQLQueryBuilderService = SQLQueryBuilderService = __decorate([
|
|
371
395
|
(0, common_1.Injectable)(),
|
|
372
396
|
__param(1, (0, common_1.Inject)(definitions_1.Constants.SQL_BUILDER_DB_CONFIG_PATH)),
|
|
373
|
-
|
|
397
|
+
__param(2, (0, common_1.Inject)(core_1.Constants.PERSISTANCE_MODULE_NAME)),
|
|
398
|
+
__metadata("design:paramtypes", [core_1.ConfigProviderService, String, String])
|
|
374
399
|
], SQLQueryBuilderService);
|
|
375
|
-
//# sourceMappingURL=sqlQueryBuilder.service.js.map
|
|
400
|
+
//# sourceMappingURL=rdb.sqlQueryBuilder.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdb.sqlQueryBuilder.service.js","sourceRoot":"","sources":["../../src/sqlQueryBuilder/rdb.sqlQueryBuilder.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,uCAQsB;AAEtB,oDAAwB;AAIxB,uDAAkD;AAI3C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAOjC,YACS,cAAqC,EAE5C,YAA2B,EAG3B,qBAAoC;QAL7B,mBAAc,GAAd,cAAc,CAAuB;QAErC,iBAAY,GAAZ,YAAY,CAAQ;QAGpB,0BAAqB,GAArB,qBAAqB,CAAQ;QAZtC,2BAAsB,GAAa,MAAM,CAAC,MAAM,CAAC,gCAAyB,CAAC,CAAC;QAc1E,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAE,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAsB,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,IAAI,KAAK,cAAO,CAAC,MAAM,IAAI,IAAI,KAAK,cAAO,CAAC,UAAU,IAAI,IAAI,KAAK,cAAO,CAAC,KAAK,EAAE,CAAC;YACrF,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,KAAK,cAAO,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACjC,CAAC;IACH,CAAC;IAED,UAAU,CACR,eAA4E,EAC5E,OAA0B;QAE1B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,WAAW,CAAC;QACnE,MAAM,KAAK,qBAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAE,CAAC;QACtC,IAAI,aAAa,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,eAAgD,CAAC;YAC7D,IAAI,WAAW,EAAE,CAAC;gBAChB,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,gBAAgB,IAAI,OAAO,EAAE,CAAC;oBACvC,IAAI,WAAW,EAAE,CAAC;wBAChB,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACrE,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,iBAAiB,CACnB,gBAAgB,EAChB,OAAO,CAAC,gBAAgB,CAAC,EACzB,GAAG,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,iBAAiB,GAAG,GAAG,UAAU,CACpF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YACjC,KAAK,CAAC,iBAAiB,CAAC,GAAG;gBACzB,KAAK,EAAE,GAAG,GAAG,GAAG,iBAAiB,GAAG,GAAG,UAAU;aAClD,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBACD,IAAI,UAAU,GAAG,OAAO,CAAC;gBACzB,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,GAAG,KAAK,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,SAAS,KAAK,gCAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;gBACnF,CAAC;gBACA,eAAsF,CAAC,UAAU,CAAC,CACjG,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,MAAM,CACjB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,OAAO,IAAI,SAAS,IAAI,eAAe,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,eAAgD,CAAC;YAC7D,IAAI,OAAO,GAAG,IAAI,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,IAAI,UAAU,GAA6B,YAAY,CAAC;gBACxD,IAAI,OAAO,EAAE,CAAC;oBACZ,UAAU,GAAG,SAAS,CAAC;oBACvB,OAAO,GAAG,KAAK,CAAC;gBAClB,CAAC;gBACD,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,iBAAiB,CACf,UAAkB,EAClB,UAAkB,EAClB,UAAkB,EAClB,UAAmB,EACnB,KAAc,EACd,QAAoC;QAEpC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACjD,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,IAAI,GAAG,GAAG,UAAU,GAAG,GAAG,EAAE,CAAC;QAC1E,IAAI,gBAAgB,GAAG,UAAU,YAAY,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QACtF,IAAI,QAAQ,KAAK,gCAAyB,CAAC,QAAQ,EAAE,CAAC;YACpD,IAAI,KAAK,GAAG,EAAE,CAAC;YAEf,IAAI,MAAM,KAAK,cAAO,CAAC,MAAM,IAAI,MAAM,KAAK,cAAO,CAAC,UAAU,IAAI,MAAM,KAAK,cAAO,CAAC,KAAK,EAAE,CAAC;gBAC3F,KAAK,GAAG,iBAAiB,WAAW,MAAM,iBAAiB,GAAG,CAAC;gBAC/D,gBAAgB,GAAG,IAAI,gBAAgB,GAAG,CAAC;YAC7C,CAAC;iBAAM,IAAI,MAAM,KAAK,cAAO,CAAC,EAAE,EAAE,CAAC;gBACjC,KAAK,GAAG,GAAG,WAAW,OAAO,iBAAiB,EAAE,CAAC;YACnD,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE;gBACjD,KAAK;aACN,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,gCAAyB,CAAC,WAAW,EAAE,CAAC;YACvD,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE;gBACjD,KAAK,EAAE,GAAG,WAAW,OAAO,iBAAiB,EAAE;aAChD,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,gCAAyB,CAAC,kBAAkB,EAAE,CAAC;YAC9D,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE;gBACjD,KAAK,EAAE,GAAG,WAAW,QAAQ,iBAAiB,EAAE;aACjD,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,gCAAyB,CAAC,QAAQ,EAAE,CAAC;YACpD,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE;gBACjD,KAAK,EAAE,GAAG,WAAW,OAAO,iBAAiB,EAAE;aAChD,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,gCAAyB,CAAC,eAAe,EAAE,CAAC;YAC3D,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE;gBACjD,KAAK,EAAE,GAAG,WAAW,QAAQ,iBAAiB,EAAE;aACjD,CAAC;QACJ,CAAC;QACD,IACE,QAAQ,KAAK,gCAAyB,CAAC,IAAI;YAC3C,CAAC,QAAQ,KAAK,gCAAyB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EACtE,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE;gBACjD,KAAK,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,SAAS,iBAAiB,EAAE;aAC/E,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,KAAK,gCAAyB,CAAC,KAAK,EAAE,CAAC;YACjD,OAAO;gBACL,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,gBAAgB,EAAE;gBACxD,KAAK,EAAE,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,UAAU,iBAAiB,EAAE;aAChF,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,EAAE;YACjD,KAAK,EAAE,GAAG,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,iBAAiB,EAAE;SACpE,CAAC;IACJ,CAAC;IAED,mBAAmB,CACjB,YAAuB,EACvB,UAAkB;QAOlB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,cAAc,GAAkB,EAAE,CAAC;QACzC,IAAI,uBAAuB,GAAG,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE,CAAC;gBAC1C,SAAS;YACX,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;YACD,IACE,cAAc,KAAK,IAAI;gBACvB,OAAO,cAAc,KAAK,QAAQ;gBAClC,OAAO,cAAc,KAAK,QAAQ;gBAClC,OAAO,cAAc,KAAK,QAAQ;gBAClC,OAAO,cAAc,KAAK,QAAQ;gBAClC,OAAO,cAAc,KAAK,SAAS,EACnC,CAAC;gBACD,MAAM,cAAc,GAAG,GAAG,UAAU,IAAI,CAAC,EAAE,CAAC;gBAC5C,uBAAuB,IAAI,IAAI,cAAc,IAAI,CAAC;gBAClD,cAAc,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,IAAI,cAAc,YAAY,IAAI,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,GAAG,UAAU,IAAI,CAAC,EAAE,CAAC;gBAC5C,uBAAuB,IAAI,IAAI,cAAc,IAAI,CAAC;gBAClD,cAAc,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC1D,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,GAAG,KAAK,CAAC;gBACjB,MAAM;YACR,CAAC;QACH,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1E,CAAC;IA2BD,YAAY,CACV,UAAkB,EAClB,OAAsB,EACtB,UAII,EAAE,UAAU,EAAE,IAAI,EAAE;QAKxB,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;QAChD,MAAM,KAAK,GAA0C,EAAE,CAAC;QACxD,IAAI,OAAO,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE,CAAC;gBACtC,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,KAAK,gCAAyB,CAAC,GAAG,CAAC;YACzD,IAAI,UAAU,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAEzC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;gBAClD,IAAI,WAAW,GAAG,GAAG,UAAU,EAAE,CAAC;gBAClC,IAAI,mBAAmB,GAAG,GAAG,UAAU,EAAE,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACvC,WAAW,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,mBAAmB,IAAI,iBAAiB,EAAE,CAAC,GAAG,WAAW,CAAC;oBACrE,mBAAmB,GAAG,GAAG,WAAW,EAAE,CAAC;gBACzC,CAAC;gBACD,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,UAAU,GAAG,eAAe,CAAC;gBAC/B,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAChC,WAAW,EACX,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,EACjC;oBACE,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE;oBAC/C,UAAU,EAAE,KAAK;oBACjB,QAAQ;iBACT,CACF,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBACnD,OAAO,mCAAQ,OAAO,GAAK,QAAQ,CAAC,OAAO,CAAE,CAAC;gBAC9C,SAAS;YACX,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,UAAU,GAAG,SAAS,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,KAAK,CAAC,SAAS,CAAC,GAAG;oBACjB,KAAK,EAAE,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,IAAI,GAAG,GAAG,UAAU,GAAG,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM;iBAC5F,CAAC;gBACF,SAAS;YACX,CAAC;YAED,IAAI,UAAU,YAAY,KAAK,EAAE,CAAC;gBAEhC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,uBAAuB,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAC/F,UAAU,EACV,UAAU,CACX,CAAC;gBACF,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBACD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,QAAQ,KAAK,gCAAyB,CAAC,OAAO,EAAE,CAAC;wBACnD,KAAK,CAAC,SAAS,CAAC,GAAG;4BACjB,MAAM,EAAE,cAAc;4BACtB,KAAK,EACH,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,IAAI,GAAG,GAAG,UAAU,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE;gCAC7E,YAAY,UAAU,WAAW,UAAU,IAAI;yBAClD,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,KAAK,CAAC,SAAS,CAAC,GAAG;wBACjB,MAAM,EAAE,cAAc;wBACtB,KAAK,EACH,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,IAAI,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE;4BAC5E,OAAO,uBAAuB,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG;qBACxD,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,IAAI,UAAU,IAAI,SAAS,KAAK,gCAAyB,CAAC,EAAE,EAAE,CAAC;oBAC7D,MAAM,eAAe,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;oBAClD,UAAU,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE;wBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CACrC,UAAU,EACV,YAAY,EACZ,SAAS,EACT,GAAG,UAAU,IAAI,YAAY,IAAI,EACjC,QAAQ,CACT,CAAC;wBACF,eAAe,CAAC,MAAM,mCAAQ,eAAe,CAAC,MAAM,GAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,CAAE,CAAC;wBAChG,eAAe,CAAC,KAAK,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;wBACxG,OAAO,mCAAQ,OAAO,GAAK,QAAQ,CAAC,OAAO,CAAE,CAAC;oBAChD,CAAC,CAAC,CAAC;oBACH,eAAe,CAAC,KAAK,IAAI,GAAG,CAAC;oBAC7B,KAAK,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CACrC,UAAU,EACV,UAAsC,EACtC,SAAS,EACT,UAAU,EACV,QAAQ,CACT,CAAC;oBACF,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;wBACzC,SAAS;oBACX,CAAC;oBACD,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;oBACzC,OAAO,mCAAQ,OAAO,GAAK,QAAQ,CAAC,OAAO,CAAE,CAAC;gBAChD,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,YAAY,IAAI,CAAC,EAAE,CAAC;gBACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CACrC,UAAU,EACV,UAAsC,EACtC,SAAS,EACT,UAAU,EACV,QAAQ,CACT,CAAC;gBACF,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC;gBACzC,OAAO,mCAAQ,OAAO,GAAK,QAAQ,CAAC,OAAO,CAAE,CAAC;gBAC9C,SAAS;YACX,CAAC;YAED,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB,CACf,UAAkB,EAClB,aAA4B,EAC5B,SAAiB,EACjB,UAAkB,EAClB,QAAoC;QAEpC,MAAM,UAAU,GAAG,aAAa,YAAY,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC;QAC7G,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,CAAC;QACnC,MAAM,gBAAgB,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACnD,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,EAAE,GAAG,IAAI,CAAC;YACd,IAAI,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBACpD,EAAE,GAAG,GAAG,CAAC;YACX,CAAC;YACD,MAAM,eAAe,GAAG,SAAS,KAAK,gCAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;YACrF,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAChC,UAAU,EACV,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,EACjC;gBACE,YAAY,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,UAAU,IAAI,gBAAgB,EAAE,EAAE;gBACxE,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,EAA+B;aAC1C,CACF,CAAC;YACF,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC;YACzD,gBAAgB,CAAC,MAAM,mCAAQ,gBAAgB,CAAC,MAAM,GAAK,CAAC,cAAc,CAAC,MAAM,IAAI,EAAE,CAAC,CAAE,CAAC;YAC3F,gBAAgB,CAAC,KAAK;gBACpB,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,gCAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5F,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACjD,OAAO,mCAAQ,OAAO,GAAK,QAAQ,CAAC,OAAO,CAAE,CAAC;YAC9C,gBAAgB,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IAED,cAAc,CAAC,UAAkB,EAAE,OAAiB,EAAE,cAA6B;QACjF,MAAM,aAAa,qBAAsB,CAAC,cAAc,IAAI,EAAE,CAAC,CAAE,CAAC;QAClE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC5B,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,WAAW,GAAG,GAAG,UAAU,EAAE,CAAC;YAClC,IAAI,mBAAmB,GAAG,GAAG,UAAU,EAAE,CAAC;YAC1C,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;gBACtC,WAAW,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACxC,aAAa,CAAC,GAAG,mBAAmB,IAAI,iBAAiB,EAAE,CAAC,GAAG,WAAW,CAAC;gBAC3E,mBAAmB,GAAG,GAAG,WAAW,EAAE,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,YAAY,CACV,UAAkB,EAClB,WAAuD;QAEvD,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,IAAI,OAAO,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE,CAAC;YACpC,MAAM,SAAS,GACb,WAAW,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;gBAC7C,CAAC,CAAC,kCAA2B,CAAC,IAAI;gBAClC,CAAC,CAAC,kCAA2B,CAAC,GAAG,CAAC;YACtC,MAAM,IAAI,GAAuB,EAAE,KAAK,EAAE,GAAG,UAAU,IAAI,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC;YAEpF,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC5C,IAAI,WAAW,GAAG,GAAG,UAAU,EAAE,CAAC;gBAClC,IAAI,mBAAmB,GAAG,GAAG,UAAU,EAAE,CAAC;gBAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACvC,WAAW,IAAI,IAAI,iBAAiB,EAAE,CAAC;oBACvC,OAAO,CAAC,GAAG,mBAAmB,IAAI,iBAAiB,EAAE,CAAC,GAAG,WAAW,CAAC;oBACrE,mBAAmB,GAAG,GAAG,WAAW,EAAE,CAAC;gBACzC,CAAC;gBACD,OAAO,qBAAQ,OAAO,CAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,GAAG,GAAG,mBAAmB,IAAI,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YACrE,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,OAAO;YACL,OAAO;YACP,OAAO;SACR,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,YAAsB,EAAE,OAAsB;QACxD,MAAM,aAAa,GAAG,OAAO,IAAI,EAAE,CAAC;QACpC,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;CACF,CAAA;AA7eY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAUR,WAAA,IAAA,eAAM,EAAC,uBAAS,CAAC,0BAA0B,CAAC,CAAA;IAE5C,WAAA,IAAA,eAAM,EAAC,gBAAa,CAAC,uBAAuB,CAAC,CAAA;qCAHvB,4BAAqB;GARnC,sBAAsB,CA6elC"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-c/persistance-rdb",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-alpha30",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc -p tsconfig.build.json",
|
|
8
|
+
"build:clean": "rm -rf dist/* && rm -f *.tsbuildinfo && npm run build",
|
|
8
9
|
"check-types": "tsc -p tsconfig.build.json --noEmit",
|
|
9
10
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
10
|
-
"publish-package": "
|
|
11
|
+
"publish-package": "npm run build:clean && npm publish --access public",
|
|
11
12
|
"test": "vitest --config src/vitest.config.ts",
|
|
12
13
|
"test:coverage": "vitest --config src/vitest.config.ts --coverage"
|
|
13
14
|
},
|
|
14
15
|
"dependencies": {
|
|
15
16
|
"@nestjs/common": "^10.4.12",
|
|
16
|
-
"@
|
|
17
|
-
"@node-c/core": "^1.0.0-alpha3",
|
|
17
|
+
"@node-c/core": "^1.0.0-alpha30",
|
|
18
18
|
"class-validator": "^0.14.1",
|
|
19
|
-
"
|
|
19
|
+
"lodash": "^4.17.21",
|
|
20
20
|
"uuid": "^11.0.5"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/lodash": "^4.17.19"
|
|
21
24
|
}
|
|
22
25
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entityService/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD;AACjD,uDAAqC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { PersistanceDeleteResult, PersistanceEntityService, PersistanceFindResults, PersistanceNumberItem, PersistanceUpdateResult } from '@node-c/core';
|
|
2
|
-
import { EntityManager, EntitySchema, EntityTarget, ObjectLiteral, Repository } from 'typeorm';
|
|
3
|
-
import { BulkCreateOptions, CountOptions, CreateOptions, DeleteOptions, FindOneOptions, FindOptions, UpdateOptions } from './rdb.entity.service.definitions';
|
|
4
|
-
import { ParsedFilter, SQLQueryBuilderService } from '../sqlQueryBuilder';
|
|
5
|
-
export declare class RDBEntityService<Entity extends ObjectLiteral> extends PersistanceEntityService<Entity> {
|
|
6
|
-
protected qb: SQLQueryBuilderService;
|
|
7
|
-
protected repository: Repository<Entity>;
|
|
8
|
-
protected schema: EntitySchema;
|
|
9
|
-
protected primaryKeys: string[];
|
|
10
|
-
constructor(qb: SQLQueryBuilderService, repository: Repository<Entity>, schema: EntitySchema);
|
|
11
|
-
protected buildPrimaryKeyWhereClause(data: Entity[]): {
|
|
12
|
-
field: string;
|
|
13
|
-
value: ParsedFilter;
|
|
14
|
-
};
|
|
15
|
-
bulkCreate(data: Entity[], options?: BulkCreateOptions): Promise<Entity[]>;
|
|
16
|
-
create(data: Entity, options?: CreateOptions): Promise<Entity>;
|
|
17
|
-
count(options: CountOptions): Promise<number | undefined>;
|
|
18
|
-
delete(options: DeleteOptions): Promise<PersistanceDeleteResult>;
|
|
19
|
-
find(options: FindOptions): Promise<PersistanceFindResults<Entity>>;
|
|
20
|
-
findOne(options: FindOneOptions): Promise<Entity | null>;
|
|
21
|
-
getEntityTarget(): EntityTarget<Entity>;
|
|
22
|
-
protected getRepository(transactionManager?: EntityManager): Repository<Entity>;
|
|
23
|
-
protected processManyToMany(data: {
|
|
24
|
-
counterpartColumn: string;
|
|
25
|
-
currentEntityColumn: string;
|
|
26
|
-
id: number;
|
|
27
|
-
items: PersistanceNumberItem[];
|
|
28
|
-
tableName: string;
|
|
29
|
-
}, options?: {
|
|
30
|
-
transactionManager?: EntityManager;
|
|
31
|
-
}): Promise<void>;
|
|
32
|
-
protected save<Data = unknown, ReturnData = unknown>(data: Data, transactionManager?: EntityManager): Promise<ReturnData>;
|
|
33
|
-
update(data: Entity, options: UpdateOptions): Promise<PersistanceUpdateResult<Entity>>;
|
|
34
|
-
}
|