@auto-engineer/server-generator-apollo-emmett 0.2.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +5 -108
  3. package/.turbo/turbo-type-check.log +1 -1
  4. package/CHANGELOG.md +7 -0
  5. package/dist/codegen/extract/commands.d.ts +11 -5
  6. package/dist/codegen/extract/commands.d.ts.map +1 -1
  7. package/dist/codegen/extract/commands.js +27 -12
  8. package/dist/codegen/extract/commands.js.map +1 -1
  9. package/dist/codegen/extract/data-sink.d.ts.map +1 -1
  10. package/dist/codegen/extract/data-sink.js +52 -28
  11. package/dist/codegen/extract/data-sink.js.map +1 -1
  12. package/dist/codegen/extract/gwt.d.ts.map +1 -1
  13. package/dist/codegen/extract/gwt.js +37 -6
  14. package/dist/codegen/extract/gwt.js.map +1 -1
  15. package/dist/codegen/extract/messages.d.ts.map +1 -1
  16. package/dist/codegen/extract/messages.js +38 -6
  17. package/dist/codegen/extract/messages.js.map +1 -1
  18. package/dist/codegen/extract/query.d.ts.map +1 -1
  19. package/dist/codegen/extract/query.js +9 -2
  20. package/dist/codegen/extract/query.js.map +1 -1
  21. package/dist/codegen/scaffoldFromSchema.d.ts.map +1 -1
  22. package/dist/codegen/scaffoldFromSchema.js +21 -6
  23. package/dist/codegen/scaffoldFromSchema.js.map +1 -1
  24. package/dist/codegen/templates/command/commands.specs.ts +28 -19
  25. package/dist/codegen/templates/command/decide.specs.specs.ts +75 -57
  26. package/dist/codegen/templates/command/decide.specs.ts +147 -110
  27. package/dist/codegen/templates/command/events.specs.ts +38 -29
  28. package/dist/codegen/templates/command/evolve.specs.ts +33 -24
  29. package/dist/codegen/templates/command/handle.specs.ts +61 -43
  30. package/dist/codegen/templates/command/mutation.resolver.specs.ts +28 -19
  31. package/dist/codegen/templates/command/register.specs.ts +34 -25
  32. package/dist/codegen/templates/command/state.specs.ts +34 -25
  33. package/dist/codegen/templates/query/projection.specs.specs..ts +100 -80
  34. package/dist/codegen/templates/query/projection.specs.ts +101 -81
  35. package/dist/codegen/templates/query/query.resolver.specs.ts +2 -2
  36. package/dist/codegen/templates/query/state.specs.ts +1 -1
  37. package/dist/codegen/templates/react/react.specs.specs.ts +86 -68
  38. package/dist/codegen/templates/react/react.specs.ts +123 -96
  39. package/dist/codegen/templates/react/react.specs.ts.ejs +9 -1
  40. package/dist/codegen/templates/react/react.ts.ejs +8 -1
  41. package/dist/codegen/templates/react/register.specs.ts +123 -96
  42. package/dist/codegen/templates/react/register.ts.ejs +8 -1
  43. package/dist/codegen/test-data/specVariant1.d.ts.map +1 -1
  44. package/dist/codegen/test-data/specVariant1.js +92 -65
  45. package/dist/codegen/test-data/specVariant1.js.map +1 -1
  46. package/dist/codegen/types.d.ts +4 -4
  47. package/dist/codegen/types.d.ts.map +1 -1
  48. package/package.json +9 -9
  49. package/src/codegen/extract/commands.ts +48 -19
  50. package/src/codegen/extract/data-sink.ts +68 -31
  51. package/src/codegen/extract/gwt.ts +45 -10
  52. package/src/codegen/extract/messages.ts +49 -7
  53. package/src/codegen/extract/query.ts +15 -2
  54. package/src/codegen/scaffoldFromSchema.ts +27 -6
  55. package/src/codegen/templates/command/commands.specs.ts +28 -19
  56. package/src/codegen/templates/command/decide.specs.specs.ts +75 -57
  57. package/src/codegen/templates/command/decide.specs.ts +147 -110
  58. package/src/codegen/templates/command/events.specs.ts +38 -29
  59. package/src/codegen/templates/command/evolve.specs.ts +33 -24
  60. package/src/codegen/templates/command/handle.specs.ts +61 -43
  61. package/src/codegen/templates/command/mutation.resolver.specs.ts +28 -19
  62. package/src/codegen/templates/command/register.specs.ts +34 -25
  63. package/src/codegen/templates/command/state.specs.ts +34 -25
  64. package/src/codegen/templates/query/projection.specs.specs..ts +100 -80
  65. package/src/codegen/templates/query/projection.specs.ts +101 -81
  66. package/src/codegen/templates/query/query.resolver.specs.ts +2 -2
  67. package/src/codegen/templates/query/state.specs.ts +1 -1
  68. package/src/codegen/templates/react/react.specs.specs.ts +86 -68
  69. package/src/codegen/templates/react/react.specs.ts +123 -96
  70. package/src/codegen/templates/react/react.specs.ts.ejs +9 -1
  71. package/src/codegen/templates/react/react.ts.ejs +8 -1
  72. package/src/codegen/templates/react/register.specs.ts +123 -96
  73. package/src/codegen/templates/react/register.ts.ejs +8 -1
  74. package/src/codegen/test-data/specVariant1.ts +92 -65
  75. package/src/codegen/types.ts +4 -4
  76. package/tsconfig.tsbuildinfo +1 -1
