@bett3r-dev/pv3 1.0.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 (393) hide show
  1. package/build/adapters/cache/index.d.ts +2 -0
  2. package/build/adapters/cache/index.d.ts.map +1 -0
  3. package/build/adapters/cache/index.js +18 -0
  4. package/build/adapters/cache/index.js.map +1 -0
  5. package/build/adapters/cache/memory/__tests__/memoryCache.test.d.ts +1 -0
  6. package/build/adapters/cache/memory/__tests__/memoryCache.test.d.ts.map +1 -0
  7. package/build/adapters/cache/memory/__tests__/memoryCache.test.js +6 -0
  8. package/build/adapters/cache/memory/__tests__/memoryCache.test.js.map +1 -0
  9. package/build/adapters/cache/memory/index.d.ts +3 -0
  10. package/build/adapters/cache/memory/index.d.ts.map +1 -0
  11. package/build/adapters/cache/memory/index.js +119 -0
  12. package/build/adapters/cache/memory/index.js.map +1 -0
  13. package/build/adapters/configuration/__tests__/dotEnv.test.d.ts +2 -0
  14. package/build/adapters/configuration/__tests__/dotEnv.test.d.ts.map +1 -0
  15. package/build/adapters/configuration/__tests__/dotEnv.test.js +43 -0
  16. package/build/adapters/configuration/__tests__/dotEnv.test.js.map +1 -0
  17. package/build/adapters/configuration/dotEnv.d.ts +3 -0
  18. package/build/adapters/configuration/dotEnv.d.ts.map +1 -0
  19. package/build/adapters/configuration/dotEnv.js +35 -0
  20. package/build/adapters/configuration/dotEnv.js.map +1 -0
  21. package/build/adapters/configuration/index.d.ts +2 -0
  22. package/build/adapters/configuration/index.d.ts.map +1 -0
  23. package/build/adapters/configuration/index.js +18 -0
  24. package/build/adapters/configuration/index.js.map +1 -0
  25. package/build/adapters/database/index.d.ts +2 -0
  26. package/build/adapters/database/index.d.ts.map +1 -0
  27. package/build/adapters/database/index.js +18 -0
  28. package/build/adapters/database/index.js.map +1 -0
  29. package/build/adapters/database/memory/__tests__/memoryDb.test.d.ts +1 -0
  30. package/build/adapters/database/memory/__tests__/memoryDb.test.d.ts.map +1 -0
  31. package/build/adapters/database/memory/__tests__/memoryDb.test.js +36 -0
  32. package/build/adapters/database/memory/__tests__/memoryDb.test.js.map +1 -0
  33. package/build/adapters/database/memory/index.d.ts +3 -0
  34. package/build/adapters/database/memory/index.d.ts.map +1 -0
  35. package/build/adapters/database/memory/index.js +241 -0
  36. package/build/adapters/database/memory/index.js.map +1 -0
  37. package/build/adapters/endpoints/addAuthUser/index.d.ts +8 -0
  38. package/build/adapters/endpoints/addAuthUser/index.d.ts.map +1 -0
  39. package/build/adapters/endpoints/addAuthUser/index.js +57 -0
  40. package/build/adapters/endpoints/addAuthUser/index.js.map +1 -0
  41. package/build/adapters/endpoints/endpointValidation/index.d.ts +4 -0
  42. package/build/adapters/endpoints/endpointValidation/index.d.ts.map +1 -0
  43. package/build/adapters/endpoints/endpointValidation/index.js +27 -0
  44. package/build/adapters/endpoints/endpointValidation/index.js.map +1 -0
  45. package/build/adapters/endpoints/index.d.ts +4 -0
  46. package/build/adapters/endpoints/index.d.ts.map +1 -0
  47. package/build/adapters/endpoints/index.js +21 -0
  48. package/build/adapters/endpoints/index.js.map +1 -0
  49. package/build/adapters/endpoints/localAuthorization/index.d.ts +1 -0
  50. package/build/adapters/endpoints/localAuthorization/index.d.ts.map +1 -0
  51. package/build/adapters/endpoints/localAuthorization/index.js +68 -0
  52. package/build/adapters/endpoints/localAuthorization/index.js.map +1 -0
  53. package/build/adapters/endpoints/tcpConsumer/index.d.ts +3 -0
  54. package/build/adapters/endpoints/tcpConsumer/index.d.ts.map +1 -0
  55. package/build/adapters/endpoints/tcpConsumer/index.js +64 -0
  56. package/build/adapters/endpoints/tcpConsumer/index.js.map +1 -0
  57. package/build/adapters/endpoints/userSession/index.d.ts +8 -0
  58. package/build/adapters/endpoints/userSession/index.d.ts.map +1 -0
  59. package/build/adapters/endpoints/userSession/index.js +43 -0
  60. package/build/adapters/endpoints/userSession/index.js.map +1 -0
  61. package/build/adapters/eventstore/database.d.ts +3 -0
  62. package/build/adapters/eventstore/database.d.ts.map +1 -0
  63. package/build/adapters/eventstore/database.js +156 -0
  64. package/build/adapters/eventstore/database.js.map +1 -0
  65. package/build/adapters/eventstore/index.d.ts +2 -0
  66. package/build/adapters/eventstore/index.d.ts.map +1 -0
  67. package/build/adapters/eventstore/index.js +18 -0
  68. package/build/adapters/eventstore/index.js.map +1 -0
  69. package/build/adapters/infrastructure/index.d.ts +2 -0
  70. package/build/adapters/infrastructure/index.d.ts.map +1 -0
  71. package/build/adapters/infrastructure/index.js +18 -0
  72. package/build/adapters/infrastructure/index.js.map +1 -0
  73. package/build/adapters/infrastructure/local/index.d.ts +4 -0
  74. package/build/adapters/infrastructure/local/index.d.ts.map +1 -0
  75. package/build/adapters/infrastructure/local/index.js +37 -0
  76. package/build/adapters/infrastructure/local/index.js.map +1 -0
  77. package/build/adapters/logger/console.d.ts +3 -0
  78. package/build/adapters/logger/console.d.ts.map +1 -0
  79. package/build/adapters/logger/console.js +38 -0
  80. package/build/adapters/logger/console.js.map +1 -0
  81. package/build/adapters/logger/index.d.ts +2 -0
  82. package/build/adapters/logger/index.d.ts.map +1 -0
  83. package/build/adapters/logger/index.js +18 -0
  84. package/build/adapters/logger/index.js.map +1 -0
  85. package/build/index.d.ts +23 -0
  86. package/build/index.d.ts.map +1 -0
  87. package/build/index.js +39 -0
  88. package/build/index.js.map +1 -0
  89. package/build/libraries/modules/fs.d.ts +12 -0
  90. package/build/libraries/modules/fs.d.ts.map +1 -0
  91. package/build/libraries/modules/fs.js +103 -0
  92. package/build/libraries/modules/fs.js.map +1 -0
  93. package/build/libraries/modules/index.d.ts +2 -0
  94. package/build/libraries/modules/index.d.ts.map +1 -0
  95. package/build/libraries/modules/index.js +18 -0
  96. package/build/libraries/modules/index.js.map +1 -0
  97. package/build/libraries/openApi/index.d.ts +2 -0
  98. package/build/libraries/openApi/index.d.ts.map +1 -0
  99. package/build/libraries/openApi/index.js +18 -0
  100. package/build/libraries/openApi/index.js.map +1 -0
  101. package/build/libraries/openApi/pruneUnusedRef.d.ts +3 -0
  102. package/build/libraries/openApi/pruneUnusedRef.d.ts.map +1 -0
  103. package/build/libraries/openApi/pruneUnusedRef.js +30 -0
  104. package/build/libraries/openApi/pruneUnusedRef.js.map +1 -0
  105. package/build/libraries/tcp/index.d.ts +8 -0
  106. package/build/libraries/tcp/index.d.ts.map +1 -0
  107. package/build/libraries/tcp/index.js +108 -0
  108. package/build/libraries/tcp/index.js.map +1 -0
  109. package/build/libraries/tcp/types.d.ts +45 -0
  110. package/build/libraries/tcp/types.d.ts.map +1 -0
  111. package/build/libraries/tcp/types.js +3 -0
  112. package/build/libraries/tcp/types.js.map +1 -0
  113. package/build/libraries/validation/__tests__/validation.test.d.ts +2 -0
  114. package/build/libraries/validation/__tests__/validation.test.d.ts.map +1 -0
  115. package/build/libraries/validation/__tests__/validation.test.js +53 -0
  116. package/build/libraries/validation/__tests__/validation.test.js.map +1 -0
  117. package/build/libraries/validation/index.d.ts +8 -0
  118. package/build/libraries/validation/index.d.ts.map +1 -0
  119. package/build/libraries/validation/index.js +51 -0
  120. package/build/libraries/validation/index.js.map +1 -0
  121. package/build/ports/authentication/index.d.ts +12 -0
  122. package/build/ports/authentication/index.d.ts.map +1 -0
  123. package/build/ports/authentication/index.js +23 -0
  124. package/build/ports/authentication/index.js.map +1 -0
  125. package/build/ports/base.d.ts +7 -0
  126. package/build/ports/base.d.ts.map +1 -0
  127. package/build/ports/base.js +25 -0
  128. package/build/ports/base.js.map +1 -0
  129. package/build/ports/cache/index.d.ts +3 -0
  130. package/build/ports/cache/index.d.ts.map +1 -0
  131. package/build/ports/cache/index.js +19 -0
  132. package/build/ports/cache/index.js.map +1 -0
  133. package/build/ports/configuration/__tests__/configurationPort.test.d.ts +2 -0
  134. package/build/ports/configuration/__tests__/configurationPort.test.d.ts.map +1 -0
  135. package/build/ports/configuration/__tests__/configurationPort.test.js +51 -0
  136. package/build/ports/configuration/__tests__/configurationPort.test.js.map +1 -0
  137. package/build/ports/configuration/args.d.ts +57 -0
  138. package/build/ports/configuration/args.d.ts.map +1 -0
  139. package/build/ports/configuration/args.js +44 -0
  140. package/build/ports/configuration/args.js.map +1 -0
  141. package/build/ports/configuration/common.d.ts +2 -0
  142. package/build/ports/configuration/common.d.ts.map +1 -0
  143. package/build/ports/configuration/common.js +19 -0
  144. package/build/ports/configuration/common.js.map +1 -0
  145. package/build/ports/configuration/index.d.ts +10 -0
  146. package/build/ports/configuration/index.d.ts.map +1 -0
  147. package/build/ports/configuration/index.js +96 -0
  148. package/build/ports/configuration/index.js.map +1 -0
  149. package/build/ports/configuration/localConfig.d.ts +3 -0
  150. package/build/ports/configuration/localConfig.d.ts.map +1 -0
  151. package/build/ports/configuration/localConfig.js +108 -0
  152. package/build/ports/configuration/localConfig.js.map +1 -0
  153. package/build/ports/database/index.d.ts +4 -0
  154. package/build/ports/database/index.d.ts.map +1 -0
  155. package/build/ports/database/index.js +27 -0
  156. package/build/ports/database/index.js.map +1 -0
  157. package/build/ports/endpoints/__tests__/endpointsCall.test.d.ts +2 -0
  158. package/build/ports/endpoints/__tests__/endpointsCall.test.d.ts.map +1 -0
  159. package/build/ports/endpoints/__tests__/endpointsCall.test.js +21 -0
  160. package/build/ports/endpoints/__tests__/endpointsCall.test.js.map +1 -0
  161. package/build/ports/endpoints/__tests__/test-client-library/base.d.ts +77 -0
  162. package/build/ports/endpoints/__tests__/test-client-library/base.d.ts.map +1 -0
  163. package/build/ports/endpoints/__tests__/test-client-library/base.js +91 -0
  164. package/build/ports/endpoints/__tests__/test-client-library/base.js.map +1 -0
  165. package/build/ports/endpoints/__tests__/test-client-library/index.d.ts +29 -0
  166. package/build/ports/endpoints/__tests__/test-client-library/index.d.ts.map +1 -0
  167. package/build/ports/endpoints/__tests__/test-client-library/index.js +43 -0
  168. package/build/ports/endpoints/__tests__/test-client-library/index.js.map +1 -0
  169. package/build/ports/endpoints/__tests__/test-client-library/services/service.d.ts +106 -0
  170. package/build/ports/endpoints/__tests__/test-client-library/services/service.d.ts.map +1 -0
  171. package/build/ports/endpoints/__tests__/test-client-library/services/service.js +62 -0
  172. package/build/ports/endpoints/__tests__/test-client-library/services/service.js.map +1 -0
  173. package/build/ports/endpoints/__tests__/utils.test.d.ts +1 -0
  174. package/build/ports/endpoints/__tests__/utils.test.d.ts.map +1 -0
  175. package/build/ports/endpoints/__tests__/utils.test.js +53 -0
  176. package/build/ports/endpoints/__tests__/utils.test.js.map +1 -0
  177. package/build/ports/endpoints/index.d.ts +29 -0
  178. package/build/ports/endpoints/index.d.ts.map +1 -0
  179. package/build/ports/endpoints/index.js +263 -0
  180. package/build/ports/endpoints/index.js.map +1 -0
  181. package/build/ports/endpoints/openApi.d.ts +16 -0
  182. package/build/ports/endpoints/openApi.d.ts.map +1 -0
  183. package/build/ports/endpoints/openApi.js +187 -0
  184. package/build/ports/endpoints/openApi.js.map +1 -0
  185. package/build/ports/endpoints/utils.d.ts +17 -0
  186. package/build/ports/endpoints/utils.d.ts.map +1 -0
  187. package/build/ports/endpoints/utils.js +31 -0
  188. package/build/ports/endpoints/utils.js.map +1 -0
  189. package/build/ports/eventsourcing/__tests__/eventhandlers.test.d.ts +2 -0
  190. package/build/ports/eventsourcing/__tests__/eventhandlers.test.d.ts.map +1 -0
  191. package/build/ports/eventsourcing/__tests__/eventhandlers.test.js +35 -0
  192. package/build/ports/eventsourcing/__tests__/eventhandlers.test.js.map +1 -0
  193. package/build/ports/eventsourcing/__tests__/invariants.test.d.ts +2 -0
  194. package/build/ports/eventsourcing/__tests__/invariants.test.d.ts.map +1 -0
  195. package/build/ports/eventsourcing/__tests__/invariants.test.js +210 -0
  196. package/build/ports/eventsourcing/__tests__/invariants.test.js.map +1 -0
  197. package/build/ports/eventsourcing/commandHandlers/index.d.ts +25 -0
  198. package/build/ports/eventsourcing/commandHandlers/index.d.ts.map +1 -0
  199. package/build/ports/eventsourcing/commandHandlers/index.js +392 -0
  200. package/build/ports/eventsourcing/commandHandlers/index.js.map +1 -0
  201. package/build/ports/eventsourcing/commandTemplates/index.d.ts +3 -0
  202. package/build/ports/eventsourcing/commandTemplates/index.d.ts.map +1 -0
  203. package/build/ports/eventsourcing/commandTemplates/index.js +19 -0
  204. package/build/ports/eventsourcing/commandTemplates/index.js.map +1 -0
  205. package/build/ports/eventsourcing/commandTemplates/multiStream.d.ts +4 -0
  206. package/build/ports/eventsourcing/commandTemplates/multiStream.d.ts.map +1 -0
  207. package/build/ports/eventsourcing/commandTemplates/multiStream.js +73 -0
  208. package/build/ports/eventsourcing/commandTemplates/multiStream.js.map +1 -0
  209. package/build/ports/eventsourcing/commandTemplates/snapshot.d.ts +9 -0
  210. package/build/ports/eventsourcing/commandTemplates/snapshot.d.ts.map +1 -0
  211. package/build/ports/eventsourcing/commandTemplates/snapshot.js +39 -0
  212. package/build/ports/eventsourcing/commandTemplates/snapshot.js.map +1 -0
  213. package/build/ports/eventsourcing/eventHandlers/index.d.ts +33 -0
  214. package/build/ports/eventsourcing/eventHandlers/index.d.ts.map +1 -0
  215. package/build/ports/eventsourcing/eventHandlers/index.js +276 -0
  216. package/build/ports/eventsourcing/eventHandlers/index.js.map +1 -0
  217. package/build/ports/eventsourcing/index.d.ts +9 -0
  218. package/build/ports/eventsourcing/index.d.ts.map +1 -0
  219. package/build/ports/eventsourcing/index.js +101 -0
  220. package/build/ports/eventsourcing/index.js.map +1 -0
  221. package/build/ports/eventsourcing/invariants/combinators.d.ts +4 -0
  222. package/build/ports/eventsourcing/invariants/combinators.d.ts.map +1 -0
  223. package/build/ports/eventsourcing/invariants/combinators.js +20 -0
  224. package/build/ports/eventsourcing/invariants/combinators.js.map +1 -0
  225. package/build/ports/eventsourcing/invariants/common.d.ts +10 -0
  226. package/build/ports/eventsourcing/invariants/common.d.ts.map +1 -0
  227. package/build/ports/eventsourcing/invariants/common.js +37 -0
  228. package/build/ports/eventsourcing/invariants/common.js.map +1 -0
  229. package/build/ports/eventsourcing/invariants/comparisons.d.ts +19 -0
  230. package/build/ports/eventsourcing/invariants/comparisons.d.ts.map +1 -0
  231. package/build/ports/eventsourcing/invariants/comparisons.js +83 -0
  232. package/build/ports/eventsourcing/invariants/comparisons.js.map +1 -0
  233. package/build/ports/eventsourcing/invariants/index.d.ts +5 -0
  234. package/build/ports/eventsourcing/invariants/index.d.ts.map +1 -0
  235. package/build/ports/eventsourcing/invariants/index.js +21 -0
  236. package/build/ports/eventsourcing/invariants/index.js.map +1 -0
  237. package/build/ports/eventsourcing/invariants/stateExistance.d.ts +4 -0
  238. package/build/ports/eventsourcing/invariants/stateExistance.d.ts.map +1 -0
  239. package/build/ports/eventsourcing/invariants/stateExistance.js +33 -0
  240. package/build/ports/eventsourcing/invariants/stateExistance.js.map +1 -0
  241. package/build/ports/eventsourcing/subscriptions/index.d.ts +2 -0
  242. package/build/ports/eventsourcing/subscriptions/index.d.ts.map +1 -0
  243. package/build/ports/eventsourcing/subscriptions/index.js +18 -0
  244. package/build/ports/eventsourcing/subscriptions/index.js.map +1 -0
  245. package/build/ports/eventsourcing/subscriptions/sseSubscriptions.d.ts +3 -0
  246. package/build/ports/eventsourcing/subscriptions/sseSubscriptions.d.ts.map +1 -0
  247. package/build/ports/eventsourcing/subscriptions/sseSubscriptions.js +81 -0
  248. package/build/ports/eventsourcing/subscriptions/sseSubscriptions.js.map +1 -0
  249. package/build/ports/eventsourcing/utils/aggregateBuilder.d.ts +4 -0
  250. package/build/ports/eventsourcing/utils/aggregateBuilder.d.ts.map +1 -0
  251. package/build/ports/eventsourcing/utils/aggregateBuilder.js +45 -0
  252. package/build/ports/eventsourcing/utils/aggregateBuilder.js.map +1 -0
  253. package/build/ports/eventsourcing/utils/commandBuilder.d.ts +3 -0
  254. package/build/ports/eventsourcing/utils/commandBuilder.d.ts.map +1 -0
  255. package/build/ports/eventsourcing/utils/commandBuilder.js +102 -0
  256. package/build/ports/eventsourcing/utils/commandBuilder.js.map +1 -0
  257. package/build/ports/eventsourcing/utils/eventHandlerBuilder.d.ts +3 -0
  258. package/build/ports/eventsourcing/utils/eventHandlerBuilder.d.ts.map +1 -0
  259. package/build/ports/eventsourcing/utils/eventHandlerBuilder.js +19 -0
  260. package/build/ports/eventsourcing/utils/eventHandlerBuilder.js.map +1 -0
  261. package/build/ports/eventsourcing/utils/externalSystemBuilder.d.ts +4 -0
  262. package/build/ports/eventsourcing/utils/externalSystemBuilder.d.ts.map +1 -0
  263. package/build/ports/eventsourcing/utils/externalSystemBuilder.js +34 -0
  264. package/build/ports/eventsourcing/utils/externalSystemBuilder.js.map +1 -0
  265. package/build/ports/eventsourcing/utils/index.d.ts +13 -0
  266. package/build/ports/eventsourcing/utils/index.d.ts.map +1 -0
  267. package/build/ports/eventsourcing/utils/index.js +45 -0
  268. package/build/ports/eventsourcing/utils/index.js.map +1 -0
  269. package/build/ports/eventsourcing/utils/policyBuilder.d.ts +3 -0
  270. package/build/ports/eventsourcing/utils/policyBuilder.d.ts.map +1 -0
  271. package/build/ports/eventsourcing/utils/policyBuilder.js +29 -0
  272. package/build/ports/eventsourcing/utils/policyBuilder.js.map +1 -0
  273. package/build/ports/eventsourcing/utils/readmodelBuilder.d.ts +5 -0
  274. package/build/ports/eventsourcing/utils/readmodelBuilder.d.ts.map +1 -0
  275. package/build/ports/eventsourcing/utils/readmodelBuilder.js +45 -0
  276. package/build/ports/eventsourcing/utils/readmodelBuilder.js.map +1 -0
  277. package/build/ports/eventstore/index.d.ts +3 -0
  278. package/build/ports/eventstore/index.d.ts.map +1 -0
  279. package/build/ports/eventstore/index.js +13 -0
  280. package/build/ports/eventstore/index.js.map +1 -0
  281. package/build/ports/infrastructure/__tests__/fixture/index.d.ts +3 -0
  282. package/build/ports/infrastructure/__tests__/fixture/index.d.ts.map +1 -0
  283. package/build/ports/infrastructure/__tests__/fixture/index.js +19 -0
  284. package/build/ports/infrastructure/__tests__/fixture/index.js.map +1 -0
  285. package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.d.ts +19 -0
  286. package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.d.ts.map +1 -0
  287. package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.js +76 -0
  288. package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.js.map +1 -0
  289. package/build/ports/infrastructure/__tests__/fixture/structureState.d.ts +177 -0
  290. package/build/ports/infrastructure/__tests__/fixture/structureState.d.ts.map +1 -0
  291. package/build/ports/infrastructure/__tests__/fixture/structureState.js +258 -0
  292. package/build/ports/infrastructure/__tests__/fixture/structureState.js.map +1 -0
  293. package/build/ports/infrastructure/__tests__/infrastructure.test.d.ts +2 -0
  294. package/build/ports/infrastructure/__tests__/infrastructure.test.d.ts.map +1 -0
  295. package/build/ports/infrastructure/__tests__/infrastructure.test.js +11 -0
  296. package/build/ports/infrastructure/__tests__/infrastructure.test.js.map +1 -0
  297. package/build/ports/infrastructure/index.d.ts +53 -0
  298. package/build/ports/infrastructure/index.d.ts.map +1 -0
  299. package/build/ports/infrastructure/index.js +149 -0
  300. package/build/ports/infrastructure/index.js.map +1 -0
  301. package/build/ports/infrastructure/utils.d.ts +14 -0
  302. package/build/ports/infrastructure/utils.d.ts.map +1 -0
  303. package/build/ports/infrastructure/utils.js +126 -0
  304. package/build/ports/infrastructure/utils.js.map +1 -0
  305. package/build/ports/logger/index.d.ts +3 -0
  306. package/build/ports/logger/index.d.ts.map +1 -0
  307. package/build/ports/logger/index.js +32 -0
  308. package/build/ports/logger/index.js.map +1 -0
  309. package/build/utils/index.d.ts +35 -0
  310. package/build/utils/index.d.ts.map +1 -0
  311. package/build/utils/index.js +190 -0
  312. package/build/utils/index.js.map +1 -0
  313. package/package.json +28 -0
  314. package/src/adapters/cache/index.ts +1 -0
  315. package/src/adapters/cache/memory/__tests__/memoryCache.test.ts +6 -0
  316. package/src/adapters/cache/memory/index.ts +142 -0
  317. package/src/adapters/configuration/__tests__/.env +4 -0
  318. package/src/adapters/configuration/__tests__/dotEnv.test.ts +38 -0
  319. package/src/adapters/configuration/dotEnv.ts +33 -0
  320. package/src/adapters/configuration/index.ts +1 -0
  321. package/src/adapters/database/index.ts +1 -0
  322. package/src/adapters/database/memory/__tests__/memoryDb.test.ts +37 -0
  323. package/src/adapters/database/memory/index.ts +279 -0
  324. package/src/adapters/endpoints/addAuthUser/index.ts +55 -0
  325. package/src/adapters/endpoints/endpointValidation/index.ts +26 -0
  326. package/src/adapters/endpoints/index.ts +4 -0
  327. package/src/adapters/endpoints/localAuthorization/index.ts +75 -0
  328. package/src/adapters/endpoints/tcpConsumer/index.ts +69 -0
  329. package/src/adapters/endpoints/userSession/index.ts +40 -0
  330. package/src/adapters/eventstore/database.ts +178 -0
  331. package/src/adapters/eventstore/index.ts +1 -0
  332. package/src/adapters/infrastructure/index.ts +1 -0
  333. package/src/adapters/infrastructure/local/index.ts +40 -0
  334. package/src/adapters/logger/console.ts +42 -0
  335. package/src/adapters/logger/index.ts +1 -0
  336. package/src/index.ts +25 -0
  337. package/src/libraries/modules/fs.ts +88 -0
  338. package/src/libraries/modules/index.ts +1 -0
  339. package/src/libraries/openApi/index.ts +1 -0
  340. package/src/libraries/openApi/pruneUnusedRef.ts +35 -0
  341. package/src/libraries/tcp/index.ts +98 -0
  342. package/src/libraries/tcp/types.ts +43 -0
  343. package/src/libraries/validation/__tests__/validation.test.ts +25 -0
  344. package/src/libraries/validation/index.ts +48 -0
  345. package/src/ports/authentication/index.ts +25 -0
  346. package/src/ports/base.ts +20 -0
  347. package/src/ports/cache/index.ts +17 -0
  348. package/src/ports/configuration/__tests__/configurationPort.test.ts +47 -0
  349. package/src/ports/configuration/args.ts +39 -0
  350. package/src/ports/configuration/common.ts +12 -0
  351. package/src/ports/configuration/index.ts +110 -0
  352. package/src/ports/configuration/localConfig.ts +117 -0
  353. package/src/ports/database/index.ts +25 -0
  354. package/src/ports/endpoints/__tests__/endpointsCall.test.ts +20 -0
  355. package/src/ports/endpoints/__tests__/test-client-library/base.ts +167 -0
  356. package/src/ports/endpoints/__tests__/test-client-library/index.ts +23 -0
  357. package/src/ports/endpoints/__tests__/test-client-library/services/service.ts +181 -0
  358. package/src/ports/endpoints/__tests__/utils.test.ts +54 -0
  359. package/src/ports/endpoints/index.ts +272 -0
  360. package/src/ports/endpoints/openApi.ts +191 -0
  361. package/src/ports/endpoints/utils.ts +31 -0
  362. package/src/ports/eventsourcing/__tests__/eventhandlers.test.ts +30 -0
  363. package/src/ports/eventsourcing/__tests__/invariants.test.ts +213 -0
  364. package/src/ports/eventsourcing/commandHandlers/index.ts +625 -0
  365. package/src/ports/eventsourcing/commandTemplates/index.ts +2 -0
  366. package/src/ports/eventsourcing/commandTemplates/multiStream.ts +70 -0
  367. package/src/ports/eventsourcing/commandTemplates/snapshot.ts +43 -0
  368. package/src/ports/eventsourcing/eventHandlers/index.ts +429 -0
  369. package/src/ports/eventsourcing/index.ts +98 -0
  370. package/src/ports/eventsourcing/invariants/combinators.ts +25 -0
  371. package/src/ports/eventsourcing/invariants/common.ts +42 -0
  372. package/src/ports/eventsourcing/invariants/comparisons.ts +90 -0
  373. package/src/ports/eventsourcing/invariants/index.ts +4 -0
  374. package/src/ports/eventsourcing/invariants/stateExistance.ts +34 -0
  375. package/src/ports/eventsourcing/subscriptions/index.ts +1 -0
  376. package/src/ports/eventsourcing/subscriptions/sseSubscriptions.ts +103 -0
  377. package/src/ports/eventsourcing/utils/aggregateBuilder.ts +49 -0
  378. package/src/ports/eventsourcing/utils/commandBuilder.ts +113 -0
  379. package/src/ports/eventsourcing/utils/eventHandlerBuilder.ts +22 -0
  380. package/src/ports/eventsourcing/utils/externalSystemBuilder.ts +42 -0
  381. package/src/ports/eventsourcing/utils/index.ts +25 -0
  382. package/src/ports/eventsourcing/utils/policyBuilder.ts +31 -0
  383. package/src/ports/eventsourcing/utils/readmodelBuilder.ts +52 -0
  384. package/src/ports/eventstore/index.ts +11 -0
  385. package/src/ports/infrastructure/__tests__/fixture/index.ts +2 -0
  386. package/src/ports/infrastructure/__tests__/fixture/infrastructureServices.ts +72 -0
  387. package/src/ports/infrastructure/__tests__/fixture/structureState.ts +254 -0
  388. package/src/ports/infrastructure/__tests__/infrastructure.test.ts +11 -0
  389. package/src/ports/infrastructure/index.ts +162 -0
  390. package/src/ports/infrastructure/utils.ts +130 -0
  391. package/src/ports/logger/index.ts +34 -0
  392. package/src/utils/index.ts +186 -0
  393. package/tsconfig.json +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/endpoints/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { Endpoint } from '../../../../pv3-types/src/endpoints';
