@decaf-ts/core 0.7.4 → 0.7.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/README.md +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/repository/injectables.js +3 -1
- package/lib/esm/repository/injectables.js.map +1 -1
- package/lib/esm/utils/Services.d.ts +20 -2
- package/lib/esm/utils/Services.js +72 -1
- package/lib/esm/utils/Services.js.map +1 -1
- package/lib/esm/utils/decorators.d.ts +2 -1
- package/lib/esm/utils/decorators.js +7 -3
- package/lib/esm/utils/decorators.js.map +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/repository/injectables.cjs +3 -1
- package/lib/repository/injectables.js.map +1 -1
- package/lib/utils/Services.cjs +74 -2
- package/lib/utils/Services.d.ts +20 -2
- package/lib/utils/Services.js.map +1 -1
- package/lib/utils/decorators.cjs +7 -3
- package/lib/utils/decorators.d.ts +2 -1
- package/lib/utils/decorators.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,14 +2,18 @@ import { apply, metadata, Metadata } from "@decaf-ts/decoration";
|
|
|
2
2
|
import { inject, injectable } from "@decaf-ts/injectable-decorators";
|
|
3
3
|
import { PersistenceKeys } from "./../persistence/index.js";
|
|
4
4
|
export function service(key) {
|
|
5
|
+
key =
|
|
6
|
+
typeof key === "string"
|
|
7
|
+
? key
|
|
8
|
+
: Metadata.Symbol(key).toString();
|
|
5
9
|
return function service(target, prop, descriptor) {
|
|
6
10
|
Metadata.set(PersistenceKeys.SERVICE, key, target);
|
|
7
11
|
const decs = [];
|
|
8
12
|
if (descriptor && typeof descriptor.value === "number") {
|
|
9
|
-
decs.push(inject());
|
|
13
|
+
decs.push(inject(key));
|
|
10
14
|
}
|
|
11
15
|
else if (!descriptor && !prop) {
|
|
12
|
-
decs.push(injectable({
|
|
16
|
+
decs.push(injectable(key, {
|
|
13
17
|
callback: (inst) => Object.defineProperty(inst, "name", {
|
|
14
18
|
enumerable: true,
|
|
15
19
|
configurable: false,
|
|
@@ -19,7 +23,7 @@ export function service(key) {
|
|
|
19
23
|
}));
|
|
20
24
|
}
|
|
21
25
|
else if (!descriptor) {
|
|
22
|
-
decs.push(inject());
|
|
26
|
+
decs.push(inject(key));
|
|
23
27
|
}
|
|
24
28
|
else
|
|
25
29
|
throw new Error("Invalid decorator usage. Should be impossible");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/utils/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,kCAA6B;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/utils/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,kCAA6B;AAGvD,MAAM,UAAU,OAAO,CAAC,GAAmC;IACzD,GAAG;QACD,OAAO,GAAG,KAAK,QAAQ;YACrB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/D,OAAO,SAAS,OAAO,CAAC,MAAW,EAAE,IAAU,EAAE,UAAgB;QAC/D,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CACP,UAAU,CAAC,GAAG,EAAE;gBACd,QAAQ,EAAE,CAAC,IAAS,EAAE,EAAE,CACtB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;oBAClC,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,GAAG;iBACX,CAAC;aACL,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAExE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC"}
|
package/lib/index.cjs
CHANGED
|
@@ -44,7 +44,7 @@ __exportStar(require("./ram/index.cjs"), exports);
|
|
|
44
44
|
* @const VERSION
|
|
45
45
|
* @memberOf module:core
|
|
46
46
|
*/
|
|
47
|
-
exports.VERSION = "0.7.
|
|
47
|
+
exports.VERSION = "0.7.4";
|
|
48
48
|
/**
|
|
49
49
|
* @description Stores the current package version
|
|
50
50
|
* @summary A constant representing the version of the core package
|
package/lib/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export * from "./ram";
|
|
|
20
20
|
* @const VERSION
|
|
21
21
|
* @memberOf module:core
|
|
22
22
|
*/
|
|
23
|
-
export declare const VERSION = "0.7.
|
|
23
|
+
export declare const VERSION = "0.7.4";
|
|
24
24
|
/**
|
|
25
25
|
* @description Stores the current package version
|
|
26
26
|
* @summary A constant representing the version of the core package
|
|
@@ -117,7 +117,9 @@ class InjectablesRegistry extends injectable_decorators_1.InjectableRegistryImp
|
|
|
117
117
|
if (!injectable) {
|
|
118
118
|
let modelCtor;
|
|
119
119
|
if (typeof name === "function")
|
|
120
|
-
modelCtor =
|
|
120
|
+
modelCtor =
|
|
121
|
+
decorator_validation_1.Model.get(name.toString()) ||
|
|
122
|
+
name;
|
|
121
123
|
else if (typeof name === "symbol" || typeof name === "string") {
|
|
122
124
|
modelCtor = decorator_validation_1.Model.get(name.toString());
|
|
123
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectables.js","sourceRoot":"","sources":["../../src/repository/injectables.ts"],"names":[],"mappings":";;;AAAA,2EAIyC;AACzC,iDAA0C;AAC1C,yEAAyE;AACzE,uCAA8D;AAC9D,8DAA2D;AAC3D,0DAAiD;AACjD,+CAAoD;AACpD,qDAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAa,mBAAoB,SAAQ,6CAAqB;IAG5D,IAAc,GAAG;QACf,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,iBAAO,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACM,GAAG,CACV,IAAsC,EACtC,OAAgB;QAEhB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,4DAA4D;QAC5D,IAAI,UAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,SAAuC,CAAC;YAC5C,IAAI,OAAO,IAAI,KAAK,UAAU;
|
|
1
|
+
{"version":3,"file":"injectables.js","sourceRoot":"","sources":["../../src/repository/injectables.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/Services.cjs
CHANGED
|
@@ -9,10 +9,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ClientBasedService = exports.Service = void 0;
|
|
12
|
+
exports.ModelService = exports.ClientBasedService = exports.Service = void 0;
|
|
13
13
|
const db_decorators_1 = require("@decaf-ts/db-decorators");
|
|
14
14
|
const logging_1 = require("@decaf-ts/logging");
|
|
15
15
|
const injectable_decorators_1 = require("@decaf-ts/injectable-decorators");
|
|
16
|
+
const Repository_1 = require("./../repository/Repository.cjs");
|
|
16
17
|
class Service {
|
|
17
18
|
constructor(name) {
|
|
18
19
|
this.name = name;
|
|
@@ -52,7 +53,9 @@ class Service {
|
|
|
52
53
|
async logCtx(args, method, allowCreate = false) {
|
|
53
54
|
return (await Service.logCtx.bind(this)(args, method, allowCreate));
|
|
54
55
|
}
|
|
55
|
-
static async logCtx(args, operation, allowCreate = false
|
|
56
|
+
static async logCtx(args, operation, allowCreate = false,
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
58
|
+
...argz) {
|
|
56
59
|
const bootCtx = async function bootCtx() {
|
|
57
60
|
if (!allowCreate)
|
|
58
61
|
throw new db_decorators_1.InternalError("No context provided");
|
|
@@ -156,4 +159,73 @@ __decorate([
|
|
|
156
159
|
__metadata("design:type", Object),
|
|
157
160
|
__metadata("design:paramtypes", [])
|
|
158
161
|
], ClientBasedService.prototype, "client", null);
|
|
162
|
+
class ModelService extends Service {
|
|
163
|
+
get class() {
|
|
164
|
+
if (!this.clazz)
|
|
165
|
+
throw new db_decorators_1.InternalError(`Class not initialized`);
|
|
166
|
+
return this.clazz;
|
|
167
|
+
}
|
|
168
|
+
constructor(clazz) {
|
|
169
|
+
super();
|
|
170
|
+
this.clazz = clazz;
|
|
171
|
+
this.repo = Repository_1.Repository.forModel(clazz);
|
|
172
|
+
}
|
|
173
|
+
async create(model, ...args) {
|
|
174
|
+
const { ctxArgs } = await this.logCtx(args, this.create, true);
|
|
175
|
+
return this.repo.create(model, ...ctxArgs);
|
|
176
|
+
}
|
|
177
|
+
async createAll(models, ...args) {
|
|
178
|
+
const { ctxArgs } = await this.logCtx(args, this.createAll, true);
|
|
179
|
+
return this.repo.createAll(models, ...ctxArgs);
|
|
180
|
+
}
|
|
181
|
+
async delete(key, ...args) {
|
|
182
|
+
const { ctxArgs } = await this.logCtx(args, this.delete, true);
|
|
183
|
+
return this.repo.delete(key, ...ctxArgs);
|
|
184
|
+
}
|
|
185
|
+
async deleteAll(keys, ...args) {
|
|
186
|
+
const { ctxArgs } = await this.logCtx(args, this.deleteAll, true);
|
|
187
|
+
return this.repo.deleteAll(keys, ...ctxArgs);
|
|
188
|
+
}
|
|
189
|
+
async read(key, ...args) {
|
|
190
|
+
const { ctxArgs } = await this.logCtx(args, this.read, true);
|
|
191
|
+
return this.repo.read(key, ...ctxArgs);
|
|
192
|
+
}
|
|
193
|
+
async readAll(keys, ...args) {
|
|
194
|
+
const { ctxArgs } = await this.logCtx(args, this.readAll, true);
|
|
195
|
+
return this.repo.readAll(keys, ...ctxArgs);
|
|
196
|
+
}
|
|
197
|
+
async update(model, ...args) {
|
|
198
|
+
const { ctxArgs } = await this.logCtx(args, this.update, true);
|
|
199
|
+
return this.repo.update(model, ...ctxArgs);
|
|
200
|
+
}
|
|
201
|
+
async updateAll(models, ...args) {
|
|
202
|
+
const { ctxArgs } = await this.logCtx(args, this.updateAll, true);
|
|
203
|
+
return this.repo.updateAll(models, ...ctxArgs);
|
|
204
|
+
}
|
|
205
|
+
async logCtx(args, method, allowCreate = false) {
|
|
206
|
+
return (await ModelService.logCtx.bind(this.repo["adapter"])(args, method, allowCreate, {}, this.class));
|
|
207
|
+
}
|
|
208
|
+
static async logCtx(args, operation, allowCreate = false, overrides = {}, constructor) {
|
|
209
|
+
const bootCtx = async function bootCtx() {
|
|
210
|
+
if (!allowCreate)
|
|
211
|
+
throw new db_decorators_1.InternalError("No context provided");
|
|
212
|
+
return this.context(typeof operation === "string" ? operation : operation.name, overrides, constructor);
|
|
213
|
+
}.bind(this);
|
|
214
|
+
if (args.length < 1) {
|
|
215
|
+
args = [await bootCtx()];
|
|
216
|
+
}
|
|
217
|
+
const ctx = args.pop();
|
|
218
|
+
if (!(ctx instanceof db_decorators_1.Context))
|
|
219
|
+
args = [...args, await bootCtx()];
|
|
220
|
+
const log = (this
|
|
221
|
+
? ctx.logger.for(this).for(operation)
|
|
222
|
+
: ctx.logger.clear().for(this).for(operation));
|
|
223
|
+
return {
|
|
224
|
+
ctx: ctx,
|
|
225
|
+
log: operation ? log.for(operation) : log,
|
|
226
|
+
ctxArgs: [...args, ctx],
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
exports.ModelService = ModelService;
|
|
159
231
|
//# sourceMappingURL=Services.js.map
|
package/lib/utils/Services.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { Context, Contextual, OperationKeys } from "@decaf-ts/db-decorators";
|
|
1
|
+
import { Context, ContextOfRepository, Contextual, IRepository, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
2
2
|
import { Constructor } from "@decaf-ts/decoration";
|
|
3
3
|
import { ContextualArgs, ContextualizedArgs, MaybeContextualArg } from "./ContextualLoggedClass";
|
|
4
4
|
import { FlagsOf } from "../persistence/index";
|
|
5
|
+
import { Model, ModelConstructor } from "@decaf-ts/decorator-validation";
|
|
6
|
+
import { Repository } from "../repository/Repository";
|
|
5
7
|
export declare abstract class Service<C extends Context<any> = any> implements Contextual<C> {
|
|
6
8
|
readonly name?: string | undefined;
|
|
7
9
|
protected constructor(name?: string | undefined);
|
|
@@ -24,7 +26,7 @@ export declare abstract class Service<C extends Context<any> = any> implements C
|
|
|
24
26
|
protected readonly Context: Constructor<C>;
|
|
25
27
|
context(operation: OperationKeys.CREATE | OperationKeys.READ | OperationKeys.UPDATE | OperationKeys.DELETE | string, overrides: Partial<FlagsOf<C>>, ...args: any[]): Promise<C>;
|
|
26
28
|
protected logCtx<ARGS extends any[]>(args: ARGS, method: ((...args: any[]) => any) | string, allowCreate?: boolean): Promise<ContextualizedArgs<any, ARGS>>;
|
|
27
|
-
protected static logCtx<CONTEXT extends Context<any>, ARGS extends any[]>(this: Contextual, args: ARGS, operation: ((...args: any[]) => any) | string, allowCreate?: boolean): Promise<ContextualizedArgs<CONTEXT, ARGS>>;
|
|
29
|
+
protected static logCtx<CONTEXT extends Context<any>, ARGS extends any[]>(this: Contextual, args: ARGS, operation: ((...args: any[]) => any) | string, allowCreate?: boolean, ...argz: any[]): Promise<ContextualizedArgs<CONTEXT, ARGS>>;
|
|
28
30
|
/**
|
|
29
31
|
* @description Retrieves a Service instance by name/class
|
|
30
32
|
* @summary Looks up and returns a cached API instance by its name or constructor
|
|
@@ -48,3 +50,19 @@ export declare abstract class ClientBasedService<CLIENT, CONF, C extends Context
|
|
|
48
50
|
get client(): CLIENT;
|
|
49
51
|
shutdown(...args: MaybeContextualArg<C>): Promise<void>;
|
|
50
52
|
}
|
|
53
|
+
export declare class ModelService<M extends Model<boolean>, R extends Repository<M, any> = Repository<M, any>> extends Service implements IRepository<M, ContextOfRepository<R>> {
|
|
54
|
+
private readonly clazz;
|
|
55
|
+
protected repo: R;
|
|
56
|
+
get class(): Constructor<M>;
|
|
57
|
+
constructor(clazz: Constructor<M>);
|
|
58
|
+
create(model: M, ...args: MaybeContextualArg<ContextOfRepository<R>>): Promise<M>;
|
|
59
|
+
createAll(models: M[], ...args: MaybeContextualArg<ContextOfRepository<R>>): Promise<M[]>;
|
|
60
|
+
delete(key: PrimaryKeyType, ...args: MaybeContextualArg<ContextOfRepository<R>>): Promise<M>;
|
|
61
|
+
deleteAll(keys: PrimaryKeyType[], ...args: MaybeContextualArg<ContextOfRepository<R>>): Promise<M[]>;
|
|
62
|
+
read(key: PrimaryKeyType, ...args: MaybeContextualArg<ContextOfRepository<R>>): Promise<M>;
|
|
63
|
+
readAll(keys: PrimaryKeyType[], ...args: MaybeContextualArg<ContextOfRepository<R>>): Promise<M[]>;
|
|
64
|
+
update(model: M, ...args: MaybeContextualArg<ContextOfRepository<R>>): Promise<M>;
|
|
65
|
+
updateAll(models: M[], ...args: any[]): Promise<M[]>;
|
|
66
|
+
protected logCtx<ARGS extends any[]>(args: ARGS, method: ((...args: any[]) => any) | string, allowCreate?: boolean): Promise<ContextualizedArgs<any, ARGS>>;
|
|
67
|
+
protected static logCtx<CONTEXT extends Context<any>, ARGS extends any[]>(this: Contextual, args: ARGS, operation: ((...args: any[]) => any) | string, allowCreate: boolean | undefined, overrides: Partial<FlagsOf<CONTEXT>> | undefined, constructor: ModelConstructor<any>): Promise<ContextualizedArgs<CONTEXT, ARGS>>;
|
|
68
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Services.js","sourceRoot":"","sources":["../../src/utils/Services.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Services.js","sourceRoot":"","sources":["../../src/utils/Services.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/decorators.cjs
CHANGED
|
@@ -5,14 +5,18 @@ const decoration_1 = require("@decaf-ts/decoration");
|
|
|
5
5
|
const injectable_decorators_1 = require("@decaf-ts/injectable-decorators");
|
|
6
6
|
const index_1 = require("./../persistence/index.cjs");
|
|
7
7
|
function service(key) {
|
|
8
|
+
key =
|
|
9
|
+
typeof key === "string"
|
|
10
|
+
? key
|
|
11
|
+
: decoration_1.Metadata.Symbol(key).toString();
|
|
8
12
|
return function service(target, prop, descriptor) {
|
|
9
13
|
decoration_1.Metadata.set(index_1.PersistenceKeys.SERVICE, key, target);
|
|
10
14
|
const decs = [];
|
|
11
15
|
if (descriptor && typeof descriptor.value === "number") {
|
|
12
|
-
decs.push((0, injectable_decorators_1.inject)());
|
|
16
|
+
decs.push((0, injectable_decorators_1.inject)(key));
|
|
13
17
|
}
|
|
14
18
|
else if (!descriptor && !prop) {
|
|
15
|
-
decs.push((0, injectable_decorators_1.injectable)({
|
|
19
|
+
decs.push((0, injectable_decorators_1.injectable)(key, {
|
|
16
20
|
callback: (inst) => Object.defineProperty(inst, "name", {
|
|
17
21
|
enumerable: true,
|
|
18
22
|
configurable: false,
|
|
@@ -22,7 +26,7 @@ function service(key) {
|
|
|
22
26
|
}));
|
|
23
27
|
}
|
|
24
28
|
else if (!descriptor) {
|
|
25
|
-
decs.push((0, injectable_decorators_1.inject)());
|
|
29
|
+
decs.push((0, injectable_decorators_1.inject)(key));
|
|
26
30
|
}
|
|
27
31
|
else
|
|
28
32
|
throw new Error("Invalid decorator usage. Should be impossible");
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ModelConstructor } from "@decaf-ts/decorator-validation";
|
|
2
|
+
export declare function service(key: string | ModelConstructor<any>): (target: any, prop?: any, descriptor?: any) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/utils/decorators.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/utils/decorators.ts"],"names":[],"mappings":";;AAKA,0BA6BC;AAlCD,qDAAiE;AACjE,2EAAqE;AACrE,sDAAuD;AAGvD,SAAgB,OAAO,CAAC,GAAmC;IACzD,GAAG;QACD,OAAO,GAAG,KAAK,QAAQ;YACrB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,qBAAQ,CAAC,MAAM,CAAC,GAA4B,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/D,OAAO,SAAS,OAAO,CAAC,MAAW,EAAE,IAAU,EAAE,UAAgB;QAC/D,qBAAQ,CAAC,GAAG,CAAC,uBAAe,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,IAAA,8BAAM,EAAC,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;aAAM,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CACP,IAAA,kCAAU,EAAC,GAAG,EAAE;gBACd,QAAQ,EAAE,CAAC,IAAS,EAAE,EAAE,CACtB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;oBAClC,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,KAAK;oBACnB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,GAAG;iBACX,CAAC;aACL,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,IAAA,8BAAM,EAAC,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAExE,IAAI,CAAC,IAAI,CAAC,IAAA,qBAAQ,EAAC,uBAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,OAAO,IAAA,kBAAK,EAAC,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC"}
|