ddd-node 29.2.0 → 29.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/base/decorators/index.d.ts +5 -0
- package/dist/base/decorators/index.js +21 -0
- package/dist/base/decorators/model.d.ts +13 -0
- package/dist/base/decorators/model.js +56 -0
- package/dist/base/decorators/mutable.d.ts +2 -0
- package/dist/base/decorators/mutable.js +10 -0
- package/dist/base/decorators/prop.d.ts +2 -0
- package/dist/base/decorators/prop.js +10 -0
- package/dist/base/decorators/props-validator.d.ts +2 -0
- package/dist/base/decorators/props-validator.js +8 -0
- package/dist/base/decorators/static.d.ts +3 -0
- package/dist/base/decorators/static.js +11 -0
- package/dist/base/domain.d.ts +24 -0
- package/dist/base/domain.js +49 -0
- package/dist/base/index.d.ts +5 -0
- package/dist/base/index.js +21 -0
- package/dist/base/meta/index.d.ts +8 -0
- package/dist/base/meta/index.js +24 -0
- package/dist/base/meta/model-domain.d.ts +4 -0
- package/dist/base/meta/model-domain.js +15 -0
- package/dist/base/meta/model-id.d.ts +16 -0
- package/dist/base/meta/model-id.js +39 -0
- package/dist/base/meta/model-mutable.d.ts +2 -0
- package/dist/base/meta/model-mutable.js +14 -0
- package/dist/base/meta/model-name.d.ts +8 -0
- package/dist/base/meta/model-name.js +25 -0
- package/dist/base/meta/model-props-map.d.ts +6 -0
- package/dist/base/meta/model-props-map.js +45 -0
- package/dist/base/meta/model-props-validator.d.ts +6 -0
- package/dist/base/meta/model-props-validator.js +33 -0
- package/dist/base/meta/model-static-values.d.ts +13 -0
- package/dist/base/meta/model-static-values.js +54 -0
- package/dist/base/meta/model-version.d.ts +8 -0
- package/dist/base/meta/model-version.js +25 -0
- package/dist/base/model/errors.d.ts +3 -0
- package/dist/base/model/errors.js +9 -0
- package/dist/base/model/index.d.ts +3 -0
- package/dist/base/model/index.js +19 -0
- package/dist/base/model/model-descriptor.d.ts +13 -0
- package/dist/base/model/model-descriptor.js +2 -0
- package/dist/base/model/model.builder.d.ts +11 -0
- package/dist/base/model/model.builder.js +18 -0
- package/dist/base/model/model.d.ts +40 -0
- package/dist/base/model/model.js +117 -0
- package/dist/base/model-registry.d.ts +17 -0
- package/dist/base/model-registry.js +55 -0
- package/dist/core/aggregate/aggregate-base/aggregate-event-publisher.interface.d.ts +4 -0
- package/dist/core/aggregate/aggregate-base/aggregate-event-publisher.interface.js +2 -0
- package/dist/core/aggregate/aggregate-base/aggregate.builder.d.ts +6 -0
- package/dist/core/aggregate/aggregate-base/aggregate.builder.js +15 -0
- package/dist/core/aggregate/aggregate-base/aggregate.d.ts +17 -0
- package/dist/core/aggregate/aggregate-base/aggregate.js +46 -0
- package/dist/core/aggregate/aggregate-base/index.d.ts +3 -0
- package/dist/core/aggregate/aggregate-base/index.js +19 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-descriptor.d.ts +9 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-descriptor.js +2 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.d.ts +13 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.builder.js +33 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.d.ts +49 -0
- package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.js +141 -0
- package/dist/core/aggregate/event-sourced-aggregate/index.d.ts +2 -0
- package/dist/core/aggregate/event-sourced-aggregate/index.js +18 -0
- package/dist/core/aggregate/event-sourced-aggregate/snapshot.d.ts +8 -0
- package/dist/core/aggregate/event-sourced-aggregate/snapshot.js +2 -0
- package/dist/core/aggregate/index.d.ts +4 -0
- package/dist/core/aggregate/index.js +20 -0
- package/dist/core/aggregate/state-aggregate/index.d.ts +2 -0
- package/dist/core/aggregate/state-aggregate/index.js +18 -0
- package/dist/core/aggregate/state-aggregate/state-aggregate.builder.d.ts +7 -0
- package/dist/core/aggregate/state-aggregate/state-aggregate.builder.js +19 -0
- package/dist/core/aggregate/state-aggregate/state-aggregate.d.ts +25 -0
- package/dist/core/aggregate/state-aggregate/state-aggregate.js +41 -0
- package/dist/core/aggregate/types.d.ts +4 -0
- package/dist/core/aggregate/types.js +2 -0
- package/dist/core/entity/entity.builder.d.ts +7 -0
- package/dist/core/entity/entity.builder.js +16 -0
- package/dist/core/entity/entity.d.ts +18 -0
- package/dist/core/entity/entity.js +29 -0
- package/dist/core/entity/index.d.ts +2 -0
- package/dist/core/entity/index.js +18 -0
- package/dist/core/enum/enum-builder.d.ts +9 -0
- package/dist/core/enum/enum-builder.js +32 -0
- package/dist/core/enum/enum.d.ts +22 -0
- package/dist/core/enum/enum.js +44 -0
- package/dist/core/enum/index.d.ts +2 -0
- package/dist/core/enum/index.js +18 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.js +23 -0
- package/dist/core/message/command/command-model-descriptor.d.ts +6 -0
- package/dist/core/message/command/command-model-descriptor.js +2 -0
- package/dist/core/message/command/command.builder.d.ts +7 -0
- package/dist/core/message/command/command.builder.js +21 -0
- package/dist/core/message/command/command.d.ts +24 -0
- package/dist/core/message/command/command.js +35 -0
- package/dist/core/message/command/index.d.ts +3 -0
- package/dist/core/message/command/index.js +19 -0
- package/dist/core/message/event/event-model-descriptor.d.ts +6 -0
- package/dist/core/message/event/event-model-descriptor.js +2 -0
- package/dist/core/message/event/event.builder.d.ts +9 -0
- package/dist/core/message/event/event.builder.js +28 -0
- package/dist/core/message/event/event.d.ts +35 -0
- package/dist/core/message/event/event.js +40 -0
- package/dist/core/message/event/index.d.ts +3 -0
- package/dist/core/message/event/index.js +19 -0
- package/dist/core/message/index.d.ts +3 -0
- package/dist/core/message/index.js +19 -0
- package/dist/core/message/message-base/index.d.ts +2 -0
- package/dist/core/message/message-base/index.js +18 -0
- package/dist/core/message/message-base/message.builder.d.ts +16 -0
- package/dist/core/message/message-base/message.builder.js +44 -0
- package/dist/core/message/message-base/message.d.ts +31 -0
- package/dist/core/message/message-base/message.js +58 -0
- package/dist/core/model-with-id/id.d.ts +1 -0
- package/dist/core/model-with-id/id.js +2 -0
- package/dist/core/model-with-id/index.d.ts +3 -0
- package/dist/core/model-with-id/index.js +19 -0
- package/dist/core/model-with-id/model-with-id.builder.d.ts +9 -0
- package/dist/core/model-with-id/model-with-id.builder.js +22 -0
- package/dist/core/model-with-id/model-with-id.d.ts +13 -0
- package/dist/core/model-with-id/model-with-id.js +23 -0
- package/dist/core/repository/index.d.ts +1 -0
- package/dist/core/repository/index.js +17 -0
- package/dist/core/repository/repository.d.ts +6 -0
- package/dist/core/repository/repository.js +2 -0
- package/dist/core/value-object/index.d.ts +2 -0
- package/dist/core/value-object/index.js +18 -0
- package/dist/core/value-object/value-object.builder.d.ts +7 -0
- package/dist/core/value-object/value-object.builder.js +16 -0
- package/dist/core/value-object/value-object.d.ts +17 -0
- package/dist/core/value-object/value-object.js +64 -0
- package/dist/decorators/aggregate-es/handle.d.ts +2 -0
- package/dist/decorators/aggregate-es/handle.js +13 -0
- package/dist/decorators/aggregate-es/index.d.ts +2 -0
- package/dist/decorators/aggregate-es/index.js +18 -0
- package/dist/decorators/aggregate-es/when.d.ts +2 -0
- package/dist/decorators/aggregate-es/when.js +13 -0
- package/dist/decorators/enum.d.ts +2 -0
- package/dist/decorators/enum.js +10 -0
- package/dist/decorators/index.d.ts +3 -0
- package/dist/decorators/index.js +19 -0
- package/dist/decorators/message/command.d.ts +3 -0
- package/dist/decorators/message/command.js +10 -0
- package/dist/decorators/message/event.d.ts +3 -0
- package/dist/decorators/message/event.js +10 -0
- package/dist/decorators/message/index.d.ts +2 -0
- package/dist/decorators/message/index.js +18 -0
- package/dist/decorators/type.d.ts +2 -0
- package/dist/decorators/type.js +2 -0
- package/dist/event-pubsub/decorators/index.d.ts +1 -0
- package/dist/event-pubsub/decorators/index.js +17 -0
- package/dist/event-pubsub/decorators/subscribe-to-events.d.ts +5 -0
- package/dist/event-pubsub/decorators/subscribe-to-events.js +11 -0
- package/dist/event-pubsub/event-publisher.d.ts +7 -0
- package/dist/event-pubsub/event-publisher.js +13 -0
- package/dist/event-pubsub/event-subscriber-registry.d.ts +23 -0
- package/dist/event-pubsub/event-subscriber-registry.js +80 -0
- package/dist/event-pubsub/event-subscriber.d.ts +13 -0
- package/dist/event-pubsub/event-subscriber.js +24 -0
- package/dist/event-pubsub/index.d.ts +5 -0
- package/dist/event-pubsub/index.js +21 -0
- package/dist/event-pubsub/interfaces/event-publisher.interface.d.ts +4 -0
- package/dist/event-pubsub/interfaces/event-publisher.interface.js +2 -0
- package/dist/event-pubsub/interfaces/event-subscriber-registry.interface.d.ts +13 -0
- package/dist/event-pubsub/interfaces/event-subscriber-registry.interface.js +2 -0
- package/dist/event-pubsub/interfaces/event-subscriber.interface.d.ts +9 -0
- package/dist/event-pubsub/interfaces/event-subscriber.interface.js +2 -0
- package/dist/event-pubsub/interfaces/index.d.ts +3 -0
- package/dist/event-pubsub/interfaces/index.js +19 -0
- package/dist/index.d.ts +8 -0
- package/dist/meta/aggregate-es/command-handler-map.d.ts +8 -0
- package/dist/meta/aggregate-es/command-handler-map.js +43 -0
- package/dist/meta/aggregate-es/event-applier-map.d.ts +9 -0
- package/dist/meta/aggregate-es/event-applier-map.js +43 -0
- package/dist/meta/aggregate-es/index.d.ts +2 -0
- package/dist/meta/aggregate-es/index.js +18 -0
- package/dist/meta/command.metadata.d.ts +8 -0
- package/dist/meta/command.metadata.js +27 -0
- package/dist/meta/event.metadata.d.ts +8 -0
- package/dist/meta/event.metadata.js +27 -0
- package/dist/meta/index.d.ts +3 -0
- package/dist/meta/index.js +19 -0
- package/dist/types/class-static.d.ts +2 -0
- package/dist/types/class-static.js +2 -0
- package/dist/types/class.d.ts +2 -0
- package/dist/types/class.js +2 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +18 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +17 -0
- package/dist/utils/to-array.d.ts +1 -0
- package/dist/utils/to-array.js +7 -0
- package/package.json +62 -1
- /package/{index.js → dist/index.js} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 {
|
|
21
|
+
...super.modelDescriptor(),
|
|
22
|
+
commandType: commandClass.commandType(),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
metadata() {
|
|
26
|
+
return {
|
|
27
|
+
...super.metadata(),
|
|
28
|
+
commandType: this._commandType,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
commandType() {
|
|
32
|
+
return this._commandType;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.CommandBase = CommandBase;
|
|
@@ -0,0 +1,19 @@
|
|
|
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);
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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;
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
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 {
|
|
22
|
+
...super.modelDescriptor(),
|
|
23
|
+
eventType: eventClass.eventType(),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
metadata() {
|
|
27
|
+
return {
|
|
28
|
+
...super.metadata(),
|
|
29
|
+
eventType: this._eventType,
|
|
30
|
+
source: this._source,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
eventType() {
|
|
34
|
+
return this._eventType;
|
|
35
|
+
}
|
|
36
|
+
source() {
|
|
37
|
+
return this._source;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.EventBase = EventBase;
|
|
@@ -0,0 +1,19 @@
|
|
|
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);
|
|
@@ -0,0 +1,19 @@
|
|
|
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);
|
|
@@ -0,0 +1,18 @@
|
|
|
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);
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MessageBuilder = exports.MessageBuilderBase = void 0;
|
|
4
|
+
const model_with_id_1 = require("../../model-with-id");
|
|
5
|
+
class MessageBuilderBase extends model_with_id_1.ModelWithIdBuilder {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.timestamp = Date.now();
|
|
9
|
+
this.correlationIds = {};
|
|
10
|
+
}
|
|
11
|
+
withCausationId(causationId) {
|
|
12
|
+
this.causationId = causationId;
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
withCorrelationIds(correlationIds) {
|
|
16
|
+
this.correlationIds = correlationIds;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
withTimestamp(timestamp) {
|
|
20
|
+
this.timestamp = timestamp;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
withTimestampNow() {
|
|
24
|
+
return this.withTimestamp(Date.now());
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.MessageBuilderBase = MessageBuilderBase;
|
|
28
|
+
class MessageBuilder extends MessageBuilderBase {
|
|
29
|
+
constructor(messageClass) {
|
|
30
|
+
super();
|
|
31
|
+
this.messageClass = messageClass;
|
|
32
|
+
}
|
|
33
|
+
build() {
|
|
34
|
+
if (!this.props)
|
|
35
|
+
throw new Error("The props must be set before build");
|
|
36
|
+
return new this.messageClass({
|
|
37
|
+
id: this.id,
|
|
38
|
+
timestamp: this.timestamp,
|
|
39
|
+
correlationIds: this.correlationIds,
|
|
40
|
+
causationId: this.causationId,
|
|
41
|
+
}, this.props);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.MessageBuilder = MessageBuilder;
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
export interface CorrelationIds {
|
|
6
|
+
[type: string]: string | undefined;
|
|
7
|
+
}
|
|
8
|
+
export interface MessageMetadata extends ModelWithIdMetadata {
|
|
9
|
+
timestamp: number;
|
|
10
|
+
causationId?: string;
|
|
11
|
+
correlationIds: CorrelationIds;
|
|
12
|
+
}
|
|
13
|
+
export declare class MessageBase<P extends Props> extends ModelWithId<P> {
|
|
14
|
+
private readonly _timestamp;
|
|
15
|
+
private _causationId?;
|
|
16
|
+
private _correlationIds;
|
|
17
|
+
constructor(metadata: MessageMetadata, props: P);
|
|
18
|
+
props(): P;
|
|
19
|
+
metadata(): MessageMetadata;
|
|
20
|
+
timestamp(): number;
|
|
21
|
+
correlationIds(): CorrelationIds;
|
|
22
|
+
causationId(): string | undefined;
|
|
23
|
+
setCausationId(causationId: string): void;
|
|
24
|
+
addCorrelationId(type: string, correlationId: string): void;
|
|
25
|
+
setCorrelationIds(correlationIds: CorrelationIds): void;
|
|
26
|
+
}
|
|
27
|
+
export type AnyMessage = MessageBase<Props>;
|
|
28
|
+
export interface MessageClass<T extends AnyMessage = AnyMessage, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof MessageBase<InferredProps<T>>> {
|
|
29
|
+
}
|
|
30
|
+
export interface MessageClassWithTypedConstructor<T extends AnyMessage = AnyMessage> extends MessageClass<T, ConstructorParameters<typeof MessageBase<InferredProps<T>>>> {
|
|
31
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MessageBase = void 0;
|
|
13
|
+
const base_1 = require("../../../base");
|
|
14
|
+
const model_with_id_1 = require("../../model-with-id");
|
|
15
|
+
let MessageBase = class MessageBase extends model_with_id_1.ModelWithId {
|
|
16
|
+
constructor(metadata, props) {
|
|
17
|
+
super(metadata);
|
|
18
|
+
this._timestamp = metadata.timestamp;
|
|
19
|
+
this._causationId = metadata.causationId;
|
|
20
|
+
this._correlationIds = metadata.correlationIds;
|
|
21
|
+
this.initializeProps(props);
|
|
22
|
+
}
|
|
23
|
+
props() {
|
|
24
|
+
return super.props();
|
|
25
|
+
}
|
|
26
|
+
metadata() {
|
|
27
|
+
return {
|
|
28
|
+
...super.metadata(),
|
|
29
|
+
timestamp: this._timestamp,
|
|
30
|
+
correlationIds: this._correlationIds,
|
|
31
|
+
causationId: this._causationId,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
timestamp() {
|
|
35
|
+
return this._timestamp;
|
|
36
|
+
}
|
|
37
|
+
correlationIds() {
|
|
38
|
+
return this._correlationIds;
|
|
39
|
+
}
|
|
40
|
+
causationId() {
|
|
41
|
+
return this._causationId;
|
|
42
|
+
}
|
|
43
|
+
setCausationId(causationId) {
|
|
44
|
+
if (!this._causationId)
|
|
45
|
+
this._causationId = causationId;
|
|
46
|
+
}
|
|
47
|
+
addCorrelationId(type, correlationId) {
|
|
48
|
+
this._correlationIds[type] = correlationId;
|
|
49
|
+
}
|
|
50
|
+
setCorrelationIds(correlationIds) {
|
|
51
|
+
this._correlationIds = correlationIds;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
exports.MessageBase = MessageBase;
|
|
55
|
+
exports.MessageBase = MessageBase = __decorate([
|
|
56
|
+
(0, base_1.Mutable)(false),
|
|
57
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
58
|
+
], MessageBase);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type Id = string;
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./id"), exports);
|
|
18
|
+
__exportStar(require("./model-with-id"), exports);
|
|
19
|
+
__exportStar(require("./model-with-id.builder"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModelBuilder } from "../../base";
|
|
2
|
+
import { AnyModelWithId } from "./model-with-id";
|
|
3
|
+
import { Id } from "./id";
|
|
4
|
+
export declare abstract class ModelWithIdBuilder<T extends AnyModelWithId> extends ModelBuilder<T> {
|
|
5
|
+
protected id: Id;
|
|
6
|
+
newId(): string;
|
|
7
|
+
withId(id: Id): this;
|
|
8
|
+
withNewId(): this;
|
|
9
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelWithIdBuilder = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
const base_1 = require("../../base");
|
|
6
|
+
class ModelWithIdBuilder extends base_1.ModelBuilder {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.id = this.newId();
|
|
10
|
+
}
|
|
11
|
+
newId() {
|
|
12
|
+
return (0, uuid_1.v4)();
|
|
13
|
+
}
|
|
14
|
+
withId(id) {
|
|
15
|
+
this.id = id;
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
withNewId() {
|
|
19
|
+
return this.withId(this.newId());
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.ModelWithIdBuilder = ModelWithIdBuilder;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Id } from "./id";
|
|
2
|
+
import { ModelBase, Props } from "../../base";
|
|
3
|
+
export interface ModelWithIdMetadata {
|
|
4
|
+
id: Id;
|
|
5
|
+
}
|
|
6
|
+
export declare class ModelWithId<P extends Props> extends ModelBase<P> {
|
|
7
|
+
protected readonly _id: Id;
|
|
8
|
+
constructor(metadata: ModelWithIdMetadata);
|
|
9
|
+
metadata(): ModelWithIdMetadata;
|
|
10
|
+
id(): string;
|
|
11
|
+
hasId(id: Id): boolean;
|
|
12
|
+
}
|
|
13
|
+
export type AnyModelWithId = ModelWithId<Props>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelWithId = void 0;
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
class ModelWithId extends base_1.ModelBase {
|
|
6
|
+
constructor(metadata) {
|
|
7
|
+
super();
|
|
8
|
+
this._id = metadata.id;
|
|
9
|
+
}
|
|
10
|
+
metadata() {
|
|
11
|
+
return {
|
|
12
|
+
...super.metadata(),
|
|
13
|
+
id: this._id,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
id() {
|
|
17
|
+
return this._id;
|
|
18
|
+
}
|
|
19
|
+
hasId(id) {
|
|
20
|
+
return this._id === id;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.ModelWithId = ModelWithId;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./repository";
|
|
@@ -0,0 +1,17 @@
|
|
|
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("./repository"), exports);
|
|
@@ -0,0 +1,18 @@
|
|
|
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("./value-object"), exports);
|
|
18
|
+
__exportStar(require("./value-object.builder"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ModelBuilder } from "../../base";
|
|
2
|
+
import { AnyValueObject, ValueObjectClassWithTypedConstructor } from "./value-object";
|
|
3
|
+
export declare class ValueObjectBuilder<T extends AnyValueObject> extends ModelBuilder<T> {
|
|
4
|
+
private valueObjectClass;
|
|
5
|
+
constructor(valueObjectClass: ValueObjectClassWithTypedConstructor<T>);
|
|
6
|
+
build(): T;
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValueObjectBuilder = void 0;
|
|
4
|
+
const base_1 = require("../../base");
|
|
5
|
+
class ValueObjectBuilder extends base_1.ModelBuilder {
|
|
6
|
+
constructor(valueObjectClass) {
|
|
7
|
+
super();
|
|
8
|
+
this.valueObjectClass = valueObjectClass;
|
|
9
|
+
}
|
|
10
|
+
build() {
|
|
11
|
+
if (!this.props)
|
|
12
|
+
throw new Error("The props must be set before build");
|
|
13
|
+
return new this.valueObjectClass(this.props);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ValueObjectBuilder = ValueObjectBuilder;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Class } from "type-fest";
|
|
2
|
+
import { ModelBase, Props, InferredProps } from "../../base";
|
|
3
|
+
import { ClassStatic } from "../../types";
|
|
4
|
+
export declare class ValueObjectBase<P extends Props> extends ModelBase<P> {
|
|
5
|
+
constructor(props: P);
|
|
6
|
+
props(): P;
|
|
7
|
+
equals<V extends AnyValueObject>(vo: V): boolean;
|
|
8
|
+
with(props: Partial<P>): typeof this;
|
|
9
|
+
clone(): this;
|
|
10
|
+
getEqualityValue(): string;
|
|
11
|
+
protected getEqualityObject(): any;
|
|
12
|
+
}
|
|
13
|
+
export type AnyValueObject = ValueObjectBase<Props>;
|
|
14
|
+
export interface ValueObjectClass<T extends AnyValueObject = AnyValueObject> extends Class<T>, ClassStatic<typeof ValueObjectBase<InferredProps<T>>> {
|
|
15
|
+
}
|
|
16
|
+
export interface ValueObjectClassWithTypedConstructor<T extends AnyValueObject = AnyValueObject> extends Class<T, ConstructorParameters<typeof ValueObjectBase<InferredProps<T>>>> {
|
|
17
|
+
}
|