@auto-engineer/narrative 0.19.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-format.log +4 -0
  3. package/.turbo/turbo-lint.log +4 -0
  4. package/.turbo/turbo-test.log +14 -0
  5. package/.turbo/turbo-type-check.log +5 -0
  6. package/CHANGELOG.md +16 -6
  7. package/dist/src/commands/export-schema-runner.d.ts +3 -0
  8. package/dist/src/commands/export-schema-runner.d.ts.map +1 -0
  9. package/dist/src/commands/export-schema-runner.js +53 -0
  10. package/dist/src/commands/export-schema-runner.js.map +1 -0
  11. package/dist/src/fluent-builder.specs.d.ts +2 -0
  12. package/dist/src/fluent-builder.specs.d.ts.map +1 -0
  13. package/dist/src/fluent-builder.specs.js +28 -0
  14. package/dist/src/fluent-builder.specs.js.map +1 -0
  15. package/dist/src/getNarratives.cache.specs.d.ts +2 -0
  16. package/dist/src/getNarratives.cache.specs.d.ts.map +1 -0
  17. package/dist/src/getNarratives.cache.specs.js +234 -0
  18. package/dist/src/getNarratives.cache.specs.js.map +1 -0
  19. package/dist/src/getNarratives.specs.d.ts +2 -0
  20. package/dist/src/getNarratives.specs.d.ts.map +1 -0
  21. package/dist/src/getNarratives.specs.js +1294 -0
  22. package/dist/src/getNarratives.specs.js.map +1 -0
  23. package/dist/src/id/addAutoIds.specs.d.ts +2 -0
  24. package/dist/src/id/addAutoIds.specs.d.ts.map +1 -0
  25. package/dist/src/id/addAutoIds.specs.js +265 -0
  26. package/dist/src/id/addAutoIds.specs.js.map +1 -0
  27. package/dist/src/id/hasAllIds.specs.d.ts +2 -0
  28. package/dist/src/id/hasAllIds.specs.d.ts.map +1 -0
  29. package/dist/src/id/hasAllIds.specs.js +231 -0
  30. package/dist/src/id/hasAllIds.specs.js.map +1 -0
  31. package/dist/src/model-to-narrative.specs.d.ts +2 -0
  32. package/dist/src/model-to-narrative.specs.d.ts.map +1 -0
  33. package/dist/src/model-to-narrative.specs.js +2378 -0
  34. package/dist/src/model-to-narrative.specs.js.map +1 -0
  35. package/dist/src/narrative-context.specs.d.ts +2 -0
  36. package/dist/src/narrative-context.specs.d.ts.map +1 -0
  37. package/dist/src/narrative-context.specs.js +185 -0
  38. package/dist/src/narrative-context.specs.js.map +1 -0
  39. package/dist/src/transformers/narrative-to-model/type-inference.specs.d.ts +2 -0
  40. package/dist/src/transformers/narrative-to-model/type-inference.specs.d.ts.map +1 -0
  41. package/dist/src/transformers/narrative-to-model/type-inference.specs.js +167 -0
  42. package/dist/src/transformers/narrative-to-model/type-inference.specs.js.map +1 -0
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +4 -4
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/narrative@0.19.1 build /home/runner/work/auto-engineer/auto-engineer/packages/narrative
2
+ > @auto-engineer/narrative@0.21.0 build /Users/sam/code/auto/2/auto-engineer-2/packages/narrative
3
3
  > tsx scripts/build.ts
4
4
 
5
5
  Running: tsc
@@ -0,0 +1,4 @@
1
+
2
+ > @auto-engineer/narrative@0.11.16 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
+
@@ -0,0 +1,4 @@
1
+
2
+ > @auto-engineer/narrative@0.11.16 lint /Users/sam/WebstormProjects/top/auto-engineer-2/packages/narrative
3
+ > eslint '{src,scripts}/**/*.ts' --max-warnings 0 --config ./eslint.config.ts
4
+
@@ -0,0 +1,14 @@
1
+
2
+ > @auto-engineer/narrative@0.21.0 test /Users/sam/code/auto/2/auto-engineer-2/packages/narrative
3
+ > vitest run --reporter=dot
4
+
5
+
6
+ RUN v3.2.4 /Users/sam/code/auto/2/auto-engineer-2/packages/narrative
7
+
8
+ ············································································································································································································
9
+
10
+ Test Files 14 passed (14)
11
+ Tests 204 passed (204)
12
+ Start at 18:49:24
13
+ Duration 3.39s (transform 4.21s, setup 0ms, collect 11.92s, tests 2.33s, environment 1ms, prepare 3.08s)
14
+
@@ -0,0 +1,5 @@
1
+
2
+ 
3
+ > @auto-engineer/narrative@0.21.0 type-check /Users/sam/code/auto/2/auto-engineer-2/packages/narrative
4
+ > tsc --noEmit
5
+
package/CHANGELOG.md CHANGED
@@ -1,15 +1,26 @@
1
1
  # @auto-engineer/flow
