@nestjslatam/ddd-lib 1.0.50 → 1.0.52

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 +51 -25
  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,5 @@
1
+ export { AggregateIdentity } from './aggregate-identity';
2
+ export { AggregateEquality } from './aggregate-equality';
3
+ export { AggregateValidationOrchestrator } from './aggregate-validation-orchestrator';
4
+ export { AggregateSerializer } from './aggregate-serializer';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AggregateSerializer = exports.AggregateValidationOrchestrator = exports.AggregateEquality = exports.AggregateIdentity = void 0;
4
+ var aggregate_identity_1 = require("./aggregate-identity");
5
+ Object.defineProperty(exports, "AggregateIdentity", { enumerable: true, get: function () { return aggregate_identity_1.AggregateIdentity; } });
6
+ var aggregate_equality_1 = require("./aggregate-equality");
7
+ Object.defineProperty(exports, "AggregateEquality", { enumerable: true, get: function () { return aggregate_equality_1.AggregateEquality; } });
8
+ var aggregate_validation_orchestrator_1 = require("./aggregate-validation-orchestrator");
9
+ Object.defineProperty(exports, "AggregateValidationOrchestrator", { enumerable: true, get: function () { return aggregate_validation_orchestrator_1.AggregateValidationOrchestrator; } });
10
+ var aggregate_serializer_1 = require("./aggregate-serializer");
11
+ Object.defineProperty(exports, "AggregateSerializer", { enumerable: true, get: function () { return aggregate_serializer_1.AggregateSerializer; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ export declare class BrokenRule {
2
+ readonly property: string;
3
+ readonly message: string;
4
+ readonly severity: 'Error' | 'Warning';
5
+ constructor(property: string, message: string, severity: 'Error' | 'Warning');
6
+ }
7
+ //# sourceMappingURL=broken-rule.d.ts.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrokenRule = void 0;
4
+ class BrokenRule {
5
+ constructor(property, message, severity) {
6
+ this.property = property;
7
+ this.message = message;
8
+ this.severity = severity;
9
+ this.property = property;
10
+ this.message = message;
11
+ this.severity = severity;
12
+ }
13
+ }
14
+ exports.BrokenRule = BrokenRule;
15
+ //# sourceMappingURL=broken-rule.js.map
@@ -0,0 +1,6 @@
1
+ import { BrokenRule } from './broken-rule';
2
+ export declare class BrokenRulesExtension {
3
+ private static readonly BrokenRulesPropertyName;
4
+ static getPropertiesBrokenRules<T extends object>(instance: T, properties: Array<keyof T>): ReadonlyArray<BrokenRule>;
5
+ }
6
+ //# sourceMappingURL=broken-rules-extension.d.ts.map
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrokenRulesExtension = void 0;
4
+ class BrokenRulesExtension {
5
+ static getPropertiesBrokenRules(instance, properties) {
6
+ if (instance === null || instance === undefined) {
7
+ throw new Error('ArgumentNullException: instance cannot be null or undefined');
8
+ }
9
+ if (!properties) {
10
+ throw new Error('ArgumentNullException: properties cannot be null');
11
+ }
12
+ const result = [];
13
+ for (const key of properties) {
14
+ const valueObject = instance[key];
15
+ if (valueObject === null || valueObject === undefined) {
16
+ continue;
17
+ }
18
+ const brokenRulesManager = valueObject[this.BrokenRulesPropertyName];
19
+ if (brokenRulesManager &&
20
+ typeof brokenRulesManager.getBrokenRules === 'function') {
21
+ const brokenRules = brokenRulesManager.getBrokenRules();
22
+ if (brokenRules.length > 0) {
23
+ result.push(...brokenRules);
24
+ }
25
+ }
26
+ }
27
+ return Object.freeze(result);
28
+ }
29
+ }
30
+ exports.BrokenRulesExtension = BrokenRulesExtension;
31
+ BrokenRulesExtension.BrokenRulesPropertyName = 'brokenRules';
32
+ //# sourceMappingURL=broken-rules-extension.js.map
@@ -0,0 +1,4 @@
1
+ export * from './broken-rule';
2
+ export * from './broken-rules-extension';
3
+ export * from './property-change';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -14,6 +14,7 @@ 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("./broken-rule-collection"), exports);
18
17
  __exportStar(require("./broken-rule"), exports);
18
+ __exportStar(require("./broken-rules-extension"), exports);
19
+ __exportStar(require("./property-change"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,5 @@
1
+ export * from './notify-property-changed.base';
2
+ export * from './notify-property-changed.context';
3
+ export * from './notify-property-changed.context-args';
4
+ export * from './reflection-type-extensions';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./notify-property-changed.base"), exports);
18
+ __exportStar(require("./notify-property-changed.context"), exports);
19
+ __exportStar(require("./notify-property-changed.context-args"), exports);
20
+ __exportStar(require("./reflection-type-extensions"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,16 @@
1
+ import { NotifyPropertyChangedContextArgs } from './notify-property-changed.context-args';
2
+ export type NotifyPropertyChangedHandler = (sender: AbstractNotifyPropertyChanged, e: NotifyPropertyChangedContextArgs) => void;
3
+ export declare abstract class AbstractNotifyPropertyChanged {
4
+ private readonly properties;
5
+ protected isCallbackInvokingEnabled: boolean;
6
+ protected isEventInvokingEnabled: boolean;
7
+ onPropertyChanged?: (propertyName: string) => void;
8
+ protected constructor();
9
+ protected registerProperty(name: string, type: any, defaultValue: any, handler?: NotifyPropertyChangedHandler): void;
10
+ registerPropertyChangedCallback(propertyName: string, handler: NotifyPropertyChangedHandler): void;
11
+ protected getValuePropertyChanged(propertyName: string): any;
12
+ protected setValuePropertyChanged(value: any, propertyName: string, force?: boolean): void;
13
+ private getPropertyContext;
14
+ private static validateValueForType;
15
+ }
16
+ //# sourceMappingURL=notify-property-changed.base.d.ts.map
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AbstractNotifyPropertyChanged = void 0;
4
+ const notify_property_changed_context_1 = require("./notify-property-changed.context");
5
+ const notify_property_changed_context_args_1 = require("./notify-property-changed.context-args");
6
+ const reflection_type_extensions_1 = require("./reflection-type-extensions");
7
+ class AbstractNotifyPropertyChanged {
8
+ constructor() {
9
+ this.properties = new Map();
10
+ this.isCallbackInvokingEnabled = true;
11
+ this.isEventInvokingEnabled = true;
12
+ }
13
+ registerProperty(name, type, defaultValue, handler) {
14
+ if (this.properties.has(name)) {
15
+ throw new Error(`This class already contains a registered property called '${name}'.`);
16
+ }
17
+ AbstractNotifyPropertyChanged.validateValueForType(defaultValue, type);
18
+ this.properties.set(name, new notify_property_changed_context_1.NotifyPropertyChangedContext(defaultValue, type, handler));
19
+ }
20
+ registerPropertyChangedCallback(propertyName, handler) {
21
+ const context = this.getPropertyContext(propertyName);
22
+ context.addCallback(handler);
23
+ }
24
+ getValuePropertyChanged(propertyName) {
25
+ return this.getPropertyContext(propertyName).value;
26
+ }
27
+ setValuePropertyChanged(value, propertyName, force = false) {
28
+ const context = this.getPropertyContext(propertyName);
29
+ AbstractNotifyPropertyChanged.validateValueForType(value, context.type);
30
+ const oldValue = context.value;
31
+ const valuesEqual = oldValue === value;
32
+ if (force || !valuesEqual) {
33
+ context.value = value;
34
+ if (this.isCallbackInvokingEnabled) {
35
+ context.invokePropertyChangedCallback(this, new notify_property_changed_context_args_1.NotifyPropertyChangedContextArgs(oldValue, value));
36
+ }
37
+ if (this.isEventInvokingEnabled && this.onPropertyChanged) {
38
+ this.onPropertyChanged(propertyName);
39
+ }
40
+ }
41
+ }
42
+ getPropertyContext(propertyName) {
43
+ const context = this.properties.get(propertyName);
44
+ if (!context) {
45
+ throw new Error(`No hay una propiedad registrada llamada '${propertyName}'.`);
46
+ }
47
+ return context;
48
+ }
49
+ static validateValueForType(value, type) {
50
+ if (value === null || value === undefined) {
51
+ const isValueType = reflection_type_extensions_1.ReflectionTypeExtensions.getIsValueType(type);
52
+ if (isValueType) {
53
+ throw new Error(`El tipo '${type.name || type}' no es un tipo nulable.`);
54
+ }
55
+ return;
56
+ }
57
+ const sourceType = value.constructor;
58
+ if (!reflection_type_extensions_1.ReflectionTypeExtensions.getIsAssignableFrom(type, sourceType)) {
59
+ throw new Error(`El valor especificado no se puede asignar a una propiedad de tipo (${type.name || type})`);
60
+ }
61
+ }
62
+ }
63
+ exports.AbstractNotifyPropertyChanged = AbstractNotifyPropertyChanged;
64
+ //# sourceMappingURL=notify-property-changed.base.js.map
@@ -0,0 +1,7 @@
1
+ export declare class NotifyPropertyChangedContextArgs {
2
+ readonly previousValue: any;
3
+ readonly newValue: any;
4
+ handled: boolean;
5
+ constructor(previousValue: any, newValue: any);
6
+ }
7
+ //# sourceMappingURL=notify-property-changed.context-args.d.ts.map
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotifyPropertyChangedContextArgs = void 0;
4
+ class NotifyPropertyChangedContextArgs {
5
+ constructor(previousValue, newValue) {
6
+ this.previousValue = previousValue;
7
+ this.newValue = newValue;
8
+ this.handled = false;
9
+ }
10
+ }
11
+ exports.NotifyPropertyChangedContextArgs = NotifyPropertyChangedContextArgs;
12
+ //# sourceMappingURL=notify-property-changed.context-args.js.map
@@ -0,0 +1,11 @@
1
+ import { NotifyPropertyChangedContextArgs } from './notify-property-changed.context-args';
2
+ import { AbstractNotifyPropertyChanged, NotifyPropertyChangedHandler } from './notify-property-changed.base';
3
+ export declare class NotifyPropertyChangedContext {
4
+ value: any;
5
+ readonly type: any;
6
+ private readonly callbacks;
7
+ constructor(defaultValue: any, type: any, handler?: NotifyPropertyChangedHandler);
8
+ addCallback(handler: NotifyPropertyChangedHandler): void;
9
+ invokePropertyChangedCallback(sender: AbstractNotifyPropertyChanged, e: NotifyPropertyChangedContextArgs): void;
10
+ }
11
+ //# sourceMappingURL=notify-property-changed.context.d.ts.map
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotifyPropertyChangedContext = void 0;
4
+ class NotifyPropertyChangedContext {
5
+ constructor(defaultValue, type, handler) {
6
+ this.callbacks = new Set();
7
+ this.value = defaultValue;
8
+ this.type = type;
9
+ if (handler) {
10
+ this.callbacks.add(handler);
11
+ }
12
+ }
13
+ addCallback(handler) {
14
+ this.callbacks.add(handler);
15
+ }
16
+ invokePropertyChangedCallback(sender, e) {
17
+ this.callbacks.forEach((callback) => callback(sender, e));
18
+ }
19
+ }
20
+ exports.NotifyPropertyChangedContext = NotifyPropertyChangedContext;
21
+ //# sourceMappingURL=notify-property-changed.context.js.map
@@ -0,0 +1,5 @@
1
+ export declare class ReflectionTypeExtensions {
2
+ static getIsValueType(type: any): boolean;
3
+ static getIsAssignableFrom(targetType: any, sourceType: any): boolean;
4
+ }
5
+ //# sourceMappingURL=reflection-type-extensions.d.ts.map
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReflectionTypeExtensions = void 0;
4
+ class ReflectionTypeExtensions {
5
+ static getIsValueType(type) {
6
+ if (!type)
7
+ return false;
8
+ const valueTypes = [String, Number, Boolean, Symbol, BigInt];
9
+ return valueTypes.includes(type);
10
+ }
11
+ static getIsAssignableFrom(targetType, sourceType) {
12
+ if (!targetType || !sourceType)
13
+ return false;
14
+ if (targetType === sourceType)
15
+ return true;
16
+ if (typeof sourceType === 'function' && typeof targetType === 'function') {
17
+ return sourceType.prototype instanceof targetType;
18
+ }
19
+ return false;
20
+ }
21
+ }
22
+ exports.ReflectionTypeExtensions = ReflectionTypeExtensions;
23
+ //# sourceMappingURL=reflection-type-extensions.js.map
@@ -0,0 +1,2 @@
1
+ export * from './impl';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,6 @@
1
+ export * from './tracking-state';
2
+ export * from './validator-rules';
3
+ export * from './business-rules';
4
+ export * from './repositories';
5
+ export * from './aggregate';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -14,9 +14,9 @@ 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("./broken-rules"), exports);
18
- __exportStar(require("./interfaces"), exports);
19
- __exportStar(require("../ddd-validators"), exports);
20
- __exportStar(require("../ddd-validators"), exports);
21
- __exportStar(require("./impl"), exports);
17
+ __exportStar(require("./tracking-state"), exports);
18
+ __exportStar(require("./validator-rules"), exports);
19
+ __exportStar(require("./business-rules"), exports);
20
+ __exportStar(require("./repositories"), exports);
21
+ __exportStar(require("./aggregate"), exports);
22
22
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ export * from './repository-read.interface';
2
+ export * from './repository-write.interface';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./repository-read.interface"), exports);
18
+ __exportStar(require("./repository-write.interface"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ import { DddAggregateRoot } from "../../aggregate-root";
2
+ import { Primitives } from "../tracking-state";
3
+ export interface IDomainReadRepository<TKey extends Primitives, TDomain extends DddAggregateRoot<any, any>> {
4
+ find(): Promise<TDomain[]>;
5
+ findById(id: TKey): Promise<TDomain>;
6
+ }
7
+ //# sourceMappingURL=repository-read.interface.d.ts.map
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=command-handler.interface.js.map
3
+ //# sourceMappingURL=repository-read.interface.js.map
@@ -1,8 +1,9 @@
1
- import { DomainAggregateRoot } from '../../ddd-aggregate-root';
2
- import { DomainEntity, Primitives } from '../../ddd-core/ddd-base-classes';
3
- export interface IDomainWriteRepository<TKey extends Primitives, TDomain extends DomainAggregateRoot<any> | DomainEntity<any>> {
1
+ import { DddAggregateRoot } from "../../aggregate-root";
2
+ import { Primitives } from "../tracking-state";
3
+ export interface IDomainWriteRepository<TKey extends Primitives, TDomain extends DddAggregateRoot<any, any>> {
4
4
  insert(entity: TDomain): Promise<void>;
5
5
  insertBatch(entities: TDomain[]): Promise<void>;
6
6
  update(id: TKey, entity: TDomain): Promise<void>;
7
7
  delete(id: TKey): Promise<void>;
8
8
  }
9
+ //# sourceMappingURL=repository-write.interface.d.ts.map
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=command-metadata.interface.js.map
3
+ //# sourceMappingURL=repository-write.interface.js.map
@@ -0,0 +1,4 @@
1
+ export * from './tracking-props';
2
+ export * from './nested-property-change-detector';
3
+ export * from './tracking-state-transition';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -14,7 +14,7 @@ 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("./observable-bus"), exports);
18
- __exportStar(require("./of-type"), exports);
19
17
  __exportStar(require("./tracking-props"), exports);
18
+ __exportStar(require("./nested-property-change-detector"), exports);
19
+ __exportStar(require("./tracking-state-transition"), exports);
20
20
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,8 @@
1
+ import { IChangeDetector, ITrackingStateManager } from '../interfaces';
2
+ export declare class NestedPropertyChangeDetector implements IChangeDetector {
3
+ private static readonly TrackingKeyName;
4
+ private validateProps;
5
+ private processTrackingValue;
6
+ detectChanges<TProp>(props: TProp, trackingStateManager: ITrackingStateManager): ITrackingStateManager;
7
+ }
8
+ //# sourceMappingURL=nested-property-change-detector.d.ts.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NestedPropertyChangeDetector = void 0;
4
+ class NestedPropertyChangeDetector {
5
+ validateProps(props) {
6
+ if (!props) {
7
+ throw new Error('ArgumentNullException: props cannot be null');
8
+ }
9
+ }
10
+ processTrackingValue(value, trackingStateManager) {
11
+ if (value === null || typeof value !== 'object') {
12
+ return;
13
+ }
14
+ const trackingValue = value[NestedPropertyChangeDetector.TrackingKeyName];
15
+ if (!trackingValue) {
16
+ return;
17
+ }
18
+ if (trackingValue.isDirty)
19
+ trackingStateManager.markAsDirty();
20
+ if (trackingValue.isNew)
21
+ trackingStateManager.markAsNew();
22
+ if (trackingValue.isSelfDeleted)
23
+ trackingStateManager.markAsSelfDeleted();
24
+ if (trackingValue.isDeleted)
25
+ trackingStateManager.markAsDeleted();
26
+ }
27
+ detectChanges(props, trackingStateManager) {
28
+ this.validateProps(props);
29
+ trackingStateManager.markAsClean();
30
+ Object.keys(props).forEach((key) => {
31
+ this.processTrackingValue(props[key], trackingStateManager);
32
+ });
33
+ return trackingStateManager;
34
+ }
35
+ }
36
+ exports.NestedPropertyChangeDetector = NestedPropertyChangeDetector;
37
+ NestedPropertyChangeDetector.TrackingKeyName = 'Tracking';
38
+ //# sourceMappingURL=nested-property-change-detector.js.map
@@ -3,7 +3,10 @@ export declare class TrackingProps implements ITrackingProps {
3
3
  isDirty: boolean;
4
4
  isNew: boolean;
5
5
  isDeleted: boolean;
6
+ isSelfDeleted: boolean;
6
7
  static setNew(): TrackingProps;
7
8
  static setDirty(): TrackingProps;
8
9
  static setDeleted(): TrackingProps;
10
+ static setSelfDeleted(): TrackingProps;
9
11
  }
12
+ //# sourceMappingURL=tracking-props.d.ts.map
@@ -7,6 +7,7 @@ class TrackingProps {
7
7
  isDirty: false,
8
8
  isNew: true,
9
9
  isDeleted: false,
10
+ isSelfDeleted: false,
10
11
  };
11
12
  }
12
13
  static setDirty() {
@@ -14,6 +15,7 @@ class TrackingProps {
14
15
  isDirty: true,
15
16
  isNew: false,
16
17
  isDeleted: false,
18
+ isSelfDeleted: false,
17
19
  };
18
20
  }
19
21
  static setDeleted() {
@@ -21,6 +23,15 @@ class TrackingProps {
21
23
  isDirty: false,
22
24
  isNew: false,
23
25
  isDeleted: true,
26
+ isSelfDeleted: false,
27
+ };
28
+ }
29
+ static setSelfDeleted() {
30
+ return {
31
+ isDirty: false,
32
+ isNew: false,
33
+ isDeleted: false,
34
+ isSelfDeleted: true,
24
35
  };
25
36
  }
26
37
  }
@@ -0,0 +1,9 @@
1
+ import { ITrackingStateTransitions } from '../interfaces/itracking-state-transitions';
2
+ export declare class TrackingStateTransition {
3
+ private static applyTransition;
4
+ static toDirty(manager: ITrackingStateTransitions): void;
5
+ static toNew(manager: ITrackingStateTransitions): void;
6
+ static toSelfDeleted(manager: ITrackingStateTransitions): void;
7
+ static toDeleted(manager: ITrackingStateTransitions): void;
8
+ }
9
+ //# sourceMappingURL=tracking-state-transition.d.ts.map
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrackingStateTransition = void 0;
4
+ class TrackingStateTransition {
5
+ static applyTransition(manager, stateUpdate) {
6
+ manager.setDirty(false);
7
+ manager.setNew(false);
8
+ manager.setSelfDeleted(false);
9
+ manager.setDeleted(false);
10
+ stateUpdate(manager);
11
+ }
12
+ static toDirty(manager) {
13
+ this.applyTransition(manager, (m) => {
14
+ m.setDirty(true);
15
+ });
16
+ }
17
+ static toNew(manager) {
18
+ this.applyTransition(manager, (m) => {
19
+ m.setNew(true);
20
+ });
21
+ }
22
+ static toSelfDeleted(manager) {
23
+ this.applyTransition(manager, (m) => {
24
+ m.setSelfDeleted(true);
25
+ });
26
+ }
27
+ static toDeleted(manager) {
28
+ this.applyTransition(manager, (m) => {
29
+ m.setDeleted(true);
30
+ });
31
+ }
32
+ }
33
+ exports.TrackingStateTransition = TrackingStateTransition;
34
+ //# sourceMappingURL=tracking-state-transition.js.map
@@ -1,2 +1,3 @@
1
1
  export * from './interfaces';
2
2
  export * from './impl';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { ITrackingStateManager } from './itracking-state-manager';
2
+ export interface IProps {
3
+ [key: string]: any;
4
+ }
5
+ export interface IChangeDetector {
6
+ detectChanges<TProp extends IProps>(props: TProp, trackingStateManager: ITrackingStateManager): ITrackingStateManager;
7
+ }
8
+ //# sourceMappingURL=ichange-detector.d.ts.map
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=command.interface.js.map
3
+ //# sourceMappingURL=ichange-detector.js.map
@@ -0,0 +1,5 @@
1
+ export type Primitives = string | number | boolean | Date;
2
+ export interface IDddPrimitive<T> {
3
+ value: T;
4
+ }
5
+ //# sourceMappingURL=idomain-primitive.d.ts.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=idomain-primitive.js.map
@@ -0,0 +1,6 @@
1
+ export * from './itracking-props';
2
+ export * from './idomain-primitive';
3
+ export * from './itracking-state-manager';
4
+ export * from './itracking-state-transitions';
5
+ export * from './ichange-detector';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./itracking-props"), exports);
18
+ __exportStar(require("./idomain-primitive"), exports);
19
+ __exportStar(require("./itracking-state-manager"), exports);
20
+ __exportStar(require("./itracking-state-transitions"), exports);
21
+ __exportStar(require("./ichange-detector"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -2,4 +2,6 @@ export interface ITrackingProps {
2
2
  isDirty: boolean;
3
3
  isNew: boolean;
4
4
  isDeleted: boolean;
5
+ isSelfDeleted: boolean;
5
6
  }
7
+ //# sourceMappingURL=itracking-props.d.ts.map
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=saga.interface.js.map
3
+ //# sourceMappingURL=itracking-props.js.map