@cqrs-ddd/core 0.2.1 → 0.4.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.
Files changed (179) hide show
  1. package/README.md +32 -13
  2. package/dist/application/base.command.d.ts.map +1 -1
  3. package/dist/application/base.command.js +5 -9
  4. package/dist/application/base.command.js.map +1 -1
  5. package/dist/application/base.query.d.ts +1 -1
  6. package/dist/application/base.query.d.ts.map +1 -1
  7. package/dist/application/base.query.js +7 -11
  8. package/dist/application/base.query.js.map +1 -1
  9. package/dist/application/command-base.handler.d.ts +18 -8
  10. package/dist/application/command-base.handler.d.ts.map +1 -1
  11. package/dist/application/command-base.handler.js +19 -12
  12. package/dist/application/command-base.handler.js.map +1 -1
  13. package/dist/application/index.d.ts +10 -10
  14. package/dist/application/index.d.ts.map +1 -1
  15. package/dist/application/index.js +10 -26
  16. package/dist/application/index.js.map +1 -1
  17. package/dist/application/ports/cache.port.js +1 -4
  18. package/dist/application/ports/cache.port.js.map +1 -1
  19. package/dist/application/ports/command-repository.port.js +1 -2
  20. package/dist/application/ports/command-repository.port.js.map +1 -1
  21. package/dist/application/ports/domain-event-publisher.port.d.ts +4 -2
  22. package/dist/application/ports/domain-event-publisher.port.d.ts.map +1 -1
  23. package/dist/application/ports/domain-event-publisher.port.js +1 -2
  24. package/dist/application/ports/domain-event-publisher.port.js.map +1 -1
  25. package/dist/application/ports/query-repository.port.d.ts +1 -1
  26. package/dist/application/ports/query-repository.port.d.ts.map +1 -1
  27. package/dist/application/ports/query-repository.port.js +1 -2
  28. package/dist/application/ports/query-repository.port.js.map +1 -1
  29. package/dist/application/ports/write-side-aggregate-repository.port.d.ts +1 -1
  30. package/dist/application/ports/write-side-aggregate-repository.port.d.ts.map +1 -1
  31. package/dist/application/ports/write-side-aggregate-repository.port.js +1 -2
  32. package/dist/application/ports/write-side-aggregate-repository.port.js.map +1 -1
  33. package/dist/application/query.options.js +1 -2
  34. package/dist/application/query.options.js.map +1 -1
  35. package/dist/application/request-fields.helper.js +2 -6
  36. package/dist/application/request-fields.helper.js.map +1 -1
  37. package/dist/application/tenant-resolver.js +5 -10
  38. package/dist/application/tenant-resolver.js.map +1 -1
  39. package/dist/domain/decorators/apply-mutation.decorator.d.ts +1 -1
  40. package/dist/domain/decorators/apply-mutation.decorator.d.ts.map +1 -1
  41. package/dist/domain/decorators/apply-mutation.decorator.js +1 -4
  42. package/dist/domain/decorators/apply-mutation.decorator.js.map +1 -1
  43. package/dist/domain/decorators/mutable.decorator.js +2 -6
  44. package/dist/domain/decorators/mutable.decorator.js.map +1 -1
  45. package/dist/domain/events/domain.event.d.ts +1 -1
  46. package/dist/domain/events/domain.event.d.ts.map +1 -1
  47. package/dist/domain/events/domain.event.js +3 -7
  48. package/dist/domain/events/domain.event.js.map +1 -1
  49. package/dist/domain/events/event.interface.js +1 -2
  50. package/dist/domain/events/event.interface.js.map +1 -1
  51. package/dist/domain/events/root-domain.event.d.ts +3 -3
  52. package/dist/domain/events/root-domain.event.d.ts.map +1 -1
  53. package/dist/domain/events/root-domain.event.js +3 -8
  54. package/dist/domain/events/root-domain.event.js.map +1 -1
  55. package/dist/domain/exceptions/concurrency-conflict.error.d.ts +1 -1
  56. package/dist/domain/exceptions/concurrency-conflict.error.d.ts.map +1 -1
  57. package/dist/domain/exceptions/concurrency-conflict.error.js +2 -6
  58. package/dist/domain/exceptions/concurrency-conflict.error.js.map +1 -1
  59. package/dist/domain/exceptions/domain.exception.d.ts.map +1 -1
  60. package/dist/domain/exceptions/domain.exception.js +1 -5
  61. package/dist/domain/exceptions/domain.exception.js.map +1 -1
  62. package/dist/domain/exceptions/entity-not-found.exception.d.ts +1 -1
  63. package/dist/domain/exceptions/entity-not-found.exception.d.ts.map +1 -1
  64. package/dist/domain/exceptions/entity-not-found.exception.js +2 -6
  65. package/dist/domain/exceptions/entity-not-found.exception.js.map +1 -1
  66. package/dist/domain/exceptions/invalid-value.exception.d.ts +2 -2
  67. package/dist/domain/exceptions/invalid-value.exception.d.ts.map +1 -1
  68. package/dist/domain/exceptions/invalid-value.exception.js +2 -6
  69. package/dist/domain/exceptions/invalid-value.exception.js.map +1 -1
  70. package/dist/domain/exceptions/missing-tenant-context.exception.d.ts +1 -1
  71. package/dist/domain/exceptions/missing-tenant-context.exception.d.ts.map +1 -1
  72. package/dist/domain/exceptions/missing-tenant-context.exception.js +2 -6
  73. package/dist/domain/exceptions/missing-tenant-context.exception.js.map +1 -1
  74. package/dist/domain/exceptions/transient-operation.error.d.ts.map +1 -1
  75. package/dist/domain/exceptions/transient-operation.error.js +2 -7
  76. package/dist/domain/exceptions/transient-operation.error.js.map +1 -1
  77. package/dist/domain/exceptions/unknown-mutable-field.error.d.ts.map +1 -1
  78. package/dist/domain/exceptions/unknown-mutable-field.error.js +1 -5
  79. package/dist/domain/exceptions/unknown-mutable-field.error.js.map +1 -1
  80. package/dist/domain/index.d.ts +19 -18
  81. package/dist/domain/index.d.ts.map +1 -1
  82. package/dist/domain/index.js +19 -34
  83. package/dist/domain/index.js.map +1 -1
  84. package/dist/domain/interfaces/aggregate-root.interface.d.ts +41 -0
  85. package/dist/domain/interfaces/aggregate-root.interface.d.ts.map +1 -0
  86. package/dist/domain/interfaces/aggregate-root.interface.js +3 -0
  87. package/dist/domain/interfaces/aggregate-root.interface.js.map +1 -0
  88. package/dist/domain/interfaces/root-entity-snapshot.interface.js +1 -2
  89. package/dist/domain/interfaces/root-entity-snapshot.interface.js.map +1 -1
  90. package/dist/domain/models/aggregate-root.d.ts +34 -22
  91. package/dist/domain/models/aggregate-root.d.ts.map +1 -1
  92. package/dist/domain/models/aggregate-root.js +38 -12
  93. package/dist/domain/models/aggregate-root.js.map +1 -1
  94. package/dist/domain/models/root.entity.d.ts +3 -3
  95. package/dist/domain/models/root.entity.d.ts.map +1 -1
  96. package/dist/domain/models/root.entity.js +9 -13
  97. package/dist/domain/models/root.entity.js.map +1 -1
  98. package/dist/domain/rules/number.rule.d.ts +1 -1
  99. package/dist/domain/rules/number.rule.d.ts.map +1 -1
  100. package/dist/domain/rules/number.rule.js +4 -7
  101. package/dist/domain/rules/number.rule.js.map +1 -1
  102. package/dist/domain/rules/rule-support.d.ts +1 -1
  103. package/dist/domain/rules/rule-support.d.ts.map +1 -1
  104. package/dist/domain/rules/rule-support.js +3 -7
  105. package/dist/domain/rules/rule-support.js.map +1 -1
  106. package/dist/domain/rules/text.rule.d.ts +1 -1
  107. package/dist/domain/rules/text.rule.d.ts.map +1 -1
  108. package/dist/domain/rules/text.rule.js +4 -7
  109. package/dist/domain/rules/text.rule.js.map +1 -1
  110. package/dist/domain/rules/value-violation.js +1 -2
  111. package/dist/domain/rules/value-violation.js.map +1 -1
  112. package/dist/http/domain-error-http-status.d.ts +1 -1
  113. package/dist/http/domain-error-http-status.d.ts.map +1 -1
  114. package/dist/http/domain-error-http-status.js +9 -12
  115. package/dist/http/domain-error-http-status.js.map +1 -1
  116. package/dist/http/index.d.ts +1 -1
  117. package/dist/http/index.d.ts.map +1 -1
  118. package/dist/http/index.js +1 -17
  119. package/dist/http/index.js.map +1 -1
  120. package/dist/index.d.ts +5 -5
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +5 -21
  123. package/dist/index.js.map +1 -1
  124. package/dist/persistence/cache/cache-logger.js +2 -6
  125. package/dist/persistence/cache/cache-logger.js.map +1 -1
  126. package/dist/persistence/cache/memory.cache.d.ts +1 -1
  127. package/dist/persistence/cache/memory.cache.d.ts.map +1 -1
  128. package/dist/persistence/cache/memory.cache.js +4 -8
  129. package/dist/persistence/cache/memory.cache.js.map +1 -1
  130. package/dist/persistence/command-repository.abstract.d.ts +2 -2
  131. package/dist/persistence/command-repository.abstract.d.ts.map +1 -1
  132. package/dist/persistence/command-repository.abstract.js +1 -5
  133. package/dist/persistence/command-repository.abstract.js.map +1 -1
  134. package/dist/persistence/decorators/acknowledge-persisted.decorator.d.ts.map +1 -1
  135. package/dist/persistence/decorators/acknowledge-persisted.decorator.js +1 -4
  136. package/dist/persistence/decorators/acknowledge-persisted.decorator.js.map +1 -1
  137. package/dist/persistence/decorators/cache.decorator.d.ts +1 -1
  138. package/dist/persistence/decorators/cache.decorator.d.ts.map +1 -1
  139. package/dist/persistence/decorators/cache.decorator.js +22 -26
  140. package/dist/persistence/decorators/cache.decorator.js.map +1 -1
  141. package/dist/persistence/decorators/from-cache.decorator.d.ts +3 -3
  142. package/dist/persistence/decorators/from-cache.decorator.d.ts.map +1 -1
  143. package/dist/persistence/decorators/from-cache.decorator.js +16 -20
  144. package/dist/persistence/decorators/from-cache.decorator.js.map +1 -1
  145. package/dist/persistence/decorators/map-persistence-errors.decorator.d.ts +1 -1
  146. package/dist/persistence/decorators/map-persistence-errors.decorator.d.ts.map +1 -1
  147. package/dist/persistence/decorators/map-persistence-errors.decorator.js +3 -6
  148. package/dist/persistence/decorators/map-persistence-errors.decorator.js.map +1 -1
  149. package/dist/persistence/decorators/persisted-write.decorator.d.ts +4 -4
  150. package/dist/persistence/decorators/persisted-write.decorator.d.ts.map +1 -1
  151. package/dist/persistence/decorators/persisted-write.decorator.js +7 -10
  152. package/dist/persistence/decorators/persisted-write.decorator.js.map +1 -1
  153. package/dist/persistence/helpers/cache-barrier.helper.js +4 -8
  154. package/dist/persistence/helpers/cache-barrier.helper.js.map +1 -1
  155. package/dist/persistence/helpers/cache-key.helper.d.ts +1 -1
  156. package/dist/persistence/helpers/cache-key.helper.d.ts.map +1 -1
  157. package/dist/persistence/helpers/cache-key.helper.js +11 -15
  158. package/dist/persistence/helpers/cache-key.helper.js.map +1 -1
  159. package/dist/persistence/helpers/cache-owner.helper.d.ts +1 -1
  160. package/dist/persistence/helpers/cache-owner.helper.d.ts.map +1 -1
  161. package/dist/persistence/helpers/cache-owner.helper.js +4 -7
  162. package/dist/persistence/helpers/cache-owner.helper.js.map +1 -1
  163. package/dist/persistence/helpers/cache-snapshot.helper.js +1 -4
  164. package/dist/persistence/helpers/cache-snapshot.helper.js.map +1 -1
  165. package/dist/persistence/helpers/cache-version.helper.js +5 -8
  166. package/dist/persistence/helpers/cache-version.helper.js.map +1 -1
  167. package/dist/persistence/index.d.ts +14 -14
  168. package/dist/persistence/index.d.ts.map +1 -1
  169. package/dist/persistence/index.js +14 -30
  170. package/dist/persistence/index.js.map +1 -1
  171. package/dist/persistence/persistence-dialect.js +2 -6
  172. package/dist/persistence/persistence-dialect.js.map +1 -1
  173. package/dist/persistence/query-repository.abstract.d.ts +3 -3
  174. package/dist/persistence/query-repository.abstract.d.ts.map +1 -1
  175. package/dist/persistence/query-repository.abstract.js +1 -5
  176. package/dist/persistence/query-repository.abstract.js.map +1 -1
  177. package/dist/types/Method.type.js +1 -2
  178. package/dist/types/Method.type.js.map +1 -1
  179. package/package.json +10 -8
