@nestjslatam/ddd-lib 1.0.43 → 1.0.44

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 (146) hide show
  1. package/README.md +20 -3
  2. package/ddd-aggregate-root.d.ts +3 -3
  3. package/ddd-aggregate-root.js +13 -10
  4. package/ddd-aggregate-root.js.map +1 -1
  5. package/ddd-commands/impl/command-types.d.ts +3 -0
  6. package/ddd-commands/impl/command-types.js +3 -0
  7. package/ddd-commands/impl/command-types.js.map +1 -0
  8. package/ddd-commands/impl/command.base.js.map +1 -1
  9. package/ddd-commands/impl/default-command-publisher.d.ts +3 -3
  10. package/ddd-commands/impl/default-command-publisher.js +3 -3
  11. package/ddd-commands/impl/default-command-publisher.js.map +1 -1
  12. package/ddd-commands/impl/domain-command-bus.d.ts +7 -10
  13. package/ddd-commands/impl/domain-command-bus.js +13 -23
  14. package/ddd-commands/impl/domain-command-bus.js.map +1 -1
  15. package/ddd-commands/impl/index.d.ts +2 -0
  16. package/ddd-commands/impl/index.js +2 -0
  17. package/ddd-commands/impl/index.js.map +1 -1
  18. package/ddd-commands/interfaces/command-bus.interface.d.ts +2 -2
  19. package/ddd-commands/interfaces/command-metadata.interface.d.ts +1 -1
  20. package/ddd-commands/interfaces/command-publisher.interface.d.ts +2 -2
  21. package/ddd-core/broken-rules/broken-rule-collection.js +1 -1
  22. package/ddd-core/broken-rules/broken-rule-collection.js.map +1 -1
  23. package/ddd-core/broken-rules/broken-rule.js.map +1 -1
  24. package/ddd-core/impl/index.d.ts +1 -0
  25. package/ddd-core/impl/index.js +1 -0
  26. package/ddd-core/impl/index.js.map +1 -1
  27. package/ddd-core/impl/observable-bus.js.map +1 -1
  28. package/ddd-core/impl/tracking-props.js.map +1 -1
  29. package/{ddd.options.d.ts → ddd-core/interfaces/ddd.options.d.ts} +1 -1
  30. package/ddd-core/interfaces/ddd.options.js.map +1 -0
  31. package/ddd-core/interfaces/index.d.ts +1 -0
  32. package/ddd-core/interfaces/index.js +1 -0
  33. package/ddd-core/interfaces/index.js.map +1 -1
  34. package/ddd-decorators/command-handler.decorator.js.map +1 -1
  35. package/ddd-decorators/constants.js.map +1 -1
  36. package/ddd-decorators/events-handler.decorator.js.map +1 -1
  37. package/ddd-decorators/index.d.ts +2 -0
  38. package/ddd-decorators/index.js +2 -0
  39. package/ddd-decorators/index.js.map +1 -1
  40. package/ddd-decorators/reflect-command.helper.d.ts +6 -0
  41. package/ddd-decorators/reflect-command.helper.js +25 -0
  42. package/ddd-decorators/reflect-command.helper.js.map +1 -0
  43. package/ddd-decorators/reflect-event.helper.d.ts +7 -0
  44. package/ddd-decorators/reflect-event.helper.js +18 -0
  45. package/ddd-decorators/reflect-event.helper.js.map +1 -0
  46. package/ddd-decorators/saga.decorator.js.map +1 -1
  47. package/ddd-entity.d.ts +13 -14
  48. package/ddd-entity.js +22 -28
  49. package/ddd-entity.js.map +1 -1
  50. package/ddd-events/impl/default-event-publisher.d.ts +9 -0
  51. package/ddd-events/impl/{default-pubsub.helper.js → default-event-publisher.js} +4 -4
  52. package/ddd-events/impl/default-event-publisher.js.map +1 -0
  53. package/ddd-events/impl/domain-event-bus.d.ts +4 -5
  54. package/ddd-events/impl/domain-event-bus.js +16 -17
  55. package/ddd-events/impl/domain-event-bus.js.map +1 -1
  56. package/ddd-events/impl/domain-event-collection.js.map +1 -1
  57. package/ddd-events/impl/domain-event-types.d.ts +3 -0
  58. package/ddd-events/impl/domain-event-types.js +3 -0
  59. package/ddd-events/impl/domain-event-types.js.map +1 -0
  60. package/ddd-events/impl/domain-event.js +3 -2
  61. package/ddd-events/impl/domain-event.js.map +1 -1
  62. package/ddd-events/impl/index.d.ts +1 -2
  63. package/ddd-events/impl/index.js +1 -2
  64. package/ddd-events/impl/index.js.map +1 -1
  65. package/ddd-exceptions/constants.d.ts +2 -0
  66. package/ddd-exceptions/constants.js +3 -1
  67. package/ddd-exceptions/constants.js.map +1 -1
  68. package/ddd-exceptions/impl/arguments-exception.d.ts +10 -0
  69. package/ddd-exceptions/impl/arguments-exception.js +27 -0
  70. package/ddd-exceptions/impl/arguments-exception.js.map +1 -0
  71. package/ddd-exceptions/{broken-rules.exeption.d.ts → impl/broken-rules.exeption.d.ts} +1 -1
  72. package/ddd-exceptions/{broken-rules.exeption.js → impl/broken-rules.exeption.js} +2 -2
  73. package/ddd-exceptions/impl/broken-rules.exeption.js.map +1 -0
  74. package/ddd-exceptions/impl/command-exception.d.ts +7 -0
  75. package/ddd-exceptions/impl/command-exception.js +20 -0
  76. package/ddd-exceptions/impl/command-exception.js.map +1 -0
  77. package/ddd-exceptions/impl/common.exception.d.ts +14 -0
  78. package/ddd-exceptions/impl/common.exception.js +29 -0
  79. package/ddd-exceptions/impl/common.exception.js.map +1 -0
  80. package/ddd-exceptions/impl/domain-bus.exception.d.ts +7 -0
  81. package/ddd-exceptions/impl/domain-bus.exception.js +20 -0
  82. package/ddd-exceptions/impl/domain-bus.exception.js.map +1 -0
  83. package/ddd-exceptions/impl/domain-publisher.exception.d.ts +9 -0
  84. package/ddd-exceptions/impl/domain-publisher.exception.js +13 -0
  85. package/ddd-exceptions/impl/domain-publisher.exception.js.map +1 -0
  86. package/ddd-exceptions/{unhandled-exeption-bus.d.ts → impl/domain-unhandled-bus.exeption.d.ts} +5 -5
  87. package/ddd-exceptions/{unhandled-exeption-bus.js → impl/domain-unhandled-bus.exeption.js} +9 -9
  88. package/ddd-exceptions/impl/domain-unhandled-bus.exeption.js.map +1 -0
  89. package/ddd-exceptions/impl/index.d.ts +8 -0
  90. package/ddd-exceptions/impl/index.js +25 -0
  91. package/ddd-exceptions/impl/index.js.map +1 -0
  92. package/ddd-exceptions/impl/sagas.exception.d.ts +4 -0
  93. package/ddd-exceptions/impl/sagas.exception.js +13 -0
  94. package/ddd-exceptions/impl/sagas.exception.js.map +1 -0
  95. package/ddd-exceptions/index.d.ts +1 -5
  96. package/ddd-exceptions/index.js +1 -5
  97. package/ddd-exceptions/index.js.map +1 -1
  98. package/ddd-exceptions/interfaces/exception.base.js.map +1 -0
  99. package/ddd-exceptions/interfaces/index.d.ts +1 -0
  100. package/ddd-exceptions/interfaces/index.js +1 -0
  101. package/ddd-exceptions/interfaces/index.js.map +1 -1
  102. package/ddd-helpers/datetime.helper.d.ts +1 -0
  103. package/ddd-helpers/datetime.helper.js +3 -0
  104. package/ddd-helpers/datetime.helper.js.map +1 -1
  105. package/ddd-helpers/domain-object.helper.d.ts +2 -1
  106. package/ddd-helpers/domain-object.helper.js +4 -0
  107. package/ddd-helpers/domain-object.helper.js.map +1 -1
  108. package/ddd-validators/impl/domain-abstract.validator.js.map +1 -1
  109. package/ddd-validators/impl/domain-entity.validator.js.map +1 -1
  110. package/ddd-validators/impl/domain-value-object.validator.js.map +1 -1
  111. package/ddd-valueobject.d.ts +4 -4
  112. package/ddd-valueobject.js +6 -6
  113. package/ddd-valueobject.js.map +1 -1
  114. package/ddd-valueobjects/domain-audit.valueobject.d.ts +6 -6
  115. package/ddd-valueobjects/domain-audit.valueobject.js +15 -15
  116. package/ddd-valueobjects/domain-audit.valueobject.js.map +1 -1
  117. package/ddd-valueobjects/domain-date.valueobject.js.map +1 -1
  118. package/ddd-valueobjects/domain-enum-base.valueobject.js.map +1 -1
  119. package/ddd-valueobjects/domain-number-base.valueobject.js.map +1 -1
  120. package/ddd-valueobjects/domain-string-base.valueobject.js.map +1 -1
  121. package/ddd-valueobjects/domain-uid-string.valueobject.js +1 -1
  122. package/ddd-valueobjects/domain-uid-string.valueobject.js.map +1 -1
  123. package/ddd.module.js +2 -2
  124. package/ddd.module.js.map +1 -1
  125. package/ddd.service.d.ts +1 -1
  126. package/ddd.service.js.map +1 -1
  127. package/package.json +1 -1
  128. package/tsconfig.lib.tsbuildinfo +1 -1
  129. package/ddd-events/impl/default-get-event-id.helper.d.ts +0 -4
  130. package/ddd-events/impl/default-get-event-id.helper.js +0 -14
  131. package/ddd-events/impl/default-get-event-id.helper.js.map +0 -1
  132. package/ddd-events/impl/default-pubsub.helper.d.ts +0 -9
  133. package/ddd-events/impl/default-pubsub.helper.js.map +0 -1
  134. package/ddd-exceptions/broken-rules.exeption.js.map +0 -1
  135. package/ddd-exceptions/default-unhandled-exception-pubsub.helper.d.ts +0 -9
  136. package/ddd-exceptions/default-unhandled-exception-pubsub.helper.js +0 -13
  137. package/ddd-exceptions/default-unhandled-exception-pubsub.helper.js.map +0 -1
  138. package/ddd-exceptions/exception.base.js.map +0 -1
  139. package/ddd-exceptions/exceptions.d.ts +0 -35
  140. package/ddd-exceptions/exceptions.js +0 -78
  141. package/ddd-exceptions/exceptions.js.map +0 -1
  142. package/ddd-exceptions/unhandled-exeption-bus.js.map +0 -1
  143. package/ddd.options.js.map +0 -1
  144. /package/{ddd.options.js → ddd-core/interfaces/ddd.options.js} +0 -0
  145. /package/ddd-exceptions/{exception.base.d.ts → interfaces/exception.base.d.ts} +0 -0
  146. /package/ddd-exceptions/{exception.base.js → interfaces/exception.base.js} +0 -0
