@auto-engineer/server-generator-apollo-emmett 0.13.0 → 0.13.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 (92) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +8 -0
  3. package/dist/src/codegen/extract/commands.d.ts +7 -14
  4. package/dist/src/codegen/extract/commands.d.ts.map +1 -1
  5. package/dist/src/codegen/extract/commands.js.map +1 -1
  6. package/dist/src/codegen/extract/data-sink.d.ts +1 -1
  7. package/dist/src/codegen/extract/data-sink.d.ts.map +1 -1
  8. package/dist/src/codegen/extract/data-sink.js +9 -31
  9. package/dist/src/codegen/extract/data-sink.js.map +1 -1
  10. package/dist/src/codegen/extract/events.d.ts +4 -8
  11. package/dist/src/codegen/extract/events.d.ts.map +1 -1
  12. package/dist/src/codegen/extract/events.js.map +1 -1
  13. package/dist/src/codegen/extract/gwt.d.ts +2 -2
  14. package/dist/src/codegen/extract/gwt.d.ts.map +1 -1
  15. package/dist/src/codegen/extract/gwt.js +6 -21
  16. package/dist/src/codegen/extract/gwt.js.map +1 -1
  17. package/dist/src/codegen/extract/messages.d.ts +4 -4
  18. package/dist/src/codegen/extract/messages.d.ts.map +1 -1
  19. package/dist/src/codegen/extract/messages.js +24 -47
  20. package/dist/src/codegen/extract/messages.js.map +1 -1
  21. package/dist/src/codegen/extract/query.d.ts +5 -7
  22. package/dist/src/codegen/extract/query.d.ts.map +1 -1
  23. package/dist/src/codegen/extract/query.js +10 -8
  24. package/dist/src/codegen/extract/query.js.map +1 -1
  25. package/dist/src/codegen/extract/slice-normalizer.d.ts +29 -0
  26. package/dist/src/codegen/extract/slice-normalizer.d.ts.map +1 -0
  27. package/dist/src/codegen/extract/slice-normalizer.js +48 -0
  28. package/dist/src/codegen/extract/slice-normalizer.js.map +1 -0
  29. package/dist/src/codegen/extract/step-converter.d.ts +17 -0
  30. package/dist/src/codegen/extract/step-converter.d.ts.map +1 -0
  31. package/dist/src/codegen/extract/step-converter.js +82 -0
  32. package/dist/src/codegen/extract/step-converter.js.map +1 -0
  33. package/dist/src/codegen/extract/step-types.d.ts +30 -0
  34. package/dist/src/codegen/extract/step-types.d.ts.map +1 -0
  35. package/dist/src/codegen/extract/step-types.js +16 -0
  36. package/dist/src/codegen/extract/step-types.js.map +1 -0
  37. package/dist/src/codegen/scaffoldFromSchema.d.ts.map +1 -1
  38. package/dist/src/codegen/scaffoldFromSchema.js +7 -29
  39. package/dist/src/codegen/scaffoldFromSchema.js.map +1 -1
  40. package/dist/src/codegen/templates/command/commands.specs.ts +33 -28
  41. package/dist/src/codegen/templates/command/decide.specs.specs.ts +153 -138
  42. package/dist/src/codegen/templates/command/decide.specs.ts +169 -146
  43. package/dist/src/codegen/templates/command/events.specs.ts +43 -38
  44. package/dist/src/codegen/templates/command/evolve.specs.ts +38 -33
  45. package/dist/src/codegen/templates/command/handle.specs.ts +71 -61
  46. package/dist/src/codegen/templates/command/mutation.resolver.specs.ts +122 -102
  47. package/dist/src/codegen/templates/command/register.specs.ts +39 -34
  48. package/dist/src/codegen/templates/command/state.specs.ts +39 -34
  49. package/dist/src/codegen/templates/query/projection.specs.specs.ts +399 -359
  50. package/dist/src/codegen/templates/query/projection.specs.ts +242 -216
  51. package/dist/src/codegen/templates/query/projection.specs.ts.ejs +38 -12
  52. package/dist/src/codegen/templates/query/query.resolver.specs.ts +59 -51
  53. package/dist/src/codegen/templates/query/state.specs.ts +1 -1
  54. package/dist/src/codegen/templates/react/react.specs.specs.ts +93 -85
  55. package/dist/src/codegen/templates/react/react.specs.ts +135 -122
  56. package/dist/src/codegen/templates/react/register.specs.ts +135 -122
  57. package/dist/src/codegen/test-data/specVariant1.d.ts.map +1 -1
  58. package/dist/src/codegen/test-data/specVariant1.js +101 -90
  59. package/dist/src/codegen/test-data/specVariant1.js.map +1 -1
  60. package/dist/src/codegen/types.d.ts +5 -7
  61. package/dist/src/codegen/types.d.ts.map +1 -1
  62. package/dist/tsconfig.tsbuildinfo +1 -1
  63. package/package.json +4 -4
  64. package/src/codegen/extract/commands.ts +7 -8
  65. package/src/codegen/extract/data-sink.ts +16 -43
  66. package/src/codegen/extract/events.ts +4 -5
  67. package/src/codegen/extract/gwt.ts +12 -29
  68. package/src/codegen/extract/messages.ts +43 -70
  69. package/src/codegen/extract/query.ts +14 -12
  70. package/src/codegen/extract/slice-normalizer.ts +88 -0
  71. package/src/codegen/extract/step-converter.ts +124 -0
  72. package/src/codegen/extract/step-types.ts +52 -0
  73. package/src/codegen/scaffoldFromSchema.ts +8 -45
  74. package/src/codegen/templates/command/commands.specs.ts +33 -28
  75. package/src/codegen/templates/command/decide.specs.specs.ts +153 -138
  76. package/src/codegen/templates/command/decide.specs.ts +169 -146
  77. package/src/codegen/templates/command/events.specs.ts +43 -38
  78. package/src/codegen/templates/command/evolve.specs.ts +38 -33
  79. package/src/codegen/templates/command/handle.specs.ts +71 -61
  80. package/src/codegen/templates/command/mutation.resolver.specs.ts +122 -102
  81. package/src/codegen/templates/command/register.specs.ts +39 -34
  82. package/src/codegen/templates/command/state.specs.ts +39 -34
  83. package/src/codegen/templates/query/projection.specs.specs.ts +399 -359
  84. package/src/codegen/templates/query/projection.specs.ts +242 -216
  85. package/src/codegen/templates/query/projection.specs.ts.ejs +38 -12
  86. package/src/codegen/templates/query/query.resolver.specs.ts +59 -51
  87. package/src/codegen/templates/query/state.specs.ts +1 -1
  88. package/src/codegen/templates/react/react.specs.specs.ts +93 -85
  89. package/src/codegen/templates/react/react.specs.ts +135 -122
  90. package/src/codegen/templates/react/register.specs.ts +135 -122
  91. package/src/codegen/test-data/specVariant1.ts +101 -90
  92. package/src/codegen/types.ts +6 -4
