ddd-node 35.1.0 → 36.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/base/decorators/model.js +2 -2
  2. package/base/decorators/static.d.ts +2 -2
  3. package/base/decorators/static.js +2 -2
  4. package/base/meta/index.d.ts +4 -4
  5. package/base/meta/index.js +4 -4
  6. package/base/meta/model-domain.d.ts +1 -1
  7. package/base/meta/model-domain.js +4 -4
  8. package/base/meta/model-id.d.ts +2 -2
  9. package/base/meta/model-id.js +9 -9
  10. package/base/meta/model-mutable.d.ts +1 -1
  11. package/base/meta/model-mutable.js +4 -4
  12. package/base/meta/model-name.d.ts +1 -1
  13. package/base/meta/model-name.js +4 -4
  14. package/base/meta/model-property-accessor.d.ts +2 -2
  15. package/base/meta/model-property-accessor.js +9 -9
  16. package/base/meta/model-props-type.d.ts +1 -1
  17. package/base/meta/model-props-type.js +4 -4
  18. package/base/meta/model-props-validator.d.ts +2 -2
  19. package/base/meta/model-props-validator.js +7 -7
  20. package/base/meta/model-version.d.ts +1 -1
  21. package/base/meta/model-version.js +4 -4
  22. package/base/meta/static-entry.d.ts +13 -0
  23. package/base/meta/static-entry.js +54 -0
  24. package/base/model/model-descriptor.d.ts +4 -4
  25. package/base/model/model-descriptor.js +14 -14
  26. package/base/model/model.js +3 -3
  27. package/base/model-registry.d.ts +1 -1
  28. package/base/model-registry.js +4 -4
  29. package/core/decorators/index.d.ts +3 -3
  30. package/core/decorators/index.js +3 -3
  31. package/core/decorators/{enum/is-enum.d.ts → is-enum.d.ts} +1 -1
  32. package/core/decorators/{enum/is-enum.js → is-enum.js} +3 -3
  33. package/core/decorators/is-event.d.ts +4 -0
  34. package/core/decorators/{message/is-event.js → is-event.js} +2 -2
  35. package/core/decorators/{es-aggregate/when.js → when.js} +1 -1
  36. package/core/meta/enum.d.ts +2 -2
  37. package/core/meta/enum.js +8 -8
  38. package/core/meta/{es-aggregate/event-applier.d.ts → event-applier.d.ts} +3 -3
  39. package/core/meta/{es-aggregate/event-applier.js → event-applier.js} +9 -9
  40. package/core/meta/event.d.ts +1 -1
  41. package/core/meta/event.js +4 -4
  42. package/core/meta/index.d.ts +1 -2
  43. package/core/meta/index.js +1 -2
  44. package/core/model/aggregate/aggregate.d.ts +3 -7
  45. package/core/model/aggregate/aggregate.js +2 -11
  46. package/core/model/aggregate/es-aggregate.d.ts +23 -29
  47. package/core/model/aggregate/es-aggregate.js +43 -69
  48. package/core/model/aggregate/state-aggregate.d.ts +6 -11
  49. package/core/model/aggregate/state-aggregate.js +10 -19
  50. package/core/model/entity/entity.d.ts +4 -7
  51. package/core/model/entity/entity.js +1 -1
  52. package/core/model/enum/enum.d.ts +3 -5
  53. package/core/model/enum/enum.js +4 -4
  54. package/core/model/event/event.d.ts +25 -0
  55. package/core/model/event/event.js +47 -0
  56. package/core/model/event/index.d.ts +1 -0
  57. package/core/{decorators/enum → model/event}/index.js +1 -1
  58. package/core/model/identified-model/identified-model.d.ts +3 -7
  59. package/core/model/identified-model/identified-model.js +2 -9
  60. package/core/model/index.d.ts +1 -1
  61. package/core/model/index.js +1 -1
  62. package/core/model/value-object/value-object.d.ts +5 -6
  63. package/core/model/value-object/value-object.js +7 -4
  64. package/{handling-event → event-handling}/decorators/subscribe-to-events.js +3 -3
  65. package/{handling-event → event-handling}/event-subscriber-registry.js +4 -4
  66. package/index.d.ts +4 -3
  67. package/index.js +4 -3
  68. package/package.json +1 -1
  69. package/repository/index.d.ts +1 -0
  70. package/repository/index.js +17 -0
  71. package/repository/repository.d.ts +6 -0
  72. package/repository/repository.js +2 -0
  73. package/{common → utilities}/props-validator/use-class-validator.js +1 -1
  74. package/base/meta/model-static-values.d.ts +0 -13
  75. package/base/meta/model-static-values.js +0 -54
  76. package/core/decorators/enum/index.d.ts +0 -1
  77. package/core/decorators/es-aggregate/handle.d.ts +0 -2
  78. package/core/decorators/es-aggregate/handle.js +0 -13
  79. package/core/decorators/es-aggregate/index.d.ts +0 -2
  80. package/core/decorators/es-aggregate/index.js +0 -18
  81. package/core/decorators/message/index.d.ts +0 -2
  82. package/core/decorators/message/index.js +0 -18
  83. package/core/decorators/message/is-command.d.ts +0 -4
  84. package/core/decorators/message/is-command.js +0 -12
  85. package/core/decorators/message/is-event.d.ts +0 -4
  86. package/core/meta/command.d.ts +0 -8
  87. package/core/meta/command.js +0 -27
  88. package/core/meta/es-aggregate/command-handler.d.ts +0 -7
  89. package/core/meta/es-aggregate/command-handler.js +0 -44
  90. package/core/meta/es-aggregate/index.d.ts +0 -2
  91. package/core/meta/es-aggregate/index.js +0 -18
  92. package/core/model/message/command.d.ts +0 -22
  93. package/core/model/message/command.js +0 -25
  94. package/core/model/message/event.d.ts +0 -30
  95. package/core/model/message/event.js +0 -29
  96. package/core/model/message/index.d.ts +0 -3
  97. package/core/model/message/index.js +0 -19
  98. package/core/model/message/message.d.ts +0 -27
  99. package/core/model/message/message.js +0 -59
  100. /package/core/decorators/{es-aggregate/when.d.ts → when.d.ts} +0 -0
  101. /package/{handling-event → event-handling}/decorators/index.d.ts +0 -0
  102. /package/{handling-event → event-handling}/decorators/index.js +0 -0
  103. /package/{handling-event → event-handling}/decorators/subscribe-to-events.d.ts +0 -0
  104. /package/{handling-event → event-handling}/event-dispatcher.d.ts +0 -0
  105. /package/{handling-event → event-handling}/event-dispatcher.js +0 -0
  106. /package/{handling-event → event-handling}/event-subscriber-registry.d.ts +0 -0
  107. /package/{handling-event → event-handling}/event-subscriber.d.ts +0 -0
  108. /package/{handling-event → event-handling}/event-subscriber.js +0 -0
  109. /package/{handling-event → event-handling}/index.d.ts +0 -0
  110. /package/{handling-event → event-handling}/index.js +0 -0
  111. /package/{handling-event → event-handling}/interfaces/event-dispatcher.interface.d.ts +0 -0
  112. /package/{handling-event → event-handling}/interfaces/event-dispatcher.interface.js +0 -0
  113. /package/{handling-event → event-handling}/interfaces/event-subscriber-registry.interface.d.ts +0 -0
  114. /package/{handling-event → event-handling}/interfaces/event-subscriber-registry.interface.js +0 -0
  115. /package/{handling-event → event-handling}/interfaces/event-subscriber.interface.d.ts +0 -0
  116. /package/{handling-event → event-handling}/interfaces/event-subscriber.interface.js +0 -0
  117. /package/{handling-event → event-handling}/interfaces/index.d.ts +0 -0
  118. /package/{handling-event → event-handling}/interfaces/index.js +0 -0
  119. /package/{utils → helpers}/index.d.ts +0 -0
  120. /package/{utils → helpers}/index.js +0 -0
  121. /package/{utils → helpers}/to-array.d.ts +0 -0
  122. /package/{utils → helpers}/to-array.js +0 -0
  123. /package/{common → utilities}/index.d.ts +0 -0
  124. /package/{common → utilities}/index.js +0 -0
  125. /package/{common → utilities}/props-validator/index.d.ts +0 -0
  126. /package/{common → utilities}/props-validator/index.js +0 -0
  127. /package/{common → utilities}/props-validator/use-class-validator.d.ts +0 -0
