@cratis/chronicle 3.0.0 → 3.1.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 (338) hide show
  1. package/ChronicleClient.ts +4 -3
  2. package/EventStore.ts +20 -3
  3. package/IEventStore.ts +16 -0
  4. package/README.md +40 -28
  5. package/auditing/CausationType.ts +10 -0
  6. package/compliance/ComplianceContracts.ts +84 -0
  7. package/compliance/IPIIManager.ts +17 -0
  8. package/compliance/PIIManager.ts +31 -0
  9. package/compliance/index.ts +2 -0
  10. package/connection/ChronicleConnection.ts +7 -1
  11. package/connection/ChronicleServices.ts +2 -0
  12. package/connection/Guid.ts +18 -0
  13. package/connection/callResults.spec.ts +90 -0
  14. package/connection/callResults.ts +112 -0
  15. package/dist/ChronicleClient.d.ts.map +1 -1
  16. package/dist/ChronicleClient.js +4 -3
  17. package/dist/ChronicleClient.js.map +1 -1
  18. package/dist/EventStore.d.ts +8 -0
  19. package/dist/EventStore.d.ts.map +1 -1
  20. package/dist/EventStore.js +16 -3
  21. package/dist/EventStore.js.map +1 -1
  22. package/dist/IEventStore.d.ts +12 -0
  23. package/dist/IEventStore.d.ts.map +1 -1
  24. package/dist/auditing/CausationType.d.ts +8 -0
  25. package/dist/auditing/CausationType.d.ts.map +1 -1
  26. package/dist/auditing/CausationType.js +8 -0
  27. package/dist/auditing/CausationType.js.map +1 -1
  28. package/dist/compliance/ComplianceContracts.d.ts +40 -0
  29. package/dist/compliance/ComplianceContracts.d.ts.map +1 -1
  30. package/dist/compliance/ComplianceContracts.js +71 -0
  31. package/dist/compliance/ComplianceContracts.js.map +1 -1
  32. package/dist/compliance/IPIIManager.d.ts +15 -0
  33. package/dist/compliance/IPIIManager.d.ts.map +1 -0
  34. package/dist/compliance/IPIIManager.js +4 -0
  35. package/dist/compliance/IPIIManager.js.map +1 -0
  36. package/dist/compliance/PIIManager.d.ts +20 -0
  37. package/dist/compliance/PIIManager.d.ts.map +1 -0
  38. package/dist/compliance/PIIManager.js +30 -0
  39. package/dist/compliance/PIIManager.js.map +1 -0
  40. package/dist/compliance/index.d.ts +2 -0
  41. package/dist/compliance/index.d.ts.map +1 -1
  42. package/dist/compliance/index.js +1 -0
  43. package/dist/compliance/index.js.map +1 -1
  44. package/dist/connection/ChronicleConnection.d.ts +1 -0
  45. package/dist/connection/ChronicleConnection.d.ts.map +1 -1
  46. package/dist/connection/ChronicleConnection.js +6 -1
  47. package/dist/connection/ChronicleConnection.js.map +1 -1
  48. package/dist/connection/ChronicleServices.d.ts +2 -0
  49. package/dist/connection/ChronicleServices.d.ts.map +1 -1
  50. package/dist/connection/Guid.d.ts +5 -0
  51. package/dist/connection/Guid.d.ts.map +1 -1
  52. package/dist/connection/Guid.js +15 -0
  53. package/dist/connection/Guid.js.map +1 -1
  54. package/dist/connection/callResults.d.ts +69 -0
  55. package/dist/connection/callResults.d.ts.map +1 -0
  56. package/dist/connection/callResults.js +74 -0
  57. package/dist/connection/callResults.js.map +1 -0
  58. package/dist/eventSequences/AppendOperationsBroadcaster.d.ts +16 -0
  59. package/dist/eventSequences/AppendOperationsBroadcaster.d.ts.map +1 -0
  60. package/dist/eventSequences/AppendOperationsBroadcaster.js +77 -0
  61. package/dist/eventSequences/AppendOperationsBroadcaster.js.map +1 -0
  62. package/dist/eventSequences/AppendOptions.d.ts +7 -0
  63. package/dist/eventSequences/AppendOptions.d.ts.map +1 -1
  64. package/dist/eventSequences/AppendResult.d.ts +14 -0
  65. package/dist/eventSequences/AppendResult.d.ts.map +1 -1
  66. package/dist/eventSequences/AppendedEventWithResult.d.ts +13 -0
  67. package/dist/eventSequences/AppendedEventWithResult.d.ts.map +1 -0
  68. package/dist/eventSequences/AppendedEventWithResult.js +4 -0
  69. package/dist/eventSequences/AppendedEventWithResult.js.map +1 -0
  70. package/dist/eventSequences/CompleteStreamError.d.ts +17 -0
  71. package/dist/eventSequences/CompleteStreamError.d.ts.map +1 -0
  72. package/dist/eventSequences/CompleteStreamError.js +20 -0
  73. package/dist/eventSequences/CompleteStreamError.js.map +1 -0
  74. package/dist/eventSequences/CompleteStreamResult.d.ts +14 -0
  75. package/dist/eventSequences/CompleteStreamResult.d.ts.map +1 -0
  76. package/dist/eventSequences/CompleteStreamResult.js +4 -0
  77. package/dist/eventSequences/CompleteStreamResult.js.map +1 -0
  78. package/dist/eventSequences/ConcurrencyViolation.d.ts +13 -0
  79. package/dist/eventSequences/ConcurrencyViolation.d.ts.map +1 -0
  80. package/dist/eventSequences/ConcurrencyViolation.js +4 -0
  81. package/dist/eventSequences/ConcurrencyViolation.js.map +1 -0
  82. package/dist/eventSequences/EventForEventSourceId.d.ts +8 -0
  83. package/dist/eventSequences/EventForEventSourceId.d.ts.map +1 -1
  84. package/dist/eventSequences/EventSequence.d.ts +35 -1
  85. package/dist/eventSequences/EventSequence.d.ts.map +1 -1
  86. package/dist/eventSequences/EventSequence.js +350 -19
  87. package/dist/eventSequences/EventSequence.js.map +1 -1
  88. package/dist/eventSequences/IEventSequence.d.ts +85 -1
  89. package/dist/eventSequences/IEventSequence.d.ts.map +1 -1
  90. package/dist/eventSequences/WaitForCompletionResult.d.ts +11 -0
  91. package/dist/eventSequences/WaitForCompletionResult.d.ts.map +1 -0
  92. package/dist/eventSequences/WaitForCompletionResult.js +4 -0
  93. package/dist/eventSequences/WaitForCompletionResult.js.map +1 -0
  94. package/dist/eventSequences/index.d.ts +5 -0
  95. package/dist/eventSequences/index.d.ts.map +1 -1
  96. package/dist/eventSequences/index.js +1 -0
  97. package/dist/eventSequences/index.js.map +1 -1
  98. package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts +3 -0
  99. package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts.map +1 -1
  100. package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js +9 -0
  101. package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js.map +1 -1
  102. package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.d.ts +6 -0
  103. package/dist/eventStoreSubscriptions/IEventStoreSubscriptions.d.ts.map +1 -1
  104. package/dist/eventStoreSubscriptions/contracts.d.ts +18 -0
  105. package/dist/eventStoreSubscriptions/contracts.d.ts.map +1 -1
  106. package/dist/eventStoreSubscriptions/contracts.js +106 -0
  107. package/dist/eventStoreSubscriptions/contracts.js.map +1 -1
  108. package/dist/events/constraints/Constraints.js +4 -4
  109. package/dist/events/constraints/Constraints.js.map +1 -1
  110. package/dist/externalServices/ExternalServiceBuilder.d.ts +42 -0
  111. package/dist/externalServices/ExternalServiceBuilder.d.ts.map +1 -0
  112. package/dist/externalServices/ExternalServiceBuilder.js +110 -0
  113. package/dist/externalServices/ExternalServiceBuilder.js.map +1 -0
  114. package/dist/externalServices/ExternalServices.d.ts +19 -0
  115. package/dist/externalServices/ExternalServices.d.ts.map +1 -0
  116. package/dist/externalServices/ExternalServices.js +30 -0
  117. package/dist/externalServices/ExternalServices.js.map +1 -0
  118. package/dist/externalServices/ExternalServicesContracts.d.ts +137 -0
  119. package/dist/externalServices/ExternalServicesContracts.d.ts.map +1 -0
  120. package/dist/externalServices/ExternalServicesContracts.js +654 -0
  121. package/dist/externalServices/ExternalServicesContracts.js.map +1 -0
  122. package/dist/externalServices/IExternalServiceBuilder.d.ts +67 -0
  123. package/dist/externalServices/IExternalServiceBuilder.d.ts.map +1 -0
  124. package/dist/externalServices/IExternalServiceBuilder.js +4 -0
  125. package/dist/externalServices/IExternalServiceBuilder.js.map +1 -0
  126. package/dist/externalServices/IExternalServices.d.ts +13 -0
  127. package/dist/externalServices/IExternalServices.d.ts.map +1 -0
  128. package/dist/externalServices/IExternalServices.js +4 -0
  129. package/dist/externalServices/IExternalServices.js.map +1 -0
  130. package/dist/externalServices/index.d.ts +5 -0
  131. package/dist/externalServices/index.d.ts.map +1 -0
  132. package/dist/externalServices/index.js +5 -0
  133. package/dist/externalServices/index.js.map +1 -0
  134. package/dist/identities/IIdentityManager.d.ts +17 -0
  135. package/dist/identities/IIdentityManager.d.ts.map +1 -0
  136. package/dist/identities/IIdentityManager.js +4 -0
  137. package/dist/identities/IIdentityManager.js.map +1 -0
  138. package/dist/identities/IdentityManager.d.ts +20 -0
  139. package/dist/identities/IdentityManager.d.ts.map +1 -0
  140. package/dist/identities/IdentityManager.js +31 -0
  141. package/dist/identities/IdentityManager.js.map +1 -0
  142. package/dist/identities/index.d.ts +3 -0
  143. package/dist/identities/index.d.ts.map +1 -0
  144. package/dist/identities/index.js +4 -0
  145. package/dist/identities/index.js.map +1 -0
  146. package/dist/index.d.ts +5 -1
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +5 -1
  149. package/dist/index.js.map +1 -1
  150. package/dist/jobs/IJobs.d.ts +4 -4
  151. package/dist/jobs/IJobs.d.ts.map +1 -1
  152. package/dist/jobs/Jobs.d.ts +4 -4
  153. package/dist/jobs/Jobs.d.ts.map +1 -1
  154. package/dist/jobs/Jobs.js +12 -10
  155. package/dist/jobs/Jobs.js.map +1 -1
  156. package/dist/observation/FailedPartition.d.ts +15 -0
  157. package/dist/observation/FailedPartition.d.ts.map +1 -0
  158. package/dist/observation/FailedPartition.js +4 -0
  159. package/dist/observation/FailedPartition.js.map +1 -0
  160. package/dist/observation/FailedPartitionAttempt.d.ts +15 -0
  161. package/dist/observation/FailedPartitionAttempt.d.ts.map +1 -0
  162. package/dist/observation/FailedPartitionAttempt.js +4 -0
  163. package/dist/observation/FailedPartitionAttempt.js.map +1 -0
  164. package/dist/observation/FailedPartitions.d.ts +24 -0
  165. package/dist/observation/FailedPartitions.d.ts.map +1 -0
  166. package/dist/observation/FailedPartitions.js +39 -0
  167. package/dist/observation/FailedPartitions.js.map +1 -0
  168. package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.d.ts +19 -0
  169. package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.d.ts.map +1 -0
  170. package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.js +4 -0
  171. package/dist/observation/ICanBeNotifiedWhenPartitionReplayed.js.map +1 -0
  172. package/dist/observation/ICanBeNotifiedWhenReplay.d.ts +17 -0
  173. package/dist/observation/ICanBeNotifiedWhenReplay.d.ts.map +1 -0
  174. package/dist/observation/ICanBeNotifiedWhenReplay.js +4 -0
  175. package/dist/observation/ICanBeNotifiedWhenReplay.js.map +1 -0
  176. package/dist/observation/IFailedPartitions.d.ts +18 -0
  177. package/dist/observation/IFailedPartitions.d.ts.map +1 -0
  178. package/dist/observation/IFailedPartitions.js +4 -0
  179. package/dist/observation/IFailedPartitions.js.map +1 -0
  180. package/dist/observation/index.d.ts +6 -0
  181. package/dist/observation/index.d.ts.map +1 -1
  182. package/dist/observation/index.js +1 -0
  183. package/dist/observation/index.js.map +1 -1
  184. package/dist/observation/notifyReplayLifecycle.d.ts +13 -0
  185. package/dist/observation/notifyReplayLifecycle.d.ts.map +1 -0
  186. package/dist/observation/notifyReplayLifecycle.js +54 -0
  187. package/dist/observation/notifyReplayLifecycle.js.map +1 -0
  188. package/dist/observation/toClientFailedPartition.d.ts +9 -0
  189. package/dist/observation/toClientFailedPartition.d.ts.map +1 -0
  190. package/dist/observation/toClientFailedPartition.js +23 -0
  191. package/dist/observation/toClientFailedPartition.js.map +1 -0
  192. package/dist/projections/Projections.d.ts +0 -4
  193. package/dist/projections/Projections.d.ts.map +1 -1
  194. package/dist/projections/Projections.js +25 -103
  195. package/dist/projections/Projections.js.map +1 -1
  196. package/dist/projections/declarative/AddBuilder.d.ts +17 -0
  197. package/dist/projections/declarative/AddBuilder.d.ts.map +1 -0
  198. package/dist/projections/declarative/AddBuilder.js +28 -0
  199. package/dist/projections/declarative/AddBuilder.js.map +1 -0
  200. package/dist/projections/declarative/AddChildBuilder.d.ts +56 -0
  201. package/dist/projections/declarative/AddChildBuilder.d.ts.map +1 -0
  202. package/dist/projections/declarative/AddChildBuilder.js +72 -0
  203. package/dist/projections/declarative/AddChildBuilder.js.map +1 -0
  204. package/dist/projections/declarative/ChildrenBuilder.d.ts +28 -0
  205. package/dist/projections/declarative/ChildrenBuilder.d.ts.map +1 -0
  206. package/dist/projections/declarative/ChildrenBuilder.js +72 -0
  207. package/dist/projections/declarative/ChildrenBuilder.js.map +1 -0
  208. package/dist/projections/declarative/CompositeKeyBuilder.d.ts +16 -0
  209. package/dist/projections/declarative/CompositeKeyBuilder.d.ts.map +1 -0
  210. package/dist/projections/declarative/CompositeKeyBuilder.js +29 -0
  211. package/dist/projections/declarative/CompositeKeyBuilder.js.map +1 -0
  212. package/dist/projections/declarative/FromBuilder.d.ts +8 -6
  213. package/dist/projections/declarative/FromBuilder.d.ts.map +1 -1
  214. package/dist/projections/declarative/FromBuilder.js +44 -14
  215. package/dist/projections/declarative/FromBuilder.js.map +1 -1
  216. package/dist/projections/declarative/ICompositeKeyBuilder.d.ts +5 -0
  217. package/dist/projections/declarative/ICompositeKeyBuilder.d.ts.map +1 -1
  218. package/dist/projections/declarative/JoinBuilder.d.ts +7 -5
  219. package/dist/projections/declarative/JoinBuilder.d.ts.map +1 -1
  220. package/dist/projections/declarative/JoinBuilder.js +50 -16
  221. package/dist/projections/declarative/JoinBuilder.js.map +1 -1
  222. package/dist/projections/declarative/NestedBuilder.d.ts +24 -0
  223. package/dist/projections/declarative/NestedBuilder.d.ts.map +1 -0
  224. package/dist/projections/declarative/NestedBuilder.js +60 -0
  225. package/dist/projections/declarative/NestedBuilder.js.map +1 -0
  226. package/dist/projections/declarative/ProjectionBuilderCore.d.ts +127 -0
  227. package/dist/projections/declarative/ProjectionBuilderCore.d.ts.map +1 -0
  228. package/dist/projections/declarative/ProjectionBuilderCore.js +180 -0
  229. package/dist/projections/declarative/ProjectionBuilderCore.js.map +1 -0
  230. package/dist/projections/declarative/ProjectionBuilderFor.d.ts +6 -32
  231. package/dist/projections/declarative/ProjectionBuilderFor.d.ts.map +1 -1
  232. package/dist/projections/declarative/ProjectionBuilderFor.js +24 -118
  233. package/dist/projections/declarative/ProjectionBuilderFor.js.map +1 -1
  234. package/dist/projections/declarative/SubtractBuilder.d.ts +17 -0
  235. package/dist/projections/declarative/SubtractBuilder.d.ts.map +1 -0
  236. package/dist/projections/declarative/SubtractBuilder.js +28 -0
  237. package/dist/projections/declarative/SubtractBuilder.js.map +1 -0
  238. package/dist/projections/declarative/index.d.ts +9 -0
  239. package/dist/projections/declarative/index.d.ts.map +1 -1
  240. package/dist/projections/declarative/index.js +8 -0
  241. package/dist/projections/declarative/index.js.map +1 -1
  242. package/dist/projections/modelBound/childrenAndNestedBuilder.d.ts +90 -0
  243. package/dist/projections/modelBound/childrenAndNestedBuilder.d.ts.map +1 -0
  244. package/dist/projections/modelBound/childrenAndNestedBuilder.js +290 -0
  245. package/dist/projections/modelBound/childrenAndNestedBuilder.js.map +1 -0
  246. package/dist/reactors/ReactorSideEffects.d.ts +29 -0
  247. package/dist/reactors/ReactorSideEffects.d.ts.map +1 -0
  248. package/dist/reactors/ReactorSideEffects.js +70 -0
  249. package/dist/reactors/ReactorSideEffects.js.map +1 -0
  250. package/dist/reactors/Reactors.d.ts +4 -1
  251. package/dist/reactors/Reactors.d.ts.map +1 -1
  252. package/dist/reactors/Reactors.js +23 -4
  253. package/dist/reactors/Reactors.js.map +1 -1
  254. package/dist/reducers/Reducers.d.ts.map +1 -1
  255. package/dist/reducers/Reducers.js +15 -3
  256. package/dist/reducers/Reducers.js.map +1 -1
  257. package/dist/reducers/reducer.d.ts +9 -1
  258. package/dist/reducers/reducer.d.ts.map +1 -1
  259. package/dist/reducers/reducer.js +4 -2
  260. package/dist/reducers/reducer.js.map +1 -1
  261. package/dist/transactions/IUnitOfWork.d.ts +18 -0
  262. package/dist/transactions/IUnitOfWork.d.ts.map +1 -1
  263. package/dist/transactions/UnitOfWork.d.ts +9 -0
  264. package/dist/transactions/UnitOfWork.d.ts.map +1 -1
  265. package/dist/transactions/UnitOfWork.js +14 -0
  266. package/dist/transactions/UnitOfWork.js.map +1 -1
  267. package/dist/tsconfig.tsbuildinfo +1 -1
  268. package/eventSequences/AppendOperationsBroadcaster.ts +83 -0
  269. package/eventSequences/AppendOptions.ts +8 -0
  270. package/eventSequences/AppendResult.ts +16 -0
  271. package/eventSequences/AppendedEventWithResult.ts +17 -0
  272. package/eventSequences/CompleteStreamError.ts +20 -0
  273. package/eventSequences/CompleteStreamResult.ts +13 -0
  274. package/eventSequences/ConcurrencyViolation.ts +18 -0
  275. package/eventSequences/EventForEventSourceId.ts +12 -0
  276. package/eventSequences/EventSequence.spec.ts +588 -0
  277. package/eventSequences/EventSequence.ts +406 -20
  278. package/eventSequences/IEventSequence.ts +109 -1
  279. package/eventSequences/WaitForCompletionResult.ts +15 -0
  280. package/eventSequences/index.ts +5 -0
  281. package/eventStoreSubscriptions/EventStoreSubscriptions.spec.ts +52 -0
  282. package/eventStoreSubscriptions/EventStoreSubscriptions.ts +19 -1
  283. package/eventStoreSubscriptions/IEventStoreSubscriptions.ts +7 -0
  284. package/eventStoreSubscriptions/contracts.ts +126 -0
  285. package/events/constraints/Constraints.ts +4 -4
  286. package/externalServices/ExternalServiceBuilder.ts +128 -0
  287. package/externalServices/ExternalServices.ts +34 -0
  288. package/externalServices/ExternalServicesContracts.ts +709 -0
  289. package/externalServices/IExternalServiceBuilder.ts +76 -0
  290. package/externalServices/IExternalServices.ts +16 -0
  291. package/externalServices/index.ts +7 -0
  292. package/identities/IIdentityManager.ts +19 -0
  293. package/identities/IdentityManager.ts +32 -0
  294. package/identities/index.ts +5 -0
  295. package/index.ts +6 -0
  296. package/jobs/IJobs.ts +4 -4
  297. package/jobs/Jobs.ts +16 -14
  298. package/observation/FailedPartition.ts +21 -0
  299. package/observation/FailedPartitionAttempt.ts +21 -0
  300. package/observation/FailedPartitions.spec.ts +75 -0
  301. package/observation/FailedPartitions.ts +44 -0
  302. package/observation/ICanBeNotifiedWhenPartitionReplayed.ts +22 -0
  303. package/observation/ICanBeNotifiedWhenReplay.ts +20 -0
  304. package/observation/IFailedPartitions.ts +22 -0
  305. package/observation/index.ts +6 -0
  306. package/observation/notifyReplayLifecycle.spec.ts +98 -0
  307. package/observation/notifyReplayLifecycle.ts +61 -0
  308. package/observation/toClientFailedPartition.ts +26 -0
  309. package/package.json +28 -3
  310. package/projections/Projections.childrenAndNested.spec.ts +188 -0
  311. package/projections/Projections.spec.ts +131 -0
  312. package/projections/Projections.ts +37 -119
  313. package/projections/declarative/AddBuilder.ts +28 -0
  314. package/projections/declarative/AddChildBuilder.ts +97 -0
  315. package/projections/declarative/ChildrenBuilder.spec.ts +157 -0
  316. package/projections/declarative/ChildrenBuilder.ts +90 -0
  317. package/projections/declarative/CompositeKeyBuilder.spec.ts +117 -0
  318. package/projections/declarative/CompositeKeyBuilder.ts +38 -0
  319. package/projections/declarative/FromBuilder.ts +60 -15
  320. package/projections/declarative/ICompositeKeyBuilder.ts +6 -0
  321. package/projections/declarative/JoinBuilder.ts +66 -17
  322. package/projections/declarative/NestedBuilder.ts +76 -0
  323. package/projections/declarative/ProjectionBuilderCore.ts +257 -0
  324. package/projections/declarative/ProjectionBuilderFor.spec.ts +115 -0
  325. package/projections/declarative/ProjectionBuilderFor.ts +29 -168
  326. package/projections/declarative/SubtractBuilder.ts +28 -0
  327. package/projections/declarative/index.ts +9 -0
  328. package/projections/modelBound/childrenAndNestedBuilder.ts +354 -0
  329. package/reactors/ReactorSideEffects.spec.ts +182 -0
  330. package/reactors/ReactorSideEffects.ts +97 -0
  331. package/reactors/Reactors.ts +29 -4
  332. package/reducers/Reducers.spec.ts +87 -0
  333. package/reducers/Reducers.ts +15 -3
  334. package/reducers/reducer.spec.ts +40 -0
  335. package/reducers/reducer.ts +11 -2
  336. package/transactions/IUnitOfWork.ts +21 -0
  337. package/transactions/UnitOfWork.spec.ts +82 -0
  338. package/transactions/UnitOfWork.ts +20 -0
