@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
package/package.json CHANGED
@@ -19,9 +19,9 @@
19
19
  "typescript": "^5.9.2",
20
20
  "zod": "^3.22.4",
21
21
  "zod-to-json-schema": "^3.22.3",
22
- "@auto-engineer/file-store": "0.11.11",
23
- "@auto-engineer/id": "0.11.11",
24
- "@auto-engineer/message-bus": "0.11.11"
22
+ "@auto-engineer/file-store": "0.11.12",
23
+ "@auto-engineer/id": "0.11.12",
24
+ "@auto-engineer/message-bus": "0.11.12"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "^20.0.0",
@@ -29,12 +29,12 @@
29
29
  "eslint-plugin-sort-keys-fix": "^1.1.2",
30
30
  "fake-indexeddb": "^6.0.0",
31
31
  "tsx": "^4.20.3",
32
- "@auto-engineer/cli": "0.11.11"
32
+ "@auto-engineer/cli": "0.11.12"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "version": "0.11.11",
37
+ "version": "0.11.12",
38
38
  "scripts": {
39
39
  "build": "tsx scripts/build.ts",
40
40
  "test": "vitest run --reporter=dot",
@@ -15,7 +15,7 @@ const importMap = {
15
15
  'graphql-tag': { default: gql, gql },
16
16
  };
17
17
 
18
- const pattern = /\.(flow)\.(ts)$/;
18
+ const pattern = /\.(narrative)\.(ts)$/;
19
19
 
20
20
  describe('getNarratives caching', () => {
21
21
  let vfs: IFileStore;
@@ -42,7 +42,7 @@ describe('getNarratives caching', () => {
42
42
  `;
43
43
 
44
44
  await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent1));
45
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent));
45
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
46
46
 
47
47
  const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
48
48
  const hash1 = firstCallResult.vfsFiles.sort().join(',');
@@ -69,7 +69,7 @@ describe('getNarratives caching', () => {
69
69
  const x = 1;
70
70
  });
71
71
  `;
72
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent));
72
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
73
73
 
74
74
  const importMap1 = { 'test-module': { default: 'value1' } };
75
75
  const result1 = await getNarratives({ vfs, root, importMap: importMap1, pattern, fastFsScan: true });
@@ -96,7 +96,7 @@ describe('getNarratives caching', () => {
96
96
  `;
97
97
 
98
98
  await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent1));
99
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent));
99
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
100
100
 
101
101
  const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
102
102
  const filesCount1 = firstCallResult.vfsFiles.length;
@@ -133,7 +133,7 @@ describe('getNarratives caching', () => {
133
133
  });
134
134
  `;
135
135
 
136
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent));
136
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
137
137
  await vfs.write('/test/unrelated.txt', new TextEncoder().encode('initial content'));
138
138
 
139
139
  const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
@@ -162,13 +162,13 @@ describe('getNarratives caching', () => {
162
162
  });
163
163
  `;
164
164
 
165
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent1));
166
- await vfs.write('/test/test2.flow.ts', new TextEncoder().encode(flowContent2));
165
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent1));
166
+ await vfs.write('/test/test2.narrative.ts', new TextEncoder().encode(flowContent2));
167
167
 
168
168
  const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
169
169
  expect(firstCallResult.narratives.length).toBeGreaterThanOrEqual(2);
170
170
 
171
- await vfs.remove('/test/test2.flow.ts');
171
+ await vfs.remove('/test/test2.narrative.ts');
172
172
 
173
173
  const secondCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
174
174
 
@@ -185,21 +185,21 @@ describe('getNarratives caching', () => {
185
185
  });
186
186
  `;
187
187
 
188
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent));
188
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
189
189
 
190
190
  const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
191
- expect(firstCallResult.vfsFiles.some((f) => f.includes('test.flow.ts'))).toBe(true);
191
+ expect(firstCallResult.vfsFiles.some((f) => f.includes('test.narrative.ts'))).toBe(true);
192
192
 
193
- const content = await vfs.read('/test/test.flow.ts');
193
+ const content = await vfs.read('/test/test.narrative.ts');
194
194
  if (content) {
195
- await vfs.write('/test/renamed.flow.ts', content);
196
- await vfs.remove('/test/test.flow.ts');
195
+ await vfs.write('/test/renamed.narrative.ts', content);
196
+ await vfs.remove('/test/test.narrative.ts');
197
197
  }
198
198
 
199
199
  const secondCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true });
