@opensip-cli/graph 0.1.8 → 0.1.9

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 (30) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/cli/symbol-index.test.js +29 -8
  3. package/dist/__tests__/cli/symbol-index.test.js.map +1 -1
  4. package/dist/cli/graph/graph-aux-command-specs.d.ts +2 -6
  5. package/dist/cli/graph/graph-aux-command-specs.d.ts.map +1 -1
  6. package/dist/cli/graph/graph-aux-command-specs.js +10 -9
  7. package/dist/cli/graph/graph-aux-command-specs.js.map +1 -1
  8. package/dist/cli/orchestrate/__tests__/_equivalence-harness.js +4 -1
  9. package/dist/cli/orchestrate/__tests__/_equivalence-harness.js.map +1 -1
  10. package/dist/cli/orchestrate/__tests__/export-index.test.d.ts +6 -4
  11. package/dist/cli/orchestrate/__tests__/export-index.test.d.ts.map +1 -1
  12. package/dist/cli/orchestrate/__tests__/export-index.test.js +66 -38
  13. package/dist/cli/orchestrate/__tests__/export-index.test.js.map +1 -1
  14. package/dist/cli/orchestrate/__tests__/layout-equivalence.test.d.ts +43 -0
  15. package/dist/cli/orchestrate/__tests__/layout-equivalence.test.d.ts.map +1 -0
  16. package/dist/cli/orchestrate/__tests__/layout-equivalence.test.js +329 -0
  17. package/dist/cli/orchestrate/__tests__/layout-equivalence.test.js.map +1 -0
  18. package/dist/cli/symbol-index.d.ts +6 -1
  19. package/dist/cli/symbol-index.d.ts.map +1 -1
  20. package/dist/cli/symbol-index.js +22 -4
  21. package/dist/cli/symbol-index.js.map +1 -1
  22. package/dist/cross-package/export-index.d.ts +30 -31
  23. package/dist/cross-package/export-index.d.ts.map +1 -1
  24. package/dist/cross-package/export-index.js +40 -17
  25. package/dist/cross-package/export-index.js.map +1 -1
  26. package/dist/cross-package/package-group.d.ts +52 -0
  27. package/dist/cross-package/package-group.d.ts.map +1 -0
  28. package/dist/cross-package/package-group.js +64 -0
  29. package/dist/cross-package/package-group.js.map +1 -0
  30. package/package.json +286 -20
@@ -20,23 +20,34 @@
20
20
  * wires them into `resolveCrossBoundaryCalls`.
21
21
  *
22
22
  * Package-key alignment (the linchpin Phase 2 depends on): the boundary
23
- * resolver buckets occurrences by `packageOf(occ.filePath)` the path segment
24
- * under `packages/` (e.g. `core`, `graph`, `languages`), NOT the package.json
25
- * `name`. So {@link buildExportIndex} keys by exactly that, and
26
- * {@link resolveSpecifierToPackage} returns a `packageGroup` derived by running
27
- * `packageOf` over the manifest's project-relative dir so a specifier's
28
- * resolved group matches the `ExportIndex` keys verbatim.
23
+ * resolver buckets occurrences, and {@link resolveSpecifierToPackage} returns a
24
+ * `packageGroup`, by ONE shared key function {@link packageGroupOf}. With a
25
+ * {@link PackageManifestIndex} (the production path every real caller passes
26
+ * one) the key is the OWNING package's `name`, found by the longest manifest-dir
27
+ * prefix of the file path. That is layout-AGNOSTIC: it works for `apps/`, `libs/`,
28
+ * `crates/`, nested `packages/<ns>/<pkg>/`, or a single-package repo — anywhere a
29
+ * `package.json` lives — not just a flat `packages/<seg>/` tree. Without a
30
+ * manifest (legacy / unit-test callers only) it falls back to the historical
31
+ * `packages/<segment>` path heuristic. Both {@link buildExportIndex} and
32
+ * {@link resolveSpecifierToPackage} use the SAME function with the SAME manifest,
33
+ * so a specifier's resolved group matches the `ExportIndex` keys verbatim — the
34
+ * linchpin holds on any layout.
29
35
  */