@@ -1,7 +1,11 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
3
  import { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
4
+ import { AddBuilder } from './AddBuilder';
5
+ import { AddChildBuilder } from './AddChildBuilder';
6
+ import { CompositeKeyBuilder } from './CompositeKeyBuilder';
4
7
  import { SetBuilder } from './SetBuilder';
8
+ import { SubtractBuilder } from './SubtractBuilder';
5
9
  /**
6
10
  * Concrete implementation of {@link IJoinBuilder}.
7
11
  * @template TReadModel - The read model type.
@@ -11,7 +15,8 @@ export class JoinBuilder {
11
15
  entry = {
12
16
  on: '',
13
17
  properties: {},
14
- key: '$eventSourceId'
18
+ key: '$eventSourceId',
19
+ children: []
15
20
  };
16
21
  /** @inheritdoc */
17
22
  on(readModelPropertyAccessor) {
@@ -44,19 +49,28 @@ export class JoinBuilder {
44
49
  }
45
50
  /** @inheritdoc */
46
51
  usingParentKey(_keyAccessor) {
47
- throw new Error('usingParentKey is not supported for join mappings.');
52
+ // A join's wire definition (JoinDefinition) has no ParentKey slot - the C# client
53
+ // accepts this call too (it is inherited from the shared key-builder base) but its
54
+ // JoinBuilder.Build() only ever reads On/Properties/Key, so the value is silently
55
+ // unused there as well. Matching that: accept the call, but it has no effect.
56
+ return this;
48
57
  }
49
58
  /** @inheritdoc */
50
59
  usingParentKeyFromContext(_contextPropertyName) {
51
- throw new Error('usingParentKeyFromContext is not supported for join mappings.');
60
+ // See usingParentKey - accepted for interface parity with From, no wire effect for Join.
61
+ return this;
52
62
  }
53
63
  /** @inheritdoc */
54
- usingCompositeKey(_builderCallback) {
55
- throw new Error('usingCompositeKey is not implemented yet.');
64
+ usingCompositeKey(builderCallback) {
65
+ const compositeKeyBuilder = new CompositeKeyBuilder();
66
+ builderCallback(compositeKeyBuilder);
67
+ this.entry.key = compositeKeyBuilder.build();
68
+ return this;
56
69
  }
57
70
  /** @inheritdoc */
58
71
  usingParentCompositeKey(_builderCallback) {
59
- throw new Error('usingParentCompositeKey is not supported for join mappings.');
72
+ // See usingParentKey - accepted for interface parity with From, no wire effect for Join.
73
+ return this;
60
74
  }
61
75
  /** @inheritdoc */
62
76
  usingConstantKey(value) {
@@ -65,7 +79,8 @@ export class JoinBuilder {
65
79
  }
66
80
  /** @inheritdoc */
67
81
  usingConstantParentKey(_value) {
68
- throw new Error('usingConstantParentKey is not supported for join mappings.');
82
+ // See usingParentKey - accepted for interface parity with From, no wire effect for Join.
83
+ return this;
69
84
  }
70
85
  /** @inheritdoc */
71
86
  increment(readModelPropertyAccessor) {
@@ -84,24 +99,43 @@ export class JoinBuilder {
84
99
  return this;
85
100
  }
86
101
  /** @inheritdoc */
87
- add(_readModelPropertyAccessor) {
88
- throw new Error('add is not implemented yet.');
102
+ add(readModelPropertyAccessor) {
103
+ const handler = new PropertyPathResolverProxyHandler();
104
+ const proxy = new Proxy({}, handler);
105
+ readModelPropertyAccessor(proxy);
106
+ return new AddBuilder(handler.property, (property, expression) => { this.entry.properties[property] = expression; }, this);
89
107
  }
90
108
  /** @inheritdoc */
91
- subtract(_readModelPropertyAccessor) {
92
- throw new Error('subtract is not implemented yet.');
109
+ subtract(readModelPropertyAccessor) {
110
+ const handler = new PropertyPathResolverProxyHandler();
111
+ const proxy = new Proxy({}, handler);
112
+ readModelPropertyAccessor(proxy);
113
+ return new SubtractBuilder(handler.property, (property, expression) => { this.entry.properties[property] = expression; }, this);
93
114
  }
94
115
  /** @inheritdoc */
95
- count(_readModelPropertyAccessor) {
96
- throw new Error('count is not implemented yet.');
116
+ count(readModelPropertyAccessor) {
117
+ const handler = new PropertyPathResolverProxyHandler();
118
+ const proxy = new Proxy({}, handler);
119
+ readModelPropertyAccessor(proxy);
120
+ this.entry.properties[handler.property] = '$count';
121
+ return this;
97
122
  }
98
123
  /** @inheritdoc */
99
- addChild(_targetPropertyAccessor, _eventPropertyAccessorOrBuilderCallback) {
100
- throw new Error('addChild is not implemented yet.');
124
+ addChild(targetPropertyAccessor, eventPropertyAccessorOrBuilderCallback) {
125
+ const targetHandler = new PropertyPathResolverProxyHandler();
126
+ const targetProxy = new Proxy({}, targetHandler);
127
+ targetPropertyAccessor(targetProxy);
128
+ const probe = new AddChildBuilder();
129
+ const probeProxy = new Proxy({}, probe);
130
+ eventPropertyAccessorOrBuilderCallback(probeProxy);
131
+ this.entry.children.push(probe.usedAsBuilder
132
+ ? { targetProperty: targetHandler.property, identifiedBy: probe.identifiedByProperty, usingKey: probe.usingKeyProperty }
133
+ : { targetProperty: targetHandler.property, fromEventProperty: probe.capturedEventProperty });
134
+ return this;
101
135
  }
102
136
  /** @inheritdoc */
103
137
  setThisValue() {
104
- throw new Error('setThisValue is not implemented yet.');
138
+ return new SetBuilder('$this', (rp, expr) => { this.entry.properties[rp] = expr; }, this);
105
139
  }
106
140
  }
107
141
  //# sourceMappingURL=JoinBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JoinBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/JoinBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAO1F,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW1C;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACX,KAAK,GAAc;QACxB,EAAE,EAAE,EAAE;QACN,UAAU,EAAE,EAAE;QACd,GAAG,EAAE,gBAAgB;KACxB,CAAC;IAEF,kBAAkB;IAClB,EAAE,CAAC,yBAAuD;QACtD,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,yBAAyB,CAAC,KAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,GAAG,CAAC,yBAAuD;QACvD,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,yBAAyB,CAAC,KAAmB,CAAC,CAAC;QAC/C,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;QAE3C,OAAO,IAAI,UAAU,CACjB,iBAAiB,EACjB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAC3E,IAAI,CACP,CAAC;IACN,CAAC;IAED,kBAAkB;IAClB,QAAQ,CAAC,WAAqC;QAC1C,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,WAAW,CAAC,KAAe,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,mBAAmB,CAAC,mBAA2B;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,mBAAmB,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,cAAc,CAAC,YAAsC;QACjD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,CAAC;IAED,kBAAkB;IAClB,yBAAyB,CAAC,oBAA4B;QAClD,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACrF,CAAC;IAED,kBAAkB;IAClB,iBAAiB,CAAW,gBAA2E;QACnG,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACjE,CAAC;IAED,kBAAkB;IAClB,uBAAuB,CAAW,gBAA2E;QACzG,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACnF,CAAC;IAED,kBAAkB;IAClB,gBAAgB,CAAC,KAAa;QAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,sBAAsB,CAAC,MAAc;QACjC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAClF,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,yBAAuD;QAC7D,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,yBAAyB,CAAC,KAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QACvD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,SAAS,CAAC,yBAAuD;QAC7D,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,yBAAyB,CAAC,KAAmB,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QACvD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,GAAG,CAAC,0BAAwD;QACxD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB;IAClB,QAAQ,CAAC,0BAAwD;QAC7D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACxD,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,0BAAwD;QAC1D,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrD,CAAC;IAED,kBAAkB;IAClB,QAAQ,CACJ,uBAAqD,EACrD,uCAA8H;QAE9H,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACxD,CAAC;IAED,kBAAkB;IAClB,YAAY;QACR,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;CACJ"}
1
+ {"version":3,"file":"JoinBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/JoinBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { PropertyAccessor } from '@cratis/fundamentals';
2
+ import { ChildrenDefinitionLike, ProjectionBuilderCore } from './ProjectionBuilderCore';
3
+ import { IChildrenBuilder } from './IChildrenBuilder';
4
+ import { INestedBuilder } from './INestedBuilder';
5
+ /**
6
+ * Concrete implementation of {@link INestedBuilder}, building the `ChildrenDefinition` for a
7
+ * nested single-object sub-projection reached through `.nested()`.
8
+ * @template TParentReadModel - The parent read model type.
9
+ * @template TNestedReadModel - The nested object read model type.
10
+ */
11
+ export declare class NestedBuilder<TParentReadModel, TNestedReadModel> extends ProjectionBuilderCore<TNestedReadModel, INestedBuilder<TParentReadModel, TNestedReadModel>> implements INestedBuilder<TParentReadModel, TNestedReadModel> {
12
+ /** @inheritdoc */
13
+ clearWith(eventType: Function): INestedBuilder<TParentReadModel, TNestedReadModel>;
14
+ /** @inheritdoc */
15
+ children<TChildModel>(targetPropertyAccessor: PropertyAccessor<TNestedReadModel>, builderCallback: (builder: IChildrenBuilder<TNestedReadModel, TChildModel>) => void): INestedBuilder<TParentReadModel, TNestedReadModel>;
16
+ /** @inheritdoc */
17
+ nested<TGrandNestedModel>(targetPropertyAccessor: PropertyAccessor<TNestedReadModel>, builderCallback: (builder: INestedBuilder<TNestedReadModel, TGrandNestedModel>) => void): INestedBuilder<TParentReadModel, TNestedReadModel>;
18
+ /**
19
+ * Builds the {@link ChildrenDefinitionLike} representing this nested object.
20
+ * @returns The accumulated nested definition.
21
+ */
22
+ buildDefinition(): ChildrenDefinitionLike;
23
+ }
24
+ //# sourceMappingURL=NestedBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestedBuilder.d.ts","sourceRoot":"","sources":["../../../projections/declarative/NestedBuilder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;GAKG;AACH,qBAAa,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CACzD,SAAQ,qBAAqB,CAAC,gBAAgB,EAAE,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAClG,YAAW,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC7D,kBAAkB;IAClB,SAAS,CAAC,SAAS,EAAE,QAAQ,GAAG,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IASlF,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAChB,sBAAsB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,EAC1D,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,gBAAgB,EAAE,WAAW,CAAC,KAAK,IAAI,GACpF,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAWrD,kBAAkB;IAClB,MAAM,CAAC,iBAAiB,EACpB,sBAAsB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,EAC1D,eAAe,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,KAAK,IAAI,GACxF,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAWrD;;;OAGG;IACH,eAAe,IAAI,sBAAsB;CAa5C"}
@@ -0,0 +1,60 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import { PropertyPathResolverProxyHandler } from '@cratis/fundamentals';
4
+ import { ProjectionBuilderCore } from './ProjectionBuilderCore';
5
+ import { ChildrenBuilder } from './ChildrenBuilder';
6
+ /**
7
+ * Concrete implementation of {@link INestedBuilder}, building the `ChildrenDefinition` for a
8
+ * nested single-object sub-projection reached through `.nested()`.
9
+ * @template TParentReadModel - The parent read model type.
10
+ * @template TNestedReadModel - The nested object read model type.
11
+ */
12
+ export class NestedBuilder extends ProjectionBuilderCore {
13
+ /** @inheritdoc */
14
+ clearWith(eventType) {
15
+ const contractType = this.toContractEventType(eventType);
16
+ this._removedWith.push({
17
+ Key: contractType,
18
+ Value: { Key: '$eventSourceId', ParentKey: '' }
19
+ });
20
+ return this;
21
+ }
22
+ /** @inheritdoc */
23
+ children(targetPropertyAccessor, builderCallback) {
24
+ const handler = new PropertyPathResolverProxyHandler();
25
+ const proxy = new Proxy({}, handler);
26
+ targetPropertyAccessor(proxy);
27
+ const builder = new ChildrenBuilder();
28
+ builderCallback(builder);
29
+ this._children[handler.property] = builder.buildDefinition();
30
+ return this;
31
+ }
32
+ /** @inheritdoc */
33
+ nested(targetPropertyAccessor, builderCallback) {
34
+ const handler = new PropertyPathResolverProxyHandler();
35
+ const proxy = new Proxy({}, handler);
36
+ targetPropertyAccessor(proxy);
37
+ const builder = new NestedBuilder();
38
+ builderCallback(builder);
39
+ this._nested[handler.property] = builder.buildDefinition();
40
+ return this;
41
+ }
42
+ /**
43
+ * Builds the {@link ChildrenDefinitionLike} representing this nested object.
44
+ * @returns The accumulated nested definition.
45
+ */
46
+ buildDefinition() {
47
+ return {
48
+ IdentifiedBy: '',
49
+ From: this._from,
50
+ Join: this._join,
51
+ Children: this._children,
52
+ All: this._all,
53
+ RemovedWith: this._removedWith,
54
+ RemovedWithJoin: this._removedWithJoin,
55
+ AutoMap: this._autoMap,
56
+ Nested: this._nested
57
+ };
58
+ }
59
+ }
60
+ //# sourceMappingURL=NestedBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestedBuilder.js","sourceRoot":"","sources":["../../../projections/declarative/NestedBuilder.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAoB,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAA0B,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGxF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,aACT,SAAQ,qBAA2F;IAEnG,kBAAkB;IAClB,SAAS,CAAC,SAAmB;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,GAAG,EAAE,YAAY;YACjB,KAAK,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE;SAClD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,QAAQ,CACJ,sBAA0D,EAC1D,eAAmF;QAEnF,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,sBAAsB,CAAC,KAAyB,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,eAAe,EAAiC,CAAC;QACrE,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,MAAM,CACF,sBAA0D,EAC1D,eAAuF;QAEvF,MAAM,OAAO,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACrC,sBAAsB,CAAC,KAAyB,CAAC,CAAC;QAElD,MAAM,OAAO,GAAG,IAAI,aAAa,EAAuC,CAAC;QACzE,eAAe,CAAC,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,eAAe;QACX,OAAO;YACH,YAAY,EAAE,EAAE;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,MAAM,EAAE,IAAI,CAAC,OAAO;SACvB,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,127 @@
1
+ import { AutoMap } from '@cratis/chronicle.contracts';
2
+ import { IFromBuilder } from './IFromBuilder';
3
+ import { IFromEveryBuilder } from './IFromEveryBuilder';
4
+ import { IJoinBuilder } from './IJoinBuilder';
5
+ import { IRemovedWithBuilder } from './IRemovedWithBuilder';
6
+ import { IRemovedWithJoinBuilder } from './IRemovedWithJoinBuilder';
7
+ /** The contract-level event type identifier shape used across projection definitions. */
8
+ export type ContractEventType = {
9
+ Id: string;
10
+ Generation: number;
11
+ Tombstone: boolean;
12
+ };
13
+ /** Accumulated property mapping for a from clause. */
14
+ export interface FromRecord {
15
+ Key: ContractEventType;
16
+ Value: {
17
+ Properties: Record<string, string>;
18
+ Key: string;
19
+ ParentKey: string;
20
+ };
21
+ }
22
+ /** Accumulated property mapping for a join clause. */
23
+ export interface JoinRecord {
24
+ Key: ContractEventType;
25
+ Value: {
26
+ On: string;
27
+ Properties: Record<string, string>;
28
+ Key: string;
29
+ };
30
+ }
31
+ /** Accumulated removal mapping for a removedWith clause. */
32
+ export interface RemovedWithRecord {
33
+ Key: ContractEventType;
34
+ Value: {
35
+ Key: string;
36
+ ParentKey: string;
37
+ };
38
+ }
39
+ /** Accumulated removal mapping for a removedWithJoin clause. */
40
+ export interface RemovedWithJoinRecord {
41
+ Key: ContractEventType;
42
+ Value: {
43
+ Key: string;
44
+ };
45
+ }
46
+ /**
47
+ * Plain object shape matching the wire-level `ChildrenDefinition` used for both children
48
+ * collections and nested single-object projections.
49
+ */
50
+ export interface ChildrenDefinitionLike {
51
+ IdentifiedBy: string;
52
+ From: FromRecord[];
53
+ Join: JoinRecord[];
54
+ Children: Record<string, ChildrenDefinitionLike>;
55
+ All: {
56
+ Properties: Record<string, string>;
57
+ IncludeChildren: boolean;
58
+ AutoMap: AutoMap;
59
+ };
60
+ FromEventProperty?: {
61
+ Event: ContractEventType | undefined;
62
+ PropertyExpression: string;
63
+ };
64
+ RemovedWith: RemovedWithRecord[];
65
+ RemovedWithJoin: RemovedWithJoinRecord[];
66
+ AutoMap: AutoMap;
67
+ Nested: Record<string, ChildrenDefinitionLike>;
68
+ }
69
+ /**
70
+ * Base accumulator shared by every projection-shaped builder (the top-level
71
+ * {@link ProjectionBuilderFor}, and the child/nested builders reached through
72
+ * `.children()`/`.nested()`). Holds the from/join/fromEvery/removedWith/removedWithJoin/
73
+ * children/nested state and the mapping operations common to all of them, mirroring the
74
+ * shared `ProjectionBuilder<TReadModel, TBuilder>` base class on the C# client.
75
+ * @template TReadModel - The read model type this builder produces.
76
+ * @template TBuilder - The concrete builder type returned for fluent chaining.
77
+ */
78
+ export declare abstract class ProjectionBuilderCore<TReadModel, TBuilder> {
79
+ protected _autoMap: AutoMap;
80
+ protected _initialState: string;
81
+ protected readonly _from: FromRecord[];
82
+ protected readonly _join: JoinRecord[];
83
+ protected readonly _removedWith: RemovedWithRecord[];
84
+ protected readonly _removedWithJoin: RemovedWithJoinRecord[];
85
+ protected readonly _children: Record<string, ChildrenDefinitionLike>;
86
+ protected readonly _nested: Record<string, ChildrenDefinitionLike>;
87
+ protected _all: {
88
+ Properties: Record<string, string>;
89
+ IncludeChildren: boolean;
90
+ AutoMap: AutoMap;
91
+ };
92
+ /** @inheritdoc */
93
+ autoMap(): TBuilder;
94
+ /** @inheritdoc */
95
+ noAutoMap(): TBuilder;
96
+ /** @inheritdoc */
97
+ withInitialValues(initialValueProvider: () => TReadModel): TBuilder;
98
+ /** @inheritdoc */
99
+ from<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IFromBuilder<TReadModel, TEvent>) => void): TBuilder;
100
+ /** @inheritdoc */
101
+ join<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IJoinBuilder<TReadModel, TEvent>) => void): TBuilder;
102
+ /** @inheritdoc */
103
+ fromEvery(builderCallback: (builder: IFromEveryBuilder<TReadModel>) => void): TBuilder;
104
+ /** @inheritdoc */
105
+ removedWith<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithBuilder<TReadModel, TEvent>) => void): TBuilder;
106
+ /** @inheritdoc */
107
+ removedWithJoin<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithJoinBuilder<TReadModel, TEvent>) => void): TBuilder;
108
+ /**
109
+ * Creates an empty {@link ChildrenDefinitionLike} accumulator for a children/nested entry.
110
+ * @returns A fresh, empty children definition.
111
+ */
112
+ protected createEmptyChildrenDefinition(): ChildrenDefinitionLike;
113
+ /**
114
+ * Merges `.addChild()` accumulations captured on a from/join builder into this builder's
115
+ * children definitions, creating the target child entry on first use.
116
+ * @param eventType - The contract event type the child additions were captured for.
117
+ * @param children - The accumulated child additions.
118
+ */
119
+ private mergeChildAdditions;
120
+ /**
121
+ * Resolves the contract event type for a decorated event constructor.
122
+ * @param eventTypeConstructor - The event class constructor.
123
+ * @returns The contract-level event type identifier.
124
+ */
125
+ protected toContractEventType(eventTypeConstructor: Function): ContractEventType;
126
+ }
127
+ //# sourceMappingURL=ProjectionBuilderCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectionBuilderCore.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ProjectionBuilderCore.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAOpE,yFAAyF;AACzF,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAEvF,sDAAsD;AACtD,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,iBAAiB,CAAC;IACvB,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACjF;AAED,sDAAsD;AACtD,MAAM,WAAW,UAAU;IACvB,GAAG,EAAE,iBAAiB,CAAC;IACvB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1E;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAC9B,GAAG,EAAE,iBAAiB,CAAC;IACvB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C;AAED,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IAClC,GAAG,EAAE,iBAAiB,CAAC;IACvB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACjD,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,eAAe,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACxF,iBAAiB,CAAC,EAAE;QAAE,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IACzF,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,eAAe,EAAE,qBAAqB,EAAE,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,8BAAsB,qBAAqB,CAAC,UAAU,EAAE,QAAQ;IAC5D,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAmB;IAC9C,SAAS,CAAC,aAAa,EAAE,MAAM,CAAQ;IACvC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,CAAM;IAC5C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,CAAM;IAC5C,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAM;IAC1D,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,CAAM;IAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAM;IAC1E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAM;IACxE,SAAS,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,eAAe,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAIhG;IAEF,kBAAkB;IAClB,OAAO,IAAI,QAAQ;IAKnB,kBAAkB;IAClB,SAAS,IAAI,QAAQ;IAKrB,kBAAkB;IAClB,iBAAiB,CAAC,oBAAoB,EAAE,MAAM,UAAU,GAAG,QAAQ;IAKnE,kBAAkB;IAClB,IAAI,CAAC,MAAM,EACP,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,IAAI,GACtE,QAAQ;IAgBX,kBAAkB;IAClB,IAAI,CAAC,MAAM,EACP,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,IAAI,GACtE,QAAQ;IAgBX,kBAAkB;IAClB,SAAS,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,QAAQ;IActF,kBAAkB;IAClB,WAAW,CAAC,MAAM,EACd,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,IAAI,GAC7E,QAAQ;IAcX,kBAAkB;IAClB,eAAe,CAAC,MAAM,EAClB,SAAS,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EACzC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,IAAI,GACjF,QAAQ;IAaX;;;OAGG;IACH,SAAS,CAAC,6BAA6B,IAAI,sBAAsB;IAcjE;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,QAAQ,GAAG,iBAAiB;CAWnF"}
@@ -0,0 +1,180 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import { AutoMap } from '@cratis/chronicle.contracts';
4
+ import { getEventTypeFor } from '../../events/eventTypeDecorator';
5
+ import { FromBuilder } from './FromBuilder';
6
+ import { JoinBuilder } from './JoinBuilder';
7
+ import { FromEveryBuilder } from './FromEveryBuilder';
8
+ import { RemovedWithBuilder } from './RemovedWithBuilder';
9
+ import { RemovedWithJoinBuilder } from './RemovedWithJoinBuilder';
10
+ /**
11
+ * Base accumulator shared by every projection-shaped builder (the top-level
12
+ * {@link ProjectionBuilderFor}, and the child/nested builders reached through
13
+ * `.children()`/`.nested()`). Holds the from/join/fromEvery/removedWith/removedWithJoin/
14
+ * children/nested state and the mapping operations common to all of them, mirroring the
15
+ * shared `ProjectionBuilder<TReadModel, TBuilder>` base class on the C# client.
16
+ * @template TReadModel - The read model type this builder produces.
17
+ * @template TBuilder - The concrete builder type returned for fluent chaining.
18
+ */
19
+ export class ProjectionBuilderCore {
20
+ _autoMap = AutoMap.Inherit;
21
+ _initialState = '{}';
22
+ _from = [];
23
+ _join = [];
24
+ _removedWith = [];
25
+ _removedWithJoin = [];
26
+ _children = {};
27
+ _nested = {};
28
+ _all = {
29
+ Properties: {},
30
+ IncludeChildren: false,
31
+ AutoMap: AutoMap.Inherit
32
+ };
33
+ /** @inheritdoc */
34
+ autoMap() {
35
+ this._autoMap = AutoMap.Enabled;
36
+ return this;
37
+ }
38
+ /** @inheritdoc */
39
+ noAutoMap() {
40
+ this._autoMap = AutoMap.Disabled;
41
+ return this;
42
+ }
43
+ /** @inheritdoc */
44
+ withInitialValues(initialValueProvider) {
45
+ this._initialState = JSON.stringify(initialValueProvider());
46
+ return this;
47
+ }
48
+ /** @inheritdoc */
49
+ from(eventType, builderCallback) {
50
+ const contractType = this.toContractEventType(eventType);
51
+ const fromBuilder = new FromBuilder();
52
+ builderCallback?.(fromBuilder);
53
+ this._from.push({
54
+ Key: contractType,
55
+ Value: {
56
+ Properties: fromBuilder.entry.properties,
57
+ Key: fromBuilder.entry.key,
58
+ ParentKey: fromBuilder.entry.parentKey
59
+ }
60
+ });
61
+ this.mergeChildAdditions(contractType, fromBuilder.entry.children);
62
+ return this;
63
+ }
64
+ /** @inheritdoc */
65
+ join(eventType, builderCallback) {
66
+ const contractType = this.toContractEventType(eventType);
67
+ const joinBuilder = new JoinBuilder();
68
+ builderCallback?.(joinBuilder);
69
+ this._join.push({
70
+ Key: contractType,
71
+ Value: {
72
+ On: joinBuilder.entry.on,
73
+ Properties: joinBuilder.entry.properties,
74
+ Key: joinBuilder.entry.key
75
+ }
76
+ });
77
+ this.mergeChildAdditions(contractType, joinBuilder.entry.children);
78
+ return this;
79
+ }
80
+ /** @inheritdoc */
81
+ fromEvery(builderCallback) {
82
+ const builder = new FromEveryBuilder();
83
+ builderCallback(builder);
84
+ this._all = {
85
+ Properties: {
86
+ ...this._all.Properties,
87
+ ...builder.entry.properties
88
+ },
89
+ IncludeChildren: builder.entry.includeChildren,
90
+ AutoMap: AutoMap.Inherit
91
+ };
92
+ return this;
93
+ }
94
+ /** @inheritdoc */
95
+ removedWith(eventType, builderCallback) {
96
+ const contractType = this.toContractEventType(eventType);
97
+ const removedWithBuilder = new RemovedWithBuilder();
98
+ builderCallback?.(removedWithBuilder);
99
+ this._removedWith.push({
100
+ Key: contractType,
101
+ Value: {
102
+ Key: removedWithBuilder.entry.key,
103
+ ParentKey: removedWithBuilder.entry.parentKey
104
+ }
105
+ });
106
+ return this;
107
+ }
108
+ /** @inheritdoc */
109
+ removedWithJoin(eventType, builderCallback) {
110
+ const contractType = this.toContractEventType(eventType);
111
+ const removedWithJoinBuilder = new RemovedWithJoinBuilder();
112
+ builderCallback?.(removedWithJoinBuilder);
113
+ this._removedWithJoin.push({
114
+ Key: contractType,
115
+ Value: {
116
+ Key: removedWithJoinBuilder.entry.key
117
+ }
118
+ });
119
+ return this;
120
+ }
121
+ /**
122
+ * Creates an empty {@link ChildrenDefinitionLike} accumulator for a children/nested entry.
123
+ * @returns A fresh, empty children definition.
124
+ */
125
+ createEmptyChildrenDefinition() {
126
+ return {
127
+ IdentifiedBy: '$eventSourceId',
128
+ From: [],
129
+ Join: [],
130
+ Children: {},
131
+ All: { Properties: {}, IncludeChildren: false, AutoMap: AutoMap.Inherit },
132
+ RemovedWith: [],
133
+ RemovedWithJoin: [],
134
+ AutoMap: AutoMap.Inherit,
135
+ Nested: {}
136
+ };
137
+ }
138
+ /**
139
+ * Merges `.addChild()` accumulations captured on a from/join builder into this builder's
140
+ * children definitions, creating the target child entry on first use.
141
+ * @param eventType - The contract event type the child additions were captured for.
142
+ * @param children - The accumulated child additions.
143
+ */
144
+ mergeChildAdditions(eventType, children) {
145
+ for (const child of children) {
146
+ const childDefinition = this._children[child.targetProperty] ??= this.createEmptyChildrenDefinition();
147
+ if (child.identifiedBy) {
148
+ childDefinition.IdentifiedBy = child.identifiedBy;
149
+ }
150
+ if (child.fromEventProperty) {
151
+ childDefinition.FromEventProperty = { Event: eventType, PropertyExpression: child.fromEventProperty };
152
+ }
153
+ childDefinition.From.push({
154
+ Key: eventType,
155
+ Value: {
156
+ Key: child.usingKey ?? '$eventSourceId',
157
+ ParentKey: '$eventSourceId',
158
+ Properties: {}
159
+ }
160
+ });
161
+ }
162
+ }
163
+ /**
164
+ * Resolves the contract event type for a decorated event constructor.
165
+ * @param eventTypeConstructor - The event class constructor.
166
+ * @returns The contract-level event type identifier.
167
+ */
168
+ toContractEventType(eventTypeConstructor) {
169
+ const eventType = getEventTypeFor(eventTypeConstructor);
170
+ if (eventType.id.value === '') {
171
+ throw new Error(`Event type '${eventTypeConstructor.name}' is not decorated with @eventType().`);
172
+ }
173
+ return {
174
+ Id: eventType.id.value,
175
+ Generation: eventType.generation.value,
176
+ Tombstone: false
177
+ };
178
+ }
179
+ }
180
+ //# sourceMappingURL=ProjectionBuilderCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectionBuilderCore.js","sourceRoot":"","sources":["../../../projections/declarative/ProjectionBuilderCore.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,19 @@
1
+ import { PropertyAccessor } from '@cratis/fundamentals';
1
2
  import { IChildrenBuilder } from './IChildrenBuilder';
2
- import { IFromBuilder } from './IFromBuilder';
3
- import { IFromEveryBuilder } from './IFromEveryBuilder';
4
- import { IJoinBuilder } from './IJoinBuilder';
5
3
  import { INestedBuilder } from './INestedBuilder';
6
4
  import { IProjectionBuilderFor } from './IProjectionBuilderFor';
7
- import { IRemovedWithBuilder } from './IRemovedWithBuilder';
8
- import { IRemovedWithJoinBuilder } from './IRemovedWithJoinBuilder';
5
+ import { ProjectionBuilderCore } from './ProjectionBuilderCore';
9
6
  /**
10
7
  * Concrete implementation of {@link IProjectionBuilderFor} that accumulates projection
11
8
  * configuration and produces a Chronicle-compatible projection definition payload.
12
9
  * @template TReadModel - The read model type this projection produces.
13
10
  */
14
- export declare class ProjectionBuilderFor<TReadModel> implements IProjectionBuilderFor<TReadModel> {
11
+ export declare class ProjectionBuilderFor<TReadModel> extends ProjectionBuilderCore<TReadModel, ProjectionBuilderFor<TReadModel>> implements IProjectionBuilderFor<TReadModel> {
15
12
  private _eventSequenceId;
16
13
  private _containerName;
17
14
  private _rewindable;
18
15
  private _active;
19
- private _autoMap;
20
- private _initialState;
21
- private readonly _from;
22
- private readonly _join;
23
- private readonly _removedWith;
24
- private readonly _removedWithJoin;
25
- private _all;
16
+ constructor();
26
17
  /** @inheritdoc */
27
18
  fromEventSequence(eventSequenceId: string): this;
28
19
  /** @inheritdoc */
@@ -32,25 +23,9 @@ export declare class ProjectionBuilderFor<TReadModel> implements IProjectionBuil
32
23
  /** @inheritdoc */
33
24
  passive(): this;
34
25
  /** @inheritdoc */
35
- autoMap(): this;
26
+ children<TChildModel>(targetPropertyAccessor: PropertyAccessor<TReadModel>, builderCallback: (builder: IChildrenBuilder<TReadModel, TChildModel>) => void): this;
36
27
  /** @inheritdoc */
37
- noAutoMap(): this;
38
- /** @inheritdoc */
39
- withInitialValues(initialValueProvider: () => TReadModel): this;
40
- /** @inheritdoc */
41
- from<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IFromBuilder<TReadModel, TEvent>) => void): this;
42
- /** @inheritdoc */
43
- join<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IJoinBuilder<TReadModel, TEvent>) => void): this;
44
- /** @inheritdoc */
45
- fromEvery(builderCallback: (builder: IFromEveryBuilder<TReadModel>) => void): this;
46
- /** @inheritdoc */
47
- removedWith<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithBuilder<TReadModel, TEvent>) => void): this;
48
- /** @inheritdoc */
49
- removedWithJoin<TEvent>(eventType: new (...args: any[]) => TEvent, builderCallback?: (builder: IRemovedWithJoinBuilder<TReadModel, TEvent>) => void): this;
50
- /** @inheritdoc */
51
- children<TChildModel>(_targetPropertyAccessor: any, _builderCallback: (builder: IChildrenBuilder<TReadModel, TChildModel>) => void): this;
52
- /** @inheritdoc */
53
- nested<TNestedModel>(_targetPropertyAccessor: any, _builderCallback: (builder: INestedBuilder<TReadModel, TNestedModel>) => void): this;
28
+ nested<TNestedModel>(targetPropertyAccessor: PropertyAccessor<TReadModel>, builderCallback: (builder: INestedBuilder<TReadModel, TNestedModel>) => void): this;
54
29
  /**
55
30
  * Builds the contract-compatible projection definition payload.
56
31
  * @param identifier - The projection identifier.
@@ -63,7 +38,6 @@ export declare class ProjectionBuilderFor<TReadModel> implements IProjectionBuil
63
38
  * @returns Unique read model property names used by from/join/fromEvery mappings.
64
39
  */
