@nestjslatam/ddd-lib 1.0.51 → 1.0.53

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 (365) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +30 -30
  3. package/dist/aggregate-root.d.ts +63 -0
  4. package/dist/aggregate-root.js +154 -0
  5. package/dist/broken-rules.manager.d.ts +21 -0
  6. package/dist/broken-rules.manager.js +95 -0
  7. package/dist/core/aggregate/aggregate-equality.d.ts +16 -0
  8. package/dist/core/aggregate/aggregate-equality.js +33 -0
  9. package/dist/core/aggregate/aggregate-identity.d.ts +11 -0
  10. package/dist/core/aggregate/aggregate-identity.js +40 -0
  11. package/dist/core/aggregate/aggregate-serializer.d.ts +28 -0
  12. package/dist/core/aggregate/aggregate-serializer.js +38 -0
  13. package/dist/core/aggregate/aggregate-validation-orchestrator.d.ts +14 -0
  14. package/dist/core/aggregate/aggregate-validation-orchestrator.js +36 -0
  15. package/dist/core/aggregate/index.d.ts +5 -0
  16. package/dist/core/aggregate/index.js +12 -0
  17. package/dist/core/business-rules/impl/broken-rule.d.ts +7 -0
  18. package/dist/core/business-rules/impl/broken-rule.js +15 -0
  19. package/dist/core/business-rules/impl/broken-rules-extension.d.ts +6 -0
  20. package/dist/core/business-rules/impl/broken-rules-extension.js +32 -0
  21. package/dist/core/business-rules/impl/index.d.ts +4 -0
  22. package/{ddd-core/broken-rules → dist/core/business-rules/impl}/index.js +2 -1
  23. package/dist/core/business-rules/impl/property-change/index.d.ts +5 -0
  24. package/dist/core/business-rules/impl/property-change/index.js +21 -0
  25. package/dist/core/business-rules/impl/property-change/notify-property-changed.base.d.ts +16 -0
  26. package/dist/core/business-rules/impl/property-change/notify-property-changed.base.js +64 -0
  27. package/dist/core/business-rules/impl/property-change/notify-property-changed.context-args.d.ts +7 -0
  28. package/dist/core/business-rules/impl/property-change/notify-property-changed.context-args.js +12 -0
  29. package/dist/core/business-rules/impl/property-change/notify-property-changed.context.d.ts +11 -0
  30. package/dist/core/business-rules/impl/property-change/notify-property-changed.context.js +21 -0
  31. package/dist/core/business-rules/impl/property-change/reflection-type-extensions.d.ts +5 -0
  32. package/dist/core/business-rules/impl/property-change/reflection-type-extensions.js +23 -0
  33. package/dist/core/business-rules/index.d.ts +2 -0
  34. package/dist/core/index.d.ts +6 -0
  35. package/{ddd-core → dist/core}/index.js +5 -5
  36. package/dist/core/repositories/index.d.ts +3 -0
  37. package/dist/core/repositories/index.js +19 -0
  38. package/dist/core/repositories/repository-read.interface.d.ts +7 -0
  39. package/{ddd-commands/interfaces/command-handler.interface.js → dist/core/repositories/repository-read.interface.js} +1 -1
  40. package/{ddd-ports/interfaces/domain-repository-write.interface.d.ts → dist/core/repositories/repository-write.interface.d.ts} +4 -3
  41. package/{ddd-commands/interfaces/command-metadata.interface.js → dist/core/repositories/repository-write.interface.js} +1 -1
  42. package/dist/core/tracking-state/impl/index.d.ts +4 -0
  43. package/{ddd-core → dist/core/tracking-state}/impl/index.js +2 -2
  44. package/dist/core/tracking-state/impl/nested-property-change-detector.d.ts +8 -0
  45. package/dist/core/tracking-state/impl/nested-property-change-detector.js +38 -0
  46. package/{ddd-core → dist/core/tracking-state}/impl/tracking-props.d.ts +3 -0
  47. package/{ddd-core → dist/core/tracking-state}/impl/tracking-props.js +11 -0
  48. package/dist/core/tracking-state/impl/tracking-state-transition.d.ts +9 -0
  49. package/dist/core/tracking-state/impl/tracking-state-transition.js +34 -0
  50. package/{ddd-commands → dist/core/tracking-state}/index.d.ts +1 -0
  51. package/dist/core/tracking-state/interfaces/ichange-detector.d.ts +8 -0
  52. package/{ddd-commands/interfaces/command.interface.js → dist/core/tracking-state/interfaces/ichange-detector.js} +1 -1
  53. package/dist/core/tracking-state/interfaces/idomain-primitive.d.ts +5 -0
  54. package/dist/core/tracking-state/interfaces/idomain-primitive.js +3 -0
  55. package/dist/core/tracking-state/interfaces/index.d.ts +6 -0
  56. package/dist/core/tracking-state/interfaces/index.js +22 -0
  57. package/{ddd-core/interfaces/tracking.interface.d.ts → dist/core/tracking-state/interfaces/itracking-props.d.ts} +2 -0
  58. package/{ddd-core/interfaces/saga.interface.js → dist/core/tracking-state/interfaces/itracking-props.js} +1 -1
  59. package/dist/core/tracking-state/interfaces/itracking-state-manager.d.ts +12 -0
  60. package/{ddd-commands/interfaces/command-bus.interface.js → dist/core/tracking-state/interfaces/itracking-state-manager.js} +1 -1
  61. package/dist/core/tracking-state/interfaces/itracking-state-transitions.d.ts +7 -0
  62. package/dist/core/tracking-state/interfaces/itracking-state-transitions.js +3 -0
  63. package/dist/core/validator-rules/impl/abstract-rule-validator.d.ts +13 -0
  64. package/dist/core/validator-rules/impl/abstract-rule-validator.js +34 -0
  65. package/dist/core/validator-rules/impl/abstract-validator.d.ts +4 -0
  66. package/dist/core/validator-rules/impl/abstract-validator.js +7 -0
  67. package/dist/core/validator-rules/impl/entity-validator.d.ts +5 -0
  68. package/dist/core/validator-rules/impl/entity-validator.js +12 -0
  69. package/dist/core/validator-rules/impl/index.d.ts +5 -0
  70. package/{ddd-core/interfaces → dist/core/validator-rules/impl}/index.js +4 -4
  71. package/dist/core/validator-rules/impl/value-object-validator.d.ts +7 -0
  72. package/dist/core/validator-rules/impl/value-object-validator.js +15 -0
  73. package/{ddd-events → dist/core/validator-rules}/index.d.ts +2 -1
  74. package/{ddd-events → dist/core/validator-rules}/index.js +1 -1
  75. package/dist/core/validator-rules/interfaces/index.d.ts +3 -0
  76. package/{ddd-ports → dist/core/validator-rules/interfaces}/index.js +2 -1
  77. package/dist/core/validator-rules/interfaces/irule-context.d.ts +5 -0
  78. package/{ddd-commands/impl/command-types.js → dist/core/validator-rules/interfaces/irule-context.js} +1 -1
  79. package/dist/core/validator-rules/interfaces/irule-validator.d.ts +8 -0
  80. package/{ddd-core/interfaces/ddd.options.js → dist/core/validator-rules/interfaces/irule-validator.js} +1 -1
  81. package/dist/ddd.module.d.ts +6 -0
  82. package/{ddd.module.js → dist/ddd.module.js} +4 -32
  83. package/dist/ddd.service.d.ts +7 -0
  84. package/{ddd.service.js → dist/ddd.service.js} +1 -16
  85. package/dist/domain-event.d.ts +56 -0
  86. package/dist/domain-event.js +175 -0
  87. package/dist/enum.d.ts +28 -0
  88. package/dist/enum.js +129 -0
  89. package/dist/exceptions/domain.exception.d.ts +19 -0
  90. package/dist/exceptions/domain.exception.js +45 -0
  91. package/{ddd-helpers → dist/helpers}/datetime.helper.d.ts +1 -0
  92. package/{ddd-helpers → dist/helpers}/datetime.helper.js +1 -1
  93. package/dist/helpers/domain-object.helper.d.ts +20 -0
  94. package/{ddd-helpers → dist/helpers}/domain-object.helper.js +14 -19
  95. package/{ddd-helpers → dist/helpers}/index.d.ts +1 -0
  96. package/dist/index.d.ts +13 -0
  97. package/{ddd-events/impl → dist}/index.js +11 -7
  98. package/dist/state-transition.manager.d.ts +23 -0
  99. package/dist/state-transition.manager.js +163 -0
  100. package/dist/tracking-state-manager.d.ts +25 -0
  101. package/dist/tracking-state-manager.js +70 -0
  102. package/dist/validator-rule.manager.d.ts +17 -0
  103. package/dist/validator-rule.manager.js +80 -0
  104. package/dist/valueobject.d.ts +23 -0
  105. package/dist/valueobject.js +93 -0
  106. package/dist/valueobjects/id.valueobject.d.ts +16 -0
  107. package/dist/valueobjects/id.valueobject.js +52 -0
  108. package/dist/valueobjects/index.d.ts +7 -0
  109. package/{ddd-commands/impl → dist/valueobjects}/index.js +6 -5
  110. package/dist/valueobjects/number-notnull.validator.d.ts +13 -0
  111. package/dist/valueobjects/number-notnull.validator.js +31 -0
  112. package/dist/valueobjects/number-positive.validator.d.ts +13 -0
  113. package/dist/valueobjects/number-positive.validator.js +43 -0
  114. package/dist/valueobjects/number.valueobject.d.ts +25 -0
  115. package/dist/valueobjects/number.valueobject.js +67 -0
  116. package/dist/valueobjects/string-notnullorempty.validator.d.ts +14 -0
  117. package/dist/valueobjects/string-notnullorempty.validator.js +36 -0
  118. package/dist/valueobjects/string.valueobject.d.ts +27 -0
  119. package/dist/valueobjects/string.valueobject.js +86 -0
  120. package/package.json +52 -26
  121. package/src/types.d.ts +7 -0
  122. package/ddd-aggregate-root.d.ts +0 -34
  123. package/ddd-aggregate-root.js +0 -85
  124. package/ddd-aggregate-root.js.map +0 -1
  125. package/ddd-commands/impl/command-types.d.ts +0 -3
  126. package/ddd-commands/impl/command-types.js.map +0 -1
  127. package/ddd-commands/impl/command.base.d.ts +0 -7
  128. package/ddd-commands/impl/command.base.js +0 -15
  129. package/ddd-commands/impl/command.base.js.map +0 -1
  130. package/ddd-commands/impl/default-command-publisher.d.ts +0 -7
  131. package/ddd-commands/impl/default-command-publisher.js +0 -13
  132. package/ddd-commands/impl/default-command-publisher.js.map +0 -1
  133. package/ddd-commands/impl/domain-command-bus.d.ts +0 -18
  134. package/ddd-commands/impl/domain-command-bus.js +0 -71
  135. package/ddd-commands/impl/domain-command-bus.js.map +0 -1
  136. package/ddd-commands/impl/index.d.ts +0 -5
  137. package/ddd-commands/impl/index.js.map +0 -1
  138. package/ddd-commands/index.js.map +0 -1
  139. package/ddd-commands/interfaces/command-bus.interface.d.ts +0 -4
  140. package/ddd-commands/interfaces/command-bus.interface.js.map +0 -1
  141. package/ddd-commands/interfaces/command-handler.interface.d.ts +0 -4
  142. package/ddd-commands/interfaces/command-handler.interface.js.map +0 -1
  143. package/ddd-commands/interfaces/command-metadata.interface.d.ts +0 -4
  144. package/ddd-commands/interfaces/command-metadata.interface.js.map +0 -1
  145. package/ddd-commands/interfaces/command-publisher.interface.d.ts +0 -4
  146. package/ddd-commands/interfaces/command-publisher.interface.js +0 -3
  147. package/ddd-commands/interfaces/command-publisher.interface.js.map +0 -1
  148. package/ddd-commands/interfaces/command.interface.d.ts +0 -4
  149. package/ddd-commands/interfaces/command.interface.js.map +0 -1
  150. package/ddd-commands/interfaces/index.d.ts +0 -5
  151. package/ddd-commands/interfaces/index.js +0 -22
  152. package/ddd-commands/interfaces/index.js.map +0 -1
  153. package/ddd-core/broken-rules/broken-rule-collection.d.ts +0 -13
  154. package/ddd-core/broken-rules/broken-rule-collection.js +0 -54
  155. package/ddd-core/broken-rules/broken-rule-collection.js.map +0 -1
  156. package/ddd-core/broken-rules/broken-rule.d.ts +0 -5
  157. package/ddd-core/broken-rules/broken-rule.js +0 -13
  158. package/ddd-core/broken-rules/broken-rule.js.map +0 -1
  159. package/ddd-core/broken-rules/index.d.ts +0 -2
  160. package/ddd-core/broken-rules/index.js.map +0 -1
  161. package/ddd-core/ddd-base-classes.d.ts +0 -52
  162. package/ddd-core/ddd-base-classes.js +0 -173
  163. package/ddd-core/ddd-base-classes.js.map +0 -1
  164. package/ddd-core/ddd-validators.d.ts +0 -15
  165. package/ddd-core/ddd-validators.js +0 -70
  166. package/ddd-core/ddd-validators.js.map +0 -1
  167. package/ddd-core/impl/index.d.ts +0 -3
  168. package/ddd-core/impl/index.js.map +0 -1
  169. package/ddd-core/impl/observable-bus.d.ts +0 -6
  170. package/ddd-core/impl/observable-bus.js +0 -16
  171. package/ddd-core/impl/observable-bus.js.map +0 -1
  172. package/ddd-core/impl/of-type.d.ts +0 -4
  173. package/ddd-core/impl/of-type.js +0 -9
  174. package/ddd-core/impl/of-type.js.map +0 -1
  175. package/ddd-core/impl/tracking-props.js.map +0 -1
  176. package/ddd-core/index.d.ts +0 -5
  177. package/ddd-core/index.js.map +0 -1
  178. package/ddd-core/interfaces/ddd.options.d.ts +0 -7
  179. package/ddd-core/interfaces/ddd.options.js.map +0 -1
  180. package/ddd-core/interfaces/index.d.ts +0 -4
  181. package/ddd-core/interfaces/index.js.map +0 -1
  182. package/ddd-core/interfaces/message-source.interface.d.ts +0 -5
  183. package/ddd-core/interfaces/message-source.interface.js +0 -3
  184. package/ddd-core/interfaces/message-source.interface.js.map +0 -1
  185. package/ddd-core/interfaces/saga.interface.d.ts +0 -4
  186. package/ddd-core/interfaces/saga.interface.js.map +0 -1
  187. package/ddd-core/interfaces/tracking.interface.js +0 -3
  188. package/ddd-core/interfaces/tracking.interface.js.map +0 -1
  189. package/ddd-decorators/command-handler.decorator.d.ts +0 -3
  190. package/ddd-decorators/command-handler.decorator.js +0 -16
  191. package/ddd-decorators/command-handler.decorator.js.map +0 -1
  192. package/ddd-decorators/constants.d.ts +0 -5
  193. package/ddd-decorators/constants.js +0 -9
  194. package/ddd-decorators/constants.js.map +0 -1
  195. package/ddd-decorators/events-handler.decorator.d.ts +0 -3
  196. package/ddd-decorators/events-handler.decorator.js +0 -18
  197. package/ddd-decorators/events-handler.decorator.js.map +0 -1
  198. package/ddd-decorators/index.d.ts +0 -6
  199. package/ddd-decorators/index.js +0 -23
  200. package/ddd-decorators/index.js.map +0 -1
  201. package/ddd-decorators/reflect-command.helper.d.ts +0 -6
  202. package/ddd-decorators/reflect-command.helper.js +0 -25
  203. package/ddd-decorators/reflect-command.helper.js.map +0 -1
  204. package/ddd-decorators/reflect-event.helper.d.ts +0 -7
  205. package/ddd-decorators/reflect-event.helper.js +0 -18
  206. package/ddd-decorators/reflect-event.helper.js.map +0 -1
  207. package/ddd-decorators/saga.decorator.d.ts +0 -2
  208. package/ddd-decorators/saga.decorator.js +0 -13
  209. package/ddd-decorators/saga.decorator.js.map +0 -1
  210. package/ddd-events/impl/default-event-publisher.d.ts +0 -9
  211. package/ddd-events/impl/default-event-publisher.js +0 -16
  212. package/ddd-events/impl/default-event-publisher.js.map +0 -1
  213. package/ddd-events/impl/domain-event-bus.d.ts +0 -32
  214. package/ddd-events/impl/domain-event-bus.js +0 -140
  215. package/ddd-events/impl/domain-event-bus.js.map +0 -1
  216. package/ddd-events/impl/domain-event-cli.registry.d.ts +0 -6
  217. package/ddd-events/impl/domain-event-cli.registry.js +0 -18
  218. package/ddd-events/impl/domain-event-cli.registry.js.map +0 -1
  219. package/ddd-events/impl/domain-event-collection.d.ts +0 -11
  220. package/ddd-events/impl/domain-event-collection.js +0 -33
  221. package/ddd-events/impl/domain-event-collection.js.map +0 -1
  222. package/ddd-events/impl/domain-event-publisher.d.ts +0 -12
  223. package/ddd-events/impl/domain-event-publisher.js +0 -48
  224. package/ddd-events/impl/domain-event-publisher.js.map +0 -1
  225. package/ddd-events/impl/domain-event-types.d.ts +0 -3
  226. package/ddd-events/impl/domain-event-types.js +0 -3
  227. package/ddd-events/impl/domain-event-types.js.map +0 -1
  228. package/ddd-events/impl/domain-event.d.ts +0 -19
  229. package/ddd-events/impl/domain-event.deserializer.d.ts +0 -8
  230. package/ddd-events/impl/domain-event.deserializer.js +0 -31
  231. package/ddd-events/impl/domain-event.deserializer.js.map +0 -1
  232. package/ddd-events/impl/domain-event.js +0 -29
  233. package/ddd-events/impl/domain-event.js.map +0 -1
  234. package/ddd-events/impl/domain-event.serializer.d.ts +0 -6
  235. package/ddd-events/impl/domain-event.serializer.js +0 -45
  236. package/ddd-events/impl/domain-event.serializer.js.map +0 -1
  237. package/ddd-events/impl/index.d.ts +0 -8
  238. package/ddd-events/impl/index.js.map +0 -1
  239. package/ddd-events/index.js.map +0 -1
  240. package/ddd-events/interfaces/domain-event-bus.interface.d.ts +0 -5
  241. package/ddd-events/interfaces/domain-event-bus.interface.js +0 -3
  242. package/ddd-events/interfaces/domain-event-bus.interface.js.map +0 -1
  243. package/ddd-events/interfaces/domain-event-handler.interface.d.ts +0 -4
  244. package/ddd-events/interfaces/domain-event-handler.interface.js +0 -3
  245. package/ddd-events/interfaces/domain-event-handler.interface.js.map +0 -1
  246. package/ddd-events/interfaces/domain-event-metadata.interface.d.ts +0 -7
  247. package/ddd-events/interfaces/domain-event-metadata.interface.js +0 -3
  248. package/ddd-events/interfaces/domain-event-metadata.interface.js.map +0 -1
  249. package/ddd-events/interfaces/domain-event-publisher.interface.d.ts +0 -5
  250. package/ddd-events/interfaces/domain-event-publisher.interface.js +0 -3
  251. package/ddd-events/interfaces/domain-event-publisher.interface.js.map +0 -1
  252. package/ddd-events/interfaces/domain-event-serializable.interface.d.ts +0 -11
  253. package/ddd-events/interfaces/domain-event-serializable.interface.js +0 -3
  254. package/ddd-events/interfaces/domain-event-serializable.interface.js.map +0 -1
  255. package/ddd-events/interfaces/domain-event.interface.d.ts +0 -2
  256. package/ddd-events/interfaces/domain-event.interface.js +0 -3
  257. package/ddd-events/interfaces/domain-event.interface.js.map +0 -1
  258. package/ddd-events/interfaces/index.d.ts +0 -6
  259. package/ddd-events/interfaces/index.js +0 -23
  260. package/ddd-events/interfaces/index.js.map +0 -1
  261. package/ddd-exceptions/constants.d.ts +0 -14
  262. package/ddd-exceptions/constants.js +0 -18
  263. package/ddd-exceptions/constants.js.map +0 -1
  264. package/ddd-exceptions/impl/arguments-exception.d.ts +0 -10
  265. package/ddd-exceptions/impl/arguments-exception.js +0 -27
  266. package/ddd-exceptions/impl/arguments-exception.js.map +0 -1
  267. package/ddd-exceptions/impl/broken-rules.exeption.d.ts +0 -6
  268. package/ddd-exceptions/impl/broken-rules.exeption.js +0 -14
  269. package/ddd-exceptions/impl/broken-rules.exeption.js.map +0 -1
  270. package/ddd-exceptions/impl/command-exception.d.ts +0 -7
  271. package/ddd-exceptions/impl/command-exception.js +0 -20
  272. package/ddd-exceptions/impl/command-exception.js.map +0 -1
  273. package/ddd-exceptions/impl/common.exception.d.ts +0 -14
  274. package/ddd-exceptions/impl/common.exception.js +0 -29
  275. package/ddd-exceptions/impl/common.exception.js.map +0 -1
  276. package/ddd-exceptions/impl/domain-bus.exception.d.ts +0 -7
  277. package/ddd-exceptions/impl/domain-bus.exception.js +0 -20
  278. package/ddd-exceptions/impl/domain-bus.exception.js.map +0 -1
  279. package/ddd-exceptions/impl/domain-publisher.exception.d.ts +0 -9
  280. package/ddd-exceptions/impl/domain-publisher.exception.js +0 -13
  281. package/ddd-exceptions/impl/domain-publisher.exception.js.map +0 -1
  282. package/ddd-exceptions/impl/domain-unhandled-bus.exeption.d.ts +0 -16
  283. package/ddd-exceptions/impl/domain-unhandled-bus.exeption.js +0 -45
  284. package/ddd-exceptions/impl/domain-unhandled-bus.exeption.js.map +0 -1
  285. package/ddd-exceptions/impl/index.d.ts +0 -8
  286. package/ddd-exceptions/impl/index.js +0 -25
  287. package/ddd-exceptions/impl/index.js.map +0 -1
  288. package/ddd-exceptions/impl/sagas.exception.d.ts +0 -4
  289. package/ddd-exceptions/impl/sagas.exception.js +0 -13
  290. package/ddd-exceptions/impl/sagas.exception.js.map +0 -1
  291. package/ddd-exceptions/index.d.ts +0 -3
  292. package/ddd-exceptions/index.js +0 -20
  293. package/ddd-exceptions/index.js.map +0 -1
  294. package/ddd-exceptions/interfaces/exception.base.d.ts +0 -17
  295. package/ddd-exceptions/interfaces/exception.base.js +0 -24
  296. package/ddd-exceptions/interfaces/exception.base.js.map +0 -1
  297. package/ddd-exceptions/interfaces/index.d.ts +0 -3
  298. package/ddd-exceptions/interfaces/index.js +0 -20
  299. package/ddd-exceptions/interfaces/index.js.map +0 -1
  300. package/ddd-exceptions/interfaces/unhandled-exception-info.interface.d.ts +0 -6
  301. package/ddd-exceptions/interfaces/unhandled-exception-info.interface.js +0 -3
  302. package/ddd-exceptions/interfaces/unhandled-exception-info.interface.js.map +0 -1
  303. package/ddd-exceptions/interfaces/unhandled-exception-publisher.interface.d.ts +0 -6
  304. package/ddd-exceptions/interfaces/unhandled-exception-publisher.interface.js +0 -3
  305. package/ddd-exceptions/interfaces/unhandled-exception-publisher.interface.js.map +0 -1
  306. package/ddd-helpers/datetime.helper.js.map +0 -1
  307. package/ddd-helpers/domain-object.helper.d.ts +0 -18
  308. package/ddd-helpers/domain-object.helper.js.map +0 -1
  309. package/ddd-helpers/index.js.map +0 -1
  310. package/ddd-ports/index.d.ts +0 -1
  311. package/ddd-ports/index.js.map +0 -1
  312. package/ddd-ports/interfaces/domain-repository-read.interface.d.ts +0 -6
  313. package/ddd-ports/interfaces/domain-repository-read.interface.js +0 -3
  314. package/ddd-ports/interfaces/domain-repository-read.interface.js.map +0 -1
  315. package/ddd-ports/interfaces/domain-repository-write.interface.js +0 -3
  316. package/ddd-ports/interfaces/domain-repository-write.interface.js.map +0 -1
  317. package/ddd-ports/interfaces/index.d.ts +0 -2
  318. package/ddd-ports/interfaces/index.js +0 -19
  319. package/ddd-ports/interfaces/index.js.map +0 -1
  320. package/ddd-validators/impl/domain-abstract.validator.d.ts +0 -5
  321. package/ddd-validators/impl/domain-abstract.validator.js +0 -34
  322. package/ddd-validators/impl/domain-abstract.validator.js.map +0 -1
  323. package/ddd-validators/impl/domain-entity.validator.d.ts +0 -5
  324. package/ddd-validators/impl/domain-entity.validator.js +0 -12
  325. package/ddd-validators/impl/domain-entity.validator.js.map +0 -1
  326. package/ddd-validators/impl/domain-value-object.validator.d.ts +0 -11
  327. package/ddd-validators/impl/domain-value-object.validator.js +0 -41
  328. package/ddd-validators/impl/domain-value-object.validator.js.map +0 -1
  329. package/ddd-validators/impl/index.d.ts +0 -3
  330. package/ddd-validators/impl/index.js +0 -20
  331. package/ddd-validators/impl/index.js.map +0 -1
  332. package/ddd-validators/index.d.ts +0 -1
  333. package/ddd-validators/index.js.map +0 -1
  334. package/ddd-valueobjects/domain-audit.valueobject.d.ts +0 -21
  335. package/ddd-valueobjects/domain-audit.valueobject.js +0 -63
  336. package/ddd-valueobjects/domain-audit.valueobject.js.map +0 -1
  337. package/ddd-valueobjects/domain-date.valueobject.d.ts +0 -6
  338. package/ddd-valueobjects/domain-date.valueobject.js +0 -20
  339. package/ddd-valueobjects/domain-date.valueobject.js.map +0 -1
  340. package/ddd-valueobjects/domain-enum-base.valueobject.d.ts +0 -5
  341. package/ddd-valueobjects/domain-enum-base.valueobject.js +0 -11
  342. package/ddd-valueobjects/domain-enum-base.valueobject.js.map +0 -1
  343. package/ddd-valueobjects/domain-number-base.valueobject.d.ts +0 -6
  344. package/ddd-valueobjects/domain-number-base.valueobject.js +0 -22
  345. package/ddd-valueobjects/domain-number-base.valueobject.js.map +0 -1
  346. package/ddd-valueobjects/domain-string-base.valueobject.d.ts +0 -6
  347. package/ddd-valueobjects/domain-string-base.valueobject.js +0 -22
  348. package/ddd-valueobjects/domain-string-base.valueobject.js.map +0 -1
  349. package/ddd-valueobjects/domain-uid.valueobject.d.ts +0 -7
  350. package/ddd-valueobjects/domain-uid.valueobject.js +0 -29
  351. package/ddd-valueobjects/domain-uid.valueobject.js.map +0 -1
  352. package/ddd-valueobjects/index.d.ts +0 -6
  353. package/ddd-valueobjects/index.js +0 -23
  354. package/ddd-valueobjects/index.js.map +0 -1
  355. package/ddd.module.d.ts +0 -11
  356. package/ddd.module.js.map +0 -1
  357. package/ddd.service.d.ts +0 -14
  358. package/ddd.service.js.map +0 -1
  359. package/index.d.ts +0 -14
  360. package/index.js +0 -31
  361. package/index.js.map +0 -1
  362. package/tsconfig.lib.tsbuildinfo +0 -1
  363. /package/{ddd-validators → dist/core/business-rules}/index.js +0 -0
  364. /package/{ddd-commands → dist/core/tracking-state}/index.js +0 -0
  365. /package/{ddd-helpers → dist/helpers}/index.js +0 -0