package/README.md CHANGED
@@ -1,8 +1,25 @@
1
1
  # Ddd Library
2
2
 
3
- A simple DDD NESTJS Library
3
+ Welcome to DDD Library for NESTJS, an innovative open-source library crafted to seamlessly integrate Domain-Driven Design (DDD) principles into your NESTJS applications. This powerful library is meticulously developed with a focus on TypeScript, leveraging the robust capabilities of NESTJS and ensuring seamless compatibility with Node.js.
4
4
 
5
- ## Instructions
5
+ Domain-Driven Design has proven to be a game-changer in building scalable and maintainable applications by placing the domain at the heart of the software design process. With [Library Name], we aim to simplify the application of DDD concepts within the NESTJS framework, empowering developers to create well-architected, domain-centric solutions.
6
+
7
+ ## DISCLAIMER: This library is not ready to be used in production environments
8
+
9
+ # Key Features:
10
+
11
+ - NESTJS Integration: DDD Library for NESTJS is designed from the ground up to seamlessly integrate with NESTJS, a leading framework for building efficient and scalable server-side applications with TypeScript.
12
+ - TypeScript Support: Take advantage of the static typing and modern features of TypeScript, enhancing the development experience and catching errors early in the development process.
13
+ - Node.js Compatibility: DDD Library for NESTJS is built to support Node.js, allowing you to harness the full power of JavaScript on the server side.
14
+ - Domain-Driven Design Principles: Embrace the core principles of DDD effortlessly. DDD Library for NESTJS provides abstractions and utilities that align with DDD concepts, allowing you to model your domain in a clear and expressive manner.
15
+ - Modularity and Extensibility: Enjoy a modular and extensible architecture that adapts to the complexity of your application. DDD Library for NESTJS empowers you to build scalable systems by encapsulating domain logic in a modular fashion.
16
+ - Community-Driven: As an open-source project, DDD Library for NESTJS thrives on community collaboration. Contribute, share your insights, and join the growing community of developers dedicated to enhancing DDD practices within NESTJS.
17
+
18
+ # Getting Started:
19
+
20
+ To start incorporating DDD principles into your NESTJS projects, DDD Library for NESTJS offers comprehensive documentation, examples, and tutorials to guide you through the implementation process. Whether you are a seasoned developer or new to DDD, our library provides the tools you need to create robust, maintainable, and scalable applications.
21
+
22
+ Explore the potential of DDD Library for NESTJS today and elevate your NESTJS projects to new heights by seamlessly integrating Domain-Driven Design into your development workflow. Together, let's build software that truly reflects the intricacies of your business domain.
6
23
 