@@ -18,40 +18,45 @@ describe('decide.ts.ejs', () => {
18
18
  },
19
19
  server: {
20
20
  description: 'test',
21
- specs: {
22
- name: 'Create listing command',
23
- rules: [
24
- {
25
- description: 'Should create listing with valid data',
26
- examples: [
27
- {
28
- description: 'User creates listing successfully',
29
- when: {
30
- commandRef: 'CreateListing',
31
- exampleData: {
32
- propertyId: 'listing_123',
33
- title: 'Some apartment',
34
- listedAt: '2024-01-15T10:00:00Z',
35
- rating: 4.8,
36
- metadata: { foo: 'bar' },
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' },
21
+ specs: [
22
+ {
23
+ type: 'gherkin',
24
+ feature: 'Create listing command',
25
+ rules: [
26
+ {
27
+ name: 'Should create listing with valid data',
28
+ examples: [
29
+ {
30
+ name: 'User creates listing successfully',
31
+ steps: [
32
+ {
33
+ keyword: 'When',
34
+ text: 'CreateListing',
35
+ docString: {
36
+ propertyId: 'listing_123',
37
+ title: 'Some apartment',
38
+ listedAt: '2024-01-15T10:00:00Z',
39
+ rating: 4.8,
40
+ metadata: { foo: 'bar' },
41
+ },
47
42
  },
48
- },
49
- ],
50
- },
51
- ],
52
- },
53
- ],
54
- },
43
+ {
44
+ keyword: 'Then',
45
+ text: 'ListingCreated',
46
+ docString: {
47
+ propertyId: 'listing_123',
48
+ listedAt: '2024-01-15T10:00:00Z',
49
+ rating: 4.8,
50
+ metadata: { foo: 'bar' },
51
+ },
52
+ },
53
+ ],
54
+ },
55
+ ],
56
+ },
57
+ ],
58
+ },
59
+ ],
55
60
  },
56
61
  },
