@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
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extraction version
|
|
3
|
+
*
|
|
4
|
+
* A monotonically-increasing integer that identifies the *shape and depth* of
|
|
5
|
+
* what the extractor writes into the graph. Unlike `CURRENT_SCHEMA_VERSION`
|
|
6
|
+
* (which tracks the SQLite table layout and is migrated in place), this tracks
|
|
7
|
+
* the EXTRACTED CONTENT — node kinds, edges, synthesizers, resolver coverage.
|
|
8
|
+
*
|
|
9
|
+
* When an index was built by an older engine whose `EXTRACTION_VERSION` is
|
|
10
|
+
* below the running engine's, the data on disk is structurally fine but
|
|
11
|
+
* *stale*: it's missing whatever a newer extractor would now produce. A schema
|
|
12
|
+
* migration can't backfill that — only a re-index can. So this is the signal
|
|
13
|
+
* `codegraph status` uses to recommend a re-index, and the reason `codegraph
|
|
14
|
+
* upgrade` reminds users to refresh their projects.
|
|
15
|
+
*
|
|
16
|
+
* BUMP THIS when a release changes extraction output enough that existing
|
|
17
|
+
* indexes should be rebuilt to benefit — e.g. a new language/framework
|
|
18
|
+
* extractor, a new dynamic-dispatch synthesizer, a new node/edge kind, or a
|
|
19
|
+
* resolver fix that materially changes which edges exist. Do NOT bump for
|
|
20
|
+
* pure bug fixes, CLI/UX changes, or schema-only migrations. Over-bumping
|
|
21
|
+
* turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty
|
|
22
|
+
* in the product is load-bearing").
|
|
23
|
+
*/
|
|
24
|
+
export declare const EXTRACTION_VERSION = 24;
|
|
25
|
+
//# sourceMappingURL=extraction-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction-version.d.ts","sourceRoot":"","sources":["../../src/extraction/extraction-version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXTRACTION_VERSION = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Extraction version
|
|
6
|
+
*
|
|
7
|
+
* A monotonically-increasing integer that identifies the *shape and depth* of
|
|
8
|
+
* what the extractor writes into the graph. Unlike `CURRENT_SCHEMA_VERSION`
|
|
9
|
+
* (which tracks the SQLite table layout and is migrated in place), this tracks
|
|
10
|
+
* the EXTRACTED CONTENT — node kinds, edges, synthesizers, resolver coverage.
|
|
11
|
+
*
|
|
12
|
+
* When an index was built by an older engine whose `EXTRACTION_VERSION` is
|
|
13
|
+
* below the running engine's, the data on disk is structurally fine but
|
|
14
|
+
* *stale*: it's missing whatever a newer extractor would now produce. A schema
|
|
15
|
+
* migration can't backfill that — only a re-index can. So this is the signal
|
|
16
|
+
* `codegraph status` uses to recommend a re-index, and the reason `codegraph
|
|
17
|
+
* upgrade` reminds users to refresh their projects.
|
|
18
|
+
*
|
|
19
|
+
* BUMP THIS when a release changes extraction output enough that existing
|
|
20
|
+
* indexes should be rebuilt to benefit — e.g. a new language/framework
|
|
21
|
+
* extractor, a new dynamic-dispatch synthesizer, a new node/edge kind, or a
|
|
22
|
+
* resolver fix that materially changes which edges exist. Do NOT bump for
|
|
23
|
+
* pure bug fixes, CLI/UX changes, or schema-only migrations. Over-bumping
|
|
24
|
+
* turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty
|
|
25
|
+
* in the product is load-bearing").
|
|
26
|
+
*/
|
|
27
|
+
exports.EXTRACTION_VERSION = 24;
|
|
28
|
+
//# sourceMappingURL=extraction-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extraction-version.js","sourceRoot":"","sources":["../../src/extraction/extraction-version.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACU,QAAA,kBAAkB,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Function-as-value capture (#756) — registration-linking for callbacks.
|
|
3
|
+
*
|
|
4
|
+
* A function name used as a VALUE — passed as a call argument
|
|
5
|
+
* (`register_handler(target_cb)`, `signal(SIGINT, handler)`), assigned to a
|
|
6
|
+
* field or function pointer (`o->cb = target_cb`, `OnFire := TargetCb`),
|
|
7
|
+
* placed in a struct/object initializer (`{ .recv_cb = my_cb }`,
|
|
8
|
+
* `{ recv: targetCb }`, `Ops{Cb: targetCb}`), or listed in a function table
|
|
9
|
+
* (`static cb_t table[] = { cb_a, cb_b }`) — is a real dependency that static
|
|
10
|
+
* call extraction misses entirely: `callers(target_cb)` showed nothing but
|
|
11
|
+
* direct calls, so every callback looked dead and its registration sites were
|
|
12
|
+
* invisible to impact analysis.
|
|
13
|
+
*
|
|
14
|
+
* This module captures those value positions during the AST walk as
|
|
15
|
+
* `function_ref` candidates. Capture is table-driven per language (the value
|
|
16
|
+
* positions and wrapper forms differ per grammar — `&fn` in C, `Main::fn` in
|
|
17
|
+
* Java, `::fn` in Kotlin, `#selector(fn)` in Swift, `@TargetCb` in Pascal,
|
|
18
|
+
* `method(:fn)` in Ruby). Candidates are GATED at end-of-file extraction
|
|
19
|
+
* (see `TreeSitterExtractor.flushFnRefCandidates`): only names matching a
|
|
20
|
+
* same-file function/method or an imported binding survive, which bounds
|
|
21
|
+
* volume and keeps precision high. Resolution then matches survivors against
|
|
22
|
+
* function/method nodes ONLY (`matchFunctionRef` in
|
|
23
|
+
* `src/resolution/name-matcher.ts`) and persists them as `references` edges,
|
|
24
|
+
* which `callers`/`impact` already traverse.
|
|
25
|
+
*
|
|
26
|
+
* Deliberately NOT covered (resolving the *dispatch* — `o->cb(x)` → the
|
|
27
|
+
* registered function — needs data-flow through struct fields; a wrong edge
|
|
28
|
+
* is worse than none): indirect-call resolution and `obj.method` member
|
|
29
|
+
* values where `obj` isn't `this`/`self` (the receiver's type is statically
|
|
30
|
+
* unknowable without local data-flow).
|
|
31
|
+
*/
|
|
32
|
+
import type { Node as SyntaxNode } from 'web-tree-sitter';
|
|
33
|
+
export interface FnRefCandidate {
|
|
34
|
+
name: string;
|
|
35
|
+
line: number;
|
|
36
|
+
column: number;
|
|
37
|
+
/** Which capture position produced this candidate (gate policy keys on it). */
|
|
38
|
+
mode: CaptureMode;
|
|
39
|
+
/**
|
|
40
|
+
* True when the value was an explicit reference form (`&fn`, `&Cls::m`,
|
|
41
|
+
* `::fn`, `#selector`, `method(:sym)`) rather than a bare identifier —
|
|
42
|
+
* C++'s flush policy keys on it.
|
|
43
|
+
*/
|
|
44
|
+
explicitRef: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Skip the same-file/import name gate for this candidate. Set for PHP
|
|
47
|
+
* string callables in known HOF positions: PHP global functions are
|
|
48
|
+
* referenced cross-file WITHOUT imports (global namespace), so the gate
|
|
49
|
+
* can't see them — the strong positional prior (a string argument to
|
|
50
|
+
* `usort`/`array_map`/…) plus resolution's unique-or-drop rule carry the
|
|
51
|
+
* precision instead.
|
|
52
|
+
*/
|
|
53
|
+
skipGate?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/** How to pull candidate value nodes out of a dispatched container node. */
|
|
56
|
+
type CaptureMode = 'args' | 'rhs' | 'value' | 'list' | 'varinit';
|
|
57
|
+
interface CaptureRule {
|
|
58
|
+
mode: CaptureMode;
|
|
59
|
+
/** Field holding the value for rhs/value/varinit (defaults per mode). */
|
|
60
|
+
field?: string;
|
|
61
|
+
}
|
|
62
|
+
export interface FnRefSpec {
|
|
63
|
+
/** Bare identifier node types that can act as a function value. */
|
|
64
|
+
idTypes: Set<string>;
|
|
65
|
+
/** Container node type → how to extract candidate values from it. */
|
|
66
|
+
dispatch: Map<string, CaptureRule>;
|
|
67
|
+
/**
|
|
68
|
+
* Transparent wrapper layers between a container and its values
|
|
69
|
+
* (`argument`, `value_argument`, `literal_element`, `expression_list`…).
|
|
70
|
+
* Value: the field to descend into, or null for "named children".
|
|
71
|
+
* `expression_list` fans out to ALL named children (Go multi-assign).
|
|
72
|
+
*/
|
|
73
|
+
layers?: Map<string, string | null>;
|
|
74
|
+
/**
|
|
75
|
+
* Unary wrappers whose operand is the function value — C/C++ `&fn`
|
|
76
|
+
* (pointer_expression), Pascal `@Fn` (exprUnary), Scala eta `fn _`
|
|
77
|
+
* (postfix_expression). Value: operand field, or null for first named child.
|
|
78
|
+
*/
|
|
79
|
+
unwrap?: Map<string, string | null>;
|
|
80
|
+
/**
|
|
81
|
+
* Whole-node reference forms needing bespoke name extraction —
|
|
82
|
+
* `method_reference` (Java), `callable_reference` / `navigation_expression`
|
|
83
|
+
* (Kotlin), `selector_expression` (Swift `#selector` / ObjC `@selector`),
|
|
84
|
+
* Ruby `method(:sym)` calls, and `this.method` member forms.
|
|
85
|
+
*/
|
|
86
|
+
special?: Set<string>;
|
|
87
|
+
/**
|
|
88
|
+
* Capture modes whose candidates skip the same-file/import gate and rely on
|
|
89
|
+
* resolution's unique-or-drop rule instead. C-family only: an initializer
|
|
90
|
+
* value, function-pointer assignment RHS, or table element is a
|
|
91
|
+
* function-pointer position by construction, and C has no symbol imports —
|
|
92
|
+
* the dominant repo-scale pattern (`server.c`'s command table naming
|
|
93
|
+
* handlers defined across files) would otherwise be invisible. Call
|
|
94
|
+
* arguments stay gated everywhere (locals passed as args dwarf callbacks).
|
|
95
|
+
*/
|
|
96
|
+
ungatedModes?: Set<CaptureMode>;
|
|
97
|
+
/**
|
|
98
|
+
* C++ only: in args/rhs/varinit positions, accept ONLY explicit reference
|
|
99
|
+
* forms (`&fn`, `&Cls::method`) — never bare identifiers. C++ codebases are
|
|
100
|
+
* dense with generic free-function/accessor names (`begin`, `end`, `out`,
|
|
101
|
+
* `size`, `data`) that collide with parameters and locals, and out-of-line
|
|
102
|
+
* member definitions extract as function-kind nodes — bare-id matching on
|
|
103
|
+
* fmt was mostly wrong edges. File-scope initializer tables (value/list)
|
|
104
|
+
* still accept bare identifiers, same as C.
|
|
105
|
+
*/
|
|
106
|
+
addressOfOnly?: boolean;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Capture specs by language.
|
|
110
|
+
*/
|
|
111
|
+
export declare const FN_REF_SPECS: Record<string, FnRefSpec | undefined>;
|
|
112
|
+
/**
|
|
113
|
+
* Extract candidate names from a dispatched container node. Returns the
|
|
114
|
+
* (name, position) pairs of every function-value-shaped expression found.
|
|
115
|
+
*/
|
|
116
|
+
export declare function captureFnRefCandidates(container: SyntaxNode, rule: CaptureRule, spec: FnRefSpec, source: string): FnRefCandidate[];
|
|
117
|
+
export {};
|
|
118
|
+
//# sourceMappingURL=function-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function-ref.d.ts","sourceRoot":"","sources":["../../src/extraction/function-ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG1D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,IAAI,EAAE,WAAW,CAAC;IAClB;;;;OAIG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,4EAA4E;AAC5E,KAAK,WAAW,GACZ,MAAM,GACN,KAAK,GACL,OAAO,GACP,MAAM,GACN,SAAS,CAAC;AAEd,UAAU,WAAW;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,mEAAmE;IACnE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,qEAAqE;IACrE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAChC;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA+PD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAsB9D,CAAC;AAMF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAkGlB"}
|