@hg-ts/repository 0.4.4 → 0.5.1

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 (30) hide show
  1. package/dist/exceptions/aggregate.already-exists.exception.d.ts +1 -1
  2. package/dist/exceptions/aggregate.already-exists.exception.d.ts.map +1 -1
  3. package/dist/exceptions/aggregate.already-exists.exception.js.map +1 -1
  4. package/dist/exceptions/aggregate.not-found.exception.d.ts +1 -1
  5. package/dist/exceptions/aggregate.not-found.exception.d.ts.map +1 -1
  6. package/dist/exceptions/aggregate.not-found.exception.js.map +1 -1
  7. package/dist/repositories/base.event.repository.d.ts +3 -2
  8. package/dist/repositories/base.event.repository.d.ts.map +1 -1
  9. package/dist/repositories/base.event.repository.js +5 -2
  10. package/dist/repositories/base.event.repository.js.map +1 -1
  11. package/dist/repositories/base.memory.repository.d.ts +7 -7
  12. package/dist/repositories/base.memory.repository.d.ts.map +1 -1
  13. package/dist/repositories/base.memory.repository.js +11 -26
  14. package/dist/repositories/base.memory.repository.js.map +1 -1
  15. package/dist/repositories/base.repository.d.ts +12 -6
  16. package/dist/repositories/base.repository.d.ts.map +1 -1
  17. package/dist/repositories/base.repository.js +43 -0
  18. package/dist/repositories/base.repository.js.map +1 -1
  19. package/dist/repositories/repository.d.ts +2 -1
  20. package/dist/repositories/repository.d.ts.map +1 -1
  21. package/dist/repositories/repository.js.map +1 -1
  22. package/dist/tests/test.aggregate.d.ts +8 -2
  23. package/dist/tests/test.aggregate.d.ts.map +1 -1
  24. package/dist/tests/test.aggregate.js +5 -1
  25. package/dist/tests/test.aggregate.js.map +1 -1
  26. package/dist/tests/test.memory.repository.d.ts +4 -2
  27. package/dist/tests/test.memory.repository.d.ts.map +1 -1
  28. package/dist/tests/test.memory.repository.js +8 -1
  29. package/dist/tests/test.memory.repository.js.map +1 -1
  30. package/package.json +11 -11
@@ -5,6 +5,6 @@ export type AggregateAlreadyExistsParams<IdType = unknown> = {
5
5
  };
6
6
  export declare abstract class AggregateAlreadyExistsException<IdType = unknown> extends BaseException {
7
7
  readonly id?: IdType;
8
- protected constructor(aggregateName: string, params?: AggregateAlreadyExistsParams<IdType>);
8
+ constructor(aggregateName: string, params?: AggregateAlreadyExistsParams<IdType>);
9
9
  }
10
10
  //# sourceMappingURL=aggregate.already-exists.exception.d.ts.map
@@ -1 +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"}
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;gBAET,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,4BAA4B,CAAC,MAAM,CAAM;CAiB3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.already-exists.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate.already-exists.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAO9B,MAAM,OAAgB,+BAAkD,SAAQ,aAAa;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,MAAM,CAAC,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"}
1
+ {"version":3,"file":"aggregate.already-exists.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate.already-exists.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAO9B,MAAM,OAAgB,+BAAkD,SAAQ,aAAa;IAC5E,EAAE,CAAU;IAE5B,YAAmB,aAAqB,EAAE,SAA+C,EAAE;QAC1F,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,MAAM,CAAC,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"}
@@ -5,6 +5,6 @@ export type AggregateNotFoundParams<IdType = unknown> = {
5
5
  };
6
6
  export declare abstract class AggregateNotFoundException<IdType = unknown> extends BaseException {
7
7
  readonly id?: IdType;
8
- protected constructor(aggregateName: string, params?: AggregateNotFoundParams<IdType>);
8
+ constructor(aggregateName: string, params?: AggregateNotFoundParams<IdType>);
9
9
  }