@@ -5,22 +5,23 @@
5
5
  * file that only needs `DomainException` does not pull the persistence layer in
6
6
  * behind it.
7
7
  */
8
- export * from './decorators/apply-mutation.decorator';
9
- export * from './decorators/mutable.decorator';
10
- export * from './events/domain.event';
11
- export * from './events/event.interface';
12
- export * from './events/root-domain.event';
13
- export * from './exceptions/concurrency-conflict.error';
14
- export * from './exceptions/domain.exception';
15
- export * from './exceptions/entity-not-found.exception';
16
- export * from './exceptions/invalid-value.exception';
17
- export * from './exceptions/missing-tenant-context.exception';
18
- export * from './exceptions/transient-operation.error';
19
- export * from './exceptions/unknown-mutable-field.error';
20
- export * from './interfaces/root-entity-snapshot.interface';
21
- export * from './models/aggregate-root';
22
- export * from './models/root.entity';
23
- export * from './rules/number.rule';
24
- export * from './rules/text.rule';
25
- export * from './rules/value-violation';
8
+ export * from './decorators/apply-mutation.decorator.js';
9
+ export * from './decorators/mutable.decorator.js';
10
+ export * from './events/domain.event.js';
11
+ export * from './events/event.interface.js';
12
+ export * from './events/root-domain.event.js';
13
+ export * from './exceptions/concurrency-conflict.error.js';
14
+ export * from './exceptions/domain.exception.js';
15
+ export * from './exceptions/entity-not-found.exception.js';
16
+ export * from './exceptions/invalid-value.exception.js';
17
+ export * from './exceptions/missing-tenant-context.exception.js';
18
+ export * from './exceptions/transient-operation.error.js';
19
+ export * from './exceptions/unknown-mutable-field.error.js';
20
+ export * from './interfaces/aggregate-root.interface.js';
21
+ export * from './interfaces/root-entity-snapshot.interface.js';
22
+ export * from './models/aggregate-root.js';
23
+ export * from './models/root.entity.js';
24
+ export * from './rules/number.rule.js';
25
+ export * from './rules/text.rule.js';
26
+ export * from './rules/value-violation.js';
26
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,kDAAkD,CAAC;AACjE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC"}
@@ -1,20 +1,4 @@
1
- "use strict";
2
1
  /* Copyright (C) 2026-present Aristotelis — see repository license. */
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
2
  /**
19
3
  * Domain primitives. Free of ORM and persistence dependencies.
20
4
  *
@@ -22,22 +6,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
22
6
  * file that only needs `DomainException` does not pull the persistence layer in
23
7
  * behind it.
24
8
  */
25
- __exportStar(require("./decorators/apply-mutation.decorator"), exports);
26
- __exportStar(require("./decorators/mutable.decorator"), exports);
27
- __exportStar(require("./events/domain.event"), exports);
28
- __exportStar(require("./events/event.interface"), exports);
29
- __exportStar(require("./events/root-domain.event"), exports);
30
- __exportStar(require("./exceptions/concurrency-conflict.error"), exports);
31
- __exportStar(require("./exceptions/domain.exception"), exports);
32
- __exportStar(require("./exceptions/entity-not-found.exception"), exports);
33
- __exportStar(require("./exceptions/invalid-value.exception"), exports);
34
- __exportStar(require("./exceptions/missing-tenant-context.exception"), exports);
35
- __exportStar(require("./exceptions/transient-operation.error"), exports);
36
- __exportStar(require("./exceptions/unknown-mutable-field.error"), exports);
37
- __exportStar(require("./interfaces/root-entity-snapshot.interface"), exports);
38
- __exportStar(require("./models/aggregate-root"), exports);
39
- __exportStar(require("./models/root.entity"), exports);
40
- __exportStar(require("./rules/number.rule"), exports);
41
- __exportStar(require("./rules/text.rule"), exports);
42
- __exportStar(require("./rules/value-violation"), exports);
9
+ export * from './decorators/apply-mutation.decorator.js';
10
+ export * from './decorators/mutable.decorator.js';
11
+ export * from './events/domain.event.js';
12
+ export * from './events/event.interface.js';
13
+ export * from './events/root-domain.event.js';
14
+ export * from './exceptions/concurrency-conflict.error.js';
15
+ export * from './exceptions/domain.exception.js';
16
+ export * from './exceptions/entity-not-found.exception.js';
17
+ export * from './exceptions/invalid-value.exception.js';
18
+ export * from './exceptions/missing-tenant-context.exception.js';
19
+ export * from './exceptions/transient-operation.error.js';
20
+ export * from './exceptions/unknown-mutable-field.error.js';
21
+ export * from './interfaces/aggregate-root.interface.js';
22
+ export * from './interfaces/root-entity-snapshot.interface.js';
23
+ export * from './models/aggregate-root.js';
24
+ export * from './models/root.entity.js';
25
+ export * from './rules/number.rule.js';
26
+ export * from './rules/text.rule.js';
27
+ export * from './rules/value-violation.js';
43
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;;;;;;;;;;;;;AAEtE;;;;;;GAMG;AAEH,wEAAsD;AACtD,iEAA+C;AAC/C,wDAAsC;AACtC,2DAAyC;AACzC,6DAA2C;AAC3C,0EAAwD;AACxD,gEAA8C;AAC9C,0EAAwD;AACxD,uEAAqD;AACrD,gFAA8D;AAC9D,yEAAuD;AACvD,2EAAyD;AACzD,8EAA4D;AAC5D,0DAAwC;AACxC,uDAAqC;AACrC,sDAAoC;AACpC,oDAAkC;AAClC,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE;;;;;;GAMG;AAEH,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4CAA4C,CAAC;AAC3D,cAAc,kCAAkC,CAAC;AACjD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,kDAAkD,CAAC;AACjE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { IEvent } from '../events/event.interface.js';
2
+ /**
3
+ * Options for applying an event to an aggregate root.
4
+ */
5
+ export interface ApplyEventOptions {
6
+ /**
7
+ * Whether the event originates from historical rehydration.
8
+ * If true, the event will not be buffered into uncommitted events.
9
+ */
10
+ readonly fromHistory?: boolean;
11
+ /**
12
+ * Whether to skip calling the corresponding `on<EventName>` handler.
13
+ */
14
+ readonly skipHandler?: boolean;
15
+ }
16
+ /**
17
+ * The event-buffering contract of an aggregate root, matching NestJS CQRS 12's
18
+ * `IAggregateRoot`, so an aggregate built on either class satisfies it.
19
+ *
20
+ * A dispatcher context is any value the publisher understands, such as
21
+ * `{ transaction }`; `undefined` lets the publisher choose its default.
22
+ */
23
+ export interface IAggregateRoot<EventBase extends IEvent = IEvent> {
24
+ /** When true, `apply()` publishes each event at once instead of buffering it. */
25
+ autoCommit: boolean;
26
+ /** Returns what the connected publisher returns, or `undefined` when none is. */
27
+ publish<T extends EventBase = EventBase>(event: T, dispatcherContext?: unknown): unknown;
28
+ /** Returns what the connected publisher returns, or `undefined` when none is. */
29
+ publishAll<T extends EventBase = EventBase>(events: T[], dispatcherContext?: unknown): unknown;
30
+ /**
31
+ * Hands the buffered events to `publishAll()` and clears the buffer once it
32
+ * returns, before an asynchronous publisher settles; returns its result.
33
+ */
34
+ commit(dispatcherContext?: unknown): unknown;
35
+ uncommit(): void;
36
+ getUncommittedEvents(): EventBase[];
37
+ loadFromHistory(history: EventBase[]): void;
38
+ apply<T extends EventBase = EventBase>(event: T, isFromHistory?: boolean): void;
39
+ apply<T extends EventBase = EventBase>(event: T, options?: ApplyEventOptions): void;
40
+ }
41
+ //# sourceMappingURL=aggregate-root.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-root.interface.d.ts","sourceRoot":"","sources":["../../../domain/interfaces/aggregate-root.interface.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IAC/D,iFAAiF;IACjF,UAAU,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACrC,KAAK,EAAE,CAAC,EACR,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC;IACX,iFAAiF;IACjF,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,EAAE,CAAC,EAAE,EACX,iBAAiB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC;IACX;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7C,QAAQ,IAAI,IAAI,CAAC;IACjB,oBAAoB,IAAI,SAAS,EAAE,CAAC;IACpC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACnC,KAAK,EAAE,CAAC,EACR,aAAa,CAAC,EAAE,OAAO,GACtB,IAAI,CAAC;IACR,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACnC,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,iBAAiB,GAC1B,IAAI,CAAC;CACT"}
@@ -0,0 +1,3 @@
1
+ /* Copyright (C) 2026-present Aristotelis — see repository license. */
2
+ export {};
3
+ //# sourceMappingURL=aggregate-root.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate-root.interface.js","sourceRoot":"","sources":["../../../domain/interfaces/aggregate-root.interface.ts"],"names":[],"mappings":"AAAA,sEAAsE"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /* Copyright (C) 2026-present Aristotelis — see repository license. */
3
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ export {};
4
3
  //# sourceMappingURL=root-entity-snapshot.interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root-entity-snapshot.interface.js","sourceRoot":"","sources":["../../../domain/interfaces/root-entity-snapshot.interface.ts"],"names":[],"mappings":";AAAA,sEAAsE"}
