@hg-ts/repository 0.4.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/repositories/base.event.repository.d.ts +3 -2
- package/dist/repositories/base.event.repository.d.ts.map +1 -1
- package/dist/repositories/base.event.repository.js +5 -2
- package/dist/repositories/base.event.repository.js.map +1 -1
- package/dist/repositories/base.memory.repository.d.ts +7 -7
- package/dist/repositories/base.memory.repository.d.ts.map +1 -1
- package/dist/repositories/base.memory.repository.js +11 -26
- package/dist/repositories/base.memory.repository.js.map +1 -1
- package/dist/repositories/base.repository.d.ts +12 -6
- package/dist/repositories/base.repository.d.ts.map +1 -1
- package/dist/repositories/base.repository.js +43 -0
- package/dist/repositories/base.repository.js.map +1 -1
- package/dist/repositories/repository.d.ts +2 -1
- package/dist/repositories/repository.d.ts.map +1 -1
- package/dist/repositories/repository.js.map +1 -1
- package/dist/tests/test.aggregate.d.ts +8 -2
- package/dist/tests/test.aggregate.d.ts.map +1 -1
- package/dist/tests/test.aggregate.js +5 -1
- package/dist/tests/test.aggregate.js.map +1 -1
- package/dist/tests/test.memory.repository.d.ts +4 -2
- package/dist/tests/test.memory.repository.d.ts.map +1 -1
- package/dist/tests/test.memory.repository.js +8 -1
- package/dist/tests/test.memory.repository.js.map +1 -1
- package/package.json +11 -11
|
@@ -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,
|
|
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,
|
|
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
|
-
|
|
8
|
-
|
|
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,
|
|
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
|
|
12
|
-
|
|
13
|
-
|
|
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
|
|
23
|
-
|
|
24
|
-
|
|
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
|
|
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,
|
|
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
|
|
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;
|
|
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":"
|
|
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
|
|
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,
|
|
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":"
|
|
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
|
-
|
|
2
|
+
type TestAggregateDto = {
|
|
3
|
+
id: string;
|
|
3
4
|
someField: Nullable<string>;
|
|
4
|
-
|
|
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;
|
|
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;
|
|
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
|
|
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,
|
|
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,
|
|
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.
|
|
3
|
+
"version": "0.5.0",
|
|
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.
|
|
22
|
-
"@hg-ts/domain": "0.
|
|
23
|
-
"@hg-ts/events": "0.
|
|
24
|
-
"@hg-ts/exception": "0.
|
|
25
|
-
"@hg-ts/linter": "0.
|
|
26
|
-
"@hg-ts/tests": "0.
|
|
27
|
-
"@hg-ts/types": "0.
|
|
21
|
+
"@hg-ts-config/typescript": "0.5.0",
|
|
22
|
+
"@hg-ts/domain": "0.5.0",
|
|
23
|
+
"@hg-ts/events": "0.5.0",
|
|
24
|
+
"@hg-ts/exception": "0.5.0",
|
|
25
|
+
"@hg-ts/linter": "0.5.0",
|
|
26
|
+
"@hg-ts/tests": "0.5.0",
|
|
27
|
+
"@hg-ts/types": "0.5.0",
|
|
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.
|
|
42
|
-
"@hg-ts/events": "0.
|
|
43
|
-
"@hg-ts/exception": "0.
|
|
41
|
+
"@hg-ts/domain": "0.5.0",
|
|
42
|
+
"@hg-ts/events": "0.5.0",
|
|
43
|
+
"@hg-ts/exception": "0.5.0",
|
|
44
44
|
"reflect-metadata": "*",
|
|
45
45
|
"tslib": "*",
|
|
46
46
|
"vitest": "*"
|