@common-stack/store-mongo 7.0.4-alpha.6 → 7.1.1-alpha.4
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.d.ts +4 -6
- package/lib/dataloaders/bulk-dataloader.js +7 -5
- package/lib/dataloaders/bulk-dataloader.js.map +1 -1
- package/lib/dataloaders/bulk-dataloader.test.d.ts +1 -0
- package/lib/graphql/schema/base-services.graphql +1 -0
- package/lib/index.js +1 -1
- package/lib/interfaces/base-repository.d.ts +25 -19
- package/lib/interfaces/base-service.d.ts +18 -19
- package/lib/interfaces/dataloader.d.ts +17 -0
- package/lib/interfaces/get-all-args.d.ts +20 -1
- package/lib/interfaces/{base-repository.js → get-all-args.js} +1 -1
- package/lib/interfaces/get-all-args.js.map +1 -0
- package/lib/interfaces/index.d.ts +1 -1
- 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/services/base-proxy-service.d.ts +20 -17
- package/lib/services/base-proxy-service.js +3 -0
- package/lib/services/base-proxy-service.js.map +1 -1
- package/lib/services/base-service.d.ts +19 -18
- package/lib/services/base-service.js +13 -11
- package/lib/services/base-service.js.map +1 -1
- package/lib/services/base-service.test.d.ts +1 -0
- package/lib/store/models/common-options.d.ts +3 -2
- package/lib/store/models/common-options.js +23 -3
- package/lib/store/models/common-options.js.map +1 -1
- package/lib/store/repositories/base-repository.d.ts +58 -22
- package/lib/store/repositories/base-repository.js +277 -135
- package/lib/store/repositories/base-repository.js.map +1 -1
- package/lib/store/repositories/base-repository.test.d.ts +1 -0
- package/lib/store/repositories/custom-id-repository.test.d.ts +1 -0
- package/package.json +4 -3
- package/lib/interfaces/base-repository.js.map +0 -1
- package/lib/interfaces/dataloaders.d.ts +0 -10
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import DataLoader from 'dataloader';
|
|
2
|
-
import { DataLoaderOptions, IBaseService, IDataLoader } from '../interfaces';
|
|
3
|
-
export declare class BulkDataLoader<
|
|
4
|
-
id: string;
|
|
5
|
-
}> extends DataLoader<string, T | null> implements IDataLoader<T> {
|
|
2
|
+
import { DataLoaderOptions, IBaseService, IDataLoader, AsDomainType } from '../interfaces';
|
|
3
|
+
export declare class BulkDataLoader<SchemaType> extends DataLoader<string, AsDomainType<SchemaType> | null> implements IDataLoader<SchemaType> {
|
|
6
4
|
private readonly service;
|
|
7
|
-
constructor(service: IBaseService<
|
|
8
|
-
withOptions: DataLoader<DataLoaderOptions<
|
|
5
|
+
constructor(service: IBaseService<SchemaType>);
|
|
6
|
+
withOptions: DataLoader<DataLoaderOptions<SchemaType>, AsDomainType<SchemaType>[], DataLoaderOptions<SchemaType>>;
|
|
9
7
|
}
|
|
@@ -10,17 +10,19 @@ import {__decorate,__param,__metadata}from'tslib';import DataLoader from'dataloa
|
|
|
10
10
|
withOptions = new DataLoader(async (options) => {
|
|
11
11
|
const [{ searchKey, comparator, ...rest }] = options;
|
|
12
12
|
const ids = options.map((option) => option.id);
|
|
13
|
+
// Create a properly typed criteria object with explicit type assertion
|
|
14
|
+
const criteria = {
|
|
15
|
+
...(rest.criteria || {}),
|
|
16
|
+
[searchKey]: { $in: ids },
|
|
17
|
+
};
|
|
13
18
|
const results = await this.service.getAll({
|
|
14
19
|
...rest,
|
|
15
|
-
criteria
|
|
16
|
-
...rest.criteria,
|
|
17
|
-
[searchKey]: { $in: ids },
|
|
18
|
-
},
|
|
20
|
+
criteria,
|
|
19
21
|
});
|
|
20
22
|
return options.map((option) => results.filter((item) => {
|
|
21
23
|
if (typeof comparator === 'function')
|
|
22
24
|
return comparator(option, item);
|
|
23
|
-
return item[searchKey]
|
|
25
|
+
return item[searchKey]?.toString() === option.id.toString();
|
|
24
26
|
}));
|
|
25
27
|
});
|
|
26
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-dataloader.js","sources":["../../src/dataloaders/bulk-dataloader.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bulk-dataloader.js","sources":["../../src/dataloaders/bulk-dataloader.ts"],"sourcesContent":[null],"names":[],"mappings":"kIAMO,IAAM,cAAc,GAApB,MAAM,cACT,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,cAAc,GAAA,UAAA,CAAA;AAD1B,IAAA,UAAU,EAAE;IAKI,OAAA,CAAA,CAAA,EAAA,SAAS,EAAE,CAAA;;AAJf,CAAA,EAAA,cAAc,CAiC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{PAGINATION_OPTIONS}from'./interfaces/
|
|
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,commonModelSchemaOptions}from'./store/models/common-options.js';export{BaseRepository}from'./store/repositories/base-repository.js';export{BulkDataLoader}from'./dataloaders/bulk-dataloader.js';export{BaseServiceMixin}from'./mixins/base-service-mixin.js';//# sourceMappingURL=index.js.map
|
|
@@ -1,20 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { GetAllArgs } from './get-all-args';
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
import { FilterQuery, Model, PipelineStage, UpdateQuery } from 'mongoose';
|
|
2
|
+
import { AsDomainType, CreateType, GetAllArgs, UpdateType } from './get-all-args';
|
|
3
|
+
export interface IBaseRepository<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>;
|
|
20
26
|
}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import { FilterQuery
|
|
2
|
-
import { GetAllArgs } from './get-all-args';
|
|
3
|
-
export interface IBaseService<
|
|
4
|
-
|
|
5
|
-
|
|
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[];
|
|
1
|
+
import { FilterQuery } from 'mongoose';
|
|
2
|
+
import { GetAllArgs, AsDomainType, CreateType, UpdateType } from './get-all-args';
|
|
3
|
+
export interface IBaseService<SchemaType> {
|
|
4
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
5
|
+
data: AsDomainType<SchemaType>[];
|
|
20
6
|
totalCount: number;
|
|
21
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>;
|
|
22
21
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import DataLoader from 'dataloader';
|
|
2
|
+
import { FilterQuery } from 'mongoose';
|
|
3
|
+
import { AsDomainType } from './get-all-args';
|
|
4
|
+
export interface DataLoaderOptions<SchemaType> {
|
|
5
|
+
id: string;
|
|
6
|
+
searchKey: keyof AsDomainType<SchemaType> | string;
|
|
7
|
+
comparator?: (option: DataLoaderOptions<SchemaType>, item: AsDomainType<SchemaType>) => boolean;
|
|
8
|
+
criteria?: FilterQuery<SchemaType>;
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}
|
|
11
|
+
export interface IDataLoader<SchemaType> {
|
|
12
|
+
load: (id: string) => Promise<AsDomainType<SchemaType> | null>;
|
|
13
|
+
loadMany: (ids: string[]) => Promise<(AsDomainType<SchemaType> | null | Error)[]>;
|
|
14
|
+
clear: (id: string) => DataLoader<string, AsDomainType<SchemaType> | null>;
|
|
15
|
+
clearAll: () => DataLoader<string, AsDomainType<SchemaType> | null>;
|
|
16
|
+
withOptions: DataLoader<DataLoaderOptions<SchemaType>, AsDomainType<SchemaType>[]>;
|
|
17
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FilterQuery } from 'mongoose';
|
|
2
|
-
import { ISort } from 'common';
|
|
2
|
+
import type { ISort } from 'common';
|
|
3
3
|
export interface GetAllArgs<T> {
|
|
4
4
|
criteria?: FilterQuery<T>;
|
|
5
5
|
sort?: ISort;
|
|
@@ -7,3 +7,22 @@ export interface GetAllArgs<T> {
|
|
|
7
7
|
limit?: number;
|
|
8
8
|
selectedFields?: string;
|
|
9
9
|
}
|
|
10
|
+
export type { ISort };
|
|
11
|
+
export declare enum PAGINATION_OPTIONS {
|
|
12
|
+
limit = 10,
|
|
13
|
+
skip = 0
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Type that converts a schema type with _id to a domain type with id
|
|
17
|
+
*/
|
|
18
|
+
export type AsDomainType<SchemaType> = Omit<SchemaType, '_id'> & {
|
|
19
|
+
id: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Type for create operations - omits _id, id, and auto-generated fields
|
|
23
|
+
*/
|
|
24
|
+
export type CreateType<SchemaType> = Omit<Partial<SchemaType>, '_id' | 'id' | 'createdAt' | 'updatedAt'>;
|
|
25
|
+
/**
|
|
26
|
+
* Type for update operations - partial of the schema without _id
|
|
27
|
+
*/
|
|
28
|
+
export type UpdateType<SchemaType> = Partial<Omit<SchemaType, '_id'>>;
|
|
@@ -2,4 +2,4 @@ var PAGINATION_OPTIONS;
|
|
|
2
2
|
(function (PAGINATION_OPTIONS) {
|
|
3
3
|
PAGINATION_OPTIONS[PAGINATION_OPTIONS["limit"] = 10] = "limit";
|
|
4
4
|
PAGINATION_OPTIONS[PAGINATION_OPTIONS["skip"] = 0] = "skip";
|
|
5
|
-
})(PAGINATION_OPTIONS || (PAGINATION_OPTIONS = {}));export{PAGINATION_OPTIONS};//# sourceMappingURL=
|
|
5
|
+
})(PAGINATION_OPTIONS || (PAGINATION_OPTIONS = {}));export{PAGINATION_OPTIONS};//# sourceMappingURL=get-all-args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-all-args.js","sources":["../../src/interfaces/get-all-args.ts"],"sourcesContent":[null],"names":[],"mappings":"IAaY,mBAGX;AAHD,CAAA,UAAY,kBAAkB,EAAA;AAC1B,IAAA,kBAAA,CAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAU,CAAA;AACV,IAAA,kBAAA,CAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,GAG7B,EAAA,CAAA,CAAA"}
|
|
@@ -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
|
|
4
|
+
export declare const BaseServiceMixin: <T>(service: IBaseService<T>, 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(ctx.params.id),
|
|
15
|
+
handler: async (ctx) => service.get({ id: 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(id);
|
|
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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"}
|
|
@@ -1,25 +1,28 @@
|
|
|
1
1
|
import { ServiceBroker } from 'moleculer';
|
|
2
2
|
import { FilterQuery } from 'mongoose';
|
|
3
3
|
import { CdmLogger } from '@cdm-logger/core';
|
|
4
|
-
import { GetAllArgs, IBaseService } from '../interfaces';
|
|
5
|
-
|
|
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> {
|
|
4
|
+
import { GetAllArgs, IBaseService, AsDomainType, CreateType, UpdateType } from '../interfaces';
|
|
5
|
+
export declare abstract class BaseProxyService<SchemaType> implements IBaseService<SchemaType> {
|
|
8
6
|
private readonly broker;
|
|
9
7
|
protected abstract logger?: CdmLogger.ILogger;
|
|
10
|
-
protected abstract topic:
|
|
8
|
+
protected abstract topic: string;
|
|
11
9
|
constructor(broker: ServiceBroker, logger: CdmLogger.ILogger);
|
|
12
|
-
getByName(name: string): Promise<
|
|
13
|
-
bulkCreate(data:
|
|
14
|
-
count(criteria?: FilterQuery<
|
|
15
|
-
create(data:
|
|
16
|
-
delete(id: string | FilterQuery<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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>>;
|
|
23
27
|
protected callAction<T, P = unknown>(command: string, params?: P): Promise<T>;
|
|
24
28
|
}
|
|
25
|
-
export {};
|
|
@@ -18,6 +18,9 @@ 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
|
+
}
|
|
21
24
|
get(id) {
|
|
22
25
|
return this.callAction(BaseServiceCommands.Get, { id });
|
|
23
26
|
}
|
|
@@ -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,CAA6B,IAAS,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KACpE;AAED,IAAA,KAAK,CAAC,QAAkC,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;KACnE;AAED,IAAA,MAAM,CAA6B,IAAO,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;KAChE;AAED,IAAA,MAAM,CAAC,EAAoC,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAC9D;AAED,IAAA,UAAU,CAAC,QAAiC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;KACxE;AAED,IAAA,GAAG,CAAC,EAAqC,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KAC3D;AAED,IAAA,MAAM,CAAC,OAAgC,EAAA;QACnC,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,OAA+B,EAAA;QAI3C,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;KACxE;IAED,MAAM,CACF,IAAyB,EACzB,SAAmB,EAAA;AAEnB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAC3E;AAED,IAAA,MAAM,CAA6B,EAAU,EAAE,IAAO,EAAE,SAAmB,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;KAC/E;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;AAtEqB,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,CAsErC"}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { GetAllArgs, IBaseRepository, IBaseService } from '../interfaces';
|
|
3
|
-
export declare class BaseService<
|
|
4
|
-
protected repository: IBaseRepository<
|
|
5
|
-
constructor(repository: IBaseRepository<
|
|
6
|
-
getAllWithCount(options: GetAllArgs<
|
|
7
|
-
data:
|
|
1
|
+
import { FilterQuery } from 'mongoose';
|
|
2
|
+
import { GetAllArgs, IBaseRepository, IBaseService, AsDomainType, CreateType, UpdateType } from '../interfaces';
|
|
3
|
+
export declare class BaseService<SchemaType> implements IBaseService<SchemaType> {
|
|
4
|
+
protected repository: IBaseRepository<SchemaType>;
|
|
5
|
+
constructor(repository: IBaseRepository<SchemaType>);
|
|
6
|
+
getAllWithCount(options: GetAllArgs<SchemaType>): Promise<{
|
|
7
|
+
data: AsDomainType<SchemaType>[];
|
|
8
8
|
totalCount: number;
|
|
9
9
|
}>;
|
|
10
|
-
count(conditions?: FilterQuery<
|
|
11
|
-
get(conditions: string | FilterQuery<
|
|
12
|
-
getByName(name: string): Promise<
|
|
13
|
-
getAll(options: GetAllArgs<
|
|
14
|
-
getByIds(ids: string[]): Promise<
|
|
15
|
-
create(data:
|
|
16
|
-
bulkCreate(data:
|
|
17
|
-
update(id: string, data:
|
|
18
|
-
insert(data:
|
|
10
|
+
count(conditions?: FilterQuery<SchemaType>): Promise<number>;
|
|
11
|
+
get(conditions: string | FilterQuery<SchemaType>): Promise<AsDomainType<SchemaType> | null>;
|
|
12
|
+
getByName(name: string): Promise<AsDomainType<SchemaType> | null>;
|
|
13
|
+
getAll(options: GetAllArgs<SchemaType>): Promise<AsDomainType<SchemaType>[]>;
|
|
14
|
+
getByIds(ids: string[]): Promise<AsDomainType<SchemaType>[]>;
|
|
15
|
+
create<T = CreateType<SchemaType>>(data: T): Promise<AsDomainType<SchemaType>>;
|
|
16
|
+
bulkCreate<T = CreateType<SchemaType>>(data: T[]): Promise<AsDomainType<SchemaType>[]>;
|
|
17
|
+
update<T = UpdateType<SchemaType>>(id: string, data: T, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
18
|
+
insert<T = CreateType<SchemaType>>(data: T & {
|
|
19
19
|
id?: string;
|
|
20
|
-
}, overwrite?: boolean): Promise<
|
|
21
|
-
delete(id: string | FilterQuery<
|
|
20
|
+
}, overwrite?: boolean): Promise<AsDomainType<SchemaType>>;
|
|
21
|
+
delete(id: string | FilterQuery<SchemaType>): Promise<boolean>;
|
|
22
|
+
bulkDelete(criteria: FilterQuery<SchemaType>): Promise<number>;
|
|
22
23
|
}
|
|
@@ -2,15 +2,9 @@ import {__decorate,__metadata}from'tslib';import {injectable}from'inversify';let
|
|
|
2
2
|
repository;
|
|
3
3
|
constructor(repository) {
|
|
4
4
|
this.repository = repository;
|
|
5
|
-
this.repository = repository;
|
|
6
5
|
}
|
|
7
6
|
async getAllWithCount(options) {
|
|
8
|
-
|
|
9
|
-
const data = await this.getAll(options);
|
|
10
|
-
return {
|
|
11
|
-
totalCount,
|
|
12
|
-
data,
|
|
13
|
-
};
|
|
7
|
+
return this.repository.getAllWithCount(options);
|
|
14
8
|
}
|
|
15
9
|
count(conditions) {
|
|
16
10
|
return this.repository.count(conditions);
|
|
@@ -39,12 +33,17 @@ import {__decorate,__metadata}from'tslib';import {injectable}from'inversify';let
|
|
|
39
33
|
async update(id, data, overwrite = false) {
|
|
40
34
|
return this.repository.update({ id }, data, { overwrite });
|
|
41
35
|
}
|
|
42
|
-
insert(data, overwrite = true) {
|
|
36
|
+
async insert(data, overwrite = true) {
|
|
43
37
|
const { id, ...rest } = data;
|
|
44
38
|
if (id) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
try {
|
|
40
|
+
const existing = await this.repository.get({ id });
|
|
41
|
+
if (existing) {
|
|
42
|
+
return this.update(id, rest, overwrite);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
// If not found, continue to create
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
return this.create(rest);
|
|
@@ -55,6 +54,9 @@ import {__decorate,__metadata}from'tslib';import {injectable}from'inversify';let
|
|
|
55
54
|
}
|
|
56
55
|
return this.repository.delete(id);
|
|
57
56
|
}
|
|
57
|
+
bulkDelete(criteria) {
|
|
58
|
+
return this.repository.bulkDelete(criteria);
|
|
59
|
+
}
|
|
58
60
|
};
|
|
59
61
|
BaseService = __decorate([
|
|
60
62
|
injectable(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-service.js","sources":["../../src/services/base-service.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-service.js","sources":["../../src/services/base-service.ts"],"sourcesContent":[null],"names":[],"mappings":"6EASa,IAAA,WAAW,GAAjB,MAAM,WAAW,CAAA;AACE,IAAA,UAAA,CAAA;AAAtB,IAAA,WAAA,CAAsB,UAAuC,EAAA;QAAvC,IAAU,CAAA,UAAA,GAAV,UAAU,CAA6B;KAAI;IAEjE,MAAM,eAAe,CACjB,OAA+B,EAAA;QAE/B,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;KACnD;AAED,IAAA,KAAK,CAAC,UAAoC,EAAA;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC5C;AAED,IAAA,GAAG,CAAC,UAA4C,EAAA;AAC5C,QAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AAChC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAA6B,CAAC,CAAC;SAC7E;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAC1C;AAED,IAAA,SAAS,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAS,CAAC,CAAC;KAC/C;AAED,IAAA,MAAM,CAAC,OAA+B,EAAA;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC1C;AAED,IAAA,QAAQ,CAAC,GAAa,EAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KACvC;AAED,IAAA,MAAM,CAA6B,IAAO,EAAA;QACtC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KACvC;AAED,IAAA,UAAU,CAA6B,IAAS,EAAA;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KAC3C;IAED,MAAM,MAAM,CACR,EAAU,EACV,IAAO,EACP,SAAS,GAAG,KAAK,EAAA;AAEjB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAS,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;KACrE;AAED,IAAA,MAAM,MAAM,CACR,IAAyB,EACzB,SAAS,GAAG,IAAI,EAAA;QAEhB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAE7B,IAAI,EAAE,EAAE;AACJ,YAAA,IAAI;AACA,gBAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAS,CAAC,CAAC;gBAC1D,IAAI,QAAQ,EAAE;oBACV,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAW,EAAE,SAAS,CAAC,CAAC;iBAClD;aACJ;YAAC,OAAO,KAAK,EAAE;;aAEf;SACJ;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAS,CAAC,CAAC;KACjC;AAED,IAAA,MAAM,CAAC,EAAoC,EAAA;AACvC,QAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;YACxB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAS,CAAC,CAAC;SAChD;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrC;AAED,IAAA,UAAU,CAAC,QAAiC,EAAA;QACxC,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC/C;EACJ;AA9EY,WAAW,GAAA,UAAA,CAAA;AADvB,IAAA,UAAU,EAAE;;AACA,CAAA,EAAA,WAAW,CA8EvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { Schema } from 'mongoose';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const commonModelSchemaOptions: {
|
|
3
3
|
timestamps: boolean;
|
|
4
4
|
toJSON: {
|
|
5
5
|
virtuals: boolean;
|
|
6
|
+
transform(doc: any, ret: any): any;
|
|
6
7
|
};
|
|
7
8
|
toObject: {
|
|
8
9
|
virtuals: boolean;
|
|
9
10
|
getters: boolean;
|
|
10
|
-
transform(doc: any, ret: any):
|
|
11
|
+
transform(doc: any, ret: any): any;
|
|
11
12
|
};
|
|
12
13
|
};
|
|
13
14
|
export declare const addIdVirtualFields: (schema: Schema) => Schema<any, import("mongoose").Model<any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
|
|
@@ -1,20 +1,40 @@
|
|
|
1
|
-
const
|
|
1
|
+
const commonModelSchemaOptions = {
|
|
2
2
|
timestamps: true,
|
|
3
3
|
toJSON: {
|
|
4
4
|
virtuals: true,
|
|
5
|
+
transform(doc, ret) {
|
|
6
|
+
ret.id = ret._id.toString();
|
|
7
|
+
delete ret.__v;
|
|
8
|
+
// Uncomment if you don't want _id in output
|
|
9
|
+
// delete ret._id;
|
|
10
|
+
return ret;
|
|
11
|
+
},
|
|
5
12
|
},
|
|
6
13
|
toObject: {
|
|
7
14
|
virtuals: true,
|
|
8
15
|
getters: true,
|
|
9
16
|
transform(doc, ret) {
|
|
17
|
+
ret.id = ret._id.toString();
|
|
10
18
|
delete ret.__v;
|
|
11
|
-
|
|
19
|
+
// Uncomment if you don't want _id in output
|
|
20
|
+
// delete ret._id;
|
|
21
|
+
return ret;
|
|
12
22
|
},
|
|
13
23
|
},
|
|
14
24
|
};
|
|
15
25
|
const addIdVirtualFields = (schema) => {
|
|
26
|
+
// Add id virtual getter
|
|
27
|
+
schema.virtual('id').get(function () {
|
|
28
|
+
return this._id.toHexString();
|
|
29
|
+
});
|
|
30
|
+
// Ensure virtuals are included in JSON
|
|
16
31
|
schema.set('toJSON', {
|
|
17
32
|
virtuals: true,
|
|
33
|
+
transform: (_, ret) => {
|
|
34
|
+
ret.id = ret._id.toString();
|
|
35
|
+
delete ret.__v;
|
|
36
|
+
return ret;
|
|
37
|
+
},
|
|
18
38
|
});
|
|
19
39
|
return schema;
|
|
20
|
-
};export{addIdVirtualFields,
|
|
40
|
+
};export{addIdVirtualFields,commonModelSchemaOptions};//# sourceMappingURL=common-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-options.js","sources":["../../../src/store/models/common-options.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common-options.js","sources":["../../../src/store/models/common-options.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIa,MAAA,wBAAwB,GAAG;AACpC,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,MAAM,EAAE;AACJ,QAAA,QAAQ,EAAE,IAAI;QACd,SAAS,CAAC,GAAG,EAAE,GAAG,EAAA;YACd,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,GAAG,CAAC;;;AAGf,YAAA,OAAO,GAAG,CAAC;SACd;AACJ,KAAA;AACD,IAAA,QAAQ,EAAE;AACN,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,OAAO,EAAE,IAAI;QACb,SAAS,CAAC,GAAG,EAAE,GAAG,EAAA;YACd,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,GAAG,CAAC;;;AAGf,YAAA,OAAO,GAAG,CAAC;SACd;AACJ,KAAA;EACH;AAEW,MAAA,kBAAkB,GAAG,CAAC,MAAc,KAAI;;AAEjD,IAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAA;AACrB,QAAA,OAAQ,IAAI,CAAC,GAAW,CAAC,WAAW,EAAE,CAAC;AAC3C,KAAC,CAAC,CAAC;;AAGH,IAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE;AACjB,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,KAAI;YAClB,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,GAAG,CAAC,GAAG,CAAC;AACf,YAAA,OAAO,GAAG,CAAC;SACd;AACJ,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,MAAM,CAAC;AAClB"}
|