@auto-engineer/narrative 1.5.0 → 1.5.2

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 (31) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +5 -5
  3. package/.turbo/turbo-type-check.log +1 -1
  4. package/CHANGELOG.md +30 -0
  5. package/dist/src/loader/fs-path.d.ts +3 -0
  6. package/dist/src/loader/fs-path.d.ts.map +1 -1
  7. package/dist/src/loader/fs-path.js +27 -1
  8. package/dist/src/loader/fs-path.js.map +1 -1
  9. package/dist/src/transformers/model-to-narrative/ast/emit-helpers.d.ts.map +1 -1
  10. package/dist/src/transformers/model-to-narrative/ast/emit-helpers.js +1 -8
  11. package/dist/src/transformers/model-to-narrative/ast/emit-helpers.js.map +1 -1
  12. package/dist/src/transformers/model-to-narrative/cross-module-imports.d.ts +12 -0
  13. package/dist/src/transformers/model-to-narrative/cross-module-imports.d.ts.map +1 -1
  14. package/dist/src/transformers/model-to-narrative/cross-module-imports.js +70 -22
  15. package/dist/src/transformers/model-to-narrative/cross-module-imports.js.map +1 -1
  16. package/dist/src/transformers/model-to-narrative/generators/module-code.d.ts.map +1 -1
  17. package/dist/src/transformers/model-to-narrative/generators/module-code.js +10 -7
  18. package/dist/src/transformers/model-to-narrative/generators/module-code.js.map +1 -1
  19. package/dist/src/transformers/model-to-narrative/generators/types.d.ts +1 -1
  20. package/dist/src/transformers/model-to-narrative/generators/types.d.ts.map +1 -1
  21. package/dist/src/transformers/model-to-narrative/generators/types.js +4 -3
  22. package/dist/src/transformers/model-to-narrative/generators/types.js.map +1 -1
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/package.json +4 -4
  25. package/src/loader/fs-path.ts +28 -1
  26. package/src/transformers/model-to-narrative/ast/emit-helpers.ts +1 -9
  27. package/src/transformers/model-to-narrative/cross-module-imports.specs.ts +191 -13
  28. package/src/transformers/model-to-narrative/cross-module-imports.ts +88 -25
  29. package/src/transformers/model-to-narrative/generators/module-code.ts +11 -4
  30. package/src/transformers/model-to-narrative/generators/types.ts +5 -7
  31. package/src/transformers/model-to-narrative/modules.specs.ts +3 -2
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/narrative@1.5.0 build /home/runner/work/auto-engineer/auto-engineer/packages/narrative
2
+ > @auto-engineer/narrative@1.5.2 build /home/runner/work/auto-engineer/auto-engineer/packages/narrative
3
3
  > tsx scripts/build.ts
4
4
 
5
5
  Running: tsc
@@ -1,14 +1,14 @@
1
1
 
2
- > @auto-engineer/narrative@1.5.0 test /home/runner/work/auto-engineer/auto-engineer/packages/narrative
2
+ > @auto-engineer/narrative@1.5.2 test /home/runner/work/auto-engineer/auto-engineer/packages/narrative
3
3
  > vitest run --reporter=dot
4
4
 
5
5
 
6
6
   RUN  v3.2.4 /home/runner/work/auto-engineer/auto-engineer/packages/narrative
7
7
 
8
- ·····························································································································································································································
8
+ ································································································································································································································
9
9
 
10
10
   Test Files  15 passed (15)
11
-  Tests  221 passed (221)
12
-  Start at  11:28:56
13
-  Duration  14.63s (transform 3.02s, setup 0ms, collect 18.60s, tests 11.21s, environment 4ms, prepare 5.27s)
11
+  Tests  224 passed (224)
12
+  Start at  19:50:29
13
+  Duration  13.76s (transform 3.96s, setup 0ms, collect 17.34s, tests 11.62s, environment 4ms, prepare 4.30s)
14
14
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @auto-engineer/narrative@1.5.0 type-check /home/runner/work/auto-engineer/auto-engineer/packages/narrative
2
+ > @auto-engineer/narrative@1.5.2 type-check /home/runner/work/auto-engineer/auto-engineer/packages/narrative
3
3
  > tsc --noEmit
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @auto-engineer/flow
2
2
 