36
+ import type { PackageManifestIndex } from './package-group.js';
30
37
  import type { Shard } from '../cli/orchestrate/shard-model.js';
31
38
  import type { Catalog, FunctionOccurrence } from '../types.js';
39
+ export { packageGroupOf } from './package-group.js';
40
+ export type { PackageManifest, PackageManifestIndex } from './package-group.js';
32
41
  /**
33
42
  * Per-package export symbol table: `package` → (`name` → exported occurrences).
34
43
  *
35
- * The outer key is `packageOf(filePath)` (the `packages/<segment>` group),
36
- * matching the bucketing the boundary resolver uses; the inner key is a
37
- * function's `simpleName`. Only `visibility === 'exported'` occurrences are
38
- * present module-local and private occurrences are excluded, since an import
39
- * specifier can only reach a package's exports.
44
+ * The outer key is {@link packageGroupOf}`(filePath, manifestIndex)` the
45
+ * owning package's `name` when a manifest is supplied (layout-agnostic), else
46
+ * the `packages/<segment>` heuristic matching the bucketing the boundary
47
+ * resolver uses; the inner key is a function's `simpleName`. Only
48
+ * `visibility === 'exported'` occurrences are present — module-local and private
49
+ * occurrences are excluded, since an import specifier can only reach a package's
50
+ * exports.
40
51
  *
41
52
  * Insertion order follows catalog iteration. Consumers MUST match by name, not
42
53
  * order; the inner arrays are the deterministic candidate set for a name.
@@ -47,27 +58,14 @@ export type ExportIndex = ReadonlyMap<string, ReadonlyMap<string, readonly Funct
47
58
  * its simple name. Deterministic and allocation-lean: one pass over
48
59
  * `catalog.functions`, no sorting (matching is by name, not order).
49
60
  *
50
- * The package key is `packageOf(occ.filePath)` — identical to what the
51
- * cross-shard resolver buckets by — so Phase 2 can look up
61
+ * The package key is `packageGroupOf(occ.filePath, manifestIndex)` — identical
62
+ * to what the cross-shard resolver buckets by — so Phase 2 can look up
52
63
  * `exportIndex.get(packageGroup)` where `packageGroup` comes from
53
- * {@link resolveSpecifierToPackage}.
64
+ * {@link resolveSpecifierToPackage} (with the SAME manifest). Passing the
65
+ * manifest is what makes the index layout-agnostic (keyed by package `name`);
66
+ * omitting it falls back to the `packages/<segment>` heuristic.
54
67
  */
55
68
  export declare function buildExportIndex(catalog: Catalog, manifestIndex?: PackageManifestIndex): ExportIndex;
56
- /**
57
- * One workspace package's manifest facts the specifier resolver needs.
58
- *
59
- * `dir` is the package's PROJECT-RELATIVE root (e.g. `packages/core`) — the
60
- * form `packageOf` expects — derived from the shard's absolute `rootDir`
61
- * against the common project root. `exportsMap` is the raw `exports` field
62
- * (when an object), used to gate subpath resolution.
63
- */
64
- export interface PackageManifest {
65
- readonly name: string;
66
- readonly dir: string;
67
- readonly exportsMap?: Record<string, unknown>;
68
- }
69
- /** Package `name` → its {@link PackageManifest}. */
70
- export type PackageManifestIndex = ReadonlyMap<string, PackageManifest>;
71
69
  /**
72
70
  * Read each shard's `package.json` (`name`, `exports`) and index it by package
73
71
  * name. Reuses the already-resolved `Shard[]` (no re-discovery); a shard whose
@@ -76,7 +74,7 @@ export type PackageManifestIndex = ReadonlyMap<string, PackageManifest>;
76
74
  *
77
75
  * `projectRoot` is the common root all shard file paths are relativized
78
76
  * against, so each manifest's `dir` is in the same project-relative form
79
- * `packageOf` consumes.
77
+ * `packageGroupOf` matches against.
80
78
  */
81
79
  export declare function buildPackageManifestIndex(shards: readonly Shard[], projectRoot: string): PackageManifestIndex;