10
10
  //# sourceMappingURL=aggregate.not-found.exception.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.not-found.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,uBAAuB,CAAC,MAAM,GAAG,OAAO,IAAI;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,8BAAsB,0BAA0B,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,aAAa;IACvF,SAAgB,EAAE,CAAC,EAAE,MAAM,CAAC;IAE5B,SAAS,aAAa,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,uBAAuB,CAAC,MAAM,CAAM;CAiBzF"}
1
+ {"version":3,"file":"aggregate.not-found.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,uBAAuB,CAAC,MAAM,GAAG,OAAO,IAAI;IACvD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,8BAAsB,0BAA0B,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,aAAa;IACvF,SAAgB,EAAE,CAAC,EAAE,MAAM,CAAC;gBAET,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,uBAAuB,CAAC,MAAM,CAAM;CAiBtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.not-found.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAO9B,MAAM,OAAgB,0BAA6C,SAAQ,aAAa;IACvE,EAAE,CAAU;IAE5B,YAAsB,aAAqB,EAAE,SAA0C,EAAE;QACxF,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,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE/B,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"}
1
+ {"version":3,"file":"aggregate.not-found.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAO9B,MAAM,OAAgB,0BAA6C,SAAQ,aAAa;IACvE,EAAE,CAAU;IAE5B,YAAmB,aAAqB,EAAE,SAA0C,EAAE;QACrF,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,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE/B,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"}
@@ -1,12 +1,13 @@
1
- import { DomainEvent } from '@hg-ts/domain';
1
+ import { DomainEvent, DomainEventDto } from '@hg-ts/domain';
2
2
  import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions/index.js';
3
- import { BaseRepository } from './base.repository.js';
3
+ import { BaseRepository, NotEmptyList } from './base.repository.js';
4
4
  import { EventFindOptions, EventRepository } from './event.repository.js';
5
5
  export declare abstract class BaseEventRepository extends BaseRepository<DomainEvent, EventFindOptions> implements EventRepository {
6
6
  getNextId(): Promise<string>;
7
7
  update(_entity: DomainEvent | DomainEvent[]): Promise<void>;
8
8
  delete(_entity: DomainEvent | DomainEvent[]): Promise<void>;
9
9
  clear(): Promise<void>;
10
+ protected rawUpdate(_dtos: NotEmptyList<DomainEventDto>): Promise<void>;
10
11
  protected getNotFoundException(id: string): AggregateNotFoundException;
11
12
  protected getAlreadyExistsException(id: string): AggregateAlreadyExistsException;
12
13
  }
@@ -1 +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,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,MAAM,uBAAuB,CAAC;AAE/B,8BAAsB,mBACrB,SAAQ,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAE,YAAW,eAAe;IAC1D,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"}
1
+ {"version":3,"file":"base.event.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.event.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,cAAc,EACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACN,+BAA+B,EAK/B,0BAA0B,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,cAAc,EACd,YAAY,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,gBAAgB,EAChB,eAAe,EACf,MAAM,uBAAuB,CAAC;AAE/B,8BAAsB,mBACrB,SAAQ,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAE,YAAW,eAAe;IAC1D,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;cAInB,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAInE,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,0BAA0B;cAI5D,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,+BAA+B;CAGzF"}
@@ -1,6 +1,6 @@
1
- import { DomainEvent } from '@hg-ts/domain';
1
+ import { DomainEvent, } from '@hg-ts/domain';
2
2
  import { AggregateEventAlreadyExistsException, AggregateEventDeleteRestrictedException, AggregateEventNotFoundException, AggregateEventUpdateRestrictedException, } from '../exceptions/index.js';
