@woltz/rich-domain 1.8.0 → 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.
Files changed (185) hide show
  1. package/README.md +106 -47
  2. package/dist/cjs/core/base-aggregate.d.ts +39 -0
  3. package/dist/cjs/core/base-aggregate.d.ts.map +1 -0
  4. package/dist/cjs/core/base-aggregate.js +57 -0
  5. package/dist/cjs/core/base-aggregate.js.map +1 -0
  6. package/dist/cjs/core/base-entity.d.ts +6 -22
  7. package/dist/cjs/core/base-entity.d.ts.map +1 -1
  8. package/dist/cjs/core/base-entity.js +5 -29
  9. package/dist/cjs/core/base-entity.js.map +1 -1
  10. package/dist/cjs/core/entity.d.ts +3 -2
  11. package/dist/cjs/core/entity.d.ts.map +1 -1
  12. package/dist/cjs/core/entity.js +2 -1
  13. package/dist/cjs/core/entity.js.map +1 -1
  14. package/dist/cjs/core/id.d.ts +9 -1
  15. package/dist/cjs/core/id.d.ts.map +1 -1
  16. package/dist/cjs/core/id.js +12 -0
  17. package/dist/cjs/core/id.js.map +1 -1
  18. package/dist/cjs/core/index.d.ts +1 -0
  19. package/dist/cjs/core/index.d.ts.map +1 -1
  20. package/dist/cjs/core/index.js +1 -0
  21. package/dist/cjs/core/index.js.map +1 -1
  22. package/dist/cjs/core/value-object.d.ts +0 -18
  23. package/dist/cjs/core/value-object.d.ts.map +1 -1
  24. package/dist/cjs/core/value-object.js +0 -25
  25. package/dist/cjs/core/value-object.js.map +1 -1
  26. package/dist/esm/core/base-aggregate.d.ts +39 -0
  27. package/dist/esm/core/base-aggregate.d.ts.map +1 -0
  28. package/dist/esm/core/base-aggregate.js +53 -0
  29. package/dist/esm/core/base-aggregate.js.map +1 -0
  30. package/dist/esm/core/base-entity.d.ts +6 -22
  31. package/dist/esm/core/base-entity.d.ts.map +1 -1
  32. package/dist/esm/core/base-entity.js +5 -29
  33. package/dist/esm/core/base-entity.js.map +1 -1
  34. package/dist/esm/core/entity.d.ts +3 -2
  35. package/dist/esm/core/entity.d.ts.map +1 -1
  36. package/dist/esm/core/entity.js +2 -1
  37. package/dist/esm/core/entity.js.map +1 -1
  38. package/dist/esm/core/id.d.ts +9 -1
  39. package/dist/esm/core/id.d.ts.map +1 -1
  40. package/dist/esm/core/id.js +12 -0
  41. package/dist/esm/core/id.js.map +1 -1
  42. package/dist/esm/core/index.d.ts +1 -0
  43. package/dist/esm/core/index.d.ts.map +1 -1
  44. package/dist/esm/core/index.js +1 -0
  45. package/dist/esm/core/index.js.map +1 -1
  46. package/dist/esm/core/value-object.d.ts +0 -18
  47. package/dist/esm/core/value-object.d.ts.map +1 -1
  48. package/dist/esm/core/value-object.js +0 -25
  49. package/dist/esm/core/value-object.js.map +1 -1
  50. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  51. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  52. package/dist/tsconfig.types.tsbuildinfo +1 -1
  53. package/dist/types/core/base-aggregate.d.ts +39 -0
  54. package/dist/types/core/base-aggregate.d.ts.map +1 -0
  55. package/dist/types/core/base-entity.d.ts +6 -22
  56. package/dist/types/core/base-entity.d.ts.map +1 -1
  57. package/dist/types/core/entity.d.ts +3 -2
  58. package/dist/types/core/entity.d.ts.map +1 -1
  59. package/dist/types/core/id.d.ts +9 -1
  60. package/dist/types/core/id.d.ts.map +1 -1
  61. package/dist/types/core/index.d.ts +1 -0
  62. package/dist/types/core/index.d.ts.map +1 -1
  63. package/dist/types/core/value-object.d.ts +0 -18
  64. package/dist/types/core/value-object.d.ts.map +1 -1
  65. package/package.json +1 -1
  66. package/dist/cjs/aggregate-changes.d.ts +0 -206
  67. package/dist/cjs/aggregate-changes.d.ts.map +0 -1
  68. package/dist/cjs/aggregate-changes.js +0 -365
  69. package/dist/cjs/aggregate-changes.js.map +0 -1
  70. package/dist/cjs/base-entity.d.ts +0 -90
  71. package/dist/cjs/base-entity.d.ts.map +0 -1
  72. package/dist/cjs/base-entity.js +0 -331
  73. package/dist/cjs/base-entity.js.map +0 -1
  74. package/dist/cjs/change-tracker.d.ts +0 -96
  75. package/dist/cjs/change-tracker.d.ts.map +0 -1
  76. package/dist/cjs/change-tracker.js +0 -789
  77. package/dist/cjs/change-tracker.js.map +0 -1
  78. package/dist/cjs/crypto.d.ts +0 -3
  79. package/dist/cjs/crypto.d.ts.map +0 -1
  80. package/dist/cjs/crypto.js +0 -32
  81. package/dist/cjs/crypto.js.map +0 -1
  82. package/dist/cjs/domain-event.d.ts +0 -23
  83. package/dist/cjs/domain-event.d.ts.map +0 -1
  84. package/dist/cjs/domain-event.js +0 -36
  85. package/dist/cjs/domain-event.js.map +0 -1
  86. package/dist/cjs/entity-changes.d.ts +0 -84
  87. package/dist/cjs/entity-changes.d.ts.map +0 -1
  88. package/dist/cjs/entity-changes.js +0 -136
  89. package/dist/cjs/entity-changes.js.map +0 -1
  90. package/dist/cjs/entity-schema-registry.d.ts +0 -282
  91. package/dist/cjs/entity-schema-registry.d.ts.map +0 -1
  92. package/dist/cjs/entity-schema-registry.js +0 -372
  93. package/dist/cjs/entity-schema-registry.js.map +0 -1
  94. package/dist/cjs/entity.d.ts +0 -7
  95. package/dist/cjs/entity.d.ts.map +0 -1
  96. package/dist/cjs/entity.js +0 -11
  97. package/dist/cjs/entity.js.map +0 -1
  98. package/dist/cjs/id.d.ts +0 -59
  99. package/dist/cjs/id.d.ts.map +0 -1
  100. package/dist/cjs/id.js +0 -92
  101. package/dist/cjs/id.js.map +0 -1
  102. package/dist/cjs/mapper.d.ts +0 -4
  103. package/dist/cjs/mapper.d.ts.map +0 -1
  104. package/dist/cjs/mapper.js +0 -7
  105. package/dist/cjs/mapper.js.map +0 -1
  106. package/dist/cjs/paginated-result.d.ts +0 -54
  107. package/dist/cjs/paginated-result.d.ts.map +0 -1
  108. package/dist/cjs/paginated-result.js +0 -197
  109. package/dist/cjs/paginated-result.js.map +0 -1
  110. package/dist/cjs/value-object.d.ts +0 -49
  111. package/dist/cjs/value-object.d.ts.map +0 -1
  112. package/dist/cjs/value-object.js +0 -129
  113. package/dist/cjs/value-object.js.map +0 -1
  114. package/dist/esm/aggregate-changes.d.ts +0 -206
  115. package/dist/esm/aggregate-changes.d.ts.map +0 -1
  116. package/dist/esm/aggregate-changes.js +0 -361
  117. package/dist/esm/aggregate-changes.js.map +0 -1
  118. package/dist/esm/base-entity.d.ts +0 -90
  119. package/dist/esm/base-entity.d.ts.map +0 -1
  120. package/dist/esm/base-entity.js +0 -327
  121. package/dist/esm/base-entity.js.map +0 -1
  122. package/dist/esm/change-tracker.d.ts +0 -96
  123. package/dist/esm/change-tracker.d.ts.map +0 -1
  124. package/dist/esm/change-tracker.js +0 -785
  125. package/dist/esm/change-tracker.js.map +0 -1
  126. package/dist/esm/crypto.d.ts +0 -3
  127. package/dist/esm/crypto.d.ts.map +0 -1
  128. package/dist/esm/crypto.js +0 -29
  129. package/dist/esm/crypto.js.map +0 -1
  130. package/dist/esm/domain-event.d.ts +0 -23
  131. package/dist/esm/domain-event.d.ts.map +0 -1
  132. package/dist/esm/domain-event.js +0 -32
  133. package/dist/esm/domain-event.js.map +0 -1
  134. package/dist/esm/entity-changes.d.ts +0 -84
  135. package/dist/esm/entity-changes.d.ts.map +0 -1
  136. package/dist/esm/entity-changes.js +0 -132
  137. package/dist/esm/entity-changes.js.map +0 -1
  138. package/dist/esm/entity-schema-registry.d.ts +0 -282
  139. package/dist/esm/entity-schema-registry.d.ts.map +0 -1
  140. package/dist/esm/entity-schema-registry.js +0 -368
  141. package/dist/esm/entity-schema-registry.js.map +0 -1
  142. package/dist/esm/entity.d.ts +0 -7
  143. package/dist/esm/entity.d.ts.map +0 -1
  144. package/dist/esm/entity.js +0 -6
  145. package/dist/esm/entity.js.map +0 -1
  146. package/dist/esm/id.d.ts +0 -59
  147. package/dist/esm/id.d.ts.map +0 -1
  148. package/dist/esm/id.js +0 -85
  149. package/dist/esm/id.js.map +0 -1
  150. package/dist/esm/mapper.d.ts +0 -4
  151. package/dist/esm/mapper.d.ts.map +0 -1
  152. package/dist/esm/mapper.js +0 -3
  153. package/dist/esm/mapper.js.map +0 -1
  154. package/dist/esm/paginated-result.d.ts +0 -54
  155. package/dist/esm/paginated-result.d.ts.map +0 -1
  156. package/dist/esm/paginated-result.js +0 -193
  157. package/dist/esm/paginated-result.js.map +0 -1
  158. package/dist/esm/value-object.d.ts +0 -49
  159. package/dist/esm/value-object.d.ts.map +0 -1
  160. package/dist/esm/value-object.js +0 -125
  161. package/dist/esm/value-object.js.map +0 -1
  162. package/dist/types/aggregate-changes.d.ts +0 -206
  163. package/dist/types/aggregate-changes.d.ts.map +0 -1
  164. package/dist/types/base-entity.d.ts +0 -90
  165. package/dist/types/base-entity.d.ts.map +0 -1
  166. package/dist/types/change-tracker.d.ts +0 -96
  167. package/dist/types/change-tracker.d.ts.map +0 -1
  168. package/dist/types/crypto.d.ts +0 -3
  169. package/dist/types/crypto.d.ts.map +0 -1
  170. package/dist/types/domain-event.d.ts +0 -23
  171. package/dist/types/domain-event.d.ts.map +0 -1
  172. package/dist/types/entity-changes.d.ts +0 -84
  173. package/dist/types/entity-changes.d.ts.map +0 -1
  174. package/dist/types/entity-schema-registry.d.ts +0 -282
  175. package/dist/types/entity-schema-registry.d.ts.map +0 -1
  176. package/dist/types/entity.d.ts +0 -7
  177. package/dist/types/entity.d.ts.map +0 -1
  178. package/dist/types/id.d.ts +0 -59
  179. package/dist/types/id.d.ts.map +0 -1
  180. package/dist/types/mapper.d.ts +0 -4
  181. package/dist/types/mapper.d.ts.map +0 -1
  182. package/dist/types/paginated-result.d.ts +0 -62
  183. package/dist/types/paginated-result.d.ts.map +0 -1
  184. package/dist/types/value-object.d.ts +0 -49
  185. package/dist/types/value-object.d.ts.map +0 -1