@@ -5,7 +5,7 @@ exports.Model = Model;
5
5
  const domain_1 = require("../domain");
6
6
  const meta_1 = require("../meta");
7
7
  exports.DEFAULT_MODEL_OPTIONS = {
8
- autoRegisterModel: true,
8
+ autoRegisterModel: true
9
9
  };
10
10
  /**
11
11
  * @Model decorator — registers a DomainModel with metadata and domain context.
@@ -66,7 +66,7 @@ function defineModel(target, options) {
66
66
  * Registers the model in its associated domain via DomainManager.
67
67
  */
68
68
  function registerModel(target) {
69
- const domainName = (0, meta_1.getModelDomain)(target);
69
+ const domainName = (0, meta_1.resolveModelDomain)(target);
70
70
  const domainManager = domain_1.DomainManager.instance();
71
71
  if (!domainManager.hasDomain(domainName)) {
72
72
  domainManager.addDomain(new domain_1.Domain(domainName));
@@ -1,3 +1,3 @@
1
1
  import { DomainModelClass } from "../model";
2
- import { ModelStaticValueBuilder } from "../meta";
3
- export declare const Static: <T extends DomainModelClass, I extends InstanceType<T> = InstanceType<T>>(builder: ModelStaticValueBuilder<I>) => (target: T, key: PropertyKey) => void;
2
+ import { StaticEntryBuilder } from "../meta";
3
+ export declare const Static: <T extends DomainModelClass, I extends InstanceType<T> = InstanceType<T>>(builder: StaticEntryBuilder<I>) => (target: T, key: PropertyKey) => void;
@@ -4,8 +4,8 @@ exports.Static = void 0;
4
4
  const meta_1 = require("../meta");
5
5
  const Static = (builder) => {
6
6
  return (target, key) => {
7
- (0, meta_1.setModelStaticValue)(target, key, builder);
8
- (0, meta_1.defineModelStaticValueProperty)(target, key);
7
+ (0, meta_1.setStaticEntry)(target, key, builder);
8
+ (0, meta_1.defineStaticEntryProperty)(target, key);
9
9
  };
10
10
  };
11
11
  exports.Static = Static;
@@ -1,9 +1,9 @@
1
+ export * from "./model-domain";
1
2
  export * from "./model-id";
3
+ export * from "./model-mutable";
2
4
  export * from "./model-name";
3
5
  export * from "./model-property-accessor";
4
- export * from "./model-static-values";
6
+ export * from "./model-props-type";
5
7
  export * from "./model-props-validator";
6
8
  export * from "./model-version";
7
- export * from "./model-domain";
8
- export * from "./model-mutable";
9
- export * from "./model-props-type";
9
+ export * from "./static-entry";
@@ -14,12 +14,12 @@ 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("./model-domain"), exports);
17
18
  __exportStar(require("./model-id"), exports);
19
+ __exportStar(require("./model-mutable"), exports);
18
20
  __exportStar(require("./model-name"), exports);
19
21
  __exportStar(require("./model-property-accessor"), exports);
20
- __exportStar(require("./model-static-values"), exports);
22
+ __exportStar(require("./model-props-type"), exports);
21
23
  __exportStar(require("./model-props-validator"), exports);
22
24
  __exportStar(require("./model-version"), exports);
23
- __exportStar(require("./model-domain"), exports);
24
- __exportStar(require("./model-mutable"), exports);
25
- __exportStar(require("./model-props-type"), exports);
25
+ __exportStar(require("./static-entry"), exports);
@@ -1,4 +1,4 @@
1
1
  import { DomainName } from "../domain";
2
2
  import { AnyDomainModel, DomainModelClass } from "../model";
3
3
  export declare const defineModelDomain: <T extends AnyDomainModel>(target: DomainModelClass<T>, domainName: DomainName) => void;
4
- export declare const getModelDomain: <T extends AnyDomainModel>(target: DomainModelClass<T>) => string;
4
+ export declare const resolveModelDomain: <T extends AnyDomainModel>(target: DomainModelClass<T>) => string;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelDomain = exports.defineModelDomain = void 0;
3
+ exports.resolveModelDomain = exports.defineModelDomain = void 0;
4
4
  const domain_1 = require("../domain");
5
- const MODEL_DOMAIN = Symbol.for("MODEL_DOMAIN");
5
+ const MODEL_DOMAIN = Symbol("MODEL_DOMAIN");
6
6
  const defineModelDomain = (target, domainName) => {
7
7
  Reflect.defineMetadata(MODEL_DOMAIN, domainName, target);
8
8
  };
9
9
  exports.defineModelDomain = defineModelDomain;
10
- const getModelDomain = (target) => {
10
+ const resolveModelDomain = (target) => {
11
11
  if (!Reflect.hasOwnMetadata(MODEL_DOMAIN, target))
12
12
  (0, exports.defineModelDomain)(target, domain_1.DEFAULT_DOMAIN);
13
13
  return Reflect.getOwnMetadata(MODEL_DOMAIN, target);
14
14
  };
15
- exports.getModelDomain = getModelDomain;
15
+ exports.resolveModelDomain = resolveModelDomain;
@@ -12,5 +12,5 @@ export declare class $ModelId extends String {
12
12
  static makeValue(modelName: ModelName, modelVersion: ModelVersion): ModelId;
13
13
  constructor(modelName: ModelName, modelVersion: ModelVersion);
14
14
  }
15
- export declare const setModelId: <T extends AnyDomainModel>(target: DomainModelClass<T>, modelId: $ModelId) => void;
16
- export declare const getModelId: <T extends AnyDomainModel>(target: DomainModelClass<T>) => ModelId;
15
+ export declare const defineModelId: <T extends AnyDomainModel>(target: DomainModelClass<T>, modelId: $ModelId) => void;
16
+ export declare const resolveModelId: <T extends AnyDomainModel>(target: DomainModelClass<T>) => ModelId;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelId = exports.setModelId = exports.$ModelId = void 0;
3
+ exports.resolveModelId = exports.defineModelId = exports.$ModelId = void 0;
4
4
  const model_name_1 = require("./model-name");
5
5
  const model_version_1 = require("./model-version");
6
- const MODEL_ID = Symbol.for("MODEL_ID");
6
+ const MODEL_ID = Symbol("MODEL_ID");
7
7
  class $ModelId extends String {
8
8
  static fromValue(value) {
9
9
  if (!this.Format.test(value))
@@ -24,16 +24,16 @@ class $ModelId extends String {
24
24
  exports.$ModelId = $ModelId;
25
25
  $ModelId.Divider = "|";
26
26
  $ModelId.Format = new RegExp(/^.+\|[0-9]+$/);
27
- const setModelId = (target, modelId) => {
27
+ const defineModelId = (target, modelId) => {
28
28
  Reflect.defineMetadata(MODEL_ID, modelId, target);
29
29
  };
30
- exports.setModelId = setModelId;
31
- const getModelId = (target) => {
30
+ exports.defineModelId = defineModelId;
31
+ const resolveModelId = (target) => {
32
32
  if (!Reflect.hasOwnMetadata(MODEL_ID, target)) {
33
- const modelName = (0, model_name_1.getModelName)(target);
34
- const modelVersion = (0, model_version_1.getModelVersion)(target);
35
- (0, exports.setModelId)(target, new $ModelId(modelName, modelVersion));
33
+ const modelName = (0, model_name_1.resolveModelName)(target);
34
+ const modelVersion = (0, model_version_1.resolveModelVersion)(target);
35
+ (0, exports.defineModelId)(target, new $ModelId(modelName, modelVersion));
36
36
  }
37
37
  return Reflect.getOwnMetadata(MODEL_ID, target).valueOf();
38
38
  };
39
- exports.getModelId = getModelId;
39
+ exports.resolveModelId = resolveModelId;
@@ -1,3 +1,3 @@
1
1
  import "reflect-metadata";
2
2
  export declare const defineModelMutable: (target: object, mutable: boolean) => void;
3
- export declare const getModelMutable: (target: object) => boolean | undefined;
3
+ export declare const resolveModelMutable: (target: object) => boolean | undefined;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelMutable = exports.defineModelMutable = void 0;
3
+ exports.resolveModelMutable = exports.defineModelMutable = void 0;
4
4
  require("reflect-metadata");
5
- const MODEL_MUTABLE = Symbol.for("MODEL_MUTABLE");
5
+ const MODEL_MUTABLE = Symbol("MODEL_MUTABLE");
6
6
  const defineModelMutable = (target, mutable) => {
7
7
  if (Reflect.hasMetadata(MODEL_MUTABLE, target))
8
8
  return;
9
9
  Reflect.defineMetadata(MODEL_MUTABLE, mutable, target);
10
10
  };
11
11
  exports.defineModelMutable = defineModelMutable;
12
- const getModelMutable = (target) => {
12
+ const resolveModelMutable = (target) => {
13
13
  return Reflect.getMetadata(MODEL_MUTABLE, target);
14
14
  };
15
- exports.getModelMutable = getModelMutable;
15
+ exports.resolveModelMutable = resolveModelMutable;
@@ -5,4 +5,4 @@ export declare class $ModelName extends String {
5
5
  constructor(modelName: ModelName);
6
6
  }
7
7
  export declare const defineModelName: <T extends AnyDomainModel>(target: DomainModelClass<T>, modelName: ModelName) => void;
8
- export declare const getModelName: <T extends AnyDomainModel>(target: DomainModelClass<T>) => ModelName;
8
+ export declare const resolveModelName: <T extends AnyDomainModel>(target: DomainModelClass<T>) => ModelName;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelName = exports.defineModelName = exports.$ModelName = void 0;
4
- const MODEL_NAME = Symbol.for("MODEL_NAME");
3
+ exports.resolveModelName = exports.defineModelName = exports.$ModelName = void 0;
4
+ const MODEL_NAME = Symbol("MODEL_NAME");
5
5
  class $ModelName extends String {
6
6
  static validate(modelName) {
7
7
  if (modelName.trim().length === 0)
@@ -17,9 +17,9 @@ const defineModelName = (target, modelName) => {
17
17
  Reflect.defineMetadata(MODEL_NAME, new $ModelName(modelName), target);
18
18
  };
19
19
  exports.defineModelName = defineModelName;
20
- const getModelName = (target) => {
20
+ const resolveModelName = (target) => {
21
21
  if (!Reflect.hasOwnMetadata(MODEL_NAME, target))
22
22
  (0, exports.defineModelName)(target, target.name);
23
23
  return Reflect.getOwnMetadata(MODEL_NAME, target).valueOf();
24
24
  };
25
- exports.getModelName = getModelName;
25
+ exports.resolveModelName = resolveModelName;
@@ -6,6 +6,6 @@ export type PropertyAccessorMetadata<T extends AnyDomainModel, R> = {
6
6
  };
7
7
  export declare class ModelPropertyAccessorMap<T extends AnyDomainModel = AnyDomainModel> extends Map<PropertyKey, PropertyAccessorMetadata<T, any>> {
8
8
  }
9
- export declare const getDeclaredPropertyAccessors: <T extends AnyDomainModel = AnyDomainModel>(target: object) => ModelPropertyAccessorMap<T>;
9
+ export declare const resolveOwnPropertyAccessors: <T extends AnyDomainModel = AnyDomainModel>(target: object) => ModelPropertyAccessorMap<T>;
10
10
  export declare const registerPropertyAccessor: <T extends AnyDomainModel = AnyDomainModel>(target: object, key: PropertyKey, propTargetKey: keyof InferredProps<T>, propConverter?: PropertyConverter) => void;
11
- export declare const getResolvedPropertyAccessors: <T extends AnyDomainModel = AnyDomainModel>(target: object) => ModelPropertyAccessorMap<T>;
11
+ export declare const resolvePropertyAccessors: <T extends AnyDomainModel = AnyDomainModel>(target: object) => ModelPropertyAccessorMap<T>;
@@ -1,38 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getResolvedPropertyAccessors = exports.registerPropertyAccessor = exports.getDeclaredPropertyAccessors = exports.ModelPropertyAccessorMap = void 0;
3
+ exports.resolvePropertyAccessors = exports.registerPropertyAccessor = exports.resolveOwnPropertyAccessors = exports.ModelPropertyAccessorMap = void 0;
4
4
  const model_1 = require("../model");
5
- const OWN_MODEL_PROPERTY_ACCESSORS = Symbol.for("OWN_MODEL_PROPERTY_ACCESSORS");
5
+ const OWN_MODEL_PROPERTY_ACCESSORS = Symbol("OWN_MODEL_PROPERTY_ACCESSORS");
6
6
  class ModelPropertyAccessorMap extends Map {
7
7
  }
8
8
  exports.ModelPropertyAccessorMap = ModelPropertyAccessorMap;
9
9
  // target = prototype
10
- const getDeclaredPropertyAccessors = (target) => {
10
+ const resolveOwnPropertyAccessors = (target) => {
11
11
  if (!Reflect.hasOwnMetadata(OWN_MODEL_PROPERTY_ACCESSORS, target)) {
12
12
  Reflect.defineMetadata(OWN_MODEL_PROPERTY_ACCESSORS, new ModelPropertyAccessorMap(), target);
13
13
  }
14
14
  return Reflect.getOwnMetadata(OWN_MODEL_PROPERTY_ACCESSORS, target);
15
15
  };
16
- exports.getDeclaredPropertyAccessors = getDeclaredPropertyAccessors;
16
+ exports.resolveOwnPropertyAccessors = resolveOwnPropertyAccessors;
17
17
  const registerPropertyAccessor = (target, key, propTargetKey, propConverter) => {
18
- const declaredMap = (0, exports.getDeclaredPropertyAccessors)(target);
18
+ const declaredMap = (0, exports.resolveOwnPropertyAccessors)(target);
19
19
  declaredMap.set(key, {
20
20
  targetKey: propTargetKey,
21
- converter: propConverter,
21
+ converter: propConverter
22
22
  });
23
23
  };
24
24
  exports.registerPropertyAccessor = registerPropertyAccessor;
25
- const getResolvedPropertyAccessors = (target) => {
25
+ const resolvePropertyAccessors = (target) => {
26
26
  const result = new ModelPropertyAccessorMap();
27
27
  const ownMaps = [];
28
28
  let current = target;
29
29
  do {
30
30
  if (model_1.DomainModel.isDomainModel(current)) {
31
- ownMaps.unshift((0, exports.getDeclaredPropertyAccessors)(current));
31
+ ownMaps.unshift((0, exports.resolveOwnPropertyAccessors)(current));
32
32
  }
33
33
  current = Reflect.getPrototypeOf(current);
34
34
  } while (current !== null);
35
35
  ownMaps.forEach((map) => map.forEach((meta, key) => result.set(key, meta)));
36
36
  return result;
37
37
  };
38
- exports.getResolvedPropertyAccessors = getResolvedPropertyAccessors;
38
+ exports.resolvePropertyAccessors = resolvePropertyAccessors;
@@ -1,4 +1,4 @@
1
1
  import { Class } from "type-fest";
2
2
  import { AnyDomainModel, DomainModelClass, InferredProps } from "../model";
3
3
  export declare const defineModelPropsType: <T extends AnyDomainModel>(target: DomainModelClass<T>, propsType: Class<InferredProps<T>>) => void;
4
- export declare const getModelPropsType: <T extends AnyDomainModel>(target: DomainModelClass<T>) => Class<InferredProps<T>> | undefined;
4
+ export declare const resolveModelPropsType: <T extends AnyDomainModel>(target: DomainModelClass<T>) => Class<InferredProps<T>> | undefined;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelPropsType = exports.defineModelPropsType = void 0;
4
- const MODEL_PROPS_TYPE = Symbol.for("MODEL_PROPS_TYPE");
3
+ exports.resolveModelPropsType = exports.defineModelPropsType = void 0;
4
+ const MODEL_PROPS_TYPE = Symbol("MODEL_PROPS_TYPE");
5
5
  const defineModelPropsType = (target, propsType) => {
6
6
  Reflect.defineMetadata(MODEL_PROPS_TYPE, propsType, target);
7
7
  };
8
8
  exports.defineModelPropsType = defineModelPropsType;
9
- const getModelPropsType = (target) => {
9
+ const resolveModelPropsType = (target) => {
10
10
  return Reflect.getMetadata(MODEL_PROPS_TYPE, target);
11
11
  };
12
- exports.getModelPropsType = getModelPropsType;
12
+ exports.resolveModelPropsType = resolveModelPropsType;
@@ -12,5 +12,5 @@ export declare class ModelPropsValidatorWrapper<T extends AnyDomainModel> implem
12
12
  validate(props: InferredProps<T>): void;
13
13
  }
14
14
  export declare const defineModelPropsValidator: <T extends AnyDomainModel>(target: object, validator: ModelPropsValidator<T>) => void;
15
- export declare const getOwnModelPropsValidator: <T extends AnyDomainModel>(target: object) => ModelPropsValidator<T> | undefined;
16
- export declare const getModelPropsValidators: (target: object) => ModelPropsValidator[];
15
+ export declare const resolveOwnModelPropsValidator: <T extends AnyDomainModel>(target: object) => ModelPropsValidator<T> | undefined;
16
+ export declare const resolveModelPropsValidators: (target: object) => ModelPropsValidator[];
@@ -3,10 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getModelPropsValidators = exports.getOwnModelPropsValidator = exports.defineModelPropsValidator = exports.ModelPropsValidatorWrapper = void 0;
6
+ exports.resolveModelPropsValidators = exports.resolveOwnModelPropsValidator = exports.defineModelPropsValidator = exports.ModelPropsValidatorWrapper = void 0;
7
7
  const is_class_1 = __importDefault(require("is-class"));
8
8
  const lodash_1 = __importDefault(require("lodash"));
9
- const OWN_MODEL_PROPS_VALIDATOR = Symbol.for("OWN_MODEL_PROPS_VALIDATOR");
9
+ const OWN_MODEL_PROPS_VALIDATOR = Symbol("OWN_MODEL_PROPS_VALIDATOR");
10
10
  class ModelPropsValidatorWrapper {
11
11
  constructor(input) {
12
12
  this.input = input;
@@ -32,15 +32,15 @@ const defineModelPropsValidator = (target, validator) => {
32
32
  Reflect.defineMetadata(OWN_MODEL_PROPS_VALIDATOR, validator, target);
33
33
  };
34
34
  exports.defineModelPropsValidator = defineModelPropsValidator;
35
- const getOwnModelPropsValidator = (target) => {
35
+ const resolveOwnModelPropsValidator = (target) => {
36
36
  return Reflect.getOwnMetadata(OWN_MODEL_PROPS_VALIDATOR, target);
37
37
  };
38
- exports.getOwnModelPropsValidator = getOwnModelPropsValidator;
39
- const getModelPropsValidators = (target) => {
38
+ exports.resolveOwnModelPropsValidator = resolveOwnModelPropsValidator;
39
+ const resolveModelPropsValidators = (target) => {
40
40
  let result = [];
41
41
  let _target = target;
42
42
  do {
43
- const ownValidator = (0, exports.getOwnModelPropsValidator)(_target);
43
+ const ownValidator = (0, exports.resolveOwnModelPropsValidator)(_target);
44
44
  if (ownValidator)
45
45
  result.push(ownValidator);
46
46
  _target = Reflect.getPrototypeOf(_target);
@@ -48,4 +48,4 @@ const getModelPropsValidators = (target) => {
48
48
  result = lodash_1.default.uniq(result);
49
49
  return result;
50
50
  };
51
- exports.getModelPropsValidators = getModelPropsValidators;
51
+ exports.resolveModelPropsValidators = resolveModelPropsValidators;
@@ -5,4 +5,4 @@ export declare class $ModelVersion extends Number {
5
5
  constructor(modelVersion: ModelVersion);
6
6
  }
7
7
  export declare const defineModelVersion: <T extends AnyDomainModel>(target: DomainModelClass<T>, modelVersion: ModelVersion) => void;
8
- export declare const getModelVersion: <T extends AnyDomainModel>(target: DomainModelClass<T>) => ModelVersion;
8
+ export declare const resolveModelVersion: <T extends AnyDomainModel>(target: DomainModelClass<T>) => ModelVersion;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getModelVersion = exports.defineModelVersion = exports.$ModelVersion = void 0;
4
- const MODEL_VERSION = Symbol.for("MODEL_VERSION");
3
+ exports.resolveModelVersion = exports.defineModelVersion = exports.$ModelVersion = void 0;
4
+ const MODEL_VERSION = Symbol("MODEL_VERSION");
5
5
  class $ModelVersion extends Number {
6
6
  static validate(modelVersion) {
7
7
  if (modelVersion < 0 && Number.isInteger(modelVersion))
@@ -17,9 +17,9 @@ const defineModelVersion = (target, modelVersion) => {
17
17
  Reflect.defineMetadata(MODEL_VERSION, new $ModelVersion(modelVersion), target);
18
18
  };
19
19
  exports.defineModelVersion = defineModelVersion;
20
- const getModelVersion = (target) => {
20
+ const resolveModelVersion = (target) => {
21
21
  if (!Reflect.hasOwnMetadata(MODEL_VERSION, target))
22
22
  (0, exports.defineModelVersion)(target, 0);
23
23
  return Reflect.getOwnMetadata(MODEL_VERSION, target).valueOf();
24
24
  };
25
- exports.getModelVersion = getModelVersion;
25
+ exports.resolveModelVersion = resolveModelVersion;
@@ -0,0 +1,13 @@
1
+ import { AnyDomainModel, DomainModelClass } from "../model";
2
+ export type StaticEntryBuilder<T extends AnyDomainModel = AnyDomainModel> = () => T;
3
+ export declare class StaticEntry<T extends AnyDomainModel = AnyDomainModel> {
4
+ private _value;
5
+ constructor(value: T | StaticEntryBuilder<T>);
6
+ get value(): T;
7
+ }
8
+ export declare class StaticEntryMap<T extends AnyDomainModel = AnyDomainModel> extends Map<PropertyKey, StaticEntry<T>> {
9
+ }
10
+ export declare const resolveOwnStaticEntries: <T extends AnyDomainModel>(target: object) => StaticEntryMap<T>;
11
+ export declare const setStaticEntry: <T extends AnyDomainModel>(target: object, key: PropertyKey, value: T | StaticEntryBuilder<T>) => void;
12
+ export declare const resolveStaticEntryValue: (target: object, key: PropertyKey) => AnyDomainModel | undefined;
13
+ export declare const defineStaticEntryProperty: (target: DomainModelClass, key: PropertyKey) => void;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defineStaticEntryProperty = exports.resolveStaticEntryValue = exports.setStaticEntry = exports.resolveOwnStaticEntries = exports.StaticEntryMap = exports.StaticEntry = void 0;
4
+ const OWN_STATIC_ENTRIES = Symbol("OWN_STATIC_ENTRIES");
5
+ class StaticEntry {
6
+ constructor(value) {
7
+ this._value = value;
8
+ }
9
+ get value() {
10
+ if (typeof this._value === "function") {
11
+ this._value = this._value();
12
+ }
13
+ return this._value;
14
+ }
15
+ }
16
+ exports.StaticEntry = StaticEntry;
17
+ class StaticEntryMap extends Map {
18
+ }
19
+ exports.StaticEntryMap = StaticEntryMap;
20
+ const resolveOwnStaticEntries = (target) => {
21
+ if (!Reflect.hasOwnMetadata(OWN_STATIC_ENTRIES, target))
22
+ Reflect.defineMetadata(OWN_STATIC_ENTRIES, new StaticEntryMap(), target);
23
+ return Reflect.getOwnMetadata(OWN_STATIC_ENTRIES, target);
24
+ };
25
+ exports.resolveOwnStaticEntries = resolveOwnStaticEntries;
26
+ const setStaticEntry = (target, key, value) => {
27
+ const staticEntries = (0, exports.resolveOwnStaticEntries)(target);
28
+ staticEntries.set(key, new StaticEntry(value));
29
+ };
30
+ exports.setStaticEntry = setStaticEntry;
31
+ const resolveStaticEntryValue = (target, key) => {
32
+ let _target = target;
33
+ do {
34
+ const staticEntries = (0, exports.resolveOwnStaticEntries)(_target);
35
+ if (staticEntries.has(key))
36
+ return staticEntries.get(key)?.value;
37
+ _target = Reflect.getPrototypeOf(_target);
38
+ } while (_target !== null);
39
+ return undefined;
40
+ };
41
+ exports.resolveStaticEntryValue = resolveStaticEntryValue;
42
+ const defineStaticEntryProperty = (target, key) => {
43
+ Object.defineProperty(target, key, {
44
+ configurable: false,
45
+ enumerable: true,
46
+ get() {
47
+ return (0, exports.resolveStaticEntryValue)(target, key);
48
+ },
49
+ set() {
50
+ throw new Error("Static value is readonly");
51
+ }
52
+ });
53
+ };
54
+ exports.defineStaticEntryProperty = defineStaticEntryProperty;
@@ -1,6 +1,6 @@
1
1
  import { Class } from "type-fest";
2
2
  import { AnyDomainModel, DomainModelClass, InferredProps } from ".";
3
- import { ModelId, ModelName, ModelPropertyAccessorMap, ModelPropsValidator, ModelStaticValuesMap, ModelVersion } from "../meta";
3
+ import { ModelId, ModelName, ModelPropertyAccessorMap, ModelPropsValidator, ModelVersion, StaticEntryMap } from "../meta";
4
4
  export declare class ModelDescriptor<T extends AnyDomainModel = AnyDomainModel> {
5
5
  readonly modelClass: DomainModelClass<T>;
6
6
  constructor(modelClass: DomainModelClass<T>);
@@ -11,8 +11,8 @@ export declare class ModelDescriptor<T extends AnyDomainModel = AnyDomainModel>
11
11
  get modelId(): ModelId;
12
12
  get ownModelPropsValidator(): ModelPropsValidator<T> | undefined;
13
13
  get modelPropsValidators(): ModelPropsValidator[];
14
- get ownModelStaticValues(): ModelStaticValuesMap<T>;
15
- get declaredPropertyAccessors(): ModelPropertyAccessorMap<T>;
16
- get resolvedPropertyAccessors(): ModelPropertyAccessorMap<T>;
14
+ get ownStaticEntries(): StaticEntryMap<T>;
15
+ get ownPropertyAccessors(): ModelPropertyAccessorMap<T>;
16
+ get propertyAccessors(): ModelPropertyAccessorMap<T>;
17
17
  get propsType(): Class<InferredProps<T>> | undefined;
18
18
  }
@@ -7,37 +7,37 @@ class ModelDescriptor {
7
7
  this.modelClass = modelClass;
8
8
  }
9
9
  get modelDomain() {
10
- return (0, meta_1.getModelDomain)(this.modelClass);
10
+ return (0, meta_1.resolveModelDomain)(this.modelClass);
11
11
  }
12
12
  get modelMutable() {
13
- return (0, meta_1.getModelMutable)(this.modelClass) ?? false;
13
+ return (0, meta_1.resolveModelMutable)(this.modelClass) ?? false;
14
14
  }
15
15
  get modelName() {
16
- return (0, meta_1.getModelName)(this.modelClass);
16
+ return (0, meta_1.resolveModelName)(this.modelClass);
17
17
  }
18
18
  get modelVersion() {
19
- return (0, meta_1.getModelVersion)(this.modelClass);
19
+ return (0, meta_1.resolveModelVersion)(this.modelClass);
20
20
  }
21
21
  get modelId() {
22
- return (0, meta_1.getModelId)(this.modelClass);
22
+ return (0, meta_1.resolveModelId)(this.modelClass);
23
23
  }
24
24
  get ownModelPropsValidator() {
25
- return (0, meta_1.getOwnModelPropsValidator)(this.modelClass);
25
+ return (0, meta_1.resolveOwnModelPropsValidator)(this.modelClass);
26
26
  }
27
27
  get modelPropsValidators() {
28
- return (0, meta_1.getModelPropsValidators)(this.modelClass);
28
+ return (0, meta_1.resolveModelPropsValidators)(this.modelClass);
29
29
  }
30
- get ownModelStaticValues() {
31
- return (0, meta_1.getOwnModelStaticValues)(this.modelClass);
30
+ get ownStaticEntries() {
31
+ return (0, meta_1.resolveOwnStaticEntries)(this.modelClass);
32
32
  }
33
- get declaredPropertyAccessors() {
34
- return (0, meta_1.getDeclaredPropertyAccessors)(this.modelClass.prototype);
33
+ get ownPropertyAccessors() {
34
+ return (0, meta_1.resolveOwnPropertyAccessors)(this.modelClass.prototype);
35
35
  }
36
- get resolvedPropertyAccessors() {
37
- return (0, meta_1.getResolvedPropertyAccessors)(this.modelClass.prototype);
36
+ get propertyAccessors() {
37
+ return (0, meta_1.resolvePropertyAccessors)(this.modelClass.prototype);
38
38
  }
39
39
  get propsType() {
40
- return (0, meta_1.getModelPropsType)(this.modelClass);
40
+ return (0, meta_1.resolveModelPropsType)(this.modelClass);
41
41
  }
42
42
  }
43
43
  exports.ModelDescriptor = ModelDescriptor;
@@ -19,7 +19,7 @@ class DomainModel {
19
19
  this.definePropertyAccessors();
20
20
  }
21
21
  definePropertyAccessors() {
22
- this.modelDescriptor.resolvedPropertyAccessors.forEach(({ targetKey, converter }, key) => {
22
+ this.modelDescriptor.propertyAccessors.forEach(({ targetKey, converter }, key) => {
23
23
  this.definePropAccessor(key, targetKey, converter);
24
24
  });
25
25
  }
@@ -32,7 +32,7 @@ class DomainModel {
32
32
  if (!propConverter)
33
33
  return value;
34
34
  return propConverter(value);
35
- },
35
+ }
36
36
  });
37
37
  }
38
38
  get modelDescriptor() {
@@ -74,7 +74,7 @@ class DomainModel {
74
74
  let result = Reflect.set(target, propKey, value);
75
75
  this.validate();
76
76
  return result;
77
- },
77
+ }
78
78
  });
79
79
  }
80
80
  this.validate();
@@ -8,7 +8,7 @@ export declare class ModelStore<T extends AnyDomainModel = AnyDomainModel> exten
8
8
  }
9
9
  export declare class ModelRegistry {
10
10
  private store;
11
- getModelVersions<T extends AnyDomainModel = AnyDomainModel>(modelName: ModelName): ModelVersions<T>;
11
+ resolveModelVersions<T extends AnyDomainModel = AnyDomainModel>(modelName: ModelName): ModelVersions<T>;
12
12
  private resolveModelId;
13
13
  getModel<T extends AnyDomainModel = AnyDomainModel>(modelName: ModelName, modelVersion?: ModelVersion): DomainModelClass<T> | undefined;
14
14
  getModelByModelId<T extends AnyDomainModel = AnyDomainModel>(modelId: ModelId): DomainModelClass<T> | undefined;
@@ -16,7 +16,7 @@ class ModelRegistry {
16
16
  constructor() {
17
17
  this.store = new ModelStore();
18
18
  }
19
- getModelVersions(modelName) {
19
+ resolveModelVersions(modelName) {
20
20
  const current = () => this.store.get(modelName);
21
21
  if (!current())
22
22
  this.store.set(modelName, new ModelVersions(modelName));
@@ -29,7 +29,7 @@ class ModelRegistry {
29
29
  return meta_1.$ModelId.fromValue(p1.modelDescriptor().modelId);
30
30
  }
31
31
  getModel(modelName, modelVersion = 0) {
32
- const versions = this.getModelVersions(modelName);
32
+ const versions = this.resolveModelVersions(modelName);
33
33
  return versions.get(modelVersion);
34
34
  }
35
35
  getModelByModelId(modelId) {
@@ -49,7 +49,7 @@ class ModelRegistry {
49
49
  const modelVersion = modelClass.modelDescriptor().modelVersion;
50
50
  if (this.hasRegisteredModel(modelName, modelVersion))
51
51
  throw new Error(`Cannot register: Model ${modelName} with version ${modelVersion} is already registered.`);
52
- const versions = this.getModelVersions(modelName);
52
+ const versions = this.resolveModelVersions(modelName);
53
53
  versions.set(modelVersion, modelClass);
54
54
  return this;
55
55
  }
@@ -57,7 +57,7 @@ class ModelRegistry {
57
57
  const { modelName, modelVersion } = this.resolveModelId(p1, p2);
58
58
  if (!this.hasRegisteredModel(modelName, modelVersion))
59
59
  return;
60
- const versions = this.getModelVersions(modelName);
60
+ const versions = this.resolveModelVersions(modelName);
61
61
  versions.delete(modelVersion);
62
62
  }
63
63
  clearModelVersions(modelName) {
@@ -1,3 +1,3 @@
1
- export * from "./es-aggregate";
2
- export * from "./message";
3
- export * from "./enum";
1
+ export * from "./is-enum";
2
+ export * from "./is-event";
3
+ export * from "./when";
@@ -14,6 +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("./es-aggregate"), exports);
18
- __exportStar(require("./message"), exports);
19
- __exportStar(require("./enum"), exports);
17
+ __exportStar(require("./is-enum"), exports);
18
+ __exportStar(require("./is-event"), exports);
19
+ __exportStar(require("./when"), exports);
@@ -1,2 +1,2 @@
1
- import { EnumClassWithTypedConstructor, EnumProperty, EnumValue } from "../../../core";
1
+ import { EnumClassWithTypedConstructor, EnumProperty, EnumValue } from "..";
2
2
  export declare const IsEnum: (value?: EnumValue) => <T extends EnumClassWithTypedConstructor>(target: T, key: EnumProperty<T>) => void;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IsEnum = void 0;
4
- const base_1 = require("../../../base");
5
- const core_1 = require("../../../core");
4
+ const base_1 = require("../../base");
5
+ const __1 = require("..");
6
6
  const IsEnum = (value) => {
7
7
  return (target, key) => {
8
- (0, core_1.markEnumProperty)(target, key);
8
+ (0, __1.markEnumProperty)(target, key);
9
9
  const enumBuilder = () => new target(value ?? key);
10
10
  (0, base_1.Static)(enumBuilder)(target, key);
11
11
  };
@@ -0,0 +1,4 @@
1
+ import { ModelOptions } from "../../base";
2
+ import { EventType } from "../meta";
3
+ import { AnyEvent, EventClass } from "../model";
4
+ export declare const IsEvent: (eventType: EventType, modelOptions?: ModelOptions) => <T extends AnyEvent>(target: EventClass<T>) => void;