3
- import { BaseRepository } from './base.repository.js';
3
+ import { BaseRepository, } from './base.repository.js';
4
4
  export class BaseEventRepository extends BaseRepository {
5
5
  async getNextId() {
6
6
  return DomainEvent.generateId();
@@ -14,6 +14,9 @@ export class BaseEventRepository extends BaseRepository {
14
14
  async clear() {
15
15
  throw new AggregateEventDeleteRestrictedException();
16
16
  }
17
+ async rawUpdate(_dtos) {
18
+ throw new AggregateEventUpdateRestrictedException();
19
+ }
17
20
  getNotFoundException(id) {
18
21
  throw new AggregateEventNotFoundException(id);
19
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.event.repository.js","sourceRoot":"","sources":["../../src/repositories/base.event.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAEN,oCAAoC,EACpC,uCAAuC,EACvC,+BAA+B,EAC/B,uCAAuC,GAEvC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,MAAM,OAAgB,mBACrB,SAAQ,cAA6C;IACrC,KAAK,CAAC,SAAS;QAC9B,OAAO,WAAW,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,OAAoC;QAChE,MAAM,IAAI,uCAAuC,EAAE,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,OAAoC;QAChE,MAAM,IAAI,uCAAuC,EAAE,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,KAAK;QAC1B,MAAM,IAAI,uCAAuC,EAAE,CAAC;IACrD,CAAC;IAEkB,oBAAoB,CAAC,EAAU;QACjD,MAAM,IAAI,+BAA+B,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEkB,yBAAyB,CAAC,EAAU;QACtD,MAAM,IAAI,oCAAoC,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACD"}
1
+ {"version":3,"file":"base.event.repository.js","sourceRoot":"","sources":["../../src/repositories/base.event.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,GAEX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEN,oCAAoC,EACpC,uCAAuC,EACvC,+BAA+B,EAC/B,uCAAuC,GAEvC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,cAAc,GAEd,MAAM,sBAAsB,CAAC;AAM9B,MAAM,OAAgB,mBACrB,SAAQ,cAA6C;IACrC,KAAK,CAAC,SAAS;QAC9B,OAAO,WAAW,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,OAAoC;QAChE,MAAM,IAAI,uCAAuC,EAAE,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,OAAoC;QAChE,MAAM,IAAI,uCAAuC,EAAE,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,KAAK;QAC1B,MAAM,IAAI,uCAAuC,EAAE,CAAC;IACrD,CAAC;IAEkB,KAAK,CAAC,SAAS,CAAC,KAAmC;QACrE,MAAM,IAAI,uCAAuC,EAAE,CAAC;IACrD,CAAC;IAEkB,oBAAoB,CAAC,EAAU;QACjD,MAAM,IAAI,+BAA+B,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEkB,yBAAyB,CAAC,EAAU;QACtD,MAAM,IAAI,oCAAoC,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACD"}
@@ -1,13 +1,13 @@
1
1
  import type { BaseAggregate } from '@hg-ts/domain';
2
- import { BaseRepository } from './base.repository.js';
3
- import type { AggregateId, BaseFindOptions } from './repository.js';
4
- export declare abstract class BaseMemoryRepository<Aggregate extends BaseAggregate<any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends BaseRepository<Aggregate, FindOptions> {
2
+ import { BaseRepository, NotEmptyList } from './base.repository.js';
3
+ import type { AggregateDto, AggregateId, BaseFindOptions } from './repository.js';
4
+ export declare abstract class BaseMemoryRepository<Aggregate extends BaseAggregate<any, any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends BaseRepository<Aggregate, FindOptions> {
5
5
  protected lastId: Nullable<AggregateId<Aggregate>>;
6
- protected readonly entitiesMap: Map<AggregateId<Aggregate>, Aggregate>;
7
- add(aggregate: Aggregate | Aggregate[]): Promise<void>;
8
- update(aggregate: Aggregate | Aggregate[]): Promise<void>;
6
+ protected readonly entitiesMap: Map<AggregateId<Aggregate>, AggregateDto<Aggregate>>;
7
+ rawAdd(dtos: NotEmptyList<AggregateDto<Aggregate>>): Promise<void>;
8
+ rawUpdate(dtos: NotEmptyList<AggregateDto<Aggregate>>): Promise<void>;
9
9
  delete(aggregate: Aggregate | Aggregate[]): Promise<void>;
10
- clear(): Promise<void>;
11
10
  protected findEntities(options: FindOptions): Promise<Aggregate[]>;
11
+ protected abstract createAggregate(dto: AggregateDto<Aggregate>): Aggregate;
12
12
  }
13
13
  //# sourceMappingURL=base.memory.repository.d.ts.map
@@ -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,sBAAsB,CAAC;AACtD,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,MAAM,iBAAiB,CAAC;AAWzB,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"}
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,EACN,cAAc,EACd,YAAY,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACX,YAAY,EACZ,WAAW,EACX,eAAe,EACf,MAAM,iBAAiB,CAAC;AAWzB,8BAAsB,oBAAoB,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAChF,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAE9E,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,uDAA8D;IAE/E,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlE,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5D,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAQ/D,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAiBxE,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,SAAS;CAC3E"}
@@ -1,4 +1,4 @@
1
- import { BaseRepository } from './base.repository.js';
1
+ import { BaseRepository, } from './base.repository.js';
2
2
  function clone(aggregate) {
3
3
  const aggregatePrototype = Object.getPrototypeOf(aggregate);
4
4
  const result = Object.create(aggregatePrototype);
@@ -8,26 +8,14 @@ function clone(aggregate) {
8
8
  export class BaseMemoryRepository extends BaseRepository {
9
9
  lastId = null;
10
10
  entitiesMap = new Map();
11
- async add(aggregate) {
12
- if (Array.isArray(aggregate)) {
13
- await Promise.all(aggregate.map(async (aggregate) => this.add(aggregate)));
14
- }
15
- else {
16
- if (this.entitiesMap.has(aggregate.id)) {
17
- throw this.getAlreadyExistsException(aggregate.id);
18
- }
19
- this.entitiesMap.set(aggregate.id, clone(aggregate));
11
+ async rawAdd(dtos) {
12
+ for (const dto of dtos) {
13
+ this.entitiesMap.set(dto.id, clone(dto));
20
14
  }
21
15
  }
22
- async update(aggregate) {
23
- if (Array.isArray(aggregate)) {
24
- await Promise.all(aggregate.map(async (aggregate) => this.update(aggregate)));
25
- }
26
- else {
27
- if (!this.entitiesMap.has(aggregate.id)) {
28
- throw this.getNotFoundException(aggregate.id);
29
- }
30
- this.entitiesMap.set(aggregate.id, clone(aggregate));
16
+ async rawUpdate(dtos) {
17
+ for (const dto of dtos) {
18
+ this.entitiesMap.set(dto.id, clone(dto));
31
19
  }
32
20
  }
33
21
  async delete(aggregate) {
@@ -35,23 +23,20 @@ export class BaseMemoryRepository extends BaseRepository {
35
23
  await Promise.all(aggregate.map(async (aggregate) => this.delete(aggregate)));
36
24
  }
37
25
  else {
38
- this.entitiesMap.delete(aggregate['id']);
26
+ this.entitiesMap.delete(aggregate.id);
39
27
  }
40
28
  }
41
- async clear() {
42
- this.entitiesMap.clear();
43
- }
44
29
  async findEntities(options) {
45
30
  const { id } = options;
46
31
  if (Array.isArray(id)) {
47
32
  return id.filter(id => this.entitiesMap.has(id))
48
- .map(id => this.entitiesMap.get(id));
33
+ .map(id => this.entitiesMap.get(id)).map(dto => this.createAggregate(dto));
49
34
  }
50
35
  if (typeof id !== 'undefined') {
51
36
  const item = this.entitiesMap.get(id);
52
- return item ? [item] : [];
37
+ return item ? [this.createAggregate(item)] : [];
53
38
  }
54
- return [...this.entitiesMap.values()];
39
+ return [...this.entitiesMap.values()].map(dto => this.createAggregate(dto));
55
40
  }
56
41
  }
57
42
  //# sourceMappingURL=base.memory.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.memory.repository.js","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,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,MAAM,OAAgB,oBAErB,SAAQ,cAAsC;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"}
1
+ {"version":3,"file":"base.memory.repository.js","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":"AACA,OAAO,EACN,cAAc,GAEd,MAAM,sBAAsB,CAAC;AAO9B,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,MAAM,OAAgB,oBAGrB,SAAQ,cAAsC;IACpC,MAAM,GAAqC,IAAI,CAAC;IACvC,WAAW,GAAG,IAAI,GAAG,EAAmD,CAAC;IAErF,KAAK,CAAC,MAAM,CAAC,IAA2C;QAC9D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,IAA2C;QACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;IACF,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,SAAkC;QAC9D,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,EAAE,CAAC,CAAC;QACvC,CAAC;IACF,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,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,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,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;CAGD"}
@@ -1,18 +1,24 @@
1
1
  import { BaseAggregate, DomainEvent } from '@hg-ts/domain';
2
2
  import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions/index.js';
3
- import { AggregateId, BaseFindOptions, Repository } from './repository.js';
4
- type KeyType = number | string | symbol;
5
- export type InternalData = {
6
- updatedKeys: Set<KeyType>;
7
- };
3
+ import { AggregateDto, AggregateId, BaseFindOptions, Repository } from './repository.js';
4
+ export type NotEmptyList<T> = [T, ...T[]];
8
5
  export declare abstract class BaseRepository<Aggregate extends (BaseAggregate<any> | DomainEvent), FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends Repository<Aggregate, FindOptions> {
9
6
  get(id: AggregateId<Aggregate>): Promise<Nullable<Aggregate>>;
10
7
  getOrFail(id: AggregateId<Aggregate>): Promise<Aggregate>;
11
8
  has(id: AggregateId<Aggregate>): Promise<boolean>;
12
9
  find(options?: Partial<FindOptions>): Promise<Aggregate[]>;
10
+ add(entities: Aggregate[] | Aggregate): Promise<void>;
11
+ update(entities: Aggregate[] | Aggregate): Promise<void>;
12
+ clear(): Promise<void>;
13
+ delete(_entities: Aggregate[] | Aggregate): Promise<void>;
14
+ protected onEmptyAdd(): void;
15
+ protected onEmptyUpdate(): void;
16
+ protected getDto(aggregate: Aggregate): AggregateDto<Aggregate>;
17
+ protected getId(aggregate: Aggregate): AggregateId<Aggregate>;
13
18
  protected abstract findEntities(options?: Partial<FindOptions>): Promise<Aggregate[]>;
19
+ protected abstract rawAdd(dtos: NotEmptyList<AggregateDto<Aggregate>>): Promise<void>;
20
+ protected abstract rawUpdate(dtos: NotEmptyList<AggregateDto<Aggregate>>): Promise<void>;
14
21
  protected abstract getNotFoundException(id: AggregateId<Aggregate>): AggregateNotFoundException;
15
22
  protected abstract getAlreadyExistsException(id: AggregateId<Aggregate>): AggregateAlreadyExistsException;
16
23
  }
17
- export {};
18
24
  //# 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,EACN,aAAa,EACb,WAAW,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,+BAA+B,EAC/B,0BAA0B,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,WAAW,EACX,eAAe,EACf,UAAU,EACV,MAAM,iBAAiB,CAAC;AAEzB,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
+ {"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;AAEvB,OAAO,EACN,+BAA+B,EAC/B,0BAA0B,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,YAAY,EACZ,WAAW,EACX,eAAe,EACf,UAAU,EACV,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAE1C,8BAAsB,cAAc,CAAC,SAAS,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,EACxF,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAC3E,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;IAM1D,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrD,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,CAAC,UAAU,IAAI,IAAI;IAC5B,SAAS,CAAC,aAAa,IAAI,IAAI;IAC/B,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IAG/D,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;IAI7D,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAErF,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACrF,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAExF,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;CACzG"}
@@ -1,3 +1,4 @@
1
+ import { WillNeverHappenedException } from '@hg-ts/exception';
1
2
  import { Repository, } from './repository.js';
2
3
  export class BaseRepository extends Repository {
3
4
  async get(id) {
@@ -19,5 +20,47 @@ export class BaseRepository extends Repository {
19
20
  const entities = await this.findEntities(options);
20
21
  return entities;
21
22
  }
23
+ async add(entities) {
24
+ const dtos = Array.isArray(entities) ? entities.map(entity => this.getDto(entity)) : [this.getDto(entities)];
25
+ if (dtos.length === 0) {
26
+ this.onEmptyAdd();
27
+ return;
28
+ }
29
+ const ids = dtos.map(dto => dto.id);
30
+ const existEntities = await this.find({ id: ids });
31
+ if (existEntities.length > 0 && existEntities[0]) {
32
+ throw this.getAlreadyExistsException(this.getId(existEntities[0]));
33
+ }
34
+ await this.rawAdd(dtos);
35
+ }
36
+ async update(entities) {
37
+ const dtos = Array.isArray(entities)
38
+ ? entities.map(entity => this.getDto(entity))
39
+ : [this.getDto(entities)];
40
+ if (dtos.length === 0) {
41
+ this.onEmptyUpdate();
42
+ return;
43
+ }
44
+ const ids = dtos.map(dto => dto.id);
45
+ const existEntities = await this.find({ id: ids });
46
+ if (existEntities.length < dtos.length && dtos[0]) {
47
+ throw this.getNotFoundException(existEntities[0]?.id ?? dtos[0].id);
48
+ }
49
+ await this.rawUpdate(dtos);
50
+ }
51
+ async clear() {
52
+ throw new WillNeverHappenedException('The clean method is not implemented, so cleaning the repository is not allowed.');
53
+ }
54
+ async delete(_entities) {
55
+ throw new WillNeverHappenedException('The delete method is not implemented, so deleting entities is not allowed.');
56
+ }
57
+ onEmptyAdd() { }
58
+ onEmptyUpdate() { }
59
+ getDto(aggregate) {
60
+ return aggregate.toDto();
61
+ }
62
+ getId(aggregate) {
63
+ return aggregate.id;
64
+ }
22
65
  }
23
66
  //# sourceMappingURL=base.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":"AAQA,OAAO,EAGN,UAAU,GACV,MAAM,iBAAiB,CAAC;AAQzB,MAAM,OAAgB,cAErB,SAAQ,UAAkC;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"}
1
+ {"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
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;
2
+ export type AggregateId<Aggregate extends BaseAggregate<any> | DomainEvent> = Aggregate extends Identifiable<infer IdType> ? IdType : never;
3
+ export type AggregateDto<Aggregate extends BaseAggregate<any> | DomainEvent> = ReturnType<Aggregate['toDto']>;
3
4
  export type BaseFindOptions<Aggregate extends BaseAggregate<any> | DomainEvent> = {
4
5
  id?: AggregateId<Aggregate> | AggregateId<Aggregate>[];
5
6
  };
@@ -1 +1 @@
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
+ {"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,IACzE,SAAS,SAAS,YAAY,CAAC,MAAM,MAAM,CAAC,GACzC,MAAM,GACN,KAAK,CAAC;AAEV,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,IAC1E,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;AAE/B,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":"AAcA,MAAM,OAAgB,UAAU;CAmB/B"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAgB,UAAU;CAmB/B"}
@@ -1,7 +1,13 @@
1
1
  import { BaseAggregate } from '@hg-ts/domain';
2
- export declare class TestAggregate extends BaseAggregate {
2
+ type TestAggregateDto = {
3
+ id: string;
3
4
  someField: Nullable<string>;
4
- constructor(id: string);
5
+ };
6
+ export declare class TestAggregate extends BaseAggregate<TestAggregateDto> {
7
+ someField: Nullable<string>;
8
+ constructor(id: string, someField?: Nullable<string>);
5
9
  setSomeField(value: Nullable<string>): void;
10
+ toDto(): TestAggregateDto;
6
11
  }
12
+ export {};
7
13
  //# sourceMappingURL=test.aggregate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.aggregate.d.ts","sourceRoot":"","sources":["../../src/tests/test.aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,qBAAa,aAAc,SAAQ,aAAa;IACxC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;gBAEvB,EAAE,EAAE,MAAM;IAItB,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;CAGlD"}
1
+ {"version":3,"file":"test.aggregate.d.ts","sourceRoot":"","sources":["../../src/tests/test.aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,KAAK,gBAAgB,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AAEF,qBAAa,aAAc,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IAC1D,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;gBAEvB,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAQ;IAM1D,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAI3C,KAAK,IAAI,gBAAgB;CAGhC"}
@@ -1,11 +1,15 @@
1
1
  import { BaseAggregate } from '@hg-ts/domain';
2
2
  export class TestAggregate extends BaseAggregate {
3
3
  someField = null;
4
- constructor(id) {
4
+ constructor(id, someField = null) {
5
5
  super({ id });
6
+ this.someField = someField;
6
7
  }
7
8
  setSomeField(value) {
8
9
  this.someField = value;
9
10
  }
11
+ toDto() {
12
+ return { id: this.id, someField: this.someField };
13
+ }
10
14
  }
11
15
  //# sourceMappingURL=test.aggregate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.aggregate.js","sourceRoot":"","sources":["../../src/tests/test.aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,OAAO,aAAc,SAAQ,aAAa;IACxC,SAAS,GAAqB,IAAI,CAAC;IAE1C,YAAmB,EAAU;QAC5B,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,CAAC;IAEM,YAAY,CAAC,KAAuB;QAC1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;CACD"}
1
+ {"version":3,"file":"test.aggregate.js","sourceRoot":"","sources":["../../src/tests/test.aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAO9C,MAAM,OAAO,aAAc,SAAQ,aAA+B;IAC1D,SAAS,GAAqB,IAAI,CAAC;IAE1C,YAAmB,EAAU,EAAE,YAA8B,IAAI;QAChE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAEM,YAAY,CAAC,KAAuB;QAC1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,KAAK;QACX,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnD,CAAC;CACD"}
@@ -1,9 +1,11 @@
1
1
  import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions/index.js';
2
- import { BaseMemoryRepository } from '../repositories/index.js';
3
- import type { TestAggregate } from './test.aggregate.js';
2
+ import { AggregateDto, BaseMemoryRepository } from '../repositories/index.js';
3
+ import { TestAggregate } from './test.aggregate.js';
4
4
  export declare class TestMemoryRepository extends BaseMemoryRepository<TestAggregate> {
5
+ clear(): Promise<void>;
5
6
  getNextId(): Promise<TestAggregate['id']>;
6
7
  protected getNotFoundException(id: TestAggregate['id']): AggregateNotFoundException;
7
8
  protected getAlreadyExistsException(id: TestAggregate['id']): AggregateAlreadyExistsException;
9
+ protected createAggregate(dto: AggregateDto<TestAggregate>): TestAggregate;
8
10
  }
9
11
  //# 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,EACN,+BAA+B,EAC/B,0BAA0B,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,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"}
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,wBAAwB,CAAC;AAEhC,OAAO,EACN,YAAY,EACZ,oBAAoB,EACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,qBAAa,oBAAqB,SAAQ,oBAAoB,CAAC,aAAa,CAAC;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,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;IAI7F,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,aAAa,CAAC,GAAG,aAAa;CAG1E"}
@@ -1,8 +1,12 @@
1
1
  import { v4 as uuid } from 'uuid';
2
- import { BaseMemoryRepository } from '../repositories/index.js';
2
+ import { BaseMemoryRepository, } from '../repositories/index.js';
3
+ import { TestAggregate } from './test.aggregate.js';
3
4
  import { TestAlreadyExistsException } from './test.already-exists.exception.js';
4
5
  import { TestNotFoundException } from './test.not-found.exception.js';
5
6
  export class TestMemoryRepository extends BaseMemoryRepository {
7
+ async clear() {
8
+ this.entitiesMap.clear();
9
+ }
6
10
  async getNextId() {
7
11
  return uuid();
8
12
  }
@@ -12,5 +16,8 @@ export class TestMemoryRepository extends BaseMemoryRepository {
12
16
  getAlreadyExistsException(id) {
13
17
  return new TestAlreadyExistsException(id);
14
18
  }
19
+ createAggregate(dto) {
20
+ return new TestAggregate(dto.id, dto.someField);
21
+ }
15
22
  }
16
23
  //# 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,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAMlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,OAAO,oBAAqB,SAAQ,oBAAmC;IACrE,KAAK,CAAC,SAAS;QACrB,OAAO,IAAI,EAAE,CAAC;IACf,CAAC;IAES,oBAAoB,CAAC,EAAuB;QACrD,OAAO,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAES,yBAAyB,CAAC,EAAuB;QAC1D,OAAO,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;CACD"}
1
+ {"version":3,"file":"test.memory.repository.js","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAMlC,OAAO,EAEN,oBAAoB,GACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,OAAO,oBAAqB,SAAQ,oBAAmC;IAC5D,KAAK,CAAC,KAAK;QAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEM,KAAK,CAAC,SAAS;QACrB,OAAO,IAAI,EAAE,CAAC;IACf,CAAC;IAES,oBAAoB,CAAC,EAAuB;QACrD,OAAO,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAES,yBAAyB,CAAC,EAAuB;QAC1D,OAAO,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAES,eAAe,CAAC,GAAgC;QACzD,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hg-ts/repository",
3
- "version": "0.4.4",
3
+ "version": "0.5.1",
4
4
  "main": "dist/index.js",
5
5
  "type": "module",
6
6
  "exports": {
@@ -18,13 +18,13 @@
18
18
  "test:dev": "HG_ENV=test vitest watch"
19
19
  },
20
20
  "devDependencies": {
21
- "@hg-ts-config/typescript": "0.4.4",
22
- "@hg-ts/domain": "0.4.4",
23
- "@hg-ts/events": "0.4.4",
24
- "@hg-ts/exception": "0.4.4",
25
- "@hg-ts/linter": "0.4.4",
26
- "@hg-ts/tests": "0.4.4",
27
- "@hg-ts/types": "0.4.4",
21
+ "@hg-ts-config/typescript": "0.5.1",
22
+ "@hg-ts/domain": "0.5.1",
23
+ "@hg-ts/events": "0.5.1",
24
+ "@hg-ts/exception": "0.5.1",
25
+ "@hg-ts/linter": "0.5.1",
26
+ "@hg-ts/tests": "0.5.1",
27
+ "@hg-ts/types": "0.5.1",
28
28
  "@types/node": "22.19.1",
29
29
  "@types/uuid": "10.0.0",
30
30
  "@vitest/coverage-v8": "4.0.14",
@@ -38,9 +38,9 @@
38
38
  "vitest": "4.0.14"
39
39
  },
40
40
  "peerDependencies": {
41
- "@hg-ts/domain": "0.4.4",
42
- "@hg-ts/events": "0.4.4",
43
- "@hg-ts/exception": "0.4.4",
41
+ "@hg-ts/domain": "0.5.1",
42
+ "@hg-ts/events": "0.5.1",
43
+ "@hg-ts/exception": "0.5.1",
44
44
  "reflect-metadata": "*",
45
45
  "tslib": "*",
46
46
  "vitest": "*"