57
62
  ],
@@ -129,43 +134,47 @@ describe('decide.ts.ejs', () => {
129
134
  },
130
135
  server: {
131
136
  description: 'test',
132
- specs: {
133
- name: 'Remove listing command',
134
- rules: [
135
- {
136
- description: 'Should remove existing listing',
137
- examples: [
138
- {
139
- description: 'Existing listing can be removed',
140
- given: [
141
- {
142
- eventRef: 'ListingCreated',
143
- exampleData: {
144
- propertyId: 'listing_123',
145
- listedAt: '2024-01-15T10:00:00Z',
137
+ specs: [
138
+ {
139
+ type: 'gherkin',
140
+ feature: 'Remove listing command',
141
+ rules: [
142
+ {
143
+ name: 'Should remove existing listing',
144
+ examples: [
145
+ {
146
+ name: 'Existing listing can be removed',
147
+ steps: [
148
+ {
149
+ keyword: 'Given',
150
+ text: 'ListingCreated',
151
+ docString: {
152
+ propertyId: 'listing_123',
153
+ listedAt: '2024-01-15T10:00:00Z',
154
+ },
146
155
  },
147
- },
148
- ],
149
- when: {
150
- commandRef: 'RemoveListing',
151
- exampleData: {
152
- propertyId: 'listing_123',
153
- },
154
- },
155
- then: [
156
- {
157
- eventRef: 'ListingRemoved',
158
- exampleData: {
159
- propertyId: 'listing_123',
160
- removedAt: '2024-01-16T12:00:00Z',
156
+ {
157
+ keyword: 'When',
158
+ text: 'RemoveListing',
159
+ docString: {
160
+ propertyId: 'listing_123',
161
+ },
161
162
  },
162
- },
163
- ],
164
- },
165
- ],
166
- },
167
- ],
168
- },
163
+ {
164
+ keyword: 'Then',
165
+ text: 'ListingRemoved',
166
+ docString: {
167
+ propertyId: 'listing_123',
168
+ removedAt: '2024-01-16T12:00:00Z',
169
+ },
170
+ },
171
+ ],
172
+ },
173
+ ],
174
+ },
175
+ ],
176
+ },
177
+ ],
169
178
  },
170
179
  },
171
180
  ],
@@ -255,59 +264,68 @@ describe('decide.ts.ejs', () => {
255
264
  },
256
265
  server: {
257
266
  description: 'test',
258
- specs: {
259
- name: 'Create listing command',
260
- rules: [
261
- {
262
- description: 'Should handle multiple scenarios including errors',
263
- examples: [
264
- {
265
- description: 'User creates listing successfully',
266
- when: {
267
- commandRef: 'CreateListing',
268
- exampleData: {
269
- propertyId: 'listing_123',
270
- title: 'Some Apartment',
271
- listedAt: '2024-01-15T10:00:00Z',
272
- rating: 4.8,
273
- metadata: { foo: 'bar' },
274
- },
267
+ specs: [
268
+ {
269
+ type: 'gherkin',
270
+ feature: 'Create listing command',
271
+ rules: [
272
+ {
273
+ name: 'Should handle multiple scenarios including errors',
274
+ examples: [
275
+ {
276
+ name: 'User creates listing successfully',
277
+ steps: [
278
+ {
279
+ keyword: 'When',
280
+ text: 'CreateListing',
281
+ docString: {
282
+ propertyId: 'listing_123',
283
+ title: 'Some Apartment',
284
+ listedAt: '2024-01-15T10:00:00Z',
285
+ rating: 4.8,
286
+ metadata: { foo: 'bar' },
287
+ },
288
+ },
289
+ {
290
+ keyword: 'Then',
291
+ text: 'ListingCreated',
292
+ docString: {
293
+ propertyId: 'listing_123',
294
+ listedAt: '2024-01-15T10:00:00Z',
295
+ rating: 4.8,
296
+ metadata: { foo: 'bar' },
297
+ },
298
+ },
299
+ ],
275
300
  },
276
- then: [
277
- {
278
- eventRef: 'ListingCreated',
279
- exampleData: {
280
- propertyId: 'listing_123',
281
- listedAt: '2024-01-15T10:00:00Z',
282
- rating: 4.8,
283
- metadata: { foo: 'bar' },
301
+ {
302
+ name: 'User creates listing with empty title should fail',
303
+ steps: [
304
+ {
305
+ keyword: 'When',
306
+ text: 'CreateListing',
307
+ docString: {
308
+ propertyId: 'listing_123',
309
+ title: '',
310
+ listedAt: '2024-01-15T10:00:00Z',
311
+ rating: 4.8,
312
+ metadata: {},
313
+ },
314
+ },
315
+ {
316
+ keyword: 'Then',
317
+ error: {
318
+ type: 'ValidationError',
319
+ message: 'Title must not be empty',
320
+ },
284
321
  },
285
- },
286
- ],
287
- },
288
- {
289
- description: 'User creates listing with empty title should fail',
290
- when: {
291
- commandRef: 'CreateListing',
292
- exampleData: {
293
- propertyId: 'listing_123',
294
- title: '',
295
- listedAt: '2024-01-15T10:00:00Z',
296
- rating: 4.8,
297
- metadata: {},
298
- },
322
+ ],
299
323
  },
300
- then: [
301
- {
302
- errorType: 'ValidationError',
303
- message: 'Title must not be empty',
304
- },
305
- ],
306
- },
307
- ],
308
- },
309
- ],
310
- },
324
+ ],
325
+ },
326
+ ],
327
+ },
328
+ ],
311
329
  },
312
330
  },
313
331
  ],
@@ -438,35 +456,40 @@ describe('decide.ts.ejs', () => {
438
456
  },
439
457
  },
440
458
  ],
441
- specs: {
442
- name: 'Suggest items command',
443
- rules: [
444
- {
445
- description: 'Should suggest items successfully',
446
- examples: [
447
- {
448
- description: 'User requests item suggestions',
449
- when: {
450
- commandRef: 'SuggestItems',
451
- exampleData: {
452
- sessionId: 'session-123',
453
- prompt: 'What should I buy?',
454
- },
455
- },
456
- then: [
457
- {
458
- eventRef: 'ItemsSuggested',
459
- exampleData: {
460
- sessionId: 'session-123',
461
- items: [],
459
+ specs: [
460
+ {
461
+ type: 'gherkin',
462
+ feature: 'Suggest items command',
463
+ rules: [
464
+ {
465
+ name: 'Should suggest items successfully',
466
+ examples: [
467
+ {
468
+ name: 'User requests item suggestions',
469
+ steps: [
470
+ {
471
+ keyword: 'When',
472
+ text: 'SuggestItems',
473
+ docString: {
474
+ sessionId: 'session-123',
475
+ prompt: 'What should I buy?',
476
+ },
462
477
  },
463
- },
464
- ],
465
- },
466
- ],
467
- },
468
- ],
469
- },
478
+ {
479
+ keyword: 'Then',
480
+ text: 'ItemsSuggested',
481
+ docString: {
482
+ sessionId: 'session-123',
483
+ items: [],
484
+ },
485
+ },
486
+ ],
487
+ },
488
+ ],
489
+ },
490
+ ],
491
+ },
492
+ ],
470
493
  },
471
494
  },
472
495
  ],