2
+ import { JSONSchema7 } from 'json-schema';
3
+ import { OpenAPIV3_1 } from 'openapi-types';
4
+ import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
5
+ export declare const registerOpenApiSchema: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, name: string, schema: JSONSchema7, tags: string[]) => Record<string, OpenAPIV3_1.SchemaObject>;
6
+ export declare const registerAggregateState: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, name: string, schema: JSONSchema7) => Record<string, OpenAPIV3_1.SchemaObject>;
7
+ export declare const registerCommandSchema: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, name: string, schema: BaseSchema) => Record<string, OpenAPIV3_1.SchemaObject>;
8
+ export declare const registerProducerEventSchemas: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, schema: BaseSchema) => void;
9
+ export declare const registerConsumerEventsSchemas: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, schema: BaseSchema) => void;
10
+ export declare const registerReadmodelSchema: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, schema: JSONSchema7) => void;
11
+ export declare const registerOpenApiEndpoint: (paths: OpenAPIV3_1.PathsObject, endpoint: Endpoint) => OpenAPIV3_1.PathsObject<{}, {}>;
12
+ export declare const generateOpenApiDocument: (paths: OpenAPIV3_1.PathsObject, schemas: Record<string, OpenAPIV3_1.SchemaObject>, packageJson: {
13
+ name: string;
14
+ version: string;
15
+ }, _tags?: string[]) => OpenAPIV3_1.Document;
16
+ //# sourceMappingURL=openApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openApi.d.ts","sourceRoot":"","sources":["../../../src/ports/endpoints/openApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAiD5D,eAAO,MAAM,qBAAqB,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,QAAO,MAAM,UAAU,WAAW,QAAQ,MAAM,EAAE,6CAKzI,CAAC;AAEF,eAAO,MAAM,sBAAsB,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,QAAO,MAAM,UAAU,WAAW,6CAE1H,CAAC;AAEF,eAAO,MAAM,qBAAqB,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,QAAO,MAAM,UAAU,UAAU,6CAExH,CAAC;AAEF,eAAO,MAAM,4BAA4B,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,UAAU,UAAU,SAKlH,CAAC;AACF,eAAO,MAAM,6BAA6B,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,UAAU,UAAU,SAKnH,CAAC;AAEF,eAAO,MAAM,uBAAuB,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,UAAU,WAAW,SAE9G,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAY,YAAY,WAAW,YAAY,QAAQ,oCAwF1F,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAY,YAAY,WAAW,WAAW,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,eAAe;IAAC,MAAK,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,UAAS,MAAM,EAAE,KAAS,oBAehM,CAAC"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateOpenApiDocument = exports.registerOpenApiEndpoint = exports.registerReadmodelSchema = exports.registerConsumerEventsSchemas = exports.registerProducerEventSchemas = exports.registerCommandSchema = exports.registerAggregateState = exports.registerOpenApiSchema = void 0;
7
+ const json_schema_for_openapi_1 = __importDefault(require("json-schema-for-openapi"));
8
+ const ramda_1 = require("ramda");
9
+ const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
10
+ const http_1 = __importDefault(require("http"));
11
+ const convert = (schema) => {
12
+ return json_schema_for_openapi_1.default.convert(schema, 'main').schemas.main;
13
+ };
14
+ const getBodySchema = (schema) => {
15
+ if (schema) {
16
+ if (schema.anyOf) {
17
+ return {
18
+ anyOf: schema.anyOf.map((s) => getBodySchema(s))
19
+ };
20
+ }
21
+ else if (schema.properties?.data) {
22
+ const _schema = (0, ramda_1.clone)(schema);
23
+ _schema.properties.data = getBodySchema(_schema.properties.data);
24
+ return convert(_schema);
25
+ }
26
+ else {
27
+ return schema.$id
28
+ ? { $ref: `#/components/schemas/${schema.$id}` }
29
+ : convert(schema);
30
+ }
31
+ }
32
+ };
33
+ const getCommandHandlerResponseSchema = (responseInstance) => {
34
+ //REVIEW: Only place not so abstract: Conditional for Systems and Aggregates
35
+ // READMODELS
36
+ if (responseInstance?.schema?.plain?.oneOf) {
37
+ const ref = `#/components/schemas/${responseInstance.schema.plain.oneOf[0].$id}`;
38
+ responseInstance.schema.plain.oneOf[0] = { $ref: ref };
39
+ responseInstance.schema.plain.oneOf[1].items = { $ref: ref };
40
+ }
41
+ // COMMAND HANDLERS
42
+ if (responseInstance?.schema?.plain?.properties?.state) {
43
+ responseInstance.schema.plain.properties.state = { $ref: `#/components/schemas/${responseInstance?.schema?.plain?.properties?.state.$id}` };
44
+ }
45
+ if (responseInstance?.schema?.plain?.properties?.events)
46
+ for (let index = 0; index < responseInstance.schema.plain.properties.events.properties.data.anyOf.length; index++) {
47
+ const element = responseInstance.schema.plain.properties.events.properties.data.anyOf[index];
48
+ responseInstance.schema.plain.properties.events.properties.data.anyOf[index] = { $ref: `#/components/schemas/${element.$id}` };
49
+ }
50
+ // DEFAULT
51
+ return convert(responseInstance.schema.plain);
52
+ };
53
+ const registerOpenApiSchema = (schemas, name, schema, tags) => {
54
+ const openApiSchema = convert(schema);
55
+ openApiSchema.tags = tags.map((t) => ({ name: t }));
56
+ schemas[name] = openApiSchema;
57
+ return schemas;
58
+ };
59
+ exports.registerOpenApiSchema = registerOpenApiSchema;
60
+ const registerAggregateState = (schemas, name, schema) => {
61
+ return (0, exports.registerOpenApiSchema)(schemas, name, schema, ['AggregateState']);
62
+ };
63
+ exports.registerAggregateState = registerAggregateState;
64
+ const registerCommandSchema = (schemas, name, schema) => {
65
+ return (0, exports.registerOpenApiSchema)(schemas, name, schema.plain, ['Commands']);
66
+ };
67
+ exports.registerCommandSchema = registerCommandSchema;
68
+ const registerProducerEventSchemas = (schemas, schema) => {
69
+ schema.plain.properties.events.properties.data.anyOf?.map((schema) => {
70
+ (0, exports.registerOpenApiSchema)(schemas, schema.$id, schema, ['Events']);
71
+ });
72
+ schema.plain.properties.state && (0, exports.registerAggregateState)(schemas, schema.plain.properties.state.$id, schema.plain.properties.state);
73
+ };
74
+ exports.registerProducerEventSchemas = registerProducerEventSchemas;
75
+ const registerConsumerEventsSchemas = (schemas, schema) => {
76
+ schema.plain.anyOf?.map((s) => {
77
+ const schema = s.properties.data;
78
+ (0, exports.registerOpenApiSchema)(schemas, schema.$id, schema, ['Events']);
79
+ });
80
+ };
81
+ exports.registerConsumerEventsSchemas = registerConsumerEventsSchemas;
82
+ const registerReadmodelSchema = (schemas, schema) => {
83
+ (0, exports.registerOpenApiSchema)(schemas, schema.$id, schema, ['Readmodel']);
84
+ };
85
+ exports.registerReadmodelSchema = registerReadmodelSchema;
86
+ const registerOpenApiEndpoint = (paths, endpoint) => {
87
+ let endpointParams = [];
88
+ const paramsSchemas = endpoint.schemas?.params?.plain && endpoint.schemas.params.plain.properties;
89
+ if (paramsSchemas) {
90
+ endpointParams = Object.keys(paramsSchemas).reduce((acc, paramSchemaKey) => {
91
+ acc.push({
92
+ in: 'path',
93
+ name: paramSchemaKey,
94
+ description: paramsSchemas[paramSchemaKey].flags?.description || 'No description provided',
95
+ schema: { type: paramsSchemas[paramSchemaKey].type },
96
+ required: paramsSchemas[paramSchemaKey].preferences?.presence || false
97
+ });
98
+ return acc;
99
+ }, endpointParams);
100
+ }
101
+ const querySchemas = endpoint.schemas?.query && endpoint.schemas.query.plain.properties;
102
+ if (querySchemas) {
103
+ endpointParams = Object.keys(querySchemas).reduce((acc, paramSchemaKey) => {
104
+ const schema = convert(querySchemas[paramSchemaKey]);
105
+ acc.push({
106
+ in: 'query',
107
+ name: paramSchemaKey,
108
+ description: querySchemas[paramSchemaKey].flags?.description || 'No description provided',
109
+ schema,
110
+ });
111
+ return acc;
112
+ }, endpointParams);
113
+ }
114
+ const route = endpoint.route;
115
+ paths[route.replace('/:id', '/{id}')] = {
116
+ parameters: endpointParams.length ? endpointParams : [],
117
+ ...paths[route.replace('/:id', '/{id}')],
118
+ [(endpoint.method || 'GET').toLocaleLowerCase()]: { operationId: endpoint.name,
119
+ description: endpoint.description,
120
+ tags: [endpoint.module, ...(endpoint.tags || [])],
121
+ ...endpoint.method !== 'GET' && endpoint.schemas?.body && {
122
+ requestBody: {
123
+ required: true,
124
+ content: { 'application/json': {
125
+ schema: getBodySchema(endpoint.schemas.body.plain)
126
+ }, ...(!endpoint.multipartProperties ? {} : {
127
+ 'application/json': {
128
+ schema: convert(endpoint.schemas.body.plain)
129
+ .then((schema) => {
130
+ for (const prop of endpoint.multipartProperties) {
131
+ delete schema.properties[prop];
132
+ }
133
+ return schema;
134
+ })
135
+ },
136
+ 'multipart/form-data': {
137
+ schema: convert(endpoint.schemas.body.plain)
138
+ }
139
+ }) }
140
+ }
141
+ }, responses: {
142
+ ...(0, bett3r_utils_1.reduce)((acc, response, status) => {
143
+ if (status === 204) {
144
+ acc[status] = {
145
+ description: 'No Content'
146
+ };
147
+ }
148
+ else {
149
+ acc[status] = {
150
+ description: `Response Status Message: ${http_1.default.STATUS_CODES[status]}`,
151
+ content: {
152
+ 'application/json': {
153
+ schema: response.length === 1
154
+ ? getCommandHandlerResponseSchema(response[0])
155
+ : {
156
+ anyOf: (response.map(getCommandHandlerResponseSchema))
157
+ }
158
+ }
159
+ }
160
+ };
161
+ }
162
+ return acc;
163
+ }, {}, { ...endpoint.schemas?.responses, ...endpoint.schemas?.errors }),
164
+ 500: { description: 'Internal Server Error' }
165
+ } }
166
+ };
167
+ return paths;
168
+ };
169
+ exports.registerOpenApiEndpoint = registerOpenApiEndpoint;
170
+ const generateOpenApiDocument = (paths, schemas, packageJson, _tags = []) => {
171
+ const tags = _tags.map((0, ramda_1.objOf)('name'));
172
+ return {
173
+ openapi: '3.0.3',
174
+ tags,
175
+ info: {
176
+ title: packageJson.name || 'Title',
177
+ version: packageJson.version || '0.1.1',
178
+ },
179
+ servers: [{ url: 'http://localhost:1984' }],
180
+ components: {
181
+ schemas
182
+ },
183
+ paths
184
+ };
185
+ };
186
+ exports.generateOpenApiDocument = generateOpenApiDocument;
187
+ //# sourceMappingURL=openApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openApi.js","sourceRoot":"","sources":["../../../src/ports/endpoints/openApi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export type FetchResponse<T = any> = Omit<Response, 'body'> & {
2
+ body: T;
3
+ };
4
+ export declare const parseResponseBody: (type: 'json' | 'text', response: Response, method: 'reject' | 'resolve') => Promise<FetchResponse>;
5
+ export declare const processFetchResponse: <T = any>(response: Response) => Promise<FetchResponse<T>>;
6
+ export declare const getTokenFromHeader: (req: {
7
+ headers: Record<string, string | string[]>;
8
+ }) => string;
9
+ export declare const getTokenFromEndpointParams: (params: {
10
+ context: {
11
+ req: any;
12
+ };
13
+ query: {
14
+ token: string;
15
+ };
16
+ }) => string;
17
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ports/endpoints/utils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAC,MAAM,CAAC,GAAG;IAC3D,IAAI,EAAE,CAAC,CAAC;CACT,CAAA;AAED,eAAO,MAAM,iBAAiB,SAAU,MAAM,GAAC,MAAM,YAAY,QAAQ,UAAU,QAAQ,GAAE,SAAS,KAAI,QAAQ,aAAa,CAQ9H,CAAC;AACF,eAAO,MAAM,oBAAoB,sBAAwB,QAAQ,8BAKhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAU;IAAC,OAAO,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;CAAC,WAGpF,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAAa;IAAC,OAAO,EAAC;QAAC,GAAG,EAAC,GAAG,CAAA;KAAC,CAAC;IAAC,KAAK,EAAC;QAAC,KAAK,EAAC,MAAM,CAAA;KAAC,CAAA;CAAC,WAE5F,CAAC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTokenFromEndpointParams = exports.getTokenFromHeader = exports.processFetchResponse = exports.parseResponseBody = void 0;
4
+ const ramda_1 = require("ramda");
5
+ const parseResponseBody = (type, response, method) => {
6
+ return response[type]()
7
+ .then(body => {
8
+ return Promise[method]({
9
+ ...(0, ramda_1.omit)(['body'], response),
10
+ body
11
+ });
12
+ });
13
+ };
14
+ exports.parseResponseBody = parseResponseBody;
15
+ const processFetchResponse = (response) => {
16
+ if (response.ok === true)
17
+ return (0, exports.parseResponseBody)('json', response, 'resolve');
18
+ else
19
+ return (0, exports.parseResponseBody)('json', response, 'reject');
20
+ };
21
+ exports.processFetchResponse = processFetchResponse;
22
+ const getTokenFromHeader = (req) => {
23
+ const authHeader = req.headers['authorization'];
24
+ return authHeader && authHeader.split(' ')[1];
25
+ };
26
+ exports.getTokenFromHeader = getTokenFromHeader;
27
+ const getTokenFromEndpointParams = (params) => {
28
+ return params?.context?.req ? (0, exports.getTokenFromHeader)(params.context.req) : params?.query?.token;
29
+ };
30
+ exports.getTokenFromEndpointParams = getTokenFromEndpointParams;
31
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/ports/endpoints/utils.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAOtB,MAAM,iBAAiB,GAAG,CAAE,IAAkB,EAAE,QAAkB,EAAE,MAA2B,EAA2B,EAAE;IACjI,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE;SACpB,IAAI,CAAE,IAAI,CAAC,EAAE;QACZ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;YACrB,GAAG,IAAA,YAAI,EAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAE;YAC5B,IAAI;SACL,CAA2B,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AACK,MAAM,oBAAoB,GAAG,CAAW,QAAkB,EAA8B,EAAE;IAC/F,IAAK,QAAQ,CAAC,EAAE,KAAK,IAAI;QACvB,OAAO,IAAA,yBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAE,CAAC;;QAExD,OAAO,IAAA,yBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAE,CAAC;AAC3D,CAAC,CAAC;AALW,QAAA,oBAAoB,wBAK/B;AAEK,MAAM,kBAAkB,GAAG,CAAE,GAAiD,EAAE,EAAE;IACvF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAW,CAAC;IAC1D,OAAO,UAAU,IAAI,UAAU,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAHW,QAAA,kBAAkB,sBAG7B;AAEK,MAAM,0BAA0B,GAAG,CAAE,MAAiD,EAAE,EAAE;IAC/F,OAAO,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAA,0BAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;AAChG,CAAC,CAAC;AAFW,QAAA,0BAA0B,8BAErC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=eventhandlers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventhandlers.test.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/__tests__/eventhandlers.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
7
+ const eventHandlers_1 = require("../eventHandlers");
8
+ describe('Readmodels helper functions', () => {
9
+ describe('formatFilter', () => {
10
+ const schema = jsonschema_definer_1.default.shape({
11
+ id: jsonschema_definer_1.default.string(),
12
+ string: jsonschema_definer_1.default.string(),
13
+ number: jsonschema_definer_1.default.number(),
14
+ boolean: jsonschema_definer_1.default.boolean()
15
+ });
16
+ it.each([
17
+ ['EQ', 'string,eq,someString', [{ field: 'string', op: 'eq', value: 'someString' }]],
18
+ ['NEQ', 'boolean,neq,true', [{ field: 'boolean', op: 'neq', value: true }]],
19
+ ['LT', 'number,lt,3', [{ field: 'number', op: 'lt', value: 3 }]],
20
+ ['GT', 'string,gt,someString,fdsa', [{ field: 'string', op: 'gt', value: 'someString' }]],
21
+ ['LTE', 'string,lte,someString', [{ field: 'string', op: 'lte', value: 'someString' }]],
22
+ ['GTE', 'string,gte,someString', [{ field: 'string', op: 'gte', value: 'someString' }]],
23
+ ['IN', 'string,in,someString,maria', [{ field: 'string', op: 'in', value: ['someString', 'maria'] }]],
24
+ ['IN', 'number,in,5,8', [{ field: 'number', op: 'in', value: [5, 8] }]],
25
+ ['NIN', 'string,nin,someString,maria', [{ field: 'string', op: 'nin', value: ['someString', 'maria'] }]],
26
+ ['NIN', 'boolean,nin,true,false', [{ field: 'boolean', op: 'nin', value: [true, false] }]],
27
+ ['EXISTS', 'string,exists', [{ field: 'string', op: 'exists', value: undefined }]],
28
+ ['NOTEXISTS', 'string,notExists,asdf', [{ field: 'string', op: 'notExists', value: undefined }]],
29
+ ])('transforms the query params of a %s filter', (name, query, expected) => {
30
+ const filter = (0, eventHandlers_1.formatFilter)([query], schema);
31
+ expect(filter).toEqual(expected);
32
+ });
33
+ });
34
+ });
35
+ //# sourceMappingURL=eventhandlers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventhandlers.test.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/__tests__/eventhandlers.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=invariants.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariants.test.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/__tests__/invariants.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,210 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const invariants_1 = require("../invariants");
4
+ const mockState = {
5
+ commandHandler: { name: 'SomeAggregate' },
6
+ command: {},
7
+ query: {},
8
+ stream: '',
9
+ context: {},
10
+ events: [],
11
+ params: {},
12
+ state: null,
13
+ data: null
14
+ };
15
+ describe('invariants', () => {
16
+ describe('StateExists', () => {
17
+ test('returns the commandHandlerState when state exists', async () => {
18
+ const result = await (0, invariants_1.stateExists)().check({
19
+ ...mockState,
20
+ state: { name: 'lucas' },
21
+ });
22
+ expect(result).toEqual({
23
+ ...mockState,
24
+ state: { name: 'lucas' },
25
+ });
26
+ });
27
+ test('returns an error when state does not exists', async () => {
28
+ try {
29
+ await (0, invariants_1.stateExists)().check(mockState);
30
+ }
31
+ catch (err) {
32
+ expect(err.name).toEqual('State Does Not Exists');
33
+ expect(err.type).toEqual('BadRequestError');
34
+ expect(err.description).toEqual('Expected State in aggregate SomeAggregate');
35
+ }
36
+ });
37
+ });
38
+ describe('StateNotExists', () => {
39
+ test('returns an Error when state exists', async () => {
40
+ const result = await (0, invariants_1.stateNotExists)().check(mockState);
41
+ expect(result).toEqual(mockState);
42
+ });
43
+ test('returns the commandHandlerState when state does not exists', async () => {
44
+ try {
45
+ await (0, invariants_1.stateNotExists)().check({
46
+ ...mockState,
47
+ state: { name: 'lucas' },
48
+ });
49
+ }
50
+ catch (err) {
51
+ expect(err.name).toEqual('Unexpected State');
52
+ expect(err.type).toEqual('BadRequestError');
53
+ expect(err.description).toEqual('Unexpected State in aggregate SomeAggregate');
54
+ }
55
+ });
56
+ });
57
+ describe('ComparePaths', () => {
58
+ test.each([
59
+ { op: 'eq', state: { prop: 'john' }, data: { prop: 'john' }, path1: '' },
60
+ { op: 'neq', state: { prop: 'john' }, data: { prop: 'tom' }, path1: '' },
61
+ { op: 'lt', state: { prop: 3 }, data: { prop: 5 }, path1: '' },
62
+ { op: 'gt', state: { prop: 5 }, data: { prop: 3 }, path1: '' },
63
+ { op: 'lte', state: { prop: 3 }, data: { prop: 3 }, path1: '' },
64
+ { op: 'gte', state: { prop: 5 }, data: { prop: 3 }, path1: '' },
65
+ { op: 'in', state: { prop: 5 }, data: { prop: [3, 5] }, path1: '' },
66
+ { op: 'nin', state: { prop: 2 }, data: { prop: [3, 5] }, path1: '' },
67
+ { op: 'contains', state: { prop: [3, 5] }, data: { prop: 5 }, path1: '' },
68
+ { op: 'containsKey', state: { prop: [3, 5] }, data: { prop: 'prop' }, path1: 'state' },
69
+ { op: 'notContains', state: { prop: [3, 5] }, data: { prop: 6 }, path1: '' },
70
+ { op: 'notContainsKey', state: { prop: [3, 5] }, data: { prop: 'propNot' }, path1: 'state' },
71
+ { op: 'some', state: { prop: [3, 5] }, data: { prop: [6, 3] }, path1: '' },
72
+ { op: 'every', state: { prop: [3, 5] }, data: { prop: [5, 3, 2] }, path1: '' },
73
+ { op: 'exists', state: { prop: 'john' }, data: { prop: undefined }, path1: '' },
74
+ { op: 'notExists', state: { prop: 'john' }, data: {}, path1: 'state.name' }
75
+ ])('returns the commandHandlerState when path comparison is ok for operation $op', async (values) => {
76
+ const result = await (0, invariants_1.comparePaths)({ path1: values.path1 || 'state.prop', path2: 'data.prop', op: values.op }).check({
77
+ ...mockState,
78
+ state: values.state,
79
+ data: values.data
80
+ });
81
+ expect(result).toEqual({
82
+ ...mockState,
83
+ state: values.state,
84
+ data: values.data
85
+ });
86
+ });
87
+ test('returns an error when ComparePath is not ok', async () => {
88
+ try {
89
+ await (0, invariants_1.comparePaths)({ path1: 'state.name', path2: 'data.name', op: 'eq' }).check({
90
+ ...mockState,
91
+ state: { name: 'lucas' },
92
+ data: { name: 'tomas' },
93
+ });
94
+ }
95
+ catch (err) {
96
+ expect(err.name).toEqual('Invariant Error');
97
+ expect(err.type).toEqual('BadRequestError');
98
+ expect(err.description).toEqual('Comparison failed on paths for operation eq');
99
+ expect(err.details).toEqual({ path1: 'state.name', path2: 'data.name' });
100
+ }
101
+ });
102
+ });
103
+ describe('CompareWithValue', () => {
104
+ test.each([
105
+ { op: 'eq', state: { prop: 'john' }, data: 'john', path1: '' },
106
+ { op: 'neq', state: { prop: 'john' }, data: 'tom', path1: '' },
107
+ { op: 'lt', state: { prop: 3 }, data: 5, path1: '' },
108
+ { op: 'gt', state: { prop: 5 }, data: 3, path1: '' },
109
+ { op: 'lte', state: { prop: 3 }, data: 3, path1: '' },
110
+ { op: 'gte', state: { prop: 5 }, data: 3, path1: '' },
111
+ { op: 'in', state: { prop: 5 }, data: [3, 5], path1: '' },
112
+ { op: 'nin', state: { prop: 2 }, data: [3, 5], path1: '' },
113
+ { op: 'contains', state: { prop: [3, 5] }, data: 5, path1: '' },
114
+ { op: 'notContains', state: { prop: [3, 5] }, data: 6, path1: '' },
115
+ { op: 'some', state: { prop: [3, 5] }, data: [6, 3], path1: '' },
116
+ { op: 'every', state: { prop: [3, 5] }, data: [5, 3], path1: '' },
117
+ { op: 'exists', state: { prop: 'john' }, data: undefined, path1: '' },
118
+ { op: 'notExists', state: { prop: 'john' }, data: {}, path1: 'state.name' }
119
+ ])('returns the commandHandlerState when path comparison is ok for operation $op', async (values) => {
120
+ const result = await (0, invariants_1.compareWithValue)({ path: values.path1 || 'state.prop', value: values.data, op: values.op }).check({
121
+ ...mockState,
122
+ state: values.state,
123
+ data: values.data
124
+ });
125
+ expect(result).toEqual({
126
+ ...mockState,
127
+ state: values.state,
128
+ data: values.data
129
+ });
130
+ });
131
+ test('returns an error when CompareValue is not ok', async () => {
132
+ try {
133
+ await (0, invariants_1.compareWithValue)({ path: 'state.name', value: 'tomas', op: 'eq' }).check({
134
+ ...mockState,
135
+ state: { name: 'lucas' },
136
+ });
137
+ }
138
+ catch (err) {
139
+ expect(err.name).toEqual('Invariant Error');
140
+ expect(err.type).toEqual('BadRequestError');
141
+ expect(err.description).toEqual('Comparison failed with value tomas for operation eq');
142
+ expect(err.details).toEqual({ path: 'state.name' });
143
+ }
144
+ });
145
+ });
146
+ describe('CompareWithReadmodel', () => {
147
+ const mockGet = jest.fn().mockResolvedValue([{ name: 'lucas' }]);
148
+ const mockEndpoints = {
149
+ get: mockGet,
150
+ };
151
+ test('returns the commandHandlerState when readmodel comparison is ok for operation eq', async () => {
152
+ const result = await (0, invariants_1.compareWithReadmodel)({ endpoints: mockEndpoints, readmodelBaseUrl: 'baseUrl',
153
+ url: () => '/someUrl?query=1',
154
+ comparisons: [
155
+ { path: 'state.name', readmodelPath: 'name', op: 'eq' }
156
+ ] }).check({
157
+ ...mockState,
158
+ state: { name: 'lucas' }
159
+ });
160
+ expect(result).toEqual({
161
+ ...mockState,
162
+ state: { name: 'lucas' }
163
+ });
164
+ expect(mockGet).toHaveBeenCalledWith('baseUrl/someUrl?query=1');
165
+ });
166
+ test('returns an error when CompareWithReadmodel is not ok', async () => {
167
+ try {
168
+ await (0, invariants_1.compareWithReadmodel)({ endpoints: mockEndpoints, readmodelBaseUrl: 'baseUrl',
169
+ url: () => 'someUrl',
170
+ comparisons: [
171
+ { path: 'state.name', readmodelPath: 'name', op: 'eq' }
172
+ ] }).check({
173
+ ...mockState,
174
+ state: { name: 'tomas' }
175
+ });
176
+ }
177
+ catch (err) {
178
+ expect(err.name).toEqual('Invariant Error');
179
+ expect(err.type).toEqual('BadRequestError');
180
+ expect(err.description).toEqual('Comparison failed with readmodel baseUrlsomeUrl');
181
+ expect(err.details).toEqual({ readmodelUrl: 'baseUrlsomeUrl' });
182
+ }
183
+ });
184
+ });
185
+ describe('OR', () => {
186
+ test('returns true when any of the conditions is ok', async () => {
187
+ const result = await (0, invariants_1.or)((0, invariants_1.compareWithValue)({ path: 'state.name', value: 'lucas', op: 'eq' }), (0, invariants_1.compareWithValue)({ path: 'state.name', value: 'tomas', op: 'eq' })).check({
188
+ ...mockState,
189
+ state: { name: 'lucas' },
190
+ });
191
+ expect(result).toEqual({
192
+ ...mockState,
193
+ state: { name: 'lucas' },
194
+ });
195
+ });
196
+ });
197
+ describe('AND', () => {
198
+ test('returns true when any of the conditions is ok', async () => {
199
+ const result = await (0, invariants_1.and)((0, invariants_1.compareWithValue)({ path: 'state.name', value: 'lucas', op: 'eq' }), (0, invariants_1.compareWithValue)({ path: 'state.lastName', value: 'ruiz', op: 'eq' })).check({
200
+ ...mockState,
201
+ state: { name: 'lucas', lastName: 'ruiz' },
202
+ });
203
+ expect(result).toEqual({
204
+ ...mockState,
205
+ state: { name: 'lucas', lastName: 'ruiz' },
206
+ });
207
+ });
208
+ });
209
+ });
210
+ //# sourceMappingURL=invariants.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invariants.test.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/__tests__/invariants.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Aggregate, AggregateReducedState, CommandExecutionResponse, CommandHandlerFunction, CommandHandlerState, CommittedEvent, DatabasePort, DatabaseTransaction, EndpointsPort, EventFactory, EventSourcingCommandHandlers, EventStorePort, EventToCommit, InvariantType, LoggerType, ReadStreamOptions, SystemGetQueryType } from '@bett3r-dev/pv3-types';
2
+ export declare const formatAggregateGetQueryParams: (params: SystemGetQueryType) => ReadStreamOptions;
3
+ export declare const getEventReducers: (aggregate: Aggregate, reducedState?: AggregateReducedState) => (event: EventToCommit) => AggregateReducedState;
4
+ export declare const appendEventsToStream: (eventstore: EventStorePort, expectedVersion?: number, transaction?: DatabaseTransaction) => (events: EventToCommit[]) => Promise<CommittedEvent<unknown>[]>;
5
+ export declare const addMetadata: ({ metadata, context, stream }: CommandHandlerState) => (event: ReturnType<EventFactory>) => EventToCommit;
6
+ export declare const prepareEventsToCommit: (handlerState: CommandHandlerState) => Promise<EventToCommit[]>;
7
+ export declare const commitEvents: (eventstore: EventStorePort) => (handlerState: CommandHandlerState, transaction?: DatabaseTransaction) => Promise<CommandHandlerState>;
8
+ export declare const getStreamReducer: (state?: Record<string, any>) => (event: CommittedEvent) => Record<string, any>;
9
+ export declare const loadStream: (eventstore: EventStorePort) => (stream: string, options?: ReadStreamOptions) => Promise<CommittedEvent[] | undefined>;
10
+ export declare const loadAggregateState: (eventstore: EventStorePort) => (system: Aggregate, stream: string, options?: ReadStreamOptions, state?: any) => Promise<AggregateReducedState | null>;
11
+ export declare const domainModelLoad: (database: DatabasePort, collection: string) => (handlerState: CommandHandlerState) => Promise<CommandHandlerState>;
12
+ export declare const domainModelCommit: (eventstore: EventStorePort) => (database: DatabasePort, collection: string) => (handlerState: CommandHandlerState) => Promise<CommandHandlerState>;
13
+ export declare const defaultHandler: (eventsProducedByCommand: string[]) => CommandHandlerFunction;
14
+ export declare const defaultCommit: (eventstore: EventStorePort) => (state: CommandHandlerState) => Promise<CommandHandlerState>;
15
+ export declare const reduceEventsIntoState: (initialState: any, commandHandler: Aggregate, events: EventToCommit[]) => {
16
+ events: EventToCommit[];
17
+ state: any;
18
+ };
19
+ export declare const formatDomainModelCommandResponse: (handlerState: CommandHandlerState) => Promise<CommandExecutionResponse>;
20
+ export declare const formatEventSourcedCommandResponse: (handlerState: CommandHandlerState) => Promise<CommandExecutionResponse>;
21
+ export declare const validateInvariants: (invariants: InvariantType[]) => (state: CommandHandlerState) => Promise<CommandHandlerState<any, any, any, any> | CommandHandlerState>;
22
+ export declare const defaultEventsourcingLoad: (eventstore: EventStorePort) => (handlerState: CommandHandlerState, options?: ReadStreamOptions, state?: any) => Promise<CommandHandlerState>;
23
+ export declare const handleCommand: (handler: CommandHandlerFunction) => (handlerState: CommandHandlerState) => Promise<CommandHandlerState>;
24
+ export declare function createCommandHandlers(logger: LoggerType, endpoint: EndpointsPort, eventstore: EventStorePort): EventSourcingCommandHandlers;
25
+ //# sourceMappingURL=index.d.ts.map