@woltz/rich-domain 1.8.1 → 1.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -47
- package/dist/cjs/core/base-aggregate.d.ts +39 -0
- package/dist/cjs/core/base-aggregate.d.ts.map +1 -0
- package/dist/cjs/core/base-aggregate.js +57 -0
- package/dist/cjs/core/base-aggregate.js.map +1 -0
- package/dist/cjs/core/base-entity.d.ts +3 -32
- package/dist/cjs/core/base-entity.d.ts.map +1 -1
- package/dist/cjs/core/base-entity.js +0 -44
- package/dist/cjs/core/base-entity.js.map +1 -1
- package/dist/cjs/core/entity.d.ts +3 -2
- package/dist/cjs/core/entity.d.ts.map +1 -1
- package/dist/cjs/core/entity.js +2 -1
- package/dist/cjs/core/entity.js.map +1 -1
- package/dist/cjs/core/index.d.ts +1 -0
- package/dist/cjs/core/index.d.ts.map +1 -1
- package/dist/cjs/core/index.js +1 -0
- package/dist/cjs/core/index.js.map +1 -1
- package/dist/cjs/core/value-object.d.ts +0 -18
- package/dist/cjs/core/value-object.d.ts.map +1 -1
- package/dist/cjs/core/value-object.js +0 -25
- package/dist/cjs/core/value-object.js.map +1 -1
- package/dist/esm/core/base-aggregate.d.ts +39 -0
- package/dist/esm/core/base-aggregate.d.ts.map +1 -0
- package/dist/esm/core/base-aggregate.js +53 -0
- package/dist/esm/core/base-aggregate.js.map +1 -0
- package/dist/esm/core/base-entity.d.ts +3 -32
- package/dist/esm/core/base-entity.d.ts.map +1 -1
- package/dist/esm/core/base-entity.js +0 -44
- package/dist/esm/core/base-entity.js.map +1 -1
- package/dist/esm/core/entity.d.ts +3 -2
- package/dist/esm/core/entity.d.ts.map +1 -1
- package/dist/esm/core/entity.js +2 -1
- package/dist/esm/core/entity.js.map +1 -1
- package/dist/esm/core/index.d.ts +1 -0
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/value-object.d.ts +0 -18
- package/dist/esm/core/value-object.d.ts.map +1 -1
- package/dist/esm/core/value-object.js +0 -25
- package/dist/esm/core/value-object.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/core/base-aggregate.d.ts +39 -0
- package/dist/types/core/base-aggregate.d.ts.map +1 -0
- package/dist/types/core/base-entity.d.ts +3 -32
- package/dist/types/core/base-entity.d.ts.map +1 -1
- package/dist/types/core/entity.d.ts +3 -2
- package/dist/types/core/entity.d.ts.map +1 -1
- package/dist/types/core/index.d.ts +1 -0
- package/dist/types/core/index.d.ts.map +1 -1
- package/dist/types/core/value-object.d.ts +0 -18
- package/dist/types/core/value-object.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/aggregate-changes.d.ts +0 -206
- package/dist/cjs/aggregate-changes.d.ts.map +0 -1
- package/dist/cjs/aggregate-changes.js +0 -365
- package/dist/cjs/aggregate-changes.js.map +0 -1
- package/dist/cjs/base-entity.d.ts +0 -90
- package/dist/cjs/base-entity.d.ts.map +0 -1
- package/dist/cjs/base-entity.js +0 -331
- package/dist/cjs/base-entity.js.map +0 -1
- package/dist/cjs/change-tracker.d.ts +0 -96
- package/dist/cjs/change-tracker.d.ts.map +0 -1
- package/dist/cjs/change-tracker.js +0 -789
- package/dist/cjs/change-tracker.js.map +0 -1
- package/dist/cjs/crypto.d.ts +0 -3
- package/dist/cjs/crypto.d.ts.map +0 -1
- package/dist/cjs/crypto.js +0 -32
- package/dist/cjs/crypto.js.map +0 -1
- package/dist/cjs/domain-event.d.ts +0 -23
- package/dist/cjs/domain-event.d.ts.map +0 -1
- package/dist/cjs/domain-event.js +0 -36
- package/dist/cjs/domain-event.js.map +0 -1
- package/dist/cjs/entity-changes.d.ts +0 -84
- package/dist/cjs/entity-changes.d.ts.map +0 -1
- package/dist/cjs/entity-changes.js +0 -136
- package/dist/cjs/entity-changes.js.map +0 -1
- package/dist/cjs/entity-schema-registry.d.ts +0 -282
- package/dist/cjs/entity-schema-registry.d.ts.map +0 -1
- package/dist/cjs/entity-schema-registry.js +0 -372
- package/dist/cjs/entity-schema-registry.js.map +0 -1
- package/dist/cjs/entity.d.ts +0 -7
- package/dist/cjs/entity.d.ts.map +0 -1
- package/dist/cjs/entity.js +0 -11
- package/dist/cjs/entity.js.map +0 -1
- package/dist/cjs/id.d.ts +0 -59
- package/dist/cjs/id.d.ts.map +0 -1
- package/dist/cjs/id.js +0 -92
- package/dist/cjs/id.js.map +0 -1
- package/dist/cjs/mapper.d.ts +0 -4
- package/dist/cjs/mapper.d.ts.map +0 -1
- package/dist/cjs/mapper.js +0 -7
- package/dist/cjs/mapper.js.map +0 -1
- package/dist/cjs/paginated-result.d.ts +0 -54
- package/dist/cjs/paginated-result.d.ts.map +0 -1
- package/dist/cjs/paginated-result.js +0 -197
- package/dist/cjs/paginated-result.js.map +0 -1
- package/dist/cjs/value-object.d.ts +0 -49
- package/dist/cjs/value-object.d.ts.map +0 -1
- package/dist/cjs/value-object.js +0 -129
- package/dist/cjs/value-object.js.map +0 -1
- package/dist/esm/aggregate-changes.d.ts +0 -206
- package/dist/esm/aggregate-changes.d.ts.map +0 -1
- package/dist/esm/aggregate-changes.js +0 -361
- package/dist/esm/aggregate-changes.js.map +0 -1
- package/dist/esm/base-entity.d.ts +0 -90
- package/dist/esm/base-entity.d.ts.map +0 -1
- package/dist/esm/base-entity.js +0 -327
- package/dist/esm/base-entity.js.map +0 -1
- package/dist/esm/change-tracker.d.ts +0 -96
- package/dist/esm/change-tracker.d.ts.map +0 -1
- package/dist/esm/change-tracker.js +0 -785
- package/dist/esm/change-tracker.js.map +0 -1
- package/dist/esm/crypto.d.ts +0 -3
- package/dist/esm/crypto.d.ts.map +0 -1
- package/dist/esm/crypto.js +0 -29
- package/dist/esm/crypto.js.map +0 -1
- package/dist/esm/domain-event.d.ts +0 -23
- package/dist/esm/domain-event.d.ts.map +0 -1
- package/dist/esm/domain-event.js +0 -32
- package/dist/esm/domain-event.js.map +0 -1
- package/dist/esm/entity-changes.d.ts +0 -84
- package/dist/esm/entity-changes.d.ts.map +0 -1
- package/dist/esm/entity-changes.js +0 -132
- package/dist/esm/entity-changes.js.map +0 -1
- package/dist/esm/entity-schema-registry.d.ts +0 -282
- package/dist/esm/entity-schema-registry.d.ts.map +0 -1
- package/dist/esm/entity-schema-registry.js +0 -368
- package/dist/esm/entity-schema-registry.js.map +0 -1
- package/dist/esm/entity.d.ts +0 -7
- package/dist/esm/entity.d.ts.map +0 -1
- package/dist/esm/entity.js +0 -6
- package/dist/esm/entity.js.map +0 -1
- package/dist/esm/id.d.ts +0 -59
- package/dist/esm/id.d.ts.map +0 -1
- package/dist/esm/id.js +0 -85
- package/dist/esm/id.js.map +0 -1
- package/dist/esm/mapper.d.ts +0 -4
- package/dist/esm/mapper.d.ts.map +0 -1
- package/dist/esm/mapper.js +0 -3
- package/dist/esm/mapper.js.map +0 -1
- package/dist/esm/paginated-result.d.ts +0 -54
- package/dist/esm/paginated-result.d.ts.map +0 -1
- package/dist/esm/paginated-result.js +0 -193
- package/dist/esm/paginated-result.js.map +0 -1
- package/dist/esm/value-object.d.ts +0 -49
- package/dist/esm/value-object.d.ts.map +0 -1
- package/dist/esm/value-object.js +0 -125
- package/dist/esm/value-object.js.map +0 -1
- package/dist/types/aggregate-changes.d.ts +0 -206
- package/dist/types/aggregate-changes.d.ts.map +0 -1
- package/dist/types/base-entity.d.ts +0 -90
- package/dist/types/base-entity.d.ts.map +0 -1
- package/dist/types/change-tracker.d.ts +0 -96
- package/dist/types/change-tracker.d.ts.map +0 -1
- package/dist/types/crypto.d.ts +0 -3
- package/dist/types/crypto.d.ts.map +0 -1
- package/dist/types/domain-event.d.ts +0 -23
- package/dist/types/domain-event.d.ts.map +0 -1
- package/dist/types/entity-changes.d.ts +0 -84
- package/dist/types/entity-changes.d.ts.map +0 -1
- package/dist/types/entity-schema-registry.d.ts +0 -282
- package/dist/types/entity-schema-registry.d.ts.map +0 -1
- package/dist/types/entity.d.ts +0 -7
- package/dist/types/entity.d.ts.map +0 -1
- package/dist/types/id.d.ts +0 -59
- package/dist/types/id.d.ts.map +0 -1
- package/dist/types/mapper.d.ts +0 -4
- package/dist/types/mapper.d.ts.map +0 -1
- package/dist/types/paginated-result.d.ts +0 -62
- package/dist/types/paginated-result.d.ts.map +0 -1
- package/dist/types/value-object.d.ts +0 -49
- package/dist/types/value-object.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":";;;AAAA,gEAAyD;
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { BaseEntity } from "./base-entity.js";
|
|
2
|
+
import { BaseProps, IDomainEvent, IDomainEventBus } from "../types/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Base class for Aggregates that adds domain event management capabilities.
|
|
5
|
+
* In Domain-Driven Design (DDD), only Aggregates (aggregate roots) should emit domain events.
|
|
6
|
+
* Regular Entities and Value Objects should NOT manage domain events.
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class BaseAggregate<T extends BaseProps, TOptionalInput extends keyof T = never> extends BaseEntity<T, TOptionalInput> {
|
|
9
|
+
private domainEvents;
|
|
10
|
+
/**
|
|
11
|
+
* Add a domain event to this aggregate
|
|
12
|
+
*/
|
|
13
|
+
protected addDomainEvent(event: IDomainEvent): void;
|
|
14
|
+
/**
|
|
15
|
+
* Dispatch all events through the event bus
|
|
16
|
+
*/
|
|
17
|
+
dispatchAll(bus: IDomainEventBus): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Get all uncommitted domain events
|
|
20
|
+
*/
|
|
21
|
+
getUncommittedEvents(): IDomainEvent[];
|
|
22
|
+
/**
|
|
23
|
+
* Clear all domain events (call after publishing)
|
|
24
|
+
*/
|
|
25
|
+
clearEvents(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Check if aggregate has uncommitted events
|
|
28
|
+
*/
|
|
29
|
+
hasUncommittedEvents(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Get a domain event by name
|
|
32
|
+
*/
|
|
33
|
+
getEvent(eventName: string): IDomainEvent | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Check if an event has been added to the aggregate
|
|
36
|
+
*/
|
|
37
|
+
hasEvent(eventName: string): boolean;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=base-aggregate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-aggregate.d.ts","sourceRoot":"","sources":["../../../src/core/base-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7E;;;;GAIG;AACH,8BAAsB,aAAa,CACjC,CAAC,SAAS,SAAS,EACnB,cAAc,SAAS,MAAM,CAAC,GAAG,KAAK,CACtC,SAAQ,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC;IACrC,OAAO,CAAC,YAAY,CAAsB;IAE1C;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAGrC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BaseEntity } from "./base-entity.js";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for Aggregates that adds domain event management capabilities.
|
|
4
|
+
* In Domain-Driven Design (DDD), only Aggregates (aggregate roots) should emit domain events.
|
|
5
|
+
* Regular Entities and Value Objects should NOT manage domain events.
|
|
6
|
+
*/
|
|
7
|
+
export class BaseAggregate extends BaseEntity {
|
|
8
|
+
domainEvents = [];
|
|
9
|
+
/**
|
|
10
|
+
* Add a domain event to this aggregate
|
|
11
|
+
*/
|
|
12
|
+
addDomainEvent(event) {
|
|
13
|
+
this.domainEvents.push(event);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Dispatch all events through the event bus
|
|
17
|
+
*/
|
|
18
|
+
async dispatchAll(bus) {
|
|
19
|
+
await bus.publishAll(this.getUncommittedEvents());
|
|
20
|
+
this.clearEvents();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get all uncommitted domain events
|
|
24
|
+
*/
|
|
25
|
+
getUncommittedEvents() {
|
|
26
|
+
return [...this.domainEvents];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Clear all domain events (call after publishing)
|
|
30
|
+
*/
|
|
31
|
+
clearEvents() {
|
|
32
|
+
this.domainEvents = [];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if aggregate has uncommitted events
|
|
36
|
+
*/
|
|
37
|
+
hasUncommittedEvents() {
|
|
38
|
+
return this.domainEvents.length > 0;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get a domain event by name
|
|
42
|
+
*/
|
|
43
|
+
getEvent(eventName) {
|
|
44
|
+
return this.domainEvents.find((event) => event.eventName === eventName);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if an event has been added to the aggregate
|
|
48
|
+
*/
|
|
49
|
+
hasEvent(eventName) {
|
|
50
|
+
return this.domainEvents.some((event) => event.eventName === eventName);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=base-aggregate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-aggregate.js","sourceRoot":"","sources":["../../../src/core/base-aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,OAAgB,aAGpB,SAAQ,UAA6B;IAC7B,YAAY,GAAmB,EAAE,CAAC;IAE1C;;OAEG;IACO,cAAc,CAAC,KAAmB;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,GAAoB;QAC3C,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ValidationError } from "../validation-error.js";
|
|
2
|
-
import { BaseProps, HistoryEntry, DeepJsonResult, EntityHooks, EntityValidation
|
|
2
|
+
import { BaseProps, HistoryEntry, DeepJsonResult, EntityHooks, EntityValidation } from "../types/index.js";
|
|
3
3
|
import { AggregateChanges, Id } from "./index";
|
|
4
|
-
export declare abstract class BaseEntity<T extends BaseProps> {
|
|
4
|
+
export declare abstract class BaseEntity<T extends BaseProps, TOptionalInput extends keyof T = never> {
|
|
5
5
|
private _props;
|
|
6
6
|
private tracker;
|
|
7
7
|
private proxiedProps;
|
|
@@ -9,10 +9,9 @@ export declare abstract class BaseEntity<T extends BaseProps> {
|
|
|
9
9
|
private validationConfig;
|
|
10
10
|
private entityHooks?;
|
|
11
11
|
private entitySchema?;
|
|
12
|
-
private domainEvents;
|
|
13
12
|
protected static validation?: EntityValidation<any>;
|
|
14
13
|
protected static hooks?: EntityHooks<any, any>;
|
|
15
|
-
constructor(props: Omit<T, "id"> & {
|
|
14
|
+
constructor(props: Omit<T, TOptionalInput | "id"> & Partial<Pick<T, TOptionalInput>> & {
|
|
16
15
|
id?: Id;
|
|
17
16
|
});
|
|
18
17
|
private validateProps;
|
|
@@ -53,14 +52,6 @@ export declare abstract class BaseEntity<T extends BaseProps> {
|
|
|
53
52
|
* ```
|
|
54
53
|
*/
|
|
55
54
|
getChanges<TEntityMap = Record<string, any>>(): AggregateChanges<TEntityMap>;
|
|
56
|
-
/**
|
|
57
|
-
* Get a domain event by name
|
|
58
|
-
*/
|
|
59
|
-
getEvent(eventName: string): IDomainEvent | undefined;
|
|
60
|
-
/**
|
|
61
|
-
* Check if an event has been added to the entity
|
|
62
|
-
*/
|
|
63
|
-
hasEvent(eventName: string): boolean;
|
|
64
55
|
/**
|
|
65
56
|
* Returns the change history (for debugging).
|
|
66
57
|
*/
|
|
@@ -75,26 +66,6 @@ export declare abstract class BaseEntity<T extends BaseProps> {
|
|
|
75
66
|
* Call this after successfully persisting to the database.
|
|
76
67
|
*/
|
|
77
68
|
markAsPersisted(): void;
|
|
78
|
-
/**
|
|
79
|
-
* Add a domain event to this entity
|
|
80
|
-
*/
|
|
81
|
-
protected addDomainEvent(event: IDomainEvent): void;
|
|
82
|
-
/**
|
|
83
|
-
* Dispatch all events through the event bus
|
|
84
|
-
*/
|
|
85
|
-
dispatchAll(bus: IDomainEventBus): Promise<void>;
|
|
86
|
-
/**
|
|
87
|
-
* Get all uncommitted domain events
|
|
88
|
-
*/
|
|
89
|
-
getUncommittedEvents(): IDomainEvent[];
|
|
90
|
-
/**
|
|
91
|
-
* Clear all domain events (call after publishing)
|
|
92
|
-
*/
|
|
93
|
-
clearEvents(): void;
|
|
94
|
-
/**
|
|
95
|
-
* Check if entity has uncommitted events
|
|
96
|
-
*/
|
|
97
|
-
hasUncommittedEvents(): boolean;
|
|
98
69
|
toJSON(): DeepJsonResult<T>;
|
|
99
70
|
private deepToJson;
|
|
100
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,gBAAgB,
|
|
1
|
+
{"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAiB,gBAAgB,EAAE,EAAE,EAAe,MAAM,SAAS,CAAC;AAS3E,8BAAsB,UAAU,CAC9B,CAAC,SAAS,SAAS,EACnB,cAAc,SAAS,MAAM,CAAC,GAAG,KAAK;IAEtC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,OAAO,CAAC,YAAY,CAAC,CAAoB;IAEzC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAG7C,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAChC;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE;IAsDf,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA4E7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAkDtB,IAAI,EAAE,IAAI,EAAE,CAEX;IAEM,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO;IAoBnD,IAAW,KAAK,IAAI,CAAC,CAEpB;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC;IAK5E;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;;OAGG;IACH,eAAe,IAAI,IAAI;IAOvB,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC;IAI3B,OAAO,CAAC,UAAU;CAiBnB"}
|
|
@@ -13,7 +13,6 @@ export class BaseEntity {
|
|
|
13
13
|
validationConfig;
|
|
14
14
|
entityHooks;
|
|
15
15
|
entitySchema;
|
|
16
|
-
domainEvents = [];
|
|
17
16
|
static validation;
|
|
18
17
|
static hooks;
|
|
19
18
|
constructor(props) {
|
|
@@ -248,18 +247,6 @@ export class BaseEntity {
|
|
|
248
247
|
getChanges() {
|
|
249
248
|
return this.tracker.getChanges();
|
|
250
249
|
}
|
|
251
|
-
/**
|
|
252
|
-
* Get a domain event by name
|
|
253
|
-
*/
|
|
254
|
-
getEvent(eventName) {
|
|
255
|
-
return this.domainEvents.find((event) => event.eventName === eventName);
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Check if an event has been added to the entity
|
|
259
|
-
*/
|
|
260
|
-
hasEvent(eventName) {
|
|
261
|
-
return this.domainEvents.some((event) => event.eventName === eventName);
|
|
262
|
-
}
|
|
263
250
|
/**
|
|
264
251
|
* Returns the change history (for debugging).
|
|
265
252
|
*/
|
|
@@ -282,37 +269,6 @@ export class BaseEntity {
|
|
|
282
269
|
this.markAsClean();
|
|
283
270
|
this.id.markAsNotNew();
|
|
284
271
|
}
|
|
285
|
-
/**
|
|
286
|
-
* Add a domain event to this entity
|
|
287
|
-
*/
|
|
288
|
-
addDomainEvent(event) {
|
|
289
|
-
this.domainEvents.push(event);
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Dispatch all events through the event bus
|
|
293
|
-
*/
|
|
294
|
-
async dispatchAll(bus) {
|
|
295
|
-
await bus.publishAll(this.getUncommittedEvents());
|
|
296
|
-
this.clearEvents();
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Get all uncommitted domain events
|
|
300
|
-
*/
|
|
301
|
-
getUncommittedEvents() {
|
|
302
|
-
return [...this.domainEvents];
|
|
303
|
-
}
|
|
304
|
-
/**
|
|
305
|
-
* Clear all domain events (call after publishing)
|
|
306
|
-
*/
|
|
307
|
-
clearEvents() {
|
|
308
|
-
this.domainEvents = [];
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Check if entity has uncommitted events
|
|
312
|
-
*/
|
|
313
|
-
hasUncommittedEvents() {
|
|
314
|
-
return this.domainEvents.length > 0;
|
|
315
|
-
}
|
|
316
272
|
toJSON() {
|
|
317
273
|
return this.deepToJson(this._props);
|
|
318
274
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BaseEntity } from "./base-entity.js";
|
|
2
|
+
import { BaseAggregate } from "./base-aggregate.js";
|
|
2
3
|
import { BaseProps } from "../types/index.js";
|
|
3
|
-
export declare class Entity<T extends BaseProps> extends BaseEntity<T> {
|
|
4
|
+
export declare class Entity<T extends BaseProps, TOptionalInput extends keyof T = never> extends BaseEntity<T, TOptionalInput> {
|
|
4
5
|
}
|
|
5
|
-
export declare class Aggregate<T extends BaseProps> extends
|
|
6
|
+
export declare class Aggregate<T extends BaseProps, TOptionalInput extends keyof T = never> extends BaseAggregate<T, TOptionalInput> {
|
|
6
7
|
}
|
|
7
8
|
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,MAAM,
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,MAAM,CACjB,CAAC,SAAS,SAAS,EACnB,cAAc,SAAS,MAAM,CAAC,GAAG,KAAK,CACtC,SAAQ,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC;CAAG;AAE1C,qBAAa,SAAS,CACpB,CAAC,SAAS,SAAS,EACnB,cAAc,SAAS,MAAM,CAAC,GAAG,KAAK,CACtC,SAAQ,aAAa,CAAC,CAAC,EAAE,cAAc,CAAC;CAAG"}
|
package/dist/esm/core/entity.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseEntity } from "./base-entity.js";
|
|
2
|
+
import { BaseAggregate } from "./base-aggregate.js";
|
|
2
3
|
export class Entity extends BaseEntity {
|
|
3
4
|
}
|
|
4
|
-
export class Aggregate extends
|
|
5
|
+
export class Aggregate extends BaseAggregate {
|
|
5
6
|
}
|
|
6
7
|
//# sourceMappingURL=entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,OAAO,MAGX,SAAQ,UAA6B;CAAG;AAE1C,MAAM,OAAO,SAGX,SAAQ,aAAgC;CAAG"}
|
package/dist/esm/core/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC"}
|
package/dist/esm/core/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,MAAM,CAAC;AACrB,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { ValidationError } from "../validation-error.js";
|
|
2
|
-
import { IDomainEvent } from "../index.js";
|
|
3
2
|
import { VOHooks, EntityValidation, Primitive } from "../types/index.js";
|
|
4
3
|
export declare abstract class ValueObject<T extends Primitive> {
|
|
5
4
|
readonly value: T;
|
|
6
5
|
private validationConfig;
|
|
7
6
|
private domainHooks?;
|
|
8
7
|
private domainSchema?;
|
|
9
|
-
private domainEvents;
|
|
10
8
|
protected static validation?: EntityValidation<any>;
|
|
11
9
|
protected static hooks?: VOHooks<any, any>;
|
|
12
10
|
constructor(value: T);
|
|
@@ -24,22 +22,6 @@ export declare abstract class ValueObject<T extends Primitive> {
|
|
|
24
22
|
* Compare this ValueObject with another for equality based on their properties.
|
|
25
23
|
*/
|
|
26
24
|
equals(other: ValueObject<T>): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* Adds a domain event to this value object.
|
|
29
|
-
*/
|
|
30
|
-
protected addDomainEvent(event: IDomainEvent): void;
|
|
31
|
-
/**
|
|
32
|
-
* Returns all uncommitted domain events.
|
|
33
|
-
*/
|
|
34
|
-
getUncommittedEvents(): IDomainEvent[];
|
|
35
|
-
/**
|
|
36
|
-
* Clears all domain events (call after publishing).
|
|
37
|
-
*/
|
|
38
|
-
clearEvents(): void;
|
|
39
|
-
/**
|
|
40
|
-
* Returns true if the value object has uncommitted events.
|
|
41
|
-
*/
|
|
42
|
-
hasUncommittedEvents(): boolean;
|
|
43
25
|
/**
|
|
44
26
|
* Creates a new ValueObject with updated value.
|
|
45
27
|
* ValueObjects are immutable, so this returns a new instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,OAAO,EAGP,gBAAgB,EAChB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAW3B,8BAAsB,WAAW,CAAC,CAAC,SAAS,SAAS;IACnD,SAAgB,KAAK,EAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAA6B;IAErD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAoB;IAEzC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAE/B,KAAK,EAAE,CAAC;IAmCpB,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAMtC;;;OAGG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAIhC"}
|
|
@@ -10,7 +10,6 @@ export class ValueObject {
|
|
|
10
10
|
// @ts-expect-error - This is a private property
|
|
11
11
|
domainHooks;
|
|
12
12
|
domainSchema;
|
|
13
|
-
domainEvents = [];
|
|
14
13
|
static validation;
|
|
15
14
|
static hooks;
|
|
16
15
|
constructor(value) {
|
|
@@ -89,30 +88,6 @@ export class ValueObject {
|
|
|
89
88
|
return false;
|
|
90
89
|
return this.value === other.value;
|
|
91
90
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Adds a domain event to this value object.
|
|
94
|
-
*/
|
|
95
|
-
addDomainEvent(event) {
|
|
96
|
-
this.domainEvents.push(event);
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Returns all uncommitted domain events.
|
|
100
|
-
*/
|
|
101
|
-
getUncommittedEvents() {
|
|
102
|
-
return [...this.domainEvents];
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Clears all domain events (call after publishing).
|
|
106
|
-
*/
|
|
107
|
-
clearEvents() {
|
|
108
|
-
this.domainEvents = [];
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Returns true if the value object has uncommitted events.
|
|
112
|
-
*/
|
|
113
|
-
hasUncommittedEvents() {
|
|
114
|
-
return this.domainEvents.length > 0;
|
|
115
|
-
}
|
|
116
91
|
/**
|
|
117
92
|
* Creates a new ValueObject with updated value.
|
|
118
93
|
* ValueObjects are immutable, so this returns a new instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"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"}
|