@auto-engineer/narrative 0.11.11 → 0.11.12

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 (210) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/dist/src/getFlows.cache.specs.js +18 -18
  4. package/dist/src/getFlows.cache.specs.js.map +1 -1
  5. package/dist/src/getNarratives.specs.d.ts +2 -0
  6. package/dist/src/getNarratives.specs.d.ts.map +1 -0
  7. package/dist/src/{getFlows.specs.js → getNarratives.specs.js} +22 -22
  8. package/dist/src/getNarratives.specs.js.map +1 -0
  9. package/dist/src/id/addAutoIds.specs.js +6 -6
  10. package/dist/src/id/addAutoIds.specs.js.map +1 -1
  11. package/dist/src/id/hasAllIds.specs.js +16 -16
  12. package/dist/src/id/hasAllIds.specs.js.map +1 -1
  13. package/dist/src/model-to-flow.specs.js +3 -3
  14. package/dist/src/model-to-flow.specs.js.map +1 -1
  15. package/dist/src/samples/items.narrative.d.ts +2 -0
  16. package/dist/src/samples/items.narrative.d.ts.map +1 -0
  17. package/dist/src/samples/{items.flow.js → items.narrative.js} +1 -1
  18. package/dist/src/samples/items.narrative.js.map +1 -0
  19. package/dist/src/samples/mixed-given-types.narrative.d.ts +2 -0
  20. package/dist/src/samples/mixed-given-types.narrative.d.ts.map +1 -0
  21. package/dist/src/samples/{mixed-given-types.flow.js → mixed-given-types.narrative.js} +1 -1
  22. package/dist/src/samples/mixed-given-types.narrative.js.map +1 -0
  23. package/dist/src/samples/{place-order.flow.d.ts → place-order.narrative.d.ts} +2 -2
  24. package/dist/src/samples/place-order.narrative.d.ts.map +1 -0
  25. package/dist/src/samples/{place-order.flow.js → place-order.narrative.js} +1 -1
  26. package/dist/src/samples/place-order.narrative.js.map +1 -0
  27. package/dist/src/samples/questionnaires.narrative.d.ts +2 -0
  28. package/dist/src/samples/questionnaires.narrative.d.ts.map +1 -0
  29. package/dist/src/samples/{questionnaires.flow.js → questionnaires.narrative.js} +1 -1
  30. package/dist/src/samples/questionnaires.narrative.js.map +1 -0
  31. package/dist/src/samples/seasonal-assistant.schema.json +1 -1
  32. package/dist/src/samples/test-with-ids.narrative.d.ts +2 -0
  33. package/dist/src/samples/test-with-ids.narrative.d.ts.map +1 -0
  34. package/dist/src/samples/{test-with-ids.flow.js → test-with-ids.narrative.js} +1 -1
  35. package/dist/src/samples/test-with-ids.narrative.js.map +1 -0
  36. package/dist/src/schema.d.ts +2991 -2991
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +5 -5
  39. package/src/getFlows.cache.specs.ts +18 -18
  40. package/src/{getFlows.specs.ts → getNarratives.specs.ts} +23 -21
  41. package/src/id/addAutoIds.specs.ts +6 -6
  42. package/src/id/hasAllIds.specs.ts +16 -16
  43. package/src/model-to-flow.specs.ts +3 -3
  44. package/src/samples/{place-order.flow.ts → place-order.narrative.ts} +2 -2
  45. package/src/samples/seasonal-assistant.schema.json +1 -1
  46. package/.turbo/turbo-format.log +0 -4
  47. package/.turbo/turbo-lint.log +0 -4
  48. package/.turbo/turbo-test.log +0 -14
  49. package/.turbo/turbo-type-check.log +0 -4
  50. package/dist/src/data-flow-builders.d.ts +0 -71
  51. package/dist/src/data-flow-builders.d.ts.map +0 -1
  52. package/dist/src/data-flow-builders.js +0 -326
  53. package/dist/src/data-flow-builders.js.map +0 -1
  54. package/dist/src/flow-context.d.ts +0 -25
  55. package/dist/src/flow-context.d.ts.map +0 -1
  56. package/dist/src/flow-context.js +0 -579
  57. package/dist/src/flow-context.js.map +0 -1
  58. package/dist/src/flow-context.specs.d.ts +0 -2
  59. package/dist/src/flow-context.specs.d.ts.map +0 -1
  60. package/dist/src/flow-context.specs.js +0 -185
  61. package/dist/src/flow-context.specs.js.map +0 -1
  62. package/dist/src/flow-registry.d.ts +0 -12
  63. package/dist/src/flow-registry.d.ts.map +0 -1
  64. package/dist/src/flow-registry.js +0 -46
  65. package/dist/src/flow-registry.js.map +0 -1
  66. package/dist/src/flow.d.ts +0 -49
  67. package/dist/src/flow.d.ts.map +0 -1
  68. package/dist/src/flow.js +0 -146
  69. package/dist/src/flow.js.map +0 -1
  70. package/dist/src/getFlows.d.ts +0 -21
  71. package/dist/src/getFlows.d.ts.map +0 -1
  72. package/dist/src/getFlows.js +0 -119
  73. package/dist/src/getFlows.js.map +0 -1
  74. package/dist/src/getFlows.specs.d.ts +0 -2
  75. package/dist/src/getFlows.specs.d.ts.map +0 -1
  76. package/dist/src/getFlows.specs.js.map +0 -1
  77. package/dist/src/samples/items.flow.d.ts +0 -2
  78. package/dist/src/samples/items.flow.d.ts.map +0 -1
  79. package/dist/src/samples/items.flow.js.map +0 -1
  80. package/dist/src/samples/mixed-given-types.flow.d.ts +0 -2
  81. package/dist/src/samples/mixed-given-types.flow.d.ts.map +0 -1
  82. package/dist/src/samples/mixed-given-types.flow.js.map +0 -1
  83. package/dist/src/samples/place-order.flow.d.ts.map +0 -1
  84. package/dist/src/samples/place-order.flow.js.map +0 -1
  85. package/dist/src/samples/questionnaires.flow.d.ts +0 -2
  86. package/dist/src/samples/questionnaires.flow.d.ts.map +0 -1
  87. package/dist/src/samples/questionnaires.flow.js.map +0 -1
  88. package/dist/src/samples/test-with-ids.flow.d.ts +0 -2
  89. package/dist/src/samples/test-with-ids.flow.d.ts.map +0 -1
  90. package/dist/src/samples/test-with-ids.flow.js.map +0 -1
  91. package/dist/src/transformers/flow-to-model/assemble.d.ts +0 -3
  92. package/dist/src/transformers/flow-to-model/assemble.d.ts.map +0 -1
  93. package/dist/src/transformers/flow-to-model/assemble.js +0 -9
  94. package/dist/src/transformers/flow-to-model/assemble.js.map +0 -1
  95. package/dist/src/transformers/flow-to-model/debug.d.ts +0 -3
  96. package/dist/src/transformers/flow-to-model/debug.d.ts.map +0 -1
  97. package/dist/src/transformers/flow-to-model/debug.js +0 -6
  98. package/dist/src/transformers/flow-to-model/debug.js.map +0 -1
  99. package/dist/src/transformers/flow-to-model/example-shapes.d.ts +0 -6
  100. package/dist/src/transformers/flow-to-model/example-shapes.d.ts.map +0 -1
  101. package/dist/src/transformers/flow-to-model/example-shapes.js +0 -60
  102. package/dist/src/transformers/flow-to-model/example-shapes.js.map +0 -1
  103. package/dist/src/transformers/flow-to-model/guards.d.ts +0 -15
  104. package/dist/src/transformers/flow-to-model/guards.d.ts.map +0 -1
  105. package/dist/src/transformers/flow-to-model/guards.js +0 -18
  106. package/dist/src/transformers/flow-to-model/guards.js.map +0 -1
  107. package/dist/src/transformers/flow-to-model/index.d.ts +0 -4
  108. package/dist/src/transformers/flow-to-model/index.d.ts.map +0 -1
  109. package/dist/src/transformers/flow-to-model/index.js +0 -193
  110. package/dist/src/transformers/flow-to-model/index.js.map +0 -1
  111. package/dist/src/transformers/flow-to-model/inlining.d.ts +0 -4
  112. package/dist/src/transformers/flow-to-model/inlining.d.ts.map +0 -1
  113. package/dist/src/transformers/flow-to-model/inlining.js +0 -95
  114. package/dist/src/transformers/flow-to-model/inlining.js.map +0 -1
  115. package/dist/src/transformers/flow-to-model/integrations.d.ts +0 -36
  116. package/dist/src/transformers/flow-to-model/integrations.d.ts.map +0 -1
  117. package/dist/src/transformers/flow-to-model/integrations.js +0 -147
  118. package/dist/src/transformers/flow-to-model/integrations.js.map +0 -1
  119. package/dist/src/transformers/flow-to-model/messages.d.ts +0 -5
  120. package/dist/src/transformers/flow-to-model/messages.d.ts.map +0 -1
  121. package/dist/src/transformers/flow-to-model/messages.js +0 -88
  122. package/dist/src/transformers/flow-to-model/messages.js.map +0 -1
  123. package/dist/src/transformers/flow-to-model/normalize.d.ts +0 -3
  124. package/dist/src/transformers/flow-to-model/normalize.d.ts.map +0 -1
  125. package/dist/src/transformers/flow-to-model/normalize.js +0 -23
  126. package/dist/src/transformers/flow-to-model/normalize.js.map +0 -1
  127. package/dist/src/transformers/flow-to-model/spec-processors.d.ts +0 -34
  128. package/dist/src/transformers/flow-to-model/spec-processors.d.ts.map +0 -1
  129. package/dist/src/transformers/flow-to-model/spec-processors.js +0 -395
  130. package/dist/src/transformers/flow-to-model/spec-processors.js.map +0 -1
  131. package/dist/src/transformers/flow-to-model/strings.d.ts +0 -2
  132. package/dist/src/transformers/flow-to-model/strings.d.ts.map +0 -1
  133. package/dist/src/transformers/flow-to-model/strings.js +0 -11
  134. package/dist/src/transformers/flow-to-model/strings.js.map +0 -1
  135. package/dist/src/transformers/flow-to-model/type-inference.d.ts +0 -3
  136. package/dist/src/transformers/flow-to-model/type-inference.d.ts.map +0 -1
  137. package/dist/src/transformers/flow-to-model/type-inference.js +0 -92
  138. package/dist/src/transformers/flow-to-model/type-inference.js.map +0 -1
  139. package/dist/src/transformers/flow-to-model/type-inference.specs.d.ts +0 -2
  140. package/dist/src/transformers/flow-to-model/type-inference.specs.d.ts.map +0 -1
  141. package/dist/src/transformers/flow-to-model/type-inference.specs.js +0 -167
  142. package/dist/src/transformers/flow-to-model/type-inference.specs.js.map +0 -1
  143. package/dist/src/transformers/flow-to-model/zod-adapter.d.ts +0 -6
  144. package/dist/src/transformers/flow-to-model/zod-adapter.d.ts.map +0 -1
  145. package/dist/src/transformers/flow-to-model/zod-adapter.js +0 -101
  146. package/dist/src/transformers/flow-to-model/zod-adapter.js.map +0 -1
  147. package/dist/src/transformers/model-to-flow/analysis/extract-flow.d.ts +0 -2
  148. package/dist/src/transformers/model-to-flow/analysis/extract-flow.d.ts.map +0 -1
  149. package/dist/src/transformers/model-to-flow/analysis/extract-flow.js +0 -22
  150. package/dist/src/transformers/model-to-flow/analysis/extract-flow.js.map +0 -1
  151. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.d.ts +0 -18
  152. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.d.ts.map +0 -1
  153. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.js +0 -78
  154. package/dist/src/transformers/model-to-flow/analysis/lint-helpers.js.map +0 -1
  155. package/dist/src/transformers/model-to-flow/analysis/type-decls.d.ts +0 -7
  156. package/dist/src/transformers/model-to-flow/analysis/type-decls.d.ts.map +0 -1
  157. package/dist/src/transformers/model-to-flow/analysis/type-decls.js +0 -74
  158. package/dist/src/transformers/model-to-flow/analysis/type-decls.js.map +0 -1
  159. package/dist/src/transformers/model-to-flow/analysis/usage.d.ts +0 -9
  160. package/dist/src/transformers/model-to-flow/analysis/usage.d.ts.map +0 -1
  161. package/dist/src/transformers/model-to-flow/analysis/usage.js +0 -90
  162. package/dist/src/transformers/model-to-flow/analysis/usage.js.map +0 -1
  163. package/dist/src/transformers/model-to-flow/ast/emit-helpers.d.ts +0 -18
  164. package/dist/src/transformers/model-to-flow/ast/emit-helpers.d.ts.map +0 -1
  165. package/dist/src/transformers/model-to-flow/ast/emit-helpers.js +0 -159
  166. package/dist/src/transformers/model-to-flow/ast/emit-helpers.js.map +0 -1
  167. package/dist/src/transformers/model-to-flow/formatting/prettier.d.ts +0 -2
  168. package/dist/src/transformers/model-to-flow/formatting/prettier.d.ts.map +0 -1
  169. package/dist/src/transformers/model-to-flow/formatting/prettier.js +0 -26
  170. package/dist/src/transformers/model-to-flow/formatting/prettier.js.map +0 -1
  171. package/dist/src/transformers/model-to-flow/formatting/sort-types.d.ts +0 -6
  172. package/dist/src/transformers/model-to-flow/formatting/sort-types.d.ts.map +0 -1
  173. package/dist/src/transformers/model-to-flow/formatting/sort-types.js +0 -17
  174. package/dist/src/transformers/model-to-flow/formatting/sort-types.js.map +0 -1
  175. package/dist/src/transformers/model-to-flow/generators/compose.d.ts +0 -6
  176. package/dist/src/transformers/model-to-flow/generators/compose.d.ts.map +0 -1
  177. package/dist/src/transformers/model-to-flow/generators/compose.js +0 -79
  178. package/dist/src/transformers/model-to-flow/generators/compose.js.map +0 -1
  179. package/dist/src/transformers/model-to-flow/generators/flow.d.ts +0 -15
  180. package/dist/src/transformers/model-to-flow/generators/flow.d.ts.map +0 -1
  181. package/dist/src/transformers/model-to-flow/generators/flow.js +0 -316
  182. package/dist/src/transformers/model-to-flow/generators/flow.js.map +0 -1
  183. package/dist/src/transformers/model-to-flow/generators/gwt.d.ts +0 -57
  184. package/dist/src/transformers/model-to-flow/generators/gwt.d.ts.map +0 -1
  185. package/dist/src/transformers/model-to-flow/generators/gwt.js +0 -186
  186. package/dist/src/transformers/model-to-flow/generators/gwt.js.map +0 -1
  187. package/dist/src/transformers/model-to-flow/generators/imports.d.ts +0 -16
  188. package/dist/src/transformers/model-to-flow/generators/imports.d.ts.map +0 -1
  189. package/dist/src/transformers/model-to-flow/generators/imports.js +0 -57
  190. package/dist/src/transformers/model-to-flow/generators/imports.js.map +0 -1
  191. package/dist/src/transformers/model-to-flow/generators/types.d.ts +0 -13
  192. package/dist/src/transformers/model-to-flow/generators/types.d.ts.map +0 -1
  193. package/dist/src/transformers/model-to-flow/generators/types.js +0 -22
  194. package/dist/src/transformers/model-to-flow/generators/types.js.map +0 -1
  195. package/dist/src/transformers/model-to-flow/index.d.ts +0 -13
  196. package/dist/src/transformers/model-to-flow/index.d.ts.map +0 -1
  197. package/dist/src/transformers/model-to-flow/index.js +0 -25
  198. package/dist/src/transformers/model-to-flow/index.js.map +0 -1
  199. package/dist/src/transformers/model-to-flow/utils/integration-extractor.d.ts +0 -12
  200. package/dist/src/transformers/model-to-flow/utils/integration-extractor.d.ts.map +0 -1
  201. package/dist/src/transformers/model-to-flow/utils/integration-extractor.js +0 -64
  202. package/dist/src/transformers/model-to-flow/utils/integration-extractor.js.map +0 -1
  203. package/dist/src/transformers/model-to-flow/utils/strings.d.ts +0 -9
  204. package/dist/src/transformers/model-to-flow/utils/strings.d.ts.map +0 -1
  205. package/dist/src/transformers/model-to-flow/utils/strings.js +0 -11
  206. package/dist/src/transformers/model-to-flow/utils/strings.js.map +0 -1
  207. /package/src/samples/{items.flow.ts → items.narrative.ts} +0 -0
  208. /package/src/samples/{mixed-given-types.flow.ts → mixed-given-types.narrative.ts} +0 -0
  209. /package/src/samples/{questionnaires.flow.ts → questionnaires.narrative.ts} +0 -0
  210. /package/src/samples/{test-with-ids.flow.ts → test-with-ids.narrative.ts} +0 -0