82
80
  /**
@@ -91,7 +89,8 @@ export declare function buildPackageManifestIndex(shards: readonly Shard[], proj
91
89
  export declare function buildPackageManifestIndexFromRoots(rootDirs: readonly string[], projectRoot: string): PackageManifestIndex;
92
90
  /** The outcome of resolving a bare import specifier to a workspace package. */
93
91
  export interface ResolvedSpecifier {
94
- /** The `packageOf`-aligned group key looks up into an {@link ExportIndex}. */
92
+ /** The {@link packageGroupOf}-aligned group key (the package `name`) looks
93
+ * up into an {@link ExportIndex} built with the same manifest. */
95
94
  readonly packageGroup: string;
96
95
  /** The `exports` subpath (`./errors`) when the specifier addressed one. */
97
96
  readonly subpath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"export-index.d.ts","sourceRoot":"","sources":["../../src/cross-package/export-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAWH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAkB,MAAM,aAAa,CAAC;AAI/E;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,CACnC,MAAM,EACN,WAAW,CAAC,MAAM,EAAa,SAAS,kBAAkB,EAAE,CAAC,CAC9D,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,oBAAoB,GACnC,WAAW,CAqBb;AAoGD;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAED,oDAAoD;AACpD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,EAAqB,eAAe,CAAC,CAAC;AAE3F;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,WAAW,EAAE,MAAM,GAClB,oBAAoB,CAKtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,WAAW,EAAE,MAAM,GAClB,oBAAoB,CAOtB;AAkDD,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,gFAAgF;IAChF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,oBAAoB,GAClC,iBAAiB,GAAG,SAAS,CAc/B"}
1
+ {"version":3,"file":"export-index.d.ts","sourceRoot":"","sources":["../../src/cross-package/export-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAUH,OAAO,KAAK,EAAmB,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAkB,MAAM,aAAa,CAAC;AAK/E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAIhF;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,CACnC,MAAM,EACN,WAAW,CAAC,MAAM,EAAa,SAAS,kBAAkB,EAAE,CAAC,CAC9D,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,oBAAoB,GACnC,WAAW,CAqBb;AAuGD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,WAAW,EAAE,MAAM,GAClB,oBAAoB,CAKtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,WAAW,EAAE,MAAM,GAClB,oBAAoB,CAOtB;AAoDD,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC;uEACmE;IACnE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,oBAAoB,GAClC,iBAAiB,GAAG,SAAS,CAmB/B"}
@@ -20,27 +20,39 @@
20
20
  * wires them into `resolveCrossBoundaryCalls`.
21
21
  *
22
22
  * Package-key alignment (the linchpin Phase 2 depends on): the boundary
23
- * resolver buckets occurrences by `packageOf(occ.filePath)` the path segment
24
- * under `packages/` (e.g. `core`, `graph`, `languages`), NOT the package.json
25
- * `name`. So {@link buildExportIndex} keys by exactly that, and
26
- * {@link resolveSpecifierToPackage} returns a `packageGroup` derived by running
27
- * `packageOf` over the manifest's project-relative dir so a specifier's
28
- * resolved group matches the `ExportIndex` keys verbatim.
23
+ * resolver buckets occurrences, and {@link resolveSpecifierToPackage} returns a
24
+ * `packageGroup`, by ONE shared key function {@link packageGroupOf}. With a
25
+ * {@link PackageManifestIndex} (the production path every real caller passes
26
+ * one) the key is the OWNING package's `name`, found by the longest manifest-dir
27
+ * prefix of the file path. That is layout-AGNOSTIC: it works for `apps/`, `libs/`,
28
+ * `crates/`, nested `packages/<ns>/<pkg>/`, or a single-package repo — anywhere a
29
+ * `package.json` lives — not just a flat `packages/<seg>/` tree. Without a
30
+ * manifest (legacy / unit-test callers only) it falls back to the historical
31
+ * `packages/<segment>` path heuristic. Both {@link buildExportIndex} and
32
+ * {@link resolveSpecifierToPackage} use the SAME function with the SAME manifest,
33
+ * so a specifier's resolved group matches the `ExportIndex` keys verbatim — the
34
+ * linchpin holds on any layout.
29
35
  */
30
36
  import { readFileSync } from 'node:fs';
31
37
  import { posix, relative } from 'node:path';
32
38
  import { logger } from '@opensip-cli/core';
33
- import { packageOf } from '../resolve-callee.js';
39
+ import { packageGroupOf } from './package-group.js';
34
40
  import { toPosixPath } from './posix-path.js';
41
+ // The package-attribution types + key function live in `package-group.js`;
42
+ // re-exported here so every existing `from './export-index.js'` import keeps
43
+ // working (and the public API surface is unchanged).
44
+ export { packageGroupOf } from './package-group.js';
35
45
  /**
36
46
  * Bucket every exported occurrence in `catalog` by its package group then by
37
47
  * its simple name. Deterministic and allocation-lean: one pass over
38
48
  * `catalog.functions`, no sorting (matching is by name, not order).
39
49
  *
40
- * The package key is `packageOf(occ.filePath)` — identical to what the
41
- * cross-shard resolver buckets by — so Phase 2 can look up
50
+ * The package key is `packageGroupOf(occ.filePath, manifestIndex)` — identical
51
+ * to what the cross-shard resolver buckets by — so Phase 2 can look up
42
52
  * `exportIndex.get(packageGroup)` where `packageGroup` comes from
43
- * {@link resolveSpecifierToPackage}.
53
+ * {@link resolveSpecifierToPackage} (with the SAME manifest). Passing the
54
+ * manifest is what makes the index layout-agnostic (keyed by package `name`);
55
+ * omitting it falls back to the `packages/<segment>` heuristic.
44
56
  */
45
57
  export function buildExportIndex(catalog, manifestIndex) {
46
58
  const index = new Map();
@@ -50,7 +62,7 @@ export function buildExportIndex(catalog, manifestIndex) {
50
62
  for (const occ of occs) {
51
63
  if (occ.visibility !== 'exported')
52
64
  continue;
53
- const pkg = packageOf(occ.filePath);
65
+ const pkg = packageGroupOf(occ.filePath, manifestIndex);
54
66
  const byName = getOrCreateMap(index, pkg);
55
67
  const bucket = byName.get(occ.simpleName);
56
68
  if (bucket)
@@ -99,16 +111,17 @@ function applyReExports(index, reExports, manifestIndex) {
99
111
  /** Apply one re-export fact; returns whether it added any new index entry. */
100
112
  function applyOneReExport(index, r, manifestIndex) {
101
113
  // Relative re-export stays in-package (already indexed); workspace specifier
102
- // resolves to its package group. External / untracked → skip.
114
+ // resolves to its package group. External / untracked → skip. Both branches
115
+ // use the SAME manifest-aware key so they align with the base index keys.
103
116
  const sourcePkg = r.specifier.startsWith('.')
104
- ? packageOf(r.fromFile)
117
+ ? packageGroupOf(r.fromFile, manifestIndex)
105
118
  : resolveSpecifierToPackage(r.specifier, manifestIndex)?.packageGroup;
106
119
  if (sourcePkg === undefined)
107
120
  return false; // @silent-ok — external/untracked specifier; decline
108
121
  const sourceBucket = index.get(sourcePkg);
109
122
  if (sourceBucket === undefined)
110
123
  return false; // @silent-ok — source package has no indexed exports
111
- const fromBucket = getOrCreateMap(index, packageOf(r.fromFile));
124
+ const fromBucket = getOrCreateMap(index, packageGroupOf(r.fromFile, manifestIndex));
112
125
  return r.exportedName === '*'
113
126
  ? expandStarReExport(sourceBucket, fromBucket)
114
127
  : addNamedReExport(r, sourceBucket, fromBucket);
@@ -151,6 +164,9 @@ function getOrCreateMap(outer, key) {
151
164
  outer.set(key, created);
152
165
  return created;
153
166
  }
167
+ // ── Task 1.2: package-name → package(+exports) manifest index ─────
168
+ // (`PackageManifest` / `PackageManifestIndex` are defined in `package-group.js`
169
+ // and re-exported at the top of this module.)
154
170
  /**
155
171
  * Read each shard's `package.json` (`name`, `exports`) and index it by package
156
172
  * name. Reuses the already-resolved `Shard[]` (no re-discovery); a shard whose
@@ -159,7 +175,7 @@ function getOrCreateMap(outer, key) {
159
175
  *
160
176
  * `projectRoot` is the common root all shard file paths are relativized
161
177
  * against, so each manifest's `dir` is in the same project-relative form
162
- * `packageOf` consumes.
178
+ * `packageGroupOf` matches against.
163
179
  */
164
180
  export function buildPackageManifestIndex(shards, projectRoot) {
165
181
  return buildPackageManifestIndexFromRoots(shards.map((s) => s.rootDir), projectRoot);
@@ -227,7 +243,9 @@ function readManifest(rootDirAbs, projectRoot) {
227
243
  : undefined;
228
244
  return { name, dir: relativeDir(rootDirAbs, projectRoot), exportsMap };
229
245
  }
230
- /** Project-relative POSIX dir for a shard's absolute rootDir (the `packageOf` form). */
246
+ /** Project-relative POSIX dir for a shard's absolute rootDir the prefix
247
+ * {@link packageGroupOf} matches file paths against (`''` when the package IS
248
+ * the project root, i.e. a single-package repo). */
231
249
  function relativeDir(rootDirAbs, projectRoot) {
232
250
  return toPosixPath(relative(projectRoot, rootDirAbs));
233
251
  }
@@ -261,7 +279,12 @@ export function resolveSpecifierToPackage(specifier, manifestIndex) {
261
279
  if (subpath !== undefined && !exportsDeclares(manifest.exportsMap, subpath)) {
262
280
  return undefined; // unmappable subpath → decline
263
281
  }
264
- const packageGroup = packageOf(`${manifest.dir}/`);
282
+ // The group key is the package's own `name` — identical to what
283
+ // `packageGroupOf` (and therefore `buildExportIndex`) keys this package's
284
+ // files by when given the SAME manifest index. This is the layout-agnostic
285
+ // linchpin: the resolved group keys straight into the export index regardless
286
+ // of where the package's dir sits in the tree.
287
+ const packageGroup = manifest.name;
265
288
  return subpath === undefined ? { packageGroup } : { packageGroup, subpath };
266
289
  }
267
290
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"export-index.js","sourceRoot":"","sources":["../../src/cross-package/export-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAwB9C;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,aAAoC;IAEpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA6C,CAAC;IACnE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU;gBAAE,SAAS;YAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,MAAM,GAAsC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;gBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IACD,+EAA+E;IAC/E,yEAAyE;IACzE,wEAAwE;IACxE,wDAAwD;IACxD,IAAI,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrF,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,cAAc,CACrB,KAAqD,EACrD,SAAoC,EACpC,aAAmC;IAEnC,2EAA2E;IAC3E,2EAA2E;IAC3E,gEAAgE;IAChE,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,aAAa,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,MAAM;IACtB,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,gBAAgB,CACvB,KAAqD,EACrD,CAAiB,EACjB,aAAmC;IAEnC,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvB,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,YAAY,CAAC;IACxE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,qDAAqD;IAChG,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,qDAAqD;IACnG,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,CAAC,YAAY,KAAK,GAAG;QAC3B,CAAC,CAAC,kBAAkB,CAAC,YAAY,EAAE,UAAU,CAAC;QAC9C,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAED;gEACgE;AAChE,SAAS,kBAAkB,CACzB,YAAuD,EACvD,UAA6C;IAE7C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;wDAEwD;AACxD,SAAS,gBAAgB,CACvB,CAAiB,EACjB,YAAuD,EACvD,UAA6C;IAE7C,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,kDAAkD;IACpG,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,+CAA+C;IAC1G,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAY,KAA0B,EAAE,GAAM;IACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAqBD;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAwB,EACxB,WAAmB;IAEnB,OAAO,kCAAkC,CACvC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAC5B,WAAW,CACZ,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC,CAChD,QAA2B,EAC3B,WAAmB;IAEnB,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAC;IACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6EAA6E;AAC7E,SAAS,YAAY,CAAC,UAAkB,EAAE,WAAmB;IAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC;IACzE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,0CAA0C;YAC/C,MAAM,EAAE,oBAAoB;YAC5B,YAAY;YACZ,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wEAAwE;QACxE,6CAA6C;QAC7C,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,2CAA2C;YAChD,MAAM,EAAE,oBAAoB;YAC5B,YAAY;YACZ,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IACpC,MAAM,UAAU,GACd,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI;QACvD,CAAC,CAAE,YAAwC;QAC3C,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;AACzE,CAAC;AAED,wFAAwF;AACxF,SAAS,WAAW,CAAC,UAAkB,EAAE,WAAmB;IAC1D,OAAO,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AACxD,CAAC;AAUD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,aAAmC;IAEnC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1E,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAEhD,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAChD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE7C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QAC5E,OAAO,SAAS,CAAC,CAAC,+BAA+B;IACnD,CAAC;IAED,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;IACnD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,SAAiB;IAIvC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,+BAA+B;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YACzE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QACxD,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACvF,CAAC;IACD,0BAA0B;IAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;AACvF,CAAC;AAED,iFAAiF;AACjF,SAAS,eAAe,CACtB,UAA+C,EAC/C,OAAe;IAEf,OAAO,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC/F,CAAC"}
1
+ {"version":3,"file":"export-index.js","sourceRoot":"","sources":["../../src/cross-package/export-index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Layout-agnostic package attribution for cross-package resolution.
3
+ *
4
+ * One key function — {@link packageGroupOf} — and the manifest types it reads.
5
+ * Both the export symbol index (`buildExportIndex`) and the specifier resolver
6
+ * (`resolveSpecifierToPackage`) bucket by this SAME function with the SAME
7
+ * manifest, so a resolved specifier's group keys straight into the export index
8
+ * on ANY repo layout — the linchpin the cross-shard linker depends on.
9
+ *
10
+ * With a {@link PackageManifestIndex} (the production path — every real caller
11
+ * passes one) the group key is the OWNING package's `name`, found by the longest
12
+ * manifest-`dir` prefix of the file path. That is genuinely layout-agnostic: a
13
+ * package under `apps/web`, `libs/util`, `crates/x`, nested
14
+ * `packages/<group>/<leaf>`, or the repo root (single-package, `dir === ''`) all
15
+ * resolve to their real `package.json` `name`. Without a manifest (legacy /
16
+ * unit-test callers only) it falls back to the historical `packages/<segment>`
17
+ * path heuristic ({@link packageOf}).
18
+ *
19
+ * Extracted from `export-index.ts` so the (cohesive) package-attribution logic +
20
+ * its manifest types live in one focused module; `export-index.ts` re-exports the
21
+ * types for back-compatible import paths.
22
+ */
23
+ /**
24
+ * One workspace package's manifest facts the specifier resolver needs.
25
+ *
26
+ * `dir` is the package's PROJECT-RELATIVE root (e.g. `packages/core`, `apps/web`,
27
+ * or `''` for a single-package repo rooted at the project) — derived from the
28
+ * shard's absolute `rootDir` against the common project root. It is the prefix
29
+ * {@link packageGroupOf} matches file paths against. `exportsMap` is the raw
30
+ * `exports` field (when an object), used to gate subpath resolution.
31
+ */
32
+ export interface PackageManifest {
33
+ readonly name: string;
34
+ readonly dir: string;
35
+ readonly exportsMap?: Record<string, unknown>;
36
+ }
37
+ /** Package `name` → its {@link PackageManifest}. */
38
+ export type PackageManifestIndex = ReadonlyMap<string, PackageManifest>;
39
+ /**
40
+ * The package-group key for a project-relative POSIX `filePath` — the SINGLE key
41
+ * function the export index and the specifier resolver both bucket by, so they
42
+ * align on any repo layout.
43
+ *
44
+ * - WITH a {@link PackageManifestIndex} (the production path): the `name` of the
45
+ * OWNING package — the manifest whose project-relative `dir` is the longest
46
+ * path-segment prefix of `filePath`. Falls through to the path heuristic only
47
+ * when NO manifest dir is a prefix (a file outside every tracked package).
48
+ * - WITHOUT a manifest (legacy / unit-test callers): the `packages/<segment>`
49
+ * path heuristic ({@link packageOf}).
50
+ */
51
+ export declare function packageGroupOf(filePath: string, manifestIndex?: PackageManifestIndex): string;
52
+ //# sourceMappingURL=package-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-group.d.ts","sourceRoot":"","sources":["../../src/cross-package/package-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/C;AAED,oDAAoD;AACpD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,MAAM,EAAqB,eAAe,CAAC,CAAC;AAE3F;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAM7F"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Layout-agnostic package attribution for cross-package resolution.
3
+ *
4
+ * One key function — {@link packageGroupOf} — and the manifest types it reads.
5
+ * Both the export symbol index (`buildExportIndex`) and the specifier resolver
6
+ * (`resolveSpecifierToPackage`) bucket by this SAME function with the SAME
7
+ * manifest, so a resolved specifier's group keys straight into the export index
8
+ * on ANY repo layout — the linchpin the cross-shard linker depends on.
9
+ *
10
+ * With a {@link PackageManifestIndex} (the production path — every real caller
11
+ * passes one) the group key is the OWNING package's `name`, found by the longest
12
+ * manifest-`dir` prefix of the file path. That is genuinely layout-agnostic: a
13
+ * package under `apps/web`, `libs/util`, `crates/x`, nested
14
+ * `packages/<group>/<leaf>`, or the repo root (single-package, `dir === ''`) all
15
+ * resolve to their real `package.json` `name`. Without a manifest (legacy /
16
+ * unit-test callers only) it falls back to the historical `packages/<segment>`
17
+ * path heuristic ({@link packageOf}).
18
+ *
19
+ * Extracted from `export-index.ts` so the (cohesive) package-attribution logic +
20
+ * its manifest types live in one focused module; `export-index.ts` re-exports the
21
+ * types for back-compatible import paths.
22
+ */
23
+ import { packageOf } from '../resolve-callee.js';
24
+ /**
25
+ * The package-group key for a project-relative POSIX `filePath` — the SINGLE key
26
+ * function the export index and the specifier resolver both bucket by, so they
27
+ * align on any repo layout.
28
+ *
29
+ * - WITH a {@link PackageManifestIndex} (the production path): the `name` of the
30
+ * OWNING package — the manifest whose project-relative `dir` is the longest
31
+ * path-segment prefix of `filePath`. Falls through to the path heuristic only
32
+ * when NO manifest dir is a prefix (a file outside every tracked package).
33
+ * - WITHOUT a manifest (legacy / unit-test callers): the `packages/<segment>`
34
+ * path heuristic ({@link packageOf}).
35
+ */
36
+ export function packageGroupOf(filePath, manifestIndex) {
37
+ if (manifestIndex !== undefined) {
38
+ const owner = longestDirPrefixOwner(filePath, manifestIndex);
39
+ if (owner !== undefined)
40
+ return owner;
41
+ }
42
+ return packageOf(filePath);
43
+ }
44
+ /**
45
+ * The `name` of the manifest whose project-relative `dir` is the longest
46
+ * path-segment prefix of `filePath`, or `undefined` when none matches. A package
47
+ * at the repo root (`dir === ''`) owns every file no deeper package claims (the
48
+ * single-package-repo case). Matching is on whole path segments so `apps/web`
49
+ * never spuriously prefixes `apps/website/...`.
50
+ */
51
+ function longestDirPrefixOwner(filePath, manifestIndex) {
52
+ let bestName;
53
+ let bestLen = -1;
54
+ for (const manifest of manifestIndex.values()) {
55
+ const dir = manifest.dir;
56
+ const isPrefix = dir === '' || filePath === dir || filePath.startsWith(`${dir}/`);
57
+ if (isPrefix && dir.length > bestLen) {
58
+ bestLen = dir.length;
59
+ bestName = manifest.name;
60
+ }
61
+ }
62
+ return bestName;
63
+ }
64
+ //# sourceMappingURL=package-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-group.js","sourceRoot":"","sources":["../../src/cross-package/package-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAoBjD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,aAAoC;IACnF,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAC5B,QAAgB,EAChB,aAAmC;IAEnC,IAAI,QAA4B,CAAC;IACjC,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IACjB,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACzB,MAAM,QAAQ,GAAG,GAAG,KAAK,EAAE,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAClF,IAAI,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;YACrC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC;YACrB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}