@auto-engineer/narrative 0.12.1 → 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 (95) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +24 -0
  3. package/dist/src/commands/export-schema-runner.js +1 -1
  4. package/dist/src/commands/export-schema-runner.js.map +1 -1
  5. package/dist/src/fluent-builder.js +3 -3
  6. package/dist/src/fluent-builder.js.map +1 -1
  7. package/dist/src/getNarratives.specs.js +157 -161
  8. package/dist/src/getNarratives.specs.js.map +1 -1
  9. package/dist/src/id/addAutoIds.d.ts.map +1 -1
  10. package/dist/src/id/addAutoIds.js +23 -10
  11. package/dist/src/id/addAutoIds.js.map +1 -1
  12. package/dist/src/id/addAutoIds.specs.js +55 -46
  13. package/dist/src/id/addAutoIds.specs.js.map +1 -1
  14. package/dist/src/id/generators.js +1 -1
  15. package/dist/src/id/generators.js.map +1 -1
  16. package/dist/src/id/hasAllIds.d.ts.map +1 -1
  17. package/dist/src/id/hasAllIds.js +8 -3
  18. package/dist/src/id/hasAllIds.js.map +1 -1
  19. package/dist/src/id/hasAllIds.specs.js +142 -215
  20. package/dist/src/id/hasAllIds.specs.js.map +1 -1
  21. package/dist/src/index.d.ts +7 -8
  22. package/dist/src/index.d.ts.map +1 -1
  23. package/dist/src/index.js +3 -3
  24. package/dist/src/index.js.map +1 -1
  25. package/dist/src/loader/graph.d.ts.map +1 -1
  26. package/dist/src/loader/graph.js +13 -6
  27. package/dist/src/loader/graph.js.map +1 -1
  28. package/dist/src/loader/ts-utils.d.ts +1 -0
  29. package/dist/src/loader/ts-utils.d.ts.map +1 -1
  30. package/dist/src/loader/ts-utils.js +95 -16
  31. package/dist/src/loader/ts-utils.js.map +1 -1
  32. package/dist/src/model-to-narrative.specs.js +548 -466
  33. package/dist/src/model-to-narrative.specs.js.map +1 -1
  34. package/dist/src/narrative-context.d.ts +8 -8
  35. package/dist/src/narrative-context.d.ts.map +1 -1
  36. package/dist/src/narrative-context.js +111 -301
  37. package/dist/src/narrative-context.js.map +1 -1
  38. package/dist/src/narrative-context.specs.js +15 -55
  39. package/dist/src/narrative-context.specs.js.map +1 -1
  40. package/dist/src/narrative.d.ts +19 -22
  41. package/dist/src/narrative.d.ts.map +1 -1
  42. package/dist/src/narrative.js +42 -71
  43. package/dist/src/narrative.js.map +1 -1
  44. package/dist/src/samples/questionnaires.narrative.js +10 -10
  45. package/dist/src/samples/questionnaires.narrative.js.map +1 -1
  46. package/dist/src/samples/test-with-ids.narrative.js +13 -29
  47. package/dist/src/samples/test-with-ids.narrative.js.map +1 -1
  48. package/dist/src/schema.d.ts +2704 -8293
  49. package/dist/src/schema.d.ts.map +1 -1
  50. package/dist/src/schema.js +26 -47
  51. package/dist/src/schema.js.map +1 -1
  52. package/dist/src/slice-builder.js +3 -3
  53. package/dist/src/slice-builder.js.map +1 -1
  54. package/dist/src/transformers/model-to-narrative/generators/flow.d.ts.map +1 -1
  55. package/dist/src/transformers/model-to-narrative/generators/flow.js +118 -74
  56. package/dist/src/transformers/model-to-narrative/generators/flow.js.map +1 -1
  57. package/dist/src/transformers/model-to-narrative/generators/gwt.d.ts +9 -1
  58. package/dist/src/transformers/model-to-narrative/generators/gwt.d.ts.map +1 -1
  59. package/dist/src/transformers/model-to-narrative/generators/gwt.js +112 -112
  60. package/dist/src/transformers/model-to-narrative/generators/gwt.js.map +1 -1
  61. package/dist/src/transformers/model-to-narrative/generators/imports.d.ts +1 -1
  62. package/dist/src/transformers/model-to-narrative/generators/imports.d.ts.map +1 -1
  63. package/dist/src/transformers/model-to-narrative/generators/imports.js +13 -9
  64. package/dist/src/transformers/model-to-narrative/generators/imports.js.map +1 -1
  65. package/dist/src/transformers/narrative-to-model/index.d.ts.map +1 -1
  66. package/dist/src/transformers/narrative-to-model/index.js +50 -23
  67. package/dist/src/transformers/narrative-to-model/index.js.map +1 -1
  68. package/dist/src/transformers/narrative-to-model/type-inference.specs.js +100 -90
  69. package/dist/src/transformers/narrative-to-model/type-inference.specs.js.map +1 -1
  70. package/dist/tsconfig.tsbuildinfo +1 -1
  71. package/package.json +5 -5
  72. package/src/commands/export-schema-runner.ts +3 -1
  73. package/src/fluent-builder.ts +3 -3
  74. package/src/getNarratives.specs.ts +176 -184
  75. package/src/id/addAutoIds.specs.ts +55 -48
  76. package/src/id/addAutoIds.ts +28 -11
  77. package/src/id/generators.ts +1 -1
  78. package/src/id/hasAllIds.specs.ts +147 -245
  79. package/src/id/hasAllIds.ts +11 -4
  80. package/src/index.ts +11 -12
  81. package/src/loader/graph.ts +23 -6
  82. package/src/loader/ts-utils.ts +169 -26
  83. package/src/model-to-narrative.specs.ts +548 -466
  84. package/src/narrative-context.specs.ts +73 -116
  85. package/src/narrative-context.ts +127 -374
  86. package/src/narrative.ts +70 -120
  87. package/src/samples/questionnaires.narrative.ts +10 -10
  88. package/src/samples/test-with-ids.narrative.ts +23 -31
  89. package/src/schema.ts +33 -52
  90. package/src/slice-builder.ts +3 -3
  91. package/src/transformers/model-to-narrative/generators/flow.ts +191 -85
  92. package/src/transformers/model-to-narrative/generators/gwt.ts +195 -178
  93. package/src/transformers/model-to-narrative/generators/imports.ts +13 -9
  94. package/src/transformers/narrative-to-model/index.ts +87 -26
  95. package/src/transformers/narrative-to-model/type-inference.specs.ts +100 -90
