@bett3r-dev/pv3 1.0.0 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (648) hide show
  1. package/CHANGELOG.md +329 -0
  2. package/build/adapters/cache/memory/index.d.ts.map +1 -1
  3. package/build/adapters/cache/memory/index.js +93 -20
  4. package/build/adapters/cache/memory/index.js.map +1 -1
  5. package/build/adapters/cache/memory/index.test.d.ts +2 -0
  6. package/build/adapters/cache/memory/index.test.d.ts.map +1 -0
  7. package/build/adapters/cache/memory/index.test.js +98 -0
  8. package/build/adapters/cache/memory/index.test.js.map +1 -0
  9. package/build/adapters/configuration/dotEnv.d.ts.map +1 -1
  10. package/build/adapters/configuration/dotEnv.js.map +1 -1
  11. package/build/adapters/database/memory/index.d.ts +5 -1
  12. package/build/adapters/database/memory/index.d.ts.map +1 -1
  13. package/build/adapters/database/memory/index.js +336 -44
  14. package/build/adapters/database/memory/index.js.map +1 -1
  15. package/build/adapters/database/memory/index.test.d.ts +2 -0
  16. package/build/adapters/database/memory/index.test.d.ts.map +1 -0
  17. package/build/adapters/database/memory/index.test.js +167 -0
  18. package/build/adapters/database/memory/index.test.js.map +1 -0
  19. package/build/adapters/database/memory/pagingCursorZero.test.d.ts +2 -0
  20. package/build/adapters/database/memory/pagingCursorZero.test.d.ts.map +1 -0
  21. package/build/adapters/database/memory/pagingCursorZero.test.js +60 -0
  22. package/build/adapters/database/memory/pagingCursorZero.test.js.map +1 -0
  23. package/build/adapters/database/memory/pagingVanishedCursor.test.d.ts +2 -0
  24. package/build/adapters/database/memory/pagingVanishedCursor.test.d.ts.map +1 -0
  25. package/build/adapters/database/memory/pagingVanishedCursor.test.js +72 -0
  26. package/build/adapters/database/memory/pagingVanishedCursor.test.js.map +1 -0
  27. package/build/adapters/endpoints/addAuthUser/index.d.ts +6 -4
  28. package/build/adapters/endpoints/addAuthUser/index.d.ts.map +1 -1
  29. package/build/adapters/endpoints/addAuthUser/index.js +12 -31
  30. package/build/adapters/endpoints/addAuthUser/index.js.map +1 -1
  31. package/build/adapters/endpoints/addDevAuthUser/index.d.ts +32 -0
  32. package/build/adapters/endpoints/addDevAuthUser/index.d.ts.map +1 -0
  33. package/build/adapters/endpoints/addDevAuthUser/index.js +39 -0
  34. package/build/adapters/endpoints/addDevAuthUser/index.js.map +1 -0
  35. package/build/adapters/endpoints/asyncLocalStorage/__tests__/asyncLocalStorage.test.d.ts +2 -0
  36. package/build/adapters/endpoints/asyncLocalStorage/__tests__/asyncLocalStorage.test.d.ts.map +1 -0
  37. package/build/adapters/endpoints/asyncLocalStorage/__tests__/asyncLocalStorage.test.js +97 -0
  38. package/build/adapters/endpoints/asyncLocalStorage/__tests__/asyncLocalStorage.test.js.map +1 -0
  39. package/build/adapters/endpoints/asyncLocalStorage/index.d.ts +22 -0
  40. package/build/adapters/endpoints/asyncLocalStorage/index.d.ts.map +1 -0
  41. package/build/adapters/endpoints/asyncLocalStorage/index.js +62 -0
  42. package/build/adapters/endpoints/asyncLocalStorage/index.js.map +1 -0
  43. package/build/adapters/endpoints/endpointValidation/__tests__/endpointValidation.test.d.ts +2 -0
  44. package/build/adapters/endpoints/endpointValidation/__tests__/endpointValidation.test.d.ts.map +1 -0
  45. package/build/adapters/endpoints/endpointValidation/__tests__/endpointValidation.test.js +98 -0
  46. package/build/adapters/endpoints/endpointValidation/__tests__/endpointValidation.test.js.map +1 -0
  47. package/build/adapters/endpoints/endpointValidation/index.d.ts +2 -2
  48. package/build/adapters/endpoints/endpointValidation/index.d.ts.map +1 -1
  49. package/build/adapters/endpoints/endpointValidation/index.js +19 -9
  50. package/build/adapters/endpoints/endpointValidation/index.js.map +1 -1
  51. package/build/adapters/endpoints/genericMiddleware/index.d.ts +23 -0
  52. package/build/adapters/endpoints/genericMiddleware/index.d.ts.map +1 -0
  53. package/build/adapters/endpoints/genericMiddleware/index.js +30 -0
  54. package/build/adapters/endpoints/genericMiddleware/index.js.map +1 -0
  55. package/build/adapters/endpoints/httpMethodOverride/index.d.ts +8 -0
  56. package/build/adapters/endpoints/httpMethodOverride/index.d.ts.map +1 -0
  57. package/build/adapters/endpoints/httpMethodOverride/index.js +44 -0
  58. package/build/adapters/endpoints/httpMethodOverride/index.js.map +1 -0
  59. package/build/adapters/endpoints/index.d.ts +5 -0
  60. package/build/adapters/endpoints/index.d.ts.map +1 -1
  61. package/build/adapters/endpoints/index.js +5 -1
  62. package/build/adapters/endpoints/index.js.map +1 -1
  63. package/build/adapters/endpoints/localAuthorization/index.d.ts +1 -0
  64. package/build/adapters/endpoints/localAuthorization/index.js +2 -0
  65. package/build/adapters/endpoints/localAuthorization/index.js.map +1 -1
  66. package/build/adapters/endpoints/mapQueryFromHeaders/index.d.ts +8 -0
  67. package/build/adapters/endpoints/mapQueryFromHeaders/index.d.ts.map +1 -0
  68. package/build/adapters/endpoints/mapQueryFromHeaders/index.js +36 -0
  69. package/build/adapters/endpoints/mapQueryFromHeaders/index.js.map +1 -0
  70. package/build/adapters/endpoints/tcpConsumer/index.d.ts.map +1 -1
  71. package/build/adapters/endpoints/tcpConsumer/index.js +8 -7
  72. package/build/adapters/endpoints/tcpConsumer/index.js.map +1 -1
  73. package/build/adapters/endpoints/userSession/__tests__/userSession.test.d.ts +2 -0
  74. package/build/adapters/endpoints/userSession/__tests__/userSession.test.d.ts.map +1 -0
  75. package/build/adapters/endpoints/userSession/__tests__/userSession.test.js +175 -0
  76. package/build/adapters/endpoints/userSession/__tests__/userSession.test.js.map +1 -0
  77. package/build/adapters/endpoints/userSession/index.d.ts +2 -2
  78. package/build/adapters/endpoints/userSession/index.d.ts.map +1 -1
  79. package/build/adapters/endpoints/userSession/index.js +36 -2
  80. package/build/adapters/endpoints/userSession/index.js.map +1 -1
  81. package/build/adapters/eventstore/database.d.ts.map +1 -1
  82. package/build/adapters/eventstore/database.js +261 -58
  83. package/build/adapters/eventstore/database.js.map +1 -1
  84. package/build/adapters/eventstore/database.test.d.ts +2 -0
  85. package/build/adapters/eventstore/database.test.d.ts.map +1 -0
  86. package/build/adapters/eventstore/database.test.js +123 -0
  87. package/build/adapters/eventstore/database.test.js.map +1 -0
  88. package/build/adapters/infrastructure/local/index.d.ts +2 -2
  89. package/build/adapters/infrastructure/local/index.d.ts.map +1 -1
  90. package/build/adapters/infrastructure/local/index.js +3 -3
  91. package/build/adapters/infrastructure/local/index.js.map +1 -1
  92. package/build/adapters/logger/__tests__/json.test.d.ts +2 -0
  93. package/build/adapters/logger/__tests__/json.test.d.ts.map +1 -0
  94. package/build/adapters/logger/__tests__/json.test.js +125 -0
  95. package/build/adapters/logger/__tests__/json.test.js.map +1 -0
  96. package/build/adapters/logger/console.d.ts.map +1 -1
  97. package/build/adapters/logger/console.js +4 -2
  98. package/build/adapters/logger/console.js.map +1 -1
  99. package/build/adapters/logger/http.d.ts +3 -0
  100. package/build/adapters/logger/http.d.ts.map +1 -0
  101. package/build/adapters/logger/http.js +49 -0
  102. package/build/adapters/logger/http.js.map +1 -0
  103. package/build/adapters/logger/index.d.ts +3 -0
  104. package/build/adapters/logger/index.d.ts.map +1 -1
  105. package/build/adapters/logger/index.js +3 -0
  106. package/build/adapters/logger/index.js.map +1 -1
  107. package/build/adapters/logger/json.d.ts +3 -0
  108. package/build/adapters/logger/json.d.ts.map +1 -0
  109. package/build/adapters/logger/json.js +41 -0
  110. package/build/adapters/logger/json.js.map +1 -0
  111. package/build/adapters/logger/stdout.d.ts +3 -0
  112. package/build/adapters/logger/stdout.d.ts.map +1 -0
  113. package/build/adapters/logger/stdout.js +52 -0
  114. package/build/adapters/logger/stdout.js.map +1 -0
  115. package/build/index.d.ts +3 -1
  116. package/build/index.d.ts.map +1 -1
  117. package/build/index.js +3 -1
  118. package/build/index.js.map +1 -1
  119. package/build/libraries/deployment-units/computeMDUs.d.ts +11 -0
  120. package/build/libraries/deployment-units/computeMDUs.d.ts.map +1 -0
  121. package/build/libraries/deployment-units/computeMDUs.js +695 -0
  122. package/build/libraries/deployment-units/computeMDUs.js.map +1 -0
  123. package/build/libraries/deployment-units/computeMDUs.test.d.ts +2 -0
  124. package/build/libraries/deployment-units/computeMDUs.test.d.ts.map +1 -0
  125. package/build/libraries/deployment-units/computeMDUs.test.js +996 -0
  126. package/build/libraries/deployment-units/computeMDUs.test.js.map +1 -0
  127. package/build/libraries/deployment-units/index.d.ts +6 -0
  128. package/build/libraries/deployment-units/index.d.ts.map +1 -0
  129. package/build/libraries/deployment-units/index.js +8 -0
  130. package/build/libraries/deployment-units/index.js.map +1 -0
  131. package/build/libraries/deployment-units/manifestWriter.d.ts +11 -0
  132. package/build/libraries/deployment-units/manifestWriter.d.ts.map +1 -0
  133. package/build/libraries/deployment-units/manifestWriter.js +28 -0
  134. package/build/libraries/deployment-units/manifestWriter.js.map +1 -0
  135. package/build/libraries/deployment-units/types.d.ts +43 -0
  136. package/build/libraries/deployment-units/types.d.ts.map +1 -0
  137. package/build/libraries/deployment-units/types.js +3 -0
  138. package/build/libraries/deployment-units/types.js.map +1 -0
  139. package/build/libraries/eventsourcing/__tests__/fixtures/defaultVisibilityThings.readmodel.d.ts +2 -0
  140. package/build/libraries/eventsourcing/__tests__/fixtures/defaultVisibilityThings.readmodel.d.ts.map +1 -0
  141. package/build/libraries/eventsourcing/__tests__/fixtures/defaultVisibilityThings.readmodel.js +17 -0
  142. package/build/libraries/eventsourcing/__tests__/fixtures/defaultVisibilityThings.readmodel.js.map +1 -0
  143. package/build/libraries/eventsourcing/__tests__/fixtures/dupA/things.readmodel.d.ts +2 -0
  144. package/build/libraries/eventsourcing/__tests__/fixtures/dupA/things.readmodel.d.ts.map +1 -0
  145. package/build/libraries/eventsourcing/__tests__/fixtures/dupA/things.readmodel.js +13 -0
  146. package/build/libraries/eventsourcing/__tests__/fixtures/dupA/things.readmodel.js.map +1 -0
  147. package/build/libraries/eventsourcing/__tests__/fixtures/dupB/things.readmodel.d.ts +2 -0
  148. package/build/libraries/eventsourcing/__tests__/fixtures/dupB/things.readmodel.d.ts.map +1 -0
  149. package/build/libraries/eventsourcing/__tests__/fixtures/dupB/things.readmodel.js +12 -0
  150. package/build/libraries/eventsourcing/__tests__/fixtures/dupB/things.readmodel.js.map +1 -0
  151. package/build/libraries/eventsourcing/__tests__/fixtures/publicThings.readmodel.d.ts +2 -0
  152. package/build/libraries/eventsourcing/__tests__/fixtures/publicThings.readmodel.d.ts.map +1 -0
  153. package/build/libraries/eventsourcing/__tests__/fixtures/publicThings.readmodel.js +21 -0
  154. package/build/libraries/eventsourcing/__tests__/fixtures/publicThings.readmodel.js.map +1 -0
  155. package/build/libraries/eventsourcing/__tests__/fixtures/queryOnlyThings.readmodel.d.ts +2 -0
  156. package/build/libraries/eventsourcing/__tests__/fixtures/queryOnlyThings.readmodel.d.ts.map +1 -0
  157. package/build/libraries/eventsourcing/__tests__/fixtures/queryOnlyThings.readmodel.js +16 -0
  158. package/build/libraries/eventsourcing/__tests__/fixtures/queryOnlyThings.readmodel.js.map +1 -0
  159. package/build/libraries/eventsourcing/__tests__/fixtures/subscribingThings.readmodel.d.ts +2 -0
  160. package/build/libraries/eventsourcing/__tests__/fixtures/subscribingThings.readmodel.d.ts.map +1 -0
  161. package/build/libraries/eventsourcing/__tests__/fixtures/subscribingThings.readmodel.js +14 -0
  162. package/build/libraries/eventsourcing/__tests__/fixtures/subscribingThings.readmodel.js.map +1 -0
  163. package/build/libraries/eventsourcing/__tests__/queryOnlyReadmodel.test.d.ts +2 -0
  164. package/build/libraries/eventsourcing/__tests__/queryOnlyReadmodel.test.d.ts.map +1 -0
  165. package/build/libraries/eventsourcing/__tests__/queryOnlyReadmodel.test.js +88 -0
  166. package/build/libraries/eventsourcing/__tests__/queryOnlyReadmodel.test.js.map +1 -0
  167. package/build/libraries/eventsourcing/__tests__/queryVisibility.test.d.ts +2 -0
  168. package/build/libraries/eventsourcing/__tests__/queryVisibility.test.d.ts.map +1 -0
  169. package/build/libraries/eventsourcing/__tests__/queryVisibility.test.js +82 -0
  170. package/build/libraries/eventsourcing/__tests__/queryVisibility.test.js.map +1 -0
  171. package/build/libraries/eventsourcing/commandHandlers/index.d.ts +40 -0
  172. package/build/libraries/eventsourcing/commandHandlers/index.d.ts.map +1 -0
  173. package/build/libraries/eventsourcing/commandHandlers/index.js +1065 -0
  174. package/build/libraries/eventsourcing/commandHandlers/index.js.map +1 -0
  175. package/build/libraries/eventsourcing/commandTemplates/index.d.ts.map +1 -0
  176. package/build/libraries/eventsourcing/commandTemplates/index.js.map +1 -0
  177. package/build/libraries/eventsourcing/commandTemplates/multiStream.d.ts +7 -0
  178. package/build/libraries/eventsourcing/commandTemplates/multiStream.d.ts.map +1 -0
  179. package/build/libraries/eventsourcing/commandTemplates/multiStream.js +116 -0
  180. package/build/libraries/eventsourcing/commandTemplates/multiStream.js.map +1 -0
  181. package/build/libraries/eventsourcing/commandTemplates/snapshot.d.ts +108 -0
  182. package/build/libraries/eventsourcing/commandTemplates/snapshot.d.ts.map +1 -0
  183. package/build/libraries/eventsourcing/commandTemplates/snapshot.js +127 -0
  184. package/build/libraries/eventsourcing/commandTemplates/snapshot.js.map +1 -0
  185. package/build/libraries/eventsourcing/eventHandlers/__tests__/queryResponseFormatterCaller.test.d.ts +2 -0
  186. package/build/libraries/eventsourcing/eventHandlers/__tests__/queryResponseFormatterCaller.test.d.ts.map +1 -0
  187. package/build/libraries/eventsourcing/eventHandlers/__tests__/queryResponseFormatterCaller.test.js +77 -0
  188. package/build/libraries/eventsourcing/eventHandlers/__tests__/queryResponseFormatterCaller.test.js.map +1 -0
  189. package/build/libraries/eventsourcing/eventHandlers/index.d.ts +52 -0
  190. package/build/libraries/eventsourcing/eventHandlers/index.d.ts.map +1 -0
  191. package/build/libraries/eventsourcing/eventHandlers/index.js +474 -0
  192. package/build/libraries/eventsourcing/eventHandlers/index.js.map +1 -0
  193. package/build/libraries/eventsourcing/executionContext.d.ts +50 -0
  194. package/build/libraries/eventsourcing/executionContext.d.ts.map +1 -0
  195. package/build/libraries/eventsourcing/executionContext.js +10 -0
  196. package/build/libraries/eventsourcing/executionContext.js.map +1 -0
  197. package/build/libraries/eventsourcing/idempotencyChecks/index.d.ts +5 -0
  198. package/build/libraries/eventsourcing/idempotencyChecks/index.d.ts.map +1 -0
  199. package/build/libraries/eventsourcing/idempotencyChecks/index.js +26 -0
  200. package/build/libraries/eventsourcing/idempotencyChecks/index.js.map +1 -0
  201. package/build/libraries/eventsourcing/index.d.ts +14 -0
  202. package/build/libraries/eventsourcing/index.d.ts.map +1 -0
  203. package/build/{ports → libraries}/eventsourcing/index.js +50 -15
  204. package/build/{ports → libraries}/eventsourcing/index.js.map +1 -1
  205. package/build/libraries/eventsourcing/invariants/combinators.d.ts +4 -0
  206. package/build/libraries/eventsourcing/invariants/combinators.d.ts.map +1 -0
  207. package/build/{ports → libraries}/eventsourcing/invariants/combinators.js +3 -3
  208. package/build/libraries/eventsourcing/invariants/combinators.js.map +1 -0
  209. package/build/libraries/eventsourcing/invariants/common.d.ts +15 -0
  210. package/build/libraries/eventsourcing/invariants/common.d.ts.map +1 -0
  211. package/build/libraries/eventsourcing/invariants/common.js +27 -0
  212. package/build/libraries/eventsourcing/invariants/common.js.map +1 -0
  213. package/build/libraries/eventsourcing/invariants/comparisons.d.ts +16 -0
  214. package/build/libraries/eventsourcing/invariants/comparisons.d.ts.map +1 -0
  215. package/build/libraries/eventsourcing/invariants/comparisons.js +35 -0
  216. package/build/libraries/eventsourcing/invariants/comparisons.js.map +1 -0
  217. package/build/libraries/eventsourcing/invariants/comparisons.test.d.ts +2 -0
  218. package/build/libraries/eventsourcing/invariants/comparisons.test.d.ts.map +1 -0
  219. package/build/libraries/eventsourcing/invariants/comparisons.test.js +25 -0
  220. package/build/libraries/eventsourcing/invariants/comparisons.test.js.map +1 -0
  221. package/build/libraries/eventsourcing/invariants/index.d.ts +17 -0
  222. package/build/libraries/eventsourcing/invariants/index.d.ts.map +1 -0
  223. package/build/libraries/eventsourcing/invariants/index.js +47 -0
  224. package/build/libraries/eventsourcing/invariants/index.js.map +1 -0
  225. package/build/libraries/eventsourcing/invariants/stateExistance.d.ts +4 -0
  226. package/build/libraries/eventsourcing/invariants/stateExistance.d.ts.map +1 -0
  227. package/build/libraries/eventsourcing/invariants/stateExistance.js +22 -0
  228. package/build/libraries/eventsourcing/invariants/stateExistance.js.map +1 -0
  229. package/build/libraries/eventsourcing/subscriptions/__tests__/sseSubscriptions.test.d.ts +2 -0
  230. package/build/libraries/eventsourcing/subscriptions/__tests__/sseSubscriptions.test.d.ts.map +1 -0
  231. package/build/libraries/eventsourcing/subscriptions/__tests__/sseSubscriptions.test.js +563 -0
  232. package/build/libraries/eventsourcing/subscriptions/__tests__/sseSubscriptions.test.js.map +1 -0
  233. package/build/libraries/eventsourcing/subscriptions/index.d.ts.map +1 -0
  234. package/build/libraries/eventsourcing/subscriptions/index.js.map +1 -0
  235. package/build/libraries/eventsourcing/subscriptions/sseSubscriptions.d.ts +5 -0
  236. package/build/libraries/eventsourcing/subscriptions/sseSubscriptions.d.ts.map +1 -0
  237. package/build/libraries/eventsourcing/subscriptions/sseSubscriptions.js +198 -0
  238. package/build/libraries/eventsourcing/subscriptions/sseSubscriptions.js.map +1 -0
  239. package/build/libraries/eventsourcing/utils/aggregateBuilder.d.ts +5 -0
  240. package/build/libraries/eventsourcing/utils/aggregateBuilder.d.ts.map +1 -0
  241. package/build/{ports → libraries}/eventsourcing/utils/aggregateBuilder.js +17 -3
  242. package/build/libraries/eventsourcing/utils/aggregateBuilder.js.map +1 -0
  243. package/build/libraries/eventsourcing/utils/commandBuilder.d.ts +3 -0
  244. package/build/libraries/eventsourcing/utils/commandBuilder.d.ts.map +1 -0
  245. package/build/{ports → libraries}/eventsourcing/utils/commandBuilder.js +44 -1
  246. package/build/libraries/eventsourcing/utils/commandBuilder.js.map +1 -0
  247. package/build/{ports → libraries}/eventsourcing/utils/eventHandlerBuilder.d.ts +2 -2
  248. package/build/libraries/eventsourcing/utils/eventHandlerBuilder.d.ts.map +1 -0
  249. package/build/libraries/eventsourcing/utils/eventHandlerBuilder.js.map +1 -0
  250. package/build/libraries/eventsourcing/utils/externalSystemBuilder.d.ts +5 -0
  251. package/build/libraries/eventsourcing/utils/externalSystemBuilder.d.ts.map +1 -0
  252. package/build/libraries/eventsourcing/utils/externalSystemBuilder.js +43 -0
  253. package/build/libraries/eventsourcing/utils/externalSystemBuilder.js.map +1 -0
  254. package/build/libraries/eventsourcing/utils/index.d.ts +22 -0
  255. package/build/libraries/eventsourcing/utils/index.d.ts.map +1 -0
  256. package/build/libraries/eventsourcing/utils/index.js +88 -0
  257. package/build/libraries/eventsourcing/utils/index.js.map +1 -0
  258. package/build/libraries/eventsourcing/utils/policyBuilder.d.ts +4 -0
  259. package/build/libraries/eventsourcing/utils/policyBuilder.d.ts.map +1 -0
  260. package/build/libraries/eventsourcing/utils/policyBuilder.js +53 -0
  261. package/build/libraries/eventsourcing/utils/policyBuilder.js.map +1 -0
  262. package/build/libraries/eventsourcing/utils/readmodelBuilder.d.ts +6 -0
  263. package/build/libraries/eventsourcing/utils/readmodelBuilder.d.ts.map +1 -0
  264. package/build/libraries/eventsourcing/utils/readmodelBuilder.js +68 -0
  265. package/build/libraries/eventsourcing/utils/readmodelBuilder.js.map +1 -0
  266. package/build/libraries/localOutbox/index.d.ts +6 -0
  267. package/build/libraries/localOutbox/index.d.ts.map +1 -0
  268. package/build/libraries/localOutbox/index.js +72 -0
  269. package/build/libraries/localOutbox/index.js.map +1 -0
  270. package/build/libraries/modulePath.d.ts +14 -0
  271. package/build/libraries/modulePath.d.ts.map +1 -0
  272. package/build/libraries/modulePath.js +21 -0
  273. package/build/libraries/modulePath.js.map +1 -0
  274. package/build/libraries/modules/fs.d.ts +2 -4
  275. package/build/libraries/modules/fs.d.ts.map +1 -1
  276. package/build/libraries/modules/fs.js +21 -84
  277. package/build/libraries/modules/fs.js.map +1 -1
  278. package/build/libraries/modules/index.d.ts +2 -0
  279. package/build/libraries/modules/index.d.ts.map +1 -1
  280. package/build/libraries/modules/index.js +2 -0
  281. package/build/libraries/modules/index.js.map +1 -1
  282. package/build/libraries/modules/scopedPortsView.d.ts +42 -0
  283. package/build/libraries/modules/scopedPortsView.d.ts.map +1 -0
  284. package/build/libraries/modules/scopedPortsView.js +55 -0
  285. package/build/libraries/modules/scopedPortsView.js.map +1 -0
  286. package/build/libraries/modules/scopedPortsView.test.d.ts +10 -0
  287. package/build/libraries/modules/scopedPortsView.test.d.ts.map +1 -0
  288. package/build/libraries/modules/scopedPortsView.test.js +103 -0
  289. package/build/libraries/modules/scopedPortsView.test.js.map +1 -0
  290. package/build/libraries/modules/selectiveLoader.d.ts +21 -0
  291. package/build/libraries/modules/selectiveLoader.d.ts.map +1 -0
  292. package/build/libraries/modules/selectiveLoader.js +164 -0
  293. package/build/libraries/modules/selectiveLoader.js.map +1 -0
  294. package/build/libraries/modules/selectiveLoader.test.d.ts +2 -0
  295. package/build/libraries/modules/selectiveLoader.test.d.ts.map +1 -0
  296. package/build/libraries/modules/selectiveLoader.test.js +471 -0
  297. package/build/libraries/modules/selectiveLoader.test.js.map +1 -0
  298. package/build/libraries/openApi/pruneUnusedRef.d.ts.map +1 -1
  299. package/build/libraries/openApi/pruneUnusedRef.js.map +1 -1
  300. package/build/libraries/tcp/index.d.ts +0 -1
  301. package/build/libraries/tcp/index.d.ts.map +1 -1
  302. package/build/libraries/tcp/index.js +32 -9
  303. package/build/libraries/tcp/index.js.map +1 -1
  304. package/build/libraries/tcp/types.d.ts +0 -1
  305. package/build/libraries/tcp/types.d.ts.map +1 -1
  306. package/build/libraries/validation/__tests__/readmodelQuerySchema.test.d.ts +2 -0
  307. package/build/libraries/validation/__tests__/readmodelQuerySchema.test.d.ts.map +1 -0
  308. package/build/libraries/validation/__tests__/readmodelQuerySchema.test.js +100 -0
  309. package/build/libraries/validation/__tests__/readmodelQuerySchema.test.js.map +1 -0
  310. package/build/libraries/validation/__tests__/validation.test.js +17 -7
  311. package/build/libraries/validation/__tests__/validation.test.js.map +1 -1
  312. package/build/libraries/validation/index.d.ts +3 -3
  313. package/build/libraries/validation/index.d.ts.map +1 -1
  314. package/build/libraries/validation/index.js +49 -15
  315. package/build/libraries/validation/index.js.map +1 -1
  316. package/build/ports/authentication/index.js.map +1 -1
  317. package/build/ports/authentication/index.test.d.ts +2 -0
  318. package/build/ports/authentication/index.test.d.ts.map +1 -0
  319. package/build/ports/authentication/index.test.js +38 -0
  320. package/build/ports/authentication/index.test.js.map +1 -0
  321. package/build/ports/base.d.ts.map +1 -1
  322. package/build/ports/base.js +39 -5
  323. package/build/ports/base.js.map +1 -1
  324. package/build/ports/base.test.d.ts +2 -0
  325. package/build/ports/base.test.d.ts.map +1 -0
  326. package/build/ports/base.test.js +92 -0
  327. package/build/ports/base.test.js.map +1 -0
  328. package/build/ports/cache/index.js.map +1 -1
  329. package/build/ports/cache/index.test.d.ts +2 -0
  330. package/build/ports/cache/index.test.d.ts.map +1 -0
  331. package/build/ports/cache/index.test.js +43 -0
  332. package/build/ports/cache/index.test.js.map +1 -0
  333. package/build/ports/configuration/__tests__/cliArgs.test.d.ts +2 -0
  334. package/build/ports/configuration/__tests__/cliArgs.test.d.ts.map +1 -0
  335. package/build/ports/configuration/__tests__/cliArgs.test.js +158 -0
  336. package/build/ports/configuration/__tests__/cliArgs.test.js.map +1 -0
  337. package/build/ports/configuration/__tests__/configurationPortEmitter.test.d.ts +2 -0
  338. package/build/ports/configuration/__tests__/configurationPortEmitter.test.d.ts.map +1 -0
  339. package/build/ports/configuration/__tests__/configurationPortEmitter.test.js +63 -0
  340. package/build/ports/configuration/__tests__/configurationPortEmitter.test.js.map +1 -0
  341. package/build/ports/configuration/__tests__/getArgsSync.test.d.ts +2 -0
  342. package/build/ports/configuration/__tests__/getArgsSync.test.d.ts.map +1 -0
  343. package/build/ports/configuration/__tests__/getArgsSync.test.js +85 -0
  344. package/build/ports/configuration/__tests__/getArgsSync.test.js.map +1 -0
  345. package/build/ports/configuration/args.d.ts +50 -43
  346. package/build/ports/configuration/args.d.ts.map +1 -1
  347. package/build/ports/configuration/args.js +76 -13
  348. package/build/ports/configuration/args.js.map +1 -1
  349. package/build/ports/configuration/common.js +1 -2
  350. package/build/ports/configuration/common.js.map +1 -1
  351. package/build/ports/configuration/index.d.ts +1 -1
  352. package/build/ports/configuration/index.d.ts.map +1 -1
  353. package/build/ports/configuration/index.js +85 -17
  354. package/build/ports/configuration/index.js.map +1 -1
  355. package/build/ports/configuration/localConfig.d.ts.map +1 -1
  356. package/build/ports/configuration/localConfig.js +46 -27
  357. package/build/ports/configuration/localConfig.js.map +1 -1
  358. package/build/ports/database/index.d.ts +1 -2
  359. package/build/ports/database/index.d.ts.map +1 -1
  360. package/build/ports/database/index.js +23 -17
  361. package/build/ports/database/index.js.map +1 -1
  362. package/build/ports/database/index.test.d.ts +2 -0
  363. package/build/ports/database/index.test.d.ts.map +1 -0
  364. package/build/ports/database/index.test.js +43 -0
  365. package/build/ports/database/index.test.js.map +1 -0
  366. package/build/ports/endpoints/__tests__/declarationSite.test.d.ts +2 -0
  367. package/build/ports/endpoints/__tests__/declarationSite.test.d.ts.map +1 -0
  368. package/build/ports/endpoints/__tests__/declarationSite.test.js +165 -0
  369. package/build/ports/endpoints/__tests__/declarationSite.test.js.map +1 -0
  370. package/build/ports/endpoints/__tests__/fixtures/modules/sales/appLoginUrl.d.ts +9 -0
  371. package/build/ports/endpoints/__tests__/fixtures/modules/sales/appLoginUrl.d.ts.map +1 -0
  372. package/build/ports/endpoints/__tests__/fixtures/modules/sales/appLoginUrl.js +20 -0
  373. package/build/ports/endpoints/__tests__/fixtures/modules/sales/appLoginUrl.js.map +1 -0
  374. package/build/ports/endpoints/__tests__/fixtures/modules/sales/index.d.ts +10 -0
  375. package/build/ports/endpoints/__tests__/fixtures/modules/sales/index.d.ts.map +1 -0
  376. package/build/ports/endpoints/__tests__/fixtures/modules/sales/index.js +21 -0
  377. package/build/ports/endpoints/__tests__/fixtures/modules/sales/index.js.map +1 -0
  378. package/build/ports/endpoints/__tests__/fixtures/modules/sales/orders.endpoints.d.ts +15 -0
  379. package/build/ports/endpoints/__tests__/fixtures/modules/sales/orders.endpoints.d.ts.map +1 -0
  380. package/build/ports/endpoints/__tests__/fixtures/modules/sales/orders.endpoints.js +46 -0
  381. package/build/ports/endpoints/__tests__/fixtures/modules/sales/orders.endpoints.js.map +1 -0
  382. package/build/ports/endpoints/__tests__/manifestEndpoints.test.d.ts +2 -0
  383. package/build/ports/endpoints/__tests__/manifestEndpoints.test.d.ts.map +1 -0
  384. package/build/ports/endpoints/__tests__/manifestEndpoints.test.js +117 -0
  385. package/build/ports/endpoints/__tests__/manifestEndpoints.test.js.map +1 -0
  386. package/build/ports/endpoints/declarationSite.d.ts +63 -0
  387. package/build/ports/endpoints/declarationSite.d.ts.map +1 -0
  388. package/build/ports/endpoints/declarationSite.js +126 -0
  389. package/build/ports/endpoints/declarationSite.js.map +1 -0
  390. package/build/ports/endpoints/health.d.ts +26 -0
  391. package/build/ports/endpoints/health.d.ts.map +1 -0
  392. package/build/ports/endpoints/health.js +96 -0
  393. package/build/ports/endpoints/health.js.map +1 -0
  394. package/build/ports/endpoints/index.d.ts +43 -7
  395. package/build/ports/endpoints/index.d.ts.map +1 -1
  396. package/build/ports/endpoints/index.js +317 -67
  397. package/build/ports/endpoints/index.js.map +1 -1
  398. package/build/ports/endpoints/openApi.d.ts +3 -2
  399. package/build/ports/endpoints/openApi.d.ts.map +1 -1
  400. package/build/ports/endpoints/openApi.js +184 -55
  401. package/build/ports/endpoints/openApi.js.map +1 -1
  402. package/build/ports/endpoints/utils.d.ts.map +1 -1
  403. package/build/ports/endpoints/utils.js.map +1 -1
  404. package/build/ports/eventstore/index.d.ts.map +1 -1
  405. package/build/ports/eventstore/index.js +37 -5
  406. package/build/ports/eventstore/index.js.map +1 -1
  407. package/build/ports/eventstore/index.test.d.ts +2 -0
  408. package/build/ports/eventstore/index.test.d.ts.map +1 -0
  409. package/build/ports/eventstore/index.test.js +68 -0
  410. package/build/ports/eventstore/index.test.js.map +1 -0
  411. package/build/ports/infrastructure/index.d.ts +61 -23
  412. package/build/ports/infrastructure/index.d.ts.map +1 -1
  413. package/build/ports/infrastructure/index.js +187 -37
  414. package/build/ports/infrastructure/index.js.map +1 -1
  415. package/build/ports/infrastructure/index.test.d.ts +2 -0
  416. package/build/ports/infrastructure/index.test.d.ts.map +1 -0
  417. package/build/ports/infrastructure/index.test.js +228 -0
  418. package/build/ports/infrastructure/index.test.js.map +1 -0
  419. package/build/ports/infrastructure/utils.d.ts +2 -1
  420. package/build/ports/infrastructure/utils.d.ts.map +1 -1
  421. package/build/ports/infrastructure/utils.js +48 -22
  422. package/build/ports/infrastructure/utils.js.map +1 -1
  423. package/build/ports/logger/__tests__/logger.test.d.ts +2 -0
  424. package/build/ports/logger/__tests__/logger.test.d.ts.map +1 -0
  425. package/build/ports/logger/__tests__/logger.test.js +69 -0
  426. package/build/ports/logger/__tests__/logger.test.js.map +1 -0
  427. package/build/ports/logger/index.d.ts.map +1 -1
  428. package/build/ports/logger/index.js +3 -2
  429. package/build/ports/logger/index.js.map +1 -1
  430. package/build/utils/__tests__/applyCollectionFilterInMemory.test.d.ts +2 -0
  431. package/build/utils/__tests__/applyCollectionFilterInMemory.test.d.ts.map +1 -0
  432. package/build/utils/__tests__/applyCollectionFilterInMemory.test.js +33 -0
  433. package/build/utils/__tests__/applyCollectionFilterInMemory.test.js.map +1 -0
  434. package/build/utils/__tests__/decodeObjectQueryParams.test.d.ts +2 -0
  435. package/build/utils/__tests__/decodeObjectQueryParams.test.d.ts.map +1 -0
  436. package/build/utils/__tests__/decodeObjectQueryParams.test.js +118 -0
  437. package/build/utils/__tests__/decodeObjectQueryParams.test.js.map +1 -0
  438. package/build/utils/index.d.ts +26 -34
  439. package/build/utils/index.d.ts.map +1 -1
  440. package/build/utils/index.js +159 -170
  441. package/build/utils/index.js.map +1 -1
  442. package/package.json +31 -11
  443. package/build/adapters/cache/memory/__tests__/memoryCache.test.d.ts +0 -1
  444. package/build/adapters/cache/memory/__tests__/memoryCache.test.d.ts.map +0 -1
  445. package/build/adapters/cache/memory/__tests__/memoryCache.test.js +0 -6
  446. package/build/adapters/cache/memory/__tests__/memoryCache.test.js.map +0 -1
  447. package/build/adapters/database/memory/__tests__/memoryDb.test.d.ts +0 -1
  448. package/build/adapters/database/memory/__tests__/memoryDb.test.d.ts.map +0 -1
  449. package/build/adapters/database/memory/__tests__/memoryDb.test.js +0 -36
  450. package/build/adapters/database/memory/__tests__/memoryDb.test.js.map +0 -1
  451. package/build/ports/endpoints/__tests__/endpointsCall.test.d.ts +0 -2
  452. package/build/ports/endpoints/__tests__/endpointsCall.test.d.ts.map +0 -1
  453. package/build/ports/endpoints/__tests__/endpointsCall.test.js +0 -21
  454. package/build/ports/endpoints/__tests__/endpointsCall.test.js.map +0 -1
  455. package/build/ports/endpoints/__tests__/test-client-library/base.d.ts +0 -77
  456. package/build/ports/endpoints/__tests__/test-client-library/base.d.ts.map +0 -1
  457. package/build/ports/endpoints/__tests__/test-client-library/base.js +0 -91
  458. package/build/ports/endpoints/__tests__/test-client-library/base.js.map +0 -1
  459. package/build/ports/endpoints/__tests__/test-client-library/index.d.ts +0 -29
  460. package/build/ports/endpoints/__tests__/test-client-library/index.d.ts.map +0 -1
  461. package/build/ports/endpoints/__tests__/test-client-library/index.js +0 -43
  462. package/build/ports/endpoints/__tests__/test-client-library/index.js.map +0 -1
  463. package/build/ports/endpoints/__tests__/test-client-library/services/service.d.ts +0 -106
  464. package/build/ports/endpoints/__tests__/test-client-library/services/service.d.ts.map +0 -1
  465. package/build/ports/endpoints/__tests__/test-client-library/services/service.js +0 -62
  466. package/build/ports/endpoints/__tests__/test-client-library/services/service.js.map +0 -1
  467. package/build/ports/endpoints/__tests__/utils.test.d.ts +0 -1
  468. package/build/ports/endpoints/__tests__/utils.test.d.ts.map +0 -1
  469. package/build/ports/endpoints/__tests__/utils.test.js +0 -53
  470. package/build/ports/endpoints/__tests__/utils.test.js.map +0 -1
  471. package/build/ports/eventsourcing/__tests__/eventhandlers.test.d.ts +0 -2
  472. package/build/ports/eventsourcing/__tests__/eventhandlers.test.d.ts.map +0 -1
  473. package/build/ports/eventsourcing/__tests__/eventhandlers.test.js +0 -35
  474. package/build/ports/eventsourcing/__tests__/eventhandlers.test.js.map +0 -1
  475. package/build/ports/eventsourcing/__tests__/invariants.test.d.ts +0 -2
  476. package/build/ports/eventsourcing/__tests__/invariants.test.d.ts.map +0 -1
  477. package/build/ports/eventsourcing/__tests__/invariants.test.js +0 -210
  478. package/build/ports/eventsourcing/__tests__/invariants.test.js.map +0 -1
  479. package/build/ports/eventsourcing/commandHandlers/index.d.ts +0 -25
  480. package/build/ports/eventsourcing/commandHandlers/index.d.ts.map +0 -1
  481. package/build/ports/eventsourcing/commandHandlers/index.js +0 -392
  482. package/build/ports/eventsourcing/commandHandlers/index.js.map +0 -1
  483. package/build/ports/eventsourcing/commandTemplates/index.d.ts.map +0 -1
  484. package/build/ports/eventsourcing/commandTemplates/index.js.map +0 -1
  485. package/build/ports/eventsourcing/commandTemplates/multiStream.d.ts +0 -4
  486. package/build/ports/eventsourcing/commandTemplates/multiStream.d.ts.map +0 -1
  487. package/build/ports/eventsourcing/commandTemplates/multiStream.js +0 -73
  488. package/build/ports/eventsourcing/commandTemplates/multiStream.js.map +0 -1
  489. package/build/ports/eventsourcing/commandTemplates/snapshot.d.ts +0 -9
  490. package/build/ports/eventsourcing/commandTemplates/snapshot.d.ts.map +0 -1
  491. package/build/ports/eventsourcing/commandTemplates/snapshot.js +0 -39
  492. package/build/ports/eventsourcing/commandTemplates/snapshot.js.map +0 -1
  493. package/build/ports/eventsourcing/eventHandlers/index.d.ts +0 -33
  494. package/build/ports/eventsourcing/eventHandlers/index.d.ts.map +0 -1
  495. package/build/ports/eventsourcing/eventHandlers/index.js +0 -276
  496. package/build/ports/eventsourcing/eventHandlers/index.js.map +0 -1
  497. package/build/ports/eventsourcing/index.d.ts +0 -9
  498. package/build/ports/eventsourcing/index.d.ts.map +0 -1
  499. package/build/ports/eventsourcing/invariants/combinators.d.ts +0 -4
  500. package/build/ports/eventsourcing/invariants/combinators.d.ts.map +0 -1
  501. package/build/ports/eventsourcing/invariants/combinators.js.map +0 -1
  502. package/build/ports/eventsourcing/invariants/common.d.ts +0 -10
  503. package/build/ports/eventsourcing/invariants/common.d.ts.map +0 -1
  504. package/build/ports/eventsourcing/invariants/common.js +0 -37
  505. package/build/ports/eventsourcing/invariants/common.js.map +0 -1
  506. package/build/ports/eventsourcing/invariants/comparisons.d.ts +0 -19
  507. package/build/ports/eventsourcing/invariants/comparisons.d.ts.map +0 -1
  508. package/build/ports/eventsourcing/invariants/comparisons.js +0 -83
  509. package/build/ports/eventsourcing/invariants/comparisons.js.map +0 -1
  510. package/build/ports/eventsourcing/invariants/index.d.ts +0 -5
  511. package/build/ports/eventsourcing/invariants/index.d.ts.map +0 -1
  512. package/build/ports/eventsourcing/invariants/index.js +0 -21
  513. package/build/ports/eventsourcing/invariants/index.js.map +0 -1
  514. package/build/ports/eventsourcing/invariants/stateExistance.d.ts +0 -4
  515. package/build/ports/eventsourcing/invariants/stateExistance.d.ts.map +0 -1
  516. package/build/ports/eventsourcing/invariants/stateExistance.js +0 -33
  517. package/build/ports/eventsourcing/invariants/stateExistance.js.map +0 -1
  518. package/build/ports/eventsourcing/subscriptions/index.d.ts.map +0 -1
  519. package/build/ports/eventsourcing/subscriptions/index.js.map +0 -1
  520. package/build/ports/eventsourcing/subscriptions/sseSubscriptions.d.ts +0 -3
  521. package/build/ports/eventsourcing/subscriptions/sseSubscriptions.d.ts.map +0 -1
  522. package/build/ports/eventsourcing/subscriptions/sseSubscriptions.js +0 -81
  523. package/build/ports/eventsourcing/subscriptions/sseSubscriptions.js.map +0 -1
  524. package/build/ports/eventsourcing/utils/aggregateBuilder.d.ts +0 -4
  525. package/build/ports/eventsourcing/utils/aggregateBuilder.d.ts.map +0 -1
  526. package/build/ports/eventsourcing/utils/aggregateBuilder.js.map +0 -1
  527. package/build/ports/eventsourcing/utils/commandBuilder.d.ts +0 -3
  528. package/build/ports/eventsourcing/utils/commandBuilder.d.ts.map +0 -1
  529. package/build/ports/eventsourcing/utils/commandBuilder.js.map +0 -1
  530. package/build/ports/eventsourcing/utils/eventHandlerBuilder.d.ts.map +0 -1
  531. package/build/ports/eventsourcing/utils/eventHandlerBuilder.js.map +0 -1
  532. package/build/ports/eventsourcing/utils/externalSystemBuilder.d.ts +0 -4
  533. package/build/ports/eventsourcing/utils/externalSystemBuilder.d.ts.map +0 -1
  534. package/build/ports/eventsourcing/utils/externalSystemBuilder.js +0 -34
  535. package/build/ports/eventsourcing/utils/externalSystemBuilder.js.map +0 -1
  536. package/build/ports/eventsourcing/utils/index.d.ts +0 -13
  537. package/build/ports/eventsourcing/utils/index.d.ts.map +0 -1
  538. package/build/ports/eventsourcing/utils/index.js +0 -45
  539. package/build/ports/eventsourcing/utils/index.js.map +0 -1
  540. package/build/ports/eventsourcing/utils/policyBuilder.d.ts +0 -3
  541. package/build/ports/eventsourcing/utils/policyBuilder.d.ts.map +0 -1
  542. package/build/ports/eventsourcing/utils/policyBuilder.js +0 -29
  543. package/build/ports/eventsourcing/utils/policyBuilder.js.map +0 -1
  544. package/build/ports/eventsourcing/utils/readmodelBuilder.d.ts +0 -5
  545. package/build/ports/eventsourcing/utils/readmodelBuilder.d.ts.map +0 -1
  546. package/build/ports/eventsourcing/utils/readmodelBuilder.js +0 -45
  547. package/build/ports/eventsourcing/utils/readmodelBuilder.js.map +0 -1
  548. package/build/ports/infrastructure/__tests__/fixture/index.d.ts +0 -3
  549. package/build/ports/infrastructure/__tests__/fixture/index.d.ts.map +0 -1
  550. package/build/ports/infrastructure/__tests__/fixture/index.js +0 -19
  551. package/build/ports/infrastructure/__tests__/fixture/index.js.map +0 -1
  552. package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.d.ts +0 -19
  553. package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.d.ts.map +0 -1
  554. package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.js +0 -76
  555. package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.js.map +0 -1
  556. package/build/ports/infrastructure/__tests__/fixture/structureState.d.ts +0 -177
  557. package/build/ports/infrastructure/__tests__/fixture/structureState.d.ts.map +0 -1
  558. package/build/ports/infrastructure/__tests__/fixture/structureState.js +0 -258
  559. package/build/ports/infrastructure/__tests__/fixture/structureState.js.map +0 -1
  560. package/build/ports/infrastructure/__tests__/infrastructure.test.d.ts +0 -2
  561. package/build/ports/infrastructure/__tests__/infrastructure.test.d.ts.map +0 -1
  562. package/build/ports/infrastructure/__tests__/infrastructure.test.js +0 -11
  563. package/build/ports/infrastructure/__tests__/infrastructure.test.js.map +0 -1
  564. package/src/adapters/cache/index.ts +0 -1
  565. package/src/adapters/cache/memory/__tests__/memoryCache.test.ts +0 -6
  566. package/src/adapters/cache/memory/index.ts +0 -142
  567. package/src/adapters/configuration/__tests__/.env +0 -4
  568. package/src/adapters/configuration/__tests__/dotEnv.test.ts +0 -38
  569. package/src/adapters/configuration/dotEnv.ts +0 -33
  570. package/src/adapters/configuration/index.ts +0 -1
  571. package/src/adapters/database/index.ts +0 -1
  572. package/src/adapters/database/memory/__tests__/memoryDb.test.ts +0 -37
  573. package/src/adapters/database/memory/index.ts +0 -279
  574. package/src/adapters/endpoints/addAuthUser/index.ts +0 -55
  575. package/src/adapters/endpoints/endpointValidation/index.ts +0 -26
  576. package/src/adapters/endpoints/index.ts +0 -4
  577. package/src/adapters/endpoints/localAuthorization/index.ts +0 -75
  578. package/src/adapters/endpoints/tcpConsumer/index.ts +0 -69
  579. package/src/adapters/endpoints/userSession/index.ts +0 -40
  580. package/src/adapters/eventstore/database.ts +0 -178
  581. package/src/adapters/eventstore/index.ts +0 -1
  582. package/src/adapters/infrastructure/index.ts +0 -1
  583. package/src/adapters/infrastructure/local/index.ts +0 -40
  584. package/src/adapters/logger/console.ts +0 -42
  585. package/src/adapters/logger/index.ts +0 -1
  586. package/src/index.ts +0 -25
  587. package/src/libraries/modules/fs.ts +0 -88
  588. package/src/libraries/modules/index.ts +0 -1
  589. package/src/libraries/openApi/index.ts +0 -1
  590. package/src/libraries/openApi/pruneUnusedRef.ts +0 -35
  591. package/src/libraries/tcp/index.ts +0 -98
  592. package/src/libraries/tcp/types.ts +0 -43
  593. package/src/libraries/validation/__tests__/validation.test.ts +0 -25
  594. package/src/libraries/validation/index.ts +0 -48
  595. package/src/ports/authentication/index.ts +0 -25
  596. package/src/ports/base.ts +0 -20
  597. package/src/ports/cache/index.ts +0 -17
  598. package/src/ports/configuration/__tests__/configurationPort.test.ts +0 -47
  599. package/src/ports/configuration/args.ts +0 -39
  600. package/src/ports/configuration/common.ts +0 -12
  601. package/src/ports/configuration/index.ts +0 -110
  602. package/src/ports/configuration/localConfig.ts +0 -117
  603. package/src/ports/database/index.ts +0 -25
  604. package/src/ports/endpoints/__tests__/endpointsCall.test.ts +0 -20
  605. package/src/ports/endpoints/__tests__/test-client-library/base.ts +0 -167
  606. package/src/ports/endpoints/__tests__/test-client-library/index.ts +0 -23
  607. package/src/ports/endpoints/__tests__/test-client-library/services/service.ts +0 -181
  608. package/src/ports/endpoints/__tests__/utils.test.ts +0 -54
  609. package/src/ports/endpoints/index.ts +0 -272
  610. package/src/ports/endpoints/openApi.ts +0 -191
  611. package/src/ports/endpoints/utils.ts +0 -31
  612. package/src/ports/eventsourcing/__tests__/eventhandlers.test.ts +0 -30
  613. package/src/ports/eventsourcing/__tests__/invariants.test.ts +0 -213
  614. package/src/ports/eventsourcing/commandHandlers/index.ts +0 -625
  615. package/src/ports/eventsourcing/commandTemplates/index.ts +0 -2
  616. package/src/ports/eventsourcing/commandTemplates/multiStream.ts +0 -70
  617. package/src/ports/eventsourcing/commandTemplates/snapshot.ts +0 -43
  618. package/src/ports/eventsourcing/eventHandlers/index.ts +0 -429
  619. package/src/ports/eventsourcing/index.ts +0 -98
  620. package/src/ports/eventsourcing/invariants/combinators.ts +0 -25
  621. package/src/ports/eventsourcing/invariants/common.ts +0 -42
  622. package/src/ports/eventsourcing/invariants/comparisons.ts +0 -90
  623. package/src/ports/eventsourcing/invariants/index.ts +0 -4
  624. package/src/ports/eventsourcing/invariants/stateExistance.ts +0 -34
  625. package/src/ports/eventsourcing/subscriptions/index.ts +0 -1
  626. package/src/ports/eventsourcing/subscriptions/sseSubscriptions.ts +0 -103
  627. package/src/ports/eventsourcing/utils/aggregateBuilder.ts +0 -49
  628. package/src/ports/eventsourcing/utils/commandBuilder.ts +0 -113
  629. package/src/ports/eventsourcing/utils/eventHandlerBuilder.ts +0 -22
  630. package/src/ports/eventsourcing/utils/externalSystemBuilder.ts +0 -42
  631. package/src/ports/eventsourcing/utils/index.ts +0 -25
  632. package/src/ports/eventsourcing/utils/policyBuilder.ts +0 -31
  633. package/src/ports/eventsourcing/utils/readmodelBuilder.ts +0 -52
  634. package/src/ports/eventstore/index.ts +0 -11
  635. package/src/ports/infrastructure/__tests__/fixture/index.ts +0 -2
  636. package/src/ports/infrastructure/__tests__/fixture/infrastructureServices.ts +0 -72
  637. package/src/ports/infrastructure/__tests__/fixture/structureState.ts +0 -254
  638. package/src/ports/infrastructure/__tests__/infrastructure.test.ts +0 -11
  639. package/src/ports/infrastructure/index.ts +0 -162
  640. package/src/ports/infrastructure/utils.ts +0 -130
  641. package/src/ports/logger/index.ts +0 -34
  642. package/src/utils/index.ts +0 -186
  643. package/tsconfig.json +0 -19
  644. /package/build/{ports → libraries}/eventsourcing/commandTemplates/index.d.ts +0 -0
  645. /package/build/{ports → libraries}/eventsourcing/commandTemplates/index.js +0 -0
  646. /package/build/{ports → libraries}/eventsourcing/subscriptions/index.d.ts +0 -0
  647. /package/build/{ports → libraries}/eventsourcing/subscriptions/index.js +0 -0
  648. /package/build/{ports → libraries}/eventsourcing/utils/eventHandlerBuilder.js +0 -0
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DatabaseEventstore = void 0;
4
4
  const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