7
24
  ### Install
8
25
 
@@ -10,4 +27,4 @@ A simple DDD NESTJS Library
10
27
 
11
28
  ### Use library
12
29
 
13
- ... Define instructions to consume library
30
+ This source code include a defaultr sample where we can see in detail how use this library.
@@ -5,10 +5,10 @@ export declare abstract class DomainAggregateRoot<TProps, TDomainEventBase exten
5
5
  publish<T extends TDomainEventBase = TDomainEventBase>(domainEvent: T): void;
6
6
  publishAll<T extends TDomainEventBase = TDomainEventBase>(domainEvents: T[]): void;
7
7
  commit(): void;
8
- uncommit(): void;
9
- getDomainEvents(): TDomainEventBase[];
10
- existsDomainEvent(domainEvent: TDomainEventBase): boolean;
11
8
  clearDomainEvents(): void;
12
9
  addDomainEvent(domainEvent: TDomainEventBase): void;
13
10
  removeDomainEvent(domainEvent: TDomainEventBase): void;
11
+ existsDomainEvent(domainEvent: TDomainEventBase): boolean;
12
+ get DomainEvents(): TDomainEventBase[];
13
+ uncommit(): void;
14
14
  }
@@ -13,30 +13,33 @@ class DomainAggregateRoot extends ddd_entity_1.DomainEntity {
13
13
  this.publishAll(this._domainEvents);
14
14
  this.clearDomainEvents();
15
15
  }
16
- uncommit() {
17
- this._domainEvents.length = 0;
18
- }
19
- getDomainEvents() {
20
- return this._domainEvents;
21
- }
22
- existsDomainEvent(domainEvent) {
23
- return this._domainEvents.includes(domainEvent);
24
- }
25
16
  clearDomainEvents() {
26
17
  this._domainEvents = [];
27
18
  }
28
19
  addDomainEvent(domainEvent) {
29
- if (!this._domainEvents) {
20
+ if (!this.existsDomainEvent(domainEvent)) {
30
21
  this._domainEvents = [];
31
22
  }
32
23
  this._domainEvents.push(domainEvent);
33
24
  }
34
25
  removeDomainEvent(domainEvent) {
26
+ if (!this.existsDomainEvent(domainEvent)) {
27
+ return;
28
+ }
35
29
  const index = this._domainEvents.indexOf(domainEvent);
36
30
  if (index > -1) {
37
31
  this._domainEvents.splice(index, 1);
38
32
  }
39
33
  }
34
+ existsDomainEvent(domainEvent) {
35
+ return this._domainEvents.includes(domainEvent);
36
+ }
37
+ get DomainEvents() {
38
+ return this._domainEvents;
39
+ }
40
+ uncommit() {
41
+ this._domainEvents.length = 0;
42
+ }
40
43
  }
41
44
  exports.DomainAggregateRoot = DomainAggregateRoot;
42
45
  //# sourceMappingURL=ddd-aggregate-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ddd-aggregate-root.js","sourceRoot":"","sources":["../../../libs/ddd/src/ddd-aggregate-root.ts"],"names":[],"mappings":";;;AAEA,6CAA4C;AAI5C,MAAsB,mBAGpB,SAAQ,yBAAoB;IAH9B;;QAKY,kBAAa,GAAuB,EAAE,CAAC;IAkDnD,CAAC;IA9CC,OAAO,CAAgD,WAAc,IAAG,CAAC;IAEzE,UAAU,CACR,YAAiB,IAChB,CAAC;IAKJ,MAAM;QACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,WAA6B;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,WAA6B;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,iBAAiB,CAAC,WAA6B;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CAGF;AAvDD,kDAuDC"}
1
+ {"version":3,"file":"ddd-aggregate-root.js","sourceRoot":"","sources":["../../../libs/ddd/src/ddd-aggregate-root.ts"],"names":[],"mappings":";;;AACA,6CAA4C;AAW5C,MAAsB,mBAGpB,SAAQ,yBAAoB;IAH9B;;QAIY,kBAAa,GAAuB,EAAE,CAAC;IA0FnD,CAAC;IAlFC,OAAO,CAAgD,WAAc,IAAG,CAAC;IAQzE,UAAU,CACR,YAAiB,IAChB,CAAC;IAKJ,MAAM;QACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAKD,iBAAiB;QACf,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAC1B,CAAC;IAOD,cAAc,CAAC,WAA6B;QAC1C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAOD,iBAAiB,CAAC,WAA6B;QAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEtD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAQD,iBAAiB,CAAC,WAA6B;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAOD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAKD,QAAQ;QACN,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;CACF;AA9FD,kDA8FC"}
@@ -0,0 +1,3 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { IDomainCommand, IDomainCommandHandler } from '../interfaces';
3
+ export type CommandHandlerType = Type<IDomainCommandHandler<IDomainCommand>>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=command-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-types.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/command-types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"command.base.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/command.base.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAOpC,MAAa,WAAW;IAKtB,YAAY,KAAkC;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAA,SAAM,GAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU;SACxC,CAAC;IACJ,CAAC;CACF;AAbD,kCAaC"}
1
+ {"version":3,"file":"command.base.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/command.base.ts"],"names":[],"mappings":";;;AAGA,+BAAoC;AAapC,MAAa,WAAW;IAStB,YAAY,KAAkC;QAC5C,IAAI,CAAC,GAAG,GAAG,IAAA,SAAM,GAAE,CAAC;QAEpB,IAAI,CAAC,QAAQ,GAAG;YACd,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU;SACxC,CAAC;IACJ,CAAC;CACF;AAjBD,kCAiBC"}
@@ -1,7 +1,7 @@
1
1
  import { Subject } from 'rxjs';
