@lzehrung/codegraph 2.3.29 → 2.3.30
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 +5982 -4145
- 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 +34 -0
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +525 -25
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/impact/call-compatibility/providers/index.d.ts +3 -1
- package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.js +11 -4
- package/dist/impact/call-compatibility/providers/index.js.map +1 -1
- package/dist/impact/call-compatibility.d.ts.map +1 -1
- package/dist/impact/call-compatibility.js +2 -7
- package/dist/impact/call-compatibility.js.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 +1 -1
- 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/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.map +1 -1
- package/dist/indexer/imports/language-specific.js +30 -216
- 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/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 +180 -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/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.d.ts +2 -0
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +18 -5
- 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 +213 -164
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../src/util/resolution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolution.js","sourceRoot":"","sources":["../../src/util/resolution.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,17 +20,11 @@ export type ModuleSpecifier = {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function isJsTsTypeOnlySpecifierStatement(statement: string): boolean;
|
|
22
22
|
export declare function extractJsTsSpecifiers(source: string): ModuleSpecifier[];
|
|
23
|
-
export declare function extractJsTsDynamicSpecifiers(source: string, fromFile: string, projectRoot: string): ModuleSpecifier[];
|
|
24
23
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
|
|
29
|
-
export declare function extractPythonDynamicSpecifiers(source: string): ModuleSpecifier[];
|
|
30
|
-
/**
|
|
31
|
-
* Shared adapter boundary for opt-in dynamic import heuristics. A language adapter
|
|
32
|
-
* extracts only non-executed module candidates and leaves target resolution, provenance
|
|
33
|
-
* merging, and graph construction to the common pipeline.
|
|
24
|
+
* Shared adapter boundary for opt-in dynamic import heuristics. A language entry supplies only
|
|
25
|
+
* its call shapes and trivia mask; the shared fold turns constant arguments into candidates,
|
|
26
|
+
* while target resolution, provenance merging, and graph construction stay in the common
|
|
27
|
+
* pipeline.
|
|
34
28
|
*/
|
|
35
29
|
export declare function extractDynamicImportSpecifiers(languageId: string, source: string, fromFile: string, projectRoot: string): ModuleSpecifier[];
|
|
36
30
|
export declare function extractPythonSpecifiers(source: string): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specifiers.d.ts","sourceRoot":"","sources":["../../src/util/specifiers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"specifiers.d.ts","sourceRoot":"","sources":["../../src/util/specifiers.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,6BAA6B,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEjF,MAAM,MAAM,8BAA8B,GAAG,QAAQ,GAAG,SAAS,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAC/C,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,eAAe,CAAC,EAAE,8BAA8B,CAAC;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAcF;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAW3E;AAcD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,CA0CvE;AAwhBD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,eAAe,EAAE,CAsBnB;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAehE"}
|
package/dist/util/specifiers.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { buildJsLikeLiteralMask, stripJsLikeComments, stripPythonCommentsAndStrings } from "./comments.js";
|
|
3
3
|
import { ECMASCRIPT_IDENTIFIER_SOURCE, PYTHON_IDENTIFIER_SOURCE } from "./identifiers.js";
|
|
4
|
+
import { buildTriviaMask } from "./trivia.js";
|
|
4
5
|
import { normalizePath } from "./paths.js";
|
|
5
6
|
const JS_TS_NAMED_TYPE_SPECIFIER_PATTERN = new RegExp(String.raw `^type\s+(${ECMASCRIPT_IDENTIFIER_SOURCE})(?:\s+as\s+(${ECMASCRIPT_IDENTIFIER_SOURCE}))?$`, "u");
|
|
6
7
|
function splitJsTsNamedSpecifiers(namedBlock) {
|
|
@@ -89,7 +90,25 @@ export function extractJsTsSpecifiers(source) {
|
|
|
89
90
|
}
|
|
90
91
|
return out;
|
|
91
92
|
}
|
|
92
|
-
|
|
93
|
+
const JS_PATH_FOLD_PROFILE = {
|
|
94
|
+
bases: {
|
|
95
|
+
__dirname: "fileDir",
|
|
96
|
+
__filename: "filePath",
|
|
97
|
+
"import.meta.url": "filePath",
|
|
98
|
+
"process.cwd()": "project",
|
|
99
|
+
},
|
|
100
|
+
joinHelpers: ["path.join", "path.resolve"],
|
|
101
|
+
};
|
|
102
|
+
const RUBY_PATH_FOLD_PROFILE = {
|
|
103
|
+
bases: { __dir__: "fileDir" },
|
|
104
|
+
joinHelpers: ["File.join"],
|
|
105
|
+
};
|
|
106
|
+
const PHP_PATH_FOLD_PROFILE = {
|
|
107
|
+
bases: { __DIR__: "fileDir", "dirname(__FILE__)": "fileDir" },
|
|
108
|
+
joinHelpers: [],
|
|
109
|
+
concat: ".",
|
|
110
|
+
};
|
|
111
|
+
function parseQuotedStringToken(token) {
|
|
93
112
|
const trimmed = token.trim();
|
|
94
113
|
if (trimmed.length < 2)
|
|
95
114
|
return null;
|
|
@@ -102,7 +121,7 @@ function parseStringLiteralToken(token) {
|
|
|
102
121
|
return null;
|
|
103
122
|
return trimmed.slice(1, -1);
|
|
104
123
|
}
|
|
105
|
-
function
|
|
124
|
+
function splitTopLevelDelimited(text, delimiter) {
|
|
106
125
|
const args = [];
|
|
107
126
|
let current = "";
|
|
108
127
|
let depth = 0;
|
|
@@ -142,7 +161,7 @@ function splitTopLevelArgs(text) {
|
|
|
142
161
|
current += ch;
|
|
143
162
|
continue;
|
|
144
163
|
}
|
|
145
|
-
if (ch ===
|
|
164
|
+
if (ch === delimiter && depth === 0) {
|
|
146
165
|
const trimmed = current.trim();
|
|
147
166
|
if (trimmed)
|
|
148
167
|
args.push(trimmed);
|
|
@@ -158,34 +177,39 @@ function splitTopLevelArgs(text) {
|
|
|
158
177
|
args.push(tail);
|
|
159
178
|
return args;
|
|
160
179
|
}
|
|
161
|
-
function
|
|
180
|
+
function parsePathToken(token, profile) {
|
|
162
181
|
const compact = token.replace(/\s+/g, "");
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
return { kind: "base", base: "filePath" };
|
|
168
|
-
}
|
|
169
|
-
if (compact === "process.cwd()") {
|
|
170
|
-
return { kind: "base", base: "project" };
|
|
171
|
-
}
|
|
172
|
-
const literal = parseStringLiteralToken(token);
|
|
182
|
+
const base = profile.bases[compact];
|
|
183
|
+
if (base)
|
|
184
|
+
return { kind: "base", base };
|
|
185
|
+
const literal = parseQuotedStringToken(token);
|
|
173
186
|
if (literal !== null) {
|
|
174
187
|
return { kind: "literal", value: literal };
|
|
175
188
|
}
|
|
176
189
|
return null;
|
|
177
190
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
191
|
+
const JOIN_HELPER_PATTERNS = new WeakMap();
|
|
192
|
+
function joinHelperPatternFor(profile) {
|
|
193
|
+
let pattern = JOIN_HELPER_PATTERNS.get(profile);
|
|
194
|
+
if (pattern === undefined) {
|
|
195
|
+
pattern = profile.joinHelpers.length
|
|
196
|
+
? new RegExp(`^\\s*(?:${profile.joinHelpers
|
|
197
|
+
.map((name) => name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"))
|
|
198
|
+
.join("|")})\\s*\\(([\\s\\S]*)\\)\\s*$`)
|
|
199
|
+
: null;
|
|
200
|
+
JOIN_HELPER_PATTERNS.set(profile, pattern);
|
|
201
|
+
}
|
|
202
|
+
return pattern;
|
|
203
|
+
}
|
|
204
|
+
/** Folds an already-split argument list into one rooted base plus literal segments; mixed
|
|
205
|
+
* bases, missing bases, and unparseable tokens fold to null. */
|
|
206
|
+
function foldPathTokens(args, profile) {
|
|
207
|
+
if (!args.length)
|
|
184
208
|
return null;
|
|
185
209
|
let base = null;
|
|
186
210
|
const segments = [];
|
|
187
211
|
for (const arg of args) {
|
|
188
|
-
const token =
|
|
212
|
+
const token = parsePathToken(arg, profile);
|
|
189
213
|
if (!token)
|
|
190
214
|
return null;
|
|
191
215
|
if (token.kind === "base") {
|
|
@@ -201,17 +225,36 @@ function parsePathCallArg(argText) {
|
|
|
201
225
|
return null;
|
|
202
226
|
return { base, segments };
|
|
203
227
|
}
|
|
204
|
-
|
|
228
|
+
/**
|
|
229
|
+
* Shared constant-path fold for dynamic-import heuristics: either a join-helper call such as
|
|
230
|
+
* `path.join(__dirname, "src")` or, where the language declares a concatenation operator, a
|
|
231
|
+
* constant chain such as `__DIR__ . "/config.php"`. Anything needing runtime evaluation
|
|
232
|
+
* (variables, template placeholders, mixed bases) folds to null.
|
|
233
|
+
*/
|
|
234
|
+
function foldPathArgument(argText, profile) {
|
|
235
|
+
const joinPattern = joinHelperPatternFor(profile);
|
|
236
|
+
const joinMatch = joinPattern ? joinPattern.exec(argText) : null;
|
|
237
|
+
if (joinMatch) {
|
|
238
|
+
const args = splitTopLevelDelimited(joinMatch[1] ?? "", ",");
|
|
239
|
+
return args ? foldPathTokens(args, profile) : null;
|
|
240
|
+
}
|
|
241
|
+
if (profile.concat !== undefined) {
|
|
242
|
+
const parts = splitTopLevelDelimited(argText, profile.concat);
|
|
243
|
+
return parts ? foldPathTokens(parts, profile) : null;
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
function foldNewUrlArgument(argText, profile) {
|
|
205
248
|
const match = argText.match(/^\s*new\s+URL\s*\(([\s\S]*)\)\s*$/);
|
|
206
249
|
if (!match)
|
|
207
250
|
return null;
|
|
208
|
-
const args =
|
|
251
|
+
const args = splitTopLevelDelimited(match[1] ?? "", ",");
|
|
209
252
|
if (!args || args.length < 2)
|
|
210
253
|
return null;
|
|
211
|
-
const firstLiteral =
|
|
254
|
+
const firstLiteral = parseQuotedStringToken(args[0] ?? "");
|
|
212
255
|
if (!firstLiteral)
|
|
213
256
|
return null;
|
|
214
|
-
const baseToken =
|
|
257
|
+
const baseToken = parsePathToken(args[1] ?? "", profile);
|
|
215
258
|
if (!baseToken || baseToken.kind !== "base")
|
|
216
259
|
return null;
|
|
217
260
|
if (baseToken.base !== "filePath")
|
|
@@ -225,111 +268,90 @@ function buildRelativeSpecifier(fromFile, targetPath) {
|
|
|
225
268
|
return null;
|
|
226
269
|
return rel.startsWith(".") ? rel : `./${rel}`;
|
|
227
270
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
const addSpec = (spec) => {
|
|
235
|
-
if (!spec || seen.has(spec))
|
|
236
|
-
return;
|
|
237
|
-
seen.add(spec);
|
|
238
|
-
out.push({ spec, resolved: "heuristic", confidence: 0.7 });
|
|
239
|
-
};
|
|
240
|
-
const pathCallRe = /(?<!["'`])\b(?:require|import)\s*\(\s*(path\.(?:join|resolve)\s*\((?:[^()]|\([^()]*\))*\))\s*\)/g;
|
|
241
|
-
for (const match of src.matchAll(pathCallRe)) {
|
|
242
|
-
if (!matchStartsInCode(literalMask, match))
|
|
243
|
-
continue;
|
|
244
|
-
const argText = match[1] ?? "";
|
|
245
|
-
const parsed = parsePathCallArg(argText);
|
|
246
|
-
if (!parsed)
|
|
247
|
-
continue;
|
|
248
|
-
let basePath = projectRoot;
|
|
249
|
-
if (parsed.base === "fileDir") {
|
|
250
|
-
basePath = path.dirname(fromFile);
|
|
251
|
-
}
|
|
252
|
-
else if (parsed.base === "filePath") {
|
|
253
|
-
basePath = fromFile;
|
|
254
|
-
}
|
|
255
|
-
const targetPath = path.resolve(basePath, ...parsed.segments);
|
|
256
|
-
addSpec(buildRelativeSpecifier(fromFile, targetPath));
|
|
257
|
-
}
|
|
258
|
-
const urlCallRe = /(?<!["'`])\b(?:require|import)\s*\(\s*(new\s+URL\s*\([^)]*\))\s*\)/g;
|
|
259
|
-
for (const match of src.matchAll(urlCallRe)) {
|
|
260
|
-
if (!matchStartsInCode(literalMask, match))
|
|
261
|
-
continue;
|
|
262
|
-
const argText = match[1] ?? "";
|
|
263
|
-
const parsed = parseNewUrlArg(argText);
|
|
264
|
-
if (!parsed)
|
|
265
|
-
continue;
|
|
266
|
-
const baseDir = path.dirname(fromFile);
|
|
267
|
-
const targetPath = path.resolve(baseDir, ...parsed.segments);
|
|
268
|
-
addSpec(buildRelativeSpecifier(fromFile, targetPath));
|
|
269
|
-
}
|
|
271
|
+
/** Resolves a folded path against the root its base names: fileDir names the file's
|
|
272
|
+
* directory, filePath the file itself, project the project root. */
|
|
273
|
+
function resolveFoldedPathAgainstBase(folded, fromFile, projectRoot) {
|
|
274
|
+
let basePath = projectRoot;
|
|
275
|
+
if (folded.base === "fileDir") {
|
|
276
|
+
basePath = path.dirname(fromFile);
|
|
270
277
|
}
|
|
271
|
-
|
|
272
|
-
|
|
278
|
+
else if (folded.base === "filePath") {
|
|
279
|
+
basePath = fromFile;
|
|
273
280
|
}
|
|
274
|
-
return
|
|
281
|
+
return buildRelativeSpecifier(fromFile, path.resolve(basePath, ...folded.segments));
|
|
282
|
+
}
|
|
283
|
+
/** Resolves a folded path against the containing file's directory regardless of the named
|
|
284
|
+
* base: `new URL("./x", import.meta.url)` lives next to the file. */
|
|
285
|
+
function resolveFoldedPathAgainstFileDir(folded, fromFile) {
|
|
286
|
+
return buildRelativeSpecifier(fromFile, path.resolve(path.dirname(fromFile), ...folded.segments));
|
|
287
|
+
}
|
|
288
|
+
/** Resolves a folded path by concatenation onto the containing file's directory, the way
|
|
289
|
+
* `File.join` and PHP's `.` operator build paths: a leading separator in a segment stays part
|
|
290
|
+
* of the file-relative path instead of resetting to a filesystem root. */
|
|
291
|
+
function resolveFoldedPathByConcatenation(folded, fromFile) {
|
|
292
|
+
return buildRelativeSpecifier(fromFile, path.join(path.dirname(fromFile), ...folded.segments));
|
|
293
|
+
}
|
|
294
|
+
function foldCapturedPath(profile, resolve) {
|
|
295
|
+
return ({ match, fromFile, projectRoot }) => {
|
|
296
|
+
const folded = foldPathArgument(match[1] ?? "", profile);
|
|
297
|
+
return folded ? resolve(folded, fromFile, projectRoot) : null;
|
|
298
|
+
};
|
|
275
299
|
}
|
|
300
|
+
const JS_DYNAMIC_PATH_CALL_PATTERN = /(?<!["'`])\b(?:require|import)\s*\(\s*(path\.(?:join|resolve)\s*\((?:[^()]|\([^()]*\))*\))\s*\)/g;
|
|
301
|
+
const JS_DYNAMIC_URL_CALL_PATTERN = /(?<!["'`])\b(?:require|import)\s*\(\s*(new\s+URL\s*\([^)]*\))\s*\)/g;
|
|
302
|
+
const RUBY_REQUIRE_FILE_JOIN_PATTERN = /(?<![\p{XID_Continue}])require\s*\(?\s*(File\.join\s*\((?:[^()]|\([^()]*\))*\))/gu;
|
|
303
|
+
const PHP_COMPUTED_INCLUDE_PATTERN = /(?<![\p{XID_Continue}$])(?:include_once|include|require_once|require)\b\s*\(?\s*([^;\r\n]*?)\s*\)?\s*;/gu;
|
|
304
|
+
const JS_TS_DYNAMIC_IMPORT_ENTRY = {
|
|
305
|
+
languageId: "js",
|
|
306
|
+
// Comments are blanked before matching so a `require(...)` inside a comment cannot match;
|
|
307
|
+
// string literals stay intact because the fold reads their contents.
|
|
308
|
+
text: stripJsLikeComments,
|
|
309
|
+
guard: buildJsLikeLiteralMask,
|
|
310
|
+
shapes: [
|
|
311
|
+
{
|
|
312
|
+
pattern: JS_DYNAMIC_PATH_CALL_PATTERN,
|
|
313
|
+
fold: foldCapturedPath(JS_PATH_FOLD_PROFILE, resolveFoldedPathAgainstBase),
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
pattern: JS_DYNAMIC_URL_CALL_PATTERN,
|
|
317
|
+
fold: ({ match, fromFile }) => {
|
|
318
|
+
const folded = foldNewUrlArgument(match[1] ?? "", JS_PATH_FOLD_PROFILE);
|
|
319
|
+
return folded ? resolveFoldedPathAgainstFileDir(folded, fromFile) : null;
|
|
320
|
+
},
|
|
321
|
+
},
|
|
322
|
+
],
|
|
323
|
+
};
|
|
324
|
+
const RUBY_DYNAMIC_IMPORT_ENTRY = {
|
|
325
|
+
languageId: "ruby",
|
|
326
|
+
text: (source) => source,
|
|
327
|
+
guard: (text) => buildTriviaMask(text, "ruby"),
|
|
328
|
+
shapes: [
|
|
329
|
+
{
|
|
330
|
+
// Only the computed `require File.join(__dir__, ...)` form is folded here; bare-string
|
|
331
|
+
// requires flow through the static pipeline and `$LOAD_PATH` lookups stay external.
|
|
332
|
+
pattern: RUBY_REQUIRE_FILE_JOIN_PATTERN,
|
|
333
|
+
fold: foldCapturedPath(RUBY_PATH_FOLD_PROFILE, resolveFoldedPathByConcatenation),
|
|
334
|
+
},
|
|
335
|
+
],
|
|
336
|
+
};
|
|
337
|
+
const PHP_DYNAMIC_IMPORT_ENTRY = {
|
|
338
|
+
languageId: "php",
|
|
339
|
+
text: (source) => source,
|
|
340
|
+
guard: (text) => buildTriviaMask(text, "php"),
|
|
341
|
+
shapes: [
|
|
342
|
+
{
|
|
343
|
+
// Computed `include`/`require` whose path is a constant chain rooted at `__DIR__` (or
|
|
344
|
+
// the legacy `dirname(__FILE__)`); plain string operands stay with the static pipeline
|
|
345
|
+
// and the include-path search stays external.
|
|
346
|
+
pattern: PHP_COMPUTED_INCLUDE_PATTERN,
|
|
347
|
+
fold: foldCapturedPath(PHP_PATH_FOLD_PROFILE, resolveFoldedPathByConcatenation),
|
|
348
|
+
},
|
|
349
|
+
],
|
|
350
|
+
};
|
|
276
351
|
// Python module/package names are dotted sequences of PEP 3131 Unicode identifiers; a
|
|
277
352
|
// per-segment character class (rather than Unicode letters/digits spanning the dots) keeps
|
|
278
353
|
// a digit from matching directly after a `.` separator.
|
|
279
354
|
const PYTHON_DOTTED_NAME_SOURCE = String.raw `${PYTHON_IDENTIFIER_SOURCE}(?:\.${PYTHON_IDENTIFIER_SOURCE})*`;
|
|
280
|
-
function maskPythonString(source, mask, start) {
|
|
281
|
-
const quote = source[start];
|
|
282
|
-
const triple = source[start + 1] === quote && source[start + 2] === quote;
|
|
283
|
-
const delimiterLength = triple ? 3 : 1;
|
|
284
|
-
for (let offset = 0; offset < delimiterLength; offset += 1) {
|
|
285
|
-
mask[start + offset] = 1;
|
|
286
|
-
}
|
|
287
|
-
let index = start + delimiterLength;
|
|
288
|
-
while (index < source.length) {
|
|
289
|
-
const ch = source[index];
|
|
290
|
-
if (!triple && (ch === "\n" || ch === "\r"))
|
|
291
|
-
return index;
|
|
292
|
-
mask[index] = 1;
|
|
293
|
-
if (ch === "\\") {
|
|
294
|
-
const nextIndex = index + 1;
|
|
295
|
-
if (nextIndex < source.length)
|
|
296
|
-
mask[nextIndex] = 1;
|
|
297
|
-
index += 2;
|
|
298
|
-
continue;
|
|
299
|
-
}
|
|
300
|
-
if (ch === quote) {
|
|
301
|
-
if (!triple)
|
|
302
|
-
return index + 1;
|
|
303
|
-
if (source[index + 1] === quote && source[index + 2] === quote) {
|
|
304
|
-
mask[index + 1] = 1;
|
|
305
|
-
mask[index + 2] = 1;
|
|
306
|
-
return index + delimiterLength;
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
index += 1;
|
|
310
|
-
}
|
|
311
|
-
return source.length;
|
|
312
|
-
}
|
|
313
|
-
function buildPythonNonCodeMask(source) {
|
|
314
|
-
if (!source.includes("#") && !source.includes("'") && !source.includes('"'))
|
|
315
|
-
return undefined;
|
|
316
|
-
const mask = new Uint8Array(source.length);
|
|
317
|
-
for (let index = 0; index < source.length; index += 1) {
|
|
318
|
-
const ch = source[index];
|
|
319
|
-
if (ch === "#") {
|
|
320
|
-
while (index < source.length && source[index] !== "\n" && source[index] !== "\r") {
|
|
321
|
-
mask[index] = 1;
|
|
322
|
-
index += 1;
|
|
323
|
-
}
|
|
324
|
-
index -= 1;
|
|
325
|
-
continue;
|
|
326
|
-
}
|
|
327
|
-
if (ch === "'" || ch === '"') {
|
|
328
|
-
index = maskPythonString(source, mask, index) - 1;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return mask;
|
|
332
|
-
}
|
|
333
355
|
const PYTHON_IMPORTLIB_ALIAS_PATTERN = new RegExp(String.raw `^importlib(?:\s+as\s+(${PYTHON_IDENTIFIER_SOURCE}))?$`, "u");
|
|
334
356
|
const PYTHON_IMPORT_MODULE_ALIAS_PATTERN = new RegExp(String.raw `^import_module(?:\s+as\s+(${PYTHON_IDENTIFIER_SOURCE}))?$`, "u");
|
|
335
357
|
const PYTHON_DYNAMIC_CALL_PREFIX_PATTERN = new RegExp(String.raw `(?<![._\p{XID_Continue}])(${PYTHON_IDENTIFIER_SOURCE})(?:\s*\.\s*(${PYTHON_IDENTIFIER_SOURCE}))?\s*\(\s*(?:name\s*=\s*)?`, "gmu");
|
|
@@ -496,35 +518,78 @@ function collectPythonDynamicImportAliases(source) {
|
|
|
496
518
|
}
|
|
497
519
|
return { importlibAliases, importModuleAliases };
|
|
498
520
|
}
|
|
521
|
+
/** Folds the argument of a Python dynamic import call into a static module string. Alias
|
|
522
|
+
* recognition is intentionally limited to direct `importlib` imports; assignment flow and
|
|
523
|
+
* computed module names remain outside graph construction. */
|
|
524
|
+
function foldPythonDynamicModuleArgument(source, match, preparation) {
|
|
525
|
+
const importlibAliases = preparation.pythonImportlibAliases;
|
|
526
|
+
const importModuleAliases = preparation.pythonImportModuleAliases;
|
|
527
|
+
if (!importlibAliases || !importModuleAliases)
|
|
528
|
+
return null;
|
|
529
|
+
const receiver = match[1] ?? "";
|
|
530
|
+
const member = match[2];
|
|
531
|
+
const isBuiltinImport = !member && receiver === "__import__";
|
|
532
|
+
const isImportlibCall = member === "import_module" && importlibAliases.has(receiver);
|
|
533
|
+
const isImportedFunctionCall = !member && importModuleAliases.has(receiver);
|
|
534
|
+
if (!isBuiltinImport && !isImportlibCall && !isImportedFunctionCall)
|
|
535
|
+
return null;
|
|
536
|
+
const argumentStart = (match.index ?? 0) + (match[0]?.length ?? 0);
|
|
537
|
+
const spec = parsePythonStaticStringExpression(source, argumentStart);
|
|
538
|
+
if (!spec || !PYTHON_DYNAMIC_MODULE_PATTERN.test(spec))
|
|
539
|
+
return null;
|
|
540
|
+
// `__import__` cannot take a package argument, so a leading dot names nothing resolvable.
|
|
541
|
+
if (isBuiltinImport && spec.startsWith("."))
|
|
542
|
+
return null;
|
|
543
|
+
return spec;
|
|
544
|
+
}
|
|
545
|
+
const PYTHON_DYNAMIC_IMPORT_ENTRY = {
|
|
546
|
+
languageId: "python",
|
|
547
|
+
text: (source) => source,
|
|
548
|
+
guard: (text) => buildTriviaMask(text, "python"),
|
|
549
|
+
prepare: (source) => {
|
|
550
|
+
const { importlibAliases, importModuleAliases } = collectPythonDynamicImportAliases(source);
|
|
551
|
+
return { pythonImportlibAliases: importlibAliases, pythonImportModuleAliases: importModuleAliases };
|
|
552
|
+
},
|
|
553
|
+
shapes: [
|
|
554
|
+
{
|
|
555
|
+
pattern: PYTHON_DYNAMIC_CALL_PREFIX_PATTERN,
|
|
556
|
+
fold: ({ text, match, preparation }) => foldPythonDynamicModuleArgument(text, match, preparation),
|
|
557
|
+
},
|
|
558
|
+
],
|
|
559
|
+
};
|
|
560
|
+
const DYNAMIC_IMPORT_SPECIFIER_EXTRACTORS = {
|
|
561
|
+
js: JS_TS_DYNAMIC_IMPORT_ENTRY,
|
|
562
|
+
ts: JS_TS_DYNAMIC_IMPORT_ENTRY,
|
|
563
|
+
python: PYTHON_DYNAMIC_IMPORT_ENTRY,
|
|
564
|
+
ruby: RUBY_DYNAMIC_IMPORT_ENTRY,
|
|
565
|
+
php: PHP_DYNAMIC_IMPORT_ENTRY,
|
|
566
|
+
};
|
|
499
567
|
/**
|
|
500
|
-
*
|
|
501
|
-
*
|
|
502
|
-
*
|
|
568
|
+
* Shared adapter boundary for opt-in dynamic import heuristics. A language entry supplies only
|
|
569
|
+
* its call shapes and trivia mask; the shared fold turns constant arguments into candidates,
|
|
570
|
+
* while target resolution, provenance merging, and graph construction stay in the common
|
|
571
|
+
* pipeline.
|
|
503
572
|
*/
|
|
504
|
-
export function
|
|
573
|
+
export function extractDynamicImportSpecifiers(languageId, source, fromFile, projectRoot) {
|
|
574
|
+
const entry = DYNAMIC_IMPORT_SPECIFIER_EXTRACTORS[languageId];
|
|
575
|
+
if (!entry)
|
|
576
|
+
return [];
|
|
505
577
|
const out = [];
|
|
578
|
+
const seen = new Set();
|
|
506
579
|
try {
|
|
507
|
-
const
|
|
508
|
-
const
|
|
509
|
-
const
|
|
510
|
-
for (const
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
const argumentStart = (match.index ?? 0) + (match[0]?.length ?? 0);
|
|
521
|
-
const spec = parsePythonStaticStringExpression(source, argumentStart);
|
|
522
|
-
if (!spec || !PYTHON_DYNAMIC_MODULE_PATTERN.test(spec) || seen.has(spec))
|
|
523
|
-
continue;
|
|
524
|
-
if (isBuiltinImport && spec.startsWith("."))
|
|
525
|
-
continue;
|
|
526
|
-
seen.add(spec);
|
|
527
|
-
out.push({ spec, resolved: "heuristic", confidence: 0.7 });
|
|
580
|
+
const text = entry.text(source);
|
|
581
|
+
const guard = entry.guard(text);
|
|
582
|
+
const preparation = entry.prepare ? entry.prepare(source) : {};
|
|
583
|
+
for (const shape of entry.shapes) {
|
|
584
|
+
for (const match of text.matchAll(shape.pattern)) {
|
|
585
|
+
if (!matchStartsInCode(guard, match))
|
|
586
|
+
continue;
|
|
587
|
+
const spec = shape.fold({ text, match, fromFile, projectRoot, preparation });
|
|
588
|
+
if (!spec || seen.has(spec))
|
|
589
|
+
continue;
|
|
590
|
+
seen.add(spec);
|
|
591
|
+
out.push({ spec, resolved: "heuristic", confidence: 0.7 });
|
|
592
|
+
}
|
|
528
593
|
}
|
|
529
594
|
}
|
|
530
595
|
catch {
|
|
@@ -532,22 +597,6 @@ export function extractPythonDynamicSpecifiers(source) {
|
|
|
532
597
|
}
|
|
533
598
|
return out;
|
|
534
599
|
}
|
|
535
|
-
const DYNAMIC_IMPORT_SPECIFIER_EXTRACTORS = {
|
|
536
|
-
js: extractJsTsDynamicSpecifiers,
|
|
537
|
-
ts: extractJsTsDynamicSpecifiers,
|
|
538
|
-
python: extractPythonDynamicSpecifiers,
|
|
539
|
-
};
|
|
540
|
-
/**
|
|
541
|
-
* Shared adapter boundary for opt-in dynamic import heuristics. A language adapter
|
|
542
|
-
* extracts only non-executed module candidates and leaves target resolution, provenance
|
|
543
|
-
* merging, and graph construction to the common pipeline.
|
|
544
|
-
*/
|
|
545
|
-
export function extractDynamicImportSpecifiers(languageId, source, fromFile, projectRoot) {
|
|
546
|
-
const extractor = DYNAMIC_IMPORT_SPECIFIER_EXTRACTORS[languageId];
|
|
547
|
-
if (!extractor)
|
|
548
|
-
return [];
|
|
549
|
-
return extractor(source, fromFile, projectRoot);
|
|
550
|
-
}
|
|
551
600
|
export function extractPythonSpecifiers(source) {
|
|
552
601
|
const out = [];
|
|
553
602
|
try {
|