@@ -0,0 +1,12 @@
1
+ export interface ITrackingStateManager {
2
+ readonly isNew: boolean;
3
+ readonly isDirty: boolean;
4
+ readonly isSelfDeleted: boolean;
5
+ readonly isDeleted: boolean;
6
+ markAsDirty(): void;
7
+ markAsNew(): void;
8
+ markAsSelfDeleted(): void;
9
+ markAsDeleted(): void;
10
+ markAsClean(): void;
11
+ }
12
+ //# sourceMappingURL=itracking-state-manager.d.ts.map
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=command-bus.interface.js.map
3
+ //# sourceMappingURL=itracking-state-manager.js.map
@@ -0,0 +1,7 @@
1
+ export interface ITrackingStateTransitions {
2
+ setDirty(value: boolean): void;
3
+ setNew(value: boolean): void;
4
+ setSelfDeleted(value: boolean): void;
5
+ setDeleted(value: boolean): void;
6
+ }
7
+ //# sourceMappingURL=itracking-state-transitions.d.ts.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=itracking-state-transitions.js.map
@@ -0,0 +1,13 @@
1
+ import { BrokenRule } from '../../business-rules';
2
+ import { ClassType, IRuleValidator } from '../interfaces';
3
+ export declare abstract class AbstractRuleValidator<TSubject> implements IRuleValidator {
4
+ readonly subject: TSubject;
5
+ private brokenRules;
6
+ constructor(subject: TSubject);
7
+ abstract addRules(): void;
8
+ validate(): ReadonlyArray<BrokenRule>;
9
+ addBrokenRule(propertyName: string, message: string): void;
10
+ getValidatorDescriptor(): ClassType;
11
+ getSubjectDescriptor(): ClassType;
12
+ }
13
+ //# sourceMappingURL=abstract-rule-validator.d.ts.map
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractRuleValidator = void 0;
4
+ class AbstractRuleValidator {
5
+ constructor(subject) {
6
+ this.subject = subject;
7
+ this.brokenRules = [];
8
+ }
9
+ validate() {
10
+ this.brokenRules = [];
11
+ if (this.subject !== null && this.subject !== undefined) {
12
+ this.addRules();
13
+ }
14
+ return this.brokenRules;
15
+ }
16
+ addBrokenRule(propertyName, message) {
17
+ this.brokenRules.push({
18
+ property: propertyName,
19
+ message: message,
20
+ severity: 'Error',
21
+ });
22
+ }
23
+ getValidatorDescriptor() {
24
+ return this.constructor;
25
+ }
26
+ getSubjectDescriptor() {
27
+ if (!this.subject) {
28
+ throw new Error('Subject is null or undefined.');
29
+ }
30
+ return this.subject.constructor;
31
+ }
32
+ }
33
+ exports.AbstractRuleValidator = AbstractRuleValidator;
34
+ //# sourceMappingURL=abstract-rule-validator.js.map
@@ -0,0 +1,4 @@
1
+ export declare abstract class AbstractValidator {
2
+ abstract validate(obj: unknown): boolean;
3
+ }
4
+ //# sourceMappingURL=abstract-validator.d.ts.map
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractValidator = void 0;
4
+ class AbstractValidator {
5
+ }
6
+ exports.AbstractValidator = AbstractValidator;
7
+ //# sourceMappingURL=abstract-validator.js.map
@@ -0,0 +1,5 @@
1
+ import { AbstractValidator } from './abstract-validator';
2
+ export declare class EntityValidator extends AbstractValidator {
3
+ validate(obj: unknown): boolean;
4
+ }
5
+ //# sourceMappingURL=entity-validator.d.ts.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityValidator = void 0;
4
+ const aggregate_root_1 = require("../../../aggregate-root");
5
+ const abstract_validator_1 = require("./abstract-validator");
6
+ class EntityValidator extends abstract_validator_1.AbstractValidator {
7
+ validate(obj) {
8
+ return obj instanceof aggregate_root_1.DddAggregateRoot;
9
+ }
10
+ }
11
+ exports.EntityValidator = EntityValidator;
12
+ //# sourceMappingURL=entity-validator.js.map
@@ -0,0 +1,5 @@
1
+ export * from './abstract-validator';
2
+ export * from './entity-validator';
3
+ export * from './value-object-validator';
4
+ export * from './abstract-rule-validator';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -14,8 +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("./tracking.interface"), exports);
18
- __exportStar(require("./message-source.interface"), exports);
19
- __exportStar(require("./saga.interface"), exports);
20
- __exportStar(require("./ddd.options"), exports);
17
+ __exportStar(require("./abstract-validator"), exports);
18
+ __exportStar(require("./entity-validator"), exports);
19
+ __exportStar(require("./value-object-validator"), exports);
20
+ __exportStar(require("./abstract-rule-validator"), exports);
21
21
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ import { DddValueObject } from '../../../valueobject';
2
+ import { AbstractValidator } from './abstract-validator';
3
+ export declare class ValueObjectValidator extends AbstractValidator {
4
+ validate(obj: unknown): boolean;
5
+ static isValueObject(obj: unknown): obj is DddValueObject<any>;
6
+ }
7
+ //# sourceMappingURL=value-object-validator.d.ts.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValueObjectValidator = void 0;
4
+ const valueobject_1 = require("../../../valueobject");
5
+ const abstract_validator_1 = require("./abstract-validator");
6
+ class ValueObjectValidator extends abstract_validator_1.AbstractValidator {
7
+ validate(obj) {
8
+ return obj instanceof valueobject_1.DddValueObject;
9
+ }
10
+ static isValueObject(obj) {
11
+ return obj instanceof valueobject_1.DddValueObject;
12
+ }
13
+ }
14
+ exports.ValueObjectValidator = ValueObjectValidator;
15
+ //# sourceMappingURL=value-object-validator.js.map
@@ -1,2 +1,3 @@
1
- export * from './interfaces';
2
1
  export * from './impl';
