@auto-engineer/server-generator-apollo-emmett 1.71.0 → 1.72.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/server-generator-apollo-emmett@1.71.0 build /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
2
+ > @auto-engineer/server-generator-apollo-emmett@1.72.0 build /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
3
3
  > tsc && tsx ../../scripts/fix-esm-imports.ts && rm -rf dist/src/codegen/templates && mkdir -p dist/src/codegen && cp -r src/codegen/templates dist/src/codegen/templates && cp src/server.ts dist/src && cp -r src/utils dist/src && cp -r src/domain dist/src
4
4
 
5
5
  Fixed ESM imports in dist/
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/server-generator-apollo-emmett@1.70.0 test /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
2
+ > @auto-engineer/server-generator-apollo-emmett@1.71.0 test /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
3
3
  > vitest run --reporter=dot
4
4
 
5
5
 
@@ -9,6 +9,6 @@
9
9
 
10
10
   Test Files  30 passed | 1 skipped (31)
11
11
   Tests  172 passed | 1 skipped (173)
12
-  Start at  12:06:20
13
-  Duration  22.20s (transform 3.79s, setup 0ms, collect 45.99s, tests 8.68s, environment 6ms, prepare 4.29s)
12
+  Start at  15:38:59
13
+  Duration  25.09s (transform 3.81s, setup 0ms, collect 53.47s, tests 9.11s, environment 7ms, prepare 4.77s)
14
14
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @auto-engineer/server-generator-apollo-emmett@1.70.0 type-check /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
2
+ > @auto-engineer/server-generator-apollo-emmett@1.71.0 type-check /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
3
3
  > tsc --noEmit --project tsconfig.json
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # @auto-engineer/server-generator-apollo-emmett
2
2
 
