@hg-ts/repository 0.2.14 → 0.2.16

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.
Files changed (54) hide show
  1. package/dist/exceptions/aggregate-event.already-exists.exception.d.ts +5 -0
  2. package/dist/exceptions/aggregate-event.already-exists.exception.d.ts.map +1 -0
  3. package/dist/exceptions/aggregate-event.already-exists.exception.js +11 -0
  4. package/dist/exceptions/aggregate-event.already-exists.exception.js.map +1 -0
  5. package/dist/exceptions/aggregate-event.delete-restricted.exception.d.ts +5 -0
  6. package/dist/exceptions/aggregate-event.delete-restricted.exception.d.ts.map +1 -0
  7. package/dist/exceptions/aggregate-event.delete-restricted.exception.js +11 -0
  8. package/dist/exceptions/aggregate-event.delete-restricted.exception.js.map +1 -0
  9. package/dist/exceptions/aggregate-event.not-found.exception.d.ts +5 -0
  10. package/dist/exceptions/aggregate-event.not-found.exception.d.ts.map +1 -0
  11. package/dist/exceptions/aggregate-event.not-found.exception.js +11 -0
  12. package/dist/exceptions/aggregate-event.not-found.exception.js.map +1 -0
  13. package/dist/exceptions/aggregate-event.update-restricted.exception.d.ts +5 -0
  14. package/dist/exceptions/aggregate-event.update-restricted.exception.d.ts.map +1 -0
  15. package/dist/exceptions/aggregate-event.update-restricted.exception.js +11 -0
  16. package/dist/exceptions/aggregate-event.update-restricted.exception.js.map +1 -0
  17. package/dist/exceptions/aggregate.already-exists.exception.d.ts +10 -0
  18. package/dist/exceptions/aggregate.already-exists.exception.d.ts.map +1 -0
  19. package/dist/exceptions/aggregate.already-exists.exception.js +22 -0
  20. package/dist/exceptions/aggregate.already-exists.exception.js.map +1 -0
  21. package/dist/exceptions/index.d.ts +5 -0
  22. package/dist/exceptions/index.d.ts.map +1 -1
  23. package/dist/exceptions/index.js +5 -0
  24. package/dist/exceptions/index.js.map +1 -1
  25. package/dist/repositories/base.event.repository.d.ts +17 -0
  26. package/dist/repositories/base.event.repository.d.ts.map +1 -0
  27. package/dist/repositories/base.event.repository.js +28 -0
  28. package/dist/repositories/base.event.repository.js.map +1 -0
  29. package/dist/repositories/base.memory.repository.d.ts +2 -1
  30. package/dist/repositories/base.memory.repository.d.ts.map +1 -1
  31. package/dist/repositories/base.memory.repository.js +17 -3
  32. package/dist/repositories/base.memory.repository.js.map +1 -1
  33. package/dist/repositories/base.repository.d.ts +5 -4
  34. package/dist/repositories/base.repository.d.ts.map +1 -1
  35. package/dist/repositories/base.repository.js.map +1 -1
  36. package/dist/repositories/index.d.ts +1 -0
  37. package/dist/repositories/index.d.ts.map +1 -1
  38. package/dist/repositories/index.js +1 -0
  39. package/dist/repositories/index.js.map +1 -1
  40. package/dist/repositories/repository.d.ts +6 -5
  41. package/dist/repositories/repository.d.ts.map +1 -1
  42. package/dist/repositories/repository.js.map +1 -1
  43. package/dist/tests/base-repository.test.d.ts.map +1 -1
  44. package/dist/tests/base-repository.test.js +4 -4
  45. package/dist/tests/base-repository.test.js.map +1 -1
  46. package/dist/tests/test.already-exists.exception.d.ts +6 -0
  47. package/dist/tests/test.already-exists.exception.d.ts.map +1 -0
  48. package/dist/tests/test.already-exists.exception.js +11 -0
  49. package/dist/tests/test.already-exists.exception.js.map +1 -0
  50. package/dist/tests/test.memory.repository.d.ts +2 -1
  51. package/dist/tests/test.memory.repository.d.ts.map +1 -1
  52. package/dist/tests/test.memory.repository.js +4 -0
  53. package/dist/tests/test.memory.repository.js.map +1 -1
  54. package/package.json +11 -13
