@auto-engineer/pipeline 0.0.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +26 -0
  3. package/README.md +279 -0
  4. package/dist/src/builder/define.d.ts +6 -2
  5. package/dist/src/builder/define.d.ts.map +1 -1
  6. package/dist/src/builder/define.js +17 -7
  7. package/dist/src/builder/define.js.map +1 -1
  8. package/dist/src/builder/define.specs.js +3 -3
  9. package/dist/src/builder/define.specs.js.map +1 -1
  10. package/dist/src/core/descriptors.d.ts +6 -2
  11. package/dist/src/core/descriptors.d.ts.map +1 -1
  12. package/dist/src/graph/filter-graph.d.ts +3 -0
  13. package/dist/src/graph/filter-graph.d.ts.map +1 -0
  14. package/dist/src/graph/filter-graph.js +80 -0
  15. package/dist/src/graph/filter-graph.js.map +1 -0
  16. package/dist/src/graph/filter-graph.specs.d.ts +2 -0
  17. package/dist/src/graph/filter-graph.specs.d.ts.map +1 -0
  18. package/dist/src/graph/filter-graph.specs.js +204 -0
  19. package/dist/src/graph/filter-graph.specs.js.map +1 -0
  20. package/dist/src/graph/types.d.ts +8 -0
  21. package/dist/src/graph/types.d.ts.map +1 -1
  22. package/dist/src/index.d.ts +1 -0
  23. package/dist/src/index.d.ts.map +1 -1
  24. package/dist/src/index.js.map +1 -1
  25. package/dist/src/projections/await-tracker-projection.d.ts +31 -0
  26. package/dist/src/projections/await-tracker-projection.d.ts.map +1 -0
  27. package/dist/src/projections/await-tracker-projection.js +35 -0
  28. package/dist/src/projections/await-tracker-projection.js.map +1 -0
  29. package/dist/src/projections/index.d.ts +4 -0
  30. package/dist/src/projections/index.d.ts.map +1 -0
  31. package/dist/src/projections/index.js +4 -0
  32. package/dist/src/projections/index.js.map +1 -0
  33. package/dist/src/projections/item-status-projection.d.ts +22 -0
  34. package/dist/src/projections/item-status-projection.d.ts.map +1 -0
  35. package/dist/src/projections/item-status-projection.js +11 -0
  36. package/dist/src/projections/item-status-projection.js.map +1 -0
  37. package/dist/src/projections/item-status-projection.specs.d.ts +2 -0
  38. package/dist/src/projections/item-status-projection.specs.d.ts.map +1 -0
  39. package/dist/src/projections/item-status-projection.specs.js +119 -0
  40. package/dist/src/projections/item-status-projection.specs.js.map +1 -0
  41. package/dist/src/projections/latest-run-projection.d.ts +15 -0
  42. package/dist/src/projections/latest-run-projection.d.ts.map +1 -0
  43. package/dist/src/projections/latest-run-projection.js +7 -0
  44. package/dist/src/projections/latest-run-projection.js.map +1 -0
  45. package/dist/src/projections/latest-run-projection.specs.d.ts +2 -0
  46. package/dist/src/projections/latest-run-projection.specs.d.ts.map +1 -0
  47. package/dist/src/projections/latest-run-projection.specs.js +33 -0
  48. package/dist/src/projections/latest-run-projection.specs.js.map +1 -0
  49. package/dist/src/projections/message-log-projection.d.ts +51 -0
  50. package/dist/src/projections/message-log-projection.d.ts.map +1 -0
  51. package/dist/src/projections/message-log-projection.js +51 -0
  52. package/dist/src/projections/message-log-projection.js.map +1 -0
  53. package/dist/src/projections/message-log-projection.specs.d.ts +2 -0
  54. package/dist/src/projections/message-log-projection.specs.d.ts.map +1 -0
  55. package/dist/src/projections/message-log-projection.specs.js +101 -0
  56. package/dist/src/projections/message-log-projection.specs.js.map +1 -0
  57. package/dist/src/projections/node-status-projection.d.ts +23 -0
  58. package/dist/src/projections/node-status-projection.d.ts.map +1 -0
  59. package/dist/src/projections/node-status-projection.js +10 -0
  60. package/dist/src/projections/node-status-projection.js.map +1 -0
  61. package/dist/src/projections/node-status-projection.specs.d.ts +2 -0
  62. package/dist/src/projections/node-status-projection.specs.d.ts.map +1 -0
  63. package/dist/src/projections/node-status-projection.specs.js +116 -0
  64. package/dist/src/projections/node-status-projection.specs.js.map +1 -0
  65. package/dist/src/projections/phased-execution-projection.d.ts +77 -0
  66. package/dist/src/projections/phased-execution-projection.d.ts.map +1 -0
  67. package/dist/src/projections/phased-execution-projection.js +54 -0
  68. package/dist/src/projections/phased-execution-projection.js.map +1 -0
  69. package/dist/src/projections/phased-execution-projection.specs.d.ts +2 -0
  70. package/dist/src/projections/phased-execution-projection.specs.d.ts.map +1 -0
  71. package/dist/src/projections/phased-execution-projection.specs.js +171 -0
  72. package/dist/src/projections/phased-execution-projection.specs.js.map +1 -0
  73. package/dist/src/projections/settled-instance-projection.d.ts +67 -0
  74. package/dist/src/projections/settled-instance-projection.d.ts.map +1 -0
  75. package/dist/src/projections/settled-instance-projection.js +66 -0
  76. package/dist/src/projections/settled-instance-projection.js.map +1 -0
  77. package/dist/src/projections/settled-instance-projection.specs.d.ts +2 -0
  78. package/dist/src/projections/settled-instance-projection.specs.d.ts.map +1 -0
  79. package/dist/src/projections/settled-instance-projection.specs.js +217 -0
  80. package/dist/src/projections/settled-instance-projection.specs.js.map +1 -0
  81. package/dist/src/projections/stats-projection.d.ts +9 -0
  82. package/dist/src/projections/stats-projection.d.ts.map +1 -0
  83. package/dist/src/projections/stats-projection.js +16 -0
  84. package/dist/src/projections/stats-projection.js.map +1 -0
  85. package/dist/src/projections/stats-projection.specs.d.ts +2 -0
  86. package/dist/src/projections/stats-projection.specs.d.ts.map +1 -0
  87. package/dist/src/projections/stats-projection.specs.js +91 -0
  88. package/dist/src/projections/stats-projection.specs.js.map +1 -0
  89. package/dist/src/runtime/await-tracker.d.ts +17 -7
  90. package/dist/src/runtime/await-tracker.d.ts.map +1 -1
  91. package/dist/src/runtime/await-tracker.js +32 -29
  92. package/dist/src/runtime/await-tracker.js.map +1 -1
  93. package/dist/src/runtime/await-tracker.specs.js +56 -38
  94. package/dist/src/runtime/await-tracker.specs.js.map +1 -1
  95. package/dist/src/runtime/context.d.ts +1 -1
  96. package/dist/src/runtime/context.d.ts.map +1 -1
  97. package/dist/src/runtime/event-command-map.d.ts +3 -3
  98. package/dist/src/runtime/event-command-map.d.ts.map +1 -1
  99. package/dist/src/runtime/event-command-map.js +6 -2
  100. package/dist/src/runtime/event-command-map.js.map +1 -1
  101. package/dist/src/runtime/phased-executor.d.ts +15 -9
  102. package/dist/src/runtime/phased-executor.d.ts.map +1 -1
  103. package/dist/src/runtime/phased-executor.js +126 -104
  104. package/dist/src/runtime/phased-executor.js.map +1 -1
  105. package/dist/src/runtime/phased-executor.specs.js +243 -81
  106. package/dist/src/runtime/phased-executor.specs.js.map +1 -1
  107. package/dist/src/runtime/pipeline-runtime.d.ts.map +1 -1
  108. package/dist/src/runtime/pipeline-runtime.js +2 -2
  109. package/dist/src/runtime/pipeline-runtime.js.map +1 -1
  110. package/dist/src/runtime/pipeline-runtime.specs.js +35 -0
  111. package/dist/src/runtime/pipeline-runtime.specs.js.map +1 -1
  112. package/dist/src/runtime/settled-tracker.d.ts +12 -9
  113. package/dist/src/runtime/settled-tracker.d.ts.map +1 -1
  114. package/dist/src/runtime/settled-tracker.js +92 -77
  115. package/dist/src/runtime/settled-tracker.js.map +1 -1
  116. package/dist/src/runtime/settled-tracker.specs.js +568 -118
  117. package/dist/src/runtime/settled-tracker.specs.js.map +1 -1
  118. package/dist/src/server/pipeline-server.d.ts +31 -9
  119. package/dist/src/server/pipeline-server.d.ts.map +1 -1
  120. package/dist/src/server/pipeline-server.e2e.specs.js +2 -10
  121. package/dist/src/server/pipeline-server.e2e.specs.js.map +1 -1
  122. package/dist/src/server/pipeline-server.js +418 -134
  123. package/dist/src/server/pipeline-server.js.map +1 -1
  124. package/dist/src/server/pipeline-server.specs.js +777 -32
  125. package/dist/src/server/pipeline-server.specs.js.map +1 -1
  126. package/dist/src/server/sse-manager.specs.js +55 -35
  127. package/dist/src/server/sse-manager.specs.js.map +1 -1
  128. package/dist/src/store/index.d.ts +3 -0
  129. package/dist/src/store/index.d.ts.map +1 -0
  130. package/dist/src/store/index.js +3 -0
  131. package/dist/src/store/index.js.map +1 -0
  132. package/dist/src/store/pipeline-event-store.d.ts +10 -0
  133. package/dist/src/store/pipeline-event-store.d.ts.map +1 -0
  134. package/dist/src/store/pipeline-event-store.js +112 -0
  135. package/dist/src/store/pipeline-event-store.js.map +1 -0
  136. package/dist/src/store/pipeline-event-store.specs.d.ts +2 -0
  137. package/dist/src/store/pipeline-event-store.specs.d.ts.map +1 -0
  138. package/dist/src/store/pipeline-event-store.specs.js +287 -0
  139. package/dist/src/store/pipeline-event-store.specs.js.map +1 -0
  140. package/dist/src/store/pipeline-read-model.d.ts +49 -0
  141. package/dist/src/store/pipeline-read-model.d.ts.map +1 -0
  142. package/dist/src/store/pipeline-read-model.js +157 -0
  143. package/dist/src/store/pipeline-read-model.js.map +1 -0
  144. package/dist/src/store/pipeline-read-model.specs.d.ts +2 -0
  145. package/dist/src/store/pipeline-read-model.specs.d.ts.map +1 -0
  146. package/dist/src/store/pipeline-read-model.specs.js +830 -0
  147. package/dist/src/store/pipeline-read-model.specs.js.map +1 -0
  148. package/dist/src/testing/fixtures/kanban-full.pipeline.js +2 -2
  149. package/dist/src/testing/fixtures/kanban-full.pipeline.js.map +1 -1
  150. package/dist/src/testing/fixtures/kanban.pipeline.js +2 -2
  151. package/dist/src/testing/fixtures/kanban.pipeline.js.map +1 -1
  152. package/dist/tsconfig.tsbuildinfo +1 -1
  153. package/ketchup-plan.md +960 -0
  154. package/package.json +7 -3
  155. package/src/builder/define.specs.ts +3 -3
  156. package/src/builder/define.ts +24 -11
  157. package/src/core/descriptors.ts +7 -2
  158. package/src/graph/filter-graph.specs.ts +241 -0
  159. package/src/graph/filter-graph.ts +111 -0
  160. package/src/graph/types.ts +10 -0
  161. package/src/index.ts +1 -2
  162. package/src/projections/await-tracker-projection.ts +68 -0
  163. package/src/projections/index.ts +11 -0
  164. package/src/projections/item-status-projection.specs.ts +130 -0
  165. package/src/projections/item-status-projection.ts +32 -0
  166. package/src/projections/latest-run-projection.specs.ts +38 -0
  167. package/src/projections/latest-run-projection.ts +20 -0
  168. package/src/projections/message-log-projection.specs.ts +118 -0
  169. package/src/projections/message-log-projection.ts +113 -0
  170. package/src/projections/node-status-projection.specs.ts +127 -0
  171. package/src/projections/node-status-projection.ts +33 -0
  172. package/src/projections/phased-execution-projection.specs.ts +202 -0
  173. package/src/projections/phased-execution-projection.ts +146 -0
  174. package/src/projections/settled-instance-projection.specs.ts +249 -0
  175. package/src/projections/settled-instance-projection.ts +160 -0
  176. package/src/projections/stats-projection.specs.ts +105 -0
  177. package/src/projections/stats-projection.ts +26 -0
  178. package/src/runtime/await-tracker.specs.ts +57 -34
  179. package/src/runtime/await-tracker.ts +43 -31
  180. package/src/runtime/context.ts +1 -1
  181. package/src/runtime/event-command-map.ts +11 -4
  182. package/src/runtime/phased-executor.specs.ts +357 -81
  183. package/src/runtime/phased-executor.ts +142 -126
  184. package/src/runtime/pipeline-runtime.specs.ts +42 -0
  185. package/src/runtime/pipeline-runtime.ts +6 -4
  186. package/src/runtime/settled-tracker.specs.ts +716 -120
  187. package/src/runtime/settled-tracker.ts +104 -98
  188. package/src/server/pipeline-server.e2e.specs.ts +10 -16
  189. package/src/server/pipeline-server.specs.ts +964 -49
  190. package/src/server/pipeline-server.ts +522 -156
  191. package/src/server/sse-manager.specs.ts +67 -36
  192. package/src/store/index.ts +2 -0
  193. package/src/store/pipeline-event-store.specs.ts +309 -0
  194. package/src/store/pipeline-event-store.ts +156 -0
  195. package/src/store/pipeline-read-model.specs.ts +967 -0
  196. package/src/store/pipeline-read-model.ts +223 -0
  197. package/src/testing/fixtures/kanban-full.pipeline.ts +2 -2
  198. package/src/testing/fixtures/kanban.pipeline.ts +2 -2
  199. package/claude.md +0 -160
  200. package/docs/testing-analysis.md +0 -395
  201. package/pomodoro-plan.md +0 -651
