@cratis/chronicle 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (647) hide show
  1. package/ChronicleClient.ts +453 -0
  2. package/ChronicleOptions.ts +104 -0
  3. package/EventSequences/AppendError.ts +10 -0
  4. package/EventSequences/AppendOptions.ts +15 -0
  5. package/EventSequences/AppendResult.ts +23 -0
  6. package/EventSequences/ConstraintViolation.ts +16 -0
  7. package/EventSequences/EventLog.ts +21 -0
  8. package/EventSequences/EventSequence.ts +372 -0
  9. package/EventSequences/EventSequenceId.ts +17 -0
  10. package/EventSequences/EventSequenceNumber.ts +38 -0
  11. package/EventSequences/IEventLog.ts +10 -0
  12. package/EventSequences/IEventSequence.ts +47 -0
  13. package/EventSequences/index.ts +13 -0
  14. package/EventStore.ts +132 -0
  15. package/EventStoreName.ts +14 -0
  16. package/EventStoreNamespaceName.ts +17 -0
  17. package/Events/AppendedEvent.ts +19 -0
  18. package/Events/CausationEntry.ts +13 -0
  19. package/Events/Constraints/ConstraintBuilder.ts +86 -0
  20. package/Events/Constraints/ConstraintId.ts +14 -0
  21. package/Events/Constraints/Constraints.ts +117 -0
  22. package/Events/Constraints/IConstraint.ts +18 -0
  23. package/Events/Constraints/IConstraintBuilder.ts +44 -0
  24. package/Events/Constraints/IConstraints.ts +28 -0
  25. package/Events/Constraints/IUniqueConstraintBuilder.ts +52 -0
  26. package/Events/Constraints/UniqueConstraintBuilder.ts +97 -0
  27. package/Events/Constraints/constraint.ts +56 -0
  28. package/Events/Constraints/index.ts +15 -0
  29. package/Events/EventContext.ts +28 -0
  30. package/Events/EventType.ts +41 -0
  31. package/Events/EventTypeGeneration.ts +20 -0
  32. package/Events/EventTypeId.ts +19 -0
  33. package/Events/EventTypes.ts +95 -0
  34. package/Events/IEventTypes.ts +39 -0
  35. package/Events/eventTypeDecorator.ts +147 -0
  36. package/Events/index.ts +14 -0
  37. package/IChronicleClient.ts +39 -0
  38. package/IEventStore.ts +56 -0
  39. package/Metrics.ts +109 -0
  40. package/Observation/ObserverId.ts +14 -0
  41. package/Observation/ObserverRunningState.ts +34 -0
  42. package/Observation/index.ts +5 -0
  43. package/Projections/IProjections.ts +19 -0
  44. package/Projections/ProjectionId.ts +14 -0
  45. package/Projections/Projections.ts +463 -0
  46. package/Projections/declarative/AllSetBuilder.ts +39 -0
  47. package/Projections/declarative/FromBuilder.ts +144 -0
  48. package/Projections/declarative/FromEveryBuilder.ts +46 -0
  49. package/Projections/declarative/IAddBuilder.ts +18 -0
  50. package/Projections/declarative/IAddChildBuilder.ts +25 -0
  51. package/Projections/declarative/IAllSetBuilder.ts +31 -0
  52. package/Projections/declarative/IChildrenBuilder.ts +31 -0
  53. package/Projections/declarative/ICompositeKeyBuilder.ts +22 -0
  54. package/Projections/declarative/IFromBuilder.ts +12 -0
  55. package/Projections/declarative/IFromEveryBuilder.ts +24 -0
  56. package/Projections/declarative/IJoinBuilder.ts +20 -0
  57. package/Projections/declarative/INestedBuilder.ts +19 -0
  58. package/Projections/declarative/IProjectionBuilder.ts +98 -0
  59. package/Projections/declarative/IProjectionBuilderFor.ts +38 -0
  60. package/Projections/declarative/IProjectionFor.ts +18 -0
  61. package/Projections/declarative/IReadModelPropertiesBuilder.ts +132 -0
  62. package/Projections/declarative/IRemovedWithBuilder.ts +25 -0
  63. package/Projections/declarative/IRemovedWithJoinBuilder.ts +25 -0
  64. package/Projections/declarative/ISetBuilder.ts +38 -0
  65. package/Projections/declarative/ISubtractBuilder.ts +18 -0
  66. package/Projections/declarative/JoinBuilder.ts +148 -0
  67. package/Projections/declarative/ProjectionBuilderFor.ts +277 -0
  68. package/Projections/declarative/RemovedWithBuilder.ts +40 -0
  69. package/Projections/declarative/RemovedWithJoinBuilder.ts +43 -0
  70. package/Projections/declarative/SetBuilder.ts +46 -0
  71. package/Projections/declarative/index.ts +26 -0
  72. package/Projections/declarative/projection.ts +59 -0
  73. package/Projections/index.ts +8 -0
  74. package/Projections/modelBound/FromEventMetadata.ts +10 -0
  75. package/Projections/modelBound/FromEventOptions.ts +12 -0
  76. package/Projections/modelBound/addFrom.ts +41 -0
  77. package/Projections/modelBound/childrenFrom.ts +52 -0
  78. package/Projections/modelBound/clearWith.ts +54 -0
  79. package/Projections/modelBound/count.ts +41 -0
  80. package/Projections/modelBound/decrement.ts +41 -0
  81. package/Projections/modelBound/fromEvent.ts +40 -0
  82. package/Projections/modelBound/fromEvery.ts +39 -0
  83. package/Projections/modelBound/increment.ts +41 -0
  84. package/Projections/modelBound/index.ts +38 -0
  85. package/Projections/modelBound/join.ts +44 -0
  86. package/Projections/modelBound/modelBound.ts +59 -0
  87. package/Projections/modelBound/nested.ts +29 -0
  88. package/Projections/modelBound/notRewindable.ts +24 -0
  89. package/Projections/modelBound/removedWith.ts +60 -0
  90. package/Projections/modelBound/removedWithJoin.ts +55 -0
  91. package/Projections/modelBound/setFrom.ts +41 -0
  92. package/Projections/modelBound/setFromContext.ts +41 -0
  93. package/Projections/modelBound/setValue.ts +41 -0
  94. package/Projections/modelBound/subtractFrom.ts +41 -0
  95. package/README.md +69 -0
  96. package/Reactors/IReactors.ts +19 -0
  97. package/Reactors/ReactorId.ts +14 -0
  98. package/Reactors/Reactors.ts +320 -0
  99. package/Reactors/index.ts +8 -0
  100. package/Reactors/reactor.ts +75 -0
  101. package/ReadModels/ReadModelId.ts +14 -0
  102. package/ReadModels/index.ts +6 -0
  103. package/ReadModels/readModel.ts +89 -0
  104. package/Reducers/IReducers.ts +19 -0
  105. package/Reducers/ReducerId.ts +14 -0
  106. package/Reducers/Reducers.ts +322 -0
  107. package/Reducers/index.ts +8 -0
  108. package/Reducers/reducer.ts +87 -0
  109. package/Schemas/JsonSchema.ts +18 -0
  110. package/Schemas/JsonSchemaGenerator.ts +107 -0
  111. package/Schemas/index.ts +6 -0
  112. package/Schemas/jsonSchemaProperty.ts +24 -0
  113. package/Tracing.ts +21 -0
  114. package/artifacts/DefaultClientArtifactsProvider.ts +56 -0
  115. package/artifacts/IClientArtifactsProvider.ts +30 -0
  116. package/artifacts/index.ts +5 -0
  117. package/connection/ChronicleConnection.ts +226 -0
  118. package/connection/ChronicleConnectionString.ts +4 -0
  119. package/connection/ChronicleServices.ts +4 -0
  120. package/connection/ConnectionLifecycle.ts +77 -0
  121. package/connection/DateTimeOffset.ts +4 -0
  122. package/connection/Guid.ts +4 -0
  123. package/connection/TokenProvider.ts +13 -0
  124. package/connection/index.ts +9 -0
  125. package/dist/ChronicleClient.d.ts +55 -0
  126. package/dist/ChronicleClient.d.ts.map +1 -0
  127. package/dist/ChronicleClient.js +396 -0
  128. package/dist/ChronicleClient.js.map +1 -0
  129. package/dist/ChronicleOptions.d.ts +54 -0
  130. package/dist/ChronicleOptions.d.ts.map +1 -0
  131. package/dist/ChronicleOptions.js +75 -0
  132. package/dist/ChronicleOptions.js.map +1 -0
  133. package/dist/EventSequences/AppendError.d.ts +8 -0
  134. package/dist/EventSequences/AppendError.d.ts.map +1 -0
  135. package/dist/EventSequences/AppendError.js +4 -0
  136. package/dist/EventSequences/AppendError.js.map +1 -0
  137. package/dist/EventSequences/AppendOptions.d.ts +11 -0
  138. package/dist/EventSequences/AppendOptions.d.ts.map +1 -0
  139. package/dist/EventSequences/AppendOptions.js +4 -0
  140. package/dist/EventSequences/AppendOptions.js.map +1 -0
  141. package/dist/EventSequences/AppendResult.d.ts +17 -0
  142. package/dist/EventSequences/AppendResult.d.ts.map +1 -0
  143. package/dist/EventSequences/AppendResult.js +4 -0
  144. package/dist/EventSequences/AppendResult.js.map +1 -0
  145. package/dist/EventSequences/ConstraintViolation.d.ts +12 -0
  146. package/dist/EventSequences/ConstraintViolation.d.ts.map +1 -0
  147. package/dist/EventSequences/ConstraintViolation.js +4 -0
  148. package/dist/EventSequences/ConstraintViolation.js.map +1 -0
  149. package/dist/EventSequences/EventLog.d.ts +11 -0
  150. package/dist/EventSequences/EventLog.d.ts.map +1 -0
  151. package/dist/EventSequences/EventLog.js +14 -0
  152. package/dist/EventSequences/EventLog.js.map +1 -0
  153. package/dist/EventSequences/EventSequence.d.ts +27 -0
  154. package/dist/EventSequences/EventSequence.d.ts.map +1 -0
  155. package/dist/EventSequences/EventSequence.js +337 -0
  156. package/dist/EventSequences/EventSequence.js.map +1 -0
  157. package/dist/EventSequences/EventSequenceId.d.ts +12 -0
  158. package/dist/EventSequences/EventSequenceId.d.ts.map +1 -0
  159. package/dist/EventSequences/EventSequenceId.js +18 -0
  160. package/dist/EventSequences/EventSequenceId.js.map +1 -0
  161. package/dist/EventSequences/EventSequenceNumber.d.ts +26 -0
  162. package/dist/EventSequences/EventSequenceNumber.d.ts.map +1 -0
  163. package/dist/EventSequences/EventSequenceNumber.js +36 -0
  164. package/dist/EventSequences/EventSequenceNumber.js.map +1 -0
  165. package/dist/EventSequences/IEventLog.d.ts +8 -0
  166. package/dist/EventSequences/IEventLog.d.ts.map +1 -0
  167. package/dist/EventSequences/IEventLog.js +4 -0
  168. package/dist/EventSequences/IEventLog.js.map +1 -0
  169. package/dist/EventSequences/IEventSequence.d.ts +40 -0
  170. package/dist/EventSequences/IEventSequence.d.ts.map +1 -0
  171. package/dist/EventSequences/IEventSequence.js +4 -0
  172. package/dist/EventSequences/IEventSequence.js.map +1 -0
  173. package/dist/EventSequences/index.d.ts +11 -0
  174. package/dist/EventSequences/index.d.ts.map +1 -0
  175. package/dist/EventSequences/index.js +7 -0
  176. package/dist/EventSequences/index.js.map +1 -0
  177. package/dist/EventStore.d.ts +42 -0
  178. package/dist/EventStore.d.ts.map +1 -0
  179. package/dist/EventStore.js +111 -0
  180. package/dist/EventStore.js.map +1 -0
  181. package/dist/EventStoreName.d.ts +10 -0
  182. package/dist/EventStoreName.d.ts.map +1 -0
  183. package/dist/EventStoreName.js +16 -0
  184. package/dist/EventStoreName.js.map +1 -0
  185. package/dist/EventStoreNamespaceName.d.ts +12 -0
  186. package/dist/EventStoreNamespaceName.d.ts.map +1 -0
  187. package/dist/EventStoreNamespaceName.js +18 -0
  188. package/dist/EventStoreNamespaceName.js.map +1 -0
  189. package/dist/Events/AppendedEvent.d.ts +14 -0
  190. package/dist/Events/AppendedEvent.d.ts.map +1 -0
  191. package/dist/Events/AppendedEvent.js +4 -0
  192. package/dist/Events/AppendedEvent.js.map +1 -0
  193. package/dist/Events/CausationEntry.d.ts +10 -0
  194. package/dist/Events/CausationEntry.d.ts.map +1 -0
  195. package/dist/Events/CausationEntry.js +4 -0
  196. package/dist/Events/CausationEntry.js.map +1 -0
  197. package/dist/Events/Constraints/ConstraintBuilder.d.ts +42 -0
  198. package/dist/Events/Constraints/ConstraintBuilder.d.ts.map +1 -0
  199. package/dist/Events/Constraints/ConstraintBuilder.js +55 -0
  200. package/dist/Events/Constraints/ConstraintBuilder.js.map +1 -0
  201. package/dist/Events/Constraints/ConstraintId.d.ts +10 -0
  202. package/dist/Events/Constraints/ConstraintId.d.ts.map +1 -0
  203. package/dist/Events/Constraints/ConstraintId.js +16 -0
  204. package/dist/Events/Constraints/ConstraintId.js.map +1 -0
  205. package/dist/Events/Constraints/Constraints.d.ts +27 -0
  206. package/dist/Events/Constraints/Constraints.d.ts.map +1 -0
  207. package/dist/Events/Constraints/Constraints.js +104 -0
  208. package/dist/Events/Constraints/Constraints.js.map +1 -0
  209. package/dist/Events/Constraints/IConstraint.d.ts +15 -0
  210. package/dist/Events/Constraints/IConstraint.d.ts.map +1 -0
  211. package/dist/Events/Constraints/IConstraint.js +4 -0
  212. package/dist/Events/Constraints/IConstraint.js.map +1 -0
  213. package/dist/Events/Constraints/IConstraintBuilder.d.ts +37 -0
  214. package/dist/Events/Constraints/IConstraintBuilder.d.ts.map +1 -0
  215. package/dist/Events/Constraints/IConstraintBuilder.js +4 -0
  216. package/dist/Events/Constraints/IConstraintBuilder.js.map +1 -0
  217. package/dist/Events/Constraints/IConstraints.d.ts +23 -0
  218. package/dist/Events/Constraints/IConstraints.d.ts.map +1 -0
  219. package/dist/Events/Constraints/IConstraints.js +4 -0
  220. package/dist/Events/Constraints/IConstraints.js.map +1 -0
  221. package/dist/Events/Constraints/IUniqueConstraintBuilder.d.ts +44 -0
  222. package/dist/Events/Constraints/IUniqueConstraintBuilder.d.ts.map +1 -0
  223. package/dist/Events/Constraints/IUniqueConstraintBuilder.js +4 -0
  224. package/dist/Events/Constraints/IUniqueConstraintBuilder.js.map +1 -0
  225. package/dist/Events/Constraints/UniqueConstraintBuilder.d.ts +42 -0
  226. package/dist/Events/Constraints/UniqueConstraintBuilder.d.ts.map +1 -0
  227. package/dist/Events/Constraints/UniqueConstraintBuilder.js +72 -0
  228. package/dist/Events/Constraints/UniqueConstraintBuilder.js.map +1 -0
  229. package/dist/Events/Constraints/constraint.d.ts +29 -0
  230. package/dist/Events/Constraints/constraint.d.ts.map +1 -0
  231. package/dist/Events/Constraints/constraint.js +39 -0
  232. package/dist/Events/Constraints/constraint.js.map +1 -0
  233. package/dist/Events/Constraints/index.d.ts +13 -0
  234. package/dist/Events/Constraints/index.d.ts.map +1 -0
  235. package/dist/Events/Constraints/index.js +8 -0
  236. package/dist/Events/Constraints/index.js.map +1 -0
  237. package/dist/Events/EventContext.d.ts +20 -0
  238. package/dist/Events/EventContext.d.ts.map +1 -0
  239. package/dist/Events/EventContext.js +4 -0
  240. package/dist/Events/EventContext.js.map +1 -0
  241. package/dist/Events/EventType.d.ts +23 -0
  242. package/dist/Events/EventType.d.ts.map +1 -0
  243. package/dist/Events/EventType.js +40 -0
  244. package/dist/Events/EventType.js.map +1 -0
  245. package/dist/Events/EventTypeGeneration.d.ts +14 -0
  246. package/dist/Events/EventTypeGeneration.d.ts.map +1 -0
  247. package/dist/Events/EventTypeGeneration.js +20 -0
  248. package/dist/Events/EventTypeGeneration.js.map +1 -0
  249. package/dist/Events/EventTypeId.d.ts +14 -0
  250. package/dist/Events/EventTypeId.d.ts.map +1 -0
  251. package/dist/Events/EventTypeId.js +20 -0
  252. package/dist/Events/EventTypeId.js.map +1 -0
  253. package/dist/Events/EventTypes.d.ts +33 -0
  254. package/dist/Events/EventTypes.d.ts.map +1 -0
  255. package/dist/Events/EventTypes.js +83 -0
  256. package/dist/Events/EventTypes.js.map +1 -0
  257. package/dist/Events/IEventTypes.d.ts +32 -0
  258. package/dist/Events/IEventTypes.d.ts.map +1 -0
  259. package/dist/Events/IEventTypes.js +4 -0
  260. package/dist/Events/IEventTypes.js.map +1 -0
  261. package/dist/Events/eventTypeDecorator.d.ts +71 -0
  262. package/dist/Events/eventTypeDecorator.d.ts.map +1 -0
  263. package/dist/Events/eventTypeDecorator.js +86 -0
  264. package/dist/Events/eventTypeDecorator.js.map +1 -0
  265. package/dist/Events/index.d.ts +12 -0
  266. package/dist/Events/index.d.ts.map +1 -0
  267. package/dist/Events/index.js +9 -0
  268. package/dist/Events/index.js.map +1 -0
  269. package/dist/Grpc.d.ts +19 -0
  270. package/dist/Grpc.d.ts.map +1 -0
  271. package/dist/Grpc.js +33 -0
  272. package/dist/Grpc.js.map +1 -0
  273. package/dist/IChronicleClient.d.ts +33 -0
  274. package/dist/IChronicleClient.d.ts.map +1 -0
  275. package/dist/IChronicleClient.js +4 -0
  276. package/dist/IChronicleClient.js.map +1 -0
  277. package/dist/IEventStore.d.ts +44 -0
  278. package/dist/IEventStore.d.ts.map +1 -0
  279. package/dist/IEventStore.js +4 -0
  280. package/dist/IEventStore.js.map +1 -0
  281. package/dist/Metrics.d.ts +70 -0
  282. package/dist/Metrics.d.ts.map +1 -0
  283. package/dist/Metrics.js +100 -0
  284. package/dist/Metrics.js.map +1 -0
  285. package/dist/Observation/ObserverId.d.ts +10 -0
  286. package/dist/Observation/ObserverId.d.ts.map +1 -0
  287. package/dist/Observation/ObserverId.js +16 -0
  288. package/dist/Observation/ObserverId.js.map +1 -0
  289. package/dist/Observation/ObserverRunningState.d.ts +24 -0
  290. package/dist/Observation/ObserverRunningState.d.ts.map +1 -0
  291. package/dist/Observation/ObserverRunningState.js +27 -0
  292. package/dist/Observation/ObserverRunningState.js.map +1 -0
  293. package/dist/Observation/index.d.ts +3 -0
  294. package/dist/Observation/index.d.ts.map +1 -0
  295. package/dist/Observation/index.js +5 -0
  296. package/dist/Observation/index.js.map +1 -0
  297. package/dist/Projections/IProjections.d.ts +16 -0
  298. package/dist/Projections/IProjections.d.ts.map +1 -0
  299. package/dist/Projections/IProjections.js +4 -0
  300. package/dist/Projections/IProjections.js.map +1 -0
  301. package/dist/Projections/ProjectionId.d.ts +10 -0
  302. package/dist/Projections/ProjectionId.d.ts.map +1 -0
  303. package/dist/Projections/ProjectionId.js +16 -0
  304. package/dist/Projections/ProjectionId.js.map +1 -0
  305. package/dist/Projections/Projections.d.ts +36 -0
  306. package/dist/Projections/Projections.d.ts.map +1 -0
  307. package/dist/Projections/Projections.js +390 -0
  308. package/dist/Projections/Projections.js.map +1 -0
  309. package/dist/Projections/declarative/AllSetBuilder.d.ts +20 -0
  310. package/dist/Projections/declarative/AllSetBuilder.d.ts.map +1 -0
  311. package/dist/Projections/declarative/AllSetBuilder.js +37 -0
  312. package/dist/Projections/declarative/AllSetBuilder.js.map +1 -0
  313. package/dist/Projections/declarative/FromBuilder.d.ts +56 -0
  314. package/dist/Projections/declarative/FromBuilder.d.ts.map +1 -0
  315. package/dist/Projections/declarative/FromBuilder.js +105 -0
  316. package/dist/Projections/declarative/FromBuilder.js.map +1 -0
  317. package/dist/Projections/declarative/FromEveryBuilder.d.ts +22 -0
  318. package/dist/Projections/declarative/FromEveryBuilder.d.ts.map +1 -0
  319. package/dist/Projections/declarative/FromEveryBuilder.js +28 -0
  320. package/dist/Projections/declarative/FromEveryBuilder.js.map +1 -0
  321. package/dist/Projections/declarative/IAddBuilder.d.ts +15 -0
  322. package/dist/Projections/declarative/IAddBuilder.d.ts.map +1 -0
  323. package/dist/Projections/declarative/IAddBuilder.js +4 -0
  324. package/dist/Projections/declarative/IAddBuilder.js.map +1 -0
  325. package/dist/Projections/declarative/IAddChildBuilder.d.ts +21 -0
  326. package/dist/Projections/declarative/IAddChildBuilder.d.ts.map +1 -0
  327. package/dist/Projections/declarative/IAddChildBuilder.js +4 -0
  328. package/dist/Projections/declarative/IAddChildBuilder.js.map +1 -0
  329. package/dist/Projections/declarative/IAllSetBuilder.d.ts +26 -0
  330. package/dist/Projections/declarative/IAllSetBuilder.d.ts.map +1 -0
  331. package/dist/Projections/declarative/IAllSetBuilder.js +4 -0
  332. package/dist/Projections/declarative/IAllSetBuilder.js.map +1 -0
  333. package/dist/Projections/declarative/IChildrenBuilder.d.ts +22 -0
  334. package/dist/Projections/declarative/IChildrenBuilder.d.ts.map +1 -0
  335. package/dist/Projections/declarative/IChildrenBuilder.js +4 -0
  336. package/dist/Projections/declarative/IChildrenBuilder.js.map +1 -0
  337. package/dist/Projections/declarative/ICompositeKeyBuilder.d.ts +16 -0
  338. package/dist/Projections/declarative/ICompositeKeyBuilder.d.ts.map +1 -0
  339. package/dist/Projections/declarative/ICompositeKeyBuilder.js +4 -0
  340. package/dist/Projections/declarative/ICompositeKeyBuilder.js.map +1 -0
  341. package/dist/Projections/declarative/IFromBuilder.d.ts +9 -0
  342. package/dist/Projections/declarative/IFromBuilder.d.ts.map +1 -0
  343. package/dist/Projections/declarative/IFromBuilder.js +4 -0
  344. package/dist/Projections/declarative/IFromBuilder.js.map +1 -0
  345. package/dist/Projections/declarative/IFromEveryBuilder.d.ts +20 -0
  346. package/dist/Projections/declarative/IFromEveryBuilder.d.ts.map +1 -0
  347. package/dist/Projections/declarative/IFromEveryBuilder.js +4 -0
  348. package/dist/Projections/declarative/IFromEveryBuilder.js.map +1 -0
  349. package/dist/Projections/declarative/IJoinBuilder.d.ts +16 -0
  350. package/dist/Projections/declarative/IJoinBuilder.d.ts.map +1 -0
  351. package/dist/Projections/declarative/IJoinBuilder.js +4 -0
  352. package/dist/Projections/declarative/IJoinBuilder.js.map +1 -0
  353. package/dist/Projections/declarative/INestedBuilder.d.ts +15 -0
  354. package/dist/Projections/declarative/INestedBuilder.d.ts.map +1 -0
  355. package/dist/Projections/declarative/INestedBuilder.js +4 -0
  356. package/dist/Projections/declarative/INestedBuilder.js.map +1 -0
  357. package/dist/Projections/declarative/IProjectionBuilder.d.ts +80 -0
  358. package/dist/Projections/declarative/IProjectionBuilder.d.ts.map +1 -0
  359. package/dist/Projections/declarative/IProjectionBuilder.js +4 -0
  360. package/dist/Projections/declarative/IProjectionBuilder.js.map +1 -0
  361. package/dist/Projections/declarative/IProjectionBuilderFor.d.ts +31 -0
  362. package/dist/Projections/declarative/IProjectionBuilderFor.d.ts.map +1 -0
  363. package/dist/Projections/declarative/IProjectionBuilderFor.js +4 -0
  364. package/dist/Projections/declarative/IProjectionBuilderFor.js.map +1 -0
  365. package/dist/Projections/declarative/IProjectionFor.d.ts +15 -0
  366. package/dist/Projections/declarative/IProjectionFor.d.ts.map +1 -0
  367. package/dist/Projections/declarative/IProjectionFor.js +4 -0
  368. package/dist/Projections/declarative/IProjectionFor.js.map +1 -0
  369. package/dist/Projections/declarative/IReadModelPropertiesBuilder.d.ts +111 -0
  370. package/dist/Projections/declarative/IReadModelPropertiesBuilder.d.ts.map +1 -0
  371. package/dist/Projections/declarative/IReadModelPropertiesBuilder.js +4 -0
  372. package/dist/Projections/declarative/IReadModelPropertiesBuilder.js.map +1 -0
  373. package/dist/Projections/declarative/IRemovedWithBuilder.d.ts +21 -0
  374. package/dist/Projections/declarative/IRemovedWithBuilder.d.ts.map +1 -0
  375. package/dist/Projections/declarative/IRemovedWithBuilder.js +4 -0
  376. package/dist/Projections/declarative/IRemovedWithBuilder.js.map +1 -0
  377. package/dist/Projections/declarative/IRemovedWithJoinBuilder.d.ts +21 -0
  378. package/dist/Projections/declarative/IRemovedWithJoinBuilder.d.ts.map +1 -0
  379. package/dist/Projections/declarative/IRemovedWithJoinBuilder.js +4 -0
  380. package/dist/Projections/declarative/IRemovedWithJoinBuilder.js.map +1 -0
  381. package/dist/Projections/declarative/ISetBuilder.d.ts +32 -0
  382. package/dist/Projections/declarative/ISetBuilder.d.ts.map +1 -0
  383. package/dist/Projections/declarative/ISetBuilder.js +4 -0
  384. package/dist/Projections/declarative/ISetBuilder.js.map +1 -0
  385. package/dist/Projections/declarative/ISubtractBuilder.d.ts +15 -0
  386. package/dist/Projections/declarative/ISubtractBuilder.d.ts.map +1 -0
  387. package/dist/Projections/declarative/ISubtractBuilder.js +4 -0
  388. package/dist/Projections/declarative/ISubtractBuilder.js.map +1 -0
  389. package/dist/Projections/declarative/JoinBuilder.d.ts +58 -0
  390. package/dist/Projections/declarative/JoinBuilder.d.ts.map +1 -0
  391. package/dist/Projections/declarative/JoinBuilder.js +107 -0
  392. package/dist/Projections/declarative/JoinBuilder.js.map +1 -0
  393. package/dist/Projections/declarative/ProjectionBuilderFor.d.ts +68 -0
  394. package/dist/Projections/declarative/ProjectionBuilderFor.d.ts.map +1 -0
  395. package/dist/Projections/declarative/ProjectionBuilderFor.js +207 -0
  396. package/dist/Projections/declarative/ProjectionBuilderFor.js.map +1 -0
  397. package/dist/Projections/declarative/RemovedWithBuilder.d.ts +22 -0
  398. package/dist/Projections/declarative/RemovedWithBuilder.d.ts.map +1 -0
  399. package/dist/Projections/declarative/RemovedWithBuilder.js +28 -0
  400. package/dist/Projections/declarative/RemovedWithBuilder.js.map +1 -0
  401. package/dist/Projections/declarative/RemovedWithJoinBuilder.d.ts +22 -0
  402. package/dist/Projections/declarative/RemovedWithJoinBuilder.d.ts.map +1 -0
  403. package/dist/Projections/declarative/RemovedWithJoinBuilder.js +31 -0
  404. package/dist/Projections/declarative/RemovedWithJoinBuilder.js.map +1 -0
  405. package/dist/Projections/declarative/SetBuilder.d.ts +23 -0
  406. package/dist/Projections/declarative/SetBuilder.d.ts.map +1 -0
  407. package/dist/Projections/declarative/SetBuilder.js +43 -0
  408. package/dist/Projections/declarative/SetBuilder.js.map +1 -0
  409. package/dist/Projections/declarative/index.d.ts +24 -0
  410. package/dist/Projections/declarative/index.d.ts.map +1 -0
  411. package/dist/Projections/declarative/index.js +8 -0
  412. package/dist/Projections/declarative/index.js.map +1 -0
  413. package/dist/Projections/declarative/projection.d.ts +31 -0
  414. package/dist/Projections/declarative/projection.d.ts.map +1 -0
  415. package/dist/Projections/declarative/projection.js +39 -0
  416. package/dist/Projections/declarative/projection.js.map +1 -0
  417. package/dist/Projections/index.d.ts +6 -0
  418. package/dist/Projections/index.d.ts.map +1 -0
  419. package/dist/Projections/index.js +7 -0
  420. package/dist/Projections/index.js.map +1 -0
  421. package/dist/Projections/modelBound/FromEventMetadata.d.ts +7 -0
  422. package/dist/Projections/modelBound/FromEventMetadata.d.ts.map +1 -0
  423. package/dist/Projections/modelBound/FromEventMetadata.js +4 -0
  424. package/dist/Projections/modelBound/FromEventMetadata.js.map +1 -0
  425. package/dist/Projections/modelBound/FromEventOptions.d.ts +10 -0
  426. package/dist/Projections/modelBound/FromEventOptions.d.ts.map +1 -0
  427. package/dist/Projections/modelBound/FromEventOptions.js +4 -0
  428. package/dist/Projections/modelBound/FromEventOptions.js.map +1 -0
  429. package/dist/Projections/modelBound/addFrom.d.ts +23 -0
  430. package/dist/Projections/modelBound/addFrom.d.ts.map +1 -0
  431. package/dist/Projections/modelBound/addFrom.js +30 -0
  432. package/dist/Projections/modelBound/addFrom.js.map +1 -0
  433. package/dist/Projections/modelBound/childrenFrom.d.ts +29 -0
  434. package/dist/Projections/modelBound/childrenFrom.d.ts.map +1 -0
  435. package/dist/Projections/modelBound/childrenFrom.js +32 -0
  436. package/dist/Projections/modelBound/childrenFrom.js.map +1 -0
  437. package/dist/Projections/modelBound/clearWith.d.ts +28 -0
  438. package/dist/Projections/modelBound/clearWith.d.ts.map +1 -0
  439. package/dist/Projections/modelBound/clearWith.js +45 -0
  440. package/dist/Projections/modelBound/clearWith.js.map +1 -0
  441. package/dist/Projections/modelBound/count.d.ts +23 -0
  442. package/dist/Projections/modelBound/count.d.ts.map +1 -0
  443. package/dist/Projections/modelBound/count.js +30 -0
  444. package/dist/Projections/modelBound/count.js.map +1 -0
  445. package/dist/Projections/modelBound/decrement.d.ts +23 -0
  446. package/dist/Projections/modelBound/decrement.d.ts.map +1 -0
  447. package/dist/Projections/modelBound/decrement.js +30 -0
  448. package/dist/Projections/modelBound/decrement.js.map +1 -0
  449. package/dist/Projections/modelBound/fromEvent.d.ts +23 -0
  450. package/dist/Projections/modelBound/fromEvent.d.ts.map +1 -0
  451. package/dist/Projections/modelBound/fromEvent.js +34 -0
  452. package/dist/Projections/modelBound/fromEvent.js.map +1 -0
  453. package/dist/Projections/modelBound/fromEvery.d.ts +23 -0
  454. package/dist/Projections/modelBound/fromEvery.d.ts.map +1 -0
  455. package/dist/Projections/modelBound/fromEvery.js +28 -0
  456. package/dist/Projections/modelBound/fromEvery.js.map +1 -0
  457. package/dist/Projections/modelBound/increment.d.ts +23 -0
  458. package/dist/Projections/modelBound/increment.d.ts.map +1 -0
  459. package/dist/Projections/modelBound/increment.js +30 -0
  460. package/dist/Projections/modelBound/increment.js.map +1 -0
  461. package/dist/Projections/modelBound/index.d.ts +36 -0
  462. package/dist/Projections/modelBound/index.d.ts.map +1 -0
  463. package/dist/Projections/modelBound/index.js +21 -0
  464. package/dist/Projections/modelBound/index.js.map +1 -0
  465. package/dist/Projections/modelBound/join.d.ts +26 -0
  466. package/dist/Projections/modelBound/join.d.ts.map +1 -0
  467. package/dist/Projections/modelBound/join.js +31 -0
  468. package/dist/Projections/modelBound/join.js.map +1 -0
  469. package/dist/Projections/modelBound/modelBound.d.ts +31 -0
  470. package/dist/Projections/modelBound/modelBound.d.ts.map +1 -0
  471. package/dist/Projections/modelBound/modelBound.js +39 -0
  472. package/dist/Projections/modelBound/modelBound.js.map +1 -0
  473. package/dist/Projections/modelBound/nested.d.ts +16 -0
  474. package/dist/Projections/modelBound/nested.d.ts.map +1 -0
  475. package/dist/Projections/modelBound/nested.js +26 -0
  476. package/dist/Projections/modelBound/nested.js.map +1 -0
  477. package/dist/Projections/modelBound/notRewindable.d.ts +14 -0
  478. package/dist/Projections/modelBound/notRewindable.d.ts.map +1 -0
  479. package/dist/Projections/modelBound/notRewindable.js +21 -0
  480. package/dist/Projections/modelBound/notRewindable.js.map +1 -0
  481. package/dist/Projections/modelBound/removedWith.d.ts +34 -0
  482. package/dist/Projections/modelBound/removedWith.d.ts.map +1 -0
  483. package/dist/Projections/modelBound/removedWith.js +47 -0
  484. package/dist/Projections/modelBound/removedWith.js.map +1 -0
  485. package/dist/Projections/modelBound/removedWithJoin.d.ts +29 -0
  486. package/dist/Projections/modelBound/removedWithJoin.d.ts.map +1 -0
  487. package/dist/Projections/modelBound/removedWithJoin.js +44 -0
  488. package/dist/Projections/modelBound/removedWithJoin.js.map +1 -0
  489. package/dist/Projections/modelBound/setFrom.d.ts +23 -0
  490. package/dist/Projections/modelBound/setFrom.d.ts.map +1 -0
  491. package/dist/Projections/modelBound/setFrom.js +30 -0
  492. package/dist/Projections/modelBound/setFrom.js.map +1 -0
  493. package/dist/Projections/modelBound/setFromContext.d.ts +23 -0
  494. package/dist/Projections/modelBound/setFromContext.d.ts.map +1 -0
  495. package/dist/Projections/modelBound/setFromContext.js +30 -0
  496. package/dist/Projections/modelBound/setFromContext.js.map +1 -0
  497. package/dist/Projections/modelBound/setValue.d.ts +23 -0
  498. package/dist/Projections/modelBound/setValue.d.ts.map +1 -0
  499. package/dist/Projections/modelBound/setValue.js +30 -0
  500. package/dist/Projections/modelBound/setValue.js.map +1 -0
  501. package/dist/Projections/modelBound/subtractFrom.d.ts +23 -0
  502. package/dist/Projections/modelBound/subtractFrom.d.ts.map +1 -0
  503. package/dist/Projections/modelBound/subtractFrom.js +30 -0
  504. package/dist/Projections/modelBound/subtractFrom.js.map +1 -0
  505. package/dist/Reactors/IReactors.d.ts +16 -0
  506. package/dist/Reactors/IReactors.d.ts.map +1 -0
  507. package/dist/Reactors/IReactors.js +4 -0
  508. package/dist/Reactors/IReactors.js.map +1 -0
  509. package/dist/Reactors/ReactorId.d.ts +10 -0
  510. package/dist/Reactors/ReactorId.d.ts.map +1 -0
  511. package/dist/Reactors/ReactorId.js +16 -0
  512. package/dist/Reactors/ReactorId.js.map +1 -0
  513. package/dist/Reactors/Reactors.d.ts +38 -0
  514. package/dist/Reactors/Reactors.d.ts.map +1 -0
  515. package/dist/Reactors/Reactors.js +279 -0
  516. package/dist/Reactors/Reactors.js.map +1 -0
  517. package/dist/Reactors/index.d.ts +6 -0
  518. package/dist/Reactors/index.d.ts.map +1 -0
  519. package/dist/Reactors/index.js +6 -0
  520. package/dist/Reactors/index.js.map +1 -0
  521. package/dist/Reactors/reactor.d.ts +47 -0
  522. package/dist/Reactors/reactor.d.ts.map +1 -0
  523. package/dist/Reactors/reactor.js +55 -0
  524. package/dist/Reactors/reactor.js.map +1 -0
  525. package/dist/ReadModels/ReadModelId.d.ts +10 -0
  526. package/dist/ReadModels/ReadModelId.d.ts.map +1 -0
  527. package/dist/ReadModels/ReadModelId.js +16 -0
  528. package/dist/ReadModels/ReadModelId.js.map +1 -0
  529. package/dist/ReadModels/index.d.ts +4 -0
  530. package/dist/ReadModels/index.d.ts.map +1 -0
  531. package/dist/ReadModels/index.js +5 -0
  532. package/dist/ReadModels/index.js.map +1 -0
  533. package/dist/ReadModels/readModel.d.ts +33 -0
  534. package/dist/ReadModels/readModel.d.ts.map +1 -0
  535. package/dist/ReadModels/readModel.js +64 -0
  536. package/dist/ReadModels/readModel.js.map +1 -0
  537. package/dist/Reducers/IReducers.d.ts +16 -0
  538. package/dist/Reducers/IReducers.d.ts.map +1 -0
  539. package/dist/Reducers/IReducers.js +4 -0
  540. package/dist/Reducers/IReducers.js.map +1 -0
  541. package/dist/Reducers/ReducerId.d.ts +10 -0
  542. package/dist/Reducers/ReducerId.d.ts.map +1 -0
  543. package/dist/Reducers/ReducerId.js +16 -0
  544. package/dist/Reducers/ReducerId.js.map +1 -0
  545. package/dist/Reducers/Reducers.d.ts +38 -0
  546. package/dist/Reducers/Reducers.d.ts.map +1 -0
  547. package/dist/Reducers/Reducers.js +279 -0
  548. package/dist/Reducers/Reducers.js.map +1 -0
  549. package/dist/Reducers/index.d.ts +6 -0
  550. package/dist/Reducers/index.d.ts.map +1 -0
  551. package/dist/Reducers/index.js +6 -0
  552. package/dist/Reducers/index.js.map +1 -0
  553. package/dist/Reducers/reducer.d.ts +51 -0
  554. package/dist/Reducers/reducer.d.ts.map +1 -0
  555. package/dist/Reducers/reducer.js +59 -0
  556. package/dist/Reducers/reducer.js.map +1 -0
  557. package/dist/Schemas/JsonSchema.d.ts +16 -0
  558. package/dist/Schemas/JsonSchema.d.ts.map +1 -0
  559. package/dist/Schemas/JsonSchema.js +4 -0
  560. package/dist/Schemas/JsonSchema.js.map +1 -0
  561. package/dist/Schemas/JsonSchemaGenerator.d.ts +26 -0
  562. package/dist/Schemas/JsonSchemaGenerator.d.ts.map +1 -0
  563. package/dist/Schemas/JsonSchemaGenerator.js +90 -0
  564. package/dist/Schemas/JsonSchemaGenerator.js.map +1 -0
  565. package/dist/Schemas/index.d.ts +4 -0
  566. package/dist/Schemas/index.d.ts.map +1 -0
  567. package/dist/Schemas/index.js +5 -0
  568. package/dist/Schemas/index.js.map +1 -0
  569. package/dist/Schemas/jsonSchemaProperty.d.ts +13 -0
  570. package/dist/Schemas/jsonSchemaProperty.d.ts.map +1 -0
  571. package/dist/Schemas/jsonSchemaProperty.js +22 -0
  572. package/dist/Schemas/jsonSchemaProperty.js.map +1 -0
  573. package/dist/Tracing.d.ts +16 -0
  574. package/dist/Tracing.d.ts.map +1 -0
  575. package/dist/Tracing.js +19 -0
  576. package/dist/Tracing.js.map +1 -0
  577. package/dist/artifacts/DefaultClientArtifactsProvider.d.ts +31 -0
  578. package/dist/artifacts/DefaultClientArtifactsProvider.d.ts.map +1 -0
  579. package/dist/artifacts/DefaultClientArtifactsProvider.js +48 -0
  580. package/dist/artifacts/DefaultClientArtifactsProvider.js.map +1 -0
  581. package/dist/artifacts/IClientArtifactsProvider.d.ts +21 -0
  582. package/dist/artifacts/IClientArtifactsProvider.d.ts.map +1 -0
  583. package/dist/artifacts/IClientArtifactsProvider.js +4 -0
  584. package/dist/artifacts/IClientArtifactsProvider.js.map +1 -0
  585. package/dist/artifacts/index.d.ts +3 -0
  586. package/dist/artifacts/index.d.ts.map +1 -0
  587. package/dist/artifacts/index.js +4 -0
  588. package/dist/artifacts/index.js.map +1 -0
  589. package/dist/connection/ChronicleConnection.d.ts +117 -0
  590. package/dist/connection/ChronicleConnection.d.ts.map +1 -0
  591. package/dist/connection/ChronicleConnection.js +194 -0
  592. package/dist/connection/ChronicleConnection.js.map +1 -0
  593. package/dist/connection/ChronicleConnectionString.d.ts +2 -0
  594. package/dist/connection/ChronicleConnectionString.d.ts.map +1 -0
  595. package/dist/connection/ChronicleConnectionString.js +4 -0
  596. package/dist/connection/ChronicleConnectionString.js.map +1 -0
  597. package/dist/connection/ChronicleServices.d.ts +2 -0
  598. package/dist/connection/ChronicleServices.d.ts.map +1 -0
  599. package/dist/connection/ChronicleServices.js +4 -0
  600. package/dist/connection/ChronicleServices.js.map +1 -0
  601. package/dist/connection/ConnectionLifecycle.d.ts +41 -0
  602. package/dist/connection/ConnectionLifecycle.d.ts.map +1 -0
  603. package/dist/connection/ConnectionLifecycle.js +66 -0
  604. package/dist/connection/ConnectionLifecycle.js.map +1 -0
  605. package/dist/connection/DateTimeOffset.d.ts +2 -0
  606. package/dist/connection/DateTimeOffset.d.ts.map +1 -0
  607. package/dist/connection/DateTimeOffset.js +4 -0
  608. package/dist/connection/DateTimeOffset.js.map +1 -0
  609. package/dist/connection/Guid.d.ts +2 -0
  610. package/dist/connection/Guid.d.ts.map +1 -0
  611. package/dist/connection/Guid.js +4 -0
  612. package/dist/connection/Guid.js.map +1 -0
  613. package/dist/connection/TokenProvider.d.ts +5 -0
  614. package/dist/connection/TokenProvider.d.ts.map +1 -0
  615. package/dist/connection/TokenProvider.js +4 -0
  616. package/dist/connection/TokenProvider.js.map +1 -0
  617. package/dist/connection/index.d.ts +7 -0
  618. package/dist/connection/index.d.ts.map +1 -0
  619. package/dist/connection/index.js +7 -0
  620. package/dist/connection/index.js.map +1 -0
  621. package/dist/index.d.ts +21 -0
  622. package/dist/index.d.ts.map +1 -0
  623. package/dist/index.js +21 -0
  624. package/dist/index.js.map +1 -0
  625. package/dist/tsconfig.tsbuildinfo +1 -0
  626. package/dist/types/DecoratorType.d.ts +20 -0
  627. package/dist/types/DecoratorType.d.ts.map +1 -0
  628. package/dist/types/DecoratorType.js +23 -0
  629. package/dist/types/DecoratorType.js.map +1 -0
  630. package/dist/types/TypeDiscoverer.d.ts +54 -0
  631. package/dist/types/TypeDiscoverer.d.ts.map +1 -0
  632. package/dist/types/TypeDiscoverer.js +91 -0
  633. package/dist/types/TypeDiscoverer.js.map +1 -0
  634. package/dist/types/TypeIntrospector.d.ts +30 -0
  635. package/dist/types/TypeIntrospector.d.ts.map +1 -0
  636. package/dist/types/TypeIntrospector.js +154 -0
  637. package/dist/types/TypeIntrospector.js.map +1 -0
  638. package/dist/types/index.d.ts +4 -0
  639. package/dist/types/index.d.ts.map +1 -0
  640. package/dist/types/index.js +6 -0
  641. package/dist/types/index.js.map +1 -0
  642. package/index.ts +24 -0
  643. package/package.json +38 -0
  644. package/types/DecoratorType.ts +28 -0
  645. package/types/TypeDiscoverer.ts +109 -0
  646. package/types/TypeIntrospector.ts +176 -0
  647. package/types/index.ts +6 -0
