@lzehrung/codegraph 2.1.0 → 2.1.2

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 (536) hide show
  1. package/README.md +27 -29
  2. package/codegraph-skill/codegraph/SKILL.md +27 -26
  3. package/dist/agent/artifact.d.ts.map +1 -1
  4. package/dist/agent/artifact.js +105 -14
  5. package/dist/agent/artifact.js.map +1 -1
  6. package/dist/agent/candidateTests.d.ts +12 -0
  7. package/dist/agent/candidateTests.d.ts.map +1 -0
  8. package/dist/agent/candidateTests.js +17 -0
  9. package/dist/agent/candidateTests.js.map +1 -0
  10. package/dist/agent/explain.d.ts +3 -0
  11. package/dist/agent/explain.d.ts.map +1 -1
  12. package/dist/agent/explain.js +8 -0
  13. package/dist/agent/explain.js.map +1 -1
  14. package/dist/agent/explore.d.ts.map +1 -1
  15. package/dist/agent/explore.js +11 -6
  16. package/dist/agent/explore.js.map +1 -1
  17. package/dist/agent/fileView.d.ts.map +1 -1
  18. package/dist/agent/fileView.js +113 -120
  19. package/dist/agent/fileView.js.map +1 -1
  20. package/dist/agent/orient.d.ts.map +1 -1
  21. package/dist/agent/orient.js +7 -4
  22. package/dist/agent/orient.js.map +1 -1
  23. package/dist/agent/packet.d.ts.map +1 -1
  24. package/dist/agent/packet.js +5 -12
  25. package/dist/agent/packet.js.map +1 -1
  26. package/dist/agent/query-index/candidates.d.ts +13 -2
  27. package/dist/agent/query-index/candidates.d.ts.map +1 -1
  28. package/dist/agent/query-index/candidates.js +28 -39
  29. package/dist/agent/query-index/candidates.js.map +1 -1
  30. package/dist/agent/query-index/content.d.ts +1 -1
  31. package/dist/agent/query-index/content.js +4 -4
  32. package/dist/agent/query-index/content.js.map +1 -1
  33. package/dist/agent/query-index/schema.d.ts.map +1 -1
  34. package/dist/agent/query-index/schema.js.map +1 -1
  35. package/dist/agent/query-index/sessionStore.d.ts.map +1 -1
  36. package/dist/agent/query-index/sessionStore.js +42 -26
  37. package/dist/agent/query-index/sessionStore.js.map +1 -1
  38. package/dist/agent/query-index/store.d.ts +10 -4
  39. package/dist/agent/query-index/store.d.ts.map +1 -1
  40. package/dist/agent/query-index/store.js +115 -10
  41. package/dist/agent/query-index/store.js.map +1 -1
  42. package/dist/agent/query-index/update.d.ts.map +1 -1
  43. package/dist/agent/query-index/update.js +24 -9
  44. package/dist/agent/query-index/update.js.map +1 -1
  45. package/dist/agent/refactorPlan.d.ts.map +1 -1
  46. package/dist/agent/refactorPlan.js +6 -14
  47. package/dist/agent/refactorPlan.js.map +1 -1
  48. package/dist/agent/renamePreview.d.ts +2 -5
  49. package/dist/agent/renamePreview.d.ts.map +1 -1
  50. package/dist/agent/renamePreview.js +133 -80
  51. package/dist/agent/renamePreview.js.map +1 -1
  52. package/dist/agent/search.d.ts +3 -1
  53. package/dist/agent/search.d.ts.map +1 -1
  54. package/dist/agent/search.js +103 -35
  55. package/dist/agent/search.js.map +1 -1
  56. package/dist/agent/semanticSymbols.d.ts.map +1 -1
  57. package/dist/agent/semanticSymbols.js +2 -1
  58. package/dist/agent/semanticSymbols.js.map +1 -1
  59. package/dist/agent/session.d.ts +4 -0
  60. package/dist/agent/session.d.ts.map +1 -1
  61. package/dist/agent/session.js +20 -7
  62. package/dist/agent/session.js.map +1 -1
  63. package/dist/agent-tools.d.ts +1 -1
  64. package/dist/agent-tools.d.ts.map +1 -1
  65. package/dist/agent-tools.js +12 -21
  66. package/dist/agent-tools.js.map +1 -1
  67. package/dist/bin/cli.js +29242 -25373
  68. package/dist/bin/queryIndexWorker.js +131 -42
  69. package/dist/bin/rawQueryWorker.js +270 -0
  70. package/dist/chunking/chunkFile.d.ts +5 -0
  71. package/dist/chunking/chunkFile.d.ts.map +1 -1
  72. package/dist/chunking/chunkFile.js +14 -15
  73. package/dist/chunking/chunkFile.js.map +1 -1
  74. package/dist/cli/affected.d.ts.map +1 -1
  75. package/dist/cli/affected.js +17 -10
  76. package/dist/cli/affected.js.map +1 -1
  77. package/dist/cli/callHierarchy.d.ts.map +1 -1
  78. package/dist/cli/callHierarchy.js +9 -2
  79. package/dist/cli/callHierarchy.js.map +1 -1
  80. package/dist/cli/commandTable.d.ts.map +1 -1
  81. package/dist/cli/commandTable.js +16 -4
  82. package/dist/cli/commandTable.js.map +1 -1
  83. package/dist/cli/doctor.d.ts +7 -0
  84. package/dist/cli/doctor.d.ts.map +1 -1
  85. package/dist/cli/doctor.js +166 -0
  86. package/dist/cli/doctor.js.map +1 -1
  87. package/dist/cli/graph.d.ts +2 -1
  88. package/dist/cli/graph.d.ts.map +1 -1
  89. package/dist/cli/graph.js +60 -16
  90. package/dist/cli/graph.js.map +1 -1
  91. package/dist/cli/graphDelta.d.ts +2 -1
  92. package/dist/cli/graphDelta.d.ts.map +1 -1
  93. package/dist/cli/graphDelta.js +5 -0
  94. package/dist/cli/graphDelta.js.map +1 -1
  95. package/dist/cli/grep.d.ts +1 -1
  96. package/dist/cli/grep.d.ts.map +1 -1
  97. package/dist/cli/grep.js +14 -4
  98. package/dist/cli/grep.js.map +1 -1
  99. package/dist/cli/help.d.ts +34 -34
  100. package/dist/cli/help.d.ts.map +1 -1
  101. package/dist/cli/help.js +17 -8
  102. package/dist/cli/help.js.map +1 -1
  103. package/dist/cli/impact.d.ts +2 -1
  104. package/dist/cli/impact.d.ts.map +1 -1
  105. package/dist/cli/impact.js +5 -0
  106. package/dist/cli/impact.js.map +1 -1
  107. package/dist/cli/index.d.ts +2 -1
  108. package/dist/cli/index.d.ts.map +1 -1
  109. package/dist/cli/index.js +3 -0
  110. package/dist/cli/index.js.map +1 -1
  111. package/dist/cli/indexPolicy.d.ts.map +1 -1
  112. package/dist/cli/indexPolicy.js.map +1 -1
  113. package/dist/cli/inspect.d.ts +2 -1
  114. package/dist/cli/inspect.d.ts.map +1 -1
  115. package/dist/cli/inspect.js +25 -13
  116. package/dist/cli/inspect.js.map +1 -1
  117. package/dist/cli/install.js +1 -1
  118. package/dist/cli/install.js.map +1 -1
  119. package/dist/cli/invocationContext.d.ts.map +1 -1
  120. package/dist/cli/invocationContext.js +3 -0
  121. package/dist/cli/invocationContext.js.map +1 -1
  122. package/dist/cli/links.d.ts +2 -0
  123. package/dist/cli/links.d.ts.map +1 -1
  124. package/dist/cli/links.js +1 -1
  125. package/dist/cli/links.js.map +1 -1
  126. package/dist/cli/navigation.d.ts +41 -1
  127. package/dist/cli/navigation.d.ts.map +1 -1
  128. package/dist/cli/navigation.js +4 -1
  129. package/dist/cli/navigation.js.map +1 -1
  130. package/dist/cli/options.d.ts.map +1 -1
  131. package/dist/cli/options.js +32 -11
  132. package/dist/cli/options.js.map +1 -1
  133. package/dist/cli/renamePreview.d.ts.map +1 -1
  134. package/dist/cli/renamePreview.js +7 -1
  135. package/dist/cli/renamePreview.js.map +1 -1
  136. package/dist/cli/review.d.ts +2 -1
  137. package/dist/cli/review.d.ts.map +1 -1
  138. package/dist/cli/review.js +5 -0
  139. package/dist/cli/review.js.map +1 -1
  140. package/dist/cli/rootPolicy.d.ts.map +1 -1
  141. package/dist/cli/rootPolicy.js +36 -3
  142. package/dist/cli/rootPolicy.js.map +1 -1
  143. package/dist/cli/skill.js +2 -2
  144. package/dist/cli/skill.js.map +1 -1
  145. package/dist/cli/sql.js +1 -1
  146. package/dist/cli/symbols.d.ts.map +1 -1
  147. package/dist/cli/symbols.js +4 -2
  148. package/dist/cli/symbols.js.map +1 -1
  149. package/dist/cli/viewer.d.ts.map +1 -1
  150. package/dist/cli/viewer.js +46 -34
  151. package/dist/cli/viewer.js.map +1 -1
  152. package/dist/cli.d.ts.map +1 -1
  153. package/dist/cli.js +36 -16
  154. package/dist/cli.js.map +1 -1
  155. package/dist/config.d.ts +3 -0
  156. package/dist/config.d.ts.map +1 -1
  157. package/dist/config.js +35 -3
  158. package/dist/config.js.map +1 -1
  159. package/dist/documentLinks/check.d.ts +2 -1
  160. package/dist/documentLinks/check.d.ts.map +1 -1
  161. package/dist/documentLinks/check.js +22 -11
  162. package/dist/documentLinks/check.js.map +1 -1
  163. package/dist/duplicate-token-normalization.d.ts.map +1 -1
  164. package/dist/duplicate-token-normalization.js +10 -2
  165. package/dist/duplicate-token-normalization.js.map +1 -1
  166. package/dist/duplicates/scoring.d.ts +0 -10
  167. package/dist/duplicates/scoring.d.ts.map +1 -1
  168. package/dist/duplicates/scoring.js +9 -9
  169. package/dist/duplicates/scoring.js.map +1 -1
  170. package/dist/duplicates/types.d.ts +2 -0
  171. package/dist/duplicates/types.d.ts.map +1 -1
  172. package/dist/duplicates/unitCache.d.ts +15 -9
  173. package/dist/duplicates/unitCache.d.ts.map +1 -1
  174. package/dist/duplicates/unitCache.js +184 -33
  175. package/dist/duplicates/unitCache.js.map +1 -1
  176. package/dist/duplicates/units.d.ts +6 -15
  177. package/dist/duplicates/units.d.ts.map +1 -1
  178. package/dist/duplicates/units.js +42 -20
  179. package/dist/duplicates/units.js.map +1 -1
  180. package/dist/duplicates.d.ts.map +1 -1
  181. package/dist/duplicates.js +59 -0
  182. package/dist/duplicates.js.map +1 -1
  183. package/dist/frameworks/angularjs.d.ts.map +1 -1
  184. package/dist/frameworks/angularjs.js +18 -12
  185. package/dist/frameworks/angularjs.js.map +1 -1
  186. package/dist/graph-builder.d.ts.map +1 -1
  187. package/dist/graph-builder.js +12 -9
  188. package/dist/graph-builder.js.map +1 -1
  189. package/dist/graph-edge-collector.d.ts +1 -0
  190. package/dist/graph-edge-collector.d.ts.map +1 -1
  191. package/dist/graph-edge-collector.js +1 -1
  192. package/dist/graph-edge-collector.js.map +1 -1
  193. package/dist/graphs/grep.d.ts.map +1 -1
  194. package/dist/graphs/grep.js +7 -2
  195. package/dist/graphs/grep.js.map +1 -1
  196. package/dist/graphs/specifiers.d.ts.map +1 -1
  197. package/dist/graphs/specifiers.js +8 -2
  198. package/dist/graphs/specifiers.js.map +1 -1
  199. package/dist/graphs/symbol-graph-detailed.d.ts +10 -1
  200. package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
  201. package/dist/graphs/symbol-graph-detailed.js +21 -5
  202. package/dist/graphs/symbol-graph-detailed.js.map +1 -1
  203. package/dist/impact/analyzer.d.ts.map +1 -1
  204. package/dist/impact/analyzer.js +19 -2
  205. package/dist/impact/analyzer.js.map +1 -1
  206. package/dist/impact/budgets.d.ts.map +1 -1
  207. package/dist/impact/budgets.js +5 -3
  208. package/dist/impact/budgets.js.map +1 -1
  209. package/dist/impact/call-compatibility/textScanner.d.ts +23 -0
  210. package/dist/impact/call-compatibility/textScanner.d.ts.map +1 -0
  211. package/dist/impact/call-compatibility/textScanner.js +615 -0
  212. package/dist/impact/call-compatibility/textScanner.js.map +1 -0
  213. package/dist/impact/callCompatibility.d.ts +8 -1
  214. package/dist/impact/callCompatibility.d.ts.map +1 -1
  215. package/dist/impact/callCompatibility.js +64 -587
  216. package/dist/impact/callCompatibility.js.map +1 -1
  217. package/dist/impact/context.d.ts.map +1 -1
  218. package/dist/impact/context.js +4 -1
  219. package/dist/impact/context.js.map +1 -1
  220. package/dist/impact/direct.d.ts +1 -1
  221. package/dist/impact/direct.d.ts.map +1 -1
  222. package/dist/impact/direct.js +7 -6
  223. package/dist/impact/direct.js.map +1 -1
  224. package/dist/impact/index.d.ts +6 -0
  225. package/dist/impact/index.d.ts.map +1 -1
  226. package/dist/impact/index.js +0 -8
  227. package/dist/impact/index.js.map +1 -1
  228. package/dist/impact/map.js +2 -2
  229. package/dist/impact/map.js.map +1 -1
  230. package/dist/impact/memberResolutionCoverage.d.ts.map +1 -1
  231. package/dist/impact/memberResolutionCoverage.js +5 -1
  232. package/dist/impact/memberResolutionCoverage.js.map +1 -1
  233. package/dist/impact/parse.d.ts.map +1 -1
  234. package/dist/impact/parse.js +108 -37
  235. package/dist/impact/parse.js.map +1 -1
  236. package/dist/impact/referenceCache.js +1 -1
  237. package/dist/impact/referenceCache.js.map +1 -1
  238. package/dist/impact/report-suggestions.d.ts.map +1 -1
  239. package/dist/impact/report-suggestions.js +347 -72
  240. package/dist/impact/report-suggestions.js.map +1 -1
  241. package/dist/impact/report.d.ts.map +1 -1
  242. package/dist/impact/report.js +13 -2
  243. package/dist/impact/report.js.map +1 -1
  244. package/dist/impact/reportCompact.d.ts.map +1 -1
  245. package/dist/impact/reportCompact.js +8 -0
  246. package/dist/impact/reportCompact.js.map +1 -1
  247. package/dist/impact/reportFull.d.ts.map +1 -1
  248. package/dist/impact/reportFull.js +1 -0
  249. package/dist/impact/reportFull.js.map +1 -1
  250. package/dist/impact/reportParts.d.ts +9 -0
  251. package/dist/impact/reportParts.d.ts.map +1 -1
  252. package/dist/impact/severity.d.ts +3 -2
  253. package/dist/impact/severity.d.ts.map +1 -1
  254. package/dist/impact/severity.js +16 -5
  255. package/dist/impact/severity.js.map +1 -1
  256. package/dist/impact/streaming.d.ts +32 -2
  257. package/dist/impact/streaming.d.ts.map +1 -1
  258. package/dist/impact/streaming.js +62 -3
  259. package/dist/impact/streaming.js.map +1 -1
  260. package/dist/impact/suggestions.d.ts.map +1 -1
  261. package/dist/impact/suggestions.js +1 -1
  262. package/dist/impact/suggestions.js.map +1 -1
  263. package/dist/impact/transitive.d.ts.map +1 -1
  264. package/dist/impact/transitive.js +13 -5
  265. package/dist/impact/transitive.js.map +1 -1
  266. package/dist/impact/types.d.ts +21 -20
  267. package/dist/impact/types.d.ts.map +1 -1
  268. package/dist/impact/types.js.map +1 -1
  269. package/dist/index.d.ts +2 -2
  270. package/dist/index.d.ts.map +1 -1
  271. package/dist/index.js +1 -1
  272. package/dist/index.js.map +1 -1
  273. package/dist/indexer/build-cache/location.d.ts +19 -0
  274. package/dist/indexer/build-cache/location.d.ts.map +1 -0
  275. package/dist/indexer/build-cache/location.js +132 -0
  276. package/dist/indexer/build-cache/location.js.map +1 -0
  277. package/dist/indexer/build-cache/manifest.d.ts +14 -6
  278. package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
  279. package/dist/indexer/build-cache/manifest.js +194 -30
  280. package/dist/indexer/build-cache/manifest.js.map +1 -1
  281. package/dist/indexer/build-cache/module-cache.d.ts +24 -2
  282. package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
  283. package/dist/indexer/build-cache/module-cache.js +98 -32
  284. package/dist/indexer/build-cache/module-cache.js.map +1 -1
  285. package/dist/indexer/build-cache/options.d.ts +3 -1
  286. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  287. package/dist/indexer/build-cache/options.js +10 -2
  288. package/dist/indexer/build-cache/options.js.map +1 -1
  289. package/dist/indexer/build-cache/project-snapshot.d.ts +33 -13
  290. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  291. package/dist/indexer/build-cache/project-snapshot.js +472 -91
  292. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  293. package/dist/indexer/build-cache/reports.d.ts.map +1 -1
  294. package/dist/indexer/build-cache/reports.js +10 -1
  295. package/dist/indexer/build-cache/reports.js.map +1 -1
  296. package/dist/indexer/build-cache/resolver-environment.d.ts +9 -0
  297. package/dist/indexer/build-cache/resolver-environment.d.ts.map +1 -0
  298. package/dist/indexer/build-cache/resolver-environment.js +160 -0
  299. package/dist/indexer/build-cache/resolver-environment.js.map +1 -0
  300. package/dist/indexer/build-cache.d.ts +4 -3
  301. package/dist/indexer/build-cache.d.ts.map +1 -1
  302. package/dist/indexer/build-cache.js +4 -3
  303. package/dist/indexer/build-cache.js.map +1 -1
  304. package/dist/indexer/build-index.d.ts.map +1 -1
  305. package/dist/indexer/build-index.js +268 -96
  306. package/dist/indexer/build-index.js.map +1 -1
  307. package/dist/indexer/build-manifest.d.ts +1 -0
  308. package/dist/indexer/build-manifest.d.ts.map +1 -1
  309. package/dist/indexer/build-manifest.js +15 -5
  310. package/dist/indexer/build-manifest.js.map +1 -1
  311. package/dist/indexer/build-workers.d.ts +1 -1
  312. package/dist/indexer/build-workers.d.ts.map +1 -1
  313. package/dist/indexer/build-workers.js +57 -42
  314. package/dist/indexer/build-workers.js.map +1 -1
  315. package/dist/indexer/call-hierarchy.d.ts.map +1 -1
  316. package/dist/indexer/call-hierarchy.js.map +1 -1
  317. package/dist/indexer/finalize.d.ts.map +1 -1
  318. package/dist/indexer/finalize.js +7 -4
  319. package/dist/indexer/finalize.js.map +1 -1
  320. package/dist/indexer/import-types.d.ts +8 -0
  321. package/dist/indexer/import-types.d.ts.map +1 -1
  322. package/dist/indexer/imports/jsTextImports.d.ts.map +1 -1
  323. package/dist/indexer/imports/jsTextImports.js +14 -6
  324. package/dist/indexer/imports/jsTextImports.js.map +1 -1
  325. package/dist/indexer/imports/languageSpecific.d.ts.map +1 -1
  326. package/dist/indexer/imports/languageSpecific.js +10 -5
  327. package/dist/indexer/imports/languageSpecific.js.map +1 -1
  328. package/dist/indexer/imports/nativeCaptures.d.ts.map +1 -1
  329. package/dist/indexer/imports/nativeCaptures.js +4 -1
  330. package/dist/indexer/imports/nativeCaptures.js.map +1 -1
  331. package/dist/indexer/imports/python.d.ts.map +1 -1
  332. package/dist/indexer/imports/python.js +19 -9
  333. package/dist/indexer/imports/python.js.map +1 -1
  334. package/dist/indexer/incremental-plan.d.ts +2 -1
  335. package/dist/indexer/incremental-plan.d.ts.map +1 -1
  336. package/dist/indexer/incremental-plan.js +7 -4
  337. package/dist/indexer/incremental-plan.js.map +1 -1
  338. package/dist/indexer/load-current-index.d.ts.map +1 -1
  339. package/dist/indexer/load-current-index.js.map +1 -1
  340. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  341. package/dist/indexer/locals-and-exports.js +77 -22
  342. package/dist/indexer/locals-and-exports.js.map +1 -1
  343. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  344. package/dist/indexer/navigation-goto.js +26 -16
  345. package/dist/indexer/navigation-goto.js.map +1 -1
  346. package/dist/indexer/navigation-local.d.ts.map +1 -1
  347. package/dist/indexer/navigation-local.js +7 -4
  348. package/dist/indexer/navigation-local.js.map +1 -1
  349. package/dist/indexer/navigation-references.d.ts +1 -1
  350. package/dist/indexer/navigation-references.d.ts.map +1 -1
  351. package/dist/indexer/navigation-references.js +34 -17
  352. package/dist/indexer/navigation-references.js.map +1 -1
  353. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  354. package/dist/indexer/navigation-resolve.js +116 -53
  355. package/dist/indexer/navigation-resolve.js.map +1 -1
  356. package/dist/indexer/navigation.d.ts +2 -1
  357. package/dist/indexer/navigation.d.ts.map +1 -1
  358. package/dist/indexer/navigation.js +34 -20
  359. package/dist/indexer/navigation.js.map +1 -1
  360. package/dist/indexer/parse-context.d.ts +2 -2
  361. package/dist/indexer/parse-context.d.ts.map +1 -1
  362. package/dist/indexer/parse-context.js +25 -4
  363. package/dist/indexer/parse-context.js.map +1 -1
  364. package/dist/indexer/reference-context.d.ts +2 -2
  365. package/dist/indexer/reference-context.d.ts.map +1 -1
  366. package/dist/indexer/reference-context.js +4 -2
  367. package/dist/indexer/reference-context.js.map +1 -1
  368. package/dist/indexer/scope-types.d.ts +3 -0
  369. package/dist/indexer/scope-types.d.ts.map +1 -1
  370. package/dist/indexer/scope.js +37 -38
  371. package/dist/indexer/scope.js.map +1 -1
  372. package/dist/indexer/shared.d.ts.map +1 -1
  373. package/dist/indexer/shared.js +3 -1
  374. package/dist/indexer/shared.js.map +1 -1
  375. package/dist/indexer/type-hierarchy.d.ts.map +1 -1
  376. package/dist/indexer/type-hierarchy.js +12 -8
  377. package/dist/indexer/type-hierarchy.js.map +1 -1
  378. package/dist/indexer/types.d.ts +27 -1
  379. package/dist/indexer/types.d.ts.map +1 -1
  380. package/dist/indexer/workspace-symbols.d.ts.map +1 -1
  381. package/dist/indexer/workspace-symbols.js +5 -3
  382. package/dist/indexer/workspace-symbols.js.map +1 -1
  383. package/dist/installer/locks.d.ts +10 -0
  384. package/dist/installer/locks.d.ts.map +1 -0
  385. package/dist/installer/locks.js +232 -0
  386. package/dist/installer/locks.js.map +1 -0
  387. package/dist/installer/registry.d.ts.map +1 -1
  388. package/dist/installer/registry.js +75 -235
  389. package/dist/installer/registry.js.map +1 -1
  390. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  391. package/dist/languages/definitions/csharp.js +8 -0
  392. package/dist/languages/definitions/csharp.js.map +1 -1
  393. package/dist/languages/definitions/java.d.ts.map +1 -1
  394. package/dist/languages/definitions/java.js +3 -0
  395. package/dist/languages/definitions/java.js.map +1 -1
  396. package/dist/languages/definitions/python.d.ts.map +1 -1
  397. package/dist/languages/definitions/python.js +2 -0
  398. package/dist/languages/definitions/python.js.map +1 -1
  399. package/dist/languages/definitions/rust.d.ts.map +1 -1
  400. package/dist/languages/definitions/rust.js +2 -0
  401. package/dist/languages/definitions/rust.js.map +1 -1
  402. package/dist/languages/importStatementParsers.d.ts +2 -0
  403. package/dist/languages/importStatementParsers.d.ts.map +1 -1
  404. package/dist/languages/importStatementParsers.js +24 -10
  405. package/dist/languages/importStatementParsers.js.map +1 -1
  406. package/dist/mcp/http.d.ts +3 -1
  407. package/dist/mcp/http.d.ts.map +1 -1
  408. package/dist/mcp/http.js +69 -20
  409. package/dist/mcp/http.js.map +1 -1
  410. package/dist/mcp/server.d.ts +58 -16
  411. package/dist/mcp/server.d.ts.map +1 -1
  412. package/dist/mcp/server.js +447 -140
  413. package/dist/mcp/server.js.map +1 -1
  414. package/dist/mcp/tools.d.ts +51 -1
  415. package/dist/mcp/tools.d.ts.map +1 -1
  416. package/dist/mcp/tools.js +129 -3
  417. package/dist/mcp/tools.js.map +1 -1
  418. package/dist/native/byteIndex.d.ts +26 -0
  419. package/dist/native/byteIndex.d.ts.map +1 -0
  420. package/dist/native/byteIndex.js +70 -0
  421. package/dist/native/byteIndex.js.map +1 -0
  422. package/dist/native/projectedTree.d.ts +3 -2
  423. package/dist/native/projectedTree.d.ts.map +1 -1
  424. package/dist/native/projectedTree.js +6 -50
  425. package/dist/native/projectedTree.js.map +1 -1
  426. package/dist/native/queryResults.d.ts +7 -1
  427. package/dist/native/queryResults.d.ts.map +1 -1
  428. package/dist/native/queryResults.js +13 -5
  429. package/dist/native/queryResults.js.map +1 -1
  430. package/dist/review/candidates.d.ts.map +1 -1
  431. package/dist/review/candidates.js +4 -1
  432. package/dist/review/candidates.js.map +1 -1
  433. package/dist/review/changes.d.ts +2 -0
  434. package/dist/review/changes.d.ts.map +1 -1
  435. package/dist/review/changes.js +10 -0
  436. package/dist/review/changes.js.map +1 -1
  437. package/dist/review/deleted.d.ts.map +1 -1
  438. package/dist/review/deleted.js +20 -2
  439. package/dist/review/deleted.js.map +1 -1
  440. package/dist/review/summaries.d.ts +5 -0
  441. package/dist/review/summaries.d.ts.map +1 -1
  442. package/dist/review/summaries.js +32 -21
  443. package/dist/review/summaries.js.map +1 -1
  444. package/dist/review/types.d.ts +3 -1
  445. package/dist/review/types.d.ts.map +1 -1
  446. package/dist/review/types.js +8 -1
  447. package/dist/review/types.js.map +1 -1
  448. package/dist/review.d.ts.map +1 -1
  449. package/dist/review.js +14 -5
  450. package/dist/review.js.map +1 -1
  451. package/dist/session.d.ts +20 -4
  452. package/dist/session.d.ts.map +1 -1
  453. package/dist/session.js +76 -16
  454. package/dist/session.js.map +1 -1
  455. package/dist/sql/types.d.ts.map +1 -1
  456. package/dist/sqlite/query.d.ts +29 -0
  457. package/dist/sqlite/query.d.ts.map +1 -1
  458. package/dist/sqlite/query.js +98 -11
  459. package/dist/sqlite/query.js.map +1 -1
  460. package/dist/sqlite/rawQueryWorker.d.ts +22 -0
  461. package/dist/sqlite/rawQueryWorker.d.ts.map +1 -0
  462. package/dist/sqlite/rawQueryWorker.js +31 -0
  463. package/dist/sqlite/rawQueryWorker.js.map +1 -0
  464. package/dist/sqlite/rawQueryWorkerPool.d.ts +66 -0
  465. package/dist/sqlite/rawQueryWorkerPool.d.ts.map +1 -0
  466. package/dist/sqlite/rawQueryWorkerPool.js +142 -0
  467. package/dist/sqlite/rawQueryWorkerPool.js.map +1 -0
  468. package/dist/sqlite/schema.d.ts +2 -1
  469. package/dist/sqlite/schema.d.ts.map +1 -1
  470. package/dist/sqlite/schema.js +15 -1
  471. package/dist/sqlite/schema.js.map +1 -1
  472. package/dist/sqlite/write.d.ts.map +1 -1
  473. package/dist/sqlite/write.js +15 -0
  474. package/dist/sqlite/write.js.map +1 -1
  475. package/dist/sqlite-driver.d.ts +11 -0
  476. package/dist/sqlite-driver.d.ts.map +1 -1
  477. package/dist/sqlite-driver.js +28 -2
  478. package/dist/sqlite-driver.js.map +1 -1
  479. package/dist/sqlite.d.ts +1 -1
  480. package/dist/sqlite.d.ts.map +1 -1
  481. package/dist/sqlite.js +1 -1
  482. package/dist/sqlite.js.map +1 -1
  483. package/dist/util/bloomFilter.d.ts +3 -2
  484. package/dist/util/bloomFilter.d.ts.map +1 -1
  485. package/dist/util/bloomFilter.js +8 -8
  486. package/dist/util/bloomFilter.js.map +1 -1
  487. package/dist/util/concurrency.d.ts +1 -0
  488. package/dist/util/concurrency.d.ts.map +1 -1
  489. package/dist/util/concurrency.js +9 -2
  490. package/dist/util/concurrency.js.map +1 -1
  491. package/dist/util/confinedFile.d.ts +42 -2
  492. package/dist/util/confinedFile.d.ts.map +1 -1
  493. package/dist/util/confinedFile.js +114 -3
  494. package/dist/util/confinedFile.js.map +1 -1
  495. package/dist/util/errors.d.ts +2 -0
  496. package/dist/util/errors.d.ts.map +1 -1
  497. package/dist/util/errors.js +18 -0
  498. package/dist/util/errors.js.map +1 -1
  499. package/dist/util/git.d.ts +2 -0
  500. package/dist/util/git.d.ts.map +1 -1
  501. package/dist/util/git.js +174 -26
  502. package/dist/util/git.js.map +1 -1
  503. package/dist/util/identifiers.d.ts +75 -0
  504. package/dist/util/identifiers.d.ts.map +1 -0
  505. package/dist/util/identifiers.js +82 -0
  506. package/dist/util/identifiers.js.map +1 -0
  507. package/dist/util/paths.d.ts.map +1 -1
  508. package/dist/util/paths.js +45 -9
  509. package/dist/util/paths.js.map +1 -1
  510. package/dist/util/projectFiles.d.ts.map +1 -1
  511. package/dist/util/projectFiles.js +43 -14
  512. package/dist/util/projectFiles.js.map +1 -1
  513. package/dist/util/resolution/jvm.d.ts.map +1 -1
  514. package/dist/util/resolution/jvm.js +20 -9
  515. package/dist/util/resolution/jvm.js.map +1 -1
  516. package/dist/util/resolution/php.d.ts.map +1 -1
  517. package/dist/util/resolution/php.js +6 -5
  518. package/dist/util/resolution/php.js.map +1 -1
  519. package/dist/util/resolution/tsconfig.d.ts.map +1 -1
  520. package/dist/util/resolution/tsconfig.js +26 -12
  521. package/dist/util/resolution/tsconfig.js.map +1 -1
  522. package/dist/util/rustTestModules.d.ts.map +1 -1
  523. package/dist/util/rustTestModules.js +4 -2
  524. package/dist/util/rustTestModules.js.map +1 -1
  525. package/dist/util/specifiers.d.ts.map +1 -1
  526. package/dist/util/specifiers.js +10 -3
  527. package/dist/util/specifiers.js.map +1 -1
  528. package/dist/util/sqliteSchema.d.ts.map +1 -1
  529. package/dist/util/sqliteSchema.js +10 -1
  530. package/dist/util/sqliteSchema.js.map +1 -1
  531. package/dist/worker/nativeExtractWorker.d.ts +4 -2
  532. package/dist/worker/nativeExtractWorker.d.ts.map +1 -1
  533. package/dist/worker/nativeExtractWorker.js +12 -11
  534. package/dist/worker/nativeExtractWorker.js.map +1 -1
  535. package/docs/mcp.md +35 -14
  536. package/package.json +3 -3
