@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-status-projection.specs.js","sourceRoot":"","sources":["../../../src/projections/item-status-projection.specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface LatestRunDocument {
2
+ [key: string]: unknown;
3
+ latestCorrelationId: string;
4
+ triggerCommand: string;
5
+ }
6
+ interface PipelineRunStartedEvent {
7
+ type: 'PipelineRunStarted';
8
+ data: {
9
+ correlationId: string;
10
+ triggerCommand: string;
11
+ };
12
+ }
13
+ export declare function evolve(_document: LatestRunDocument | null, event: PipelineRunStartedEvent): LatestRunDocument;
14
+ export {};
15
+ //# sourceMappingURL=latest-run-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latest-run-projection.d.ts","sourceRoot":"","sources":["../../../src/projections/latest-run-projection.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI,EAAE,KAAK,EAAE,uBAAuB,GAAG,iBAAiB,CAK7G"}
@@ -0,0 +1,7 @@
1
+ export function evolve(_document, event) {
2
+ return {
3
+ latestCorrelationId: event.data.correlationId,
4
+ triggerCommand: event.data.triggerCommand,
5
+ };
6
+ }
7
+ //# sourceMappingURL=latest-run-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latest-run-projection.js","sourceRoot":"","sources":["../../../src/projections/latest-run-projection.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,MAAM,CAAC,SAAmC,EAAE,KAA8B;IACxF,OAAO;QACL,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;QAC7C,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;KAC1C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=latest-run-projection.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latest-run-projection.specs.d.ts","sourceRoot":"","sources":["../../../src/projections/latest-run-projection.specs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { evolve } from './latest-run-projection.js';
3
+ describe('LatestRunProjection', () => {
4
+ describe('evolve', () => {
5
+ it('tracks latest correlationId when PipelineRunStarted applied', () => {
6
+ const event = {
7
+ type: 'PipelineRunStarted',
8
+ data: { correlationId: 'c1', triggerCommand: 'StartPipeline' },
9
+ };
10
+ const result = evolve(null, event);
11
+ expect(result).toEqual({
12
+ latestCorrelationId: 'c1',
13
+ triggerCommand: 'StartPipeline',
14
+ });
15
+ });
16
+ it('updates to newest correlationId when second PipelineRunStarted applied', () => {
17
+ const existing = {
18
+ latestCorrelationId: 'c1',
19
+ triggerCommand: 'StartPipeline',
20
+ };
21
+ const event = {
22
+ type: 'PipelineRunStarted',
23
+ data: { correlationId: 'c2', triggerCommand: 'StartPipeline' },
24
+ };
25
+ const result = evolve(existing, event);
26
+ expect(result).toEqual({
27
+ latestCorrelationId: 'c2',
28
+ triggerCommand: 'StartPipeline',
29
+ });
30
+ });
31
+ });
32
+ });
33
+ //# sourceMappingURL=latest-run-projection.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latest-run-projection.specs.js","sourceRoot":"","sources":["../../../src/projections/latest-run-projection.specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,MAAM,EAA0B,MAAM,yBAAyB,CAAC;AAEzE,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,oBAA6B;gBACnC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE;aAC/D,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAEnC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,mBAAmB,EAAE,IAAI;gBACzB,cAAc,EAAE,eAAe;aAChC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;YAChF,MAAM,QAAQ,GAAsB;gBAClC,mBAAmB,EAAE,IAAI;gBACzB,cAAc,EAAE,eAAe;aAChC,CAAC;YACF,MAAM,KAAK,GAAG;gBACZ,IAAI,EAAE,oBAA6B;gBACnC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE;aAC/D,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAEvC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,mBAAmB,EAAE,IAAI;gBACzB,cAAc,EAAE,eAAe;aAChC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import type { NodeStatus } from '../graph/types';
2
+ export interface MessageLogDocument {
3
+ [key: string]: unknown;
4
+ correlationId: string;
5
+ requestId: string;
6
+ messageType: 'command' | 'event';
7
+ messageName: string;
8
+ messageData: Record<string, unknown>;
9
+ timestamp: Date;
10
+ }
11
+ export interface CommandDispatchedEvent {
12
+ type: 'CommandDispatched';
13
+ data: {
14
+ correlationId: string;
15
+ requestId: string;
16
+ commandType: string;
17
+ commandData: Record<string, unknown>;
18
+ timestamp: Date;
19
+ };
20
+ }
21
+ export interface DomainEventEmittedEvent {
22
+ type: 'DomainEventEmitted';
23
+ data: {
24
+ correlationId: string;
25
+ requestId: string;
26
+ eventType: string;
27
+ eventData: Record<string, unknown>;
28
+ timestamp: Date;
29
+ };
30
+ }
31
+ export interface PipelineRunStartedLogEvent {
32
+ type: 'PipelineRunStarted';
33
+ data: {
34
+ correlationId: string;
35
+ triggerCommand: string;
36
+ };
37
+ }
38
+ export interface NodeStatusChangedLogEvent {
39
+ type: 'NodeStatusChanged';
40
+ data: {
41
+ correlationId: string;
42
+ commandName: string;
43
+ status: NodeStatus;
44
+ previousStatus: NodeStatus;
45
+ pendingCount: number;
46
+ endedCount: number;
47
+ };
48
+ }
49
+ export type MessageLogEvent = CommandDispatchedEvent | DomainEventEmittedEvent | PipelineRunStartedLogEvent | NodeStatusChangedLogEvent;
50
+ export declare function evolve(_document: MessageLogDocument | null, event: MessageLogEvent): MessageLogDocument;
51
+ //# sourceMappingURL=message-log-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-log-projection.d.ts","sourceRoot":"","sources":["../../../src/projections/message-log-projection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrC,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,UAAU,CAAC;QACnB,cAAc,EAAE,UAAU,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GACvB,sBAAsB,GACtB,uBAAuB,GACvB,0BAA0B,GAC1B,yBAAyB,CAAC;AAE9B,wBAAgB,MAAM,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI,EAAE,KAAK,EAAE,eAAe,GAAG,kBAAkB,CAmDvG"}
@@ -0,0 +1,51 @@
1
+ import { nanoid } from 'nanoid';
2
+ export function evolve(_document, event) {
3
+ if (event.type === 'CommandDispatched') {
4
+ return {
5
+ correlationId: event.data.correlationId,
6
+ requestId: event.data.requestId,
7
+ messageType: 'command',
8
+ messageName: event.data.commandType,
9
+ messageData: event.data.commandData,
10
+ timestamp: event.data.timestamp,
11
+ };
12
+ }
13
+ if (event.type === 'DomainEventEmitted') {
14
+ return {
15
+ correlationId: event.data.correlationId,
16
+ requestId: event.data.requestId,
17
+ messageType: 'event',
18
+ messageName: event.data.eventType,
19
+ messageData: event.data.eventData,
20
+ timestamp: event.data.timestamp,
21
+ };
22
+ }
23
+ if (event.type === 'PipelineRunStarted') {
24
+ return {
25
+ correlationId: event.data.correlationId,
26
+ requestId: event.data.correlationId,
27
+ messageType: 'event',
28
+ messageName: 'PipelineRunStarted',
29
+ messageData: {
30
+ correlationId: event.data.correlationId,
31
+ triggerCommand: event.data.triggerCommand,
32
+ },
33
+ timestamp: new Date(),
34
+ };
35
+ }
36
+ return {
37
+ correlationId: event.data.correlationId,
38
+ requestId: nanoid(),
39
+ messageType: 'event',
40
+ messageName: 'NodeStatusChanged',
41
+ messageData: {
42
+ nodeId: `cmd:${event.data.commandName}`,
43
+ status: event.data.status,
44
+ previousStatus: event.data.previousStatus,
45
+ pendingCount: event.data.pendingCount,
46
+ endedCount: event.data.endedCount,
47
+ },
48
+ timestamp: new Date(),
49
+ };
50
+ }
51
+ //# sourceMappingURL=message-log-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-log-projection.js","sourceRoot":"","sources":["../../../src/projections/message-log-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA6DhC,MAAM,UAAU,MAAM,CAAC,SAAoC,EAAE,KAAsB;IACjF,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACvC,OAAO;YACL,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;YACvC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YAC/B,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;YACnC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;YACnC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACxC,OAAO;YACL,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;YACvC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YAC/B,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YACjC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;YACjC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QACxC,OAAO;YACL,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;YACvC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;YACnC,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,oBAAoB;YACjC,WAAW,EAAE;gBACX,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;gBACvC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;aAC1C;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;QACvC,SAAS,EAAE,MAAM,EAAE;QACnB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE;YACX,MAAM,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;YACvC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;YACzB,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc;YACzC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;YACrC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;SAClC;QACD,SAAS,EAAE,IAAI,IAAI,EAAE;KACtB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=message-log-projection.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-log-projection.specs.d.ts","sourceRoot":"","sources":["../../../src/projections/message-log-projection.specs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { evolve, } from './message-log-projection.js';
3
+ describe('MessageLogProjection', () => {
4
+ describe('CommandDispatched', () => {
5
+ it('creates message log entry for dispatched command', () => {
6
+ const event = {
7
+ type: 'CommandDispatched',
8
+ data: {
9
+ correlationId: 'c1',
10
+ requestId: 'r1',
11
+ commandType: 'CreateUser',
12
+ commandData: { name: 'Alice' },
13
+ timestamp: new Date('2025-01-01T00:00:00Z'),
14
+ },
15
+ };
16
+ const result = evolve(null, event);
17
+ expect(result).toEqual({
18
+ correlationId: 'c1',
19
+ requestId: 'r1',
20
+ messageType: 'command',
21
+ messageName: 'CreateUser',
22
+ messageData: { name: 'Alice' },
23
+ timestamp: new Date('2025-01-01T00:00:00Z'),
24
+ });
25
+ });
26
+ });
27
+ describe('DomainEventEmitted', () => {
28
+ it('creates message log entry for emitted domain event', () => {
29
+ const event = {
30
+ type: 'DomainEventEmitted',
31
+ data: {
32
+ correlationId: 'c1',
33
+ requestId: 'r2',
34
+ eventType: 'UserCreated',
35
+ eventData: { userId: '123', name: 'Alice' },
36
+ timestamp: new Date('2025-01-01T00:00:01Z'),
37
+ },
38
+ };
39
+ const result = evolve(null, event);
40
+ expect(result).toEqual({
41
+ correlationId: 'c1',
42
+ requestId: 'r2',
43
+ messageType: 'event',
44
+ messageName: 'UserCreated',
45
+ messageData: { userId: '123', name: 'Alice' },
46
+ timestamp: new Date('2025-01-01T00:00:01Z'),
47
+ });
48
+ });
49
+ });
50
+ describe('PipelineRunStarted', () => {
51
+ it('creates message log entry for pipeline run started', () => {
52
+ const event = {
53
+ type: 'PipelineRunStarted',
54
+ data: {
55
+ correlationId: 'c1',
56
+ triggerCommand: 'CreateUser',
57
+ },
58
+ };
59
+ const result = evolve(null, event);
60
+ expect(result).toEqual({
61
+ correlationId: 'c1',
62
+ requestId: 'c1',
63
+ messageType: 'event',
64
+ messageName: 'PipelineRunStarted',
65
+ messageData: { correlationId: 'c1', triggerCommand: 'CreateUser' },
66
+ timestamp: expect.any(Date),
67
+ });
68
+ });
69
+ });
70
+ describe('NodeStatusChanged', () => {
71
+ it('creates message log entry for node status changed', () => {
72
+ const event = {
73
+ type: 'NodeStatusChanged',
74
+ data: {
75
+ correlationId: 'c1',
76
+ commandName: 'CreateUser',
77
+ status: 'running',
78
+ previousStatus: 'idle',
79
+ pendingCount: 1,
80
+ endedCount: 0,
81
+ },
82
+ };
83
+ const result = evolve(null, event);
84
+ expect(result).toEqual({
85
+ correlationId: 'c1',
86
+ requestId: expect.any(String),
87
+ messageType: 'event',
88
+ messageName: 'NodeStatusChanged',
89
+ messageData: {
90
+ nodeId: 'cmd:CreateUser',
91
+ status: 'running',
92
+ previousStatus: 'idle',
93
+ pendingCount: 1,
94
+ endedCount: 0,
95
+ },
96
+ timestamp: expect.any(Date),
97
+ });
98
+ });
99
+ });
100
+ });
101
+ //# sourceMappingURL=message-log-projection.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-log-projection.specs.js","sourceRoot":"","sources":["../../../src/projections/message-log-projection.specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { NodeStatus } from '../graph/types';
2
+ export interface NodeStatusDocument {
3
+ [key: string]: unknown;
4
+ correlationId: string;
5
+ commandName: string;
6
+ status: NodeStatus;
7
+ pendingCount: number;
8
+ endedCount: number;
9
+ }
10
+ export interface NodeStatusChangedEvent {
11
+ type: 'NodeStatusChanged';
12
+ data: {
13
+ correlationId: string;
14
+ commandName: string;
15
+ nodeId: string;
16
+ status: NodeStatus;
17
+ previousStatus: NodeStatus;
18
+ pendingCount: number;
19
+ endedCount: number;
20
+ };
21
+ }
22
+ export declare function evolve(_document: NodeStatusDocument | null, event: NodeStatusChangedEvent): NodeStatusDocument;
23
+ //# sourceMappingURL=node-status-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-status-projection.d.ts","sourceRoot":"","sources":["../../../src/projections/node-status-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC;QACnB,cAAc,EAAE,UAAU,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI,EAAE,KAAK,EAAE,sBAAsB,GAAG,kBAAkB,CAQ9G"}
@@ -0,0 +1,10 @@
1
+ export function evolve(_document, event) {
2
+ return {
3
+ correlationId: event.data.correlationId,
4
+ commandName: event.data.commandName,
5
+ status: event.data.status,
6
+ pendingCount: event.data.pendingCount,
7
+ endedCount: event.data.endedCount,
8
+ };
9
+ }
10
+ //# sourceMappingURL=node-status-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-status-projection.js","sourceRoot":"","sources":["../../../src/projections/node-status-projection.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,MAAM,CAAC,SAAoC,EAAE,KAA6B;IACxF,OAAO;QACL,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;QACvC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;QACnC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM;QACzB,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;QACrC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=node-status-projection.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-status-projection.specs.d.ts","sourceRoot":"","sources":["../../../src/projections/node-status-projection.specs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,116 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { evolve } from './node-status-projection.js';
3
+ describe('NodeStatusProjection', () => {
4
+ describe('evolve', () => {
5
+ it('creates node document with running status when command starts', () => {
6
+ const event = {
7
+ type: 'NodeStatusChanged',
8
+ data: {
9
+ correlationId: 'c1',
10
+ commandName: 'ProcessItem',
11
+ nodeId: 'cmd:ProcessItem',
12
+ status: 'running',
13
+ previousStatus: 'idle',
14
+ pendingCount: 1,
15
+ endedCount: 0,
16
+ },
17
+ };
18
+ const result = evolve(null, event);
19
+ expect(result).toEqual({
20
+ correlationId: 'c1',
21
+ commandName: 'ProcessItem',
22
+ status: 'running',
23
+ pendingCount: 1,
24
+ endedCount: 0,
25
+ });
26
+ });
27
+ it('updates node document to success status when command completes', () => {
28
+ const existing = {
29
+ correlationId: 'c1',
30
+ commandName: 'ProcessItem',
31
+ status: 'running',
32
+ pendingCount: 1,
33
+ endedCount: 0,
34
+ };
35
+ const event = {
36
+ type: 'NodeStatusChanged',
37
+ data: {
38
+ correlationId: 'c1',
39
+ commandName: 'ProcessItem',
40
+ nodeId: 'cmd:ProcessItem',
41
+ status: 'success',
42
+ previousStatus: 'running',
43
+ pendingCount: 0,
44
+ endedCount: 1,
45
+ },
46
+ };
47
+ const result = evolve(existing, event);
48
+ expect(result).toEqual({
49
+ correlationId: 'c1',
50
+ commandName: 'ProcessItem',
51
+ status: 'success',
52
+ pendingCount: 0,
53
+ endedCount: 1,
54
+ });
55
+ });
56
+ it('updates node document to error status when command fails', () => {
57
+ const existing = {
58
+ correlationId: 'c1',
59
+ commandName: 'ProcessItem',
60
+ status: 'running',
61
+ pendingCount: 1,
62
+ endedCount: 0,
63
+ };
64
+ const event = {
65
+ type: 'NodeStatusChanged',
66
+ data: {
67
+ correlationId: 'c1',
68
+ commandName: 'ProcessItem',
69
+ nodeId: 'cmd:ProcessItem',
70
+ status: 'error',
71
+ previousStatus: 'running',
72
+ pendingCount: 0,
73
+ endedCount: 1,
74
+ },
75
+ };
76
+ const result = evolve(existing, event);
77
+ expect(result).toEqual({
78
+ correlationId: 'c1',
79
+ commandName: 'ProcessItem',
80
+ status: 'error',
81
+ pendingCount: 0,
82
+ endedCount: 1,
83
+ });
84
+ });
85
+ it('tracks pending and ended counts for parallel items', () => {
86
+ const existing = {
87
+ correlationId: 'c1',
88
+ commandName: 'ProcessItem',
89
+ status: 'running',
90
+ pendingCount: 3,
91
+ endedCount: 2,
92
+ };
93
+ const event = {
94
+ type: 'NodeStatusChanged',
95
+ data: {
96
+ correlationId: 'c1',
97
+ commandName: 'ProcessItem',
98
+ nodeId: 'cmd:ProcessItem',
99
+ status: 'running',
100
+ previousStatus: 'running',
101
+ pendingCount: 2,
102
+ endedCount: 3,
103
+ },
104
+ };
105
+ const result = evolve(existing, event);
106
+ expect(result).toEqual({
107
+ correlationId: 'c1',
108
+ commandName: 'ProcessItem',
109
+ status: 'running',
110
+ pendingCount: 2,
111
+ endedCount: 3,
112
+ });
113
+ });
114
+ });
115
+ });
116
+ //# sourceMappingURL=node-status-projection.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-status-projection.specs.js","sourceRoot":"","sources":["../../../src/projections/node-status-projection.specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import type { Event } from '@auto-engineer/message-bus';
2
+ interface ItemTracker {
3
+ key: string;
4
+ phase: string;
5
+ dispatched: boolean;
6
+ completed: boolean;
7
+ }
8
+ export interface PhasedExecutionDocument {
9
+ [key: string]: unknown;
10
+ executionId: string;
11
+ correlationId: string;
12
+ handlerId: string;
13
+ triggerEvent: Event;
14
+ items: ItemTracker[];
15
+ phases: readonly string[];
16
+ currentPhaseIndex: number;
17
+ status: 'active' | 'completed' | 'failed';
18
+ failedItems: Array<{
19
+ key: string;
20
+ error: unknown;
21
+ }>;
22
+ }
23
+ export interface PhasedExecutionStartedEvent {
24
+ type: 'PhasedExecutionStarted';
25
+ data: {
26
+ executionId: string;
27
+ correlationId: string;
28
+ handlerId: string;
29
+ triggerEvent: Event;
30
+ items: ItemTracker[];
31
+ phases: readonly string[];
32
+ };
33
+ }
34
+ export interface PhasedItemDispatchedEvent {
35
+ type: 'PhasedItemDispatched';
36
+ data: {
37
+ executionId: string;
38
+ itemKey: string;
39
+ phase: string;
40
+ };
41
+ }
42
+ export interface PhasedItemCompletedEvent {
43
+ type: 'PhasedItemCompleted';
44
+ data: {
45
+ executionId: string;
46
+ itemKey: string;
47
+ resultEvent: Event;
48
+ };
49
+ }
50
+ export interface PhasedItemFailedEvent {
51
+ type: 'PhasedItemFailed';
52
+ data: {
53
+ executionId: string;
54
+ itemKey: string;
55
+ error: unknown;
56
+ };
57
+ }
58
+ export interface PhasedPhaseAdvancedEvent {
59
+ type: 'PhasedPhaseAdvanced';
60
+ data: {
61
+ executionId: string;
62
+ fromPhase: number;
63
+ toPhase: number;
64
+ };
65
+ }
66
+ export interface PhasedExecutionCompletedEvent {
67
+ type: 'PhasedExecutionCompleted';
68
+ data: {
69
+ executionId: string;
70
+ success: boolean;
71
+ results: string[];
72
+ };
73
+ }
74
+ export type PhasedExecutionEvent = PhasedExecutionStartedEvent | PhasedItemDispatchedEvent | PhasedItemCompletedEvent | PhasedItemFailedEvent | PhasedPhaseAdvancedEvent | PhasedExecutionCompletedEvent;
75
+ export declare function evolve(document: PhasedExecutionDocument | null, event: PhasedExecutionEvent): PhasedExecutionDocument;
76
+ export {};
77
+ //# sourceMappingURL=phased-execution-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phased-execution-projection.d.ts","sourceRoot":"","sources":["../../../src/projections/phased-execution-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,KAAK,CAAC;IACpB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1C,WAAW,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,wBAAwB,CAAC;IAC/B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,KAAK,CAAC;QACpB,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,KAAK,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,0BAA0B,CAAC;IACjC,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,GAC5B,2BAA2B,GAC3B,yBAAyB,GACzB,wBAAwB,GACxB,qBAAqB,GACrB,wBAAwB,GACxB,6BAA6B,CAAC;AAyBlC,wBAAgB,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,EAAE,KAAK,EAAE,oBAAoB,GAAG,uBAAuB,CAmCrH"}
@@ -0,0 +1,54 @@
1
+ function assertDocument(document, eventType) {
2
+ if (document === null) {
3
+ throw new Error(`Cannot apply ${eventType} to null document`);
4
+ }
5
+ }
6
+ function evolveItemDispatched(document, itemKey) {
7
+ return {
8
+ ...document,
9
+ items: document.items.map((item) => (item.key === itemKey ? { ...item, dispatched: true } : item)),
10
+ };
11
+ }
12
+ function evolveItemCompleted(document, itemKey) {
13
+ return {
14
+ ...document,
15
+ items: document.items.map((item) => (item.key === itemKey ? { ...item, completed: true } : item)),
16
+ };
17
+ }
18
+ export function evolve(document, event) {
19
+ switch (event.type) {
20
+ case 'PhasedExecutionStarted': {
21
+ const { executionId, correlationId, handlerId, triggerEvent, items, phases } = event.data;
22
+ return {
23
+ executionId,
24
+ correlationId,
25
+ handlerId,
26
+ triggerEvent,
27
+ items: items.map((item) => ({ ...item })),
28
+ phases,
29
+ currentPhaseIndex: 0,
30
+ status: 'active',
31
+ failedItems: [],
32
+ };
33
+ }
34
+ case 'PhasedItemDispatched':
35
+ assertDocument(document, event.type);
36
+ return evolveItemDispatched(document, event.data.itemKey);
37
+ case 'PhasedItemCompleted':
38
+ assertDocument(document, event.type);
39
+ return evolveItemCompleted(document, event.data.itemKey);
40
+ case 'PhasedItemFailed':
41
+ assertDocument(document, event.type);
42
+ return {
43
+ ...document,
44
+ failedItems: [...document.failedItems, { key: event.data.itemKey, error: event.data.error }],
45
+ };
46
+ case 'PhasedPhaseAdvanced':
47
+ assertDocument(document, event.type);
48
+ return { ...document, currentPhaseIndex: event.data.toPhase };
49
+ case 'PhasedExecutionCompleted':
50
+ assertDocument(document, event.type);
51
+ return { ...document, status: event.data.success ? 'completed' : 'failed' };
52
+ }
53
+ }
54
+ //# sourceMappingURL=phased-execution-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phased-execution-projection.js","sourceRoot":"","sources":["../../../src/projections/phased-execution-projection.ts"],"names":[],"mappings":"AAuFA,SAAS,cAAc,CACrB,QAAwC,EACxC,SAAiB;IAEjB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,gBAAgB,SAAS,mBAAmB,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAiC,EAAE,OAAe;IAC9E,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAiC,EAAE,OAAe;IAC7E,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;KAClG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,QAAwC,EAAE,KAA2B;IAC1F,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC9B,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YAC1F,OAAO;gBACL,WAAW;gBACX,aAAa;gBACb,SAAS;gBACT,YAAY;gBACZ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBACzC,MAAM;gBACN,iBAAiB,EAAE,CAAC;gBACpB,MAAM,EAAE,QAAQ;gBAChB,WAAW,EAAE,EAAE;aAChB,CAAC;QACJ,CAAC;QACD,KAAK,sBAAsB;YACzB,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,KAAK,qBAAqB;YACxB,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,KAAK,kBAAkB;YACrB,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO;gBACL,GAAG,QAAQ;gBACX,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;aAC7F,CAAC;QACJ,KAAK,qBAAqB;YACxB,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,EAAE,GAAG,QAAQ,EAAE,iBAAiB,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAChE,KAAK,0BAA0B;YAC7B,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACrC,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChF,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=phased-execution-projection.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phased-execution-projection.specs.d.ts","sourceRoot":"","sources":["../../../src/projections/phased-execution-projection.specs.ts"],"names":[],"mappings":""}