5
+ const pv3_types_1 = require("@bett3r-dev/pv3-types");
5
6
  const ramda_1 = require("ramda");
7
+ const uuidv7_1 = require("uuidv7");
6
8
  const __1 = require("../..");
7
9
  const base_1 = require("../../ports/base");
8
10
  const DatabaseEventstore = (config, loggerPort, database) => {
@@ -12,8 +14,16 @@ const DatabaseEventstore = (config, loggerPort, database) => {
12
14
  database.onStarted(() => {
13
15
  const eventstoreCollection = database.getCollection(collection);
14
16
  Promise.resolve()
15
- .then(() => eventstoreCollection.ensureIndex(['stream', 'version'], { isUnique: true }))
17
+ .then(() => eventstoreCollection.ensureIndex({ stream: {}, version: { isNumeric: true } }, { isUnique: true }))
16
18
  .then(() => eventstoreCollection.ensureIndex(['id'], { isUnique: true }))
19
+ // `position` is NUMERIC so the generated column is `bigint`, not the
20
+ // default `text`. With a text column, `ORDER BY position` sorts
21
+ // lexicographically, corrupting aggregate replay when positions span
22
+ // different digit-lengths. MemoryDb sorts numerically, hiding this.
23
+ // `version` has the same latent text-sort bug in the latest-version
24
+ // lookup used by `appendToStream` — fixed by the Record form above
25
+ // which marks version as `bigint` while keeping stream as `text`.
26
+ .then(() => eventstoreCollection.ensureIndex(['position'], { isUnique: true, isNumeric: true }))
17
27
  .then(() => eventstoreCollection.ensureIndex(['name']))
18
28
  .then(() => eventstoreCollection.ensureIndex(['metadata.correlationId']))
19
29
  .then(() => {
@@ -26,105 +36,292 @@ const DatabaseEventstore = (config, loggerPort, database) => {
26
36
  const createEventToCommit = (stream, actualVersion) => ({ name, data, metadata, stream: eventCommit }, index) => {
27
37
  return getNextEventPosition()
28
38
  .then((commit = 1) => ({
29
- id: commit,
39
+ id: (0, uuidv7_1.uuidv7)(),
40
+ position: commit,
30
41
  name,
31
- version: actualVersion + index + 1,
42
+ version: actualVersion === null ? null : actualVersion + index + 1,
32
43
  timestamp: new Date().toISOString(),
33
44
  data,
34
45
  stream: eventCommit || stream,
35
46
  metadata: {
36
- ...metadata,
47
+ ...metadata
37
48
  }
38
49
  }));
39
50
  };
40
- const validateExpectedVersion = (expectedVersion) => (actualVersion) => {
41
- if (expectedVersion === undefined || expectedVersion === actualVersion)
51
+ const createEventsToCommit = (stream, events) => (actualVersion) => (0, bett3r_utils_1.ensureArray)(events)
52
+ .reduce(async (eventsToCommitPromise, event, index) => {
53
+ const eventsToCommit = await eventsToCommitPromise;
54
+ return [...eventsToCommit, await createEventToCommit(stream, actualVersion)(event, index)];
55
+ }, Promise.resolve([]));
56
+ const validateExpectedVersion = (stream, expectedVersion, eventToCommit) => (actualVersion) => {
57
+ if (expectedVersion === undefined)
58
+ return Promise.resolve(actualVersion);
59
+ if (expectedVersion === null)
60
+ return Promise.resolve(null);
61
+ if (expectedVersion === actualVersion)
42
62
  return Promise.resolve(actualVersion);
43
63
  else
44
- return Promise.reject((0, __1.createError)((0, __1.ConcurrencyError)(), {
45
- details: {
46
- expectedVersion: expectedVersion.toString(),
47
- actualVersion: actualVersion.toString()
48
- }
64
+ // `stream` is on the details on purpose, and mirrors what
65
+ // pv3-adapter-eventstore-postgres reports. It is the ONE field that makes this class of
66
+ // conflict diagnosable — every consumer of it (`executeCommand` logs `err.details?.stream`
67
+ // on every retry, on the refuse-to-retry branch and on exhaustion) read `undefined` here,
68
+ // so a whole family of failures logged as "on stream undefined" and named nothing.
69
+ return Promise.reject(new pv3_types_1.ConcurrencyError('Concurrency Error', 'CONCURRENCY_ERROR', {
70
+ event: eventToCommit || { stream, version: actualVersion + 1 },
71
+ stream,
72
+ expectedVersion: expectedVersion.toString(),
73
+ actualVersion: actualVersion.toString()
49
74
  }));
50
75
  };
51
76
  const ensureNumber = (value) => value ? Number(value) : 0;
52
- const extractAndValidateExpectedVersion = (expectedVersion) => (event) => {
77
+ const extractVersion = (event) => {
78
+ if (!event)
79
+ return 0;
80
+ return ensureNumber((0, ramda_1.pathOr)('0', ['version'], event));
81
+ };
82
+ const extractAndValidateExpectedVersion = (stream, expectedVersion) => (event) => {
83
+ // If expectedVersion is explicitly null, return null (for versionless streams)
84
+ if (expectedVersion === null)
85
+ return Promise.resolve(null);
86
+ // If no event exists, start at version 0
87
+ if (!event)
88
+ return Promise.resolve(0);
53
89
  return Promise.resolve(event)
54
90
  .then((0, ramda_1.pathOr)('0', ['version']))
55
91
  .then(ensureNumber)
56
- .then(validateExpectedVersion(expectedVersion));
92
+ .then(validateExpectedVersion(stream, expectedVersion, event));
57
93
  };
58
- const appendToStream = (stream, events, expectedVersion, transaction) => {
94
+ // A DuplicatedValueInIndexError surfacing from createMany inside
95
+ // appendToStream / appendToMultipleStreams is always the (stream,version)
96
+ // version race — never a spurious id/position collision. We map *any* such
97
+ // error (rather than sniffing err.details, whose shape is adapter-specific)
98
+ // because it is provably safe here:
99
+ // - id is a fresh uuidv7 and position a fresh atomic counter, both
100
+ // regenerated on every (re)build, so an id/position collision cannot
101
+ // recur across the command-handler's <=10 retries — it self-heals on the
102
+ // next attempt or exhausts the retries and rethrows.
103
+ // - the expectedVersion pre-check (validateExpectedVersion) throws its own
104
+ // ConcurrencyError BEFORE createMany, so a createMany-level violation only
105
+ // occurs when two writers both passed the pre-check and genuinely raced.
106
+ // Re-throwing ConcurrencyError with a distinct EVENTSTORE_VERSION_RACE code
107
+ // converges this generic adapter with pv3-adapter-eventstore-postgres (which
108
+ // surfaces the same race as ConcurrencyError), so the command-handler retry
109
+ // keyed on `err.type === 'ConcurrencyError'` fires and the losing writer
110
+ // re-reads and re-appends instead of dying.
111
+ const remapVersionRace = (events) => (err) => {
112
+ if (err instanceof pv3_types_1.DuplicatedValueInIndexError)
113
+ throw new pv3_types_1.ConcurrencyError('Concurrency Error', 'EVENTSTORE_VERSION_RACE', {
114
+ event: events[0],
115
+ expectedVersion: String(Number(events[0]?.version ?? 0) - 1),
116
+ actualVersion: String(events[0]?.version ?? 0),
117
+ stream: events[0]?.stream
118
+ });
119
+ throw err;
120
+ };
121
+ // THE head-version lookup — the ONLY place this query lives. BOTH append paths
122
+ // (`appendToStream`, `appendToMultipleStreams`) ask it at COMMIT time to number what they
123
+ // write; `getStreamVersion` exposes the same question so a caller can take the head at LOAD
124
+ // time and assert it back as `expectedVersion`. One implementation, so they can never answer
125
+ // differently — an expectation asserted at load against a differently-computed head would be
126
+ // unsatisfiable at commit and retry forever.
127
+ //
128
+ // Reads through the transaction's collection when given one (mirroring `reduceMultipleStream`)
129
+ // so a caller inside a transaction sees its OWN uncommitted appends.
130
+ const queryHeadEvent = (stream, transaction) => {
59
131
  const eventstoreCollection = transaction ? transaction.getCollection(collection) : database.getCollection(collection);
60
132
  return eventstoreCollection
61
133
  .query({ filter: [{ field: 'stream', op: 'eq', value: stream }], sort: [{ field: 'version', direction: 'desc' }], limit: 1, select: ['version'] })
62
- .then((0, ramda_1.path)(['0']))
63
- .then(extractAndValidateExpectedVersion(expectedVersion))
64
- .then((actualVersion) => (0, bett3r_utils_1.map)(createEventToCommit(stream, actualVersion), (0, bett3r_utils_1.ensureArray)(events)))
134
+ .then((0, ramda_1.path)(['0']));
135
+ };
136
+ const getStreamVersion = (stream, transaction) => queryHeadEvent(stream, transaction).then(extractVersion);
137
+ // A NO-OP, and implemented rather than omitted so that stays a DECISION on the record: this
138
+ // adapter keeps NOTHING about a transaction. Every head read goes through `queryHeadEvent`,
139
+ // which asks the transaction's own collection each time, so a savepoint rollback needs no
140
+ // invalidation here — there is no cached version that could survive the rows it came from.
141
+ // (`PostgresEventstore` does cache exactly that, and must forget it.)
142
+ const forgetTransactionState = () => { };
143
+ const appendToStream = (stream, events, expectedVersion, transaction) => {
144
+ const eventstoreCollection = transaction ? transaction.getCollection(collection) : database.getCollection(collection);
145
+ return queryHeadEvent(stream, transaction)
146
+ .then(extractAndValidateExpectedVersion(stream, expectedVersion))
147
+ .then(createEventsToCommit(stream, events))
65
148
  .then((promises) => Promise.all(promises))
66
- .then((events) => eventstoreCollection.createMany((0, ramda_1.clone)(events)).then((0, ramda_1.always)(events)));
149
+ .then((events) => eventstoreCollection.createMany(events).catch(remapVersionRace(events)));
67
150
  };
68
- const appendToMultipleStreams = (streams) => {
69
- return database.initTransaction((getCollection) => {
70
- const eventstoreCollection = getCollection(collection);
71
- return Promise.all(Object.keys(streams).map((stream) => {
72
- return eventstoreCollection
73
- .query({ filter: [{ field: 'stream', op: 'eq', value: stream }], sort: [{ field: 'version', direction: 'desc' }], limit: 1, select: ['stream', 'version'] });
151
+ const appendToMultipleStreams = (streams, transaction) => {
152
+ // The WHOLE transaction, not just its `getCollection`: the head lookup below is
153
+ // `queryHeadEvent`, which needs the transaction itself so this append reads its own
154
+ // uncommitted rows exactly as the single-stream append and `getStreamVersion` do.
155
+ const innerTransactionOperation = (innerTransaction) => {
156
+ const eventstoreCollection = innerTransaction.getCollection(collection);
157
+ const streamNames = Object.keys(streams);
158
+ return Promise.all(streamNames.map((stream) => {
159
+ return queryHeadEvent(stream, innerTransaction).then(event => ({ stream, event }));
74
160
  }))
75
- .then(ramda_1.flatten)
76
- .then((0, bett3r_utils_1.reduce)((promise, e) => {
77
- return Promise.resolve(e)
78
- .then(extractAndValidateExpectedVersion(streams[e.stream].expectedVersion))
79
- .then(actualVersion => Promise.all([promise, actualVersion]))
80
- .then(([state, actualVersion]) => {
81
- state[e.stream] = actualVersion;
82
- return state;
83
- });
84
- }, Promise.resolve({})))
85
- .then((actualVersions) => {
86
- return Object.keys(streams).map((stream) => {
161
+ .then(results => {
162
+ // Extract actual versions without validation
163
+ const actualVersions = {};
164
+ for (const { stream, event } of results) {
165
+ actualVersions[stream] = extractVersion(event);
166
+ }
167
+ return actualVersions;
168
+ })
169
+ .then(async (actualVersions) => {
170
+ // Create all events first
171
+ const allEventsPromises = streamNames.map((stream) => {
87
172
  return (0, bett3r_utils_1.map)(createEventToCommit(stream, actualVersions[stream]), (0, bett3r_utils_1.ensureArray)(streams[stream].events));
88
173
  }).flat();
174
+ const allEvents = await Promise.all(allEventsPromises);
175
+ // Group events by stream for validation
176
+ const eventsByStream = allEvents.reduce((acc, event) => {
177
+ if (!acc[event.stream])
178
+ acc[event.stream] = [];
179
+ acc[event.stream].push(event);
180
+ return acc;
181
+ }, {});
182
+ // Validate expected versions with actual event details
183
+ for (const stream of streamNames) {
184
+ const expectedVersion = streams[stream].expectedVersion;
185
+ if (expectedVersion !== undefined && expectedVersion !== null) {
186
+ const actualVersion = actualVersions[stream];
187
+ if (expectedVersion !== actualVersion) {
188
+ // Same reason `validateExpectedVersion` above names its stream: the command
189
+ // handler now routes every cross-stream commit through here, so this is the
190
+ // branch a multi-stream conflict is reported from, and the stream that lost is
191
+ // the only thing that explains it.
192
+ throw new pv3_types_1.ConcurrencyError('Concurrency Error', 'CONCURRENCY_ERROR', {
193
+ event: eventsByStream[stream][0],
194
+ stream,
195
+ expectedVersion: expectedVersion.toString(),
196
+ actualVersion: actualVersion.toString()
197
+ });
198
+ }
199
+ }
200
+ }
201
+ return allEvents;
89
202
  })
90
- .then((promises) => Promise.all(promises))
91
- .then((events) => eventstoreCollection.createMany((0, ramda_1.clone)(events)).then((0, ramda_1.always)(events)));
92
- });
203
+ .then((events) => eventstoreCollection.createMany(events).catch(remapVersionRace(events)));
204
+ };
205
+ return !transaction ? database.initTransaction(innerTransactionOperation) : innerTransactionOperation(transaction);
93
206
  };
94
- const readStream = async (readOptions, callback) => {
207
+ const reduceStream = async (readOptions = {}, callback, initialState) => {
95
208
  const eventstoreCollection = database.getCollection(collection);
96
209
  const filter = [];
210
+ readOptions = readOptions || {};
97
211
  if (readOptions.stream)
98
212
  filter.push({ field: 'stream', op: 'eq', value: readOptions.stream });
99
- if (readOptions.fromVersion)
100
- filter.push({ field: 'version', op: 'gt', value: readOptions.fromVersion });
101
- const sort = (readOptions.direction === 'backwards' ? [{ field: 'id', direction: 'desc' }] : [{ field: 'id', direction: 'asc' }]);
102
- let result;
213
+ if (readOptions.from)
214
+ filter.push({ field: 'position', op: 'gt', value: readOptions.from });
215
+ if (readOptions.to)
216
+ filter.push({ field: 'position', op: 'lte', value: readOptions.to });
217
+ const sort = (readOptions.direction === 'backwards' ? [{ field: 'position', direction: 'desc' }] : [{ field: 'position', direction: 'asc' }]);
103
218
  await eventstoreCollection.forEach({
104
219
  limit: readOptions.limit,
105
- after: readOptions.from,
106
220
  filter,
107
- sort,
221
+ sort
108
222
  }, async (record, stop) => {
109
- result = await callback(record, stop);
223
+ initialState = await callback(initialState, record, stop);
110
224
  });
111
- return result;
225
+ return initialState;
112
226
  };
113
- const readMultipleStream = async (readOptions, callback) => {
227
+ const read = async (readOptions) => {
114
228
  const eventstoreCollection = database.getCollection(collection);
115
- const filter = readOptions.streams ? [{ field: 'stream', op: 'in', value: readOptions.streams }] : undefined;
116
- const sort = (readOptions.direction === 'backwards' ? [{ field: 'id', direction: 'desc' }] : [{ field: 'id', direction: 'asc' }]);
117
- let result;
229
+ const filter = [];
230
+ readOptions = readOptions || {};
231
+ if (readOptions.stream)
232
+ filter.push({ field: 'stream', op: 'eq', value: readOptions.stream });
233
+ if (readOptions.from)
234
+ filter.push({ field: 'position', op: 'gt', value: readOptions.from });
235
+ if (readOptions.to)
236
+ filter.push({ field: 'position', op: 'lte', value: readOptions.to });
237
+ if (readOptions.correlationId)
238
+ filter.push({ field: 'metadata.correlationId', op: 'eq', value: readOptions.correlationId });
239
+ if (readOptions.userId)
240
+ filter.push({ field: 'metadata.userId', op: 'eq', value: readOptions.userId });
241
+ if (readOptions.events && readOptions.events.length > 0)
242
+ filter.push({ field: 'name', op: 'in', value: readOptions.events });
243
+ if (readOptions.before)
244
+ filter.push({ field: 'timestamp', op: 'lt', value: readOptions.before });
245
+ if (readOptions.after)
246
+ filter.push({ field: 'timestamp', op: 'gt', value: readOptions.after });
247
+ const sort = (readOptions.direction === 'backwards' ? [{ field: 'position', direction: 'desc' }] : [{ field: 'position', direction: 'asc' }]);
248
+ return eventstoreCollection.query({
249
+ limit: readOptions.limit || 100,
250
+ filter: filter.length > 0 ? filter : undefined,
251
+ sort
252
+ });
253
+ };
254
+ const reduceMultipleStream = async (readOptions, callback, initialState, transaction) => {
255
+ // Read on the transaction's connection when given one, so a caller that appended inside
256
+ // the transaction sees its OWN uncommitted events (read-your-writes) — the same guarantee
257
+ // pv3-adapter-eventstore-postgres has honored since 1680d047. A pool read here is READ
258
+ // COMMITTED on a real database, so the reduce would silently replay STALE state.
259
+ // `getCollection()` (mirroring appendToStream above), NOT `_adapter()`: the raw adapter a
260
+ // transaction exposes is database-specific (a PoolClient on postgres, the shared `_db` on
261
+ // MemoryDb), while `getCollection` is the portable DatabasePort abstraction.
262
+ const eventstoreCollection = transaction ? transaction.getCollection(collection) : database.getCollection(collection);
263
+ const streams = readOptions.streams;
264
+ const streamNames = streams ? Object.keys(streams) : undefined;
265
+ // Each stream carries its OWN `from` checkpoint — a POSITION (multiStream.ts passes
266
+ // `lastEvent.position` off the snapshot), compared with a STRICT `>` exactly as
267
+ // pv3-adapter-eventstore-postgres does (sqlParser.ts:102). Filtering on stream NAME alone replays
268
+ // already-snapshotted events ON TOP OF the snapshot: silent state corruption.
269
+ //
270
+ // The obvious encoding — `OR[ AND[ stream eq S, position gt from_S ] ]` — is NOT SAFE HERE.
271
+ // pv3-adapter-database-mongo's `translateFilter` (src/index.ts:41-63) folds each branch into one
272
+ // shared `result` object, so `result.$and = …` on the next iteration CLOBBERS the previous one: an
273
+ // OR of several ANDs silently keeps only the LAST branch, dropping whole streams from the read.
274
+ // So the filter deliberately stays inside the subset every adapter provably translates — the flat,
275
+ // implicit-AND form `read`/`reduceStream` already emit — and the exact per-stream checkpoint is
276
+ // applied in the callback below instead:
277
+ // `stream IN (…)` + a `minFrom` PREFILTER (the minimum checkpoint across the requested streams).
278
+ // `minFrom` can never exclude an event any stream still needs. The trade-off: we over-fetch the
279
+ // rows between `minFrom` and each stream's own `from` and discard them in-process. Portability of
280
+ // the GENERIC adapter is worth that IO — PostgresEventstore, the production eventstore, is
281
+ // untouched and keeps its exact indexed query.
282
+ //
283
+ // Only `from` is honored per stream: postgres itself merges every other read option into one
284
+ // GLOBAL set (sqlParser.ts:104-110), and no caller sets them.
285
+ const checkpointOf = (stream) => streams?.[stream]?.from || 0;
286
+ const checkpoints = streamNames ? streamNames.map(checkpointOf) : [];
287
+ const minFrom = checkpoints.length ? Math.min(...checkpoints) : 0;
288
+ const filter = streamNames ? [
289
+ { field: 'stream', op: 'in', value: streamNames },
290
+ // Omitted entirely when there is no checkpoint, so the common no-snapshot read emits exactly the
291
+ // filter it always has. Same truthiness guard as reduceStream above.
292
+ ...(minFrom ? [{ field: 'position', op: 'gt', value: minFrom }] : [])
293
+ ] : undefined;
294
+ const sort = [{ field: 'position', direction: 'asc' }];
118
295
  await eventstoreCollection.forEach({
119
- limit: readOptions.limit,
120
- after: readOptions.from,
121
296
  filter,
122
- sort,
297
+ sort
123
298
  }, async (record, stop) => {
124
- result = await callback(record, stop);
299
+ // The exact per-stream checkpoint. An event AT its stream's checkpoint is already folded into
300
+ // the snapshot, so it is skipped WITHOUT invoking the reducer — a skipped event must not touch
301
+ // the reduced state, and `stop()` is untouched because it is only ever handed to the reducer.
302
+ // `from` defaults to 0 and positions start at 1, so a stream with no checkpoint replays in full.
303
+ if (record.position <= checkpointOf(record.stream))
304
+ return;
305
+ initialState = await callback(initialState, record, stop);
125
306
  });
307
+ return initialState;
308
+ };
309
+ const readMultipleStream = async (readOptions, callback, initialState) => {
310
+ let result = {};
311
+ await reduceMultipleStream(readOptions, async (events, event, stop) => {
312
+ result = await callback(event, stop);
313
+ return events;
314
+ }, initialState);
126
315
  return result;
127
316
  };
317
+ const readById = async (id) => {
318
+ const eventstoreCollection = database.getCollection(collection);
319
+ const results = await eventstoreCollection.query({
320
+ filter: [{ field: 'id', op: 'eq', value: id }],
321
+ limit: 1
322
+ });
323
+ return results[0] || undefined;
324
+ };
128
325
  const flush = async () => {
129
326
  if (process.env.NODE_ENV !== 'production') {
130
327
  const eventstoreCollection = database.getCollection(collection);
@@ -140,14 +337,20 @@ const DatabaseEventstore = (config, loggerPort, database) => {
140
337
  };
141
338
  const eventstorePort = (0, base_1.createPort)({
142
339
  name: 'database',
340
+ getStreamVersion,
341
+ forgetTransactionState,
143
342
  appendToStream,
144
343
  appendToMultipleStreams,
145
- readStream,
344
+ reduceStream,
345
+ reduceMultipleStream,
346
+ read,
347
+ readById,
146
348
  readMultipleStream,
147
349
  subscribe,
148
350
  flush,
149
- start: async () => { },
351
+ start: async () => new Promise(r => database.onStarted(r)),
150
352
  stop: async () => { },
353
+ getConnectionId: () => database._adapter().connectionId,
151
354
  _adapter: () => database
152
355
  });
153
356
  return eventstorePort;
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/adapters/eventstore/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/adapters/eventstore/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=database.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.test.d.ts","sourceRoot":"","sources":["../../../src/adapters/eventstore/database.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const database_1 = require("../../ports/database");
4
+ const logger_1 = require("../../ports/logger");
5
+ const memory_1 = require("../database/memory");
6
+ const console_1 = require("../logger/console");
7
+ const database_2 = require("./database");
8
+ const STREAM_A = 'Order-1985';
9
+ const STREAM_B = 'WarehouseItem-1985';
10
+ const STREAM_C = 'Shipment-1985';
11
+ const collectDelivered = (state, event) => [...state, { stream: event.stream, name: event.name, position: Number(event.position) }];
12
+ // A fresh MemoryDb per test: both the events collection AND the `__counters.eventPosition` row start
13
+ // clean, so no test can inherit another's positions.
14
+ const setupWithDatabase = async () => {
15
+ const logger = (0, logger_1.Logger)({}, (0, console_1.ConsoleLogger)());
16
+ const database = (0, database_1.Database)((0, memory_1.MemoryDb)());
17
+ const eventstore = (0, database_2.DatabaseEventstore)({}, logger, database);
18
+ await eventstore.start();
19
+ return { eventstore, database };
20
+ };
21
+ const setup = async () => (await setupWithDatabase()).eventstore;
22
+ // Seeded event-by-event, each append AWAITED. `position` is drawn from a `__counters.atomicIncrement`
23
+ // and a multi-event append launches every `createEventToCommit` CONCURRENTLY, so append order does
24
+ // NOT reliably equal position order. Sequential awaited appends make the assignment deterministic.
25
+ const seedSequentially = async (eventstore, stream, names) => {
26
+ for (const name of names) {
27
+ await eventstore.appendToStream(stream, [{ name, stream, data: { tag: name }, metadata: {} }]);
28
+ }
29
+ };
30
+ // The position the adapter ACTUALLY assigned — never assumed.
31
+ const positionOf = (events, name) => {
32
+ const event = events.find(e => e.name === name);
33
+ if (!event)
34
+ throw new Error(`Seeded event ${name} not found`);
35
+ return Number(event.position);
36
+ };
37
+ describe('DatabaseEventstore.reduceMultipleStream honors each stream\'s own `from` checkpoint (TV1-1985)', () => {
38
+ it('Given two streams checkpointed at DIFFERENT positions, when reducing them together, then only the events strictly after each stream\'s OWN checkpoint are replayed, in position order', async () => {
39
+ // GIVEN six committed events across two streams; their positions are READ BACK, never assumed.
40
+ const eventstore = await setup();
41
+ await seedSequentially(eventstore, STREAM_A, ['A1', 'A2', 'A3']);
42
+ await seedSequentially(eventstore, STREAM_B, ['B1', 'B2', 'B3']);
43
+ const seededA = await eventstore.read({ stream: STREAM_A, limit: 100 });
44
+ const seededB = await eventstore.read({ stream: STREAM_B, limit: 100 });
45
+ expect(seededA.map(e => e.name)).toEqual(['A1', 'A2', 'A3']);
46
+ expect(seededB.map(e => e.name)).toEqual(['B1', 'B2', 'B3']);
47
+ // Two DIFFERENT checkpoints, each a real observed position — exactly what a snapshot-backed
48
+ // multiStream command passes.
49
+ const fromA = positionOf(seededA, 'A2');
50
+ const fromB = positionOf(seededB, 'B1');
51
+ // WHEN
52
+ const delivered = await eventstore.reduceMultipleStream({ streams: { [STREAM_A]: { from: fromA }, [STREAM_B]: { from: fromB } } }, collectDelivered, []);
53
+ // THEN an event AT its stream's checkpoint is already folded into the snapshot, so it is skipped;
54
+ // only the strictly-after ones replay. B1 sits AT B's checkpoint but ABOVE A's, so no single
55
+ // global position filter can exclude it — only the per-stream check can. That is what makes this
56
+ // case load-bearing rather than decorative.
57
+ expect(delivered.map(d => d.name)).toEqual(['A3', 'B2', 'B3']);
58
+ // …and they arrive sorted by position ascending: global commit order across streams is preserved.
59
+ const positions = delivered.map(d => d.position);
60
+ expect(positions).toEqual([...positions].sort((a, b) => a - b));
61
+ });
62
+ it('Given one checkpointed stream and one with NO checkpoint, when reducing them together, then the uncheckpointed stream replays in full while the other still honors its checkpoint', async () => {
63
+ // GIVEN
64
+ const eventstore = await setup();
65
+ await seedSequentially(eventstore, STREAM_A, ['A1', 'A2', 'A3']);
66
+ await seedSequentially(eventstore, STREAM_C, ['C1', 'C2']);
67
+ const seededA = await eventstore.read({ stream: STREAM_A, limit: 100 });
68
+ const fromA = positionOf(seededA, 'A2');
69
+ // WHEN one stream carries a checkpoint and the other carries none
70
+ const delivered = await eventstore.reduceMultipleStream({ streams: { [STREAM_A]: { from: fromA }, [STREAM_C]: {} } }, collectDelivered, []);
71
+ // THEN `from` defaults to 0 and positions start at 1, so the uncheckpointed stream replays in
72
+ // FULL — while its co-requested stream still honors its own checkpoint. This is also the
73
+ // `minFrom === 0` path: the shared position PREFILTER is omitted entirely and every requested row
74
+ // is fetched, so only the per-stream check inside the callback can hold the line.
75
+ expect(delivered.map(d => d.name)).toEqual(['A3', 'C1', 'C2']);
76
+ });
77
+ });
78
+ /**
79
+ * TV1-2238 — `DatabaseEventstore.getStreamVersion` reports the head the append path numbers from.
80
+ *
81
+ * `PostgresEventstore` is the production eventstore, but `DatabaseEventstore` is the one every
82
+ * MemoryDb suite, every teselly test and every E2E actually wires — so it is the implementation the
83
+ * load-time `expectedVersion` will really run on downstream. It gets its own pin here rather than
84
+ * inheriting the Postgres oracle's green.
85
+ *
86
+ * ⚠ MemoryDb transactions are ATOMIC but NOT ISOLATED — a non-transactional read already sees a
87
+ * transaction's uncommitted writes — so the transaction case below CANNOT distinguish a
88
+ * transaction-aware read from a plain one. It pins that handing over a transaction is honored and
89
+ * harmless (the collection is taken from the transaction, the head is not lost), not that isolation
90
+ * is respected. The isolating proof lives against real Postgres in
91
+ * pv3-adapter-eventstore-postgres/__tests__/getStreamVersion.deps.test.ts.
92
+ */
93
+ describe('DatabaseEventstore.getStreamVersion (TV1-2238)', () => {
94
+ const event = (name, stream) => ({ name, stream, data: { tag: name }, metadata: {} });
95
+ it('Given a stream with N appended events, when getStreamVersion is called, then it returns N — the version the next append numbers from', async () => {
96
+ // GIVEN
97
+ const eventstore = await setup();
98
+ expect(await eventstore.getStreamVersion(STREAM_A)).toBe(0);
99
+ await seedSequentially(eventstore, STREAM_A, ['A1', 'A2', 'A3']);
100
+ // WHEN
101
+ const head = await eventstore.getStreamVersion(STREAM_A);
102
+ // THEN — the head is 3, and the append path numbers from that very head, so the version a
103
+ // caller could assert at load time is the version the commit will actually check against.
104
+ expect(head).toBe(3);
105
+ const [next] = await eventstore.appendToStream(STREAM_A, [event('A4', STREAM_A)]);
106
+ expect(next.version).toBe(head + 1);
107
+ expect(await eventstore.getStreamVersion(STREAM_A)).toBe(4);
108
+ });
109
+ it('Given a transaction that has ALREADY appended to the stream, when getStreamVersion is called with that transaction, then it reflects that append', async () => {
110
+ // GIVEN two events on the stream …
111
+ const { eventstore, database } = await setupWithDatabase();
112
+ await seedSequentially(eventstore, STREAM_B, ['B1', 'B2']);
113
+ // WHEN a transaction appends a third and then asks for the head.
114
+ const inTransaction = await database.initTransaction(async (transaction) => {
115
+ await eventstore.appendToStream(STREAM_B, [event('B3', STREAM_B)], undefined, transaction);
116
+ return eventstore.getStreamVersion(STREAM_B, transaction);
117
+ });
118
+ // THEN
119
+ expect(inTransaction).toBe(3);
120
+ expect(await eventstore.getStreamVersion(STREAM_B)).toBe(3);
121
+ });
122
+ });
123
+ //# sourceMappingURL=database.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.test.js","sourceRoot":"","sources":["../../../src/adapters/eventstore/database.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Ports } from '@bett3r-dev/pv3-types';
1
+ import { PortsBase } from '@bett3r-dev/pv3-types';
2
2
  import { InfrastructureAdapterType } from '@bett3r-dev/pv3-types';
3
- export declare const LocalInfrastructure: (ports: Pick<Ports, 'configuration' | 'endpoints'>) => InfrastructureAdapterType;
3
+ export declare const LocalInfrastructure: (ports: Pick<PortsBase, 'configuration' | 'endpoints'>) => InfrastructureAdapterType;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/infrastructure/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAA0B,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAI1F,eAAO,MAAM,mBAAmB,UAAY,KAAK,KAAK,EAAE,eAAe,GAAC,WAAW,CAAC,KAAI,yBAkCvF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/infrastructure/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAA0B,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAI1F,eAAO,MAAM,mBAAmB,UAAY,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,WAAW,CAAC,KAAI,yBAkC7F,CAAC"}