@cqrs-ddd/core 0.4.2 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/COMMERCIAL_LICENSE.txt +14 -10
  2. package/README.md +3 -3
  3. package/dist/application/base.command.d.ts +3 -0
  4. package/dist/application/base.command.d.ts.map +1 -1
  5. package/dist/application/base.command.js +5 -0
  6. package/dist/application/base.command.js.map +1 -1
  7. package/dist/application/base.query.d.ts +3 -0
  8. package/dist/application/base.query.d.ts.map +1 -1
  9. package/dist/application/base.query.js +5 -0
  10. package/dist/application/base.query.js.map +1 -1
  11. package/dist/application/command-base.handler.d.ts +6 -10
  12. package/dist/application/command-base.handler.d.ts.map +1 -1
  13. package/dist/application/command-base.handler.js +16 -18
  14. package/dist/application/command-base.handler.js.map +1 -1
  15. package/dist/application/ports/command-repository.port.d.ts +1 -4
  16. package/dist/application/ports/command-repository.port.d.ts.map +1 -1
  17. package/dist/application/ports/query-repository.port.d.ts +0 -1
  18. package/dist/application/ports/query-repository.port.d.ts.map +1 -1
  19. package/dist/domain/decorators/apply-mutation.decorator.d.ts.map +1 -1
  20. package/dist/domain/decorators/apply-mutation.decorator.js +2 -1
  21. package/dist/domain/decorators/apply-mutation.decorator.js.map +1 -1
  22. package/dist/domain/events/domain.event.d.ts +3 -0
  23. package/dist/domain/events/domain.event.d.ts.map +1 -1
  24. package/dist/domain/events/domain.event.js +5 -0
  25. package/dist/domain/events/domain.event.js.map +1 -1
  26. package/dist/domain/events/root-domain.event.d.ts.map +1 -1
  27. package/dist/domain/events/root-domain.event.js +35 -23
  28. package/dist/domain/events/root-domain.event.js.map +1 -1
  29. package/dist/domain/models/aggregate-root.d.ts +3 -3
  30. package/dist/domain/models/aggregate-root.d.ts.map +1 -1
  31. package/dist/domain/models/aggregate-root.js +3 -3
  32. package/dist/domain/models/aggregate-root.js.map +1 -1
  33. package/dist/domain/models/root.entity.d.ts.map +1 -1
  34. package/dist/domain/models/root.entity.js.map +1 -1
  35. package/dist/domain/request-kind.d.ts +7 -0
  36. package/dist/domain/request-kind.d.ts.map +1 -0
  37. package/dist/domain/request-kind.js +8 -0
  38. package/dist/domain/request-kind.js.map +1 -0
  39. package/dist/persistence/cache/cache-logger.d.ts +2 -2
  40. package/dist/persistence/cache/memory.cache.d.ts +0 -1
  41. package/dist/persistence/cache/memory.cache.d.ts.map +1 -1
  42. package/dist/persistence/cache/memory.cache.js +3 -4
  43. package/dist/persistence/cache/memory.cache.js.map +1 -1
  44. package/dist/persistence/command-repository.abstract.d.ts +2 -3
  45. package/dist/persistence/command-repository.abstract.d.ts.map +1 -1
  46. package/dist/persistence/command-repository.abstract.js +2 -3
  47. package/dist/persistence/command-repository.abstract.js.map +1 -1
  48. package/dist/persistence/decorators/acknowledge-persisted.decorator.d.ts +0 -2
  49. package/dist/persistence/decorators/acknowledge-persisted.decorator.d.ts.map +1 -1
  50. package/dist/persistence/decorators/acknowledge-persisted.decorator.js +0 -2
  51. package/dist/persistence/decorators/acknowledge-persisted.decorator.js.map +1 -1
  52. package/dist/persistence/decorators/cache.decorator.d.ts.map +1 -1
  53. package/dist/persistence/decorators/cache.decorator.js +149 -107
  54. package/dist/persistence/decorators/cache.decorator.js.map +1 -1
  55. package/dist/persistence/decorators/from-cache.decorator.d.ts.map +1 -1
  56. package/dist/persistence/decorators/from-cache.decorator.js +131 -86
  57. package/dist/persistence/decorators/from-cache.decorator.js.map +1 -1
  58. package/dist/persistence/decorators/map-persistence-errors.decorator.d.ts +0 -1
  59. package/dist/persistence/decorators/map-persistence-errors.decorator.d.ts.map +1 -1
  60. package/dist/persistence/decorators/map-persistence-errors.decorator.js +2 -2
  61. package/dist/persistence/decorators/map-persistence-errors.decorator.js.map +1 -1
  62. package/dist/persistence/helpers/cache-barrier.helper.d.ts.map +1 -1
  63. package/dist/persistence/helpers/cache-barrier.helper.js +7 -5
  64. package/dist/persistence/helpers/cache-barrier.helper.js.map +1 -1
  65. package/dist/persistence/helpers/cache-key.helper.d.ts.map +1 -1
  66. package/dist/persistence/helpers/cache-key.helper.js +2 -1
  67. package/dist/persistence/helpers/cache-key.helper.js.map +1 -1
  68. package/dist/persistence/helpers/cache-version.helper.d.ts.map +1 -1
  69. package/dist/persistence/helpers/cache-version.helper.js +3 -5
  70. package/dist/persistence/helpers/cache-version.helper.js.map +1 -1
  71. package/dist/persistence/query-repository.abstract.d.ts +4 -6
  72. package/dist/persistence/query-repository.abstract.d.ts.map +1 -1
  73. package/dist/persistence/query-repository.abstract.js +4 -6
  74. package/dist/persistence/query-repository.abstract.js.map +1 -1
  75. package/package.json +9 -9
