@woltz/rich-domain 1.3.2 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (373) hide show
  1. package/README.md +21 -0
  2. package/dist/{aggregate-changes.d.ts → cjs/aggregate-changes.d.ts} +2 -2
  3. package/dist/cjs/aggregate-changes.d.ts.map +1 -0
  4. package/dist/cjs/aggregate-changes.js +365 -0
  5. package/dist/cjs/aggregate-changes.js.map +1 -0
  6. package/dist/{base-entity.d.ts → cjs/base-entity.d.ts} +5 -5
  7. package/dist/cjs/base-entity.d.ts.map +1 -0
  8. package/dist/cjs/base-entity.js +328 -0
  9. package/dist/cjs/base-entity.js.map +1 -0
  10. package/dist/{change-tracker.d.ts → cjs/change-tracker.d.ts} +2 -2
  11. package/dist/cjs/change-tracker.d.ts.map +1 -0
  12. package/dist/cjs/change-tracker.js +789 -0
  13. package/dist/cjs/change-tracker.js.map +1 -0
  14. package/dist/cjs/constants.d.ts.map +1 -0
  15. package/dist/cjs/constants.js +74 -0
  16. package/dist/cjs/constants.js.map +1 -0
  17. package/dist/{criteria.d.ts → cjs/criteria.d.ts} +1 -1
  18. package/dist/cjs/criteria.d.ts.map +1 -0
  19. package/dist/cjs/criteria.js +335 -0
  20. package/dist/{criteria.js.map → cjs/criteria.js.map} +1 -1
  21. package/dist/cjs/crypto.d.ts.map +1 -0
  22. package/dist/cjs/crypto.js +32 -0
  23. package/dist/cjs/crypto.js.map +1 -0
  24. package/dist/cjs/domain-event-bus.d.ts.map +1 -0
  25. package/dist/cjs/domain-event-bus.js +108 -0
  26. package/dist/cjs/domain-event-bus.js.map +1 -0
  27. package/dist/{domain-event.d.ts → cjs/domain-event.d.ts} +1 -1
  28. package/dist/cjs/domain-event.d.ts.map +1 -0
  29. package/dist/cjs/domain-event.js +47 -0
  30. package/dist/cjs/domain-event.js.map +1 -0
  31. package/dist/{entity-changes.d.ts → cjs/entity-changes.d.ts} +1 -1
  32. package/dist/cjs/entity-changes.d.ts.map +1 -0
  33. package/dist/cjs/entity-changes.js +136 -0
  34. package/dist/cjs/entity-changes.js.map +1 -0
  35. package/dist/{entity-schema-registry.d.ts → cjs/entity-schema-registry.d.ts} +2 -2
  36. package/dist/cjs/entity-schema-registry.d.ts.map +1 -0
  37. package/dist/cjs/entity-schema-registry.js +370 -0
  38. package/dist/cjs/entity-schema-registry.js.map +1 -0
  39. package/dist/{entity.d.ts → cjs/entity.d.ts} +2 -2
  40. package/dist/cjs/entity.d.ts.map +1 -0
  41. package/dist/cjs/entity.js +11 -0
  42. package/dist/cjs/entity.js.map +1 -0
  43. package/dist/cjs/exceptions.d.ts.map +1 -0
  44. package/dist/cjs/exceptions.js +365 -0
  45. package/dist/cjs/exceptions.js.map +1 -0
  46. package/dist/cjs/id.d.ts.map +1 -0
  47. package/dist/cjs/id.js +80 -0
  48. package/dist/cjs/id.js.map +1 -0
  49. package/dist/{index.d.ts → cjs/index.d.ts} +16 -16
  50. package/dist/cjs/index.d.ts.map +1 -0
  51. package/dist/cjs/index.js +47 -0
  52. package/dist/cjs/index.js.map +1 -0
  53. package/dist/cjs/mapper.d.ts.map +1 -0
  54. package/dist/cjs/mapper.js +7 -0
  55. package/dist/cjs/mapper.js.map +1 -0
  56. package/dist/{paginated-result.d.ts → cjs/paginated-result.d.ts} +2 -2
  57. package/dist/cjs/paginated-result.d.ts.map +1 -0
  58. package/dist/cjs/paginated-result.js +194 -0
  59. package/dist/cjs/paginated-result.js.map +1 -0
  60. package/dist/{repository → cjs/repository}/base-repository.d.ts +6 -6
  61. package/dist/cjs/repository/base-repository.d.ts.map +1 -0
  62. package/dist/cjs/repository/base-repository.js +16 -0
  63. package/dist/cjs/repository/base-repository.js.map +1 -0
  64. package/dist/cjs/repository/index.d.ts +4 -0
  65. package/dist/cjs/repository/index.d.ts.map +1 -0
  66. package/dist/cjs/repository/index.js +24 -0
  67. package/dist/cjs/repository/index.js.map +1 -0
  68. package/dist/{repository → cjs/repository}/unit-of-work.d.ts +1 -1
  69. package/dist/cjs/repository/unit-of-work.d.ts.map +1 -0
  70. package/dist/cjs/repository/unit-of-work.js +60 -0
  71. package/dist/cjs/repository/unit-of-work.js.map +1 -0
  72. package/dist/cjs/types/change-tracker.d.ts +226 -0
  73. package/dist/cjs/types/change-tracker.d.ts.map +1 -0
  74. package/dist/cjs/types/change-tracker.js +3 -0
  75. package/dist/cjs/types/change-tracker.js.map +1 -0
  76. package/dist/cjs/types/criteria.d.ts +60 -0
  77. package/dist/cjs/types/criteria.d.ts.map +1 -0
  78. package/dist/cjs/types/criteria.js +20 -0
  79. package/dist/cjs/types/criteria.js.map +1 -0
  80. package/dist/cjs/types/domain-event.d.ts +32 -0
  81. package/dist/cjs/types/domain-event.d.ts.map +1 -0
  82. package/dist/cjs/types/domain-event.js +3 -0
  83. package/dist/{types → cjs/types}/domain-event.js.map +1 -1
  84. package/dist/{types → cjs/types}/domain.d.ts +2 -2
  85. package/dist/cjs/types/domain.d.ts.map +1 -0
  86. package/dist/cjs/types/domain.js +3 -0
  87. package/dist/{types → cjs/types}/domain.js.map +1 -1
  88. package/dist/cjs/types/index.d.ts +8 -0
  89. package/dist/cjs/types/index.d.ts.map +1 -0
  90. package/dist/cjs/types/index.js +24 -0
  91. package/dist/cjs/types/index.js.map +1 -0
  92. package/dist/cjs/types/standard-schema.d.ts.map +1 -0
  93. package/dist/cjs/types/standard-schema.js +3 -0
  94. package/dist/cjs/types/standard-schema.js.map +1 -0
  95. package/dist/{types → cjs/types}/unit-of-work.d.ts +2 -2
  96. package/dist/cjs/types/unit-of-work.d.ts.map +1 -0
  97. package/dist/cjs/types/unit-of-work.js +3 -0
  98. package/dist/{types → cjs/types}/unit-of-work.js.map +1 -1
  99. package/dist/{types → cjs/types}/utils.d.ts +1 -1
  100. package/dist/cjs/types/utils.d.ts.map +1 -0
  101. package/dist/cjs/types/utils.js +3 -0
  102. package/dist/{types → cjs/types}/utils.js.map +1 -1
  103. package/dist/{utils → cjs/utils}/criteria-operator-validation.d.ts +1 -1
  104. package/dist/cjs/utils/criteria-operator-validation.d.ts.map +1 -0
  105. package/dist/cjs/utils/criteria-operator-validation.js +171 -0
  106. package/dist/cjs/utils/criteria-operator-validation.js.map +1 -0
  107. package/dist/cjs/utils/helpers.d.ts.map +1 -0
  108. package/dist/cjs/utils/helpers.js +37 -0
  109. package/dist/cjs/utils/helpers.js.map +1 -0
  110. package/dist/cjs/validation-error.d.ts.map +1 -0
  111. package/dist/cjs/validation-error.js +117 -0
  112. package/dist/cjs/validation-error.js.map +1 -0
  113. package/dist/{value-object.d.ts → cjs/value-object.d.ts} +2 -2
  114. package/dist/cjs/value-object.d.ts.map +1 -0
  115. package/dist/cjs/value-object.js +192 -0
  116. package/dist/cjs/value-object.js.map +1 -0
  117. package/dist/esm/aggregate-changes.d.ts +206 -0
  118. package/dist/esm/aggregate-changes.d.ts.map +1 -0
  119. package/dist/{aggregate-changes.js → esm/aggregate-changes.js} +1 -1
  120. package/dist/esm/aggregate-changes.js.map +1 -0
  121. package/dist/esm/base-entity.d.ts +91 -0
  122. package/dist/esm/base-entity.d.ts.map +1 -0
  123. package/dist/{base-entity.js → esm/base-entity.js} +5 -5
  124. package/dist/esm/base-entity.js.map +1 -0
  125. package/dist/esm/change-tracker.d.ts +98 -0
  126. package/dist/esm/change-tracker.d.ts.map +1 -0
  127. package/dist/{change-tracker.js → esm/change-tracker.js} +4 -4
  128. package/dist/esm/change-tracker.js.map +1 -0
  129. package/dist/esm/constants.d.ts +9 -0
  130. package/dist/esm/constants.d.ts.map +1 -0
  131. package/dist/esm/constants.js.map +1 -0
  132. package/dist/esm/criteria.d.ts +62 -0
  133. package/dist/esm/criteria.d.ts.map +1 -0
  134. package/dist/{criteria.js → esm/criteria.js} +3 -3
  135. package/dist/esm/criteria.js.map +1 -0
  136. package/dist/esm/crypto.d.ts +3 -0
  137. package/dist/esm/crypto.d.ts.map +1 -0
  138. package/dist/esm/crypto.js.map +1 -0
  139. package/dist/esm/domain-event-bus.d.ts +56 -0
  140. package/dist/esm/domain-event-bus.d.ts.map +1 -0
  141. package/dist/esm/domain-event-bus.js.map +1 -0
  142. package/dist/esm/domain-event.d.ts +25 -0
  143. package/dist/esm/domain-event.d.ts.map +1 -0
  144. package/dist/{domain-event.js → esm/domain-event.js} +1 -1
  145. package/dist/esm/domain-event.js.map +1 -0
  146. package/dist/esm/entity-changes.d.ts +84 -0
  147. package/dist/esm/entity-changes.d.ts.map +1 -0
  148. package/dist/esm/entity-changes.js.map +1 -0
  149. package/dist/esm/entity-schema-registry.d.ts +282 -0
  150. package/dist/esm/entity-schema-registry.d.ts.map +1 -0
  151. package/dist/{entity-schema-registry.js → esm/entity-schema-registry.js} +5 -5
  152. package/dist/esm/entity-schema-registry.js.map +1 -0
  153. package/dist/esm/entity.d.ts +7 -0
  154. package/dist/esm/entity.d.ts.map +1 -0
  155. package/dist/{entity.js → esm/entity.js} +1 -1
  156. package/dist/esm/entity.js.map +1 -0
  157. package/dist/esm/exceptions.d.ts +251 -0
  158. package/dist/esm/exceptions.d.ts.map +1 -0
  159. package/dist/esm/exceptions.js.map +1 -0
  160. package/dist/esm/id.d.ts +52 -0
  161. package/dist/esm/id.d.ts.map +1 -0
  162. package/dist/{id.js → esm/id.js} +1 -1
  163. package/dist/esm/id.js.map +1 -0
  164. package/dist/esm/index.d.ts +17 -0
  165. package/dist/esm/index.d.ts.map +1 -0
  166. package/dist/esm/index.js +16 -0
  167. package/dist/esm/index.js.map +1 -0
  168. package/dist/esm/mapper.d.ts +4 -0
  169. package/dist/esm/mapper.d.ts.map +1 -0
  170. package/dist/esm/mapper.js.map +1 -0
  171. package/dist/esm/package.json +3 -0
  172. package/dist/esm/paginated-result.d.ts +62 -0
  173. package/dist/esm/paginated-result.d.ts.map +1 -0
  174. package/dist/{paginated-result.js → esm/paginated-result.js} +1 -1
  175. package/dist/esm/paginated-result.js.map +1 -0
  176. package/dist/esm/repository/base-repository.d.ts +28 -0
  177. package/dist/esm/repository/base-repository.d.ts.map +1 -0
  178. package/dist/esm/repository/base-repository.js.map +1 -0
  179. package/dist/esm/repository/index.d.ts +4 -0
  180. package/dist/esm/repository/index.d.ts.map +1 -0
  181. package/dist/esm/repository/index.js +4 -0
  182. package/dist/esm/repository/index.js.map +1 -0
  183. package/dist/esm/repository/unit-of-work.d.ts +34 -0
  184. package/dist/esm/repository/unit-of-work.d.ts.map +1 -0
  185. package/dist/esm/repository/unit-of-work.js.map +1 -0
  186. package/dist/esm/types/change-tracker.d.ts +226 -0
  187. package/dist/esm/types/change-tracker.d.ts.map +1 -0
  188. package/dist/esm/types/change-tracker.js.map +1 -0
  189. package/dist/esm/types/criteria.d.ts +60 -0
  190. package/dist/esm/types/criteria.d.ts.map +1 -0
  191. package/dist/esm/types/criteria.js.map +1 -0
  192. package/dist/esm/types/domain-event.d.ts +32 -0
  193. package/dist/esm/types/domain-event.d.ts.map +1 -0
  194. package/dist/esm/types/domain-event.js.map +1 -0
  195. package/dist/esm/types/domain.d.ts +29 -0
  196. package/dist/esm/types/domain.d.ts.map +1 -0
  197. package/dist/esm/types/domain.js.map +1 -0
  198. package/dist/esm/types/index.d.ts +8 -0
  199. package/dist/esm/types/index.d.ts.map +1 -0
  200. package/dist/esm/types/index.js +8 -0
  201. package/dist/esm/types/index.js.map +1 -0
  202. package/dist/esm/types/standard-schema.d.ts +15 -0
  203. package/dist/esm/types/standard-schema.d.ts.map +1 -0
  204. package/dist/esm/types/standard-schema.js.map +1 -0
  205. package/dist/esm/types/unit-of-work.d.ts +39 -0
  206. package/dist/esm/types/unit-of-work.d.ts.map +1 -0
  207. package/dist/esm/types/unit-of-work.js.map +1 -0
  208. package/dist/esm/types/utils.d.ts +13 -0
  209. package/dist/esm/types/utils.d.ts.map +1 -0
  210. package/dist/esm/types/utils.js.map +1 -0
  211. package/dist/esm/utils/criteria-operator-validation.d.ts +6 -0
  212. package/dist/esm/utils/criteria-operator-validation.d.ts.map +1 -0
  213. package/dist/{utils → esm/utils}/criteria-operator-validation.js +1 -1
  214. package/dist/esm/utils/criteria-operator-validation.js.map +1 -0
  215. package/dist/esm/utils/helpers.d.ts +3 -0
  216. package/dist/esm/utils/helpers.d.ts.map +1 -0
  217. package/dist/esm/utils/helpers.js.map +1 -0
  218. package/dist/esm/validation-error.d.ts +56 -0
  219. package/dist/esm/validation-error.d.ts.map +1 -0
  220. package/dist/esm/validation-error.js.map +1 -0
  221. package/dist/esm/value-object.d.ts +96 -0
  222. package/dist/esm/value-object.d.ts.map +1 -0
  223. package/dist/{value-object.js → esm/value-object.js} +3 -3
  224. package/dist/esm/value-object.js.map +1 -0
  225. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  226. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  227. package/dist/tsconfig.types.tsbuildinfo +1 -0
  228. package/dist/types/aggregate-changes.d.ts +206 -0
  229. package/dist/types/aggregate-changes.d.ts.map +1 -0
  230. package/dist/types/base-entity.d.ts +91 -0
  231. package/dist/types/base-entity.d.ts.map +1 -0
  232. package/dist/types/change-tracker.d.ts +90 -218
  233. package/dist/types/change-tracker.d.ts.map +1 -1
  234. package/dist/types/constants.d.ts +9 -0
  235. package/dist/types/constants.d.ts.map +1 -0
  236. package/dist/types/criteria.d.ts +59 -57
  237. package/dist/types/criteria.d.ts.map +1 -1
  238. package/dist/types/crypto.d.ts +3 -0
  239. package/dist/types/crypto.d.ts.map +1 -0
  240. package/dist/types/domain-event-bus.d.ts +56 -0
  241. package/dist/types/domain-event-bus.d.ts.map +1 -0
  242. package/dist/types/domain-event.d.ts +14 -21
  243. package/dist/types/domain-event.d.ts.map +1 -1
  244. package/dist/types/entity-changes.d.ts +84 -0
  245. package/dist/types/entity-changes.d.ts.map +1 -0
  246. package/dist/types/entity-schema-registry.d.ts +282 -0
  247. package/dist/types/entity-schema-registry.d.ts.map +1 -0
  248. package/dist/types/entity.d.ts +7 -0
  249. package/dist/types/entity.d.ts.map +1 -0
  250. package/dist/types/exceptions.d.ts +251 -0
  251. package/dist/types/exceptions.d.ts.map +1 -0
  252. package/dist/types/id.d.ts +52 -0
  253. package/dist/types/id.d.ts.map +1 -0
  254. package/dist/types/index.d.ts +16 -7
  255. package/dist/types/index.d.ts.map +1 -1
  256. package/dist/types/mapper.d.ts +4 -0
  257. package/dist/types/mapper.d.ts.map +1 -0
  258. package/dist/types/paginated-result.d.ts +62 -0
  259. package/dist/types/paginated-result.d.ts.map +1 -0
  260. package/dist/types/repository/base-repository.d.ts +28 -0
  261. package/dist/types/repository/base-repository.d.ts.map +1 -0
  262. package/dist/types/repository/index.d.ts +4 -0
  263. package/dist/types/repository/index.d.ts.map +1 -0
  264. package/dist/types/repository/unit-of-work.d.ts +34 -0
  265. package/dist/types/repository/unit-of-work.d.ts.map +1 -0
  266. package/dist/types/types/change-tracker.d.ts +226 -0
  267. package/dist/types/types/change-tracker.d.ts.map +1 -0
  268. package/dist/types/types/criteria.d.ts +60 -0
  269. package/dist/types/types/criteria.d.ts.map +1 -0
  270. package/dist/types/types/domain-event.d.ts +32 -0
  271. package/dist/types/types/domain-event.d.ts.map +1 -0
  272. package/dist/types/types/domain.d.ts +29 -0
  273. package/dist/types/types/domain.d.ts.map +1 -0
  274. package/dist/types/types/index.d.ts +8 -0
  275. package/dist/types/types/index.d.ts.map +1 -0
  276. package/dist/types/types/standard-schema.d.ts +15 -0
  277. package/dist/types/types/standard-schema.d.ts.map +1 -0
  278. package/dist/types/types/unit-of-work.d.ts +39 -0
  279. package/dist/types/types/unit-of-work.d.ts.map +1 -0
  280. package/dist/types/types/utils.d.ts +13 -0
  281. package/dist/types/types/utils.d.ts.map +1 -0
  282. package/dist/types/utils/criteria-operator-validation.d.ts +6 -0
  283. package/dist/types/utils/criteria-operator-validation.d.ts.map +1 -0
  284. package/dist/types/utils/helpers.d.ts +3 -0
  285. package/dist/types/utils/helpers.d.ts.map +1 -0
  286. package/dist/types/validation-error.d.ts +56 -0
  287. package/dist/types/validation-error.d.ts.map +1 -0
  288. package/dist/types/value-object.d.ts +96 -0
  289. package/dist/types/value-object.d.ts.map +1 -0
  290. package/package.json +13 -8
  291. package/dist/aggregate-changes.d.ts.map +0 -1
  292. package/dist/aggregate-changes.js.map +0 -1
  293. package/dist/base-entity.d.ts.map +0 -1
  294. package/dist/base-entity.js.map +0 -1
  295. package/dist/change-tracker.d.ts.map +0 -1
  296. package/dist/change-tracker.js.map +0 -1
  297. package/dist/constants.d.ts.map +0 -1
  298. package/dist/constants.js.map +0 -1
  299. package/dist/criteria.d.ts.map +0 -1
  300. package/dist/crypto.d.ts.map +0 -1
  301. package/dist/crypto.js.map +0 -1
  302. package/dist/domain-event-bus.d.ts.map +0 -1
  303. package/dist/domain-event-bus.js.map +0 -1
  304. package/dist/domain-event.d.ts.map +0 -1
  305. package/dist/domain-event.js.map +0 -1
  306. package/dist/entity-changes.d.ts.map +0 -1
  307. package/dist/entity-changes.js.map +0 -1
  308. package/dist/entity-schema-registry.d.ts.map +0 -1
  309. package/dist/entity-schema-registry.js.map +0 -1
  310. package/dist/entity.d.ts.map +0 -1
  311. package/dist/entity.js.map +0 -1
  312. package/dist/exceptions.d.ts.map +0 -1
  313. package/dist/exceptions.js.map +0 -1
  314. package/dist/id.d.ts.map +0 -1
  315. package/dist/id.js.map +0 -1
  316. package/dist/index.d.ts.map +0 -1
  317. package/dist/index.js +0 -16
  318. package/dist/index.js.map +0 -1
  319. package/dist/mapper.d.ts.map +0 -1
  320. package/dist/mapper.js.map +0 -1
  321. package/dist/paginated-result.d.ts.map +0 -1
  322. package/dist/paginated-result.js.map +0 -1
  323. package/dist/repository/base-repository.d.ts.map +0 -1
  324. package/dist/repository/base-repository.js.map +0 -1
  325. package/dist/repository/index.d.ts +0 -4
  326. package/dist/repository/index.d.ts.map +0 -1
  327. package/dist/repository/index.js +0 -4
  328. package/dist/repository/index.js.map +0 -1
  329. package/dist/repository/unit-of-work.d.ts.map +0 -1
  330. package/dist/repository/unit-of-work.js.map +0 -1
  331. package/dist/types/change-tracker.js.map +0 -1
  332. package/dist/types/criteria.js.map +0 -1
  333. package/dist/types/domain.d.ts.map +0 -1
  334. package/dist/types/index.js +0 -8
  335. package/dist/types/index.js.map +0 -1
  336. package/dist/types/standard-schema.d.ts.map +0 -1
  337. package/dist/types/standard-schema.js.map +0 -1
  338. package/dist/types/unit-of-work.d.ts.map +0 -1
  339. package/dist/types/utils.d.ts.map +0 -1
  340. package/dist/utils/criteria-operator-validation.d.ts.map +0 -1
  341. package/dist/utils/criteria-operator-validation.js.map +0 -1
  342. package/dist/utils/helpers.d.ts.map +0 -1
  343. package/dist/utils/helpers.js.map +0 -1
  344. package/dist/validation-error.d.ts.map +0 -1
  345. package/dist/validation-error.js.map +0 -1
  346. package/dist/value-object.d.ts.map +0 -1
  347. package/dist/value-object.js.map +0 -1
  348. /package/dist/{constants.d.ts → cjs/constants.d.ts} +0 -0
  349. /package/dist/{crypto.d.ts → cjs/crypto.d.ts} +0 -0
  350. /package/dist/{domain-event-bus.d.ts → cjs/domain-event-bus.d.ts} +0 -0
  351. /package/dist/{exceptions.d.ts → cjs/exceptions.d.ts} +0 -0
  352. /package/dist/{id.d.ts → cjs/id.d.ts} +0 -0
  353. /package/dist/{mapper.d.ts → cjs/mapper.d.ts} +0 -0
  354. /package/dist/{types → cjs/types}/standard-schema.d.ts +0 -0
  355. /package/dist/{utils → cjs/utils}/helpers.d.ts +0 -0
  356. /package/dist/{validation-error.d.ts → cjs/validation-error.d.ts} +0 -0
  357. /package/dist/{constants.js → esm/constants.js} +0 -0
  358. /package/dist/{crypto.js → esm/crypto.js} +0 -0
  359. /package/dist/{domain-event-bus.js → esm/domain-event-bus.js} +0 -0
  360. /package/dist/{entity-changes.js → esm/entity-changes.js} +0 -0
  361. /package/dist/{exceptions.js → esm/exceptions.js} +0 -0
  362. /package/dist/{mapper.js → esm/mapper.js} +0 -0
  363. /package/dist/{repository → esm/repository}/base-repository.js +0 -0
  364. /package/dist/{repository → esm/repository}/unit-of-work.js +0 -0
  365. /package/dist/{types → esm/types}/change-tracker.js +0 -0
  366. /package/dist/{types → esm/types}/criteria.js +0 -0
  367. /package/dist/{types → esm/types}/domain-event.js +0 -0
  368. /package/dist/{types → esm/types}/domain.js +0 -0
  369. /package/dist/{types → esm/types}/standard-schema.js +0 -0
  370. /package/dist/{types → esm/types}/unit-of-work.js +0 -0
  371. /package/dist/{types → esm/types}/utils.js +0 -0
  372. /package/dist/{utils → esm/utils}/helpers.js +0 -0
  373. /package/dist/{validation-error.js → esm/validation-error.js} +0 -0
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Base exception class for all Rich Domain exceptions
3
+ */
4
+ declare abstract class DomainException extends Error {
5
+ readonly code: string;
6
+ readonly timestamp: Date;
7
+ readonly __isDomainException = true;
8
+ constructor(message: string, code?: string);
9
+ /**
10
+ * Check if an error is a DomainException
11
+ */
12
+ static isDomainException(error: unknown): error is DomainException;
13
+ /**
14
+ * Convert to JSON for serialization
15
+ */
16
+ toJSON(): {
17
+ name: string;
18
+ message: string;
19
+ code: string;
20
+ timestamp: string;
21
+ };
22
+ }
23
+ /**
24
+ * Thrown when a domain rule or business logic is violated
25
+ */
26
+ export declare class DomainError extends DomainException {
27
+ constructor(message: string, code?: string);
28
+ }
29
+ /**
30
+ * Thrown when an entity or aggregate is not found
31
+ */
32
+ export declare class EntityNotFoundError extends DomainException {
33
+ readonly entityType: string;
34
+ readonly entityId?: string;
35
+ constructor(entityType: string, entityId?: string, message?: string);
36
+ toJSON(): {
37
+ entityType: string;
38
+ entityId: string | undefined;
39
+ name: string;
40
+ message: string;
41
+ code: string;
42
+ timestamp: string;
43
+ };
44
+ }
45
+ /**
46
+ * Thrown when trying to create an entity that already exists
47
+ */
48
+ export declare class EntityAlreadyExistsError extends DomainException {
49
+ readonly entityType: string;
50
+ readonly entityId?: string;
51
+ constructor(entityType: string, entityId?: string, message?: string);
52
+ toJSON(): {
53
+ entityType: string;
54
+ entityId: string | undefined;
55
+ name: string;
56
+ message: string;
57
+ code: string;
58
+ timestamp: string;
59
+ };
60
+ }
61
+ /**
62
+ * Base exception for repository operations
63
+ */
64
+ export declare class RepositoryError extends DomainException {
65
+ constructor(message: string, code?: string);
66
+ }
67
+ /**
68
+ * Thrown when a persistence operation fails
69
+ */
70
+ export declare class PersistenceError extends RepositoryError {
71
+ readonly operation: string;
72
+ readonly cause?: Error;
73
+ constructor(operation: string, message?: string, cause?: Error);
74
+ toJSON(): {
75
+ operation: string;
76
+ cause: string | undefined;
77
+ name: string;
78
+ message: string;
79
+ code: string;
80
+ timestamp: string;
81
+ };
82
+ }
83
+ /**
84
+ * Thrown when a concurrency conflict occurs (optimistic locking)
85
+ */
86
+ export declare class ConcurrencyError extends RepositoryError {
87
+ readonly entityType: string;
88
+ readonly entityId: string;
89
+ constructor(entityType: string, entityId: string, message?: string);
90
+ toJSON(): {
91
+ entityType: string;
92
+ entityId: string;
93
+ name: string;
94
+ message: string;
95
+ code: string;
96
+ timestamp: string;
97
+ };
98
+ }
99
+ /**
100
+ * Thrown when a database constraint is violated
101
+ */
102
+ export declare class ConstraintViolationError extends RepositoryError {
103
+ readonly constraint: string;
104
+ constructor(constraint: string, message?: string);
105
+ toJSON(): {
106
+ constraint: string;
107
+ name: string;
108
+ message: string;
109
+ code: string;
110
+ timestamp: string;
111
+ };
112
+ }
113
+ /**
114
+ * Thrown when a value object has invalid data
115
+ */
116
+ export declare class InvalidValueObjectError extends DomainException {
117
+ readonly valueObjectType: string;
118
+ readonly invalidValue?: any;
119
+ constructor(valueObjectType: string, message: string, invalidValue?: any);
120
+ toJSON(): {
121
+ valueObjectType: string;
122
+ invalidValue: any;
123
+ name: string;
124
+ message: string;
125
+ code: string;
126
+ timestamp: string;
127
+ };
128
+ }
129
+ /**
130
+ * Thrown when a domain event operation fails
131
+ */
132
+ export declare class DomainEventError extends DomainException {
133
+ readonly eventType?: string;
134
+ constructor(message: string, eventType?: string);
135
+ toJSON(): {
136
+ eventType: string | undefined;
137
+ name: string;
138
+ message: string;
139
+ code: string;
140
+ timestamp: string;
141
+ };
142
+ }
143
+ /**
144
+ * Thrown when an event handler fails
145
+ */
146
+ export declare class EventHandlerError extends DomainEventError {
147
+ readonly handlerName: string;
148
+ readonly cause?: Error;
149
+ constructor(handlerName: string, eventType: string, cause?: Error);
150
+ toJSON(): {
151
+ handlerName: string;
152
+ cause: string | undefined;
153
+ eventType: string | undefined;
154
+ name: string;
155
+ message: string;
156
+ code: string;
157
+ timestamp: string;
158
+ };
159
+ }
160
+ /**
161
+ * Thrown when a criteria or query is invalid
162
+ */
163
+ export declare class InvalidCriteriaError extends DomainException {
164
+ readonly field?: string;
165
+ constructor(message: string, field?: string);
166
+ toJSON(): {
167
+ field: string | undefined;
168
+ name: string;
169
+ message: string;
170
+ code: string;
171
+ timestamp: string;
172
+ };
173
+ }
174
+ /**
175
+ * Thrown when a transaction operation fails
176
+ */
177
+ export declare class TransactionError extends DomainException {
178
+ readonly operation: string;
179
+ readonly cause?: Error;
180
+ constructor(operation: string, message?: string, cause?: Error);
181
+ toJSON(): {
182
+ operation: string;
183
+ cause: string | undefined;
184
+ name: string;
185
+ message: string;
186
+ code: string;
187
+ timestamp: string;
188
+ };
189
+ }
190
+ /**
191
+ * Thrown when an unexpected or unknown error occurs
192
+ */
193
+ export declare class UnknownError extends DomainException {
194
+ readonly originalError?: Error;
195
+ constructor(message?: string, originalError?: Error);
196
+ toJSON(): {
197
+ originalError: string | undefined;
198
+ name: string;
199
+ message: string;
200
+ code: string;
201
+ timestamp: string;
202
+ };
203
+ }
204
+ /**
205
+ * Thrown when a feature is not implemented yet
206
+ */
207
+ export declare class NotImplementedError extends DomainException {
208
+ readonly feature: string;
209
+ constructor(feature: string, message?: string);
210
+ toJSON(): {
211
+ feature: string;
212
+ name: string;
213
+ message: string;
214
+ code: string;
215
+ timestamp: string;
216
+ };
217
+ }
218
+ /**
219
+ * Thrown when a required configuration is missing
220
+ */
221
+ export declare class ConfigurationError extends DomainException {
222
+ readonly configKey?: string;
223
+ constructor(message: string, configKey?: string);
224
+ toJSON(): {
225
+ configKey: string | undefined;
226
+ name: string;
227
+ message: string;
228
+ code: string;
229
+ timestamp: string;
230
+ };
231
+ }
232
+ /**
233
+ * Thrown when mapping between domain and persistence fails
234
+ */
235
+ export declare class MapperError extends DomainException {
236
+ readonly direction: "toDomain" | "toPersistence";
237
+ readonly entityType: string;
238
+ readonly cause?: Error;
239
+ constructor(direction: "toDomain" | "toPersistence", entityType: string, message?: string, cause?: Error);
240
+ toJSON(): {
241
+ direction: "toDomain" | "toPersistence";
242
+ entityType: string;
243
+ cause: string | undefined;
244
+ name: string;
245
+ message: string;
246
+ code: string;
247
+ timestamp: string;
248
+ };
249
+ }
250
+ export {};
251
+ //# sourceMappingURL=exceptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/exceptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,uBAAe,eAAgB,SAAQ,KAAK;IAC1C,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,SAAS,EAAE,IAAI,CAAC;IAChC,SAAgB,mBAAmB,QAAQ;gBAE/B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAY1C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe;IASlE;;OAEG;IACH,MAAM,IAAI;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB;CAQF;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAe;gBAClC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAG3C;AAMD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEtB,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAUnE,MAAM;;;cA5CE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CAgDpB;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEtB,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAUnE,MAAM;;;cAtEE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CA0EpB;AAMD;;GAEG;AACH,qBAAa,eAAgB,SAAQ,eAAe;gBACtC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAG3C;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAElB,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAU9D,MAAM;;;cA7GE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CAiHpB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAUlE,MAAM;;;cAvIE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CA2IpB;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAQhD,MAAM;;cA9JE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CAiKpB;AAMD;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAC1D,SAAgB,eAAe,EAAE,MAAM,CAAC;IACxC,SAAgB,YAAY,CAAC,EAAE,GAAG,CAAC;gBAEvB,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG;IAMxE,MAAM;;;cAvLE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CA2LpB;AAMD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAK/C,MAAM;;cA/ME,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CAkNpB;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAElB,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAUjE,MAAM;;;;cAxOE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CA4OpB;AAMD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,eAAe;IACvD,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAK3C,MAAM;;cAhQE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CAmQpB;AAMD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAElB,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK;IAU9D,MAAM;;;cA7RE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CAiSpB;AAMD;;GAEG;AACH,qBAAa,YAAa,SAAQ,eAAe;IAC/C,SAAgB,aAAa,CAAC,EAAE,KAAK,CAAC;gBAE1B,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK;IAQnD,MAAM;;cAxTE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CA2TpB;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAEpB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAO7C,MAAM;;cA7UE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CAgVpB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAK/C,MAAM;;cAhWE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CAmWpB;AAMD;;GAEG;AACH,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAgB,SAAS,EAAE,UAAU,GAAG,eAAe,CAAC;IACxD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,CAAC,EAAE,KAAK,CAAC;gBAG5B,SAAS,EAAE,UAAU,GAAG,eAAe,EACvC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK;IAcf,MAAM;;;;cAtYE,MAAM;iBACH,MAAM;cACT,MAAM;mBACD,MAAM;;CA2YpB"}
@@ -0,0 +1,52 @@
1
+ export declare class Id {
2
+ private readonly _value;
3
+ private readonly _isNew;
4
+ /**
5
+ * Create a new Id
6
+ * @param value - Optional existing ID value. If not provided, generates a new UUID.
7
+ *
8
+ * @example
9
+ * // New entity (generates UUID)
10
+ * const newId = new Id();
11
+ * newuser.isNew() // true
12
+ *
13
+ * // Existing entity (uses provided ID)
14
+ * const existingId = new Id("550e8400-e29b-41d4-a716-446655440000");
15
+ * existinguser.isNew() // false
16
+ */
17
+ constructor(value: string, isNew?: boolean);
18
+ constructor(value?: string);
19
+ /**
20
+ * Get the string value of the ID
21
+ */
22
+ get value(): string;
23
+ /**
24
+ * Check if this ID represents a new entity
25
+ */
26
+ isNew(): boolean;
27
+ /**
28
+ * Convert to string (for JSON serialization and comparisons)
29
+ */
30
+ toString(): string;
31
+ /**
32
+ * Convert to JSON (returns the string value)
33
+ */
34
+ toJSON(): string;
35
+ /**
36
+ * Check equality with another Id or string
37
+ */
38
+ equals(other: Id | string): boolean;
39
+ /**
40
+ * Generate a UUID v4
41
+ */
42
+ private generateUUID;
43
+ /**
44
+ * Create a new Id (convenience static method)
45
+ */
46
+ static create(): Id;
47
+ /**
48
+ * Create an Id from an existing value
49
+ */
50
+ static from(value: string): Id;
51
+ }
52
+ //# sourceMappingURL=id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/id.ts"],"names":[],"mappings":"AAMA,qBAAa,EAAE;IACb,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC;;;;;;;;;;;;MAYE;gBACU,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;gBAC9B,KAAK,CAAC,EAAE,MAAM;IAa1B;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACI,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO;IAOnC;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,EAAE;IAInB;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE;CAG/B"}
@@ -1,8 +1,17 @@
1
- export * from "./criteria";
2
- export * from "./domain";
3
- export * from "./standard-schema";
4
- export * from "./utils";
5
- export * from "./unit-of-work";
6
- export * from "./domain-event";
7
- export * from "./change-tracker";
1
+ export * from "./validation-error.js";
2
+ export * from "./domain-event.js";
3
+ export * from "./domain-event-bus.js";
4
+ export * from "./exceptions.js";
5
+ export * from "./criteria.js";
6
+ export * from "./paginated-result.js";
7
+ export * from "./repository/index.js";
8
+ export { Id } from "./id.js";
9
+ export { Entity, Aggregate } from "./entity.js";
10
+ export { ValueObject } from "./value-object.js";
11
+ export { Mapper } from "./mapper.js";
12
+ export { EntitySchemaRegistry } from "./entity-schema-registry.js";
13
+ export { AggregateChanges } from "./aggregate-changes.js";
14
+ export type { DomainEventHandler, EntityHooks, Filter, EntityValidation, IDomainEvent, VOValidation, VOHooks, ValidationConfig, Primitive, TransactionContext, PaginationMeta, Pagination, OrderDirection, Order, IUnitOfWork, IDomainEventHandler, FieldPath, FilterOperator, Search, FilterValueFor, PathValue, OperatorsForType, DateOperators, NumberOperators, StringOperators, BooleanOperators, ArrayOperators, CriteriaOptions, DeepJsonResult, } from "./types/index.js";
15
+ export { ARRAY_OPERATORS, BOOLEAN_OPERATORS, DATE_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS, FILTER_OPERATORS, } from "./constants.js";
16
+ export { isValidOperatorForType } from "./utils/criteria-operator-validation.js";
8
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,cAAc,EACd,KAAK,EACL,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare abstract class Mapper<Input, Output> {
2
+ abstract build(input: Input, ...args: unknown[]): Output | Promise<Output>;
3
+ }
4
+ //# sourceMappingURL=mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapper.d.ts","sourceRoot":"","sources":["../../src/mapper.ts"],"names":[],"mappings":"AAAA,8BAAsB,MAAM,CAAC,KAAK,EAAE,MAAM;aACxB,KAAK,CACnB,KAAK,EAAE,KAAK,EACZ,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAC5B"}
@@ -0,0 +1,62 @@
1
+ import type { Criteria } from "./criteria.js";
2
+ import type { Pagination, PaginationMeta } from "./types/index.js";
3
+ /**
4
+ * Infers the JSON result type from T
5
+ * - If T has toJSON(), returns its return type
6
+ * - Otherwise returns T as-is
7
+ */
8
+ type InferJsonResult<T> = T extends {
9
+ toJSON(): infer R;
10
+ } ? R : T;
11
+ /**
12
+ * Type for the serialized result of PaginatedResult.toJSON()
13
+ */
14
+ export type PaginatedJsonResult<T> = {
15
+ data: InferJsonResult<T>[];
16
+ meta: PaginationMeta;
17
+ };
18
+ export declare class PaginatedResult<T> {
19
+ readonly data: T[];
20
+ readonly meta: PaginationMeta;
21
+ constructor(data: T[], meta: PaginationMeta);
22
+ /**
23
+ * Creates a PaginatedResult with calculated metadata
24
+ */
25
+ static create<T>(data: T[], pagination: Pagination, total: number): PaginatedResult<T>;
26
+ /**
27
+ * Creates pagination metadata from total count
28
+ */
29
+ static createMeta(pagination: Pagination, total: number): PaginationMeta;
30
+ /**
31
+ * Applies criteria to an in-memory array (useful for testing)
32
+ */
33
+ static fromArray<T>(items: T[], criteria: Criteria<T>): PaginatedResult<T>;
34
+ /**
35
+ * Converts the result to JSON, deeply serializing all entities/aggregates/value objects
36
+ * - Entities/Aggregates → calls toJSON() recursively
37
+ * - Value Objects → calls toJSON()
38
+ * - Id → converts to string
39
+ * - Arrays → maps recursively
40
+ * - Plain objects → serializes properties recursively
41
+ * - Primitives → returns as-is
42
+ */
43
+ toJSON(): PaginatedJsonResult<T>;
44
+ /**
45
+ * Deep serialization logic (similar to BaseEntity.deepToJson)
46
+ */
47
+ private deepSerialize;
48
+ /**
49
+ * Transform each item in the result using a mapper function
50
+ */
51
+ map<U>(fn: (item: T) => U): PaginatedResult<U>;
52
+ /**
53
+ * Check if result has no data
54
+ */
55
+ get isEmpty(): boolean;
56
+ /**
57
+ * Check if there are more pages available
58
+ */
59
+ get hasMore(): boolean;
60
+ }
61
+ export {};
62
+ //# sourceMappingURL=paginated-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paginated-result.d.ts","sourceRoot":"","sources":["../../src/paginated-result.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAU,MAAM,kBAAkB,CAAC;AAE3E;;;;GAIG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF,qBAAa,eAAe,CAAC,CAAC;aAEV,IAAI,EAAE,CAAC,EAAE;aACT,IAAI,EAAE,cAAc;gBADpB,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,cAAc;IAGtC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EACb,IAAI,EAAE,CAAC,EAAE,EACT,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GACZ,eAAe,CAAC,CAAC,CAAC;IAKrB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc;IAaxE;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IA0C1E;;;;;;;;OAQG;IACH,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC;IAShC;;OAEG;IACH,OAAO,CAAC,aAAa;IA0BrB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI9C;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
@@ -0,0 +1,28 @@
1
+ import type { Aggregate } from "../entity.js";
2
+ import type { Criteria } from "../criteria.js";
3
+ import { PaginatedResult } from "../paginated-result.js";
4
+ import { Mapper } from "../mapper.js";
5
+ export declare abstract class ReadRepository<Agg extends Aggregate<any>> {
6
+ abstract find(criteria?: Criteria<Agg>): Promise<PaginatedResult<Agg>>;
7
+ abstract findById(id: string): Promise<Agg | null>;
8
+ abstract count(criteria?: Criteria<Agg>): Promise<number>;
9
+ abstract exists(id: string): Promise<boolean>;
10
+ }
11
+ export declare abstract class WriteRepository<Agg extends Aggregate<any>> {
12
+ abstract save(entity: Agg): Promise<void>;
13
+ abstract delete(entity: Agg): Promise<void>;
14
+ }
15
+ export declare abstract class WriteAndRead<Agg extends Aggregate<any>> {
16
+ abstract find(criteria?: Criteria<Agg>): Promise<PaginatedResult<Agg>>;
17
+ abstract findById(id: string): Promise<Agg | null>;
18
+ abstract save(entity: Agg): Promise<void>;
19
+ abstract delete(entity: Agg): Promise<void>;
20
+ abstract count(criteria?: Criteria<Agg>): Promise<number>;
21
+ abstract exists(id: string): Promise<boolean>;
22
+ }
23
+ export declare abstract class Repository<TDomain extends Aggregate<any>> extends WriteAndRead<TDomain> {
24
+ protected abstract readonly toDomainMapper: Mapper<unknown, TDomain>;
25
+ protected abstract readonly toPersistenceMapper: Mapper<TDomain, unknown>;
26
+ protected abstract get model(): any;
27
+ }
28
+ //# sourceMappingURL=base-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-repository.d.ts","sourceRoot":"","sources":["../../../src/repository/base-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,8BAAsB,cAAc,CAAC,GAAG,SAAS,SAAS,CAAC,GAAG,CAAC;IAC7D,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9C;AAED,8BAAsB,eAAe,CAAC,GAAG,SAAS,SAAS,CAAC,GAAG,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAC5C;AAED,8BAAsB,YAAY,CAAC,GAAG,SAAS,SAAS,CAAC,GAAG,CAAC;IAC3D,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAClD,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzD,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAC9C;AAED,8BAAsB,UAAU,CAC9B,OAAO,SAAS,SAAS,CAAC,GAAG,CAAC,CAC9B,SAAQ,YAAY,CAAC,OAAO,CAAC;IAC7B,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1E,SAAS,CAAC,QAAQ,KAAK,KAAK,IAAI,GAAG,CAAC;CACrC"}
@@ -0,0 +1,4 @@
1
+ export { Mapper } from "../mapper.js";
2
+ export * from "./base-repository.js";
3
+ export { UnitOfWork, BaseTransactionContext } from "./unit-of-work.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/repository/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { IUnitOfWork, TransactionContext } from "../types/index.js";
2
+ /**
3
+ * Abstract Unit of Work
4
+ * Provides transaction management across multiple repositories
5
+ */
6
+ export declare abstract class UnitOfWork implements IUnitOfWork {
7
+ protected currentContext: TransactionContext | null;
8
+ protected repositoryCache: Map<string, any>;
9
+ abstract begin(): Promise<TransactionContext>;
10
+ /**
11
+ * Execute work within a transaction
12
+ * Auto-commits on success, rolls back on error
13
+ */
14
+ transaction<T>(work: (ctx: TransactionContext) => Promise<T>): Promise<T>;
15
+ /**
16
+ * Get repository instance (cached per transaction)
17
+ */
18
+ getRepository<TRepo>(RepositoryClass: new (...args: any[]) => TRepo): TRepo;
19
+ /**
20
+ * Create repository instance - implement in subclass
21
+ */
22
+ protected abstract createRepository<TRepo>(RepositoryClass: new (...args: any[]) => TRepo): TRepo;
23
+ }
24
+ /**
25
+ * Base Transaction Context
26
+ */
27
+ export declare abstract class BaseTransactionContext implements TransactionContext {
28
+ protected _isActive: boolean;
29
+ abstract commit(): Promise<void>;
30
+ abstract rollback(): Promise<void>;
31
+ isActive(): boolean;
32
+ protected markInactive(): void;
33
+ }
34
+ //# sourceMappingURL=unit-of-work.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit-of-work.d.ts","sourceRoot":"","sources":["../../../src/repository/unit-of-work.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEzE;;;GAGG;AACH,8BAAsB,UAAW,YAAW,WAAW;IACrD,SAAS,CAAC,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAC3D,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa;IAExD,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAE7C;;;OAGG;IACG,WAAW,CAAC,CAAC,EACjB,IAAI,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,CAAC;IAkBb;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,KAAK;IAY3E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EACvC,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,GAC7C,KAAK;CACT;AAED;;GAEG;AACH,8BAAsB,sBAAuB,YAAW,kBAAkB;IACxE,SAAS,CAAC,SAAS,UAAQ;IAE3B,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAChC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC,QAAQ,IAAI,OAAO;IAInB,SAAS,CAAC,YAAY,IAAI,IAAI;CAG/B"}