@auto-engineer/server-generator-apollo-emmett 1.139.0 → 1.140.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +4 -4
  3. package/.turbo/turbo-type-check.log +1 -1
  4. package/CHANGELOG.md +17 -0
  5. package/DEBUG.md +4 -4
  6. package/dist/src/codegen/extract/data-sink.d.ts +2 -2
  7. package/dist/src/codegen/extract/data-sink.d.ts.map +1 -1
  8. package/dist/src/codegen/extract/data-sink.js +2 -2
  9. package/dist/src/codegen/extract/data-sink.js.map +1 -1
  10. package/dist/src/codegen/extract/events.d.ts +3 -3
  11. package/dist/src/codegen/extract/events.d.ts.map +1 -1
  12. package/dist/src/codegen/extract/events.js +11 -11
  13. package/dist/src/codegen/extract/events.js.map +1 -1
  14. package/dist/src/codegen/extract/gwt.d.ts +2 -2
  15. package/dist/src/codegen/extract/gwt.d.ts.map +1 -1
  16. package/dist/src/codegen/extract/gwt.js +2 -2
  17. package/dist/src/codegen/extract/gwt.js.map +1 -1
  18. package/dist/src/codegen/extract/imports.d.ts +4 -4
  19. package/dist/src/codegen/extract/imports.d.ts.map +1 -1
  20. package/dist/src/codegen/extract/imports.js +8 -8
  21. package/dist/src/codegen/extract/imports.js.map +1 -1
  22. package/dist/src/codegen/extract/messages.d.ts +2 -2
  23. package/dist/src/codegen/extract/messages.d.ts.map +1 -1
  24. package/dist/src/codegen/extract/messages.js +9 -9
  25. package/dist/src/codegen/extract/messages.js.map +1 -1
  26. package/dist/src/codegen/extract/projection.d.ts +7 -7
  27. package/dist/src/codegen/extract/projection.d.ts.map +1 -1
  28. package/dist/src/codegen/extract/projection.js +3 -3
  29. package/dist/src/codegen/extract/projection.js.map +1 -1
  30. package/dist/src/codegen/extract/query.d.ts +2 -2
  31. package/dist/src/codegen/extract/query.d.ts.map +1 -1
  32. package/dist/src/codegen/extract/query.js.map +1 -1
  33. package/dist/src/codegen/extract/slice-normalizer.d.ts +4 -4
  34. package/dist/src/codegen/extract/slice-normalizer.d.ts.map +1 -1
  35. package/dist/src/codegen/extract/slice-normalizer.js +7 -7
  36. package/dist/src/codegen/extract/slice-normalizer.js.map +1 -1
  37. package/dist/src/codegen/extract/states.d.ts +3 -3
  38. package/dist/src/codegen/extract/states.d.ts.map +1 -1
  39. package/dist/src/codegen/extract/states.js.map +1 -1
  40. package/dist/src/codegen/extract/step-converter.d.ts +7 -7
  41. package/dist/src/codegen/extract/step-converter.d.ts.map +1 -1
  42. package/dist/src/codegen/extract/step-converter.js +12 -12
  43. package/dist/src/codegen/extract/step-converter.js.map +1 -1
  44. package/dist/src/codegen/extract/step-types.d.ts +4 -4
  45. package/dist/src/codegen/extract/step-types.d.ts.map +1 -1
  46. package/dist/src/codegen/extract/step-types.js +1 -1
  47. package/dist/src/codegen/extract/step-types.js.map +1 -1
  48. package/dist/src/codegen/scaffoldFromSchema.d.ts +12 -12
  49. package/dist/src/codegen/scaffoldFromSchema.d.ts.map +1 -1
  50. package/dist/src/codegen/scaffoldFromSchema.js +113 -101
  51. package/dist/src/codegen/scaffoldFromSchema.js.map +1 -1
  52. package/dist/src/codegen/templates/command/commands.specs.ts +3 -3
  53. package/dist/src/codegen/templates/command/decide.specs.specs.ts +52 -52
  54. package/dist/src/codegen/templates/command/decide.specs.ts +12 -12
  55. package/dist/src/codegen/templates/command/decide.specs.ts.ejs +1 -1
  56. package/dist/src/codegen/templates/command/events.specs.ts +3 -3
  57. package/dist/src/codegen/templates/command/evolve.specs.ts +3 -3
  58. package/dist/src/codegen/templates/command/handle.specs.ts +13 -13
  59. package/dist/src/codegen/templates/command/mutation.resolver.specs.ts +19 -19
  60. package/dist/src/codegen/templates/command/register.specs.ts +3 -3
  61. package/dist/src/codegen/templates/command/state.specs.ts +3 -3
  62. package/dist/src/codegen/templates/query/events.specs.ts +4 -4
  63. package/dist/src/codegen/templates/query/projection.specs.specs.ts +60 -60
  64. package/dist/src/codegen/templates/query/projection.specs.ts +54 -29
  65. package/dist/src/codegen/templates/query/projection.specs.ts.ejs +2 -2
  66. package/dist/src/codegen/templates/query/query.resolver.specs.ts +63 -63
  67. package/dist/src/codegen/templates/query/query.resolver.ts.ejs +1 -1
  68. package/dist/src/codegen/templates/query/state.specs.ts +9 -9
  69. package/dist/src/codegen/templates/react/react.specs.specs.ts +15 -15
  70. package/dist/src/codegen/templates/react/react.specs.ts +16 -16
  71. package/dist/src/codegen/templates/react/react.specs.ts.ejs +9 -9
  72. package/dist/src/codegen/templates/react/react.ts.ejs +5 -5
  73. package/dist/src/codegen/templates/react/react.ts.specs.ts +33 -33
  74. package/dist/src/codegen/templates/react/register.specs.ts +7 -7
  75. package/dist/src/codegen/templates/react/register.ts.ejs +4 -4
  76. package/dist/src/codegen/test-data/specVariant1.d.ts.map +1 -1
  77. package/dist/src/codegen/test-data/specVariant1.js +3 -2
  78. package/dist/src/codegen/test-data/specVariant1.js.map +1 -1
  79. package/dist/src/codegen/types.d.ts +2 -2
  80. package/dist/src/codegen/types.d.ts.map +1 -1
  81. package/dist/src/commands/generate-server.d.ts +21 -21
  82. package/dist/src/commands/generate-server.d.ts.map +1 -1
  83. package/dist/src/commands/generate-server.js +81 -63
  84. package/dist/src/commands/generate-server.js.map +1 -1
  85. package/dist/src/commands/initialize-server.d.ts.map +1 -1
  86. package/dist/src/commands/initialize-server.js +2 -2
  87. package/dist/src/commands/initialize-server.js.map +1 -1
  88. package/dist/src/domain/flows/shared/types.d.ts +14 -0
  89. package/dist/src/domain/flows/shared/types.d.ts.map +1 -0
  90. package/dist/src/domain/flows/shared/types.js +2 -0
  91. package/dist/src/domain/flows/shared/types.js.map +1 -0
  92. package/dist/src/domain/flows/shared/types.ts +15 -0
  93. package/dist/src/domain/narratives/shared/types.d.ts +14 -0
  94. package/dist/src/domain/narratives/shared/types.d.ts.map +1 -0
  95. package/dist/src/domain/narratives/shared/types.js +2 -0
  96. package/dist/src/domain/narratives/shared/types.js.map +1 -0
  97. package/dist/src/domain/narratives/shared/types.ts +15 -0
  98. package/dist/src/index.d.ts +1 -1
  99. package/dist/src/index.d.ts.map +1 -1
  100. package/dist/src/server.js +3 -3
  101. package/dist/src/server.js.map +1 -1
  102. package/dist/src/server.ts +3 -3
  103. package/dist/src/utils/loadRegisterFiles.d.ts +2 -2
  104. package/dist/src/utils/loadRegisterFiles.d.ts.map +1 -1
  105. package/dist/src/utils/loadRegisterFiles.js.map +1 -1
  106. package/dist/src/utils/loadRegisterFiles.ts +5 -5
  107. package/dist/src/utils/loadResolvers.js +1 -1
  108. package/dist/src/utils/loadResolvers.js.map +1 -1
  109. package/dist/src/utils/loadResolvers.ts +1 -1
  110. package/dist/tsconfig.tsbuildinfo +1 -1
  111. package/package.json +4 -4
  112. package/src/codegen/extract/data-sink.ts +5 -5
  113. package/src/codegen/extract/events.ts +15 -15
  114. package/src/codegen/extract/gwt.ts +4 -4
  115. package/src/codegen/extract/imports.specs.ts +19 -19
  116. package/src/codegen/extract/imports.ts +13 -13
  117. package/src/codegen/extract/messages.specs.ts +30 -30
  118. package/src/codegen/extract/messages.ts +16 -16
  119. package/src/codegen/extract/projection.specs.ts +22 -22
  120. package/src/codegen/extract/projection.ts +9 -9
  121. package/src/codegen/extract/query.ts +2 -2
  122. package/src/codegen/extract/slice-normalizer.specs.ts +11 -11
  123. package/src/codegen/extract/slice-normalizer.ts +14 -14
  124. package/src/codegen/extract/states.ts +4 -4
  125. package/src/codegen/extract/step-converter.specs.ts +9 -9
  126. package/src/codegen/extract/step-converter.ts +15 -15
  127. package/src/codegen/extract/step-types.specs.ts +12 -12
  128. package/src/codegen/extract/step-types.ts +4 -4
  129. package/src/codegen/findEventSource.specs.ts +23 -23
  130. package/src/codegen/scaffoldErrors.specs.ts +4 -4
  131. package/src/codegen/scaffoldFromSchema.filter.specs.ts +32 -32
  132. package/src/codegen/scaffoldFromSchema.ts +146 -132
  133. package/src/codegen/templates/command/commands.specs.ts +3 -3
  134. package/src/codegen/templates/command/decide.specs.specs.ts +52 -52
  135. package/src/codegen/templates/command/decide.specs.ts +12 -12
  136. package/src/codegen/templates/command/decide.specs.ts.ejs +1 -1
  137. package/src/codegen/templates/command/events.specs.ts +3 -3
  138. package/src/codegen/templates/command/evolve.specs.ts +3 -3
  139. package/src/codegen/templates/command/handle.specs.ts +13 -13
  140. package/src/codegen/templates/command/mutation.resolver.specs.ts +19 -19
  141. package/src/codegen/templates/command/register.specs.ts +3 -3
  142. package/src/codegen/templates/command/state.specs.ts +3 -3
  143. package/src/codegen/templates/query/events.specs.ts +4 -4
  144. package/src/codegen/templates/query/projection.specs.specs.ts +60 -60
  145. package/src/codegen/templates/query/projection.specs.ts +54 -29
  146. package/src/codegen/templates/query/projection.specs.ts.ejs +2 -2
  147. package/src/codegen/templates/query/query.resolver.specs.ts +63 -63
  148. package/src/codegen/templates/query/query.resolver.ts.ejs +1 -1
  149. package/src/codegen/templates/query/state.specs.ts +9 -9
  150. package/src/codegen/templates/react/react.specs.specs.ts +15 -15
  151. package/src/codegen/templates/react/react.specs.ts +16 -16
  152. package/src/codegen/templates/react/react.specs.ts.ejs +9 -9
  153. package/src/codegen/templates/react/react.ts.ejs +5 -5
  154. package/src/codegen/templates/react/react.ts.specs.ts +33 -33
  155. package/src/codegen/templates/react/register.specs.ts +7 -7
  156. package/src/codegen/templates/react/register.ts.ejs +4 -4
  157. package/src/codegen/test-data/specVariant1.json +1 -1
  158. package/src/codegen/test-data/specVariant1.ts +3 -2
  159. package/src/codegen/test-data/specVariant2.json +1 -1
  160. package/src/codegen/types.ts +2 -2
  161. package/src/commands/generate-server.specs.ts +81 -79
  162. package/src/commands/generate-server.ts +110 -88
  163. package/src/commands/initialize-server.specs.ts +4 -4
  164. package/src/commands/initialize-server.ts +5 -2
  165. package/src/domain/flows/shared/types.ts +15 -0
  166. package/src/domain/narratives/shared/types.ts +15 -0
  167. package/src/index.ts +1 -1
  168. package/src/server.ts +3 -3
  169. package/src/utils/loadRegisterFiles.ts +5 -5
  170. package/src/utils/loadResolvers.ts +1 -1