@@ -9,21 +9,25 @@ This Commercial License Agreement ("Agreement") is a legal agreement between You
9
9
  Upon acceptance of this Agreement and compliance with the Payment Terms in Section 2, the Licensor grants You a non-exclusive, worldwide, non-transferable license to use, modify, integrate, and distribute the Software in commercial applications WITHOUT the copyleft obligations of the GNU Affero General Public License v3 (AGPLv3). Under this Agreement, You are NOT required to open-source Your proprietary code that integrates with the Software.
10
10
 
11
11
  2. PAYMENT TERMS AND REVENUE TIERS
12
- This license requires an annual fee based on Your (or Your organization's) total gross global revenue for the most recently completed fiscal year.
12
+ This license requires an annual fee based on Your (or Your organization's) total gross global revenue for the most recently completed fiscal year.
13
13
 
14
- The annual fee is calculated using the following scaled brackets:
14
+ The annual fee is calculated using the following marginal brackets. Each rate applies only to the portion of gross revenue that falls within its bracket, and the annual fee is the sum of the amounts for all brackets:
15
15
 
16
- a) Tier 1: Gross revenue up to $500,000 USD
17
- Fee: $0 (Free Commercial Use)
16
+ a) Tier 1: The portion of gross revenue up to $500,000 USD
17
+ Rate: 0% (Free Commercial Use). If gross revenue does not exceed $500,000 USD, the fee is $0.
18
18
 
19
- b) Tier 2: Gross revenue between $500,001 and $10,000,000 USD
20
- Fee: 0.1% of total gross revenue.
19
+ b) Tier 2: The portion of gross revenue above $500,000 USD and up to $10,000,000 USD
20
+ Rate: 0.1% of that portion.
21
21
 
22
- c) Tier 3: Gross revenue between $10,000,001 and $50,000,000 USD
23
- Fee: 0.05% of total gross revenue.
22
+ c) Tier 3: The portion of gross revenue above $10,000,000 USD and up to $50,000,000 USD
23
+ Rate: 0.05% of that portion.
24
24
 
25
- d) Tier 4: Gross revenue exceeding $50,000,000 USD
26
- Fee: 0.01% of total gross revenue, up to a maximum hard cap of $50,000 USD per year.
25
+ d) Tier 4: The portion of gross revenue above $50,000,000 USD
26
+ Rate: 0.01% of that portion.
27
+
28
+ The total annual fee never exceeds a maximum hard cap of $50,000 USD per year.
29
+
30
+ Example: for gross revenue of $20,000,000 USD, the annual fee is 0.1% of $9,500,000 USD ($9,500) plus 0.05% of $10,000,000 USD ($5,000), a total of $14,500 USD.
27
31
 
28
32
  3. REPORTING AND REMITTANCE
29
33
  - Fees are calculated annually and must be remitted to the Licensor within ninety (90) days following the close of Your fiscal year.
package/README.md CHANGED
@@ -8,7 +8,7 @@ versioned mutations, detached domain events, a command handler that publishes th
8
8
  events, repository contracts, persistence lifecycle decorators, a revision-fenced
9
9
  repository cache, tenant-scoped cache keys and HTTP status mapping for its errors.
10
10
 