2
+ export * from './interfaces';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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("./interfaces"), exports);
18
17
  __exportStar(require("./impl"), exports);
18
+ __exportStar(require("./interfaces"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export * from './irule-validator';
2
+ export * from './irule-context';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -14,5 +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("./interfaces"), exports);
17
+ __exportStar(require("./irule-validator"), exports);
18
+ __exportStar(require("./irule-context"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,5 @@
1
+ export interface IRuleContext {
2
+ target: any;
3
+ metadata?: Record<string, any>;
4
+ }
5
+ //# sourceMappingURL=irule-context.d.ts.map
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=command-types.js.map
3
+ //# sourceMappingURL=irule-context.js.map
@@ -0,0 +1,8 @@
1
+ import { BrokenRule } from '../../business-rules';
2
+ export type ClassType<T = any> = new (...args: any[]) => T;
3
+ export interface IRuleValidator {
4
+ getValidatorDescriptor(): ClassType;
5
+ getSubjectDescriptor(): ClassType;
6
+ validate(): ReadonlyArray<BrokenRule>;
7
+ }
8
+ //# sourceMappingURL=irule-validator.d.ts.map
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=ddd.options.js.map
3
+ //# sourceMappingURL=irule-validator.js.map
@@ -0,0 +1,6 @@
1
+ import { OnApplicationBootstrap } from '@nestjs/common';
2
+ export declare class DddModule implements OnApplicationBootstrap {
3
+ constructor();
4
+ onApplicationBootstrap(): void;
5
+ }
6
+ //# sourceMappingURL=ddd.module.d.ts.map
@@ -13,21 +13,9 @@ exports.DddModule = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const core_1 = require("@nestjs/core");
15
15
  const ddd_service_1 = require("./ddd.service");
16
- const ddd_commands_1 = require("./ddd-commands");
17
- const ddd_events_1 = require("./ddd-events");
18
- const ddd_exceptions_1 = require("./ddd-exceptions");
19
16
  let DddModule = class DddModule {
20
- constructor(explorerService, eventBus, domainCommandBus) {
21
- this.explorerService = explorerService;
22
- this.eventBus = eventBus;
23
- this.domainCommandBus = domainCommandBus;
24
- }
25
- onApplicationBootstrap() {
26
- const { domainEvents, sagas, domainCommands } = this.explorerService.explore();
27
- this.eventBus.register(domainEvents);
28
- this.domainCommandBus.register(domainCommands);
29
- this.eventBus.registerSagas(sagas);
30
- }
17
+ constructor() { }
18
+ onApplicationBootstrap() { }
31
19
  };
32
20
  exports.DddModule = DddModule;
33
21
  exports.DddModule = DddModule = __decorate([
@@ -41,25 +29,9 @@ exports.DddModule = DddModule = __decorate([
41
29
  },
42
30
  inject: [core_1.ModulesContainer],
43
31
  },
44
- ddd_commands_1.DomainCommandBus,
45
- ddd_events_1.DomainEventBus,
46
- ddd_events_1.DomainEventPublisher,
47
- ddd_exceptions_1.UnhandledExceptionDomainBus,
48
- ddd_events_1.DomainEventSerializer,
49
- ddd_events_1.DomainEventDeserializer,
50
- ],
51
- exports: [
52
- ddd_service_1.DddService,
53
- ddd_commands_1.DomainCommandBus,
54
- ddd_events_1.DomainEventBus,
55
- ddd_events_1.DomainEventPublisher,
56
- ddd_exceptions_1.UnhandledExceptionDomainBus,
57
- ddd_events_1.DomainEventSerializer,
58
- ddd_events_1.DomainEventDeserializer,
59
32
  ],
33
+ exports: [ddd_service_1.DddService],
60
34
  }),
61
- __metadata("design:paramtypes", [ddd_service_1.DddService,
62
- ddd_events_1.DomainEventBus,
63
- ddd_commands_1.DomainCommandBus])
35
+ __metadata("design:paramtypes", [])
64
36
  ], DddModule);