3
+ ## 1.72.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`cb7de6a`](https://github.com/BeOnAuto/auto-engineer/commit/cb7de6a5a8c42bf1849a7b4f602d8334d5399895) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **pipeline**: wire command gate into processCommand with signal suppression
8
+
9
+ - [`cddce02`](https://github.com/BeOnAuto/auto-engineer/commit/cddce020109adcbb7aa422ab89bc14805ef9f39a) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: generate real commandSender.send() in react scaffold
10
+ - **server-generator-apollo-emmett**: generate aggregateStream for Given states
11
+ - **pipeline**: add command gate concurrency control to ketchup plan
12
+ - **server-generator-apollo-emmett**: mark Burst 3 done in ketchup plan
13
+ - **server-generator-apollo-emmett**: add Burst 3 to ketchup plan for commandSender.send generation
14
+
15
+ - [`ebc98fa`](https://github.com/BeOnAuto/auto-engineer/commit/ebc98fa1e38404bcb4dbaad28b9281ed25c9b27b) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **pipeline**: add cancel-in-progress strategy to command gate
16
+
17
+ - [`27f3e77`](https://github.com/BeOnAuto/auto-engineer/commit/27f3e777b871a4cc5679331e445fe991cd2bfc8f) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **pipeline**: add signal to PipelineContext and registerConcurrency to server
18
+
19
+ - [`c00b253`](https://github.com/BeOnAuto/auto-engineer/commit/c00b25354839afb1b506c27d19795da3fdc24280) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **pipeline**: create command gate with registration and passthrough
20
+
21
+ - [`59b9032`](https://github.com/BeOnAuto/auto-engineer/commit/59b903255b34a3beb6579d91f656530b05fef807) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **pipeline**: add queue strategy to command gate
22
+
23
+ - [`80f544e`](https://github.com/BeOnAuto/auto-engineer/commit/80f544ebc7617ffe83d880cfb34c11f31ca8a340) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-generator-apollo-emmett**: generate real commandSender.send() in react scaffold
24
+ - **server-generator-apollo-emmett**: generate aggregateStream for Given states
25
+ - **server-generator-apollo-emmett**: seed event store with Given state data in react specs template
26
+ - **global**: version packages
27
+ - **server-generator-apollo-emmett**: mark Burst 3 done in ketchup plan
28
+
29
+ ### Patch Changes
30
+
31
+ - [`c5ce884`](https://github.com/BeOnAuto/auto-engineer/commit/c5ce884e233a8d9eec5c76db41b166bb86b09e70) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **global**: wire config-level concurrency for command gate
32
+
33
+ - [`090b856`](https://github.com/BeOnAuto/auto-engineer/commit/090b8569ce5eb62b680b48fbc909cbbad12ff377) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **pipeline**: mark command gate concurrency control done in ketchup plan
34
+
35
+ - [`5e8b6a8`](https://github.com/BeOnAuto/auto-engineer/commit/5e8b6a8ec6502c6e9b955eab93d4d332c5a8def9) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **pipeline**: verify cancel-in-progress suppresses events through server
36
+
37
+ - [`e4b956c`](https://github.com/BeOnAuto/auto-engineer/commit/e4b956cd2751ea78e9b8a4725f9be755abf2bb24) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **pipeline**: verify queue concurrency and sendCommand gate integration
38
+
39
+ - [`1b7cb23`](https://github.com/BeOnAuto/auto-engineer/commit/1b7cb230b570c763e24c6a0eb99b39901e671500) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: call start/close lifecycle on reactor in ReactorSpecification
40
+
41
+ - Updated dependencies [[`cb7de6a`](https://github.com/BeOnAuto/auto-engineer/commit/cb7de6a5a8c42bf1849a7b4f602d8334d5399895), [`cddce02`](https://github.com/BeOnAuto/auto-engineer/commit/cddce020109adcbb7aa422ab89bc14805ef9f39a), [`ebc98fa`](https://github.com/BeOnAuto/auto-engineer/commit/ebc98fa1e38404bcb4dbaad28b9281ed25c9b27b), [`27f3e77`](https://github.com/BeOnAuto/auto-engineer/commit/27f3e777b871a4cc5679331e445fe991cd2bfc8f), [`c5ce884`](https://github.com/BeOnAuto/auto-engineer/commit/c5ce884e233a8d9eec5c76db41b166bb86b09e70), [`c00b253`](https://github.com/BeOnAuto/auto-engineer/commit/c00b25354839afb1b506c27d19795da3fdc24280), [`59b9032`](https://github.com/BeOnAuto/auto-engineer/commit/59b903255b34a3beb6579d91f656530b05fef807), [`090b856`](https://github.com/BeOnAuto/auto-engineer/commit/090b8569ce5eb62b680b48fbc909cbbad12ff377), [`5e8b6a8`](https://github.com/BeOnAuto/auto-engineer/commit/5e8b6a8ec6502c6e9b955eab93d4d332c5a8def9), [`80f544e`](https://github.com/BeOnAuto/auto-engineer/commit/80f544ebc7617ffe83d880cfb34c11f31ca8a340), [`e4b956c`](https://github.com/BeOnAuto/auto-engineer/commit/e4b956cd2751ea78e9b8a4725f9be755abf2bb24), [`1b7cb23`](https://github.com/BeOnAuto/auto-engineer/commit/1b7cb230b570c763e24c6a0eb99b39901e671500)]:
42
+ - @auto-engineer/message-bus@1.72.0
43
+ - @auto-engineer/narrative@1.72.0
44
+
3
45
  ## 1.71.0
4
46
 
5
47
  ### Minor Changes
@@ -1 +1 @@
1
- {"version":3,"file":"reactorSpecification.d.ts","sourceRoot":"","sources":["../../../../src/domain/shared/reactorSpecification.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,KAAK,YAAY,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;AAEnE,KAAK,UAAU,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;AAE3D,MAAM,MAAM,UAAU,CAAC,SAAS,SAAS,KAAK,IAC1C,CAAC,MAAM,IAAI,CAAC,GACZ,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GACzD,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GAC7C,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;AAElG,UAAU,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;IAC1D,IAAI,EAAE,CACJ,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,EACtB,OAAO,CAAC,EAAE,OAAO,KACd;QACH,IAAI,EAAE,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAChH,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,UAAU,EAAE,CAAC,SAAS,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5G,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,CAC9B,KAAK,EACL,OAAO,EACP,OAAO,SAAS;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,IACjF,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1F,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAuBF,KAAK,WAAW,CAAC,KAAK,EAAE,OAAO,IAE3B;IAAE,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CAAE,GAE/D;IAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CAAE,GAEjE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpC,iBAAS,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAS;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,EAC/F,kBAAkB,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EACrF,aAAa,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,OAAO,GACvD,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CA2H/C"}
1
+ {"version":3,"file":"reactorSpecification.d.ts","sourceRoot":"","sources":["../../../../src/domain/shared/reactorSpecification.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,KAAK,YAAY,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC;AAEnE,KAAK,UAAU,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;AAE3D,MAAM,MAAM,UAAU,CAAC,SAAS,SAAS,KAAK,IAC1C,CAAC,MAAM,IAAI,CAAC,GACZ,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GACzD,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GAC7C,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC;AAElG,UAAU,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO;IAC1D,IAAI,EAAE,CACJ,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,EACtB,OAAO,CAAC,EAAE,OAAO,KACd;QACH,IAAI,EAAE,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAChH,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,UAAU,EAAE,CAAC,SAAS,SAAS,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5G,CAAC;CACH;AAED,MAAM,MAAM,oBAAoB,CAC9B,KAAK,EACL,OAAO,EACP,OAAO,SAAS;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,IACjF,CAAC,WAAW,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE1F,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAuBF,KAAK,WAAW,CAAC,KAAK,EAAE,OAAO,IAE3B;IAAE,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CAAE,GAE/D;IAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CAAE,GAEjE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEpC,iBAAS,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAS;IAAE,aAAa,EAAE,aAAa,CAAA;CAAE,EAC/F,kBAAkB,EAAE,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,EACrF,aAAa,EAAE,CAAC,aAAa,EAAE,aAAa,KAAK,OAAO,GACvD,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAkI/C"}
@@ -40,19 +40,26 @@ function reactorSpecificationFor(processorOrReactor, createContext) {
40
40
  const contextWithMock = { ...context, commandSender: mockCommandSender };
41
41
  // Get the actual reactor instance
42
42
  const reactor = typeof processorOrReactor === 'function' ? processorOrReactor() : processorOrReactor;
43
- // Handle different reactor types
44
- if ('handle' in reactor && typeof reactor.handle === 'function') {
45
- // It's a MessageProcessor or has a handle method
46
- await reactor.handle(eventsWithMetadata, contextWithMock);
47
- }
48
- else if ('eachMessage' in reactor && typeof reactor.eachMessage === 'function') {
49
- // It has eachMessage
50
- for (const event of eventsWithMetadata) {
51
- await reactor.eachMessage(event, contextWithMock);
43
+ try {
44
+ if ('start' in reactor && typeof reactor.start === 'function') {
45
+ await reactor.start({});
46
+ }
47
+ if ('handle' in reactor && typeof reactor.handle === 'function') {
48
+ await reactor.handle(eventsWithMetadata, contextWithMock);
49
+ }
50
+ else if ('eachMessage' in reactor && typeof reactor.eachMessage === 'function') {
51
+ for (const event of eventsWithMetadata) {
52
+ await reactor.eachMessage(event, contextWithMock);
53
+ }
54
+ }
55
+ else {
56
+ throw new Error('Reactor must have either a handle or eachMessage method');
52
57
  }
53
58
  }
54
- else {
55
- throw new Error('Reactor must have either a handle or eachMessage method');
59
+ finally {
60
+ if ('close' in reactor && typeof reactor.close === 'function') {
61
+ await reactor.close({});
62
+ }
56
63
  }
57
64
  return mockCommandSender.sentCommands;
58
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"reactorSpecification.js","sourceRoot":"","sources":["../../../../src/domain/shared/reactorSpecification.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,EAGV,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AA6BjC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,uBAAuB;CAC7B,CAAC;AAOF,SAAS,uBAAuB;IAC9B,MAAM,YAAY,GAAc,EAAE,CAAC;IAEnC,MAAM,IAAI,GAAG,KAAK,EAAyC,OAAoB,EAAiB,EAAE;QAChG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,YAAY;QACZ,KAAK,EAAE,GAAG,EAAE;YACV,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,CAAC;KAC4B,CAAC;AAClC,CAAC;AAUD,SAAS,uBAAuB,CAC9B,kBAAqF,EACrF,aAAwD;IAExD,OAAO,CAAC,WAA4B,EAAE,EAAE;QACtC,OAAO;YACL,IAAI,EAAE,CAAC,SAA0B,EAAE,eAAyB,EAAE,EAAE;gBAC9D,MAAM,iBAAiB,GAAG,uBAAuB,EAAW,CAAC;gBAC7D,MAAM,cAAc,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,eAAe,IAAI,cAAc,CAAC;gBAElD,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;oBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvG,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACrE,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC;oBAEhD,oCAAoC;oBACpC,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC1D,GAAG,KAAK;wBACR,IAAI,EAAE,OAAgB;wBACtB,QAAQ,EAAE;4BACR,UAAU,EAAE,aAAa;4BACzB,SAAS,EAAE,QAAQ,KAAK,EAAE;4BAC1B,cAAc,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;4BACjC,cAAc,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;yBAClC;qBACF,CAAC,CAAC,CAAC;oBAEJ,MAAM,eAAe,GAAG,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;oBAEzE,kCAAkC;oBAClC,MAAM,OAAO,GAAG,OAAO,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBAErG,iCAAiC;oBACjC,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;wBAChE,iDAAiD;wBACjD,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;oBAC5D,CAAC;yBAAM,IAAI,aAAa,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;wBACjF,qBAAqB;wBACrB,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;4BACvC,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;wBACpD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;oBAC7E,CAAC;oBAED,OAAO,iBAAiB,CAAC,YAAY,CAAC;gBACxC,CAAC,CAAC;gBAEF,OAAO;oBACL,IAAI,EAAE,KAAK,EACT,eAAsF,EACvE,EAAE;wBACjB,IAAI,CAAC;4BACH,MAAM,YAAY,GAAG,MAAM,MAAM,EAAE,CAAC;4BAEpC,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;gCAC1C,MAAM,OAAO,GAAG,eAAe,CAAC;gCAChC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oCAC9B,UAAU,CACP,OAAiC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACnD,sDAAsD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CACxF,CAAC;gCACJ,CAAC;qCAAM,CAAC;oCACN,UAAU,CACP,OAAmC,CAAC,YAAY,CAAC,EAClD,uDAAuD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CACtF,CAAC;gCACJ,CAAC;gCACD,OAAO;4BACT,CAAC;4BAED,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gCACnC,UAAU,CACR,YAAY,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAC9C,YAAY,eAAe,CAAC,MAAM,+BAA+B,YAAY,CAAC,MAAM,YAAY,CACjG,CAAC;gCAEF,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;oCAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;oCACjC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gCAC7C,CAAC,CAAC,CAAC;gCACH,OAAO;4BACT,CAAC;4BAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCAC9B,MAAM,IAAI,cAAc,CAAC,uBAAuB,CAAC,CAAC;4BACpD,CAAC;4BAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC5B,MAAM,IAAI,cAAc,CAAC,sCAAsC,YAAY,CAAC,MAAM,YAAY,CAAC,CAAC;4BAClG,CAAC;4BAED,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;wBACxD,CAAC;gCAAS,CAAC;4BACT,iBAAiB,CAAC,KAAK,EAAE,CAAC;wBAC5B,CAAC;oBACH,CAAC;oBAED,mBAAmB,EAAE,KAAK,IAAmB,EAAE;wBAC7C,IAAI,CAAC;4BACH,MAAM,YAAY,GAAG,MAAM,MAAM,EAAE,CAAC;4BACpC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC5B,MAAM,IAAI,cAAc,CACtB,wCAAwC,YAAY,CAAC,MAAM,0BAA0B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CACpH,CAAC;4BACJ,CAAC;wBACH,CAAC;gCAAS,CAAC;4BACT,iBAAiB,CAAC,KAAK,EAAE,CAAC;wBAC5B,CAAC;oBACH,CAAC;oBAED,UAAU,EAAE,KAAK,EAA2B,GAAG,IAAuC,EAAiB,EAAE;wBACvG,IAAI,CAAC;4BACH,MAAM,MAAM,EAAE,CAAC;4BACf,MAAM,IAAI,cAAc,CAAC,kCAAkC,CAAC,CAAC;wBAC/D,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;wBACtC,CAAC;gCAAS,CAAC;4BACT,iBAAiB,CAAC,KAAK,EAAE,CAAC;wBAC5B,CAAC;oBACH,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAMD,sCAAsC;AACtC,SAAS,mBAAmB,CAAU,MAAe,EAAE,QAAiB,EAAE,KAAc;IACtF,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAmD,CAAC;IAClF,MAAM,YAAY,GAAG,EAAE,GAAG,QAAQ,EAAmD,CAAC;IAEtF,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7E,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE7C,MAAM,WAAW,GACf,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACtG,MAAM,SAAS,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAEhH,UAAU,CACR,WAAW,KAAK,aAAa,EAC7B,UAAU,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,+BAA+B,WAAW,aAAa,SAAS,EAAE,CAC5I,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAC;QAC3B,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;SAAM,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpF,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,UAAU,CACR,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC3D,UAAU,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,+BAA+B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACtJ,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAc,EACd,IAAuC;IAEvC,IAAI,KAAK,YAAY,cAAc;QAAE,MAAM,KAAK,CAAC;IAEjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAkB,CAAC,EAAE,2CAA2C,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxG,OAAO;IACT,CAAC;IAED,UAAU,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,yDAAyD,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEnH,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACZ,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAkB,CAAC,EAAE,2CAA2C,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"reactorSpecification.js","sourceRoot":"","sources":["../../../../src/domain/shared/reactorSpecification.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,EAGV,kBAAkB,GAEnB,MAAM,yBAAyB,CAAC;AA6BjC,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,EAAE,uBAAuB;CAC7B,CAAC;AAOF,SAAS,uBAAuB;IAC9B,MAAM,YAAY,GAAc,EAAE,CAAC;IAEnC,MAAM,IAAI,GAAG,KAAK,EAAyC,OAAoB,EAAiB,EAAE;QAChG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,YAAY;QACZ,KAAK,EAAE,GAAG,EAAE;YACV,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,CAAC;KAC4B,CAAC;AAClC,CAAC;AAUD,SAAS,uBAAuB,CAC9B,kBAAqF,EACrF,aAAwD;IAExD,OAAO,CAAC,WAA4B,EAAE,EAAE;QACtC,OAAO;YACL,IAAI,EAAE,CAAC,SAA0B,EAAE,eAAyB,EAAE,EAAE;gBAC9D,MAAM,iBAAiB,GAAG,uBAAuB,EAAW,CAAC;gBAC7D,MAAM,cAAc,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,eAAe,IAAI,cAAc,CAAC;gBAElD,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;oBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvG,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;oBACrE,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC;oBAEhD,oCAAoC;oBACpC,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;wBAC1D,GAAG,KAAK;wBACR,IAAI,EAAE,OAAgB;wBACtB,QAAQ,EAAE;4BACR,UAAU,EAAE,aAAa;4BACzB,SAAS,EAAE,QAAQ,KAAK,EAAE;4BAC1B,cAAc,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;4BACjC,cAAc,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;yBAClC;qBACF,CAAC,CAAC,CAAC;oBAEJ,MAAM,eAAe,GAAG,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;oBAEzE,kCAAkC;oBAClC,MAAM,OAAO,GAAG,OAAO,kBAAkB,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBAErG,IAAI,CAAC;wBACH,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;4BAC9D,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC1B,CAAC;wBAED,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;4BAChE,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;wBAC5D,CAAC;6BAAM,IAAI,aAAa,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;4BACjF,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE,CAAC;gCACvC,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;4BACpD,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;wBAC7E,CAAC;oBACH,CAAC;4BAAS,CAAC;wBACT,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;4BAC9D,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBAC1B,CAAC;oBACH,CAAC;oBAED,OAAO,iBAAiB,CAAC,YAAY,CAAC;gBACxC,CAAC,CAAC;gBAEF,OAAO;oBACL,IAAI,EAAE,KAAK,EACT,eAAsF,EACvE,EAAE;wBACjB,IAAI,CAAC;4BACH,MAAM,YAAY,GAAG,MAAM,MAAM,EAAE,CAAC;4BAEpC,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE,CAAC;gCAC1C,MAAM,OAAO,GAAG,eAAe,CAAC;gCAChC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oCAC9B,UAAU,CACP,OAAiC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACnD,sDAAsD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CACxF,CAAC;gCACJ,CAAC;qCAAM,CAAC;oCACN,UAAU,CACP,OAAmC,CAAC,YAAY,CAAC,EAClD,uDAAuD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CACtF,CAAC;gCACJ,CAAC;gCACD,OAAO;4BACT,CAAC;4BAED,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gCACnC,UAAU,CACR,YAAY,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAC9C,YAAY,eAAe,CAAC,MAAM,+BAA+B,YAAY,CAAC,MAAM,YAAY,CACjG,CAAC;gCAEF,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;oCAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;oCACjC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gCAC7C,CAAC,CAAC,CAAC;gCACH,OAAO;4BACT,CAAC;4BAED,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gCAC9B,MAAM,IAAI,cAAc,CAAC,uBAAuB,CAAC,CAAC;4BACpD,CAAC;4BAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC5B,MAAM,IAAI,cAAc,CAAC,sCAAsC,YAAY,CAAC,MAAM,YAAY,CAAC,CAAC;4BAClG,CAAC;4BAED,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;wBACxD,CAAC;gCAAS,CAAC;4BACT,iBAAiB,CAAC,KAAK,EAAE,CAAC;wBAC5B,CAAC;oBACH,CAAC;oBAED,mBAAmB,EAAE,KAAK,IAAmB,EAAE;wBAC7C,IAAI,CAAC;4BACH,MAAM,YAAY,GAAG,MAAM,MAAM,EAAE,CAAC;4BACpC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC5B,MAAM,IAAI,cAAc,CACtB,wCAAwC,YAAY,CAAC,MAAM,0BAA0B,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CACpH,CAAC;4BACJ,CAAC;wBACH,CAAC;gCAAS,CAAC;4BACT,iBAAiB,CAAC,KAAK,EAAE,CAAC;wBAC5B,CAAC;oBACH,CAAC;oBAED,UAAU,EAAE,KAAK,EAA2B,GAAG,IAAuC,EAAiB,EAAE;wBACvG,IAAI,CAAC;4BACH,MAAM,MAAM,EAAE,CAAC;4BACf,MAAM,IAAI,cAAc,CAAC,kCAAkC,CAAC,CAAC;wBAC/D,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;wBACtC,CAAC;gCAAS,CAAC;4BACT,iBAAiB,CAAC,KAAK,EAAE,CAAC;wBAC5B,CAAC;oBACH,CAAC;iBACF,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAMD,sCAAsC;AACtC,SAAS,mBAAmB,CAAU,MAAe,EAAE,QAAiB,EAAE,KAAc;IACtF,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAmD,CAAC;IAClF,MAAM,YAAY,GAAG,EAAE,GAAG,QAAQ,EAAmD,CAAC;IAEtF,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC7E,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAE7C,MAAM,WAAW,GACf,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACtG,MAAM,SAAS,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAEhH,UAAU,CACR,WAAW,KAAK,aAAa,EAC7B,UAAU,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,+BAA+B,WAAW,aAAa,SAAS,EAAE,CAC5I,CAAC;QACJ,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAC;QAC3B,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;SAAM,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpF,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,UAAU,CACR,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC3D,UAAU,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,+BAA+B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACtJ,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAc,EACd,IAAuC;IAEvC,IAAI,KAAK,YAAY,cAAc;QAAE,MAAM,KAAK,CAAC;IAEjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE9B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAkB,CAAC,EAAE,2CAA2C,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxG,OAAO;IACT,CAAC;IAED,UAAU,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,yDAAyD,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEnH,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACZ,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAkB,CAAC,EAAE,2CAA2C,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC"}
@@ -100,17 +100,24 @@ function reactorSpecificationFor<Event, Command, Context extends { commandSender
100
100
  // Get the actual reactor instance
101
101
  const reactor = typeof processorOrReactor === 'function' ? processorOrReactor() : processorOrReactor;
102
102
 
103
- // Handle different reactor types
104
- if ('handle' in reactor && typeof reactor.handle === 'function') {
105
- // It's a MessageProcessor or has a handle method
106
- await reactor.handle(eventsWithMetadata, contextWithMock);
107
- } else if ('eachMessage' in reactor && typeof reactor.eachMessage === 'function') {
108
- // It has eachMessage
109
- for (const event of eventsWithMetadata) {
110
- await reactor.eachMessage(event, contextWithMock);
103
+ try {
104
+ if ('start' in reactor && typeof reactor.start === 'function') {
105
+ await reactor.start({});
106
+ }
107
+
108
+ if ('handle' in reactor && typeof reactor.handle === 'function') {
109
+ await reactor.handle(eventsWithMetadata, contextWithMock);
110
+ } else if ('eachMessage' in reactor && typeof reactor.eachMessage === 'function') {
111
+ for (const event of eventsWithMetadata) {
112
+ await reactor.eachMessage(event, contextWithMock);
113
+ }
114
+ } else {
115
+ throw new Error('Reactor must have either a handle or eachMessage method');
116
+ }
117
+ } finally {
118
+ if ('close' in reactor && typeof reactor.close === 'function') {
119
+ await reactor.close({});
111
120
  }
112
- } else {
113
- throw new Error('Reactor must have either a handle or eachMessage method');
114
121
  }
115
122
 
116
123
  return mockCommandSender.sentCommands;