ddd-node 24.1.2 → 24.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.
Files changed (110) hide show
  1. package/dist/{model → base}/decorators/model.d.ts +1 -1
  2. package/dist/base/decorators/mutable.d.ts +2 -0
  3. package/dist/{model → base}/decorators/prop.d.ts +1 -1
  4. package/dist/base/decorators/static.d.ts +3 -0
  5. package/dist/{model → base}/index.d.ts +1 -1
  6. package/dist/{model → base}/index.js +1 -1
  7. package/dist/{model → base}/meta/model-domain.d.ts +1 -1
  8. package/dist/{model → base}/meta/model-id.d.ts +1 -1
  9. package/dist/{model → base}/meta/model-name.d.ts +1 -1
  10. package/dist/{model → base}/meta/model-props-map.d.ts +1 -1
  11. package/dist/{model → base}/meta/model-props-map.js +2 -2
  12. package/dist/{model → base}/meta/model-props-validator.d.ts +1 -1
  13. package/dist/{model → base}/meta/model-static-values.d.ts +1 -1
  14. package/dist/{model → base}/meta/model-version.d.ts +1 -1
  15. package/dist/{model → base}/model-registry.d.ts +1 -1
  16. package/dist/core/aggregate/aggregate-base/aggregate-event-dispatcher.interface.d.ts +4 -0
  17. package/dist/core/aggregate/aggregate-base/aggregate.d.ts +3 -3
  18. package/dist/core/aggregate/aggregate-base/index.d.ts +1 -0
  19. package/dist/core/aggregate/aggregate-base/index.js +1 -0
  20. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate-model-descriptor.d.ts +1 -1
  21. package/dist/core/aggregate/event-sourced-aggregate/event-sourced-aggregate.d.ts +3 -3
  22. package/dist/core/aggregate/event-sourced-aggregate/snapshot.d.ts +1 -1
  23. package/dist/core/aggregate/index.d.ts +0 -1
  24. package/dist/core/aggregate/index.js +0 -1
  25. package/dist/core/aggregate/state-aggregate/state-aggregate.d.ts +3 -4
  26. package/dist/core/entity/entity.builder.d.ts +1 -1
  27. package/dist/core/entity/entity.builder.js +2 -2
  28. package/dist/core/entity/entity.d.ts +1 -1
  29. package/dist/core/entity/entity.js +2 -2
  30. package/dist/core/enum/enum-builder.d.ts +1 -1
  31. package/dist/core/enum/enum-builder.js +2 -2
  32. package/dist/core/enum/enum.d.ts +1 -1
  33. package/dist/core/enum/enum.js +4 -4
  34. package/dist/core/identifiable-model/identifiable-model.builder.d.ts +1 -1
  35. package/dist/core/identifiable-model/identifiable-model.builder.js +2 -2
  36. package/dist/core/identifiable-model/identifiable-model.d.ts +1 -1
  37. package/dist/core/identifiable-model/identifiable-model.js +2 -2
  38. package/dist/core/index.d.ts +0 -1
  39. package/dist/core/index.js +0 -1
  40. package/dist/core/message/command/command-model-descriptor.d.ts +1 -1
  41. package/dist/core/message/command/command.d.ts +2 -2
  42. package/dist/core/message/event/event-model-descriptor.d.ts +1 -1
  43. package/dist/core/message/event/event.d.ts +2 -2
  44. package/dist/core/message/message-base/message.d.ts +1 -1
  45. package/dist/core/message/message-base/message.js +2 -2
  46. package/dist/core/value-object/value-object.builder.d.ts +1 -1
  47. package/dist/core/value-object/value-object.builder.js +2 -2
  48. package/dist/core/value-object/value-object.d.ts +1 -1
  49. package/dist/core/value-object/value-object.js +3 -3
  50. package/dist/decorators/enum.js +2 -2
  51. package/dist/event-pubsub/decorators/index.d.ts +1 -0
  52. package/dist/event-pubsub/decorators/index.js +17 -0
  53. package/dist/event-pubsub/decorators/subscribe-to-events.d.ts +5 -0
  54. package/dist/event-pubsub/decorators/subscribe-to-events.js +11 -0
  55. package/dist/{core/event-pubsub → event-pubsub}/event-publisher.d.ts +2 -5
  56. package/dist/{core/event-pubsub → event-pubsub}/event-publisher.js +2 -1
  57. package/dist/{core/event-pubsub → event-pubsub}/event-subscriber-registry.d.ts +9 -11
  58. package/dist/{core/event-pubsub → event-pubsub}/event-subscriber-registry.js +20 -3
  59. package/dist/event-pubsub/event-subscriber.d.ts +13 -0
  60. package/dist/{core/event-pubsub → event-pubsub}/event-subscriber.js +10 -2
  61. package/dist/{core/event-pubsub → event-pubsub}/index.d.ts +2 -0
  62. package/dist/{core/event-pubsub → event-pubsub}/index.js +2 -0
  63. package/dist/event-pubsub/interfaces/event-publisher.interface.d.ts +4 -0
  64. package/dist/event-pubsub/interfaces/event-publisher.interface.js +2 -0
  65. package/dist/event-pubsub/interfaces/event-subscriber-registry.interface.d.ts +13 -0
  66. package/dist/event-pubsub/interfaces/event-subscriber-registry.interface.js +2 -0
  67. package/dist/event-pubsub/interfaces/event-subscriber.interface.d.ts +9 -0
  68. package/dist/event-pubsub/interfaces/event-subscriber.interface.js +2 -0
  69. package/dist/event-pubsub/interfaces/index.d.ts +3 -0
  70. package/dist/event-pubsub/interfaces/index.js +19 -0
  71. package/dist/index.d.ts +3 -2
  72. package/dist/index.js +3 -2
  73. package/dist/meta/aggregate-es/command-handler-map.js +2 -2
  74. package/dist/meta/aggregate-es/event-applier-map.js +2 -2
  75. package/dist/package.json +1 -1
  76. package/package.json +1 -1
  77. package/dist/core/aggregate/event-dispatcher.interface.d.ts +0 -4
  78. package/dist/core/event-pubsub/event-subscriber.d.ts +0 -13
  79. package/dist/model/decorators/mutable.d.ts +0 -2
  80. package/dist/model/decorators/static.d.ts +0 -3
  81. /package/dist/{model → base}/decorators/index.d.ts +0 -0
  82. /package/dist/{model → base}/decorators/index.js +0 -0
  83. /package/dist/{model → base}/decorators/model.js +0 -0
  84. /package/dist/{model → base}/decorators/mutable.js +0 -0
  85. /package/dist/{model → base}/decorators/prop.js +0 -0
  86. /package/dist/{model → base}/decorators/static.js +0 -0
  87. /package/dist/{model → base}/domain.d.ts +0 -0
  88. /package/dist/{model → base}/domain.js +0 -0
  89. /package/dist/{model → base}/meta/index.d.ts +0 -0
  90. /package/dist/{model → base}/meta/index.js +0 -0
  91. /package/dist/{model → base}/meta/model-domain.js +0 -0
  92. /package/dist/{model → base}/meta/model-id.js +0 -0
  93. /package/dist/{model → base}/meta/model-mutable.d.ts +0 -0
  94. /package/dist/{model → base}/meta/model-mutable.js +0 -0
  95. /package/dist/{model → base}/meta/model-name.js +0 -0
  96. /package/dist/{model → base}/meta/model-props-validator.js +0 -0
  97. /package/dist/{model → base}/meta/model-static-values.js +0 -0
  98. /package/dist/{model → base}/meta/model-version.js +0 -0
  99. /package/dist/{model/core → base/model}/errors.d.ts +0 -0
  100. /package/dist/{model/core → base/model}/errors.js +0 -0
  101. /package/dist/{model/core → base/model}/index.d.ts +0 -0
  102. /package/dist/{model/core → base/model}/index.js +0 -0
  103. /package/dist/{model/core → base/model}/model-descriptor.d.ts +0 -0
  104. /package/dist/{model/core → base/model}/model-descriptor.js +0 -0
  105. /package/dist/{model/core → base/model}/model.builder.d.ts +0 -0
  106. /package/dist/{model/core → base/model}/model.builder.js +0 -0
  107. /package/dist/{model/core → base/model}/model.d.ts +0 -0
  108. /package/dist/{model/core → base/model}/model.js +0 -0
  109. /package/dist/{model → base}/model-registry.js +0 -0
  110. /package/dist/core/aggregate/{event-dispatcher.interface.js → aggregate-base/aggregate-event-dispatcher.interface.js} +0 -0