1
+ {"version":3,"file":"root-entity-snapshot.interface.js","sourceRoot":"","sources":["../../../domain/interfaces/root-entity-snapshot.interface.ts"],"names":[],"mappings":"AAAA,sEAAsE"}
@@ -1,20 +1,7 @@
1
- import { IEvent } from '../events/event.interface';
1
+ import { IEvent } from '../events/event.interface.js';
2
+ import type { ApplyEventOptions, IAggregateRoot } from '../interfaces/aggregate-root.interface.js';
2
3
  declare const INTERNAL_EVENTS: unique symbol;
3
4
  declare const IS_AUTO_COMMIT_ENABLED: unique symbol;
4
- /**
5
- * Options for applying an event to an aggregate root.
6
- */
7
- export interface ApplyEventOptions {
8
- /**
9
- * Whether the event originates from historical rehydration.
10
- * If true, the event will not be buffered into uncommitted events.
11
- */
12
- readonly fromHistory?: boolean;
13
- /**
14
- * Whether to skip calling the corresponding `on<EventName>` handler.
15
- */
16
- readonly skipHandler?: boolean;
17
- }
18
5
  /**
19
6
  * Abstract base class representing a Domain-Driven Design (DDD) aggregate root.
20
7
  *
@@ -27,7 +14,7 @@ export interface ApplyEventOptions {
27
14
  *
28
15
  * @template EventBase The base event type, defaults to {@link IEvent}.
29
16
  */