@@ -1,579 +0,0 @@
1
- import createDebug from 'debug';
2
- function normalizeContext(context) {
3
- if (!context)
4
- return undefined;
5
- const filtered = {};
6
- for (const [key, value] of Object.entries(context)) {
7
- if (value !== undefined) {
8
- filtered[key] = value;
9
- }
10
- }
11
- return Object.keys(filtered).length > 0 ? filtered : undefined;
12
- }
13
- const debug = createDebug('auto:flow:context:given-types');
14
- let context = null;
15
- let givenTypesByFile = new Map();
16
- let whenTypesByFile = new Map();
17
- const givenCallCounters = new Map();
18
- const whenCallCounters = new Map();
19
- export function setGivenTypesByFile(types) {
20
- const whenTypes = types.get('__whenTypes');
21
- if (whenTypes) {
22
- whenTypesByFile = whenTypes;
23
- types.delete('__whenTypes');
24
- }
25
- givenTypesByFile = types;
26
- givenCallCounters.clear();
27
- whenCallCounters.clear();
28
- }
29
- export function startFlow(name, id) {
30
- const sourceFile = globalThis.__aeCurrentModulePath;
31
- if (sourceFile !== null && sourceFile !== undefined && sourceFile !== '') {
32
- givenCallCounters.set(sourceFile, 0);
33
- whenCallCounters.set(sourceFile, 0);
34
- }
35
- const flow = {
36
- name,
37
- id,
38
- slices: [],
39
- ...(typeof sourceFile === 'string' ? { sourceFile } : {}),
40
- };
41
- context = {
42
- flow,
43
- currentSliceIndex: null,
44
- currentSpecTarget: null,
45
- currentSpecIndex: null,
46
- currentRuleIndex: null,
47
- currentExampleIndex: null,
48
- };
49
- return flow;
50
- }
51
- export function getCurrentFlow() {
52
- return context?.flow ?? null;
53
- }
54
- export function clearCurrentFlow() {
55
- context = null;
56
- }
57
- export function getCurrentSlice() {
58
- if (!context || context.currentSliceIndex === null)
59
- return null;
60
- return context.flow.slices[context.currentSliceIndex] ?? null;
61
- }
62
- export function addSlice(slice) {
63
- if (!context)
64
- throw new Error('No active flow');
65
- context.flow.slices.push(slice);
66
- context.currentSliceIndex = context.flow.slices.length - 1;
67
- }
68
- function getClientSpecs(slice) {
69
- if (slice.type === 'command' || slice.type === 'query') {
70
- return slice.client.specs;
71
- }
72
- return undefined;
73
- }
74
- function getServerSpecs(slice) {
75
- if ('server' in slice) {
76
- return slice.server?.specs;
77
- }
78
- return undefined;
79
- }
80
- function getCurrentSpecs(slice) {
81
- if (!context?.currentSpecTarget)
82
- return undefined;
83
- switch (context.currentSpecTarget) {
84
- case 'client':
85
- return getClientSpecs(slice);
86
- case 'server':
87
- return getServerSpecs(slice);
88
- default:
89
- return undefined;
90
- }
91
- }
92
- function getCurrentExample(slice) {
93
- if (!context ||
94
- context.currentSpecIndex === null ||
95
- context.currentRuleIndex === null ||
96
- context.currentExampleIndex === null) {
97
- return undefined;
98
- }
99
- const spec = getCurrentSpecs(slice);
100
- if (!spec)
101
- return undefined;
102
- // Only server specs have object rules with examples
103
- if (context.currentSpecTarget === 'server') {
104
- const objectRules = spec.rules;
105
- return objectRules[context.currentRuleIndex]?.examples[context.currentExampleIndex];
106
- }
107
- return undefined;
108
- }
109
- export function startClientBlock(slice, description = '') {
110
- if (!context)
111
- throw new Error('No active flow context');
112
- if (slice.type === 'command' || slice.type === 'query') {
113
- slice.client = {
114
- description,
115
- specs: undefined,
116
- };
117
- context.currentSpecTarget = 'client';
118
- }
119
- else if (slice.type === 'experience') {
120
- slice.client = {
121
- description: description || undefined,
122
- specs: undefined,
123
- };
124
- context.currentSpecTarget = 'client';
125
- }
126
- }
127
- export function endClientBlock() {
128
- if (context) {
129
- context.currentSpecTarget = null;
130
- }
131
- }
132
- export function startServerBlock(slice, description = '') {
133
- if (!context)
134
- throw new Error('No active flow context');
135
- if (slice.type === 'command') {
136
- slice.server = {
137
- description,
138
- specs: { name: '', rules: [] },
139
- data: undefined,
140
- };
141
- }
142
- else if (slice.type === 'query') {
143
- slice.server = {
144
- description,
145
- specs: { name: '', rules: [] },
146
- data: undefined,
147
- };
148
- }
149
- else if (slice.type === 'react') {
150
- slice.server = {
151
- description: description || undefined,
152
- specs: { name: '', rules: [] },
153
- data: undefined,
154
- };
155
- }
156
- context.currentSpecTarget = 'server';
157
- }
158
- export function endServerBlock() {
159
- if (context) {
160
- context.currentSpecTarget = null;
161
- }
162
- }
163
- function initializeClientSpecs(slice, description) {
164
- if (slice.type === 'command' || slice.type === 'query') {
165
- slice.client.specs = {
166
- name: description,
167
- rules: [],
168
- };
169
- }
170
- else if (slice.type === 'experience') {
171
- if (slice.client == null) {
172
- slice.client = { description: '', specs: undefined };
173
- }
174
- slice.client.specs = {
175
- name: description,
176
- rules: [],
177
- };
178
- }
179
- }
180
- function initializeServerSpecs(slice, description) {
181
- if ('server' in slice && slice.server != null) {
182
- slice.server.specs = {
183
- name: description,
184
- rules: [],
185
- };
186
- if (context)
187
- context.currentSpecIndex = 0;
188
- }
189
- }
190
- export function pushSpec(description) {
191
- if (!context || !context.currentSpecTarget)
192
- throw new Error('No active spec target');
193
- const slice = getCurrentSlice();
194
- if (!slice)
195
- throw new Error('No active slice');
196
- switch (context.currentSpecTarget) {
197
- case 'client':
198
- initializeClientSpecs(slice, description);
199
- break;
200
- case 'server':
201
- initializeServerSpecs(slice, description);
202
- break;
203
- }
204
- }
205
- export function recordShouldBlock(description) {
206
- if (typeof description === 'string' && context?.currentSpecTarget === 'client') {
207
- const slice = getCurrentSlice();
208
- if (slice && (slice.type === 'command' || slice.type === 'query' || slice.type === 'experience')) {
209
- if (!slice.client.specs) {
210
- slice.client.specs = {
211
- name: '',
212
- rules: [],
213
- };
214
- }
215
- slice.client.specs.rules.push(description);
216
- }
217
- }
218
- }
219
- export function setQueryRequest(request) {
220
- const slice = getCurrentSlice();
221
- if (!slice || slice.type !== 'query')
222
- throw new Error('Request can only be set on query slices');
223
- slice.request = request;
224
- }
225
- export function setSliceData(data) {
226
- const slice = getCurrentSlice();
227
- if (!slice)
228
- throw new Error('No active slice');
229
- const sinks = data.filter((item) => item.__type === 'sink');
230
- const sources = data.filter((item) => item.__type === 'source');
231
- if (slice.type === 'command') {
232
- // Command slices only have sinks in their data
233
- slice.server.data = sinks.length > 0 ? sinks : undefined;
234
- }
235
- else if (slice.type === 'query') {
236
- // Query slices only have sources in their data
237
- slice.server.data = sources.length > 0 ? sources : undefined;
238
- }
239
- else if (slice.type === 'react') {
240
- slice.server.data = data.length > 0 ? stripTypeDiscriminator(data) : undefined;
241
- }
242
- }
243
- function stripTypeDiscriminator(items) {
244
- return items.map((item) => {
245
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
246
- const { __type, ...rest } = item;
247
- return rest;
248
- });
249
- }
250
- export function recordRule(description, id) {
251
- if (!context || context.currentSpecIndex === null)
252
- throw new Error('No active spec context');
253
- const slice = getCurrentSlice();
254
- if (!slice)
255
- throw new Error('No active slice');
256
- const spec = getCurrentSpecs(slice);
257
- if (!spec)
258
- throw new Error('No active specs for current slice');
259
- // Only server specs have object rules with examples
260
- if (context.currentSpecTarget === 'server') {
261
- const objectRules = spec.rules;
262
- objectRules.push({
263
- id,
264
- description,
265
- examples: [],
266
- });
267
- context.currentRuleIndex = objectRules.length - 1;
268
- }
269
- }
270
- export function recordExample(description) {
271
- if (!context || context.currentSpecIndex === null || context.currentRuleIndex === null) {
272
- throw new Error('No active rule context');
273
- }
274
- const slice = getCurrentSlice();
275
- if (!slice)
276
- throw new Error('No active slice');
277
- const spec = getCurrentSpecs(slice);
278
- if (!spec)
279
- throw new Error('No active specs for current slice');
280
- // Only server specs have object rules with examples
281
- if (context.currentSpecTarget === 'server') {
282
- const objectRules = spec.rules;
283
- const rule = objectRules[context.currentRuleIndex];
284
- rule.examples.push({
285
- description,
286
- when: { commandRef: '', exampleData: {} }, // Default, will be updated
287
- then: [],
288
- });
289
- context.currentExampleIndex = rule.examples.length - 1;
290
- }
291
- }
292
- function processItemWithASTMatch(item, matchingType, contextParam) {
293
- const refType = getRefTypeFromClassification(matchingType.classification);
294
- return {
295
- [refType]: matchingType.typeName,
296
- exampleData: ensureMessageFormat(item).data,
297
- ...(contextParam && { context: contextParam }),
298
- };
299
- }
300
- function processGivenItems(data, contextParam) {
301
- const sourceFile = context?.flow.sourceFile;
302
- return data.map((item) => {
303
- if (sourceFile !== null && sourceFile !== undefined && sourceFile !== '') {
304
- const currentCount = givenCallCounters.get(sourceFile) ?? 0;
305
- givenCallCounters.set(sourceFile, currentCount + 1);
306
- // Look up AST-extracted type info by ordinal position
307
- const givenTypes = givenTypesByFile.get(sourceFile) || [];
308
- const matchingType = givenTypes[currentCount];
309
- if (matchingType !== null && matchingType !== undefined) {
310
- debug('AST match for %s at ordinal %d: %s', sourceFile, currentCount, matchingType.typeName);
311
- return processItemWithASTMatch(item, matchingType, contextParam);
312
- }
313
- else {
314
- debug('No AST match for %s at ordinal %d, item: %o', sourceFile, currentCount, item);
315
- }
316
- }
317
- // Fallback: emit explicit InferredType for downstream processing
318
- return {
319
- eventRef: 'InferredType',
320
- exampleData: ensureMessageFormat(item).data,
321
- ...(contextParam && { context: contextParam }),
322
- };
323
- });
324
- }
325
- export function recordGivenData(data, contextParam) {
326
- if (!context ||
327
- context.currentSpecIndex === null ||
328
- context.currentRuleIndex === null ||
329
- context.currentExampleIndex === null) {
330
- throw new Error('No active example context');
331
- }
332
- const slice = getCurrentSlice();
333
- if (!slice)
334
- throw new Error('No active slice');
335
- const example = getCurrentExample(slice);
336
- if (!example)
337
- throw new Error('No active example for current slice');
338
- const items = processGivenItems(data, normalizeContext(contextParam));
339
- example.given = items;
340
- }
341
- export function recordAndGivenData(data, contextParam) {
342
- if (!context ||
343
- context.currentSpecIndex === null ||
344
- context.currentRuleIndex === null ||
345
- context.currentExampleIndex === null) {
346
- throw new Error('No active example context');
347
- }
348
- const slice = getCurrentSlice();
349
- if (!slice)
350
- throw new Error('No active slice');
351
- const example = getCurrentExample(slice);
352
- if (!example)
353
- throw new Error('No active example for current slice');
354
- const items = processGivenItems(data, normalizeContext(contextParam));
355
- if (example.given && Array.isArray(example.given)) {
356
- example.given.push(...items);
357
- }
358
- else {
359
- example.given = items;
360
- }
361
- }
362
- function updateExampleWhen(example, data, sliceType, contextParam) {
363
- const ordinal = incrementWhenCounter();
364
- if (typeof data === 'object' && data !== null && Object.keys(data).length === 0) {
365
- if (sliceType === 'query') {
366
- example.when = { eventRef: '', exampleData: {} };
367
- }
368
- else {
369
- example.when = { commandRef: '', exampleData: {} };
370
- }
371
- return;
372
- }
373
- if (sliceType === 'react' || (sliceType === 'query' && Array.isArray(data))) {
374
- // For react slices and query slices with array input, when is an array of events
375
- const eventsArray = Array.isArray(data) ? data : [data];
376
- example.when = eventsArray.map((item) => convertToEventExample(item, contextParam));
377
- }
378
- else {
379
- example.when = convertToCommandOrEventExample(data, contextParam, ordinal);
380
- }
381
- }
382
- export function recordWhenData(data, contextParam) {
383
- if (!context ||
384
- context.currentSpecIndex === null ||
385
- context.currentRuleIndex === null ||
386
- context.currentExampleIndex === null) {
387
- throw new Error('No active example context');
388
- }
389
- const slice = getCurrentSlice();
390
- if (!slice)
391
- throw new Error('No active slice');
392
- const example = getCurrentExample(slice);
393
- if (!example)
394
- throw new Error('No active example for current slice');
395
- updateExampleWhen(example, data, slice.type, normalizeContext(contextParam));
396
- }
397
- export function recordThenData(data, contextParam) {
398
- if (!context ||
399
- context.currentSpecIndex === null ||
400
- context.currentRuleIndex === null ||
401
- context.currentExampleIndex === null) {
402
- throw new Error('No active example context');
403
- }
404
- const slice = getCurrentSlice();
405
- if (!slice)
406
- throw new Error('No active slice');
407
- const example = getCurrentExample(slice);
408
- if (!example)
409
- throw new Error('No active example for current slice');
410
- const outcomes = data.map((item) => convertToOutcomeExample(item, slice.type, normalizeContext(contextParam)));
411
- example.then = outcomes;
412
- }
413
- export function recordAndThenData(data, contextParam) {
414
- if (!context ||
415
- context.currentSpecIndex === null ||
416
- context.currentRuleIndex === null ||
417
- context.currentExampleIndex === null) {
418
- throw new Error('No active example context');
419
- }
420
- const slice = getCurrentSlice();
421
- if (!slice)
422
- throw new Error('No active slice');
423
- const example = getCurrentExample(slice);
424
- if (!example)
425
- throw new Error('No active example for current slice');
426
- const outcomes = data.map((item) => convertToOutcomeExample(item, slice.type, normalizeContext(contextParam)));
427
- example.then.push(...outcomes);
428
- }
429
- function convertToEventExample(item, contextParam) {
430
- const message = ensureMessageFormat(item);
431
- return {
432
- eventRef: message.type,
433
- exampleData: message.data,
434
- ...(contextParam && { context: contextParam }),
435
- };
436
- }
437
- function getRefTypeFromClassification(classification) {
438
- if (classification === 'event')
439
- return 'eventRef';
440
- if (classification === 'command')
441
- return 'commandRef';
442
- return 'stateRef';
443
- }
444
- function isValidSourceFile(sourceFile) {
445
- return sourceFile !== null && sourceFile !== undefined && sourceFile !== '';
446
- }
447
- function isValidMatchingType(matchingType) {
448
- return matchingType !== null && matchingType !== undefined && matchingType.typeName !== '';
449
- }
450
- function incrementWhenCounter() {
451
- const sourceFile = context?.flow.sourceFile;
452
- if (!isValidSourceFile(sourceFile)) {
453
- return -1;
454
- }
455
- const currentCount = whenCallCounters.get(sourceFile) ?? 0;
456
- whenCallCounters.set(sourceFile, currentCount + 1);
457
- debug('[when-counter] incremented counter for %s to %d', sourceFile, currentCount + 1);
458
- return currentCount;
459
- }
460
- function tryGetWhenTypeFromAST(item, ordinal) {
461
- const sourceFile = context?.flow.sourceFile;
462
- debug('[when-ast] tryGetWhenTypeFromAST called, sourceFile=%s, ordinal=%d', sourceFile, ordinal);
463
- debug('[when-ast] whenTypesByFile has %d files', whenTypesByFile.size);
464
- debug('[when-ast] whenTypesByFile keys: %o', [...whenTypesByFile.keys()]);
465
- if (!isValidSourceFile(sourceFile)) {
466
- debug('[when-ast] sourceFile is null/undefined/empty, returning null');
467
- return null;
468
- }
469
- const whenTypes = whenTypesByFile.get(sourceFile) || [];
470
- debug('[when-ast] sourceFile=%s, ordinal=%d, whenTypes.length=%d', sourceFile, ordinal, whenTypes.length);
471
- if (whenTypes.length > 0) {
472
- debug('[when-ast] available types: %o', whenTypes.map((t) => ({ typeName: t.typeName, classification: t.classification })));
473
- }
474
- const matchingType = whenTypes[ordinal];
475
- if (!isValidMatchingType(matchingType)) {
476
- debug('[when-ast] No valid AST match for when at %s ordinal %d, falling back', sourceFile, ordinal);
477
- return null;
478
- }
479
- const refType = getRefTypeFromClassification(matchingType.classification);
480
- debug('[when-ast] ✅ AST match for when at %s ordinal %d: %s -> %s', sourceFile, ordinal, matchingType.typeName, refType);
481
- return {
482
- [refType]: matchingType.typeName,
483
- exampleData: ensureMessageFormat(item).data,
484
- };
485
- }
486
- function convertToCommandOrEventExample(item, contextParam, ordinal) {
487
- if (ordinal !== undefined && ordinal >= 0) {
488
- const astResult = tryGetWhenTypeFromAST(item, ordinal);
489
- if (astResult)
490
- return astResult;
491
- }
492
- // Fallback to the original logic
493
- const message = ensureMessageFormat(item);
494
- return {
495
- commandRef: message.type,
496
- exampleData: message.data,
497
- ...(contextParam && { context: contextParam }),
498
- };
499
- }
500
- function convertToOutcomeExample(item, sliceType, contextParam) {
501
- const message = ensureMessageFormat(item);
502
- // Check if it's an error
503
- if (message.type === 'Error' || 'errorType' in message.data) {
504
- return {
505
- errorType: message.data.errorType || 'IllegalStateError',
506
- message: message.data.message,
507
- };
508
- }
509
- if (sliceType === 'command') {
510
- return {
511
- eventRef: message.type,
512
- exampleData: message.data,
513
- };
514
- }
515
- else if (sliceType === 'query') {
516
- return {
517
- stateRef: message.type,
518
- exampleData: message.data,
519
- };
520
- }
521
- else if (sliceType === 'react') {
522
- return {
523
- commandRef: message.type,
524
- exampleData: message.data,
525
- };
526
- }
527
- return {
528
- eventRef: message.type,
529
- exampleData: message.data,
530
- ...(contextParam && { context: contextParam }),
531
- };
532
- }
533
- function ensureMessageFormat(item) {
534
- if (typeof item !== 'object' || item === null) {
535
- throw new Error('Invalid message format');
536
- }
537
- const obj = item;
538
- if ('type' in obj && typeof obj.type === 'string') {
539
- return parseMessageObject(obj);
540
- }
541
- // Handle enhanced DSL format - pure data objects without type field
542
- // The type will be inferred during schema processing from the TypeScript types
543
- return {
544
- type: 'InferredType', // Placeholder - will be resolved during schema generation
545
- data: obj,
546
- };
547
- }
548
- function parseMessageObject(obj) {
549
- // Handle direct type/data structure
550
- if (hasValidDataProperty(obj)) {
551
- return { type: obj.type, data: obj.data };
552
- }
553
- // Handle builder format with __messageCategory
554
- if ('__messageCategory' in obj) {
555
- return parseBuilderFormat(obj);
556
- }
557
- // Handle legacy format where properties are at top level
558
- return parseLegacyFormat(obj);
559
- }
560
- function hasValidDataProperty(obj) {
561
- return 'data' in obj && typeof obj.data === 'object' && obj.data !== null;
562
- }
563
- function parseBuilderFormat(obj) {
564
- const data = 'data' in obj
565
- ? obj.data
566
- : Object.fromEntries(Object.entries(obj).filter(([key]) => key !== 'type' && key !== '__messageCategory'));
567
- return {
568
- type: obj.type,
569
- data,
570
- };
571
- }
572
- function parseLegacyFormat(obj) {
573
- const data = Object.fromEntries(Object.entries(obj).filter(([key]) => key !== 'type'));
574
- return {
575
- type: obj.type,
576
- data,
577
- };
578
- }
579
- //# sourceMappingURL=flow-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-context.js","sourceRoot":"","sources":["../../src/flow-context.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=flow-context.specs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flow-context.specs.d.ts","sourceRoot":"","sources":["../../src/flow-context.specs.ts"],"names":[],"mappings":""}