@@ -18,45 +18,50 @@ describe('events.ts.ejs', () => {
18
18
  },
19
19
  server: {
20
20
  description: 'test',
21
- specs: {
22
- name: 'Create listing command',
23
- rules: [
24
- {
25
- description: 'Should create listing successfully',
26
- examples: [
27
- {
28
- description: 'User creates listing with valid data',
29
- when: {
30
- commandRef: 'CreateListing',
31
- exampleData: {
32
- propertyId: 'listing_123',
33
- title: 'blah',
34
- pricePerNight: 250,
35
- maxGuests: 4,
36
- amenities: ['wifi', 'kitchen'],
37
- available: true,
38
- tags: ['some tag'],
39
- rating: 4.8,
40
- metadata: { foo: 'bar' },
41
- listedAt: '2024-01-15T10:00:00Z',
42
- },
43
- },
44
- then: [
45
- {
46
- eventRef: 'ListingCreated',
47
- exampleData: {
48
- propertyId: 'listing_123',
49
- listedAt: '2024-01-15T10:00:00Z',
50
- rating: 4.8,
51
- metadata: { foo: 'bar' },
21
+ specs: [
22
+ {
23
+ type: 'gherkin',
24
+ feature: 'Create listing command',
25
+ rules: [
26
+ {
27
+ name: 'Should create listing successfully',
28
+ examples: [
29
+ {
30
+ name: 'User creates listing with valid data',
31
+ steps: [
32
+ {
33
+ keyword: 'When',
34
+ text: 'CreateListing',
35
+ docString: {
36
+ propertyId: 'listing_123',
37
+ title: 'blah',
38
+ pricePerNight: 250,
39
+ maxGuests: 4,
40
+ amenities: ['wifi', 'kitchen'],
41
+ available: true,
42
+ tags: ['some tag'],
43
+ rating: 4.8,
44
+ metadata: { foo: 'bar' },
45
+ listedAt: '2024-01-15T10:00:00Z',
46
+ },
47
+ },
48
+ {
49
+ keyword: 'Then',
50
+ text: 'ListingCreated',
51
+ docString: {
52
+ propertyId: 'listing_123',
53
+ listedAt: '2024-01-15T10:00:00Z',
54
+ rating: 4.8,
55
+ metadata: { foo: 'bar' },
56
+ },
52
57
  },
53
- },
54
- ],
55
- },
56
- ],
57
- },
58
- ],
59
- },
58
+ ],
59
+ },
60
+ ],
61
+ },
62
+ ],
63
+ },
64
+ ],
60
65
  },
61
66
  },
62
67
  ],