@@ -19,31 +19,40 @@ describe('decide.ts.ejs', () => {
19
19
  },
20
20
  server: {
21
21
  description: 'test',
22
- gwt: [
23
- {
24
- when: {
25
- commandRef: 'CreateListing',
26
- exampleData: {
27
- propertyId: 'listing_123',
28
- title: 'Some apartment',
29
- listedAt: '2024-01-15T10:00:00Z',
30
- rating: 4.8,
31
- metadata: { foo: 'bar' },
32
- },
33
- },
34
- then: [
35
- {
36
- eventRef: 'ListingCreated',
37
- exampleData: {
38
- propertyId: 'listing_123',
39
- listedAt: '2024-01-15T10:00:00Z',
40
- rating: 4.8,
41
- metadata: { foo: 'bar' },
22
+ specs: {
23
+ name: 'Create listing command',
24
+ rules: [
25
+ {
26
+ description: 'Should create listing with valid data',
27
+ examples: [
28
+ {
29
+ description: 'User creates listing successfully',
30
+ when: {
31
+ commandRef: 'CreateListing',
32
+ exampleData: {
33
+ propertyId: 'listing_123',
34
+ title: 'Some apartment',
35
+ listedAt: '2024-01-15T10:00:00Z',
36
+ rating: 4.8,
37
+ metadata: { foo: 'bar' },
38
+ },
39
+ },
40
+ then: [
41
+ {
42
+ eventRef: 'ListingCreated',
43
+ exampleData: {
44
+ propertyId: 'listing_123',
45
+ listedAt: '2024-01-15T10:00:00Z',
46
+ rating: 4.8,
47
+ metadata: { foo: 'bar' },
48
+ },
49
+ },
50
+ ],
42
51
  },
43
- },
44
- ],
45
- },
46
- ],
52
+ ],
53
+ },
54
+ ],
55
+ },
47
56
  },
48
57
  },
49
58
  ],
