@colbymchenry/codegraph-darwin-x64 0.9.8 → 1.0.0
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/lib/dist/bin/codegraph.d.ts +1 -0
- package/lib/dist/bin/codegraph.d.ts.map +1 -1
- package/lib/dist/bin/codegraph.js +247 -39
- package/lib/dist/bin/codegraph.js.map +1 -1
- package/lib/dist/context/index.d.ts +9 -0
- package/lib/dist/context/index.d.ts.map +1 -1
- package/lib/dist/context/index.js +102 -6
- package/lib/dist/context/index.js.map +1 -1
- package/lib/dist/context/markers.d.ts +19 -0
- package/lib/dist/context/markers.d.ts.map +1 -0
- package/lib/dist/context/markers.js +22 -0
- package/lib/dist/context/markers.js.map +1 -0
- package/lib/dist/db/index.d.ts.map +1 -1
- package/lib/dist/db/index.js +2 -1
- package/lib/dist/db/index.js.map +1 -1
- package/lib/dist/db/migrations.d.ts +1 -1
- package/lib/dist/db/migrations.d.ts.map +1 -1
- package/lib/dist/db/migrations.js +10 -1
- package/lib/dist/db/migrations.js.map +1 -1
- package/lib/dist/db/queries.d.ts +43 -0
- package/lib/dist/db/queries.d.ts.map +1 -1
- package/lib/dist/db/queries.js +103 -7
- package/lib/dist/db/queries.js.map +1 -1
- package/lib/dist/db/schema.sql +1 -0
- package/lib/dist/db/sqlite-adapter.d.ts +7 -0
- package/lib/dist/db/sqlite-adapter.d.ts.map +1 -1
- package/lib/dist/db/sqlite-adapter.js +3 -0
- package/lib/dist/db/sqlite-adapter.js.map +1 -1
- package/lib/dist/directory.d.ts +34 -2
- package/lib/dist/directory.d.ts.map +1 -1
- package/lib/dist/directory.js +129 -35
- package/lib/dist/directory.js.map +1 -1
- package/lib/dist/extraction/astro-extractor.d.ts +79 -0
- package/lib/dist/extraction/astro-extractor.d.ts.map +1 -0
- package/lib/dist/extraction/astro-extractor.js +320 -0
- package/lib/dist/extraction/astro-extractor.js.map +1 -0
- package/lib/dist/extraction/extraction-version.d.ts +25 -0
- package/lib/dist/extraction/extraction-version.d.ts.map +1 -0
- package/lib/dist/extraction/extraction-version.js +28 -0
- package/lib/dist/extraction/extraction-version.js.map +1 -0
- package/lib/dist/extraction/function-ref.d.ts +118 -0
- package/lib/dist/extraction/function-ref.d.ts.map +1 -0
- package/lib/dist/extraction/function-ref.js +727 -0
- package/lib/dist/extraction/function-ref.js.map +1 -0
- package/lib/dist/extraction/generated-detection.d.ts.map +1 -1
- package/lib/dist/extraction/generated-detection.js +3 -0
- package/lib/dist/extraction/generated-detection.js.map +1 -1
- package/lib/dist/extraction/grammars.d.ts +7 -1
- package/lib/dist/extraction/grammars.d.ts.map +1 -1
- package/lib/dist/extraction/grammars.js +52 -4
- package/lib/dist/extraction/grammars.js.map +1 -1
- package/lib/dist/extraction/index.d.ts +34 -0
- package/lib/dist/extraction/index.d.ts.map +1 -1
- package/lib/dist/extraction/index.js +346 -62
- package/lib/dist/extraction/index.js.map +1 -1
- package/lib/dist/extraction/languages/c-cpp.d.ts +8 -0
- package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
- package/lib/dist/extraction/languages/c-cpp.js +87 -28
- package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
- package/lib/dist/extraction/languages/csharp.d.ts +22 -0
- package/lib/dist/extraction/languages/csharp.d.ts.map +1 -1
- package/lib/dist/extraction/languages/csharp.js +84 -2
- package/lib/dist/extraction/languages/csharp.js.map +1 -1
- package/lib/dist/extraction/languages/dart.d.ts.map +1 -1
- package/lib/dist/extraction/languages/dart.js +161 -1
- package/lib/dist/extraction/languages/dart.js.map +1 -1
- package/lib/dist/extraction/languages/go.d.ts.map +1 -1
- package/lib/dist/extraction/languages/go.js +43 -2
- package/lib/dist/extraction/languages/go.js.map +1 -1
- package/lib/dist/extraction/languages/index.d.ts.map +1 -1
- package/lib/dist/extraction/languages/index.js +2 -0
- package/lib/dist/extraction/languages/index.js.map +1 -1
- package/lib/dist/extraction/languages/java.d.ts.map +1 -1
- package/lib/dist/extraction/languages/java.js +42 -1
- package/lib/dist/extraction/languages/java.js.map +1 -1
- package/lib/dist/extraction/languages/javascript.d.ts.map +1 -1
- package/lib/dist/extraction/languages/javascript.js +16 -0
- package/lib/dist/extraction/languages/javascript.js.map +1 -1
- package/lib/dist/extraction/languages/kotlin.d.ts.map +1 -1
- package/lib/dist/extraction/languages/kotlin.js +69 -0
- package/lib/dist/extraction/languages/kotlin.js.map +1 -1
- package/lib/dist/extraction/languages/objc.d.ts.map +1 -1
- package/lib/dist/extraction/languages/objc.js +42 -0
- package/lib/dist/extraction/languages/objc.js.map +1 -1
- package/lib/dist/extraction/languages/pascal.d.ts.map +1 -1
- package/lib/dist/extraction/languages/pascal.js +11 -0
- package/lib/dist/extraction/languages/pascal.js.map +1 -1
- package/lib/dist/extraction/languages/php.d.ts.map +1 -1
- package/lib/dist/extraction/languages/php.js +90 -1
- package/lib/dist/extraction/languages/php.js.map +1 -1
- package/lib/dist/extraction/languages/r.d.ts +3 -0
- package/lib/dist/extraction/languages/r.d.ts.map +1 -0
- package/lib/dist/extraction/languages/r.js +314 -0
- package/lib/dist/extraction/languages/r.js.map +1 -0
- package/lib/dist/extraction/languages/ruby.d.ts.map +1 -1
- package/lib/dist/extraction/languages/ruby.js +35 -0
- package/lib/dist/extraction/languages/ruby.js.map +1 -1
- package/lib/dist/extraction/languages/rust.d.ts.map +1 -1
- package/lib/dist/extraction/languages/rust.js +35 -2
- package/lib/dist/extraction/languages/rust.js.map +1 -1
- package/lib/dist/extraction/languages/scala.d.ts.map +1 -1
- package/lib/dist/extraction/languages/scala.js +61 -1
- package/lib/dist/extraction/languages/scala.js.map +1 -1
- package/lib/dist/extraction/languages/swift.d.ts.map +1 -1
- package/lib/dist/extraction/languages/swift.js +61 -0
- package/lib/dist/extraction/languages/swift.js.map +1 -1
- package/lib/dist/extraction/languages/typescript.d.ts +13 -0
- package/lib/dist/extraction/languages/typescript.d.ts.map +1 -1
- package/lib/dist/extraction/languages/typescript.js +38 -0
- package/lib/dist/extraction/languages/typescript.js.map +1 -1
- package/lib/dist/extraction/liquid-extractor.d.ts +7 -0
- package/lib/dist/extraction/liquid-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/liquid-extractor.js +53 -9
- package/lib/dist/extraction/liquid-extractor.js.map +1 -1
- package/lib/dist/extraction/razor-extractor.d.ts +42 -0
- package/lib/dist/extraction/razor-extractor.d.ts.map +1 -0
- package/lib/dist/extraction/razor-extractor.js +285 -0
- package/lib/dist/extraction/razor-extractor.js.map +1 -0
- package/lib/dist/extraction/svelte-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/svelte-extractor.js +6 -3
- package/lib/dist/extraction/svelte-extractor.js.map +1 -1
- package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter-helpers.js +59 -10
- package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
- package/lib/dist/extraction/tree-sitter-types.d.ts +33 -0
- package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.d.ts +237 -0
- package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
- package/lib/dist/extraction/tree-sitter.js +1820 -68
- package/lib/dist/extraction/tree-sitter.js.map +1 -1
- package/lib/dist/extraction/vue-extractor.d.ts +15 -0
- package/lib/dist/extraction/vue-extractor.d.ts.map +1 -1
- package/lib/dist/extraction/vue-extractor.js +94 -3
- package/lib/dist/extraction/vue-extractor.js.map +1 -1
- package/lib/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/lib/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
- package/lib/dist/graph/queries.d.ts.map +1 -1
- package/lib/dist/graph/queries.js +13 -40
- package/lib/dist/graph/queries.js.map +1 -1
- package/lib/dist/graph/traversal.d.ts.map +1 -1
- package/lib/dist/graph/traversal.js +16 -4
- package/lib/dist/graph/traversal.js.map +1 -1
- package/lib/dist/index.d.ts +41 -3
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +99 -9
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/installer/index.d.ts.map +1 -1
- package/lib/dist/installer/index.js +52 -2
- package/lib/dist/installer/index.js.map +1 -1
- package/lib/dist/installer/instructions-template.d.ts +34 -11
- package/lib/dist/installer/instructions-template.d.ts.map +1 -1
- package/lib/dist/installer/instructions-template.js +44 -12
- package/lib/dist/installer/instructions-template.js.map +1 -1
- package/lib/dist/installer/targets/claude.d.ts.map +1 -1
- package/lib/dist/installer/targets/claude.js +6 -10
- package/lib/dist/installer/targets/claude.js.map +1 -1
- package/lib/dist/installer/targets/codex.js +4 -6
- package/lib/dist/installer/targets/codex.js.map +1 -1
- package/lib/dist/installer/targets/gemini.js +4 -6
- package/lib/dist/installer/targets/gemini.js.map +1 -1
- package/lib/dist/installer/targets/opencode.d.ts +9 -1
- package/lib/dist/installer/targets/opencode.d.ts.map +1 -1
- package/lib/dist/installer/targets/opencode.js +91 -40
- package/lib/dist/installer/targets/opencode.js.map +1 -1
- package/lib/dist/installer/targets/shared.d.ts +14 -0
- package/lib/dist/installer/targets/shared.d.ts.map +1 -1
- package/lib/dist/installer/targets/shared.js +19 -2
- package/lib/dist/installer/targets/shared.js.map +1 -1
- package/lib/dist/mcp/daemon.d.ts +60 -1
- package/lib/dist/mcp/daemon.d.ts.map +1 -1
- package/lib/dist/mcp/daemon.js +221 -8
- package/lib/dist/mcp/daemon.js.map +1 -1
- package/lib/dist/mcp/dynamic-boundaries.d.ts +41 -0
- package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
- package/lib/dist/mcp/dynamic-boundaries.js +359 -0
- package/lib/dist/mcp/dynamic-boundaries.js.map +1 -0
- package/lib/dist/mcp/index.d.ts.map +1 -1
- package/lib/dist/mcp/index.js +18 -9
- package/lib/dist/mcp/index.js.map +1 -1
- package/lib/dist/mcp/ppid-watchdog.d.ts +44 -0
- package/lib/dist/mcp/ppid-watchdog.d.ts.map +1 -0
- package/lib/dist/mcp/ppid-watchdog.js +27 -0
- package/lib/dist/mcp/ppid-watchdog.js.map +1 -0
- package/lib/dist/mcp/proxy.d.ts +6 -0
- package/lib/dist/mcp/proxy.d.ts.map +1 -1
- package/lib/dist/mcp/proxy.js +153 -24
- package/lib/dist/mcp/proxy.js.map +1 -1
- package/lib/dist/mcp/server-instructions.d.ts +12 -1
- package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
- package/lib/dist/mcp/server-instructions.js +58 -32
- package/lib/dist/mcp/server-instructions.js.map +1 -1
- package/lib/dist/mcp/session.d.ts +2 -0
- package/lib/dist/mcp/session.d.ts.map +1 -1
- package/lib/dist/mcp/session.js +49 -2
- package/lib/dist/mcp/session.js.map +1 -1
- package/lib/dist/mcp/stdin-teardown.d.ts +27 -0
- package/lib/dist/mcp/stdin-teardown.d.ts.map +1 -0
- package/lib/dist/mcp/stdin-teardown.js +49 -0
- package/lib/dist/mcp/stdin-teardown.js.map +1 -0
- package/lib/dist/mcp/tools.d.ts +110 -49
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +1222 -972
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/mcp/transport.d.ts.map +1 -1
- package/lib/dist/mcp/transport.js +18 -2
- package/lib/dist/mcp/transport.js.map +1 -1
- package/lib/dist/resolution/callback-synthesizer.d.ts +3 -3
- package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
- package/lib/dist/resolution/callback-synthesizer.js +549 -21
- package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
- package/lib/dist/resolution/frameworks/astro.d.ts +9 -0
- package/lib/dist/resolution/frameworks/astro.d.ts.map +1 -0
- package/lib/dist/resolution/frameworks/astro.js +169 -0
- package/lib/dist/resolution/frameworks/astro.js.map +1 -0
- package/lib/dist/resolution/frameworks/expo-modules.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/expo-modules.js +6 -1
- package/lib/dist/resolution/frameworks/expo-modules.js.map +1 -1
- package/lib/dist/resolution/frameworks/index.d.ts +1 -0
- package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/index.js +5 -1
- package/lib/dist/resolution/frameworks/index.js.map +1 -1
- package/lib/dist/resolution/frameworks/java.js +6 -1
- package/lib/dist/resolution/frameworks/java.js.map +1 -1
- package/lib/dist/resolution/frameworks/python.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/python.js +7 -3
- package/lib/dist/resolution/frameworks/python.js.map +1 -1
- package/lib/dist/resolution/frameworks/react-native.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/react-native.js +53 -3
- package/lib/dist/resolution/frameworks/react-native.js.map +1 -1
- package/lib/dist/resolution/frameworks/react.d.ts.map +1 -1
- package/lib/dist/resolution/frameworks/react.js +15 -3
- package/lib/dist/resolution/frameworks/react.js.map +1 -1
- package/lib/dist/resolution/frameworks/svelte.js +5 -1
- package/lib/dist/resolution/frameworks/svelte.js.map +1 -1
- package/lib/dist/resolution/frameworks/vue.js +24 -27
- package/lib/dist/resolution/frameworks/vue.js.map +1 -1
- package/lib/dist/resolution/import-resolver.d.ts +10 -0
- package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
- package/lib/dist/resolution/import-resolver.js +564 -2
- package/lib/dist/resolution/import-resolver.js.map +1 -1
- package/lib/dist/resolution/index.d.ts +80 -0
- package/lib/dist/resolution/index.d.ts.map +1 -1
- package/lib/dist/resolution/index.js +457 -7
- package/lib/dist/resolution/index.js.map +1 -1
- package/lib/dist/resolution/name-matcher.d.ts +61 -0
- package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
- package/lib/dist/resolution/name-matcher.js +590 -14
- package/lib/dist/resolution/name-matcher.js.map +1 -1
- package/lib/dist/resolution/types.d.ts +27 -3
- package/lib/dist/resolution/types.d.ts.map +1 -1
- package/lib/dist/resolution/workspace-packages.d.ts +48 -0
- package/lib/dist/resolution/workspace-packages.d.ts.map +1 -0
- package/lib/dist/resolution/workspace-packages.js +208 -0
- package/lib/dist/resolution/workspace-packages.js.map +1 -0
- package/lib/dist/search/query-utils.d.ts +35 -1
- package/lib/dist/search/query-utils.d.ts.map +1 -1
- package/lib/dist/search/query-utils.js +109 -10
- package/lib/dist/search/query-utils.js.map +1 -1
- package/lib/dist/sync/watcher.d.ts +124 -32
- package/lib/dist/sync/watcher.d.ts.map +1 -1
- package/lib/dist/sync/watcher.js +326 -111
- package/lib/dist/sync/watcher.js.map +1 -1
- package/lib/dist/telemetry/index.d.ts +146 -0
- package/lib/dist/telemetry/index.d.ts.map +1 -0
- package/lib/dist/telemetry/index.js +544 -0
- package/lib/dist/telemetry/index.js.map +1 -0
- package/lib/dist/types.d.ts +25 -2
- package/lib/dist/types.d.ts.map +1 -1
- package/lib/dist/types.js +3 -0
- package/lib/dist/types.js.map +1 -1
- package/lib/dist/upgrade/index.d.ts +132 -0
- package/lib/dist/upgrade/index.d.ts.map +1 -0
- package/lib/dist/upgrade/index.js +462 -0
- package/lib/dist/upgrade/index.js.map +1 -0
- package/lib/dist/utils.d.ts +30 -24
- package/lib/dist/utils.d.ts.map +1 -1
- package/lib/dist/utils.js +64 -48
- package/lib/dist/utils.js.map +1 -1
- package/lib/node_modules/.package-lock.json +1 -29
- package/lib/package.json +1 -2
- package/package.json +1 -1
- package/lib/node_modules/chokidar/LICENSE +0 -21
- package/lib/node_modules/chokidar/README.md +0 -305
- package/lib/node_modules/chokidar/esm/handler.d.ts +0 -90
- package/lib/node_modules/chokidar/esm/handler.js +0 -629
- package/lib/node_modules/chokidar/esm/index.d.ts +0 -215
- package/lib/node_modules/chokidar/esm/index.js +0 -798
- package/lib/node_modules/chokidar/esm/package.json +0 -1
- package/lib/node_modules/chokidar/handler.d.ts +0 -90
- package/lib/node_modules/chokidar/handler.js +0 -635
- package/lib/node_modules/chokidar/index.d.ts +0 -215
- package/lib/node_modules/chokidar/index.js +0 -804
- package/lib/node_modules/chokidar/package.json +0 -69
- package/lib/node_modules/readdirp/LICENSE +0 -21
- package/lib/node_modules/readdirp/README.md +0 -120
- package/lib/node_modules/readdirp/esm/index.d.ts +0 -108
- package/lib/node_modules/readdirp/esm/index.js +0 -257
- package/lib/node_modules/readdirp/esm/package.json +0 -1
- package/lib/node_modules/readdirp/index.d.ts +0 -108
- package/lib/node_modules/readdirp/index.js +0 -263
- package/lib/node_modules/readdirp/package.json +0 -70
|
@@ -20,11 +20,45 @@ export declare class TreeSitterExtractor {
|
|
|
20
20
|
private extractor;
|
|
21
21
|
private nodeStack;
|
|
22
22
|
private methodIndex;
|
|
23
|
+
private fnRefSpec;
|
|
24
|
+
private fnRefCandidates;
|
|
23
25
|
constructor(filePath: string, source: string, language?: Language);
|
|
24
26
|
/**
|
|
25
27
|
* Parse and extract from the source code
|
|
26
28
|
*/
|
|
27
29
|
extract(): ExtractionResult;
|
|
30
|
+
/**
|
|
31
|
+
* Function-as-value capture (#756): if this node is one of the language's
|
|
32
|
+
* value-position containers (call arguments, assignment RHS, struct/object
|
|
33
|
+
* initializer, array/table literal), collect candidate function names from
|
|
34
|
+
* it. Candidates are gated & flushed at end-of-file (flushFnRefCandidates).
|
|
35
|
+
*/
|
|
36
|
+
private maybeCaptureFnRefs;
|
|
37
|
+
/**
|
|
38
|
+
* Candidates-only scan of a subtree the main walkers won't traverse
|
|
39
|
+
* (top-level variable initializers). No extraction side effects. Halts at
|
|
40
|
+
* nested function definitions: their bodies are walked — and their
|
|
41
|
+
* candidates attributed — by extractFunction's own body walk.
|
|
42
|
+
*/
|
|
43
|
+
private scanFnRefSubtree;
|
|
44
|
+
/**
|
|
45
|
+
* Gate captured function-as-value candidates and push survivors as
|
|
46
|
+
* `function_ref` unresolved references.
|
|
47
|
+
*
|
|
48
|
+
* The gate bounds volume and protects precision: a candidate survives only
|
|
49
|
+
* if its name matches a function/method DEFINED IN THIS FILE or a name this
|
|
50
|
+
* file imports/references. Everything else (locals, params, fields passed
|
|
51
|
+
* as arguments) is dropped before it ever reaches the database. Resolution
|
|
52
|
+
* then matches survivors against function/method nodes only
|
|
53
|
+
* (matchFunctionRef) and emits `references` edges — which callers/impact
|
|
54
|
+
* already traverse.
|
|
55
|
+
*
|
|
56
|
+
* Known v1 limit, deliberate: a C/C++ callback registered in a DIFFERENT
|
|
57
|
+
* translation unit than its definition (extern, no symbol imports to match)
|
|
58
|
+
* is not captured. Same-file registration — the dominant C pattern (static
|
|
59
|
+
* callback + same-file ops struct) — is.
|
|
60
|
+
*/
|
|
61
|
+
private flushFnRefCandidates;
|
|
28
62
|
/**
|
|
29
63
|
* Visit a node and extract information
|
|
30
64
|
*/
|
|
@@ -97,6 +131,32 @@ export declare class TreeSitterExtractor {
|
|
|
97
131
|
* Extracts each declarator as a 'field' kind node inside the owning class.
|
|
98
132
|
*/
|
|
99
133
|
private extractField;
|
|
134
|
+
/**
|
|
135
|
+
* Extract function-valued properties of an object literal as named function
|
|
136
|
+
* nodes (named by their property key). Shared by the two object-of-functions
|
|
137
|
+
* shapes in extractVariable: the object as a direct const value, and the
|
|
138
|
+
* object returned by a store-initializer call. Handles both `key: () => {}` /
|
|
139
|
+
* `key: function() {}` pairs and method shorthand `key() {}`.
|
|
140
|
+
*/
|
|
141
|
+
private extractObjectLiteralFunctions;
|
|
142
|
+
/** Property-key text with surrounding quotes stripped (`'foo'` → `foo`). */
|
|
143
|
+
private objectKeyName;
|
|
144
|
+
/**
|
|
145
|
+
* Given a `call_expression` initializer (`create((set, get) => ({...}))`),
|
|
146
|
+
* find the object literal RETURNED by a function argument — descending through
|
|
147
|
+
* nested call_expression arguments so middleware wrappers are unwrapped
|
|
148
|
+
* (`create(persist((set, get) => ({...}), {...}))`, devtools, immer,
|
|
149
|
+
* subscribeWithSelector). Returns null when no such object is found — the
|
|
150
|
+
* common case for ordinary call initializers — so this stays cheap and silent
|
|
151
|
+
* rather than guessing. Keyed purely on AST shape; no library names.
|
|
152
|
+
*/
|
|
153
|
+
private findInitializerReturnedObject;
|
|
154
|
+
/**
|
|
155
|
+
* The object literal a function expression returns — either the `=> ({...})`
|
|
156
|
+
* arrow form (a parenthesized_expression wrapping an object) or a
|
|
157
|
+
* `=> { return {...} }` block. Returns null for any other body shape.
|
|
158
|
+
*/
|
|
159
|
+
private functionReturnedObject;
|
|
100
160
|
/**
|
|
101
161
|
* Extract a variable declaration (const, let, var, etc.)
|
|
102
162
|
*
|
|
@@ -111,6 +171,14 @@ export declare class TreeSitterExtractor {
|
|
|
111
171
|
* Returns true if children should be skipped (struct/interface handled body visiting).
|
|
112
172
|
*/
|
|
113
173
|
private extractTypeAlias;
|
|
174
|
+
/**
|
|
175
|
+
* Extract the method specs of a Go `interface_type` body as `method` nodes
|
|
176
|
+
* contained by the interface (e.g. `Marshal`, `Unmarshal` of a `Core`
|
|
177
|
+
* interface). tree-sitter-go names these `method_elem` (newer) or
|
|
178
|
+
* `method_spec` (older). Embedded interfaces (`Reader` inside `ReadWriter`)
|
|
179
|
+
* are `type_identifier`s, not methods, and are left to inheritance extraction.
|
|
180
|
+
*/
|
|
181
|
+
private extractGoInterfaceMethods;
|
|
114
182
|
/**
|
|
115
183
|
* Surface the members of a TypeScript `type X = { ... }` (or intersection
|
|
116
184
|
* thereof) as `property` / `method` nodes under the type-alias node. Only
|
|
@@ -119,6 +187,34 @@ export declare class TreeSitterExtractor {
|
|
|
119
187
|
* don't produce phantom members.
|
|
120
188
|
*/
|
|
121
189
|
private extractTsTypeAliasMembers;
|
|
190
|
+
/**
|
|
191
|
+
* Surface the string-literal "names" of a TypeScript service/contract
|
|
192
|
+
* registry written as a tuple of generic instantiations:
|
|
193
|
+
*
|
|
194
|
+
* type MyServiceList = [
|
|
195
|
+
* Service<'query_apply_record', Req, Resp>,
|
|
196
|
+
* Service<'apply_confirm', Req, Resp>,
|
|
197
|
+
* ];
|
|
198
|
+
*
|
|
199
|
+
* Each `Service<'name', …>` tags an entry with a string-literal name that a
|
|
200
|
+
* dynamic factory (`createService<MyServiceList>()`) turns into a callable
|
|
201
|
+
* property (`api.query_apply_record(…)`). Static extraction otherwise never
|
|
202
|
+
* sees that name — it's a type argument, not a declaration — so
|
|
203
|
+
* `codegraph query query_apply_record` returned nothing (issue #634). We emit
|
|
204
|
+
* each name as a `method` node under the type alias (qualifiedName
|
|
205
|
+
* `MyServiceList::query_apply_record`) so it's searchable and resolvable as a
|
|
206
|
+
* symbol. (A call through the proxy, `api.query_apply_record(…)`, still
|
|
207
|
+
* resolves to the imported `api` binding — the receiver's type isn't known —
|
|
208
|
+
* so this fixes discoverability, not the per-method call edge.)
|
|
209
|
+
*
|
|
210
|
+
* Scope is deliberately narrow to avoid noise: only a string literal that is
|
|
211
|
+
* a DIRECT type argument of a `generic_type` that is itself a DIRECT element
|
|
212
|
+
* of a `tuple_type`. This excludes utility types (`Pick`/`Omit`/`Record` are
|
|
213
|
+
* never written as tuples) and string args nested deeper
|
|
214
|
+
* (`Service<'a', Pick<U, 'id'>>` yields only `a`, never `id`). Names must be
|
|
215
|
+
* valid identifiers, which also rules out route paths / arbitrary strings.
|
|
216
|
+
*/
|
|
217
|
+
private extractTsTupleContractNames;
|
|
122
218
|
/**
|
|
123
219
|
* `foo: () => T` → property_signature whose type_annotation contains a
|
|
124
220
|
* `function_type`. Treat that as a method-shaped contract member, since
|
|
@@ -132,6 +228,83 @@ export declare class TreeSitterExtractor {
|
|
|
132
228
|
* Also creates unresolved references for resolution purposes.
|
|
133
229
|
*/
|
|
134
230
|
private extractImport;
|
|
231
|
+
/**
|
|
232
|
+
* Emit one `imports` reference per named/default import binding (TS/JS family),
|
|
233
|
+
* attributed to the file node — so the resolver links each imported symbol to
|
|
234
|
+
* the file that DEFINES it.
|
|
235
|
+
*
|
|
236
|
+
* Importing a symbol IS a dependency, but extraction only emits references for
|
|
237
|
+
* calls, instantiations, type annotations, and inheritance. A symbol that's
|
|
238
|
+
* imported and then only re-exported (`export { X } from './x'`), placed in a
|
|
239
|
+
* registry array (`[expressResolver, …]`), passed as an argument, or used in
|
|
240
|
+
* JSX produced NO cross-file edge at all — so the providing file showed a
|
|
241
|
+
* false "0 dependents" and was invisible to blast-radius / `affected`. The
|
|
242
|
+
* resolver maps the local name (alias-aware) to the provider's definition and
|
|
243
|
+
* creates a cross-file `imports` edge; `getFileDependents` picks it up, while
|
|
244
|
+
* `getImpactRadius` keeps it as a bounded leaf (the importing file node).
|
|
245
|
+
*
|
|
246
|
+
* Namespace imports (`import * as NS`) bind a whole module: `NS.member` calls
|
|
247
|
+
* resolve on their own, but a namespace used ONLY via a value-member read
|
|
248
|
+
* (`NS.SOME_CONST`) would leave no edge — so we also emit the namespace local
|
|
249
|
+
* name, which the resolver links to the module FILE as a dependency backstop.
|
|
250
|
+
*/
|
|
251
|
+
private emitImportBindingRefs;
|
|
252
|
+
/**
|
|
253
|
+
* Emit one `imports` reference per re-exported binding of a
|
|
254
|
+
* `export { A, B as C } from './y'` statement, attributed to the file node —
|
|
255
|
+
* so a barrel that re-exports from another module records a dependency on it.
|
|
256
|
+
*
|
|
257
|
+
* Links the SOURCE-side name (`A`, the `name` field — not the local alias
|
|
258
|
+
* `C`), since that is what the source module defines. `export * from './y'`
|
|
259
|
+
* has no named bindings to attribute and `export { default as X }` can't be
|
|
260
|
+
* name-matched, so both are skipped.
|
|
261
|
+
*/
|
|
262
|
+
private emitReExportRefs;
|
|
263
|
+
/**
|
|
264
|
+
* Emit one `imports` reference per binding of a Rust `use` declaration —
|
|
265
|
+
* `use crate::m::Item`, `use crate::m::{A, B as C}`, `pub use self::sub::Item`.
|
|
266
|
+
* Emits the FULL path (e.g. `self::sub::Item`, not just `Item`) so the resolver
|
|
267
|
+
* can resolve the module prefix to a file and find the leaf symbol there —
|
|
268
|
+
* disambiguating common-name re-exports (`pub use self::read::read`, where the
|
|
269
|
+
* leaf `read` collides with many same-named symbols). Falls back to name-match
|
|
270
|
+
* on the leaf when the path can't be resolved. `use ...::*` has no leaf binding.
|
|
271
|
+
*/
|
|
272
|
+
private emitRustUseBindingRefs;
|
|
273
|
+
/**
|
|
274
|
+
* Emit an `imports` reference for a single PHP `use Foo\Bar\Baz;` (grouped
|
|
275
|
+
* imports `use Foo\{A, B}` are handled where their per-item nodes are created).
|
|
276
|
+
* The reference targets the namespace-qualified `Foo\Bar::Baz` form classes are
|
|
277
|
+
* stored under (see the PHP `namespace` capture), so it resolves to the RIGHT
|
|
278
|
+
* definition — Laravel has many same-named contracts (`Factory`, `Dispatcher`,
|
|
279
|
+
* `Guard`) across namespaces that a bare-name match can't disambiguate.
|
|
280
|
+
*/
|
|
281
|
+
private emitPhpUseRefs;
|
|
282
|
+
/**
|
|
283
|
+
* Ruby `require`/`require_relative` → an `imports` ref to the required FILE.
|
|
284
|
+
* `require "sidekiq/fetch"` is load-path-relative (matched by file-path suffix
|
|
285
|
+
* via {@link matchByFilePath}); `require_relative "../foo"` is resolved against
|
|
286
|
+
* this file's directory. Bare gem/stdlib requires (`require "json"`, no slash)
|
|
287
|
+
* are skipped — they're external. The path form (a `/` + `.rb`) makes the ref
|
|
288
|
+
* resolve to the file node, so a file pulled in only by `require` — not by a
|
|
289
|
+
* resolved constant/call — still records a cross-file dependency.
|
|
290
|
+
*/
|
|
291
|
+
private emitRubyRequireRefs;
|
|
292
|
+
/** Convert a PHP FQN `Foo\Bar\Baz` to the stored `Foo\Bar::Baz` and emit an `imports` ref. */
|
|
293
|
+
private pushPhpUseRef;
|
|
294
|
+
/**
|
|
295
|
+
* Emit one `imports` reference per name imported in a Python
|
|
296
|
+
* `from module import A, B as C` statement, attributed to the file node — so
|
|
297
|
+
* the resolver links each imported name to the module that DEFINES it.
|
|
298
|
+
*
|
|
299
|
+
* Same recall gap as TS: extraction only emitted references for calls,
|
|
300
|
+
* instantiations, and inheritance, so a name imported and then used in a
|
|
301
|
+
* non-call position (a list/dict literal, a default argument, a decorator
|
|
302
|
+
* target, or simply re-exported through an `__init__.py` barrel) produced no
|
|
303
|
+
* cross-file edge — the providing module showed a false "0 dependents". Links
|
|
304
|
+
* the LOCAL name (alias when present, since that's what the resolver's import
|
|
305
|
+
* mapping keys on); `from module import *` has no names to attribute.
|
|
306
|
+
*/
|
|
307
|
+
private emitPyFromImportRefs;
|
|
135
308
|
/**
|
|
136
309
|
* Extract a function call
|
|
137
310
|
*/
|
|
@@ -146,6 +319,18 @@ export declare class TreeSitterExtractor {
|
|
|
146
319
|
* arguments (`new Foo(bar())`) get their own `calls` references.
|
|
147
320
|
*/
|
|
148
321
|
private extractInstantiation;
|
|
322
|
+
/**
|
|
323
|
+
* Static-member / value-read pass. A type/enum/class used only via a member
|
|
324
|
+
* VALUE — `Enum.value`, `Type.CONST`, `Colors.red`, `Foo::BAR` — recorded no
|
|
325
|
+
* edge, because the body walker only handled CALLS (`Type.method()`). So a
|
|
326
|
+
* type referenced only by an enum value or a static field looked like nothing
|
|
327
|
+
* depended on it (the residual frontier across Dart/Java/C#/Swift/Kotlin/PHP).
|
|
328
|
+
* Emit a `references` edge to the capitalized receiver. Gated to languages
|
|
329
|
+
* where types are Capitalized by convention, and skipped when the access is a
|
|
330
|
+
* call's callee (the call extractor already links the method).
|
|
331
|
+
*/
|
|
332
|
+
private extractStaticMemberRef;
|
|
333
|
+
private pushStaticMemberRef;
|
|
149
334
|
/**
|
|
150
335
|
* Find a `class_body` child of an `object_creation_expression` — the
|
|
151
336
|
* marker for an anonymous class (`new T() { ... }`). Returns the body
|
|
@@ -190,6 +375,19 @@ export declare class TreeSitterExtractor {
|
|
|
190
375
|
* tree-sitter to interpret the namespace block as a function_definition,
|
|
191
376
|
* hiding real class/struct/enum nodes inside the "function body".
|
|
192
377
|
*/
|
|
378
|
+
/**
|
|
379
|
+
* Rocket route-registration macros — `routes![a::b::handler, c::d::other]`
|
|
380
|
+
* and `catchers![not_found]`. Tree-sitter leaves a macro body as a flat
|
|
381
|
+
* `token_tree` of raw tokens (`identifier`, `::`, `,`), so the handler paths
|
|
382
|
+
* are never seen as references and each handler fn looks like it has no caller
|
|
383
|
+
* — it's mounted by Rocket at runtime, not called by in-repo code, so its file
|
|
384
|
+
* shows 0 dependents. Walk the token tree, reconstruct each comma-separated
|
|
385
|
+
* path, and emit a `references` edge; the Rust path resolver
|
|
386
|
+
* (`resolveRustPathReference`) then links it to the handler fn. The handler
|
|
387
|
+
* names are explicit in source, so this is precise static extraction, not a
|
|
388
|
+
* heuristic — no false edges (resolution still validates each path).
|
|
389
|
+
*/
|
|
390
|
+
private extractRustRouteMacro;
|
|
193
391
|
private visitFunctionBody;
|
|
194
392
|
/**
|
|
195
393
|
* Extract inheritance relationships
|
|
@@ -208,6 +406,11 @@ export declare class TreeSitterExtractor {
|
|
|
208
406
|
* Languages that support type annotations (TypeScript, etc.)
|
|
209
407
|
*/
|
|
210
408
|
private readonly TYPE_ANNOTATION_LANGUAGES;
|
|
409
|
+
/**
|
|
410
|
+
* PHP pseudo-types and `self`/`static`/`parent` that aren't project symbols.
|
|
411
|
+
* (Scalar primitives parse as `primitive_type` and are skipped structurally.)
|
|
412
|
+
*/
|
|
413
|
+
private readonly PHP_PSEUDO_TYPES;
|
|
211
414
|
/**
|
|
212
415
|
* Built-in/primitive type names that shouldn't create references
|
|
213
416
|
*/
|
|
@@ -230,12 +433,35 @@ export declare class TreeSitterExtractor {
|
|
|
230
433
|
* `tuple_type`, …) — none of which are `type_identifier`. Closes #381.
|
|
231
434
|
*/
|
|
232
435
|
private extractCsharpTypeRefs;
|
|
436
|
+
/**
|
|
437
|
+
* Record the dependencies declared by a C# PRIMARY CONSTRUCTOR
|
|
438
|
+
* (`class Svc(IRepo repo, [FromKeyedServices("k")] ICache cache) { … }`,
|
|
439
|
+
* C# 12+). The parameter list hangs off the class/struct/record declaration
|
|
440
|
+
* as an unnamed-field `parameter_list` child (not the `parameters` field a
|
|
441
|
+
* method uses), so it's found by node type. Each parameter's declared type
|
|
442
|
+
* becomes a `references` edge from the owning type — these are exactly the
|
|
443
|
+
* services a DI-registered type depends on, so impact/blast-radius and
|
|
444
|
+
* "who depends on this contract" now see them. No-op when there's no primary
|
|
445
|
+
* constructor. (#237)
|
|
446
|
+
*/
|
|
447
|
+
private extractCsharpPrimaryCtorParamRefs;
|
|
233
448
|
/**
|
|
234
449
|
* Walk a C# subtree that is KNOWN to be in a type position
|
|
235
450
|
* (return type, parameter type, property type, field type, generic
|
|
236
451
|
* argument). Identifiers here are type names, not parameter names.
|
|
237
452
|
*/
|
|
238
453
|
private walkCsharpTypePosition;
|
|
454
|
+
/**
|
|
455
|
+
* Extract PHP type references from a method/function/property declaration.
|
|
456
|
+
* Walks ONLY type positions: each parameter's type child (inside
|
|
457
|
+
* `formal_parameters`), the return type, and a property's type — all
|
|
458
|
+
* `named_type` / `optional_type` / `union_type` / … direct children. Parameter
|
|
459
|
+
* and property NAMES are `variable_name` (`$x`), never type nodes, so they
|
|
460
|
+
* can't be mis-emitted.
|
|
461
|
+
*/
|
|
462
|
+
private extractPhpTypeRefs;
|
|
463
|
+
/** Walk a PHP subtree KNOWN to be in a type position; emit class/interface refs. */
|
|
464
|
+
private walkPhpTypePosition;
|
|
239
465
|
/**
|
|
240
466
|
* Extract type references from a variable's type annotation.
|
|
241
467
|
*/
|
|
@@ -275,6 +501,17 @@ export declare class TreeSitterExtractor {
|
|
|
275
501
|
* Extract function calls from a Pascal expression
|
|
276
502
|
*/
|
|
277
503
|
private extractPascalCall;
|
|
504
|
+
/**
|
|
505
|
+
* Extract a PAREN-LESS Pascal method/procedure call (`Obj.Method;`,
|
|
506
|
+
* `TFoo.GetInstance.DoIt;`). Pascal lets a no-arg method drop its parens, so it
|
|
507
|
+
* parses as a bare `exprDot` (not an `exprCall`). A bare `exprDot` is
|
|
508
|
+
* syntactically identical to a field/property access, so this is only ever
|
|
509
|
+
* called for a STATEMENT-level exprDot (caller-gated): a bare `Obj.Field;`
|
|
510
|
+
* statement is a no-op, so a statement-level dot expression is a call. (An
|
|
511
|
+
* exprDot in assignment LHS/RHS or a condition is left alone — there it really
|
|
512
|
+
* can be a field/property read.)
|
|
513
|
+
*/
|
|
514
|
+
private extractPascalParenlessCall;
|
|
278
515
|
/**
|
|
279
516
|
* Recursively visit a Pascal block/statement tree for call expressions
|
|
280
517
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-sitter.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,QAAQ,EAIR,gBAAgB,EAGjB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"tree-sitter.d.ts","sourceRoot":"","sources":["../../src/extraction/tree-sitter.ts"],"names":[],"mappings":"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"}
|