@@ -188,5 +188,40 @@ describe('PipelineRuntime', () => {
188
188
  }, ctx);
189
189
  expect(sent).toEqual(['2', '3', '1']);
190
190
  });
191
+ it('should dispatch multiple emit commands in parallel, not sequentially', async () => {
192
+ const callOrder = [];
193
+ let resolveA;
194
+ let resolveB;
195
+ const promiseA = new Promise((r) => {
196
+ resolveA = r;
197
+ });
198
+ const promiseB = new Promise((r) => {
199
+ resolveB = r;
200
+ });
201
+ const ctx = {
202
+ sendCommand: async (type) => {
203
+ callOrder.push(`${type}:start`);
204
+ if (type === 'CmdA') {
205
+ await promiseA;
206
+ }
207
+ else if (type === 'CmdB') {
208
+ await promiseB;
209
+ }
210
+ callOrder.push(`${type}:end`);
211
+ },
212
+ emit: async () => { },
213
+ correlationId: 'test',
214
+ };
215
+ const pipeline = define('test').on('Start').emit('CmdA', {}).emit('CmdB', {}).build();
216
+ const runtime = new PipelineRuntime(pipeline.descriptor);
217
+ const handlePromise = runtime.handleEvent({ type: 'Start', data: {} }, ctx);
218
+ await new Promise((r) => setTimeout(r, 10));
219
+ expect(callOrder).toContain('CmdA:start');
220
+ expect(callOrder).toContain('CmdB:start');
221
+ resolveB();
222
+ resolveA();
223
+ await handlePromise;
224
+ expect(callOrder).toEqual(['CmdA:start', 'CmdB:start', 'CmdB:end', 'CmdA:end']);
225
+ });
191
226
  });