65
37
  //# sourceMappingURL=ddd.module.js.map
@@ -0,0 +1,7 @@
1
+ import { ModulesContainer } from "@nestjs/core";
2
+ export declare class DddService {
3
+ private readonly modulesContainer;
4
+ constructor(modulesContainer: ModulesContainer);
5
+ explore(): void;
6
+ }
7
+ //# sourceMappingURL=ddd.service.d.ts.map
@@ -12,27 +12,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DddService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const core_1 = require("@nestjs/core");
15
- const ddd_helpers_1 = require("./ddd-helpers");
16
- const ddd_decorators_1 = require("./ddd-decorators");
17
15
  let DddService = class DddService {
18
16
  constructor(modulesContainer) {
19
17
  this.modulesContainer = modulesContainer;
20
18
  }
21
19
  explore() {
22
- const modules = [...this.modulesContainer.values()];
23
- const domainCommands = this.flatMap(modules, (instance) => this.filterProvider(instance, ddd_decorators_1.DOMAIN_COMMAND_HANDLER_METADATA));
24
- const domainEvents = this.flatMap(modules, (instance) => this.filterProvider(instance, ddd_decorators_1.DOMAIN_EVENTS_HANDLER_METADATA));
25
- const sagas = this.flatMap(modules, (instance) => this.filterProvider(instance, ddd_decorators_1.DOMAIN_SAGA_METADATA));
26
- return { domainCommands, domainEvents, sagas };
27
- }
28
- flatMap(modules, callback) {
29
- return ddd_helpers_1.DomainObjectHelper.flatMap(modules, callback);
30
- }
31
- filterProvider(wrapper, metadataKey) {
32
- return ddd_helpers_1.DomainObjectHelper.filterProvider(wrapper, metadataKey);
33
- }
34
- extractMetadata(instance, metadataKey) {
35
- return ddd_helpers_1.DomainObjectHelper.extractMetadata(instance, metadataKey);
20
+ return;
36
21
  }
37
22
  };