3
+ ## 1.5.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`02f70b8`](https://github.com/BeOnAuto/auto-engineer/commit/02f70b8e3be0655ab340c53e2ac2082a3ddc10ef) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **narrative**: use browser-compatible path utilities in cross-module-imports
8
+ - **global**: version packages
9
+ - **global**: add changeset
10
+
11
+ - [`e5883d0`](https://github.com/BeOnAuto/auto-engineer/commit/e5883d0db038d1f95645a46ce528cbd153bde277) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - Exported cross-module types for better integration between modules
12
+ - Improved Date field handling in the narrative package
13
+ - Updated dependencies [[`02f70b8`](https://github.com/BeOnAuto/auto-engineer/commit/02f70b8e3be0655ab340c53e2ac2082a3ddc10ef), [`e5883d0`](https://github.com/BeOnAuto/auto-engineer/commit/e5883d0db038d1f95645a46ce528cbd153bde277)]:
14
+ - @auto-engineer/file-store@1.5.2
15
+ - @auto-engineer/id@1.5.2
16
+ - @auto-engineer/message-bus@1.5.2
17
+
18
+ ## 1.5.1
19
+
20
+ ### Patch Changes
21
+
22
+ - [`6afefa3`](https://github.com/BeOnAuto/auto-engineer/commit/6afefa3cd483930b2cea1933f6b0d3e84a546a9b) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - - **narrative**: add query support to isMessageKind type guard
23
+ - **global**: version packages
24
+ - **global**: add changeset
25
+
26
+ - [`6edb039`](https://github.com/BeOnAuto/auto-engineer/commit/6edb0394444edcab597b6d149b3928debe9824c8) Thanks [@rami-hatoum](https://github.com/rami-hatoum)! - - Fixed browser compatibility issues with path utilities in cross-module imports
27
+
28
+ - Updated dependencies [[`6afefa3`](https://github.com/BeOnAuto/auto-engineer/commit/6afefa3cd483930b2cea1933f6b0d3e84a546a9b), [`6edb039`](https://github.com/BeOnAuto/auto-engineer/commit/6edb0394444edcab597b6d149b3928debe9824c8)]:
29
+ - @auto-engineer/file-store@1.5.1
30
+ - @auto-engineer/id@1.5.1
31
+ - @auto-engineer/message-bus@1.5.1
32
+
3
33
  ## 1.5.0
4
34
 
5
35
  ### Minor Changes
@@ -1,5 +1,8 @@
1
1
  export declare const toPosix: (p: string) => string;
2
2
  export declare function dirname(p: string): string;
3
+ export declare function basename(p: string, ext?: string): string;
4
+ export declare function extname(p: string): string;
5
+ export declare function relative(from: string, to: string): string;
3
6
  export declare function join(a: string, b: string): string;
4
7
  export declare function normalize(path: string): string;
5
8
  export declare const CANDIDATE_EXTS: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"fs-path.d.ts","sourceRoot":"","sources":["../../../src/loader/fs-path.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,WAA0B,CAAC;AAE5D,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,UAIhC;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAIxC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY9C;AAED,eAAO,MAAM,cAAc,UAAiD,CAAC"}
1
+ {"version":3,"file":"fs-path.d.ts","sourceRoot":"","sources":["../../../src/loader/fs-path.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,WAA0B,CAAC;AAE5D,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,UAMhC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAIzC;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAIxC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY9C;AAED,eAAO,MAAM,cAAc,UAAiD,CAAC"}
@@ -2,7 +2,33 @@ export const toPosix = (p) => p.replace(/\\/g, '/');
2
2
  export function dirname(p) {
3
3
  const posix = toPosix(p);
4
4
  const idx = posix.lastIndexOf('/');
5
- return idx > 0 ? posix.slice(0, idx) : '/';
5
+ if (idx === -1)
6
+ return '';
7
+ if (idx === 0)
8
+ return '/';
9
+ return posix.slice(0, idx);
10
+ }
11
+ export function basename(p, ext) {
12
+ const posix = toPosix(p);
13
+ const name = posix.split('/').pop() || '';
14
+ return ext && name.endsWith(ext) ? name.slice(0, -ext.length) : name;
15
+ }
16
+ export function extname(p) {
17
+ const name = toPosix(p).split('/').pop() || '';
18
+ const lastDot = name.lastIndexOf('.');
19
+ return lastDot > 0 ? name.slice(lastDot) : '';
20
+ }
21
+ export function relative(from, to) {
22
+ const fromParts = toPosix(from).split('/').filter(Boolean);
23
+ const toParts = toPosix(to).split('/').filter(Boolean);
24
+ let i = 0;
25
+ while (i < fromParts.length && i < toParts.length && fromParts[i] === toParts[i]) {
26
+ i++;
27
+ }
28
+ const ups = fromParts.length - i;
29
+ const downs = toParts.slice(i);
30
+ const parts = Array(ups).fill('..').concat(downs);
31
+ return parts.join('/') || '';
6
32
  }
7
33
  export function join(a, b) {
8
34
  const aa = toPosix(a).replace(/\/+$/, '');
@@ -1 +1 @@
1
- {"version":3,"file":"fs-path.js","sourceRoot":"","sources":["../../../src/loader/fs-path.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAE5D,MAAM,UAAU,OAAO,CAAC,CAAS;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG;YAAE,SAAS;QACpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,GAAG,CAAC,MAAM;gBAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"fs-path.js","sourceRoot":"","sources":["../../../src/loader/fs-path.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"emit-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/ast/emit-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAUD;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,cAAc,YAAY,CAAC,EAC/B,CAAC,EAAE,IAAI,CAAC,WAAW,EACnB,CAAC,EAAE,OAAO,EACV,QAAQ,CAAC,EAAE,aAAa,GACvB,IAAI,CAAC,UAAU,CAmDjB;AAgFD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,YAAY,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAiB7G"}
1
+ {"version":3,"file":"emit-helpers.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/ast/emit-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,cAAc,YAAY,CAAC,EAC/B,CAAC,EAAE,IAAI,CAAC,WAAW,EACnB,CAAC,EAAE,OAAO,EACV,QAAQ,CAAC,EAAE,aAAa,GACvB,IAAI,CAAC,UAAU,CAmDjB;AAgFD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,cAAc,YAAY,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAiB7G"}
@@ -1,10 +1,3 @@
1
- /**
2
- * Check if a string is a valid ISO date string
3
- */
4
- function isISODateString(str) {
5
- const isoDateRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3})?(?:Z|[+-]\d{2}:\d{2})?$/;
6
- return isoDateRegex.test(str);
7
- }
8
1
  /**
9
2
  * Emit a TS expression from a plain JSON-like value with optional type information for Date handling.
10
3
  */
@@ -34,7 +27,7 @@ export function jsonToExpr(ts, f, v, typeInfo) {
34
27
  // Check if this field should be a Date
35
28
  const fieldType = typeInfo?.[k];
36
29
  let valueExpr;
37
- if (fieldType === 'Date' && typeof x === 'string' && isISODateString(x)) {
30
+ if (fieldType === 'Date' && typeof x === 'string') {
38
31
  // Generate new Date('...') for Date fields
39
32
  valueExpr = f.createNewExpression(f.createIdentifier('Date'), undefined, [f.createStringLiteral(x)]);
40
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emit-helpers.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/ast/emit-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-helpers.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/ast/emit-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,18 @@
1
1
  import type { Model, Module } from '../../index';
2
2
  import type { CrossModuleImport } from './types';
3
3
  export type { CrossModuleImport };
4
+ /**
5
+ * Computes cross-module imports for a single module.
6
+ * Returns the list of imports needed (with relative paths).
7
+ */
4
8
  export declare function computeCrossModuleImports(module: Module, allModules: Module[], model: Model): CrossModuleImport[];
9
+ /**
10
+ * Computes cross-module imports for all modules and derives which types need to be exported.
11
+ * Returns both the imports per module and the exports per module in a single pass.
12
+ */
13
+ export declare function computeAllCrossModuleDependencies(modules: Module[], model: Model): {
14
+ importsPerModule: Map<string, CrossModuleImport[]>;
15
+ exportsPerModule: Map<string, Set<string>>;
16
+ };
5
17
  export declare function resolveRelativeImport(fromPath: string, toPath: string): string;
6
18
  //# sourceMappingURL=cross-module-imports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cross-module-imports.d.ts","sourceRoot":"","sources":["../../../../src/transformers/model-to-narrative/cross-module-imports.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,iBAAiB,EAAE,CAmCjH;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAc9E"}
1
+ {"version":3,"file":"cross-module-imports.d.ts","sourceRoot":"","sources":["../../../../src/transformers/model-to-narrative/cross-module-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,iBAAiB,EAAE,CAMjH;AAED;;;GAGG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,KAAK,GACX;IACD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACnD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAC5C,CA2BA;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAc9E"}
@@ -1,48 +1,96 @@
1
- import path from 'node:path';
1
+ import { basename, dirname, extname, join, relative } from '../../loader/fs-path.js';
2
2
  import { parseMessageKey, sortImportsBySource, toMessageKey } from './ordering.js';
3
3
  import { collectMessageKeysFromNarratives } from './spec-traversal.js';
4
+ /**
5
+ * Computes cross-module imports for a single module.
6
+ * Returns the list of imports needed (with relative paths).
7
+ */
4
8
  export function computeCrossModuleImports(module, allModules, model) {
5
- if (module.isDerived) {
9
+ const dependencyMap = computeModuleDependencies(module, allModules, model);
10
+ if (!dependencyMap) {
6
11
  return [];
7
12
  }
13
+ return convertToImports(module.sourceFile, dependencyMap);
14
+ }
15
+ /**
16
+ * Computes cross-module imports for all modules and derives which types need to be exported.
17
+ * Returns both the imports per module and the exports per module in a single pass.
18
+ */
19
+ export function computeAllCrossModuleDependencies(modules, model) {
20
+ const importsPerModule = new Map();
21
+ const exportsPerModule = new Map();
22
+ for (const module of modules) {
23
+ const dependencyMap = computeModuleDependencies(module, modules, model);
24
+ if (!dependencyMap) {
25
+ importsPerModule.set(module.sourceFile, []);
26
+ continue;
27
+ }
28
+ // Convert to imports with relative paths
29
+ importsPerModule.set(module.sourceFile, convertToImports(module.sourceFile, dependencyMap));
30
+ // Track which types need to be exported from each declaring module
31
+ for (const [declaringSourceFile, typeNames] of dependencyMap) {
32
+ if (!exportsPerModule.has(declaringSourceFile)) {
33
+ exportsPerModule.set(declaringSourceFile, new Set());
34
+ }
35
+ for (const typeName of typeNames) {
36
+ exportsPerModule.get(declaringSourceFile).add(typeName);
37
+ }
38
+ }
39
+ }
40
+ return { importsPerModule, exportsPerModule };
41
+ }
42
+ export function resolveRelativeImport(fromPath, toPath) {
43
+ const fromDir = dirname(fromPath);
44
+ const toDir = dirname(toPath);
45
+ const toFile = basename(toPath, extname(toPath));
46
+ const relativePath = relative(fromDir, toDir);
47
+ if (relativePath === '') {
48
+ return `./${toFile}`;
49
+ }
50
+ if (!relativePath.startsWith('.')) {
51
+ return `./${relativePath}/${toFile}`;
52
+ }
53
+ return join(relativePath, toFile);
54
+ }
55
+ /**
56
+ * Core logic: computes which types a module needs from other modules.
57
+ * Returns a map of declaringModuleSourceFile -> typeNames[], or null if no dependencies.
58
+ */
59
+ function computeModuleDependencies(module, allModules, model) {
60
+ if (module.isDerived) {
61
+ return null;
62
+ }
8
63
  const declaredKeys = new Set(module.declares.messages.map((m) => toMessageKey(m.kind, m.name)));
9
64
  const usedKeys = collectUsedMessageKeysForModule(module, model);
10
65
  const neededKeys = new Set([...usedKeys].filter((k) => !declaredKeys.has(k)));
11
66
  if (neededKeys.size === 0) {
12
- return [];
67
+ return null;
13
68
  }
14
- const importsByModule = new Map();
69
+ const dependencyMap = new Map();
15
70
  for (const msgKey of neededKeys) {
16
71
  const { name } = parseMessageKey(msgKey);
17
72
  const declaringModule = findDeclaringModule(msgKey, allModules, module);
18
73
  if (declaringModule) {
19
74
  const modulePath = declaringModule.sourceFile;
20
- if (!importsByModule.has(modulePath)) {
21
- importsByModule.set(modulePath, []);
75
+ if (!dependencyMap.has(modulePath)) {
76
+ dependencyMap.set(modulePath, []);
22
77
  }
23
- importsByModule.get(modulePath).push(name);
78
+ dependencyMap.get(modulePath).push(name);
24
79
  }
25
80
  }
81
+ return dependencyMap.size > 0 ? dependencyMap : null;
82
+ }
83
+ /**
84
+ * Converts a dependency map (absolute paths) to CrossModuleImport[] (relative paths).
85
+ */
86
+ function convertToImports(fromSourceFile, dependencyMap) {
26
87
  const imports = [];
27
- for (const [modulePath, typeNames] of importsByModule) {
28
- const relativePath = resolveRelativeImport(module.sourceFile, modulePath);
88
+ for (const [modulePath, typeNames] of dependencyMap) {
89
+ const relativePath = resolveRelativeImport(fromSourceFile, modulePath);
29
90
  imports.push({ fromPath: relativePath, typeNames });
30
91
  }
31
92
  return sortImportsBySource(imports);
32
93
  }
33
- export function resolveRelativeImport(fromPath, toPath) {
34
- const fromDir = path.dirname(fromPath);
35
- const toDir = path.dirname(toPath);
36
- const toFile = path.basename(toPath, path.extname(toPath));
37
- const relativePath = path.relative(fromDir, toDir);
38
- if (relativePath === '') {
39
- return `./${toFile}`;
40
- }
41
- if (!relativePath.startsWith('.')) {
42
- return `./${relativePath}/${toFile}`.replace(/\\/g, '/');
43
- }
44
- return path.join(relativePath, toFile).replace(/\\/g, '/');
45
- }
46
94
  function collectUsedMessageKeysForModule(module, model) {
47
95
  const narrativeIds = new Set(module.contains.narrativeIds);
48
96
  const narratives = model.narratives.filter((n) => n.id && narrativeIds.has(n.id));
@@ -1 +1 @@
1
- {"version":3,"file":"cross-module-imports.js","sourceRoot":"","sources":["../../../../src/transformers/model-to-narrative/cross-module-imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cross-module-imports.js","sourceRoot":"","sources":["../../../../src/transformers/model-to-narrative/cross-module-imports.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module-code.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/module-code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAU,MAAM,gBAAgB,CAAC;AAKpD,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,UAAU,CAAC;AAOjE,UAAU,yBAAyB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,GAAG,aAAa,EAAE,CAgBrG"}
1
+ {"version":3,"file":"module-code.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/module-code.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAU,MAAM,gBAAgB,CAAC;AAKpD,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,UAAU,CAAC;AAOjE,UAAU,yBAAyB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,GAAG,aAAa,EAAE,CAoBrG"}
@@ -1,7 +1,7 @@
1
1
  import ts from 'typescript';
2
2
  import { deriveModules } from '../../narrative-to-model/derive-modules.js';
3
3
  import { analyzeCodeUsage } from '../analysis/usage.js';
4
- import { computeCrossModuleImports } from '../cross-module-imports.js';
4
+ import { computeAllCrossModuleDependencies } from '../cross-module-imports.js';
5
5
  import { sortFilesByPath } from '../ordering.js';
6
6
  import { extractTypeIntegrationNames } from '../utils/integration-extractor.js';
7
7
  import { integrationNameToPascalCase } from '../utils/strings.js';
@@ -10,10 +10,13 @@ import { ALL_FLOW_FUNCTION_NAMES, buildImports } from './imports.js';
10
10
  import { buildTypeAliases } from './types.js';
11
11
  export function generateAllModulesCode(model, opts) {
12
12
  const modules = model.modules && model.modules.length > 0 ? model.modules : deriveModules(model.narratives, model.messages);
13
+ // Compute all cross-module dependencies in a single pass
14
+ const { importsPerModule, exportsPerModule } = computeAllCrossModuleDependencies(modules, model);
13
15
  const files = [];
14
16
  for (const module of modules) {
15
- const crossModuleImports = computeCrossModuleImports(module, modules, model);
16
- const code = generateModuleCode(module, model, opts, crossModuleImports);
17
+ const crossModuleImports = importsPerModule.get(module.sourceFile) ?? [];
18
+ const exportedTypes = exportsPerModule.get(module.sourceFile);
19
+ const code = generateModuleCode(module, model, opts, crossModuleImports, exportedTypes);
17
20
  files.push({
18
21
  path: module.sourceFile,
19
22
  code,
@@ -31,7 +34,7 @@ function getNarrativesForModule(module, model) {
31
34
  const narrativeIds = new Set(module.contains.narrativeIds);
32
35
  return model.narratives.filter((n) => n.id && narrativeIds.has(n.id));
33
36
  }
34
- function generateModuleCode(module, model, opts, crossModuleImports) {
37
+ function generateModuleCode(module, model, opts, crossModuleImports, exportedTypes) {
35
38
  const f = ts.factory;
36
39
  const narratives = getNarrativesForModule(module, model);
37
40
  const declaredMessageKeys = new Set(module.declares.messages.map((m) => `${m.kind}:${m.name}`));
@@ -70,11 +73,11 @@ function generateModuleCode(module, model, opts, crossModuleImports) {
70
73
  const hasEmptyFlowSlices = narratives.length === 0 || narratives.every((flow) => flow.slices.length === 0);
71
74
  return isUsedInFlow || hasEmptyFlowSlices;
72
75
  });
73
- const statements = buildStatements(ts, opts, usedMessages, usedTypeIntegrationNames, usedValueIntegrationNames, usedFlowFunctionNames, narratives, crossModuleImports);
76
+ const statements = buildStatements(ts, opts, usedMessages, usedTypeIntegrationNames, usedValueIntegrationNames, usedFlowFunctionNames, narratives, crossModuleImports, exportedTypes);
74
77
  const file = f.createSourceFile(statements, f.createToken(ts.SyntaxKind.EndOfFileToken), ts.NodeFlags.None);
75
78
  return printer.printFile(file);
76
79
  }
77
- function buildStatements(tsModule, opts, messages, typeIntegrationNames, valueIntegrationNames, usedFlowFunctionNames, flows, crossModuleImports) {
80
+ function buildStatements(tsModule, opts, messages, typeIntegrationNames, valueIntegrationNames, usedFlowFunctionNames, flows, crossModuleImports, exportedTypes) {
78
81
  const f = tsModule.factory;
79
82
  const statements = [];
80
83
  const imports = buildImports(tsModule, opts, messages, typeIntegrationNames, valueIntegrationNames, usedFlowFunctionNames);
@@ -101,7 +104,7 @@ function buildStatements(tsModule, opts, messages, typeIntegrationNames, valueIn
101
104
  required: field.required,
102
105
  })),
103
106
  }));
104
- statements.push(...buildTypeAliases(tsModule, adaptedMessages));
107
+ statements.push(...buildTypeAliases(tsModule, adaptedMessages, exportedTypes));
105
108
  for (const flow of flows) {
106
109
  statements.push(...buildFlowStatements(tsModule, flow, messages));
107
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"module-code.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/module-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-code.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/module-code.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,6 @@ type Message = {
8
8
  required: boolean;
9
9
  }[];
10
10
  };
11
- export declare function buildTypeAliases(ts: typeof tsNS, messages: Message[]): tsNS.Statement[];
11
+ export declare function buildTypeAliases(ts: typeof tsNS, messages: Message[], exportedTypes?: Set<string>): tsNS.Statement[];
12
12
  export {};
13
13
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAGnC,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAqCvF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AAGnC,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAmCpH"}
@@ -1,5 +1,5 @@
1
1
  import { typeFromString } from '../ast/emit-helpers.js';
2
- export function buildTypeAliases(ts, messages) {
2
+ export function buildTypeAliases(ts, messages, exportedTypes) {
3
3
  const f = ts.factory;
4
4
  const mkK = (s) => f.createLiteralTypeNode(f.createStringLiteral(s, true));
5
5
  return messages.map((m) => {
@@ -16,8 +16,9 @@ export function buildTypeAliases(ts, messages) {
16
16
  const name = f.createIdentifier(m.name);
17
17
  const baseTypeName = m.type === 'event' ? 'Event' : m.type === 'command' ? 'Command' : m.type === 'query' ? 'Query' : 'State';
18
18
  const rhs = f.createTypeReferenceNode(baseTypeName, typeArgs);
19
- return f.createTypeAliasDeclaration(undefined, // No export keyword
20
- name, [], rhs);
19
+ // Add export modifier if this type is imported by other modules
20
+ const modifiers = exportedTypes?.has(m.name) ? [f.createModifier(ts.SyntaxKind.ExportKeyword)] : undefined;
21
+ return f.createTypeAliasDeclaration(modifiers, name, [], rhs);
21
22
  });
22
23
  }
23
24
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,gBAAgB,CAAC,EAAe,EAAE,QAAmB;IACnE,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAErB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAoB;YAChC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACX,sBAAsB;YACtB,CAAC,GAAG,EAAE;gBACJ,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACnC,CAAC,CAAC,uBAAuB,CACvB,SAAS,EACT,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EACtG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EACrE,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAChC,CACF,CAAC;gBACF,MAAM,GAAG,GAAG,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAC7C,6BAA6B;gBAC7B,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,EAAE;SACL,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,YAAY,GAChB,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3G,MAAM,GAAG,GAAG,CAAC,CAAC,uBAAuB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE9D,OAAO,CAAC,CAAC,0BAA0B,CACjC,SAAS,EAAE,oBAAoB;QAC/B,IAAI,EACJ,EAAE,EACF,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/transformers/model-to-narrative/generators/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,MAAM,UAAU,gBAAgB,CAAC,EAAe,EAAE,QAAmB,EAAE,aAA2B;IAChG,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IAErB,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAoB;YAChC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YACX,sBAAsB;YACtB,CAAC,GAAG,EAAE;gBACJ,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACnC,CAAC,CAAC,uBAAuB,CACvB,SAAS,EACT,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EACtG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EACrE,cAAc,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAChC,CACF,CAAC;gBACF,MAAM,GAAG,GAAG,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;gBAC7C,6BAA6B;gBAC7B,OAAO,GAAG,CAAC;YACb,CAAC,CAAC,EAAE;SACL,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,YAAY,GAChB,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3G,MAAM,GAAG,GAAG,CAAC,CAAC,uBAAuB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAE9D,gEAAgE;QAChE,MAAM,SAAS,GAAG,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE3G,OAAO,CAAC,CAAC,0BAA0B,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC"}