@@ -121,34 +130,43 @@ describe('decide.ts.ejs', () => {
121
130
  },
122
131
  server: {
123
132
  description: 'test',
124
- gwt: [
125
- {
126
- given: [
127
- {
128
- eventRef: 'ListingCreated',
129
- exampleData: {
130
- propertyId: 'listing_123',
131
- listedAt: '2024-01-15T10:00:00Z',
133
+ specs: {
134
+ name: 'Remove listing command',
135
+ rules: [
136
+ {
137
+ description: 'Should remove existing listing',
138
+ examples: [
139
+ {
140
+ description: 'Existing listing can be removed',
141
+ given: [
142
+ {
143
+ eventRef: 'ListingCreated',
144
+ exampleData: {
145
+ propertyId: 'listing_123',
146
+ listedAt: '2024-01-15T10:00:00Z',
147
+ },
148
+ },
149
+ ],
150
+ when: {
151
+ commandRef: 'RemoveListing',
152
+ exampleData: {
153
+ propertyId: 'listing_123',
154
+ },
155
+ },
156
+ then: [
157
+ {
158
+ eventRef: 'ListingRemoved',
159
+ exampleData: {
160
+ propertyId: 'listing_123',
161
+ removedAt: '2024-01-16T12:00:00Z',
162
+ },
163
+ },
164
+ ],
132
165
  },
133
- },
134
- ],
135
- when: {
136
- commandRef: 'RemoveListing',
137
- exampleData: {
138
- propertyId: 'listing_123',
139
- },
166
+ ],
140
167
  },
141
- then: [
142
- {
143
- eventRef: 'ListingRemoved',
144
- exampleData: {
145
- propertyId: 'listing_123',
146
- removedAt: '2024-01-16T12:00:00Z',
147
- },
148
- },
149
- ],
150
- },
151
- ],
168
+ ],
169
+ },
152
170
  },
153
171
  },
154
172
  ],
@@ -238,49 +256,59 @@ describe('decide.ts.ejs', () => {
238
256
  },
239
257
  server: {
240
258
  description: 'test',
241
- gwt: [
242
- {
243
- when: {
244
- commandRef: 'CreateListing',
245
- exampleData: {
246
- propertyId: 'listing_123',
247
- title: 'Some Apartment',
248
- listedAt: '2024-01-15T10:00:00Z',
249
- rating: 4.8,
250
- metadata: { foo: 'bar' },
251
- },
252
- },
253
- then: [
254
- {
255
- eventRef: 'ListingCreated',
256
- exampleData: {
257
- propertyId: 'listing_123',
258
- listedAt: '2024-01-15T10:00:00Z',
259
- rating: 4.8,
260
- metadata: { foo: 'bar' },
259
+ specs: {
260
+ name: 'Create listing command',
261
+ rules: [
262
+ {
263
+ description: 'Should handle multiple scenarios including errors',
264
+ examples: [
265
+ {
266
+ description: 'User creates listing successfully',
267
+ when: {
268
+ commandRef: 'CreateListing',
269
+ exampleData: {
270
+ propertyId: 'listing_123',
271
+ title: 'Some Apartment',
272
+ listedAt: '2024-01-15T10:00:00Z',
273
+ rating: 4.8,
274
+ metadata: { foo: 'bar' },
275
+ },
276
+ },
277
+ then: [
278
+ {
279
+ eventRef: 'ListingCreated',
280
+ exampleData: {
281
+ propertyId: 'listing_123',
282
+ listedAt: '2024-01-15T10:00:00Z',
283
+ rating: 4.8,
284
+ metadata: { foo: 'bar' },
285
+ },
286
+ },
287
+ ],
261
288
  },
262
- },
263
- ],
264
- },
265
- {
266
- when: {
267
- commandRef: 'CreateListing',
268
- exampleData: {
269
- propertyId: 'listing_123',
270
- title: '',
271
- listedAt: '2024-01-15T10:00:00Z',
272
- rating: 4.8,
273
- metadata: {},
274
- },
289
+ {
290
+ description: 'User creates listing with empty title should fail',
291
+ when: {
292
+ commandRef: 'CreateListing',
293
+ exampleData: {
294
+ propertyId: 'listing_123',
295
+ title: '',
296
+ listedAt: '2024-01-15T10:00:00Z',
297
+ rating: 4.8,
298
+ metadata: {},
299
+ },
300
+ },
301
+ then: [
302
+ {
303
+ errorType: 'ValidationError',
304
+ message: 'Title must not be empty',
305
+ },
306
+ ],
307
+ },
308
+ ],
275
309
  },
276
- then: [
277
- {
278
- errorType: 'ValidationError',
279
- message: 'Title must not be empty',
280
- },
281
- ],
282
- },
283
- ],
310
+ ],
311
+ },
284
312
  },
285
313
  },
286
314
  ],
@@ -411,26 +439,35 @@ describe('decide.ts.ejs', () => {
411
439
  },
412
440
  },
413
441
  ],
414
- gwt: [
415
- {
416
- when: {
417
- commandRef: 'SuggestItems',
418
- exampleData: {
419
- sessionId: 'session-123',
420
- prompt: 'What should I buy?',
421
- },
422
- },
423
- then: [
424
- {
425
- eventRef: 'ItemsSuggested',
426
- exampleData: {
427
- sessionId: 'session-123',
428
- items: [],
442
+ specs: {
443
+ name: 'Suggest items command',
444
+ rules: [
445
+ {
446
+ description: 'Should suggest items successfully',
447
+ examples: [
448
+ {
449
+ description: 'User requests item suggestions',
450
+ when: {
451
+ commandRef: 'SuggestItems',
452
+ exampleData: {
453
+ sessionId: 'session-123',
454
+ prompt: 'What should I buy?',
455
+ },
456
+ },
457
+ then: [
458
+ {
459
+ eventRef: 'ItemsSuggested',
460
+ exampleData: {
461
+ sessionId: 'session-123',
462
+ items: [],
463
+ },
464
+ },
465
+ ],
429
466
  },
430
- },
431
- ],
432
- },
433
- ],
467
+ ],
468
+ },
469
+ ],
470
+ },
434
471
  },
435
472
  },
436
473
  ],