65
40
  getMappedReadModelProperties(): string[];
66
- private toContractEventType;
67
41
  /**
68
42
  * Computes a stable, deterministic ISO timestamp from the projection definition content,
69
43
  * excluding the LastUpdated field itself. This ensures the server does not interpret
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectionBuilderFor.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ProjectionBuilderFor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectionBuilderFor.d.ts","sourceRoot":"","sources":["../../../projections/declarative/ProjectionBuilderFor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAoC,MAAM,sBAAsB,CAAC;AAG1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,qBAAa,oBAAoB,CAAC,UAAU,CAAE,SAAQ,qBAAqB,CAAC,UAAU,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAE,YAAW,qBAAqB,CAAC,UAAU,CAAC;IAClK,OAAO,CAAC,gBAAgB,CAA0C;IAClE,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,OAAO,CAAiB;;IAOhC,kBAAkB;IAClB,iBAAiB,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI;IAKhD,kBAAkB;IAClB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKjC,kBAAkB;IAClB,aAAa,IAAI,IAAI;IAKrB,kBAAkB;IAClB,OAAO,IAAI,IAAI;IAKf,kBAAkB;IAClB,QAAQ,CAAC,WAAW,EAChB,sBAAsB,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACpD,eAAe,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,IAAI,GAC9E,IAAI;IAWP,kBAAkB;IAClB,MAAM,CAAC,YAAY,EACf,sBAAsB,EAAE,gBAAgB,CAAC,UAAU,CAAC,EACpD,eAAe,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,KAAK,IAAI,GAC7E,IAAI;IAWP;;;;;OAKG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAyBzE;;;OAGG;IACH,4BAA4B,IAAI,MAAM,EAAE;IAsBxC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;CASnC"}