@colbymchenry/codegraph-win32-arm64 0.9.9 → 1.0.1

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.
Files changed (313) hide show
  1. package/lib/dist/bin/codegraph.d.ts +1 -0
  2. package/lib/dist/bin/codegraph.d.ts.map +1 -1
  3. package/lib/dist/bin/codegraph.js +394 -10
  4. package/lib/dist/bin/codegraph.js.map +1 -1
  5. package/lib/dist/bin/fatal-handler.d.ts +20 -0
  6. package/lib/dist/bin/fatal-handler.d.ts.map +1 -0
  7. package/lib/dist/bin/fatal-handler.js +118 -0
  8. package/lib/dist/bin/fatal-handler.js.map +1 -0
  9. package/lib/dist/context/index.d.ts.map +1 -1
  10. package/lib/dist/context/index.js +7 -0
  11. package/lib/dist/context/index.js.map +1 -1
  12. package/lib/dist/db/index.d.ts.map +1 -1
  13. package/lib/dist/db/index.js +2 -1
  14. package/lib/dist/db/index.js.map +1 -1
  15. package/lib/dist/db/migrations.d.ts +1 -1
  16. package/lib/dist/db/migrations.d.ts.map +1 -1
  17. package/lib/dist/db/migrations.js +10 -1
  18. package/lib/dist/db/migrations.js.map +1 -1
  19. package/lib/dist/db/queries.d.ts +43 -0
  20. package/lib/dist/db/queries.d.ts.map +1 -1
  21. package/lib/dist/db/queries.js +103 -7
  22. package/lib/dist/db/queries.js.map +1 -1
  23. package/lib/dist/db/schema.sql +1 -0
  24. package/lib/dist/db/sqlite-adapter.d.ts +7 -0
  25. package/lib/dist/db/sqlite-adapter.d.ts.map +1 -1
  26. package/lib/dist/db/sqlite-adapter.js +3 -0
  27. package/lib/dist/db/sqlite-adapter.js.map +1 -1
  28. package/lib/dist/directory.d.ts +49 -2
  29. package/lib/dist/directory.d.ts.map +1 -1
  30. package/lib/dist/directory.js +173 -35
  31. package/lib/dist/directory.js.map +1 -1
  32. package/lib/dist/extraction/astro-extractor.d.ts +79 -0
  33. package/lib/dist/extraction/astro-extractor.d.ts.map +1 -0
  34. package/lib/dist/extraction/astro-extractor.js +320 -0
  35. package/lib/dist/extraction/astro-extractor.js.map +1 -0
  36. package/lib/dist/extraction/extraction-version.d.ts +25 -0
  37. package/lib/dist/extraction/extraction-version.d.ts.map +1 -0
  38. package/lib/dist/extraction/extraction-version.js +28 -0
  39. package/lib/dist/extraction/extraction-version.js.map +1 -0
  40. package/lib/dist/extraction/function-ref.d.ts +118 -0
  41. package/lib/dist/extraction/function-ref.d.ts.map +1 -0
  42. package/lib/dist/extraction/function-ref.js +727 -0
  43. package/lib/dist/extraction/function-ref.js.map +1 -0
  44. package/lib/dist/extraction/generated-detection.d.ts.map +1 -1
  45. package/lib/dist/extraction/generated-detection.js +3 -0
  46. package/lib/dist/extraction/generated-detection.js.map +1 -1
  47. package/lib/dist/extraction/grammars.d.ts +7 -1
  48. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  49. package/lib/dist/extraction/grammars.js +52 -4
  50. package/lib/dist/extraction/grammars.js.map +1 -1
  51. package/lib/dist/extraction/index.d.ts +34 -0
  52. package/lib/dist/extraction/index.d.ts.map +1 -1
  53. package/lib/dist/extraction/index.js +389 -62
  54. package/lib/dist/extraction/index.js.map +1 -1
  55. package/lib/dist/extraction/languages/c-cpp.d.ts +8 -0
  56. package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  57. package/lib/dist/extraction/languages/c-cpp.js +87 -28
  58. package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
  59. package/lib/dist/extraction/languages/csharp.d.ts +22 -0
  60. package/lib/dist/extraction/languages/csharp.d.ts.map +1 -1
  61. package/lib/dist/extraction/languages/csharp.js +84 -2
  62. package/lib/dist/extraction/languages/csharp.js.map +1 -1
  63. package/lib/dist/extraction/languages/dart.d.ts.map +1 -1
  64. package/lib/dist/extraction/languages/dart.js +161 -1
  65. package/lib/dist/extraction/languages/dart.js.map +1 -1
  66. package/lib/dist/extraction/languages/go.d.ts.map +1 -1
  67. package/lib/dist/extraction/languages/go.js +43 -2
  68. package/lib/dist/extraction/languages/go.js.map +1 -1
  69. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  70. package/lib/dist/extraction/languages/index.js +2 -0
  71. package/lib/dist/extraction/languages/index.js.map +1 -1
  72. package/lib/dist/extraction/languages/java.d.ts.map +1 -1
  73. package/lib/dist/extraction/languages/java.js +42 -1
  74. package/lib/dist/extraction/languages/java.js.map +1 -1
  75. package/lib/dist/extraction/languages/javascript.d.ts.map +1 -1
  76. package/lib/dist/extraction/languages/javascript.js +16 -0
  77. package/lib/dist/extraction/languages/javascript.js.map +1 -1
  78. package/lib/dist/extraction/languages/kotlin.d.ts.map +1 -1
  79. package/lib/dist/extraction/languages/kotlin.js +69 -0
  80. package/lib/dist/extraction/languages/kotlin.js.map +1 -1
  81. package/lib/dist/extraction/languages/objc.d.ts.map +1 -1
  82. package/lib/dist/extraction/languages/objc.js +42 -0
  83. package/lib/dist/extraction/languages/objc.js.map +1 -1
  84. package/lib/dist/extraction/languages/pascal.d.ts.map +1 -1
  85. package/lib/dist/extraction/languages/pascal.js +11 -0
  86. package/lib/dist/extraction/languages/pascal.js.map +1 -1
  87. package/lib/dist/extraction/languages/php.d.ts.map +1 -1
  88. package/lib/dist/extraction/languages/php.js +90 -1
  89. package/lib/dist/extraction/languages/php.js.map +1 -1
  90. package/lib/dist/extraction/languages/r.d.ts +3 -0
  91. package/lib/dist/extraction/languages/r.d.ts.map +1 -0
  92. package/lib/dist/extraction/languages/r.js +314 -0
  93. package/lib/dist/extraction/languages/r.js.map +1 -0
  94. package/lib/dist/extraction/languages/ruby.d.ts.map +1 -1
  95. package/lib/dist/extraction/languages/ruby.js +35 -0
  96. package/lib/dist/extraction/languages/ruby.js.map +1 -1
  97. package/lib/dist/extraction/languages/rust.d.ts.map +1 -1
  98. package/lib/dist/extraction/languages/rust.js +35 -2
  99. package/lib/dist/extraction/languages/rust.js.map +1 -1
  100. package/lib/dist/extraction/languages/scala.d.ts.map +1 -1
  101. package/lib/dist/extraction/languages/scala.js +61 -1
  102. package/lib/dist/extraction/languages/scala.js.map +1 -1
  103. package/lib/dist/extraction/languages/swift.d.ts.map +1 -1
  104. package/lib/dist/extraction/languages/swift.js +61 -0
  105. package/lib/dist/extraction/languages/swift.js.map +1 -1
  106. package/lib/dist/extraction/languages/typescript.d.ts +13 -0
  107. package/lib/dist/extraction/languages/typescript.d.ts.map +1 -1
  108. package/lib/dist/extraction/languages/typescript.js +38 -0
  109. package/lib/dist/extraction/languages/typescript.js.map +1 -1
  110. package/lib/dist/extraction/liquid-extractor.d.ts +7 -0
  111. package/lib/dist/extraction/liquid-extractor.d.ts.map +1 -1
  112. package/lib/dist/extraction/liquid-extractor.js +53 -9
  113. package/lib/dist/extraction/liquid-extractor.js.map +1 -1
  114. package/lib/dist/extraction/razor-extractor.d.ts +42 -0
  115. package/lib/dist/extraction/razor-extractor.d.ts.map +1 -0
  116. package/lib/dist/extraction/razor-extractor.js +285 -0
  117. package/lib/dist/extraction/razor-extractor.js.map +1 -0
  118. package/lib/dist/extraction/svelte-extractor.d.ts.map +1 -1
  119. package/lib/dist/extraction/svelte-extractor.js +6 -3
  120. package/lib/dist/extraction/svelte-extractor.js.map +1 -1
  121. package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
  122. package/lib/dist/extraction/tree-sitter-helpers.js +59 -10
  123. package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
  124. package/lib/dist/extraction/tree-sitter-types.d.ts +33 -0
  125. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  126. package/lib/dist/extraction/tree-sitter.d.ts +211 -0
  127. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  128. package/lib/dist/extraction/tree-sitter.js +1681 -49
  129. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  130. package/lib/dist/extraction/vue-extractor.d.ts +15 -0
  131. package/lib/dist/extraction/vue-extractor.d.ts.map +1 -1
  132. package/lib/dist/extraction/vue-extractor.js +94 -3
  133. package/lib/dist/extraction/vue-extractor.js.map +1 -1
  134. package/lib/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  135. package/lib/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  136. package/lib/dist/graph/queries.d.ts.map +1 -1
  137. package/lib/dist/graph/queries.js +13 -40
  138. package/lib/dist/graph/queries.js.map +1 -1
  139. package/lib/dist/graph/traversal.d.ts.map +1 -1
  140. package/lib/dist/graph/traversal.js +16 -4
  141. package/lib/dist/graph/traversal.js.map +1 -1
  142. package/lib/dist/index.d.ts +34 -2
  143. package/lib/dist/index.d.ts.map +1 -1
  144. package/lib/dist/index.js +90 -8
  145. package/lib/dist/index.js.map +1 -1
  146. package/lib/dist/installer/index.d.ts.map +1 -1
  147. package/lib/dist/installer/index.js +63 -2
  148. package/lib/dist/installer/index.js.map +1 -1
  149. package/lib/dist/installer/instructions-template.d.ts +34 -11
  150. package/lib/dist/installer/instructions-template.d.ts.map +1 -1
  151. package/lib/dist/installer/instructions-template.js +44 -12
  152. package/lib/dist/installer/instructions-template.js.map +1 -1
  153. package/lib/dist/installer/targets/claude.d.ts.map +1 -1
  154. package/lib/dist/installer/targets/claude.js +6 -10
  155. package/lib/dist/installer/targets/claude.js.map +1 -1
  156. package/lib/dist/installer/targets/codex.js +4 -6
  157. package/lib/dist/installer/targets/codex.js.map +1 -1
  158. package/lib/dist/installer/targets/gemini.js +4 -6
  159. package/lib/dist/installer/targets/gemini.js.map +1 -1
  160. package/lib/dist/installer/targets/opencode.d.ts +9 -1
  161. package/lib/dist/installer/targets/opencode.d.ts.map +1 -1
  162. package/lib/dist/installer/targets/opencode.js +91 -40
  163. package/lib/dist/installer/targets/opencode.js.map +1 -1
  164. package/lib/dist/installer/targets/shared.d.ts +14 -0
  165. package/lib/dist/installer/targets/shared.d.ts.map +1 -1
  166. package/lib/dist/installer/targets/shared.js +16 -0
  167. package/lib/dist/installer/targets/shared.js.map +1 -1
  168. package/lib/dist/mcp/daemon-manager.d.ts +42 -0
  169. package/lib/dist/mcp/daemon-manager.d.ts.map +1 -0
  170. package/lib/dist/mcp/daemon-manager.js +129 -0
  171. package/lib/dist/mcp/daemon-manager.js.map +1 -0
  172. package/lib/dist/mcp/daemon-registry.d.ts +47 -0
  173. package/lib/dist/mcp/daemon-registry.d.ts.map +1 -0
  174. package/lib/dist/mcp/daemon-registry.js +229 -0
  175. package/lib/dist/mcp/daemon-registry.js.map +1 -0
  176. package/lib/dist/mcp/daemon.d.ts +60 -1
  177. package/lib/dist/mcp/daemon.d.ts.map +1 -1
  178. package/lib/dist/mcp/daemon.js +226 -8
  179. package/lib/dist/mcp/daemon.js.map +1 -1
  180. package/lib/dist/mcp/dynamic-boundaries.d.ts +41 -0
  181. package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  182. package/lib/dist/mcp/dynamic-boundaries.js +359 -0
  183. package/lib/dist/mcp/dynamic-boundaries.js.map +1 -0
  184. package/lib/dist/mcp/index.d.ts +1 -0
  185. package/lib/dist/mcp/index.d.ts.map +1 -1
  186. package/lib/dist/mcp/index.js +31 -9
  187. package/lib/dist/mcp/index.js.map +1 -1
  188. package/lib/dist/mcp/liveness-watchdog.d.ts +18 -0
  189. package/lib/dist/mcp/liveness-watchdog.d.ts.map +1 -0
  190. package/lib/dist/mcp/liveness-watchdog.js +207 -0
  191. package/lib/dist/mcp/liveness-watchdog.js.map +1 -0
  192. package/lib/dist/mcp/ppid-watchdog.d.ts +44 -0
  193. package/lib/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  194. package/lib/dist/mcp/ppid-watchdog.js +27 -0
  195. package/lib/dist/mcp/ppid-watchdog.js.map +1 -0
  196. package/lib/dist/mcp/proxy.d.ts +6 -0
  197. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  198. package/lib/dist/mcp/proxy.js +153 -24
  199. package/lib/dist/mcp/proxy.js.map +1 -1
  200. package/lib/dist/mcp/server-instructions.d.ts +12 -1
  201. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  202. package/lib/dist/mcp/server-instructions.js +43 -16
  203. package/lib/dist/mcp/server-instructions.js.map +1 -1
  204. package/lib/dist/mcp/session.d.ts +2 -0
  205. package/lib/dist/mcp/session.d.ts.map +1 -1
  206. package/lib/dist/mcp/session.js +49 -2
  207. package/lib/dist/mcp/session.js.map +1 -1
  208. package/lib/dist/mcp/stdin-teardown.d.ts +27 -0
  209. package/lib/dist/mcp/stdin-teardown.d.ts.map +1 -0
  210. package/lib/dist/mcp/stdin-teardown.js +49 -0
  211. package/lib/dist/mcp/stdin-teardown.js.map +1 -0
  212. package/lib/dist/mcp/tools.d.ts +71 -0
  213. package/lib/dist/mcp/tools.d.ts.map +1 -1
  214. package/lib/dist/mcp/tools.js +703 -85
  215. package/lib/dist/mcp/tools.js.map +1 -1
  216. package/lib/dist/mcp/transport.d.ts.map +1 -1
  217. package/lib/dist/mcp/transport.js +18 -2
  218. package/lib/dist/mcp/transport.js.map +1 -1
  219. package/lib/dist/resolution/callback-synthesizer.d.ts +3 -3
  220. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  221. package/lib/dist/resolution/callback-synthesizer.js +549 -21
  222. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  223. package/lib/dist/resolution/frameworks/astro.d.ts +9 -0
  224. package/lib/dist/resolution/frameworks/astro.d.ts.map +1 -0
  225. package/lib/dist/resolution/frameworks/astro.js +169 -0
  226. package/lib/dist/resolution/frameworks/astro.js.map +1 -0
  227. package/lib/dist/resolution/frameworks/expo-modules.d.ts.map +1 -1
  228. package/lib/dist/resolution/frameworks/expo-modules.js +6 -1
  229. package/lib/dist/resolution/frameworks/expo-modules.js.map +1 -1
  230. package/lib/dist/resolution/frameworks/index.d.ts +1 -0
  231. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  232. package/lib/dist/resolution/frameworks/index.js +5 -1
  233. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  234. package/lib/dist/resolution/frameworks/java.js +6 -1
  235. package/lib/dist/resolution/frameworks/java.js.map +1 -1
  236. package/lib/dist/resolution/frameworks/python.d.ts.map +1 -1
  237. package/lib/dist/resolution/frameworks/python.js +7 -3
  238. package/lib/dist/resolution/frameworks/python.js.map +1 -1
  239. package/lib/dist/resolution/frameworks/react-native.d.ts.map +1 -1
  240. package/lib/dist/resolution/frameworks/react-native.js +53 -3
  241. package/lib/dist/resolution/frameworks/react-native.js.map +1 -1
  242. package/lib/dist/resolution/frameworks/react.d.ts.map +1 -1
  243. package/lib/dist/resolution/frameworks/react.js +15 -3
  244. package/lib/dist/resolution/frameworks/react.js.map +1 -1
  245. package/lib/dist/resolution/frameworks/svelte.js +5 -1
  246. package/lib/dist/resolution/frameworks/svelte.js.map +1 -1
  247. package/lib/dist/resolution/frameworks/vue.js +24 -27
  248. package/lib/dist/resolution/frameworks/vue.js.map +1 -1
  249. package/lib/dist/resolution/import-resolver.d.ts +10 -0
  250. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  251. package/lib/dist/resolution/import-resolver.js +620 -2
  252. package/lib/dist/resolution/import-resolver.js.map +1 -1
  253. package/lib/dist/resolution/index.d.ts +80 -0
  254. package/lib/dist/resolution/index.d.ts.map +1 -1
  255. package/lib/dist/resolution/index.js +457 -7
  256. package/lib/dist/resolution/index.js.map +1 -1
  257. package/lib/dist/resolution/name-matcher.d.ts +61 -0
  258. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  259. package/lib/dist/resolution/name-matcher.js +590 -14
  260. package/lib/dist/resolution/name-matcher.js.map +1 -1
  261. package/lib/dist/resolution/types.d.ts +27 -3
  262. package/lib/dist/resolution/types.d.ts.map +1 -1
  263. package/lib/dist/resolution/workspace-packages.d.ts +48 -0
  264. package/lib/dist/resolution/workspace-packages.d.ts.map +1 -0
  265. package/lib/dist/resolution/workspace-packages.js +208 -0
  266. package/lib/dist/resolution/workspace-packages.js.map +1 -0
  267. package/lib/dist/search/query-utils.d.ts +17 -1
  268. package/lib/dist/search/query-utils.d.ts.map +1 -1
  269. package/lib/dist/search/query-utils.js +79 -10
  270. package/lib/dist/search/query-utils.js.map +1 -1
  271. package/lib/dist/sync/watcher.d.ts +124 -32
  272. package/lib/dist/sync/watcher.d.ts.map +1 -1
  273. package/lib/dist/sync/watcher.js +326 -111
  274. package/lib/dist/sync/watcher.js.map +1 -1
  275. package/lib/dist/telemetry/index.d.ts +146 -0
  276. package/lib/dist/telemetry/index.d.ts.map +1 -0
  277. package/lib/dist/telemetry/index.js +544 -0
  278. package/lib/dist/telemetry/index.js.map +1 -0
  279. package/lib/dist/types.d.ts +17 -2
  280. package/lib/dist/types.d.ts.map +1 -1
  281. package/lib/dist/types.js +3 -0
  282. package/lib/dist/types.js.map +1 -1
  283. package/lib/dist/upgrade/index.d.ts +132 -0
  284. package/lib/dist/upgrade/index.d.ts.map +1 -0
  285. package/lib/dist/upgrade/index.js +462 -0
  286. package/lib/dist/upgrade/index.js.map +1 -0
  287. package/lib/dist/utils.d.ts +30 -24
  288. package/lib/dist/utils.d.ts.map +1 -1
  289. package/lib/dist/utils.js +64 -48
  290. package/lib/dist/utils.js.map +1 -1
  291. package/lib/node_modules/.package-lock.json +1 -29
  292. package/lib/package.json +1 -2
  293. package/package.json +1 -1
  294. package/lib/node_modules/chokidar/LICENSE +0 -21
  295. package/lib/node_modules/chokidar/README.md +0 -305
  296. package/lib/node_modules/chokidar/esm/handler.d.ts +0 -90
  297. package/lib/node_modules/chokidar/esm/handler.js +0 -629
  298. package/lib/node_modules/chokidar/esm/index.d.ts +0 -215
  299. package/lib/node_modules/chokidar/esm/index.js +0 -798
  300. package/lib/node_modules/chokidar/esm/package.json +0 -1
  301. package/lib/node_modules/chokidar/handler.d.ts +0 -90
  302. package/lib/node_modules/chokidar/handler.js +0 -635
  303. package/lib/node_modules/chokidar/index.d.ts +0 -215
  304. package/lib/node_modules/chokidar/index.js +0 -804
  305. package/lib/node_modules/chokidar/package.json +0 -69
  306. package/lib/node_modules/readdirp/LICENSE +0 -21
  307. package/lib/node_modules/readdirp/README.md +0 -120
  308. package/lib/node_modules/readdirp/esm/index.d.ts +0 -108
  309. package/lib/node_modules/readdirp/esm/index.js +0 -257
  310. package/lib/node_modules/readdirp/esm/package.json +0 -1
  311. package/lib/node_modules/readdirp/index.d.ts +0 -108
  312. package/lib/node_modules/readdirp/index.js +0 -263
  313. package/lib/node_modules/readdirp/package.json +0 -70
@@ -1 +1 @@
1
- {"version":3,"file":"directory.js","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directory.js","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { ExtractionResult } from '../types';
2
+ /**
3
+ * AstroExtractor - Extracts code relationships from Astro component files
4
+ *
5
+ * Astro files are multi-language: a TypeScript frontmatter block fenced by
6
+ * `---` lines, a JSX-like HTML template, and optional <script>/<style> blocks.
7
+ * Rather than parsing a full Astro grammar, we extract the frontmatter and
8
+ * <script> contents and delegate them to the TypeScript TreeSitterExtractor
9
+ * (Astro processes both as TypeScript by default — no `lang` attr needed).
10
+ *
11
+ * Also extracts function calls from template expressions (`{fn(...)}`) and
12
+ * component usages (`<PascalCase>`) so cross-file edges are captured even
13
+ * when the only reference lives in markup.
14
+ *
15
+ * Every .astro file produces a component node (Astro components are always
16
+ * importable).
17
+ */
18
+ export declare class AstroExtractor {
19
+ private filePath;
20
+ private source;
21
+ private nodes;
22
+ private edges;
23
+ private unresolvedReferences;
24
+ private errors;
25
+ constructor(filePath: string, source: string);
26
+ /**
27
+ * Extract from Astro source
28
+ */
29
+ extract(): ExtractionResult;
30
+ /**
31
+ * Create a component node for the .astro file
32
+ */
33
+ private createComponentNode;
34
+ /**
35
+ * Extract the frontmatter block: the content between the opening `---`
36
+ * fence (first non-blank line of the file) and the closing `---` fence.
37
+ * An unclosed fence is treated as "no frontmatter" rather than swallowing
38
+ * the whole template as TypeScript.
39
+ *
40
+ * Returns the content plus its 0-indexed start line, or null.
41
+ */
42
+ private extractFrontmatter;
43
+ /**
44
+ * Extract <script> blocks from the template portion
45
+ */
46
+ private extractScriptBlocks;
47
+ /**
48
+ * Process frontmatter / script content by delegating to TreeSitterExtractor.
49
+ * Astro treats both as TypeScript by default.
50
+ */
51
+ private processScriptContent;
52
+ /**
53
+ * Line ranges (0-indexed, inclusive) the template scans must skip:
54
+ * the frontmatter block and <script>/<style> blocks.
55
+ */
56
+ private getCoveredRanges;
57
+ /**
58
+ * Extract function calls from Astro template expressions.
59
+ *
60
+ * Astro templates embed JSX-like expressions (`{formatDate(post.date)}`,
61
+ * `class:list={cn(...)}`), so calls frequently live in markup rather than
62
+ * the frontmatter. We scan template lines for `{expression}` groups and
63
+ * extract call patterns from them. A `{` group left open at end-of-line
64
+ * (the pervasive `{posts.map((post) => (` pattern) contributes the calls
65
+ * on its opening line.
66
+ */
67
+ private extractTemplateCalls;
68
+ /**
69
+ * Extract component usages from the Astro template.
70
+ *
71
+ * PascalCase tags like <Layout>, <PostCard /> represent component
72
+ * instantiations — analogous to function calls in imperative code.
73
+ * Lowercase tags are native HTML (Astro does not register kebab-case
74
+ * components the way Vue does, so those are real custom elements and
75
+ * are skipped).
76
+ */
77
+ private extractTemplateComponents;
78
+ }
79
+ //# sourceMappingURL=astro-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astro-extractor.d.ts","sourceRoot":"","sources":["../../src/extraction/astro-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,gBAAgB,EAAwC,MAAM,UAAU,CAAC;AAW9F;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,MAAM,CAAyB;gBAE3B,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK5C;;OAEG;IACH,OAAO,IAAI,gBAAgB;IA2C3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA0D5B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqBxB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAiD5B;;;;;;;;OAQG;IACH,OAAO,CAAC,yBAAyB;CA6BlC"}
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AstroExtractor = void 0;
4
+ const tree_sitter_helpers_1 = require("./tree-sitter-helpers");
5
+ const tree_sitter_1 = require("./tree-sitter");
6
+ const grammars_1 = require("./grammars");
7
+ /**
8
+ * Astro built-in components — compiler-provided (`<Fragment>`) or shipped by
9
+ * `astro:components` (`<Code>`, `<Debug>`), not user code.
10
+ */
11
+ const ASTRO_BUILTIN_COMPONENTS = new Set(['Fragment', 'Code', 'Debug']);
12
+ /**
13
+ * AstroExtractor - Extracts code relationships from Astro component files
14
+ *
15
+ * Astro files are multi-language: a TypeScript frontmatter block fenced by
16
+ * `---` lines, a JSX-like HTML template, and optional <script>/<style> blocks.
17
+ * Rather than parsing a full Astro grammar, we extract the frontmatter and
18
+ * <script> contents and delegate them to the TypeScript TreeSitterExtractor
19
+ * (Astro processes both as TypeScript by default — no `lang` attr needed).
20
+ *
21
+ * Also extracts function calls from template expressions (`{fn(...)}`) and
22
+ * component usages (`<PascalCase>`) so cross-file edges are captured even
23
+ * when the only reference lives in markup.
24
+ *
25
+ * Every .astro file produces a component node (Astro components are always
26
+ * importable).
27
+ */
28
+ class AstroExtractor {
29
+ filePath;
30
+ source;
31
+ nodes = [];
32
+ edges = [];
33
+ unresolvedReferences = [];
34
+ errors = [];
35
+ constructor(filePath, source) {
36
+ this.filePath = filePath;
37
+ this.source = source;
38
+ }
39
+ /**
40
+ * Extract from Astro source
41
+ */
42
+ extract() {
43
+ const startTime = Date.now();
44
+ try {
45
+ // Create component node for the .astro file itself
46
+ const componentNode = this.createComponentNode();
47
+ // Extract and process the frontmatter block (--- fenced, TypeScript)
48
+ const frontmatter = this.extractFrontmatter();
49
+ if (frontmatter) {
50
+ this.processScriptContent(frontmatter, componentNode.id, 'frontmatter');
51
+ }
52
+ // Extract and process <script> blocks (client-side, TypeScript-capable)
53
+ for (const block of this.extractScriptBlocks()) {
54
+ this.processScriptContent(block, componentNode.id, 'script');
55
+ }
56
+ // Ranges the template scans must skip: frontmatter + <script>/<style>
57
+ const coveredRanges = this.getCoveredRanges(frontmatter);
58
+ // Extract function calls from template expressions ({fn(...)})
59
+ this.extractTemplateCalls(componentNode.id, coveredRanges);
60
+ // Extract component usages from template (<ComponentName>)
61
+ this.extractTemplateComponents(componentNode.id, coveredRanges);
62
+ }
63
+ catch (error) {
64
+ this.errors.push({
65
+ message: `Astro extraction error: ${error instanceof Error ? error.message : String(error)}`,
66
+ severity: 'error',
67
+ code: 'parse_error',
68
+ });
69
+ }
70
+ return {
71
+ nodes: this.nodes,
72
+ edges: this.edges,
73
+ unresolvedReferences: this.unresolvedReferences,
74
+ errors: this.errors,
75
+ durationMs: Date.now() - startTime,
76
+ };
77
+ }
78
+ /**
79
+ * Create a component node for the .astro file
80
+ */
81
+ createComponentNode() {
82
+ const lines = this.source.split('\n');
83
+ const fileName = this.filePath.split(/[/\\]/).pop() || this.filePath;
84
+ const componentName = fileName.replace(/\.astro$/, '');
85
+ const id = (0, tree_sitter_helpers_1.generateNodeId)(this.filePath, 'component', componentName, 1);
86
+ const node = {
87
+ id,
88
+ kind: 'component',
89
+ name: componentName,
90
+ qualifiedName: `${this.filePath}::${componentName}`,
91
+ filePath: this.filePath,
92
+ language: 'astro',
93
+ startLine: 1,
94
+ endLine: lines.length,
95
+ startColumn: 0,
96
+ endColumn: lines[lines.length - 1]?.length || 0,
97
+ isExported: true, // Astro components are always importable
98
+ updatedAt: Date.now(),
99
+ };
100
+ this.nodes.push(node);
101
+ return node;
102
+ }
103
+ /**
104
+ * Extract the frontmatter block: the content between the opening `---`
105
+ * fence (first non-blank line of the file) and the closing `---` fence.
106
+ * An unclosed fence is treated as "no frontmatter" rather than swallowing
107
+ * the whole template as TypeScript.
108
+ *
109
+ * Returns the content plus its 0-indexed start line, or null.
110
+ */
111
+ extractFrontmatter() {
112
+ const lines = this.source.split('\n');
113
+ // Opening fence must be the first non-blank line
114
+ let openIdx = -1;
115
+ for (let i = 0; i < lines.length; i++) {
116
+ const trimmed = lines[i].trim();
117
+ if (trimmed === '')
118
+ continue;
119
+ if (trimmed === '---')
120
+ openIdx = i;
121
+ break;
122
+ }
123
+ if (openIdx === -1)
124
+ return null;
125
+ // Closing fence
126
+ let closeIdx = -1;
127
+ for (let i = openIdx + 1; i < lines.length; i++) {
128
+ if (lines[i].trim() === '---') {
129
+ closeIdx = i;
130
+ break;
131
+ }
132
+ }
133
+ if (closeIdx === -1)
134
+ return null;
135
+ return {
136
+ content: lines.slice(openIdx + 1, closeIdx).join('\n'),
137
+ startLine: openIdx + 1, // 0-indexed line where content starts
138
+ endLine: closeIdx, // 0-indexed line of the closing fence
139
+ };
140
+ }
141
+ /**
142
+ * Extract <script> blocks from the template portion
143
+ */
144
+ extractScriptBlocks() {
145
+ const blocks = [];
146
+ const scriptRegex = /<script(\s[^>]*)?>(?<content>[\s\S]*?)<\/script>/g;
147
+ let match;
148
+ while ((match = scriptRegex.exec(this.source)) !== null) {
149
+ const content = match.groups?.content || match[2] || '';
150
+ // Calculate the 0-indexed line where the content begins. The content
151
+ // starts right after the opening tag's `>` — its leading `\n` is part
152
+ // of the content, so relative line 1 sits ON the tag's closing line
153
+ // (do not add 1 here; that double-counts the embedded newline).
154
+ const beforeScript = this.source.substring(0, match.index);
155
+ const scriptTagLine = (beforeScript.match(/\n/g) || []).length;
156
+ const openingTag = match[0].substring(0, match[0].indexOf('>') + 1);
157
+ const openingTagLines = (openingTag.match(/\n/g) || []).length;
158
+ const contentStartLine = scriptTagLine + openingTagLines; // 0-indexed
159
+ blocks.push({ content, startLine: contentStartLine });
160
+ }
161
+ return blocks;
162
+ }
163
+ /**
164
+ * Process frontmatter / script content by delegating to TreeSitterExtractor.
165
+ * Astro treats both as TypeScript by default.
166
+ */
167
+ processScriptContent(block, componentNodeId, label) {
168
+ if (!(0, grammars_1.isLanguageSupported)('typescript')) {
169
+ this.errors.push({
170
+ message: `Parser for typescript not available, cannot parse Astro ${label} block`,
171
+ severity: 'warning',
172
+ });
173
+ return;
174
+ }
175
+ // Delegate to TreeSitterExtractor
176
+ const extractor = new tree_sitter_1.TreeSitterExtractor(this.filePath, block.content, 'typescript');
177
+ const result = extractor.extract();
178
+ // Offset line numbers from the block back to .astro file positions
179
+ for (const node of result.nodes) {
180
+ node.startLine += block.startLine;
181
+ node.endLine += block.startLine;
182
+ node.language = 'astro'; // Mark as astro, not TS
183
+ this.nodes.push(node);
184
+ // Add containment edge from component to this node
185
+ this.edges.push({
186
+ source: componentNodeId,
187
+ target: node.id,
188
+ kind: 'contains',
189
+ });
190
+ }
191
+ // Offset edges (they reference line numbers)
192
+ for (const edge of result.edges) {
193
+ if (edge.line) {
194
+ edge.line += block.startLine;
195
+ }
196
+ this.edges.push(edge);
197
+ }
198
+ // Offset unresolved references
199
+ for (const ref of result.unresolvedReferences) {
200
+ ref.line += block.startLine;
201
+ ref.filePath = this.filePath;
202
+ ref.language = 'astro';
203
+ this.unresolvedReferences.push(ref);
204
+ }
205
+ // Carry over errors
206
+ for (const error of result.errors) {
207
+ if (error.line) {
208
+ error.line += block.startLine;
209
+ }
210
+ this.errors.push(error);
211
+ }
212
+ }
213
+ /**
214
+ * Line ranges (0-indexed, inclusive) the template scans must skip:
215
+ * the frontmatter block and <script>/<style> blocks.
216
+ */
217
+ getCoveredRanges(frontmatter) {
218
+ const coveredRanges = [];
219
+ if (frontmatter) {
220
+ // Cover from the opening fence line through the closing fence line
221
+ coveredRanges.push([frontmatter.startLine - 1, frontmatter.endLine]);
222
+ }
223
+ const tagRegex = /<(script|style)(\s[^>]*)?>[\s\S]*?<\/\1>/g;
224
+ let tagMatch;
225
+ while ((tagMatch = tagRegex.exec(this.source)) !== null) {
226
+ const startLine = (this.source.substring(0, tagMatch.index).match(/\n/g) || []).length;
227
+ const endLine = startLine + (tagMatch[0].match(/\n/g) || []).length;
228
+ coveredRanges.push([startLine, endLine]);
229
+ }
230
+ return coveredRanges;
231
+ }
232
+ /**
233
+ * Extract function calls from Astro template expressions.
234
+ *
235
+ * Astro templates embed JSX-like expressions (`{formatDate(post.date)}`,
236
+ * `class:list={cn(...)}`), so calls frequently live in markup rather than
237
+ * the frontmatter. We scan template lines for `{expression}` groups and
238
+ * extract call patterns from them. A `{` group left open at end-of-line
239
+ * (the pervasive `{posts.map((post) => (` pattern) contributes the calls
240
+ * on its opening line.
241
+ */
242
+ extractTemplateCalls(componentNodeId, coveredRanges) {
243
+ const lines = this.source.split('\n');
244
+ // Complete groups: {...} — excluding JSX comments ({/* ... */})
245
+ const exprRegex = /\{([^}/][^}]*)\}/g;
246
+ // A group opened but not closed on this line
247
+ const openExprRegex = /\{([^}/][^}]*)$/;
248
+ for (let lineIdx = 0; lineIdx < lines.length; lineIdx++) {
249
+ if (coveredRanges.some(([start, end]) => lineIdx >= start && lineIdx <= end))
250
+ continue;
251
+ const line = lines[lineIdx];
252
+ const exprs = [];
253
+ let exprMatch;
254
+ while ((exprMatch = exprRegex.exec(line)) !== null) {
255
+ exprs.push({ text: exprMatch[1], offset: exprMatch.index });
256
+ }
257
+ const openMatch = openExprRegex.exec(line.replace(exprRegex, ''));
258
+ if (openMatch) {
259
+ exprs.push({ text: openMatch[1], offset: line.lastIndexOf('{') });
260
+ }
261
+ for (const expr of exprs) {
262
+ // Extract function calls: identifiers followed by (
263
+ // Matches: cn(...), formatDate(...), obj.method(...)
264
+ const callRegex = /\b([a-zA-Z_$][\w$.]*)\s*\(/g;
265
+ let callMatch;
266
+ while ((callMatch = callRegex.exec(expr.text)) !== null) {
267
+ const calleeName = callMatch[1];
268
+ // Skip control-flow keywords valid inside expressions
269
+ if (calleeName === 'if' || calleeName === 'await' || calleeName === 'function')
270
+ continue;
271
+ this.unresolvedReferences.push({
272
+ fromNodeId: componentNodeId,
273
+ referenceName: calleeName,
274
+ referenceKind: 'calls',
275
+ line: lineIdx + 1, // 1-indexed
276
+ column: expr.offset + callMatch.index,
277
+ filePath: this.filePath,
278
+ language: 'astro',
279
+ });
280
+ }
281
+ }
282
+ }
283
+ }
284
+ /**
285
+ * Extract component usages from the Astro template.
286
+ *
287
+ * PascalCase tags like <Layout>, <PostCard /> represent component
288
+ * instantiations — analogous to function calls in imperative code.
289
+ * Lowercase tags are native HTML (Astro does not register kebab-case
290
+ * components the way Vue does, so those are real custom elements and
291
+ * are skipped).
292
+ */
293
+ extractTemplateComponents(componentNodeId, coveredRanges) {
294
+ const lines = this.source.split('\n');
295
+ // Opening/self-closing tags (closing tags </Foo> start with </ so won't match)
296
+ const componentTagRegex = /<([A-Z][a-zA-Z0-9_$]*)\b/g;
297
+ for (let lineIdx = 0; lineIdx < lines.length; lineIdx++) {
298
+ if (coveredRanges.some(([start, end]) => lineIdx >= start && lineIdx <= end))
299
+ continue;
300
+ const line = lines[lineIdx];
301
+ let match;
302
+ while ((match = componentTagRegex.exec(line)) !== null) {
303
+ const componentName = match[1];
304
+ if (ASTRO_BUILTIN_COMPONENTS.has(componentName))
305
+ continue;
306
+ this.unresolvedReferences.push({
307
+ fromNodeId: componentNodeId,
308
+ referenceName: componentName,
309
+ referenceKind: 'references',
310
+ line: lineIdx + 1, // 1-indexed
311
+ column: match.index + 1,
312
+ filePath: this.filePath,
313
+ language: 'astro',
314
+ });
315
+ }
316
+ }
317
+ }
318
+ }
319
+ exports.AstroExtractor = AstroExtractor;
320
+ //# sourceMappingURL=astro-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astro-extractor.js","sourceRoot":"","sources":["../../src/extraction/astro-extractor.ts"],"names":[],"mappings":"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"}
@@ -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"}