@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.
- package/COMMERCIAL_LICENSE.txt +14 -10
- package/README.md +3 -3
- package/dist/application/base.command.d.ts +3 -0
- package/dist/application/base.command.d.ts.map +1 -1
- package/dist/application/base.command.js +5 -0
- package/dist/application/base.command.js.map +1 -1
- package/dist/application/base.query.d.ts +3 -0
- package/dist/application/base.query.d.ts.map +1 -1
- package/dist/application/base.query.js +5 -0
- package/dist/application/base.query.js.map +1 -1
- package/dist/application/command-base.handler.d.ts +6 -10
- package/dist/application/command-base.handler.d.ts.map +1 -1
- package/dist/application/command-base.handler.js +16 -18
- package/dist/application/command-base.handler.js.map +1 -1
- package/dist/application/ports/command-repository.port.d.ts +1 -4
- package/dist/application/ports/command-repository.port.d.ts.map +1 -1
- package/dist/application/ports/query-repository.port.d.ts +0 -1
- package/dist/application/ports/query-repository.port.d.ts.map +1 -1
- package/dist/domain/decorators/apply-mutation.decorator.d.ts.map +1 -1
- package/dist/domain/decorators/apply-mutation.decorator.js +2 -1
- package/dist/domain/decorators/apply-mutation.decorator.js.map +1 -1
- package/dist/domain/events/domain.event.d.ts +3 -0
- package/dist/domain/events/domain.event.d.ts.map +1 -1
- package/dist/domain/events/domain.event.js +5 -0
- package/dist/domain/events/domain.event.js.map +1 -1
- package/dist/domain/events/root-domain.event.d.ts.map +1 -1
- package/dist/domain/events/root-domain.event.js +35 -23
- package/dist/domain/events/root-domain.event.js.map +1 -1
- package/dist/domain/models/aggregate-root.d.ts +3 -3
- package/dist/domain/models/aggregate-root.d.ts.map +1 -1
- package/dist/domain/models/aggregate-root.js +3 -3
- package/dist/domain/models/aggregate-root.js.map +1 -1
- package/dist/domain/models/root.entity.d.ts.map +1 -1
- package/dist/domain/models/root.entity.js.map +1 -1
- package/dist/domain/request-kind.d.ts +7 -0
- package/dist/domain/request-kind.d.ts.map +1 -0
- package/dist/domain/request-kind.js +8 -0
- package/dist/domain/request-kind.js.map +1 -0
- package/dist/persistence/cache/cache-logger.d.ts +2 -2
- package/dist/persistence/cache/memory.cache.d.ts +0 -1
- package/dist/persistence/cache/memory.cache.d.ts.map +1 -1
- package/dist/persistence/cache/memory.cache.js +3 -4
- package/dist/persistence/cache/memory.cache.js.map +1 -1
- package/dist/persistence/command-repository.abstract.d.ts +2 -3
- package/dist/persistence/command-repository.abstract.d.ts.map +1 -1
- package/dist/persistence/command-repository.abstract.js +2 -3
- package/dist/persistence/command-repository.abstract.js.map +1 -1
- package/dist/persistence/decorators/acknowledge-persisted.decorator.d.ts +0 -2
- package/dist/persistence/decorators/acknowledge-persisted.decorator.d.ts.map +1 -1
- package/dist/persistence/decorators/acknowledge-persisted.decorator.js +0 -2
- package/dist/persistence/decorators/acknowledge-persisted.decorator.js.map +1 -1
- package/dist/persistence/decorators/cache.decorator.d.ts.map +1 -1
- package/dist/persistence/decorators/cache.decorator.js +149 -107
- package/dist/persistence/decorators/cache.decorator.js.map +1 -1
- package/dist/persistence/decorators/from-cache.decorator.d.ts.map +1 -1
- package/dist/persistence/decorators/from-cache.decorator.js +131 -86
- package/dist/persistence/decorators/from-cache.decorator.js.map +1 -1
- package/dist/persistence/decorators/map-persistence-errors.decorator.d.ts +0 -1
- package/dist/persistence/decorators/map-persistence-errors.decorator.d.ts.map +1 -1
- package/dist/persistence/decorators/map-persistence-errors.decorator.js +2 -2
- package/dist/persistence/decorators/map-persistence-errors.decorator.js.map +1 -1
- package/dist/persistence/helpers/cache-barrier.helper.d.ts.map +1 -1
- package/dist/persistence/helpers/cache-barrier.helper.js +7 -5
- package/dist/persistence/helpers/cache-barrier.helper.js.map +1 -1
- package/dist/persistence/helpers/cache-key.helper.d.ts.map +1 -1
- package/dist/persistence/helpers/cache-key.helper.js +2 -1
- package/dist/persistence/helpers/cache-key.helper.js.map +1 -1
- package/dist/persistence/helpers/cache-version.helper.d.ts.map +1 -1
- package/dist/persistence/helpers/cache-version.helper.js +3 -5
- package/dist/persistence/helpers/cache-version.helper.js.map +1 -1
- package/dist/persistence/query-repository.abstract.d.ts +4 -6
- package/dist/persistence/query-repository.abstract.d.ts.map +1 -1
- package/dist/persistence/query-repository.abstract.js +4 -6
- package/dist/persistence/query-repository.abstract.js.map +1 -1
- package/package.json +9 -9
package/COMMERCIAL_LICENSE.txt
CHANGED
|
@@ -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
|
|
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:
|
|
17
|
-
|
|
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:
|
|
20
|
-
|
|
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:
|
|
23
|
-
|
|
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:
|
|
26
|
-
|
|
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/
|
|
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()`.
|
|
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/
|
|
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":"
|
|
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;
|
|
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
|
|
21
|
-
* `@CommandHandler` and pass
|
|
22
|
-
* {@link IDomainEventPublisher};
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
|
21
|
-
* `@CommandHandler` and pass
|
|
22
|
-
* {@link IDomainEventPublisher};
|
|
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
|
-
*
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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"}
|
|
@@ -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
|
|
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,
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
91
|
-
|
|
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":"AAAA,sEAAsE;AAItE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,MAAM,qBAAqB,GAAG;IAC5B,SAAS;IACT,iBAAiB;IACjB,oBAAoB;IACpB,YAAY;IACZ,eAAe;IACf,YAAY;IACZ,eAAe;IACf,UAAU;IACV,aAAa;IACb,SAAS;IACT,YAAY;IACZ,UAAU;IACV,aAAa;IACb,aAAa;IACb,gBAAgB;CACR,CAAC;AAEX,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AACjE,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAC;AAEjE,SAAS,aAAa,CACpB,IAAO,EACP,QAA2B,EAC3B,IAAY;IAEZ,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;YAClC,KAAK,EAAE,GAAG,EAAE;gBACV,MAAM,IAAI,SAAS,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAQ,EACR,IAAI,GAAG,IAAI,OAAO,EAAmB;IAErC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,OAAO,aAAa,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,CAAiB,CAAC;IAC5E,CAAC;IAED,IAAI,KAAK,YAAY,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAiB,CAAC;IAC7C,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAc,EAAE,CAAC;
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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":"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
|
|
1
|
+
{"version":3,"file":"aggregate-root.js","sourceRoot":"","sources":["../../../domain/models/aggregate-root.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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"}
|