@@ -19,36 +19,45 @@ describe('events.ts.ejs', () => {
19
19
  },
20
20
  server: {
21
21
  description: 'test',
22
- gwt: [
23
- {
24
- when: {
25
- commandRef: 'CreateListing',
26
- exampleData: {
27
- propertyId: 'listing_123',
28
- title: 'blah',
29
- pricePerNight: 250,
30
- maxGuests: 4,
31
- amenities: ['wifi', 'kitchen'],
32
- available: true,
33
- tags: ['some tag'],
34
- rating: 4.8,
35
- metadata: { foo: 'bar' },
36
- listedAt: '2024-01-15T10:00:00Z',
37
- },
38
- },
39
- then: [
40
- {
41
- eventRef: 'ListingCreated',
42
- exampleData: {
43
- propertyId: 'listing_123',
44
- listedAt: '2024-01-15T10:00:00Z',
45
- rating: 4.8,
46
- metadata: { foo: 'bar' },
22
+ specs: {
23
+ name: 'Create listing command',
24
+ rules: [
25
+ {
26
+ description: 'Should create listing successfully',
27
+ examples: [
28
+ {
29
+ description: 'User creates listing with valid data',
30
+ when: {
31
+ commandRef: 'CreateListing',
32
+ exampleData: {
33
+ propertyId: 'listing_123',
34
+ title: 'blah',
35
+ pricePerNight: 250,
36
+ maxGuests: 4,
37
+ amenities: ['wifi', 'kitchen'],
38
+ available: true,
39
+ tags: ['some tag'],
40
+ rating: 4.8,
41
+ metadata: { foo: 'bar' },
42
+ listedAt: '2024-01-15T10:00:00Z',
43
+ },
44
+ },
45
+ then: [
46
+ {
47
+ eventRef: 'ListingCreated',
48
+ exampleData: {
49
+ propertyId: 'listing_123',
50
+ listedAt: '2024-01-15T10:00:00Z',
51
+ rating: 4.8,
52
+ metadata: { foo: 'bar' },
53
+ },
54
+ },
55
+ ],
47
56
  },
48
- },
49
- ],
50
- },
51
- ],
57
+ ],
58
+ },
59
+ ],
60
+ },
52
61
  },
53
62
  },
54
63
  ],
@@ -19,31 +19,40 @@ describe('evolve.ts.ejs', () => {
19
19
  },
20
20
  server: {
21
21
  description: 'test',
22
- gwt: [
23
- {
24
- when: {
25
- commandRef: 'CreateListing',
26
- exampleData: {
27
- propertyId: 'listing_123',
28
- title: 'Some Apartment',
29
- listedAt: '2024-01-15T10:00:00Z',
30
- rating: 4.8,
31
- metadata: { foo: 'bar' },
32
- },
33
- },
34
- then: [
35
- {
36
- eventRef: 'ListingCreated',
37
- exampleData: {
38
- propertyId: 'listing_123',
39
- listedAt: '2024-01-15T10:00:00Z',
40
- rating: 4.8,
41
- metadata: { foo: 'bar' },
22
+ specs: {
23
+ name: 'Create listing command',
24
+ rules: [
25
+ {
26
+ description: 'Should create listing successfully',
27
+ examples: [
28
+ {
29
+ description: 'User creates listing with valid data',
30
+ when: {
31
+ commandRef: 'CreateListing',
32
+ exampleData: {
33
+ propertyId: 'listing_123',
34
+ title: 'Some Apartment',
35
+ listedAt: '2024-01-15T10:00:00Z',
36
+ rating: 4.8,
37
+ metadata: { foo: 'bar' },
38
+ },
39
+ },
40
+ then: [
41
+ {
42
+ eventRef: 'ListingCreated',
43
+ exampleData: {
44
+ propertyId: 'listing_123',
45
+ listedAt: '2024-01-15T10:00:00Z',
46
+ rating: 4.8,
47
+ metadata: { foo: 'bar' },
48
+ },
49
+ },
50
+ ],
42
51
  },
43
- },
44
- ],
45
- },
46
- ],
52
+ ],
53
+ },
54
+ ],
55
+ },
47
56
  },
48
57
  },
49
58
  ],