2
2
 
3
- ## 0.19.1
3
+ ## 0.21.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Unifies ports on cli
4
8
 
5
9
  ### Patch Changes
6
10
 
7
- - add optional id field to DataSink and DataSource
11
+ - Updated dependencies []:
12
+ - @auto-engineer/message-bus@0.21.0
13
+ - @auto-engineer/file-store@0.21.0
14
+ - @auto-engineer/id@0.21.0
15
+
16
+ ## 0.20.0
17
+
18
+ ### Patch Changes
8
19
 
9
20
  - Updated dependencies []:
10
- - @auto-engineer/file-store@0.19.1
11
- - @auto-engineer/id@0.19.1
12
- - @auto-engineer/message-bus@0.19.1
21
+ - @auto-engineer/file-store@0.20.0
22
+ - @auto-engineer/id@0.20.0
23
+ - @auto-engineer/message-bus@0.20.0
13
24
 
14
25
  ## 0.19.0
15
26
 
@@ -931,7 +942,6 @@
931
942
  ### Patch Changes
932
943
 
933
944
  - [`988ab04`](https://github.com/SamHatoum/auto-engineer/commit/988ab04530d41e116df9196434c0e57ff2ee11a8) Thanks [@SamHatoum](https://github.com/SamHatoum)! - Fix export:schema command and add comprehensive debug logging
934
-
935
945
  - Fixed export-schema command to use npx tsx for TypeScript support
936
946
  - Added proper JSON extraction from stdout to handle integration logs
937
947
  - Resolved issue where export:schema produced empty schemas despite valid flow definitions
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=export-schema-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-schema-runner.d.ts","sourceRoot":"","sources":["../../../src/commands/export-schema-runner.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env node
2
+ // This runner is executed in the target directory context to avoid module resolution issues
3
+ import { resolve } from 'path';
4
+ import { writeFileSync, mkdirSync } from 'fs';
5
+ import createDebug from 'debug';
6
+ import { NodeFileStore } from '@auto-engineer/file-store';
7
+ const debug = createDebug('auto:narrative:export-schema-runner');
8
+ if ('color' in debug && typeof debug === 'object') {
9
+ debug.color = '4';
10
+ } // blue
11
+ const main = async () => {
12
+ const contextDir = process.argv[2] || './.context';
13
+ const narrativesDir = process.argv[3] || './narratives';
14
+ debug('Starting export-schema-runner');
15
+ debug(' Context dir: %s', contextDir);
16
+ debug(' Flows dir: %s', narrativesDir);
17
+ try {
18
+ // Import from the installed package in the target directory
19
+ // This ensures we use the same module instance as the flow files
20
+ const narrative = await import('@auto-engineer/narrative');
21
+ const { getNarratives } = narrative;
22
+ if (typeof getNarratives !== 'function') {
23
+ throw new Error('getNarratives not found in @auto-engineer/narrative exports');
24
+ }
25
+ const narrativesPath = resolve(process.cwd(), narrativesDir);
26
+ debug('Resolved narratives path: %s', narrativesPath);
27
+ const result = await getNarratives({ vfs: new NodeFileStore(), root: narrativesPath });
28
+ const schema = result.toModel();
29
+ debug('Schema generated with %d narratives, %d messages, %d integrations', schema.narratives.length, schema.messages.length, schema.integrations?.length ?? 0);
30
+ const json = JSON.stringify(schema, null, 2);
31
+ const resolvedContextDir = resolve(process.cwd(), contextDir);
32
+ const outPath = resolve(resolvedContextDir, 'schema.json');
33
+ mkdirSync(resolvedContextDir, { recursive: true });
34
+ writeFileSync(outPath, json);
35
+ debug('Schema written to: %s', outPath);
36
+ // Output success as JSON for parent process
37
+ console.log(JSON.stringify({
38
+ success: true,
39
+ outputPath: outPath,
40
+ }));
41
+ }
42
+ catch (error) {
43
+ debug('Error occurred: %o', error);
44
+ // Output error as JSON for parent process
45
+ console.log(JSON.stringify({
46
+ success: false,
47
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
48
+ }));
49
+ process.exit(1);
50
+ }
51
+ };
52
+ void main();
53
+ //# sourceMappingURL=export-schema-runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-schema-runner.js","sourceRoot":"","sources":["../../../src/commands/export-schema-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fluent-builder.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluent-builder.specs.d.ts","sourceRoot":"","sources":["../../src/fluent-builder.specs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import { command, react } from './fluent-builder.js';
3
+ import { createIntegration } from './types.js';
4
+ import { startNarrative, clearCurrentNarrative } from './narrative-context.js';
5
+ // Test integrations
6
+ const MailChimp = createIntegration('mailchimp', 'MailChimp');
7
+ const Twilio = createIntegration('twilio', 'Twilio');
8
+ describe('via method', () => {
9
+ beforeEach(() => {
10
+ startNarrative('test-flow');
11
+ });
12
+ afterEach(() => {
13
+ clearCurrentNarrative();
14
+ });
15
+ it('should accept a single integration', () => {
16
+ const slice = command('test').via(MailChimp);
17
+ expect(slice).toBeDefined();
18
+ });
19
+ it('should accept multiple integrations as array', () => {
20
+ const slice = command('test').via([MailChimp, Twilio]);
21
+ expect(slice).toBeDefined();
22
+ });
23
+ it('should work with react', () => {
24
+ const slice = react('test').via([MailChimp, Twilio]);
25
+ expect(slice).toBeDefined();
26
+ });
27
+ });
28
+ //# sourceMappingURL=fluent-builder.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fluent-builder.specs.js","sourceRoot":"","sources":["../../src/fluent-builder.specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,oBAAoB;AACpB,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAC9D,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAErD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,CAAC,WAAW,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,qBAAqB,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7C,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAErD,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getNarratives.cache.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNarratives.cache.specs.d.ts","sourceRoot":"","sources":["../../src/getNarratives.cache.specs.ts"],"names":[],"mappings":""}
@@ -0,0 +1,234 @@
1
+ import { describe, expect, it, beforeEach } from 'vitest';
2
+ import { getNarratives, clearGetNarrativesCache } from './getNarratives.js';
3
+ import { InMemoryFileStore } from '@auto-engineer/file-store';
4
+ import * as flowApi from './narrative.js';
5
+ import * as fluent from './fluent-builder.js';
6
+ import * as dataBuilders from './data-narrative-builders.js';
7
+ import * as typesApi from './types.js';
8
+ import gql from 'graphql-tag';
9
+ const importMap = {
10
+ '../flow': flowApi,
11
+ '../fluent-builder': fluent,
12
+ '../data-flow-builders': dataBuilders,
13
+ '../types': typesApi,
14
+ 'graphql-tag': { default: gql, gql },
15
+ };
16
+ const pattern = /\.(narrative)\.(ts)$/;
17
+ describe('getNarratives caching', () => {
18
+ let vfs;
19
+ const root = '/test';
20
+ beforeEach(() => {
21
+ vfs = new InMemoryFileStore();
22
+ clearGetNarrativesCache();
23
+ });
24
+ it('should rebuild cache when a helper file is modified', async () => {
25
+ const helperContent1 = `
26
+ export function formatName(name: string): string {
27
+ return name.toUpperCase();
28
+ }
29
+ `;
30
+ const flowContent = `
31
+ import { narrative } from '../narrative.js';
32
+ import { formatName } from './helper.js';
33
+
34
+ narrative('TestFlow', () => {
35
+ const name = formatName('test');
36
+ });
37
+ `;
38
+ await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent1));
39
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
40
+ const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
41
+ const hash1 = firstCallResult.vfsFiles.sort().join(',');
42
+ const helperContent2 = `
43
+ export function formatName(name: string): string {
44
+ return name.toLowerCase(); // Changed implementation
45
+ }
46
+ `;
47
+ await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent2));
48
+ const secondCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
49
+ const hash2 = secondCallResult.vfsFiles.sort().join(',');
50
+ expect(hash1).toBe(hash2);
51
+ expect(secondCallResult.narratives).toBeDefined();
52
+ });
53
+ it('should rebuild cache when import map changes', async () => {
54
+ const flowContent = `
55
+ import { narrative } from '../narrative.js';
56
+
57
+ narrative('TestFlow', () => {
58
+ const x = 1;
59
+ });
60
+ `;
61
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
62
+ const importMap1 = { 'test-module': { default: 'value1' } };
63
+ const result1 = await getNarratives({ vfs, root, importMap: importMap1, pattern, fastFsScan: true });
64
+ const importMap2 = { 'test-module': { default: 'value2' } };
65
+ const result2 = await getNarratives({ vfs, root, importMap: importMap2, pattern, fastFsScan: true });
66
+ expect(result1.narratives.length).toBe(result2.narratives.length);
67
+ });
68
+ it('should rebuild cache when a new dependency is added', async () => {
69
+ const helperContent1 = `
70
+ export function getValue(): string {
71
+ return 'direct';
72
+ }
73
+ `;
74
+ const flowContent = `
75
+ import { narrative } from '../narrative.js';
76
+ import { getValue } from './helper.js';
77
+
78
+ narrative('TestFlow', () => {
79
+ const val = getValue();
80
+ });
81
+ `;
82
+ await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent1));
83
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
84
+ const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
85
+ const filesCount1 = firstCallResult.vfsFiles.length;
86
+ const transitiveContent = `
87
+ export function transitiveHelper(): string {
88
+ return 'transitive';
89
+ }
90
+ `;
91
+ const helperContent2 = `
92
+ import { transitiveHelper } from './transitive.js';
93
+
94
+ export function getValue(): string {
95
+ return transitiveHelper();
96
+ }
97
+ `;
98
+ await vfs.write('/test/transitive.ts', new TextEncoder().encode(transitiveContent));
99
+ await vfs.write('/test/helper.ts', new TextEncoder().encode(helperContent2));
100
+ const secondCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
101
+ const filesCount2 = secondCallResult.vfsFiles.length;
102
+ expect(filesCount2).toBeGreaterThan(filesCount1);
103
+ expect(secondCallResult.vfsFiles.some((f) => f.includes('transitive'))).toBe(true);
104
+ });
105
+ it('should not rebuild cache when an unrelated file is touched', async () => {
106
+ const flowContent = `
107
+ import { narrative } from '../narrative.js';
108
+
109
+ narrative('TestFlow', () => {
110
+ const x = 1;
111
+ });
112
+ `;
113
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
114
+ await vfs.write('/test/unrelated.txt', new TextEncoder().encode('initial content'));
115
+ const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
116
+ await vfs.write('/test/unrelated.txt', new TextEncoder().encode('modified content'));
117
+ const secondCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
118
+ expect(secondCallResult.vfsFiles.some((f) => f.includes('unrelated.txt'))).toBe(false);
119
+ expect(firstCallResult.vfsFiles).toEqual(secondCallResult.vfsFiles);
120
+ });
121
+ it('should rebuild cache when a file is deleted from the graph', async () => {
122
+ const flowContent1 = `
123
+ import { narrative } from '../narrative.js';
124
+
125
+ narrative('TestFlow1', () => {
126
+ const x = 1;
127
+ });
128
+ `;
129
+ const flowContent2 = `
130
+ import { narrative } from '../narrative.js';
131
+
132
+ narrative('TestFlow2', () => {
133
+ const x = 2;
134
+ });
135
+ `;
136
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent1));
137
+ await vfs.write('/test/test2.narrative.ts', new TextEncoder().encode(flowContent2));
138
+ const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
139
+ expect(firstCallResult.narratives.length).toBeGreaterThanOrEqual(2);
140
+ await vfs.remove('/test/test2.narrative.ts');
141
+ const secondCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
142
+ expect(secondCallResult.narratives.length).toBeLessThan(firstCallResult.narratives.length);
143
+ expect(secondCallResult.vfsFiles.length).toBeLessThan(firstCallResult.vfsFiles.length);
144
+ });
145
+ it('should rebuild cache when a file is renamed', async () => {
146
+ const flowContent = `
147
+ import { narrative } from '../narrative.js';
148
+
149
+ narrative('TestFlow', () => {
150
+ const x = 1;
151
+ });
152
+ `;
153
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
154
+ const firstCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
155
+ expect(firstCallResult.vfsFiles.some((f) => f.includes('test.narrative.ts'))).toBe(true);
156
+ const content = await vfs.read('/test/test.narrative.ts');
157
+ if (content) {
158
+ await vfs.write('/test/renamed.narrative.ts', content);
159
+ await vfs.remove('/test/test.narrative.ts');
160
+ }
161
+ const secondCallResult = await getNarratives({ vfs, root, pattern, fastFsScan: true });
162
+ expect(secondCallResult.vfsFiles.some((f) => f.includes('renamed.narrative.ts'))).toBe(true);
163
+ expect(secondCallResult.vfsFiles.some((f) => f.includes('test.narrative.ts'))).toBe(false);
164
+ });
165
+ it('should handle .d.ts files if they affect the graph', async () => {
166
+ const dtsContent = `
167
+ declare module 'custom-module' {
168
+ export function customFunc(): string;
169
+ }
170
+ `;
171
+ const flowContent = `
172
+ import { narrative } from '../narrative.js';
173
+
174
+ narrative('TestFlow', () => {
175
+ const x: string = 'test';
176
+ });
177
+ `;
178
+ await vfs.write('/test/types.d.ts', new TextEncoder().encode(dtsContent));
179
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
180
+ const result = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
181
+ expect(result.vfsFiles.some((f) => f.endsWith('.d.ts'))).toBe(false);
182
+ });
183
+ it('should rebuild when import map keys change even with same values', async () => {
184
+ const flowContent = `
185
+ import { narrative } from '../narrative.js';
186
+
187
+ narrative('TestFlow', () => {
188
+ const x = 1;
189
+ });
190
+ `;
191
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
192
+ const importMap1 = { 'module-a': 'value', 'module-b': 'value' };
193
+ const result1 = await getNarratives({ vfs, root, importMap: importMap1, pattern, fastFsScan: true });
194
+ const importMap2 = { 'module-c': 'value', 'module-d': 'value' };
195
+ const result2 = await getNarratives({ vfs, root, importMap: importMap2, pattern, fastFsScan: true });
196
+ expect(result1.narratives).toEqual(result2.narratives); // Same flows
197
+ });
198
+ it('should handle complex transitive dependency chains', async () => {
199
+ const chain3Content = `
200
+ export const DEEP_VALUE = 'deep';
201
+ `;
202
+ const chain2Content = `
203
+ import { DEEP_VALUE } from './chain3.js';
204
+ export const MID_VALUE = DEEP_VALUE + '-mid';
205
+ `;
206
+ const chain1Content = `
207
+ import { MID_VALUE } from './chain2.js';
208
+ export const TOP_VALUE = MID_VALUE + '-top';
209
+ `;
210
+ const flowContent = `
211
+ import { narrative } from '../narrative.js';
212
+ import { TOP_VALUE } from './chain1.js';
213
+
214
+ narrative('TestFlow', () => {
215
+ const val = TOP_VALUE;
216
+ });
217
+ `;
218
+ await vfs.write('/test/chain3.ts', new TextEncoder().encode(chain3Content));
219
+ await vfs.write('/test/chain2.ts', new TextEncoder().encode(chain2Content));
220
+ await vfs.write('/test/chain1.ts', new TextEncoder().encode(chain1Content));
221
+ await vfs.write('/test/test.narrative.ts', new TextEncoder().encode(flowContent));
222
+ const result1 = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
223
+ expect(result1.vfsFiles.some((f) => f.includes('chain1'))).toBe(true);
224
+ expect(result1.vfsFiles.some((f) => f.includes('chain2'))).toBe(true);
225
+ expect(result1.vfsFiles.some((f) => f.includes('chain3'))).toBe(true);
226
+ const modifiedChain3Content = `
227
+ export const DEEP_VALUE = 'modified-deep';
228
+ `;
229
+ await vfs.write('/test/chain3.ts', new TextEncoder().encode(modifiedChain3Content));
230
+ const result2 = await getNarratives({ vfs, root, pattern, fastFsScan: true, importMap });
231
+ expect(result2.vfsFiles.length).toBe(result1.vfsFiles.length);
232
+ });
233
+ });
234
+ //# sourceMappingURL=getNarratives.cache.specs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNarratives.cache.specs.js","sourceRoot":"","sources":["../../src/getNarratives.cache.specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getNarratives.specs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNarratives.specs.d.ts","sourceRoot":"","sources":["../../src/getNarratives.specs.ts"],"names":[],"mappings":""}