@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,372 @@
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 {
5
+ ChronicleConnection,
6
+ Guid as ContractsGuid
7
+ } from '../connection';
8
+ import { SpanStatusCode } from '@opentelemetry/api';
9
+ import { Guid } from '@cratis/fundamentals';
10
+ import { getEventTypeFor } from '../Events/eventTypeDecorator';
11
+ import { AppendOptions } from './AppendOptions';
12
+ import { AppendResult } from './AppendResult';
13
+ import { ConstraintViolation } from './ConstraintViolation';
14
+ import { IEventSequence } from './IEventSequence';
15
+ import { EventSequenceId } from './EventSequenceId';
16
+ import { EventSequenceNumber } from './EventSequenceNumber';
17
+ import { ChronicleTracer } from '../Tracing';
18
+ import { ChronicleMetrics } from '../Metrics';
19
+
20
+ /**
21
+ * Implements {@link IEventSequence} by communicating with the Chronicle Kernel
22
+ * via gRPC using the {@link ChronicleConnection}.
23
+ */
24
+ export class EventSequence implements IEventSequence {
25
+ constructor(
26
+ readonly id: EventSequenceId,
27
+ private readonly _eventStoreName: string,
28
+ private readonly _namespace: string,
29
+ private readonly _connection: ChronicleConnection
30
+ ) {}
31
+
32
+ /** @inheritdoc */
33
+ async append(eventSourceId: string, event: object, options?: AppendOptions): Promise<AppendResult> {
34
+ const eventType = getEventTypeFor(event.constructor as Function);
35
+ const correlationId = options?.correlationId === undefined
36
+ ? Guid.create()
37
+ : Guid.as(options.correlationId);
38
+ const content = JSON.stringify(event);
39
+
40
+ const metricAttributes = {
41
+ 'chronicle.event_store': this._eventStoreName,
42
+ 'chronicle.namespace': this._namespace,
43
+ 'chronicle.event_sequence_id': this.id.value,
44
+ 'chronicle.event_type_id': eventType.id.value
45
+ };
46
+
47
+ return ChronicleTracer.startActiveSpan('chronicle.event_sequences.append', async span => {
48
+ span.setAttribute('chronicle.event_store', this._eventStoreName);
49
+ span.setAttribute('chronicle.namespace', this._namespace);
50
+ span.setAttribute('chronicle.event_sequence_id', this.id.value);
51
+ span.setAttribute('chronicle.event_source_id', eventSourceId);
52
+ span.setAttribute('chronicle.event_type_id', eventType.id.value);
53
+ span.setAttribute('chronicle.event_type_generation', eventType.generation.value);
54
+ const startTime = Date.now();
55
+ try {
56
+ const response = await this._connection.eventSequences.append({
57
+ EventStore: this._eventStoreName,
58
+ Namespace: this._namespace,
59
+ EventSequenceId: this.id.value,
60
+ CorrelationId: toContractsGuid(correlationId),
61
+ EventSourceType: 'Default',
62
+ EventSourceId: eventSourceId,
63
+ EventStreamType: 'Default',
64
+ EventStreamId: eventSourceId,
65
+ EventType: {
66
+ Id: eventType.id.value,
67
+ Generation: eventType.generation.value,
68
+ Tombstone: eventType.tombstone
69
+ },
70
+ Content: content,
71
+ Causation: [{
72
+ Occurred: { Value: new Date().toISOString() },
73
+ Type: 'TypeScriptClient.Append',
74
+ Properties: {}
75
+ }],
76
+ CausedBy: {
77
+ Subject: '5d032c92-9d5e-41eb-947a-ee5314ed0032',
78
+ Name: '[System]',
79
+ UserName: '[System]',
80
+ OnBehalfOf: undefined
81
+ },
82
+ ConcurrencyScope: {
83
+ // ulong.MaxValue sent as BigInt so the server recognises it as ConcurrencyScope.None (no validation)
84
+ SequenceNumber: 18446744073709551615n as unknown as number,
85
+ EventSourceId: false,
86
+ EventStreamType: '',
87
+ EventStreamId: '',
88
+ EventSourceType: '',
89
+ EventTypes: []
90
+ },
91
+ Tags: [],
92
+ Occurred: undefined,
93
+ Subject: eventSourceId
94
+ });
95
+
96
+ const duration = Date.now() - startTime;
97
+ const result = this.mapAppendResponse(
98
+ response.SequenceNumber,
99
+ response.ConstraintViolations ?? [],
100
+ response.Errors ?? []
101
+ );
102
+ span.setAttribute('chronicle.sequence_number', result.sequenceNumber.value);
103
+ span.setStatus({ code: SpanStatusCode.OK });
104
+
105
+ ChronicleMetrics.eventsAppended.add(1, metricAttributes);
106
+ ChronicleMetrics.appendDuration.record(duration, metricAttributes);
107
+ if (result.constraintViolations.length > 0) {
108
+ ChronicleMetrics.constraintViolations.add(result.constraintViolations.length, {
109
+ 'chronicle.event_store': this._eventStoreName,
110
+ 'chronicle.namespace': this._namespace,
111
+ 'chronicle.event_sequence_id': this.id.value
112
+ });
113
+ }
114
+ if (result.errors.length > 0) {
115
+ ChronicleMetrics.appendErrors.add(result.errors.length, {
116
+ 'chronicle.event_store': this._eventStoreName,
117
+ 'chronicle.namespace': this._namespace,
118
+ 'chronicle.event_sequence_id': this.id.value
119
+ });
120
+ }
121
+ return result;
122
+ } catch (error) {
123
+ span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
124
+ span.recordException(error as Error);
125
+ ChronicleMetrics.appendErrors.add(1, {
126
+ 'chronicle.event_store': this._eventStoreName,
127
+ 'chronicle.namespace': this._namespace,
128
+ 'chronicle.event_sequence_id': this.id.value
129
+ });
130
+ throw error;
131
+ } finally {
132
+ span.end();
133
+ }
134
+ });
135
+ }
136
+
137
+ /** @inheritdoc */
138
+ async appendMany(eventSourceId: string, events: object[], options?: AppendOptions): Promise<AppendResult[]> {
139
+ const correlationId = options?.correlationId === undefined
140
+ ? Guid.create()
141
+ : Guid.as(options.correlationId);
142
+
143
+ const eventsToAppend = events.map(event => {
144
+ const eventType = getEventTypeFor(event.constructor as Function);
145
+ return {
146
+ EventSourceType: 'Default',
147
+ EventSourceId: eventSourceId,
148
+ EventStreamType: 'Default',
149
+ EventStreamId: eventSourceId,
150
+ EventType: {
151
+ Id: eventType.id.value,
152
+ Generation: eventType.generation.value,
153
+ Tombstone: eventType.tombstone
154
+ },
155
+ Content: JSON.stringify(event),
156
+ Causation: [{
157
+ Occurred: { Value: new Date().toISOString() },
158
+ Type: 'TypeScriptClient.AppendMany.Event',
159
+ Properties: {}
160
+ }],
161
+ CausedBy: {
162
+ Subject: '5d032c92-9d5e-41eb-947a-ee5314ed0032',
163
+ Name: '[System]',
164
+ UserName: '[System]',
165
+ OnBehalfOf: undefined
166
+ },
167
+ ConcurrencyScope: {
168
+ SequenceNumber: 18446744073709551615n as unknown as number,
169
+ EventSourceId: false,
170
+ EventStreamType: '',
171
+ EventStreamId: '',
172
+ EventSourceType: '',
173
+ EventTypes: []
174
+ },
175
+ Tags: [],
176
+ Occurred: undefined,
177
+ Subject: eventSourceId
178
+ };
179
+ });
180
+
181
+ const batchMetricAttributes = {
182
+ 'chronicle.event_store': this._eventStoreName,
183
+ 'chronicle.namespace': this._namespace,
184
+ 'chronicle.event_sequence_id': this.id.value,
185
+ 'chronicle.events_count': events.length
186
+ };
187
+
188
+ return ChronicleTracer.startActiveSpan('chronicle.event_sequences.append_many', async span => {
189
+ span.setAttribute('chronicle.event_store', this._eventStoreName);
190
+ span.setAttribute('chronicle.namespace', this._namespace);
191
+ span.setAttribute('chronicle.event_sequence_id', this.id.value);
192
+ span.setAttribute('chronicle.event_source_id', eventSourceId);
193
+ span.setAttribute('chronicle.events_count', events.length);
194
+ const startTime = Date.now();
195
+ try {
196
+ const response = await this._connection.eventSequences.appendMany({
197
+ EventStore: this._eventStoreName,
198
+ Namespace: this._namespace,
199
+ EventSequenceId: this.id.value,
200
+ CorrelationId: toContractsGuid(correlationId),
201
+ Events: eventsToAppend,
202
+ Causation: [{
203
+ Occurred: { Value: new Date().toISOString() },
204
+ Type: 'TypeScriptClient.AppendMany.Batch',
205
+ Properties: {}
206
+ }],
207
+ CausedBy: {
208
+ Subject: '5d032c92-9d5e-41eb-947a-ee5314ed0032',
209
+ Name: '[System]',
210
+ UserName: '[System]',
211
+ OnBehalfOf: undefined
212
+ },
213
+ ConcurrencyScopes: {}
214
+ });
215
+
216
+ const duration = Date.now() - startTime;
217
+ const result = (response.SequenceNumbers ?? []).map((sequenceNumber, index) =>
218
+ this.mapAppendResponse(
219
+ sequenceNumber,
220
+ response.ConstraintViolations ?? [],
221
+ (response.Errors ?? []).filter((_, errorIndex) => errorIndex === index)
222
+ )
223
+ );
224
+ span.setStatus({ code: SpanStatusCode.OK });
225
+
226
+ ChronicleMetrics.batchAppendsPerformed.add(1, batchMetricAttributes);
227
+ ChronicleMetrics.eventsAppended.add(events.length, batchMetricAttributes);
228
+ ChronicleMetrics.appendManyDuration.record(duration, batchMetricAttributes);
229
+
230
+ const totalViolations = result.reduce((sum, appendResult) => sum + appendResult.constraintViolations.length, 0);
231
+ if (totalViolations > 0) {
232
+ ChronicleMetrics.constraintViolations.add(totalViolations, {
233
+ 'chronicle.event_store': this._eventStoreName,
234
+ 'chronicle.namespace': this._namespace,
235
+ 'chronicle.event_sequence_id': this.id.value
236
+ });
237
+ }
238
+ const totalErrors = result.reduce((sum, appendResult) => sum + appendResult.errors.length, 0);
239
+ if (totalErrors > 0) {
240
+ ChronicleMetrics.appendErrors.add(totalErrors, {
241
+ 'chronicle.event_store': this._eventStoreName,
242
+ 'chronicle.namespace': this._namespace,
243
+ 'chronicle.event_sequence_id': this.id.value
244
+ });
245
+ }
246
+ return result;
247
+ } catch (error) {
248
+ span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
249
+ span.recordException(error as Error);
250
+ ChronicleMetrics.appendErrors.add(1, {
251
+ 'chronicle.event_store': this._eventStoreName,
252
+ 'chronicle.namespace': this._namespace,
253
+ 'chronicle.event_sequence_id': this.id.value
254
+ });
255
+ throw error;
256
+ } finally {
257
+ span.end();
258
+ }
259
+ });
260
+ }
261
+
262
+ /** @inheritdoc */
263
+ async getTailSequenceNumber(eventSourceId?: string): Promise<EventSequenceNumber> {
264
+ return ChronicleTracer.startActiveSpan('chronicle.event_sequences.get_tail_sequence_number', async span => {
265
+ span.setAttribute('chronicle.event_store', this._eventStoreName);
266
+ span.setAttribute('chronicle.namespace', this._namespace);
267
+ span.setAttribute('chronicle.event_sequence_id', this.id.value);
268
+ if (eventSourceId !== undefined) {
269
+ span.setAttribute('chronicle.event_source_id', eventSourceId);
270
+ }
271
+ try {
272
+ const response = await this._connection.eventSequences.getTailSequenceNumber({
273
+ EventStore: this._eventStoreName,
274
+ Namespace: this._namespace,
275
+ EventSequenceId: this.id.value,
276
+ EventSourceId: eventSourceId ?? '',
277
+ EventTypes: [],
278
+ EventSourceType: 'Default',
279
+ EventStreamId: '',
280
+ EventStreamType: 'Default'
281
+ });
282
+
283
+ const result = new EventSequenceNumber(response.SequenceNumber ?? 0);
284
+ span.setAttribute('chronicle.sequence_number', result.value);
285
+ span.setStatus({ code: SpanStatusCode.OK });
286
+ return result;
287
+ } catch (error) {
288
+ span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
289
+ span.recordException(error as Error);
290
+ throw error;
291
+ } finally {
292
+ span.end();
293
+ }
294
+ });
295
+ }
296
+
297
+ /** @inheritdoc */
298
+ async hasEventsFor(eventSourceId: string): Promise<boolean> {
299
+ return ChronicleTracer.startActiveSpan('chronicle.event_sequences.has_events_for', async span => {
300
+ span.setAttribute('chronicle.event_store', this._eventStoreName);
301
+ span.setAttribute('chronicle.namespace', this._namespace);
302
+ span.setAttribute('chronicle.event_sequence_id', this.id.value);
303
+ span.setAttribute('chronicle.event_source_id', eventSourceId);
304
+ try {
305
+ const response = await this._connection.eventSequences.hasEventsForEventSourceId({
306
+ EventStore: this._eventStoreName,
307
+ Namespace: this._namespace,
308
+ EventSequenceId: this.id.value,
309
+ EventSourceId: eventSourceId
310
+ });
311
+
312
+ const result = response.HasEvents ?? false;
313
+ span.setAttribute('chronicle.has_events', result);
314
+ span.setStatus({ code: SpanStatusCode.OK });
315
+ return result;
316
+ } catch (error) {
317
+ span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
318
+ span.recordException(error as Error);
319
+ throw error;
320
+ } finally {
321
+ span.end();
322
+ }
323
+ });
324
+ }
325
+
326
+ private mapAppendResponse(
327
+ sequenceNumber: number,
328
+ constraintViolations: Array<{ ConstraintId?: string; Message?: string; Details?: Record<string, string> }>,
329
+ errors: string[]
330
+ ): AppendResult {
331
+ const mappedViolations: ConstraintViolation[] = constraintViolations.map(violation => ({
332
+ constraintId: violation.ConstraintId ?? '',
333
+ message: violation.Message ?? '',
334
+ details: violation.Details ?? {}
335
+ }));
336
+
337
+ const mappedErrors = errors.map(message => ({ message }));
338
+
339
+ // The server uses ulong.MaxValue as a sentinel for "Unavailable" when an
340
+ // append fails (constraint violation, etc.). JS Number loses precision at
341
+ // that scale so we normalise anything >= MAX_SAFE_INTEGER to 0.
342
+ const safeSequenceNumber = sequenceNumber >= Number.MAX_SAFE_INTEGER ? 0 : sequenceNumber;
343
+
344
+ return {
345
+ sequenceNumber: new EventSequenceNumber(safeSequenceNumber),
346
+ constraintViolations: mappedViolations,
347
+ errors: mappedErrors,
348
+ isSuccess: mappedViolations.length === 0 && mappedErrors.length === 0
349
+ };
350
+ }
351
+ }
352
+
353
+ /**
354
+ * Converts a RFC 4122 Guid string into the protobuf Guid shape used by Chronicle contracts.
355
+ * @param guid - The Guid to convert.
356
+ * @returns The converted protobuf Guid with fixed64-safe hi/lo values.
357
+ */
358
+ function toContractsGuid(guid: Guid): ContractsGuid {
359
+ const hex = guid.toString().replace(/-/g, '');
360
+ const hi = BigInt(`0x${hex.substring(0, 16)}`);
361
+ const lo = BigInt(`0x${hex.substring(16, 32)}`);
362
+
363
+ // Mask to MAX_SAFE_INTEGER so the contracts package can decode the Guid
364
+ // from the response without a longToNumber overflow. Correlation IDs are
365
+ // opaque identifiers, so 52+52 bits of entropy is more than sufficient.
366
+ const safe = BigInt(Number.MAX_SAFE_INTEGER);
367
+ return {
368
+ hi: Number(hi & safe),
369
+ lo: Number(lo & safe)
370
+ };
371
+ }
372
+
@@ -0,0 +1,17 @@
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
+ * Represents the unique identifier of an event sequence.
6
+ */
7
+ export class EventSequenceId {
8
+ /** The identifier of the default event log sequence. */
9
+ static readonly eventLog = new EventSequenceId('event-log');
10
+
11
+ constructor(readonly value: string) {}
12
+
13
+ /** @inheritdoc */
14
+ toString(): string {
15
+ return this.value;
16
+ }
17
+ }
@@ -0,0 +1,38 @@
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
+ * Represents the sequence number of an event within an event sequence.
6
+ */
7
+ export class EventSequenceNumber {
8
+ /** Represents the first possible sequence number. */
9
+ static readonly first = new EventSequenceNumber(0);
10
+
11
+ /** Represents an unset sequence number. */
12
+ static readonly unset = new EventSequenceNumber(Number.MAX_SAFE_INTEGER);
13
+
14
+ constructor(readonly value: number) {}
15
+
16
+ /**
17
+ * Determines whether this sequence number comes before another.
18
+ * @param other - The other sequence number to compare with.
19
+ * @returns True if this sequence number is before the other.
20
+ */
21
+ isBefore(other: EventSequenceNumber): boolean {
22
+ return this.value < other.value;
23
+ }
24
+
25
+ /**
26
+ * Determines whether this sequence number comes after another.
27
+ * @param other - The other sequence number to compare with.
28
+ * @returns True if this sequence number is after the other.
29
+ */
30
+ isAfter(other: EventSequenceNumber): boolean {
31
+ return this.value > other.value;
32
+ }
33
+
34
+ /** @inheritdoc */
35
+ toString(): string {
36
+ return this.value.toString();
37
+ }
38
+ }
@@ -0,0 +1,10 @@
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 { IEventSequence } from './IEventSequence';
5
+
6
+ /**
7
+ * Defines the API surface for the event log, which is the default event sequence.
8
+ * The event log is the primary event sequence where all domain events are appended.
9
+ */
10
+ export interface IEventLog extends IEventSequence {}
@@ -0,0 +1,47 @@
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 { AppendOptions } from './AppendOptions';
5
+ import { AppendResult } from './AppendResult';
6
+ import { EventSequenceId } from './EventSequenceId';
7
+ import { EventSequenceNumber } from './EventSequenceNumber';
8
+
9
+ /**
10
+ * Defines the API surface for an event sequence.
11
+ */
12
+ export interface IEventSequence {
13
+ /** The unique identifier of this event sequence. */
14
+ readonly id: EventSequenceId;
15
+
16
+ /**
17
+ * Appends a single event to the event sequence.
18
+ * @param eventSourceId - The identifier of the event source.
19
+ * @param event - The event to append.
20
+ * @param options - Optional append options.
21
+ * @returns The result of the append operation.
22
+ */
23
+ append(eventSourceId: string, event: object, options?: AppendOptions): Promise<AppendResult>;
24
+
25
+ /**
26
+ * Appends multiple events to the event sequence.
27
+ * @param eventSourceId - The identifier of the event source.
28
+ * @param events - The events to append.
29
+ * @param options - Optional append options.
30
+ * @returns The results of the append operations, one per event.
31
+ */
32
+ appendMany(eventSourceId: string, events: object[], options?: AppendOptions): Promise<AppendResult[]>;
33
+
34
+ /**
35
+ * Gets the tail sequence number (the number of the most recently appended event).
36
+ * @param eventSourceId - Optional event source identifier to filter by.
37
+ * @returns The tail sequence number.
38
+ */
39
+ getTailSequenceNumber(eventSourceId?: string): Promise<EventSequenceNumber>;
40
+
41
+ /**
42
+ * Determines whether there are events for a given event source identifier.
43
+ * @param eventSourceId - The event source identifier to check.
44
+ * @returns True if there are events for the given event source.
45
+ */
46
+ hasEventsFor(eventSourceId: string): Promise<boolean>;
47
+ }
@@ -0,0 +1,13 @@
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 { EventSequenceId } from './EventSequenceId';
5
+ export { EventSequenceNumber } from './EventSequenceNumber';
6
+ export type { AppendError } from './AppendError';
7
+ export type { ConstraintViolation } from './ConstraintViolation';
8
+ export type { AppendResult } from './AppendResult';
9
+ export type { AppendOptions } from './AppendOptions';
10
+ export type { IEventSequence } from './IEventSequence';
11
+ export type { IEventLog } from './IEventLog';
12
+ export { EventSequence } from './EventSequence';
13
+ export { EventLog } from './EventLog';
package/EventStore.ts ADDED
@@ -0,0 +1,132 @@
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 { diag } from '@opentelemetry/api';
5
+ import { SpanStatusCode } from '@opentelemetry/api';
6
+ import { ChronicleConnection } from './connection';
7
+ import { ConnectionLifecycle } from './connection/ConnectionLifecycle';
8
+ import { EventLog } from './EventSequences/EventLog';
9
+ import { EventSequence } from './EventSequences/EventSequence';
10
+ import { EventSequenceId } from './EventSequences/EventSequenceId';
11
+ import { IEventLog } from './EventSequences/IEventLog';
12
+ import { IEventSequence } from './EventSequences/IEventSequence';
13
+ import { EventStoreName } from './EventStoreName';
14
+ import { EventStoreNamespaceName } from './EventStoreNamespaceName';
15
+ import { IEventStore } from './IEventStore';
16
+ import { EventTypes } from './Events/EventTypes';
17
+ import { IEventTypes } from './Events/IEventTypes';
18
+ import { Constraints } from './Events/Constraints/Constraints';
19
+ import { IConstraints } from './Events/Constraints/IConstraints';
20
+ import { Projections } from './Projections/Projections';
21
+ import { IProjections } from './Projections/IProjections';
22
+ import { Reactors } from './Reactors/Reactors';
23
+ import { IReactors } from './Reactors/IReactors';
24
+ import { Reducers } from './Reducers/Reducers';
25
+ import { IReducers } from './Reducers/IReducers';
26
+ import { ChronicleTracer } from './Tracing';
27
+ import { DefaultClientArtifactsProvider } from './artifacts/DefaultClientArtifactsProvider';
28
+
29
+ /**
30
+ * Implements {@link IEventStore} by communicating with the Chronicle Kernel
31
+ * via gRPC using the provided {@link ChronicleConnection}.
32
+ */
33
+ export class EventStore implements IEventStore {
34
+ private readonly _logger = diag.createComponentLogger({
35
+ namespace: '@cratis/chronicle/EventStore'
36
+ });
37
+
38
+ readonly eventLog: IEventLog;
39
+ readonly eventTypes: IEventTypes;
40
+ readonly constraints: IConstraints;
41
+ readonly projections: IProjections;
42
+ readonly reactors: IReactors;
43
+ readonly reducers: IReducers;
44
+
45
+ private readonly _sequences: Map<string, IEventSequence> = new Map();
46
+
47
+ constructor(
48
+ readonly name: EventStoreName,
49
+ readonly namespace: EventStoreNamespaceName,
50
+ private readonly _connection: ChronicleConnection,
51
+ lifecycle: ConnectionLifecycle
52
+ ) {
53
+ this.eventLog = new EventLog(name.value, namespace.value, _connection);
54
+ this._sequences.set(EventSequenceId.eventLog.value, this.eventLog);
55
+
56
+ const artifacts = DefaultClientArtifactsProvider.default;
57
+ this.eventTypes = new EventTypes(name.value, _connection, artifacts);
58
+ this.constraints = new Constraints(name.value, _connection, artifacts);
59
+ this.projections = new Projections(name.value, _connection, artifacts);
60
+ this.reactors = new Reactors(artifacts, _connection, name.value, namespace.value, lifecycle);
61
+ this.reducers = new Reducers(artifacts, _connection, name.value, namespace.value, lifecycle);
62
+ }
63
+
64
+ /**
65
+ * Registers all discovered artifacts with the Chronicle Kernel.
66
+ * Called on initial connect and on reconnect.
67
+ * @returns A promise that resolves when all registrations are complete.
68
+ */
69
+ async registerArtifacts(): Promise<void> {
70
+ this._logger.debug('Discovering artifacts for registration', {
71
+ eventStore: this.name.value,
72
+ namespace: this.namespace.value
73
+ });
74
+
75
+ await this.eventTypes.discover();
76
+ await Promise.all([
77
+ this.constraints.discover(),
78
+ this.projections.discover(),
79
+ this.reactors.discover(),
80
+ this.reducers.discover()
81
+ ]);
82
+
83
+ this._logger.debug('Registering discovered artifacts', {
84
+ eventStore: this.name.value,
85
+ namespace: this.namespace.value
86
+ });
87
+
88
+ await this.eventTypes.register();
89
+ await Promise.all([
90
+ this.constraints.register(),
91
+ this.projections.register(),
92
+ this.reactors.register(),
93
+ this.reducers.register()
94
+ ]);
95
+
96
+ this._logger.info('Artifact registration completed', {
97
+ eventStore: this.name.value,
98
+ namespace: this.namespace.value
99
+ });
100
+ }
101
+
102
+ /** @inheritdoc */
103
+ getEventSequence(id: EventSequenceId): IEventSequence {
104
+ const existing = this._sequences.get(id.value);
105
+ if (existing) {
106
+ return existing;
107
+ }
108
+
109
+ const sequence = new EventSequence(id, this.name.value, this.namespace.value, this._connection);
110
+ this._sequences.set(id.value, sequence);
111
+ return sequence;
112
+ }
113
+
114
+ /** @inheritdoc */
115
+ async getNamespaces(): Promise<EventStoreNamespaceName[]> {
116
+ return ChronicleTracer.startActiveSpan('chronicle.event_store.get_namespaces', async span => {
117
+ span.setAttribute('chronicle.event_store', this.name.value);
118
+ try {
119
+ const response = await this._connection.namespaces.getNamespaces({ EventStore: this.name.value });
120
+ const result = (response.items ?? []).map((namespace: string) => new EventStoreNamespaceName(namespace));
121
+ span.setStatus({ code: SpanStatusCode.OK });
122
+ return result;
123
+ } catch (error) {
124
+ span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
125
+ span.recordException(error as Error);
126
+ throw error;
127
+ } finally {
128
+ span.end();
129
+ }
130
+ });
131
+ }
132
+ }
@@ -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
+ * Represents the name of an event store.
6
+ */
7
+ export class EventStoreName {
8
+ constructor(readonly value: string) {}
9
+
10
+ /** @inheritdoc */
11
+ toString(): string {
12
+ return this.value;
13
+ }
14
+ }
@@ -0,0 +1,17 @@
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
+ * Represents the name of a namespace within an event store.
6
+ */
7
+ export class EventStoreNamespaceName {
8
+ /** The default namespace name. */
9
+ static readonly default = new EventStoreNamespaceName('Default');
10
+
11
+ constructor(readonly value: string) {}
12
+
13
+ /** @inheritdoc */
14
+ toString(): string {
15
+ return this.value;
16
+ }
17
+ }