@@ -1,4 +1,4 @@
1
- import { AnyModel, ModelClass } from "../core";
1
+ import { AnyModel, ModelClass } from "../model";
2
2
  import { PropsValidator } from "../meta";
3
3
  export type ModelOptions<T extends AnyModel = AnyModel> = {
4
4
  name?: string;
@@ -0,0 +1,2 @@
1
+ import { AbstractModelClass, ModelClass } from "../model";
2
+ export declare const Mutable: (mutable?: boolean) => <T extends ModelClass<import("../model").AnyModel> | AbstractModelClass<import("../model").AnyModel>>(target: T) => void;
@@ -1,2 +1,2 @@
1
- import { AnyModel, PropsOf } from "../core";
1
+ import { AnyModel, PropsOf } from "../model";
2
2
  export declare const Prop: <T extends AnyModel>(propTargetKey?: keyof PropsOf<T> | undefined) => (target: T, key: PropertyKey) => void;
@@ -0,0 +1,3 @@
1
+ import { ModelClass } from "../model";
2
+ import { StaticValueBuilder } from "../meta";
3
+ export declare const Static: <T extends ModelClass<import("../model").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(builder: StaticValueBuilder<I>) => (target: T, key: PropertyKey) => void;
@@ -1,5 +1,5 @@
1
1
  export * from "./meta";
2
- export * from "./core";
2
+ export * from "./model";
3
3
  export * from "./decorators";
4
4
  export * from "./domain";
5
5
  export * from "./model-registry";
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./meta"), exports);
18
- __exportStar(require("./core"), exports);
18
+ __exportStar(require("./model"), exports);
19
19
  __exportStar(require("./decorators"), exports);
20
20
  __exportStar(require("./domain"), exports);
21
21
  __exportStar(require("./model-registry"), exports);
@@ -1,4 +1,4 @@
1
- import { AnyModel, ModelClass } from "../core";
1
+ import { AnyModel, ModelClass } from "../model";
2
2
  export declare const ModelDomainMetaKey: unique symbol;
3
3
  export declare const defineModelDomain: <T extends AnyModel>(target: ModelClass<T>, domainName: string) => void;
4
4
  export declare const getModelDomain: <T extends AnyModel>(target: ModelClass<T>) => string;
@@ -1,4 +1,4 @@
1
- import { AnyModel, ModelClass } from "../core";
1
+ import { AnyModel, ModelClass } from "../model";
2
2
  import { ModelName } from "./model-name";
3
3
  import { ModelVersion } from "./model-version";
4
4
  export type ModelId = string;
@@ -1,4 +1,4 @@
1
- import { AnyModel, ModelClass } from "../core";
1
+ import { AnyModel, ModelClass } from "../model";
2
2
  export type ModelName = string;
3
3
  export declare class $ModelName extends String {
4
4
  static validate(modelName: ModelName): void;
@@ -1,4 +1,4 @@
1
- import { AnyModel, PropsOf } from "../core";
1
+ import { AnyModel, PropsOf } from "../model";
2
2
  export declare class PropsMap<T extends AnyModel = AnyModel> extends Map<PropertyKey, keyof PropsOf<T>> {
3
3
  }
4
4
  export declare const getOwnPropsMap: <T extends AnyModel = AnyModel>(target: object) => PropsMap<T>;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getPropsMap = exports.defineProp = exports.getOwnPropsMap = exports.PropsMap = void 0;
4
- const core_1 = require("../core");
4
+ const model_1 = require("../model");
5
5
  const OwnPropsMapMetaKey = Symbol.for("OWN_PROPS_MAP");
6
6
  class PropsMap extends Map {
7
7
  }
@@ -27,7 +27,7 @@ const getPropsMap = (target) => {
27
27
  const result = new PropsMap();
28
28
  const ownPropsMapList = [];
29
29
  do {
30
- if (core_1.ModelBase.isModel(_target)) {
30
+ if (model_1.ModelBase.isModel(_target)) {
31
31
  const ownPropsMap = (0, exports.getOwnPropsMap)(_target);
32
32
  ownPropsMapList.unshift(ownPropsMap);
33
33
  }
@@ -1,4 +1,4 @@
1
- import { AnyModel, PropsOf } from "../core";
1
+ import { AnyModel, PropsOf } from "../model";
2
2
  export type PropsValidator<T extends AnyModel = AnyModel> = (props: PropsOf<T>) => void;
3
3
  export declare const definePropsValidator: <T extends AnyModel>(target: object, validator: PropsValidator<T>) => void;
4
4
  export declare const getOwnPropsValidator: <T extends AnyModel>(target: object) => PropsValidator<T> | undefined;
@@ -1,4 +1,4 @@
1
- import { AnyModel, ModelClass } from "../core";
1
+ import { AnyModel, ModelClass } from "../model";
2
2
  export type StaticValueBuilder<T extends AnyModel = AnyModel> = () => T;
3
3
  export declare class StaticValue<T extends AnyModel = AnyModel> {
4
4
  private _value;
@@ -1,4 +1,4 @@
1
- import { AnyModel, ModelClass } from "../core";
1
+ import { AnyModel, ModelClass } from "../model";
2
2
  export type ModelVersion = number;
3
3
  export declare class $ModelVersion extends Number {
4
4
  static validate(modelVersion: ModelVersion): void;
@@ -1,4 +1,4 @@
1
- import { AnyModel, ModelClass } from "./core";
1
+ import { AnyModel, ModelClass } from "./model";
2
2
  import { ModelId, ModelName, ModelVersion } from "./meta";
3
3
  export declare class ModelVersionMap<T extends AnyModel = AnyModel> extends Map<ModelVersion, ModelClass<T>> {
4
4
  readonly modelName: ModelName;
@@ -0,0 +1,4 @@
1
+ import { AnyEvent } from "../../message";
2
+ export interface IAggregateEventDispatcher {
3
+ dispatch(event: AnyEvent): void;
4
+ }
@@ -1,7 +1,7 @@
1
- import { Props, PropsOf } from "../../../model";
1
+ import { Props, PropsOf } from "../../../base";
2
2
  import { EntityBase, EntityMetadata } from "../../entity";
3
3
  import { AnyEvent, EventClassWithTypedConstructor, EventSource } from "../../message";
4
- import { IEventDispatcher } from "../event-dispatcher.interface";
4
+ import { IAggregateEventDispatcher } from "./aggregate-event-dispatcher.interface";
5
5
  export interface AggregateMetadata extends EntityMetadata {
6
6
  version: number;
7
7
  }
@@ -12,6 +12,6 @@ export declare abstract class AggregateBase<P extends Props> extends EntityBase<
12
12
  metadata(): AggregateMetadata;
13
13
  protected createEventSource(): EventSource;
14
14
  protected newEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props: PropsOf<E>): E;
15
- abstract dispatchEvents(dispatcher: IEventDispatcher): void;
15
+ abstract dispatchEvents(dispatcher: IAggregateEventDispatcher): void;
16
16
  }
17
17
  export type AnyAggregate = AggregateBase<Props>;
@@ -1,2 +1,3 @@
1
1
  export * from "./aggregate";
2
2
  export * from "./aggregate.builder";
3
+ export * from "./aggregate-event-dispatcher.interface";
@@ -16,3 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./aggregate"), exports);
18
18
  __exportStar(require("./aggregate.builder"), exports);
19
+ __exportStar(require("./aggregate-event-dispatcher.interface"), exports);
@@ -1,6 +1,6 @@
1
1
  import { AnyEventSourcedAggregate } from ".";
2
2
  import { CommandHandlerMap, EventApplierMap } from "../../../meta";
3
- import { ModelDescriptor } from "../../../model";
3
+ import { ModelDescriptor } from "../../../base";
4
4
  export interface EventSourcedAggregateModelDescriptor<T extends AnyEventSourcedAggregate> extends ModelDescriptor<T> {
5
5
  ownEventApplierMap: EventApplierMap;
6
6
  eventApplierMap: EventApplierMap;
@@ -1,9 +1,9 @@
1
1
  import { Class } from "type-fest";
2
- import { Props, PropsOf } from "../../../model";
2
+ import { Props, PropsOf } from "../../../base";
3
3
  import { ClassStatic } from "../../../types";
4
4
  import { AnyCommand, AnyEvent, EventClassWithTypedConstructor } from "../../message";
5
5
  import { AggregateBase, AggregateMetadata } from "../aggregate-base";
6
- import { IEventDispatcher } from "../event-dispatcher.interface";
6
+ import { IAggregateEventDispatcher } from "../aggregate-base";
7
7
  import { EventSourcedAggregateModelDescriptor } from "./event-sourced-aggregate-model-descriptor";
8
8
  import { Snapshot, SnapshotMetadata } from "./snapshot";
9
9
  export interface EventSourceAggregateMetadata extends AggregateMetadata {
@@ -36,7 +36,7 @@ export declare class EventSourcedAggregateBase<P extends Props> extends Aggregat
36
36
  snapMetadata(): SnapshotMetadata;
37
37
  snap(): Snapshot<this>;
38
38
  protected archiveEvents(): void;
39
- dispatchEvents(dispatcher: IEventDispatcher): void;
39
+ dispatchEvents(dispatcher: IAggregateEventDispatcher): void;
40
40
  }
41
41
  export type AnyEventSourcedAggregate = EventSourcedAggregateBase<Props>;
42
42
  export interface EventSourcedAggregateClass<T extends AnyEventSourcedAggregate = AnyEventSourcedAggregate, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof EventSourcedAggregateBase<PropsOf<T>>> {
@@ -1,4 +1,4 @@
1
- import { PropsOf } from "../../../model";
1
+ import { PropsOf } from "../../../base";
2
2
  import { AnyEventSourcedAggregate, EventSourceAggregateMetadata } from "./event-sourced-aggregate";
3
3
  export interface SnapshotMetadata extends EventSourceAggregateMetadata {
4
4
  }
@@ -1,4 +1,3 @@
1
- export * from "./event-dispatcher.interface";
2
1
  export * from "./aggregate-base";
3
2
  export * from "./state-aggregate";
4
3
  export * from "./event-sourced-aggregate";
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./event-dispatcher.interface"), exports);
18
17
  __exportStar(require("./aggregate-base"), exports);
19
18
  __exportStar(require("./state-aggregate"), exports);
20
19
  __exportStar(require("./event-sourced-aggregate"), exports);
@@ -1,9 +1,8 @@
1
1
  import { Class } from "type-fest";
2
- import { Props, PropsOf } from "../../../model";
2
+ import { Props, PropsOf } from "../../../base";
3
3
  import { ClassStatic } from "../../../types";
4
4
  import { AnyEvent, EventClassWithTypedConstructor } from "../../message";
5
- import { AggregateBase, AggregateMetadata } from "../aggregate-base";
6
- import { IEventDispatcher } from "../event-dispatcher.interface";
5
+ import { AggregateBase, AggregateMetadata, IAggregateEventDispatcher } from "../aggregate-base";
7
6
  export interface StateAggregateMetadata extends AggregateMetadata {
8
7
  }
9
8
  export declare class StateAggregateBase<P extends Props> extends AggregateBase<P> {
@@ -15,7 +14,7 @@ export declare class StateAggregateBase<P extends Props> extends AggregateBase<P
15
14
  protected recordEvent<E extends AnyEvent>(event: E): void;
16
15
  protected recordEvent<E extends AnyEvent>(eventClass: EventClassWithTypedConstructor<E>, props: PropsOf<E>): void;
17
16
  clearEvents(): void;
18
- dispatchEvents(dispatcher: IEventDispatcher): void;
17
+ dispatchEvents(dispatcher: IAggregateEventDispatcher): void;
19
18
  }
20
19
  export type AnyStateAggregate = StateAggregateBase<Props>;
21
20
  export interface StateAggregateClass<T extends AnyStateAggregate = AnyStateAggregate, Arguments extends unknown[] = any[]> extends Class<T, Arguments>, ClassStatic<typeof StateAggregateBase<PropsOf<T>>> {
@@ -1,4 +1,4 @@
1
- import { IdentifiableModelBuilder } from "..";
1
+ import { IdentifiableModelBuilder } from "../identifiable-model";
2
2
  import { AnyEntity, EntityClassWithTypedConstructor } from "./entity";
3
3
  export declare abstract class EntityBuilderBase<T extends AnyEntity> extends IdentifiableModelBuilder<T> {
4
4
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EntityBuilder = exports.EntityBuilderBase = void 0;
4
- const __1 = require("..");
5
- class EntityBuilderBase extends __1.IdentifiableModelBuilder {
4
+ const identifiable_model_1 = require("../identifiable-model");
5
+ class EntityBuilderBase extends identifiable_model_1.IdentifiableModelBuilder {
6
6
  }
7
7
  exports.EntityBuilderBase = EntityBuilderBase;
8
8
  class EntityBuilder extends EntityBuilderBase {
@@ -1,5 +1,5 @@
1
1
  import { Class } from "type-fest";
2
- import { Props, PropsOf } from "../../model";
2
+ import { Props, PropsOf } from "../../base";
3
3
  import { ClassStatic } from "../../types";
4
4
  import { IdentifiableModel, IdentifiableModelMetadata } from "../identifiable-model";
5
5
  export interface EntityMetadata extends IdentifiableModelMetadata {
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.EntityBase = void 0;
13
- const model_1 = require("../../model");
13
+ const base_1 = require("../../base");
14
14
  const identifiable_model_1 = require("../identifiable-model");
15
15
  let EntityBase = class EntityBase extends identifiable_model_1.IdentifiableModel {
16
16
  constructor(metadata, props) {
@@ -21,6 +21,6 @@ let EntityBase = class EntityBase extends identifiable_model_1.IdentifiableModel
21
21
  };
22
22
  exports.EntityBase = EntityBase;
23
23
  exports.EntityBase = EntityBase = __decorate([
24
- (0, model_1.Mutable)(true),
24
+ (0, base_1.Mutable)(true),
25
25
  __metadata("design:paramtypes", [Object, Object])
26
26
  ], EntityBase);
@@ -1,4 +1,4 @@
1
- import { ModelBuilder } from "../../model";
1
+ import { ModelBuilder } from "../../base";
2
2
  import { AnyEnum, EnumClass, EnumValue } from "./enum";
3
3
  export declare class EnumBuilder<T extends AnyEnum> extends ModelBuilder<T> {
4
4
  private enumClass;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EnumBuilder = void 0;
4
- const model_1 = require("../../model");
5
- class EnumBuilder extends model_1.ModelBuilder {
4
+ const base_1 = require("../../base");
5
+ class EnumBuilder extends base_1.ModelBuilder {
6
6
  constructor(enumClass) {
7
7
  super();
8
8
  this.enumClass = enumClass;
@@ -1,5 +1,5 @@
1
1
  import { Class } from "type-fest";
2
- import { ModelBase } from "../../model";
2
+ import { ModelBase } from "../../base";
3
3
  import { ClassStatic } from "../../types";
4
4
  export type EnumValue = string | number;
5
5
  export interface EnumProps {
@@ -10,8 +10,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.EnumBase = void 0;
13
- const model_1 = require("../../model");
14
- let EnumBase = class EnumBase extends model_1.ModelBase {
13
+ const base_1 = require("../../base");
14
+ let EnumBase = class EnumBase extends base_1.ModelBase {
15
15
  static values() {
16
16
  return Array.from(this.ownStaticValues().values()).map((staticValue) => staticValue.value);
17
17
  }
@@ -25,10 +25,10 @@ let EnumBase = class EnumBase extends model_1.ModelBase {
25
25
  };
26
26
  exports.EnumBase = EnumBase;
27
27
  __decorate([
28
- (0, model_1.Prop)(),
28
+ (0, base_1.Prop)(),
29
29
  __metadata("design:type", Object)
30
30
  ], EnumBase.prototype, "value", void 0);
31
31
  exports.EnumBase = EnumBase = __decorate([
32
- (0, model_1.Mutable)(false),
32
+ (0, base_1.Mutable)(false),
33
33
  __metadata("design:paramtypes", [Object])
34
34
  ], EnumBase);
@@ -1,4 +1,4 @@
1
- import { ModelBuilder } from "../../model";
1
+ import { ModelBuilder } from "../../base";
2
2
  import { AnyIdentifiableModel } from "./identifiable-model";
3
3
  import { Id } from "./id";
4
4
  export declare abstract class IdentifiableModelBuilder<T extends AnyIdentifiableModel> extends ModelBuilder<T> {
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IdentifiableModelBuilder = void 0;
4
4
  const uuid_1 = require("uuid");
5
- const model_1 = require("../../model");
6
- class IdentifiableModelBuilder extends model_1.ModelBuilder {
5
+ const base_1 = require("../../base");
6
+ class IdentifiableModelBuilder extends base_1.ModelBuilder {
7
7
  constructor() {
8
8
  super(...arguments);
9
9
  this.id = this.newId();
@@ -1,5 +1,5 @@
1
1
  import { Id } from "./id";
2
- import { ModelBase, Props } from "../../model";
2
+ import { ModelBase, Props } from "../../base";
3
3
  export interface IdentifiableModelMetadata {
4
4
  id: Id;
5
5
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IdentifiableModel = void 0;
4
- const model_1 = require("../../model");
5
- class IdentifiableModel extends model_1.ModelBase {
4
+ const base_1 = require("../../base");
5
+ class IdentifiableModel extends base_1.ModelBase {
6
6
  constructor(metadata) {
7
7
  super();
8
8
  this._id = metadata.id;
@@ -5,4 +5,3 @@ export * from "./entity";
5
5
  export * from "./aggregate";
6
6
  export * from "./message";
7
7
  export * from "./repository";
8
- export * from "./event-pubsub";
@@ -21,4 +21,3 @@ __exportStar(require("./entity"), exports);
21
21
  __exportStar(require("./aggregate"), exports);
22
22
  __exportStar(require("./message"), exports);
23
23
  __exportStar(require("./repository"), exports);
24
- __exportStar(require("./event-pubsub"), exports);
@@ -1,6 +1,6 @@
1
1
  import { AnyCommand } from "./command";
2
2
  import { CommandType } from "../../../meta";
3
- import { ModelDescriptor } from "../../../model";
3
+ import { ModelDescriptor } from "../../../base";
4
4
  export interface CommandModelDescriptor<T extends AnyCommand> extends ModelDescriptor<T> {
5
5
  commandType: CommandType;
6
6
  }
@@ -1,13 +1,13 @@
1
1
  import { Class } from "type-fest";
2
2
  import { CommandType } from "../../../meta";
3
- import { Props, PropsOf } from "../../../model";
3
+ import { Props, PropsOf } from "../../../base";
4
4
  import { ClassStatic } from "../../../types";
5
5
  import { MessageBase, MessageMetadata } from "../message-base";
6
6
  import { CommandModelDescriptor } from "./command-model-descriptor";
7
7
  export interface CommandMetadata extends MessageMetadata {
8
8
  commandType: CommandType;
9
9
  }
10
- export declare abstract class CommandBase<P extends Props> extends MessageBase<P> {
10
+ export declare class CommandBase<P extends Props> extends MessageBase<P> {
11
11
  protected readonly _commandType: CommandType;
12
12
  static commandType(): string;
13
13
  constructor(metadata: Omit<CommandMetadata, "commandType">, props: P);
@@ -1,6 +1,6 @@
1
1
  import { AnyEvent } from ".";
2
2
  import { EventType } from "../../../meta";
3
- import { ModelDescriptor } from "../../../model";
3
+ import { ModelDescriptor } from "../../../base";
4
4
  export interface EventModelDescriptor<T extends AnyEvent> extends ModelDescriptor<T> {
5
5
  eventType: EventType;
6
6
  }
@@ -1,6 +1,6 @@
1
1
  import { Class } from "type-fest";
2
2
  import { EventType } from "../../../meta";
3
- import { Props, PropsOf } from "../../../model";
3
+ import { Props, PropsOf } from "../../../base";
4
4
  import { ClassStatic } from "../../../types";
5
5
  import { Id } from "../../identifiable-model";
6
6
  import { MessageBase, MessageMetadata } from "../message-base";
@@ -13,7 +13,7 @@ export interface EventMetadata extends MessageMetadata {
13
13
  eventType: EventType;
14
14
  source: EventSource;
15
15
  }
16
- export declare abstract class EventBase<P extends Props> extends MessageBase<P> {
16
+ export declare class EventBase<P extends Props> extends MessageBase<P> {
17
17
  private readonly _eventType;
18
18
  private readonly _source;
19
19
  constructor(metadata: Omit<EventMetadata, "eventType">, props: P);
@@ -1,5 +1,5 @@
1
1
  import { Class } from "type-fest";
2
- import { Props, PropsOf } from "../../../model";
2
+ import { Props, PropsOf } from "../../../base";
3
3
  import { ClassStatic } from "../../../types";
4
4
  import { IdentifiableModel, IdentifiableModelMetadata } from "../../identifiable-model";
5
5
  export interface MessageContext {
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.MessageBase = void 0;
16
16
  const lodash_1 = __importDefault(require("lodash"));
17
- const model_1 = require("../../../model");
17
+ const base_1 = require("../../../base");
18
18
  const identifiable_model_1 = require("../../identifiable-model");
19
19
  let MessageBase = class MessageBase extends identifiable_model_1.IdentifiableModel {
20
20
  constructor(metadata, props) {
@@ -45,6 +45,6 @@ let MessageBase = class MessageBase extends identifiable_model_1.IdentifiableMod
45
45
  };
46
46
  exports.MessageBase = MessageBase;
47
47
  exports.MessageBase = MessageBase = __decorate([
48
- (0, model_1.Mutable)(false),
48
+ (0, base_1.Mutable)(false),
49
49
  __metadata("design:paramtypes", [Object, Object])
50
50
  ], MessageBase);
@@ -1,4 +1,4 @@
1
- import { ModelBuilder } from "../../model";
1
+ import { ModelBuilder } from "../../base";
2
2
  import { AnyValueObject, ValueObjectClassWithTypedConstructor } from "./value-object";
3
3
  export declare class ValueObjectBuilder<T extends AnyValueObject> extends ModelBuilder<T> {
4
4
  private valueObjectClass;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ValueObjectBuilder = void 0;
4
- const model_1 = require("../../model");
5
- class ValueObjectBuilder extends model_1.ModelBuilder {
4
+ const base_1 = require("../../base");
5
+ class ValueObjectBuilder extends base_1.ModelBuilder {
6
6
  constructor(valueObjectClass) {
7
7
  super();
8
8
  this.valueObjectClass = valueObjectClass;
@@ -1,5 +1,5 @@
1
1
  import { Class } from "type-fest";
2
- import { ModelBase, Props, PropsOf } from "../../model";
2
+ import { ModelBase, Props, PropsOf } from "../../base";
3
3
  import { ClassStatic } from "../../types";
4
4
  export declare class ValueObjectBase<P extends Props> extends ModelBase<P> {
5
5
  constructor(props: P);
@@ -15,8 +15,8 @@ var ValueObjectBase_1;
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.ValueObjectBase = void 0;
17
17
  const lodash_1 = __importDefault(require("lodash"));
18
- const model_1 = require("../../model");
19
- let ValueObjectBase = ValueObjectBase_1 = class ValueObjectBase extends model_1.ModelBase {
18
+ const base_1 = require("../../base");
19
+ let ValueObjectBase = ValueObjectBase_1 = class ValueObjectBase extends base_1.ModelBase {
20
20
  constructor(props) {
21
21
  super();
22
22
  this.initializeProps(props);
@@ -56,6 +56,6 @@ let ValueObjectBase = ValueObjectBase_1 = class ValueObjectBase extends model_1.
56
56
  };
57
57
  exports.ValueObjectBase = ValueObjectBase;
58
58
  exports.ValueObjectBase = ValueObjectBase = ValueObjectBase_1 = __decorate([
59
- (0, model_1.Mutable)(false),
59
+ (0, base_1.Mutable)(false),
60
60
  __metadata("design:paramtypes", [Object])
61
61
  ], ValueObjectBase);
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Enum = void 0;
4
- const model_1 = require("../model");
4
+ const base_1 = require("../base");
5
5
  const Enum = (value) => {
6
6
  return (target, key) => {
7
- (0, model_1.Static)(() => new target(value ?? key))(target, key);
7
+ (0, base_1.Static)(() => new target(value ?? key))(target, key);
8
8
  };
9
9
  };
10
10
  exports.Enum = Enum;
@@ -0,0 +1 @@
1
+ export * from "./subscribe-to-events";
@@ -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("./subscribe-to-events"), exports);
@@ -0,0 +1,5 @@
1
+ import { Class } from "type-fest";
2
+ import { EventClass } from "../../core";
3
+ import { IEventSubscriber } from "../interfaces";
4
+ export declare const SubscribedEventsMetaKey: unique symbol;
5
+ export declare const SubscribeToEvents: <T extends EventClass<import("../../core").AnyEvent, any[]>>(subscribedEvents: T | T[]) => (target: Class<IEventSubscriber<InstanceType<T>>>) => void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SubscribeToEvents = exports.SubscribedEventsMetaKey = void 0;
4
+ const utils_1 = require("../../utils");
5
+ exports.SubscribedEventsMetaKey = Symbol.for("SUBSCRIBED_EVENTS");
6
+ const SubscribeToEvents = (subscribedEvents) => {
7
+ return (target) => {
8
+ Reflect.defineMetadata(exports.SubscribedEventsMetaKey, (0, utils_1.toArray)(subscribedEvents), target);
9
+ };
10
+ };
11
+ exports.SubscribeToEvents = SubscribeToEvents;
@@ -1,8 +1,5 @@
1
- import { AnyEvent } from "../message";
2
- import { IEventSubscriberRegistry } from "./event-subscriber-registry";
3
- export interface IEventPublisher {
4
- publish<T extends AnyEvent = AnyEvent>(event: T): Promise<void>;
5
- }
1
+ import { AnyEvent } from "../core";
2
+ import { IEventPublisher, IEventSubscriberRegistry } from "./interfaces";
6
3
  export declare class EventPublisher implements IEventPublisher {
7
4
  private subscriberRegistry;
8
5
  constructor(subscriberRegistry: IEventSubscriberRegistry);
@@ -6,7 +6,8 @@ class EventPublisher {
6
6
  this.subscriberRegistry = subscriberRegistry;
7
7
  }
8
8
  async publish(event) {
9
- const subscribers = this.subscriberRegistry.getSubscribersForEvent(event.constructor);
9
+ const subscribers = this.subscriberRegistry.getAllSubscribersForEvent(event.constructor);
10
+ // TODO: should convert to for await (subscriber be called sequently) ?
10
11
  await Promise.all(subscribers.map((subscriber) => subscriber.handleEvent(event)));
11
12
  }
12
13
  }
@@ -1,15 +1,9 @@
1
- import { AnyEvent, EventClass } from "../message";
2
- import { IEventSubscriber } from "./event-subscriber";
3
- export type Unsubscriber = () => void;
4
- export interface IEventSubscriberRegistry {
5
- registerSubscriber(subscriber: IEventSubscriber): Unsubscriber;
6
- deregisterSubscriber(subscriber: IEventSubscriber): void;
7
- getSubscribersForEvent<T extends AnyEvent = AnyEvent>(eventType: EventClass<T>): IEventSubscriber<T>[];
8
- getSubscribers(): IEventSubscriber[];
9
- }
1
+ import { AnyEvent, EventClass } from "../core";
2
+ import { IEventSubscriber, IEventSubscriberRegistry, IGlobalEventSubscriber, Unsubscriber } from "./interfaces";
10
3
  export declare class EventSubscriberRegistry implements IEventSubscriberRegistry {
11
4
  private static _instance;
12
5
  static instance(): EventSubscriberRegistry;
6
+ private _globalSubscribers;
13
7
  private _subscribers;
14
8
  constructor(subscribers?: IEventSubscriber[]);
15
9
  private _setSubscribersForEvent;
@@ -18,8 +12,12 @@ export declare class EventSubscriberRegistry implements IEventSubscriberRegistry
18
12
  private _hasSubscriber;
19
13
  private _addSubscriber;
20
14
  private _removeSubscriber;
21
- registerSubscriber(subscriber: IEventSubscriber): () => void;
15
+ registerGlobalSubscriber(subscriber: IGlobalEventSubscriber): Unsubscriber;
16
+ deregisterGlobalSubscriber(subscriber: IGlobalEventSubscriber): void;
17
+ registerSubscriber(subscriber: IEventSubscriber): Unsubscriber;
22
18
  deregisterSubscriber(subscriber: IEventSubscriber<AnyEvent>): void;
23
- getSubscribersForEvent<T extends AnyEvent = AnyEvent>(eventType: EventClass<T, any[]>): IEventSubscriber<T>[];
19
+ getGlobalSubscribers(): IGlobalEventSubscriber[];
24
20
  getSubscribers(): IEventSubscriber[];
21
+ getSubscribersForEvent<T extends AnyEvent = AnyEvent>(eventType: EventClass<T>): IEventSubscriber<T>[];
22
+ getAllSubscribersForEvent<T extends AnyEvent = AnyEvent>(eventType: EventClass<T>): (IGlobalEventSubscriber | IEventSubscriber<T>)[];
25
23
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EventSubscriberRegistry = void 0;
4
- const utils_1 = require("../../utils");
4
+ const utils_1 = require("../utils");
5
5
  class EventSubscriberRegistry {
6
6
  static instance() {
7
7
  if (!this._instance)
@@ -9,6 +9,7 @@ class EventSubscriberRegistry {
9
9
  return this._instance;
10
10
  }
11
11
  constructor(subscribers = []) {
12
+ this._globalSubscribers = new Set();
12
13
  this._subscribers = new Map();
13
14
  subscribers.forEach((subscriber) => {
14
15
  this.registerSubscriber(subscriber);
@@ -40,6 +41,13 @@ class EventSubscriberRegistry {
40
41
  const subscribers = this._getSubscribersForEvent(subscribedEvent);
41
42
  this._setSubscribersForEvent(subscribedEvent, subscribers.filter((_subscriber) => _subscriber !== subscriber));
42
43
  }
44
+ registerGlobalSubscriber(subscriber) {
45
+ this._globalSubscribers.add(subscriber);
46
+ return () => this.deregisterGlobalSubscriber(subscriber);
47
+ }
48
+ deregisterGlobalSubscriber(subscriber) {
49
+ this._globalSubscribers.delete(subscriber);
50
+ }
43
51
  registerSubscriber(subscriber) {
44
52
  const subscribedEvents = (0, utils_1.toArray)(subscriber.subscribeToEvents());
45
53
  subscribedEvents.forEach((subscribedEvent) => {
@@ -53,11 +61,20 @@ class EventSubscriberRegistry {
53
61
  this._removeSubscriber(subscribedEvent, subscriber);
54
62
  });
55
63
  }
56
- getSubscribersForEvent(eventType) {
57
- return Array.from(this._getSubscribersForEvent(eventType));
64
+ getGlobalSubscribers() {
65
+ return Array.from(this._globalSubscribers);
58
66
  }
59
67
  getSubscribers() {
60
68
  return Array.from(this._subscribers.values()).flat();
61
69
  }
70
+ getSubscribersForEvent(eventType) {
71
+ return Array.from(this._getSubscribersForEvent(eventType));
72
+ }
73
+ getAllSubscribersForEvent(eventType) {
74
+ return [
75
+ ...this.getGlobalSubscribers(),
76
+ ...this.getSubscribersForEvent(eventType),
77
+ ];
78
+ }
62
79
  }
63
80
  exports.EventSubscriberRegistry = EventSubscriberRegistry;
@@ -0,0 +1,13 @@
1
+ import { AnyEvent, EventClass } from "../core";
2
+ import { EventSubscriberHandler, IEventSubscriber } from "./interfaces";
3
+ export declare abstract class EventSubscriber<T extends AnyEvent = AnyEvent> implements IEventSubscriber<T> {
4
+ subscribeToEvents(): EventClass<T, any[]> | EventClass<T, any[]>[];
5
+ abstract handleEvent(event: T): Promise<void>;
6
+ }
7
+ export declare class DynamicEventSubscriber<T extends AnyEvent = AnyEvent> implements IEventSubscriber<T> {
8
+ private readonly subscribedEvents;
9
+ private readonly eventHandler;
10
+ constructor(subscribedEvents: EventClass<T> | EventClass<T>[], eventHandler: EventSubscriberHandler<T>);
11
+ subscribeToEvents(): EventClass<T, any[]> | EventClass<T, any[]>[];
12
+ handleEvent(event: T): Promise<void>;
13
+ }
@@ -1,7 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventSubscriber = void 0;
3
+ exports.DynamicEventSubscriber = exports.EventSubscriber = void 0;
4
+ const decorators_1 = require("./decorators");
4
5
  class EventSubscriber {
6
+ subscribeToEvents() {
7
+ const subscribedEvents = Reflect.getOwnMetadata(decorators_1.SubscribedEventsMetaKey, this.constructor) ?? [];
8
+ return subscribedEvents;
9
+ }
10
+ }
11
+ exports.EventSubscriber = EventSubscriber;
12
+ class DynamicEventSubscriber {
5
13
  constructor(subscribedEvents, eventHandler) {
6
14
  this.subscribedEvents = subscribedEvents;
7
15
  this.eventHandler = eventHandler;
@@ -13,4 +21,4 @@ class EventSubscriber {
13
21
  return this.eventHandler(event);
14
22
  }
15
23
  }
16
- exports.EventSubscriber = EventSubscriber;
24
+ exports.DynamicEventSubscriber = DynamicEventSubscriber;
@@ -1,3 +1,5 @@
1
+ export * from "./interfaces";
2
+ export * from "./decorators";
1
3
  export * from "./event-subscriber";
2
4
  export * from "./event-publisher";
3
5
  export * from "./event-subscriber-registry";
@@ -14,6 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./interfaces"), exports);
18
+ __exportStar(require("./decorators"), exports);
17
19
  __exportStar(require("./event-subscriber"), exports);
18
20
  __exportStar(require("./event-publisher"), exports);
19
21
  __exportStar(require("./event-subscriber-registry"), exports);
@@ -0,0 +1,4 @@
1
+ import { AnyEvent } from "../../core";
2
+ export interface IEventPublisher {
3
+ publish<T extends AnyEvent = AnyEvent>(event: T): Promise<void>;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ import { AnyEvent, EventClass } from "../../core";
2
+ import { IEventSubscriber, IGlobalEventSubscriber } from "./event-subscriber.interface";
3
+ export type Unsubscriber = () => void;
4
+ export interface IEventSubscriberRegistry {
5
+ registerGlobalSubscriber(subscriber: IGlobalEventSubscriber): Unsubscriber;
6
+ deregisterGlobalSubscriber(subscriber: IGlobalEventSubscriber): void;
7
+ registerSubscriber(subscriber: IEventSubscriber): Unsubscriber;
8
+ deregisterSubscriber(subscriber: IEventSubscriber): void;
9
+ getGlobalSubscribers(): IGlobalEventSubscriber[];
10
+ getSubscribers(): IEventSubscriber[];
11
+ getSubscribersForEvent<T extends AnyEvent = AnyEvent>(eventType: EventClass<T>): IEventSubscriber<T>[];
12
+ getAllSubscribersForEvent<T extends AnyEvent = AnyEvent>(eventType: EventClass<T>): (IGlobalEventSubscriber | IEventSubscriber<T>)[];
13
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ import { AnyEvent, EventClass } from "../../core";
2
+ export interface IGlobalEventSubscriber {
3
+ handleEvent(event: AnyEvent): Promise<void>;
4
+ }
5
+ export interface IEventSubscriber<T extends AnyEvent = AnyEvent> {
6
+ subscribeToEvents(): EventClass<T> | EventClass<T>[];
7
+ handleEvent(event: T): Promise<void>;
8
+ }
9
+ export type EventSubscriberHandler<T extends AnyEvent = AnyEvent> = IEventSubscriber<T>["handleEvent"];
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export * from "./event-publisher.interface";
2
+ export * from "./event-subscriber.interface";
3
+ export * from "./event-subscriber-registry.interface";
@@ -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-publisher.interface"), exports);
18
+ __exportStar(require("./event-subscriber.interface"), exports);
19
+ __exportStar(require("./event-subscriber-registry.interface"), exports);
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- /// <reference types="src/declarations" />
2
- export * from "./model";
1
+ /// <reference types="src/#declarations" />
2
+ export * from "./base";
3
3
  export * from "./meta";
4
4
  export * from "./types";
5
5
  export * from "./utils";
6
6
  export * from "./core";
7
+ export * from "./event-pubsub";
7
8
  export * from "./decorators";
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- /// <reference path="./declarations/index.d.ts" />
2
+ /// <reference path="./#declarations/index.d.ts" />
3
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k;
5
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -15,9 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- __exportStar(require("./model"), exports);
18
+ __exportStar(require("./base"), exports);
19
19
  __exportStar(require("./meta"), exports);
20
20
  __exportStar(require("./types"), exports);
21
21
  __exportStar(require("./utils"), exports);
22
22
  __exportStar(require("./core"), exports);
23
+ __exportStar(require("./event-pubsub"), exports);
23
24
  __exportStar(require("./decorators"), exports);
@@ -30,8 +30,8 @@ const getCommandHandlerMap = (target) => {
30
30
  _target = Reflect.getPrototypeOf(_target);
31
31
  } while (_target !== null);
32
32
  ownCommandHandlerMaps.forEach((ownCommandHandlerMap) => {
33
- ownCommandHandlerMap.forEach((commandHandler, methodName) => {
34
- result.set(methodName, commandHandler);
33
+ ownCommandHandlerMap.forEach((commandHandler, commandType) => {
34
+ result.set(commandType, commandHandler);
35
35
  });
36
36
  });
37
37
  return result;
@@ -30,8 +30,8 @@ const getEventApplierMap = (target) => {
30
30
  _target = Reflect.getPrototypeOf(_target);
31
31
  } while (_target !== null);
32
32
  ownEventApplierMaps.forEach((ownEventApplierMap) => {
33
- ownEventApplierMap.forEach((eventApplier, methodName) => {
34
- result.set(methodName, eventApplier);
33
+ ownEventApplierMap.forEach((eventApplier, eventType) => {
34
+ result.set(eventType, eventApplier);
35
35
  });
36
36
  });
37
37
  return result;
package/dist/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"ddd-node","version":"24.1.2","description":"Domain Driven Design base for NodeJs","type":"commonjs","main":"index.js","types":"index.d.ts","files":["dist"],"repository":{"type":"git","url":"https://github.com/nqd881/ddd-node"},"keywords":["ddd","ddd-node","ddd-base","ddd-ts","ddd-js"],"author":"Quoc Dai","license":"ISC","devDependencies":{"@types/chai":"^4.3.16","@types/lodash":"^4.14.200","@types/mocha":"^10.0.6","@types/uuid":"^9.0.6","chai":"^5.1.1","chai-deep-match":"^1.2.1","ddd-node":"file:dist","mocha":"^10.4.0","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.2.2"},"dependencies":{"lodash":"^4.17.21","reflect-metadata":"^0.1.13","tsc-alias":"^1.8.8","type-fest":"^4.20.1","uuid":"^9.0.1"}}
1
+ {"name":"ddd-node","version":"24.3.0","description":"Domain Driven Design base for NodeJs","type":"commonjs","main":"index.js","types":"index.d.ts","files":["dist"],"repository":{"type":"git","url":"https://github.com/nqd881/ddd-node"},"keywords":["ddd","ddd-node","ddd-base","ddd-ts","ddd-js"],"author":"Quoc Dai","license":"ISC","devDependencies":{"@types/chai":"^4.3.16","@types/lodash":"^4.14.200","@types/mocha":"^10.0.6","@types/uuid":"^9.0.6","chai":"^5.1.1","chai-deep-match":"^1.2.1","ddd-node":"file:dist","mocha":"^10.4.0","ts-node":"^10.9.1","tsconfig-paths":"^4.2.0","typescript":"^5.2.2"},"dependencies":{"lodash":"^4.17.21","reflect-metadata":"^0.1.13","tsc-alias":"^1.8.8","type-fest":"^4.20.1","uuid":"^9.0.1"}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ddd-node",
3
- "version": "24.1.2",
3
+ "version": "24.3.0",
4
4
  "description": "Domain Driven Design base for NodeJs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,4 +0,0 @@
1
- import { AnyEvent } from "../message";
2
- export interface IEventDispatcher {
3
- dispatch(event: AnyEvent): void;
4
- }
@@ -1,13 +0,0 @@
1
- import { AnyEvent, EventClass } from "../message";
2
- export interface IEventSubscriber<T extends AnyEvent = AnyEvent> {
3
- subscribeToEvents(): EventClass<T> | EventClass<T>[];
4
- handleEvent(event: T): Promise<void>;
5
- }
6
- export type EventSubscriberHandler<T extends AnyEvent = AnyEvent> = IEventSubscriber<T>["handleEvent"];
7
- export declare class EventSubscriber<T extends AnyEvent = AnyEvent> implements IEventSubscriber<T> {
8
- private readonly subscribedEvents;
9
- private readonly eventHandler;
10
- constructor(subscribedEvents: EventClass<T> | EventClass<T>[], eventHandler: EventSubscriberHandler<T>);
11
- subscribeToEvents(): EventClass<T, any[]> | EventClass<T, any[]>[];
12
- handleEvent(event: T): Promise<void>;
13
- }
@@ -1,2 +0,0 @@
1
- import { AbstractModelClass, ModelClass } from "../core";
2
- export declare const Mutable: (mutable?: boolean) => <T extends ModelClass<import("../core").AnyModel> | AbstractModelClass<import("../core").AnyModel>>(target: T) => void;
@@ -1,3 +0,0 @@
1
- import { ModelClass } from "../core";
2
- import { StaticValueBuilder } from "../meta";
3
- export declare const Static: <T extends ModelClass<import("../core").AnyModel>, I extends InstanceType<T> = InstanceType<T>>(builder: StaticValueBuilder<I>) => (target: T, key: PropertyKey) => void;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes