@lzehrung/codegraph 2.3.29 → 2.3.31
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/dist/bin/cli.js +6602 -4453
- package/dist/bin/query-index-worker.js +1302 -753
- package/dist/document-links/asciidoc.d.ts.map +1 -1
- package/dist/document-links/asciidoc.js +3 -4
- package/dist/document-links/asciidoc.js.map +1 -1
- package/dist/document-links/html-forms.d.ts +39 -0
- package/dist/document-links/html-forms.d.ts.map +1 -0
- package/dist/document-links/html-forms.js +94 -0
- package/dist/document-links/html-forms.js.map +1 -0
- package/dist/document-links/html.d.ts +8 -0
- package/dist/document-links/html.d.ts.map +1 -1
- package/dist/document-links/html.js +30 -15
- package/dist/document-links/html.js.map +1 -1
- package/dist/document-links/markdown.d.ts.map +1 -1
- package/dist/document-links/markdown.js +6 -7
- package/dist/document-links/markdown.js.map +1 -1
- package/dist/document-links/rst.d.ts.map +1 -1
- package/dist/document-links/rst.js +6 -0
- package/dist/document-links/rst.js.map +1 -1
- package/dist/document-links/sfc.d.ts.map +1 -1
- package/dist/document-links/sfc.js +4 -4
- package/dist/document-links/sfc.js.map +1 -1
- package/dist/graphs/angularjs.d.ts.map +1 -1
- package/dist/graphs/angularjs.js +9 -1
- package/dist/graphs/angularjs.js.map +1 -1
- package/dist/graphs/edge-resolution.d.ts.map +1 -1
- package/dist/graphs/edge-resolution.js +8 -3
- package/dist/graphs/edge-resolution.js.map +1 -1
- package/dist/graphs/specifiers.d.ts.map +1 -1
- package/dist/graphs/specifiers.js +62 -104
- package/dist/graphs/specifiers.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.js +118 -86
- package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +27 -0
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +509 -42
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/impact/call-compatibility/providers/index.d.ts +15 -1
- package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.js +21 -20
- package/dist/impact/call-compatibility/providers/index.js.map +1 -1
- package/dist/impact/call-compatibility/providers/profiles.d.ts +80 -0
- package/dist/impact/call-compatibility/providers/profiles.d.ts.map +1 -0
- package/dist/impact/call-compatibility/providers/profiles.js +164 -0
- package/dist/impact/call-compatibility/providers/profiles.js.map +1 -0
- package/dist/impact/call-compatibility.d.ts.map +1 -1
- package/dist/impact/call-compatibility.js +73 -108
- package/dist/impact/call-compatibility.js.map +1 -1
- package/dist/impact/member-resolution-coverage.d.ts.map +1 -1
- package/dist/impact/member-resolution-coverage.js +2 -2
- package/dist/impact/member-resolution-coverage.js.map +1 -1
- package/dist/indexer/build-cache/manifest.d.ts +7 -0
- package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
- package/dist/indexer/build-cache/manifest.js +32 -1
- package/dist/indexer/build-cache/manifest.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +16 -2
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +17 -3
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.js +1 -0
- package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
- package/dist/indexer/build-index.d.ts.map +1 -1
- package/dist/indexer/build-index.js +80 -2
- package/dist/indexer/build-index.js.map +1 -1
- package/dist/indexer/build-manifest.d.ts +1 -0
- package/dist/indexer/build-manifest.d.ts.map +1 -1
- package/dist/indexer/build-manifest.js +18 -0
- package/dist/indexer/build-manifest.js.map +1 -1
- package/dist/indexer/build-workers.js +1 -1
- package/dist/indexer/build-workers.js.map +1 -1
- package/dist/indexer/declaration-visibility.d.ts +43 -0
- package/dist/indexer/declaration-visibility.d.ts.map +1 -0
- package/dist/indexer/declaration-visibility.js +202 -0
- package/dist/indexer/declaration-visibility.js.map +1 -0
- package/dist/indexer/imports/binding-ranges.d.ts +2 -2
- package/dist/indexer/imports/binding-ranges.d.ts.map +1 -1
- package/dist/indexer/imports/binding-ranges.js +2 -123
- package/dist/indexer/imports/binding-ranges.js.map +1 -1
- package/dist/indexer/imports/import-binding-tables.d.ts +64 -0
- package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -0
- package/dist/indexer/imports/import-binding-tables.js +419 -0
- package/dist/indexer/imports/import-binding-tables.js.map +1 -0
- package/dist/indexer/imports/js-text-imports.d.ts.map +1 -1
- package/dist/indexer/imports/js-text-imports.js +5 -2
- package/dist/indexer/imports/js-text-imports.js.map +1 -1
- package/dist/indexer/imports/language-specific.d.ts +3 -22
- package/dist/indexer/imports/language-specific.d.ts.map +1 -1
- package/dist/indexer/imports/language-specific.js +54 -573
- package/dist/indexer/imports/language-specific.js.map +1 -1
- package/dist/indexer/imports/native-captures.d.ts.map +1 -1
- package/dist/indexer/imports/native-captures.js +23 -32
- package/dist/indexer/imports/native-captures.js.map +1 -1
- package/dist/indexer/imports/text-import-extractors.d.ts +37 -0
- package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -0
- package/dist/indexer/imports/text-import-extractors.js +358 -0
- package/dist/indexer/imports/text-import-extractors.js.map +1 -0
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +2 -1
- package/dist/indexer/imports.js.map +1 -1
- package/dist/indexer/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +23 -27
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/navigation-goto.d.ts +1 -7
- package/dist/indexer/navigation-goto.d.ts.map +1 -1
- package/dist/indexer/navigation-goto.js +181 -381
- package/dist/indexer/navigation-goto.js.map +1 -1
- package/dist/indexer/navigation-resolve.d.ts.map +1 -1
- package/dist/indexer/navigation-resolve.js +20 -1
- package/dist/indexer/navigation-resolve.js.map +1 -1
- package/dist/indexer/navigation.d.ts.map +1 -1
- package/dist/indexer/navigation.js +39 -7
- package/dist/indexer/navigation.js.map +1 -1
- package/dist/indexer/parse-context.js +2 -2
- package/dist/indexer/parse-context.js.map +1 -1
- package/dist/indexer/scope-nodes.d.ts +108 -0
- package/dist/indexer/scope-nodes.d.ts.map +1 -0
- package/dist/indexer/scope-nodes.js +238 -0
- package/dist/indexer/scope-nodes.js.map +1 -0
- package/dist/indexer/scope.d.ts.map +1 -1
- package/dist/indexer/scope.js +70 -130
- package/dist/indexer/scope.js.map +1 -1
- package/dist/indexer/types.d.ts +7 -0
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.d.ts +18 -4
- package/dist/languages/definitions/c-family.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.js +51 -13
- package/dist/languages/definitions/c-family.js.map +1 -1
- package/dist/languages/definitions/c.d.ts.map +1 -1
- package/dist/languages/definitions/c.js +7 -43
- package/dist/languages/definitions/c.js.map +1 -1
- package/dist/languages/definitions/cpp.d.ts.map +1 -1
- package/dist/languages/definitions/cpp.js +15 -61
- package/dist/languages/definitions/cpp.js.map +1 -1
- package/dist/languages/definitions/csharp.d.ts.map +1 -1
- package/dist/languages/definitions/csharp.js +46 -52
- package/dist/languages/definitions/csharp.js.map +1 -1
- package/dist/languages/definitions/css-like.d.ts.map +1 -1
- package/dist/languages/definitions/css-like.js +13 -10
- package/dist/languages/definitions/css-like.js.map +1 -1
- package/dist/languages/definitions/go.d.ts.map +1 -1
- package/dist/languages/definitions/go.js +29 -42
- package/dist/languages/definitions/go.js.map +1 -1
- package/dist/languages/definitions/html.d.ts.map +1 -1
- package/dist/languages/definitions/html.js +15 -14
- package/dist/languages/definitions/html.js.map +1 -1
- package/dist/languages/definitions/java.d.ts.map +1 -1
- package/dist/languages/definitions/java.js +42 -48
- package/dist/languages/definitions/java.js.map +1 -1
- package/dist/languages/definitions/javascript.d.ts.map +1 -1
- package/dist/languages/definitions/javascript.js +26 -54
- package/dist/languages/definitions/javascript.js.map +1 -1
- package/dist/languages/definitions/js-family.d.ts +15 -1
- package/dist/languages/definitions/js-family.d.ts.map +1 -1
- package/dist/languages/definitions/js-family.js +51 -0
- package/dist/languages/definitions/js-family.js.map +1 -1
- package/dist/languages/definitions/kotlin.d.ts.map +1 -1
- package/dist/languages/definitions/kotlin.js +26 -43
- package/dist/languages/definitions/kotlin.js.map +1 -1
- package/dist/languages/definitions/php.d.ts.map +1 -1
- package/dist/languages/definitions/php.js +50 -60
- package/dist/languages/definitions/php.js.map +1 -1
- package/dist/languages/definitions/python.d.ts.map +1 -1
- package/dist/languages/definitions/python.js +23 -14
- package/dist/languages/definitions/python.js.map +1 -1
- package/dist/languages/definitions/ruby.d.ts.map +1 -1
- package/dist/languages/definitions/ruby.js +14 -17
- package/dist/languages/definitions/ruby.js.map +1 -1
- package/dist/languages/definitions/rust.d.ts.map +1 -1
- package/dist/languages/definitions/rust.js +30 -52
- package/dist/languages/definitions/rust.js.map +1 -1
- package/dist/languages/definitions/scss.d.ts.map +1 -1
- package/dist/languages/definitions/scss.js +33 -49
- package/dist/languages/definitions/scss.js.map +1 -1
- package/dist/languages/definitions/sfc-graph.d.ts +4 -0
- package/dist/languages/definitions/sfc-graph.d.ts.map +1 -0
- package/dist/languages/definitions/sfc-graph.js +16 -0
- package/dist/languages/definitions/sfc-graph.js.map +1 -0
- package/dist/languages/definitions/shared.d.ts +33 -0
- package/dist/languages/definitions/shared.d.ts.map +1 -0
- package/dist/languages/definitions/shared.js +63 -0
- package/dist/languages/definitions/shared.js.map +1 -0
- package/dist/languages/definitions/sql.d.ts.map +1 -1
- package/dist/languages/definitions/sql.js +1 -0
- package/dist/languages/definitions/sql.js.map +1 -1
- package/dist/languages/definitions/svelte.d.ts.map +1 -1
- package/dist/languages/definitions/svelte.js +2 -10
- package/dist/languages/definitions/svelte.js.map +1 -1
- package/dist/languages/definitions/swift.d.ts.map +1 -1
- package/dist/languages/definitions/swift.js +37 -31
- package/dist/languages/definitions/swift.js.map +1 -1
- package/dist/languages/definitions/typescript.d.ts.map +1 -1
- package/dist/languages/definitions/typescript.js +56 -90
- package/dist/languages/definitions/typescript.js.map +1 -1
- package/dist/languages/definitions/vue.d.ts.map +1 -1
- package/dist/languages/definitions/vue.js +2 -10
- package/dist/languages/definitions/vue.js.map +1 -1
- package/dist/languages/definitions/zig.d.ts.map +1 -1
- package/dist/languages/definitions/zig.js +9 -15
- package/dist/languages/definitions/zig.js.map +1 -1
- package/dist/languages/graph-captures.d.ts +40 -0
- package/dist/languages/graph-captures.d.ts.map +1 -0
- package/dist/languages/graph-captures.js +46 -0
- package/dist/languages/graph-captures.js.map +1 -0
- package/dist/languages/import-statement-parsers.d.ts +17 -0
- package/dist/languages/import-statement-parsers.d.ts.map +1 -1
- package/dist/languages/import-statement-parsers.js +108 -0
- package/dist/languages/import-statement-parsers.js.map +1 -1
- package/dist/languages/js-family.d.ts +2 -0
- package/dist/languages/js-family.d.ts.map +1 -1
- package/dist/languages/js-family.js +15 -6
- package/dist/languages/js-family.js.map +1 -1
- package/dist/languages/types.d.ts +4 -0
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/types.js +1 -1
- package/dist/languages/types.js.map +1 -1
- package/dist/languages.js +1 -1
- package/dist/languages.js.map +1 -1
- package/dist/native/contracts.d.ts +1 -1
- package/dist/native/contracts.d.ts.map +1 -1
- package/dist/native/js-bridge.d.ts +10 -0
- package/dist/native/js-bridge.d.ts.map +1 -1
- package/dist/native/js-bridge.js +10 -0
- package/dist/native/js-bridge.js.map +1 -1
- package/dist/native/native-backend-report.d.ts.map +1 -1
- package/dist/native/native-backend-report.js +2 -0
- package/dist/native/native-backend-report.js.map +1 -1
- package/dist/util/comments.d.ts +7 -7
- package/dist/util/comments.d.ts.map +1 -1
- package/dist/util/comments.js +15 -214
- package/dist/util/comments.js.map +1 -1
- package/dist/util/dynamic-import-tables.d.ts +88 -0
- package/dist/util/dynamic-import-tables.d.ts.map +1 -0
- package/dist/util/dynamic-import-tables.js +100 -0
- package/dist/util/dynamic-import-tables.js.map +1 -0
- package/dist/util/lines.d.ts.map +1 -1
- package/dist/util/lines.js +4 -1
- package/dist/util/lines.js.map +1 -1
- package/dist/util/member-access-tables.d.ts +72 -0
- package/dist/util/member-access-tables.d.ts.map +1 -0
- package/dist/util/member-access-tables.js +167 -0
- package/dist/util/member-access-tables.js.map +1 -0
- package/dist/util/member-access.d.ts +2 -0
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +61 -95
- package/dist/util/member-access.js.map +1 -1
- package/dist/util/paths.d.ts +4 -0
- package/dist/util/paths.d.ts.map +1 -1
- package/dist/util/paths.js +26 -0
- package/dist/util/paths.js.map +1 -1
- package/dist/util/project-files.js +1 -1
- package/dist/util/project-files.js.map +1 -1
- package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
- package/dist/util/resolution/cargo-targets.js +17 -14
- package/dist/util/resolution/cargo-targets.js.map +1 -1
- package/dist/util/resolution/cpp.d.ts +6 -0
- package/dist/util/resolution/cpp.d.ts.map +1 -0
- package/dist/util/resolution/cpp.js +69 -0
- package/dist/util/resolution/cpp.js.map +1 -0
- package/dist/util/resolution/csharp.d.ts +4 -3
- package/dist/util/resolution/csharp.d.ts.map +1 -1
- package/dist/util/resolution/csharp.js +27 -113
- package/dist/util/resolution/csharp.js.map +1 -1
- package/dist/util/resolution/files.d.ts +6 -0
- package/dist/util/resolution/files.d.ts.map +1 -1
- package/dist/util/resolution/files.js +108 -4
- package/dist/util/resolution/files.js.map +1 -1
- package/dist/util/resolution/go.d.ts +1 -0
- package/dist/util/resolution/go.d.ts.map +1 -1
- package/dist/util/resolution/go.js +4 -3
- package/dist/util/resolution/go.js.map +1 -1
- package/dist/util/resolution/jvm.d.ts +3 -3
- package/dist/util/resolution/jvm.d.ts.map +1 -1
- package/dist/util/resolution/jvm.js +90 -54
- package/dist/util/resolution/jvm.js.map +1 -1
- package/dist/util/resolution/node.js +2 -2
- package/dist/util/resolution/node.js.map +1 -1
- package/dist/util/resolution/php-composer.d.ts.map +1 -1
- package/dist/util/resolution/php-composer.js +8 -7
- package/dist/util/resolution/php-composer.js.map +1 -1
- package/dist/util/resolution/php.d.ts.map +1 -1
- package/dist/util/resolution/php.js +30 -43
- package/dist/util/resolution/php.js.map +1 -1
- package/dist/util/resolution/project-symbols.d.ts +5 -7
- package/dist/util/resolution/project-symbols.d.ts.map +1 -1
- package/dist/util/resolution/project-symbols.js +23 -9
- package/dist/util/resolution/project-symbols.js.map +1 -1
- package/dist/util/resolution/python.d.ts.map +1 -1
- package/dist/util/resolution/python.js +107 -62
- package/dist/util/resolution/python.js.map +1 -1
- package/dist/util/resolution/rust.d.ts.map +1 -1
- package/dist/util/resolution/rust.js +45 -34
- package/dist/util/resolution/rust.js.map +1 -1
- package/dist/util/resolution/tsconfig.d.ts.map +1 -1
- package/dist/util/resolution/tsconfig.js +3 -9
- package/dist/util/resolution/tsconfig.js.map +1 -1
- package/dist/util/resolution-candidates.d.ts +5 -1
- package/dist/util/resolution-candidates.d.ts.map +1 -1
- package/dist/util/resolution-candidates.js +18 -0
- package/dist/util/resolution-candidates.js.map +1 -1
- package/dist/util/resolution.d.ts.map +1 -1
- package/dist/util/resolution.js +93 -49
- package/dist/util/resolution.js.map +1 -1
- package/dist/util/specifiers.d.ts +4 -10
- package/dist/util/specifiers.d.ts.map +1 -1
- package/dist/util/specifiers.js +131 -165
- package/dist/util/specifiers.js.map +1 -1
- package/dist/util/trivia-tables.d.ts +69 -0
- package/dist/util/trivia-tables.d.ts.map +1 -0
- package/dist/util/trivia-tables.js +186 -0
- package/dist/util/trivia-tables.js.map +1 -0
- package/dist/util/trivia.d.ts +24 -0
- package/dist/util/trivia.d.ts.map +1 -0
- package/dist/util/trivia.js +621 -0
- package/dist/util/trivia.js.map +1 -0
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +1 -1
- package/dist/util.js.map +1 -1
- package/dist/worker/native-extract-worker.d.ts.map +1 -1
- package/dist/worker/native-extract-worker.js +4 -4
- package/dist/worker/native-extract-worker.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import fsp from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import {
|
|
3
|
+
import { buildDeclaredContainerIndex, getOrCreateProjectSymbolIndex, } from "./project-symbols.js";
|
|
4
4
|
import { JAVA_IDENTIFIER_IGNORABLE_SOURCE, JAVA_IDENTIFIER_SOURCE, KOTLIN_IDENTIFIER_SOURCE } from "../identifiers.js";
|
|
5
|
+
import { confineResolvedPath, readUtf8WithoutBom } from "../paths.js";
|
|
6
|
+
import { getImportableLanguageGlobs } from "../resolution-candidates.js";
|
|
7
|
+
import { JVM_PACKAGE_MANIFEST_NAMES, resolveNearestManifestRoot } from "./files.js";
|
|
5
8
|
const KOTLIN_PACKAGE_PATTERN = new RegExp(String.raw `^\s*package\s+(${KOTLIN_IDENTIFIER_SOURCE}(?:\.${KOTLIN_IDENTIFIER_SOURCE})*)`, "mu");
|
|
6
9
|
const KOTLIN_DECLARATION_PATTERN = new RegExp(String.raw `\b(?:class|object|fun|typealias|interface)\s+(${KOTLIN_IDENTIFIER_SOURCE})`, "gu");
|
|
7
10
|
const JAVA_PACKAGE_PATTERN = new RegExp(String.raw `^\s*package\s+(${JAVA_IDENTIFIER_SOURCE}(?:\.${JAVA_IDENTIFIER_SOURCE})*)\s*;`, "mu");
|
|
@@ -17,7 +20,7 @@ async function readJvmSymbolIndex(filePath, cache, options) {
|
|
|
17
20
|
const cached = cache.get(filePath);
|
|
18
21
|
if (cached)
|
|
19
22
|
return cached;
|
|
20
|
-
const source = await
|
|
23
|
+
const source = await readUtf8WithoutBom(filePath);
|
|
21
24
|
const packageName = source.match(options.packagePattern)?.[1] ?? null;
|
|
22
25
|
const symbols = new Set();
|
|
23
26
|
for (const match of source.matchAll(options.declarationPattern)) {
|
|
@@ -46,84 +49,117 @@ async function readJavaSymbolIndex(filePath) {
|
|
|
46
49
|
normalizeSymbol: (symbol) => symbol.replace(JAVA_IDENTIFIER_IGNORABLE_PATTERN, ""),
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
|
-
async function getJvmLanguageProjectSymbolIndex(
|
|
50
|
-
return await getOrCreateProjectSymbolIndex(cache,
|
|
52
|
+
async function getJvmLanguageProjectSymbolIndex(indexRoot, cache, languageId, readSymbolIndex) {
|
|
53
|
+
return await getOrCreateProjectSymbolIndex(cache, indexRoot, async () => buildDeclaredContainerIndex(indexRoot, getImportableLanguageGlobs(languageId), async (filePath) => {
|
|
54
|
+
const entry = await readSymbolIndex(filePath);
|
|
55
|
+
if (entry.packageName === null)
|
|
56
|
+
return [];
|
|
57
|
+
return [{ name: entry.packageName, symbols: entry.symbols }];
|
|
58
|
+
}));
|
|
51
59
|
}
|
|
52
|
-
async function getKotlinProjectSymbolIndex(
|
|
53
|
-
return await getJvmLanguageProjectSymbolIndex(
|
|
60
|
+
async function getKotlinProjectSymbolIndex(indexRoot) {
|
|
61
|
+
return await getJvmLanguageProjectSymbolIndex(indexRoot, kotlinProjectSymbolIndexCache, "kotlin", readKotlinSymbolIndex);
|
|
54
62
|
}
|
|
55
|
-
async function getJavaProjectSymbolIndex(
|
|
56
|
-
return await getJvmLanguageProjectSymbolIndex(
|
|
63
|
+
async function getJavaProjectSymbolIndex(indexRoot) {
|
|
64
|
+
return await getJvmLanguageProjectSymbolIndex(indexRoot, javaProjectSymbolIndexCache, "java", readJavaSymbolIndex);
|
|
57
65
|
}
|
|
58
|
-
async function getJvmProjectSymbolIndex(
|
|
66
|
+
async function getJvmProjectSymbolIndex(indexRoot, languageId) {
|
|
59
67
|
if (languageId === "kotlin") {
|
|
60
|
-
return await getKotlinProjectSymbolIndex(
|
|
68
|
+
return await getKotlinProjectSymbolIndex(indexRoot);
|
|
61
69
|
}
|
|
62
|
-
return await getJavaProjectSymbolIndex(
|
|
70
|
+
return await getJavaProjectSymbolIndex(indexRoot);
|
|
63
71
|
}
|
|
64
|
-
|
|
65
|
-
const
|
|
72
|
+
async function confineJvmResolvedPath(projectRoot, resolved) {
|
|
73
|
+
const confined = await confineResolvedPath(projectRoot, resolved);
|
|
74
|
+
if (!confined)
|
|
75
|
+
return null;
|
|
76
|
+
try {
|
|
77
|
+
const st = await fsp.stat(confined);
|
|
78
|
+
if (st.isDirectory())
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return confined;
|
|
85
|
+
}
|
|
86
|
+
async function jvmIndexRoot(projectRoot, fromFile) {
|
|
87
|
+
return await resolveNearestManifestRoot(projectRoot, fromFile, JVM_PACKAGE_MANIFEST_NAMES);
|
|
88
|
+
}
|
|
89
|
+
export async function resolveJvmPackageImportPaths(projectRoot, spec, languageId, fromFile) {
|
|
90
|
+
const indexRoot = await jvmIndexRoot(projectRoot, fromFile);
|
|
91
|
+
const projectIndex = await getJvmProjectSymbolIndex(indexRoot, languageId);
|
|
66
92
|
const packageCandidates = projectIndex.filesByPackage.get(spec) ?? [];
|
|
67
|
-
|
|
93
|
+
const confined = [];
|
|
94
|
+
for (const candidate of packageCandidates) {
|
|
95
|
+
const hit = await confineJvmResolvedPath(projectRoot, candidate);
|
|
96
|
+
if (hit)
|
|
97
|
+
confined.push(hit);
|
|
98
|
+
}
|
|
99
|
+
return confined;
|
|
68
100
|
}
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
const
|
|
101
|
+
async function resolveJvmImportPath(projectRoot, spec, options) {
|
|
102
|
+
const cache = options.languageId === "kotlin" ? kotlinImportResolutionCache : javaImportResolutionCache;
|
|
103
|
+
const indexRoot = await jvmIndexRoot(projectRoot, options.fromFile);
|
|
104
|
+
const cacheKey = `${path.resolve(projectRoot)}::${indexRoot}::${spec}`;
|
|
105
|
+
const cached = cache.get(cacheKey);
|
|
72
106
|
if (cached !== undefined)
|
|
73
107
|
return cached;
|
|
74
108
|
const parts = spec.split(".").filter(Boolean);
|
|
75
|
-
const projectIndex = await
|
|
109
|
+
const projectIndex = await getJvmProjectSymbolIndex(indexRoot, options.languageId);
|
|
76
110
|
if (parts.length < 2) {
|
|
111
|
+
if (!options.allowBarePackage) {
|
|
112
|
+
cache.set(cacheKey, null);
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
77
115
|
const packageCandidates = projectIndex.filesByPackage.get(spec) ?? [];
|
|
78
|
-
const resolved = packageCandidates[0] ? path.resolve(packageCandidates[0]) : null;
|
|
79
|
-
|
|
116
|
+
const resolved = await confineJvmResolvedPath(projectRoot, packageCandidates[0] ? path.resolve(packageCandidates[0]) : null);
|
|
117
|
+
cache.set(cacheKey, resolved);
|
|
80
118
|
return resolved;
|
|
81
119
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
const symbolFiles = projectIndex.filesByPackageSymbol.get(packageName)?.get(importedName) ?? [];
|
|
91
|
-
const resolved = symbolFiles.length === 1 ? path.resolve(symbolFiles[0]) : null;
|
|
92
|
-
kotlinImportResolutionCache.set(cacheKey, resolved);
|
|
93
|
-
return resolved;
|
|
94
|
-
}
|
|
95
|
-
export async function resolveJavaImportPath(projectRoot, spec) {
|
|
96
|
-
const cacheKey = `${projectRoot}::${spec}`;
|
|
97
|
-
const cached = javaImportResolutionCache.get(cacheKey);
|
|
98
|
-
if (cached !== undefined)
|
|
99
|
-
return cached;
|
|
100
|
-
const parts = spec.split(".").filter(Boolean);
|
|
101
|
-
if (parts.length < 2) {
|
|
102
|
-
javaImportResolutionCache.set(cacheKey, null);
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
const projectIndex = await getJavaProjectSymbolIndex(projectRoot);
|
|
106
|
-
const exactPackageFiles = projectIndex.filesByPackage.get(spec) ?? [];
|
|
107
|
-
if (exactPackageFiles[0]) {
|
|
108
|
-
const resolved = path.resolve(exactPackageFiles[0]);
|
|
109
|
-
javaImportResolutionCache.set(cacheKey, resolved);
|
|
110
|
-
return resolved;
|
|
120
|
+
if (options.matchExactPackage) {
|
|
121
|
+
const exactPackageFiles = projectIndex.filesByPackage.get(spec) ?? [];
|
|
122
|
+
if (exactPackageFiles[0]) {
|
|
123
|
+
const resolved = await confineJvmResolvedPath(projectRoot, path.resolve(exactPackageFiles[0]));
|
|
124
|
+
cache.set(cacheKey, resolved);
|
|
125
|
+
return resolved;
|
|
126
|
+
}
|
|
111
127
|
}
|
|
112
128
|
const importedName = parts[parts.length - 1];
|
|
113
129
|
const packageName = parts.slice(0, -1).join(".");
|
|
114
130
|
const packageCandidates = projectIndex.filesByPackage.get(packageName) ?? [];
|
|
115
131
|
if (importedName === "*") {
|
|
116
|
-
const resolved = packageCandidates[0] ? path.resolve(packageCandidates[0]) : null;
|
|
117
|
-
|
|
132
|
+
const resolved = await confineJvmResolvedPath(projectRoot, packageCandidates[0] ? path.resolve(packageCandidates[0]) : null);
|
|
133
|
+
cache.set(cacheKey, resolved);
|
|
118
134
|
return resolved;
|
|
119
135
|
}
|
|
120
136
|
const symbolFiles = projectIndex.filesByPackageSymbol.get(packageName)?.get(importedName) ?? [];
|
|
121
|
-
const filenameMatched =
|
|
137
|
+
const filenameMatched = options.filenameFallback
|
|
138
|
+
? packageCandidates.filter((candidate) => path.parse(candidate).name === importedName)
|
|
139
|
+
: [];
|
|
122
140
|
const candidates = symbolFiles.length ? symbolFiles : filenameMatched;
|
|
123
|
-
const resolved = candidates.length === 1 ? path.resolve(candidates[0]) : null;
|
|
124
|
-
|
|
141
|
+
const resolved = candidates.length === 1 ? await confineJvmResolvedPath(projectRoot, path.resolve(candidates[0])) : null;
|
|
142
|
+
cache.set(cacheKey, resolved);
|
|
125
143
|
return resolved;
|
|
126
144
|
}
|
|
145
|
+
export async function resolveKotlinImportPath(projectRoot, spec, fromFile) {
|
|
146
|
+
return await resolveJvmImportPath(projectRoot, spec, {
|
|
147
|
+
languageId: "kotlin",
|
|
148
|
+
allowBarePackage: true,
|
|
149
|
+
matchExactPackage: false,
|
|
150
|
+
filenameFallback: false,
|
|
151
|
+
fromFile,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
export async function resolveJavaImportPath(projectRoot, spec, fromFile) {
|
|
155
|
+
return await resolveJvmImportPath(projectRoot, spec, {
|
|
156
|
+
languageId: "java",
|
|
157
|
+
allowBarePackage: false,
|
|
158
|
+
matchExactPackage: true,
|
|
159
|
+
filenameFallback: true,
|
|
160
|
+
fromFile,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
127
163
|
export function clearJvmResolutionCaches() {
|
|
128
164
|
kotlinImportResolutionCache.clear();
|
|
129
165
|
kotlinSymbolIndexCache.clear();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jvm.js","sourceRoot":"","sources":["../../../src/util/resolution/jvm.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"jvm.js","sourceRoot":"","sources":["../../../src/util/resolution/jvm.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { findFirstExistingResolutionCandidate } from "./find-first-existing.js";
|
|
3
3
|
import { resolvePackageExportTargets } from "../package-exports.js";
|
|
4
|
-
import { fileIdentityKey, isFilePathWithinRoot } from "../paths.js";
|
|
4
|
+
import { confineResolvedPath, fileIdentityKey, isFilePathWithinRoot } from "../paths.js";
|
|
5
5
|
import { directoryExists, loadJSON } from "../workspace.js";
|
|
6
6
|
export async function resolveFromNodeModules(spec, fromFile, projectRoot, resolutionExtensions, exportCondition = "import") {
|
|
7
7
|
try {
|
|
@@ -18,7 +18,7 @@ export async function resolveFromNodeModules(spec, fromFile, projectRoot, resolu
|
|
|
18
18
|
const pkg = await loadJSON(pkgPath);
|
|
19
19
|
const tryResolveRelative = async (rel) => {
|
|
20
20
|
const hit = await findFirstExistingResolutionCandidate(path.resolve(nmDir, rel), resolutionExtensions);
|
|
21
|
-
return
|
|
21
|
+
return await confineResolvedPath(resolvedProjectRoot, hit);
|
|
22
22
|
};
|
|
23
23
|
if (pkg && Object.hasOwn(pkg, "exports")) {
|
|
24
24
|
const exportKey = subpath ? `./${subpath}` : ".";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/util/resolution/node.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,oCAAoC,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAmC,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/util/resolution/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"php-composer.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/php-composer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"php-composer.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/php-composer.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AA6DF,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA8CnG;AAMD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAepH;AAYD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAepH;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKvG;AAED,wBAAsB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB1G;AAED,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,iBAAiB,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAiFtB;AA4BD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,GAAG,OAAO,CAK1G;AAED,wBAAgB,gCAAgC,IAAI,IAAI,CAGvD"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import fsp from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { normalizePath } from "../paths.js";
|
|
3
|
+
import { normalizePath, stripBom } from "../paths.js";
|
|
4
4
|
import { listProjectFiles } from "../project-files.js";
|
|
5
5
|
import { fileExists } from "../workspace.js";
|
|
6
6
|
import { findFirstExistingResolutionCandidate } from "./find-first-existing.js";
|
|
7
7
|
import { findNearestFile } from "./files.js";
|
|
8
|
+
import { fileHasImportableLanguageExtension, getImportableLanguageExtensions, getImportableLanguageGlobs, } from "../resolution-candidates.js";
|
|
8
9
|
const phpComposerConfigCache = new Map();
|
|
9
10
|
const phpComposerAutoloadFileCache = new Map();
|
|
10
11
|
function readComposerNamespaceDirs(value, composerDir) {
|
|
@@ -60,7 +61,7 @@ export async function loadPhpComposerConfig(composerPath) {
|
|
|
60
61
|
const pending = (async () => {
|
|
61
62
|
try {
|
|
62
63
|
const raw = await fsp.readFile(composerPath, "utf8");
|
|
63
|
-
const parsed = JSON.parse(raw);
|
|
64
|
+
const parsed = JSON.parse(stripBom(raw));
|
|
64
65
|
const composerDir = path.dirname(composerPath);
|
|
65
66
|
const autoload = parsed.autoload && typeof parsed.autoload === "object" ? parsed.autoload : {};
|
|
66
67
|
const autoloadDev = parsed["autoload-dev"] && typeof parsed["autoload-dev"] === "object"
|
|
@@ -102,7 +103,7 @@ export async function resolvePhpPsr4MappedPath(spec, mappings) {
|
|
|
102
103
|
const suffix = normalizedSpec.slice(prefix.length).replace(/\\/g, "/");
|
|
103
104
|
for (const dir of dirs) {
|
|
104
105
|
const basePath = suffix ? path.join(dir, suffix) : dir;
|
|
105
|
-
const resolved = await findFirstExistingResolutionCandidate(basePath,
|
|
106
|
+
const resolved = await findFirstExistingResolutionCandidate(basePath, getImportableLanguageExtensions("php"));
|
|
106
107
|
if (resolved)
|
|
107
108
|
return resolved;
|
|
108
109
|
}
|
|
@@ -128,7 +129,7 @@ export async function resolvePhpPsr0MappedPath(spec, mappings) {
|
|
|
128
129
|
continue;
|
|
129
130
|
for (const dir of dirs) {
|
|
130
131
|
const basePath = relativePath ? path.join(dir, relativePath) : dir;
|
|
131
|
-
const resolved = await findFirstExistingResolutionCandidate(basePath,
|
|
132
|
+
const resolved = await findFirstExistingResolutionCandidate(basePath, getImportableLanguageExtensions("php"));
|
|
132
133
|
if (resolved)
|
|
133
134
|
return resolved;
|
|
134
135
|
}
|
|
@@ -204,7 +205,7 @@ export async function getPhpComposerAutoloadFiles(composerPath, composerConfig)
|
|
|
204
205
|
try {
|
|
205
206
|
const stat = await fsp.stat(root.path);
|
|
206
207
|
if (stat.isDirectory()) {
|
|
207
|
-
const files = await listProjectFiles(root.path,
|
|
208
|
+
const files = await listProjectFiles(root.path, getImportableLanguageGlobs("php"));
|
|
208
209
|
for (const filePath of files) {
|
|
209
210
|
if (!(await phpFileMatchesNamespacePrefixes(filePath, root.namespacePrefixes))) {
|
|
210
211
|
continue;
|
|
@@ -216,7 +217,7 @@ export async function getPhpComposerAutoloadFiles(composerPath, composerConfig)
|
|
|
216
217
|
}
|
|
217
218
|
continue;
|
|
218
219
|
}
|
|
219
|
-
if (stat.isFile() && root.path
|
|
220
|
+
if (stat.isFile() && fileHasImportableLanguageExtension(root.path, "php")) {
|
|
220
221
|
if (!(await phpFileMatchesNamespacePrefixes(root.path, root.namespacePrefixes)))
|
|
221
222
|
continue;
|
|
222
223
|
if (root.applyClassmapExcludes && isPhpComposerClassmapExcluded(root.path, composerConfig))
|
|
@@ -244,7 +245,7 @@ async function phpFileMatchesNamespacePrefixes(filePath, namespacePrefixes) {
|
|
|
244
245
|
}
|
|
245
246
|
let source;
|
|
246
247
|
try {
|
|
247
|
-
source = await fsp.readFile(filePath, "utf8");
|
|
248
|
+
source = stripBom(await fsp.readFile(filePath, "utf8"));
|
|
248
249
|
}
|
|
249
250
|
catch {
|
|
250
251
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"php-composer.js","sourceRoot":"","sources":["../../../src/util/resolution/php-composer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"php-composer.js","sourceRoot":"","sources":["../../../src/util/resolution/php-composer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/php.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/php.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAuehE,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4ExB;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import fsp from "node:fs/promises";
|
|
2
1
|
import path from "node:path";
|
|
3
|
-
import { mapLimitSemaphore } from "../concurrency.js";
|
|
4
2
|
import { findFirstExistingResolutionCandidate } from "./find-first-existing.js";
|
|
5
3
|
import { clearPhpComposerResolutionCaches, findPhpComposerPath, getPhpComposerAutoloadFiles, loadPhpComposerConfig, resolvePhpPsr0MappedPath, resolvePhpPsr4MappedPath, } from "./php-composer.js";
|
|
6
4
|
export { getPhpComposerImplicitFiles } from "./php-composer.js";
|
|
7
|
-
import {
|
|
5
|
+
import { buildDeclaredContainerIndex, getOrCreateProjectSymbolIndex, } from "./project-symbols.js";
|
|
6
|
+
import { getImportableLanguageExtensions, getImportableLanguageGlobs } from "../resolution-candidates.js";
|
|
7
|
+
import { confineResolvedPath, readUtf8WithoutBom } from "../paths.js";
|
|
8
8
|
import { PHP_IDENTIFIER_SOURCE } from "../identifiers.js";
|
|
9
|
+
import { PHP_PACKAGE_MANIFEST_NAMES, resolveNearestManifestRoot } from "./files.js";
|
|
9
10
|
const PHP_IDENTIFIER_PATTERN = new RegExp(PHP_IDENTIFIER_SOURCE, "uy");
|
|
10
11
|
async function resolvePhpPathLikeSpecifier(projectRoot, fromFile, spec) {
|
|
11
12
|
let base = path.resolve(path.dirname(fromFile), spec);
|
|
@@ -15,55 +16,36 @@ async function resolvePhpPathLikeSpecifier(projectRoot, fromFile, spec) {
|
|
|
15
16
|
else if (spec.startsWith("/")) {
|
|
16
17
|
base = path.join(projectRoot, spec);
|
|
17
18
|
}
|
|
18
|
-
return await findFirstExistingResolutionCandidate(base,
|
|
19
|
+
return await confineResolvedPath(projectRoot, await findFirstExistingResolutionCandidate(base, getImportableLanguageExtensions("php")));
|
|
19
20
|
}
|
|
20
21
|
async function resolvePathLikePhpModule(projectRoot, spec) {
|
|
21
22
|
const parts = spec.split(/[/.:]+/).filter(Boolean);
|
|
22
23
|
for (let i = parts.length; i > 0; i--) {
|
|
23
24
|
const sub = parts.slice(0, i);
|
|
24
25
|
const basePath = path.join(projectRoot, ...sub);
|
|
25
|
-
const fileHit = await findFirstExistingResolutionCandidate(basePath,
|
|
26
|
+
const fileHit = await findFirstExistingResolutionCandidate(basePath, getImportableLanguageExtensions("php"));
|
|
26
27
|
if (fileHit)
|
|
27
|
-
return fileHit;
|
|
28
|
+
return await confineResolvedPath(projectRoot, fileHit);
|
|
28
29
|
}
|
|
29
30
|
return null;
|
|
30
31
|
}
|
|
31
32
|
const phpImportResolutionCache = new Map();
|
|
32
33
|
const phpSymbolIndexCache = new Map();
|
|
33
34
|
const phpProjectSymbolIndexCache = new Map();
|
|
34
|
-
async function getPhpProjectSymbolIndex(
|
|
35
|
-
return await getOrCreateProjectSymbolIndex(phpProjectSymbolIndexCache,
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const indexEntries = await mapLimitSemaphore(files, 8, async (filePath) => {
|
|
43
|
-
try {
|
|
44
|
-
const entry = await readPhpSymbolIndex(filePath);
|
|
45
|
-
return { filePath, entry };
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
for (const indexEntry of indexEntries) {
|
|
52
|
-
if (!indexEntry)
|
|
53
|
-
continue;
|
|
54
|
-
for (const packageEntry of indexEntry.entry.packageEntries) {
|
|
55
|
-
addProjectSymbolFile(index, packageEntry.packageName, indexEntry.filePath, packageEntry.symbols);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
sortProjectSymbolIndex(index);
|
|
59
|
-
return index;
|
|
60
|
-
});
|
|
35
|
+
async function getPhpProjectSymbolIndex(indexRoot) {
|
|
36
|
+
return await getOrCreateProjectSymbolIndex(phpProjectSymbolIndexCache, indexRoot, async () => buildDeclaredContainerIndex(indexRoot, getImportableLanguageGlobs("php"), async (filePath) => {
|
|
37
|
+
const entry = await readPhpSymbolIndex(filePath);
|
|
38
|
+
return entry.packageEntries.map((packageEntry) => ({
|
|
39
|
+
name: packageEntry.packageName,
|
|
40
|
+
symbols: packageEntry.symbols,
|
|
41
|
+
}));
|
|
42
|
+
}));
|
|
61
43
|
}
|
|
62
44
|
async function readPhpSymbolIndex(filePath) {
|
|
63
45
|
const cached = phpSymbolIndexCache.get(filePath);
|
|
64
46
|
if (cached)
|
|
65
47
|
return cached;
|
|
66
|
-
const source = await
|
|
48
|
+
const source = await readUtf8WithoutBom(filePath);
|
|
67
49
|
const packageEntries = extractPhpTopLevelPackageEntries(source);
|
|
68
50
|
const primaryEntry = packageEntries[0] ?? {
|
|
69
51
|
packageName: "",
|
|
@@ -399,13 +381,15 @@ function tokenizePhpSource(source) {
|
|
|
399
381
|
}
|
|
400
382
|
return tokens;
|
|
401
383
|
}
|
|
402
|
-
async function resolvePhpSymbolImportPath(projectRoot, spec, preferredKind, allowedFiles) {
|
|
384
|
+
async function resolvePhpSymbolImportPath(projectRoot, spec, preferredKind, allowedFiles, indexRoot) {
|
|
403
385
|
const normalizedSpec = spec.replace(/^\\+/, "");
|
|
404
|
-
const projectIndex = await getPhpProjectSymbolIndex(projectRoot);
|
|
386
|
+
const projectIndex = await getPhpProjectSymbolIndex(indexRoot ?? projectRoot);
|
|
405
387
|
const pickCandidate = async (candidates, symbolName) => {
|
|
406
388
|
for (const candidate of candidates) {
|
|
407
|
-
const resolvedCandidate =
|
|
408
|
-
if (
|
|
389
|
+
const resolvedCandidate = await confineResolvedPath(projectRoot, candidate);
|
|
390
|
+
if (!resolvedCandidate)
|
|
391
|
+
continue;
|
|
392
|
+
if (allowedFiles && !allowedFiles.has(resolvedCandidate) && !allowedFiles.has(path.resolve(candidate))) {
|
|
409
393
|
continue;
|
|
410
394
|
}
|
|
411
395
|
if (!symbolName || !preferredKind) {
|
|
@@ -455,23 +439,26 @@ export async function resolvePhpImportPath(projectRoot, fromFile, spec, preferre
|
|
|
455
439
|
return fileResolved;
|
|
456
440
|
}
|
|
457
441
|
const composerPath = await findPhpComposerPath(projectRoot, fromFile);
|
|
442
|
+
const indexRoot = composerPath
|
|
443
|
+
? path.dirname(path.resolve(composerPath))
|
|
444
|
+
: await resolveNearestManifestRoot(projectRoot, fromFile, PHP_PACKAGE_MANIFEST_NAMES);
|
|
458
445
|
if (composerPath) {
|
|
459
446
|
const composerConfig = await loadPhpComposerConfig(composerPath);
|
|
460
447
|
if (composerConfig) {
|
|
461
448
|
if (!preferredKind || preferredKind === "class") {
|
|
462
|
-
const psr4Resolved = await resolvePhpPsr4MappedPath(normalizedSpec, composerConfig.psr4);
|
|
449
|
+
const psr4Resolved = await confineResolvedPath(projectRoot, await resolvePhpPsr4MappedPath(normalizedSpec, composerConfig.psr4));
|
|
463
450
|
if (psr4Resolved) {
|
|
464
451
|
phpImportResolutionCache.set(cacheKey, psr4Resolved);
|
|
465
452
|
return psr4Resolved;
|
|
466
453
|
}
|
|
467
|
-
const psr0Resolved = await resolvePhpPsr0MappedPath(normalizedSpec, composerConfig.psr0);
|
|
454
|
+
const psr0Resolved = await confineResolvedPath(projectRoot, await resolvePhpPsr0MappedPath(normalizedSpec, composerConfig.psr0));
|
|
468
455
|
if (psr0Resolved) {
|
|
469
456
|
phpImportResolutionCache.set(cacheKey, psr0Resolved);
|
|
470
457
|
return psr0Resolved;
|
|
471
458
|
}
|
|
472
459
|
}
|
|
473
460
|
const autoloadFiles = await getPhpComposerAutoloadFiles(composerPath, composerConfig);
|
|
474
|
-
const symbolResolved = await resolvePhpSymbolImportPath(projectRoot, normalizedSpec, preferredKind, autoloadFiles);
|
|
461
|
+
const symbolResolved = await resolvePhpSymbolImportPath(projectRoot, normalizedSpec, preferredKind, autoloadFiles, indexRoot);
|
|
475
462
|
if (symbolResolved) {
|
|
476
463
|
phpImportResolutionCache.set(cacheKey, symbolResolved);
|
|
477
464
|
return symbolResolved;
|
|
@@ -480,12 +467,12 @@ export async function resolvePhpImportPath(projectRoot, fromFile, spec, preferre
|
|
|
480
467
|
return null;
|
|
481
468
|
}
|
|
482
469
|
}
|
|
483
|
-
const symbolResolved = await resolvePhpSymbolImportPath(projectRoot, normalizedSpec, preferredKind);
|
|
470
|
+
const symbolResolved = await resolvePhpSymbolImportPath(projectRoot, normalizedSpec, preferredKind, undefined, indexRoot);
|
|
484
471
|
if (symbolResolved) {
|
|
485
472
|
phpImportResolutionCache.set(cacheKey, symbolResolved);
|
|
486
473
|
return symbolResolved;
|
|
487
474
|
}
|
|
488
|
-
const pathLikeResolved = await resolvePathLikePhpModule(projectRoot, normalizedSpec.replace(/\\/g, "/"));
|
|
475
|
+
const pathLikeResolved = await confineResolvedPath(projectRoot, await resolvePathLikePhpModule(projectRoot, normalizedSpec.replace(/\\/g, "/")));
|
|
489
476
|
phpImportResolutionCache.set(cacheKey, pathLikeResolved);
|
|
490
477
|
return pathLikeResolved;
|
|
491
478
|
}
|