@@ -0,0 +1,5 @@
1
+ import { AggregateAlreadyExistsException } from './aggregate.already-exists.exception';
2
+ export declare class AggregateEventAlreadyExistsException extends AggregateAlreadyExistsException {
3
+ constructor(id?: string);
4
+ }
5
+ //# sourceMappingURL=aggregate-event.already-exists.exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-event.already-exists.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.already-exists.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAEvF,qBAAa,oCAAqC,SAAQ,+BAA+B;gBACrE,EAAE,CAAC,EAAE,MAAM;CAG9B"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateEventAlreadyExistsException = void 0;
4
+ const aggregate_already_exists_exception_1 = require("./aggregate.already-exists.exception");
5
+ class AggregateEventAlreadyExistsException extends aggregate_already_exists_exception_1.AggregateAlreadyExistsException {
6
+ constructor(id) {
7
+ super('DomainEvent', { id });
8
+ }
9
+ }
10
+ exports.AggregateEventAlreadyExistsException = AggregateEventAlreadyExistsException;
11
+ //# sourceMappingURL=aggregate-event.already-exists.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-event.already-exists.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.already-exists.exception.ts"],"names":[],"mappings":";;;AAAA,6FAAuF;AAEvF,MAAa,oCAAqC,SAAQ,oEAA+B;IACxF,YAAmB,EAAW;QAC7B,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACD;AAJD,oFAIC"}
@@ -0,0 +1,5 @@
1
+ import { BaseException } from '@hg-ts/exception';
2
+ export declare class AggregateEventDeleteRestrictedException extends BaseException {
3
+ constructor();
4
+ }
5
+ //# sourceMappingURL=aggregate-event.delete-restricted.exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-event.delete-restricted.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.delete-restricted.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,uCAAwC,SAAQ,aAAa;;CAIzE"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateEventDeleteRestrictedException = void 0;
4
+ const exception_1 = require("@hg-ts/exception");
5
+ class AggregateEventDeleteRestrictedException extends exception_1.BaseException {
6
+ constructor() {
7
+ super('Domain event cannot be deleted');
8
+ }
9
+ }
10
+ exports.AggregateEventDeleteRestrictedException = AggregateEventDeleteRestrictedException;
11
+ //# sourceMappingURL=aggregate-event.delete-restricted.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-event.delete-restricted.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.delete-restricted.exception.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAEjD,MAAa,uCAAwC,SAAQ,yBAAa;IACzE;QACC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACzC,CAAC;CACD;AAJD,0FAIC"}
@@ -0,0 +1,5 @@
1
+ import { AggregateNotFoundException } from './aggregate.not-found.exception';
2
+ export declare class AggregateEventNotFoundException extends AggregateNotFoundException {
3
+ constructor(id?: string);
4
+ }
5
+ //# sourceMappingURL=aggregate-event.not-found.exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-event.not-found.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,qBAAa,+BAAgC,SAAQ,0BAA0B;gBAC3D,EAAE,CAAC,EAAE,MAAM;CAG9B"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateEventNotFoundException = void 0;
4
+ const aggregate_not_found_exception_1 = require("./aggregate.not-found.exception");
5
+ class AggregateEventNotFoundException extends aggregate_not_found_exception_1.AggregateNotFoundException {
6
+ constructor(id) {
7
+ super('DomainEvent', { id });
8
+ }
9
+ }
10
+ exports.AggregateEventNotFoundException = AggregateEventNotFoundException;
11
+ //# sourceMappingURL=aggregate-event.not-found.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-event.not-found.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.not-found.exception.ts"],"names":[],"mappings":";;;AAAA,mFAA6E;AAE7E,MAAa,+BAAgC,SAAQ,0DAA0B;IAC9E,YAAmB,EAAW;QAC7B,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACD;AAJD,0EAIC"}
@@ -0,0 +1,5 @@
1
+ import { BaseException } from '@hg-ts/exception';
2
+ export declare class AggregateEventUpdateRestrictedException extends BaseException {
3
+ constructor();
4
+ }
5
+ //# sourceMappingURL=aggregate-event.update-restricted.exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-event.update-restricted.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.update-restricted.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,uCAAwC,SAAQ,aAAa;;CAIzE"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateEventUpdateRestrictedException = void 0;
4
+ const exception_1 = require("@hg-ts/exception");
5
+ class AggregateEventUpdateRestrictedException extends exception_1.BaseException {
6
+ constructor() {
7
+ super('Domain event updates restricted');
8
+ }
9
+ }
10
+ exports.AggregateEventUpdateRestrictedException = AggregateEventUpdateRestrictedException;
11
+ //# sourceMappingURL=aggregate-event.update-restricted.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-event.update-restricted.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.update-restricted.exception.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAEjD,MAAa,uCAAwC,SAAQ,yBAAa;IACzE;QACC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC1C,CAAC;CACD;AAJD,0FAIC"}
@@ -0,0 +1,10 @@
1
+ import { BaseException } from '@hg-ts/exception';
2
+ export type AggregateAlreadyExistsParams<IdType = unknown> = {
3
+ id?: IdType;
4
+ code?: number;
5
+ };
6
+ export declare abstract class AggregateAlreadyExistsException<IdType = unknown> extends BaseException {
7
+ readonly id?: IdType;
8
+ protected constructor(aggregateName: string, params?: AggregateAlreadyExistsParams<IdType>);
9
+ }
10
+ //# sourceMappingURL=aggregate.already-exists.exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.already-exists.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate.already-exists.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,4BAA4B,CAAC,MAAM,GAAG,OAAO,IAAI;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,8BAAsB,+BAA+B,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,aAAa;IAC5F,SAAgB,EAAE,CAAC,EAAE,MAAM,CAAC;IAE5B,SAAS,aAAa,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,4BAA4B,CAAC,MAAM,CAAM;CAiB9F"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateAlreadyExistsException = void 0;
4
+ const exception_1 = require("@hg-ts/exception");
5
+ const util_1 = require("util");
6
+ class AggregateAlreadyExistsException extends exception_1.BaseException {
7
+ id;
8
+ constructor(aggregateName, params = {}) {
9
+ const { code, id } = params;
10
+ const messageParts = [aggregateName];
11
+ if (id) {
12
+ messageParts.push(`with id ${(0, util_1.format)(id)}`);
13
+ }
14
+ messageParts.push('already exists');
15
+ super(messageParts.join(' '), { code });
16
+ if (id !== undefined) {
17
+ this.id = id;
18
+ }
19
+ }
20
+ }
21
+ exports.AggregateAlreadyExistsException = AggregateAlreadyExistsException;
22
+ //# sourceMappingURL=aggregate.already-exists.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.already-exists.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate.already-exists.exception.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AACjD,+BAA8B;AAO9B,MAAsB,+BAAkD,SAAQ,yBAAa;IAC5E,EAAE,CAAU;IAE5B,YAAsB,aAAqB,EAAE,SAA+C,EAAE;QAC7F,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QAC5B,MAAM,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC;QAErC,IAAI,EAAE,EAAE,CAAC;YACR,YAAY,CAAC,IAAI,CAAC,WAAW,IAAA,aAAM,EAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAGxC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACd,CAAC;IACF,CAAC;CACD;AApBD,0EAoBC"}
@@ -1,2 +1,7 @@
1
1
  export * from './aggregate.not-found.exception';