192
227
  //# sourceMappingURL=pipeline-runtime.specs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-runtime.specs.js","sourceRoot":"","sources":["../../../src/runtime/pipeline-runtime.specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-runtime.specs.js","sourceRoot":"","sources":["../../../src/runtime/pipeline-runtime.specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACpG,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAClG,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAEpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;aAC5B,EAAE,CAAC,OAAO,CAAC;aACX,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;aAC/B,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;aACb,EAAE,CAAC,OAAO,CAAC;aACX,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;aACb,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG;YACV,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpB,aAAa,EAAE,MAAM;SACtB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,IAAI,GAA2C,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG;YACV,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,IAAa,EAAE,EAAE;gBACjD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpB,aAAa,EAAE,MAAM;SACtB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;aAC5B,EAAE,CAAC,IAAI,CAAC;aACR,IAAI,CAAC,KAAK,EAAE,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;aAC/C,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;aAC5B,EAAE,CAAC,GAAG,CAAC;aACP,MAAM,CAAC,KAAK,IAAI,EAAE;YACjB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC;aACD,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,CAAC,WAAW,CACvB,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EACvB,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CACzE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG;YACV,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpB,aAAa,EAAE,MAAM;SACtB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;aAC5B,EAAE,CAAC,OAAO,CAAC;aACX,GAAG,CAAC;YACH,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;YAC9B,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;SAC/B,CAAC;aACD,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aACzB,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAA2C,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG;YACV,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,IAAa,EAAE,EAAE;gBACjD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpB,aAAa,EAAE,MAAM;SACtB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;aAC5B,EAAE,CAAC,OAAO,CAAC;aACX,GAAG,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;aAC3G,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aAC5B,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/F,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,IAAI,GAA2C,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG;YACV,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,IAAa,EAAE,EAAE;gBACjD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpB,aAAa,EAAE,MAAM;SACtB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;aAC5B,EAAE,CAAC,OAAO,CAAC;aACX,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;aAC1E,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;aACzB,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,IAAI,GAA2C,EAAE,CAAC;QACxD,MAAM,GAAG,GAAG;YACV,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,IAAa,EAAE,EAAE;gBACjD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpB,aAAa,EAAE,MAAM;SACtB,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,CAA2B,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC;YAClC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,OAAO;oBAClB,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;oBACrD,WAAW,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;iBAC7C;aACF;SACF,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG;YACV,WAAW,EAAE,KAAK,EAAE,CAAS,EAAE,IAAa,EAAE,EAAE;gBAC9C,IAAI,CAAC,IAAI,CAAE,IAAuB,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpB,aAAa,EAAE,MAAM;SACtB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;aAC5B,EAAE,CAAC,OAAO,CAAC;aACX,OAAO,CAAC,CAAC,CAA8B,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;aACzD,SAAS,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C,OAAO,CAAC,KAAK,EAAE,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC3C,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;aACnE,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,OAAO,CAAC,WAAW,CACvB;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE;oBACrB,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE;oBACtB,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE;iBACvB;aACF;SACF,EACD,GAAG,CACJ,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,QAAoB,CAAC;QACzB,IAAI,QAAoB,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;YACvC,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;YACvC,QAAQ,GAAG,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG;YACV,WAAW,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;gBAClC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;gBAChC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBACpB,MAAM,QAAQ,CAAC;gBACjB,CAAC;qBAAM,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC3B,MAAM,QAAQ,CAAC;gBACjB,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;YACpB,aAAa,EAAE,MAAM;SACtB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QACtF,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAE5E,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAE1C,QAAS,EAAE,CAAC;QACZ,QAAS,EAAE,CAAC;QACZ,MAAM,aAAa,CAAC;QAEpB,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import type { Command, Event } from '@auto-engineer/message-bus';