38
23
  exports.DddService = DddService;
@@ -0,0 +1,56 @@
1
+ export type EventMetadata = {
2
+ readonly aggregateId: string;
3
+ readonly aggregateType: string;
4
+ readonly aggregateVersion: number;
5
+ readonly eventVersion: number;
6
+ readonly correlationId?: string;
7
+ readonly causationId?: string;
8
+ readonly userId?: string;
9
+ readonly timestamp: string;
10
+ };
11
+ export declare class EventMetadataBuilder {
12
+ private aggregateId;
13
+ private aggregateType;
14
+ private aggregateVersion;
15
+ private eventVersion;
16
+ private correlationId?;
17
+ private causationId?;
18
+ private userId?;
19
+ private timestamp;
20
+ private constructor();
21
+ static create(aggregateId: string, aggregateType: string, aggregateVersion: number): EventMetadataBuilder;
22
+ withEventVersion(version: number): this;
23
+ withCorrelationId(correlationId: string): this;
24
+ withCausationId(causationId: string): this;
25
+ withUserId(userId: string): this;
26
+ withTimestamp(timestamp: Date | string): this;
27
+ build(): EventMetadata;
28
+ }
29
+ export interface ISerializable {
30
+ toJSON(): Record<string, unknown>;
31
+ }
32
+ export declare abstract class DomainEvent implements ISerializable {
33
+ readonly eventId: string;
34
+ readonly occurredOn: Date;
35
+ readonly eventType: string;
36
+ readonly eventVersion: number;
37
+ readonly metadata: EventMetadata;
38
+ constructor(metadata: EventMetadata, occurredOn?: Date);
39
+ private validateMetadata;
40
+ toJSON(): Record<string, unknown>;
41
+ protected getEventData(): Record<string, unknown>;
42
+ protected static extractMetadata(json: Record<string, unknown>): EventMetadata;
43
+ protected static extractEventData(json: Record<string, unknown>): Record<string, unknown>;
44
+ protected static extractOccurredOn(json: Record<string, unknown>): Date;
45
+ get aggregateId(): string;
46
+ get aggregateType(): string;
47
+ get aggregateVersion(): number;
48
+ get hasCorrelationId(): boolean;
49
+ get hasCausationId(): boolean;
50
+ get hasUserId(): boolean;
51
+ equals(other: DomainEvent): boolean;
52
+ belongsToAggregate(aggregateId: string): boolean;
53
+ isAggregateType(aggregateType: string): boolean;
54
+ }
55
+ export declare const AbstractDomainEvent: typeof DomainEvent;
56
+ //# sourceMappingURL=domain-event.d.ts.map
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractDomainEvent = exports.DomainEvent = exports.EventMetadataBuilder = void 0;
4
+ const uuid_1 = require("uuid");
5
+ const domain_exception_1 = require("./exceptions/domain.exception");
6
+ class EventMetadataBuilder {
7
+ constructor(aggregateId, aggregateType, aggregateVersion) {
8
+ this.eventVersion = 1;
9
+ this.aggregateId = aggregateId;
10
+ this.aggregateType = aggregateType;
11
+ this.aggregateVersion = aggregateVersion;
12
+ this.timestamp = new Date().toISOString();
13
+ }
14
+ static create(aggregateId, aggregateType, aggregateVersion) {
15
+ if (!aggregateId || !aggregateType) {
16
+ throw new domain_exception_1.ArgumentNullException('aggregateId and aggregateType are required');
17
+ }
18
+ if (aggregateVersion < 0) {
19
+ throw new Error('aggregateVersion must be non-negative');
20
+ }
21
+ return new EventMetadataBuilder(aggregateId, aggregateType, aggregateVersion);
22
+ }
23
+ withEventVersion(version) {
24
+ if (version < 1) {
25
+ throw new Error('eventVersion must be at least 1');
26
+ }
27
+ this.eventVersion = version;
28
+ return this;
29
+ }
30
+ withCorrelationId(correlationId) {
31
+ this.correlationId = correlationId;
32
+ return this;
33
+ }
34
+ withCausationId(causationId) {
35
+ this.causationId = causationId;
36
+ return this;
37
+ }
38
+ withUserId(userId) {
39
+ this.userId = userId;
40
+ return this;
41
+ }
42
+ withTimestamp(timestamp) {
43
+ this.timestamp =
44
+ timestamp instanceof Date ? timestamp.toISOString() : timestamp;
45
+ return this;
46
+ }
47
+ build() {
48
+ return {
49
+ aggregateId: this.aggregateId,
50
+ aggregateType: this.aggregateType,
51
+ aggregateVersion: this.aggregateVersion,
52
+ eventVersion: this.eventVersion,
53
+ correlationId: this.correlationId,
54
+ causationId: this.causationId,
55
+ userId: this.userId,
56
+ timestamp: this.timestamp,
57
+ };
58
+ }
59
+ }
60
+ exports.EventMetadataBuilder = EventMetadataBuilder;
61
+ class DomainEvent {
62
+ constructor(metadata, occurredOn) {
63
+ if (!metadata) {
64
+ throw new domain_exception_1.ArgumentNullException('metadata');
65
+ }
66
+ this.validateMetadata(metadata);
67
+ this.eventId = (0, uuid_1.v4)();
68
+ this.occurredOn = occurredOn || new Date();
69
+ this.eventType = this.constructor.name;
70
+ this.eventVersion = metadata.eventVersion;
71
+ this.metadata = {
72
+ ...metadata,
73
+ timestamp: metadata.timestamp || this.occurredOn.toISOString(),
74
+ };
75
+ }
76
+ validateMetadata(metadata) {
77
+ if (!metadata.aggregateId) {
78
+ throw new Error('EventMetadata.aggregateId is required');
79
+ }
80
+ if (!metadata.aggregateType) {
81
+ throw new Error('EventMetadata.aggregateType is required');
82
+ }
83
+ if (metadata.aggregateVersion < 0) {
84
+ throw new Error('EventMetadata.aggregateVersion must be non-negative');
85
+ }
86
+ if (metadata.eventVersion < 1) {
87
+ throw new Error('EventMetadata.eventVersion must be at least 1');
88
+ }
89
+ }
90
+ toJSON() {
91
+ return {
92
+ eventId: this.eventId,
93
+ eventType: this.eventType,
94
+ eventVersion: this.eventVersion,
95
+ occurredOn: this.occurredOn.toISOString(),
96
+ metadata: this.metadata,
97
+ data: this.getEventData(),
98
+ };
99
+ }
100
+ getEventData() {
101
+ const data = {};
102
+ const excludeKeys = new Set([
103
+ 'eventId',
104
+ 'occurredOn',
105
+ 'eventType',
106
+ 'eventVersion',
107
+ 'metadata',
108
+ 'toJSON',
109
+ 'fromJSON',
110
+ 'getEventData',
111
+ ]);
112
+ Object.keys(this).forEach((key) => {
113
+ if (!excludeKeys.has(key)) {
114
+ const value = this[key];
115
+ if (value instanceof Date) {
116
+ data[key] = value.toISOString();
117
+ }
118
+ else {
119
+ data[key] = value;
120
+ }
121
+ }
122
+ });
123
+ return data;
124
+ }
125
+ static extractMetadata(json) {
126
+ const metadata = json.metadata;
127
+ if (!metadata) {
128
+ throw new Error('Event JSON missing metadata field');
129
+ }
130
+ return metadata;
131
+ }
132
+ static extractEventData(json) {
133
+ return json.data || {};
134
+ }
135
+ static extractOccurredOn(json) {
136
+ const occurredOn = json.occurredOn;
137
+ if (!occurredOn) {
138
+ throw new Error('Event JSON missing occurredOn field');
139
+ }
140
+ return new Date(occurredOn);
141
+ }
142
+ get aggregateId() {
143
+ return this.metadata.aggregateId;
144
+ }
145
+ get aggregateType() {
146
+ return this.metadata.aggregateType;
147
+ }
148
+ get aggregateVersion() {
149
+ return this.metadata.aggregateVersion;
150
+ }
151
+ get hasCorrelationId() {
152
+ return !!this.metadata.correlationId;
153
+ }
154
+ get hasCausationId() {
155
+ return !!this.metadata.causationId;
156
+ }
157
+ get hasUserId() {
158
+ return !!this.metadata.userId;
159
+ }
160
+ equals(other) {
161
+ if (!other) {
162
+ return false;
163
+ }
164
+ return this.eventId === other.eventId;
165
+ }
166
+ belongsToAggregate(aggregateId) {
167
+ return this.metadata.aggregateId === aggregateId;
168
+ }
169
+ isAggregateType(aggregateType) {
170
+ return this.metadata.aggregateType === aggregateType;
171
+ }
172
+ }
173
+ exports.DomainEvent = DomainEvent;
174
+ exports.AbstractDomainEvent = DomainEvent;
175
+ //# sourceMappingURL=domain-event.js.map
package/dist/enum.d.ts ADDED
@@ -0,0 +1,28 @@
1
+ export declare abstract class DddEnum {
2
+ readonly id: number;
3
+ readonly name: string;
4
+ private static readonly _cache;
5
+ protected constructor(id: number, name: string);
6
+ private validateId;
7
+ private validateName;
8
+ toString(): string;
9
+ static getAll<T extends DddEnum>(): T[];
10
+ equals(other: unknown): boolean;
11
+ static absoluteDifference(firstValue: DddEnum, secondValue: DddEnum): number;
12
+ static fromValue<T extends DddEnum>(value: number): T | undefined;
13
+ static fromName<T extends DddEnum>(name: string): T | undefined;
14
+ static fromNameIgnoreCase<T extends DddEnum>(name: string): T | undefined;
15
+ static fromDisplayName<T extends DddEnum>(displayName: string): T | undefined;
16
+ compareTo(other: DddEnum): number;
17
+ isLessThan(other: DddEnum): boolean;
18
+ isLessThanOrEqual(other: DddEnum): boolean;
19
+ isGreaterThan(other: DddEnum): boolean;
20
+ isGreaterThanOrEqual(other: DddEnum): boolean;
21
+ static isDefined(value: number): boolean;
22
+ static getMinValue<T extends DddEnum>(): T | undefined;
23
+ static getMaxValue<T extends DddEnum>(): T | undefined;
24
+ isBetween(min: DddEnum, max: DddEnum): boolean;
25
+ static areEqual(left: DddEnum | null | undefined, right: DddEnum | null | undefined): boolean;
26
+ static areNotEqual(left: DddEnum | null | undefined, right: DddEnum | null | undefined): boolean;
27
+ }
28
+ //# sourceMappingURL=enum.d.ts.map