200
200
 
201
- expect(secondCallResult.vfsFiles.some((f) => f.includes('renamed.flow.ts'))).toBe(true);
202
- expect(secondCallResult.vfsFiles.some((f) => f.includes('test.flow.ts'))).toBe(false);
201
+ expect(secondCallResult.vfsFiles.some((f) => f.includes('renamed.narrative.ts'))).toBe(true);
202
+ expect(secondCallResult.vfsFiles.some((f) => f.includes('test.narrative.ts'))).toBe(false);
203
203
  });
204
204
 
205
205
  it('should handle .d.ts files if they affect the graph', async () => {
@@ -217,7 +217,7 @@ describe('getNarratives caching', () => {
217
217
  `;
218
218
 
219
219
  await vfs.write('/test/types.d.ts', new TextEncoder().encode(dtsContent));
220
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent));
220
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
221
221
 
222
222
  const result = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
223
223
 
@@ -233,7 +233,7 @@ describe('getNarratives caching', () => {
233
233
  });
234
234
  `;
235
235
 
236
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent));
236
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
237
237
 
238
238
  const importMap1 = { 'module-a': 'value', 'module-b': 'value' };
239
239
  const result1 = await getNarratives({ vfs, root, importMap: importMap1, pattern, fastFsScan: true });
@@ -268,7 +268,7 @@ describe('getNarratives caching', () => {
268
268
  await vfs.write('/test/chain3.ts', new TextEncoder().encode(chain3Content));
269
269
  await vfs.write('/test/chain2.ts', new TextEncoder().encode(chain2Content));
270
270
  await vfs.write('/test/chain1.ts', new TextEncoder().encode(chain1Content));
271
- await vfs.write('/test/test.flow.ts', new TextEncoder().encode(flowContent));
271
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
272
272
 
273
273
  const result1 = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
274
274
 
@@ -8,7 +8,7 @@ import { getNarratives } from './getNarratives';
8
8
 
9
9
  const __filename = fileURLToPath(import.meta.url);
10
10
  const __dirname = path.dirname(__filename);
11
- const pattern = /\.(flow)\.(ts)$/;
11
+ const pattern = /\.(narrative)\.(ts)$/;
12
12
 
13
13
  describe('getNarratives', (_mode) => {
14
14
  let vfs: NodeFileStore;
@@ -182,7 +182,7 @@ describe('getNarratives', (_mode) => {
182
182
  });
183
183
 
184
184
  it('validates the complete schema with Zod', async () => {
185
- const flows = await getNarratives({ vfs: vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true });
185
+ const flows = await getNarratives({ vfs: vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true });
186
186
  const schemas = flows.toModel();
187
187
  const parsed = modelSchema.parse(schemas);
188
188
  expect(parsed.variant).toBe('specs');
@@ -192,7 +192,7 @@ describe('getNarratives', (_mode) => {
192
192
  });
193
193
 
194
194
  it('should handle flows with integrations', async () => {
195
- const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true });
195
+ const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true });
196
196
  const specsSchema = flows.toModel();
197
197
 
198
198
  const flowsWithIntegrations = specsSchema.narratives.filter((f) =>
@@ -216,7 +216,7 @@ describe('getNarratives', (_mode) => {
216
216
  });
217
217
 
218
218
  it('should handle react slices correctly', async () => {
219
- const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true });
219
+ const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true });
220
220
  const specsSchema = flows.toModel();
221
221
 
222
222
  const reactSlices = specsSchema.narratives.flatMap((f) => f.slices.filter((s) => s.type === 'react'));
@@ -241,7 +241,7 @@ describe('getNarratives', (_mode) => {
241
241
  });
242
242
 
243
243
  it('should parse and validate a complete flow with all slice types', async () => {
244
- const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true });
244
+ const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true });
245
245
  const schemas = flows.toModel();
246
246
 
247
247
  const validationResult = modelSchema.safeParse(schemas);
@@ -268,7 +268,7 @@ describe('getNarratives', (_mode) => {
268
268
  });
269
269
 
270
270
  it('should have ids for flows and slices that have ids', async () => {
271
- const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true });
271
+ const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true });
272
272
 
273
273
  const schemas = flows.toModel();
274
274
 
@@ -286,7 +286,7 @@ describe('getNarratives', (_mode) => {
286
286
  });
287
287
 
288
288
  it('should have ids for command slice rules', async () => {
289
- const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true });
289
+ const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true });
290
290
  const schemas = flows.toModel();