@@ -0,0 +1,4 @@
1
+ export { ReadModelId } from './ReadModelId';
2
+ export { readModel, getReadModelMetadata, isReadModel } from './readModel';
3
+ export type { ReadModelMetadata } from './readModel';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ReadModels/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3E,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export { ReadModelId } from './ReadModelId';
4
+ export { readModel, getReadModelMetadata, isReadModel } from './readModel';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ReadModels/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,33 @@
1
+ import 'reflect-metadata';
2
+ import { ReadModelId } from './ReadModelId';
3
+ import { JsonSchema } from '../Schemas';
4
+ /**
5
+ * Metadata stored on a read model class.
6
+ */
7
+ export interface ReadModelMetadata {
8
+ /** The unique identifier for the read model. */
9
+ readonly id: ReadModelId;
10
+ /** The reflected members and their runtime types. */
11
+ readonly members: ReadonlyMap<string, Function | undefined>;
12
+ /** The generated JSON schema for the read model. */
13
+ readonly schema: JsonSchema;
14
+ }
15
+ /**
16
+ * TypeScript decorator that marks a class as a read model and captures reflection metadata.
17
+ * @param id - The unique identifier for the read model. Defaults to the class name if omitted.
18
+ * @returns A class decorator.
19
+ */
20
+ export declare function readModel(id?: string): ClassDecorator;
21
+ /**
22
+ * Gets the {@link ReadModelMetadata} associated with a class decorated with {@link readModel}.
23
+ * @param target - The class constructor to retrieve metadata for.
24
+ * @returns The associated metadata, or undefined if not decorated.
25
+ */
26
+ export declare function getReadModelMetadata(target: Function): ReadModelMetadata | undefined;
27
+ /**
28
+ * Checks whether a class has been decorated with {@link readModel}.
29
+ * @param target - The class constructor to check.
30
+ * @returns True if the class has a read model decorator; false otherwise.
31
+ */
32
+ export declare function isReadModel(target: Function): boolean;
33
+ //# sourceMappingURL=readModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readModel.d.ts","sourceRoot":"","sources":["../../ReadModels/readModel.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAuB,MAAM,YAAY,CAAC;AAK7D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IAEzB,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC;IAE5D,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,GAAE,MAAW,GAAG,cAAc,CAkBzD;AAuBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAErD"}
@@ -0,0 +1,64 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import 'reflect-metadata';
4
+ import { ReadModelId } from './ReadModelId';
5
+ import { DecoratorType, TypeDiscoverer, TypeIntrospector } from '../types';
6
+ import { JsonSchemaGenerator } from '../Schemas';
7
+ /** Metadata key used to store read model information on a class. */
8
+ const READ_MODEL_METADATA_KEY = 'chronicle:readModel';
9
+ /**
10
+ * TypeScript decorator that marks a class as a read model and captures reflection metadata.
11
+ * @param id - The unique identifier for the read model. Defaults to the class name if omitted.
12
+ * @returns A class decorator.
13
+ */
14
+ export function readModel(id = '') {
15
+ return (target) => {
16
+ const constructor = target;
17
+ const readModelId = new ReadModelId(id || constructor.name);
18
+ trackInstanceProperties(constructor);
19
+ const members = TypeIntrospector.getMembers(constructor);
20
+ const metadata = {
21
+ id: readModelId,
22
+ members,
23
+ schema: JsonSchemaGenerator.generate(constructor, members)
24
+ };
25
+ Reflect.defineMetadata(READ_MODEL_METADATA_KEY, metadata, target);
26
+ TypeDiscoverer.default.register(DecoratorType.ReadModel, constructor, readModelId.value);
27
+ };
28
+ }
29
+ function trackInstanceProperties(constructor) {
30
+ const instance = tryCreateInstance(constructor);
31
+ if (!instance || typeof instance !== 'object') {
32
+ return;
33
+ }
34
+ for (const propertyName of Object.keys(instance)) {
35
+ TypeIntrospector.trackProperty(constructor, propertyName);
36
+ }
37
+ }
38
+ function tryCreateInstance(constructor) {
39
+ try {
40
+ const parameterCount = constructor.length;
41
+ const parameters = Array.from({ length: parameterCount }, () => undefined);
42
+ return Reflect.construct(constructor, parameters);
43
+ }
44
+ catch {
45
+ return undefined;
46
+ }
47
+ }
48
+ /**
49
+ * Gets the {@link ReadModelMetadata} associated with a class decorated with {@link readModel}.
50
+ * @param target - The class constructor to retrieve metadata for.
51
+ * @returns The associated metadata, or undefined if not decorated.
52
+ */
53
+ export function getReadModelMetadata(target) {
54
+ return Reflect.getMetadata(READ_MODEL_METADATA_KEY, target);
55
+ }
56
+ /**
57
+ * Checks whether a class has been decorated with {@link readModel}.
58
+ * @param target - The class constructor to check.
59
+ * @returns True if the class has a read model decorator; false otherwise.
60
+ */
61
+ export function isReadModel(target) {
62
+ return Reflect.hasMetadata(READ_MODEL_METADATA_KEY, target);
63
+ }
64
+ //# sourceMappingURL=readModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readModel.js","sourceRoot":"","sources":["../../ReadModels/readModel.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAc,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE7D,oEAAoE;AACpE,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAgBtD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE;IACrC,OAAO,CAAC,MAAc,EAAE,EAAE;QACtB,MAAM,WAAW,GAAG,MAAkB,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5D,uBAAuB,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAsB;YAChC,EAAE,EAAE,WAAW;YACf,OAAO;YACP,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;SAC7D,CAAC;QACF,OAAO,CAAC,cAAc,CAAC,uBAAuB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAClE,cAAc,CAAC,OAAO,CAAC,QAAQ,CAC3B,aAAa,CAAC,SAAS,EACvB,WAA0B,EAC1B,WAAW,CAAC,KAAK,CACpB,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAqB;IAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO;IACX,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,QAAmC,CAAC,EAAE,CAAC;QAC1E,gBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAqB;IAC5C,IAAI,CAAC;QACD,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CAAC;QAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3E,OAAO,OAAO,CAAC,SAAS,CAAC,WAAkD,EAAE,UAAU,CAAC,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAgB;IACjD,OAAO,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,MAAgB;IACxC,OAAO,OAAO,CAAC,WAAW,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Defines a system to work with reducers, including discovery and registration with the Kernel.
3
+ */
4
+ export interface IReducers {
5
+ /**
6
+ * Discovers all reducers from the registered client artifacts.
7
+ * @returns A promise that resolves when discovery is complete.
8
+ */
9
+ discover(): Promise<void>;
10
+ /**
11
+ * Registers all discovered reducers with the Chronicle Kernel and starts observation.
12
+ * @returns A promise that resolves when registration is complete.
13
+ */
14
+ register(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=IReducers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IReducers.d.ts","sourceRoot":"","sources":["../../Reducers/IReducers.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B"}
@@ -0,0 +1,4 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export {};
4
+ //# sourceMappingURL=IReducers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IReducers.js","sourceRoot":"","sources":["../../Reducers/IReducers.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Unique identifier for a reducer.
3
+ */
4
+ export declare class ReducerId {
5
+ readonly value: string;
6
+ constructor(value: string);
7
+ /** @inheritdoc */
8
+ toString(): string;
9
+ }
10
+ //# sourceMappingURL=ReducerId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReducerId.d.ts","sourceRoot":"","sources":["../../Reducers/ReducerId.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,qBAAa,SAAS;IACN,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;IAElC,kBAAkB;IAClB,QAAQ,IAAI,MAAM;CAGrB"}
@@ -0,0 +1,16 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /**
4
+ * Unique identifier for a reducer.
5
+ */
6
+ export class ReducerId {
7
+ value;
8
+ constructor(value) {
9
+ this.value = value;
10
+ }
11
+ /** @inheritdoc */
12
+ toString() {
13
+ return this.value;
14
+ }
15
+ }
16
+ //# sourceMappingURL=ReducerId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReducerId.js","sourceRoot":"","sources":["../../Reducers/ReducerId.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG;;GAEG;AACH,MAAM,OAAO,SAAS;IACG;IAArB,YAAqB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAEtC,kBAAkB;IAClB,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;CACJ"}
@@ -0,0 +1,38 @@
1
+ import 'reflect-metadata';
2
+ import { IClientArtifactsProvider } from '../artifacts';
3
+ import { ChronicleConnection } from '../connection';
4
+ import { ConnectionLifecycle } from '../connection/ConnectionLifecycle';
5
+ import { IReducers } from './IReducers';
6
+ /**
7
+ * Implements {@link IReducers}, managing discovery and registration of reducers
8
+ * with the Chronicle Kernel via bidirectional gRPC streaming.
9
+ */
10
+ export declare class Reducers implements IReducers {
11
+ private readonly _clientArtifacts;
12
+ private readonly _connection;
13
+ private readonly _eventStoreName;
14
+ private readonly _namespace;
15
+ private readonly _logger;
16
+ private readonly _lifecycle;
17
+ private readonly _reducers;
18
+ private readonly _queues;
19
+ private _registered;
20
+ /**
21
+ * Creates a new {@link Reducers} instance.
22
+ * @param _clientArtifacts - Provider for discovered client artifact types.
23
+ * @param _connection - The Chronicle gRPC connection.
24
+ * @param _eventStoreName - The name of the event store.
25
+ * @param _namespace - The namespace within the event store.
26
+ * @param lifecycle - The connection lifecycle used to react to disconnect events.
27
+ */
28
+ constructor(_clientArtifacts: IClientArtifactsProvider, _connection: ChronicleConnection, _eventStoreName: string, _namespace: string, lifecycle: ConnectionLifecycle);
29
+ /** @inheritdoc */
30
+ discover(): Promise<void>;
31
+ /** @inheritdoc */
32
+ register(): Promise<void>;
33
+ private startObservation;
34
+ private observeReducer;
35
+ private getEventTypesFor;
36
+ private disconnectAll;
37
+ }
38
+ //# sourceMappingURL=Reducers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reducers.d.ts","sourceRoot":"","sources":["../../Reducers/Reducers.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAI1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAyExC;;;GAGG;AACH,qBAAa,QAAS,YAAW,SAAS;IAgBlC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAlB/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2E;IACnG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiD;IACzE,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;;;OAOG;gBAEkB,gBAAgB,EAAE,wBAAwB,EAC1C,WAAW,EAAE,mBAAmB,EAChC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EACnC,SAAS,EAAE,mBAAmB;IAUlC,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B,kBAAkB;IACZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB/B,OAAO,CAAC,gBAAgB;YAmBV,cAAc;IA4H5B,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,aAAa;CAMxB"}
@@ -0,0 +1,279 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import 'reflect-metadata';
4
+ import { diag } from '@opentelemetry/api';
5
+ import { ObservationState } from '@cratis/chronicle.contracts';
6
+ import { getEventTypeMetadata } from '../Events/eventTypeDecorator';
7
+ import { EventSequenceId } from '../EventSequences/EventSequenceId';
8
+ import { getReducerMetadata } from './reducer';
9
+ /** Expression used to partition reducer observations by event source ID. */
10
+ const EVENT_SOURCE_ID_KEY = '$eventSourceId';
11
+ /** Sentinel sequence number sent back when no event was successfully processed. */
12
+ const SEQUENCE_NUMBER_UNAVAILABLE = 4294967295;
13
+ /**
14
+ * A push-based async queue that implements {@link AsyncIterable} for use with nice-grpc
15
+ * bidirectional streaming. Values pushed via {@link send} are yielded in order to
16
+ * any consumer that iterates the queue.
17
+ */
18
+ class AsyncQueue {
19
+ _queue = [];
20
+ _resolve = undefined;
21
+ _done = false;
22
+ /** Pushes a value into the queue. No-op if the queue has been completed. */
23
+ send(value) {
24
+ if (this._done)
25
+ return;
26
+ if (this._resolve) {
27
+ const resolve = this._resolve;
28
+ this._resolve = undefined;
29
+ resolve({ value, done: false });
30
+ }
31
+ else {
32
+ this._queue.push(value);
33
+ }
34
+ }
35
+ /** Signals that no more values will be pushed, causing consumers to finish iteration. */
36
+ complete() {
37
+ this._done = true;
38
+ if (this._resolve) {
39
+ this._resolve({ value: undefined, done: true });
40
+ this._resolve = undefined;
41
+ }
42
+ }
43
+ [Symbol.asyncIterator]() {
44
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
45
+ const self = this;
46
+ return {
47
+ next() {
48
+ if (self._queue.length > 0) {
49
+ return Promise.resolve({ value: self._queue.shift(), done: false });
50
+ }
51
+ if (self._done) {
52
+ return Promise.resolve({ value: undefined, done: true });
53
+ }
54
+ return new Promise(resolve => {
55
+ self._resolve = resolve;
56
+ });
57
+ },
58
+ return() {
59
+ self._done = true;
60
+ if (self._resolve) {
61
+ self._resolve({ value: undefined, done: true });
62
+ self._resolve = undefined;
63
+ }
64
+ return Promise.resolve({ value: undefined, done: true });
65
+ }
66
+ };
67
+ }
68
+ }
69
+ /**
70
+ * Implements {@link IReducers}, managing discovery and registration of reducers
71
+ * with the Chronicle Kernel via bidirectional gRPC streaming.
72
+ */
73
+ export class Reducers {
74
+ _clientArtifacts;
75
+ _connection;
76
+ _eventStoreName;
77
+ _namespace;
78
+ _logger = diag.createComponentLogger({ namespace: '@cratis/chronicle/Reducers' });
79
+ _lifecycle;
80
+ _reducers = new Map();
81
+ _queues = new Map();
82
+ _registered = false;
83
+ /**
84
+ * Creates a new {@link Reducers} instance.
85
+ * @param _clientArtifacts - Provider for discovered client artifact types.
86
+ * @param _connection - The Chronicle gRPC connection.
87
+ * @param _eventStoreName - The name of the event store.
88
+ * @param _namespace - The namespace within the event store.
89
+ * @param lifecycle - The connection lifecycle used to react to disconnect events.
90
+ */
91
+ constructor(_clientArtifacts, _connection, _eventStoreName, _namespace, lifecycle) {
92
+ this._clientArtifacts = _clientArtifacts;
93
+ this._connection = _connection;
94
+ this._eventStoreName = _eventStoreName;
95
+ this._namespace = _namespace;
96
+ this._lifecycle = lifecycle;
97
+ lifecycle.onDisconnected(async () => {
98
+ this._logger.info('Disconnected — stopping all reducer observations');
99
+ this._registered = false;
100
+ this.disconnectAll();
101
+ });
102
+ }
103
+ /** @inheritdoc */
104
+ async discover() {
105
+ this._reducers.clear();
106
+ for (const type of this._clientArtifacts.reducers) {
107
+ const metadata = getReducerMetadata(type);
108
+ if (metadata) {
109
+ this._reducers.set(metadata.id.value, type);
110
+ this._logger.debug('Discovered reducer', { reducerId: metadata.id.value, type: type.name });
111
+ }
112
+ }
113
+ }
114
+ /** @inheritdoc */
115
+ async register() {
116
+ if (this._registered) {
117
+ return;
118
+ }
119
+ if (this._reducers.size === 0) {
120
+ await this.discover();
121
+ }
122
+ this._logger.info('Registering reducers', { count: this._reducers.size });
123
+ for (const [id, reducerType] of this._reducers) {
124
+ this.startObservation(id, reducerType);
125
+ }
126
+ this._registered = true;
127
+ }
128
+ startObservation(id, reducerType) {
129
+ const metadata = getReducerMetadata(reducerType);
130
+ const eventSequenceId = metadata.eventSequenceId ?? EventSequenceId.eventLog.value;
131
+ const eventTypes = this.getEventTypesFor(reducerType);
132
+ const readModelName = reducerType.name;
133
+ this._logger.info('Starting reducer observation', {
134
+ reducerId: id,
135
+ eventSequenceId,
136
+ readModel: readModelName,
137
+ handlerCount: eventTypes.length,
138
+ handlers: eventTypes.map(e => e.methodName)
139
+ });
140
+ this.observeReducer(id, reducerType, eventSequenceId, eventTypes, readModelName).catch(err => {
141
+ this._logger.error('Reducer observation loop exited with error', { reducerId: id, error: String(err) });
142
+ });
143
+ }
144
+ async observeReducer(id, reducerType, eventSequenceId, eventTypes, readModelName) {
145
+ const queue = new AsyncQueue();
146
+ this._queues.set(id, queue);
147
+ queue.send({
148
+ Content: {
149
+ Value0: {
150
+ ConnectionId: this._lifecycle.connectionId,
151
+ EventStore: this._eventStoreName,
152
+ Namespace: this._namespace,
153
+ Reducer: {
154
+ ReducerId: id,
155
+ EventSequenceId: eventSequenceId,
156
+ EventTypes: eventTypes.map(et => ({
157
+ EventType: { Id: et.id, Generation: et.generation, Tombstone: false },
158
+ Key: EVENT_SOURCE_ID_KEY
159
+ })),
160
+ ReadModel: readModelName,
161
+ IsActive: true,
162
+ Sink: { TypeId: { lo: 0, hi: 0 }, ConfigurationId: undefined },
163
+ Tags: [],
164
+ Filters: {
165
+ FilterTags: [],
166
+ EventSourceType: '',
167
+ EventStreamType: 'All'
168
+ }
169
+ }
170
+ },
171
+ Value1: undefined
172
+ }
173
+ });
174
+ try {
175
+ const reducerInstance = new reducerType();
176
+ for await (const operation of this._connection.reducers.observe(queue)) {
177
+ let lastSuccessfullyObservedEvent = SEQUENCE_NUMBER_UNAVAILABLE;
178
+ let state = ObservationState.Success;
179
+ const exceptionMessages = [];
180
+ let exceptionStackTrace = '';
181
+ let readModelState;
182
+ this._logger.debug('Received reduce operation', {
183
+ reducerId: id,
184
+ partition: operation.Partition,
185
+ count: operation.Events.length,
186
+ hasInitialState: operation.InitialState !== ''
187
+ });
188
+ let currentState = operation.InitialState
189
+ ? JSON.parse(operation.InitialState)
190
+ : undefined;
191
+ for (const event of operation.Events) {
192
+ try {
193
+ const eventTypeId = event.Context?.EventType?.Id;
194
+ if (!eventTypeId) {
195
+ this._logger.warn('Event missing event type context', { reducerId: id });
196
+ continue;
197
+ }
198
+ const entry = eventTypes.find(et => et.id === eventTypeId);
199
+ if (!entry) {
200
+ this._logger.debug('No handler registered for event type — skipping', { reducerId: id, eventTypeId });
201
+ lastSuccessfullyObservedEvent = event.Context.SequenceNumber;
202
+ continue;
203
+ }
204
+ const content = JSON.parse(event.Content);
205
+ this._logger.info('Invoking reducer handler', {
206
+ reducerId: id,
207
+ method: entry.methodName,
208
+ sequenceNumber: event.Context.SequenceNumber,
209
+ eventTypeId,
210
+ hasState: currentState !== undefined
211
+ });
212
+ currentState = await reducerInstance[entry.methodName](content, currentState);
213
+ lastSuccessfullyObservedEvent = event.Context.SequenceNumber;
214
+ }
215
+ catch (err) {
216
+ this._logger.error('Error handling event in reducer', { reducerId: id, error: String(err) });
217
+ exceptionMessages.push(String(err));
218
+ exceptionStackTrace = err instanceof Error ? (err.stack ?? '') : '';
219
+ state = ObservationState.Failed;
220
+ break;
221
+ }
222
+ }
223
+ if (state === ObservationState.Success && currentState !== undefined) {
224
+ readModelState = JSON.stringify(currentState);
225
+ }
226
+ queue.send({
227
+ Content: {
228
+ Value0: undefined,
229
+ Value1: {
230
+ Partition: operation.Partition,
231
+ State: state,
232
+ LastSuccessfulObservation: lastSuccessfullyObservedEvent,
233
+ ExceptionMessages: exceptionMessages,
234
+ ExceptionStackTrace: exceptionStackTrace,
235
+ ReadModelState: readModelState ?? ''
236
+ }
237
+ }
238
+ });
239
+ }
240
+ }
241
+ catch (err) {
242
+ if (!this._queues.has(id)) {
243
+ this._logger.debug('Reducer observation stream closed cleanly', { reducerId: id });
244
+ }
245
+ else {
246
+ this._logger.error('Reducer observation stream ended unexpectedly', { reducerId: id, error: String(err) });
247
+ }
248
+ }
249
+ finally {
250
+ this._queues.delete(id);
251
+ }
252
+ }
253
+ getEventTypesFor(reducerType) {
254
+ const proto = reducerType.prototype;
255
+ const entries = [];
256
+ for (const eventTypeClass of this._clientArtifacts.eventTypes) {
257
+ const eventTypeMeta = getEventTypeMetadata(eventTypeClass);
258
+ if (!eventTypeMeta)
259
+ continue;
260
+ const className = eventTypeClass.name;
261
+ const methodName = className.charAt(0).toLowerCase() + className.slice(1);
262
+ if (typeof proto[methodName] === 'function') {
263
+ entries.push({
264
+ id: eventTypeMeta.eventType.id.value,
265
+ generation: eventTypeMeta.eventType.generation.value,
266
+ methodName
267
+ });
268
+ }
269
+ }
270
+ return entries;
271
+ }
272
+ disconnectAll() {
273
+ for (const queue of this._queues.values()) {
274
+ queue.complete();
275
+ }
276
+ this._queues.clear();
277
+ }
278
+ }
279
+ //# sourceMappingURL=Reducers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reducers.js","sourceRoot":"","sources":["../../Reducers/Reducers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { ReducerId } from './ReducerId';
2
+ export { reducer, getReducerMetadata, isReducer } from './reducer';
3
+ export type { ReducerMetadata } from './reducer';
4
+ export type { IReducers } from './IReducers';
5
+ export { Reducers } from './Reducers';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Reducers/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ export { ReducerId } from './ReducerId';
4
+ export { reducer, getReducerMetadata, isReducer } from './reducer';
5
+ export { Reducers } from './Reducers';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../Reducers/index.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGnE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,51 @@
1
+ import 'reflect-metadata';
2
+ import { Constructor } from '@cratis/fundamentals';
3
+ import { ReducerId } from './ReducerId';
4
+ /**
5
+ * Metadata stored on a reducer class.
6
+ */
7
+ export interface ReducerMetadata {
8
+ /** The unique identifier for the reducer. */
9
+ readonly id: ReducerId;
10
+ /** The optional explicit event sequence identifier. */
11
+ readonly eventSequenceId: string | undefined;
12
+ /** The optional read model type produced by the reducer. */
13
+ readonly readModel: Constructor | undefined;
14
+ }
15
+ /**
16
+ * TypeScript decorator that marks a class as a reducer and associates it with a unique
17
+ * identifier. This is the TypeScript equivalent of the C# `[Reducer]` attribute.
18
+ *
19
+ * Reducers observe events from an event sequence and fold them into a read model.
20
+ * Each handler method receives the event, the current state (or undefined), and an
21
+ * optional context, and returns the new state.
22
+ *
23
+ * @param id - The unique identifier for the reducer. Defaults to the class name if omitted.
24
+ * @param eventSequenceId - Optional explicit event sequence identifier.
25
+ * @param readModel - Optional read model type produced by the reducer.
26
+ * @returns A class decorator.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * @reducer()
31
+ * class EmployeeReducer {
32
+ * async employeeHired(event: EmployeeHired, state?: EmployeeState): Promise<EmployeeState> {
33
+ * return { ...state, name: `${event.firstName} ${event.lastName}` };
34
+ * }
35
+ * }
36
+ * ```
37
+ */
38
+ export declare function reducer(id?: string, eventSequenceId?: string, readModel?: Constructor): ClassDecorator;
39
+ /**
40
+ * Gets the {@link ReducerMetadata} associated with a class decorated with {@link reducer}.
41
+ * @param target - The class constructor to retrieve the metadata for.
42
+ * @returns The associated ReducerMetadata, or undefined if not decorated.
43
+ */
44
+ export declare function getReducerMetadata(target: Function): ReducerMetadata | undefined;
45
+ /**
46
+ * Checks whether a class has been decorated with {@link reducer}.
47
+ * @param target - The class constructor to check.
48
+ * @returns True if the class has a reducer decorator; false otherwise.
49
+ */
50
+ export declare function isReducer(target: Function): boolean;
51
+ //# sourceMappingURL=reducer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../Reducers/reducer.ts"],"names":[],"mappings":"AAGA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAEvB,uDAAuD;IACvD,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7C,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,WAAW,GAAG,SAAS,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,OAAO,CAAC,EAAE,GAAE,MAAW,EAAE,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,cAAc,CAoB1G;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,SAAS,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAEnD"}