@auto-engineer/server-generator-apollo-emmett 1.82.0 → 1.84.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.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +6 -6
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +70 -0
- package/dist/src/codegen/extract/gwt.d.ts +1 -0
- package/dist/src/codegen/extract/gwt.d.ts.map +1 -1
- package/dist/src/codegen/extract/gwt.js +34 -0
- package/dist/src/codegen/extract/gwt.js.map +1 -1
- package/dist/src/codegen/templates/command/decide.specs.specs.ts +150 -0
- package/dist/src/codegen/templates/query/projection.specs.specs.ts +2 -2
- package/dist/src/codegen/templates/query/projection.specs.ts +9 -15
- package/dist/src/codegen/templates/query/projection.ts.ejs +9 -15
- package/dist/src/commands/generate-server.d.ts +2 -0
- package/dist/src/commands/generate-server.d.ts.map +1 -1
- package/dist/src/commands/generate-server.js +4 -1
- package/dist/src/commands/generate-server.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/codegen/extract/gwt.specs.ts +141 -0
- package/src/codegen/extract/gwt.ts +42 -0
- package/src/codegen/templates/command/decide.specs.specs.ts +150 -0
- package/src/codegen/templates/query/projection.specs.specs.ts +2 -2
- package/src/codegen/templates/query/projection.specs.ts +9 -15
- package/src/codegen/templates/query/projection.ts.ejs +9 -15
- package/src/commands/generate-server.specs.ts +95 -0
- package/src/commands/generate-server.ts +6 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/server-generator-apollo-emmett@1.
|
|
2
|
+
> @auto-engineer/server-generator-apollo-emmett@1.84.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/
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/server-generator-apollo-emmett@1.
|
|
2
|
+
> @auto-engineer/server-generator-apollo-emmett@1.83.0 test /home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett
|
|
3
3
|
> vitest run --reporter=dot
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
[1m[46m RUN [49m[22m [36mv3.2.4 [39m[90m/home/runner/work/auto-engineer/auto-engineer/packages/server-generator-apollo-emmett[39m
|
|
7
7
|
|
|
8
|
-
[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[2m[90m-[39m[22m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m
|
|
8
|
+
[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[2m[90m-[39m[22m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m[33m[39m[32m·[39m
|
|
9
9
|
|
|
10
|
-
[2m Test Files [22m [1m[
|
|
11
|
-
[2m Tests [22m [1m[
|
|
12
|
-
[2m Start at [22m
|
|
13
|
-
[2m Duration [22m
|
|
10
|
+
[2m Test Files [22m [1m[32m31 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (32)[39m
|
|
11
|
+
[2m Tests [22m [1m[32m182 passed[39m[22m[2m | [22m[33m1 skipped[39m[90m (183)[39m
|
|
12
|
+
[2m Start at [22m 18:35:37
|
|
13
|
+
[2m Duration [22m 30.90s[2m (transform 4.71s, setup 0ms, collect 65.46s, tests 12.81s, environment 7ms, prepare 5.24s)[22m
|
|
14
14
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/server-generator-apollo-emmett@1.
|
|
2
|
+
> @auto-engineer/server-generator-apollo-emmett@1.83.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,75 @@
|
|
|
1
1
|
# @auto-engineer/server-generator-apollo-emmett
|
|
2
2
|
|
|
3
|
+
## 1.84.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`7b5e912`](https://github.com/BeOnAuto/auto-engineer/commit/7b5e912dfda709fd3d33bf478f515d4e86c982af) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **server-implementer**: integrate shadow detection into retry loops
|
|
8
|
+
- **server-implementer**: add detectImportedTypeShadowing utility
|
|
9
|
+
- **server-generator-nestjs**: add model to ServerGenerationFailedEvent
|
|
10
|
+
- **server-generator-apollo-emmett**: add model to failure events
|
|
11
|
+
- **pipeline**: emit PipelineRunCompleted when all commands complete
|
|
12
|
+
|
|
13
|
+
- [`ba4b32f`](https://github.com/BeOnAuto/auto-engineer/commit/ba4b32f29fbfb45e14a6294fdc06583e466fb7e3) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: merge co-firing GWT conditions in gwt.ts
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [`3271cfe`](https://github.com/BeOnAuto/auto-engineer/commit/3271cfe4b8be6316454045b02e1e0f1d1fd6414f) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: fix singleton projection instruction steps 1 and 4
|
|
18
|
+
|
|
19
|
+
- [`4833113`](https://github.com/BeOnAuto/auto-engineer/commit/4833113ca52361ca4a4c931390a48b592f1adc78) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add snapshot test for co-firing rule merge
|
|
20
|
+
|
|
21
|
+
- [`c3c788d`](https://github.com/BeOnAuto/auto-engineer/commit/c3c788defe899dd9c3d50819759c15df764fab2e) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-implementer**: add Bursts 4-5 to ketchup plan
|
|
22
|
+
|
|
23
|
+
- Updated dependencies [[`7b5e912`](https://github.com/BeOnAuto/auto-engineer/commit/7b5e912dfda709fd3d33bf478f515d4e86c982af), [`3271cfe`](https://github.com/BeOnAuto/auto-engineer/commit/3271cfe4b8be6316454045b02e1e0f1d1fd6414f), [`ba4b32f`](https://github.com/BeOnAuto/auto-engineer/commit/ba4b32f29fbfb45e14a6294fdc06583e466fb7e3), [`4833113`](https://github.com/BeOnAuto/auto-engineer/commit/4833113ca52361ca4a4c931390a48b592f1adc78), [`c3c788d`](https://github.com/BeOnAuto/auto-engineer/commit/c3c788defe899dd9c3d50819759c15df764fab2e)]:
|
|
24
|
+
- @auto-engineer/message-bus@1.84.0
|
|
25
|
+
- @auto-engineer/narrative@1.84.0
|
|
26
|
+
|
|
27
|
+
## 1.83.0
|
|
28
|
+
|
|
29
|
+
### Minor Changes
|
|
30
|
+
|
|
31
|
+
- [`d4fca9a`](https://github.com/BeOnAuto/auto-engineer/commit/d4fca9a9898dfe2087a8489e5e9dbbd9a6253d24) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **pipeline**: emit PipelineRunCompleted when all commands complete
|
|
32
|
+
|
|
33
|
+
- [`dfda4a1`](https://github.com/BeOnAuto/auto-engineer/commit/dfda4a16a93f50100e7492990e6906bbc8b2445c) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-implementer**: add detectImportedTypeShadowing utility
|
|
34
|
+
|
|
35
|
+
- [`a58a249`](https://github.com/BeOnAuto/auto-engineer/commit/a58a249899b6b97f6166d13a11e175478b9bcb8c) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-nestjs**: add model to ServerGenerationFailedEvent
|
|
36
|
+
|
|
37
|
+
- [`98ba39b`](https://github.com/BeOnAuto/auto-engineer/commit/98ba39b83131ef24093e6100432d9cf6b1dcdd76) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **pipeline**: add debounce logic to QuiescenceTracker
|
|
38
|
+
|
|
39
|
+
- [`a305e78`](https://github.com/BeOnAuto/auto-engineer/commit/a305e788b5344d5533be3b95e7702bcbb03056f7) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-implementer**: integrate shadow detection into retry loops
|
|
40
|
+
|
|
41
|
+
- [`c8f3f9f`](https://github.com/BeOnAuto/auto-engineer/commit/c8f3f9ff4d173b063d039d3ee7bd6b639044dd5c) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: add model to failure events
|
|
42
|
+
|
|
43
|
+
- [`2b920cc`](https://github.com/BeOnAuto/auto-engineer/commit/2b920cc6c90951d3fa6c1039cf883dd17e8d59c7) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - add restart commands for server, client, and storybook
|
|
44
|
+
- update killPortHolder to use graceful SIGTERM then SIGKILL
|
|
45
|
+
- sort imports in restart command files
|
|
46
|
+
- sort exports alphabetically to satisfy biome organizeImports
|
|
47
|
+
- **typical**: update clean:dev script to include installation step
|
|
48
|
+
|
|
49
|
+
### Patch Changes
|
|
50
|
+
|
|
51
|
+
- [`e5f9f43`](https://github.com/BeOnAuto/auto-engineer/commit/e5f9f439a2c622d1241438e6b9431556c9e55691) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **pipeline**: verify PipelineRunCompleted waits for retries
|
|
52
|
+
|
|
53
|
+
- [`e2da8b5`](https://github.com/BeOnAuto/auto-engineer/commit/e2da8b5ccee2bc606dd8d7e13968e2c3081e4314) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-implementer**: add ketchup plan for type shadow detection
|
|
54
|
+
|
|
55
|
+
- [`3967f21`](https://github.com/BeOnAuto/auto-engineer/commit/3967f21a7bbc12aded3137b1d5982cd588a2ed51) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **server-generator-apollo-emmett**: clarify Internal State Pattern extends not replaces
|
|
56
|
+
|
|
57
|
+
- [`5b14f47`](https://github.com/BeOnAuto/auto-engineer/commit/5b14f472b15edee7255570eb0fc796ebbfa638e5) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **global**: update ketchup-plan with completed model repair bursts
|
|
58
|
+
|
|
59
|
+
- [`d435781`](https://github.com/BeOnAuto/auto-engineer/commit/d4357815201bade7a48f665c3d8fa696c5755b4f) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **typical**: wire SubmitBugReport on generation failures
|
|
60
|
+
|
|
61
|
+
- [`afa04da`](https://github.com/BeOnAuto/auto-engineer/commit/afa04da090785aedf34567183db0e7a46f54c9ee) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - **global**: add ketchup plan for model repair system
|
|
62
|
+
|
|
63
|
+
- [`46189ec`](https://github.com/BeOnAuto/auto-engineer/commit/46189ec17840f8d42fb95003f82dead4875ddd03) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **pipeline**: update ketchup-plan with completed Phase 13
|
|
64
|
+
|
|
65
|
+
- [`f4bc85c`](https://github.com/BeOnAuto/auto-engineer/commit/f4bc85c4026522dfcfd15844bdc50e645185a912) Thanks [@SamHatoum](https://github.com/SamHatoum)! - - **server-generator-apollo-emmett**: remove invalid argument to reactor.close()
|
|
66
|
+
|
|
67
|
+
- [`3dbb41e`](https://github.com/BeOnAuto/auto-engineer/commit/3dbb41edf2d1eb3a7110038aeb29952befc570da) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - Fixed a bug where a required argument was missing when closing the reactor in the Apollo Emmett server generator
|
|
68
|
+
|
|
69
|
+
- Updated dependencies [[`e5f9f43`](https://github.com/BeOnAuto/auto-engineer/commit/e5f9f439a2c622d1241438e6b9431556c9e55691), [`d4fca9a`](https://github.com/BeOnAuto/auto-engineer/commit/d4fca9a9898dfe2087a8489e5e9dbbd9a6253d24), [`e2da8b5`](https://github.com/BeOnAuto/auto-engineer/commit/e2da8b5ccee2bc606dd8d7e13968e2c3081e4314), [`dfda4a1`](https://github.com/BeOnAuto/auto-engineer/commit/dfda4a16a93f50100e7492990e6906bbc8b2445c), [`3967f21`](https://github.com/BeOnAuto/auto-engineer/commit/3967f21a7bbc12aded3137b1d5982cd588a2ed51), [`a58a249`](https://github.com/BeOnAuto/auto-engineer/commit/a58a249899b6b97f6166d13a11e175478b9bcb8c), [`5b14f47`](https://github.com/BeOnAuto/auto-engineer/commit/5b14f472b15edee7255570eb0fc796ebbfa638e5), [`d435781`](https://github.com/BeOnAuto/auto-engineer/commit/d4357815201bade7a48f665c3d8fa696c5755b4f), [`98ba39b`](https://github.com/BeOnAuto/auto-engineer/commit/98ba39b83131ef24093e6100432d9cf6b1dcdd76), [`a305e78`](https://github.com/BeOnAuto/auto-engineer/commit/a305e788b5344d5533be3b95e7702bcbb03056f7), [`c8f3f9f`](https://github.com/BeOnAuto/auto-engineer/commit/c8f3f9ff4d173b063d039d3ee7bd6b639044dd5c), [`afa04da`](https://github.com/BeOnAuto/auto-engineer/commit/afa04da090785aedf34567183db0e7a46f54c9ee), [`46189ec`](https://github.com/BeOnAuto/auto-engineer/commit/46189ec17840f8d42fb95003f82dead4875ddd03), [`f4bc85c`](https://github.com/BeOnAuto/auto-engineer/commit/f4bc85c4026522dfcfd15844bdc50e645185a912), [`2b920cc`](https://github.com/BeOnAuto/auto-engineer/commit/2b920cc6c90951d3fa6c1039cf883dd17e8d59c7), [`3dbb41e`](https://github.com/BeOnAuto/auto-engineer/commit/3dbb41edf2d1eb3a7110038aeb29952befc570da)]:
|
|
70
|
+
- @auto-engineer/message-bus@1.83.0
|
|
71
|
+
- @auto-engineer/narrative@1.83.0
|
|
72
|
+
|
|
3
73
|
## 1.82.0
|
|
4
74
|
|
|
5
75
|
### Minor Changes
|
|
@@ -3,4 +3,5 @@ import type { GwtCondition } from '../types';
|
|
|
3
3
|
export declare function buildCommandGwtMapping(slice: Slice): Record<string, (GwtCondition & {
|
|
4
4
|
failingFields?: string[];
|
|
5
5
|
})[]>;
|
|
6
|
+
export declare function mergeCoFiringConditions(conditions: GwtCondition[]): GwtCondition[];
|
|
6
7
|
//# sourceMappingURL=gwt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gwt.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/gwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,UAAU,CAAC;AAGnE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,YAAY,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EAAE,CAAC,CAQpH"}
|
|
1
|
+
{"version":3,"file":"gwt.d.ts","sourceRoot":"","sources":["../../../../src/codegen/extract/gwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAwB,YAAY,EAAE,MAAM,UAAU,CAAC;AAGnE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,YAAY,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,EAAE,CAAC,CAQpH;AAiCD,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CA4BlF"}
|
|
@@ -28,8 +28,42 @@ function buildCommandMapping(gwtSpecs) {
|
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
+
for (const command in mapping) {
|
|
32
|
+
mapping[command] = mergeCoFiringConditions(mapping[command]);
|
|
33
|
+
}
|
|
31
34
|
return mapping;
|
|
32
35
|
}
|
|
36
|
+
export function mergeCoFiringConditions(conditions) {
|
|
37
|
+
const merged = [];
|
|
38
|
+
const keyToIndex = new Map();
|
|
39
|
+
for (const condition of conditions) {
|
|
40
|
+
const isErrorCase = condition.then.some((t) => 'errorType' in t);
|
|
41
|
+
if (isErrorCase) {
|
|
42
|
+
merged.push(condition);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const key = stableKey(condition);
|
|
46
|
+
const existingIdx = keyToIndex.get(key);
|
|
47
|
+
if (existingIdx !== undefined) {
|
|
48
|
+
const existing = merged[existingIdx];
|
|
49
|
+
for (const t of condition.then) {
|
|
50
|
+
if ('eventRef' in t && !existing.then.some((e) => 'eventRef' in e && e.eventRef === t.eventRef)) {
|
|
51
|
+
existing.then.push(t);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
keyToIndex.set(key, merged.length);
|
|
57
|
+
merged.push({ ...condition, then: [...condition.then] });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return merged;
|
|
61
|
+
}
|
|
62
|
+
function stableKey(gwt) {
|
|
63
|
+
return JSON.stringify({ given: gwt.given, when: gwt.when }, (_, v) => v && typeof v === 'object' && !Array.isArray(v)
|
|
64
|
+
? Object.fromEntries(Object.entries(v).sort(([a], [b]) => a.localeCompare(b)))
|
|
65
|
+
: v);
|
|
66
|
+
}
|
|
33
67
|
function enhanceMapping(mapping) {
|
|
34
68
|
const enhancedMapping = {};
|
|
35
69
|
for (const command in mapping) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gwt.js","sourceRoot":"","sources":["../../../../src/codegen/extract/gwt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gwt.js","sourceRoot":"","sources":["../../../../src/codegen/extract/gwt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAkD,MAAM,kBAAkB,CAAC;AAE5G,MAAM,UAAU,sBAAsB,CAAC,KAAY;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,YAAY,CAAC,IAA8C;IAClE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,IAAI,CAAC;AACtD,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgC;IAC3D,MAAM,OAAO,GAAmC,EAAE,CAAC;IAEnD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,eAAe,EAAE,GAAG,CAAC,eAAe;aACrC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,OAAO,CAAC,OAAO,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAA0B;IAChE,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE7C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBAC/B,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAChG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,GAAiB;IAClC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACnE,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC,CACN,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAuC;IAC7D,MAAM,eAAe,GAAoE,EAAE,CAAC;IAE5F,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,cAAc,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QAE7D,eAAe,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClD,GAAG,GAAG;YACN,aAAa,EAAE,iBAAiB,CAAC,GAAG,EAAE,cAAc,CAAC;SACtD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAoB;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IACpH,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC;IACpH,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAiB,EAAE,cAAuC;IACnF,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC;IAE/F,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEzB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC;IAC5F,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IAEjE,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;QACrB,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,GAAG,KAAK,EAAE,IAAI,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,SAAS,CAAC;IACrE,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -604,6 +604,156 @@ describe('spec.ts.ejs', () => {
|
|
|
604
604
|
expect(contents).not.toContain('new Date(null)');
|
|
605
605
|
});
|
|
606
606
|
|
|
607
|
+
it('should merge co-firing rules with same given+when into one test with combined events', async () => {
|
|
608
|
+
const spec: SpecsSchema = {
|
|
609
|
+
variant: 'specs',
|
|
610
|
+
narratives: [
|
|
611
|
+
{
|
|
612
|
+
name: 'Fitness flow',
|
|
613
|
+
slices: [
|
|
614
|
+
{
|
|
615
|
+
type: 'command',
|
|
616
|
+
name: 'Submit workout',
|
|
617
|
+
client: { specs: [] },
|
|
618
|
+
server: {
|
|
619
|
+
description: '',
|
|
620
|
+
specs: [
|
|
621
|
+
{
|
|
622
|
+
type: 'gherkin',
|
|
623
|
+
feature: 'Submit workout spec',
|
|
624
|
+
rules: [
|
|
625
|
+
{
|
|
626
|
+
name: 'Track exercise stats',
|
|
627
|
+
examples: [
|
|
628
|
+
{
|
|
629
|
+
name: 'Workout submitted updates stats',
|
|
630
|
+
steps: [
|
|
631
|
+
{
|
|
632
|
+
keyword: 'When',
|
|
633
|
+
text: 'SubmitWorkout',
|
|
634
|
+
docString: { workoutId: 'w1', exercise: 'squat' },
|
|
635
|
+
},
|
|
636
|
+
{
|
|
637
|
+
keyword: 'Then',
|
|
638
|
+
text: 'StatsUpdated',
|
|
639
|
+
docString: { workoutId: 'w1', count: 1 },
|
|
640
|
+
},
|
|
641
|
+
],
|
|
642
|
+
},
|
|
643
|
+
],
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
name: 'Track workout log',
|
|
647
|
+
examples: [
|
|
648
|
+
{
|
|
649
|
+
name: 'Workout submitted creates log',
|
|
650
|
+
steps: [
|
|
651
|
+
{
|
|
652
|
+
keyword: 'When',
|
|
653
|
+
text: 'SubmitWorkout',
|
|
654
|
+
docString: { workoutId: 'w1', exercise: 'squat' },
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
keyword: 'Then',
|
|
658
|
+
text: 'WorkoutLogged',
|
|
659
|
+
docString: { workoutId: 'w1', loggedAt: '2024-01-01T00:00:00Z' },
|
|
660
|
+
},
|
|
661
|
+
],
|
|
662
|
+
},
|
|
663
|
+
],
|
|
664
|
+
},
|
|
665
|
+
],
|
|
666
|
+
},
|
|
667
|
+
],
|
|
668
|
+
},
|
|
669
|
+
},
|
|
670
|
+
],
|
|
671
|
+
},
|
|
672
|
+
],
|
|
673
|
+
messages: [
|
|
674
|
+
{
|
|
675
|
+
type: 'command',
|
|
676
|
+
name: 'SubmitWorkout',
|
|
677
|
+
fields: [
|
|
678
|
+
{ name: 'workoutId', type: 'string', required: true },
|
|
679
|
+
{ name: 'exercise', type: 'string', required: true },
|
|
680
|
+
],
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
type: 'event',
|
|
684
|
+
name: 'StatsUpdated',
|
|
685
|
+
source: 'internal',
|
|
686
|
+
fields: [
|
|
687
|
+
{ name: 'workoutId', type: 'string', required: true },
|
|
688
|
+
{ name: 'count', type: 'number', required: true },
|
|
689
|
+
],
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
type: 'event',
|
|
693
|
+
name: 'WorkoutLogged',
|
|
694
|
+
source: 'internal',
|
|
695
|
+
fields: [
|
|
696
|
+
{ name: 'workoutId', type: 'string', required: true },
|
|
697
|
+
{ name: 'loggedAt', type: 'Date', required: true },
|
|
698
|
+
],
|
|
699
|
+
},
|
|
700
|
+
],
|
|
701
|
+
};
|
|
702
|
+
|
|
703
|
+
const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
|
|
704
|
+
const specFile = plans.find((p) => p.outputPath.endsWith('specs.ts'));
|
|
705
|
+
|
|
706
|
+
expect(specFile?.contents).toMatchInlineSnapshot(`
|
|
707
|
+
"import { describe, it } from 'vitest';
|
|
708
|
+
import { DeciderSpecification } from '@event-driven-io/emmett';
|
|
709
|
+
import { decide } from './decide';
|
|
710
|
+
import { evolve } from './evolve';
|
|
711
|
+
import { initialState, State } from './state';
|
|
712
|
+
import type { StatsUpdated, WorkoutLogged } from './events';
|
|
713
|
+
import type { SubmitWorkout } from './commands';
|
|
714
|
+
|
|
715
|
+
describe('Track exercise stats', () => {
|
|
716
|
+
type Events = StatsUpdated | WorkoutLogged;
|
|
717
|
+
|
|
718
|
+
const given = DeciderSpecification.for<SubmitWorkout, Events, State>({
|
|
719
|
+
decide,
|
|
720
|
+
evolve,
|
|
721
|
+
initialState,
|
|
722
|
+
});
|
|
723
|
+
|
|
724
|
+
it('Workout submitted updates stats', () => {
|
|
725
|
+
given([])
|
|
726
|
+
.when({
|
|
727
|
+
type: 'SubmitWorkout',
|
|
728
|
+
data: {
|
|
729
|
+
workoutId: 'w1',
|
|
730
|
+
exercise: 'squat',
|
|
731
|
+
},
|
|
732
|
+
metadata: { now: new Date() },
|
|
733
|
+
})
|
|
734
|
+
|
|
735
|
+
.then([
|
|
736
|
+
{
|
|
737
|
+
type: 'StatsUpdated',
|
|
738
|
+
data: {
|
|
739
|
+
workoutId: 'w1',
|
|
740
|
+
count: 1,
|
|
741
|
+
},
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
type: 'WorkoutLogged',
|
|
745
|
+
data: {
|
|
746
|
+
workoutId: 'w1',
|
|
747
|
+
loggedAt: new Date('2024-01-01T00:00:00Z'),
|
|
748
|
+
},
|
|
749
|
+
},
|
|
750
|
+
]);
|
|
751
|
+
});
|
|
752
|
+
});
|
|
753
|
+
"
|
|
754
|
+
`);
|
|
755
|
+
});
|
|
756
|
+
|
|
607
757
|
it('should include business rule descriptions in decide.ts implementation comments', async () => {
|
|
608
758
|
const spec: SpecsSchema = {
|
|
609
759
|
variant: 'specs',
|
|
@@ -1569,9 +1569,9 @@ describe('projection.specs.ts.ejs', () => {
|
|
|
1569
1569
|
* ## IMPLEMENTATION INSTRUCTIONS ##
|
|
1570
1570
|
* Implement how this event updates the projection.
|
|
1571
1571
|
*
|
|
1572
|
-
* **
|
|
1572
|
+
* **Internal State Pattern (extends, never replaces the imported type):**
|
|
1573
1573
|
* If you need to track state beyond the public WorkoutHistory type (e.g., to calculate
|
|
1574
|
-
* aggregations, track previous values, etc.),
|
|
1574
|
+
* aggregations, track previous values, etc.), you may EXTEND it with an interface (never replace it):
|
|
1575
1575
|
*
|
|
1576
1576
|
* 1. Define an extended interface BEFORE the projection:
|
|
1577
1577
|
* interface InternalWorkoutHistory extends WorkoutHistory {
|
|
@@ -241,9 +241,9 @@ describe('projection.ts.ejs', () => {
|
|
|
241
241
|
* ## IMPLEMENTATION INSTRUCTIONS ##
|
|
242
242
|
* Implement how this event updates the projection.
|
|
243
243
|
*
|
|
244
|
-
* **
|
|
244
|
+
* **Internal State Pattern (extends, never replaces the imported type):**
|
|
245
245
|
* If you need to track state beyond the public AvailableListings type (e.g., to calculate
|
|
246
|
-
* aggregations, track previous values, etc.),
|
|
246
|
+
* aggregations, track previous values, etc.), you may EXTEND it with an interface (never replace it):
|
|
247
247
|
*
|
|
248
248
|
* 1. Define an extended interface BEFORE the projection:
|
|
249
249
|
* interface InternalAvailableListings extends AvailableListings {
|
|
@@ -574,26 +574,20 @@ describe('projection.ts.ejs', () => {
|
|
|
574
574
|
*
|
|
575
575
|
* CRITICAL: Use internal state to track individual entity information:
|
|
576
576
|
*
|
|
577
|
-
* 1. Access current state:
|
|
578
|
-
* const current: InternalTodoSummary = document ?? { ...initialState
|
|
577
|
+
* 1. Access current state (guard _entities):
|
|
578
|
+
* const current: InternalTodoSummary = document ?? { ...initialState };
|
|
579
|
+
* if (!current._entities) current._entities = {};
|
|
579
580
|
*
|
|
580
581
|
* 2. Track entity changes:
|
|
581
|
-
* // a) Extract the unique identifier that distinguishes this entity
|
|
582
|
-
* // Examine event.data to find the ID field (often 'id' or '<entity>Id')
|
|
583
582
|
* const entityId = event.data.[ENTITY_ID_FIELD];
|
|
584
|
-
*
|
|
585
|
-
* // b) Store/update entity state with relevant properties from event.data
|
|
586
|
-
* // Include only fields needed for aggregation calculations
|
|
587
583
|
* current._entities[entityId] = { [field]: value, ... };
|
|
588
584
|
*
|
|
589
585
|
* 3. Calculate aggregates from entity states:
|
|
590
|
-
* const
|
|
591
|
-
* acc[entity.status] = (acc[entity.status] || 0) + 1;
|
|
592
|
-
* return acc;
|
|
593
|
-
* }, {});
|
|
586
|
+
* const aggregated = Object.values(current._entities).reduce(...);
|
|
594
587
|
*
|
|
595
|
-
* 4. Return
|
|
596
|
-
*
|
|
588
|
+
* 4. Return via typed variable (preserves _entities for next event):
|
|
589
|
+
* const result: InternalTodoSummary = { ...publicFields, _entities: current._entities };
|
|
590
|
+
* return result;
|
|
597
591
|
|
|
598
592
|
* Event (TodoAdded) fields: todoId: string, title: string
|
|
599
593
|
*/
|
|
@@ -127,26 +127,20 @@ case '<%= event.type %>': {
|
|
|
127
127
|
*
|
|
128
128
|
* CRITICAL: Use internal state to track individual entity information:
|
|
129
129
|
*
|
|
130
|
-
* 1. Access current state:
|
|
131
|
-
* const current: Internal<%= pascalCase(targetName || 'State') %> = document ?? { ...initialState
|
|
130
|
+
* 1. Access current state (guard _entities):
|
|
131
|
+
* const current: Internal<%= pascalCase(targetName || 'State') %> = document ?? { ...initialState };
|
|
132
|
+
* if (!current._entities) current._entities = {};
|
|
132
133
|
*
|
|
133
134
|
* 2. Track entity changes:
|
|
134
|
-
* // a) Extract the unique identifier that distinguishes this entity
|
|
135
|
-
* // Examine event.data to find the ID field (often 'id' or '<entity>Id')
|
|
136
135
|
* const entityId = event.data.[ENTITY_ID_FIELD];
|
|
137
|
-
*
|
|
138
|
-
* // b) Store/update entity state with relevant properties from event.data
|
|
139
|
-
* // Include only fields needed for aggregation calculations
|
|
140
136
|
* current._entities[entityId] = { [field]: value, ... };
|
|
141
137
|
*
|
|
142
138
|
* 3. Calculate aggregates from entity states:
|
|
143
|
-
* const
|
|
144
|
-
* acc[entity.status] = (acc[entity.status] || 0) + 1;
|
|
145
|
-
* return acc;
|
|
146
|
-
* }, {});
|
|
139
|
+
* const aggregated = Object.values(current._entities).reduce(...);
|
|
147
140
|
*
|
|
148
|
-
* 4. Return
|
|
149
|
-
*
|
|
141
|
+
* 4. Return via typed variable (preserves _entities for next event):
|
|
142
|
+
* const result: Internal<%= pascalCase(targetName || 'State') %> = { ...publicFields, _entities: current._entities };
|
|
143
|
+
* return result;
|
|
150
144
|
<% } else if (isCompositeKey) { -%>
|
|
151
145
|
* **COMPOSITE KEY PROJECTION**
|
|
152
146
|
*
|
|
@@ -173,9 +167,9 @@ case '<%= event.type %>': {
|
|
|
173
167
|
<% } else { -%>
|
|
174
168
|
* Implement how this event updates the projection.
|
|
175
169
|
*
|
|
176
|
-
* **
|
|
170
|
+
* **Internal State Pattern (extends, never replaces the imported type):**
|
|
177
171
|
* If you need to track state beyond the public <%= pascalCase(targetName || 'State') %> type (e.g., to calculate
|
|
178
|
-
* aggregations, track previous values, etc.),
|
|
172
|
+
* aggregations, track previous values, etc.), you may EXTEND it with an interface (never replace it):
|
|
179
173
|
*
|
|
180
174
|
* 1. Define an extended interface BEFORE the projection:
|
|
181
175
|
* interface Internal<%= pascalCase(targetName || 'State') %> extends <%= pascalCase(targetName || 'State') %> {
|
|
@@ -39,6 +39,7 @@ export type ServerGenerationFailedEvent = Event<'ServerGenerationFailed', {
|
|
|
39
39
|
modelPath: string;
|
|
40
40
|
destination: string;
|
|
41
41
|
error: string;
|
|
42
|
+
model: Model;
|
|
42
43
|
}>;
|
|
43
44
|
export type SliceGeneratedEvent = Event<'SliceGenerated', {
|
|
44
45
|
flowName: string;
|
|
@@ -52,6 +53,7 @@ export type SliceGenerationFailedEvent = Event<'SliceGenerationFailed', {
|
|
|
52
53
|
sliceName: string;
|
|
53
54
|
sliceType: string;
|
|
54
55
|
error: string;
|
|
56
|
+
model: Model;
|
|
55
57
|
}>;
|
|
56
58
|
export type GenerateServerEvents = ServerGeneratedEvent | ServerGenerationFailedEvent | SliceGeneratedEvent | SliceGenerationFailedEvent;
|
|
57
59
|
export declare const commandHandler: import("@auto-engineer/message-bus").CommandHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-server.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAC5F,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAIxE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,UAAU,EAGhB,MAAM,+BAA+B,CAAC;AAWvC,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpG;AAED,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,gBAAgB,EAChB;IACE,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CACF,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,KAAK,CACtC,iBAAiB,EACjB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CACF,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAC7C,wBAAwB,EACxB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-server.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -169,13 +169,14 @@ function stripAnsiCodes(text) {
|
|
|
169
169
|
}
|
|
170
170
|
function createServerFailureEvent(command, error) {
|
|
171
171
|
debug('Server generation failed with error: %O', error);
|
|
172
|
-
const errorMessage = error instanceof Error ? stripAnsiCodes(error.message) : 'Unknown error occurred';
|
|
172
|
+
const errorMessage = error instanceof Error ? stripAnsiCodes(error.stack ?? error.message) : 'Unknown error occurred';
|
|
173
173
|
return {
|
|
174
174
|
type: 'ServerGenerationFailed',
|
|
175
175
|
data: {
|
|
176
176
|
modelPath: deriveModelPath(command.data.destination),
|
|
177
177
|
destination: command.data.destination,
|
|
178
178
|
error: errorMessage,
|
|
179
|
+
model: command.data.model,
|
|
179
180
|
},
|
|
180
181
|
timestamp: new Date(),
|
|
181
182
|
requestId: command.requestId,
|
|
@@ -215,6 +216,7 @@ export function emitSliceGenerationFailedForDuplicates(duplicateCommands, spec,
|
|
|
215
216
|
sliceName: slice.name,
|
|
216
217
|
sliceType: slice.type,
|
|
217
218
|
error: `Duplicate command handler: '${dup.command}' is already registered in ${dup.existingFlow}/${dup.existingSlice}`,
|
|
219
|
+
model: spec,
|
|
218
220
|
},
|
|
219
221
|
timestamp: new Date(),
|
|
220
222
|
requestId: command.requestId,
|
|
@@ -249,6 +251,7 @@ export function emitSliceGenerationFailedForFieldIssues(fieldIssues, spec, comma
|
|
|
249
251
|
sliceName: slice.name,
|
|
250
252
|
sliceType: slice.type,
|
|
251
253
|
error: issue.error,
|
|
254
|
+
model: spec,
|
|
252
255
|
},
|
|
253
256
|
timestamp: new Date(),
|
|
254
257
|
requestId: command.requestId,
|