@decaf-ts/core 0.7.4 → 0.7.6

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.
@@ -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;AAEvD,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,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,EAAE,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CACP,UAAU,CAAC;gBACT,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,EAAE,CAAC,CAAC;QACtB,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"}
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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./ContextualLoggedClass";
2
+ export * from "./decorators";
2
3
  export * from "./errors";
3
4
  export * from "./Services";
@@ -1,4 +1,5 @@
1
1
  export * from "./ContextualLoggedClass.js";
2
+ export * from "./decorators.js";
2
3
  export * from "./errors.js";
3
4
  export * from "./Services.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,2CAAwC;AACxC,4BAAyB;AACzB,8BAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,2CAAwC;AACxC,gCAA6B;AAC7B,4BAAyB;AACzB,8BAA2B"}
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.3";
47
+ exports.VERSION = "0.7.5";
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.3";
23
+ export declare const VERSION = "0.7.5";
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 = name;
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":"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"}
1
+ {"version":3,"file":"injectables.js","sourceRoot":"","sources":["../../src/repository/injectables.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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":"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"}
1
+ {"version":3,"file":"Services.js","sourceRoot":"","sources":["../../src/utils/Services.ts"],"names":[],"mappings":"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"}
@@ -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
- export declare function service(key: string): (target: any, prop?: any, descriptor?: any) => void;
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":";;AAIA,0BAyBC;AA7BD,qDAAiE;AACjE,2EAAqE;AACrE,sDAAuD;AAEvD,SAAgB,OAAO,CAAC,GAAW;IACjC,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,GAAE,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,IAAI,CACP,IAAA,kCAAU,EAAC;gBACT,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,GAAE,CAAC,CAAC;QACtB,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"}
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"}
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./ContextualLoggedClass.cjs"), exports);
18
+ __exportStar(require("./decorators.cjs"), exports);
18
19
  __exportStar(require("./errors.cjs"), exports);
19
20
  __exportStar(require("./Services.cjs"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,4 @@
1
1
  export * from "./ContextualLoggedClass";
2
+ export * from "./decorators";
2
3
  export * from "./errors";
3
4
  export * from "./Services";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAAwC;AACxC,+CAAyB;AACzB,iDAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAAwC;AACxC,mDAA6B;AAC7B,+CAAyB;AACzB,iDAA2B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/core",
3
- "version": "0.7.4",
3
+ "version": "0.7.6",
4
4
  "description": "Core persistence module for the decaf framework",
5
5
  "type": "module",
6
6
  "exports": {