@@ -1,231 +1,158 @@
1
- import { describe, expect, it, beforeEach } from 'vitest';
1
+ import { describe, expect, it } from 'vitest';
2
2
  import { hasAllIds, addAutoIds } from './index.js';
3
- import { getNarratives } from '../getNarratives.js';
4
- import { InMemoryFileStore } from '@auto-engineer/file-store';
5
- import * as flowApi from '../narrative.js';
6
- import * as fluent from '../fluent-builder.js';
7
- import * as dataBuilders from '../data-narrative-builders.js';
8
- import * as typesApi from '../types.js';
9
- import gql from 'graphql-tag';
10
- const importMap = {
11
- '../flow': flowApi,
12
- '../fluent-builder': fluent,
13
- '../data-flow-builders': dataBuilders,
14
- '../types': typesApi,
15
- 'graphql-tag': gql,
16
- };
17
3
  describe('hasAllIds', () => {
18
- let vfs;
19
- const root = '/test';
20
- beforeEach(async () => {
21
- vfs = new InMemoryFileStore();
22
- const flowWithoutIds = `
23
- import { flow, specs, rule, example } from '../narrative.js';
24
- import { command } from '../fluent-builder.js';
25
-
26
- flow('Test Flow Without IDs', () => {
27
- command('Test slice without ID')
28
- .server(() => {
29
- specs('Test specs', () => {
30
- rule('Test rule without ID', () => {
31
- example('Test example')
32
- .when({ test: 'data' })
33
- .then({ result: 'success' });
34
- });
35
- });
36
- });
37
- });`;
38
- const flowWithIds = `
39
- import { flow, specs, rule, example } from '../narrative.js';
40
- import { command } from '../fluent-builder.js';
41
-
42
- flow('Test Flow with IDs', 'FLOW-001', () => {
43
- command('Test slice with ID', 'SLICE-001')
44
- .server(() => {
45
- specs('Test specs', () => {
46
- rule('Test rule with ID', 'RULE-001', () => {
47
- example('Test example')
48
- .when({ test: 'data' })
49
- .then({ result: 'success' });
50
- });
51
- });
52
- });
53
- });`;
54
- const multipleFlowsSameSource = `
55
- import { flow, specs, it } from '../narrative.js';
56
- import { experience } from '../fluent-builder.js';
57
-
58
- flow('Home Screen', 'AUTO-aifPcU3hw', () => {
59
- experience('Active Surveys Summary', 'AUTO-slice1').client(() => {
60
- specs(() => {
61
- it('show active surveys summary');
62
- });
63
- });
64
- });
65
-
66
- flow('Create Survey', 'AUTO-MPviTMrQC', () => {
67
- experience('Create Survey Form', 'AUTO-slice2').client(() => {
68
- specs(() => {
69
- it('allow entering survey title');
70
- });
71
- });
72
- });
73
-
74
- flow('Response Analytics', 'AUTO-eME978Euk', () => {
75
- experience('Response Rate Charts', 'AUTO-slice3').client(() => {
76
- specs(() => {
77
- it('show daily response rate charts');
78
- });
79
- });
80
- });`;
81
- const multipleFlowsIncomplete = `
82
- import { flow, specs, it } from '../narrative.js';
83
- import { experience } from '../fluent-builder.js';
84
-
85
- flow('Home Screen', 'AUTO-aifPcU3hw', () => {
86
- experience('Active Surveys Summary', 'AUTO-slice1').client(() => {
87
- specs(() => {
88
- it('show active surveys summary');
89
- });
90
- });
91
- });
92
-
93
- flow('Create Survey', () => {
94
- experience('Create Survey Form', 'AUTO-slice2').client(() => {
95
- specs(() => {
96
- it('allow entering survey title');
97
- });
98
- });
99
- });
100
-
101
- flow('Response Analytics', 'AUTO-eME978Euk', () => {
102
- experience('Response Rate Charts', 'AUTO-slice3').client(() => {
103
- specs(() => {
104
- it('show daily response rate charts');
105
- });
106
- });
107
- });`;
108
- const multipleFlowsSliceMissing = `
109
- import { flow, specs, it } from '../narrative.js';
110
- import { experience } from '../fluent-builder.js';
111
-
112
- flow('Home Screen', 'AUTO-aifPcU3hw', () => {
113
- experience('Active Surveys Summary', 'AUTO-slice1').client(() => {
114
- specs(() => {
115
- it('show active surveys summary');
116
- });
117
- });
118
- });
119
-
120
- flow('Create Survey', 'AUTO-MPviTMrQC', () => {
121
- experience('Create Survey Form').client(() => {
122
- specs(() => {
123
- it('allow entering survey title');
124
- });
125
- });
126
- });
127
-
128
- flow('Response Analytics', 'AUTO-eME978Euk', () => {
129
- experience('Response Rate Charts', 'AUTO-slice3').client(() => {
130
- specs(() => {
131
- it('show daily response rate charts');
132
- });
133
- });
134
- });`;
135
- const flowContent1 = new TextEncoder().encode(flowWithoutIds);
136
- const flowContent2 = new TextEncoder().encode(flowWithIds);
137
- const flowContent3 = new TextEncoder().encode(multipleFlowsSameSource);
138
- const flowContent4 = new TextEncoder().encode(multipleFlowsIncomplete);
139
- const flowContent5 = new TextEncoder().encode(multipleFlowsSliceMissing);
140
- await vfs.write('/test/flow-without-ids.narrative.ts', flowContent1);
141
- await vfs.write('/test/flow-with-ids.narrative.ts', flowContent2);
142
- await vfs.write('/test/homepage.narrative.ts', flowContent3);
143
- await vfs.write('/test/homepage-incomplete.narrative.ts', flowContent4);
144
- await vfs.write('/test/homepage-slice-missing.narrative.ts', flowContent5);
145
- });
146
- it('should return false for models without IDs', async () => {
147
- const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
148
- const model = result.toModel();
149
- const flowWithoutIds = model.narratives.find((f) => f.name === 'Test Flow Without IDs');
150
- expect(flowWithoutIds).toBeDefined();
151
- if (flowWithoutIds) {
152
- const modelWithoutIds = { ...model, narratives: [flowWithoutIds] };
153
- expect(hasAllIds(modelWithoutIds)).toBe(false);
154
- }
155
- });
156
- it('should return true for models with complete IDs', async () => {
157
- const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
158
- const model = result.toModel();
4
+ const createModelWithoutIds = () => ({
5
+ variant: 'specs',
6
+ narratives: [
7
+ {
8
+ name: 'Test Flow Without IDs',
9
+ slices: [
10
+ {
11
+ type: 'command',
12
+ name: 'Test slice without ID',
13
+ client: { specs: [] },
14
+ server: {
15
+ description: 'Test server',
16
+ specs: [
17
+ {
18
+ type: 'gherkin',
19
+ feature: 'Test specs',
20
+ rules: [
21
+ {
22
+ name: 'Test rule without ID',
23
+ examples: [],
24
+ },
25
+ ],
26
+ },
27
+ ],
28
+ },
29
+ },
30
+ ],
31
+ },
32
+ ],
33
+ messages: [],
34
+ integrations: [],
35
+ });
36
+ const createModelWithIds = () => ({
37
+ variant: 'specs',
38
+ narratives: [
39
+ {
40
+ name: 'Test Flow with IDs',
41
+ id: 'FLOW-001',
42
+ slices: [
43
+ {
44
+ type: 'command',
45
+ name: 'Test slice with ID',
46
+ id: 'SLICE-001',
47
+ client: { specs: [] },
48
+ server: {
49
+ description: 'Test server',
50
+ specs: [
51
+ {
52
+ type: 'gherkin',
53
+ feature: 'Test specs',
54
+ rules: [
55
+ {
56
+ id: 'RULE-001',
57
+ name: 'Test rule with ID',
58
+ examples: [],
59
+ },
60
+ ],
61
+ },
62
+ ],
63
+ },
64
+ },
65
+ ],
66
+ },
67
+ ],
68
+ messages: [],
69
+ integrations: [],
70
+ });
71
+ const createMultipleFlowsModel = (includeAllIds, includeAllSliceIds) => ({
72
+ variant: 'specs',
73
+ narratives: [
74
+ {
75
+ name: 'Home Screen',
76
+ id: 'aifPcU3hw',
77
+ sourceFile: '/path/to/homepage.narrative.ts',
78
+ slices: [
79
+ {
80
+ name: 'Active Surveys Summary',
81
+ id: 'slice1',
82
+ type: 'experience',
83
+ client: { specs: [{ type: 'it', title: 'show active surveys summary' }] },
84
+ },
85
+ ],
86
+ },
87
+ {
88
+ name: 'Create Survey',
89
+ id: includeAllIds ? 'MPviTMrQC' : undefined,
90
+ sourceFile: '/path/to/homepage.narrative.ts',
91
+ slices: [
92
+ {
93
+ name: 'Create Survey Form',
94
+ id: includeAllSliceIds ? 'slice2' : undefined,
95
+ type: 'experience',
96
+ client: { specs: [{ type: 'it', title: 'allow entering survey title' }] },
97
+ },
98
+ ],
99
+ },
100
+ {
101
+ name: 'Response Analytics',
102
+ id: 'eME978Euk',
103
+ sourceFile: '/path/to/homepage.narrative.ts',
104
+ slices: [
105
+ {
106
+ name: 'Response Rate Charts',
107
+ id: 'slice3',
108
+ type: 'experience',
109
+ client: { specs: [{ type: 'it', title: 'show daily response rate charts' }] },
110
+ },
111
+ ],
112
+ },
113
+ ],
114
+ messages: [],
115
+ integrations: [],
116
+ });
117
+ it('should return false for models without IDs', () => {
118
+ const model = createModelWithoutIds();
119
+ expect(hasAllIds(model)).toBe(false);
120
+ });
121
+ it('should return true for models with complete IDs', () => {
122
+ const model = createModelWithoutIds();
159
123
  const modelWithIds = addAutoIds(model);
160
124
  expect(hasAllIds(modelWithIds)).toBe(true);
161
125
  });
162
- it('should return true for flows that already have IDs', async () => {
163
- const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
164
- const model = result.toModel();
165
- const testFlowWithIds = model.narratives.find((f) => f.name === 'Test Flow with IDs');
166
- expect(testFlowWithIds).toBeDefined();
167
- if (testFlowWithIds) {
168
- const modelWithExistingIds = { ...model, narratives: [testFlowWithIds] };
169
- expect(hasAllIds(modelWithExistingIds)).toBe(true);
170
- }
126
+ it('should return true for flows that already have IDs', () => {
127
+ const model = createModelWithIds();
128
+ expect(hasAllIds(model)).toBe(true);
171
129
  });
172
- it('should return false if any slice is missing an ID', async () => {
173
- const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
174
- const model = result.toModel();
175
- const modelWithIds = addAutoIds(model);
176
- expect(modelWithIds.narratives.length).toBeGreaterThan(0);
177
- expect(modelWithIds.narratives[0].slices.length).toBeGreaterThan(0);
178
- const modifiedModel = structuredClone(modelWithIds);
130
+ it('should return false if any slice is missing an ID', () => {
131
+ const model = createModelWithIds();
132
+ const modifiedModel = structuredClone(model);
179
133
  modifiedModel.narratives[0].slices[0].id = '';
180
134
  expect(hasAllIds(modifiedModel)).toBe(false);
181
135
  });
182
- it('should return false if any rule is missing an ID', async () => {
183
- const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
184
- const model = result.toModel();
185
- const modelWithIds = addAutoIds(model);
186
- let found = false;
187
- for (const flow of modelWithIds.narratives) {
188
- for (const slice of flow.slices) {
189
- if ('server' in slice && slice.server?.specs?.rules !== undefined && slice.server.specs.rules.length > 0) {
190
- const modifiedModel = structuredClone(modelWithIds);
191
- const modifiedFlow = modifiedModel.narratives.find((f) => f.name === flow.name);
192
- const modifiedSlice = modifiedFlow?.slices.find((s) => s.name === slice.name);
193
- if (modifiedSlice && 'server' in modifiedSlice && modifiedSlice.server?.specs?.rules !== undefined) {
194
- modifiedSlice.server.specs.rules[0].id = '';
195
- expect(hasAllIds(modifiedModel)).toBe(false);
196
- found = true;
197
- break;
198
- }
199
- }
200
- }
201
- if (found)
202
- break;
136
+ it('should return false if any rule is missing an ID', () => {
137
+ const model = createModelWithIds();
138
+ const modifiedModel = structuredClone(model);
139
+ const slice = modifiedModel.narratives[0].slices[0];
140
+ if ('server' in slice && slice.server?.specs !== undefined && Array.isArray(slice.server.specs)) {
141
+ slice.server.specs[0].rules[0].id = '';
203
142
  }
204
- expect(found).toBe(true);
143
+ expect(hasAllIds(modifiedModel)).toBe(false);
205
144
  });
206
- it('should return true when multiple flows with same sourceFile all have IDs', async () => {
207
- const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
208
- const model = result.toModel();
209
- const homepageFlows = model.narratives.filter((f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage.narrative.ts'));
210
- expect(homepageFlows.length).toBe(3);
211
- const homepageModel = { ...model, narratives: homepageFlows };
212
- expect(hasAllIds(homepageModel)).toBe(true);
145
+ it('should return true when multiple flows with same sourceFile all have IDs', () => {
146
+ const model = createMultipleFlowsModel(true, true);
147
+ expect(hasAllIds(model)).toBe(true);
213
148
  });
214
- it('should return false when any flow in multiple flows with same sourceFile is missing ID', async () => {
215
- const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
216
- const model = result.toModel();
217
- const homepageFlows = model.narratives.filter((f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage-incomplete.narrative.ts'));
218
- expect(homepageFlows.length).toBe(3);
219
- const homepageModel = { ...model, narratives: homepageFlows };
220
- expect(hasAllIds(homepageModel)).toBe(false);
149
+ it('should return false when any flow in multiple flows with same sourceFile is missing ID', () => {
150
+ const model = createMultipleFlowsModel(false, true);
151
+ expect(hasAllIds(model)).toBe(false);
221
152
  });
222
- it('should return false when any slice in multiple flows with same sourceFile is missing ID', async () => {
223
- const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
224
- const model = result.toModel();
225
- const homepageFlows = model.narratives.filter((f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage-slice-missing.narrative.ts'));
226
- expect(homepageFlows.length).toBe(3);
227
- const homepageModel = { ...model, narratives: homepageFlows };
228
- expect(hasAllIds(homepageModel)).toBe(false);
153
+ it('should return false when any slice in multiple flows with same sourceFile is missing ID', () => {
154
+ const model = createMultipleFlowsModel(true, false);
155
+ expect(hasAllIds(model)).toBe(false);
229
156
  });
230
157
  });
231
158
  //# sourceMappingURL=hasAllIds.specs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hasAllIds.specs.js","sourceRoot":"","sources":["../../../src/id/hasAllIds.specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hasAllIds.specs.js","sourceRoot":"","sources":["../../../src/id/hasAllIds.specs.ts"],"names":[],"mappings":"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"}
@@ -9,21 +9,19 @@ export { command, query, react, experience, decide, evolve } from './fluent-buil
9
9
  export { sink, source } from './data-narrative-builders';
10
10
  export type { FieldSelector } from './data-narrative-builders';
11
11
  export { narrative, narrative as flow } from './narrative';
12
- export { client, server, specs, describe, it, should, request, data, rule, example } from './narrative';
12
+ export { client, server, specs, describe, it, should, request, data, rule, example, thenError } from './narrative';
13
+ export type { ExampleBuilder, GivenBuilder, WhenBuilder, ThenBuilder } from './narrative';
13
14
  export type { SliceTypeValueInterface } from './narrative';
14
15
  export { SliceType } from './narrative';
15
16
  export { getNarratives } from './getNarratives';
16
17
  export { modelToNarrative } from './transformers/model-to-narrative';
17
- export { createNarrativeSpec, given, when } from './testing';
18
- export { NarrativeNamesSchema as NarrativeNamesSystemSchema, SliceNamesSchema as SliceNamesSystemSchema, ClientServerNamesSchema as ClientServerNamesSystemSchema, modelSchema as SpecsSystemSchema, MessageFieldSchema, MessageSchema, CommandSchema, EventSchema, StateSchema, IntegrationSchema, CommandSliceSchema, QuerySliceSchema, ReactSliceSchema, ExperienceSliceSchema, SliceSchema, NarrativeSchema, modelSchema, EventExampleSchema, CommandExampleSchema, ExampleSchema, RuleSchema, SpecSchema, } from './schema';
19
- import { CommandExampleSchema, ErrorExampleSchema, EventExampleSchema, NarrativeSchema, SliceSchema, modelSchema, StateExampleSchema, QuerySliceSchema, ReactSliceSchema, ExperienceSliceSchema, MessageSchema, MessageFieldSchema, CommandSliceSchema, ExampleSchema, RuleSchema, SpecSchema } from './schema';
18
+ export type { ExportSchemaEvents } from './commands/export-schema';
19
+ export { createNarrativeSpec, given as testGiven, when as testWhen } from './testing';
20
+ export { NarrativeNamesSchema as NarrativeNamesSystemSchema, SliceNamesSchema as SliceNamesSystemSchema, ClientServerNamesSchema as ClientServerNamesSystemSchema, modelSchema as SpecsSystemSchema, MessageFieldSchema, MessageSchema, CommandSchema, EventSchema, StateSchema, IntegrationSchema, CommandSliceSchema, QuerySliceSchema, ReactSliceSchema, ExperienceSliceSchema, SliceSchema, NarrativeSchema, modelSchema, ExampleSchema, RuleSchema, SpecSchema, StepSchema, StepErrorSchema, StepWithDocStringSchema, StepWithErrorSchema, } from './schema';
21
+ import { NarrativeSchema, SliceSchema, modelSchema, QuerySliceSchema, ReactSliceSchema, ExperienceSliceSchema, MessageSchema, MessageFieldSchema, CommandSliceSchema, ExampleSchema, RuleSchema, SpecSchema, StepSchema } from './schema';
20
22
  export type Model = z.infer<typeof modelSchema>;
21
23
  export type Narrative = z.infer<typeof NarrativeSchema>;
22
- export type CommandExample = z.infer<typeof CommandExampleSchema>;
23
- export type EventExample = z.infer<typeof EventExampleSchema>;
24
24
  export type Slice = z.infer<typeof SliceSchema>;
25
- export type StateExample = z.infer<typeof StateExampleSchema>;
26
- export type ErrorExample = z.infer<typeof ErrorExampleSchema>;
27
25
  export type QuerySlice = z.infer<typeof QuerySliceSchema>;
28
26
  export type ReactSlice = z.infer<typeof ReactSliceSchema>;
29
27
  export type CommandSlice = z.infer<typeof CommandSliceSchema>;
@@ -33,6 +31,7 @@ export type Example = z.infer<typeof ExampleSchema>;
33
31
  export type MessageField = z.infer<typeof MessageFieldSchema>;
34
32
  export type Rule = z.infer<typeof RuleSchema>;
35
33
  export type Spec = z.infer<typeof SpecSchema>;
34
+ export type Step = z.infer<typeof StepSchema>;
36
35
  export type { ClientSpecNode } from './schema';
37
36
  export { addAutoIds, hasAllIds } from './id';
38
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -14,15 +14,15 @@ export { command, query, react, experience, decide, evolve } from './fluent-buil
14
14
  export { sink, source } from './data-narrative-builders.js';
15
15
  // Narrative language functions
16
16
  export { narrative, narrative as flow } from './narrative.js';
17
- export { client, server, specs, describe, it, should, request, data, rule, example } from './narrative.js';
17
+ export { client, server, specs, describe, it, should, request, data, rule, example, thenError } from './narrative.js';
18
18
  export { SliceType } from './narrative.js';
19
19
  // Narrative conversion utilities
20
20
  export { getNarratives } from './getNarratives.js';
21
21
  export { modelToNarrative } from './transformers/model-to-narrative/index.js';
22
22
  // Testing helpers
23
- export { createNarrativeSpec, given, when } from './testing.js';
23
+ export { createNarrativeSpec, given as testGiven, when as testWhen } from './testing.js';
24
24
  // Schema definitions for progressive narrative creation
25
- export { NarrativeNamesSchema as NarrativeNamesSystemSchema, SliceNamesSchema as SliceNamesSystemSchema, ClientServerNamesSchema as ClientServerNamesSystemSchema, modelSchema as SpecsSystemSchema, MessageFieldSchema, MessageSchema, CommandSchema, EventSchema, StateSchema, IntegrationSchema, CommandSliceSchema, QuerySliceSchema, ReactSliceSchema, ExperienceSliceSchema, SliceSchema, NarrativeSchema, modelSchema, EventExampleSchema, CommandExampleSchema, ExampleSchema, RuleSchema, SpecSchema, } from './schema.js';
25
+ export { NarrativeNamesSchema as NarrativeNamesSystemSchema, SliceNamesSchema as SliceNamesSystemSchema, ClientServerNamesSchema as ClientServerNamesSystemSchema, modelSchema as SpecsSystemSchema, MessageFieldSchema, MessageSchema, CommandSchema, EventSchema, StateSchema, IntegrationSchema, CommandSliceSchema, QuerySliceSchema, ReactSliceSchema, ExperienceSliceSchema, SliceSchema, NarrativeSchema, modelSchema, ExampleSchema, RuleSchema, SpecSchema, StepSchema, StepErrorSchema, StepWithDocStringSchema, StepWithErrorSchema, } from './schema.js';
26
26
  // ID assignment utilities
27
27
  export { addAutoIds, hasAllIds } from './id/index.js';
28
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,iBAAiB;AACjB,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,qCAAqC;AACrC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAA6B,EAAE,GAAG,MAAiB,EAAE,EAAE;IACzE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AASF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErF,0BAA0B;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGzD,+BAA+B;AAC/B,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,iCAAiC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7D,wDAAwD;AACxD,OAAO,EACL,oBAAoB,IAAI,0BAA0B,EAClD,gBAAgB,IAAI,sBAAsB,EAC1C,uBAAuB,IAAI,6BAA6B,EACxD,WAAW,IAAI,iBAAiB,EAChC,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,UAAU,CAAC;AAsClB,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,iBAAiB;AACjB,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,qCAAqC;AACrC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAA6B,EAAE,GAAG,MAAiB,EAAE,EAAE;IACzE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AASF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErF,0BAA0B;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGzD,+BAA+B;AAC/B,OAAO,EAAE,SAAS,EAAE,SAAS,IAAI,IAAI,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,iCAAiC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAIrE,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,KAAK,IAAI,SAAS,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEtF,wDAAwD;AACxD,OAAO,EACL,oBAAoB,IAAI,0BAA0B,EAClD,gBAAgB,IAAI,sBAAsB,EAC1C,uBAAuB,IAAI,6BAA6B,EACxD,WAAW,IAAI,iBAAiB,EAChC,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,WAAW,EACX,aAAa,EACb,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,UAAU,CAAC;AAgClB,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/loader/graph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EASL,QAAQ,EACT,MAAM,YAAY,CAAC;AAyIpB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;CACrE,CAAC;AAEF,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAoN3B"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../src/loader/graph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAUL,QAAQ,EACT,MAAM,YAAY,CAAC;AAyIpB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;CACrE,CAAC;AAEF,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAAE,EACpB,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC,CAoO3B"}
@@ -1,5 +1,5 @@
1
1
  import createDebug from 'debug';
2
- import { parseImports, parseTypeDefinitions, parseIntegrationExports, parseIntegrationImports, parseGivenTypeArguments, parseWhenTypeArguments, patchImportMeta, transpileToCjs, } from './ts-utils.js';
2
+ import { parseImports, parseTypeDefinitions, parseIntegrationExports, parseIntegrationImports, parseGivenTypeArguments, parseWhenTypeArguments, parseThenTypeArguments, patchImportMeta, transpileToCjs, } from './ts-utils.js';
3
3
  import { toPosix } from './fs-path.js';
4
4
  import { resolveSpecifier } from './resolver.js';
5
5
  import { integrationExportRegistry } from '../integration-export-registry.js';
@@ -248,6 +248,7 @@ export async function buildGraph(entryFiles, vfs, importMap, rootDir) {
248
248
  }
249
249
  function extractTypeInfoFromProgram(program, checker) {
250
250
  const whenTypesByFile = new Map();
251
+ const thenTypesByFile = new Map();
251
252
  for (const sourceFile of program.getSourceFiles()) {
252
253
  const posixPath = toPosix(sourceFile.fileName);
253
254
  if (!sourceFiles.has(posixPath) || posixPath.endsWith('.d.ts'))
@@ -255,16 +256,21 @@ export async function buildGraph(entryFiles, vfs, importMap, rootDir) {
255
256
  const fileTypeMap = typesByFile.get(posixPath) || new Map();
256
257
  const extractedGivenTypes = parseGivenTypeArguments(ts, checker, sourceFile, fileTypeMap, typesByFile);
257
258
  const extractedWhenTypes = parseWhenTypeArguments(ts, checker, sourceFile, fileTypeMap, typesByFile);
259
+ const extractedThenTypes = parseThenTypeArguments(ts, checker, sourceFile, fileTypeMap, typesByFile);
258
260
  if (extractedGivenTypes.length > 0) {
259
261
  givenTypesByFile.set(posixPath, extractedGivenTypes);
260
- debug('[given-types] extracted %d .given<T>() calls from %s', extractedGivenTypes.length, posixPath);
262
+ debug('[given-types] extracted %d given<T>() calls from %s', extractedGivenTypes.length, posixPath);
261
263
  }
262
264
  if (extractedWhenTypes.length > 0) {
263
265
  whenTypesByFile.set(posixPath, extractedWhenTypes);
264
- debug('[when-types] extracted %d .when<T>() calls from %s: %o', extractedWhenTypes.length, posixPath, extractedWhenTypes.map((t) => ({ typeName: t.typeName, classification: t.classification })));
266
+ debug('[when-types] extracted %d when<T>() calls from %s: %o', extractedWhenTypes.length, posixPath, extractedWhenTypes.map((t) => ({ typeName: t.typeName, classification: t.classification })));
267
+ }
268
+ if (extractedThenTypes.length > 0) {
269
+ thenTypesByFile.set(posixPath, extractedThenTypes);
270
+ debug('[then-types] extracted %d then<T>() calls from %s: %o', extractedThenTypes.length, posixPath, extractedThenTypes.map((t) => ({ typeName: t.typeName, classification: t.classification })));
265
271
  }
266
272
  }
267
- return whenTypesByFile;
273
+ return { whenTypes: whenTypesByFile, thenTypes: thenTypesByFile };
268
274
  }
269
275
  for (const entry of entryFiles) {
270
276
  await buildRec(toPosix(entry));
@@ -273,8 +279,9 @@ export async function buildGraph(entryFiles, vfs, importMap, rootDir) {
273
279
  await loadTypingFiles(pkgTypings);
274
280
  const program = ts.createProgram([...sourceFiles.keys()], compilerOptions, host);
275
281
  const checker = program.getTypeChecker();
276
- const whenTypesByFile = extractTypeInfoFromProgram(program, checker);
277
- givenTypesByFile.set('__whenTypes', whenTypesByFile);
282
+ const { whenTypes, thenTypes } = extractTypeInfoFromProgram(program, checker);
283
+ givenTypesByFile.set('__whenTypes', whenTypes);
284
+ givenTypesByFile.set('__thenTypes', thenTypes);
278
285
  const result = {
279
286
  graph,
280
287
  vfsFiles: [...vfsFiles].sort(),