30
- export declare abstract class AggregateRoot<EventBase extends IEvent = IEvent> {
17
+ export declare abstract class AggregateRoot<EventBase extends IEvent = IEvent> implements IAggregateRoot<EventBase> {
31
18
  private [IS_AUTO_COMMIT_ENABLED];
32
19
  private readonly [INTERNAL_EVENTS];
33
20
  /**
@@ -39,17 +26,42 @@ export declare abstract class AggregateRoot<EventBase extends IEvent = IEvent> {
39
26
  */
40
27
  get autoCommit(): boolean;
41
28
  /**
42
- * Called by apply() for each event while autoCommit is enabled; a no-op unless overridden.
29
+ * Called by apply() for each event while autoCommit is enabled; a no-op that
30
+ * returns `undefined` unless overridden or connected to a publisher (for
31
+ * example NestJS's `EventPublisher.mergeObjectContext`).
32
+ *
33
+ * @param _event - The event to publish.
34
+ * @param _dispatcherContext - Passed through to the publisher, such as `{ transaction }`.
35
+ * @returns What the publisher returns.
43
36
  */
44
- publish<T extends EventBase = EventBase>(_event: T): void;
37
+ publish<T extends EventBase = EventBase>(_event: T, _dispatcherContext?: unknown): unknown;
45
38
  /**
46
- * Called by commit() with a copy of the buffered events; a no-op unless overridden.
39
+ * Called by commit() with a copy of the buffered events; a no-op that returns
40
+ * `undefined` unless overridden or connected to a publisher.
41
+ *
42
+ * @param _events - The events to publish.
43
+ * @param _dispatcherContext - Passed through to the publisher, such as `{ transaction }`.
44
+ * @returns What the publisher returns.
47
45
  */
48
- publishAll<T extends EventBase = EventBase>(_events: T[]): void;
46
+ publishAll<T extends EventBase = EventBase>(_events: T[], _dispatcherContext?: unknown): unknown;
49
47
  /**
50
- * Commits all uncommitted events by publishing them via {@link publishAll} and clearing the buffer.
48
+ * Hands a copy of the buffered events to {@link publishAll} with the dispatcher
49
+ * context, then clears the buffer. The buffer is cleared once `publishAll()`
50
+ * returns, before an asynchronous publisher settles, so a caller that does not
51
+ * await cannot publish the same events twice; if `publishAll()` throws, the
52
+ * events stay buffered.
53
+ *
54
+ * @param dispatcherContext - Passed to {@link publishAll}, such as `{ transaction }`.
55
+ * @returns What {@link publishAll} returns: await it to wait for, and catch the
56
+ * errors of, an asynchronous publisher.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * const order = publisher.mergeObjectContext(Order.place(id));
61
+ * await order.commit({ transaction });
62
+ * ```
51
63
  */
52
- commit(): void;
64
+ commit(dispatcherContext?: unknown): unknown;
53
65
  /**
54
66
  * Clears all uncommitted events without publishing.
55
67
  */
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-root.d.ts","sourceRoot":"","sources":["../../../domain/models/aggregate-root.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,QAAA,MAAM,eAAe,eAA4B,CAAC;AAClD,QAAA,MAAM,sBAAsB,eAAmC,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,8BAAsB,aAAa,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM;IACnE,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAmB;IAErD;;OAEG;IACH,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAE5B;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAEzD;;OAEG;IACH,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,IAAI;IAE/D;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,oBAAoB,IAAI,SAAS,EAAE;IAInC;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI;IAM3C;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACnC,KAAK,EAAE,CAAC,EACR,sBAAsB,GAAE,OAAO,GAAG,iBAAsB,GACvD,IAAI;IA2BP;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACvD,KAAK,EAAE,CAAC,GACP,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS;IAQnC;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAI/C"}
1
+ {"version":3,"file":"aggregate-root.d.ts","sourceRoot":"","sources":["../../../domain/models/aggregate-root.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,2CAA2C,CAAC;AAEnD,QAAA,MAAM,eAAe,eAA4B,CAAC;AAClD,QAAA,MAAM,sBAAsB,eAAmC,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,8BAAsB,aAAa,CAAC,SAAS,SAAS,MAAM,GAAG,MAAM,CACnE,YAAW,cAAc,CAAC,SAAS,CAAC;IAEpC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAmB;IAErD;;OAEG;IACH,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAE5B;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACrC,MAAM,EAAE,CAAC,EACT,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAET;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACxC,OAAO,EAAE,CAAC,EAAE,EACZ,kBAAkB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAET;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAO3C;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CAEf;IAED;;OAEG;IACH,oBAAoB,IAAI,SAAS,EAAE,CAElC;IAED;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAI1C;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACnC,KAAK,EAAE,CAAC,EACR,sBAAsB,GAAE,OAAO,GAAG,iBAAsB,GACvD,IAAI,CAyBN;IAED;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACvD,KAAK,EAAE,CAAC,GACP,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAMlC;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAG7C;CACF"}
@@ -1,10 +1,7 @@
1
- "use strict";
2
1
  /* Copyright (C) 2026-present Aristotelis — see repository license.
3
2
  * Derived from and compatible with NestJS CQRS AggregateRoot (MIT License).
4
3
  * Copyright (c) 2017-2026 Kamil Mysliwiec (https://kamilmysliwiec.com)
5
4
  */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.AggregateRoot = void 0;
8
5
  const INTERNAL_EVENTS = Symbol('INTERNAL_EVENTS');
9
6
  const IS_AUTO_COMMIT_ENABLED = Symbol('IS_AUTO_COMMIT_ENABLED');
10
7
  /**
@@ -19,7 +16,7 @@ const IS_AUTO_COMMIT_ENABLED = Symbol('IS_AUTO_COMMIT_ENABLED');
19
16
  *
20
17
  * @template EventBase The base event type, defaults to {@link IEvent}.
21
18
  */
22
- class AggregateRoot {
19
+ export class AggregateRoot {
23
20
  [IS_AUTO_COMMIT_ENABLED] = false;
24
21
  [INTERNAL_EVENTS] = [];
25
22
  /**
@@ -35,19 +32,49 @@ class AggregateRoot {
35
32
  return this[IS_AUTO_COMMIT_ENABLED];
36
33
  }
37
34
  /**
38
- * Called by apply() for each event while autoCommit is enabled; a no-op unless overridden.
35
+ * Called by apply() for each event while autoCommit is enabled; a no-op that
36
+ * returns `undefined` unless overridden or connected to a publisher (for
37
+ * example NestJS's `EventPublisher.mergeObjectContext`).
38
+ *
39
+ * @param _event - The event to publish.
40
+ * @param _dispatcherContext - Passed through to the publisher, such as `{ transaction }`.
41
+ * @returns What the publisher returns.
39
42
  */
40
- publish(_event) { }
43
+ publish(_event, _dispatcherContext) {
44
+ return undefined;
45
+ }
41
46
  /**
42
- * Called by commit() with a copy of the buffered events; a no-op unless overridden.
47
+ * Called by commit() with a copy of the buffered events; a no-op that returns
48
+ * `undefined` unless overridden or connected to a publisher.
49
+ *
50
+ * @param _events - The events to publish.
51
+ * @param _dispatcherContext - Passed through to the publisher, such as `{ transaction }`.
52
+ * @returns What the publisher returns.
43
53
  */
44
- publishAll(_events) { }
54
+ publishAll(_events, _dispatcherContext) {
55
+ return undefined;
56
+ }
45
57
  /**
46
- * Commits all uncommitted events by publishing them via {@link publishAll} and clearing the buffer.
58
+ * Hands a copy of the buffered events to {@link publishAll} with the dispatcher
59
+ * context, then clears the buffer. The buffer is cleared once `publishAll()`
60
+ * returns, before an asynchronous publisher settles, so a caller that does not
61
+ * await cannot publish the same events twice; if `publishAll()` throws, the
62
+ * events stay buffered.
63
+ *
64
+ * @param dispatcherContext - Passed to {@link publishAll}, such as `{ transaction }`.
65
+ * @returns What {@link publishAll} returns: await it to wait for, and catch the
66
+ * errors of, an asynchronous publisher.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * const order = publisher.mergeObjectContext(Order.place(id));
71
+ * await order.commit({ transaction });
72
+ * ```
47
73
  */
48
- commit() {
49
- this.publishAll([...this[INTERNAL_EVENTS]]);
74
+ commit(dispatcherContext) {
75
+ const published = this.publishAll([...this[INTERNAL_EVENTS]], dispatcherContext);
50
76
  this[INTERNAL_EVENTS].length = 0;
77
+ return published;
51
78
  }
52
79
  /**
53
80
  * Clears all uncommitted events without publishing.
@@ -118,5 +145,4 @@ class AggregateRoot {
118
145
  return proto?.constructor?.name ?? 'Event';
119
146
  }
120
147
  }
121
- exports.AggregateRoot = AggregateRoot;
122
148
  //# sourceMappingURL=aggregate-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-root.js","sourceRoot":"","sources":["../../../domain/models/aggregate-root.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate-root.js","sourceRoot":"","sources":["../../../domain/models/aggregate-root.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { MutationPatch } from '../decorators/apply-mutation.decorator';
2
- import { RootEntitySnapshot } from '../interfaces/root-entity-snapshot.interface';
3
- import { AggregateRoot } from './aggregate-root';
1
+ import type { MutationPatch } from '../decorators/apply-mutation.decorator.js';
2
+ import { RootEntitySnapshot } from '../interfaces/root-entity-snapshot.interface.js';
3
+ import { AggregateRoot } from './aggregate-root.js';
4
4
  /**
5
5
  * Abstract base entity for DDD domain aggregates and entities.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"root.entity.d.ts","sourceRoot":"","sources":["../../../domain/models/root.entity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,8BAAsB,UAAU,CAC5B,SAAS,SAAS,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAEpE,SAAQ,aACR,YAAW,kBAAkB;IAE7B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAO;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAExB,QAAQ,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAwClD,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAOjD,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI;IAgB3D;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CACT,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAC/B,SAAS,SAAS,OAAO,CAAC,kBAAkB,CAAC,EAE7C,IAAI,EACA;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAA;KAAE,GACpC,CAAC,QAAQ,MACP,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,CAAC,CAAC,EACX,SAAS,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAC1C,CAAC,GAAG,IAAI;IA4BX,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;;OAGG;IACH,OAAO,KAAK,EAAE,QAEb;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED;;;OAGG;IACH,OAAO,KAAK,SAAS,QAEpB;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED;;;OAGG;IACH,OAAO,KAAK,SAAS,QAEpB;IAED;;;;;;;;;;;OAWG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;;OAKG;IACH,OAAO,KAAK,OAAO,QAKlB;IAED;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAc5C;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,SAAS,MAAM,EACzC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAC5B,IAAI;IAwCP,SAAS,CAAC,QAAQ,IAAI,IAAI;IAM1B,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;IAI9D;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAE7B,QAAQ,CAAC,MAAM,IAAI,kBAAkB,GAAG,SAAS;CAClD"}
1
+ {"version":3,"file":"root.entity.d.ts","sourceRoot":"","sources":["../../../domain/models/root.entity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,8BAAsB,UAAU,CAC5B,SAAS,SAAS,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAEpE,SAAQ,aACR,YAAW,kBAAkB;IAE7B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAO;IACzB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAEpC,YAAY,QAAQ,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAsCjD;IAED,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhD;IAED,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAc1D;IAED;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CACT,CAAC,SAAS,UAAU,CAAC,SAAS,CAAC,EAC/B,SAAS,SAAS,OAAO,CAAC,kBAAkB,CAAC,EAE7C,IAAI,EACA;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAA;KAAE,GACpC,CAAC,QAAQ,MACP,GAAG,IAAI,EAAE,OAAO,EAAE,KACf,CAAC,CAAC,EACX,SAAS,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAC1C,CAAC,GAAG,IAAI,CA0BV;IAED,IAAI,EAAE,IAAI,MAAM,CAEf;IAED;;;OAGG;IACH,OAAO,KAAK,EAAE,QAEb;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED;;;OAGG;IACH,OAAO,KAAK,SAAS,QAEpB;IAED,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED;;;OAGG;IACH,OAAO,KAAK,SAAS,QAEpB;IAED;;;;;;;;;;;OAWG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;;OAKG;IACH,OAAO,KAAK,OAAO,QAKlB;IAED;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,IAAI,MAAM,CAE3B;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAY3C;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,UAAU,CAAC,OAAO,SAAS,MAAM,EACzC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,GAC5B,IAAI,CAsCN;IAED,SAAS,CAAC,QAAQ,IAAI,IAAI,CAIzB;IAED,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE7D;IAED;;;;OAIG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI,CAAG;IAEhC,QAAQ,CAAC,MAAM,IAAI,kBAAkB,GAAG,SAAS,CAAC;CACnD"}
@@ -1,11 +1,8 @@
1
- "use strict";
2
1
  /* Copyright (C) 2026-present Aristotelis — see repository license. */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.RootEntity = void 0;
5
- const uuidv7_1 = require("@cqrs-ddd/uuidv7");
6
- const mutable_decorator_1 = require("../decorators/mutable.decorator");
7
- const unknown_mutable_field_error_1 = require("../exceptions/unknown-mutable-field.error");
8
- const aggregate_root_1 = require("./aggregate-root");
2
+ import { isUuidV7, uuidv7 } from '@cqrs-ddd/uuidv7';
3
+ import { getMutableFields } from '../decorators/mutable.decorator.js';
4
+ import { UnknownMutableFieldError } from '../exceptions/unknown-mutable-field.error.js';
5
+ import { AggregateRoot } from './aggregate-root.js';
9
6
  /**
10
7
  * Abstract base entity for DDD domain aggregates and entities.
11
8
  *
@@ -72,7 +69,7 @@ const aggregate_root_1 = require("./aggregate-root");
72
69
  * }
73
70
  * ```
74
71
  */
75
- class RootEntity extends aggregate_root_1.AggregateRoot {
72
+ export class RootEntity extends AggregateRoot {
76
73
  _id;
77
74
  _createdAt;
78
75
  _updatedAt;
@@ -103,12 +100,12 @@ class RootEntity extends aggregate_root_1.AggregateRoot {
103
100
  throw new Error('id, createdAt, and updatedAt must be provided together when rehydrating an entity.');
104
101
  }
105
102
  const now = new Date();
106
- this._id = (0, uuidv7_1.uuidv7)();
103
+ this._id = uuidv7();
107
104
  this._createdAt = now;
108
105
  this._updatedAt = now;
109
106
  }
110
107
  static normalizeId(id) {
111
- if (typeof id !== 'string' || !(0, uuidv7_1.isUuidV7)(id)) {
108
+ if (typeof id !== 'string' || !isUuidV7(id)) {
112
109
  throw new Error('id must be a valid UUID v7.');
113
110
  }
114
111
  return id.trim();
@@ -307,7 +304,7 @@ class RootEntity extends aggregate_root_1.AggregateRoot {
307
304
  if (typeof patch !== 'object') {
308
305
  throw new TypeError('applyPatch() requires a field patch object, or nothing.');
309
306
  }
310
- const fields = (0, mutable_decorator_1.getMutableFields)(this);
307
+ const fields = getMutableFields(this);
311
308
  const writes = [];
312
309
  // Phase 1: validate all keys and normalize values before any state changes
313
310
  for (const [key, value] of Object.entries(patch)) {
@@ -316,7 +313,7 @@ class RootEntity extends aggregate_root_1.AggregateRoot {
316
313
  }
317
314
  const field = fields.get(key);
318
315
  if (!field) {
319
- throw new unknown_mutable_field_error_1.UnknownMutableFieldError(this.constructor.name, key, [
316
+ throw new UnknownMutableFieldError(this.constructor.name, key, [
320
317
  ...fields.keys(),
321
318
  ]);
322
319
  }
@@ -346,5 +343,4 @@ class RootEntity extends aggregate_root_1.AggregateRoot {
346
343
  */
347
344
  afterUpdate() { }
348
345
  }
349
- exports.RootEntity = RootEntity;
350
346
  //# sourceMappingURL=root.entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root.entity.js","sourceRoot":"","sources":["../../../domain/models/root.entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root.entity.js","sourceRoot":"","sources":["../../../domain/models/root.entity.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ValueViolationError } from './value-violation';
1
+ import type { ValueViolationError } from './value-violation.js';
2
2
  /** Options of {@link numberRule}. */
3
3
  export interface NumberRuleOptions {
4
4
  /** Field name reported in the violation and in the default message. */
@@ -1 +1 @@
1
- {"version":3,"file":"number.rule.d.ts","sourceRoot":"","sources":["../../../domain/rules/number.rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,gFAAgF;AAChF,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,iBAAiB,IAC5D,QAAQ,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACxC,MAAM,GACN,QAAQ,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC7C,MAAM,GAAG,IAAI,GACb,MAAM,CAAC;AAEf,6EAA6E;AAC7E,MAAM,MAAM,UAAU,CAAC,QAAQ,SAAS,iBAAiB,GAAG,iBAAiB,IAC3E,QAAQ,CAAC,QAAQ,CAAC,GAAG;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC;CAC/D,CAAC;AAQJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACjE,OAAO,EAAE,QAAQ,GAChB,UAAU,CAAC,QAAQ,CAAC,CAkCtB"}
1
+ {"version":3,"file":"number.rule.d.ts","sourceRoot":"","sources":["../../../domain/rules/number.rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,gFAAgF;AAChF,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,iBAAiB,IAC5D,QAAQ,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GACxC,MAAM,GACN,QAAQ,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC7C,MAAM,GAAG,IAAI,GACb,MAAM,CAAC;AAEf,6EAA6E;AAC7E,MAAM,MAAM,UAAU,CAAC,QAAQ,SAAS,iBAAiB,GAAG,iBAAiB,IAC3E,QAAQ,CAAC,QAAQ,CAAC,GAAG;IACnB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC;CAC/D,CAAC;AAQJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,QAAQ,SAAS,iBAAiB,EACjE,OAAO,EAAE,QAAQ,GAChB,UAAU,CAAC,QAAQ,CAAC,CAkCtB"}
@@ -1,8 +1,5 @@
1
- "use strict";
2
1
  /* Copyright (C) 2026-present Aristotelis — see repository license. */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.numberRule = numberRule;
5
- const rule_support_1 = require("./rule-support");
2
+ import { assertField, violationThrower } from './rule-support.js';
6
3
  function assertBound(name, value) {
7
4
  if (value !== undefined && !Number.isFinite(value)) {
8
5
  throw new TypeError(`numberRule: ${name} must be a finite number.`);
@@ -46,15 +43,15 @@ function assertBound(name, value) {
46
43
  * // throws InvalidQuantityException: "quantity must be at least 1."
47
44
  * ```
48
45
  */
49
- function numberRule(options) {
50
- (0, rule_support_1.assertField)(options.field, 'numberRule');
46
+ export function numberRule(options) {
47
+ assertField(options.field, 'numberRule');
51
48
  assertBound('min', options.min);
52
49
  assertBound('max', options.max);
53
50
  const { field, required = true, integer = false, min, max } = options;
54
51
  if (min !== undefined && max !== undefined && min > max) {
55
52
  throw new TypeError('numberRule: min must not exceed max.');
56
53
  }
57
- const fail = (0, rule_support_1.violationThrower)(options.error);
54
+ const fail = violationThrower(options.error);
58
55
  const parse = (value) => {
59
56
  if (value === null || value === undefined) {
60
57
  return required ? fail({ field, rule: 'required' }) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"number.rule.js","sourceRoot":"","sources":["../../../domain/rules/number.rule.ts"],"names":[],"mappings":";AAAA,sEAAsE;;AA8FtE,gCAoCC;AAhID,iDAA+D;AAgD/D,SAAS,WAAW,CAAC,IAAY,EAAE,KAAyB;IAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,SAAS,CAAC,eAAe,IAAI,2BAA2B,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,SAAgB,UAAU,CACxB,OAAiB;IAEjB,IAAA,0BAAW,EAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACzC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACtE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,CAAC,KAAc,EAAiB,EAAE;QAC9C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAyB,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"number.rule.js","sourceRoot":"","sources":["../../../domain/rules/number.rule.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAgDlE,SAAS,WAAW,CAAC,IAAY,EAAE,KAAyB;IAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,SAAS,CAAC,eAAe,IAAI,2BAA2B,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,UAAU,CACxB,OAAiB;IAEjB,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACzC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACtE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,CAAC,KAAc,EAAiB,EAAE;QAC9C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAyB,CAAC;AACtE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ValueViolation, ValueViolationError } from './value-violation';
1
+ import type { ValueViolation, ValueViolationError } from './value-violation.js';
2
2
  /** Throws a `TypeError` naming the rule when `field` is not a non-empty string. */
3
3
  export declare function assertField(field: unknown, rule: string): void;
4
4
  /** Returns a function that throws the rule's error for a violation, frozen. */
@@ -1 +1 @@
1
- {"version":3,"file":"rule-support.d.ts","sourceRoot":"","sources":["../../../domain/rules/rule-support.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI9D;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,mBAC+B,GACrC,CAAC,SAAS,EAAE,cAAc,KAAK,KAAK,CAItC"}
1
+ {"version":3,"file":"rule-support.d.ts","sourceRoot":"","sources":["../../../domain/rules/rule-support.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhF,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI9D;AAED,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,mBAC+B,GACrC,CAAC,SAAS,EAAE,cAAc,KAAK,KAAK,CAItC"}
@@ -1,17 +1,13 @@
1
- "use strict";
2
1
  /* Copyright (C) 2026-present Aristotelis — see repository license. */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.assertField = assertField;
5
- exports.violationThrower = violationThrower;
6
- const invalid_value_exception_1 = require("../exceptions/invalid-value.exception");
2
+ import { InvalidValueException } from '../exceptions/invalid-value.exception.js';
7
3
  /** Throws a `TypeError` naming the rule when `field` is not a non-empty string. */
8
- function assertField(field, rule) {
4
+ export function assertField(field, rule) {
9
5
  if (typeof field !== 'string' || field.trim().length === 0) {
10
6
  throw new TypeError(`${rule}: field must be a non-empty string.`);
11
7
  }
12
8
  }
13
9
  /** Returns a function that throws the rule's error for a violation, frozen. */
14
- function violationThrower(error = (violation) => new invalid_value_exception_1.InvalidValueException(violation)) {
10
+ export function violationThrower(error = (violation) => new InvalidValueException(violation)) {
15
11
  return (violation) => {
16
12
  throw error(Object.freeze(violation));
17
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rule-support.js","sourceRoot":"","sources":["../../../domain/rules/rule-support.ts"],"names":[],"mappings":";AAAA,sEAAsE;;AAMtE,kCAIC;AAGD,4CAOC;AAlBD,mFAA8E;AAG9E,mFAAmF;AACnF,SAAgB,WAAW,CAAC,KAAc,EAAE,IAAY;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAgB,gBAAgB,CAC9B,QAA6B,CAAC,SAAS,EAAE,EAAE,CACzC,IAAI,+CAAqB,CAAC,SAAS,CAAC;IAEtC,OAAO,CAAC,SAAS,EAAE,EAAE;QACnB,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"rule-support.js","sourceRoot":"","sources":["../../../domain/rules/rule-support.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAGjF,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,IAAY;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,qCAAqC,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,gBAAgB,CAC9B,KAAK,GAAwB,CAAC,SAAS,EAAE,EAAE,CACzC,IAAI,qBAAqB,CAAC,SAAS,CAAC;IAEtC,OAAO,CAAC,SAAS,EAAE,EAAE;QACnB,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ValueViolationError } from './value-violation';
1
+ import type { ValueViolationError } from './value-violation.js';
2
2
  /** Options of {@link textRule}. */
3
3
  export interface TextRuleOptions {
4
4
  /** Field name reported in the violation and in the default message. */
@@ -1 +1 @@
1
- {"version":3,"file":"text.rule.d.ts","sourceRoot":"","sources":["../../../domain/rules/text.rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,8EAA8E;AAC9E,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,eAAe,IAAI,QAAQ,SAAS;IAC7E,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;CACzB,GACG,MAAM,GACN,QAAQ,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC7C,MAAM,GAAG,IAAI,GACb,MAAM,CAAC;AAEb,2EAA2E;AAC3E,MAAM,MAAM,QAAQ,CAAC,QAAQ,SAAS,eAAe,GAAG,eAAe,IACrE,QAAQ,CAAC,QAAQ,CAAC,GAAG;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC;CAC7D,CAAC;AAaJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,QAAQ,SAAS,eAAe,EAC7D,OAAO,EAAE,QAAQ,GAChB,QAAQ,CAAC,QAAQ,CAAC,CA0DpB"}
1
+ {"version":3,"file":"text.rule.d.ts","sourceRoot":"","sources":["../../../domain/rules/text.rule.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,mCAAmC;AACnC,MAAM,WAAW,eAAe;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,8EAA8E;AAC9E,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,eAAe,IAAI,QAAQ,SAAS;IAC7E,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;CACzB,GACG,MAAM,GACN,QAAQ,SAAS;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC7C,MAAM,GAAG,IAAI,GACb,MAAM,CAAC;AAEb,2EAA2E;AAC3E,MAAM,MAAM,QAAQ,CAAC,QAAQ,SAAS,eAAe,GAAG,eAAe,IACrE,QAAQ,CAAC,QAAQ,CAAC,GAAG;IACnB;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAC;CAC7D,CAAC;AAaJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,wBAAgB,QAAQ,CAAC,KAAK,CAAC,QAAQ,SAAS,eAAe,EAC7D,OAAO,EAAE,QAAQ,GAChB,QAAQ,CAAC,QAAQ,CAAC,CA0DpB"}