@common-stack/store-mongo 7.1.1-alpha.4 → 7.1.1-alpha.5
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/lib/dataloaders/bulk-dataloader-v2.d.ts +7 -0
- package/lib/dataloaders/{bulk-dataloader.js → bulk-dataloader-v2.js} +3 -3
- package/lib/dataloaders/bulk-dataloader-v2.js.map +1 -0
- package/lib/dataloaders/bulk-dataloader.d.ts +6 -4
- package/lib/dataloaders/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/interfaces/base-repository-v2.d.ts +26 -0
- package/lib/interfaces/base-repository.d.ts +15 -25
- package/lib/interfaces/base-service-v2.d.ts +21 -0
- package/lib/interfaces/base-service.d.ts +19 -18
- package/lib/interfaces/{dataloader.d.ts → dataloader-v2.d.ts} +4 -4
- package/lib/interfaces/dataloaders.d.ts +10 -0
- package/lib/interfaces/index.d.ts +4 -1
- package/lib/mixins/base-service-mixin-v2.d.ts +4 -0
- package/lib/mixins/base-service-mixin-v2.js +123 -0
- package/lib/mixins/base-service-mixin-v2.js.map +1 -0
- package/lib/mixins/base-service-mixin.d.ts +1 -1
- package/lib/mixins/base-service-mixin.js +2 -2
- package/lib/mixins/base-service-mixin.js.map +1 -1
- package/lib/mixins/index.d.ts +1 -0
- package/lib/services/base-proxy-service-v2.d.ts +28 -0
- package/lib/services/base-proxy-service-v2.js +52 -0
- package/lib/services/base-proxy-service-v2.js.map +1 -0
- package/lib/services/base-proxy-service.d.ts +17 -20
- package/lib/services/base-proxy-service.js +0 -3
- package/lib/services/base-proxy-service.js.map +1 -1
- package/lib/services/base-service-v2.d.ts +23 -0
- package/lib/services/base-service-v2.js +64 -0
- package/lib/services/base-service-v2.js.map +1 -0
- package/lib/services/base-service.d.ts +18 -19
- package/lib/services/base-service.js +11 -13
- package/lib/services/base-service.js.map +1 -1
- package/lib/services/index.d.ts +2 -0
- package/lib/store/models/common-options-v2.d.ts +16 -0
- package/lib/store/models/common-options-v2.js +40 -0
- package/lib/store/models/common-options-v2.js.map +1 -0
- package/lib/store/models/common-options.d.ts +2 -3
- package/lib/store/models/common-options.js +3 -23
- package/lib/store/models/common-options.js.map +1 -1
- package/lib/store/models/index.d.ts +1 -0
- package/lib/store/repositories/base-repository-v2.d.ts +65 -0
- package/lib/store/repositories/base-repository-v2.js +389 -0
- package/lib/store/repositories/base-repository-v2.js.map +1 -0
- package/lib/store/repositories/base-repository.d.ts +22 -58
- package/lib/store/repositories/base-repository.js +134 -276
- package/lib/store/repositories/base-repository.js.map +1 -1
- package/lib/store/repositories/index.d.ts +1 -0
- package/package.json +2 -2
- package/lib/dataloaders/bulk-dataloader.js.map +0 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import DataLoader from 'dataloader';
|
|
2
|
+
import { DataLoaderOptions2 as DataLoaderOptions, IBaseService2 as IBaseService, IDataLoader2 as IDataLoader, AsDomainType } from '../interfaces';
|
|
3
|
+
export declare class BulkDataLoader2<SchemaType> extends DataLoader<string, AsDomainType<SchemaType> | null> implements IDataLoader<SchemaType> {
|
|
4
|
+
private readonly service;
|
|
5
|
+
constructor(service: IBaseService<SchemaType>);
|
|
6
|
+
withOptions: DataLoader<DataLoaderOptions<SchemaType>, AsDomainType<SchemaType>[], DataLoaderOptions<SchemaType>>;
|
|
7
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloader';import {injectable,unmanaged}from'inversify';let
|
|
1
|
+
import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloader';import {injectable,unmanaged}from'inversify';let BulkDataLoader2 = class BulkDataLoader2 extends DataLoader {
|
|
2
2
|
service;
|
|
3
3
|
constructor(service) {
|
|
4
4
|
super(async (ids) => {
|
|
@@ -26,8 +26,8 @@ import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloa
|
|
|
26
26
|
}));
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
|
-
|
|
29
|
+
BulkDataLoader2 = __decorate([
|
|
30
30
|
injectable(),
|
|
31
31
|
__param(0, unmanaged()),
|
|
32
32
|
__metadata("design:paramtypes", [Object])
|
|
33
|
-
],
|
|
33
|
+
], BulkDataLoader2);export{BulkDataLoader2};//# sourceMappingURL=bulk-dataloader-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-dataloader-v2.js","sources":["../../src/dataloaders/bulk-dataloader-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"kIAWO,IAAM,eAAe,GAArB,MAAM,eACT,SAAQ,UAAmD,CAAA;AAGjB,IAAA,OAAA,CAAA;AAA1C,IAAA,WAAA,CAA0C,OAAiC,EAAA;AACvE,QAAA,KAAK,CAAC,OAAO,GAAa,KAAI;YAC1B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC;AAC5E,SAAC,CAAC,CAAC;QAJmC,IAAO,CAAA,OAAA,GAAP,OAAO,CAA0B;KAK1E;IAED,WAAW,GAAG,IAAI,UAAU,CAA4D,OAAO,OAAO,KAAI;AACtG,QAAA,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC;AACrD,QAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;;AAG/C,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;AACxB,YAAA,CAAC,SAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;SACX,CAAC;QAE7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACtC,YAAA,GAAG,IAAI;YACP,QAAQ;AACX,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KACtB,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;YACpB,IAAI,OAAO,UAAU,KAAK,UAAU;AAAE,gBAAA,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,YAAA,OAAO,IAAI,CAAC,SAA2C,CAAC,EAAE,QAAQ,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;SACjG,CAAC,CACL,CAAC;AACN,KAAC,CAAC,CAAC;EACN;AAjCY,eAAe,GAAA,UAAA,CAAA;AAD3B,IAAA,UAAU,EAAE;IAKI,OAAA,CAAA,CAAA,EAAA,SAAS,EAAE,CAAA;;AAJf,CAAA,EAAA,eAAe,CAiC3B"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import DataLoader from 'dataloader';
|
|
2
|
-
import { DataLoaderOptions, IBaseService, IDataLoader
|
|
3
|
-
export declare class BulkDataLoader<
|
|
2
|
+
import { DataLoaderOptions, IBaseService, IDataLoader } from '../interfaces';
|
|
3
|
+
export declare class BulkDataLoader<T extends {
|
|
4
|
+
id: string;
|
|
5
|
+
}> extends DataLoader<string, T | null> implements IDataLoader<T> {
|
|
4
6
|
private readonly service;
|
|
5
|
-
constructor(service: IBaseService<
|
|
6
|
-
withOptions: DataLoader<DataLoaderOptions<
|
|
7
|
+
constructor(service: IBaseService<T>);
|
|
8
|
+
withOptions: DataLoader<DataLoaderOptions<T>, T[], DataLoaderOptions<T>>;
|
|
7
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './bulk-dataloader';
|
|
1
|
+
export * from './bulk-dataloader-v2';
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{PAGINATION_OPTIONS}from'./interfaces/get-all-args.js';export{generateMongo}from'./helpers/mongoose-connection.js';export{BaseService}from'./services/base-service.js';export{BaseProxyService}from'./services/base-proxy-service.js';export{addIdVirtualFields,
|
|
1
|
+
export{PAGINATION_OPTIONS}from'./interfaces/get-all-args.js';export{generateMongo}from'./helpers/mongoose-connection.js';export{BaseService2}from'./services/base-service-v2.js';export{BaseProxyService2}from'./services/base-proxy-service-v2.js';export{BaseService}from'./services/base-service.js';export{BaseProxyService}from'./services/base-proxy-service.js';export{addIdVirtualFields2,commonModelSchemaOptions2}from'./store/models/common-options-v2.js';export{addIdVirtualFields,commonModeSchemaOptions}from'./store/models/common-options.js';export{BaseRepository2}from'./store/repositories/base-repository-v2.js';export{BaseRepository}from'./store/repositories/base-repository.js';export{BulkDataLoader2}from'./dataloaders/bulk-dataloader-v2.js';export{BaseServiceMixin2}from'./mixins/base-service-mixin-v2.js';export{BaseServiceMixin}from'./mixins/base-service-mixin.js';//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { FilterQuery, Model, PipelineStage, UpdateQuery } from 'mongoose';
|
|
2
|
+
import { AsDomainType, CreateType, GetAllArgs, UpdateType } from './get-all-args';
|
|
3
|
+
export interface IBaseRepository2<SchemaType> {
|
|
4
|
+
model: Model<SchemaType>;
|
|
5
|
+
count(conditions?: FilterQuery<SchemaType>): Promise<number>;
|
|
6
|
+
getAll(options: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
7
|
+
getAllWithPipeline(options: GetAllArgs<SchemaType>, customPipeline?: PipelineStage[]): Promise<AsDomainType<SchemaType>[]>;
|
|
8
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
9
|
+
data: AsDomainType<SchemaType>[];
|
|
10
|
+
totalCount: number;
|
|
11
|
+
}>;
|
|
12
|
+
getAllWithCountAndPipeline(options: GetAllArgs<SchemaType>, customPipeline?: PipelineStage[]): Promise<{
|
|
13
|
+
data: AsDomainType<SchemaType>[];
|
|
14
|
+
totalCount: number;
|
|
15
|
+
}>;
|
|
16
|
+
get(conditions?: FilterQuery<SchemaType>, selectedFields?: string): Promise<AsDomainType<SchemaType> | null>;
|
|
17
|
+
find(conditions: Partial<FilterQuery<SchemaType>>, selectedFields?: string): Promise<AsDomainType<SchemaType> | null>;
|
|
18
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
19
|
+
upsert<T = UpdateType<SchemaType>>(conditions: FilterQuery<SchemaType>, update: T, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>>;
|
|
20
|
+
update<T = UpdateType<SchemaType>>(criteria: FilterQuery<SchemaType>, update: T | UpdateQuery<SchemaType>, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>>;
|
|
21
|
+
bulkUpdate<T = UpdateType<SchemaType>>(criteria: FilterQuery<SchemaType>, update: T | UpdateQuery<SchemaType>, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>[]>;
|
|
22
|
+
delete(criteria: FilterQuery<SchemaType>): Promise<boolean>;
|
|
23
|
+
bulkGet(ids: string[], selectedFields?: string): Promise<AsDomainType<SchemaType>[]>;
|
|
24
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
25
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
26
|
+
}
|
|
@@ -1,26 +1,16 @@
|
|
|
1
|
-
import { FilterQuery, Model,
|
|
2
|
-
import {
|
|
3
|
-
export interface IBaseRepository<
|
|
4
|
-
model: Model<
|
|
5
|
-
count(conditions?: FilterQuery<
|
|
6
|
-
getAll(options: GetAllArgs<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
get(conditions?: FilterQuery<SchemaType>, selectedFields?: string): Promise<AsDomainType<SchemaType> | null>;
|
|
17
|
-
find(conditions: Partial<FilterQuery<SchemaType>>, selectedFields?: string): Promise<AsDomainType<SchemaType> | null>;
|
|
18
|
-
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
19
|
-
upsert<T = UpdateType<SchemaType>>(conditions: FilterQuery<SchemaType>, update: T, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>>;
|
|
20
|
-
update<T = UpdateType<SchemaType>>(criteria: FilterQuery<SchemaType>, update: T | UpdateQuery<SchemaType>, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>>;
|
|
21
|
-
bulkUpdate<T = UpdateType<SchemaType>>(criteria: FilterQuery<SchemaType>, update: T | UpdateQuery<SchemaType>, options?: Record<string, unknown>): Promise<AsDomainType<SchemaType>[]>;
|
|
22
|
-
delete(criteria: FilterQuery<SchemaType>): Promise<boolean>;
|
|
23
|
-
bulkGet(ids: string[], selectedFields?: string): Promise<AsDomainType<SchemaType>[]>;
|
|
24
|
-
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
25
|
-
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
1
|
+
import { Document, FilterQuery, Model, UpdateQuery } from 'mongoose';
|
|
2
|
+
import { GetAllArgs } from './get-all-args';
|
|
3
|
+
export interface IBaseRepository<T, D = Document<T>> {
|
|
4
|
+
model: Model<D>;
|
|
5
|
+
count(conditions?: FilterQuery<D>): Promise<number>;
|
|
6
|
+
getAll(options: GetAllArgs<D>): Promise<T[]>;
|
|
7
|
+
get(conditions?: FilterQuery<D>, selectedFields?: string): Promise<T>;
|
|
8
|
+
create<I>(data: I): Promise<T>;
|
|
9
|
+
upsert<I>(conditions: FilterQuery<D>, update: I, options: any): Promise<T>;
|
|
10
|
+
update<I>(criteria: FilterQuery<D>, update: UpdateQuery<D>, options?: any): Promise<T>;
|
|
11
|
+
bulkUpdate<I>(criteria: FilterQuery<D>, update: UpdateQuery<D>, options?: any): Promise<T[]>;
|
|
12
|
+
delete(criteria: FilterQuery<D>): Promise<boolean>;
|
|
13
|
+
bulkGet(ids: string[], selectedFields?: string): Promise<T[]>;
|
|
14
|
+
bulkCreate<I>(data: I[]): Promise<T[]>;
|
|
15
|
+
bulkDelete(criteria: FilterQuery<D>): Promise<number>;
|
|
26
16
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FilterQuery } from 'mongoose';
|
|
2
|
+
import { GetAllArgs, AsDomainType, CreateType, UpdateType } from './get-all-args';
|
|
3
|
+
export interface IBaseService2<SchemaType> {
|
|
4
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
5
|
+
data: AsDomainType<SchemaType>[];
|
|
6
|
+
totalCount: number;
|
|
7
|
+
}>;
|
|
8
|
+
count(conditions?: FilterQuery<SchemaType>): Promise<number>;
|
|
9
|
+
get(conditions: string | FilterQuery<SchemaType>): Promise<AsDomainType<SchemaType> | null>;
|
|
10
|
+
getByName(name: string): Promise<AsDomainType<SchemaType> | null>;
|
|
11
|
+
getAll(options: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
12
|
+
getByIds(ids: string[]): Promise<AsDomainType<SchemaType>[]>;
|
|
13
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
14
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
15
|
+
update<T = UpdateType<SchemaType>>(id: string, data: T, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
16
|
+
insert<T = CreateType<SchemaType>>(data: T & {
|
|
17
|
+
id?: string;
|
|
18
|
+
}, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
19
|
+
delete(id: string | FilterQuery<SchemaType>): Promise<boolean>;
|
|
20
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
21
|
+
}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { FilterQuery } from 'mongoose';
|
|
2
|
-
import { GetAllArgs
|
|
3
|
-
export interface IBaseService<
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { FilterQuery, Document } from 'mongoose';
|
|
2
|
+
import { GetAllArgs } from './get-all-args';
|
|
3
|
+
export interface IBaseService<T, C = Omit<T, 'id'>, U = C> {
|
|
4
|
+
count(conditions?: FilterQuery<Document<T>>): Promise<number>;
|
|
5
|
+
get(id: string): Promise<T>;
|
|
6
|
+
get(conditions?: string | FilterQuery<Document<T>>): Promise<T>;
|
|
7
|
+
getByName(name: string): Promise<T>;
|
|
8
|
+
getAll(options?: GetAllArgs<Document<T>>): Promise<T[]>;
|
|
9
|
+
getByIds(ids: string[]): Promise<T[]>;
|
|
10
|
+
create(data: C): Promise<T>;
|
|
11
|
+
insert(data: (C | U) & {
|
|
12
|
+
id?: string;
|
|
13
|
+
}, overwrite?: boolean): Promise<T>;
|
|
14
|
+
bulkCreate(data: C[]): Promise<T[]>;
|
|
15
|
+
update(id: string, data: U, overwrite?: boolean): Promise<T>;
|
|
16
|
+
delete(id: string): Promise<boolean>;
|
|
17
|
+
delete(conditions: string | FilterQuery<Document<T>>): Promise<boolean>;
|
|
18
|
+
getAllWithCount(options: GetAllArgs<Document<T>>): Promise<{
|
|
19
|
+
data: T[];
|
|
6
20
|
totalCount: number;
|
|
7
21
|
}>;
|
|
8
|
-
count(conditions?: FilterQuery<SchemaType>): Promise<number>;
|
|
9
|
-
get(conditions: string | FilterQuery<SchemaType>): Promise<AsDomainType<SchemaType> | null>;
|
|
10
|
-
getByName(name: string): Promise<AsDomainType<SchemaType> | null>;
|
|
11
|
-
getAll(options: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
12
|
-
getByIds(ids: string[]): Promise<AsDomainType<SchemaType>[]>;
|
|
13
|
-
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
14
|
-
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
15
|
-
update<T = UpdateType<SchemaType>>(id: string, data: T, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
16
|
-
insert<T = CreateType<SchemaType>>(data: T & {
|
|
17
|
-
id?: string;
|
|
18
|
-
}, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
19
|
-
delete(id: string | FilterQuery<SchemaType>): Promise<boolean>;
|
|
20
|
-
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
21
22
|
}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import DataLoader from 'dataloader';
|
|
2
2
|
import { FilterQuery } from 'mongoose';
|
|
3
3
|
import { AsDomainType } from './get-all-args';
|
|
4
|
-
export interface
|
|
4
|
+
export interface DataLoaderOptions2<SchemaType> {
|
|
5
5
|
id: string;
|
|
6
6
|
searchKey: keyof AsDomainType<SchemaType> | string;
|
|
7
|
-
comparator?: (option:
|
|
7
|
+
comparator?: (option: DataLoaderOptions2<SchemaType>, item: AsDomainType<SchemaType>) => boolean;
|
|
8
8
|
criteria?: FilterQuery<SchemaType>;
|
|
9
9
|
[key: string]: any;
|
|
10
10
|
}
|
|
11
|
-
export interface
|
|
11
|
+
export interface IDataLoader2<SchemaType> {
|
|
12
12
|
load: (id: string) => Promise<AsDomainType<SchemaType> | null>;
|
|
13
13
|
loadMany: (ids: string[]) => Promise<(AsDomainType<SchemaType> | null | Error)[]>;
|
|
14
14
|
clear: (id: string) => DataLoader<string, AsDomainType<SchemaType> | null>;
|
|
15
15
|
clearAll: () => DataLoader<string, AsDomainType<SchemaType> | null>;
|
|
16
|
-
withOptions: DataLoader<
|
|
16
|
+
withOptions: DataLoader<DataLoaderOptions2<SchemaType>, AsDomainType<SchemaType>[]>;
|
|
17
17
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import DataLoader from 'dataloader';
|
|
2
|
+
import { IBaseService } from './base-service';
|
|
3
|
+
export type DataLoaderOptions<T> = Parameters<IBaseService<T>['getAll']>[0] & {
|
|
4
|
+
id: string;
|
|
5
|
+
searchKey: keyof T;
|
|
6
|
+
comparator?: (source: Omit<DataLoaderOptions<T>, 'comparator'>, target: T) => boolean;
|
|
7
|
+
};
|
|
8
|
+
export type IDataLoader<T> = DataLoader<string, T> & {
|
|
9
|
+
withOptions: DataLoader<DataLoaderOptions<T>, T[]>;
|
|
10
|
+
};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export * from './mongoose-settings';
|
|
2
2
|
export * from './get-all-args';
|
|
3
|
+
export * from './base-repository-v2';
|
|
4
|
+
export * from './base-service-v2';
|
|
5
|
+
export * from './dataloader-v2';
|
|
3
6
|
export * from './base-repository';
|
|
4
7
|
export * from './base-service';
|
|
5
|
-
export * from './
|
|
8
|
+
export * from './dataloaders';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ServiceBroker, ServiceSchema } from 'moleculer';
|
|
2
|
+
import { BaseServiceCommands } from 'common';
|
|
3
|
+
import { IBaseService2 as IBaseService } from '../interfaces';
|
|
4
|
+
export declare const BaseServiceMixin2: <T>(service: IBaseService<T>, broker?: ServiceBroker, name?: string, events?: BaseServiceCommands[]) => Partial<ServiceSchema>;
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import {upperFirst}from'lodash-es';import {BaseServiceCommands}from'common';const defaultEvents = [
|
|
2
|
+
BaseServiceCommands.Create,
|
|
3
|
+
BaseServiceCommands.BulkCreate,
|
|
4
|
+
BaseServiceCommands.Update,
|
|
5
|
+
BaseServiceCommands.Delete,
|
|
6
|
+
BaseServiceCommands.DeleteMany,
|
|
7
|
+
];
|
|
8
|
+
const BaseServiceMixin2 = (service, broker, name, events = defaultEvents) => ({
|
|
9
|
+
name: 'BaseServiceMixin',
|
|
10
|
+
actions: {
|
|
11
|
+
[BaseServiceCommands.Get]: {
|
|
12
|
+
params: {
|
|
13
|
+
id: 'string',
|
|
14
|
+
},
|
|
15
|
+
handler: async (ctx) => service.get({ id: ctx.params.id }),
|
|
16
|
+
},
|
|
17
|
+
[BaseServiceCommands.Count]: {
|
|
18
|
+
params: {
|
|
19
|
+
criteria: { type: 'object', optional: true },
|
|
20
|
+
},
|
|
21
|
+
handler: async (ctx) => service.count(ctx.params.criteria),
|
|
22
|
+
},
|
|
23
|
+
[BaseServiceCommands.BulkCreate]: {
|
|
24
|
+
params: {
|
|
25
|
+
data: { type: 'array', items: 'object' },
|
|
26
|
+
},
|
|
27
|
+
handler: async (ctx) => {
|
|
28
|
+
const response = await service.bulkCreate(ctx.params.data);
|
|
29
|
+
if (events.includes(BaseServiceCommands.BulkCreate)) {
|
|
30
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.BulkCreate)}`, response);
|
|
31
|
+
}
|
|
32
|
+
return response;
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
[BaseServiceCommands.Create]: {
|
|
36
|
+
params: {
|
|
37
|
+
data: 'object',
|
|
38
|
+
},
|
|
39
|
+
handler: async (ctx) => {
|
|
40
|
+
const response = await service.create(ctx.params.data);
|
|
41
|
+
if (events.includes(BaseServiceCommands.Create)) {
|
|
42
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.Create)}`, response);
|
|
43
|
+
}
|
|
44
|
+
return response;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
[BaseServiceCommands.Delete]: {
|
|
48
|
+
params: {
|
|
49
|
+
id: 'string',
|
|
50
|
+
},
|
|
51
|
+
handler: async (ctx) => {
|
|
52
|
+
const { id } = ctx.params;
|
|
53
|
+
const response = await service.delete({ id });
|
|
54
|
+
if (events.includes(BaseServiceCommands.Delete)) {
|
|
55
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.Delete)}`, { id });
|
|
56
|
+
}
|
|
57
|
+
return response;
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
[BaseServiceCommands.GetAll]: {
|
|
61
|
+
params: {
|
|
62
|
+
criteria: 'object|optional',
|
|
63
|
+
sort: 'object|optional',
|
|
64
|
+
skip: 'number|optional',
|
|
65
|
+
limit: 'number|optional',
|
|
66
|
+
selectedFields: 'string|optional',
|
|
67
|
+
},
|
|
68
|
+
handler: async (ctx) => service.getAll(ctx.params),
|
|
69
|
+
},
|
|
70
|
+
[BaseServiceCommands.GetAllWithCount]: {
|
|
71
|
+
params: {
|
|
72
|
+
criteria: 'object|optional',
|
|
73
|
+
sort: 'object|optional',
|
|
74
|
+
skip: 'number|optional',
|
|
75
|
+
limit: 'number|optional',
|
|
76
|
+
selectedFields: 'string|optional',
|
|
77
|
+
},
|
|
78
|
+
handler: async (ctx) => service.getAllWithCount(ctx.params),
|
|
79
|
+
},
|
|
80
|
+
[BaseServiceCommands.Insert]: {
|
|
81
|
+
params: {
|
|
82
|
+
data: 'object',
|
|
83
|
+
overwrite: 'boolean|optional',
|
|
84
|
+
},
|
|
85
|
+
handler: async (ctx) => {
|
|
86
|
+
const { data } = ctx.params;
|
|
87
|
+
const response = await service.insert(data, ctx.params.overwrite);
|
|
88
|
+
const action = data?.id ? BaseServiceCommands.Update : BaseServiceCommands.Create;
|
|
89
|
+
if (events.includes(action)) {
|
|
90
|
+
await broker?.emit(`${name}.on${upperFirst(action)}`, response);
|
|
91
|
+
}
|
|
92
|
+
return response;
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
[BaseServiceCommands.Update]: {
|
|
96
|
+
params: {
|
|
97
|
+
id: 'string',
|
|
98
|
+
data: 'object',
|
|
99
|
+
overwrite: 'boolean|optional',
|
|
100
|
+
},
|
|
101
|
+
handler: async (ctx) => {
|
|
102
|
+
const response = await service.update(ctx.params.id, ctx.params.data, ctx.params.overwrite);
|
|
103
|
+
if (events.includes(BaseServiceCommands.Update)) {
|
|
104
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.Update)}`, response);
|
|
105
|
+
}
|
|
106
|
+
return response;
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
[BaseServiceCommands.DeleteMany]: {
|
|
110
|
+
params: {
|
|
111
|
+
criteria: 'object',
|
|
112
|
+
},
|
|
113
|
+
handler: async (ctx) => {
|
|
114
|
+
const { criteria } = ctx.params;
|
|
115
|
+
const response = await service.delete(criteria);
|
|
116
|
+
if (events.includes(BaseServiceCommands.DeleteMany)) {
|
|
117
|
+
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.DeleteMany)}`, criteria);
|
|
118
|
+
}
|
|
119
|
+
return response;
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
});export{BaseServiceMixin2};//# sourceMappingURL=base-service-mixin-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-service-mixin-v2.js","sources":["../../src/mixins/base-service-mixin-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ServiceBroker, ServiceSchema } from 'moleculer';
|
|
2
2
|
import { BaseServiceCommands } from 'common';
|
|
3
3
|
import { IBaseService } from '../interfaces';
|
|
4
|
-
export declare const BaseServiceMixin: <T>(service: IBaseService<T>, broker?: ServiceBroker, name?: string, events?: BaseServiceCommands[]) => Partial<ServiceSchema>;
|
|
4
|
+
export declare const BaseServiceMixin: <T, C, U>(service: IBaseService<T, C, U>, broker?: ServiceBroker, name?: string, events?: BaseServiceCommands[]) => Partial<ServiceSchema>;
|
|
@@ -12,7 +12,7 @@ const BaseServiceMixin = (service, broker, name, events = defaultEvents) => ({
|
|
|
12
12
|
params: {
|
|
13
13
|
id: 'string',
|
|
14
14
|
},
|
|
15
|
-
handler: async (ctx) => service.get(
|
|
15
|
+
handler: async (ctx) => service.get(ctx.params.id),
|
|
16
16
|
},
|
|
17
17
|
[BaseServiceCommands.Count]: {
|
|
18
18
|
params: {
|
|
@@ -50,7 +50,7 @@ const BaseServiceMixin = (service, broker, name, events = defaultEvents) => ({
|
|
|
50
50
|
},
|
|
51
51
|
handler: async (ctx) => {
|
|
52
52
|
const { id } = ctx.params;
|
|
53
|
-
const response = await service.delete(
|
|
53
|
+
const response = await service.delete(id);
|
|
54
54
|
if (events.includes(BaseServiceCommands.Delete)) {
|
|
55
55
|
await broker?.emit(`${name}.on${upperFirst(BaseServiceCommands.Delete)}`, { id });
|
|
56
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-service-mixin.js","sources":["../../src/mixins/base-service-mixin.ts"],"sourcesContent":[null],"names":[],"mappings":"4EAMA,MAAM,aAAa,GAAG;AAClB,IAAA,mBAAmB,CAAC,MAAM;AAC1B,IAAA,mBAAmB,CAAC,UAAU;AAC9B,IAAA,mBAAmB,CAAC,MAAM;AAC1B,IAAA,mBAAmB,CAAC,MAAM;AAC1B,IAAA,mBAAmB,CAAC,UAAU;CACjC,CAAC;AAEW,MAAA,gBAAgB,GAAG,CAC5B,
|
|
1
|
+
{"version":3,"file":"base-service-mixin.js","sources":["../../src/mixins/base-service-mixin.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/lib/mixins/index.d.ts
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ServiceBroker } from 'moleculer';
|
|
2
|
+
import { FilterQuery } from 'mongoose';
|
|
3
|
+
import { CdmLogger } from '@cdm-logger/core';
|
|
4
|
+
import { GetAllArgs, IBaseService2 as IBaseService, AsDomainType, CreateType, UpdateType } from '../interfaces';
|
|
5
|
+
export declare abstract class BaseProxyService2<SchemaType> implements IBaseService<SchemaType> {
|
|
6
|
+
private readonly broker;
|
|
7
|
+
protected abstract logger?: CdmLogger.ILogger;
|
|
8
|
+
protected abstract topic: string;
|
|
9
|
+
constructor(broker: ServiceBroker, logger: CdmLogger.ILogger);
|
|
10
|
+
getByName(name: string): Promise<AsDomainType<SchemaType> | null>;
|
|
11
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
12
|
+
count(criteria?: FilterQuery<SchemaType>): Promise<number>;
|
|
13
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
14
|
+
delete(id: string | FilterQuery<SchemaType>): Promise<boolean>;
|
|
15
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
16
|
+
get(id?: string | FilterQuery<SchemaType>): Promise<AsDomainType<SchemaType> | null>;
|
|
17
|
+
getAll(options?: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
18
|
+
getByIds(ids: string[]): Promise<AsDomainType<SchemaType>[]>;
|
|
19
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
20
|
+
data: AsDomainType<SchemaType>[];
|
|
21
|
+
totalCount: number;
|
|
22
|
+
}>;
|
|
23
|
+
insert<T = CreateType<SchemaType>>(data: T & {
|
|
24
|
+
id?: string;
|
|
25
|
+
}, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
26
|
+
update<T = UpdateType<SchemaType>>(id: string, data: T, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
27
|
+
protected callAction<T, P = unknown>(command: string, params?: P): Promise<T>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {__decorate,__param,__metadata}from'tslib';import {injectable,inject,optional}from'inversify';import {ServiceBroker}from'moleculer';import'@cdm-logger/core';import {CommonType}from'@common-stack/core';import {BaseServiceCommands}from'common';let BaseProxyService2 = class BaseProxyService2 {
|
|
2
|
+
broker;
|
|
3
|
+
constructor(broker, logger) {
|
|
4
|
+
this.broker = broker;
|
|
5
|
+
}
|
|
6
|
+
getByName(name) {
|
|
7
|
+
return this.callAction(BaseServiceCommands.GetByName, { name });
|
|
8
|
+
}
|
|
9
|
+
bulkCreate(data) {
|
|
10
|
+
return this.callAction(BaseServiceCommands.BulkCreate, { data });
|
|
11
|
+
}
|
|
12
|
+
count(criteria) {
|
|
13
|
+
return this.callAction(BaseServiceCommands.Count, { criteria });
|
|
14
|
+
}
|
|
15
|
+
create(data) {
|
|
16
|
+
return this.callAction(BaseServiceCommands.Create, { data });
|
|
17
|
+
}
|
|
18
|
+
delete(id) {
|
|
19
|
+
return this.callAction(BaseServiceCommands.Delete, { id });
|
|
20
|
+
}
|
|
21
|
+
bulkDelete(criteria) {
|
|
22
|
+
return this.callAction(BaseServiceCommands.BulkDelete, { criteria });
|
|
23
|
+
}
|
|
24
|
+
get(id) {
|
|
25
|
+
return this.callAction(BaseServiceCommands.Get, { id });
|
|
26
|
+
}
|
|
27
|
+
getAll(options) {
|
|
28
|
+
return this.callAction(BaseServiceCommands.GetAll, options);
|
|
29
|
+
}
|
|
30
|
+
getByIds(ids) {
|
|
31
|
+
return this.callAction(BaseServiceCommands.GetByIds, { ids });
|
|
32
|
+
}
|
|
33
|
+
getAllWithCount(options) {
|
|
34
|
+
return this.callAction(BaseServiceCommands.GetAllWithCount, options);
|
|
35
|
+
}
|
|
36
|
+
insert(data, overwrite) {
|
|
37
|
+
return this.callAction(BaseServiceCommands.Insert, { data, overwrite });
|
|
38
|
+
}
|
|
39
|
+
update(id, data, overwrite) {
|
|
40
|
+
return this.callAction(BaseServiceCommands.Update, { id, data, overwrite });
|
|
41
|
+
}
|
|
42
|
+
async callAction(command, params) {
|
|
43
|
+
return this.broker.call(`${this.topic}.${command}`, params);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
BaseProxyService2 = __decorate([
|
|
47
|
+
injectable(),
|
|
48
|
+
__param(0, inject(CommonType.MOLECULER_BROKER)),
|
|
49
|
+
__param(1, inject(CommonType.LOGGER)),
|
|
50
|
+
__param(1, optional()),
|
|
51
|
+
__metadata("design:paramtypes", [ServiceBroker, Object])
|
|
52
|
+
], BaseProxyService2);export{BaseProxyService2};//# sourceMappingURL=base-proxy-service-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-proxy-service-v2.js","sources":["../../src/services/base-proxy-service-v2.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
import { ServiceBroker } from 'moleculer';
|
|
2
2
|
import { FilterQuery } from 'mongoose';
|
|
3
3
|
import { CdmLogger } from '@cdm-logger/core';
|
|
4
|
-
import { GetAllArgs, IBaseService
|
|
5
|
-
|
|
4
|
+
import { GetAllArgs, IBaseService } from '../interfaces';
|
|
5
|
+
type MethodsNames<T, C, U> = keyof IBaseService<T, C, U>;
|
|
6
|
+
type MethodResponse<T, C, U, M extends MethodsNames<T, C, U>> = ReturnType<IBaseService<T, C, U>[M]>;
|
|
7
|
+
export declare abstract class BaseProxyService<T, C = T, U = T> implements IBaseService<T, C, U> {
|
|
6
8
|
private readonly broker;
|
|
7
9
|
protected abstract logger?: CdmLogger.ILogger;
|
|
8
|
-
protected abstract topic:
|
|
10
|
+
protected abstract topic: any;
|
|
9
11
|
constructor(broker: ServiceBroker, logger: CdmLogger.ILogger);
|
|
10
|
-
getByName(name: string): Promise<
|
|
11
|
-
bulkCreate
|
|
12
|
-
count(criteria?: FilterQuery<
|
|
13
|
-
create
|
|
14
|
-
delete(id: string | FilterQuery<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
totalCount: number;
|
|
22
|
-
}>;
|
|
23
|
-
insert<T = CreateType<SchemaType>>(data: T & {
|
|
24
|
-
id?: string;
|
|
25
|
-
}, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
26
|
-
update<T = UpdateType<SchemaType>>(id: string, data: T, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
12
|
+
getByName(name: string): Promise<T>;
|
|
13
|
+
bulkCreate(data: C[]): MethodResponse<T, C, U, 'bulkCreate'>;
|
|
14
|
+
count(criteria?: FilterQuery<Document>): MethodResponse<T, C, U, 'count'>;
|
|
15
|
+
create(data: C): MethodResponse<T, C, U, 'create'>;
|
|
16
|
+
delete(id: string | FilterQuery<Document>): MethodResponse<T, C, U, 'delete'>;
|
|
17
|
+
get(id?: string | FilterQuery<Document>): MethodResponse<T, C, U, 'get'>;
|
|
18
|
+
getAll(options?: GetAllArgs<Document>): MethodResponse<T, C, U, 'getAll'>;
|
|
19
|
+
getByIds(ids: string[]): Promise<T[]>;
|
|
20
|
+
getAllWithCount(options: GetAllArgs<Document>): MethodResponse<T, C, U, 'getAllWithCount'>;
|
|
21
|
+
insert(data: C | U, overwrite?: boolean): MethodResponse<T, C, U, 'insert'>;
|
|
22
|
+
update(id: string, data: U, overwrite?: boolean): MethodResponse<T, C, U, 'update'>;
|
|
27
23
|
protected callAction<T, P = unknown>(command: string, params?: P): Promise<T>;
|
|
28
24
|
}
|
|
25
|
+
export {};
|
|
@@ -18,9 +18,6 @@ import {__decorate,__param,__metadata}from'tslib';import {injectable,inject,opti
|
|
|
18
18
|
delete(id) {
|
|
19
19
|
return this.callAction(BaseServiceCommands.Delete, { id });
|
|
20
20
|
}
|
|
21
|
-
bulkDelete(criteria) {
|
|
22
|
-
return this.callAction(BaseServiceCommands.BulkDelete, { criteria });
|
|
23
|
-
}
|
|
24
21
|
get(id) {
|
|
25
22
|
return this.callAction(BaseServiceCommands.Get, { id });
|
|
26
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-proxy-service.js","sources":["../../src/services/base-proxy-service.ts"],"sourcesContent":[null],"names":[],"mappings":"yPAYsB,IAAA,gBAAgB,GAA/B,MAAe,gBAAgB,CAAA;AAOb,IAAA,MAAA,CAAA;IAFrB,WAEqB,CAAA,MAAqB,EAGtC,MAAyB,EAAA;QAHR,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;KAItC;AAEJ,IAAA,SAAS,CAAC,IAAY,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KACnE;AAED,IAAA,UAAU,
|
|
1
|
+
{"version":3,"file":"base-proxy-service.js","sources":["../../src/services/base-proxy-service.ts"],"sourcesContent":[null],"names":[],"mappings":"yPAYsB,IAAA,gBAAgB,GAA/B,MAAe,gBAAgB,CAAA;AAOb,IAAA,MAAA,CAAA;IAFrB,WAEqB,CAAA,MAAqB,EAGtC,MAAyB,EAAA;QAHR,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;KAItC;AAEJ,IAAA,SAAS,CAAC,IAAY,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KACnE;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAqB,mBAAmB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KACxF;AAED,IAAA,KAAK,CAAC,QAAgC,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;KACnE;AAED,IAAA,MAAM,CAAC,IAAO,EAAA;AACV,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KAChE;AAED,IAAA,MAAM,CAAC,EAAkC,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAC9D;AAED,IAAA,GAAG,CAAC,EAAmC,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAC3D;AAED,IAAA,MAAM,CAAC,OAA8B,EAAA;QACjC,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/D;AAED,IAAA,QAAQ,CAAC,GAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;KACjE;AAED,IAAA,eAAe,CAAC,OAA6B,EAAA;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;KACxE;IAED,MAAM,CAAC,IAAW,EAAE,SAAmB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3E;AAED,IAAA,MAAM,CAAC,EAAU,EAAE,IAAO,EAAE,SAAmB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAI,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAClF;AAES,IAAA,MAAM,UAAU,CAAiB,OAAe,EAAE,MAAU,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAO,CAAG,EAAA,IAAI,CAAC,KAAK,IAAI,OAAO,CAAA,CAAE,EAAE,MAAM,CAAC,CAAC;KACrE;EACJ;AA5DqB,gBAAgB,GAAA,UAAA,CAAA;AADrC,IAAA,UAAU,EAAE;AAOJ,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;AAEnC,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACzB,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;qCAFc,aAAa,EAAA,MAAA,CAAA,CAAA;AAPxB,CAAA,EAAA,gBAAgB,CA4DrC"}
|