gitnexus 1.6.6-rc.133 → 1.6.6-rc.134
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/_shared/scope-resolution/symbol-definition.d.ts +9 -0
- package/dist/_shared/scope-resolution/symbol-definition.d.ts.map +1 -1
- package/dist/core/ingestion/call-processor.d.ts +32 -218
- package/dist/core/ingestion/call-processor.js +30 -2530
- package/dist/core/ingestion/call-routing.d.ts +2 -2
- package/dist/core/ingestion/call-routing.js +6 -6
- package/dist/core/ingestion/call-types.d.ts +0 -75
- package/dist/core/ingestion/class-extractors/configs/c-cpp.js +23 -1
- package/dist/core/ingestion/finalize-orchestrator.js +1 -1
- package/dist/core/ingestion/import-processor.js +6 -2
- package/dist/core/ingestion/language-provider.d.ts +5 -81
- package/dist/core/ingestion/language-provider.js +0 -1
- package/dist/core/ingestion/languages/c-cpp.js +0 -3
- package/dist/core/ingestion/languages/csharp/captures.js +5 -4
- package/dist/core/ingestion/languages/csharp.js +0 -3
- package/dist/core/ingestion/languages/dart.js +0 -2
- package/dist/core/ingestion/languages/go/captures.js +5 -5
- package/dist/core/ingestion/languages/go.js +0 -3
- package/dist/core/ingestion/languages/java/captures.js +6 -6
- package/dist/core/ingestion/languages/java/scope-resolver.d.ts +2 -8
- package/dist/core/ingestion/languages/java/scope-resolver.js +2 -8
- package/dist/core/ingestion/languages/java.js +0 -3
- package/dist/core/ingestion/languages/javascript/captures.js +5 -5
- package/dist/core/ingestion/languages/kotlin/captures.js +5 -4
- package/dist/core/ingestion/languages/kotlin/scope-resolver.d.ts +5 -7
- package/dist/core/ingestion/languages/kotlin/scope-resolver.js +5 -7
- package/dist/core/ingestion/languages/kotlin.js +0 -2
- package/dist/core/ingestion/languages/php/captures.js +5 -6
- package/dist/core/ingestion/languages/php.js +0 -2
- package/dist/core/ingestion/languages/python/captures.js +3 -3
- package/dist/core/ingestion/languages/python/query.js +0 -23
- package/dist/core/ingestion/languages/python.js +0 -2
- package/dist/core/ingestion/languages/ruby/captures.js +11 -13
- package/dist/core/ingestion/languages/ruby/scope-resolver.js +2 -2
- package/dist/core/ingestion/languages/ruby.js +4 -52
- package/dist/core/ingestion/languages/rust/captures.js +4 -4
- package/dist/core/ingestion/languages/rust/scope-resolver.js +1 -1
- package/dist/core/ingestion/languages/rust.js +0 -2
- package/dist/core/ingestion/languages/swift/captures.js +5 -5
- package/dist/core/ingestion/languages/swift.d.ts +0 -1
- package/dist/core/ingestion/languages/swift.js +0 -4
- package/dist/core/ingestion/languages/typescript/captures.js +6 -8
- package/dist/core/ingestion/languages/typescript.js +0 -3
- package/dist/core/ingestion/languages/vue.js +0 -2
- package/dist/core/ingestion/model/index.d.ts +0 -2
- package/dist/core/ingestion/model/index.js +0 -5
- package/dist/core/ingestion/model/resolve.d.ts +7 -43
- package/dist/core/ingestion/model/resolve.js +7 -226
- package/dist/core/ingestion/model/semantic-model.d.ts +2 -4
- package/dist/core/ingestion/parsing-processor.d.ts +1 -2
- package/dist/core/ingestion/parsing-processor.js +0 -5
- package/dist/core/ingestion/pipeline-phases/cross-file.d.ts +9 -8
- package/dist/core/ingestion/pipeline-phases/cross-file.js +16 -12
- package/dist/core/ingestion/pipeline-phases/parse-impl.js +31 -170
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.d.ts +8 -9
- package/dist/core/ingestion/scope-resolution/contract/scope-resolver.js +8 -9
- package/dist/core/ingestion/scope-resolution/graph-bridge/ids.d.ts +2 -0
- package/dist/core/ingestion/scope-resolution/pipeline/phase.d.ts +8 -11
- package/dist/core/ingestion/scope-resolution/pipeline/phase.js +15 -25
- package/dist/core/ingestion/scope-resolution/pipeline/registry.d.ts +3 -4
- package/dist/core/ingestion/scope-resolution/pipeline/registry.js +3 -4
- package/dist/core/ingestion/scope-resolution/pipeline/run.js +6 -14
- package/dist/core/ingestion/scope-resolution/scope/walkers.js +52 -2
- package/dist/core/ingestion/tree-sitter-queries.d.ts +11 -11
- package/dist/core/ingestion/tree-sitter-queries.js +4 -221
- package/dist/core/ingestion/type-extractors/types.d.ts +1 -1
- package/dist/core/ingestion/utils/ast-helpers.js +3 -3
- package/dist/core/ingestion/workers/parse-worker.d.ts +0 -2
- package/dist/core/ingestion/workers/parse-worker.js +10 -82
- package/dist/storage/parse-cache.js +5 -1
- package/package.json +1 -2
- package/scripts/bench-scope-resolution.ts +1 -3
- package/dist/core/ingestion/heritage-extractors/configs/cpp.d.ts +0 -16
- package/dist/core/ingestion/heritage-extractors/configs/cpp.js +0 -18
- package/dist/core/ingestion/heritage-extractors/configs/csharp.d.ts +0 -27
- package/dist/core/ingestion/heritage-extractors/configs/csharp.js +0 -35
- package/dist/core/ingestion/heritage-extractors/configs/go.d.ts +0 -37
- package/dist/core/ingestion/heritage-extractors/configs/go.js +0 -57
- package/dist/core/ingestion/heritage-extractors/configs/java.d.ts +0 -11
- package/dist/core/ingestion/heritage-extractors/configs/java.js +0 -13
- package/dist/core/ingestion/heritage-extractors/configs/javascript.d.ts +0 -8
- package/dist/core/ingestion/heritage-extractors/configs/javascript.js +0 -10
- package/dist/core/ingestion/heritage-extractors/configs/kotlin.d.ts +0 -11
- package/dist/core/ingestion/heritage-extractors/configs/kotlin.js +0 -13
- package/dist/core/ingestion/heritage-extractors/configs/python.d.ts +0 -9
- package/dist/core/ingestion/heritage-extractors/configs/python.js +0 -11
- package/dist/core/ingestion/heritage-extractors/configs/ruby.d.ts +0 -25
- package/dist/core/ingestion/heritage-extractors/configs/ruby.js +0 -74
- package/dist/core/ingestion/heritage-extractors/configs/rust.d.ts +0 -9
- package/dist/core/ingestion/heritage-extractors/configs/rust.js +0 -11
- package/dist/core/ingestion/heritage-extractors/configs/typescript.d.ts +0 -15
- package/dist/core/ingestion/heritage-extractors/configs/typescript.js +0 -19
- package/dist/core/ingestion/heritage-extractors/generic.d.ts +0 -23
- package/dist/core/ingestion/heritage-extractors/generic.js +0 -60
- package/dist/core/ingestion/heritage-extractors/supertype-alternation.d.ts +0 -82
- package/dist/core/ingestion/heritage-extractors/supertype-alternation.js +0 -193
- package/dist/core/ingestion/heritage-processor.d.ts +0 -54
- package/dist/core/ingestion/heritage-processor.js +0 -373
- package/dist/core/ingestion/heritage-types.d.ts +0 -93
- package/dist/core/ingestion/heritage-types.js +0 -2
- package/dist/core/ingestion/model/heritage-map.d.ts +0 -105
- package/dist/core/ingestion/model/heritage-map.js +0 -294
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.d.ts +0 -17
- package/dist/core/ingestion/pipeline-phases/cross-file-impl.js +0 -209
- package/dist/core/ingestion/registry-primary-flag.d.ts +0 -89
- package/dist/core/ingestion/registry-primary-flag.js +0 -125
- package/dist/core/ingestion/shadow-harness.d.ts +0 -113
- package/dist/core/ingestion/shadow-harness.js +0 -148
- package/dist/core/ingestion/utils/ruby-self-call.d.ts +0 -52
- package/dist/core/ingestion/utils/ruby-self-call.js +0 -59
- package/scripts/ci-list-migrated-languages.ts +0 -24
- package/scripts/run-parity.ts +0 -139
|
@@ -56,5 +56,14 @@ export interface SymbolDefinition {
|
|
|
56
56
|
isExplicit?: boolean;
|
|
57
57
|
/** Links Method/Constructor/Property to owning Class/Struct/Trait nodeId */
|
|
58
58
|
ownerId?: string;
|
|
59
|
+
/** #1982/#1993: bridge-held enclosing-namespace path (e.g. `NS1`, `Outer.Inner`)
|
|
60
|
+
* tagged during the C++ resolution phase. Lets the graph bridge retry a
|
|
61
|
+
* namespace-prefixed node-lookup key and lets the qualified-base resolver
|
|
62
|
+
* break same-tail cross-namespace inheritance ties. A deliberate sidecar,
|
|
63
|
+
* separate from `qualifiedName`: it does NOT participate in graph node
|
|
64
|
+
* identity (node keys derive from filePath/type/qualifiedName) and leaves the
|
|
65
|
+
* qualifiedName-keyed resolution index untouched. Absent for the common case
|
|
66
|
+
* (non-namespace-nested defs and all non-C++ languages). */
|
|
67
|
+
namespacePrefix?: string;
|
|
59
68
|
}
|
|
60
69
|
//# sourceMappingURL=symbol-definition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-definition.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/symbol-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACjE,4CAA4C;IAC5C,WAAW,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3E,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB;;+FAE2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;iHAC6G;IAC7G,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;uFACmF;IACnF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;4FACwF;IACxF,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;yEAKqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;4DAEwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"symbol-definition.d.ts","sourceRoot":"","sources":["../../src/scope-resolution/symbol-definition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACjE,4CAA4C;IAC5C,WAAW,EAAE,OAAO,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3E,4EAA4E;IAC5E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB;;+FAE2F;IAC3F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;iHAC6G;IAC7G,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;uFACmF;IACnF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;4FACwF;IACxF,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC5C,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;yEAKqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;4DAEwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;iEAO6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -1,231 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Route / fetch edge emission + exported-type-map helpers.
|
|
3
|
+
*
|
|
4
|
+
* The legacy call-resolution DAG that previously lived here (per-file type
|
|
5
|
+
* inference → receiver inference → dispatch selection → MRO walk over the
|
|
6
|
+
* legacy heritage map) was deleted in RING4-1 (#942): all languages now resolve
|
|
7
|
+
* calls through the scope-resolution registry pipeline. What remains are the
|
|
8
|
+
* language-agnostic edge emitters that are NOT part of call resolution:
|
|
9
|
+
*
|
|
10
|
+
* - `processRoutesFromExtracted` — CALLS edges from framework routes
|
|
11
|
+
* (e.g. Laravel) to their controller methods.
|
|
12
|
+
* - `processNextjsFetchRoutes` / `extractFetchCallsFromFiles` /
|
|
13
|
+
* `extractConsumerAccessedKeys` — FETCHES edges from `fetch()` calls to
|
|
14
|
+
* Next.js Route nodes.
|
|
15
|
+
* - `buildExportedTypeMapFromGraph` — exported symbol → return/declared type
|
|
16
|
+
* map, consumed by the cross-file enrichment pass.
|
|
17
|
+
*/
|
|
1
18
|
import { KnowledgeGraph } from '../graph/types.js';
|
|
2
19
|
import { ASTCache } from './ast-cache.js';
|
|
3
|
-
import type {
|
|
4
|
-
import type { SymbolTableReader, HeritageMap, ExtractedHeritage } from './model/index.js';
|
|
5
|
-
import Parser from 'tree-sitter';
|
|
20
|
+
import type { SymbolTableReader } from './model/index.js';
|
|
6
21
|
import type { ResolutionContext } from './model/resolution-context.js';
|
|
7
|
-
import type {
|
|
8
|
-
import { SupportedLanguages } from '../../_shared/index.js';
|
|
9
|
-
import type { TypeEnvironment } from './type-env.js';
|
|
10
|
-
import type { BindingAccumulator } from './binding-accumulator.js';
|
|
11
|
-
import type { ExtractedCall, ExtractedAssignment, ExtractedRoute, ExtractedFetchCall, FileConstructorBindings } from './workers/parse-worker.js';
|
|
12
|
-
import type { LiteralTypeInferrer } from './type-extractors/types.js';
|
|
13
|
-
import type { SyntaxNode } from './utils/ast-helpers.js';
|
|
22
|
+
import type { ExtractedRoute, ExtractedFetchCall } from './workers/parse-worker.js';
|
|
14
23
|
/** Per-file resolved type bindings for exported symbols.
|
|
15
|
-
*
|
|
24
|
+
* Consumed by the cross-file re-resolution / enrichment pass. */
|
|
16
25
|
export type ExportedTypeMap = Map<string, Map<string, string>>;
|
|
17
|
-
/** Build
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* Overlapping mechanism (1 of 3): this is the SymbolTable-backed path.
|
|
21
|
-
* See also:
|
|
22
|
-
* 2. collectExportedBindings (~line 168) / enrichExportedTypeMap — TypeEnv + graph isExported
|
|
23
|
-
* 3. Phase 9 fallback in verifyConstructorBindings (~line 563) — namedImportMap + BindingAccumulator
|
|
24
|
-
* A future cleanup should merge these into a single resolution pass. */
|
|
25
|
-
export declare function buildImportedReturnTypes(filePath: string, namedImportMap: ReadonlyMap<string, ReadonlyMap<string, {
|
|
26
|
-
sourcePath: string;
|
|
27
|
-
exportedName: string;
|
|
28
|
-
}>>, symbolTable: {
|
|
29
|
-
lookupExactFull(filePath: string, name: string): {
|
|
30
|
-
returnType?: string;
|
|
31
|
-
} | undefined;
|
|
32
|
-
}): ReadonlyMap<string, string>;
|
|
33
|
-
/** Build cross-file RAW return types for imported callables.
|
|
34
|
-
* Unlike buildImportedReturnTypes (which stores extractReturnTypeName output),
|
|
35
|
-
* this stores the raw declared return type string (e.g., 'User[]', 'List<User>').
|
|
36
|
-
* Used by lookupRawReturnType for for-loop element extraction via extractElementTypeFromString. */
|
|
37
|
-
export declare function buildImportedRawReturnTypes(filePath: string, namedImportMap: ReadonlyMap<string, ReadonlyMap<string, {
|
|
38
|
-
sourcePath: string;
|
|
39
|
-
exportedName: string;
|
|
40
|
-
}>>, symbolTable: {
|
|
41
|
-
lookupExactFull(filePath: string, name: string): {
|
|
42
|
-
returnType?: string;
|
|
43
|
-
} | undefined;
|
|
44
|
-
}): ReadonlyMap<string, string>;
|
|
45
|
-
/** Build ExportedTypeMap from graph nodes — used for worker path where TypeEnv
|
|
46
|
-
* is not available in the main thread. Collects returnType/declaredType from
|
|
47
|
-
* exported symbols that have callables with known return types. */
|
|
26
|
+
/** Build ExportedTypeMap from graph nodes — used for the worker path where the
|
|
27
|
+
* sequential TypeEnv is not available in the main thread. Collects
|
|
28
|
+
* returnType/declaredType from exported symbols with known types. */
|
|
48
29
|
export declare function buildExportedTypeMapFromGraph(graph: KnowledgeGraph, symbolTable: SymbolTableReader): ExportedTypeMap;
|
|
49
|
-
/** Seed cross-file receiver types into pre-extracted call records.
|
|
50
|
-
* Fills missing receiverTypeName for single-hop imported variables
|
|
51
|
-
* using ExportedTypeMap + namedImportMap — zero disk I/O, zero AST re-parsing.
|
|
52
|
-
* Mutates calls in-place. Runs BEFORE processCallsFromExtracted. */
|
|
53
|
-
export declare function seedCrossFileReceiverTypes(calls: ExtractedCall[], namedImportMap: ReadonlyMap<string, ReadonlyMap<string, {
|
|
54
|
-
sourcePath: string;
|
|
55
|
-
exportedName: string;
|
|
56
|
-
}>>, exportedTypeMap: ReadonlyMap<string, ReadonlyMap<string, string>>): {
|
|
57
|
-
enrichedCount: number;
|
|
58
|
-
};
|
|
59
|
-
/**
|
|
60
|
-
* Resolution result with confidence scoring
|
|
61
|
-
*/
|
|
62
|
-
interface ResolveResult {
|
|
63
|
-
nodeId: string;
|
|
64
|
-
confidence: number;
|
|
65
|
-
reason: string;
|
|
66
|
-
returnType?: string;
|
|
67
|
-
}
|
|
68
|
-
export declare const processCalls: (graph: KnowledgeGraph, files: {
|
|
69
|
-
path: string;
|
|
70
|
-
content: string;
|
|
71
|
-
}[], astCache: ASTCache, ctx: ResolutionContext, onProgress?: (current: number, total: number) => void, exportedTypeMap?: ExportedTypeMap,
|
|
72
|
-
/** Phase 14: pre-resolved cross-file bindings to seed into buildTypeEnv. Keyed by filePath → Map<localName, typeName>. */
|
|
73
|
-
importedBindingsMap?: ReadonlyMap<string, ReadonlyMap<string, string>>,
|
|
74
|
-
/** Phase 14 E3: cross-file return types for imported callables. Keyed by filePath → Map<calleeName, returnType>.
|
|
75
|
-
* Consulted ONLY when SymbolTable has no unambiguous match (local-first principle). */
|
|
76
|
-
importedReturnTypesMap?: ReadonlyMap<string, ReadonlyMap<string, string>>,
|
|
77
|
-
/** Phase 14 E3: cross-file RAW return types for for-loop element extraction. Keyed by filePath → Map<calleeName, rawReturnType>. */
|
|
78
|
-
importedRawReturnTypesMap?: ReadonlyMap<string, ReadonlyMap<string, string>>, heritageMap?: HeritageMap, bindingAccumulator?: BindingAccumulator,
|
|
79
|
-
/**
|
|
80
|
-
* Optional cache for compiled `Parser.Query` objects keyed by language name.
|
|
81
|
-
* When provided, compiled queries are reused across calls instead of being
|
|
82
|
-
* re-compiled from the query string for every file. Callers that invoke
|
|
83
|
-
* `processCalls` many times with single-file batches (e.g. the cross-file
|
|
84
|
-
* propagation phase) should pass a long-lived map here to avoid O(N)
|
|
85
|
-
* query recompilation overhead.
|
|
86
|
-
*/
|
|
87
|
-
compiledQueryCache?: Map<SupportedLanguages, Parser.Query>) => Promise<ExtractedHeritage[]>;
|
|
88
|
-
/** Per-file cache for module-alias widening. Cleared between files. */
|
|
89
|
-
type WidenCache = Map<string, readonly SymbolDefinition[]>;
|
|
90
|
-
/**
|
|
91
|
-
* Optional hints for overload disambiguation via argument literal types.
|
|
92
|
-
* Only available on the sequential path (has AST); worker path passes undefined.
|
|
93
|
-
*
|
|
94
|
-
* @internal Exported so tests can exercise the D0 skip-condition path without
|
|
95
|
-
* constructing a real SyntaxNode. Do not use outside `call-processor.ts`
|
|
96
|
-
* and its unit tests.
|
|
97
|
-
*/
|
|
98
|
-
export interface OverloadHints {
|
|
99
|
-
callNode: SyntaxNode;
|
|
100
|
-
inferLiteralType: LiteralTypeInferrer;
|
|
101
|
-
typeEnv?: TypeEnvironment;
|
|
102
|
-
}
|
|
103
|
-
/** @internal Exported for unit tests. Do not use outside tests. */
|
|
104
|
-
export declare const _resolveCallTargetForTesting: (call: Pick<ExtractedCall, "calledName" | "argCount" | "callForm" | "receiverTypeName" | "receiverName">, currentFile: string, ctx: ResolutionContext, opts?: {
|
|
105
|
-
overloadHints?: OverloadHints;
|
|
106
|
-
widenCache?: WidenCache;
|
|
107
|
-
preComputedArgTypes?: (string | undefined)[];
|
|
108
|
-
heritageMap?: HeritageMap;
|
|
109
|
-
}) => ResolveResult | null;
|
|
110
|
-
/**
|
|
111
|
-
* Resolve a member call using owner-scoped + MRO resolution only (no fuzzy lookup).
|
|
112
|
-
* Used for `obj.method()` calls where the receiver type is known.
|
|
113
|
-
*
|
|
114
|
-
* Delegates to {@link resolveMethodByOwner} which performs an O(1) owner-scoped
|
|
115
|
-
* method lookup and, when a {@link HeritageMap} is provided, walks the MRO chain
|
|
116
|
-
* via {@link lookupMethodByOwnerWithMRO}.
|
|
117
|
-
*
|
|
118
|
-
* {@link resolveCallTarget} delegates here for member calls.
|
|
119
|
-
*
|
|
120
|
-
* **SEMANTIC CHANGE (2026-04-09):** The confidence tier reflects how the
|
|
121
|
-
* owner TYPE was resolved, not how the method NAME was resolved globally.
|
|
122
|
-
* more accurate for owner-scoped resolution (the discriminant IS the class,
|
|
123
|
-
* not the method name). Downstream consumers that filter CALLS edges by
|
|
124
|
-
* confidence threshold may see shifted values on otherwise-unchanged code.
|
|
125
|
-
* See the "returns result with correct confidence tier" tests below for the
|
|
126
|
-
* locked-in behavior.
|
|
127
|
-
*
|
|
128
|
-
* **Performance:** Callers that only need the return type (e.g. `walkMixedChain`)
|
|
129
|
-
* should call {@link resolveMethodByOwner} directly and use the `.def.returnType`
|
|
130
|
-
* field instead, to avoid building a throwaway `ResolveResult`.
|
|
131
|
-
*
|
|
132
|
-
* @param ownerType - The receiver's type name (e.g. 'User')
|
|
133
|
-
* @param methodName - The method being called (e.g. 'save')
|
|
134
|
-
* @param currentFile - File path of the call site
|
|
135
|
-
* @param ctx - Resolution context
|
|
136
|
-
* @param heritageMap - Optional heritage map for MRO-aware ancestor walking
|
|
137
|
-
*/
|
|
138
|
-
export declare const resolveMemberCall: (ownerType: string, methodName: string, currentFile: string, ctx: ResolutionContext, heritageMap?: HeritageMap, argCount?: number, ancestryView?: "instance" | "singleton") => ResolveResult | null;
|
|
139
|
-
/**
|
|
140
|
-
* Resolve a free-function call using `lookupExact` (same-file) + import-scoped
|
|
141
|
-
* resolution via `ctx.resolve()`.
|
|
142
|
-
*
|
|
143
|
-
* Used for `foo()`, `doStuff()` — unqualified calls with no receiver.
|
|
144
|
-
* Also handles implicit constructors (`User()` without `new`) by delegating
|
|
145
|
-
* to {@link resolveStaticCall} when the tiered pool contains class-like
|
|
146
|
-
* targets.
|
|
147
|
-
*
|
|
148
|
-
* {@link resolveCallTarget} delegates here for `callForm === 'free'`.
|
|
149
|
-
*
|
|
150
|
-
* `resolveFreeCall` does not take a `widenCache` parameter. Free calls
|
|
151
|
-
* have no receiver type and rely exclusively on the tiered pool
|
|
152
|
-
* from `ctx.resolve()`.
|
|
153
|
-
*
|
|
154
|
-
* @param calledName - The called function name (e.g. 'doStuff')
|
|
155
|
-
* @param filePath - File path of the call site
|
|
156
|
-
* @param ctx - Resolution context
|
|
157
|
-
* @param argCount - Optional argument count for arity filtering
|
|
158
|
-
* @param tieredOverride - Pre-computed tiered candidates from an upstream
|
|
159
|
-
* `ctx.resolve` call. When provided, skips the redundant
|
|
160
|
-
* lookup inside this function.
|
|
161
|
-
* @param overloadHints - Optional AST-based overload disambiguation hints
|
|
162
|
-
* @param preComputedArgTypes - Optional pre-computed argument types (worker path)
|
|
163
|
-
*/
|
|
164
|
-
export declare const resolveFreeCall: (calledName: string, filePath: string, ctx: ResolutionContext, argCount?: number, tieredOverride?: TieredCandidates, overloadHints?: OverloadHints, preComputedArgTypes?: (string | undefined)[]) => ResolveResult | null;
|
|
165
30
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
* Uses {@link TypeRegistry.lookupClassByName} for O(1) class lookup and
|
|
170
|
-
* {@link MethodRegistry.lookupMethodByOwner} for constructor resolution.
|
|
171
|
-
* {@link resolveCallTarget} delegates here for constructor and free-form calls
|
|
172
|
-
* that target a class.
|
|
173
|
-
*
|
|
174
|
-
* Resolution strategy:
|
|
175
|
-
* 1. `lookupClassByName(className)` — O(1) pre-check; bail early if no class exists.
|
|
176
|
-
* 2. `ctx.resolve(className, currentFile)` — import-scoped tier for confidence.
|
|
177
|
-
* 3. Filter to class-like candidates via `CLASS_LIKE_TYPES` and walk each
|
|
178
|
-
* with `lookupMethodByOwner(classNodeId, className, argCount)` — O(1)
|
|
179
|
-
* constructor lookup. Only accept results with `type === 'Constructor'`.
|
|
180
|
-
* 4. If step 3 found nothing and the tiered pool contains ownerless
|
|
181
|
-
* `Constructor` nodes (common in some extractors), bail out so
|
|
182
|
-
* `filterCallableCandidates` downstream handles Constructor-vs-Class
|
|
183
|
-
* preference correctly.
|
|
184
|
-
* 5. Class-node fallback: filter `classCandidates` through
|
|
185
|
-
* `INSTANTIABLE_CLASS_TYPES` and return the sole survivor when there is
|
|
186
|
-
* exactly one. Null-route on zero survivors (Interface / Trait / Impl
|
|
187
|
-
* stripped) or multiple (homonym ambiguity).
|
|
188
|
-
*
|
|
189
|
-
* @param className - The class name (e.g. 'User'). Also used as the method
|
|
190
|
-
* name for the `lookupMethodByOwner` scan, because the
|
|
191
|
-
* only constructor-shaped call we handle today is
|
|
192
|
-
* `ClassName(...)` / `new ClassName(...)`. Named
|
|
193
|
-
* constructors like Dart `User.fromJson()` arrive as
|
|
194
|
-
* member calls and route through `resolveMemberCall`,
|
|
195
|
-
* so this function does not yet need a separate
|
|
196
|
-
* `methodName` parameter. Revisit if a language surfaces
|
|
197
|
-
* a static-method-shaped call with a distinct member
|
|
198
|
-
* name.
|
|
199
|
-
* @param currentFile - File path of the call site
|
|
200
|
-
* @param ctx - Resolution context
|
|
201
|
-
* @param argCount - Optional argument count for arity filtering
|
|
202
|
-
* @param tieredOverride - Pre-computed tiered candidates for `className` from
|
|
203
|
-
* an upstream `ctx.resolve` call. When provided, skips
|
|
204
|
-
* the redundant lookup inside this function. Leave
|
|
205
|
-
* unset for direct callers without a prior resolution.
|
|
31
|
+
* Create CALLS edges from extracted framework routes (e.g. Laravel) to their
|
|
32
|
+
* controller methods. Runs for all languages — independent of call resolution.
|
|
206
33
|
*/
|
|
207
|
-
export declare const
|
|
34
|
+
export declare const processRoutesFromExtracted: (graph: KnowledgeGraph, extractedRoutes: ExtractedRoute[], ctx: ResolutionContext, onProgress?: (current: number, total: number) => void) => Promise<void>;
|
|
208
35
|
/**
|
|
209
|
-
*
|
|
210
|
-
* No AST parsing — workers already extracted calledName + sourceId.
|
|
36
|
+
* Extract property access keys from a consumer file's source code near fetch calls.
|
|
211
37
|
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
38
|
+
* Looks for destructuring (`const { data } = await res.json()`), property access
|
|
39
|
+
* (`response.data`), and optional chaining (`data?.key`). Returns deduplicated
|
|
40
|
+
* top-level property names accessed on the response. Scans the whole file, so
|
|
41
|
+
* all accessed keys are attributed to each fetch — acceptable for regex-based
|
|
42
|
+
* extraction.
|
|
217
43
|
*/
|
|
218
|
-
export declare const processCallsFromExtracted: (graph: KnowledgeGraph, extractedCalls: ExtractedCall[], ctx: ResolutionContext, onProgress?: (current: number, total: number) => void, constructorBindings?: FileConstructorBindings[], heritageMap?: HeritageMap, bindingAccumulator?: BindingAccumulator) => Promise<void>;
|
|
219
|
-
/**
|
|
220
|
-
* Resolve pre-extracted field write assignments to ACCESSES {reason: 'write'} edges.
|
|
221
|
-
* Accepts optional constructorBindings for return-type-aware receiver inference,
|
|
222
|
-
* mirroring processCallsFromExtracted's verified binding lookup.
|
|
223
|
-
*/
|
|
224
|
-
export declare const processAssignmentsFromExtracted: (graph: KnowledgeGraph, assignments: ExtractedAssignment[], ctx: ResolutionContext, constructorBindings?: FileConstructorBindings[], bindingAccumulator?: BindingAccumulator) => void;
|
|
225
|
-
/**
|
|
226
|
-
* Resolve pre-extracted Laravel routes to CALLS edges from route files to controller methods.
|
|
227
|
-
*/
|
|
228
|
-
export declare const processRoutesFromExtracted: (graph: KnowledgeGraph, extractedRoutes: ExtractedRoute[], ctx: ResolutionContext, onProgress?: (current: number, total: number) => void) => Promise<void>;
|
|
229
44
|
export declare const extractConsumerAccessedKeys: (content: string) => string[];
|
|
230
45
|
/**
|
|
231
46
|
* Create FETCHES edges from extracted fetch() calls to matching Route nodes.
|
|
@@ -243,4 +58,3 @@ export declare const extractFetchCallsFromFiles: (files: {
|
|
|
243
58
|
path: string;
|
|
244
59
|
content: string;
|
|
245
60
|
}[], astCache: ASTCache) => Promise<ExtractedFetchCall[]>;
|
|
246
|
-
export {};
|