2
+ import type { SettledEvent } from '../projections/settled-instance-projection';
3
+ import type { PipelineReadModel } from '../store/pipeline-read-model';
2
4
  type SendFunction = (commandType: string, data: unknown) => void;
3
5
  type SettledHandler = (events: Record<string, Event[]>, send: SendFunction) => void | {
4
6
  persist: boolean;
@@ -12,31 +14,32 @@ interface SettledErrorContext {
12
14
  correlationId: string;
13
15
  }
14
16
  interface SettledTrackerOptions {
17
+ readModel: PipelineReadModel;
15
18
  onDispatch?: (commandType: string, data: unknown, correlationId: string) => void;
16
19
  onError?: (error: unknown, context: SettledErrorContext) => void;
20
+ onEventEmit?: (event: SettledEvent) => void | Promise<void>;
17
21
  }
18
22
  export declare class SettledTracker {
19
23
  private handlerTemplates;
20
- private handlerInstances;
21
24
  private commandToTemplateIds;
25
+ private readonly readModel;
22
26
  private readonly onDispatch?;
23
27
  private readonly onError?;
24
- constructor(options?: SettledTrackerOptions);
28
+ private readonly onEventEmit?;
29
+ constructor(options: SettledTrackerOptions);
25
30
  registerHandler(registration: SettledHandlerRegistration): void;
26
31
  getRegisteredHandlerCount(): number;
27
- getActiveInstanceCount(): number;
28
- onCommandStarted(command: Command): void;
29
- isWaitingFor(correlationId: string, commandType: string): boolean;
30
- onEventReceived(event: Event, sourceCommandType: string): void;
32
+ onCommandStarted(command: Command): Promise<void>;
33
+ isWaitingForAsync(correlationId: string, commandType: string): Promise<boolean>;
34
+ onEventReceived(event: Event, sourceCommandType: string): Promise<void>;
31
35
  private isValidId;
32
36
  private generateTemplateId;
33
- private generateInstanceId;
34
37
  private ensureInstanceExists;
35
38
  private markCommandStarted;
39
+ private emitEvent;
36
40
  private checkAndFireHandler;
37
- private collectEvents;
41
+ private collectEventsFromDoc;
38
42
  private shouldPersist;
39
- private resetTrackers;
40
43
  }
41
44
  export {};
42
45
  //# sourceMappingURL=settled-tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settled-tracker.d.ts","sourceRoot":"","sources":["../../../src/runtime/settled-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEjE,KAAK,YAAY,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3G,UAAU,0BAA0B;IAClC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,OAAO,EAAE,cAAc,CAAC;CACzB;AAqBD,UAAU,mBAAmB;IAC3B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,qBAAqB;IAC7B,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAClE;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsE;IAClG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAyD;gBAEtE,OAAO,CAAC,EAAE,qBAAqB;IAK3C,eAAe,CAAC,YAAY,EAAE,0BAA0B,GAAG,IAAI;IAe/D,yBAAyB,IAAI,MAAM;IAInC,sBAAsB,IAAI,MAAM;IAIhC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAqBxC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAYjE,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI;IAqB9D,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;CAOtB"}
1
+ {"version":3,"file":"settled-tracker.d.ts","sourceRoot":"","sources":["../../../src/runtime/settled-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,4CAA4C,CAAC;AACxG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,KAAK,YAAY,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;AAEjE,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3G,UAAU,0BAA0B;IAClC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,OAAO,EAAE,cAAc,CAAC;CACzB;AAOD,UAAU,mBAAmB;IAC3B,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,qBAAqB;IAC7B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAsE;IAClG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAyD;IAClF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAgD;gBAEjE,OAAO,EAAE,qBAAqB;IAO1C,eAAe,CAAC,YAAY,EAAE,0BAA0B,GAAG,IAAI;IAe/D,yBAAyB,IAAI,MAAM;IAI7B,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBjD,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW/E,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B7E,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kBAAkB;YAIZ,oBAAoB;YAoBpB,kBAAkB;YAWlB,SAAS;YAIT,mBAAmB;IAwDjC,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,aAAa;CAStB"}
@@ -1,10 +1,11 @@
1
1
  export class SettledTracker {
2
2
  constructor(options) {
3
3
  this.handlerTemplates = new Map();
4
- this.handlerInstances = new Map();
5
4
  this.commandToTemplateIds = new Map();
6
- this.onDispatch = options?.onDispatch;
7
- this.onError = options?.onError;
5
+ this.readModel = options.readModel;
6
+ this.onDispatch = options.onDispatch;
7
+ this.onError = options.onError;
8
+ this.onEventEmit = options.onEventEmit;
8
9
  }
9
10
  registerHandler(registration) {
10
11
  const templateId = this.generateTemplateId(registration);
@@ -21,10 +22,7 @@ export class SettledTracker {
21
22
  getRegisteredHandlerCount() {
22
23
  return this.handlerTemplates.size;
23
24
  }
24
- getActiveInstanceCount() {
25
- return this.handlerInstances.size;
26
- }
27
- onCommandStarted(command) {
25
+ async onCommandStarted(command) {
28
26
  const { type: commandType, correlationId, requestId } = command;
29
27
  if (!this.isValidId(correlationId) || !this.isValidId(requestId)) {
30
28
  return;
@@ -36,36 +34,43 @@ export class SettledTracker {
36
34
  for (const templateId of templateIds) {
37
35
  const template = this.handlerTemplates.get(templateId);
38
36
  if (template) {
39
- this.ensureInstanceExists(template, correlationId);
40
- this.markCommandStarted(template.id, correlationId, commandType);
37
+ await this.ensureInstanceExists(template, correlationId);
38
+ await this.markCommandStarted(template.id, correlationId, commandType);
41
39
  }
42
40
  }
43
41
  }
44
- isWaitingFor(correlationId, commandType) {
45
- for (const instance of this.handlerInstances.values()) {
46
- if (instance.correlationId === correlationId) {
47
- const tracker = instance.commandTrackers.get(commandType);
48
- if (tracker?.hasStarted === true && tracker.hasCompleted === false) {
49
- return true;
50
- }
42
+ async isWaitingForAsync(correlationId, commandType) {
43
+ const instances = await this.readModel.getActiveSettledInstances(correlationId);
44
+ for (const instance of instances) {
45
+ const tracker = instance.commandTrackers.find((t) => t.commandType === commandType);
46
+ if (tracker?.hasStarted === true && tracker.hasCompleted === false) {
47
+ return true;
51
48
  }
52
49
  }
53
50
  return false;
54
51
  }
55
- onEventReceived(event, sourceCommandType) {
52
+ async onEventReceived(event, sourceCommandType) {
56
53
  const correlationId = event.correlationId;
57
54
  if (!this.isValidId(correlationId)) {
58
55
  return;
59
56
  }
60
- for (const [instanceId, instance] of this.handlerInstances) {
61
- if (instance.correlationId !== correlationId) {
62
- continue;
63
- }
64
- const tracker = instance.commandTrackers.get(sourceCommandType);
57
+ const instances = await this.readModel.getActiveSettledInstances(correlationId);
58
+ for (const instanceDoc of instances) {
59
+ const tracker = instanceDoc.commandTrackers.find((t) => t.commandType === sourceCommandType);
65
60
  if (tracker && !tracker.hasCompleted) {
66
- tracker.events.push(event);
67
- tracker.hasCompleted = true;
68
- this.checkAndFireHandler(instanceId, instance);
61
+ await this.emitEvent({
62
+ type: 'SettledEventReceived',
63
+ data: {
64
+ templateId: instanceDoc.templateId,
65
+ correlationId,
66
+ commandType: sourceCommandType,
67
+ event,
68
+ },
69
+ });
70
+ const updatedInstance = await this.readModel.getSettledInstance(instanceDoc.templateId, correlationId);
71
+ if (updatedInstance) {
72
+ await this.checkAndFireHandler(updatedInstance);
73
+ }
69
74
  }
70
75
  }
71
76
  }
@@ -75,71 +80,88 @@ export class SettledTracker {
75
80
  generateTemplateId(registration) {
76
81
  return `template-${registration.commandTypes.join(',')}`;
77
82
  }
78
- generateInstanceId(templateId, correlationId) {
79
- return `${templateId}-${correlationId}`;
80
- }
81
- ensureInstanceExists(template, correlationId) {
82
- const instanceId = this.generateInstanceId(template.id, correlationId);
83
- if (this.handlerInstances.has(instanceId)) {
84
- return;
83
+ async ensureInstanceExists(template, correlationId) {
84
+ const existing = await this.readModel.getSettledInstance(template.id, correlationId);
85
+ const isActiveInstance = existing !== null && existing.status === 'active';
86
+ if (isActiveInstance) {
87
+ return false;
85
88
  }
86
- const commandTrackers = new Map();
87
- for (const commandType of template.registration.commandTypes) {
88
- commandTrackers.set(commandType, {
89
+ await this.emitEvent({
90
+ type: 'SettledInstanceCreated',
91
+ data: {
92
+ templateId: template.id,
93
+ correlationId,
94
+ commandTypes: template.registration.commandTypes,
95
+ },
96
+ });
97
+ return true;
98
+ }
99
+ async markCommandStarted(templateId, correlationId, commandType) {
100
+ await this.emitEvent({
101
+ type: 'SettledCommandStarted',
102
+ data: {
103
+ templateId,
104
+ correlationId,
89
105
  commandType,
90
- hasStarted: false,
91
- hasCompleted: false,
92
- events: [],
93
- });
94
- }
95
- this.handlerInstances.set(instanceId, {
96
- templateId: template.id,
97
- correlationId,
98
- registration: template.registration,
99
- commandTrackers,
106
+ },
100
107
  });
101
108
  }
102
- markCommandStarted(templateId, correlationId, commandType) {
103
- const instanceId = this.generateInstanceId(templateId, correlationId);
104
- const instance = this.handlerInstances.get(instanceId);
105
- const tracker = instance?.commandTrackers.get(commandType);
106
- if (tracker) {
107
- tracker.hasStarted = true;
108
- tracker.hasCompleted = false;
109
- }
109
+ async emitEvent(event) {
110
+ await this.onEventEmit?.(event);
110
111
  }
111
- checkAndFireHandler(instanceId, instance) {
112
- const allComplete = Array.from(instance.commandTrackers.values()).every((tracker) => tracker.hasStarted && tracker.hasCompleted);
112
+ async checkAndFireHandler(instanceDoc) {
113
+ const allComplete = instanceDoc.commandTrackers.every((tracker) => tracker.hasStarted && tracker.hasCompleted);
113
114
  if (!allComplete) {
114
115
  return;
115
116
  }
116
- const eventsByCommandType = this.collectEvents(instance);
117
+ const template = this.handlerTemplates.get(instanceDoc.templateId);
118
+ if (!template) {
119
+ return;
120
+ }
121
+ const eventsByCommandType = this.collectEventsFromDoc(instanceDoc);
117
122
  try {
118
123
  const send = (commandType, data) => {
119
124
  if (this.onDispatch) {
120
- this.onDispatch(commandType, data, instance.correlationId);
125
+ this.onDispatch(commandType, data, instanceDoc.correlationId);
121
126
  }
122
127
  };
123
- const result = instance.registration.handler(eventsByCommandType, send);
124
- if (this.shouldPersist(result)) {
125
- this.resetTrackers(instance);
126
- }
127
- else {
128
- this.handlerInstances.delete(instanceId);
129
- }
128
+ const result = template.registration.handler(eventsByCommandType, send);
129
+ const persist = this.shouldPersist(result);
130
+ await this.emitEvent({
131
+ type: 'SettledHandlerFired',
132
+ data: {
133
+ templateId: instanceDoc.templateId,
134
+ correlationId: instanceDoc.correlationId,
135
+ persist,
136
+ },
137
+ });
138
+ await this.emitEvent({
139
+ type: 'SettledInstanceReset',
140
+ data: {
141
+ templateId: instanceDoc.templateId,
142
+ correlationId: instanceDoc.correlationId,
143
+ },
144
+ });
130
145
  }
131
146
  catch (error) {
147
+ const commandTypes = instanceDoc.commandTrackers.map((t) => t.commandType);
132
148
  this.onError?.(error, {
133
- commandTypes: instance.registration.commandTypes,
134
- correlationId: instance.correlationId,
149
+ commandTypes,
150
+ correlationId: instanceDoc.correlationId,
151
+ });
152
+ await this.emitEvent({
153
+ type: 'SettledInstanceCleaned',
154
+ data: {
155
+ templateId: instanceDoc.templateId,
156
+ correlationId: instanceDoc.correlationId,
157
+ },
135
158
  });
136
- this.handlerInstances.delete(instanceId);
137
159
  }
138
160
  }
139
- collectEvents(instance) {
161
+ collectEventsFromDoc(instanceDoc) {
140
162
  const events = {};
141
- for (const [commandType, tracker] of instance.commandTrackers) {
142
- events[commandType] = [...tracker.events];
163
+ for (const tracker of instanceDoc.commandTrackers) {
164
+ events[tracker.commandType] = [...tracker.events];
143
165
  }
144
166
  return events;
145
167
  }
@@ -150,12 +172,5 @@ export class SettledTracker {
150
172
  'persist' in result &&
151
173
  result.persist === true);
152
174
  }
153
- resetTrackers(instance) {
154
- for (const tracker of instance.commandTrackers.values()) {
155
- tracker.hasStarted = false;
156
- tracker.hasCompleted = false;
157
- tracker.events = [];
158
- }
159
- }
160
175
  }
161
176
  //# sourceMappingURL=settled-tracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"settled-tracker.js","sourceRoot":"","sources":["../../../src/runtime/settled-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settled-tracker.js","sourceRoot":"","sources":["../../../src/runtime/settled-tracker.ts"],"names":[],"mappings":"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"}