2
+ export * from './aggregate.already-exists.exception';
3
+ export * from './aggregate-event.not-found.exception';
4
+ export * from './aggregate-event.already-exists.exception';
5
+ export * from './aggregate-event.update-restricted.exception';
6
+ export * from './aggregate-event.delete-restricted.exception';
2
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AAErD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC"}
@@ -2,4 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./aggregate.not-found.exception"), exports);
5
+ tslib_1.__exportStar(require("./aggregate.already-exists.exception"), exports);
6
+ tslib_1.__exportStar(require("./aggregate-event.not-found.exception"), exports);
7
+ tslib_1.__exportStar(require("./aggregate-event.already-exists.exception"), exports);
8
+ tslib_1.__exportStar(require("./aggregate-event.update-restricted.exception"), exports);
9
+ tslib_1.__exportStar(require("./aggregate-event.delete-restricted.exception"), exports);
5
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":";;;AAAA,0EAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":";;;AAAA,0EAAgD;AAChD,+EAAqD;AAErD,gFAAsD;AACtD,qFAA2D;AAC3D,wFAA8D;AAC9D,wFAA8D"}
@@ -0,0 +1,17 @@
1
+ import { DomainEvent } from '@hg-ts/domain';
2
+ import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions';
3
+ import { BaseRepository } from './base.repository';
4
+ import { BaseFindOptions } from './repository';
5
+ export type EventFindOptions = BaseFindOptions<DomainEvent> & {
6
+ entityId: string;
7
+ entityName: string;
8
+ };
9
+ export declare abstract class BaseEventRepository extends BaseRepository<DomainEvent, EventFindOptions> {
10
+ getNextId(): Promise<string>;
11
+ update(_entity: DomainEvent | DomainEvent[]): Promise<void>;
12
+ delete(_entity: DomainEvent | DomainEvent[]): Promise<void>;
13
+ clear(): Promise<void>;
14
+ protected getNotFoundException(id: string): AggregateNotFoundException;
15
+ protected getAlreadyExistsException(id: string): AggregateAlreadyExistsException;
16
+ }
17
+ //# sourceMappingURL=base.event.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.event.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.event.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EACN,+BAA+B,EAK/B,0BAA0B,EAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,8BAAsB,mBACrB,SAAQ,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAC/B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAIzB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,0BAA0B;cAI5D,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,+BAA+B;CAGzF"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseEventRepository = void 0;
4
+ const domain_1 = require("@hg-ts/domain");
5
+ const exceptions_1 = require("../exceptions");
6
+ const base_repository_1 = require("./base.repository");
7
+ class BaseEventRepository extends base_repository_1.BaseRepository {
8
+ async getNextId() {
9
+ return domain_1.DomainEvent.generateId();
10
+ }
11
+ async update(_entity) {
12
+ throw new exceptions_1.AggregateEventUpdateRestrictedException();
13
+ }
14
+ async delete(_entity) {
15
+ throw new exceptions_1.AggregateEventDeleteRestrictedException();
16
+ }
17
+ async clear() {
18
+ throw new exceptions_1.AggregateEventDeleteRestrictedException();
19
+ }
20
+ getNotFoundException(id) {
21
+ throw new exceptions_1.AggregateEventNotFoundException(id);
22
+ }
23
+ getAlreadyExistsException(id) {
24
+ throw new exceptions_1.AggregateEventAlreadyExistsException(id);
25
+ }
26
+ }
27
+ exports.BaseEventRepository = BaseEventRepository;
28
+ //# sourceMappingURL=base.event.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.event.repository.js","sourceRoot":"","sources":["../../src/repositories/base.event.repository.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAE5C,8CAOuB;AACvB,uDAAmD;AAQnD,MAAsB,mBACrB,SAAQ,gCAA6C;IACrC,KAAK,CAAC,SAAS;QAC9B,OAAO,oBAAW,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,OAAoC;QAChE,MAAM,IAAI,oDAAuC,EAAE,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,OAAoC;QAChE,MAAM,IAAI,oDAAuC,EAAE,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,KAAK;QAC1B,MAAM,IAAI,oDAAuC,EAAE,CAAC;IACrD,CAAC;IAEkB,oBAAoB,CAAC,EAAU;QACjD,MAAM,IAAI,4CAA+B,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEkB,yBAAyB,CAAC,EAAU;QACtD,MAAM,IAAI,iDAAoC,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACD;AAzBD,kDAyBC"}
@@ -4,7 +4,8 @@ import type { AggregateId, BaseFindOptions } from './repository';
4
4
  export declare abstract class BaseMemoryRepository<Aggregate extends BaseAggregate<any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends BaseRepository<Aggregate, FindOptions> {
5
5
  protected lastId: Nullable<AggregateId<Aggregate>>;
6
6
  protected readonly entitiesMap: Map<AggregateId<Aggregate>, Aggregate>;
7
- save(aggregate: Aggregate | Aggregate[]): Promise<void>;
7
+ add(aggregate: Aggregate | Aggregate[]): Promise<void>;
8
+ update(aggregate: Aggregate | Aggregate[]): Promise<void>;
8
9
  delete(aggregate: Aggregate | Aggregate[]): Promise<void>;
9
10
  clear(): Promise<void>;
10
11
  protected findEntities(options: FindOptions): Promise<Aggregate[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"base.memory.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,MAAM,cAAc,CAAC;AAWtB,8BAAsB,oBAAoB,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,EAC3E,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAC9E,SAAQ,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC;IAC9C,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAQ;IAC1D,SAAS,CAAC,QAAQ,CAAC,WAAW,yCAAgD;IAEjE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvD,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAInB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAgBxE"}
1
+ {"version":3,"file":"base.memory.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,MAAM,cAAc,CAAC;AAWtB,8BAAsB,oBAAoB,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,EAC3E,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAC9E,SAAQ,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC;IAC9C,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAQ;IAC1D,SAAS,CAAC,QAAQ,CAAC,WAAW,yCAAgD;IAEjE,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAInB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAgBxE"}
@@ -11,12 +11,26 @@ function clone(aggregate) {
11
11
  class BaseMemoryRepository extends base_repository_1.BaseRepository {
12
12
  lastId = null;
13
13
  entitiesMap = new Map();
14
- async save(aggregate) {
14
+ async add(aggregate) {
15
15
  if (Array.isArray(aggregate)) {
16
- await Promise.all(aggregate.map(async (aggregate) => this.save(aggregate)));
16
+ await Promise.all(aggregate.map(async (aggregate) => this.add(aggregate)));
17
17
  }
18
18
  else {
19
- this.entitiesMap.set(aggregate['id'], clone(aggregate));
19
+ if (this.entitiesMap.has(aggregate.id)) {
20
+ throw this.getAlreadyExistsException(aggregate.id);
21
+ }
22
+ this.entitiesMap.set(aggregate.id, clone(aggregate));
23
+ }
24
+ }
25
+ async update(aggregate) {
26
+ if (Array.isArray(aggregate)) {
27
+ await Promise.all(aggregate.map(async (aggregate) => this.update(aggregate)));
28
+ }
29
+ else {
30
+ if (!this.entitiesMap.has(aggregate.id)) {
31
+ throw this.getNotFoundException(aggregate.id);
32
+ }
33
+ this.entitiesMap.set(aggregate.id, clone(aggregate));
20
34
  }
21
35
  }
22
36
  async delete(aggregate) {
@@ -1 +1 @@
1
- {"version":3,"file":"base.memory.repository.js","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AAMnD,SAAS,KAAK,CAAuC,SAAoB;IACxE,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEjD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAsB,oBAErB,SAAQ,gCAAsC;IACpC,MAAM,GAAqC,IAAI,CAAC;IACvC,WAAW,GAAG,IAAI,GAAG,EAAqC,CAAC;IAEvE,KAAK,CAAC,IAAI,CAAC,SAAkC;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACzD,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAkC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,OAAoB;QAChD,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;QAEvB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAC9C,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEtC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;CACD;AA1CD,oDA0CC"}
1
+ {"version":3,"file":"base.memory.repository.js","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AAMnD,SAAS,KAAK,CAAuC,SAAoB;IACxE,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEjD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAsB,oBAErB,SAAQ,gCAAsC;IACpC,MAAM,GAAqC,IAAI,CAAC;IACvC,WAAW,GAAG,IAAI,GAAG,EAAqC,CAAC;IAEvE,KAAK,CAAC,GAAG,CAAC,SAAkC;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACP,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAkC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAkC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,OAAoB;QAChD,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;QAEvB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAC9C,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEtC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;CACD;AAxDD,oDAwDC"}
@@ -1,17 +1,18 @@
1
- import type { BaseAggregate } from '@hg-ts/domain';
2
- import type { AggregateNotFoundException } from '../exceptions';
3
- import { BaseFindOptions, AggregateId, Repository } from './repository';
1
+ import { BaseAggregate, DomainEvent } from '@hg-ts/domain';
2
+ import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions';
3
+ import { AggregateId, BaseFindOptions, Repository } from './repository';
4
4
  type KeyType = number | string | symbol;
5
5
  export type InternalData = {
6
6
  updatedKeys: Set<KeyType>;
7
7
  };
8
- export declare abstract class BaseRepository<Aggregate extends BaseAggregate<any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends Repository<Aggregate, FindOptions> {
8
+ export declare abstract class BaseRepository<Aggregate extends (BaseAggregate<any> | DomainEvent), FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends Repository<Aggregate, FindOptions> {
9
9
  get(id: AggregateId<Aggregate>): Promise<Nullable<Aggregate>>;
10
10
  getOrFail(id: AggregateId<Aggregate>): Promise<Aggregate>;
11
11
  has(id: AggregateId<Aggregate>): Promise<boolean>;
12
12
  find(options?: Partial<FindOptions>): Promise<Aggregate[]>;
13
13
  protected abstract findEntities(options?: Partial<FindOptions>): Promise<Aggregate[]>;
14
14
  protected abstract getNotFoundException(id: AggregateId<Aggregate>): AggregateNotFoundException;
15
+ protected abstract getAlreadyExistsException(id: AggregateId<Aggregate>): AggregateAlreadyExistsException;
15
16
  }
16
17
  export {};
17
18
  //# sourceMappingURL=base.repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACN,eAAe,EACf,WAAW,EACX,UAAU,EACV,MAAM,cAAc,CAAC;AAEtB,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CAC7B,CAAC;AAEF,8BAAsB,cAAc,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,EACrE,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAC9E,SAAQ,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC;IAC7B,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAO7D,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAUzD,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjD,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMpE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAErF,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,0BAA0B;CAClG"}
1
+ {"version":3,"file":"base.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,WAAW,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,+BAA+B,EAC/B,0BAA0B,EAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,WAAW,EACX,eAAe,EACf,UAAU,EACV,MAAM,cAAc,CAAC;AAEtB,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CAC7B,CAAC;AAEF,8BAAsB,cAAc,CAAC,SAAS,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,EACrF,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAC9E,SAAQ,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC;IAC7B,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAO7D,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAUzD,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjD,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMpE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAErF,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,0BAA0B;IAE/F,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,+BAA+B;CAC5G"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":";;;AAEA,6CAIsB;AAQtB,MAAsB,cAErB,SAAQ,uBAAkC;IACnC,KAAK,CAAC,GAAG,CAAC,EAA0B;QAE1C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,IAAI,IAAI,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,EAA0B;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,EAA0B;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElC,OAAO,MAAM,KAAK,IAAI,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAA8B;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAElD,OAAO,QAAQ,CAAC;IACjB,CAAC;CAKD;AAnCD,wCAmCC"}
1
+ {"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":";;;AAQA,6CAIsB;AAQtB,MAAsB,cAErB,SAAQ,uBAAkC;IACnC,KAAK,CAAC,GAAG,CAAC,EAA0B;QAE1C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,IAAI,IAAI,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,EAA0B;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,EAA0B;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElC,OAAO,MAAM,KAAK,IAAI,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAA8B;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAElD,OAAO,QAAQ,CAAC;IACjB,CAAC;CAOD;AArCD,wCAqCC"}
@@ -1,4 +1,5 @@
1
1
  export * from './base.repository';
2
2
  export * from './repository';
3
3
  export * from './base.memory.repository';
4
+ export * from './base.event.repository';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AAEzC,cAAc,yBAAyB,CAAC"}
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./base.repository"), exports);
5
5
  tslib_1.__exportStar(require("./repository"), exports);
6
6
  tslib_1.__exportStar(require("./base.memory.repository"), exports);
7
+ tslib_1.__exportStar(require("./base.event.repository"), exports);
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,uDAA6B;AAC7B,mEAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,uDAA6B;AAC7B,mEAAyC;AAEzC,kEAAwC"}
@@ -1,14 +1,15 @@
1
- import type { BaseAggregate } from '@hg-ts/domain';
2
- export type AggregateId<Aggregate> = Aggregate extends BaseAggregate<infer X> ? X : never;
3
- export type BaseFindOptions<Aggregate extends BaseAggregate<any>> = {
1
+ import { BaseAggregate, DomainEvent, Identifiable } from '@hg-ts/domain';
2
+ export type AggregateId<Aggregate extends BaseAggregate<any> | DomainEvent> = Aggregate extends Identifiable<infer X> ? X : never;
3
+ export type BaseFindOptions<Aggregate extends BaseAggregate<any> | DomainEvent> = {
4
4
  id?: AggregateId<Aggregate> | AggregateId<Aggregate>[];
5
5
  };
6
- export declare abstract class Repository<Aggregate extends BaseAggregate<any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> {
6
+ export declare abstract class Repository<Aggregate extends BaseAggregate<any> | DomainEvent, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> {
7
7
  abstract getNextId(): Promise<AggregateId<Aggregate>>;
8
8
  abstract get(id: AggregateId<Aggregate>): Promise<Nullable<Aggregate>>;
9
9
  abstract getOrFail(id: AggregateId<Aggregate>): Promise<Aggregate>;
10
10
  abstract find(options?: FindOptions): Promise<Aggregate[]>;
11
- abstract save(entity: Aggregate | Aggregate[]): Promise<void>;
11
+ abstract add(entity: Aggregate | Aggregate[]): Promise<void>;
12
+ abstract update(entity: Aggregate | Aggregate[]): Promise<void>;
12
13
  abstract delete(entity: Aggregate | Aggregate[]): Promise<void>;
13
14
  abstract has(id: AggregateId<Aggregate>): Promise<boolean>;
14
15
  abstract clear(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,WAAW,CAAC,SAAS,IAAI,SAAS,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE1F,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,IAAI;IACnE,EAAE,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;CACvD,CAAC;AAEF,8BAAsB,UAAU,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,EACpE,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC;aAC3D,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aAE5C,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAE7D,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;aAEzD,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;aAEjD,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEpD,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEtD,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;aAEjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CACtC"}
1
+ {"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,WAAW,EACX,YAAY,EACZ,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,SAAS,YAAY,CAAC,MAAM,CAAC,CAAC,GAClH,CAAC,GACD,KAAK,CAAC;AAET,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI;IACjF,EAAE,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;CACvD,CAAC;AAEF,8BAAsB,UAAU,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,EAClF,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC;aAC3D,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aAE5C,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAE7D,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;aAEzD,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;aAEjD,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEnD,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEtD,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEtD,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;aAEjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CACtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":";;;AAQA,MAAsB,UAAU;CAiB/B;AAjBD,gCAiBC"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":";;;AAcA,MAAsB,UAAU;CAmB/B;AAnBD,gCAmBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-repository.test.d.ts","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,KAAK,EACL,MAAM,cAAc,CAAC;AAOtB,qBACa,uBAAwB,SAAQ,KAAK;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAG5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAezB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGjD"}
1
+ {"version":3,"file":"base-repository.test.d.ts","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,EAEL,MAAM,cAAc,CAAC;AAOtB,qBACa,uBAAwB,SAAQ,KAAK;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAG5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAezB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGjD"}
@@ -12,7 +12,7 @@ let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends tests_1.Suit
12
12
  async saveTest() {
13
13
  const id = (0, uuid_1.v4)();
14
14
  const aggregate = new test_aggregate_1.TestAggregate(id);
15
- await this.repository.save(aggregate);
15
+ await this.repository.add(aggregate);
16
16
  const savedAggregate = await this.repository.getOrFail(id);
17
17
  (0, tests_1.expect)(savedAggregate).toBeInstanceOf(test_aggregate_1.TestAggregate);
18
18
  (0, tests_1.expect)(savedAggregate).not.toBe(aggregate);
@@ -21,7 +21,7 @@ let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends tests_1.Suit
21
21
  async deleteTest() {
22
22
  const id = (0, uuid_1.v4)();
23
23
  const aggregate = new test_aggregate_1.TestAggregate(id);
24
- await this.repository.save(aggregate);
24
+ await this.repository.add(aggregate);
25
25
  const savedAggregate = await this.repository.getOrFail(id);
26
26
  (0, tests_1.expect)(savedAggregate).toBeInstanceOf(test_aggregate_1.TestAggregate);
27
27
  await this.repository.delete(aggregate);
@@ -33,12 +33,12 @@ let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends tests_1.Suit
33
33
  const expectedValue = (0, uuid_1.v4)();
34
34
  const aggregate = new test_aggregate_1.TestAggregate(id);
35
35
  aggregate.setSomeField(initialValue);
36
- await this.repository.save(aggregate);
36
+ await this.repository.add(aggregate);
37
37
  const savedAggregate = await this.repository.getOrFail(id);
38
38
  (0, tests_1.expect)(savedAggregate).toBeInstanceOf(test_aggregate_1.TestAggregate);
39
39
  (0, tests_1.expect)(savedAggregate.someField).toBe(initialValue);
40
40
  savedAggregate.setSomeField(expectedValue);
41
- await this.repository.save(savedAggregate);
41
+ await this.repository.update(savedAggregate);
42
42
  const updatedAggregate = await this.repository.getOrFail(id);
43
43
  (0, tests_1.expect)(updatedAggregate).toBeInstanceOf(test_aggregate_1.TestAggregate);
44
44
  (0, tests_1.expect)(updatedAggregate.someField).toBe(expectedValue);
@@ -1 +1 @@
1
- {"version":3,"file":"base-repository.test.js","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-repository.test.js","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { AggregateAlreadyExistsException } from '../exceptions';
2
+ import type { TestAggregate } from './test.aggregate';
3
+ export declare class TestAlreadyExistsException extends AggregateAlreadyExistsException {
4
+ constructor(id?: Nullable<TestAggregate['id']>);
5
+ }
6
+ //# sourceMappingURL=test.already-exists.exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.already-exists.exception.d.ts","sourceRoot":"","sources":["../../src/tests/test.already-exists.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,0BAA2B,SAAQ,+BAA+B;gBAC3D,EAAE,GAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAQ;CAG3D"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestAlreadyExistsException = void 0;
4
+ const exceptions_1 = require("../exceptions");
5
+ class TestAlreadyExistsException extends exceptions_1.AggregateAlreadyExistsException {
6
+ constructor(id = null) {
7
+ super('Test', { id, code: 0 });
8
+ }
9
+ }
10
+ exports.TestAlreadyExistsException = TestAlreadyExistsException;
11
+ //# sourceMappingURL=test.already-exists.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.already-exists.exception.js","sourceRoot":"","sources":["../../src/tests/test.already-exists.exception.ts"],"names":[],"mappings":";;;AAAA,8CAAgE;AAGhE,MAAa,0BAA2B,SAAQ,4CAA+B;IAC9E,YAAmB,KAAoC,IAAI;QAC1D,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACD;AAJD,gEAIC"}
@@ -1,8 +1,9 @@
1
- import type { AggregateNotFoundException } from '../exceptions';
1
+ import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions';
2
2
  import { BaseMemoryRepository } from '../repositories';
3
3
  import type { TestAggregate } from './test.aggregate';
4
4
  export declare class TestMemoryRepository extends BaseMemoryRepository<TestAggregate> {
5
5
  getNextId(): Promise<TestAggregate['id']>;
6
6
  protected getNotFoundException(id: TestAggregate['id']): AggregateNotFoundException;
7
+ protected getAlreadyExistsException(id: TestAggregate['id']): AggregateAlreadyExistsException;
7
8
  }
8
9
  //# sourceMappingURL=test.memory.repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.memory.repository.d.ts","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,qBAAa,oBAAqB,SAAQ,oBAAoB,CAAC,aAAa,CAAC;IAC/D,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAItD,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,0BAA0B;CAGnF"}
1
+ {"version":3,"file":"test.memory.repository.d.ts","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":"AACA,OAAO,EACN,+BAA+B,EAC/B,0BAA0B,EAC1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,qBAAa,oBAAqB,SAAQ,oBAAoB,CAAC,aAAa,CAAC;IAC/D,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAItD,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,0BAA0B;IAInF,SAAS,CAAC,yBAAyB,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,+BAA+B;CAG7F"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TestMemoryRepository = void 0;
4
4
  const uuid_1 = require("uuid");
5
5
  const repositories_1 = require("../repositories");
6
+ const test_already_exists_exception_1 = require("./test.already-exists.exception");
6
7
  const test_not_found_exception_1 = require("./test.not-found.exception");
7
8
  class TestMemoryRepository extends repositories_1.BaseMemoryRepository {
8
9
  async getNextId() {
@@ -11,6 +12,9 @@ class TestMemoryRepository extends repositories_1.BaseMemoryRepository {
11
12
  getNotFoundException(id) {
12
13
  return new test_not_found_exception_1.TestNotFoundException(id);
13
14
  }
15
+ getAlreadyExistsException(id) {
16
+ return new test_already_exists_exception_1.TestAlreadyExistsException(id);
17
+ }
14
18
  }
15
19
  exports.TestMemoryRepository = TestMemoryRepository;
16
20
  //# sourceMappingURL=test.memory.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.memory.repository.js","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAGlC,kDAAuD;AAGvD,yEAAmE;AAEnE,MAAa,oBAAqB,SAAQ,mCAAmC;IACrE,KAAK,CAAC,SAAS;QACrB,OAAO,IAAA,SAAI,GAAE,CAAC;IACf,CAAC;IAES,oBAAoB,CAAC,EAAuB;QACrD,OAAO,IAAI,gDAAqB,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;CACD;AARD,oDAQC"}
1
+ {"version":3,"file":"test.memory.repository.js","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAMlC,kDAAuD;AAGvD,mFAA6E;AAC7E,yEAAmE;AAEnE,MAAa,oBAAqB,SAAQ,mCAAmC;IACrE,KAAK,CAAC,SAAS;QACrB,OAAO,IAAA,SAAI,GAAE,CAAC;IACf,CAAC;IAES,oBAAoB,CAAC,EAAuB;QACrD,OAAO,IAAI,gDAAqB,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAES,yBAAyB,CAAC,EAAuB;QAC1D,OAAO,IAAI,0DAA0B,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;CACD;AAZD,oDAYC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hg-ts/repository",
3
- "version": "0.2.14",
3
+ "version": "0.2.16",
4
4
  "main": "dist/index.js",
5
5
  "exports": {
6
6
  ".": "./dist/index.js"
@@ -17,12 +17,12 @@
17
17
  "test:dev": "yarn build:dev --onSuccess \"yarn test\""
18
18
  },
19
19
  "devDependencies": {
20
- "@hg-ts-config/typescript": "0.2.14",
21
- "@hg-ts/domain": "0.2.14",
22
- "@hg-ts/exception": "0.2.14",
23
- "@hg-ts/linter": "0.2.14",
24
- "@hg-ts/tests": "0.2.14",
25
- "@hg-ts/types": "0.2.14",
20
+ "@hg-ts-config/typescript": "0.2.16",
21
+ "@hg-ts/domain": "0.2.16",
22
+ "@hg-ts/exception": "0.2.16",
23
+ "@hg-ts/linter": "0.2.16",
24
+ "@hg-ts/tests": "0.2.16",
25
+ "@hg-ts/types": "0.2.16",
26
26
  "@types/node": "22.10.6",
27
27
  "@types/uuid": "10.0.0",
28
28
  "eslint": "9.18.0",
@@ -30,15 +30,13 @@
30
30
  "ts-node": "10.9.2",
31
31
  "tsc-watch": "6.3.0",
32
32
  "tslib": "2.8.1",
33
- "typescript": "5.7.3"
33
+ "typescript": "5.7.3",
34
+ "uuid": "11.1.0"
34
35
  },
35
36
  "peerDependencies": {
36
- "@hg-ts/domain": "0.2.14",
37
- "@hg-ts/exception": "0.2.14",
37
+ "@hg-ts/domain": "0.2.16",
38
+ "@hg-ts/exception": "0.2.16",
38
39
  "reflect-metadata": "*",
39
40
  "tslib": "*"
40
- },
41
- "dependencies": {
42
- "uuid": "11.0.5"
43
41
  }
44
42
  }