11
- **Documentation:** [guide](https://aristoteliss.github.io/nestjs-pipeline/packages/cqrs-ddd/core/) · [API reference](https://aristoteliss.github.io/nestjs-pipeline/api/cqrs-ddd/core/) · [all packages](https://aristoteliss.github.io/nestjs-pipeline/)
11
+ **Documentation:** [guide](https://aristoteliss.github.io/ddd-cqrs/packages/core/) · [API reference](https://aristoteliss.github.io/ddd-cqrs/api/cqrs-ddd/core/) · [all packages](https://aristoteliss.github.io/ddd-cqrs/)
12
12
 
13
13
  ## Installation
14
14
 
@@ -22,10 +22,10 @@ Requires Node.js 22.12 or later. It installs `@cqrs-ddd/uuidv7` and
22
22
  `@cqrs-ddd/safe-stringify`, which have no dependencies. To persist with MikroORM, add
23
23
  `@cqrs-ddd/mikro-orm` and `@mikro-orm/core` 7.
24
24
 
25
- Published as an ES module; a CommonJS application loads it with `require()`. Coming from 0.3.x, see [Upgrading from 0.3.x](https://aristoteliss.github.io/nestjs-pipeline/upgrading/from-0-3/).
25
+ Published as an ES module; a CommonJS application loads it with `require()`.
26
26
 
27
27
  ## License
28
28
 
29
29
  Dual-licensed under **AGPL-3.0-or-later** or a **Commercial License**. See
30
- [`LICENSE`](https://github.com/aristoteliss/nestjs-pipeline/blob/master/LICENSE) and [`COMMERCIAL_LICENSE.txt`](https://github.com/aristoteliss/nestjs-pipeline/blob/master/COMMERCIAL_LICENSE.txt)
30
+ [`LICENSE`](https://github.com/aristoteliss/ddd-cqrs/blob/master/LICENSE) and [`COMMERCIAL_LICENSE.txt`](https://github.com/aristoteliss/ddd-cqrs/blob/master/COMMERCIAL_LICENSE.txt)
31
31
  at the repository root.
@@ -1,3 +1,4 @@
1
+ import { REQUEST_KIND } from '../domain/request-kind.js';
1
2
  /**
2
3
  * Base class for application CQRS commands.
3
4
  *
@@ -8,6 +9,8 @@
8
9
  export declare abstract class BaseCommand<TSessionPrincipal = any> {
9
10
  readonly sessionPrincipal?: TSessionPrincipal;
10
11
  readonly sessionUser?: TSessionPrincipal;
12
+ /** The kind a pipeline reads from this request: `'command'`. */
13
+ get [REQUEST_KIND](): 'command';
11
14
  constructor(sessionPrincipal?: TSessionPrincipal);
12
15
  /**
13
16
  * Serializes enumerable command payload fields to a plain object.
@@ -1 +1 @@
1
- {"version":3,"file":"base.command.d.ts","sourceRoot":"","sources":["../../application/base.command.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,8BAAsB,WAAW,CAAC,iBAAiB,GAAG,GAAG;IACvD,SAAwB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAC7D,SAAwB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAExD,YAAY,gBAAgB,CAAC,EAAE,iBAAiB,EAK/C;IAED;;;;;;;;OAQG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAI5D;CACF"}
1
+ {"version":3,"file":"base.command.d.ts","sourceRoot":"","sources":["../../application/base.command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD;;;;;;GAMG;AAEH,8BAAsB,WAAW,CAAC,iBAAiB,GAAG,GAAG;IACvD,SAAwB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAC7D,SAAwB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAExD,gEAAgE;IAChE,IAAI,CAAC,YAAY,CAAC,IAAI,SAAS,CAE9B;IAED,YAAY,gBAAgB,CAAC,EAAE,iBAAiB,EAK/C;IAED;;;;;;;;OAQG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAI5D;CACF"}
@@ -1,4 +1,5 @@
1
1
  /* Copyright (C) 2026-present Aristotelis — see repository license. */
2
+ import { REQUEST_KIND } from '../domain/request-kind.js';
2
3
  import { definedFields, defineHidden } from './request-fields.helper.js';
3
4
  /**
4
5
  * Base class for application CQRS commands.
@@ -9,6 +10,10 @@ import { definedFields, defineHidden } from './request-fields.helper.js';
9
10
  */
10
11
  // biome-ignore lint/suspicious/noExplicitAny: generic session principal default
11
12
  export class BaseCommand {
13
+ /** The kind a pipeline reads from this request: `'command'`. */
14
+ get [REQUEST_KIND]() {
15
+ return 'command';
16
+ }
12
17
  constructor(sessionPrincipal) {
13
18
  if (sessionPrincipal !== undefined) {
14
19
  defineHidden(this, 'sessionPrincipal', sessionPrincipal);
@@ -1 +1 @@
1
- {"version":3,"file":"base.command.js","sourceRoot":"","sources":["../../application/base.command.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEzE;;;;;;GAMG;AACH,gFAAgF;AAChF,MAAM,OAAgB,WAAW;IAI/B,YAAY,gBAAoC;QAC9C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;YACzD,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM;QACJ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,eAAkC;QAChD,OAAO,eAAe,CAAC,MAAM,CAC3B,CAAC,KAAK,EAAE,EAAE,CAAE,IAAgC,CAAC,KAAK,CAAC,KAAK,SAAS,CAClE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"base.command.js","sourceRoot":"","sources":["../../application/base.command.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEzE;;;;;;GAMG;AACH,gFAAgF;AAChF,MAAM,OAAgB,WAAW;IAI/B,gEAAgE;IAChE,IAAI,CAAC,YAAY,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,YAAY,gBAAoC;QAC9C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;YACzD,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM;QACJ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,eAAe,CAAC,eAAkC;QAChD,OAAO,eAAe,CAAC,MAAM,CAC3B,CAAC,KAAK,EAAE,EAAE,CAAE,IAAgC,CAAC,KAAK,CAAC,KAAK,SAAS,CAClE,CAAC;IACJ,CAAC;CACF"}
@@ -1,3 +1,4 @@
1
+ import { REQUEST_KIND } from '../domain/request-kind.js';
1
2
  import type { IQueryOptions } from './query.options.js';
2
3
  /**
3
4
  * Base class for application CQRS queries.
@@ -28,6 +29,8 @@ export declare abstract class BaseQuery<TSessionPrincipal = unknown> implements
28
29
  readonly refresh?: boolean;
29
30
  readonly sessionPrincipal?: TSessionPrincipal;
30
31
  readonly sessionUser?: TSessionPrincipal;
32
+ /** The kind a pipeline reads from this request: `'query'`. */
33
+ get [REQUEST_KIND](): 'query';
31
34
  constructor(options?: Partial<IQueryOptions>, sessionPrincipal?: TSessionPrincipal);
32
35
  /**
33
36
  * Serializes enumerable query payload fields to a plain object.
@@ -1 +1 @@
1
- {"version":3,"file":"base.query.d.ts","sourceRoot":"","sources":["../../application/base.query.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8BAAsB,SAAS,CAAC,iBAAiB,GAAG,OAAO,CACzD,YAAW,aAAa;IAExB,SAAwB,OAAO,CAAC,EAAE,OAAO,CAAC;IAC1C,SAAwB,OAAO,CAAC,EAAE,OAAO,CAAC;IAC1C,SAAwB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAC7D,SAAwB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAExD,YACE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAChC,gBAAgB,CAAC,EAAE,iBAAiB,EAQrC;IAED;;;;;;;OAOG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhC;CACF"}
1
+ {"version":3,"file":"base.query.d.ts","sourceRoot":"","sources":["../../application/base.query.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8BAAsB,SAAS,CAAC,iBAAiB,GAAG,OAAO,CACzD,YAAW,aAAa;IAExB,SAAwB,OAAO,CAAC,EAAE,OAAO,CAAC;IAC1C,SAAwB,OAAO,CAAC,EAAE,OAAO,CAAC;IAC1C,SAAwB,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAC7D,SAAwB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAExD,8DAA8D;IAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,OAAO,CAE5B;IAED,YACE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAChC,gBAAgB,CAAC,EAAE,iBAAiB,EAQrC;IAED;;;;;;;OAOG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhC;CACF"}
@@ -1,4 +1,5 @@
1
1
  /* Copyright (C) 2026-present Aristotelis — see repository license. */
2
+ import { REQUEST_KIND } from '../domain/request-kind.js';
2
3
  import { definedFields, defineHidden } from './request-fields.helper.js';
3
4
  /**
4
5
  * Base class for application CQRS queries.
@@ -25,6 +26,10 @@ import { definedFields, defineHidden } from './request-fields.helper.js';
25
26
  * ```
26
27
  */
27
28
  export class BaseQuery {
29
+ /** The kind a pipeline reads from this request: `'query'`. */
30
+ get [REQUEST_KIND]() {
31
+ return 'query';
32
+ }
28
33
  constructor(options, sessionPrincipal) {
29
34
  defineHidden(this, 'hydrate', options?.hydrate ?? false);
30
35
  defineHidden(this, 'refresh', options?.refresh ?? false);
@@ -1 +1 @@
1
- {"version":3,"file":"base.query.js","sourceRoot":"","sources":["../../application/base.query.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAGtE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAgB,SAAS;IAQ7B,YACE,OAAgC,EAChC,gBAAoC;QAEpC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACzD,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACzD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;YACzD,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM;QACJ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"base.query.js","sourceRoot":"","sources":["../../application/base.query.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAgB,SAAS;IAQ7B,8DAA8D;IAC9D,IAAI,CAAC,YAAY,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YACE,OAAgC,EAChC,gBAAoC;QAEpC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACzD,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACzD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;YACzD,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM;QACJ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -17,9 +17,9 @@ export type AggregateBearingResult = IAggregateRoot | {
17
17
  * uncommitted domain events are published through the {@link IDomainEventPublisher},
18
18
  * with the aggregate as the dispatcher context, and cleared after publication.
19
19
  *
20
- * It is framework-neutral. With NestJS CQRS, decorate the subclass with
21
- * `@CommandHandler` and pass the injected `EventBus`, which satisfies
22
- * {@link IDomainEventPublisher}; Nest calls {@link execute} as the handler entry point.
20
+ * It is framework-neutral. With `@cqrs-ddd/cqrs`, decorate the subclass with
21
+ * `@CommandHandler` and pass `cqrs.eventBus`, which satisfies
22
+ * {@link IDomainEventPublisher}; the command bus calls {@link execute}.
23
23
  *
24
24
  * @typeParam TCommand - The concrete command type this handler processes.
25
25
  * @typeParam TResult - The handler's return type (e.g. aggregate entity or result carrying aggregate).
@@ -29,7 +29,6 @@ export type AggregateBearingResult = IAggregateRoot | {
29
29
  * @CommandHandler(CreateUserCommand)
30
30
  * export class CreateUserHandler extends CommandBaseHandler<CreateUserCommand, User> {
31
31
  * constructor(
32
- * @Inject(COMMAND_REPOSITORY.createUser)
33
32
  * private readonly commandRepository: ICommandRepository<User, UserSnapshot>,
34
33
  * protected readonly eventBus: EventBus,
35
34
  * ) {
@@ -49,7 +48,6 @@ export type AggregateBearingResult = IAggregateRoot | {
49
48
  * @CommandHandler(CreateAuthCommand)
50
49
  * export class CreateAuthHandler extends CommandBaseHandler<CreateAuthCommand, CreateAuthResult> {
51
50
  * constructor(
52
- * @Inject(COMMAND_REPOSITORY.createAuth)
53
51
  * private readonly commandRepository: ICommandRepository<Auth, null>,
54
52
  * protected readonly eventBus: EventBus,
55
53
  * ) {
@@ -75,7 +73,7 @@ export declare abstract class CommandBaseHandler<TCommand = unknown, TResult ext
75
73
  * Constructs the handler with the publisher of domain events.
76
74
  *
77
75
  * @param eventBus - The publisher used to dispatch domain events, such as the
78
- * NestJS CQRS `EventBus`.
76
+ * `EventBus` of `@cqrs-ddd/cqrs`.
79
77
  */
80
78
  protected constructor(eventBus: IDomainEventPublisher);
81
79
  /**
@@ -90,13 +88,11 @@ export declare abstract class CommandBaseHandler<TCommand = unknown, TResult ext
90
88
  */
91
89
  abstract handle(command: TCommand): Promise<TResult>;
92
90
  /**
93
- * Handler entry point, invoked by the command bus (for example the NestJS CQRS
94
- * `CommandBus`).
91
+ * Handler entry point, invoked by the command bus.
95
92
  *
96
93
  * Delegates to {@link handle} and automatically publishes any uncommitted domain
97
94
  * events if the result is an aggregate root (or an object containing one as
98
- * `aggregate`). The publisher receives the aggregate as its dispatcher context,
99
- * as NestJS's `EventPublisher` passes it on `commit()`.
95
+ * `aggregate`). The publisher receives the aggregate as its dispatcher context.
100
96
  *
101
97
  * The events are handed to the publisher and cleared from the aggregate, then
102
98
  * `execute()` awaits what `publishAll()` returned: an asynchronous publisher
@@ -1 +1 @@
1
- {"version":3,"file":"command-base.handler.d.ts","sourceRoot":"","sources":["../../application/command-base.handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAEvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,cAAc,GACd;IAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CAAE,CAAC;AAY3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,8BAAsB,kBAAkB,CACtC,QAAQ,GAAG,OAAO,EAClB,OAAO,SAAS,sBAAsB,GAAG,sBAAsB;IAQzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB;IANxE;;;;;OAKG;IACH,SAAS,aAAgC,QAAQ,EAAE,qBAAqB,EAAI;IAE5E;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBjD;CACF"}
1
+ {"version":3,"file":"command-base.handler.d.ts","sourceRoot":"","sources":["../../application/command-base.handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAEvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,cAAc,GACd;IAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAA;CAAE,CAAC;AAY3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,8BAAsB,kBAAkB,CACtC,QAAQ,GAAG,OAAO,EAClB,OAAO,SAAS,sBAAsB,GAAG,sBAAsB;IAQzC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,qBAAqB;IANxE;;;;;OAKG;IACH,SAAS,aAAgC,QAAQ,EAAE,qBAAqB,EAAI;IAE5E;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErD;;;;;;;;;;;;;;;;;;;OAmBG;IACG,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAejD;CACF"}
@@ -17,9 +17,9 @@ function isAggregate(obj) {
17
17
  * uncommitted domain events are published through the {@link IDomainEventPublisher},
18
18
  * with the aggregate as the dispatcher context, and cleared after publication.
19
19
  *
20
- * It is framework-neutral. With NestJS CQRS, decorate the subclass with
21
- * `@CommandHandler` and pass the injected `EventBus`, which satisfies
22
- * {@link IDomainEventPublisher}; Nest calls {@link execute} as the handler entry point.
20
+ * It is framework-neutral. With `@cqrs-ddd/cqrs`, decorate the subclass with
21
+ * `@CommandHandler` and pass `cqrs.eventBus`, which satisfies
22
+ * {@link IDomainEventPublisher}; the command bus calls {@link execute}.
23
23
  *
24
24
  * @typeParam TCommand - The concrete command type this handler processes.
25
25
  * @typeParam TResult - The handler's return type (e.g. aggregate entity or result carrying aggregate).
@@ -29,7 +29,6 @@ function isAggregate(obj) {
29
29
  * @CommandHandler(CreateUserCommand)
30
30
  * export class CreateUserHandler extends CommandBaseHandler<CreateUserCommand, User> {
31
31
  * constructor(
32
- * @Inject(COMMAND_REPOSITORY.createUser)
33
32
  * private readonly commandRepository: ICommandRepository<User, UserSnapshot>,
34
33
  * protected readonly eventBus: EventBus,
35
34
  * ) {
@@ -49,7 +48,6 @@ function isAggregate(obj) {
49
48
  * @CommandHandler(CreateAuthCommand)
50
49
  * export class CreateAuthHandler extends CommandBaseHandler<CreateAuthCommand, CreateAuthResult> {
51
50
  * constructor(
52
- * @Inject(COMMAND_REPOSITORY.createAuth)
53
51
  * private readonly commandRepository: ICommandRepository<Auth, null>,
54
52
  * protected readonly eventBus: EventBus,
55
53
  * ) {
@@ -75,19 +73,17 @@ export class CommandBaseHandler {
75
73
  * Constructs the handler with the publisher of domain events.
76
74
  *
77
75
  * @param eventBus - The publisher used to dispatch domain events, such as the
78
- * NestJS CQRS `EventBus`.
76
+ * `EventBus` of `@cqrs-ddd/cqrs`.
79
77
  */
80
78
  constructor(eventBus) {
81
79
  this.eventBus = eventBus;
82
80
  }
83
81
  /**
84
- * Handler entry point, invoked by the command bus (for example the NestJS CQRS
85
- * `CommandBus`).
82
+ * Handler entry point, invoked by the command bus.
86
83
  *
87
84
  * Delegates to {@link handle} and automatically publishes any uncommitted domain
88
85
  * events if the result is an aggregate root (or an object containing one as
89
- * `aggregate`). The publisher receives the aggregate as its dispatcher context,
90
- * as NestJS's `EventPublisher` passes it on `commit()`.
86
+ * `aggregate`). The publisher receives the aggregate as its dispatcher context.
91
87
  *
92
88
  * The events are handed to the publisher and cleared from the aggregate, then
93
89
  * `execute()` awaits what `publishAll()` returned: an asynchronous publisher
@@ -104,14 +100,7 @@ export class CommandBaseHandler {
104
100
  */
105
101
  async execute(command) {
106
102
  const commandResult = await this.handle(command);
107
- const aggregate = isAggregate(commandResult)
108
- ? commandResult
109
- : commandResult &&
110
- typeof commandResult === 'object' &&
111
- 'aggregate' in commandResult &&
112
- isAggregate(commandResult.aggregate)
113
- ? commandResult.aggregate
114
- : undefined;
103
+ const aggregate = aggregateOf(commandResult);
115
104
  if (aggregate) {
116
105
  const events = [...aggregate.getUncommittedEvents()];
117
106
  if (events.length > 0) {
@@ -123,4 +112,13 @@ export class CommandBaseHandler {
123
112
  return commandResult;
124
113
  }
125
114
  }
115
+ /** The aggregate a handler returned, itself or as its result's `aggregate`. */
116
+ function aggregateOf(result) {
117
+ if (isAggregate(result))
118
+ return result;
119
+ const carried = result && typeof result === 'object' && 'aggregate' in result
120
+ ? result.aggregate
121
+ : undefined;
122
+ return isAggregate(carried) ? carried : undefined;
123
+ }
126
124
  //# sourceMappingURL=command-base.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-base.handler.js","sourceRoot":"","sources":["../../application/command-base.handler.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAWnE,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,CACL,GAAG,YAAY,aAAa;QAC5B,CAAC,OAAO,GAAG,KAAK,QAAQ;YACtB,GAAG,KAAK,IAAI;YACZ,OAAQ,GAAsB,CAAC,oBAAoB,KAAK,UAAU;YAClE,OAAQ,GAAsB,CAAC,QAAQ,KAAK,UAAU,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,MAAM,OAAgB,kBAAkB;IAUG,QAAQ;IANjD;;;;;OAKG;IACH,YAAyC,QAA+B;wBAA/B,QAAQ;IAA0B,CAAC;IAc5E;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,OAAO,CAAC,OAAiB;QAC7B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC;YAC1C,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,aAAa;gBACX,OAAO,aAAa,KAAK,QAAQ;gBACjC,WAAW,IAAI,aAAa;gBAC5B,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC;gBACtC,CAAC,CAAC,aAAa,CAAC,SAAS;gBACzB,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC9D,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"command-base.handler.js","sourceRoot":"","sources":["../../application/command-base.handler.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAWnE,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,CACL,GAAG,YAAY,aAAa;QAC5B,CAAC,OAAO,GAAG,KAAK,QAAQ;YACtB,GAAG,KAAK,IAAI;YACZ,OAAQ,GAAsB,CAAC,oBAAoB,KAAK,UAAU;YAClE,OAAQ,GAAsB,CAAC,QAAQ,KAAK,UAAU,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,OAAgB,kBAAkB;IAUG,QAAQ;IANjD;;;;;OAKG;IACH,YAAyC,QAA+B;wBAA/B,QAAQ;IAA0B,CAAC;IAc5E;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,OAAO,CAAC,OAAiB;QAC7B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC,CAAC;YACrD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC9D,SAAS,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,MAAe;IAClC,IAAI,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACvC,MAAM,OAAO,GACX,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,IAAI,MAAM;QAC3D,CAAC,CAAC,MAAM,CAAC,SAAS;QAClB,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACpD,CAAC"}
@@ -8,10 +8,7 @@
8
8
  *
9
9
  * @example
10
10
  * ```ts
11
- * constructor(
12
- * @Inject(COMMAND_REPOSITORY.createUser)
13
- * private readonly users: ICommandRepository<User, UserSnapshot>,
14
- * ) {}
11
+ * constructor(private readonly users: ICommandRepository<User, UserSnapshot>) {}
15
12
  *
16
13
  * await this.users.save(user);
17
14
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"command-repository.port.d.ts","sourceRoot":"","sources":["../../../application/ports/command-repository.port.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACtE;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CAChD"}
1
+ {"version":3,"file":"command-repository.port.d.ts","sourceRoot":"","sources":["../../../application/ports/command-repository.port.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACtE;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CAChD"}
@@ -12,7 +12,6 @@ import { IQueryOptions } from '../query.options.js';
12
12
  * @example
13
13
  * ```ts
14
14
  * constructor(
15
- * @Inject(QUERY_REPOSITORY.getUser)
16
15
  * private readonly users: IQueryRepository<GetUserQuery, User | null>,
17
16
  * ) {}
18
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"query-repository.port.d.ts","sourceRoot":"","sources":["../../../application/ports/query-repository.port.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM,GAAG,aAAa,EAAE,OAAO,GAAG,OAAO;IACzE,sCAAsC;IACtC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"query-repository.port.d.ts","sourceRoot":"","sources":["../../../application/ports/query-repository.port.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,gBAAgB,CAAC,MAAM,GAAG,aAAa,EAAE,OAAO,GAAG,OAAO;IACzE,sCAAsC;IACtC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-mutation.decorator.d.ts","sourceRoot":"","sources":["../../../domain/decorators/apply-mutation.decorator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD;;;;;;GAMG;AAEH,MAAM,MAAM,aAAa,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAE7D,0CAA0C;AAC1C,MAAM,MAAM,kBAAkB,GAC1B,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAC9B,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE1B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,OAAO;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,GAAG,kBAAkB,CAAC;CACvE;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAG,OAAO,EAC7C,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACrC,eAAe,CA8BjB"}
1
+ {"version":3,"file":"apply-mutation.decorator.d.ts","sourceRoot":"","sources":["../../../domain/decorators/apply-mutation.decorator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD;;;;;;GAMG;AAEH,MAAM,MAAM,aAAa,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAE7D,0CAA0C;AAC1C,MAAM,MAAM,kBAAkB,GAC1B,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAC9B,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE1B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CAAC,OAAO;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAW,GAAG,kBAAkB,CAAC;CACvE;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAG,OAAO,EAC7C,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,GACrC,eAAe,CAgCjB"}
@@ -66,7 +66,7 @@ export function ApplyMutation(options) {
66
66
  if (!options || typeof options.event !== 'function') {
67
67
  throw new TypeError('@ApplyMutation requires an event factory option: @ApplyMutation({ event: (entity) => ... }).');
68
68
  }
69
- return (_target, _propertyKey, descriptor) => {
69
+ const decorate = (_target, _propertyKey, descriptor) => {
70
70
  const original = descriptor.value;
71
71
  descriptor.value = function (...args) {
72
72
  assertLifecycleOperations(this);
@@ -79,5 +79,6 @@ export function ApplyMutation(options) {
79
79
  };
80
80
  return descriptor;
81
81
  };
82
+ return decorate;
82
83
  }
83
84
  //# sourceMappingURL=apply-mutation.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-mutation.decorator.js","sourceRoot":"","sources":["../../../domain/decorators/apply-mutation.decorator.ts"],"names":[],"mappings":"AAAA,sEAAsE;AA4CtE,SAAS,yBAAyB,CAChC,MAAe;IAEf,KAAK,MAAM,MAAM,IAAI,CAAC,UAAU,EAAE,OAAO,CAAU,EAAE,CAAC;QACpD,IACE,OAAQ,MAAwC,EAAE,CAAC,MAAM,CAAC,KAAK,UAAU,EACzE,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,iEAAiE,MAAM,YAAY,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAqB,EACrB,MAAe,EACf,OAAsC;IAEtC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAElB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAiB,CAAC,CAAC;IAEvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,IAAI,aAAa,KAAK,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CACjB,0GAA0G,MAAM,CAAC,aAAa,CAAC,GAAG,CACnI,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,SAAS,CACjB,mEAAmE,CAAC,yCAAyC,MAAM,CAAC,GAAG,CAAC,GAAG,CAC5H,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAsC;IAEtC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CACjB,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IAED,OAAO,CACL,OAAe,EACf,YAA6B,EAC7B,UAA8B,EAC9B,EAAE;QACF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAe,CAAC;QAE5C,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAe;YAC7C,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAqB,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE1C,IAAI,MAAM,IAAI,OAAQ,MAA2B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtE,OAAQ,MAA2B,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CACzC,CAAC;YACJ,CAAC;YAED,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"apply-mutation.decorator.js","sourceRoot":"","sources":["../../../domain/decorators/apply-mutation.decorator.ts"],"names":[],"mappings":"AAAA,sEAAsE;AA4CtE,SAAS,yBAAyB,CAChC,MAAe;IAEf,KAAK,MAAM,MAAM,IAAI,CAAC,UAAU,EAAE,OAAO,CAAU,EAAE,CAAC;QACpD,IACE,OAAQ,MAAwC,EAAE,CAAC,MAAM,CAAC,KAAK,UAAU,EACzE,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,iEAAiE,MAAM,YAAY,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CACvB,MAAqB,EACrB,MAAe,EACf,OAAsC;IAEtC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAElB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAiB,CAAC,CAAC;IAEvD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,IAAI,aAAa,KAAK,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YAChE,MAAM,IAAI,SAAS,CACjB,0GAA0G,MAAM,CAAC,aAAa,CAAC,GAAG,CACnI,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,SAAS,CACjB,qEAAqE,CACtE,CAAC;IACJ,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,IAAI,SAAS,CACjB,mEAAmE,CAAC,yCAAyC,MAAM,CAAC,GAAG,CAAC,GAAG,CAC5H,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAsC;IAEtC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CACjB,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,CACf,OAAe,EACf,YAA6B,EAC7B,UAA8B,EAC9B,EAAE;QACF,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAe,CAAC;QAE5C,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAe;YAC7C,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAqB,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE1C,IAAI,MAAM,IAAI,OAAQ,MAA2B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtE,OAAQ,MAA2B,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CACzC,CAAC;YACJ,CAAC;YAED,OAAO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { REQUEST_KIND } from '../request-kind.js';
1
2
  import type { IEvent } from './event.interface.js';
2
3
  /**
3
4
  * Base class for all domain events.
@@ -8,6 +9,8 @@ import type { IEvent } from './event.interface.js';
8
9
  */
9
10
  export declare abstract class DomainEvent implements IEvent {
10
11
  readonly id: string;
12
+ /** The kind a pipeline reads from this request: `'event'`. */
13
+ get [REQUEST_KIND](): 'event';
11
14
  protected constructor(id?: string);
12
15
  }
13
16
  //# sourceMappingURL=domain.event.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain.event.d.ts","sourceRoot":"","sources":["../../../domain/events/domain.event.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;GAMG;AACH,8BAAsB,WAAY,YAAW,MAAM;IACjD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,SAAS,aAAa,EAAE,CAAC,EAAE,MAAM,EAEhC;CACF"}
1
+ {"version":3,"file":"domain.event.d.ts","sourceRoot":"","sources":["../../../domain/events/domain.event.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;;;;;GAMG;AACH,8BAAsB,WAAY,YAAW,MAAM;IACjD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,8DAA8D;IAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,OAAO,CAE5B;IAED,SAAS,aAAa,EAAE,CAAC,EAAE,MAAM,EAEhC;CACF"}
@@ -1,5 +1,6 @@
1
1
  /* Copyright (C) 2026-present Aristotelis — see repository license. */
2
2
  import { uuidv7 } from '@cqrs-ddd/uuidv7';
3
+ import { REQUEST_KIND } from '../request-kind.js';
3
4
  /**
4
5
  * Base class for all domain events.
5
6
  *
@@ -9,6 +10,10 @@ import { uuidv7 } from '@cqrs-ddd/uuidv7';
9
10
  */
10
11
  export class DomainEvent {
11
12
  id;
13
+ /** The kind a pipeline reads from this request: `'event'`. */
14
+ get [REQUEST_KIND]() {
15
+ return 'event';
16
+ }
12
17
  constructor(id) {
13
18
  this.id = id ?? uuidv7();
14
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"domain.event.js","sourceRoot":"","sources":["../../../domain/events/domain.event.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C;;;;;;GAMG;AACH,MAAM,OAAgB,WAAW;IACf,EAAE,CAAS;IAE3B,YAAsB,EAAW;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,MAAM,EAAE,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"domain.event.js","sourceRoot":"","sources":["../../../domain/events/domain.event.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;;;GAMG;AACH,MAAM,OAAgB,WAAW;IACf,EAAE,CAAS;IAE3B,8DAA8D;IAC9D,IAAI,CAAC,YAAY,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,YAAsB,EAAW;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,MAAM,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"root-domain.event.d.ts","sourceRoot":"","sources":["../../../domain/events/root-domain.event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,sFAAsF;AACtF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,MAAM,CAAC,CAAA;CAAE,GACzD,CAAC,GACD,CAAC,SAAS,MAAM,GACd,CAAC,GACD,OAAO,CAAC;AAwCd;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,EACR,IAAI,2BAAiC,GACpC,CAAC,CA+DH;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe,CAC1B,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAC3C,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAC1B,SAAQ,WAAW;IACnB,0FAA0F;IAC1F,SAAgB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,uDAAuD;IACvD,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC,4DAA4D;IAC5D,SAAgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1C,SAAS,aAAa,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,EAqBlD;IAED;;;;OAIG;IACH,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAEjC;CACF"}
1
+ {"version":3,"file":"root-domain.event.d.ts","sourceRoot":"","sources":["../../../domain/events/root-domain.event.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,sFAAsF;AACtF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,MAAM,CAAC,CAAA;CAAE,GACzD,CAAC,GACD,CAAC,SAAS,MAAM,GACd,CAAC,GACD,OAAO,CAAC;AAwCd;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,EACR,IAAI,2BAAiC,GACpC,CAAC,CAgCH;AA0DD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe,CAC1B,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAC3C,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAC1B,SAAQ,WAAW;IACnB,0FAA0F;IAC1F,SAAgB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,uDAAuD;IACvD,SAAgB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErC,4DAA4D;IAC5D,SAAgB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1C,SAAS,aAAa,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,EAqBlD;IAED;;;;OAIG;IACH,YAAY,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAEjC;CACF"}
@@ -58,40 +58,52 @@ export function deepCloneAndFreeze(value, seen = new WeakMap()) {
58
58
  return Object.freeze(copy);
59
59
  }
60
60
  if (Array.isArray(value)) {
61
- const copy = [];
62
- seen.set(value, copy);
63
- for (let i = 0; i < value.length; i++) {
64
- copy[i] = deepCloneAndFreeze(value[i], seen);
65
- }
66
- return Object.freeze(copy);
61
+ return cloneArray(value, seen);
67
62
  }
68
63
  if (value instanceof Map) {
69
- const copy = new Map();
70
- seen.set(value, copy);
71
- for (const [k, v] of value.entries()) {
72
- copy.set(deepCloneAndFreeze(k, seen), deepCloneAndFreeze(v, seen));
73
- }
74
- return freezeBuiltIn(copy, MUTATING_MAP_METHODS, 'Map');
64
+ return cloneMap(value, seen);
75
65
  }
76
66
  if (value instanceof Set) {
77
- const copy = new Set();
78
- seen.set(value, copy);
79
- for (const v of value.values()) {
80
- copy.add(deepCloneAndFreeze(v, seen));
81
- }
82
- return freezeBuiltIn(copy, MUTATING_SET_METHODS, 'Set');
67
+ return cloneSet(value, seen);
83
68
  }
69
+ return cloneObject(value, seen);
70
+ }
71
+ function cloneArray(value, seen) {
72
+ const copy = [];
73
+ seen.set(value, copy);
74
+ for (let i = 0; i < value.length; i++) {
75
+ copy[i] = deepCloneAndFreeze(value[i], seen);
76
+ }
77
+ return Object.freeze(copy);
78
+ }
79
+ function cloneMap(value, seen) {
80
+ const copy = new Map();
81
+ seen.set(value, copy);
82
+ for (const [k, v] of value.entries()) {
83
+ copy.set(deepCloneAndFreeze(k, seen), deepCloneAndFreeze(v, seen));
84
+ }
85
+ return freezeBuiltIn(copy, MUTATING_MAP_METHODS, 'Map');
86
+ }
87
+ function cloneSet(value, seen) {
88
+ const copy = new Set();
89
+ seen.set(value, copy);
90
+ for (const v of value.values()) {
91
+ copy.add(deepCloneAndFreeze(v, seen));
92
+ }
93
+ return freezeBuiltIn(copy, MUTATING_SET_METHODS, 'Set');
94
+ }
95
+ function cloneObject(value, seen) {
84
96
  const proto = Object.getPrototypeOf(value);
85
97
  const copy = Object.create(proto === Object.prototype || proto === null ? proto : Object.prototype);
86
98
  seen.set(value, copy);
87
99
  for (const key of Reflect.ownKeys(value)) {
88
100
  const desc = Object.getOwnPropertyDescriptor(value, key);
89
- if (desc) {
90
- if ('value' in desc) {
91
- desc.value = deepCloneAndFreeze(desc.value, seen);
92
- }
93
- Object.defineProperty(copy, key, desc);
101
+ if (!desc)
102
+ continue;
103
+ if ('value' in desc) {
104
+ desc.value = deepCloneAndFreeze(desc.value, seen);
94
105
  }
106
+ Object.defineProperty(copy, key, desc);
95
107
  }
96
108
  return Object.freeze(copy);
97
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"root-domain.event.js","sourceRoot":"","sources":["../../../domain/events/root-domain.event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"root-domain.event.js","sourceRoot":"","sources":["../../../domain/events/root-domain.event.ts"],"names":[],"mappings":"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"}
@@ -27,8 +27,7 @@ export declare abstract class AggregateRoot<EventBase extends IEvent = IEvent> i
27
27
  get autoCommit(): boolean;
28
28
  /**
29
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`).
30
+ * returns `undefined` unless overridden or connected to a publisher.
32
31
  *
33
32
  * @param _event - The event to publish.
34
33
  * @param _dispatcherContext - Passed through to the publisher, such as `{ transaction }`.
@@ -57,7 +56,8 @@ export declare abstract class AggregateRoot<EventBase extends IEvent = IEvent> i
57
56
  *
58
57
  * @example
59
58
  * ```ts
60
- * const order = publisher.mergeObjectContext(Order.place(id));
59
+ * const order = Order.place(id);
60
+ * order.publishAll = (events) => eventBus.publishAll(events);
61
61
  * await order.commit({ transaction });
62
62
  * ```
63
63
  */
@@ -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,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
+ {"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;;;;;;;OAOG;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;;;;;;;;;;;;;;;;;OAiBG;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"}
@@ -33,8 +33,7 @@ export class AggregateRoot {
33
33
  }
34
34
  /**
35
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`).
36
+ * returns `undefined` unless overridden or connected to a publisher.
38
37
  *
39
38
  * @param _event - The event to publish.
40
39
  * @param _dispatcherContext - Passed through to the publisher, such as `{ transaction }`.
@@ -67,7 +66,8 @@ export class AggregateRoot {
67
66
  *
68
67
  * @example
69
68
  * ```ts
70
- * const order = publisher.mergeObjectContext(Order.place(id));
69
+ * const order = Order.place(id);
70
+ * order.publishAll = (events) => eventBus.publishAll(events);
71
71
  * await order.commit({ transaction });
72
72
  * ```
73
73
  */
@@ -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":"AAAA;;;GAGG;AAQH,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAClD,MAAM,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,MAAM,OAAgB,aAAa;IAGzB,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC,eAAe,CAAC,GAAgB,EAAE,CAAC;IAErD;;OAEG;IACH,IAAI,UAAU,CAAC,KAAc;QAC3B,IAAI,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACH,OAAO,CACL,MAAS,EACT,kBAA4B;QAE5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CACR,OAAY,EACZ,kBAA4B;QAE5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,iBAA2B;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,EAC1B,iBAAiB,CAClB,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,OAAoB;QAClC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CACH,KAAQ,EACR,sBAAsB,GAAgC,EAAE;QAExD,MAAM,aAAa,GACjB,CAAC,OAAO,sBAAsB,KAAK,SAAS;YAC1C,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;QAEnD,MAAM,WAAW,GACf,CAAC,OAAO,sBAAsB,KAAK,SAAS;YAC1C,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;QAEnD,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACO,eAAe,CACvB,KAAQ;QAER,MAAM,OAAO,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAI,IAAgC,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,OAAO,MAAM,KAAK,UAAU;YACjC,CAAC,CAAE,MAA6B;YAChC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,YAAY,CAAC,KAAc;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,OAAO,CAAC;IAC7C,CAAC;CACF"}
@@ -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,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
+ {"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,CAe1D;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,CA2BV;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"}