2
2
  import { IDomainCommand, IDomainCommandPublisher } from '../interfaces';
3
- export declare class DefaultCommandPubSubHelper<CommandBase extends IDomainCommand> implements IDomainCommandPublisher<CommandBase> {
3
+ export declare class DefaultCommandPublisher<TDomainCommandBase extends IDomainCommand> implements IDomainCommandPublisher<TDomainCommandBase> {
4
4
  private subject$;
5
- constructor(subject$: Subject<CommandBase>);
6
- publish<T extends CommandBase>(domainCommand: T): void;
5
+ constructor(subject$: Subject<TDomainCommandBase>);
6
+ publish<T extends TDomainCommandBase>(domainCommand: T): void;
7
7
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DefaultCommandPubSubHelper = void 0;
4
- class DefaultCommandPubSubHelper {
3
+ exports.DefaultCommandPublisher = void 0;
4
+ class DefaultCommandPublisher {
5
5
  constructor(subject$) {
6
6
  this.subject$ = subject$;
7
7
  }
@@ -9,5 +9,5 @@ class DefaultCommandPubSubHelper {
9
9
  this.subject$.next(domainCommand);
10
10
  }
11
11
  }
12
- exports.DefaultCommandPubSubHelper = DefaultCommandPubSubHelper;
12
+ exports.DefaultCommandPublisher = DefaultCommandPublisher;
13
13
  //# sourceMappingURL=default-command-publisher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"default-command-publisher.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/default-command-publisher.ts"],"names":[],"mappings":";;;AAIA,MAAa,0BAA0B;IAGrC,YAAoB,QAA8B;QAA9B,aAAQ,GAAR,QAAQ,CAAsB;IAAG,CAAC;IAEtD,OAAO,CAAwB,aAAgB;QAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;CACF;AARD,gEAQC"}
1
+ {"version":3,"file":"default-command-publisher.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/default-command-publisher.ts"],"names":[],"mappings":";;;AAUA,MAAa,uBAAuB;IAQlC,YAAoB,QAAqC;QAArC,aAAQ,GAAR,QAAQ,CAA6B;IAAG,CAAC;IAQ7D,OAAO,CAA+B,aAAgB;QACpD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;CACF;AAnBD,0DAmBC"}
@@ -1,21 +1,18 @@
1
1
  import 'reflect-metadata';
2
- import { Type } from '@nestjs/common';
3
2
  import { ModuleRef } from '@nestjs/core';
4
3
  import { IDomainCommand, IDomainCommandBus, IDomainCommandHandler, IDomainCommandPublisher } from '../interfaces';
5
4
  import { ObservableBus } from '../../ddd-core';
6
- export type CommandHandlerType = Type<IDomainCommandHandler<IDomainCommand>>;
7
- export declare class DomainCommandBus<DomainCommandBase extends IDomainCommand = IDomainCommand> extends ObservableBus<DomainCommandBase> implements IDomainCommandBus<DomainCommandBase> {
5
+ import { CommandHandlerType } from './command-types';
6
+ export declare class DomainCommandBus<TDomainCommandBase extends IDomainCommand = IDomainCommand> extends ObservableBus<TDomainCommandBase> implements IDomainCommandBus<TDomainCommandBase> {
8
7
  private readonly moduleRef;
9
- private handlers;
8
+ private _handlers;
10
9
  private _publisher;
11
10
  constructor(moduleRef: ModuleRef);
12
- get publisher(): IDomainCommandPublisher<DomainCommandBase>;
13
- set publisher(_publisher: IDomainCommandPublisher<DomainCommandBase>);
14
- execute<T extends DomainCommandBase, R = any>(command: T): Promise<R>;
15
- bind<T extends DomainCommandBase>(handler: IDomainCommandHandler<T>, id: string): void;
11
+ get publisher(): IDomainCommandPublisher<TDomainCommandBase>;
12
+ set publisher(publisher: IDomainCommandPublisher<TDomainCommandBase>);
13
+ execute<T extends TDomainCommandBase, R = any>(command: T): Promise<R>;
14
+ bind<T extends TDomainCommandBase>(handler: IDomainCommandHandler<T>, id: string): void;
16
15
  register(handlers?: CommandHandlerType[]): void;
17
16
  protected registerHandler(handler: CommandHandlerType): void;
18
- private getCommandId;
19
- private reflectCommandId;
20
17
  private useDefaultPublisher;
21
18
  }
@@ -15,32 +15,35 @@ const common_1 = require("@nestjs/common");
15
15
  const core_1 = require("@nestjs/core");
16
16
  const ddd_core_1 = require("../../ddd-core");
17
17
  const ddd_exceptions_1 = require("../../ddd-exceptions");
18
- const ddd_decorators_1 = require("../../ddd-decorators");
19
18
  const default_command_publisher_1 = require("./default-command-publisher");
19
+ const ddd_decorators_1 = require("../../ddd-decorators");
20
20
  let DomainCommandBus = class DomainCommandBus extends ddd_core_1.ObservableBus {
21
21
  constructor(moduleRef) {
22
22
  super();
23
23
  this.moduleRef = moduleRef;
24
- this.handlers = new Map();
24
+ this._handlers = new Map();
25
25
  this.useDefaultPublisher();
26
26
  }
27
27
  get publisher() {
28
28
  return this._publisher;
29
29
  }
30
- set publisher(_publisher) {
31
- this._publisher = _publisher;
30
+ set publisher(publisher) {
31
+ this._publisher = publisher;
32
32
  }
33
33
  execute(command) {
34
- const commandId = this.getCommandId(command);
35
- const handler = this.handlers.get(commandId);
34
+ const commandId = ddd_decorators_1.ReflectCommandHelper.getCommandId(command);
35
+ const handler = this._handlers.get(commandId);
36
36
  if (!handler) {
37
- throw new ddd_exceptions_1.DomainCommandHandlerNotFoundException(commandId);
37
+ throw new ddd_exceptions_1.DomainCommandHandlerNotFoundException(`Command Id: ${commandId}, does not have a command handler assigned`);
38
38
  }
39
39
  this._publisher.publish(command);
40
40
  return handler.execute(command);
41
41
  }
42
42
  bind(handler, id) {
43
- this.handlers.set(id, handler);
43
+ if (this._handlers.has(id)) {
44
+ throw new ddd_exceptions_1.DomainInvalidCommandHandlerException(`Command Id: ${id}, already has a command handler assigned`);
45
+ }
46
+ this._handlers.set(id, handler);
44
47
  }
45
48
  register(handlers = []) {
46
49
  handlers.forEach((handler) => this.registerHandler(handler));
@@ -50,27 +53,14 @@ let DomainCommandBus = class DomainCommandBus extends ddd_core_1.ObservableBus {
50
53
  if (!instance) {
51
54
  return;
52
55
  }
53
- const target = this.reflectCommandId(handler);
56
+ const target = ddd_decorators_1.ReflectCommandHelper.reflectCommandId(handler);
54
57
  if (!target) {
55
58
  throw new ddd_exceptions_1.DomainInvalidCommandHandlerException("CommandHandler doesn't have a Command associated");
56
59
  }
57
60
  this.bind(instance, target);
58
61
  }
59
- getCommandId(command) {
60
- const { constructor: commandType } = Object.getPrototypeOf(command);
61
- const commandMetadata = Reflect.getMetadata(ddd_decorators_1.DOMAIN_COMMAND_METADATA, commandType);
62
- if (!commandMetadata) {
63
- throw new ddd_exceptions_1.DomainCommandHandlerNotFoundException(commandType.name);
64
- }
65
- return commandMetadata.id;
66
- }
67
- reflectCommandId(handler) {
68
- const command = Reflect.getMetadata(ddd_decorators_1.DOMAIN_COMMAND_HANDLER_METADATA, handler);
69
- const commandMetadata = Reflect.getMetadata(ddd_decorators_1.DOMAIN_COMMAND_METADATA, command);
70
- return commandMetadata.id;
71
- }
72
62
  useDefaultPublisher() {
73
- this._publisher = new default_command_publisher_1.DefaultCommandPubSubHelper(this.subject$);
63
+ this._publisher = new default_command_publisher_1.DefaultCommandPublisher(this.subject$);
74
64
  }
75
65
  };
76
66
  exports.DomainCommandBus = DomainCommandBus;
@@ -1 +1 @@
1
- {"version":3,"file":"domain-command-bus.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/domain-command-bus.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,2CAAkD;AAClD,uCAAyC;AASzC,6CAA+C;AAC/C,yDAG8B;AAC9B,yDAG8B;AAC9B,2EAAyE;AAKlE,IAAM,gBAAgB,GAAtB,MAAM,gBAGX,SAAQ,wBAAgC;IASxC,YAA6B,SAAoB;QAC/C,KAAK,EAAE,CAAC;QADmB,cAAS,GAAT,SAAS,CAAW;QANzC,aAAQ,GAAG,IAAI,GAAG,EAGvB,CAAC;QAKF,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,UAAsD;QAClE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,OAAO,CAAuC,OAAU;QACtD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,sDAAqC,CAAC,SAAS,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CACF,OAAiC,EACjC,EAAU;QAEV,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ,CAAC,WAAiC,EAAE;QAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAES,eAAe,CAAC,OAA2B;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,qDAAoC,CAC5C,kDAAkD,CACnD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAoD,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAEO,YAAY,CAAC,OAA0B;QAC7C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,eAAe,GAA2B,OAAO,CAAC,WAAW,CACjE,wCAAuB,EACvB,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,sDAAqC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,eAAe,CAAC,EAAE,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,OAA2B;QAClD,MAAM,OAAO,GAAyB,OAAO,CAAC,WAAW,CACvD,gDAA+B,EAC/B,OAAO,CACR,CAAC;QACF,MAAM,eAAe,GAA2B,OAAO,CAAC,WAAW,CACjE,wCAAuB,EACvB,OAAO,CACR,CAAC;QACF,OAAO,eAAe,CAAC,EAAE,CAAC;IAC5B,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,sDAA0B,CAC9C,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;CACF,CAAA;AA1FY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAa6B,gBAAS;GAZtC,gBAAgB,CA0F5B"}
1
+ {"version":3,"file":"domain-command-bus.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/domain-command-bus.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,2CAA4C;AAC5C,uCAAyC;AAQzC,6CAA+C;AAC/C,yDAG8B;AAE9B,2EAAsE;AACtE,yDAA4D;AAUrD,IAAM,gBAAgB,GAAtB,MAAM,gBAGX,SAAQ,wBAAiC;IAqBzC,YAA6B,SAAoB;QAC/C,KAAK,EAAE,CAAC;QADmB,cAAS,GAAT,SAAS,CAAW;QAfzC,cAAS,GAAG,IAAI,GAAG,EAGxB,CAAC;QAeF,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAKD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAKD,IAAI,SAAS,CAAC,SAAsD;QAClE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IASD,OAAO,CAAwC,OAAU;QACvD,MAAM,SAAS,GAAG,qCAAoB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,sDAAqC,CAC7C,eAAe,SAAS,4CAA4C,CACrE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjC,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IASD,IAAI,CACF,OAAiC,EACjC,EAAU;QAEV,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,qDAAoC,CAC5C,eAAe,EAAE,0CAA0C,CAC5D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAOD,QAAQ,CAAC,WAAiC,EAAE;QAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAQS,eAAe,CAAC,OAA2B;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,qCAAoB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,qDAAoC,CAC5C,kDAAkD,CACnD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAqD,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAKO,mBAAmB;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,mDAAuB,CAC3C,IAAI,CAAC,QAAQ,CACd,CAAC;IACJ,CAAC;CACF,CAAA;AAhIY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAyB6B,gBAAS;GAxBtC,gBAAgB,CAgI5B"}
@@ -1,3 +1,5 @@
1
1
  export * from './command.base';
2
2
  export * from './domain-command-bus';
3
3
  export * from './default-command-publisher';
4
+ export * from '../../ddd-decorators/reflect-command.helper';
5
+ export * from './command-types';
@@ -17,4 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./command.base"), exports);
18
18
  __exportStar(require("./domain-command-bus"), exports);
19
19
  __exportStar(require("./default-command-publisher"), exports);
20
+ __exportStar(require("../../ddd-decorators/reflect-command.helper"), exports);
21
+ __exportStar(require("./command-types"), exports);
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,uDAAqC;AACrC,8DAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-commands/impl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,uDAAqC;AACrC,8DAA4C;AAC5C,8EAA4D;AAC5D,kDAAgC"}
@@ -1,4 +1,4 @@
1
1
  import { IDomainCommand } from './command.interface';
2
- export interface IDomainCommandBus<DomainCommandBase extends IDomainCommand = IDomainCommand> {
3
- execute<T extends DomainCommandBase, R = any>(domainCommand: T): Promise<R>;
2
+ export interface IDomainCommandBus<TDomainCommandBase extends IDomainCommand = IDomainCommand> {
3
+ execute<T extends TDomainCommandBase, TResult = any>(domainCommand: T): Promise<TResult>;
4
4
  }
@@ -1,4 +1,4 @@
1
1
  export interface IDomainCommandMetadata {
2
2
  id?: string;
3
- trackingId: string;
3
+ trackingId?: string;
4
4
  }
@@ -1,4 +1,4 @@
1
1
  import { IDomainCommand } from './command.interface';
2
- export interface IDomainCommandPublisher<DomainCommandBase extends IDomainCommand = IDomainCommand> {
3
- publish<T extends DomainCommandBase = DomainCommandBase>(command: T): any;
2
+ export interface IDomainCommandPublisher<TDomainCommandBase extends IDomainCommand = IDomainCommand> {
3
+ publish<T extends TDomainCommandBase = TDomainCommandBase>(command: T): void;
4
4
  }
@@ -19,7 +19,7 @@ class BrokenRuleCollection {
19
19
  }
20
20
  remove(brokenRule) {
21
21
  if (!this._brokenRules.includes(brokenRule))
22
- throw new Error('This broken rule does not exists');
22
+ throw new Error('This broken rule does not exist');
23
23
  const index = this._brokenRules.indexOf(brokenRule);
24
24
  this._brokenRules.splice(index, 1);
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"broken-rule-collection.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/broken-rules/broken-rule-collection.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAoB;IAG/B,YAAY,WAA+B;QAFnC,iBAAY,GAAsB,EAAE,CAAC;QAG3C,IAAI,WAAW;YAAE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACnD,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAEM,GAAG,CAAC,UAAsB;QAC/B,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS;YACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAErD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,UAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,QAAQ;QACb,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAEM,KAAK,CAAC,oBAA0C;QACrD,IAAI,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,SAAS;YACrE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,EAAE,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,MAA6B;QACzC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAE1D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;CACF;AA/DD,oDA+DC"}
1
+ {"version":3,"file":"broken-rule-collection.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/broken-rules/broken-rule-collection.ts"],"names":[],"mappings":";;;AAIA,MAAa,oBAAoB;IAO/B,YAAY,WAA+B;QANnC,iBAAY,GAAsB,EAAE,CAAC;QAO3C,IAAI,WAAW;YAAE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IACnD,CAAC;IAKM,KAAK;QACV,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAQM,GAAG,CAAC,UAAsB;QAC/B,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS;YACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAErD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAOM,MAAM,CAAC,UAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAErD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAMM,QAAQ;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAMM,QAAQ;QACb,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAMM,cAAc;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAOM,KAAK,CAAC,oBAA0C;QACrD,IAAI,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,SAAS;YACrE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,oBAAoB,CAAC,QAAQ,EAAE,CAAC;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAOM,MAAM,CAAC,MAA6B;QACzC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAE1D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;CACF;AAvGD,oDAuGC"}
@@ -1 +1 @@
1
- {"version":3,"file":"broken-rule.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/broken-rules/broken-rule.ts"],"names":[],"mappings":";;;AAAA,MAAa,UAAU;IACrB,YACS,IAAqB,EACrB,WAAmB;QADnB,SAAI,GAAJ,IAAI,CAAiB;QACrB,gBAAW,GAAX,WAAW,CAAQ;QAE1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AARD,gCAQC"}
1
+ {"version":3,"file":"broken-rule.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/broken-rules/broken-rule.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IAMrB,YACS,IAAqB,EACrB,WAAmB;QADnB,SAAI,GAAJ,IAAI,CAAiB;QACrB,gBAAW,GAAX,WAAW,CAAQ;QAE1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAbD,gCAaC"}
@@ -1,3 +1,4 @@
1
1
  export * from './observable-bus';
2
2
  export * from './of-type';
3
3
  export * from './tracking-props';
4
+ export * from './types';
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./observable-bus"), exports);
18
18
  __exportStar(require("./of-type"), exports);
19
19
  __exportStar(require("./tracking-props"), exports);
20
+ __exportStar(require("./types"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/impl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4CAA0B;AAC1B,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/impl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,4CAA0B;AAC1B,mDAAiC;AACjC,0CAAwB"}
@@ -1 +1 @@
1
- {"version":3,"file":"observable-bus.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/impl/observable-bus.ts"],"names":[],"mappings":";;;AAAA,+BAA2C;AAE3C,MAAa,aAAiB,SAAQ,iBAAa;IAGjD;QACE,KAAK,EAAE,CAAC;QAHA,cAAS,GAAG,IAAI,cAAO,EAAK,CAAC;QAIrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAXD,sCAWC"}
1
+ {"version":3,"file":"observable-bus.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/impl/observable-bus.ts"],"names":[],"mappings":";;;AAAA,+BAA2C;AAK3C,MAAa,aAAiB,SAAQ,iBAAa;IAGjD;QACE,KAAK,EAAE,CAAC;QAHA,cAAS,GAAG,IAAI,cAAO,EAAK,CAAC;QAIrC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/B,CAAC;IAKD,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAdD,sCAcC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tracking-props.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/impl/tracking-props.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAKxB,MAAM,CAAC,MAAM;QACX,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AA5BD,sCA4BC"}
1
+ {"version":3,"file":"tracking-props.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/impl/tracking-props.ts"],"names":[],"mappings":";;;AAKA,MAAa,aAAa;IAoBxB,MAAM,CAAC,MAAM;QACX,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAMD,MAAM,CAAC,QAAQ;QACb,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAMD,MAAM,CAAC,UAAU;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAnDD,sCAmDC"}
@@ -1,5 +1,5 @@
1
1
  import { Type } from '@nestjs/common';
2
- import { IDomainCommandHandler, IDomainEventHandler } from '.';
2
+ import { IDomainCommandHandler, IDomainEventHandler } from '../..';
3
3
  export interface IDddOptions {
4
4
  domainEvents?: Type<IDomainEventHandler>[];
5
5
  domainCommands?: Type<IDomainCommandHandler>[];
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ddd.options.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/interfaces/ddd.options.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
1
  export * from './tracking.interface';
2
2
  export * from './message-source.interface';
3
3
  export * from './saga.interface';
4
+ export * from './ddd.options';
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./tracking.interface"), exports);
18
18
  __exportStar(require("./message-source.interface"), exports);
19
19
  __exportStar(require("./saga.interface"), exports);
20
+ __exportStar(require("./ddd.options"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,6DAA2C;AAC3C,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/ddd/src/ddd-core/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,6DAA2C;AAC3C,mDAAiC;AACjC,gDAA8B"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-handler.decorator.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/command-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,+BAA0B;AAE1B,2CAGqB;AAGd,MAAM,oBAAoB,GAAG,CAClC,OAAkE,EAClD,EAAE;IAClB,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,mCAAuB,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9D,OAAO,CAAC,cAAc,CAAC,mCAAuB,EAAE,EAAE,EAAE,EAAE,IAAA,SAAE,GAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,2CAA+B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,oBAAoB,wBAS/B"}
1
+ {"version":3,"file":"command-handler.decorator.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/command-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,+BAA0B;AAE1B,2CAGqB;AAad,MAAM,oBAAoB,GAAG,CAClC,OAAkE,EAClD,EAAE;IAClB,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,mCAAuB,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9D,OAAO,CAAC,cAAc,CAAC,mCAAuB,EAAE,EAAE,EAAE,EAAE,IAAA,SAAE,GAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,2CAA+B,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,oBAAoB,wBAS/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,kBAAkB,CAAC;AAC3C,QAAA,oBAAoB,GAAG,iBAAiB,CAAC;AACzC,QAAA,8BAA8B,GAAG,0BAA0B,CAAC;AAC5D,QAAA,+BAA+B,GAAG,2BAA2B,CAAC;AAC9D,QAAA,uBAAuB,GAAG,oBAAoB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/constants.ts"],"names":[],"mappings":";;;AAGa,QAAA,qBAAqB,GAAG,kBAAkB,CAAC;AAK3C,QAAA,oBAAoB,GAAG,iBAAiB,CAAC;AAKzC,QAAA,8BAA8B,GAAG,0BAA0B,CAAC;AAK5D,QAAA,+BAA+B,GAAG,2BAA2B,CAAC;AAK9D,QAAA,uBAAuB,GAAG,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"events-handler.decorator.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/events-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,+BAA0B;AAE1B,2CAGqB;AAGd,MAAM,kBAAkB,GAAG,CAChC,GAAG,MAAiE,EACpD,EAAE;IAClB,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,EAAE,EAAE,EAAE,IAAA,SAAE,GAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,CAAC,0CAA8B,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,kBAAkB,sBAY7B"}
1
+ {"version":3,"file":"events-handler.decorator.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/events-handler.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,+BAA0B;AAE1B,2CAGqB;AAad,MAAM,kBAAkB,GAAG,CAChC,GAAG,MAAiE,EACpD,EAAE;IAClB,OAAO,CAAC,MAAc,EAAE,EAAE;QACxB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC1D,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,EAAE,EAAE,EAAE,IAAA,SAAE,GAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,cAAc,CAAC,0CAA8B,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,kBAAkB,sBAY7B"}
@@ -2,3 +2,5 @@ export * from './command-handler.decorator';
2
2
  export * from './events-handler.decorator';
3
3
  export * from './constants';
4
4
  export * from './saga.decorator';
5
+ export * from './reflect-command.helper';
6
+ export * from './reflect-event.helper';
@@ -18,4 +18,6 @@ __exportStar(require("./command-handler.decorator"), exports);
18
18
  __exportStar(require("./events-handler.decorator"), exports);
19
19
  __exportStar(require("./constants"), exports);
20
20
  __exportStar(require("./saga.decorator"), exports);
21
+ __exportStar(require("./reflect-command.helper"), exports);
22
+ __exportStar(require("./reflect-event.helper"), exports);
21
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,6DAA2C;AAC3C,8CAA4B;AAC5B,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,6DAA2C;AAC3C,8CAA4B;AAC5B,mDAAiC;AACjC,2DAAyC;AACzC,yDAAuC"}
@@ -0,0 +1,6 @@
1
+ import { IDomainCommand } from '../ddd-commands/interfaces';
2
+ import { CommandHandlerType } from '../ddd-commands';
3
+ export declare class ReflectCommandHelper {
4
+ static getCommandId(command: IDomainCommand): string;
5
+ static reflectCommandId(handler: CommandHandlerType): string | undefined;
6
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReflectCommandHelper = void 0;
4
+ const _1 = require(".");
5
+ const ddd_exceptions_1 = require("../ddd-exceptions");
6
+ class ReflectCommandHelper {
7
+ static getCommandId(command) {
8
+ const { constructor: commandType } = Object.getPrototypeOf(command).constructor;
9
+ const commandMetadata = Reflect.getMetadata(_1.DOMAIN_COMMAND_METADATA, commandType);
10
+ if (!commandMetadata) {
11
+ throw new ddd_exceptions_1.DomainCommandHandlerNotFoundException(commandType.name);
12
+ }
13
+ return commandMetadata.id;
14
+ }
15
+ static reflectCommandId(handler) {
16
+ const command = Reflect.getMetadata(_1.DOMAIN_COMMAND_HANDLER_METADATA, handler);
17
+ if (!command) {
18
+ throw new ddd_exceptions_1.DomainCommandHandlerNotFoundException(handler.name);
19
+ }
20
+ const commandMetadata = Reflect.getMetadata(_1.DOMAIN_COMMAND_METADATA, command);
21
+ return commandMetadata.id;
22
+ }
23
+ }
24
+ exports.ReflectCommandHelper = ReflectCommandHelper;
25
+ //# sourceMappingURL=reflect-command.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect-command.helper.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/reflect-command.helper.ts"],"names":[],"mappings":";;;AACA,wBAA6E;AAC7E,sDAA0E;AAU1E,MAAa,oBAAoB;IAQ/B,MAAM,CAAC,YAAY,CAAC,OAAuB;QACzC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAChC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC;QAE7C,MAAM,eAAe,GAA2B,OAAO,CAAC,WAAW,CACjE,0BAAuB,EACvB,WAAW,CACc,CAAC;QAE5B,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,sDAAqC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;QAED,OAAO,eAAe,CAAC,EAAE,CAAC;IAC5B,CAAC;IASD,MAAM,CAAC,gBAAgB,CAAC,OAA2B;QACjD,MAAM,OAAO,GAAyB,OAAO,CAAC,WAAW,CACvD,kCAA+B,EAC/B,OAAO,CACgB,CAAC;QAE1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,sDAAqC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,eAAe,GAA2B,OAAO,CAAC,WAAW,CACjE,0BAAuB,EACvB,OAAO,CACkB,CAAC;QAE5B,OAAO,eAAe,CAAC,EAAE,CAAC;IAC5B,CAAC;CACF;AAhDD,oDAgDC"}
@@ -0,0 +1,7 @@
1
+ import { Type } from '@nestjs/common';
2
+ import { DomainEventHandlerType, IDomainEvent } from '../ddd-events';
3
+ export declare class ReflectEventHelper {
4
+ static getDomainEventId: <TDomainEventBase extends IDomainEvent = IDomainEvent>(event: TDomainEventBase) => string;
5
+ static getReflectDomainEventId: <TDomainEventBase extends Type<IDomainEvent> = Type<IDomainEvent>>(event: TDomainEventBase) => string;
6
+ static reflectEvents(handler: DomainEventHandlerType<IDomainEvent>): FunctionConstructor[];
7
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReflectEventHelper = void 0;
4
+ const constants_1 = require("./constants");
5
+ class ReflectEventHelper {
6
+ static reflectEvents(handler) {
7
+ return Reflect.getMetadata(constants_1.DOMAIN_EVENTS_HANDLER_METADATA, handler);
8
+ }
9
+ }
10
+ exports.ReflectEventHelper = ReflectEventHelper;
11
+ ReflectEventHelper.getDomainEventId = (event) => {
12
+ const { constructor } = Object.getPrototypeOf(event);
13
+ return Reflect.getMetadata(constants_1.DOMAIN_EVENT_METADATA, constructor)?.id ?? null;
14
+ };
15
+ ReflectEventHelper.getReflectDomainEventId = (event) => {
16
+ return Reflect.getMetadata(constants_1.DOMAIN_EVENT_METADATA, event).id;
17
+ };
18
+ //# sourceMappingURL=reflect-event.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect-event.helper.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/reflect-event.helper.ts"],"names":[],"mappings":";;;AAEA,2CAGqB;AAErB,MAAa,kBAAkB;IAkB7B,MAAM,CAAC,aAAa,CAClB,OAA6C;QAE7C,OAAO,OAAO,CAAC,WAAW,CAAC,0CAA8B,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;;AAtBH,gDAuBC;AAtBQ,mCAAgB,GAAG,CAGxB,KAAuB,EACf,EAAE;IACV,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,iCAAqB,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC;AAC7E,CAAC,CAAC;AAEK,0CAAuB,GAAG,CAG/B,KAAuB,EACf,EAAE;IACV,OAAO,OAAO,CAAC,WAAW,CAAC,iCAAqB,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC9D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"saga.decorator.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/saga.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,2CAAmD;AAE5C,MAAM,IAAI,GAAG,GAAsB,EAAE;IAC1C,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACtD,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtE,OAAO,CAAC,cAAc,CACpB,gCAAoB,EACpB,CAAC,GAAG,UAAU,EAAE,WAAW,CAAC,EAC5B,MAAM,CAAC,WAAW,CACnB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,IAAI,QAUf"}
1
+ {"version":3,"file":"saga.decorator.js","sourceRoot":"","sources":["../../../../libs/ddd/src/ddd-decorators/saga.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,2CAAmD;AAO5C,MAAM,IAAI,GAAG,GAAsB,EAAE;IAC1C,OAAO,CAAC,MAAc,EAAE,WAA4B,EAAE,EAAE;QACtD,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtE,OAAO,CAAC,cAAc,CACpB,gCAAoB,EACpB,CAAC,GAAG,UAAU,EAAE,WAAW,CAAC,EAC5B,MAAM,CAAC,WAAW,CACnB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,IAAI,QAUf"}
package/ddd-entity.d.ts CHANGED
@@ -2,35 +2,34 @@ import { BrokenRule, BrokenRuleCollection, ITrackingProps, TrackingProps } from
2
2
  import { DomainIdAsString } from './ddd-valueobjects';
3
3
  import { AbstractDomainValueObject } from './ddd-valueobject';
4
4
  export interface IDomainEntityProps<T> {
5
- id: DomainEntityId;
5
+ id: DomainIdAsString;
6
6
  props: T;
7
7
  trackingProps: TrackingProps;
8
8
  }
9
- export type DomainEntityId = DomainIdAsString;
10
9
  export declare abstract class DomainEntity<TProps> {
11
10
  private _id;
12
11
  private _trackingProps;
13
12
  private _brokenRules;
14
- protected readonly props: TProps;
13
+ protected readonly _props: TProps;
15
14
  protected abstract businessRules(props: TProps): void;
16
15
  constructor({ id, props, trackingProps }: IDomainEntityProps<TProps>);
17
- getPropsCopy(): TProps & ITrackingProps;
18
- getProps(): TProps & ITrackingProps;
19
- setId(id: DomainEntityId): void;
20
- getId(): string;
21
- setTrackingProps(trackingProps: ITrackingProps): void;
22
- getTrackingProps(): ITrackingProps;
23
- getIsValid(): boolean;
24
- getBrokenRules(): BrokenRuleCollection;
25
- static isEntity(entity: unknown): entity is DomainEntity<unknown>;
26
- equals(object?: DomainEntity<TProps>): boolean;
16
+ private getInternalProps;
17
+ get propsCopy(): TProps & ITrackingProps;
18
+ get props(): TProps & ITrackingProps;
19
+ set id(id: DomainIdAsString);
20
+ get id(): string;
21
+ set trackingProps(trackingProps: ITrackingProps);
22
+ get trackingProps(): ITrackingProps;
23
+ get IsValid(): boolean;
24
+ get BrokenRules(): BrokenRuleCollection;
25
+ protected equals(object?: DomainEntity<TProps>): boolean;
27
26
  toObject(): unknown;
28
27
  markAsNew(): void;
29
28
  markAsDirty(): void;
30
29
  markAsDeleted(): void;
31
30
  addBrokenRule(brokenRule: BrokenRule): void;
32
31
  removeBrokenRule(brokenRule: BrokenRule): void;
33
- validate(): void;
32
+ protected validate(): void;
34
33
  removeChild<TParent extends DomainEntity<any>, TChild extends AbstractDomainValueObject<any> | DomainEntity<any>>(parent: TParent, child: TChild, childs: Array<TChild>): Array<TChild>;
35
34
  addChild<TParent extends DomainEntity<any>, TChild extends AbstractDomainValueObject<any> | DomainEntity<any>>(parent: TParent, child: TChild, childs: Array<TChild>): Array<TChild>;
36
35
  }