@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,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.structureState = void 0;
4
+ exports.structureState = {
5
+ state: {
6
+ brokers: {
7
+ '10.0.0.13': {
8
+ subscriptions: {
9
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
10
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel-0': {
11
+ host: '10.0.0.13',
12
+ index: 0,
13
+ },
14
+ },
15
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
16
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel-0': {
17
+ host: '10.0.0.13',
18
+ index: 0,
19
+ },
20
+ },
21
+ },
22
+ },
23
+ '10.0.0.14': {
24
+ subscriptions: {
25
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
26
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel-1': {
27
+ host: '10.0.0.14',
28
+ index: 1,
29
+ },
30
+ },
31
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
32
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel-1': {
33
+ host: '10.0.0.14',
34
+ index: 1,
35
+ },
36
+ },
37
+ },
38
+ },
39
+ '10.0.0.15': {
40
+ subscriptions: {
41
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
42
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel-2': {
43
+ host: '10.0.0.15',
44
+ index: 2,
45
+ },
46
+ },
47
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
48
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel-2': {
49
+ host: '10.0.0.15',
50
+ index: 2,
51
+ },
52
+ },
53
+ },
54
+ },
55
+ '10.0.0.16': {
56
+ subscriptions: {
57
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
58
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel-3': {
59
+ host: '10.0.0.16',
60
+ index: 3,
61
+ },
62
+ },
63
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
64
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel-3': {
65
+ host: '10.0.0.16',
66
+ index: 3,
67
+ },
68
+ },
69
+ },
70
+ },
71
+ '10.0.0.18': {
72
+ subscriptions: {
73
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
74
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel-4': {
75
+ host: '10.0.0.18',
76
+ index: 4,
77
+ },
78
+ },
79
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
80
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel-4': {
81
+ host: '10.0.0.18',
82
+ index: 4,
83
+ },
84
+ },
85
+ },
86
+ },
87
+ '10.0.0.19': {
88
+ subscriptions: {
89
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
90
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel-5': {
91
+ host: '10.0.0.19',
92
+ index: 5,
93
+ },
94
+ },
95
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
96
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel-5': {
97
+ host: '10.0.0.19',
98
+ index: 5,
99
+ },
100
+ },
101
+ },
102
+ },
103
+ '10.0.0.20': {
104
+ subscriptions: {
105
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
106
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel-6': {
107
+ host: '10.0.0.20',
108
+ index: 6,
109
+ },
110
+ },
111
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
112
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel-6': {
113
+ host: '10.0.0.20',
114
+ index: 6,
115
+ },
116
+ },
117
+ },
118
+ },
119
+ '10.0.0.21': {
120
+ subscriptions: {
121
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
122
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel-7': {
123
+ host: '10.0.0.21',
124
+ index: 7,
125
+ },
126
+ },
127
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
128
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel-7': {
129
+ host: '10.0.0.21',
130
+ index: 7,
131
+ },
132
+ },
133
+ },
134
+ },
135
+ },
136
+ services: {
137
+ service0: {
138
+ port: 2013,
139
+ consumes: {
140
+ OperationCountByColorReadModel: [
141
+ 'DividedBy_17',
142
+ 'MultipliedBy_18',
143
+ 'MultipliedBy_2',
144
+ 'MultipliedBy_5',
145
+ 'Subtracted_50',
146
+ 'Added_20',
147
+ 'Added_7',
148
+ 'Added_3',
149
+ 'DividedBy_3',
150
+ ],
151
+ TotalByColorReadModel: [
152
+ 'MultipliedBy_18',
153
+ 'DividedBy_17',
154
+ 'MultipliedBy_5',
155
+ 'MultipliedBy_2',
156
+ 'Subtracted_50',
157
+ 'Added_20',
158
+ 'Added_7',
159
+ 'Added_3',
160
+ 'DividedBy_3',
161
+ ],
162
+ },
163
+ produces: {
164
+ ArithmeticOperationsAggregate: [
165
+ 'DividedBy_17',
166
+ 'Added_20',
167
+ 'MultipliedBy_5',
168
+ 'Added_3',
169
+ 'Added_7',
170
+ 'MultipliedBy_2',
171
+ 'Subtracted_50',
172
+ 'DividedBy_3',
173
+ 'MultipliedBy_18',
174
+ ],
175
+ },
176
+ isBroker: true,
177
+ isService: true,
178
+ endpoints: [
179
+ 'GET:/arithmetic-operations-aggregate/{id}',
180
+ 'GET:/arithmetic-operations-aggregate/{id}/stream',
181
+ 'POST:/arithmetic-operations-aggregate/{id}/divide-by-17',
182
+ 'POST:/arithmetic-operations-aggregate/{id}/add-20',
183
+ 'POST:/arithmetic-operations-aggregate/{id}/multiply-by-5',
184
+ 'POST:/arithmetic-operations-aggregate/{id}/add-3',
185
+ 'POST:/arithmetic-operations-aggregate/{id}/add-7',
186
+ 'POST:/arithmetic-operations-aggregate/{id}/multiply-by-2',
187
+ 'POST:/arithmetic-operations-aggregate/{id}/subtract-50',
188
+ 'POST:/arithmetic-operations-aggregate/{id}/divide-by-3',
189
+ 'POST:/arithmetic-operations-aggregate/{id}/multiply-by-18',
190
+ 'POST:/operation-count-by-color-read-model',
191
+ 'GET:/operation-count-by-color-read-model/{id}?',
192
+ 'POST:/total-by-color-read-model',
193
+ 'GET:/total-by-color-read-model/{id}?',
194
+ ],
195
+ possibleSubscriptions: [
196
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel',
197
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel',
198
+ ],
199
+ hosts: [
200
+ '10.0.0.13',
201
+ '10.0.0.14',
202
+ '10.0.0.15',
203
+ '10.0.0.16',
204
+ '10.0.0.18',
205
+ '10.0.0.19',
206
+ '10.0.0.20',
207
+ '10.0.0.21',
208
+ ],
209
+ },
210
+ },
211
+ subscriptions: {
212
+ 'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
213
+ consumer: 'OperationCountByColorReadModel',
214
+ endpoint: '/operation-count-by-color-read-model',
215
+ events: [
216
+ 'DividedBy_17',
217
+ 'MultipliedBy_18',
218
+ 'MultipliedBy_2',
219
+ 'MultipliedBy_5',
220
+ 'Subtracted_50',
221
+ 'Added_20',
222
+ 'Added_7',
223
+ 'Added_3',
224
+ 'DividedBy_3',
225
+ ],
226
+ producer: 'ArithmeticOperationsAggregate',
227
+ dataSplits: {
228
+ manual: [],
229
+ custom: [],
230
+ automatic: [],
231
+ },
232
+ },
233
+ 'ArithmeticOperationsAggregate-TotalByColorReadModel': {
234
+ consumer: 'OperationCountByColorReadModel',
235
+ endpoint: '/total-by-color-read-model',
236
+ events: [
237
+ 'MultipliedBy_18',
238
+ 'DividedBy_17',
239
+ 'MultipliedBy_5',
240
+ 'MultipliedBy_2',
241
+ 'Subtracted_50',
242
+ 'Added_20',
243
+ 'Added_7',
244
+ 'Added_3',
245
+ 'DividedBy_3',
246
+ ],
247
+ producer: 'ArithmeticOperationsAggregate',
248
+ dataSplits: {
249
+ manual: [],
250
+ custom: [],
251
+ automatic: [],
252
+ },
253
+ },
254
+ },
255
+ },
256
+ expectedVersion: 8,
257
+ };
258
+ //# sourceMappingURL=structureState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureState.js","sourceRoot":"","sources":["../../../../../src/ports/infrastructure/__tests__/fixture/structureState.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=infrastructure.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infrastructure.test.d.ts","sourceRoot":"","sources":["../../../../src/ports/infrastructure/__tests__/infrastructure.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ describe('Infrastructure Port', () => {
4
+ describe('getStructureDifferences', () => {
5
+ it('works', async () => {
6
+ // const result = getStructureDifferences( structureState, infrastructureServices );
7
+ // result;//?
8
+ });
9
+ });
10
+ });
11
+ //# sourceMappingURL=infrastructure.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infrastructure.test.js","sourceRoot":"","sources":["../../../../src/ports/infrastructure/__tests__/infrastructure.test.ts"],"names":[],"mappings":";;AAGA,QAAQ,CAAE,qBAAqB,EAAE,GAAG,EAAE;IACpC,QAAQ,CAAE,yBAAyB,EAAE,GAAG,EAAE;QACxC,EAAE,CAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YACtB,oFAAoF;YACpF,aAAa;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { EnvironmentServiceType, InfrastructureAdapterType, InfrastructureConfigType, InfrastructurePortType, InfrastructureServiceType, Ports } from '@bett3r-dev/pv3-types';
2
+ import { ClusterStructureType, StructureState } from '@bett3r-dev/pv3-types';
3
+ export { getThisServiceIps } from './utils';
4
+ export declare const getStructureDifferences: (structureState: StructureState, infra: InfrastructureServiceType[]) => {
5
+ upsertHosts: {
6
+ port?: number | undefined;
7
+ channel?: "http" | "tcp" | "local" | undefined;
8
+ isExternal?: boolean | undefined;
9
+ possibleSubscriptions?: string[] | undefined;
10
+ possibleModules?: {
11
+ [x: string]: string[];
12
+ } | undefined;
13
+ isService?: boolean | undefined;
14
+ isBroker?: boolean | undefined;
15
+ endpoints?: string[] | undefined;
16
+ openApiEndpoint?: string | undefined;
17
+ produces?: {
18
+ [x: string]: string[];
19
+ } | undefined;
20
+ consumes?: {
21
+ [x: string]: string[];
22
+ } | undefined;
23
+ host: string;
24
+ doNotRebalance?: boolean | undefined;
25
+ service: string;
26
+ }[];
27
+ removeHosts: string[];
28
+ subscriptions: {
29
+ [id: string]: {
30
+ events?: string[] | undefined;
31
+ endpoint?: string | undefined;
32
+ load?: number | undefined;
33
+ eventstore?: string | undefined;
34
+ manualDataSplits?: number | undefined;
35
+ mirrorDataSplitsWithConsumers?: boolean | undefined;
36
+ customDataSplits?: string[][] | undefined;
37
+ streams?: string | undefined;
38
+ retryAfterSecs?: number | undefined;
39
+ retryableStatuses?: number[] | undefined;
40
+ dataSplits?: {
41
+ custom?: (string | undefined)[] | undefined;
42
+ manual?: (string | undefined)[] | undefined;
43
+ automatic?: (string | undefined)[] | undefined;
44
+ } | undefined;
45
+ producers: string[];
46
+ module: string;
47
+ consumer: string;
48
+ };
49
+ };
50
+ };
51
+ export declare const getInfrastructureServicesDefinition: (infraServices: EnvironmentServiceType[]) => Promise<InfrastructureServiceType[]>;
52
+ export declare const InfrastructurePort: (ports: Pick<Ports, 'logger' | 'endpoints' | 'configuration'>, config: InfrastructureConfigType, structure: ClusterStructureType, adapter?: InfrastructureAdapterType) => InfrastructurePortType;
53
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/infrastructure/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,yBAAyB,EAAiC,KAAK,EAAwB,MAAM,uBAAuB,CAAC;AAInO,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAyB,MAAM,uBAAuB,CAAC;AAGpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,uBAAuB,mBAAqB,cAAc,SAAS,yBAAyB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyB1G,CAAC;AA8CF,eAAO,MAAM,mCAAmC,kBAA0B,sBAAsB,EAAE,KAAG,QAAQ,yBAAyB,EAAE,CAUvI,CAAC;AAGF,eAAO,MAAM,kBAAkB,UAAY,KAAK,KAAK,EAAE,QAAQ,GAAC,WAAW,GAAC,eAAe,CAAC,UAAU,wBAAwB,aAAa,oBAAoB,YAAY,yBAAyB,KAAI,sBAkEvM,CAAC"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfrastructurePort = exports.getInfrastructureServicesDefinition = exports.getStructureDifferences = exports.getThisServiceIps = void 0;
4
+ const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
5
+ const ramda_1 = require("ramda");
6
+ const infrastructure_1 = require("../../adapters/infrastructure");
7
+ const base_1 = require("../base");
8
+ const utils_1 = require("./utils");
9
+ var utils_2 = require("./utils");
10
+ Object.defineProperty(exports, "getThisServiceIps", { enumerable: true, get: function () { return utils_2.getThisServiceIps; } });
11
+ const getStructureDifferences = (structureState, infra) => {
12
+ const serviceHostsSet = new Set(Object.values(structureState.state.services).reduce((hosts, service) => hosts.concat(service.hosts), []));
13
+ const upsertHosts = [];
14
+ const infraServices = infra.reduce((services, service) => {
15
+ if (service.isService)
16
+ services[service.service] = service;
17
+ return services;
18
+ }, {});
19
+ const { subscriptions, servicesSubscriptions } = (0, utils_1.discoverSubscriptions)(infraServices);
20
+ for (const service of infra) {
21
+ for (const { host } of service.instances) {
22
+ serviceHostsSet.delete(host);
23
+ upsertHosts.push({
24
+ ...(0, ramda_1.omit)(['instances'], service),
25
+ host,
26
+ possibleSubscriptions: servicesSubscriptions[service.service]
27
+ });
28
+ }
29
+ }
30
+ const removeHosts = Array.from(serviceHostsSet);
31
+ return {
32
+ upsertHosts,
33
+ removeHosts,
34
+ subscriptions
35
+ };
36
+ };
37
+ exports.getStructureDifferences = getStructureDifferences;
38
+ const checkInfrastructureIntegrity = (structure) => async (infra, retryBackoff = 100) => {
39
+ const structureState = await structure.getCurrentState();
40
+ const differences = (0, exports.getStructureDifferences)(structureState, infra);
41
+ console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ STRUCTURE DIFFERENCE Version', structureState.version, differences.upsertHosts.map(x => x.host));
42
+ await structure.SetStructure(differences, structureState.version)
43
+ .catch((e) => {
44
+ if (e.type !== 'ConcurrencyError')
45
+ throw e;
46
+ else {
47
+ console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ CONCURRENCY ERROR', e);
48
+ return new Promise((resolve) => {
49
+ setTimeout(() => {
50
+ checkInfrastructureIntegrity(structure)(infra, retryBackoff * 2)
51
+ .then(resolve);
52
+ }, retryBackoff);
53
+ });
54
+ }
55
+ });
56
+ return infra;
57
+ };
58
+ const getCurrentServiceInfo = (services) => {
59
+ const ips = (0, utils_1.getThisServiceIps)();
60
+ const brokerHosts = services
61
+ .reduce((brokers, service, index) => {
62
+ if (!service.isBroker)
63
+ return brokers;
64
+ brokers.push(...service.instances.map((0, ramda_1.assoc)('serviceIndex', index)));
65
+ return brokers;
66
+ }, [])
67
+ .sort((a, b) => a.timeRunning - b.timeRunning);
68
+ const hostIndex = brokerHosts
69
+ .findIndex(host => ips.includes(host.host));
70
+ const brokerHost = brokerHosts[hostIndex];
71
+ if (hostIndex === -1)
72
+ throw new Error('Service not found in infrastructure');
73
+ return {
74
+ ...services[brokerHost.serviceIndex],
75
+ host: brokerHost.host,
76
+ leadershipRank: hostIndex,
77
+ };
78
+ };
79
+ const getInfrastructureServicesDefinition = async (infraServices) => {
80
+ return infraServices.map((service) => {
81
+ return {
82
+ service: service.service,
83
+ port: service.port,
84
+ instances: service.instances,
85
+ openApiEndpoint: service.openApiEndpoint,
86
+ ...(service.openApi ? (0, utils_1.getServiceDefinition)(service.openApi) : {})
87
+ };
88
+ });
89
+ };
90
+ exports.getInfrastructureServicesDefinition = getInfrastructureServicesDefinition;
91
+ const InfrastructurePort = (ports, config, structure, adapter) => {
92
+ let servicesOpenApiDocumentation = {};
93
+ let _adapter;
94
+ let thisService;
95
+ let adapters = (0, ramda_1.append)((0, infrastructure_1.LocalInfrastructure)(ports), adapter ? [adapter] : []);
96
+ const assignOpenApiDocumentation = (0, ramda_1.compose)((services) => servicesOpenApiDocumentation = services, (0, bett3r_utils_1.reduce)((docs, serviceDefinition) => (0, ramda_1.assoc)(serviceDefinition.service, serviceDefinition.openApi, docs), {}));
97
+ const setOpenApiDocs = (0, ramda_1.converge)((x, _) => x, [ramda_1.identity, assignOpenApiDocumentation]);
98
+ const start = async () => {
99
+ const _adapters = await Promise.allSettled(adapters.map(adapter => adapter.start()));
100
+ const index = _adapters.findIndex(adapter => adapter.status === 'fulfilled');
101
+ _adapter = adapters[index];
102
+ const checkInfrastructure = checkInfrastructureIntegrity(structure);
103
+ const infraServices = await _adapter.getServices().then(setOpenApiDocs);
104
+ const infraServicesDefinition = await (0, exports.getInfrastructureServicesDefinition)(infraServices);
105
+ thisService = getCurrentServiceInfo(infraServicesDefinition);
106
+ _adapter.listenForInfrastructureChanges((action, info) => {
107
+ console.log('LOS SERVICES QUE RECIBI --------- ', info.instances.map(i => i.host));
108
+ if (action === 'create' && info.openApi.tags?.find(tag => tag.name === 'pv3.outbox')) {
109
+ return;
110
+ }
111
+ //TODO: Crear una mejor manera de manejar el exponential backoff. y operaciones idempotentes
112
+ setTimeout(() => {
113
+ _adapter.getServices()
114
+ // .then(( s ) => {
115
+ // const service = s.find( s=> s.service === info.service );
116
+ // if ( service?.openApi.tags?.find( tag => tag.name === 'pv3.outbox' )){
117
+ // return Promise.reject( 'IgnoringOutboxService' );
118
+ // }
119
+ // // return s.filter(( s ) => {
120
+ // // info.service === s.service
121
+ // // return s.openApi.tags?.find(( tag ) => tag.name !== 'pv3.outbox' );
122
+ // // });
123
+ // })
124
+ .then(x => { console.log('LOS SERVICES QUE VOY A AGREGAR --------- ', x.map(s => s.instances.map(i => i.host))); return x; })
125
+ .then(setOpenApiDocs)
126
+ .then(exports.getInfrastructureServicesDefinition)
127
+ .then(checkInfrastructure);
128
+ }, (config.infrastructureLeaderRandomBackoff || 1000) * (thisService.leadershipRank || 0));
129
+ });
130
+ await checkInfrastructure(infraServicesDefinition);
131
+ environments.isStarted = true;
132
+ environments.emitter.emit('started');
133
+ };
134
+ const environments = (0, base_1.createPort)({
135
+ _adapter: () => _adapter,
136
+ name: 'Infrastructure',
137
+ getServicesOpenApiDocumentation: () => servicesOpenApiDocumentation,
138
+ getThisServiceInfo: () => thisService,
139
+ getServices: () => _adapter.getServices(),
140
+ scaleService: (service, replicasCount) => _adapter.scaleService(service, replicasCount),
141
+ listenForInfrastructureChanges: (callback) => _adapter.listenForInfrastructureChanges(callback),
142
+ reloadLoadBalancer: () => _adapter.reloadLoadBalancer(),
143
+ start,
144
+ stop: async () => _adapter.stop()
145
+ });
146
+ return environments;
147
+ };
148
+ exports.InfrastructurePort = InfrastructurePort;
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/infrastructure/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { StructureServiceType, StructureSubscriptionType } from '@bett3r-dev/pv3-types';
2
+ import { OpenAPIV3_1 } from 'openapi-types';
3
+ export type DiscoveredSubscriptions = {
4
+ subscriptions: {
5
+ [id: string]: StructureSubscriptionType;
6
+ };
7
+ servicesSubscriptions: {
8
+ [host: string]: string[];
9
+ };
10
+ };
11
+ export declare const getServiceDefinition: (swagger: OpenAPIV3_1.Document) => StructureServiceType;
12
+ export declare const discoverSubscriptions: (services: Record<string, Omit<StructureServiceType, 'hosts'>>) => DiscoveredSubscriptions;
13
+ export declare const getThisServiceIps: () => string[];
14
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ports/infrastructure/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE;QACb,CAAC,EAAE,EAAE,MAAM,GAAG,yBAAyB,CAAC;KACzC,CAAC;IACF,qBAAqB,EAAE;QACrB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KACzB,CAAA;CACF,CAAA;AAWD,eAAO,MAAM,oBAAoB,YAAc,oBAAoB,KAAI,oBA8CtE,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAAe,OAAO,MAAM,EAAE,KAAK,oBAAoB,EAAE,OAAO,CAAC,CAAC,KAAI,uBA+CvG,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBAO7B,CAAC"}
@@ -0,0 +1,126 @@
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.getThisServiceIps = exports.discoverSubscriptions = exports.getServiceDefinition = void 0;
7
+ const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
8
+ const change_case_1 = require("change-case");
9
+ const os_1 = __importDefault(require("os"));
10
+ const ramda_1 = require("ramda");
11
+ const extractPathEndpoints = (path, url) => {
12
+ return ['post', 'get', 'put', 'delete', 'patch', 'head', 'options']
13
+ .reduce((endpoints, method) => {
14
+ if (path[method])
15
+ endpoints.push(`${method.toUpperCase()}:${url}`);
16
+ return endpoints;
17
+ }, []);
18
+ };
19
+ const getServiceDefinition = (swagger) => {
20
+ const producerTags = ['aggregate', 'system'];
21
+ const postSchemaProperty = 'responses';
22
+ const definition = Object.keys(swagger?.paths || {}).reduce((definition, url) => {
23
+ const path = swagger.paths[url];
24
+ if (path?.post?.tags?.some(t => producerTags.includes(t))) {
25
+ const postSchemaBase = path.post[postSchemaProperty];
26
+ const postSchema = postSchemaProperty === 'responses' ? postSchemaBase[200] : postSchemaBase;
27
+ const schema = postSchema.content['application/json'].schema;
28
+ let events;
29
+ if (schema.anyOf) {
30
+ events = schema.anyOf
31
+ .map(s => {
32
+ const ref = s.properties.data;
33
+ return ref.$ref.slice(ref.$ref.lastIndexOf('/') + 1);
34
+ });
35
+ }
36
+ else if (schema.properties?.events?.properties?.data?.anyOf) {
37
+ events = schema.properties?.events?.properties?.data?.anyOf
38
+ .map(ref => {
39
+ return ref.$ref.slice(ref.$ref.lastIndexOf('/') + 1);
40
+ });
41
+ }
42
+ else {
43
+ events = [];
44
+ }
45
+ const handler = path.post?.tags?.filter(t => !producerTags.includes(t))[0];
46
+ definition.produces[handler] = [...(definition.produces[handler] || []), ...events];
47
+ }
48
+ else if (path?.post?.tags?.some(t => ['policy', 'readmodel'].includes(t))) {
49
+ const events = path.post.requestBody.content['application/json'].schema.anyOf.map(s => {
50
+ const ref = s.properties.data;
51
+ return ref.$ref.slice(ref.$ref.lastIndexOf('/') + 1);
52
+ });
53
+ const handler = path.post?.tags?.filter(t => !['policy', 'readmodel'].includes(t))[0];
54
+ definition.consumes[handler] = events;
55
+ }
56
+ return {
57
+ ...definition,
58
+ endpoints: [...definition.endpoints, ...extractPathEndpoints(path, url)]
59
+ };
60
+ }, { consumes: {}, produces: {}, endpoints: [] });
61
+ return {
62
+ ...(0, ramda_1.omit)(['endpoints'], definition),
63
+ isBroker: swagger.tags?.some(t => t.name === 'pv3.outbox'),
64
+ isService: swagger.tags?.some(t => t.name === 'pv3.service'),
65
+ possibleModules: JSON.parse((swagger.tags?.find(t => t.name.startsWith('modules')) || { name: 'modules={}' }).name.split('modules=')[1]),
66
+ endpoints: definition.endpoints
67
+ };
68
+ };
69
+ exports.getServiceDefinition = getServiceDefinition;
70
+ const discoverSubscriptions = (services) => {
71
+ const eventProducerMap = (0, bett3r_utils_1.reduce)((eventMap, { produces }, service) => {
72
+ const serviceMap = (0, bett3r_utils_1.reduce)((eventMap, events, system) => {
73
+ events.forEach(e => {
74
+ eventMap[e] = { system, service: service };
75
+ });
76
+ return eventMap;
77
+ }, {}, produces);
78
+ return { ...eventMap, ...serviceMap };
79
+ }, {}, services);
80
+ return (0, bett3r_utils_1.reduce)((maps, { consumes, possibleModules }, service) => {
81
+ const artifactModuleMap = Object.entries(possibleModules || {}).reduce((acc, [module, artifacts]) => {
82
+ artifacts.forEach((artifact) => {
83
+ acc[artifact.split('.')[0]] = module;
84
+ });
85
+ return acc;
86
+ }, {});
87
+ const serviceSubscriptions = !consumes ? {} : (0, bett3r_utils_1.reduce)((subscriptions, events, eventHandler) => {
88
+ const kebabHandler = (0, change_case_1.paramCase)(eventHandler);
89
+ const subscription = (0, bett3r_utils_1.reduce)((subscription, event) => {
90
+ const producer = eventProducerMap[event];
91
+ if (producer) {
92
+ subscription.events.push(event);
93
+ subscription.producers.add(producer.system);
94
+ }
95
+ return subscription;
96
+ }, { events: [], producers: new Set() }, events);
97
+ const id = `${subscription.producers.size > 1 ? 'multi' : Array.from(subscription.producers)[0]}-${eventHandler}`;
98
+ subscriptions[id] = {
99
+ consumer: eventHandler,
100
+ module: artifactModuleMap[eventHandler],
101
+ producers: Array.from(subscription.producers),
102
+ endpoint: `/${kebabHandler}`,
103
+ events: subscription.events,
104
+ };
105
+ return subscriptions;
106
+ }, {}, consumes);
107
+ return {
108
+ subscriptions: {
109
+ ...maps.subscriptions, ...serviceSubscriptions
110
+ },
111
+ servicesSubscriptions: { ...maps.servicesSubscriptions, [service]: Object.keys(serviceSubscriptions) }
112
+ };
113
+ }, { subscriptions: {}, servicesSubscriptions: {} }, services);
114
+ };
115
+ exports.discoverSubscriptions = discoverSubscriptions;
116
+ const getThisServiceIps = () => {
117
+ const interfaces = os_1.default.networkInterfaces();
118
+ return Object.values(interfaces).reduce((ips, interfaceInfo) => {
119
+ if (interfaceInfo)
120
+ return ips.concat(interfaceInfo.filter(info => info.family === 'IPv4' && info.internal === false).map(info => info.address));
121
+ else
122
+ return ips;
123
+ }, []);
124
+ };
125
+ exports.getThisServiceIps = getThisServiceIps;
126
+ //# sourceMappingURL=utils.js.map