@colbymchenry/codegraph 0.7.2 → 0.7.4
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.
- package/README.md +57 -0
- package/dist/bin/codegraph.js +39 -4
- package/dist/bin/codegraph.js.map +1 -1
- package/dist/bin/node-version-check.d.ts +17 -0
- package/dist/bin/node-version-check.d.ts.map +1 -0
- package/dist/bin/node-version-check.js +39 -0
- package/dist/bin/node-version-check.js.map +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +46 -18
- package/dist/context/index.js.map +1 -1
- package/dist/db/index.d.ts +9 -2
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +17 -7
- package/dist/db/index.js.map +1 -1
- package/dist/db/migrations.d.ts +1 -1
- package/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +11 -1
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/queries.d.ts +16 -0
- package/dist/db/queries.d.ts.map +1 -1
- package/dist/db/queries.js +144 -7
- package/dist/db/queries.js.map +1 -1
- package/dist/db/schema.sql +6 -3
- package/dist/db/sqlite-adapter.d.ts +23 -4
- package/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/dist/db/sqlite-adapter.js +51 -11
- package/dist/db/sqlite-adapter.js.map +1 -1
- package/dist/extraction/grammars.d.ts +1 -1
- package/dist/extraction/grammars.d.ts.map +1 -1
- package/dist/extraction/grammars.js +12 -4
- package/dist/extraction/grammars.js.map +1 -1
- package/dist/extraction/index.d.ts +20 -0
- package/dist/extraction/index.d.ts.map +1 -1
- package/dist/extraction/index.js +111 -7
- package/dist/extraction/index.js.map +1 -1
- package/dist/extraction/languages/index.d.ts.map +1 -1
- package/dist/extraction/languages/index.js +2 -0
- package/dist/extraction/languages/index.js.map +1 -1
- package/dist/extraction/languages/scala.d.ts +3 -0
- package/dist/extraction/languages/scala.d.ts.map +1 -0
- package/dist/extraction/languages/scala.js +139 -0
- package/dist/extraction/languages/scala.js.map +1 -0
- package/dist/extraction/parse-worker.js +39 -2
- package/dist/extraction/parse-worker.js.map +1 -1
- package/dist/extraction/svelte-extractor.d.ts +9 -0
- package/dist/extraction/svelte-extractor.d.ts.map +1 -1
- package/dist/extraction/svelte-extractor.js +42 -0
- package/dist/extraction/svelte-extractor.js.map +1 -1
- package/dist/extraction/tree-sitter.d.ts +32 -16
- package/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/dist/extraction/tree-sitter.js +266 -67
- package/dist/extraction/tree-sitter.js.map +1 -1
- package/dist/extraction/vue-extractor.d.ts +36 -0
- package/dist/extraction/vue-extractor.d.ts.map +1 -0
- package/dist/extraction/vue-extractor.js +163 -0
- package/dist/extraction/vue-extractor.js.map +1 -0
- package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
- package/dist/graph/traversal.d.ts.map +1 -1
- package/dist/graph/traversal.js +7 -1
- package/dist/graph/traversal.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +6 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +19 -0
- package/dist/mcp/server-instructions.d.ts.map +1 -0
- package/dist/mcp/server-instructions.js +59 -0
- package/dist/mcp/server-instructions.js.map +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +46 -8
- package/dist/mcp/tools.js.map +1 -1
- package/dist/resolution/frameworks/csharp.d.ts.map +1 -1
- package/dist/resolution/frameworks/csharp.js +72 -78
- package/dist/resolution/frameworks/csharp.js.map +1 -1
- package/dist/resolution/frameworks/express.d.ts.map +1 -1
- package/dist/resolution/frameworks/express.js +47 -26
- package/dist/resolution/frameworks/express.js.map +1 -1
- package/dist/resolution/frameworks/go.d.ts.map +1 -1
- package/dist/resolution/frameworks/go.js +41 -72
- package/dist/resolution/frameworks/go.js.map +1 -1
- package/dist/resolution/frameworks/index.d.ts +7 -0
- package/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/dist/resolution/frameworks/index.js +13 -1
- package/dist/resolution/frameworks/index.js.map +1 -1
- package/dist/resolution/frameworks/java.d.ts.map +1 -1
- package/dist/resolution/frameworks/java.js +36 -40
- package/dist/resolution/frameworks/java.js.map +1 -1
- package/dist/resolution/frameworks/laravel.d.ts.map +1 -1
- package/dist/resolution/frameworks/laravel.js +94 -44
- package/dist/resolution/frameworks/laravel.js.map +1 -1
- package/dist/resolution/frameworks/python.d.ts.map +1 -1
- package/dist/resolution/frameworks/python.js +163 -151
- package/dist/resolution/frameworks/python.js.map +1 -1
- package/dist/resolution/frameworks/react.d.ts.map +1 -1
- package/dist/resolution/frameworks/react.js +3 -2
- package/dist/resolution/frameworks/react.js.map +1 -1
- package/dist/resolution/frameworks/ruby.d.ts.map +1 -1
- package/dist/resolution/frameworks/ruby.js +39 -91
- package/dist/resolution/frameworks/ruby.js.map +1 -1
- package/dist/resolution/frameworks/rust.d.ts.map +1 -1
- package/dist/resolution/frameworks/rust.js +50 -43
- package/dist/resolution/frameworks/rust.js.map +1 -1
- package/dist/resolution/frameworks/svelte.d.ts.map +1 -1
- package/dist/resolution/frameworks/svelte.js +3 -2
- package/dist/resolution/frameworks/svelte.js.map +1 -1
- package/dist/resolution/frameworks/swift.d.ts.map +1 -1
- package/dist/resolution/frameworks/swift.js +54 -46
- package/dist/resolution/frameworks/swift.js.map +1 -1
- package/dist/resolution/frameworks/vue.d.ts +9 -0
- package/dist/resolution/frameworks/vue.d.ts.map +1 -0
- package/dist/resolution/frameworks/vue.js +306 -0
- package/dist/resolution/frameworks/vue.js.map +1 -0
- package/dist/resolution/import-resolver.d.ts +17 -1
- package/dist/resolution/import-resolver.d.ts.map +1 -1
- package/dist/resolution/import-resolver.js +256 -46
- package/dist/resolution/import-resolver.js.map +1 -1
- package/dist/resolution/index.d.ts +8 -0
- package/dist/resolution/index.d.ts.map +1 -1
- package/dist/resolution/index.js +60 -1
- package/dist/resolution/index.js.map +1 -1
- package/dist/resolution/name-matcher.d.ts.map +1 -1
- package/dist/resolution/name-matcher.js +21 -0
- package/dist/resolution/name-matcher.js.map +1 -1
- package/dist/resolution/path-aliases.d.ts +68 -0
- package/dist/resolution/path-aliases.d.ts.map +1 -0
- package/dist/resolution/path-aliases.js +238 -0
- package/dist/resolution/path-aliases.js.map +1 -0
- package/dist/resolution/strip-comments.d.ts +27 -0
- package/dist/resolution/strip-comments.d.ts.map +1 -0
- package/dist/resolution/strip-comments.js +441 -0
- package/dist/resolution/strip-comments.js.map +1 -0
- package/dist/resolution/types.d.ts +54 -3
- package/dist/resolution/types.d.ts.map +1 -1
- package/dist/search/query-parser.d.ts +57 -0
- package/dist/search/query-parser.d.ts.map +1 -0
- package/dist/search/query-parser.js +177 -0
- package/dist/search/query-parser.js.map +1 -0
- package/dist/types.d.ts +11 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +68 -1
- package/dist/types.js.map +1 -1
- package/package.json +5 -2
- package/dist/installer/banner.d.ts +0 -40
- package/dist/installer/banner.d.ts.map +0 -1
- package/dist/installer/banner.js +0 -165
- package/dist/installer/banner.js.map +0 -1
- package/dist/installer/prompts.d.ts +0 -18
- package/dist/installer/prompts.d.ts.map +0 -1
- package/dist/installer/prompts.js +0 -113
- package/dist/installer/prompts.js.map +0 -1
- package/dist/sentry.d.ts +0 -24
- package/dist/sentry.d.ts.map +0 -1
- package/dist/sentry.js +0 -166
- package/dist/sentry.js.map +0 -1
- package/dist/sync/git-hooks.d.ts +0 -66
- package/dist/sync/git-hooks.d.ts.map +0 -1
- package/dist/sync/git-hooks.js +0 -281
- package/dist/sync/git-hooks.js.map +0 -1
- package/dist/vectors/embedder.d.ts +0 -140
- package/dist/vectors/embedder.d.ts.map +0 -1
- package/dist/vectors/embedder.js +0 -338
- package/dist/vectors/embedder.js.map +0 -1
- package/dist/vectors/index.d.ts +0 -9
- package/dist/vectors/index.d.ts.map +0 -1
- package/dist/vectors/index.js +0 -20
- package/dist/vectors/index.js.map +0 -1
- package/dist/vectors/manager.d.ts +0 -119
- package/dist/vectors/manager.d.ts.map +0 -1
- package/dist/vectors/manager.js +0 -274
- package/dist/vectors/manager.js.map +0 -1
- package/dist/vectors/search.d.ts +0 -134
- package/dist/vectors/search.d.ts.map +0 -1
- package/dist/vectors/search.js +0 -411
- package/dist/vectors/search.js.map +0 -1
- package/dist/visualizer/public/index.html +0 -1994
- package/dist/visualizer/server.d.ts +0 -46
- package/dist/visualizer/server.d.ts.map +0 -1
- package/dist/visualizer/server.js +0 -491
- package/dist/visualizer/server.js.map +0 -1
|
@@ -41,8 +41,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
41
41
|
exports.resolveImportPath = resolveImportPath;
|
|
42
42
|
exports.extractImportMappings = extractImportMappings;
|
|
43
43
|
exports.clearImportMappingCache = clearImportMappingCache;
|
|
44
|
+
exports.extractReExports = extractReExports;
|
|
44
45
|
exports.resolveViaImport = resolveViaImport;
|
|
45
46
|
const path = __importStar(require("path"));
|
|
47
|
+
const path_aliases_1 = require("./path-aliases");
|
|
46
48
|
/**
|
|
47
49
|
* Extension resolution order by language
|
|
48
50
|
*/
|
|
@@ -63,8 +65,11 @@ const EXTENSION_RESOLUTION = {
|
|
|
63
65
|
* Resolve an import path to an actual file
|
|
64
66
|
*/
|
|
65
67
|
function resolveImportPath(importPath, fromFile, language, context) {
|
|
66
|
-
// Skip external/npm packages
|
|
67
|
-
|
|
68
|
+
// Skip external/npm packages — but pass the context so the
|
|
69
|
+
// bare-specifier heuristic can consult the project's tsconfig
|
|
70
|
+
// alias map first (custom prefixes like `@components/*` would
|
|
71
|
+
// otherwise be misclassified as npm).
|
|
72
|
+
if (isExternalImport(importPath, language, context)) {
|
|
68
73
|
return null;
|
|
69
74
|
}
|
|
70
75
|
const projectRoot = context.getProjectRoot();
|
|
@@ -78,8 +83,13 @@ function resolveImportPath(importPath, fromFile, language, context) {
|
|
|
78
83
|
}
|
|
79
84
|
/**
|
|
80
85
|
* Check if an import is external (npm package, etc.)
|
|
86
|
+
*
|
|
87
|
+
* `context` is consulted for project-defined path aliases
|
|
88
|
+
* (tsconfig/jsconfig `paths`). Without that check, custom prefixes
|
|
89
|
+
* like `@components/*` would fail the bare-specifier heuristic and
|
|
90
|
+
* be classified as external before alias resolution can run.
|
|
81
91
|
*/
|
|
82
|
-
function isExternalImport(importPath, language) {
|
|
92
|
+
function isExternalImport(importPath, language, context) {
|
|
83
93
|
// Relative imports are not external
|
|
84
94
|
if (importPath.startsWith('.')) {
|
|
85
95
|
return false;
|
|
@@ -90,6 +100,14 @@ function isExternalImport(importPath, language) {
|
|
|
90
100
|
if (['fs', 'path', 'os', 'crypto', 'http', 'https', 'url', 'util', 'events', 'stream', 'child_process', 'buffer'].includes(importPath)) {
|
|
91
101
|
return true;
|
|
92
102
|
}
|
|
103
|
+
// Project-defined alias prefix? Treat as local.
|
|
104
|
+
const aliases = context?.getProjectAliases?.();
|
|
105
|
+
if (aliases) {
|
|
106
|
+
for (const pat of aliases.patterns) {
|
|
107
|
+
if (importPath.startsWith(pat.prefix))
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
93
111
|
// Scoped packages or bare specifiers that don't start with aliases
|
|
94
112
|
if (!importPath.startsWith('@/') && !importPath.startsWith('~/') && !importPath.startsWith('src/')) {
|
|
95
113
|
// Likely an npm package
|
|
@@ -134,12 +152,41 @@ function resolveRelativeImport(importPath, fromDir, language, context) {
|
|
|
134
152
|
return null;
|
|
135
153
|
}
|
|
136
154
|
/**
|
|
137
|
-
* Resolve an aliased/absolute import
|
|
155
|
+
* Resolve an aliased/absolute import.
|
|
156
|
+
*
|
|
157
|
+
* Tries, in order:
|
|
158
|
+
* 1. Project-defined `compilerOptions.paths` (tsconfig/jsconfig).
|
|
159
|
+
* Each pattern can have multiple replacements; tried in tsconfig
|
|
160
|
+
* priority order with extension permutations.
|
|
161
|
+
* 2. The legacy hard-coded fallback list (`@/`, `~/`, `src/`, ...)
|
|
162
|
+
* for projects that have aliases but no tsconfig paths block.
|
|
163
|
+
* 3. Direct path lookup (with extensions).
|
|
138
164
|
*/
|
|
139
|
-
function resolveAliasedImport(importPath,
|
|
165
|
+
function resolveAliasedImport(importPath, projectRoot, language, context) {
|
|
140
166
|
const extensions = EXTENSION_RESOLUTION[language] || [];
|
|
141
|
-
|
|
142
|
-
|
|
167
|
+
const tryWithExt = (basePath) => {
|
|
168
|
+
for (const ext of extensions) {
|
|
169
|
+
const candidate = basePath + ext;
|
|
170
|
+
if (context.fileExists(candidate))
|
|
171
|
+
return candidate;
|
|
172
|
+
}
|
|
173
|
+
if (context.fileExists(basePath))
|
|
174
|
+
return basePath;
|
|
175
|
+
return null;
|
|
176
|
+
};
|
|
177
|
+
// 1. Project tsconfig/jsconfig paths.
|
|
178
|
+
const aliasMap = context.getProjectAliases?.();
|
|
179
|
+
if (aliasMap) {
|
|
180
|
+
const candidates = (0, path_aliases_1.applyAliases)(importPath, aliasMap, projectRoot);
|
|
181
|
+
for (const c of candidates) {
|
|
182
|
+
const hit = tryWithExt(c);
|
|
183
|
+
if (hit)
|
|
184
|
+
return hit;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
// 2. Hard-coded fallback list. Kept for projects that use these
|
|
188
|
+
// conventional aliases without declaring them in tsconfig.
|
|
189
|
+
const fallbackAliases = {
|
|
143
190
|
'@/': 'src/',
|
|
144
191
|
'~/': 'src/',
|
|
145
192
|
'@src/': 'src/',
|
|
@@ -147,31 +194,15 @@ function resolveAliasedImport(importPath, _projectRoot, language, context) {
|
|
|
147
194
|
'@app/': 'app/',
|
|
148
195
|
'app/': 'app/',
|
|
149
196
|
};
|
|
150
|
-
|
|
151
|
-
for (const [alias, replacement] of Object.entries(aliases)) {
|
|
197
|
+
for (const [alias, replacement] of Object.entries(fallbackAliases)) {
|
|
152
198
|
if (importPath.startsWith(alias)) {
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const candidatePath = resolvedPath + ext;
|
|
157
|
-
if (context.fileExists(candidatePath)) {
|
|
158
|
-
return candidatePath;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
// Try as-is
|
|
162
|
-
if (context.fileExists(resolvedPath)) {
|
|
163
|
-
return resolvedPath;
|
|
164
|
-
}
|
|
199
|
+
const hit = tryWithExt(importPath.replace(alias, replacement));
|
|
200
|
+
if (hit)
|
|
201
|
+
return hit;
|
|
165
202
|
}
|
|
166
203
|
}
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
const candidatePath = importPath + ext;
|
|
170
|
-
if (context.fileExists(candidatePath)) {
|
|
171
|
-
return candidatePath;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
return null;
|
|
204
|
+
// 3. Direct path.
|
|
205
|
+
return tryWithExt(importPath);
|
|
175
206
|
}
|
|
176
207
|
/**
|
|
177
208
|
* Extract import mappings from a file
|
|
@@ -404,6 +435,124 @@ const importMappingCache = new Map();
|
|
|
404
435
|
function clearImportMappingCache() {
|
|
405
436
|
importMappingCache.clear();
|
|
406
437
|
}
|
|
438
|
+
/**
|
|
439
|
+
* Strip JS line + block comments from `content` while preserving
|
|
440
|
+
* string literals (so `"//"` inside a string stays intact). Used by
|
|
441
|
+
* {@link extractReExports} so commented-out export-from statements
|
|
442
|
+
* don't generate phantom re-export edges.
|
|
443
|
+
*
|
|
444
|
+
* Scanner is deliberately small: it only tracks the three contexts
|
|
445
|
+
* relevant for JS/TS — single-quote string, double-quote string, and
|
|
446
|
+
* template literal. Comment recognition is the JS spec subset, no
|
|
447
|
+
* regex-literal awareness (which is fine for our use case: we don't
|
|
448
|
+
* apply this to function bodies, only to top-level files).
|
|
449
|
+
*/
|
|
450
|
+
function stripJsComments(content) {
|
|
451
|
+
let out = '';
|
|
452
|
+
let i = 0;
|
|
453
|
+
let str = null;
|
|
454
|
+
while (i < content.length) {
|
|
455
|
+
const ch = content[i];
|
|
456
|
+
if (str !== null) {
|
|
457
|
+
out += ch;
|
|
458
|
+
if (ch === '\\' && i + 1 < content.length) {
|
|
459
|
+
out += content[i + 1];
|
|
460
|
+
i += 2;
|
|
461
|
+
continue;
|
|
462
|
+
}
|
|
463
|
+
if (ch === str)
|
|
464
|
+
str = null;
|
|
465
|
+
i++;
|
|
466
|
+
continue;
|
|
467
|
+
}
|
|
468
|
+
if (ch === '"' || ch === "'" || ch === '`') {
|
|
469
|
+
str = ch;
|
|
470
|
+
out += ch;
|
|
471
|
+
i++;
|
|
472
|
+
continue;
|
|
473
|
+
}
|
|
474
|
+
if (ch === '/' && content[i + 1] === '/') {
|
|
475
|
+
while (i < content.length && content[i] !== '\n')
|
|
476
|
+
i++;
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
479
|
+
if (ch === '/' && content[i + 1] === '*') {
|
|
480
|
+
i += 2;
|
|
481
|
+
while (i < content.length && !(content[i] === '*' && content[i + 1] === '/'))
|
|
482
|
+
i++;
|
|
483
|
+
i += 2;
|
|
484
|
+
continue;
|
|
485
|
+
}
|
|
486
|
+
out += ch;
|
|
487
|
+
i++;
|
|
488
|
+
}
|
|
489
|
+
return out;
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Extract JS/TS re-export declarations from `content`.
|
|
493
|
+
*
|
|
494
|
+
* Recognised forms:
|
|
495
|
+
* export { foo } from './a';
|
|
496
|
+
* export { foo as bar } from './a';
|
|
497
|
+
* export * from './a';
|
|
498
|
+
* export * as ns from './a'; (treated as wildcard for chasing)
|
|
499
|
+
* export { default as Foo } from './a';
|
|
500
|
+
*
|
|
501
|
+
* The walker intentionally stays regex-based — the import-resolver
|
|
502
|
+
* elsewhere in this file already chooses regex over a fresh
|
|
503
|
+
* tree-sitter pass, and this function shares that trade-off. Errors
|
|
504
|
+
* fall through silently; resolution simply skips the broken file.
|
|
505
|
+
*/
|
|
506
|
+
function extractReExports(content, language) {
|
|
507
|
+
if (language !== 'typescript' &&
|
|
508
|
+
language !== 'javascript' &&
|
|
509
|
+
language !== 'tsx' &&
|
|
510
|
+
language !== 'jsx') {
|
|
511
|
+
return [];
|
|
512
|
+
}
|
|
513
|
+
const out = [];
|
|
514
|
+
// Pre-strip block comments + line comments so a commented-out
|
|
515
|
+
// `// export { x } from '...'` doesn't produce a phantom edge.
|
|
516
|
+
// (Template literals are still a possible source of false positives;
|
|
517
|
+
// a project that builds export statements as runtime strings is
|
|
518
|
+
// out of scope.)
|
|
519
|
+
const cleaned = stripJsComments(content);
|
|
520
|
+
// Wildcard: `export * from '...'` or `export * as ns from '...'`
|
|
521
|
+
const wildcardRe = /export\s*\*(?:\s+as\s+\w+)?\s*from\s*['"]([^'"]+)['"]/g;
|
|
522
|
+
let m;
|
|
523
|
+
while ((m = wildcardRe.exec(cleaned)) !== null) {
|
|
524
|
+
out.push({ kind: 'wildcard', source: m[1] });
|
|
525
|
+
}
|
|
526
|
+
// Named: `export { a, b as c } from '...'`
|
|
527
|
+
const namedRe = /export\s*\{([^}]+)\}\s*from\s*['"]([^'"]+)['"]/g;
|
|
528
|
+
while ((m = namedRe.exec(cleaned)) !== null) {
|
|
529
|
+
const inner = m[1];
|
|
530
|
+
const source = m[2];
|
|
531
|
+
for (const raw of inner.split(',')) {
|
|
532
|
+
const item = raw.trim();
|
|
533
|
+
if (!item)
|
|
534
|
+
continue;
|
|
535
|
+
const aliasMatch = item.match(/^(\w+)\s+as\s+(\w+)$/);
|
|
536
|
+
if (aliasMatch) {
|
|
537
|
+
out.push({
|
|
538
|
+
kind: 'named',
|
|
539
|
+
exportedName: aliasMatch[2],
|
|
540
|
+
originalName: aliasMatch[1],
|
|
541
|
+
source,
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
else if (/^\w+$/.test(item)) {
|
|
545
|
+
out.push({
|
|
546
|
+
kind: 'named',
|
|
547
|
+
exportedName: item,
|
|
548
|
+
originalName: item,
|
|
549
|
+
source,
|
|
550
|
+
});
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
return out;
|
|
555
|
+
}
|
|
407
556
|
/**
|
|
408
557
|
* Resolve a reference using import mappings
|
|
409
558
|
*/
|
|
@@ -419,24 +568,11 @@ function resolveViaImport(ref, context) {
|
|
|
419
568
|
// Resolve the import path
|
|
420
569
|
const resolvedPath = resolveImportPath(imp.source, ref.filePath, ref.language, context);
|
|
421
570
|
if (resolvedPath) {
|
|
422
|
-
// Find the exported symbol in the resolved file
|
|
423
|
-
const nodesInFile = context.getNodesInFile(resolvedPath);
|
|
424
571
|
const exportedName = imp.isDefault ? 'default' : imp.exportedName;
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
targetNode = nodesInFile.find((n) => n.isExported && (n.kind === 'function' || n.kind === 'class'));
|
|
430
|
-
}
|
|
431
|
-
else if (imp.isNamespace) {
|
|
432
|
-
// Namespace import - look for the specific member
|
|
433
|
-
const memberName = ref.referenceName.replace(imp.localName + '.', '');
|
|
434
|
-
targetNode = nodesInFile.find((n) => n.name === memberName && n.isExported);
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
// Named import
|
|
438
|
-
targetNode = nodesInFile.find((n) => n.name === exportedName && n.isExported);
|
|
439
|
-
}
|
|
572
|
+
const memberName = imp.isNamespace
|
|
573
|
+
? ref.referenceName.replace(imp.localName + '.', '')
|
|
574
|
+
: null;
|
|
575
|
+
const targetNode = findExportedSymbol(resolvedPath, { isDefault: imp.isDefault, isNamespace: imp.isNamespace, exportedName, memberName }, ref.language, context, new Set());
|
|
440
576
|
if (targetNode) {
|
|
441
577
|
return {
|
|
442
578
|
original: ref,
|
|
@@ -450,4 +586,78 @@ function resolveViaImport(ref, context) {
|
|
|
450
586
|
}
|
|
451
587
|
return null;
|
|
452
588
|
}
|
|
589
|
+
/** Recursive depth cap for re-export chain following. Real codebases
|
|
590
|
+
* rarely chain barrels more than 2–3 deep; 8 is a generous safety
|
|
591
|
+
* net that still bounds worst-case work. */
|
|
592
|
+
const REEXPORT_MAX_DEPTH = 8;
|
|
593
|
+
/**
|
|
594
|
+
* Find an exported symbol in `filePath`, following `export { x } from
|
|
595
|
+
* './other'` and `export * from './other'` chains until the original
|
|
596
|
+
* declaration is reached. Cycle-safe via the `visited` set.
|
|
597
|
+
*
|
|
598
|
+
* Without this, every barrel-style import (`import { Foo } from
|
|
599
|
+
* './index'` where `index.ts` only re-exports) used to resolve to
|
|
600
|
+
* nothing — the existing code only looked for declarations IN the
|
|
601
|
+
* resolved file, not declarations the file forwarded.
|
|
602
|
+
*/
|
|
603
|
+
function findExportedSymbol(filePath, want, language, context, visited, depth = 0) {
|
|
604
|
+
if (depth > REEXPORT_MAX_DEPTH)
|
|
605
|
+
return undefined;
|
|
606
|
+
if (visited.has(filePath))
|
|
607
|
+
return undefined;
|
|
608
|
+
visited.add(filePath);
|
|
609
|
+
const nodesInFile = context.getNodesInFile(filePath);
|
|
610
|
+
// 1. Direct hit: the symbol is declared in this file.
|
|
611
|
+
if (want.isDefault) {
|
|
612
|
+
const direct = nodesInFile.find((n) => n.isExported && (n.kind === 'function' || n.kind === 'class'));
|
|
613
|
+
if (direct)
|
|
614
|
+
return direct;
|
|
615
|
+
}
|
|
616
|
+
else if (want.isNamespace && want.memberName) {
|
|
617
|
+
const direct = nodesInFile.find((n) => n.name === want.memberName && n.isExported);
|
|
618
|
+
if (direct)
|
|
619
|
+
return direct;
|
|
620
|
+
}
|
|
621
|
+
else {
|
|
622
|
+
const direct = nodesInFile.find((n) => n.name === want.exportedName && n.isExported);
|
|
623
|
+
if (direct)
|
|
624
|
+
return direct;
|
|
625
|
+
}
|
|
626
|
+
// 2. Re-export hit: the file forwards the symbol to another module.
|
|
627
|
+
const reExports = context.getReExports?.(filePath, language) ?? [];
|
|
628
|
+
if (reExports.length === 0)
|
|
629
|
+
return undefined;
|
|
630
|
+
// Look for explicit `export { want } from './other'` (with optional rename).
|
|
631
|
+
const targetName = want.isDefault ? 'default' : want.exportedName;
|
|
632
|
+
for (const rex of reExports) {
|
|
633
|
+
if (rex.kind === 'named' && rex.exportedName === targetName) {
|
|
634
|
+
const next = resolveImportPath(rex.source, filePath, language, context);
|
|
635
|
+
if (!next)
|
|
636
|
+
continue;
|
|
637
|
+
// After rename: `export { foo as bar } from './x'` — to chase
|
|
638
|
+
// `bar`, we look for `foo` in `./x`.
|
|
639
|
+
const chained = findExportedSymbol(next, {
|
|
640
|
+
isDefault: rex.originalName === 'default',
|
|
641
|
+
isNamespace: false,
|
|
642
|
+
exportedName: rex.originalName,
|
|
643
|
+
memberName: null,
|
|
644
|
+
}, language, context, visited, depth + 1);
|
|
645
|
+
if (chained)
|
|
646
|
+
return chained;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
// 3. Wildcard re-export: `export * from './other'` — try every
|
|
650
|
+
// forwarding source. This is the barrel-of-barrels case.
|
|
651
|
+
for (const rex of reExports) {
|
|
652
|
+
if (rex.kind === 'wildcard') {
|
|
653
|
+
const next = resolveImportPath(rex.source, filePath, language, context);
|
|
654
|
+
if (!next)
|
|
655
|
+
continue;
|
|
656
|
+
const chained = findExportedSymbol(next, want, language, context, visited, depth + 1);
|
|
657
|
+
if (chained)
|
|
658
|
+
return chained;
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
return undefined;
|
|
662
|
+
}
|
|
453
663
|
//# sourceMappingURL=import-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../src/resolution/import-resolver.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BH,8CAqBC;AAiID,sDAkBC;AA2OD,0DAEC;AAKD,4CA4DC;AA9eD,2CAA6B;AAI7B;;GAEG;AACH,MAAM,oBAAoB,GAA6B;IACrD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC;IAC3F,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;IACtE,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC;IACpF,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC;IAC/C,MAAM,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,EAAE,EAAE,CAAC,KAAK,CAAC;IACX,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;IACxB,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,GAAG,EAAE,CAAC,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,KAAK,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,UAAkB,EAClB,QAAgB,EAChB,QAAkB,EAClB,OAA0B;IAE1B,6BAA6B;IAC7B,IAAI,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/D,0BAA0B;IAC1B,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,qBAAqB,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,oDAAoD;IACpD,OAAO,oBAAoB,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,UAAkB,EAAE,QAAkB;IAC9D,oCAAoC;IACpC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2BAA2B;IAC3B,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvG,iBAAiB;QACjB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACvI,OAAO,IAAI,CAAC;QACd,CAAC;QACD,mEAAmE;QACnE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACnG,wBAAwB;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,2BAA2B;QAC3B,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/G,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,wCAAwC;QACxC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,UAAkB,EAClB,OAAe,EACf,QAAkB,EAClB,OAA0B;IAE1B,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAExD,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAE9E,qBAAqB;IACrB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,YAAY,GAAG,GAAG,CAAC;QACzC,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,UAAkB,EAClB,YAAoB,EACpB,QAAkB,EAClB,OAA0B;IAE1B,MAAM,UAAU,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAExD,iBAAiB;IACjB,MAAM,OAAO,GAA2B;QACtC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,MAAM;KACf,CAAC;IAEF,iBAAiB;IACjB,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAE5D,sBAAsB;YACtB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,YAAY,GAAG,GAAG,CAAC;gBACzC,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBACtC,OAAO,aAAa,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,YAAY;YACZ,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrC,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG,UAAU,GAAG,GAAG,CAAC;QACvC,IAAI,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,SAAiB,EACjB,OAAe,EACf,QAAkB;IAElB,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvG,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,cAAc;IACd,MAAM,WAAW,GAAG,iGAAiG,CAAC;IAEtH,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QAE5E,iBAAiB;QACjB,IAAI,aAAa,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,aAAa;gBACxB,YAAY,EAAE,SAAS;gBACvB,MAAM,EAAE,MAAO;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACpD,IAAI,UAAU,EAAE,CAAC;oBACf,QAAQ,CAAC,IAAI,CAAC;wBACZ,SAAS,EAAE,UAAU,CAAC,CAAC,CAAE;wBACzB,YAAY,EAAE,UAAU,CAAC,CAAC,CAAE;wBAC5B,MAAM,EAAE,MAAO;wBACf,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC;wBACZ,SAAS,EAAE,IAAI;wBACf,YAAY,EAAE,IAAI;wBAClB,MAAM,EAAE,MAAO;wBACf,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,IAAI,cAAc,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,cAAc;gBACzB,YAAY,EAAE,GAAG;gBACjB,MAAM,EAAE,MAAO;gBACf,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,MAAM,YAAY,GAAG,4EAA4E,CAAC;IAClG,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QAEpD,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,WAAW;gBACtB,YAAY,EAAE,SAAS;gBACvB,MAAM,EAAE,MAAO;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACnD,IAAI,UAAU,EAAE,CAAC;oBACf,QAAQ,CAAC,IAAI,CAAC;wBACZ,SAAS,EAAE,UAAU,CAAC,CAAC,CAAE;wBACzB,YAAY,EAAE,UAAU,CAAC,CAAC,CAAE;wBAC5B,MAAM,EAAE,MAAO;wBACf,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,IAAI,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC;wBACZ,SAAS,EAAE,IAAI;wBACf,YAAY,EAAE,IAAI;wBAClB,MAAM,EAAE,MAAO;wBACf,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,KAAK;qBACnB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAe;IAC3C,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,kBAAkB;IAClB,MAAM,eAAe,GAAG,uCAAuC,CAAC;IAChE,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;QAClC,MAAM,KAAK,GAAG,OAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAEvD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,UAAU,CAAC,CAAC,CAAE;oBACzB,YAAY,EAAE,UAAU,CAAC,CAAC,CAAE;oBAC5B,MAAM,EAAE,MAAO;oBACf,SAAS,EAAE,KAAK;oBAChB,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC;oBACZ,SAAS,EAAE,IAAI;oBACf,YAAY,EAAE,IAAI;oBAClB,MAAM,EAAE,MAAO;oBACf,SAAS,EAAE,KAAK;oBAChB,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW;IACX,MAAM,WAAW,GAAG,wCAAwC,CAAC;IAC7D,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpD,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;QAChC,MAAM,SAAS,GAAG,KAAK,IAAI,MAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS;YACT,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,MAAO;YACf,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,uCAAuC;IACvC,MAAM,iBAAiB,GAAG,yCAAyC,CAAC;IACpE,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QAChC,MAAM,WAAW,GAAG,MAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,KAAK,IAAI,WAAW;YAC/B,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,MAAO;YACf,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,MAAM,gBAAgB,GAAG,8BAA8B,CAAC;IACxD,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,SAAS,GAAG,gCAAgC,CAAC;QACnD,IAAI,SAAS,CAAC;QAEd,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;YACpC,MAAM,WAAW,GAAG,MAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE,KAAK,IAAI,WAAW;gBAC/B,YAAY,EAAE,GAAG;gBACjB,MAAM,EAAE,MAAO;gBACf,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,QAAQ,GAAoB,EAAE,CAAC;IAErC,wDAAwD;IACxD,MAAM,QAAQ,GAAG,qCAAqC,CAAC;IACvD,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;QAClC,MAAM,SAAS,GAAG,QAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAG,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,KAAK,IAAI,SAAS;YAC7B,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,QAAS;YACjB,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,oEAAoE;AACpE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA2B,CAAC;AAE9D;;GAEG;AACH,SAAgB,uBAAuB;IACrC,kBAAkB,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,GAAkB,EAClB,OAA0B;IAE1B,wEAAwE;IACxE,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iDAAiD;IACjD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,EAAE,CAAC;YAC7F,0BAA0B;YAC1B,MAAM,YAAY,GAAG,iBAAiB,CACpC,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,QAAQ,EACZ,OAAO,CACR,CAAC;YAEF,IAAI,YAAY,EAAE,CAAC;gBACjB,gDAAgD;gBAChD,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACzD,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC;gBAElE,sBAAsB;gBACtB,IAAI,UAA4B,CAAC;gBAEjC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;oBAClB,6CAA6C;oBAC7C,UAAU,GAAG,WAAW,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CACrE,CAAC;gBACJ,CAAC;qBAAM,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;oBAC3B,kDAAkD;oBAClD,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;oBACtE,UAAU,GAAG,WAAW,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,UAAU,CAC7C,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,eAAe;oBACf,UAAU,GAAG,WAAW,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,UAAU,CAC/C,CAAC;gBACJ,CAAC;gBAED,IAAI,UAAU,EAAE,CAAC;oBACf,OAAO;wBACL,QAAQ,EAAE,GAAG;wBACb,YAAY,EAAE,UAAU,CAAC,EAAE;wBAC3B,UAAU,EAAE,GAAG;wBACf,UAAU,EAAE,QAAQ;qBACrB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"import-resolver.js","sourceRoot":"","sources":["../../src/resolution/import-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,12 +20,14 @@ export declare class ReferenceResolver {
|
|
|
20
20
|
private nodeCache;
|
|
21
21
|
private fileCache;
|
|
22
22
|
private importMappingCache;
|
|
23
|
+
private reExportCache;
|
|
23
24
|
private nameCache;
|
|
24
25
|
private lowerNameCache;
|
|
25
26
|
private qualifiedNameCache;
|
|
26
27
|
private knownNames;
|
|
27
28
|
private knownFiles;
|
|
28
29
|
private cachesWarmed;
|
|
30
|
+
private projectAliases;
|
|
29
31
|
constructor(projectRoot: string, queries: QueryBuilder);
|
|
30
32
|
/**
|
|
31
33
|
* Initialize the resolver (detect frameworks, etc.)
|
|
@@ -56,6 +58,12 @@ export declare class ReferenceResolver {
|
|
|
56
58
|
* for names that definitely don't exist as symbols.
|
|
57
59
|
*/
|
|
58
60
|
private hasAnyPossibleMatch;
|
|
61
|
+
/**
|
|
62
|
+
* Does `ref.referenceName` match an import declared in its containing
|
|
63
|
+
* file? Used as a pre-filter escape so re-export chain resolution
|
|
64
|
+
* still gets a chance when the name has no project-wide declaration.
|
|
65
|
+
*/
|
|
66
|
+
private matchesAnyImport;
|
|
59
67
|
/**
|
|
60
68
|
* Resolve a single reference
|
|
61
69
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolution/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAQ,mBAAmB,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,WAAW,EACX,gBAAgB,EAIjB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolution/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAQ,mBAAmB,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,aAAa,EACb,WAAW,EACX,gBAAgB,EAIjB,MAAM,SAAS,CAAC;AASjB,cAAc,SAAS,CAAC;AAuFxB;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,kBAAkB,CAA2C;IACrE,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,YAAY,CAAS;IAI7B,OAAO,CAAC,cAAc,CAA0C;gBAEpD,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAMtD;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;OAKG;IACH,UAAU,IAAI,IAAI;IAYlB;;OAEG;IACH,WAAW,IAAI,IAAI;IAanB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoHrB;;OAEG;IACH,UAAU,CACR,cAAc,EAAE,mBAAmB,EAAE,EACrC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpD,gBAAgB;IA4DnB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,GAAG,IAAI;IAgDlD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE;IAyC5C;;OAEG;IACH,iBAAiB,CACf,cAAc,EAAE,mBAAmB,EAAE,EACrC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpD,gBAAgB;IAyBnB;;;;OAIG;IACG,wBAAwB,CAC5B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EACrD,SAAS,GAAE,MAAa,GACvB,OAAO,CAAC,gBAAgB,CAAC;IA4E5B;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6E3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAI9B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,iBAAiB,CAI5F"}
|
package/dist/resolution/index.js
CHANGED
|
@@ -48,6 +48,7 @@ const path = __importStar(require("path"));
|
|
|
48
48
|
const name_matcher_1 = require("./name-matcher");
|
|
49
49
|
const import_resolver_1 = require("./import-resolver");
|
|
50
50
|
const frameworks_1 = require("./frameworks");
|
|
51
|
+
const path_aliases_1 = require("./path-aliases");
|
|
51
52
|
const errors_1 = require("../errors");
|
|
52
53
|
// Re-export types
|
|
53
54
|
__exportStar(require("./types"), exports);
|
|
@@ -140,12 +141,17 @@ class ReferenceResolver {
|
|
|
140
141
|
nodeCache = new Map(); // per-file node cache (bounded)
|
|
141
142
|
fileCache = new Map(); // per-file content cache (bounded)
|
|
142
143
|
importMappingCache = new Map();
|
|
144
|
+
reExportCache = new Map();
|
|
143
145
|
nameCache = new Map(); // name → nodes cache
|
|
144
146
|
lowerNameCache = new Map(); // lower(name) → nodes cache
|
|
145
147
|
qualifiedNameCache = new Map(); // qualified_name → nodes cache
|
|
146
148
|
knownNames = null; // all known symbol names for fast pre-filtering
|
|
147
149
|
knownFiles = null;
|
|
148
150
|
cachesWarmed = false;
|
|
151
|
+
// tsconfig/jsconfig path-alias map. `undefined` = not yet computed,
|
|
152
|
+
// `null` = computed and absent. Treated as immutable for the
|
|
153
|
+
// resolver's lifetime; callers re-create the resolver if config changes.
|
|
154
|
+
projectAliases = undefined;
|
|
149
155
|
constructor(projectRoot, queries) {
|
|
150
156
|
this.projectRoot = projectRoot;
|
|
151
157
|
this.queries = queries;
|
|
@@ -180,6 +186,7 @@ class ReferenceResolver {
|
|
|
180
186
|
this.nodeCache.clear();
|
|
181
187
|
this.fileCache.clear();
|
|
182
188
|
this.importMappingCache.clear();
|
|
189
|
+
this.reExportCache.clear();
|
|
183
190
|
this.nameCache.clear();
|
|
184
191
|
this.lowerNameCache.clear();
|
|
185
192
|
this.qualifiedNameCache.clear();
|
|
@@ -277,6 +284,25 @@ class ReferenceResolver {
|
|
|
277
284
|
this.importMappingCache.set(cacheKey, mappings);
|
|
278
285
|
return mappings;
|
|
279
286
|
},
|
|
287
|
+
getProjectAliases: () => {
|
|
288
|
+
if (this.projectAliases === undefined) {
|
|
289
|
+
this.projectAliases = (0, path_aliases_1.loadProjectAliases)(this.projectRoot);
|
|
290
|
+
}
|
|
291
|
+
return this.projectAliases;
|
|
292
|
+
},
|
|
293
|
+
getReExports: (filePath, language) => {
|
|
294
|
+
const cached = this.reExportCache.get(filePath);
|
|
295
|
+
if (cached)
|
|
296
|
+
return cached;
|
|
297
|
+
const content = this.context.readFile(filePath);
|
|
298
|
+
if (!content) {
|
|
299
|
+
this.reExportCache.set(filePath, []);
|
|
300
|
+
return [];
|
|
301
|
+
}
|
|
302
|
+
const reExports = (0, import_resolver_1.extractReExports)(content, language);
|
|
303
|
+
this.reExportCache.set(filePath, reExports);
|
|
304
|
+
return reExports;
|
|
305
|
+
},
|
|
280
306
|
};
|
|
281
307
|
}
|
|
282
308
|
/**
|
|
@@ -373,6 +399,23 @@ class ReferenceResolver {
|
|
|
373
399
|
}
|
|
374
400
|
return false;
|
|
375
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* Does `ref.referenceName` match an import declared in its containing
|
|
404
|
+
* file? Used as a pre-filter escape so re-export chain resolution
|
|
405
|
+
* still gets a chance when the name has no project-wide declaration.
|
|
406
|
+
*/
|
|
407
|
+
matchesAnyImport(ref) {
|
|
408
|
+
const imports = this.context.getImportMappings(ref.filePath, ref.language);
|
|
409
|
+
if (imports.length === 0)
|
|
410
|
+
return false;
|
|
411
|
+
for (const imp of imports) {
|
|
412
|
+
if (imp.localName === ref.referenceName ||
|
|
413
|
+
ref.referenceName.startsWith(imp.localName + '.')) {
|
|
414
|
+
return true;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
return false;
|
|
418
|
+
}
|
|
376
419
|
/**
|
|
377
420
|
* Resolve a single reference
|
|
378
421
|
*/
|
|
@@ -382,7 +425,12 @@ class ReferenceResolver {
|
|
|
382
425
|
return null;
|
|
383
426
|
}
|
|
384
427
|
// Fast pre-filter: skip if no symbol with this name exists anywhere
|
|
385
|
-
|
|
428
|
+
// AND the name doesn't match a local import. The import escape is
|
|
429
|
+
// necessary because re-export rename chains (`import { login }
|
|
430
|
+
// from './barrel'` where the barrel has `export { signIn as login }
|
|
431
|
+
// from './auth'`) intentionally call a name that has no
|
|
432
|
+
// declaration anywhere — only the renamed upstream symbol does.
|
|
433
|
+
if (!this.hasAnyPossibleMatch(ref.referenceName) && !this.matchesAnyImport(ref)) {
|
|
386
434
|
return null;
|
|
387
435
|
}
|
|
388
436
|
const candidates = [];
|
|
@@ -428,6 +476,17 @@ class ReferenceResolver {
|
|
|
428
476
|
}
|
|
429
477
|
}
|
|
430
478
|
}
|
|
479
|
+
// Promote "calls" to "instantiates" when the resolved target is a
|
|
480
|
+
// class/struct. Languages without a `new` keyword (Python, Ruby)
|
|
481
|
+
// express instantiation as `Foo()` — extraction can't tell that
|
|
482
|
+
// apart from a function call without symbol info, but resolution
|
|
483
|
+
// can: if `Foo` resolves to a class, the call IS an instantiation.
|
|
484
|
+
if (kind === 'calls') {
|
|
485
|
+
const targetNode = this.queries.getNodeById(ref.targetNodeId);
|
|
486
|
+
if (targetNode && (targetNode.kind === 'class' || targetNode.kind === 'struct')) {
|
|
487
|
+
kind = 'instantiates';
|
|
488
|
+
}
|
|
489
|
+
}
|
|
431
490
|
return {
|
|
432
491
|
source: ref.original.fromNodeId,
|
|
433
492
|
target: ref.targetNodeId,
|