291
291
 
292
292
  const testFlowWithIds = schemas.narratives.find((f) => f.name === 'Test Flow with IDs');
@@ -309,7 +309,7 @@ describe('getNarratives', (_mode) => {
309
309
  });
310
310
 
311
311
  it('should have ids for query slice rules', async () => {
312
- const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true });
312
+ const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true });
313
313
  const schemas = flows.toModel();
314
314
 
315
315
  const testFlowWithIds = schemas.narratives.find((f) => f.name === 'Test Flow with IDs');
@@ -327,7 +327,7 @@ describe('getNarratives', (_mode) => {
327
327
  });
328
328
 
329
329
  it('should have ids for react slice rules', async () => {
330
- const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true });
330
+ const flows = await getNarratives({ vfs: vfs, root: root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true });
331
331
  const schemas = flows.toModel();
332
332
 
333
333
  const testFlowWithIds = schemas.narratives.find((f) => f.name === 'Test Flow with IDs');
@@ -348,7 +348,7 @@ describe('getNarratives', (_mode) => {
348
348
  const flows = await getNarratives({
349
349
  vfs,
350
350
  root,
351
- pattern: /(?:^|\/)questionnaires\.flow\.(?:ts|tsx|js|jsx|mjs|cjs)$/,
351
+ pattern: /(?:^|\/)questionnaires\.narrative\.(?:ts|tsx|js|jsx|mjs|cjs)$/,
352
352
  });
353
353
  const model = flows.toModel();
354
354
 
@@ -379,7 +379,7 @@ describe('getNarratives', (_mode) => {
379
379
  const flows = await getNarratives({
380
380
  vfs,
381
381
  root,
382
- pattern: /(?:^|\/)questionnaires\.flow\.(?:ts|tsx|js|jsx|mjs|cjs)$/,
382
+ pattern: /(?:^|\/)questionnaires\.narrative\.(?:ts|tsx|js|jsx|mjs|cjs)$/,
383
383
  fastFsScan: true,
384
384
  });
385
385
  const model = flows.toModel();
@@ -401,7 +401,7 @@ flow('Test Experience Flow', () => {
401
401
  });
402
402
  `;
403
403
 
404
- await memoryVfs.write('/test/experience.flow.ts', new TextEncoder().encode(flowWithExperienceContent));
404
+ await memoryVfs.write('/test/experience.narrative.ts', new TextEncoder().encode(flowWithExperienceContent));
405
405
 
406
406
  const flows = await getNarratives({ vfs: memoryVfs, root: '/test', pattern, fastFsScan: true });
407
407
  const model = flows.toModel();
@@ -444,14 +444,14 @@ flow('Browser Test Flow', () => {
444
444
  });
445
445
  `;
446
446
 
447
- await memoryVfs.write('/browser/test.flow.ts', new TextEncoder().encode(flowContent));
447
+ await memoryVfs.write('/browser/test.narrative.ts', new TextEncoder().encode(flowContent));
448
448
 
449
449
  const { executeAST } = await import('./loader');
450
450
  const { registry } = await import('./narrative-registry');
451
451
 
452
452
  registry.clearAll();
453
453
 
454
- await executeAST(['/browser/test.flow.ts'], memoryVfs, {}, '/browser');
454
+ await executeAST(['/browser/test.narrative.ts'], memoryVfs, {}, '/browser');
455
455
 
456
456
  const flows = registry.getAllNarratives();
457
457
  expect(flows).toHaveLength(1);
@@ -484,11 +484,13 @@ flow('Questionnaires', 'AUTO-Q9m2Kp4Lx', () => {
484
484
  });
485
485
  `;
486
486
 
487
- await memoryVfs.write('/browser/questionnaires.flow.ts', new TextEncoder().encode(flowContent));
487
+ await memoryVfs.write('/browser/questionnaires.narrative.ts', new TextEncoder().encode(flowContent));
488
488
 
489
489
  registry.clearAll();
490
490
 
491
- await expect(executeAST(['/browser/questionnaires.flow.ts'], memoryVfs, {}, '/browser')).resolves.toBeDefined();
491
+ await expect(
492
+ executeAST(['/browser/questionnaires.narrative.ts'], memoryVfs, {}, '/browser'),
493
+ ).resolves.toBeDefined();
492
494
 
493
495
  const flows = registry.getAllNarratives();
494
496
  expect(flows).toHaveLength(1);
@@ -598,7 +600,7 @@ flow('questionnaires-test', () => {
598
600
  });
599
601
  `;
600
602
 
601
- await memoryVfs.write('/test/questionnaires.flow.ts', new TextEncoder().encode(questionnaireFlowContent));
603
+ await memoryVfs.write('/test/questionnaires.narrative.ts', new TextEncoder().encode(questionnaireFlowContent));
602
604
 
603
605
  const flows = await getNarratives({ vfs: memoryVfs, root: '/test', pattern, fastFsScan: true });
604
606
  const model = flows.toModel();
@@ -642,7 +644,7 @@ flow('questionnaires-test', () => {
642
644
  const flows = await getNarratives({
643
645
  vfs,
644
646
  root,
645
- pattern: /(?:^|\/)questionnaires\.flow\.(?:ts|tsx|js|jsx|mjs|cjs)$/,
647
+ pattern: /(?:^|\/)questionnaires\.narrative\.(?:ts|tsx|js|jsx|mjs|cjs)$/,
646
648
  fastFsScan: true,
647
649
  });
648
650
 
@@ -662,7 +664,7 @@ flow('questionnaires-test', () => {
662
664
  const flows = await getNarratives({
663
665
  vfs,
664
666
  root: root,
665
- pattern: /(?:^|\/)questionnaires\.flow\.(?:ts|tsx|js|jsx|mjs|cjs)$/,
667
+ pattern: /(?:^|\/)questionnaires\.narrative\.(?:ts|tsx|js|jsx|mjs|cjs)$/,
666
668
  fastFsScan: true,
667
669
  });
668
670
  const model = flows.toModel();
@@ -769,7 +771,7 @@ flow('Todo List', () => {
769
771
  });
770
772
  `;
771
773
 
772
- await memoryVfs.write('/test/todo-summary.flow.ts', new TextEncoder().encode(todoSummaryFlowContent));
774
+ await memoryVfs.write('/test/todo-summary.narrative.ts', new TextEncoder().encode(todoSummaryFlowContent));
773
775
 
774
776
  const flows = await getNarratives({ vfs: memoryVfs, root: '/test', pattern, fastFsScan: true });
775
777
  const model = flows.toModel();
@@ -971,7 +973,7 @@ function validateMixedGivenTypeMessages(model: Model): void {
971
973
  async function createQuestionnaireBugTestModel(): Promise<Model> {
972
974
  const memoryVfs = new InMemoryFileStore();
973
975
  const questionnaireFlowContent = getQuestionnaireFlowContent();
974
- await memoryVfs.write('/test/questionnaires-bug.flow.ts', new TextEncoder().encode(questionnaireFlowContent));
976
+ await memoryVfs.write('/test/questionnaires-bug.narrative.ts', new TextEncoder().encode(questionnaireFlowContent));
975
977
  const flows = await getNarratives({ vfs: memoryVfs, root: '/test', pattern, fastFsScan: true });
976
978
  return flows.toModel();
977
979
  }
@@ -220,7 +220,7 @@ describe('addAutoIds', () => {
220
220
  narratives: [
221
221
  {
222
222
  name: 'Home Screen',
223
- sourceFile: '/path/to/homepage.flow.ts',
223
+ sourceFile: '/path/to/homepage.narrative.ts',
224
224
  slices: [
225
225
  {
226
226
  name: 'Active Surveys Summary',
@@ -236,7 +236,7 @@ describe('addAutoIds', () => {
236
236
  },
237
237
  {
238
238
  name: 'Create Survey',
239
- sourceFile: '/path/to/homepage.flow.ts',
239
+ sourceFile: '/path/to/homepage.narrative.ts',
240
240
  slices: [
241
241
  {
242
242
  name: 'Create Survey Form',
@@ -252,7 +252,7 @@ describe('addAutoIds', () => {
252
252
  },
253
253
  {
254
254
  name: 'Response Analytics',
255
- sourceFile: '/path/to/homepage.flow.ts',
255
+ sourceFile: '/path/to/homepage.narrative.ts',
256
256
  slices: [
257
257
  {
258
258
  name: 'Response Rate Charts',
@@ -289,8 +289,8 @@ describe('addAutoIds', () => {
289
289
  expect(result.narratives[0].slices[0].id).not.toBe(result.narratives[2].slices[0].id);
290
290
  expect(result.narratives[1].slices[0].id).not.toBe(result.narratives[2].slices[0].id);
291
291
 
292
- expect(result.narratives[0].sourceFile).toBe('/path/to/homepage.flow.ts');
293
- expect(result.narratives[1].sourceFile).toBe('/path/to/homepage.flow.ts');
294
- expect(result.narratives[2].sourceFile).toBe('/path/to/homepage.flow.ts');
292
+ expect(result.narratives[0].sourceFile).toBe('/path/to/homepage.narrative.ts');
293
+ expect(result.narratives[1].sourceFile).toBe('/path/to/homepage.narrative.ts');
294
+ expect(result.narratives[2].sourceFile).toBe('/path/to/homepage.narrative.ts');
295
295
  });
296
296
  });
@@ -146,14 +146,14 @@ flow('Response Analytics', 'AUTO-eME978Euk', () => {
146
146
  const flowContent3 = new TextEncoder().encode(multipleFlowsSameSource);
147
147
  const flowContent4 = new TextEncoder().encode(multipleFlowsIncomplete);
148
148
  const flowContent5 = new TextEncoder().encode(multipleFlowsSliceMissing);
149
- await vfs.write('/test/flow-without-ids.flow.ts', flowContent1);
150
- await vfs.write('/test/flow-with-ids.flow.ts', flowContent2);
151
- await vfs.write('/test/homepage.flow.ts', flowContent3);
152
- await vfs.write('/test/homepage-incomplete.flow.ts', flowContent4);
153
- await vfs.write('/test/homepage-slice-missing.flow.ts', flowContent5);
149
+ await vfs.write('/test/flow-without-ids.narrative.ts', flowContent1);
150
+ await vfs.write('/test/flow-with-ids.narrative.ts', flowContent2);
151
+ await vfs.write('/test/homepage.narrative.ts', flowContent3);
152
+ await vfs.write('/test/homepage-incomplete.narrative.ts', flowContent4);
153
+ await vfs.write('/test/homepage-slice-missing.narrative.ts', flowContent5);
154
154
  });
155
155
  it('should return false for models without IDs', async () => {
156
- const result = await getNarratives({ vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true, importMap });
156
+ const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
157
157
  const model = result.toModel();
158
158
 
159
159
  const flowWithoutIds = model.narratives.find((f) => f.name === 'Test Flow Without IDs');
@@ -166,7 +166,7 @@ flow('Response Analytics', 'AUTO-eME978Euk', () => {
166
166
  });
167
167
 
168
168
  it('should return true for models with complete IDs', async () => {
169
- const result = await getNarratives({ vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true, importMap });
169
+ const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
170
170
  const model = result.toModel();
171
171
 
172
172
  const modelWithIds = addAutoIds(model);
@@ -174,7 +174,7 @@ flow('Response Analytics', 'AUTO-eME978Euk', () => {
174
174
  });
175
175
 
176
176
  it('should return true for flows that already have IDs', async () => {
177
- const result = await getNarratives({ vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true, importMap });
177
+ const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
178
178
  const model = result.toModel();
179
179
 
180
180
  const testFlowWithIds = model.narratives.find((f) => f.name === 'Test Flow with IDs');
@@ -187,7 +187,7 @@ flow('Response Analytics', 'AUTO-eME978Euk', () => {
187
187
  });
188
188
 
189
189
  it('should return false if any slice is missing an ID', async () => {
190
- const result = await getNarratives({ vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true, importMap });
190
+ const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
191
191
  const model = result.toModel();
192
192
 
193
193
  const modelWithIds = addAutoIds(model);
@@ -200,7 +200,7 @@ flow('Response Analytics', 'AUTO-eME978Euk', () => {
200
200
  });
201
201
 
202
202
  it('should return false if any rule is missing an ID', async () => {
203
- const result = await getNarratives({ vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true, importMap });
203
+ const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
204
204
  const model = result.toModel();
205
205
 
206
206
  const modelWithIds = addAutoIds(model);
@@ -227,11 +227,11 @@ flow('Response Analytics', 'AUTO-eME978Euk', () => {
227
227
  });
228
228
 
229
229
  it('should return true when multiple flows with same sourceFile all have IDs', async () => {
230
- const result = await getNarratives({ vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true, importMap });
230
+ const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
231
231
  const model = result.toModel();
232
232
 
233
233
  const homepageFlows = model.narratives.filter(
234
- (f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage.flow.ts'),
234
+ (f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage.narrative.ts'),
235
235
  );
236
236
  expect(homepageFlows.length).toBe(3);
237
237
 
@@ -240,11 +240,11 @@ flow('Response Analytics', 'AUTO-eME978Euk', () => {
240
240
  });
241
241
 
242
242
  it('should return false when any flow in multiple flows with same sourceFile is missing ID', async () => {
243
- const result = await getNarratives({ vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true, importMap });
243
+ const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
244
244
  const model = result.toModel();
245
245
 
246
246
  const homepageFlows = model.narratives.filter(
247
- (f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage-incomplete.flow.ts'),
247
+ (f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage-incomplete.narrative.ts'),
248
248
  );
249
249
  expect(homepageFlows.length).toBe(3);
250
250
 
@@ -253,11 +253,11 @@ flow('Response Analytics', 'AUTO-eME978Euk', () => {
253
253
  });
254
254
 
255
255
  it('should return false when any slice in multiple flows with same sourceFile is missing ID', async () => {
256
- const result = await getNarratives({ vfs, root, pattern: /\.(flow)\.(ts)$/, fastFsScan: true, importMap });
256
+ const result = await getNarratives({ vfs, root, pattern: /\.(narrative)\.(ts)$/, fastFsScan: true, importMap });
257
257
  const model = result.toModel();
258
258
 
259
259
  const homepageFlows = model.narratives.filter(
260
- (f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage-slice-missing.flow.ts'),
260
+ (f) => f.sourceFile !== undefined && f.sourceFile.includes('homepage-slice-missing.narrative.ts'),
261
261
  );
262
262
  expect(homepageFlows.length).toBe(3);
263
263
 
@@ -1739,7 +1739,7 @@ narrative('Date Handling Flow', 'DATE-FLOW', () => {
1739
1739
  narratives: [
1740
1740
  {
1741
1741
  name: 'Home Screen',
1742
- sourceFile: '/path/to/homepage.flow.ts',
1742
+ sourceFile: '/path/to/homepage.narrative.ts',
1743
1743
  slices: [
1744
1744
  {
1745
1745
  name: 'Active Surveys Summary',
@@ -1756,7 +1756,7 @@ narrative('Date Handling Flow', 'DATE-FLOW', () => {
1756
1756
  },
1757
1757
  {
1758
1758
  name: 'Create Survey',
1759
- sourceFile: '/path/to/homepage.flow.ts',
1759
+ sourceFile: '/path/to/homepage.narrative.ts',
1760
1760
  slices: [
1761
1761
  {
1762
1762
  name: 'Create Survey Form',
@@ -1773,7 +1773,7 @@ narrative('Date Handling Flow', 'DATE-FLOW', () => {
1773
1773
  },
1774
1774
  {
1775
1775
  name: 'Response Analytics',
1776
- sourceFile: '/path/to/homepage.flow.ts',
1776
+ sourceFile: '/path/to/homepage.narrative.ts',
1777
1777
  slices: [
1778
1778
  {
1779
1779
  name: 'Response Rate Charts',
@@ -11,7 +11,7 @@ export interface OrderPlaced {
11
11
  };
12
12
  }
13
13
 
14
- export interface PlaceOrderFlow {
14
+ export interface PlaceOrderNarrative {
15
15
  type: 'PlaceOrder';
16
16
  data: {
17
17
  productId: string;
@@ -41,7 +41,7 @@ flow('Place order', () => {
41
41
  specs('User submits a new order', () => {
42
42
  rule('Valid orders should be processed successfully', () => {
43
43
  example('User places order for available product')
44
- .when<PlaceOrderFlow>({
44
+ .when<PlaceOrderNarrative>({
45
45
  productId: 'product_789',
46
46
  quantity: 3,
47
47
  })
@@ -452,7 +452,7 @@
452
452
  }
453
453
  }
454
454
  ],
455
- "sourceFile": "/Users/ramihatoum/WebstormProjects/xolvio/auto-engineer/examples/shopping-app/flows/shopping-assistant.flow.ts"
455
+ "sourceFile": "/Users/ramihatoum/WebstormProjects/xolvio/auto-engineer/examples/shopping-app/flows/shopping-assistant.narrative.ts"
456
456
  }
457
457
  ],
458
458
  "messages": [
@@ -1,4 +0,0 @@
1
-
2
- > @auto-engineer/narrative@0.11.10 format /Users/sam/WebstormProjects/top/auto-engineer-2/packages/narrative
3
- > prettier --write "**/*.{js,ts,json,md,yml,yaml}" --ignore-path ../../.prettierignore --log-level warn
4
-
@@ -1,4 +0,0 @@
1
-
2
- > @auto-engineer/narrative@0.11.10 lint /Users/sam/WebstormProjects/top/auto-engineer-2/packages/narrative
3
- > eslint '{src,scripts}/**/*.ts' --max-warnings 0 --config ./eslint.config.ts
4
-
@@ -1,14 +0,0 @@
1
-
2
- > @auto-engineer/narrative@0.11.10 test /Users/sam/WebstormProjects/top/auto-engineer-2/packages/narrative
3
- > vitest run --reporter=dot
4
-
5
-
6
- RUN v3.2.4 /Users/sam/WebstormProjects/top/auto-engineer-2/packages/narrative
7
-
8
- ·································································
9
-
10
- Test Files 8 passed (8)
11
- Tests 65 passed (65)
12
- Start at 15:23:05
13
- Duration 2.32s (transform 1.53s, setup 0ms, collect 5.01s, tests 2.45s, environment 1ms, prepare 1.30s)
14
-
@@ -1,4 +0,0 @@
1
-
2
- > @auto-engineer/narrative@0.11.10 type-check /Users/sam/WebstormProjects/top/auto-engineer-2/packages/narrative
3
- > tsc --noEmit
4
-
@@ -1,71 +0,0 @@
1
- import type { DataSinkItem, DataSourceItem, MessageTarget, Integration } from './types';
2
- export interface ChainableSinkMethods {
3
- additionalInstructions(instructions: string): ChainableSink;
4
- withState(source: DataSourceItem | ChainableSource): ChainableSink;
5
- }
6
- export interface ChainableSourceMethods {
7
- additionalInstructions(instructions: string): ChainableSource;
8
- }
9
- export type ChainableSink = DataSinkItem & ChainableSinkMethods;
10
- export type ChainableSource = DataSourceItem & ChainableSourceMethods;
11
- export interface FieldSelector {
12
- [key: string]: boolean | FieldSelector;
13
- }
14
- declare abstract class MessageTargetBuilder<TResult> {
15
- protected target: Partial<MessageTarget>;
16
- protected instructions?: string;
17
- fields(selector: FieldSelector): this;
18
- additionalInstructions(instructions: string): this;
19
- abstract build(): TResult;
20
- }
21
- export declare class EventSinkBuilder extends MessageTargetBuilder<DataSinkItem> {
22
- constructor(name: string);
23
- toStream(pattern: string): ChainableSink;
24
- toIntegration(...systems: Integration[]): ChainableSink;
25
- toDatabase(collection: string): ChainableSink;
26
- toTopic(name: string): ChainableSink;
27
- build(): DataSinkItem;
28
- }
29
- export declare class CommandSinkBuilder extends MessageTargetBuilder<DataSinkItem> {
30
- private stateSource?;
31
- constructor(name: string);
32
- withState(source: DataSourceItem | ChainableSource): this;
33
- toIntegration(system: Integration | string, messageName: string, messageType: 'command' | 'query' | 'reaction'): ChainableSink;
34
- hints(hint: string): ChainableSink;
35
- toDatabase(collection: string): ChainableSink;
36
- toTopic(name: string): ChainableSink;
37
- build(): DataSinkItem;
38
- }
39
- export declare class StateSinkBuilder extends MessageTargetBuilder<DataSinkItem> {
40
- constructor(name: string);
41
- toDatabase(collection: string): ChainableSink;
42
- toStream(pattern: string): ChainableSink;
43
- build(): DataSinkItem;
44
- }
45
- export declare class StateSourceBuilder extends MessageTargetBuilder<DataSourceItem> {
46
- constructor(name: string);
47
- fromProjection(name: string, idField: string): ChainableSource;
48
- fromReadModel(name: string): ChainableSource;
49
- fromDatabase(collection: string, query?: Record<string, unknown>): ChainableSource;
50
- fromApi(endpoint: string, method?: string): ChainableSource;
51
- fromIntegration(...systems: (Integration | string)[]): ChainableSource;
52
- build(): DataSourceItem;
53
- }
54
- interface BuilderResult {
55
- type: string;
56
- __messageCategory: 'event' | 'command' | 'state';
57
- }
58
- export declare class DataSinkBuilder {
59
- event(nameOrBuilder: string | BuilderResult): EventSinkBuilder;
60
- command(nameOrBuilder: string | BuilderResult): CommandSinkBuilder;
61
- state(nameOrBuilder: string | BuilderResult): StateSinkBuilder;
62
- }
63
- export declare class DataSourceBuilder {
64
- state(nameOrBuilder: string | BuilderResult): StateSourceBuilder;
65
- }
66
- export declare const sink: () => DataSinkBuilder;
67
- export declare const source: () => DataSourceBuilder;
68
- export declare function typedSink(builderResult: BuilderResult): EventSinkBuilder | CommandSinkBuilder | StateSinkBuilder;
69
- export declare function typedSource(builderResult: BuilderResult): StateSourceBuilder;
70
- export {};
71
- //# sourceMappingURL=data-flow-builders.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"data-flow-builders.d.ts","sourceRoot":"","sources":["../../src/data-flow-builders.ts"],"names":[],"mappings":"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"}