package/README.md CHANGED
@@ -35,15 +35,13 @@ import { Aggregate, Entity, Id } from "@woltz/rich-domain";
35
35
  import { z } from "zod";
36
36
 
37
37
  // Value Object
38
- class Email extends ValueObject<{ value: string }> {
38
+ class Email extends ValueObject<string> {
39
39
  protected static validation = {
40
- schema: z.object({
41
- value: z.string().email("Invalid email format"),
42
- }),
40
+ schema: z.string().email("Invalid email format"),
43
41
  };
44
42
 
45
- get value() {
46
- return this.props.value;
43
+ getDomain(): string {
44
+ return this.value.split("@")[1];
47
45
  }
48
46
  }
49
47
 
@@ -109,7 +107,7 @@ Changes are tracked automatically - no manual tracking needed:
109
107
  // Load existing user
110
108
  const user = new User({
111
109
  id: Id.from("user-123"),
112
- email: new Email({ value: "john@example.com" }),
110
+ email: new Email("john@example.com"),
113
111
  name: "John Doe",
114
112
  posts: [
115
113
  new Post({
@@ -240,30 +238,87 @@ Add validation and side effects at key points:
240
238
  class Product extends Aggregate<ProductProps> {
241
239
  protected static validation = {
242
240
  schema: ProductSchema,
243
- hooks: {
244
- onCreate: (props) => {
245
- console.log(`Product created: ${props.name}`);
246
- },
247
- onBeforeUpdate: (current, updates) => {
248
- // Prevent price changes on inactive products
249
- if (current.status === "inactive" && "price" in updates) {
250
- delete updates.price;
251
- }
252
- },
241
+ };
242
+
243
+ protected static hooks = {
244
+ onBeforeCreate: (props) => {
245
+ // Set default values before validation
246
+ if (!props.createdAt) {
247
+ props.createdAt = new Date();
248
+ }
249
+ },
250
+
251
+ onCreate: (entity) => {
252
+ console.log(`Product created: ${entity.name}`);
253
+ },
254
+
255
+ onBeforeUpdate: (entity, snapshot) => {
256
+ // Prevent price changes on inactive products
257
+ if (snapshot.status === "inactive" && entity.price !== snapshot.price) {
258
+ return false; // Reject the change
259
+ }
260
+ return true;
253
261
  },
254
- rules: (props) => {
255
- if (props.price > 1000 && props.stock === 0) {
256
- throw new ValidationError(
257
- "Product",
258
- "stock",
259
- "Premium products must have stock available"
260
- );
262
+
263
+ rules: (entity) => {
264
+ if (entity.price > 1000 && entity.stock === 0) {
265
+ throw new ValidationError([{
266
+ path: ["stock"],
267
+ message: "Premium products must have stock available"
268
+ }]);
261
269
  }
262
270
  },
263
271
  };
264
272
  }
265
273
  ```
266
274
 
275
+ ### Optional Input Properties
276
+
277
+ Make properties optional at construction but required in the entity:
278
+
279
+ ```typescript
280
+ const userSchema = z.object({
281
+ id: z.custom<Id>(),
282
+ email: z.string().email(),
283
+ password: z.string().min(8), // Required in entity
284
+ createdAt: z.date(), // Required in entity
285
+ });
286
+
287
+ type UserProps = z.infer<typeof userSchema>;
288
+
289
+ // Second generic makes 'password' and 'createdAt' optional at input
290
+ class User extends Aggregate<UserProps, "password" | "createdAt"> {
291
+ protected static validation = { schema: userSchema };
292
+
293
+ protected static hooks = {
294
+ onBeforeCreate: (props) => {
295
+ // Generate values before validation
296
+ if (!props.password) {
297
+ props.password = generateEncryptedPassword();
298
+ }
299
+ if (!props.createdAt) {
300
+ props.createdAt = new Date();
301
+ }
302
+ },
303
+ };
304
+
305
+ get email() {
306
+ return this.props.email;
307
+ }
308
+ }
309
+
310
+ // ✅ Works without password and createdAt
311
+ const user = new User({
312
+ email: "user@example.com",
313
+ });
314
+
315
+ // ✅ Also works with explicit values
316
+ const customUser = new User({
317
+ email: "user@example.com",
318
+ password: "custom-pass-12345678",
319
+ });
320
+ ```
321
+
267
322
  ### Domain Events
268
323
 
269
324
  Communicate across aggregate boundaries:
@@ -308,43 +363,47 @@ order.clearEvents();
308
363
 
309
364
  ### Value Objects
310
365
 
311
- Immutable objects compared by value:
366
+ Immutable wrappers for primitive values with domain behavior:
312
367
 
313
368
  ```typescript
314
- import { ValueObject } from "@woltz/rich-domain";
369
+ import { ValueObject, VOHooks, throwValidationError } from "@woltz/rich-domain";
315
370
 
316
- class Money extends ValueObject<{ amount: number; currency: string }> {
371
+ class Price extends ValueObject<number> {
317
372
  protected static validation = {
318
- schema: z.object({
319
- amount: z.number().positive(),
320
- currency: z.enum(["USD", "EUR", "BRL"]),
321
- }),
373
+ schema: z.number().positive("Price must be positive"),
322
374
  };
323
375
 
324
- add(other: Money): Money {
325
- if (this.props.currency !== other.props.currency) {
326
- throw new DomainError("Cannot add different currencies");
327
- }
328
-
329
- return this.clone({
330
- amount: this.props.amount + other.props.amount
331
- });
376
+ protected static hooks: VOHooks<number, Price> = {
377
+ rules: (price) => {
378
+ if (price.value > 1000000) {
379
+ throwValidationError("value", "Price cannot exceed 1,000,000");
380
+ }
381
+ },
382
+ };
383
+
384
+ addTax(taxRate: number): Price {
385
+ return this.clone(this.value * (1 + taxRate));
332
386
  }
333
387
 
334
- get amount() {
335
- return this.props.amount;
388
+ discount(percentage: number): Price {
389
+ return this.clone(this.value * (1 - percentage / 100));
336
390
  }
337
391
 
338
- get currency() {
339
- return this.props.currency;
392
+ format(currency: string = "USD"): string {
393
+ return new Intl.NumberFormat("en-US", {
394
+ style: "currency",
395
+ currency,
396
+ }).format(this.value);
340
397
  }
341
398
  }
342
399
 
343
- const price1 = new Money({ amount: 100, currency: "USD" });
344
- const price2 = new Money({ amount: 50, currency: "USD" });
345
- const total = price1.add(price2);
400
+ const price = new Price(99.99);
401
+ const withTax = price.addTax(0.08);
402
+ const discounted = price.discount(10);
346
403
 
347
- console.log(total.amount); // 150
404
+ console.log(price.format()); // "$99.99"
405
+ console.log(withTax.format()); // "$107.99"
406
+ console.log(discounted.format()); // "$89.99"
348
407
  ```
349
408
 
350
409
  ## Integration with ORMs
@@ -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,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseAggregate = void 0;
4
+ const base_entity_js_1 = require("./base-entity.js");
5
+ /**
6
+ * Base class for Aggregates that adds domain event management capabilities.
7
+ * In Domain-Driven Design (DDD), only Aggregates (aggregate roots) should emit domain events.
8
+ * Regular Entities and Value Objects should NOT manage domain events.
9
+ */
10
+ class BaseAggregate extends base_entity_js_1.BaseEntity {
11
+ domainEvents = [];
12
+ /**
13
+ * Add a domain event to this aggregate
14
+ */
15
+ addDomainEvent(event) {
16
+ this.domainEvents.push(event);
17
+ }
18
+ /**
19
+ * Dispatch all events through the event bus
20
+ */
21
+ async dispatchAll(bus) {
22
+ await bus.publishAll(this.getUncommittedEvents());
23
+ this.clearEvents();
24
+ }
25
+ /**
26
+ * Get all uncommitted domain events
27
+ */
28
+ getUncommittedEvents() {
29
+ return [...this.domainEvents];
30
+ }
31
+ /**
32
+ * Clear all domain events (call after publishing)
33
+ */
34
+ clearEvents() {
35
+ this.domainEvents = [];
36
+ }
37
+ /**
38
+ * Check if aggregate has uncommitted events
39
+ */
40
+ hasUncommittedEvents() {
41
+ return this.domainEvents.length > 0;
42
+ }
43
+ /**
44
+ * Get a domain event by name
45
+ */
46
+ getEvent(eventName) {
47
+ return this.domainEvents.find((event) => event.eventName === eventName);
48
+ }
49
+ /**
50
+ * Check if an event has been added to the aggregate
51
+ */
52
+ hasEvent(eventName) {
53
+ return this.domainEvents.some((event) => event.eventName === eventName);
54
+ }
55
+ }
56
+ exports.BaseAggregate = BaseAggregate;
57
+ //# 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,qDAA8C;AAG9C;;;;GAIG;AACH,MAAsB,aAGpB,SAAQ,2BAA6B;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;AAvDD,sCAuDC"}
@@ -1,7 +1,7 @@
1
1
  import { ValidationError } from "../validation-error.js";
2
- import { BaseProps, HistoryEntry, DeepJsonResult, EntityHooks, EntityValidation, IDomainEventBus, IDomainEvent } from "../types/index.js";
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;
@@ -63,25 +62,10 @@ export declare abstract class BaseEntity<T extends BaseProps> {
63
62
  */
64
63
  markAsClean(): void;
65
64
  /**
66
- * Add a domain event to this entity
67
- */
68
- protected addDomainEvent(event: IDomainEvent): void;
69
- /**
70
- * Dispatch all events through the event bus
71
- */
72
- dispatchAll(bus: IDomainEventBus): Promise<void>;
73
- /**
74
- * Get all uncommitted domain events
75
- */
76
- getUncommittedEvents(): IDomainEvent[];
77
- /**
78
- * Clear all domain events (call after publishing)
79
- */
80
- clearEvents(): void;
81
- /**
82
- * Check if entity has uncommitted events
65
+ * Clears history, marks entity as "clean" and marks the Id as not new.
66
+ * Call this after successfully persisting to the database.
83
67
  */
84
- hasUncommittedEvents(): boolean;
68
+ markAsPersisted(): void;
85
69
  toJSON(): DeepJsonResult<T>;
86
70
  private deepToJson;
87
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,EAChB,eAAe,EACf,YAAY,EACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAiB,gBAAgB,EAAE,EAAE,EAAe,MAAM,SAAS,CAAC;AAS3E,8BAAsB,UAAU,CAAC,CAAC,SAAS,SAAS;IAClD,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;IACzC,OAAO,CAAC,YAAY,CAAsB;IAE1C,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;gBAEnC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE;IAqD9C,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;IAI5E;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;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,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC;IAI3B,OAAO,CAAC,UAAU;CAiBnB"}
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"}
@@ -16,7 +16,6 @@ class BaseEntity {
16
16
  validationConfig;
17
17
  entityHooks;
18
18
  entitySchema;
19
- domainEvents = [];
20
19
  static validation;
21
20
  static hooks;
22
21
  constructor(props) {
@@ -266,35 +265,12 @@ class BaseEntity {
266
265
  this.takeSnapshot();
267
266
  }
268
267
  /**
269
- * Add a domain event to this entity
270
- */
271
- addDomainEvent(event) {
272
- this.domainEvents.push(event);
273
- }
274
- /**
275
- * Dispatch all events through the event bus
276
- */
277
- async dispatchAll(bus) {
278
- await bus.publishAll(this.getUncommittedEvents());
279
- this.clearEvents();
280
- }
281
- /**
282
- * Get all uncommitted domain events
283
- */
284
- getUncommittedEvents() {
285
- return [...this.domainEvents];
286
- }
287
- /**
288
- * Clear all domain events (call after publishing)
289
- */
290
- clearEvents() {
291
- this.domainEvents = [];
292
- }
293
- /**
294
- * Check if entity has uncommitted events
268
+ * Clears history, marks entity as "clean" and marks the Id as not new.
269
+ * Call this after successfully persisting to the database.
295
270
  */
296
- hasUncommittedEvents() {
297
- return this.domainEvents.length > 0;
271
+ markAsPersisted() {
272
+ this.markAsClean();
273
+ this.id.markAsNotNew();
298
274
  }
299
275
  toJSON() {
300
276
  return this.deepToJson(this._props);
@@ -1 +1 @@
1
- {"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../../../src/core/base-entity.ts"],"names":[],"mappings":"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"}
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 BaseEntity<T> {
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,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;CAAG;AACjE,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;CAAG"}
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"}
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Aggregate = exports.Entity = void 0;
4
4
  const base_entity_js_1 = require("./base-entity.js");
5
+ const base_aggregate_js_1 = require("./base-aggregate.js");
5
6
  class Entity extends base_entity_js_1.BaseEntity {
6
7
  }
7
8
  exports.Entity = Entity;
8
- class Aggregate extends base_entity_js_1.BaseEntity {
9
+ class Aggregate extends base_aggregate_js_1.BaseAggregate {
9
10
  }
10
11
  exports.Aggregate = Aggregate;
11
12
  //# sourceMappingURL=entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAG9C,MAAa,MAA4B,SAAQ,2BAAa;CAAG;AAAjE,wBAAiE;AACjE,MAAa,SAA+B,SAAQ,2BAAa;CAAG;AAApE,8BAAoE"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/core/entity.ts"],"names":[],"mappings":";;;AAAA,qDAA8C;AAC9C,2DAAoD;AAGpD,MAAa,MAGX,SAAQ,2BAA6B;CAAG;AAH1C,wBAG0C;AAE1C,MAAa,SAGX,SAAQ,iCAAgC;CAAG;AAH7C,8BAG6C"}
@@ -1,6 +1,6 @@
1
1
  export declare class Id {
2
2
  private readonly _value;
3
- private readonly _isNew;
3
+ private _isNew;
4
4
  /**
5
5
  * Create a new Id
6
6
  * @param value - Optional existing ID value. If not provided, generates a new UUID.
@@ -44,6 +44,14 @@ export declare class Id {
44
44
  * Create a new Id (convenience static method)
45
45
  */
46
46
  static create(): Id;
47
+ /**
48
+ * Mark the Id as not new
49
+ */
50
+ markAsNotNew(): void;
51
+ /**
52
+ * Mark the Id as new
53
+ */
54
+ markAsNew(): void;
47
55
  /**
48
56
  * Create an Id from an existing value
49
57
  */
@@ -1 +1 @@
1
- {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/core/id.ts"],"names":[],"mappings":"AAEA,qBAAa,EAAE;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC;;;;;;;;;;;;OAYG;gBACS,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;gBAC9B,KAAK,CAAC,EAAE,MAAM;IAa1B;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACI,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO;IAOnC;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,EAAE;IAInB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,GAAG,MAAM;CAUvD"}
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../../src/core/id.ts"],"names":[],"mappings":"AAEA,qBAAa,EAAE;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,MAAM,CAAU;IAExB;;;;;;;;;;;;OAYG;gBACS,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;gBAC9B,KAAK,CAAC,EAAE,MAAM;IAa1B;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACI,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO;IAOnC;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,EAAE;IAInB;;OAEG;IACI,YAAY,IAAI,IAAI;IAI3B;;OAEG;IACI,SAAS,IAAI,IAAI;IAIxB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE;IAI9B;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,GAAG,MAAM;CAUvD"}
@@ -66,6 +66,18 @@ class Id {
66
66
  static create() {
67
67
  return new Id();
68
68
  }
69
+ /**
70
+ * Mark the Id as not new
71
+ */
72
+ markAsNotNew() {
73
+ this._isNew = false;
74
+ }
75
+ /**
76
+ * Mark the Id as new
77
+ */
78
+ markAsNew() {
79
+ this._isNew = true;
80
+ }
69
81
  /**
70
82
  * Create an Id from an existing value
71
83
  */
@@ -1 +1 @@
1
- {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/core/id.ts"],"names":[],"mappings":";;;;;;AAAA,mEAAsC;AAEtC,MAAa,EAAE;IACI,MAAM,CAAS;IACf,MAAM,CAAU;IAiBjC,YAAY,KAAc,EAAE,KAAe;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,+CAA+C;YAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,0DAA0D;YAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,KAAK;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAkB;QACvB,IAAI,KAAK,YAAY,EAAE,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,gCAAgC;QAChC,OAAO,IAAA,mBAAI,GAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,EAAE,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAa;QACvB,OAAO,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAc,EAAE,CAAc;QAC3C,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACd,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACrB,CAAC;CACF;AA3GD,gBA2GC"}
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../../src/core/id.ts"],"names":[],"mappings":";;;;;;AAAA,mEAAsC;AAEtC,MAAa,EAAE;IACI,MAAM,CAAS;IACxB,MAAM,CAAU;IAiBxB,YAAY,KAAc,EAAE,KAAe;QACzC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,+CAA+C;YAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,0DAA0D;YAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACI,KAAK;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAkB;QACvB,IAAI,KAAK,YAAY,EAAE,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,gCAAgC;QAChC,OAAO,IAAA,mBAAI,GAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,EAAE,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACI,YAAY;QACjB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,SAAS;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAa;QACvB,OAAO,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAc,EAAE,CAAc;QAC3C,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACd,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACrB,CAAC;CACF;AAzHD,gBAyHC"}
@@ -1,4 +1,5 @@
1
1
  export * from "./base-entity";
2
+ export * from "./base-aggregate";
2
3
  export * from "./aggregate-changes";
3
4
  export * from "./change-tracker";
4
5
  export * from "./domain-event";
@@ -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"}
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./base-entity"), exports);
18
+ __exportStar(require("./base-aggregate"), exports);
18
19
  __exportStar(require("./aggregate-changes"), exports);
19
20
  __exportStar(require("./change-tracker"), exports);
20
21
  __exportStar(require("./domain-event"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,sDAAoC;AACpC,mDAAiC;AACjC,iDAA+B;AAC/B,mDAAiC;AACjC,2CAAyB;AACzB,uCAAqB;AACrB,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,mDAAiC;AACjC,sDAAoC;AACpC,mDAAiC;AACjC,iDAA+B;AAC/B,mDAAiC;AACjC,2CAAyB;AACzB,uCAAqB;AACrB,iDAA+B"}
@@ -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,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,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;IACzC,OAAO,CAAC,YAAY,CAAsB;IAE1C,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;IAKtC;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B;;;OAGG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAIhC"}
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"}