@cqrs-ddd/core 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -16
- package/dist/application/base.command.d.ts.map +1 -1
- package/dist/application/base.command.js.map +1 -1
- package/dist/application/base.query.d.ts.map +1 -1
- package/dist/application/base.query.js.map +1 -1
- package/dist/application/command-base.handler.d.ts +17 -7
- package/dist/application/command-base.handler.d.ts.map +1 -1
- package/dist/application/command-base.handler.js +16 -5
- package/dist/application/command-base.handler.js.map +1 -1
- package/dist/application/ports/cache.port.js.map +1 -1
- package/dist/application/ports/domain-event-publisher.port.d.ts +3 -1
- package/dist/application/ports/domain-event-publisher.port.d.ts.map +1 -1
- package/dist/application/request-fields.helper.js.map +1 -1
- package/dist/application/tenant-resolver.d.ts +20 -2
- package/dist/application/tenant-resolver.d.ts.map +1 -1
- package/dist/application/tenant-resolver.js +24 -3
- package/dist/application/tenant-resolver.js.map +1 -1
- package/dist/domain/decorators/apply-mutation.decorator.js.map +1 -1
- package/dist/domain/decorators/mutable.decorator.js.map +1 -1
- package/dist/domain/events/domain.event.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/domain/exceptions/concurrency-conflict.error.d.ts.map +1 -1
- package/dist/domain/exceptions/concurrency-conflict.error.js.map +1 -1
- package/dist/domain/exceptions/domain.exception.d.ts.map +1 -1
- package/dist/domain/exceptions/domain.exception.js.map +1 -1
- package/dist/domain/exceptions/entity-not-found.exception.d.ts.map +1 -1
- package/dist/domain/exceptions/entity-not-found.exception.js.map +1 -1
- package/dist/domain/exceptions/invalid-value.exception.d.ts.map +1 -1
- package/dist/domain/exceptions/invalid-value.exception.js.map +1 -1
- package/dist/domain/exceptions/missing-tenant-context.exception.d.ts.map +1 -1
- package/dist/domain/exceptions/missing-tenant-context.exception.js.map +1 -1
- package/dist/domain/exceptions/transient-operation.error.d.ts.map +1 -1
- package/dist/domain/exceptions/transient-operation.error.js.map +1 -1
- package/dist/domain/exceptions/unknown-mutable-field.error.d.ts.map +1 -1
- package/dist/domain/exceptions/unknown-mutable-field.error.js.map +1 -1
- package/dist/domain/index.d.ts +1 -0
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/index.js +1 -0
- package/dist/domain/index.js.map +1 -1
- package/dist/domain/interfaces/aggregate-root.interface.d.ts +41 -0
- package/dist/domain/interfaces/aggregate-root.interface.d.ts.map +1 -0
- package/dist/domain/interfaces/aggregate-root.interface.js +4 -0
- package/dist/domain/interfaces/aggregate-root.interface.js.map +1 -0
- package/dist/domain/models/aggregate-root.d.ts +33 -21
- package/dist/domain/models/aggregate-root.d.ts.map +1 -1
- package/dist/domain/models/aggregate-root.js +37 -7
- 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/rules/number.rule.js.map +1 -1
- package/dist/domain/rules/rule-support.js.map +1 -1
- package/dist/domain/rules/text.rule.js.map +1 -1
- package/dist/http/domain-error-http-status.js.map +1 -1
- package/dist/persistence/cache/cache-logger.js.map +1 -1
- package/dist/persistence/cache/memory.cache.d.ts.map +1 -1
- package/dist/persistence/cache/memory.cache.js.map +1 -1
- package/dist/persistence/command-repository.abstract.d.ts.map +1 -1
- package/dist/persistence/command-repository.abstract.js.map +1 -1
- package/dist/persistence/decorators/acknowledge-persisted.decorator.d.ts.map +1 -1
- package/dist/persistence/decorators/acknowledge-persisted.decorator.js.map +1 -1
- package/dist/persistence/decorators/cache.decorator.js.map +1 -1
- package/dist/persistence/decorators/from-cache.decorator.js.map +1 -1
- package/dist/persistence/decorators/map-persistence-errors.decorator.d.ts.map +1 -1
- package/dist/persistence/decorators/map-persistence-errors.decorator.js.map +1 -1
- package/dist/persistence/decorators/persisted-write.decorator.d.ts.map +1 -1
- package/dist/persistence/decorators/persisted-write.decorator.js.map +1 -1
- package/dist/persistence/helpers/cache-barrier.helper.js.map +1 -1
- package/dist/persistence/helpers/cache-key.helper.js +2 -2
- package/dist/persistence/helpers/cache-key.helper.js.map +1 -1
- package/dist/persistence/helpers/cache-owner.helper.js.map +1 -1
- package/dist/persistence/helpers/cache-snapshot.helper.js.map +1 -1
- package/dist/persistence/helpers/cache-version.helper.js.map +1 -1
- package/dist/persistence/persistence-dialect.js.map +1 -1
- package/dist/persistence/query-repository.abstract.d.ts.map +1 -1
- package/dist/persistence/query-repository.abstract.js.map +1 -1
- package/package.json +7 -9
package/README.md
CHANGED
|
@@ -38,7 +38,7 @@ pnpm add @cqrs-ddd/core
|
|
|
38
38
|
npm install @cqrs-ddd/core
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Requires Node.js 22 or later. It installs `@cqrs-ddd/uuidv7` and
|
|
41
|
+
Requires Node.js 22.12 or later. It installs `@cqrs-ddd/uuidv7` and
|
|
42
42
|
`@cqrs-ddd/safe-stringify`, which have no dependencies. To persist with MikroORM, add
|
|
43
43
|
`@cqrs-ddd/mikro-orm` and `@mikro-orm/core` 7.
|
|
44
44
|
|
|
@@ -49,8 +49,8 @@ needs.
|
|
|
49
49
|
|
|
50
50
|
| Entry | Holds |
|
|
51
51
|
| --- | --- |
|
|
52
|
-
| `@cqrs-ddd/core/domain` | `AggregateRoot`, `RootEntity`, `RootEntitySnapshot`, `@Mutable`, `getMutableFields`, `@ApplyMutation`, `IEvent`, `DomainEvent`, `RootDomainEvent`, `deepCloneAndFreeze`, `textRule`, `numberRule`, `ValueViolation`, and the errors `DomainException`, `InvalidValueException`, `EntityNotFoundException`, `ConcurrencyConflictError`, `TransientOperationError` (with `isTransientOperationError`), `MissingTenantContextError`, `UnknownMutableFieldError` |
|
|
53
|
-
| `@cqrs-ddd/core/application` | `BaseCommand`, `BaseQuery`, `IQueryOptions`, `CommandBaseHandler`, the ports (`IDomainEventPublisher`, `ICommandRepository`, `IQueryRepository`, `IWriteSideAggregateRepository`, `ICache`, `IVersionedCache`, `isVersionedCache`), `
|
|
52
|
+
| `@cqrs-ddd/core/domain` | `AggregateRoot`, `IAggregateRoot`, `ApplyEventOptions`, `RootEntity`, `RootEntitySnapshot`, `@Mutable`, `getMutableFields`, `@ApplyMutation`, `IEvent`, `DomainEvent`, `RootDomainEvent`, `deepCloneAndFreeze`, `textRule`, `numberRule`, `ValueViolation`, and the errors `DomainException`, `InvalidValueException`, `EntityNotFoundException`, `ConcurrencyConflictError`, `TransientOperationError` (with `isTransientOperationError`), `MissingTenantContextError`, `UnknownMutableFieldError` |
|
|
53
|
+
| `@cqrs-ddd/core/application` | `BaseCommand`, `BaseQuery`, `IQueryOptions`, `CommandBaseHandler`, the ports (`IDomainEventPublisher`, `ICommandRepository`, `IQueryRepository`, `IWriteSideAggregateRepository`, `ICache`, `IVersionedCache`, `isVersionedCache`), `requireTenant`, `setTenantResolver`, and the deprecated `requireTenantId` |
|
|
54
54
|
| `@cqrs-ddd/core/persistence` | the lifecycle decorators (`@PersistedWrite`, `@Cache`, `@AcknowledgePersisted`, `@MapPersistenceErrors`, `@FromCache`), `QueryRepository`, `CommandRepository`, `MemoryCache` and its injection token `CACHE_TOKEN`, `cacheKey`, `cacheKeyTemplate`, `isCacheNewer`, `toCacheSnapshot`, the mutation-barrier helpers, `consoleCacheLogger`, `safeWarn`, and the persistence dialect contract (`IPersistenceDialect`, `setPersistenceDialect`, `persistenceDialect`) |
|
|
55
55
|
| `@cqrs-ddd/core/http` | `domainErrorHttpStatus` |
|
|
56
56
|
| `@cqrs-ddd/core` | all of the above, plus the `Method` type |
|
|
@@ -338,19 +338,29 @@ const handler = new UpdateUserHandler(users, {
|
|
|
338
338
|
await handler.execute(new UpdateUserCommand(id, 'bob'));
|
|
339
339
|
```
|
|
340
340
|
|
|
341
|
-
- `handle()` returns the aggregate, or a result carrying it as `aggregate
|
|
342
|
-
`execute()` calls it, publishes the buffered events once
|
|
343
|
-
`eventBus.publishAll(events)
|
|
341
|
+
- `handle()` returns the aggregate, or a result carrying it as `aggregate`; any
|
|
342
|
+
`IAggregateRoot` qualifies. `execute()` calls it, publishes the buffered events once
|
|
343
|
+
with `eventBus.publishAll(events, aggregate)` (the aggregate is the dispatcher context),
|
|
344
|
+
clears the buffer and returns the result unchanged.
|
|
344
345
|
- A rejected `handle()` publishes nothing. If `publishAll()` throws, the error
|
|
345
346
|
propagates and the events stay buffered.
|
|
347
|
+
- If `publishAll()` returns a promise, `execute()` waits for it after clearing the buffer.
|
|
348
|
+
Its rejection rejects the command, although the aggregate is already persisted; the
|
|
349
|
+
events are not published a second time.
|
|
346
350
|
- Any object with `publishAll(events)` is an `IDomainEventPublisher`.
|
|
347
351
|
|
|
348
|
-
**`AggregateRoot.commit()` publishes nothing by default.** It hands
|
|
349
|
-
aggregate's own `
|
|
350
|
-
|
|
351
|
-
connected publisher therefore drops the events; so
|
|
352
|
-
`CommandBaseHandler` publish, or read `getUncommittedEvents()` and
|
|
353
|
-
yourself.
|
|
352
|
+
**`AggregateRoot.commit()` publishes nothing by default.** It hands a copy of the
|
|
353
|
+
buffer to the aggregate's own `publishAll` hook (`apply()` calls `publish` while
|
|
354
|
+
`autoCommit` is on), which does nothing until a publisher is connected, then clears the
|
|
355
|
+
buffer. Calling `commit()` without a connected publisher therefore drops the events; so
|
|
356
|
+
does `autoCommit`. Let `CommandBaseHandler` publish, or read `getUncommittedEvents()` and
|
|
357
|
+
call `uncommit()` yourself.
|
|
358
|
+
|
|
359
|
+
`commit(dispatcherContext?)` passes the context, such as `{ transaction }`, to
|
|
360
|
+
`publishAll` and returns what it returns. The buffer is cleared once `publishAll`
|
|
361
|
+
returns, before an asynchronous publisher settles, so `await aggregate.commit()` waits
|
|
362
|
+
for the publisher and receives its error without risking a second publication; if
|
|
363
|
+
`publishAll` throws, the events stay buffered.
|
|
354
364
|
|
|
355
365
|
## Write-side repositories
|
|
356
366
|
|
|
@@ -585,8 +595,19 @@ requestTenant.run(tenantId, () => handle(request));
|
|
|
585
595
|
There is no shared namespace: a missing or empty tenant, or a resolver that returns
|
|
586
596
|
nothing, throws. A single-tenant deployment passes a fixed id or registers
|
|
587
597
|
`setTenantResolver(() => 'single')`. The same resolution is public as
|
|
588
|
-
`
|
|
589
|
-
tenant, such as an idempotency or rate-limit key
|
|
598
|
+
`requireTenant(purpose, source?)`, for any other key that must be partitioned by
|
|
599
|
+
tenant, such as an idempotency or rate-limit key, and for any code that needs the
|
|
600
|
+
current tenant and must fail when there is none:
|
|
601
|
+
|
|
602
|
+
```typescript
|
|
603
|
+
import { requireTenant } from '@cqrs-ddd/core/application';
|
|
604
|
+
|
|
605
|
+
requireTenant('access token issuance'); // the resolver's tenant
|
|
606
|
+
requireTenant('users.create idempotency key', ctx); // ctx.tenantId, else the resolver's
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
`requireTenantId(source, purpose)` is deprecated: it takes the same arguments in the
|
|
610
|
+
reverse order and calls `requireTenant`.
|
|
590
611
|
|
|
591
612
|
`cacheKey` keys have the form `${tenant}:${resource}:v1:${sha256}`, hashed over a
|
|
592
613
|
key-sorted serialization of `[tenant, resource, conditions]`. The format is frozen, so
|
|
@@ -611,8 +632,14 @@ rest to it.
|
|
|
611
632
|
|
|
612
633
|
Nothing in this package imports NestJS; the fit is structural.
|
|
613
634
|
|
|
614
|
-
- The NestJS CQRS `EventBus` has `publishAll(events)`, so it is an
|
|
615
|
-
`IDomainEventPublisher`: a handler passes its injected bus to `super(eventBus)
|
|
635
|
+
- The NestJS CQRS `EventBus` has `publishAll(events, dispatcherContext)`, so it is an
|
|
636
|
+
`IDomainEventPublisher`: a handler passes its injected bus to `super(eventBus)`, and
|
|
637
|
+
the bus hands the aggregate to its configured publisher as the dispatcher context.
|
|
638
|
+
- `AggregateRoot` satisfies NestJS's `IAggregateRoot`, and a NestJS `AggregateRoot`
|
|
639
|
+
satisfies this package's `IAggregateRoot`. `EventPublisher.mergeObjectContext(aggregate)`
|
|
640
|
+
connects an aggregate to the `EventBus`: `commit()` then publishes with the aggregate as
|
|
641
|
+
the context, `commit({ transaction })` with that context, and both return the bus's
|
|
642
|
+
result.
|
|
616
643
|
- `CommandBaseHandler.execute(command)` is the method the NestJS command bus calls, so a
|
|
617
644
|
class decorated with `@CommandHandler` extends it directly.
|
|
618
645
|
- `BaseCommand`, `BaseQuery` and the domain events are plain classes that NestJS
|
|
@@ -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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.command.js","sourceRoot":"","sources":["../../application/base.command.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,mEAAsE;AAEtE;;;;;;GAMG;AACH,gFAAgF;AAChF
|
|
1
|
+
{"version":3,"file":"base.command.js","sourceRoot":"","sources":["../../application/base.command.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,mEAAsE;AAEtE;;;;;;GAMG;AACH,gFAAgF;AAChF;IAIE,YAAY,gBAAoC;QAC9C,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,IAAA,oCAAY,EAAC,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;YACzD,IAAA,oCAAY,EAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM;QACJ,OAAO,IAAA,qCAAa,EAAC,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.query.d.ts","sourceRoot":"","sources":["../../application/base.query.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;;;;;;;;;;;;;;;;;;;;;;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;
|
|
1
|
+
{"version":3,"file":"base.query.d.ts","sourceRoot":"","sources":["../../application/base.query.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;;;;;;;;;;;;;;;;;;;;;;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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.query.js","sourceRoot":"","sources":["../../application/base.query.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAGtE,mEAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH
|
|
1
|
+
{"version":3,"file":"base.query.js","sourceRoot":"","sources":["../../application/base.query.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAGtE,mEAAsE;AAEtE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH;IAQE,YACE,OAAgC,EAChC,gBAAoC;QAEpC,IAAA,oCAAY,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACzD,IAAA,oCAAY,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QACzD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,IAAA,oCAAY,EAAC,IAAI,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;YACzD,IAAA,oCAAY,EAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM;QACJ,OAAO,IAAA,qCAAa,EAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { IAggregateRoot } from '../domain/interfaces/aggregate-root.interface';
|
|
2
2
|
import type { IDomainEventPublisher } from './ports/domain-event-publisher.port';
|
|
3
3
|
/**
|
|
4
4
|
* Result shapes that allow `CommandBaseHandler` to publish buffered aggregate events.
|
|
5
5
|
* Return either the aggregate itself or an application result with an `aggregate` field.
|
|
6
6
|
*/
|
|
7
|
-
export type AggregateBearingResult =
|
|
8
|
-
readonly aggregate:
|
|
7
|
+
export type AggregateBearingResult = IAggregateRoot | {
|
|
8
|
+
readonly aggregate: IAggregateRoot;
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
11
11
|
* Base class for all CQRS command handlers.
|
|
12
12
|
*
|
|
13
13
|
* Wraps every concrete command handler with shared lifecycle behavior:
|
|
14
14
|
* 1. Executes command logic via the abstract {@link handle} method.
|
|
15
|
-
* 2. If the result is an {@link
|
|
16
|
-
*
|
|
17
|
-
* {@link IDomainEventPublisher}
|
|
15
|
+
* 2. If the result is an aggregate root ({@link IAggregateRoot}, such as an
|
|
16
|
+
* {@link AggregateRoot}) or an object containing one as `aggregate`, its buffered
|
|
17
|
+
* uncommitted domain events are published through the {@link IDomainEventPublisher},
|
|
18
|
+
* with the aggregate as the dispatcher context, and cleared after publication.
|
|
18
19
|
*
|
|
19
20
|
* It is framework-neutral. With NestJS CQRS, decorate the subclass with
|
|
20
21
|
* `@CommandHandler` and pass the injected `EventBus`, which satisfies
|
|
@@ -93,13 +94,22 @@ export declare abstract class CommandBaseHandler<TCommand = unknown, TResult ext
|
|
|
93
94
|
* `CommandBus`).
|
|
94
95
|
*
|
|
95
96
|
* Delegates to {@link handle} and automatically publishes any uncommitted domain
|
|
96
|
-
* events if the result is an
|
|
97
|
+
* 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()`.
|
|
100
|
+
*
|
|
101
|
+
* The events are handed to the publisher and cleared from the aggregate, then
|
|
102
|
+
* `execute()` awaits what `publishAll()` returned: an asynchronous publisher
|
|
103
|
+
* delays the result, and its rejection rejects the command, although the
|
|
104
|
+
* aggregate is already persisted. A publisher that throws synchronously leaves
|
|
105
|
+
* the events buffered.
|
|
97
106
|
*
|
|
98
107
|
* Persistence and in-memory event publication are not atomic. A crash after
|
|
99
108
|
* persistence can lose events; durable delivery requires an explicit outbox.
|
|
100
109
|
*
|
|
101
110
|
* @param command - The command dispatched through the command bus.
|
|
102
111
|
* @returns The result produced by {@link handle}.
|
|
112
|
+
* @throws The error of {@link handle}, or of a publisher that throws or rejects.
|
|
103
113
|
*/
|
|
104
114
|
execute(command: TCommand): Promise<TResult>;
|
|
105
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-base.handler.d.ts","sourceRoot":"","sources":["../../application/command-base.handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
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,+CAA+C,CAAC;AAEpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAEjF;;;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"}
|
|
@@ -15,9 +15,10 @@ function isAggregate(obj) {
|
|
|
15
15
|
*
|
|
16
16
|
* Wraps every concrete command handler with shared lifecycle behavior:
|
|
17
17
|
* 1. Executes command logic via the abstract {@link handle} method.
|
|
18
|
-
* 2. If the result is an {@link
|
|
19
|
-
*
|
|
20
|
-
* {@link IDomainEventPublisher}
|
|
18
|
+
* 2. If the result is an aggregate root ({@link IAggregateRoot}, such as an
|
|
19
|
+
* {@link AggregateRoot}) or an object containing one as `aggregate`, its buffered
|
|
20
|
+
* uncommitted domain events are published through the {@link IDomainEventPublisher},
|
|
21
|
+
* with the aggregate as the dispatcher context, and cleared after publication.
|
|
21
22
|
*
|
|
22
23
|
* It is framework-neutral. With NestJS CQRS, decorate the subclass with
|
|
23
24
|
* `@CommandHandler` and pass the injected `EventBus`, which satisfies
|
|
@@ -87,13 +88,22 @@ class CommandBaseHandler {
|
|
|
87
88
|
* `CommandBus`).
|
|
88
89
|
*
|
|
89
90
|
* Delegates to {@link handle} and automatically publishes any uncommitted domain
|
|
90
|
-
* events if the result is an
|
|
91
|
+
* events if the result is an aggregate root (or an object containing one as
|
|
92
|
+
* `aggregate`). The publisher receives the aggregate as its dispatcher context,
|
|
93
|
+
* as NestJS's `EventPublisher` passes it on `commit()`.
|
|
94
|
+
*
|
|
95
|
+
* The events are handed to the publisher and cleared from the aggregate, then
|
|
96
|
+
* `execute()` awaits what `publishAll()` returned: an asynchronous publisher
|
|
97
|
+
* delays the result, and its rejection rejects the command, although the
|
|
98
|
+
* aggregate is already persisted. A publisher that throws synchronously leaves
|
|
99
|
+
* the events buffered.
|
|
91
100
|
*
|
|
92
101
|
* Persistence and in-memory event publication are not atomic. A crash after
|
|
93
102
|
* persistence can lose events; durable delivery requires an explicit outbox.
|
|
94
103
|
*
|
|
95
104
|
* @param command - The command dispatched through the command bus.
|
|
96
105
|
* @returns The result produced by {@link handle}.
|
|
106
|
+
* @throws The error of {@link handle}, or of a publisher that throws or rejects.
|
|
97
107
|
*/
|
|
98
108
|
async execute(command) {
|
|
99
109
|
const commandResult = await this.handle(command);
|
|
@@ -108,8 +118,9 @@ class CommandBaseHandler {
|
|
|
108
118
|
if (aggregate) {
|
|
109
119
|
const events = [...aggregate.getUncommittedEvents()];
|
|
110
120
|
if (events.length > 0) {
|
|
111
|
-
this.eventBus.publishAll(events);
|
|
121
|
+
const published = this.eventBus.publishAll(events, aggregate);
|
|
112
122
|
aggregate.uncommit();
|
|
123
|
+
await published;
|
|
113
124
|
}
|
|
114
125
|
}
|
|
115
126
|
return commandResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-base.handler.js","sourceRoot":"","sources":["../../application/command-base.handler.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;
|
|
1
|
+
{"version":3,"file":"command-base.handler.js","sourceRoot":"","sources":["../../application/command-base.handler.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAGtE,oEAAgE;AAWhE,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,CACL,GAAG,YAAY,8BAAa;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;IAU2C,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.port.js","sourceRoot":"","sources":["../../../application/ports/cache.port.ts"],"names":[],"mappings":";AAAA,sEAAsE;;
|
|
1
|
+
{"version":3,"file":"cache.port.js","sourceRoot":"","sources":["../../../application/ports/cache.port.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAwHtE;;GAEG;AACH,0BACE,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,CAAC,aAAa,IAAI,KAAK;YACrB,KAA4B,CAAC,WAAW,KAAK,IAAI,CAAC;YACnD,CAAC,OAAQ,KAA4B,CAAC,SAAS,KAAK,UAAU;gBAC5D,OAAQ,KAA4B,CAAC,UAAU,KAAK,UAAU;gBAC9D,OAAQ,KAA4B,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAClE,CAAC;AACJ,CAAC"}
|
|
@@ -4,6 +4,8 @@ import type { IEvent } from '../../domain/events/event.interface';
|
|
|
4
4
|
*
|
|
5
5
|
* Any bus with a `publishAll(events)` method fits, including the NestJS CQRS
|
|
6
6
|
* `EventBus`, so a Nest handler passes its injected `EventBus` unchanged.
|
|
7
|
+
* `CommandBaseHandler` passes the aggregate as `dispatcherContext`, which the
|
|
8
|
+
* NestJS `EventBus` hands to its configured publisher.
|
|
7
9
|
*
|
|
8
10
|
* @example
|
|
9
11
|
* ```ts
|
|
@@ -13,6 +15,6 @@ import type { IEvent } from '../../domain/events/event.interface';
|
|
|
13
15
|
* ```
|
|
14
16
|
*/
|
|
15
17
|
export interface IDomainEventPublisher {
|
|
16
|
-
publishAll(events: IEvent[]): unknown;
|
|
18
|
+
publishAll(events: IEvent[], dispatcherContext?: unknown): unknown;
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=domain-event-publisher.port.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-event-publisher.port.d.ts","sourceRoot":"","sources":["../../../application/ports/domain-event-publisher.port.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"domain-event-publisher.port.d.ts","sourceRoot":"","sources":["../../../application/ports/domain-event-publisher.port.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-fields.helper.js","sourceRoot":"","sources":["../../application/request-fields.helper.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"request-fields.helper.js","sourceRoot":"","sources":["../../application/request-fields.helper.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;AAEtE,uFAAuF;AACvF,sBACE,MAAc,EACd,GAAW,EACX,KAAc;IAEd,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,qFAAqF;AACrF,uBAA8B,OAAe;IAC3C,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -41,15 +41,33 @@ export declare function setTenantResolver(resolver: TenantResolver | undefined):
|
|
|
41
41
|
* idempotency and rate limits must never collapse several tenants into one
|
|
42
42
|
* shared namespace.
|
|
43
43
|
*
|
|
44
|
-
* @param source - The explicit tenant, or `undefined` to use the resolver.
|
|
45
44
|
* @param purpose - What the tenant is for, named in the error.
|
|
45
|
+
* @param source - The explicit tenant; omitted, the resolver's tenant.
|
|
46
46
|
* @returns The non-empty tenant id.
|
|
47
47
|
* @throws {MissingTenantContextError} When no tenant can be resolved.
|
|
48
48
|
*
|
|
49
49
|
* @example
|
|
50
50
|
* ```ts
|
|
51
|
+
* // The tenant of the running unit of work, through the resolver:
|
|
52
|
+
* const tenantId = requireTenant('access token issuance');
|
|
53
|
+
*
|
|
51
54
|
* // A key factory that receives a request or job context:
|
|
52
|
-
* const
|
|
55
|
+
* const keyTenant = requireTenant('users.create idempotency key', ctx);
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function requireTenant(purpose: string, source?: TenantSource): string;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the tenant for a security-sensitive operation, or fails closed; see
|
|
61
|
+
* {@link requireTenant}, which it calls.
|
|
62
|
+
*
|
|
63
|
+
* @deprecated Use {@link requireTenant}, which takes the required `purpose`
|
|
64
|
+
* first and the optional `source` last.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts
|
|
68
|
+
* requireTenantId(ctx, 'users.create idempotency key');
|
|
69
|
+
* // becomes
|
|
70
|
+
* requireTenant('users.create idempotency key', ctx);
|
|
53
71
|
* ```
|
|
54
72
|
*/
|
|
55
73
|
export declare function requireTenantId(source: TenantSource | undefined, purpose: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-resolver.d.ts","sourceRoot":"","sources":["../../application/tenant-resolver.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/E;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AAItD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAE5E;AAED
|
|
1
|
+
{"version":3,"file":"tenant-resolver.d.ts","sourceRoot":"","sources":["../../application/tenant-resolver.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/E;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,MAAM,GAAG,SAAS,CAAC;AAItD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,CAE5E;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAO5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GACd,MAAM,CAER"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/* Copyright (C) 2026-present Aristotelis — see repository license. */
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.setTenantResolver = setTenantResolver;
|
|
5
|
+
exports.requireTenant = requireTenant;
|
|
5
6
|
exports.requireTenantId = requireTenantId;
|
|
6
7
|
const missing_tenant_context_exception_1 = require("../domain/exceptions/missing-tenant-context.exception");
|
|
7
8
|
let tenantResolver;
|
|
@@ -38,18 +39,21 @@ function setTenantResolver(resolver) {
|
|
|
38
39
|
* idempotency and rate limits must never collapse several tenants into one
|
|
39
40
|
* shared namespace.
|
|
40
41
|
*
|
|
41
|
-
* @param source - The explicit tenant, or `undefined` to use the resolver.
|
|
42
42
|
* @param purpose - What the tenant is for, named in the error.
|
|
43
|
+
* @param source - The explicit tenant; omitted, the resolver's tenant.
|
|
43
44
|
* @returns The non-empty tenant id.
|
|
44
45
|
* @throws {MissingTenantContextError} When no tenant can be resolved.
|
|
45
46
|
*
|
|
46
47
|
* @example
|
|
47
48
|
* ```ts
|
|
49
|
+
* // The tenant of the running unit of work, through the resolver:
|
|
50
|
+
* const tenantId = requireTenant('access token issuance');
|
|
51
|
+
*
|
|
48
52
|
* // A key factory that receives a request or job context:
|
|
49
|
-
* const
|
|
53
|
+
* const keyTenant = requireTenant('users.create idempotency key', ctx);
|
|
50
54
|
* ```
|
|
51
55
|
*/
|
|
52
|
-
function
|
|
56
|
+
function requireTenant(purpose, source) {
|
|
53
57
|
const tenantId = typeof source === 'string'
|
|
54
58
|
? source
|
|
55
59
|
: (source?.tenantId ?? tenantResolver?.());
|
|
@@ -57,4 +61,21 @@ function requireTenantId(source, purpose) {
|
|
|
57
61
|
throw new missing_tenant_context_exception_1.MissingTenantContextError(purpose);
|
|
58
62
|
return tenantId;
|
|
59
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Returns the tenant for a security-sensitive operation, or fails closed; see
|
|
66
|
+
* {@link requireTenant}, which it calls.
|
|
67
|
+
*
|
|
68
|
+
* @deprecated Use {@link requireTenant}, which takes the required `purpose`
|
|
69
|
+
* first and the optional `source` last.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* requireTenantId(ctx, 'users.create idempotency key');
|
|
74
|
+
* // becomes
|
|
75
|
+
* requireTenant('users.create idempotency key', ctx);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
function requireTenantId(source, purpose) {
|
|
79
|
+
return requireTenant(purpose, source);
|
|
80
|
+
}
|
|
60
81
|
//# sourceMappingURL=tenant-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant-resolver.js","sourceRoot":"","sources":["../../application/tenant-resolver.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"tenant-resolver.js","sourceRoot":"","sources":["../../application/tenant-resolver.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;;AAEtE,4GAAkG;AAclG,IAAI,cAA0C,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,2BAAkC,QAAoC;IACpE,cAAc,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,uBAA8B,OAAe,EAAE,MAAqB;IAClE,MAAM,QAAQ,GACZ,OAAO,MAAM,KAAK,QAAQ;QACxB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,IAAI,cAAc,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,4DAAyB,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,yBACE,MAAgC,EAChC,OAAe;IAEf,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-mutation.decorator.js","sourceRoot":"","sources":["../../../domain/decorators/apply-mutation.decorator.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
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,uBACE,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutable.decorator.js","sourceRoot":"","sources":["../../../domain/decorators/mutable.decorator.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"mutable.decorator.js","sourceRoot":"","sources":["../../../domain/decorators/mutable.decorator.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;AA+BtE,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAMhD;;;;;;;;;;;;;;;;;GAiBG;AACH,iBACE,OAAO,GAA2B,EAAE;IAEpC,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACtD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACrE,CAAC;QAED,iFAAiF;QACjF,MAAM,KAAK,GAAI,MAAmC,CAAC,WAEtC,CAAC;QAEd,IAAI,CAAC,KAAK,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;YAC9C,CAAC,CAAE,KAAK,CAAC,cAAc,CAAyC;YAChE,CAAC,CAAC,IAAI,GAAG,EAAkC,CAAC;QAC9C,KAAK,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;QAE5B,MAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;YAChB,WAAW;YACX,QAAQ;YACR,SAAS,EAAE,OAAO,CAAC,SAAsD;SAC1E,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,0BACE,QAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC3D,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,IAAI,OAAO,GAAY,QAAQ,CAAC,WAAW,CAAC;IAC5C,OAAO,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,OAAyB,CAAC,CAAC;QACtC,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC;YAC1C,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;YAC5C,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -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,mBAAmB,CAAC;AAEhD;;;;;;GAMG;AACH,8BAAsB,WAAY,YAAW,MAAM;IACjD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,SAAS,aAAa,EAAE,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"domain.event.d.ts","sourceRoot":"","sources":["../../../domain/events/domain.event.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;GAMG;AACH,8BAAsB,WAAY,YAAW,MAAM;IACjD,SAAgB,EAAE,EAAE,MAAM,CAAC;IAE3B,SAAS,aAAa,EAAE,CAAC,EAAE,MAAM,EAEhC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.event.js","sourceRoot":"","sources":["../../../domain/events/domain.event.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,6CAA0C;AAG1C;;;;;;GAMG;AACH
|
|
1
|
+
{"version":3,"file":"domain.event.js","sourceRoot":"","sources":["../../../domain/events/domain.event.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,6CAA0C;AAG1C;;;;;;GAMG;AACH;IACkB,EAAE,CAAS;IAE3B,YAAsB,EAAW;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,IAAA,eAAM,GAAE,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,8CAA8C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,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;
|
|
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,8CAA8C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root-domain.event.js","sourceRoot":"","sources":["../../../domain/events/root-domain.event.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"root-domain.event.js","sourceRoot":"","sources":["../../../domain/events/root-domain.event.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concurrency-conflict.error.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/concurrency-conflict.error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,qBAAa,wBAAyB,SAAQ,eAAe;IAEzD,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"concurrency-conflict.error.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/concurrency-conflict.error.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;GAUG;AACH,qBAAa,wBAAyB,SAAQ,eAAe;IAEzD,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM;IAJjC,YACW,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,EAAE,MAAM,EACvB,aAAa,CAAC,EAAE,MAAM,YAAA,EAMhC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concurrency-conflict.error.js","sourceRoot":"","sources":["../../../domain/exceptions/concurrency-conflict.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,yDAAqD;AAErD;;;;;;;;;;GAUG;AACH,
|
|
1
|
+
{"version":3,"file":"concurrency-conflict.error.js","sourceRoot":"","sources":["../../../domain/exceptions/concurrency-conflict.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,yDAAqD;AAErD;;;;;;;;;;GAUG;AACH,8BAAsC,SAAQ,kCAAe;IAEhD,UAAU;IACV,QAAQ;IACR,eAAe;IACf,aAAa;IAJxB,YACW,UAAkB,EAClB,QAAgB,EAChB,eAAuB,EACvB,aAAsB;QAE/B,KAAK,CACH,GAAG,UAAU,IAAI,QAAQ,gDAAgD,eAAe,EAAE;YACxF,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,aAAa,GAAG,CAAC,CACpE,CAAC;0BARO,UAAU;wBACV,QAAQ;+BACR,eAAe;6BACf,aAAa;IAMxB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.exception.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/domain.exception.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,8BAAsB,eAAgB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"domain.exception.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/domain.exception.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,8BAAsB,eAAgB,SAAQ,KAAK;IACjD,YAAY,OAAO,EAAE,MAAM,EAI1B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.exception.js","sourceRoot":"","sources":["../../../domain/exceptions/domain.exception.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,
|
|
1
|
+
{"version":3,"file":"domain.exception.js","sourceRoot":"","sources":["../../../domain/exceptions/domain.exception.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAsC,SAAQ,KAAK;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-not-found.exception.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/entity-not-found.exception.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAExD,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"entity-not-found.exception.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/entity-not-found.exception.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAExD,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM;IAF5B,YACW,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,YAAA,EAG3B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-not-found.exception.js","sourceRoot":"","sources":["../../../domain/exceptions/entity-not-found.exception.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,yDAAqD;AAErD;;;;;;GAMG;AACH,
|
|
1
|
+
{"version":3,"file":"entity-not-found.exception.js","sourceRoot":"","sources":["../../../domain/exceptions/entity-not-found.exception.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,yDAAqD;AAErD;;;;;;GAMG;AACH,6BAAqC,SAAQ,kCAAe;IAE/C,UAAU;IACV,QAAQ;IAFnB,YACW,UAAkB,EAClB,QAAiB;QAE1B,KAAK,CAAC,GAAG,UAAU,YAAY,CAAC,CAAC;0BAHxB,UAAU;wBACV,QAAQ;IAGnB,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-value.exception.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/invalid-value.exception.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA4BrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IAEnC;;;OAGG;
|
|
1
|
+
{"version":3,"file":"invalid-value.exception.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/invalid-value.exception.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA4BrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IAEnC;;;OAGG;IACH,YAAY,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,EAGtD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-value.exception.js","sourceRoot":"","sources":["../../../domain/exceptions/invalid-value.exception.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAGtE,yDAAqD;AAErD,SAAS,iBAAiB,CAAC,SAAyB;IAClD,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC5B,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,GAAG,KAAK,eAAe,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,GAAG,KAAK,cAAc,SAAS,CAAC,QAAQ,GAAG,CAAC;QACrD,KAAK,YAAY;YACf,OAAO,GAAG,KAAK,8DAA8D,CAAC;QAChF,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,qBAAqB,SAAS,CAAC,KAAK,cAAc,CAAC;QACpE,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,oBAAoB,SAAS,CAAC,KAAK,cAAc,CAAC;QACnE,KAAK,SAAS;YACZ,OAAO,GAAG,KAAK,sCAAsC,CAAC;QACxD,KAAK,QAAQ;YACX,OAAO,GAAG,KAAK,2BAA2B,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,GAAG,KAAK,0BAA0B,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,GAAG,KAAK,qBAAqB,SAAS,CAAC,KAAK,GAAG,CAAC;QACzD,KAAK,KAAK;YACR,OAAO,GAAG,KAAK,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,
|
|
1
|
+
{"version":3,"file":"invalid-value.exception.js","sourceRoot":"","sources":["../../../domain/exceptions/invalid-value.exception.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAGtE,yDAAqD;AAErD,SAAS,iBAAiB,CAAC,SAAyB;IAClD,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC5B,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,GAAG,KAAK,eAAe,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,GAAG,KAAK,cAAc,SAAS,CAAC,QAAQ,GAAG,CAAC;QACrD,KAAK,YAAY;YACf,OAAO,GAAG,KAAK,8DAA8D,CAAC;QAChF,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,qBAAqB,SAAS,CAAC,KAAK,cAAc,CAAC;QACpE,KAAK,WAAW;YACd,OAAO,GAAG,KAAK,oBAAoB,SAAS,CAAC,KAAK,cAAc,CAAC;QACnE,KAAK,SAAS;YACZ,OAAO,GAAG,KAAK,sCAAsC,CAAC;QACxD,KAAK,QAAQ;YACX,OAAO,GAAG,KAAK,2BAA2B,CAAC;QAC7C,KAAK,SAAS;YACZ,OAAO,GAAG,KAAK,0BAA0B,CAAC;QAC5C,KAAK,KAAK;YACR,OAAO,GAAG,KAAK,qBAAqB,SAAS,CAAC,KAAK,GAAG,CAAC;QACzD,KAAK,KAAK;YACR,OAAO,GAAG,KAAK,oBAAoB,SAAS,CAAC,KAAK,GAAG,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,2BAAmC,SAAQ,kCAAe;IAC/C,SAAS,CAAiB;IAEnC;;;OAGG;IACH,YAAY,SAAyB,EAAE,OAAgB;QACrD,KAAK,CAAC,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-tenant-context.exception.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/missing-tenant-context.exception.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,yBAA0B,SAAQ,eAAe;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"missing-tenant-context.exception.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/missing-tenant-context.exception.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,yBAA0B,SAAQ,eAAe;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM;IAAtC,YAAqB,SAAS,EAAE,MAAM,EAKrC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing-tenant-context.exception.js","sourceRoot":"","sources":["../../../domain/exceptions/missing-tenant-context.exception.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,yDAAqD;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,
|
|
1
|
+
{"version":3,"file":"missing-tenant-context.exception.js","sourceRoot":"","sources":["../../../domain/exceptions/missing-tenant-context.exception.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE,yDAAqD;AAErD;;;;;;;;;;;;;;;;;GAiBG;AACH,+BAAuC,SAAQ,kCAAe;IACvC,SAAS;IAA9B,YAAqB,SAAiB;QACpC,KAAK,CACH,8BAA8B,SAAS,yCAAyC;YAC9E,2EAA2E,CAC9E,CAAC;yBAJiB,SAAS;IAK9B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transient-operation.error.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/transient-operation.error.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"transient-operation.error.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/transient-operation.error.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEzB,YAAY,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,EAIzD;CACF;AAED,sDAAsD;AACtD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,uBAAuB,CAElC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transient-operation.error.js","sourceRoot":"","sources":["../../../domain/exceptions/transient-operation.error.ts"],"names":[],"mappings":";AAAA,sEAAsE
|
|
1
|
+
{"version":3,"file":"transient-operation.error.js","sourceRoot":"","sources":["../../../domain/exceptions/transient-operation.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;AAEtE;;;;;;;GAOG;AACH,6BAAqC,SAAQ,KAAK;IACvC,KAAK,CAAW;IAEzB,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;IAC9B,CAAC;CACF;;AAED,sDAAsD;AACtD,mCACE,KAAc;IAEd,OAAO,KAAK,YAAY,uBAAuB,CAAC;AAClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown-mutable-field.error.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/unknown-mutable-field.error.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"unknown-mutable-field.error.d.ts","sourceRoot":"","sources":["../../../domain/exceptions/unknown-mutable-field.error.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,YAAY,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EASrE;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unknown-mutable-field.error.js","sourceRoot":"","sources":["../../../domain/exceptions/unknown-mutable-field.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE;;;;;;;GAOG;AACH,
|
|
1
|
+
{"version":3,"file":"unknown-mutable-field.error.js","sourceRoot":"","sources":["../../../domain/exceptions/unknown-mutable-field.error.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;AAEtE;;;;;;;GAOG;AACH,8BAAsC,SAAQ,KAAK;IACxC,SAAS,CAAS;IAClB,KAAK,CAAS;IAEvB,YAAY,SAAiB,EAAE,KAAa,EAAE,KAAwB;QACpE,KAAK,CACH,GAAG,SAAS,sBAAsB,KAAK,gHACrC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QACxC,GAAG,CACJ,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
package/dist/domain/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export * from './exceptions/invalid-value.exception';
|
|
|
17
17
|
export * from './exceptions/missing-tenant-context.exception';
|
|
18
18
|
export * from './exceptions/transient-operation.error';
|
|
19
19
|
export * from './exceptions/unknown-mutable-field.error';
|
|
20
|
+
export * from './interfaces/aggregate-root.interface';
|
|
20
21
|
export * from './interfaces/root-entity-snapshot.interface';
|
|
21
22
|
export * from './models/aggregate-root';
|
|
22
23
|
export * from './models/root.entity';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
|
package/dist/domain/index.js
CHANGED
|
@@ -34,6 +34,7 @@ __exportStar(require("./exceptions/invalid-value.exception"), exports);
|
|
|
34
34
|
__exportStar(require("./exceptions/missing-tenant-context.exception"), exports);
|
|
35
35
|
__exportStar(require("./exceptions/transient-operation.error"), exports);
|
|
36
36
|
__exportStar(require("./exceptions/unknown-mutable-field.error"), exports);
|
|
37
|
+
__exportStar(require("./interfaces/aggregate-root.interface"), exports);
|
|
37
38
|
__exportStar(require("./interfaces/root-entity-snapshot.interface"), exports);
|
|
38
39
|
__exportStar(require("./models/aggregate-root"), exports);
|
|
39
40
|
__exportStar(require("./models/root.entity"), exports);
|
package/dist/domain/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;;;;;;;;;;;;;AAEtE;;;;;;GAMG;AAEH,wEAAsD;AACtD,iEAA+C;AAC/C,wDAAsC;AACtC,2DAAyC;AACzC,6DAA2C;AAC3C,0EAAwD;AACxD,gEAA8C;AAC9C,0EAAwD;AACxD,uEAAqD;AACrD,gFAA8D;AAC9D,yEAAuD;AACvD,2EAAyD;AACzD,8EAA4D;AAC5D,0DAAwC;AACxC,uDAAqC;AACrC,sDAAoC;AACpC,oDAAkC;AAClC,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../domain/index.ts"],"names":[],"mappings":";AAAA,sEAAsE;;;;;;;;;;;;;;;;AAEtE;;;;;;GAMG;AAEH,wEAAsD;AACtD,iEAA+C;AAC/C,wDAAsC;AACtC,2DAAyC;AACzC,6DAA2C;AAC3C,0EAAwD;AACxD,gEAA8C;AAC9C,0EAAwD;AACxD,uEAAqD;AACrD,gFAA8D;AAC9D,yEAAuD;AACvD,2EAAyD;AACzD,wEAAsD;AACtD,8EAA4D;AAC5D,0DAAwC;AACxC,uDAAqC;AACrC,sDAAoC;AACpC,oDAAkC;AAClC,0DAAwC"}
|