@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,55 @@
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
+ import 'reflect-metadata';
5
+ import { TypeIntrospector } from '../../types';
6
+
7
+ /** Metadata stored by the removedWithJoin class or property decorator. */
8
+ export interface RemovedWithJoinMetadata {
9
+ /** The event constructor that triggers removal via a join. */
10
+ readonly eventType: Function;
11
+ /** The event property name that identifies the instance to remove. Defaults to the event source identifier. */
12
+ readonly key?: string;
13
+ }
14
+
15
+ const CLASS_METADATA_KEY = 'chronicle:projection:removedWithJoin:class';
16
+ const PROPERTY_METADATA_KEY = 'chronicle:projection:removedWithJoin:property';
17
+
18
+ /**
19
+ * Class or property decorator that specifies the event type that removes a read model instance or child via a join.
20
+ * @param eventType - The event constructor.
21
+ * @param key - Optional event property name used as the key to identify the instance to remove.
22
+ * @returns A class and property decorator.
23
+ */
24
+ export function removedWithJoin(eventType: Function, key?: string): ClassDecorator & PropertyDecorator {
25
+ return (target: object, propertyKey?: string | symbol) => {
26
+ if (propertyKey !== undefined) {
27
+ const propKey = propertyKey.toString();
28
+ TypeIntrospector.trackProperty((target as { constructor: Function }).constructor, propKey);
29
+ const existing: RemovedWithJoinMetadata[] = Reflect.getMetadata(PROPERTY_METADATA_KEY, target, propKey) ?? [];
30
+ Reflect.defineMetadata(PROPERTY_METADATA_KEY, [...existing, { eventType, key }], target, propKey);
31
+ } else {
32
+ const existing: RemovedWithJoinMetadata[] = Reflect.getMetadata(CLASS_METADATA_KEY, target) ?? [];
33
+ Reflect.defineMetadata(CLASS_METADATA_KEY, [...existing, { eventType, key }], target);
34
+ }
35
+ };
36
+ }
37
+
38
+ /**
39
+ * Retrieves removedWithJoin metadata stored on the given class constructor.
40
+ * @param target - The class constructor.
41
+ * @returns An array of removedWithJoin metadata entries.
42
+ */
43
+ export function getRemovedWithJoinClassMetadata(target: Function): RemovedWithJoinMetadata[] {
44
+ return Reflect.getMetadata(CLASS_METADATA_KEY, target) ?? [];
45
+ }
46
+
47
+ /**
48
+ * Retrieves removedWithJoin metadata stored on the given property.
49
+ * @param target - The class prototype.
50
+ * @param propertyKey - The property name.
51
+ * @returns An array of removedWithJoin metadata entries.
52
+ */
53
+ export function getRemovedWithJoinPropertyMetadata(target: object, propertyKey: string): RemovedWithJoinMetadata[] {
54
+ return Reflect.getMetadata(PROPERTY_METADATA_KEY, target, propertyKey) ?? [];
55
+ }
@@ -0,0 +1,41 @@
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
+ import 'reflect-metadata';
5
+ import { TypeIntrospector } from '../../types';
6
+
7
+ /** Metadata stored by the setFrom property decorator. */
8
+ export interface SetFromMetadata {
9
+ /** The event constructor associated with this annotation. */
10
+ readonly eventType: Function;
11
+ /** The event property name to read the value from. Defaults to the decorated property name. */
12
+ readonly eventPropertyName?: string;
13
+ }
14
+
15
+ const METADATA_KEY = 'chronicle:projection:setFrom';
16
+
17
+ /**
18
+ * Property decorator that maps an event property value onto the decorated read model property.
19
+ * @param eventType - The event constructor.
20
+ * @param eventPropertyName - Optional event property name. Defaults to the property name.
21
+ * @returns A property decorator.
22
+ */
23
+ export function setFrom(eventType: Function, eventPropertyName?: string): PropertyDecorator {
24
+ return (target: object, propertyKey: string | symbol) => {
25
+ const key = propertyKey.toString();
26
+ TypeIntrospector.trackProperty((target as { constructor: Function }).constructor, key);
27
+ const existing: SetFromMetadata[] = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
28
+ const metadata: SetFromMetadata = { eventType, eventPropertyName };
29
+ Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Retrieves all setFrom metadata stored on the given property.
35
+ * @param target - The class prototype.
36
+ * @param propertyKey - The property name.
37
+ * @returns An array of setFrom metadata entries.
38
+ */
39
+ export function getSetFromMetadata(target: object, propertyKey: string): SetFromMetadata[] {
40
+ return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
41
+ }
@@ -0,0 +1,41 @@
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
+ import 'reflect-metadata';
5
+ import { TypeIntrospector } from '../../types';
6
+
7
+ /** Metadata stored by the setFromContext property decorator. */
8
+ export interface SetFromContextMetadata {
9
+ /** The event constructor associated with this annotation. */
10
+ readonly eventType: Function;
11
+ /** The event context property name to read the value from. Defaults to the decorated property name. */
12
+ readonly contextPropertyName?: string;
13
+ }
14
+
15
+ const METADATA_KEY = 'chronicle:projection:setFromContext';
16
+
17
+ /**
18
+ * Property decorator that maps a value from an event context property onto the decorated read model property.
19
+ * @param eventType - The event constructor.
20
+ * @param contextPropertyName - Optional event context property name. Defaults to the property name.
21
+ * @returns A property decorator.
22
+ */
23
+ export function setFromContext(eventType: Function, contextPropertyName?: string): PropertyDecorator {
24
+ return (target: object, propertyKey: string | symbol) => {
25
+ const key = propertyKey.toString();
26
+ TypeIntrospector.trackProperty((target as { constructor: Function }).constructor, key);
27
+ const existing: SetFromContextMetadata[] = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
28
+ const metadata: SetFromContextMetadata = { eventType, contextPropertyName };
29
+ Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Retrieves all setFromContext metadata stored on the given property.
35
+ * @param target - The class prototype.
36
+ * @param propertyKey - The property name.
37
+ * @returns An array of setFromContext metadata entries.
38
+ */
39
+ export function getSetFromContextMetadata(target: object, propertyKey: string): SetFromContextMetadata[] {
40
+ return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
41
+ }
@@ -0,0 +1,41 @@
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
+ import 'reflect-metadata';
5
+ import { TypeIntrospector } from '../../types';
6
+
7
+ /** Metadata stored by the setValue property decorator. */
8
+ export interface SetValueMetadata {
9
+ /** The event constructor that triggers the value assignment. */
10
+ readonly eventType: Function;
11
+ /** The constant value to assign to the property when the event occurs. */
12
+ readonly value: unknown;
13
+ }
14
+
15
+ const METADATA_KEY = 'chronicle:projection:setValue';
16
+
17
+ /**
18
+ * Property decorator that sets the decorated read model property to a constant value when the specified event occurs.
19
+ * @param eventType - The event constructor.
20
+ * @param value - The constant value to assign.
21
+ * @returns A property decorator.
22
+ */
23
+ export function setValue(eventType: Function, value: unknown): PropertyDecorator {
24
+ return (target: object, propertyKey: string | symbol) => {
25
+ const key = propertyKey.toString();
26
+ TypeIntrospector.trackProperty((target as { constructor: Function }).constructor, key);
27
+ const existing: SetValueMetadata[] = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
28
+ const metadata: SetValueMetadata = { eventType, value };
29
+ Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Retrieves all setValue metadata stored on the given property.
35
+ * @param target - The class prototype.
36
+ * @param propertyKey - The property name.
37
+ * @returns An array of setValue metadata entries.
38
+ */
39
+ export function getSetValueMetadata(target: object, propertyKey: string): SetValueMetadata[] {
40
+ return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
41
+ }
@@ -0,0 +1,41 @@
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
+ import 'reflect-metadata';
5
+ import { TypeIntrospector } from '../../types';
6
+
7
+ /** Metadata stored by the subtractFrom property decorator. */
8
+ export interface SubtractFromMetadata {
9
+ /** The event constructor associated with this annotation. */
10
+ readonly eventType: Function;
11
+ /** The event property name whose value is subtracted from the read model property. Defaults to the decorated property name. */
12
+ readonly eventPropertyName?: string;
13
+ }
14
+
15
+ const METADATA_KEY = 'chronicle:projection:subtractFrom';
16
+
17
+ /**
18
+ * Property decorator that subtracts an event property value from the decorated read model property.
19
+ * @param eventType - The event constructor.
20
+ * @param eventPropertyName - Optional event property name. Defaults to the property name.
21
+ * @returns A property decorator.
22
+ */
23
+ export function subtractFrom(eventType: Function, eventPropertyName?: string): PropertyDecorator {
24
+ return (target: object, propertyKey: string | symbol) => {
25
+ const key = propertyKey.toString();
26
+ TypeIntrospector.trackProperty((target as { constructor: Function }).constructor, key);
27
+ const existing: SubtractFromMetadata[] = Reflect.getMetadata(METADATA_KEY, target, key) ?? [];
28
+ const metadata: SubtractFromMetadata = { eventType, eventPropertyName };
29
+ Reflect.defineMetadata(METADATA_KEY, [...existing, metadata], target, key);
30
+ };
31
+ }
32
+
33
+ /**
34
+ * Retrieves all subtractFrom metadata stored on the given property.
35
+ * @param target - The class prototype.
36
+ * @param propertyKey - The property name.
37
+ * @returns An array of subtractFrom metadata entries.
38
+ */
39
+ export function getSubtractFromMetadata(target: object, propertyKey: string): SubtractFromMetadata[] {
40
+ return Reflect.getMetadata(METADATA_KEY, target, propertyKey) ?? [];
41
+ }
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # Chronicle TypeScript Client
2
+
3
+ A TypeScript-idiomatic client for [Cratis Chronicle](https://github.com/Cratis/Chronicle) — the open source event-sourcing kernel.
4
+
5
+ ## Overview
6
+
7
+ `@cratis/chronicle` provides a clean, type-safe TypeScript API for interacting with the Chronicle Kernel. It builds on top of [`@cratis/chronicle.contracts`](https://www.npmjs.com/package/@cratis/chronicle.contracts) (the gRPC contracts package) and exposes idiomatic TypeScript constructs including:
8
+
9
+ - **Decorators** — `@eventType`, `@readModel`, `@reactor`, `@reducer`, `@constraint`, `@projection`, `@modelBoundProjection`
10
+ - **Value objects** — `EventSequenceNumber`, `EventTypeId`, `EventStoreName`, etc.
11
+ - **Fluent client** — `ChronicleClient` → `EventStore` → `EventLog` → `append()`
12
+
13
+ ## Structure
14
+
15
+ ```
16
+ Source/ ← @cratis/chronicle TypeScript library
17
+ Documentation/ ← User-facing documentation
18
+ Samples/
19
+ Console/ ← Plain Node.js console sample application
20
+ ```
21
+
22
+ ## Prerequisite: Chronicle Running
23
+
24
+ You need a Chronicle Kernel available before running samples or application code.
25
+
26
+ The easiest local setup is the development Docker image:
27
+
28
+ ```bash
29
+ docker run -p 35000:35000 -p 8080:8080 cratis/chronicle:latest-development
30
+ ```
31
+
32
+ ## Getting Started
33
+
34
+ See [Documentation/getting-started.md](./Documentation/getting-started.md) for installation and usage instructions.
35
+
36
+ ## Quick Example
37
+
38
+ ```typescript
39
+ import 'reflect-metadata';
40
+ import { ChronicleClient, ChronicleOptions, eventType } from '@cratis/chronicle';
41
+
42
+ @eventType()
43
+ class EmployeeHired {
44
+ constructor(readonly firstName: string, readonly lastName: string) {}
45
+ }
46
+
47
+ const client = new ChronicleClient(ChronicleOptions.development());
48
+ const store = await client.getEventStore('MyStore');
49
+ const result = await store.eventLog.append('employee-123', new EmployeeHired('Jane', 'Doe'));
50
+ console.log(`Appended at sequence number ${result.sequenceNumber.value}`);
51
+ client.dispose();
52
+ ```
53
+
54
+ ## Building
55
+
56
+ ```bash
57
+ yarn install
58
+ yarn workspace @cratis/chronicle compile
59
+ ```
60
+
61
+ ## Running the Console Sample
62
+
63
+ ```bash
64
+ yarn install
65
+ yarn workspace @cratis/chronicle-test-console build
66
+ yarn workspace @cratis/chronicle-test-console start
67
+ ```
68
+
69
+ Set the `CHRONICLE_CONNECTION` environment variable to override the default connection string (`chronicle://localhost:35000`).
@@ -0,0 +1,19 @@
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
+ /**
5
+ * Defines a system to work with reactors, including discovery and registration with the Kernel.
6
+ */
7
+ export interface IReactors {
8
+ /**
9
+ * Discovers all reactors from the registered client artifacts.
10
+ * @returns A promise that resolves when discovery is complete.
11
+ */
12
+ discover(): Promise<void>;
13
+
14
+ /**
15
+ * Registers all discovered reactors with the Chronicle Kernel and starts observation.
16
+ * @returns A promise that resolves when registration is complete.
17
+ */
18
+ register(): Promise<void>;
19
+ }
@@ -0,0 +1,14 @@
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
+ /**
5
+ * Unique identifier for a reactor.
6
+ */
7
+ export class ReactorId {
8
+ constructor(readonly value: string) {}
9
+
10
+ /** @inheritdoc */
11
+ toString(): string {
12
+ return this.value;
13
+ }
14
+ }
@@ -0,0 +1,320 @@
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
+ import 'reflect-metadata';
5
+ import { diag } from '@opentelemetry/api';
6
+ import { Constructor } from '@cratis/fundamentals';
7
+ import { ObservationState, ReactorMessage } from '@cratis/chronicle.contracts';
8
+ import { IClientArtifactsProvider } from '../artifacts';
9
+ import { ChronicleConnection } from '../connection';
10
+ import { ConnectionLifecycle } from '../connection/ConnectionLifecycle';
11
+ import { getEventTypeMetadata } from '../Events/eventTypeDecorator';
12
+ import { EventContext } from '../Events/EventContext';
13
+ import { EventTypeId } from '../Events/EventTypeId';
14
+ import { EventTypeGeneration } from '../Events/EventTypeGeneration';
15
+ import { EventSequenceId } from '../EventSequences/EventSequenceId';
16
+ import { IReactors } from './IReactors';
17
+ import { getReactorMetadata } from './reactor';
18
+
19
+ /** Expression used to partition reactor observations by event source ID. */
20
+ const EVENT_SOURCE_ID_KEY = '$eventSourceId';
21
+
22
+ /** Sentinel sequence number sent back when no event was successfully processed. */
23
+ const SEQUENCE_NUMBER_UNAVAILABLE = 4294967295;
24
+
25
+ interface EventTypeEntry {
26
+ readonly id: string;
27
+ readonly generation: number;
28
+ readonly methodName: string;
29
+ }
30
+
31
+ /**
32
+ * A push-based async queue that implements {@link AsyncIterable} for use with nice-grpc
33
+ * bidirectional streaming. Values pushed via {@link send} are yielded in order to
34
+ * any consumer that iterates the queue.
35
+ */
36
+ class AsyncQueue<T> {
37
+ private readonly _queue: T[] = [];
38
+ private _resolve: ((result: IteratorResult<T, undefined>) => void) | undefined = undefined;
39
+ private _done = false;
40
+
41
+ /** Pushes a value into the queue. No-op if the queue has been completed. */
42
+ send(value: T): void {
43
+ if (this._done) return;
44
+ if (this._resolve) {
45
+ const resolve = this._resolve;
46
+ this._resolve = undefined;
47
+ resolve({ value, done: false });
48
+ } else {
49
+ this._queue.push(value);
50
+ }
51
+ }
52
+
53
+ /** Signals that no more values will be pushed, causing consumers to finish iteration. */
54
+ complete(): void {
55
+ this._done = true;
56
+ if (this._resolve) {
57
+ this._resolve({ value: undefined, done: true });
58
+ this._resolve = undefined;
59
+ }
60
+ }
61
+
62
+ [Symbol.asyncIterator](): AsyncIterator<T, undefined> {
63
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
64
+ const self = this;
65
+ return {
66
+ next(): Promise<IteratorResult<T, undefined>> {
67
+ if (self._queue.length > 0) {
68
+ return Promise.resolve({ value: self._queue.shift()!, done: false });
69
+ }
70
+ if (self._done) {
71
+ return Promise.resolve({ value: undefined, done: true });
72
+ }
73
+ return new Promise(resolve => {
74
+ self._resolve = resolve as (result: IteratorResult<T, undefined>) => void;
75
+ });
76
+ },
77
+ return(): Promise<IteratorResult<T, undefined>> {
78
+ self._done = true;
79
+ if (self._resolve) {
80
+ self._resolve({ value: undefined, done: true });
81
+ self._resolve = undefined;
82
+ }
83
+ return Promise.resolve({ value: undefined, done: true });
84
+ }
85
+ };
86
+ }
87
+ }
88
+
89
+ /**
90
+ * Implements {@link IReactors}, managing discovery and registration of reactors
91
+ * with the Chronicle Kernel via bidirectional gRPC streaming.
92
+ */
93
+ export class Reactors implements IReactors {
94
+ private readonly _logger = diag.createComponentLogger({ namespace: '@cratis/chronicle/Reactors' });
95
+ private readonly _lifecycle: ConnectionLifecycle;
96
+ private readonly _reactors = new Map<string, Constructor>();
97
+ private readonly _queues = new Map<string, AsyncQueue<ReactorMessage>>();
98
+ private _registered = false;
99
+
100
+ /**
101
+ * Creates a new {@link Reactors} instance.
102
+ * @param _clientArtifacts - Provider for discovered client artifact types.
103
+ * @param _connection - The Chronicle gRPC connection.
104
+ * @param _eventStoreName - The name of the event store.
105
+ * @param _namespace - The namespace within the event store.
106
+ * @param lifecycle - The connection lifecycle used to react to disconnect events.
107
+ */
108
+ constructor(
109
+ private readonly _clientArtifacts: IClientArtifactsProvider,
110
+ private readonly _connection: ChronicleConnection,
111
+ private readonly _eventStoreName: string,
112
+ private readonly _namespace: string,
113
+ lifecycle: ConnectionLifecycle
114
+ ) {
115
+ this._lifecycle = lifecycle;
116
+ lifecycle.onDisconnected(async () => {
117
+ this._logger.info('Disconnected — stopping all reactor observations');
118
+ this._registered = false;
119
+ this.disconnectAll();
120
+ });
121
+ }
122
+
123
+ /** @inheritdoc */
124
+ async discover(): Promise<void> {
125
+ this._reactors.clear();
126
+ for (const type of this._clientArtifacts.reactors) {
127
+ const metadata = getReactorMetadata(type);
128
+ if (metadata) {
129
+ this._reactors.set(metadata.id.value, type);
130
+ this._logger.debug('Discovered reactor', { reactorId: metadata.id.value, type: (type as Function).name });
131
+ }
132
+ }
133
+ }
134
+
135
+ /** @inheritdoc */
136
+ async register(): Promise<void> {
137
+ if (this._registered) {
138
+ return;
139
+ }
140
+
141
+ if (this._reactors.size === 0) {
142
+ await this.discover();
143
+ }
144
+
145
+ this._logger.info('Registering reactors', { count: this._reactors.size });
146
+ for (const [id, reactorType] of this._reactors) {
147
+ this.startObservation(id, reactorType);
148
+ }
149
+
150
+ this._registered = true;
151
+ }
152
+
153
+ private startObservation(id: string, reactorType: Constructor): void {
154
+ const metadata = getReactorMetadata(reactorType)!;
155
+ const eventSequenceId = metadata.eventSequenceId ?? EventSequenceId.eventLog.value;
156
+ const eventTypes = this.getEventTypesFor(reactorType);
157
+
158
+ this._logger.info('Starting reactor observation', {
159
+ reactorId: id,
160
+ eventSequenceId,
161
+ handlerCount: eventTypes.length,
162
+ handlers: eventTypes.map(e => e.methodName)
163
+ });
164
+
165
+ this.observeReactor(id, reactorType, eventSequenceId, eventTypes).catch(err => {
166
+ this._logger.error('Reactor observation loop exited with error', { reactorId: id, error: String(err) });
167
+ });
168
+ }
169
+
170
+ private async observeReactor(
171
+ id: string,
172
+ reactorType: Constructor,
173
+ eventSequenceId: string,
174
+ eventTypes: EventTypeEntry[]
175
+ ): Promise<void> {
176
+ const queue = new AsyncQueue<ReactorMessage>();
177
+ this._queues.set(id, queue);
178
+
179
+ queue.send({
180
+ Content: {
181
+ Value0: {
182
+ ConnectionId: this._lifecycle.connectionId,
183
+ EventStore: this._eventStoreName,
184
+ Namespace: this._namespace,
185
+ Reactor: {
186
+ ReactorId: id,
187
+ EventSequenceId: eventSequenceId,
188
+ EventTypes: eventTypes.map(et => ({
189
+ EventType: { Id: et.id, Generation: et.generation, Tombstone: false },
190
+ Key: EVENT_SOURCE_ID_KEY
191
+ })),
192
+ IsReplayable: false,
193
+ Tags: [],
194
+ Filters: {
195
+ FilterTags: [],
196
+ EventSourceType: '',
197
+ EventStreamType: 'All'
198
+ }
199
+ }
200
+ },
201
+ Value1: undefined
202
+ }
203
+ });
204
+
205
+ try {
206
+ const reactorInstance = new (reactorType as new () => Record<string, Function>)();
207
+
208
+ for await (const eventsToObserve of this._connection.reactors.observe(queue)) {
209
+ let lastSuccessfullyObservedEvent = SEQUENCE_NUMBER_UNAVAILABLE;
210
+ let state = ObservationState.Success;
211
+ const exceptionMessages: string[] = [];
212
+ let exceptionStackTrace = '';
213
+
214
+ this._logger.debug('Received events to observe', {
215
+ reactorId: id,
216
+ partition: eventsToObserve.Partition,
217
+ count: eventsToObserve.Events.length
218
+ });
219
+
220
+ for (const event of eventsToObserve.Events) {
221
+ try {
222
+ const eventTypeId = event.Context?.EventType?.Id;
223
+ if (!eventTypeId) {
224
+ this._logger.warn('Event missing event type context', { reactorId: id });
225
+ continue;
226
+ }
227
+
228
+ const entry = eventTypes.find(et => et.id === eventTypeId);
229
+ if (!entry) {
230
+ this._logger.debug('No handler registered for event type — skipping', { reactorId: id, eventTypeId });
231
+ lastSuccessfullyObservedEvent = event.Context!.SequenceNumber;
232
+ continue;
233
+ }
234
+
235
+ const content = JSON.parse(event.Content) as Record<string, unknown>;
236
+ const context: EventContext = {
237
+ sequenceNumber: event.Context!.SequenceNumber,
238
+ eventSourceId: event.Context!.EventSourceId,
239
+ eventType: {
240
+ id: new EventTypeId(event.Context!.EventType!.Id),
241
+ generation: new EventTypeGeneration(event.Context!.EventType!.Generation),
242
+ tombstone: event.Context!.EventType!.Tombstone
243
+ },
244
+ occurred: new Date(event.Context!.Occurred?.Value ?? ''),
245
+ correlationId: event.Context?.CorrelationId ? `${event.Context.CorrelationId.lo}-${event.Context.CorrelationId.hi}` : '',
246
+ causation: []
247
+ };
248
+
249
+ this._logger.info('Invoking reactor handler', {
250
+ reactorId: id,
251
+ method: entry.methodName,
252
+ sequenceNumber: event.Context!.SequenceNumber,
253
+ eventTypeId
254
+ });
255
+
256
+ await reactorInstance[entry.methodName](content, context);
257
+ lastSuccessfullyObservedEvent = event.Context!.SequenceNumber;
258
+ } catch (err) {
259
+ this._logger.error('Error handling event in reactor', { reactorId: id, error: String(err) });
260
+ exceptionMessages.push(String(err));
261
+ exceptionStackTrace = err instanceof Error ? (err.stack ?? '') : '';
262
+ state = ObservationState.Failed;
263
+ break;
264
+ }
265
+ }
266
+
267
+ queue.send({
268
+ Content: {
269
+ Value0: undefined,
270
+ Value1: {
271
+ Partition: eventsToObserve.Partition,
272
+ State: state,
273
+ LastSuccessfulObservation: lastSuccessfullyObservedEvent,
274
+ ExceptionMessages: exceptionMessages,
275
+ ExceptionStackTrace: exceptionStackTrace
276
+ }
277
+ }
278
+ });
279
+ }
280
+ } catch (err) {
281
+ if (!this._queues.has(id)) {
282
+ this._logger.debug('Reactor observation stream closed cleanly', { reactorId: id });
283
+ } else {
284
+ this._logger.error('Reactor observation stream ended unexpectedly', { reactorId: id, error: String(err) });
285
+ }
286
+ } finally {
287
+ this._queues.delete(id);
288
+ }
289
+ }
290
+
291
+ private getEventTypesFor(reactorType: Constructor): EventTypeEntry[] {
292
+ const proto = reactorType.prototype as Record<string, unknown>;
293
+ const entries: EventTypeEntry[] = [];
294
+
295
+ for (const eventTypeClass of this._clientArtifacts.eventTypes) {
296
+ const eventTypeMeta = getEventTypeMetadata(eventTypeClass);
297
+ if (!eventTypeMeta) continue;
298
+
299
+ const className = (eventTypeClass as Function).name;
300
+ const methodName = className.charAt(0).toLowerCase() + className.slice(1);
301
+
302
+ if (typeof proto[methodName] === 'function') {
303
+ entries.push({
304
+ id: eventTypeMeta.eventType.id.value,
305
+ generation: eventTypeMeta.eventType.generation.value,
306
+ methodName
307
+ });
308
+ }
309
+ }
310
+
311
+ return entries;
312
+ }
313
+
314
+ private disconnectAll(): void {
315
+ for (const queue of this._queues.values()) {
316
+ queue.complete();
317
+ }
318
+ this._queues.clear();
319
+ }
320
+ }
@@ -0,0 +1,8 @@
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
+ export { ReactorId } from './ReactorId';
5
+ export { reactor, getReactorMetadata, isReactor } from './reactor';
6
+ export type { ReactorMetadata } from './reactor';
7
+ export type { IReactors } from './IReactors';
8
+ export { Reactors } from './Reactors';