@@ -1,10 +1,14 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import { supportForFile } from "../languages.js";
4
+ import { GO_IDENTIFIER_SOURCE, JAVA_IDENTIFIER_SOURCE, KOTLIN_IDENTIFIER_SOURCE } from "../util/identifiers.js";
4
5
  import { fileIdentityKey, normalizePath } from "../util/paths.js";
5
6
  import { SymbolKind, } from "./types.js";
6
- function cacheKey(file, name) {
7
- return `${fileIdentityKey(file)}::${name}`;
7
+ const GO_PACKAGE_PATTERN = new RegExp(String.raw `^\s*package\s+(${GO_IDENTIFIER_SOURCE})`, "mu");
8
+ const JAVA_PACKAGE_NAME_PATTERN = new RegExp(String.raw `^\s*package\s+(${JAVA_IDENTIFIER_SOURCE}(?:\.${JAVA_IDENTIFIER_SOURCE})*)\s*;`, "mu");
9
+ const KOTLIN_PACKAGE_NAME_PATTERN = new RegExp(String.raw `^\s*package\s+(${KOTLIN_IDENTIFIER_SOURCE}(?:\.${KOTLIN_IDENTIFIER_SOURCE})*)`, "mu");
10
+ function cacheKey(file, canonicalName) {
11
+ return `${fileIdentityKey(file)}::canonical::${canonicalName}`;
8
12
  }
9
13
  const moduleNameLookups = new WeakMap();
10
14
  const packageDirectoryLookups = new WeakMap();
@@ -17,42 +21,55 @@ function moduleNameLookup(index, file) {
17
21
  if (!lookups) {
18
22
  lookups = new Map();
19
23
  for (const moduleEntry of index.byFile.values()) {
24
+ const normalizeIdentifier = supportForFile(moduleEntry.file, index.languageExtensions)?.normalizeIdentifier ?? ((name) => name);
20
25
  const localExports = new Map();
21
26
  const namespaceReexports = new Map();
22
27
  const reexports = new Map();
23
28
  const locals = new Map();
24
29
  for (const entry of moduleEntry.exports) {
25
30
  if (entry.type === "local") {
26
- const entries = localExports.get(entry.exportedAs) ?? [];
31
+ const canonicalName = normalizeIdentifier(entry.exportedAs);
32
+ const entries = localExports.get(canonicalName) ?? [];
27
33
  entries.push(entry.target);
28
- localExports.set(entry.exportedAs, entries);
34
+ localExports.set(canonicalName, entries);
29
35
  }
30
36
  else if (entry.type === "namespaceReexport") {
31
- const entries = namespaceReexports.get(entry.exportedAs) ?? [];
37
+ const canonicalName = normalizeIdentifier(entry.exportedAs);
38
+ const entries = namespaceReexports.get(canonicalName) ?? [];
32
39
  entries.push(entry);
33
- namespaceReexports.set(entry.exportedAs, entries);
40
+ namespaceReexports.set(canonicalName, entries);
34
41
  }
35
42
  else if (entry.type === "reexport") {
36
- const entries = reexports.get(entry.exportedAs) ?? [];
43
+ const canonicalName = normalizeIdentifier(entry.exportedAs);
44
+ const entries = reexports.get(canonicalName) ?? [];
37
45
  entries.push(entry);
38
- reexports.set(entry.exportedAs, entries);
46
+ reexports.set(canonicalName, entries);
39
47
  }
40
48
  }
41
49
  for (const local of moduleEntry.locals) {
42
- const entries = locals.get(local.localName) ?? [];
50
+ const canonicalName = normalizeIdentifier(local.localName);
51
+ const entries = locals.get(canonicalName) ?? [];
43
52
  entries.push(local);
44
- locals.set(local.localName, entries);
53
+ locals.set(canonicalName, entries);
45
54
  }
46
- lookups.set(fileIdentityKey(moduleEntry.file), { localExports, namespaceReexports, reexports, locals });
55
+ lookups.set(fileIdentityKey(moduleEntry.file), {
56
+ normalizeIdentifier,
57
+ localExports,
58
+ namespaceReexports,
59
+ reexports,
60
+ locals,
61
+ });
47
62
  }
48
63
  moduleNameLookups.set(index, lookups);
49
64
  }
50
65
  return lookups.get(fileIdentityKey(file));
51
66
  }
52
- function sameSymbolDef(left, right) {
53
- if (fileIdentityKey(left.file) !== fileIdentityKey(right.file) ||
54
- left.localName !== right.localName ||
55
- left.kind !== right.kind) {
67
+ function sameSymbolDef(index, left, right) {
68
+ if (fileIdentityKey(left.file) !== fileIdentityKey(right.file) || left.kind !== right.kind) {
69
+ return false;
70
+ }
71
+ const normalizeIdentifier = supportForFile(left.file, index.languageExtensions)?.normalizeIdentifier ?? ((name) => name);
72
+ if (normalizeIdentifier(left.localName) !== normalizeIdentifier(right.localName)) {
56
73
  return false;
57
74
  }
58
75
  const leftIndex = left.range.start.index;
@@ -62,11 +79,11 @@ function sameSymbolDef(left, right) {
62
79
  }
63
80
  return left.range.start.line === right.range.start.line && left.range.start.column === right.range.start.column;
64
81
  }
65
- function sameResolvedExport(left, right) {
82
+ function sameResolvedExport(index, left, right) {
66
83
  if (left.kind !== right.kind)
67
84
  return false;
68
85
  if (left.kind === "resolved" && right.kind === "resolved") {
69
- return sameSymbolDef(left.def, right.def);
86
+ return sameSymbolDef(index, left.def, right.def);
70
87
  }
71
88
  if (left.kind === "namespace" && right.kind === "namespace") {
72
89
  return fileIdentityKey(left.file) === fileIdentityKey(right.file);
@@ -89,7 +106,7 @@ function readGoPackageName(index, filePath) {
89
106
  return cached;
90
107
  try {
91
108
  const source = fs.readFileSync(filePath, "utf8");
92
- const match = source.match(/^\s*package\s+([A-Za-z_][A-Za-z0-9_]*)/m);
109
+ const match = GO_PACKAGE_PATTERN.exec(source);
93
110
  const packageName = match?.[1] ?? null;
94
111
  cache.set(key, packageName);
95
112
  return packageName;
@@ -101,7 +118,7 @@ function readGoPackageName(index, filePath) {
101
118
  }
102
119
  function resolveGoPackageExport(index, file, exportedName) {
103
120
  try {
104
- const support = supportForFile(file);
121
+ const support = supportForFile(file, index.languageExtensions);
105
122
  if (!support || support.id !== "go")
106
123
  return null;
107
124
  const directory = packageDirectoryLookup(index, "go").get(fileIdentityKey(path.dirname(file)));
@@ -109,11 +126,18 @@ function resolveGoPackageExport(index, file, exportedName) {
109
126
  return null;
110
127
  const sourcePackage = readGoPackageName(index, file);
111
128
  const candidates = sourcePackage ? (directory.byName.get(sourcePackage) ?? []) : directory.all;
129
+ const matches = [];
112
130
  for (const moduleEntry of candidates) {
113
- const exportEntry = moduleNameLookup(index, moduleEntry.file)?.localExports.get(exportedName)?.[0];
114
- if (exportEntry)
115
- return exportEntry;
131
+ const names = moduleNameLookup(index, moduleEntry.file);
132
+ if (!names)
133
+ continue;
134
+ for (const target of names.localExports.get(names.normalizeIdentifier(exportedName)) ?? []) {
135
+ if (!matches.some((candidate) => sameSymbolDef(index, candidate, target))) {
136
+ matches.push(target);
137
+ }
138
+ }
116
139
  }
140
+ return matches.length === 1 ? (matches[0] ?? null) : null;
117
141
  }
118
142
  catch {
119
143
  // supportForFile throws on unsupported files (for example .json)
@@ -129,8 +153,8 @@ function readPackageNameForLanguage(index, filePath, languageId) {
129
153
  try {
130
154
  const source = fs.readFileSync(filePath, "utf8");
131
155
  const packageName = languageId === "kotlin"
132
- ? (source.match(/^\s*package\s+([A-Za-z_][\w.]*)/m)?.[1] ?? null)
133
- : (source.match(/^\s*package\s+([A-Za-z_][\w.]*)\s*;/m)?.[1] ?? null);
156
+ ? (KOTLIN_PACKAGE_NAME_PATTERN.exec(source)?.[1] ?? null)
157
+ : (JAVA_PACKAGE_NAME_PATTERN.exec(source)?.[1] ?? null);
134
158
  cache.set(key, packageName);
135
159
  return packageName;
136
160
  }
@@ -177,14 +201,16 @@ function resolveSiblingPackageExport(index, targetFile, exportedName, languageId
177
201
  if (!directory)
178
202
  return null;
179
203
  const targetFileKey = fileIdentityKey(targetFile);
204
+ const matches = [];
180
205
  for (const moduleEntry of directory.byName.get(packageName) ?? []) {
181
206
  if (fileIdentityKey(moduleEntry.file) === targetFileKey)
182
207
  continue;
183
208
  const hit = resolveExport(index, moduleEntry.file, exportedName);
184
- if (hit)
185
- return hit;
209
+ if (hit && !matches.some((candidate) => sameResolvedExport(index, candidate, hit))) {
210
+ matches.push(hit);
211
+ }
186
212
  }
187
- return null;
213
+ return matches.length === 1 ? (matches[0] ?? null) : null;
188
214
  }
189
215
  function resolvePythonSubmodule(targetFile, exportedName) {
190
216
  let baseDir;
@@ -233,49 +259,76 @@ export function resolveExport(index, file, exportedName, opts) {
233
259
  if (!names)
234
260
  return null;
235
261
  const normalizedFile = normalizePath(moduleEntry.file);
262
+ const canonicalName = names.normalizeIdentifier(name);
236
263
  const key = opts?.preferredKind
237
- ? `${cacheKey(normalizedFile, name)}::${opts.preferredKind}::${allowLocalFallback ? "local" : "export"}`
238
- : `${cacheKey(normalizedFile, name)}::${allowLocalFallback ? "local" : "export"}`;
264
+ ? `${cacheKey(normalizedFile, canonicalName)}::${opts.preferredKind}::${allowLocalFallback ? "local" : "export"}`
265
+ : `${cacheKey(normalizedFile, canonicalName)}::${allowLocalFallback ? "local" : "export"}`;
239
266
  if (index.exportCache.has(key))
240
267
  return index.exportCache.get(key);
241
- const cycleKey = cacheKey(normalizedFile, name);
268
+ const cycleKey = cacheKey(normalizedFile, canonicalName);
242
269
  if (visited.has(cycleKey))
243
270
  return null;
244
271
  visited.add(cycleKey);
245
- const goPackageExport = resolveGoPackageExport(index, normalizedFile, name);
272
+ const goPackageExport = resolveGoPackageExport(index, normalizedFile, canonicalName);
246
273
  if (goPackageExport && matchesPreferredKind(goPackageExport)) {
247
274
  const result = { kind: "resolved", def: goPackageExport };
248
275
  index.exportCache.set(key, result);
249
276
  return result;
250
277
  }
251
- for (const target of names.localExports.get(name) ?? []) {
252
- if (matchesPreferredKind(target)) {
253
- const result = { kind: "resolved", def: target };
254
- index.exportCache.set(key, result);
255
- return result;
278
+ const localCandidates = [];
279
+ for (const target of names.localExports.get(canonicalName) ?? []) {
280
+ if (matchesPreferredKind(target) &&
281
+ !localCandidates.some((candidate) => sameSymbolDef(index, candidate, target))) {
282
+ localCandidates.push(target);
256
283
  }
257
284
  }
258
- for (const entry of names.namespaceReexports.get(name) ?? []) {
259
- const result = {
260
- kind: "namespace",
261
- file: normalizePath(entry.fromModule),
262
- };
285
+ if (localCandidates.length === 1) {
286
+ const target = localCandidates[0];
287
+ const result = { kind: "resolved", def: target };
288
+ index.exportCache.set(key, result);
289
+ return result;
290
+ }
291
+ if (localCandidates.length) {
292
+ index.exportCache.set(key, null);
293
+ return null;
294
+ }
295
+ const namespaceCandidates = new Map();
296
+ for (const entry of names.namespaceReexports.get(canonicalName) ?? []) {
297
+ const result = { kind: "namespace", file: normalizePath(entry.fromModule) };
298
+ namespaceCandidates.set(fileIdentityKey(result.file), result);
299
+ }
300
+ if (namespaceCandidates.size === 1) {
301
+ const result = namespaceCandidates.values().next().value;
263
302
  index.exportCache.set(key, result);
264
303
  return result;
265
304
  }
266
- for (const entry of names.reexports.get(name) ?? []) {
267
- const downstream = resolveFromFile(entry.fromModule, entry.sourceSpecifier || name) ?? resolveFromFile(entry.fromModule, name);
268
- if (downstream) {
269
- index.exportCache.set(key, downstream);
270
- return downstream;
305
+ if (namespaceCandidates.size) {
306
+ index.exportCache.set(key, null);
307
+ return null;
308
+ }
309
+ const reexportCandidates = [];
310
+ for (const entry of names.reexports.get(canonicalName) ?? []) {
311
+ const downstream = resolveFromFile(entry.fromModule, entry.sourceSpecifier || canonicalName) ??
312
+ resolveFromFile(entry.fromModule, canonicalName);
313
+ if (downstream && !reexportCandidates.some((candidate) => sameResolvedExport(index, candidate, downstream))) {
314
+ reexportCandidates.push(downstream);
271
315
  }
272
316
  }
317
+ if (reexportCandidates.length === 1) {
318
+ const result = reexportCandidates[0];
319
+ index.exportCache.set(key, result);
320
+ return result;
321
+ }
322
+ if (reexportCandidates.length) {
323
+ index.exportCache.set(key, null);
324
+ return null;
325
+ }
273
326
  const starCandidates = [];
274
327
  for (const entry of moduleEntry.exports) {
275
328
  if (entry.type !== "exportStar")
276
329
  continue;
277
- const downstream = resolveFromFile(entry.fromModule, name);
278
- if (downstream && !starCandidates.some((candidate) => sameResolvedExport(candidate, downstream))) {
330
+ const downstream = resolveFromFile(entry.fromModule, canonicalName);
331
+ if (downstream && !starCandidates.some((candidate) => sameResolvedExport(index, candidate, downstream))) {
279
332
  starCandidates.push(downstream);
280
333
  }
281
334
  }
@@ -288,15 +341,25 @@ export function resolveExport(index, file, exportedName, opts) {
288
341
  index.exportCache.set(key, null);
289
342
  return null;
290
343
  }
344
+ const localFallbackCandidates = [];
291
345
  if (allowLocalFallback) {
292
- for (const local of names.locals.get(name) ?? []) {
293
- if (matchesPreferredKind(local)) {
294
- const result = { kind: "resolved", def: local };
295
- index.exportCache.set(key, result);
296
- return result;
346
+ for (const local of names.locals.get(canonicalName) ?? []) {
347
+ if (matchesPreferredKind(local) &&
348
+ !localFallbackCandidates.some((candidate) => sameSymbolDef(index, candidate, local))) {
349
+ localFallbackCandidates.push(local);
297
350
  }
298
351
  }
299
352
  }
353
+ if (localFallbackCandidates.length === 1) {
354
+ const local = localFallbackCandidates[0];
355
+ const result = { kind: "resolved", def: local };
356
+ index.exportCache.set(key, result);
357
+ return result;
358
+ }
359
+ if (localFallbackCandidates.length) {
360
+ index.exportCache.set(key, null);
361
+ return null;
362
+ }
300
363
  index.exportCache.set(key, null);
301
364
  return null;
302
365
  }
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-resolve.js","sourceRoot":"","sources":["../../src/indexer/navigation-resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation-resolve.js","sourceRoot":"","sources":["../../src/indexer/navigation-resolve.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type LanguageExtensionMap } from "../languages.js";
1
2
  import { type ParsedFileContext } from "./parse-context.js";
2
3
  import { type FileId, type Range } from "../types.js";
3
4
  import { type FindReferencesResult, type GoToRequest, type GoToResult, type ProjectIndex, type SymbolDef } from "./types.js";
@@ -15,5 +16,5 @@ export declare function findReferences(index: ProjectIndex, req: {
15
16
  blockMaxLines?: number;
16
17
  maxReferences?: number;
17
18
  }): Promise<FindReferencesResult>;
18
- export declare function collectNamespaceMemberRefs(file: string, ns: string, member: string, parsedContext?: ParsedFileContext): Promise<Range[]>;
19
+ export declare function collectNamespaceMemberRefs(file: string, ns: string, member: string, parsedContext?: ParsedFileContext, languageExtensions?: LanguageExtensionMap): Promise<Range[]>;
19
20
  //# sourceMappingURL=navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA0BjF,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAWtD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EAGjB,KAAK,SAAS,EAEf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEzE,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,WAAW,EAChB,aAAa,CAAC,EAAE,iBAAiB,GAChC,OAAO,CAAC,UAAU,CAAC,CAsIrB;AAWD,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,EACxE,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,oBAAoB,CAAC,CA6Q/B;AAuDD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,iBAAiB,GAChC,OAAO,CAAC,KAAK,EAAE,CAAC,CAyBlB"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,oBAAoB,EAAwB,MAAM,iBAAiB,CAAC;AAElG,OAAO,EAAuB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AA0BjF,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAWtD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EAGjB,KAAK,SAAS,EAEf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEzE,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,WAAW,EAChB,aAAa,CAAC,EAAE,iBAAiB,GAChC,OAAO,CAAC,UAAU,CAAC,CAwIrB;AAWD,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,EACxE,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,oBAAoB,CAAC,CA0S/B;AAuDD,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,iBAAiB,EACjC,kBAAkB,CAAC,EAAE,oBAAoB,GACxC,OAAO,CAAC,KAAK,EAAE,CAAC,CAyBlB"}
@@ -1,4 +1,4 @@
1
- import {} from "../languages.js";
1
+ import { supportForFile } from "../languages.js";
2
2
  import { ensureParsedContext } from "./parse-context.js";
3
3
  import { resolveMemberAccessDefinition, supportsReceiverMemberResolution } from "./navigation-goto.js";
4
4
  import { findClosestBinding, findDeclarationNameNode, getOrBuildScopeIndex, resolveNamedDefinition, } from "./navigation-local.js";
@@ -26,7 +26,8 @@ export async function goToDefinition(index, req, parsedContext) {
26
26
  const sqlResult = await goToSqlDefinition(index, req);
27
27
  if (sqlResult)
28
28
  return sqlResult;
29
- const context = parsedContext ?? (await ensureParsedContext(file, index.parsed?.get(fileIdentityKey(file))));
29
+ const context = parsedContext ??
30
+ (await ensureParsedContext(file, index.parsed?.get(fileIdentityKey(file)), index.languageExtensions));
30
31
  const sup = context.sup;
31
32
  const lang = context.lang;
32
33
  const source = context.source;
@@ -183,7 +184,7 @@ export async function findReferences(index, req, opts) {
183
184
  return sqlReferences;
184
185
  const definitionFile = def.file;
185
186
  const parsedDef = index.parsed?.get(fileIdentityKey(definitionFile));
186
- const parsedContext = await ensureParsedContext(definitionFile, parsedDef);
187
+ const parsedContext = await ensureParsedContext(definitionFile, parsedDef, index.languageExtensions);
187
188
  const mod = index.byFile.get(fileIdentityKey(definitionFile));
188
189
  if (!mod)
189
190
  return { status: "not_found", reason: "Module not found" };
@@ -212,12 +213,12 @@ export async function findReferences(index, req, opts) {
212
213
  }
213
214
  const exportedNames = [];
214
215
  for (const entry of mod.exports) {
215
- if (entry.type === "local" && sameDef(entry.target, def)) {
216
+ if (entry.type === "local" && sameDef(entry.target, def, index.languageExtensions)) {
216
217
  exportedNames.push(entry.exportedAs);
217
218
  }
218
219
  }
219
220
  if (!exportedNames.length && shouldUseLocalNameAsExportFallback(def, parsedContext)) {
220
- exportedNames.push(normalizedLocalName);
221
+ exportedNames.push(def.localName);
221
222
  }
222
223
  const exportedNameSet = new Set(exportedNames);
223
224
  const phpQualifiedNames = await buildPhpQualifiedNames(index, definitionFile, def);
@@ -230,11 +231,13 @@ export async function findReferences(index, req, opts) {
230
231
  const filter = index.bloomFilters?.get(fileIdentityKey(candidateFile));
231
232
  if (!filter)
232
233
  return true;
234
+ // Bloom filters contain names normalized by the candidate file's language, so probes must use that rule.
235
+ const normalizeIdentifier = supportForFile(candidateFile, index.languageExtensions)?.normalizeIdentifier ?? ((name) => name);
233
236
  const aliases = getCandidateReferenceNames(module, definitionFile, exportedNameSet);
234
237
  if (!aliases.length) {
235
- return [...exportedNames, ...phpQualifiedNames].some((candidateName) => filter.mightContain(candidateName));
238
+ return [...exportedNames, ...phpQualifiedNames].some((candidateName) => filter.mightContain(normalizeIdentifier(candidateName)));
236
239
  }
237
- return aliases.some((alias) => filter.mightContain(alias));
240
+ return aliases.some((alias) => filter.mightContain(normalizeIdentifier(alias)));
238
241
  });
239
242
  }
240
243
  for (const fileId of candidateFiles) {
@@ -248,7 +251,7 @@ export async function findReferences(index, req, opts) {
248
251
  const ensureCandidateParsed = async () => {
249
252
  if (!candidateParsedContext) {
250
253
  const parsedEntry = index.parsed?.get(fileIdentityKey(fileId));
251
- candidateParsedContext = await ensureParsedContext(fileId, parsedEntry);
254
+ candidateParsedContext = await ensureParsedContext(fileId, parsedEntry, index.languageExtensions);
252
255
  }
253
256
  return candidateParsedContext;
254
257
  };
@@ -271,12 +274,12 @@ export async function findReferences(index, req, opts) {
271
274
  if (imp.kind === "namespace") {
272
275
  const hit = resolveExport(index, targetFile, exportedName);
273
276
  const matchesDef = hit?.kind === "resolved"
274
- ? sameDef(hit.def, def)
275
- : fileIdentityKey(targetFile) === fileIdentityKey(definitionFile);
277
+ ? sameDef(hit.def, def, index.languageExtensions)
278
+ : imp.kind === "namespace" && fileIdentityKey(targetFile) === fileIdentityKey(definitionFile);
276
279
  if (!matchesDef)
277
280
  continue;
278
281
  const parsed = await ensureCandidateParsed();
279
- const ranges = await collectNamespaceMemberRefs(fileId, imp.localNS, exportedName, parsed);
282
+ const ranges = await collectNamespaceMemberRefs(fileId, imp.localNS, exportedName, parsed, index.languageExtensions);
280
283
  for (const range of ranges) {
281
284
  if (hasReachedMaxReferences())
282
285
  break;
@@ -289,7 +292,7 @@ export async function findReferences(index, req, opts) {
289
292
  }
290
293
  else if (imp.kind === "star") {
291
294
  const result = resolveImported(index, imp, exportedName);
292
- const matchesDef = !!result && !("namespace" in result) && sameDef(result, def);
295
+ const matchesDef = !!result && !("namespace" in result) && sameDef(result, def, index.languageExtensions);
293
296
  if (!matchesDef)
294
297
  continue;
295
298
  if (hasExpandedNamedImport(module, targetFile, exportedName)) {
@@ -312,13 +315,22 @@ export async function findReferences(index, req, opts) {
312
315
  exported = "default";
313
316
  }
314
317
  const hit = resolveExport(index, targetFile, exported);
315
- const matchesDef = hit?.kind === "resolved"
316
- ? sameDef(hit.def, def)
317
- : fileIdentityKey(targetFile) === fileIdentityKey(definitionFile);
318
+ const matchesDef = hit?.kind === "resolved" && sameDef(hit.def, def, index.languageExtensions);
318
319
  if (!matchesDef)
319
320
  continue;
321
+ if (fileIdentityKey(targetFile) !== fileIdentityKey(definitionFile)) {
322
+ const remainingReferences = maxReferences !== undefined ? Math.max(0, maxReferences - refs.length) : undefined;
323
+ const ranges = await collectVerifiedNamedNodeReferences(index, fileId, imp.local, def, (params, parsed) => goToDefinition(index, params, parsed), remainingReferences);
324
+ for (const { range, provenance } of ranges) {
325
+ if (hasReachedMaxReferences())
326
+ break;
327
+ pushRef({ file: fileId, range, via: { import: imp }, ...(provenance ? { provenance } : {}) });
328
+ }
329
+ continue;
330
+ }
331
+ const parsed = await ensureCandidateParsed();
320
332
  const resolvedScope = await ensureScope();
321
- const localName = imp.local;
333
+ const localName = parsed.sup.normalizeIdentifier(imp.local);
322
334
  const bindings = resolvedScope.bindings.get(localName) ?? [];
323
335
  for (const binding of bindings) {
324
336
  if (binding.import === imp) {
@@ -351,7 +363,9 @@ export async function findReferences(index, req, opts) {
351
363
  if (hasReachedMaxReferences())
352
364
  break;
353
365
  const filter = index.bloomFilters?.get(fileIdentityKey(fileId));
354
- if (filter && !filter.mightContain(def.localName))
366
+ // Bloom filters contain names normalized by the candidate file's language, so probes must use that rule.
367
+ const canonicalName = supportForFile(fileId, index.languageExtensions)?.normalizeIdentifier(def.localName) ?? def.localName;
368
+ if (filter && !filter.mightContain(canonicalName))
355
369
  continue;
356
370
  const remainingReferences = maxReferences !== undefined ? Math.max(0, maxReferences - refs.length) : undefined;
357
371
  const ranges = await collectVerifiedNamedNodeReferences(index, fileId, def.localName, def, (params, parsed) => goToDefinition(index, params, parsed), remainingReferences);
@@ -376,7 +390,7 @@ export async function findReferences(index, req, opts) {
376
390
  let cached = perFileCache.get(fileIdentityKey(ref.file));
377
391
  if (!cached) {
378
392
  const parsedEntry = index.parsed?.get(fileIdentityKey(ref.file));
379
- const parsed = await ensureParsedContext(ref.file, parsedEntry);
393
+ const parsed = await ensureParsedContext(ref.file, parsedEntry, index.languageExtensions);
380
394
  cached = { source: parsed.source, tree: parsed.tree, sup: parsed.sup };
381
395
  perFileCache.set(fileIdentityKey(ref.file), cached);
382
396
  }
@@ -441,8 +455,8 @@ function isReceiverMethodDefinition(def, parsedContext) {
441
455
  }
442
456
  return false;
443
457
  }
444
- export async function collectNamespaceMemberRefs(file, ns, member, parsedContext) {
445
- const parsed = parsedContext ?? (await ensureParsedContext(file, undefined));
458
+ export async function collectNamespaceMemberRefs(file, ns, member, parsedContext, languageExtensions) {
459
+ const parsed = parsedContext ?? (await ensureParsedContext(file, undefined, languageExtensions));
446
460
  const sup = parsed.sup;
447
461
  const source = parsed.source;
448
462
  const tree = parsed.tree;