@@ -6,7 +6,7 @@ const allUsedEvents = new Set();
6
6
  const allUsedCommands = new Set();
7
7
 
8
8
  for (const rule of rules) {
9
- const ruleDescription = rule.description || `${flowName} | ${sliceName}`;
9
+ const ruleDescription = rule.description || `${sceneName} | ${momentName}`;
10
10
  if (!ruleGroups.has(ruleDescription)) {
11
11
  ruleGroups.set(ruleDescription, []);
12
12
  }
@@ -37,10 +37,10 @@ const commandImportGroups = new Map();
37
37
  for (const eventType of allUsedEvents) {
38
38
  const event = events.find(e => e.type === eventType);
39
39
  if (event) {
40
- const isCrossFlow = event.sourceFlowName && event.sourceFlowName !== flowName;
41
- const importPath = isCrossFlow
42
- ? `../../${toKebabCase(event.sourceFlowName)}/${toKebabCase(event.sourceSliceName)}/events`
43
- : event.sourceSliceName ? `../${toKebabCase(event.sourceSliceName)}/events` : './events';
40
+ const isCrossScene = event.sourceSceneName && event.sourceSceneName !== sceneName;
41
+ const importPath = isCrossScene
42
+ ? `../../${toKebabCase(event.sourceSceneName)}/${toKebabCase(event.sourceMomentName)}/events`
43
+ : event.sourceMomentName ? `../${toKebabCase(event.sourceMomentName)}/events` : './events';
44
44
  if (!eventImportGroups.has(importPath)) {
45
45
  eventImportGroups.set(importPath, []);
46
46
  }
@@ -51,10 +51,10 @@ for (const eventType of allUsedEvents) {
51
51
  for (const commandType of allUsedCommands) {
52
52
  const command = commands.find(c => c.type === commandType);
53
53
  if (command) {
54
- const isCrossFlow = command.sourceFlowName && command.sourceFlowName !== flowName;
55
- const importPath = isCrossFlow
56
- ? `../../${toKebabCase(command.sourceFlowName)}/${toKebabCase(command.sourceSliceName)}/commands`
57
- : command.sourceSliceName ? `../${toKebabCase(command.sourceSliceName)}/commands` : './commands';
54
+ const isCrossScene = command.sourceSceneName && command.sourceSceneName !== sceneName;
55
+ const importPath = isCrossScene
56
+ ? `../../${toKebabCase(command.sourceSceneName)}/${toKebabCase(command.sourceMomentName)}/commands`
57
+ : command.sourceMomentName ? `../${toKebabCase(command.sourceMomentName)}/commands` : './commands';
58
58
  if (!commandImportGroups.has(importPath)) {
59
59
  commandImportGroups.set(importPath, []);
60
60
  }
@@ -6,10 +6,10 @@ if (!eventCommandPairs || eventCommandPairs.length === 0) {
6
6
  const importGroups = new Map();
7
7
  for (const pair of eventCommandPairs) {
8
8
  const event = events.find(e => e.type === pair.eventType);
9
- const isCrossFlow = event?.sourceFlowName && event.sourceFlowName !== flowName;
10
- const importBase = isCrossFlow
11
- ? `../../${toKebabCase(event.sourceFlowName)}/${toKebabCase(event.sourceSliceName)}`
12
- : event?.sourceSliceName ? `../${toKebabCase(event.sourceSliceName)}` : '.';
9
+ const isCrossScene = event?.sourceSceneName && event.sourceSceneName !== sceneName;
10
+ const importBase = isCrossScene
11
+ ? `../../${toKebabCase(event.sourceSceneName)}/${toKebabCase(event.sourceMomentName)}`
12
+ : event?.sourceMomentName ? `../${toKebabCase(event.sourceMomentName)}` : '.';
13
13
  if (!importGroups.has(importBase)) importGroups.set(importBase, []);
14
14
  const typeName = pascalCase(pair.eventType);
15
15
  if (!importGroups.get(importBase).includes(typeName)) {
@@ -39,7 +39,7 @@ import type { ReactorContext } from '../../../shared';
39
39
 
40
40
  export const react = ({ eventStore, commandSender, database }: ReactorContext) =>
41
41
  inMemoryReactor<<%= eventUnion %>>({
42
- processorId: '<%= toKebabCase(flowName) %>-<%= toKebabCase(slice.name) %>',
42
+ processorId: '<%= toKebabCase(sceneName) %>-<%= toKebabCase(slice.name) %>',
43
43
  canHandle: [<%= eventCommandPairs.map(p => `'${p.eventType}'`).join(', ') %>],
44
44
  connectionOptions: {
45
45
  database,
@@ -6,10 +6,10 @@ describe('react.ts.ejs', () => {
6
6
  it('should throw when react slice has no When event', async () => {
7
7
  const spec: SpecsSchema = {
8
8
  variant: 'specs',
9
- narratives: [
9
+ scenes: [
10
10
  {
11
- name: 'broken flow',
12
- slices: [
11
+ name: 'broken scene',
12
+ moments: [
13
13
  {
14
14
  type: 'react',
15
15
  name: 'missing-when-slice',
@@ -53,17 +53,17 @@ describe('react.ts.ejs', () => {
53
53
  };
54
54
 
55
55
  await expect(
56
- generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows'),
56
+ generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives'),
57
57
  ).rejects.toThrow('missing-when-slice');
58
58
  });
59
59
 
60
60
  it('should include field-type hint comments for event and command', async () => {
61
61
  const spec: SpecsSchema = {
62
62
  variant: 'specs',
63
- narratives: [
63
+ scenes: [
64
64
  {
65
- name: 'order flow',
66
- slices: [
65
+ name: 'order scene',
66
+ moments: [
67
67
  {
68
68
  type: 'command',
69
69
  name: 'place order',
@@ -167,7 +167,7 @@ describe('react.ts.ejs', () => {
167
167
  ],
168
168
  };
169
169
 
170
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
170
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
171
171
  const reactFile = plans.find((p) => p.outputPath.endsWith('send-order-confirmation/react.ts'));
172
172
  expect(reactFile?.contents).toBeDefined();
173
173
 
@@ -186,10 +186,10 @@ describe('react.ts.ejs', () => {
186
186
  it('should skip react slice with empty examples without throwing', async () => {
187
187
  const spec: SpecsSchema = {
188
188
  variant: 'specs',
189
- narratives: [
189
+ scenes: [
190
190
  {
191
- name: 'booking flow',
192
- slices: [
191
+ name: 'booking scene',
192
+ moments: [
193
193
  {
194
194
  type: 'command',
195
195
  name: 'book appointment',
@@ -259,7 +259,7 @@ describe('react.ts.ejs', () => {
259
259
  ],
260
260
  };
261
261
 
262
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
262
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
263
263
 
264
264
  const reactFiles = plans.filter((p) => p.outputPath.includes('notify-barber-of-cancellation'));
265
265
  expect(reactFiles).toEqual([]);
@@ -271,10 +271,10 @@ describe('react.ts.ejs', () => {
271
271
  it('should generate events.ts for react slice with data target events', async () => {
272
272
  const spec: SpecsSchema = {
273
273
  variant: 'specs',
274
- narratives: [
274
+ scenes: [
275
275
  {
276
- name: 'booking flow',
277
- slices: [
276
+ name: 'booking scene',
277
+ moments: [
278
278
  {
279
279
  type: 'command',
280
280
  name: 'book appointment',
@@ -376,7 +376,7 @@ describe('react.ts.ejs', () => {
376
376
  ],
377
377
  };
378
378
 
379
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
379
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
380
380
  const eventsFile = plans.find((p) => p.outputPath.endsWith('notify-barber-of-new-booking/events.ts'));
381
381
 
382
382
  expect(eventsFile?.contents).toMatchInlineSnapshot(`
@@ -396,10 +396,10 @@ export type BarberNotified = Event<
396
396
  it('should generate aggregateStream when Given states exist', async () => {
397
397
  const spec: SpecsSchema = {
398
398
  variant: 'specs',
399
- narratives: [
399
+ scenes: [
400
400
  {
401
- name: 'barbershop flow',
402
- slices: [
401
+ name: 'barbershop scene',
402
+ moments: [
403
403
  {
404
404
  type: 'command',
405
405
  name: 'cancel appointment',
@@ -516,7 +516,7 @@ export type BarberNotified = Event<
516
516
  ],
517
517
  };
518
518
 
519
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
519
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
520
520
  const reactFile = plans.find((p) => p.outputPath.endsWith('notify-barber-of-cancellation/react.ts'));
521
521
 
522
522
  expect(reactFile?.contents).toContain('aggregateStream');
@@ -537,10 +537,10 @@ export type BarberNotified = Event<
537
537
  it('should ignore event And-steps in react Then, using only commands', async () => {
538
538
  const spec: SpecsSchema = {
539
539
  variant: 'specs',
540
- narratives: [
540
+ scenes: [
541
541
  {
542
- name: 'notification flow',
543
- slices: [
542
+ name: 'notification scene',
543
+ moments: [
544
544
  {
545
545
  type: 'command',
546
546
  name: 'earn points',
@@ -632,7 +632,7 @@ export type BarberNotified = Event<
632
632
  ],
633
633
  };
634
634
 
635
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
635
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
636
636
  const reactFile = plans.find((p) => p.outputPath.endsWith('notify-milestone/react.ts'));
637
637
 
638
638
  expect(reactFile?.contents).toContain("type: 'SendNotification'");
@@ -642,10 +642,10 @@ export type BarberNotified = Event<
642
642
  it('should use primitive linking field, skipping array/object fields', async () => {
643
643
  const spec: SpecsSchema = {
644
644
  variant: 'specs',
645
- narratives: [
645
+ scenes: [
646
646
  {
647
- name: 'fitness flow',
648
- slices: [
647
+ name: 'fitness scene',
648
+ moments: [
649
649
  {
650
650
  type: 'command',
651
651
  name: 'log workout',
@@ -759,7 +759,7 @@ export type BarberNotified = Event<
759
759
  ],
760
760
  };
761
761
 
762
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
762
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
763
763
  const reactFile = plans.find((p) => p.outputPath.endsWith('check-record-updates/react.ts'));
764
764
 
765
765
  expect(reactFile?.contents).toContain('`WorkoutSummary-${event.data.memberId}`');
@@ -770,10 +770,10 @@ export type BarberNotified = Event<
770
770
  it('should scaffold handlers for multiple event→command pairs', async () => {
771
771
  const spec: SpecsSchema = {
772
772
  variant: 'specs',
773
- narratives: [
773
+ scenes: [
774
774
  {
775
- name: 'fitness flow',
776
- slices: [
775
+ name: 'fitness scene',
776
+ moments: [
777
777
  {
778
778
  type: 'command',
779
779
  name: 'earn points',
@@ -939,7 +939,7 @@ export type BarberNotified = Event<
939
939
  ],
940
940
  };
941
941
 
942
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
942
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
943
943
  const reactFile = plans.find((p) => p.outputPath.endsWith('award-badges/react.ts'));
944
944
 
945
945
  expect(reactFile?.contents).toMatchInlineSnapshot(`
@@ -950,7 +950,7 @@ export type BarberNotified = Event<
950
950
 
951
951
  export const react = ({ eventStore, commandSender, database }: ReactorContext) =>
952
952
  inMemoryReactor<PointsEarned | PersonalRecordUpdated>({
953
- processorId: 'fitness-flow-award-badges',
953
+ processorId: 'fitness-scene-award-badges',
954
954
  canHandle: ['PointsEarned', 'PersonalRecordUpdated'],
955
955
  connectionOptions: {
956
956
  database,
@@ -6,10 +6,10 @@ describe('register.ts.ejs (react slice)', () => {
6
6
  it('should generate correct register.ts', async () => {
7
7
  const spec: SpecsSchema = {
8
8
  variant: 'specs',
9
- narratives: [
9
+ scenes: [
10
10
  {
11
11
  name: 'manage bookings',
12
- slices: [
12
+ moments: [
13
13
  {
14
14
  type: 'command',
15
15
  name: 'guest submits booking request',
@@ -228,7 +228,7 @@ describe('register.ts.ejs (react slice)', () => {
228
228
  ],
229
229
  };
230
230
 
231
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
231
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
232
232
  const registerFile = plans.find((p) => p.outputPath.endsWith('send-notification-to-host/register.ts'));
233
233
 
234
234
  expect(registerFile?.contents).toMatchInlineSnapshot(`
@@ -283,10 +283,10 @@ describe('register.ts.ejs (react slice)', () => {
283
283
  it('should scaffold multiple subscribe calls for multi-event reactor', async () => {
284
284
  const spec: SpecsSchema = {
285
285
  variant: 'specs',
286
- narratives: [
286
+ scenes: [
287
287
  {
288
- name: 'fitness flow',
289
- slices: [
288
+ name: 'fitness scene',
289
+ moments: [
290
290
  {
291
291
  type: 'command',
292
292
  name: 'earn points',
@@ -452,7 +452,7 @@ describe('register.ts.ejs (react slice)', () => {
452
452
  ],
453
453
  };
454
454
 
455
- const { plans } = await generateScaffoldFilePlans(spec.narratives, spec.messages, undefined, 'src/domain/flows');
455
+ const { plans } = await generateScaffoldFilePlans(spec.scenes, spec.messages, undefined, 'src/domain/narratives');
456
456
  const registerFile = plans.find((p) => p.outputPath.endsWith('award-badges/register.ts'));
457
457
 
458
458
  expect(registerFile?.contents).toMatchInlineSnapshot(`
@@ -6,10 +6,10 @@ if (!eventCommandPairs || eventCommandPairs.length === 0) {
6
6
  const importGroups = new Map();
7
7
  for (const pair of eventCommandPairs) {
8
8
  const event = events.find(e => e.type === pair.eventType);
9
- const isCrossFlow = event?.sourceFlowName && event.sourceFlowName !== flowName;
10
- const importBase = isCrossFlow
11
- ? `../../${toKebabCase(event.sourceFlowName)}/${toKebabCase(event.sourceSliceName)}`
12
- : event?.sourceSliceName ? `../${toKebabCase(event.sourceSliceName)}` : '.';
9
+ const isCrossScene = event?.sourceSceneName && event.sourceSceneName !== sceneName;
10
+ const importBase = isCrossScene
11
+ ? `../../${toKebabCase(event.sourceSceneName)}/${toKebabCase(event.sourceMomentName)}`
12
+ : event?.sourceMomentName ? `../${toKebabCase(event.sourceMomentName)}` : '.';
13
13
  if (!importGroups.has(importBase)) importGroups.set(importBase, []);
14
14
  const typeName = pascalCase(pair.eventType);
15
15
  if (!importGroups.get(importBase).includes(typeName)) {
@@ -1 +1 @@
1
- {"version":3,"file":"specVariant1.d.ts","sourceRoot":"","sources":["../../../../src/codegen/test-data/specVariant1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAErE,QAAA,MAAM,YAAY,EAAE,WAoOnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"specVariant1.d.ts","sourceRoot":"","sources":["../../../../src/codegen/test-data/specVariant1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAErE,QAAA,MAAM,YAAY,EAAE,WAqOnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,10 +1,10 @@
1
1
  const specVariant1 = {
2
2
  variant: 'specs',
3
- narratives: [
3
+ scenes: [
4
4
  {
5
5
  name: 'Add item',
6
6
  description: 'Flow to add items to a system',
7
- slices: [
7
+ moments: [
8
8
  {
9
9
  type: 'command',
10
10
  stream: 'item-${itemId}',
@@ -225,6 +225,7 @@ const specVariant1 = {
225
225
  },
226
226
  ],
227
227
  modules: [],
228
+ narratives: [],
228
229
  };
229
230
  export default specVariant1;
230
231
  //# sourceMappingURL=specVariant1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"specVariant1.js","sourceRoot":"","sources":["../../../../src/codegen/test-data/specVariant1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specVariant1.js","sourceRoot":"","sources":["../../../../src/codegen/test-data/specVariant1.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,8 @@ export interface Message {
4
4
  type: string;
5
5
  fields: Field[];
6
6
  source?: 'when' | 'given' | 'then';
7
- sourceFlowName?: string;
8
- sourceSliceName?: string;
7
+ sourceSceneName?: string;
8
+ sourceMomentName?: string;
9
9
  }
10
10
  export interface Field {
11
11
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/codegen/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErF,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAEzD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,IAAI,EAAE,UAAU,GAAG,QAAQ,EAAE,CAAC;IAC9B,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/codegen/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErF,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAEzD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,IAAI,EAAE,UAAU,GAAG,QAAQ,EAAE,CAAC;IAC9B,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -1,7 +1,7 @@
1
1
  import { type Command, type Event } from '@auto-engineer/message-bus';
2
- import type { Model, Narrative, Slice } from '@auto-engineer/narrative';
2
+ import type { Model, Moment, Scene } from '@auto-engineer/narrative';
3
3
  import { type DuplicateCommandInfo, type FieldIssue } from '../codegen/scaffoldFromSchema';
4
- type SliceDelta = {
4
+ type MomentDelta = {
5
5
  type: 'added' | 'removed' | 'changed';
6
6
  previous?: Record<string, unknown>;
7
7
  current?: Record<string, unknown>;
@@ -12,7 +12,7 @@ export type ChangeSet = {
12
12
  changed: string[];
13
13
  sharedTypesChanged: boolean;
14
14
  allAffected: string[];
15
- deltas: Record<string, SliceDelta>;
15
+ deltas: Record<string, MomentDelta>;
16
16
  };
17
17
  export type GenerationState = {
18
18
  version: 1;
@@ -39,25 +39,25 @@ export type ServerGenerationFailedEvent = Event<'ServerGenerationFailed', {
39
39
  destination: string;
40
40
  error: string;
41
41
  model: Model;
42
- flowName?: string;
43
- sliceName?: string;
44
- sliceType?: string;
42
+ sceneName?: string;
43
+ momentName?: string;
44
+ momentType?: string;
45
45
  }>;
46
- export type SliceGeneratedEvent = Event<'SliceGenerated', {
47
- flowName: string;
48
- sliceName: string;
49
- sliceType: string;
46
+ export type MomentGeneratedEvent = Event<'MomentGenerated', {
47
+ sceneName: string;
48
+ momentName: string;
49
+ momentType: string;
50
50
  schemaPath: string;
51
- slicePath: string;
51
+ momentPath: string;
52
52
  }>;
53
- export type SliceGenerationFailedEvent = Event<'SliceGenerationFailed', {
54
- flowName: string;
55
- sliceName: string;
56
- sliceType: string;
53
+ export type MomentGenerationFailedEvent = Event<'MomentGenerationFailed', {
54
+ sceneName: string;
55
+ momentName: string;
56
+ momentType: string;
57
57
  error: string;
58
58
  model: Model;
59
59
  }>;
60
- export type GenerateServerEvents = ServerGeneratedEvent | ServerGenerationFailedEvent | SliceGeneratedEvent | SliceGenerationFailedEvent;
60
+ export type GenerateServerEvents = ServerGeneratedEvent | ServerGenerationFailedEvent | MomentGeneratedEvent | MomentGenerationFailedEvent;
61
61
  export declare const commandHandler: import("@auto-engineer/message-bus").UnifiedCommandHandler<Readonly<{
62
62
  type: string;
63
63
  data: Readonly<Record<string, unknown>>;
@@ -70,11 +70,11 @@ export declare function writeModelToDisk(model: Model, destination: string): Pro
70
70
  export declare function cleanServerDir(serverDir: string): Promise<void>;
71
71
  export declare function writeHealthResolver(serverDir: string): Promise<void>;
72
72
  export declare function createServerFailureEvent(command: GenerateServerCommand, error: unknown): ServerGenerationFailedEvent;
73
- export declare function createSliceGeneratedEvent(flow: Narrative, slice: Slice, command: GenerateServerCommand): SliceGeneratedEvent;
74
- export declare function emitSliceGenerationFailedForDuplicates(duplicateCommands: DuplicateCommandInfo[], spec: Model, command: GenerateServerCommand, events: GenerateServerEvents[]): void;
75
- export declare function emitSliceGenerationFailedForFieldIssues(fieldIssues: FieldIssue[], spec: Model, command: GenerateServerCommand, events: GenerateServerEvents[]): void;
76
- export declare function emitSliceGeneratedForAll(spec: Model, command: GenerateServerCommand, events: GenerateServerEvents[], duplicateCommands?: DuplicateCommandInfo[], fieldIssues?: FieldIssue[]): void;
77
- export declare function emitSliceGeneratedForAffected(spec: Model, affectedIds: Set<string>, command: GenerateServerCommand, events: GenerateServerEvents[], duplicateCommands?: DuplicateCommandInfo[], fieldIssues?: FieldIssue[]): void;
73
+ export declare function createMomentGeneratedEvent(scene: Scene, slice: Moment, command: GenerateServerCommand, sceneDirName?: string): MomentGeneratedEvent;
74
+ export declare function emitMomentGenerationFailedForDuplicates(duplicateCommands: DuplicateCommandInfo[], spec: Model, command: GenerateServerCommand, events: GenerateServerEvents[]): void;
75
+ export declare function emitMomentGenerationFailedForFieldIssues(fieldIssues: FieldIssue[], spec: Model, command: GenerateServerCommand, events: GenerateServerEvents[]): void;
76
+ export declare function emitMomentGeneratedForAll(spec: Model, command: GenerateServerCommand, events: GenerateServerEvents[], duplicateCommands?: DuplicateCommandInfo[], fieldIssues?: FieldIssue[]): void;
77
+ export declare function emitMomentGeneratedForAffected(spec: Model, affectedIds: Set<string>, command: GenerateServerCommand, events: GenerateServerEvents[], duplicateCommands?: DuplicateCommandInfo[], fieldIssues?: FieldIssue[]): void;
78
78
  export declare function handleGenerateServerCommandInternal(command: GenerateServerCommand): Promise<GenerateServerEvents[]>;
79
79
  export declare function writePackage(dest: string): Promise<void>;
80
80
  export declare function writeTsconfig(dest: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-server.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-server.d.ts","sourceRoot":"","sources":["../../../src/commands/generate-server.ts"],"names":[],"mappings":"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"}