@@ -20,31 +20,40 @@ describe('generateScaffoldFilePlans', () => {
20
20
  },
21
21
  server: {
22
22
  description: 'test',
23
- gwt: [
24
- {
25
- when: {
26
- commandRef: 'CreateListing',
27
- exampleData: {
28
- propertyId: 'listing_123',
29
- title: 'Modern Downtown Apartment',
30
- listedAt: '2024-01-15T10:00:00Z',
31
- rating: 4.8,
32
- metadata: { foo: 'bar' },
33
- },
34
- },
35
- then: [
36
- {
37
- eventRef: 'ListingCreated',
38
- exampleData: {
39
- propertyId: 'listing_123',
40
- listedAt: '2024-01-15T10:00:00Z',
41
- rating: 4.8,
42
- metadata: { foo: 'bar' },
23
+ specs: {
24
+ name: 'Create listing command',
25
+ rules: [
26
+ {
27
+ description: 'Should create listing successfully',
28
+ examples: [
29
+ {
30
+ description: 'User creates listing with valid data',
31
+ when: {
32
+ commandRef: 'CreateListing',
33
+ exampleData: {
34
+ propertyId: 'listing_123',
35
+ title: 'Modern Downtown Apartment',
36
+ listedAt: '2024-01-15T10:00:00Z',
37
+ rating: 4.8,
38
+ metadata: { foo: 'bar' },
39
+ },
40
+ },
41
+ then: [
42
+ {
43
+ eventRef: 'ListingCreated',
44
+ exampleData: {
45
+ propertyId: 'listing_123',
46
+ listedAt: '2024-01-15T10:00:00Z',
47
+ rating: 4.8,
48
+ metadata: { foo: 'bar' },
49
+ },
50
+ },
51
+ ],
43
52
  },
44
- },
45
- ],
46
- },
47
- ],
53
+ ],
54
+ },
55
+ ],
56
+ },
48
57
  data: [
49
58
  {
50
59
  target: {
@@ -174,26 +183,35 @@ describe('generateScaffoldFilePlans', () => {
174
183
  },
175
184
  },
176
185
  ],
177
- gwt: [
178
- {
179
- when: {
180
- commandRef: 'SuggestItems',
181
- exampleData: {
182
- sessionId: 'session-123',
183
- prompt: 'What should I buy?',
184
- },
185
- },
186
- then: [
187
- {
188
- eventRef: 'ItemsSuggested',
189
- exampleData: {
190
- sessionId: 'session-123',
191
- items: [],
186
+ specs: {
187
+ name: 'Suggest items command',
188
+ rules: [
189
+ {
190
+ description: 'Should suggest items successfully',
191
+ examples: [
192
+ {
193
+ description: 'User requests item suggestions',
194
+ when: {
195
+ commandRef: 'SuggestItems',
196
+ exampleData: {
197
+ sessionId: 'session-123',
198
+ prompt: 'What should I buy?',
199
+ },
200
+ },
201
+ then: [
202
+ {
203
+ eventRef: 'ItemsSuggested',
204
+ exampleData: {
205
+ sessionId: 'session-123',
206
+ items: [],
207
+ },
208
+ },
209
+ ],
192
210
  },
193
- },
194
- ],
195
- },
196
- ],
211
+ ],
212
+ },
213
+ ],
214
+ },
197
215
  },
198
216
  },
199
217
  ],
@@ -19,26 +19,35 @@ describe('mutation.resolver.ts.ejs', () => {
19
19
  },
20
20
  server: {
21
21
  description: 'Handles listing creation',
22
- gwt: [
23
- {
24
- when: {
25
- commandRef: 'CreateListing',
26
- exampleData: {
27
- propertyId: 'listing_123',
28
- title: 'Modern Downtown Apartment',
29
- pricePerNight: 250,
30
- maxGuests: 4,
31
- amenities: ['wifi', 'kitchen'],
32
- available: true,
33
- tags: ['sea view', 'balcony'],
34
- rating: 4.8,
35
- metadata: { petsAllowed: true },
36
- listedAt: '2024-01-15T10:00:00Z',
37
- },
22
+ specs: {
23
+ name: 'Create listing command',
24
+ rules: [
25
+ {
26
+ description: 'Should create listing successfully',
27
+ examples: [
28
+ {
29
+ description: 'User creates listing with valid data',
30
+ when: {
31
+ commandRef: 'CreateListing',
32
+ exampleData: {
33
+ propertyId: 'listing_123',
34
+ title: 'Modern Downtown Apartment',
35
+ pricePerNight: 250,
36
+ maxGuests: 4,
37
+ amenities: ['wifi', 'kitchen'],
38
+ available: true,
39
+ tags: ['sea view', 'balcony'],
40
+ rating: 4.8,
41
+ metadata: { petsAllowed: true },
42
+ listedAt: '2024-01-15T10:00:00Z',
43
+ },
44
+ },
45
+ then: [],
46
+ },
47
+ ],
38
48
  },
39
- then: [],
40
- },
41
- ],
49
+ ],
50
+ },
42
51
  },
43
52
  },
44
53
  ],