ddd-node 30.1.2 → 32.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/base/decorators/model.d.ts +5 -5
  2. package/base/decorators/mutable.d.ts +2 -2
  3. package/base/decorators/prop.d.ts +2 -2
  4. package/base/decorators/props-validator.d.ts +2 -2
  5. package/base/decorators/static.d.ts +2 -2
  6. package/base/domain.d.ts +1 -0
  7. package/base/domain.js +3 -0
  8. package/base/meta/model-domain.d.ts +4 -3
  9. package/base/meta/model-id.d.ts +3 -3
  10. package/base/meta/model-mutable.d.ts +1 -0
  11. package/base/meta/model-mutable.js +1 -0
  12. package/base/meta/model-name.d.ts +3 -3
  13. package/base/meta/model-props-map.d.ts +5 -5
  14. package/base/meta/model-props-map.js +1 -1
  15. package/base/meta/model-props-validator.d.ts +4 -4
  16. package/base/meta/model-static-values.d.ts +8 -8
  17. package/base/meta/model-version.d.ts +3 -3
  18. package/base/model/index.d.ts +0 -1
  19. package/base/model/index.js +0 -1
  20. package/base/model/model-descriptor.d.ts +15 -12
  21. package/base/model/model-descriptor.js +39 -0
  22. package/base/model/model.d.ts +10 -20
  23. package/base/model/model.js +23 -52
  24. package/base/model-registry.d.ts +14 -10
  25. package/base/model-registry.js +42 -27
  26. package/core/decorators/enum/index.d.ts +1 -0
  27. package/core/decorators/enum/index.js +17 -0
  28. package/core/decorators/enum/is-enum.d.ts +2 -0
  29. package/{decorators/enum.js → core/decorators/enum/is-enum.js} +4 -4
  30. package/core/decorators/es-aggregate/handle.d.ts +2 -0
  31. package/core/decorators/es-aggregate/when.d.ts +2 -0
  32. package/{decorators → core/decorators}/index.d.ts +1 -1
  33. package/{decorators → core/decorators}/index.js +1 -1
  34. package/core/decorators/message/index.d.ts +2 -0
  35. package/core/decorators/message/index.js +18 -0
  36. package/core/decorators/message/is-command.d.ts +4 -0
  37. package/{decorators/message/command.js → core/decorators/message/is-command.js} +4 -4
  38. package/core/decorators/message/is-event.d.ts +4 -0
  39. package/{decorators/message/event.js → core/decorators/message/is-event.js} +4 -4
  40. package/core/index.d.ts +3 -6
  41. package/core/index.js +3 -6
  42. package/{meta → core/meta}/command.metadata.js +2 -2
  43. package/{meta/aggregate-es → core/meta/es-aggregate}/command-handler-map.d.ts +1 -1
  44. package/{meta/aggregate-es → core/meta/es-aggregate}/event-applier-map.d.ts +1 -1
  45. package/{meta → core/meta}/event.metadata.js +1 -1
  46. package/{meta → core/meta}/index.d.ts +1 -1
  47. package/{meta → core/meta}/index.js +1 -1
  48. package/core/{aggregate/aggregate-base → model/aggregate}/aggregate.d.ts +7 -6
  49. package/core/{aggregate/aggregate-base → model/aggregate}/aggregate.js +12 -12
  50. package/core/model/aggregate/es-aggregate.d.ts +50 -0
  51. package/core/{aggregate/event-sourced-aggregate/event-sourced-aggregate.js → model/aggregate/es-aggregate.js} +40 -33
  52. package/core/model/aggregate/index.d.ts +4 -0
  53. package/core/{aggregate → model/aggregate}/index.js +2 -2
  54. package/core/{aggregate/state-aggregate → model/aggregate}/state-aggregate.d.ts +10 -9
  55. package/core/{aggregate/state-aggregate → model/aggregate}/state-aggregate.js +9 -7
  56. package/core/model/aggregate/types.d.ts +7 -0
  57. package/core/model/entity/entity.d.ts +18 -0
  58. package/core/{entity → model/entity}/entity.js +12 -9
  59. package/core/model/entity/index.d.ts +1 -0
  60. package/core/{entity → model/entity}/index.js +0 -1
  61. package/core/{enum → model/enum}/enum.d.ts +7 -10
  62. package/core/{enum → model/enum}/enum.js +24 -16
  63. package/core/model/enum/index.d.ts +1 -0
  64. package/core/{enum → model/enum}/index.js +0 -1
  65. package/core/model/index.d.ts +6 -0
  66. package/core/{aggregate/aggregate-base → model}/index.js +5 -2
  67. package/core/model/message/command.d.ts +20 -0
  68. package/core/model/message/command.js +27 -0
  69. package/core/model/message/event.d.ts +32 -0
  70. package/core/model/message/event.js +31 -0
  71. package/{decorators → core/model}/message/index.d.ts +2 -1
  72. package/{decorators → core/model}/message/index.js +2 -1
  73. package/core/model/message/message.d.ts +37 -0
  74. package/core/{message/message-base → model/message}/message.js +13 -6
  75. package/core/{model-with-id → model/model-with-id}/index.d.ts +0 -1
  76. package/core/{model-with-id → model/model-with-id}/index.js +0 -1
  77. package/core/{model-with-id → model/model-with-id}/model-with-id.d.ts +2 -2
  78. package/core/{model-with-id → model/model-with-id}/model-with-id.js +2 -2
  79. package/core/model/value-object/index.d.ts +1 -0
  80. package/core/{value-object → model/value-object}/index.js +0 -1
  81. package/core/model/value-object/value-object.d.ts +18 -0
  82. package/core/{value-object → model/value-object}/value-object.js +13 -9
  83. package/core/repository/repository.d.ts +1 -2
  84. package/event-pubsub/decorators/subscribe-to-events.d.ts +1 -1
  85. package/event-pubsub/event-dispatcher.d.ts +7 -0
  86. package/event-pubsub/{event-publisher.js → event-dispatcher.js} +4 -4
  87. package/event-pubsub/event-subscriber.d.ts +1 -1
  88. package/event-pubsub/index.d.ts +1 -1
  89. package/event-pubsub/index.js +1 -1
  90. package/event-pubsub/interfaces/event-dispatcher.interface.d.ts +4 -0
  91. package/event-pubsub/interfaces/index.d.ts +1 -1
  92. package/event-pubsub/interfaces/index.js +1 -1
  93. package/index.d.ts +1 -3
  94. package/index.js +1 -3
  95. package/package.json +1 -1
  96. package/base/model/model.builder.d.ts +0 -11
  97. package/base/model/model.builder.js +0 -18
  98. package/core/aggregate/aggregate-base/aggregate-event-publisher.interface.d.ts +0 -4
  99. package/core/aggregate/aggregate-base/aggregate.builder.d.ts +0 -6
  100. package/core/aggregate/aggregate-base/aggregate.builder.js +0 -15
  101. package/core/aggregate/aggregate-base/index.d.ts +0 -3
  102. package/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-descriptor.d.ts +0 -9
  103. package/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-descriptor.js +0 -2
  104. package/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.d.ts +0 -13
  105. package/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.js +0 -33
  106. package/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.d.ts +0 -49
  107. package/core/aggregate/event-sourced-aggregate/index.d.ts +0 -2
  108. package/core/aggregate/event-sourced-aggregate/index.js +0 -18
  109. package/core/aggregate/event-sourced-aggregate/snapshot.d.ts +0 -8
  110. package/core/aggregate/event-sourced-aggregate/snapshot.js +0 -2
  111. package/core/aggregate/index.d.ts +0 -4
  112. package/core/aggregate/state-aggregate/index.d.ts +0 -2
  113. package/core/aggregate/state-aggregate/index.js +0 -18
  114. package/core/aggregate/state-aggregate/state-aggregate.builder.d.ts +0 -7
  115. package/core/aggregate/state-aggregate/state-aggregate.builder.js +0 -19
  116. package/core/aggregate/types.d.ts +0 -4
  117. package/core/entity/entity.builder.d.ts +0 -7
  118. package/core/entity/entity.builder.js +0 -16
  119. package/core/entity/entity.d.ts +0 -18
  120. package/core/entity/index.d.ts +0 -2
  121. package/core/enum/enum-builder.d.ts +0 -9
  122. package/core/enum/enum-builder.js +0 -32
  123. package/core/enum/index.d.ts +0 -2
  124. package/core/message/command/command-model-descriptor.d.ts +0 -6
  125. package/core/message/command/command-model-descriptor.js +0 -2
  126. package/core/message/command/command.builder.d.ts +0 -7
  127. package/core/message/command/command.builder.js +0 -21
  128. package/core/message/command/command.d.ts +0 -24
  129. package/core/message/command/command.js +0 -29
  130. package/core/message/command/index.d.ts +0 -3
  131. package/core/message/command/index.js +0 -19
  132. package/core/message/event/event-model-descriptor.d.ts +0 -6
  133. package/core/message/event/event-model-descriptor.js +0 -2
  134. package/core/message/event/event.builder.d.ts +0 -9
  135. package/core/message/event/event.builder.js +0 -28
  136. package/core/message/event/event.d.ts +0 -35
  137. package/core/message/event/event.js +0 -33
  138. package/core/message/event/index.d.ts +0 -3
  139. package/core/message/event/index.js +0 -19
  140. package/core/message/index.d.ts +0 -3
  141. package/core/message/index.js +0 -19
  142. package/core/message/message-base/index.d.ts +0 -2
  143. package/core/message/message-base/index.js +0 -18
  144. package/core/message/message-base/message.builder.d.ts +0 -16
  145. package/core/message/message-base/message.builder.js +0 -44
  146. package/core/message/message-base/message.d.ts +0 -31
  147. package/core/model-with-id/model-with-id.builder.d.ts +0 -9
  148. package/core/model-with-id/model-with-id.builder.js +0 -22
  149. package/core/value-object/index.d.ts +0 -2
  150. package/core/value-object/value-object.builder.d.ts +0 -7
  151. package/core/value-object/value-object.builder.js +0 -16
  152. package/core/value-object/value-object.d.ts +0 -17
  153. package/decorators/aggregate-es/handle.d.ts +0 -2
  154. package/decorators/aggregate-es/when.d.ts +0 -2
  155. package/decorators/enum.d.ts +0 -2
  156. package/decorators/message/command.d.ts +0 -4
  157. package/decorators/message/event.d.ts +0 -4
  158. package/event-pubsub/event-publisher.d.ts +0 -7
  159. package/event-pubsub/interfaces/event-publisher.interface.d.ts +0 -4
  160. package/event-pubsub/interfaces/event-publisher.interface.js +0 -2
  161. /package/{decorators/aggregate-es → core/decorators/es-aggregate}/handle.js +0 -0
  162. /package/{decorators/aggregate-es → core/decorators/es-aggregate}/index.d.ts +0 -0
  163. /package/{decorators/aggregate-es → core/decorators/es-aggregate}/index.js +0 -0
  164. /package/{decorators/aggregate-es → core/decorators/es-aggregate}/when.js +0 -0
  165. /package/{decorators → core/decorators}/type.d.ts +0 -0
  166. /package/{decorators → core/decorators}/type.js +0 -0
  167. /package/{meta → core/meta}/command.metadata.d.ts +0 -0
  168. /package/{meta/aggregate-es → core/meta/es-aggregate}/command-handler-map.js +0 -0
  169. /package/{meta/aggregate-es → core/meta/es-aggregate}/event-applier-map.js +0 -0
  170. /package/{meta/aggregate-es → core/meta/es-aggregate}/index.d.ts +0 -0
  171. /package/{meta/aggregate-es → core/meta/es-aggregate}/index.js +0 -0
  172. /package/{meta → core/meta}/event.metadata.d.ts +0 -0
  173. /package/core/{aggregate → model/aggregate}/types.js +0 -0
  174. /package/core/{model-with-id → model/model-with-id}/id.d.ts +0 -0
  175. /package/core/{model-with-id → model/model-with-id}/id.js +0 -0
  176. /package/{core/aggregate/aggregate-base/aggregate-event-publisher.interface.js → event-pubsub/interfaces/event-dispatcher.interface.js} +0 -0
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventSourcedAggregateBuilder = void 0;
4
- const aggregate_base_1 = require("../aggregate-base");
5
- class EventSourcedAggregateBuilder extends aggregate_base_1.AggregateBuilderBase {
6
- constructor(aggregateClass) {
7
- super();
8
- this.aggregateClass = aggregateClass;
9
- }
10
- withPastEvents(pastEvents) {
11
- this.pastEvents = pastEvents;
12
- return this;
13
- }
14
- withSnapshot(snapshot) {
15
- this.snapshot = snapshot;
16
- return this;
17
- }
18
- build() {
19
- if (this.snapshot) {
20
- const { id, version } = this.snapshot.metadata;
21
- const { props } = this.snapshot;
22
- this.withId(id).withVersion(version).withProps(props);
23
- }
24
- const instance = new this.aggregateClass({
25
- id: this.id,
26
- version: this.version,
27
- }, this.props);
28
- if (this.pastEvents)
29
- instance.applyPastEvents(this.pastEvents);
30
- return instance;
31
- }
32
- }
33
- exports.EventSourcedAggregateBuilder = EventSourcedAggregateBuilder;
@@ -1,49 +0,0 @@
1
- import { Class } from "type-fest";
2
- import { Props, InferredProps } from "../../../base";
3
- import { ClassStatic } from "../../../types";
4
- import { AnyCommand, AnyEvent, EventClassWithTypedConstructor } from "../../message";
5
- import { AggregateBase, AggregateMetadata } from "../aggregate-base";
6
- import { IAggregateEventPublisher } from "../aggregate-base";
7
- import { EventSourcedAggregateModelDescriptor } from "./event-sourced-aggregate-model-descriptor";
8
- import { Snapshot, SnapshotMetadata } from "./snapshot";
9
- import { EventSourcedAggregateBuilder } from ".";
10
- export interface EventSourceAggregateMetadata extends AggregateMetadata {
11
- }
12
- export declare class EventSourcedAggregateBase<P extends Props> extends AggregateBase<P> {
13
- static builder<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): EventSourcedAggregateBuilder<T>;
14
- private _handledCommands;
15
- private _pastEvents;
16
- private _events;
17
- constructor(metadata: EventSourceAggregateMetadata, props?: P);
18
- static ownEventApplierMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): import("../../../meta").EventApplierMap;
19
- static eventApplierMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): import("../../../meta").EventApplierMap;
20
- static ownCommandHandlerMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): import("../../../meta").CommandHandlerMap;
21
- static commandHandlerMap<T extends AnyEventSourcedAggregate>(this: EventSourcedAggregateClass<T>): import("../../../meta").CommandHandlerMap;
22
- modelDescriptor(): EventSourcedAggregateModelDescriptor<typeof this>;
23
- version(): number;
24
- pastEvents(): AnyEvent[];
25
- events(): AnyEvent[];
26
- handledCommands(): AnyCommand[];
27
- hasNewEvent(): boolean;
28
- getEventApplier<E extends AnyEvent>(event: E): EventApplier<E>;
29
- private validateEventBeforeApply;
30
- private _applyEvent;
31
- private applyPastEvent;
32
- applyPastEvents(pastEvents: AnyEvent[]): void;
33
- applyEvent<E extends AnyEvent>(event: E): void;
34
- applyEvents(events: AnyEvent[]): void;
35
- applyNewEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props: InferredProps<E>): void;
36
- getCommandHandler<C extends AnyCommand>(command: C): CommandHandler<C, AnyEvent | AnyEvent[]>;
37
- handleCommand<C extends AnyCommand>(command: C): AnyEvent[];
38
- snapMetadata(): SnapshotMetadata;
39
- snap(): Snapshot<this>;
40
- protected archiveEvents(): void;
41
- publishEvents(publisher: IAggregateEventPublisher): void;
42
- }
43
- export type AnyEventSourcedAggregate = EventSourcedAggregateBase<Props>;
44
- export interface EventSourcedAggregateClass<T extends AnyEventSourcedAggregate = AnyEventSourcedAggregate, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EventSourcedAggregateBase<InferredProps<T>>> {
45
- }
46
- export interface EventSourcedAggregateClassWithTypedConstructor<T extends AnyEventSourcedAggregate = AnyEventSourcedAggregate> extends EventSourcedAggregateClass<T, ConstructorParameters<typeof EventSourcedAggregateBase<InferredProps<T>>>> {
47
- }
48
- export type EventApplier<T extends AnyEvent = AnyEvent> = (event: T) => void;
49
- export type CommandHandler<T extends AnyCommand = AnyCommand, U extends AnyEvent | AnyEvent[] = AnyEvent | AnyEvent[]> = (command: T) => U;
@@ -1,2 +0,0 @@
1
- export * from "./event-sourced-aggregate";
2
- export * from "./event-sourced-aggregate.builder";
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./event-sourced-aggregate"), exports);
18
- __exportStar(require("./event-sourced-aggregate.builder"), exports);
@@ -1,8 +0,0 @@
1
- import { InferredProps } from "../../../base";
2
- import { AnyEventSourcedAggregate, EventSourceAggregateMetadata } from "./event-sourced-aggregate";
3
- export interface SnapshotMetadata extends EventSourceAggregateMetadata {
4
- }
5
- export interface Snapshot<T extends AnyEventSourcedAggregate> {
6
- metadata: SnapshotMetadata;
7
- props: InferredProps<T>;
8
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +0,0 @@
1
- export * from "./aggregate-base";
2
- export * from "./state-aggregate";
3
- export * from "./event-sourced-aggregate";
4
- export * from "./types";
@@ -1,2 +0,0 @@
1
- export * from "./state-aggregate";
2
- export * from "./state-aggregate.builder";
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./state-aggregate"), exports);
18
- __exportStar(require("./state-aggregate.builder"), exports);
@@ -1,7 +0,0 @@
1
- import { AggregateBuilderBase } from "../aggregate-base";
2
- import { AnyStateAggregate, StateAggregateClassWithTypedConstructor } from "./state-aggregate";
3
- export declare class StateAggregateBuilder<T extends AnyStateAggregate> extends AggregateBuilderBase<T> {
4
- private aggregateClass;
5
- constructor(aggregateClass: StateAggregateClassWithTypedConstructor<T>);
6
- build(): T;
7
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StateAggregateBuilder = void 0;
4
- const aggregate_base_1 = require("../aggregate-base");
5
- class StateAggregateBuilder extends aggregate_base_1.AggregateBuilderBase {
6
- constructor(aggregateClass) {
7
- super();
8
- this.aggregateClass = aggregateClass;
9
- }
10
- build() {
11
- if (!this.props)
12
- throw new Error("The props must be set before build");
13
- return new this.aggregateClass({
14
- id: this.id,
15
- version: this.version,
16
- }, this.props);
17
- }
18
- }
19
- exports.StateAggregateBuilder = StateAggregateBuilder;
@@ -1,4 +0,0 @@
1
- import { AnyEventSourcedAggregate, EventSourcedAggregateClass } from "./event-sourced-aggregate/event-sourced-aggregate";
2
- import { AnyStateAggregate, StateAggregateClass } from "./state-aggregate";
3
- export type Aggregate = AnyStateAggregate | AnyEventSourcedAggregate;
4
- export type AggregateClass = StateAggregateClass | EventSourcedAggregateClass;
@@ -1,7 +0,0 @@
1
- import { ModelWithIdBuilder } from "../model-with-id";
2
- import { AnyEntity, EntityClassWithTypedConstructor } from "./entity";
3
- export declare class EntityBuilder<T extends AnyEntity> extends ModelWithIdBuilder<T> {
4
- private entityClass;
5
- constructor(entityClass: EntityClassWithTypedConstructor<T>);
6
- build(): T;
7
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntityBuilder = void 0;
4
- const model_with_id_1 = require("../model-with-id");
5
- class EntityBuilder extends model_with_id_1.ModelWithIdBuilder {
6
- constructor(entityClass) {
7
- super();
8
- this.entityClass = entityClass;
9
- }
10
- build() {
11
- if (!this.props)
12
- throw new Error("The props must be set before build");
13
- return new this.entityClass({ id: this.id }, this.props);
14
- }
15
- }
16
- exports.EntityBuilder = EntityBuilder;
@@ -1,18 +0,0 @@
1
- import { Class } from "type-fest";
2
- import { Props, InferredProps } from "../../base";
3
- import { ClassStatic } from "../../types";
4
- import { ModelWithId, ModelWithIdMetadata } from "../model-with-id";
5
- import { EntityBuilder } from ".";
6
- export interface EntityMetadata extends ModelWithIdMetadata {
7
- }
8
- export declare class EntityBase<P extends Props> extends ModelWithId<P> {
9
- static builder<T extends AnyEntity>(this: EntityClass<T>): EntityBuilder<T>;
10
- constructor(metadata: EntityMetadata, props: P);
11
- }
12
- export type AnyEntity = EntityBase<Props>;
13
- export interface EntityClass<T extends AnyEntity = AnyEntity, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EntityBase<InferredProps<T>>> {
14
- }
15
- export interface EntityClassWithTypedConstructor<T extends AnyEntity = AnyEntity> extends EntityClass<T, ConstructorParameters<typeof EntityBase<InferredProps<T>>>> {
16
- }
17
- export interface EntityClassWithProps<P extends Props> extends EntityClass<EntityBase<P>> {
18
- }
@@ -1,2 +0,0 @@
1
- export * from "./entity";
2
- export * from "./entity.builder";
@@ -1,9 +0,0 @@
1
- import { ModelBuilder } from "../../base";
2
- import { AnyEnum, EnumClass, EnumValue } from "./enum";
3
- export declare class EnumBuilder<T extends AnyEnum> extends ModelBuilder<T> {
4
- private enumClass;
5
- protected _value?: EnumValue;
6
- constructor(enumClass: EnumClass<T>);
7
- withValue(value: EnumValue): this;
8
- build(): T;
9
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnumBuilder = void 0;
4
- const base_1 = require("../../base");
5
- class EnumBuilder extends base_1.ModelBuilder {
6
- constructor(enumClass) {
7
- super();
8
- this.enumClass = enumClass;
9
- }
10
- withValue(value) {
11
- this._value = value;
12
- return this;
13
- }
14
- build() {
15
- if (!this._value)
16
- throw new Error("Cannot parse enum without value");
17
- const { enumClass } = this;
18
- let result;
19
- enumClass.ownModelStaticValues().forEach((staticValue) => {
20
- if (staticValue.value instanceof enumClass) {
21
- const staticEnum = staticValue.value;
22
- if (staticEnum.value === this._value && !result) {
23
- result = staticEnum;
24
- }
25
- }
26
- });
27
- if (!result)
28
- throw new Error(`Invalid provided value for enum ${enumClass.modelName()}`);
29
- return result;
30
- }
31
- }
32
- exports.EnumBuilder = EnumBuilder;
@@ -1,2 +0,0 @@
1
- export * from "./enum";
2
- export * from "./enum-builder";
@@ -1,6 +0,0 @@
1
- import { AnyCommand } from "./command";
2
- import { CommandType } from "../../../meta";
3
- import { ModelDescriptor } from "../../../base";
4
- export interface CommandModelDescriptor<T extends AnyCommand> extends ModelDescriptor<T> {
5
- commandType: CommandType;
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +0,0 @@
1
- import { AnyCommand, CommandClassWithTypedConstructor } from "./command";
2
- import { MessageBuilderBase } from "../message-base";
3
- export declare class CommandBuilder<T extends AnyCommand> extends MessageBuilderBase<T> {
4
- private commandClass;
5
- constructor(commandClass: CommandClassWithTypedConstructor<T>);
6
- build(): T;
7
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommandBuilder = void 0;
4
- const message_base_1 = require("../message-base");
5
- class CommandBuilder extends message_base_1.MessageBuilderBase {
6
- constructor(commandClass) {
7
- super();
8
- this.commandClass = commandClass;
9
- }
10
- build() {
11
- if (!this.props)
12
- throw new Error("The props must be set before build");
13
- return new this.commandClass({
14
- id: this.id,
15
- timestamp: this.timestamp,
16
- causationId: this.causationId,
17
- correlationIds: this.correlationIds,
18
- }, this.props);
19
- }
20
- }
21
- exports.CommandBuilder = CommandBuilder;
@@ -1,24 +0,0 @@
1
- import { Class } from "type-fest";
2
- import { CommandType } from "../../../meta";
3
- import { Props, InferredProps } from "../../../base";
4
- import { ClassStatic } from "../../../types";
5
- import { MessageBase, MessageMetadata } from "../message-base";
6
- import { CommandModelDescriptor } from "./command-model-descriptor";
7
- import { CommandBuilder } from ".";
8
- export interface CommandMetadata extends MessageMetadata {
9
- commandType: CommandType;
10
- }
11
- export declare class CommandBase<P extends Props> extends MessageBase<P> {
12
- static builder<T extends AnyCommand>(this: CommandClass<T>): CommandBuilder<T>;
13
- protected readonly _commandType: CommandType;
14
- static commandType(): string;
15
- constructor(metadata: Omit<CommandMetadata, "commandType">, props: P);
16
- modelDescriptor(): CommandModelDescriptor<typeof this>;
17
- metadata(): CommandMetadata;
18
- commandType(): string;
19
- }
20
- export type AnyCommand = CommandBase<Props>;
21
- export interface CommandClass<T extends AnyCommand = AnyCommand, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof CommandBase<InferredProps<T>>> {
22
- }
23
- export interface CommandClassWithTypedConstructor<T extends AnyCommand = AnyCommand> extends CommandClass<T, ConstructorParameters<typeof CommandBase<InferredProps<T>>>> {
24
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommandBase = void 0;
4
- const meta_1 = require("../../../meta");
5
- const message_base_1 = require("../message-base");
6
- const _1 = require(".");
7
- class CommandBase extends message_base_1.MessageBase {
8
- static builder() {
9
- return new _1.CommandBuilder(this);
10
- }
11
- static commandType() {
12
- return (0, meta_1.getCommandType)(this);
13
- }
14
- constructor(metadata, props) {
15
- super(metadata, props);
16
- this._commandType = (0, meta_1.getCommandType)(this.constructor);
17
- }
18
- modelDescriptor() {
19
- const commandClass = this.constructor;
20
- return Object.assign(Object.assign({}, super.modelDescriptor()), { commandType: commandClass.commandType() });
21
- }
22
- metadata() {
23
- return Object.assign(Object.assign({}, super.metadata()), { commandType: this._commandType });
24
- }
25
- commandType() {
26
- return this._commandType;
27
- }
28
- }
29
- exports.CommandBase = CommandBase;
@@ -1,3 +0,0 @@
1
- export * from "./command-model-descriptor";
2
- export * from "./command";
3
- export * from "./command.builder";
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./command-model-descriptor"), exports);
18
- __exportStar(require("./command"), exports);
19
- __exportStar(require("./command.builder"), exports);
@@ -1,6 +0,0 @@
1
- import { AnyEvent } from ".";
2
- import { EventType } from "../../../meta";
3
- import { ModelDescriptor } from "../../../base";
4
- export interface EventModelDescriptor<T extends AnyEvent> extends ModelDescriptor<T> {
5
- eventType: EventType;
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
1
- import { AnyEvent, EventClassWithTypedConstructor, EventSource } from "./event";
2
- import { MessageBuilderBase } from "../message-base";
3
- export declare class EventBuilder<T extends AnyEvent> extends MessageBuilderBase<T> {
4
- private eventClass;
5
- protected source?: EventSource;
6
- constructor(eventClass: EventClassWithTypedConstructor<T>);
7
- withSource(source: EventSource): this;
8
- build(): T;
9
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventBuilder = void 0;
4
- const message_base_1 = require("../message-base");
5
- class EventBuilder extends message_base_1.MessageBuilderBase {
6
- constructor(eventClass) {
7
- super();
8
- this.eventClass = eventClass;
9
- }
10
- withSource(source) {
11
- this.source = source;
12
- return this;
13
- }
14
- build() {
15
- if (!this.source)
16
- throw new Error("The event source must be set before build");
17
- if (!this.props)
18
- throw new Error("The props must be set before build");
19
- return new this.eventClass({
20
- id: this.id,
21
- timestamp: this.timestamp,
22
- source: this.source,
23
- causationId: this.causationId,
24
- correlationIds: this.correlationIds,
25
- }, this.props);
26
- }
27
- }
28
- exports.EventBuilder = EventBuilder;
@@ -1,35 +0,0 @@
1
- import { Class } from "type-fest";
2
- import { EventType } from "../../../meta";
3
- import { Props, InferredProps } from "../../../base";
4
- import { ClassStatic } from "../../../types";
5
- import { Id } from "../../model-with-id";
6
- import { MessageBase, MessageMetadata } from "../message-base";
7
- import { EventModelDescriptor } from "./event-model-descriptor";
8
- import { EventBuilder } from ".";
9
- export type EventSource = Readonly<{
10
- aggregateId: Id;
11
- aggregateVersion: number;
12
- }>;
13
- export interface EventMetadata extends MessageMetadata {
14
- eventType: EventType;
15
- source: EventSource;
16
- }
17
- export declare class EventBase<P extends Props> extends MessageBase<P> {
18
- static builder<T extends AnyEvent>(this: EventClass<T>): EventBuilder<T>;
19
- private readonly _eventType;
20
- private readonly _source;
21
- constructor(metadata: Omit<EventMetadata, "eventType">, props: P);
22
- static eventType(): EventType;
23
- modelDescriptor(): EventModelDescriptor<typeof this>;
24
- metadata(): EventMetadata;
25
- eventType(): string;
26
- source(): Readonly<{
27
- aggregateId: string;
28
- aggregateVersion: number;
29
- }>;
30
- }
31
- export type AnyEvent = EventBase<Props>;
32
- export interface EventClass<T extends AnyEvent = AnyEvent, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EventBase<InferredProps<T>>> {
33
- }
34
- export interface EventClassWithTypedConstructor<T extends AnyEvent = AnyEvent> extends EventClass<T, ConstructorParameters<typeof EventBase<InferredProps<T>>>> {
35
- }
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventBase = void 0;
4
- const meta_1 = require("../../../meta");
5
- const message_base_1 = require("../message-base");
6
- const _1 = require(".");
7
- class EventBase extends message_base_1.MessageBase {
8
- static builder() {
9
- return new _1.EventBuilder(this);
10
- }
11
- constructor(metadata, props) {
12
- super(metadata, props);
13
- this._eventType = (0, meta_1.getEventType)(this.constructor);
14
- this._source = metadata.source;
15
- }
16
- static eventType() {
17
- return (0, meta_1.getEventType)(this);
18
- }
19
- modelDescriptor() {
20
- const eventClass = this.constructor;
21
- return Object.assign(Object.assign({}, super.modelDescriptor()), { eventType: eventClass.eventType() });
22
- }
23
- metadata() {
24
- return Object.assign(Object.assign({}, super.metadata()), { eventType: this._eventType, source: this._source });
25
- }
26
- eventType() {
27
- return this._eventType;
28
- }
29
- source() {
30
- return this._source;
31
- }
32
- }
33
- exports.EventBase = EventBase;
@@ -1,3 +0,0 @@
1
- export * from "./event";
2
- export * from "./event-model-descriptor";
3
- export * from "./event.builder";
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./event"), exports);
18
- __exportStar(require("./event-model-descriptor"), exports);
19
- __exportStar(require("./event.builder"), exports);
@@ -1,3 +0,0 @@
1
- export * from "./message-base";
2
- export * from "./command";
3
- export * from "./event";
@@ -1,19 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./message-base"), exports);
18
- __exportStar(require("./command"), exports);
19
- __exportStar(require("./event"), exports);
@@ -1,2 +0,0 @@
1
- export * from "./message";
2
- export * from "./message.builder";
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./message"), exports);
18
- __exportStar(require("./message.builder"), exports);
@@ -1,16 +0,0 @@
1
- import { ModelWithIdBuilder } from "../../model-with-id";
2
- import { AnyMessage, CorrelationIds, MessageClassWithTypedConstructor } from "./message";
3
- export declare abstract class MessageBuilderBase<T extends AnyMessage> extends ModelWithIdBuilder<T> {
4
- protected timestamp: number;
5
- protected causationId?: string;
6
- protected correlationIds: CorrelationIds;
7
- withCausationId(causationId: string): this;
8
- withCorrelationIds(correlationIds: CorrelationIds): this;
9
- withTimestamp(timestamp: number): this;
10
- withTimestampNow(): this;
11
- }
12
- export declare class MessageBuilder<T extends AnyMessage> extends MessageBuilderBase<T> {
13
- private messageClass;
14
- constructor(messageClass: MessageClassWithTypedConstructor<T>);
15
- build(): T;
16
- }