@@ -18,40 +18,45 @@ describe('evolve.ts.ejs', () => {
18
18
  },
19
19
  server: {
20
20
  description: 'test',
21
- specs: {
22
- name: 'Create listing command',
23
- rules: [
24
- {
25
- description: 'Should create listing successfully',
26
- examples: [
27
- {
28
- description: 'User creates listing with valid data',
29
- when: {
30
- commandRef: 'CreateListing',
31
- exampleData: {
32
- propertyId: 'listing_123',
33
- title: 'Some Apartment',
34
- listedAt: '2024-01-15T10:00:00Z',
35
- rating: 4.8,
36
- metadata: { foo: 'bar' },
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' },
21
+ specs: [
22
+ {
23
+ type: 'gherkin',
24
+ feature: 'Create listing command',
25
+ rules: [
26
+ {
27
+ name: 'Should create listing successfully',
28
+ examples: [
29
+ {
30
+ name: 'User creates listing with valid data',
31
+ steps: [
32
+ {
33
+ keyword: 'When',
34
+ text: 'CreateListing',
35
+ docString: {
36
+ propertyId: 'listing_123',
37
+ title: 'Some Apartment',
38
+ listedAt: '2024-01-15T10:00:00Z',
39
+ rating: 4.8,
40
+ metadata: { foo: 'bar' },
41
+ },
42
+ },
43
+ {
44
+ keyword: 'Then',
45
+ text: 'ListingCreated',
46
+ docString: {
47
+ propertyId: 'listing_123',
48
+ listedAt: '2024-01-15T10:00:00Z',
49
+ rating: 4.8,
50
+ metadata: { foo: 'bar' },
51
+ },
47
52
  },
48
- },
49
- ],
50
- },
51
- ],
52
- },
53
- ],
54
- },
53
+ ],
54
+ },
55
+ ],
56
+ },
57
+ ],
58
+ },
59
+ ],
55
60
  },
56
61
  },
57
62
  ],