@lzehrung/codegraph 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (682) hide show
  1. package/README.md +19 -17
  2. package/codegraph-skill/codegraph/SKILL.md +3 -0
  3. package/dist/agent/artifact.d.ts.map +1 -1
  4. package/dist/agent/artifact.js +4 -9
  5. package/dist/agent/artifact.js.map +1 -1
  6. package/dist/agent/call-hierarchy.d.ts +4 -2
  7. package/dist/agent/call-hierarchy.d.ts.map +1 -1
  8. package/dist/agent/call-hierarchy.js +20 -29
  9. package/dist/agent/call-hierarchy.js.map +1 -1
  10. package/dist/agent/explain.d.ts.map +1 -1
  11. package/dist/agent/explain.js +12 -11
  12. package/dist/agent/explain.js.map +1 -1
  13. package/dist/agent/explore.d.ts.map +1 -1
  14. package/dist/agent/explore.js +2 -11
  15. package/dist/agent/explore.js.map +1 -1
  16. package/dist/agent/file-view.d.ts.map +1 -1
  17. package/dist/agent/file-view.js +4 -12
  18. package/dist/agent/file-view.js.map +1 -1
  19. package/dist/agent/normalize.d.ts +0 -3
  20. package/dist/agent/normalize.d.ts.map +1 -1
  21. package/dist/agent/normalize.js +1 -7
  22. package/dist/agent/normalize.js.map +1 -1
  23. package/dist/agent/orient.d.ts.map +1 -1
  24. package/dist/agent/orient.js +2 -6
  25. package/dist/agent/orient.js.map +1 -1
  26. package/dist/agent/packet.d.ts.map +1 -1
  27. package/dist/agent/packet.js +2 -5
  28. package/dist/agent/packet.js.map +1 -1
  29. package/dist/agent/query-index/content.d.ts.map +1 -1
  30. package/dist/agent/query-index/content.js +2 -6
  31. package/dist/agent/query-index/content.js.map +1 -1
  32. package/dist/agent/query-index/update.d.ts.map +1 -1
  33. package/dist/agent/query-index/update.js +8 -45
  34. package/dist/agent/query-index/update.js.map +1 -1
  35. package/dist/agent/query-index/worker-pool.d.ts.map +1 -1
  36. package/dist/agent/query-index/worker-pool.js +2 -1
  37. package/dist/agent/query-index/worker-pool.js.map +1 -1
  38. package/dist/agent/refactor-plan.d.ts +2 -2
  39. package/dist/agent/refactor-plan.d.ts.map +1 -1
  40. package/dist/agent/refactor-plan.js +11 -57
  41. package/dist/agent/refactor-plan.js.map +1 -1
  42. package/dist/agent/rename-preview.d.ts.map +1 -1
  43. package/dist/agent/rename-preview.js +218 -26
  44. package/dist/agent/rename-preview.js.map +1 -1
  45. package/dist/agent/search.d.ts.map +1 -1
  46. package/dist/agent/search.js +7 -22
  47. package/dist/agent/search.js.map +1 -1
  48. package/dist/agent/semantic-symbols.d.ts +1 -1
  49. package/dist/agent/semantic-symbols.d.ts.map +1 -1
  50. package/dist/agent/semantic-symbols.js +2 -5
  51. package/dist/agent/semantic-symbols.js.map +1 -1
  52. package/dist/agent/semantic.d.ts +5 -0
  53. package/dist/agent/semantic.d.ts.map +1 -1
  54. package/dist/agent/semantic.js +12 -1
  55. package/dist/agent/semantic.js.map +1 -1
  56. package/dist/agent/session.d.ts +9 -0
  57. package/dist/agent/session.d.ts.map +1 -1
  58. package/dist/agent/session.js +59 -41
  59. package/dist/agent/session.js.map +1 -1
  60. package/dist/agent/type-hierarchy.d.ts +4 -2
  61. package/dist/agent/type-hierarchy.d.ts.map +1 -1
  62. package/dist/agent/type-hierarchy.js +19 -31
  63. package/dist/agent/type-hierarchy.js.map +1 -1
  64. package/dist/agent/workspace-symbols.d.ts +1 -1
  65. package/dist/agent/workspace-symbols.d.ts.map +1 -1
  66. package/dist/agent/workspace-symbols.js +7 -15
  67. package/dist/agent/workspace-symbols.js.map +1 -1
  68. package/dist/analysis-summary.d.ts +1 -4
  69. package/dist/analysis-summary.d.ts.map +1 -1
  70. package/dist/analysis-summary.js +58 -19
  71. package/dist/analysis-summary.js.map +1 -1
  72. package/dist/bin/cli.js +36572 -22925
  73. package/dist/bin/query-index-worker.js +440 -261
  74. package/dist/bootstrap/tree-sitter-languages.d.ts +2 -0
  75. package/dist/bootstrap/tree-sitter-languages.d.ts.map +1 -1
  76. package/dist/bootstrap/tree-sitter-languages.js +6 -19
  77. package/dist/bootstrap/tree-sitter-languages.js.map +1 -1
  78. package/dist/chunking/chunk-matches.d.ts.map +1 -1
  79. package/dist/chunking/chunk-matches.js +6 -42
  80. package/dist/chunking/chunk-matches.js.map +1 -1
  81. package/dist/chunking/chunk-split.d.ts +7 -0
  82. package/dist/chunking/chunk-split.d.ts.map +1 -1
  83. package/dist/chunking/chunk-split.js +3 -3
  84. package/dist/chunking/chunk-split.js.map +1 -1
  85. package/dist/chunking/chunk-text-file.js +2 -30
  86. package/dist/chunking/chunk-text-file.js.map +1 -1
  87. package/dist/cli/affected.d.ts.map +1 -1
  88. package/dist/cli/affected.js +1 -9
  89. package/dist/cli/affected.js.map +1 -1
  90. package/dist/cli/call-hierarchy.js +3 -6
  91. package/dist/cli/call-hierarchy.js.map +1 -1
  92. package/dist/cli/chunk.d.ts.map +1 -1
  93. package/dist/cli/chunk.js +4 -11
  94. package/dist/cli/chunk.js.map +1 -1
  95. package/dist/cli/command-table.d.ts.map +1 -1
  96. package/dist/cli/command-table.js +3 -0
  97. package/dist/cli/command-table.js.map +1 -1
  98. package/dist/cli/context.d.ts +1 -0
  99. package/dist/cli/context.d.ts.map +1 -1
  100. package/dist/cli/context.js +1 -1
  101. package/dist/cli/context.js.map +1 -1
  102. package/dist/cli/doctor.d.ts.map +1 -1
  103. package/dist/cli/doctor.js +1 -11
  104. package/dist/cli/doctor.js.map +1 -1
  105. package/dist/cli/graph.d.ts +4 -12
  106. package/dist/cli/graph.d.ts.map +1 -1
  107. package/dist/cli/graph.js +17 -8
  108. package/dist/cli/graph.js.map +1 -1
  109. package/dist/cli/help.d.ts +4 -4
  110. package/dist/cli/help.d.ts.map +1 -1
  111. package/dist/cli/help.js +7 -5
  112. package/dist/cli/help.js.map +1 -1
  113. package/dist/cli/index.d.ts +2 -12
  114. package/dist/cli/index.d.ts.map +1 -1
  115. package/dist/cli/index.js +2 -5
  116. package/dist/cli/index.js.map +1 -1
  117. package/dist/cli/links.d.ts.map +1 -1
  118. package/dist/cli/links.js +4 -10
  119. package/dist/cli/links.js.map +1 -1
  120. package/dist/cli/mcp.d.ts.map +1 -1
  121. package/dist/cli/mcp.js +1 -0
  122. package/dist/cli/mcp.js.map +1 -1
  123. package/dist/cli/module-locals.d.ts +8 -0
  124. package/dist/cli/module-locals.d.ts.map +1 -0
  125. package/dist/cli/module-locals.js +9 -0
  126. package/dist/cli/module-locals.js.map +1 -0
  127. package/dist/cli/navigation.d.ts +2 -0
  128. package/dist/cli/navigation.d.ts.map +1 -1
  129. package/dist/cli/navigation.js +3 -5
  130. package/dist/cli/navigation.js.map +1 -1
  131. package/dist/cli/options.d.ts.map +1 -1
  132. package/dist/cli/options.js +2 -1
  133. package/dist/cli/options.js.map +1 -1
  134. package/dist/cli/pretty.d.ts +1 -0
  135. package/dist/cli/pretty.d.ts.map +1 -1
  136. package/dist/cli/pretty.js +6 -8
  137. package/dist/cli/pretty.js.map +1 -1
  138. package/dist/cli/refactor-plan.js +2 -5
  139. package/dist/cli/refactor-plan.js.map +1 -1
  140. package/dist/cli/rename-preview.js +2 -5
  141. package/dist/cli/rename-preview.js.map +1 -1
  142. package/dist/cli/review.d.ts +6 -16
  143. package/dist/cli/review.d.ts.map +1 -1
  144. package/dist/cli/review.js +2 -0
  145. package/dist/cli/review.js.map +1 -1
  146. package/dist/cli/server.d.ts.map +1 -1
  147. package/dist/cli/server.js +7 -10
  148. package/dist/cli/server.js.map +1 -1
  149. package/dist/cli/type-hierarchy.js +8 -8
  150. package/dist/cli/type-hierarchy.js.map +1 -1
  151. package/dist/document-links/asciidoc.d.ts.map +1 -1
  152. package/dist/document-links/asciidoc.js +4 -16
  153. package/dist/document-links/asciidoc.js.map +1 -1
  154. package/dist/document-links/check.d.ts.map +1 -1
  155. package/dist/document-links/check.js +1 -3
  156. package/dist/document-links/check.js.map +1 -1
  157. package/dist/document-links/html.d.ts.map +1 -1
  158. package/dist/document-links/html.js +6 -44
  159. package/dist/document-links/html.js.map +1 -1
  160. package/dist/document-links/markdown.d.ts.map +1 -1
  161. package/dist/document-links/markdown.js +4 -13
  162. package/dist/document-links/markdown.js.map +1 -1
  163. package/dist/document-links/rst.d.ts.map +1 -1
  164. package/dist/document-links/rst.js +7 -31
  165. package/dist/document-links/rst.js.map +1 -1
  166. package/dist/document-links/sfc.d.ts.map +1 -1
  167. package/dist/document-links/sfc.js +2 -5
  168. package/dist/document-links/sfc.js.map +1 -1
  169. package/dist/document-links/shared.d.ts +2 -0
  170. package/dist/document-links/shared.d.ts.map +1 -1
  171. package/dist/document-links/shared.js +13 -0
  172. package/dist/document-links/shared.js.map +1 -1
  173. package/dist/drift/artifact.d.ts.map +1 -1
  174. package/dist/drift/artifact.js +4 -27
  175. package/dist/drift/artifact.js.map +1 -1
  176. package/dist/drift/graph-edges.d.ts +4 -0
  177. package/dist/drift/graph-edges.d.ts.map +1 -0
  178. package/dist/drift/graph-edges.js +15 -0
  179. package/dist/drift/graph-edges.js.map +1 -0
  180. package/dist/drift/snapshot.d.ts.map +1 -1
  181. package/dist/drift/snapshot.js +2 -17
  182. package/dist/drift/snapshot.js.map +1 -1
  183. package/dist/duplicates/unit-cache.d.ts +11 -1
  184. package/dist/duplicates/unit-cache.d.ts.map +1 -1
  185. package/dist/duplicates/unit-cache.js +20 -2
  186. package/dist/duplicates/unit-cache.js.map +1 -1
  187. package/dist/duplicates/units.d.ts +2 -1
  188. package/dist/duplicates/units.d.ts.map +1 -1
  189. package/dist/duplicates/units.js +23 -22
  190. package/dist/duplicates/units.js.map +1 -1
  191. package/dist/graph-builder.d.ts +1 -1
  192. package/dist/graph-builder.d.ts.map +1 -1
  193. package/dist/graph-builder.js +3 -2
  194. package/dist/graph-builder.js.map +1 -1
  195. package/dist/graph-edge-collector.d.ts +3 -1
  196. package/dist/graph-edge-collector.d.ts.map +1 -1
  197. package/dist/graph-edge-collector.js +38 -6
  198. package/dist/graph-edge-collector.js.map +1 -1
  199. package/dist/graphs/angularjs.d.ts.map +1 -1
  200. package/dist/graphs/angularjs.js +2 -9
  201. package/dist/graphs/angularjs.js.map +1 -1
  202. package/dist/graphs/edge-resolution.d.ts +4 -0
  203. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  204. package/dist/graphs/edge-resolution.js +2 -0
  205. package/dist/graphs/edge-resolution.js.map +1 -1
  206. package/dist/graphs/external/manifests.d.ts.map +1 -1
  207. package/dist/graphs/external/manifests.js +1 -6
  208. package/dist/graphs/external/manifests.js.map +1 -1
  209. package/dist/graphs/specifiers.d.ts.map +1 -1
  210. package/dist/graphs/specifiers.js +47 -26
  211. package/dist/graphs/specifiers.js.map +1 -1
  212. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts +2 -0
  213. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
  214. package/dist/graphs/symbol-graph-detailed/edge-passes.js +9 -3
  215. package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
  216. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +3 -3
  217. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
  218. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +2 -26
  219. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  220. package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
  221. package/dist/graphs/symbol-graph-detailed.js +38 -1
  222. package/dist/graphs/symbol-graph-detailed.js.map +1 -1
  223. package/dist/graphs/symbol-graph.d.ts +1 -1
  224. package/dist/graphs/symbol-graph.d.ts.map +1 -1
  225. package/dist/graphs/symbol-graph.js +8 -0
  226. package/dist/graphs/symbol-graph.js.map +1 -1
  227. package/dist/impact/analyzer.d.ts.map +1 -1
  228. package/dist/impact/analyzer.js +116 -17
  229. package/dist/impact/analyzer.js.map +1 -1
  230. package/dist/impact/budgets.d.ts.map +1 -1
  231. package/dist/impact/budgets.js +3 -9
  232. package/dist/impact/budgets.js.map +1 -1
  233. package/dist/impact/call-compatibility.d.ts.map +1 -1
  234. package/dist/impact/call-compatibility.js +3 -12
  235. package/dist/impact/call-compatibility.js.map +1 -1
  236. package/dist/impact/context.d.ts +6 -0
  237. package/dist/impact/context.d.ts.map +1 -1
  238. package/dist/impact/context.js +2 -2
  239. package/dist/impact/context.js.map +1 -1
  240. package/dist/impact/direct.d.ts.map +1 -1
  241. package/dist/impact/direct.js +2 -6
  242. package/dist/impact/direct.js.map +1 -1
  243. package/dist/impact/map.d.ts +3 -1
  244. package/dist/impact/map.d.ts.map +1 -1
  245. package/dist/impact/map.js +12 -5
  246. package/dist/impact/map.js.map +1 -1
  247. package/dist/impact/reference-cache.d.ts.map +1 -1
  248. package/dist/impact/reference-cache.js +1 -24
  249. package/dist/impact/reference-cache.js.map +1 -1
  250. package/dist/impact/report-shared.d.ts +2 -1
  251. package/dist/impact/report-shared.d.ts.map +1 -1
  252. package/dist/impact/report-shared.js +10 -0
  253. package/dist/impact/report-shared.js.map +1 -1
  254. package/dist/impact/report-suggestions.d.ts.map +1 -1
  255. package/dist/impact/report-suggestions.js +2 -8
  256. package/dist/impact/report-suggestions.js.map +1 -1
  257. package/dist/impact/report.d.ts.map +1 -1
  258. package/dist/impact/report.js +2 -8
  259. package/dist/impact/report.js.map +1 -1
  260. package/dist/impact/streaming.d.ts.map +1 -1
  261. package/dist/impact/streaming.js +3 -8
  262. package/dist/impact/streaming.js.map +1 -1
  263. package/dist/impact/transitive.d.ts +6 -2
  264. package/dist/impact/transitive.d.ts.map +1 -1
  265. package/dist/impact/transitive.js +23 -11
  266. package/dist/impact/transitive.js.map +1 -1
  267. package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
  268. package/dist/indexer/build-cache/manifest.js +10 -108
  269. package/dist/indexer/build-cache/manifest.js.map +1 -1
  270. package/dist/indexer/build-cache/module-cache.d.ts +6 -1
  271. package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
  272. package/dist/indexer/build-cache/module-cache.js +25 -2
  273. package/dist/indexer/build-cache/module-cache.js.map +1 -1
  274. package/dist/indexer/build-cache/options.d.ts +40 -1
  275. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  276. package/dist/indexer/build-cache/options.js +40 -1
  277. package/dist/indexer/build-cache/options.js.map +1 -1
  278. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  279. package/dist/indexer/build-cache/project-snapshot.js +52 -99
  280. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  281. package/dist/indexer/build-cache/reports.d.ts +1 -0
  282. package/dist/indexer/build-cache/reports.d.ts.map +1 -1
  283. package/dist/indexer/build-cache/reports.js +10 -0
  284. package/dist/indexer/build-cache/reports.js.map +1 -1
  285. package/dist/indexer/build-index.d.ts +2 -0
  286. package/dist/indexer/build-index.d.ts.map +1 -1
  287. package/dist/indexer/build-index.js +187 -57
  288. package/dist/indexer/build-index.js.map +1 -1
  289. package/dist/indexer/build-workers.d.ts +7 -1
  290. package/dist/indexer/build-workers.d.ts.map +1 -1
  291. package/dist/indexer/build-workers.js +12 -0
  292. package/dist/indexer/build-workers.js.map +1 -1
  293. package/dist/indexer/call-hierarchy.d.ts.map +1 -1
  294. package/dist/indexer/call-hierarchy.js +5 -17
  295. package/dist/indexer/call-hierarchy.js.map +1 -1
  296. package/dist/indexer/compilation-units.d.ts +32 -20
  297. package/dist/indexer/compilation-units.d.ts.map +1 -1
  298. package/dist/indexer/compilation-units.js +139 -145
  299. package/dist/indexer/compilation-units.js.map +1 -1
  300. package/dist/indexer/cpp-callables.d.ts.map +1 -1
  301. package/dist/indexer/cpp-callables.js +2 -7
  302. package/dist/indexer/cpp-callables.js.map +1 -1
  303. package/dist/indexer/declarations.d.ts.map +1 -1
  304. package/dist/indexer/declarations.js +32 -7
  305. package/dist/indexer/declarations.js.map +1 -1
  306. package/dist/indexer/import-resolution-tables.d.ts.map +1 -1
  307. package/dist/indexer/import-resolution-tables.js +10 -0
  308. package/dist/indexer/import-resolution-tables.js.map +1 -1
  309. package/dist/indexer/import-types.d.ts +5 -0
  310. package/dist/indexer/import-types.d.ts.map +1 -1
  311. package/dist/indexer/import-types.js.map +1 -1
  312. package/dist/indexer/imports/binding-ranges.d.ts +5 -12
  313. package/dist/indexer/imports/binding-ranges.d.ts.map +1 -1
  314. package/dist/indexer/imports/binding-ranges.js +13 -19
  315. package/dist/indexer/imports/binding-ranges.js.map +1 -1
  316. package/dist/indexer/imports/context.d.ts +6 -0
  317. package/dist/indexer/imports/context.d.ts.map +1 -1
  318. package/dist/indexer/imports/import-binding-tables.d.ts +28 -13
  319. package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
  320. package/dist/indexer/imports/import-binding-tables.js +182 -178
  321. package/dist/indexer/imports/import-binding-tables.js.map +1 -1
  322. package/dist/indexer/imports/js-text-imports.d.ts +0 -1
  323. package/dist/indexer/imports/js-text-imports.d.ts.map +1 -1
  324. package/dist/indexer/imports/js-text-imports.js +0 -176
  325. package/dist/indexer/imports/js-text-imports.js.map +1 -1
  326. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  327. package/dist/indexer/imports/language-specific.js +4 -8
  328. package/dist/indexer/imports/language-specific.js.map +1 -1
  329. package/dist/indexer/imports/python.d.ts +0 -1
  330. package/dist/indexer/imports/python.d.ts.map +1 -1
  331. package/dist/indexer/imports/python.js +1 -29
  332. package/dist/indexer/imports/python.js.map +1 -1
  333. package/dist/indexer/imports/text-import-extractors.d.ts +2 -9
  334. package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -1
  335. package/dist/indexer/imports/text-import-extractors.js +0 -284
  336. package/dist/indexer/imports/text-import-extractors.js.map +1 -1
  337. package/dist/indexer/imports.d.ts +15 -0
  338. package/dist/indexer/imports.d.ts.map +1 -1
  339. package/dist/indexer/imports.js +82 -44
  340. package/dist/indexer/imports.js.map +1 -1
  341. package/dist/indexer/incremental-plan.d.ts +0 -1
  342. package/dist/indexer/incremental-plan.d.ts.map +1 -1
  343. package/dist/indexer/incremental-plan.js +6 -12
  344. package/dist/indexer/incremental-plan.js.map +1 -1
  345. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  346. package/dist/indexer/locals-and-exports.js +8 -0
  347. package/dist/indexer/locals-and-exports.js.map +1 -1
  348. package/dist/indexer/name-lookup-policies/implicit-self.d.ts.map +1 -1
  349. package/dist/indexer/name-lookup-policies/implicit-self.js +25 -4
  350. package/dist/indexer/name-lookup-policies/implicit-self.js.map +1 -1
  351. package/dist/indexer/name-resolution-types.d.ts +5 -0
  352. package/dist/indexer/name-resolution-types.d.ts.map +1 -1
  353. package/dist/indexer/name-resolution.d.ts.map +1 -1
  354. package/dist/indexer/name-resolution.js +2 -0
  355. package/dist/indexer/name-resolution.js.map +1 -1
  356. package/dist/indexer/navigation-cpp.d.ts.map +1 -1
  357. package/dist/indexer/navigation-cpp.js +3 -5
  358. package/dist/indexer/navigation-cpp.js.map +1 -1
  359. package/dist/indexer/navigation-goto.d.ts +49 -3
  360. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  361. package/dist/indexer/navigation-goto.js +500 -106
  362. package/dist/indexer/navigation-goto.js.map +1 -1
  363. package/dist/indexer/navigation-local.d.ts +7 -0
  364. package/dist/indexer/navigation-local.d.ts.map +1 -1
  365. package/dist/indexer/navigation-local.js +22 -2
  366. package/dist/indexer/navigation-local.js.map +1 -1
  367. package/dist/indexer/navigation-php.d.ts +0 -1
  368. package/dist/indexer/navigation-php.d.ts.map +1 -1
  369. package/dist/indexer/navigation-php.js +1 -7
  370. package/dist/indexer/navigation-php.js.map +1 -1
  371. package/dist/indexer/navigation-references.d.ts +1 -0
  372. package/dist/indexer/navigation-references.d.ts.map +1 -1
  373. package/dist/indexer/navigation-references.js +134 -23
  374. package/dist/indexer/navigation-references.js.map +1 -1
  375. package/dist/indexer/navigation-resolve.d.ts +22 -0
  376. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  377. package/dist/indexer/navigation-resolve.js +73 -8
  378. package/dist/indexer/navigation-resolve.js.map +1 -1
  379. package/dist/indexer/navigation.d.ts +4 -1
  380. package/dist/indexer/navigation.d.ts.map +1 -1
  381. package/dist/indexer/navigation.js +429 -109
  382. package/dist/indexer/navigation.js.map +1 -1
  383. package/dist/indexer/python-property-decorator.d.ts +11 -0
  384. package/dist/indexer/python-property-decorator.d.ts.map +1 -0
  385. package/dist/indexer/python-property-decorator.js +30 -0
  386. package/dist/indexer/python-property-decorator.js.map +1 -0
  387. package/dist/indexer/reference-context.d.ts.map +1 -1
  388. package/dist/indexer/reference-context.js +4 -1
  389. package/dist/indexer/reference-context.js.map +1 -1
  390. package/dist/indexer/scope-nodes.d.ts.map +1 -1
  391. package/dist/indexer/scope-nodes.js +5 -0
  392. package/dist/indexer/scope-nodes.js.map +1 -1
  393. package/dist/indexer/shared-owner-identity.d.ts +3 -1
  394. package/dist/indexer/shared-owner-identity.d.ts.map +1 -1
  395. package/dist/indexer/shared-owner-identity.js +40 -12
  396. package/dist/indexer/shared-owner-identity.js.map +1 -1
  397. package/dist/indexer/shared.d.ts +10 -0
  398. package/dist/indexer/shared.d.ts.map +1 -1
  399. package/dist/indexer/shared.js +8 -0
  400. package/dist/indexer/shared.js.map +1 -1
  401. package/dist/indexer/star-import-precedence.d.ts +5 -1
  402. package/dist/indexer/star-import-precedence.d.ts.map +1 -1
  403. package/dist/indexer/star-import-precedence.js +12 -19
  404. package/dist/indexer/star-import-precedence.js.map +1 -1
  405. package/dist/indexer/type-hierarchy.d.ts.map +1 -1
  406. package/dist/indexer/type-hierarchy.js +8 -9
  407. package/dist/indexer/type-hierarchy.js.map +1 -1
  408. package/dist/indexer/types.d.ts +54 -2
  409. package/dist/indexer/types.d.ts.map +1 -1
  410. package/dist/indexer/types.js +4 -0
  411. package/dist/indexer/types.js.map +1 -1
  412. package/dist/indexer/workspace-symbols.d.ts.map +1 -1
  413. package/dist/indexer/workspace-symbols.js +3 -13
  414. package/dist/indexer/workspace-symbols.js.map +1 -1
  415. package/dist/installer/locks.d.ts +1 -0
  416. package/dist/installer/locks.d.ts.map +1 -1
  417. package/dist/installer/locks.js +4 -8
  418. package/dist/installer/locks.js.map +1 -1
  419. package/dist/installer/registry.d.ts.map +1 -1
  420. package/dist/installer/registry.js +9 -15
  421. package/dist/installer/registry.js.map +1 -1
  422. package/dist/languages/all.d.ts +1 -0
  423. package/dist/languages/all.d.ts.map +1 -1
  424. package/dist/languages/all.js +1 -0
  425. package/dist/languages/all.js.map +1 -1
  426. package/dist/languages/callable-arity.d.ts.map +1 -1
  427. package/dist/languages/callable-arity.js +1 -38
  428. package/dist/languages/callable-arity.js.map +1 -1
  429. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  430. package/dist/languages/definitions/csharp.js +5 -13
  431. package/dist/languages/definitions/csharp.js.map +1 -1
  432. package/dist/languages/definitions/java.d.ts.map +1 -1
  433. package/dist/languages/definitions/java.js +4 -13
  434. package/dist/languages/definitions/java.js.map +1 -1
  435. package/dist/languages/definitions/kotlin.d.ts.map +1 -1
  436. package/dist/languages/definitions/kotlin.js +4 -8
  437. package/dist/languages/definitions/kotlin.js.map +1 -1
  438. package/dist/languages/definitions/python.d.ts.map +1 -1
  439. package/dist/languages/definitions/python.js +5 -3
  440. package/dist/languages/definitions/python.js.map +1 -1
  441. package/dist/languages/definitions/terraform.d.ts +9 -0
  442. package/dist/languages/definitions/terraform.d.ts.map +1 -0
  443. package/dist/languages/definitions/terraform.js +84 -0
  444. package/dist/languages/definitions/terraform.js.map +1 -0
  445. package/dist/languages/import-statement-parsers.d.ts +0 -30
  446. package/dist/languages/import-statement-parsers.d.ts.map +1 -1
  447. package/dist/languages/import-statement-parsers.js +1 -81
  448. package/dist/languages/import-statement-parsers.js.map +1 -1
  449. package/dist/languages/sfc.d.ts.map +1 -1
  450. package/dist/languages/sfc.js +8 -43
  451. package/dist/languages/sfc.js.map +1 -1
  452. package/dist/languages.d.ts +1 -0
  453. package/dist/languages.d.ts.map +1 -1
  454. package/dist/languages.js +1 -0
  455. package/dist/languages.js.map +1 -1
  456. package/dist/lifecycle/manifest.d.ts.map +1 -1
  457. package/dist/lifecycle/manifest.js +11 -29
  458. package/dist/lifecycle/manifest.js.map +1 -1
  459. package/dist/mcp/handlers.d.ts +21 -0
  460. package/dist/mcp/handlers.d.ts.map +1 -1
  461. package/dist/mcp/handlers.js +66 -20
  462. package/dist/mcp/handlers.js.map +1 -1
  463. package/dist/mcp/http-transport.d.ts.map +1 -1
  464. package/dist/mcp/http-transport.js +5 -1
  465. package/dist/mcp/http-transport.js.map +1 -1
  466. package/dist/mcp/project-watcher.d.ts +125 -0
  467. package/dist/mcp/project-watcher.d.ts.map +1 -0
  468. package/dist/mcp/project-watcher.js +643 -0
  469. package/dist/mcp/project-watcher.js.map +1 -0
  470. package/dist/mcp/server.d.ts.map +1 -1
  471. package/dist/mcp/server.js +5 -1
  472. package/dist/mcp/server.js.map +1 -1
  473. package/dist/native/byte-index.d.ts +1 -0
  474. package/dist/native/byte-index.d.ts.map +1 -1
  475. package/dist/native/byte-index.js +1 -1
  476. package/dist/native/byte-index.js.map +1 -1
  477. package/dist/native/contracts.d.ts +1 -0
  478. package/dist/native/contracts.d.ts.map +1 -1
  479. package/dist/native/native-backend-report.d.ts +2 -1
  480. package/dist/native/native-backend-report.d.ts.map +1 -1
  481. package/dist/native/native-backend-report.js +23 -0
  482. package/dist/native/native-backend-report.js.map +1 -1
  483. package/dist/native/tree-shape.d.ts +5 -7
  484. package/dist/native/tree-shape.d.ts.map +1 -1
  485. package/dist/native/tree-shape.js +11 -10
  486. package/dist/native/tree-shape.js.map +1 -1
  487. package/dist/presentation/bounds.d.ts +2 -0
  488. package/dist/presentation/bounds.d.ts.map +1 -1
  489. package/dist/presentation/bounds.js +8 -0
  490. package/dist/presentation/bounds.js.map +1 -1
  491. package/dist/review/candidates.d.ts.map +1 -1
  492. package/dist/review/candidates.js +4 -25
  493. package/dist/review/candidates.js.map +1 -1
  494. package/dist/review/report.d.ts.map +1 -1
  495. package/dist/review/report.js +4 -2
  496. package/dist/review/report.js.map +1 -1
  497. package/dist/review/summaries.d.ts.map +1 -1
  498. package/dist/review/summaries.js +14 -35
  499. package/dist/review/summaries.js.map +1 -1
  500. package/dist/review.d.ts.map +1 -1
  501. package/dist/review.js +4 -5
  502. package/dist/review.js.map +1 -1
  503. package/dist/scss/navigation.d.ts +13 -0
  504. package/dist/scss/navigation.d.ts.map +1 -0
  505. package/dist/scss/navigation.js +150 -0
  506. package/dist/scss/navigation.js.map +1 -0
  507. package/dist/scss/resolution.d.ts +190 -0
  508. package/dist/scss/resolution.d.ts.map +1 -0
  509. package/dist/scss/resolution.js +1802 -0
  510. package/dist/scss/resolution.js.map +1 -0
  511. package/dist/scss/syntax.d.ts +181 -0
  512. package/dist/scss/syntax.d.ts.map +1 -0
  513. package/dist/scss/syntax.js +1436 -0
  514. package/dist/scss/syntax.js.map +1 -0
  515. package/dist/sql/classify-sql-file.d.ts +7 -0
  516. package/dist/sql/classify-sql-file.d.ts.map +1 -1
  517. package/dist/sql/classify-sql-file.js +9 -0
  518. package/dist/sql/classify-sql-file.js.map +1 -1
  519. package/dist/sql/extract-facts.d.ts.map +1 -1
  520. package/dist/sql/extract-facts.js +517 -77
  521. package/dist/sql/extract-facts.js.map +1 -1
  522. package/dist/sql/lex.d.ts +100 -1
  523. package/dist/sql/lex.d.ts.map +1 -1
  524. package/dist/sql/lex.js +473 -11
  525. package/dist/sql/lex.js.map +1 -1
  526. package/dist/sql/lookup.d.ts +17 -0
  527. package/dist/sql/lookup.d.ts.map +1 -1
  528. package/dist/sql/lookup.js +21 -0
  529. package/dist/sql/lookup.js.map +1 -1
  530. package/dist/sql/navigation.d.ts +28 -1
  531. package/dist/sql/navigation.d.ts.map +1 -1
  532. package/dist/sql/navigation.js +474 -84
  533. package/dist/sql/navigation.js.map +1 -1
  534. package/dist/sql/object-mentions.d.ts +24 -0
  535. package/dist/sql/object-mentions.d.ts.map +1 -0
  536. package/dist/sql/object-mentions.js +233 -0
  537. package/dist/sql/object-mentions.js.map +1 -0
  538. package/dist/sql/review.d.ts +3 -0
  539. package/dist/sql/review.d.ts.map +1 -1
  540. package/dist/sql/review.js +15 -14
  541. package/dist/sql/review.js.map +1 -1
  542. package/dist/sql/routine-mentions.d.ts +61 -0
  543. package/dist/sql/routine-mentions.d.ts.map +1 -0
  544. package/dist/sql/routine-mentions.js +868 -0
  545. package/dist/sql/routine-mentions.js.map +1 -0
  546. package/dist/sql/source-graph.d.ts +18 -3
  547. package/dist/sql/source-graph.d.ts.map +1 -1
  548. package/dist/sql/source-graph.js +109 -32
  549. package/dist/sql/source-graph.js.map +1 -1
  550. package/dist/sqlite/raw-query-worker-pool.d.ts.map +1 -1
  551. package/dist/sqlite/raw-query-worker-pool.js +2 -0
  552. package/dist/sqlite/raw-query-worker-pool.js.map +1 -1
  553. package/dist/sqlite/types.d.ts +6 -5
  554. package/dist/sqlite/types.d.ts.map +1 -1
  555. package/dist/sqlite/write.d.ts.map +1 -1
  556. package/dist/sqlite/write.js.map +1 -1
  557. package/dist/sqlite-driver.d.ts +0 -1
  558. package/dist/sqlite-driver.d.ts.map +1 -1
  559. package/dist/sqlite-driver.js +0 -11
  560. package/dist/sqlite-driver.js.map +1 -1
  561. package/dist/terraform/navigation.d.ts +20 -0
  562. package/dist/terraform/navigation.d.ts.map +1 -0
  563. package/dist/terraform/navigation.js +140 -0
  564. package/dist/terraform/navigation.js.map +1 -0
  565. package/dist/terraform/resolution.d.ts +82 -0
  566. package/dist/terraform/resolution.d.ts.map +1 -0
  567. package/dist/terraform/resolution.js +324 -0
  568. package/dist/terraform/resolution.js.map +1 -0
  569. package/dist/terraform/syntax.d.ts +109 -0
  570. package/dist/terraform/syntax.d.ts.map +1 -0
  571. package/dist/terraform/syntax.js +438 -0
  572. package/dist/terraform/syntax.js.map +1 -0
  573. package/dist/util/ast.d.ts +5 -0
  574. package/dist/util/ast.d.ts.map +1 -1
  575. package/dist/util/ast.js +10 -0
  576. package/dist/util/ast.js.map +1 -1
  577. package/dist/util/atomic-file.d.ts +22 -0
  578. package/dist/util/atomic-file.d.ts.map +1 -0
  579. package/dist/util/atomic-file.js +106 -0
  580. package/dist/util/atomic-file.js.map +1 -0
  581. package/dist/util/collections.d.ts +5 -0
  582. package/dist/util/collections.d.ts.map +1 -1
  583. package/dist/util/collections.js +26 -0
  584. package/dist/util/collections.js.map +1 -1
  585. package/dist/util/concurrency.d.ts +1 -0
  586. package/dist/util/concurrency.d.ts.map +1 -1
  587. package/dist/util/concurrency.js +5 -0
  588. package/dist/util/concurrency.js.map +1 -1
  589. package/dist/util/confined-file.d.ts.map +1 -1
  590. package/dist/util/confined-file.js +1 -3
  591. package/dist/util/confined-file.js.map +1 -1
  592. package/dist/util/csharp-tree.d.ts +65 -0
  593. package/dist/util/csharp-tree.d.ts.map +1 -0
  594. package/dist/util/csharp-tree.js +266 -0
  595. package/dist/util/csharp-tree.js.map +1 -0
  596. package/dist/util/errors.d.ts +1 -0
  597. package/dist/util/errors.d.ts.map +1 -1
  598. package/dist/util/errors.js +3 -0
  599. package/dist/util/errors.js.map +1 -1
  600. package/dist/util/graph-edges.d.ts +2 -0
  601. package/dist/util/graph-edges.d.ts.map +1 -1
  602. package/dist/util/graph-edges.js +11 -0
  603. package/dist/util/graph-edges.js.map +1 -1
  604. package/dist/util/guards.d.ts +1 -0
  605. package/dist/util/guards.d.ts.map +1 -1
  606. package/dist/util/guards.js +6 -0
  607. package/dist/util/guards.js.map +1 -1
  608. package/dist/util/identifiers.d.ts +0 -24
  609. package/dist/util/identifiers.d.ts.map +1 -1
  610. package/dist/util/identifiers.js +0 -24
  611. package/dist/util/identifiers.js.map +1 -1
  612. package/dist/util/jvm-tree.d.ts +58 -0
  613. package/dist/util/jvm-tree.d.ts.map +1 -0
  614. package/dist/util/jvm-tree.js +153 -0
  615. package/dist/util/jvm-tree.js.map +1 -0
  616. package/dist/util/member-access-tables.d.ts.map +1 -1
  617. package/dist/util/member-access-tables.js +3 -0
  618. package/dist/util/member-access-tables.js.map +1 -1
  619. package/dist/util/package-exports.d.ts +0 -22
  620. package/dist/util/package-exports.d.ts.map +1 -1
  621. package/dist/util/package-exports.js +25 -5
  622. package/dist/util/package-exports.js.map +1 -1
  623. package/dist/util/paths.d.ts +1 -0
  624. package/dist/util/paths.d.ts.map +1 -1
  625. package/dist/util/paths.js +10 -4
  626. package/dist/util/paths.js.map +1 -1
  627. package/dist/util/project-files.d.ts.map +1 -1
  628. package/dist/util/project-files.js +3 -1
  629. package/dist/util/project-files.js.map +1 -1
  630. package/dist/util/resolution/csharp.d.ts +20 -8
  631. package/dist/util/resolution/csharp.d.ts.map +1 -1
  632. package/dist/util/resolution/csharp.js +126 -127
  633. package/dist/util/resolution/csharp.js.map +1 -1
  634. package/dist/util/resolution/files.d.ts +6 -0
  635. package/dist/util/resolution/files.d.ts.map +1 -1
  636. package/dist/util/resolution/files.js +74 -21
  637. package/dist/util/resolution/files.js.map +1 -1
  638. package/dist/util/resolution/jvm.d.ts +21 -1
  639. package/dist/util/resolution/jvm.d.ts.map +1 -1
  640. package/dist/util/resolution/jvm.js +168 -100
  641. package/dist/util/resolution/jvm.js.map +1 -1
  642. package/dist/util/resolution/project-symbols.d.ts +1 -1
  643. package/dist/util/resolution/project-symbols.d.ts.map +1 -1
  644. package/dist/util/resolution/project-symbols.js.map +1 -1
  645. package/dist/util/resolution/specifier-targets.d.ts +4 -0
  646. package/dist/util/resolution/specifier-targets.d.ts.map +1 -1
  647. package/dist/util/resolution/specifier-targets.js +16 -3
  648. package/dist/util/resolution/specifier-targets.js.map +1 -1
  649. package/dist/util/resolution/terraform.d.ts +18 -0
  650. package/dist/util/resolution/terraform.d.ts.map +1 -0
  651. package/dist/util/resolution/terraform.js +64 -0
  652. package/dist/util/resolution/terraform.js.map +1 -0
  653. package/dist/util/resolution.d.ts.map +1 -1
  654. package/dist/util/resolution.js +21 -7
  655. package/dist/util/resolution.js.map +1 -1
  656. package/dist/util/syntax-tree.d.ts +16 -0
  657. package/dist/util/syntax-tree.d.ts.map +1 -0
  658. package/dist/util/syntax-tree.js +34 -0
  659. package/dist/util/syntax-tree.js.map +1 -0
  660. package/dist/util/text-scanning.d.ts +6 -0
  661. package/dist/util/text-scanning.d.ts.map +1 -0
  662. package/dist/util/text-scanning.js +35 -0
  663. package/dist/util/text-scanning.js.map +1 -0
  664. package/dist/util/trivia-tables.d.ts +13 -8
  665. package/dist/util/trivia-tables.d.ts.map +1 -1
  666. package/dist/util/trivia-tables.js +13 -63
  667. package/dist/util/trivia-tables.js.map +1 -1
  668. package/dist/util/trivia.d.ts +10 -3
  669. package/dist/util/trivia.d.ts.map +1 -1
  670. package/dist/util/trivia.js +209 -79
  671. package/dist/util/trivia.js.map +1 -1
  672. package/dist/util/windows-process-drain.d.ts.map +1 -1
  673. package/dist/util/windows-process-drain.js.map +1 -1
  674. package/dist/util/worker-threads.d.ts +16 -0
  675. package/dist/util/worker-threads.d.ts.map +1 -1
  676. package/dist/util/worker-threads.js +118 -0
  677. package/dist/util/worker-threads.js.map +1 -1
  678. package/dist/worker/native-worker-pool.d.ts.map +1 -1
  679. package/dist/worker/native-worker-pool.js +2 -1
  680. package/dist/worker/native-worker-pool.js.map +1 -1
  681. package/docs/mcp.md +27 -2
  682. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-driver.js","sourceRoot":"","sources":["../src/sqlite-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-driver.js","sourceRoot":"","sources":["../src/sqlite-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AAmClF,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,IAAI,YAA0C,CAAC;AAC/C,IAAI,qCAAqC,GAAG,KAAK,CAAC;AAElD,SAAS,gCAAgC;IACvC,IAAI,qCAAqC;QAAE,OAAO;IAClD,qCAAqC,GAAG,IAAI,CAAC;IAC7C,OAAO,CAAC,KAAK,CACX,wHAAwH,CACzH,CAAC;AACJ,CAAC;AACD,IAAI,eAAkC,CAAC;AAEvC,SAAS,cAAc;IACrB,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,IAAI,eAAe;QAAE,MAAM,eAAe,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAiB,CAAC,aAAa,CAAqB,CAAC;QACpE,YAAY,GAAG,MAAM,CAAC;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAe,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,MAAM,eAAe,CAAC;IACxB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,iHAAiH,CAAC,IAAI,CAC3H,OAAO,CACR,CAAC;AACJ,CAAC;AAED,IAAI,0BAA6C,CAAC;AAElD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,0BAA0B;QAAE,OAAO;IACvC,0BAA0B,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,0BAA0B;IACxC,OAAO,0BAA0B,IAAI,eAAe,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kCAAkC;IAChD,0BAA0B,GAAG,SAAS,CAAC;IACvC,gBAAgB,GAAG,SAAS,CAAC;AAC/B,CAAC;AAED,IAAI,gBAAqC,CAAC;AAE1C,SAAS,0BAA0B,CAAC,SAAwB;IAC1D,MAAM,SAAS,GAAG,SAAgC,CAAC;IACnD,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,0BAA0B,EAAE,EAAE,CAAC;QACjC,gBAAgB,GAAG,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,gBAAgB,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YACxE,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YACjC,SAAS,CAAC,OAAO,EAAE,CAAC;YACpB,gBAAgB,GAAG,IAAI,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjC,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,6BAA6B,GAAG;IACpC,aAAa;IACb,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,aAAa;IACb,kBAAkB;IAClB,eAAe;IACf,oBAAoB;CACZ,CAAC;AAEX,MAAM,UAAU,4BAA4B,CAAC,SAA0B;IACrE,OAAO,6BAA6B,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,uBAAuB,CAAC,UAAkB,EAAE,SAAoC;IACvF,OAAO,CACL,UAAU,KAAK,SAAS,CAAC,eAAe;QACxC,UAAU,KAAK,SAAS,CAAC,aAAa;QACtC,UAAU,KAAK,SAAS,CAAC,WAAW;QACpC,UAAU,KAAK,SAAS,CAAC,aAAa;QACtC,UAAU,KAAK,SAAS,CAAC,kBAAkB;QAC3C,UAAU,KAAK,SAAS,CAAC,gBAAgB,CAC1C,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,KAA2B,EAAmC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAElH,MAAM,eAAe,GAAG,CAAC,MAAuC,EAAiB,EAAE;IACjF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACtB,IAAI,IAAI,KAAK,SAAS,IAAI,kBAAkB,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,OAAO,eAAe;IAEP;IACA;IAFnB,YACmB,SAA8B,EAC9B,eAAe,KAAK;QADpB,cAAS,GAAT,SAAS,CAAqB;QAC9B,iBAAY,GAAZ,YAAY,CAAQ;QAErC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,GAAG;QACD,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,GAAG,CAAC,GAAG,MAA8B;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAiC,CAAC;IACxF,CAAC;IAED,GAAG,CAAC,GAAG,MAA8B;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAyC,CAAC;IAChG,CAAC;IAED,OAAO,CAAC,GAAG,MAA8B;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAiD,CAAC;IAC5G,CAAC;IAED,GAAG,CAAC,GAAG,MAA8B;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;CACF;AAED,MAAM,OAAO,cAAc;IACR,EAAE,CAA6B;IAC/B,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;IACzD,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,QAAkB,EAAE,OAAkD;QAChF,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC1B,MAAM,0BAA0B,EAAE,IAAI,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAChC,IAAI,CAAC,EAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC1C,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;SAClC,CAAC,CAAC;QACH,+BAA+B,EAAE,CAAC;QAClC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;YAC7B,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,4BAA4B,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,EAAE,CACnC,uBAAuB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAC7F,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,gCAAgC,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAW;QACd,qEAAqE;QACrE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAwB,CAAC,CAAC;YACnF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACpC,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,4BAA4B,CAAC,KAAK,CAAC;gBAAE,yBAAyB,CAAC,KAAK,CAAC,CAAC;YAC1E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,WAAW,CAAI,EAAW;QACxB,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrB,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAC5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { FindReferencesResult, GoToRequest, GoToResult, ProjectIndex, SymbolDef } from "../indexer/types.js";
2
+ /**
3
+ * Go-to-definition for a position in a Terraform file, or null for other languages. A position
4
+ * on a declared name returns that declaration; a position on a reference resolves it through
5
+ * `resolveTerraformTarget`.
6
+ */
7
+ export declare function goToTerraformDefinition(index: ProjectIndex, req: GoToRequest): Promise<GoToResult | null>;
8
+ type FindTerraformReferencesOptions = {
9
+ includeDefinition: boolean;
10
+ maxReferences?: number;
11
+ };
12
+ /**
13
+ * References to a Terraform declaration, or null for other languages. Candidates are the files
14
+ * of the declaring module plus, for input variables and outputs, the files that call that module
15
+ * through a local source. Every candidate site resolves through `resolveTerraformTarget`, so
16
+ * references agree with go-to-definition.
17
+ */
18
+ export declare function findTerraformReferences(index: ProjectIndex, def: SymbolDef, options: FindTerraformReferencesOptions): Promise<FindReferencesResult | null>;
19
+ export {};
20
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/terraform/navigation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,YAAY,EAEZ,SAAS,EACV,MAAM,qBAAqB,CAAC;AAe7B;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAa/G;AAED,KAAK,8BAA8B,GAAG;IACpC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAKF;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA2FtC"}
@@ -0,0 +1,140 @@
1
+ import { createNavigationProvenance, okGoToResult } from "../indexer/navigation-provenance.js";
2
+ import { buildIndexedCandidateCoverage } from "../indexer/navigation-references.js";
3
+ import { rangeContains, sameDef } from "../indexer/reference-context.js";
4
+ import { siteKey } from "../indexer/shared.js";
5
+ import { fileIdentityKey } from "../util/paths.js";
6
+ import { isTerraformFile, resolveTerraformTarget, TERRAFORM_LANGUAGE_ID, terraformAddressMayName, terraformDeclarationForDefinition, terraformFactsForFile, terraformModuleCallerFiles, terraformModuleUseTargetsDefinition, terraformModuleFiles, } from "./resolution.js";
7
+ /**
8
+ * Go-to-definition for a position in a Terraform file, or null for other languages. A position
9
+ * on a declared name returns that declaration; a position on a reference resolves it through
10
+ * `resolveTerraformTarget`.
11
+ */
12
+ export async function goToTerraformDefinition(index, req) {
13
+ if (!isTerraformFile(index, req.file))
14
+ return null;
15
+ const facts = await terraformFactsForFile(index, req.file);
16
+ if (!facts)
17
+ return { status: "not_found", reason: "Terraform file could not be parsed" };
18
+ const position = { row: req.line, column: req.column };
19
+ const module = index.byFile.get(fileIdentityKey(req.file));
20
+ const declared = module?.locals.find((local) => rangeContains(local.range, position));
21
+ if (declared)
22
+ return okGoToResult(index, declared, { resolution: "exact", confidence: "high" });
23
+ const site = facts.references.find((reference) => rangeContains(reference.range, position));
24
+ if (!site)
25
+ return { status: "not_found", reason: "No Terraform reference at position" };
26
+ const resolved = await resolveTerraformTarget(index, req.file, site.target);
27
+ if (resolved.status !== "ok")
28
+ return { status: "not_found", reason: resolved.reason };
29
+ return okGoToResult(index, resolved.def, { resolution: "exact", confidence: "high" });
30
+ }
31
+ /** Declarations another module can name: inputs, outputs, and what a resource address names. */
32
+ const CROSS_MODULE_KINDS = new Set(["variable", "output", "module", "resource", "data"]);
33
+ /**
34
+ * References to a Terraform declaration, or null for other languages. Candidates are the files
35
+ * of the declaring module plus, for input variables and outputs, the files that call that module
36
+ * through a local source. Every candidate site resolves through `resolveTerraformTarget`, so
37
+ * references agree with go-to-definition.
38
+ */
39
+ export async function findTerraformReferences(index, def, options) {
40
+ if (!isTerraformFile(index, def.file))
41
+ return null;
42
+ const declaration = await terraformDeclarationForDefinition(index, def);
43
+ const candidateFiles = terraformModuleFiles(index, def.file);
44
+ const unavailableFiles = [];
45
+ if (declaration && CROSS_MODULE_KINDS.has(declaration.kind)) {
46
+ const callers = await terraformModuleCallerFiles(index, def);
47
+ // A file whose facts cannot load may call this module or hold an address, so it is unproven.
48
+ unavailableFiles.push(...callers.unavailable);
49
+ // Callers name inputs and outputs; a resource address anywhere can name nested module calls,
50
+ // resources, and data sources.
51
+ const callerFiles = declaration.kind === "variable" || declaration.kind === "output" ? callers.files : [];
52
+ const addressFiles = declaration.kind === "variable" || declaration.kind === "output" ? [] : callers.addressFiles;
53
+ for (const caller of [...callerFiles, ...addressFiles]) {
54
+ if (!candidateFiles.some((file) => fileIdentityKey(file) === fileIdentityKey(caller))) {
55
+ candidateFiles.push(caller);
56
+ }
57
+ }
58
+ }
59
+ const maxReferences = options.maxReferences;
60
+ const collectionLimit = maxReferences === undefined ? undefined : maxReferences + 1;
61
+ const references = [];
62
+ const seen = new Set();
63
+ const definitionKey = siteKey(def.file, def.range);
64
+ const addReference = (file, range) => {
65
+ if (collectionLimit !== undefined && references.length >= collectionLimit)
66
+ return;
67
+ const key = siteKey(file, range);
68
+ if (!options.includeDefinition && key === definitionKey)
69
+ return;
70
+ if (seen.has(key))
71
+ return;
72
+ seen.add(key);
73
+ references.push({ file, range });
74
+ };
75
+ if (options.includeDefinition)
76
+ addReference(def.file, def.range);
77
+ const scannedFiles = [];
78
+ if (!declaration)
79
+ unavailableFiles.push(def.file);
80
+ for (const file of declaration ? candidateFiles : []) {
81
+ const facts = await terraformFactsForFile(index, file);
82
+ if (!facts) {
83
+ unavailableFiles.push(file);
84
+ continue;
85
+ }
86
+ scannedFiles.push(file);
87
+ let unprovenUse = false;
88
+ for (const site of facts.references) {
89
+ if (site.target.name !== def.localName)
90
+ continue;
91
+ const resolved = await resolveTerraformTarget(index, file, site.target);
92
+ if (resolved.status === "ok") {
93
+ if (sameDef(resolved.def, def, index.languageExtensions))
94
+ addReference(file, site.range);
95
+ }
96
+ else if (resolved.unproven) {
97
+ // A same-named use behind a duplicate declaration or an unreadable file may still name it.
98
+ unprovenUse = true;
99
+ }
100
+ }
101
+ // A whole module value (`module.net`), or indexes that do not fit the call's instancing, may
102
+ // read this output without naming it; a resource address can name a nested module call, a
103
+ // resource, or a data source that references cannot rewrite yet.
104
+ for (const use of facts.moduleObjectUses) {
105
+ if (use.addressChain) {
106
+ if (await terraformAddressMayName(index, file, use.addressChain, def, declaration?.kind))
107
+ unprovenUse = true;
108
+ }
109
+ else if (declaration?.kind === "output") {
110
+ if (await terraformModuleUseTargetsDefinition(index, file, use, def))
111
+ unprovenUse = true;
112
+ }
113
+ }
114
+ if (unprovenUse)
115
+ unavailableFiles.push(file);
116
+ }
117
+ references.sort((left, right) => left.file.localeCompare(right.file) ||
118
+ left.range.start.line - right.range.start.line ||
119
+ left.range.start.column - right.range.start.column);
120
+ const truncated = maxReferences !== undefined && references.length > maxReferences;
121
+ if (truncated)
122
+ references.length = maxReferences;
123
+ return {
124
+ status: "ok",
125
+ definition: def,
126
+ references,
127
+ provenance: createNavigationProvenance("exact", "high"),
128
+ referenceCoverage: buildIndexedCandidateCoverage({
129
+ index,
130
+ def,
131
+ languageId: TERRAFORM_LANGUAGE_ID,
132
+ exportedNames: [],
133
+ candidateFiles,
134
+ scannedFiles,
135
+ truncated,
136
+ strategyUnavailableFiles: unavailableFiles,
137
+ }),
138
+ };
139
+ }
140
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/terraform/navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type { ProjectIndex, SymbolDef } from "../indexer/types.js";
2
+ import type { FileId, Range } from "../types.js";
3
+ import { type TerraformDeclaration, type TerraformDeclarationKind, type TerraformFileFacts, type TerraformModuleObjectUse, type TerraformReferenceTarget } from "./syntax.js";
4
+ /**
5
+ * The one place that decides what a Terraform reference names. `goToDefinition`,
6
+ * `findReferences`, and rename preview all resolve sites here.
7
+ *
8
+ * - `var`, `local`, `module`, resource, and data source references resolve within the module
9
+ * directory of the referring file.
10
+ * - `module.<name>.<output>` and module call arguments resolve in the directory named by the
11
+ * call's literal local `source`. Registry, Git, and other remote sources are not followed.
12
+ * - A name declared more than once in one module is ambiguous and resolves to nothing.
13
+ */
14
+ export declare const TERRAFORM_LANGUAGE_ID = "terraform";
15
+ /**
16
+ * A failed resolution. `unproven` marks a lookup that may still name any same-named declaration:
17
+ * the name is declared more than once in the module (invalid Terraform, so no target is chosen) or
18
+ * a file of the module could not be read. References report such uses as partial coverage.
19
+ */
20
+ export type TerraformNotFound = {
21
+ status: "not_found";
22
+ reason: string;
23
+ unproven?: true;
24
+ };
25
+ export type TerraformResolution = {
26
+ status: "ok";
27
+ def: SymbolDef;
28
+ } | TerraformNotFound;
29
+ export declare function isTerraformFile(index: ProjectIndex, file: FileId): boolean;
30
+ /**
31
+ * Declarations and reference sites of one indexed Terraform file, or null when the file is not
32
+ * indexed or could not be parsed. Cached per indexed module, so a re-indexed file is re-read.
33
+ */
34
+ export declare function terraformFactsForFile(index: ProjectIndex, file: FileId): Promise<TerraformFileFacts | null>;
35
+ /** Indexed Terraform files of the module (directory) that contains `file`, including `file`. */
36
+ export declare function terraformModuleFiles(index: ProjectIndex, file: FileId): FileId[];
37
+ /** Every indexed Terraform file, in path order. */
38
+ export declare function indexedTerraformFiles(index: ProjectIndex): FileId[];
39
+ /** True when `use` in `file` may read an output of the module whose files include `def`, unproven. */
40
+ export declare function terraformModuleUseTargetsDefinition(index: ProjectIndex, file: FileId, use: TerraformModuleObjectUse, def: SymbolDef): Promise<boolean>;
41
+ /** Resolves one reference target written in `file` to its indexed declaration. */
42
+ export declare function resolveTerraformTarget(index: ProjectIndex, file: FileId, target: TerraformReferenceTarget): Promise<TerraformResolution>;
43
+ /** The Terraform declaration that an indexed definition names, if any. */
44
+ export declare function terraformDeclarationForDefinition(index: ProjectIndex, def: SymbolDef): Promise<TerraformDeclaration | undefined>;
45
+ /**
46
+ * Declarations in the same module that renaming `def` to `newName` would collide with. Terraform
47
+ * keeps one namespace per declaration kind (and per type for resources and data sources), so only
48
+ * a same-kind declaration with that name conflicts.
49
+ */
50
+ export declare function terraformRenameCollisions(index: ProjectIndex, def: SymbolDef, newName: string): Promise<SymbolDef[]>;
51
+ /**
52
+ * Reference sites to a data source `def` that a `check` block would capture after renaming it to
53
+ * `newName`: the check declares its own `data "<type>" "<newName>"`, which wins inside the check.
54
+ */
55
+ export declare function terraformScopedDataCaptures(index: ProjectIndex, def: SymbolDef, newName: string, references: ReadonlyArray<{
56
+ file: FileId;
57
+ range: Range;
58
+ }>): Promise<Array<{
59
+ file: FileId;
60
+ range: Range;
61
+ }>>;
62
+ /** True when renaming `def` to `newName` would give an input variable a reserved name. */
63
+ export declare function isTerraformReservedRename(index: ProjectIndex, def: SymbolDef, newName: string): Promise<boolean>;
64
+ /**
65
+ * Files outside the declaring module that can reference a declaration: every file of each module
66
+ * that calls the declaring directory through a local source. Call arguments name input variables,
67
+ * and `module.<name>.<output>` can appear in any file of the calling module. `addressFiles` lists
68
+ * every file that holds a module resource address, which can name nested calls at any depth.
69
+ * `unavailable` lists files whose facts could not be loaded, so what they name is unknown.
70
+ */
71
+ export declare function terraformModuleCallerFiles(index: ProjectIndex, def: SymbolDef): Promise<{
72
+ files: FileId[];
73
+ addressFiles: FileId[];
74
+ unavailable: FileId[];
75
+ }>;
76
+ /**
77
+ * True when a module resource address written in `file` may name `def`: a nested module call in
78
+ * its chain, or a resource or data source of the last called module. Each chain segment resolves
79
+ * in the module the previous segment calls; an unproven segment may name anything.
80
+ */
81
+ export declare function terraformAddressMayName(index: ProjectIndex, file: FileId, chain: readonly string[], def: SymbolDef, kind: TerraformDeclarationKind | undefined): Promise<boolean>;
82
+ //# sourceMappingURL=resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolution.d.ts","sourceRoot":"","sources":["../../src/terraform/resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,324 @@
1
+ import path from "node:path";
2
+ import { getCompilationUnitPeers } from "../indexer/compilation-units.js";
3
+ import { ensureParsedContext } from "../indexer/parse-context.js";
4
+ import { supportForFileWithoutHeaderSample } from "../languages.js";
5
+ import { isNativeRequiredUnavailableError } from "../native/runtime.js";
6
+ import { fileIdentityKey } from "../util/paths.js";
7
+ import { terraformLocalModuleDirectory } from "../util/resolution/terraform.js";
8
+ import { extractTerraformFacts, terraformOutputSelectionReadsOutput, } from "./syntax.js";
9
+ /**
10
+ * The one place that decides what a Terraform reference names. `goToDefinition`,
11
+ * `findReferences`, and rename preview all resolve sites here.
12
+ *
13
+ * - `var`, `local`, `module`, resource, and data source references resolve within the module
14
+ * directory of the referring file.
15
+ * - `module.<name>.<output>` and module call arguments resolve in the directory named by the
16
+ * call's literal local `source`. Registry, Git, and other remote sources are not followed.
17
+ * - A name declared more than once in one module is ambiguous and resolves to nothing.
18
+ */
19
+ export const TERRAFORM_LANGUAGE_ID = "terraform";
20
+ export function isTerraformFile(index, file) {
21
+ return supportForFileWithoutHeaderSample(file, index.languageExtensions)?.id === TERRAFORM_LANGUAGE_ID;
22
+ }
23
+ const factsByModule = new WeakMap();
24
+ async function computeFacts(index, module) {
25
+ try {
26
+ const parsed = await ensureParsedContext(module.file, index.parsed?.get(fileIdentityKey(module.file)), index.languageExtensions);
27
+ if (parsed.sup.id !== TERRAFORM_LANGUAGE_ID)
28
+ return null;
29
+ return extractTerraformFacts(parsed.tree.rootNode);
30
+ }
31
+ catch (error) {
32
+ if (isNativeRequiredUnavailableError(error))
33
+ throw error;
34
+ return null;
35
+ }
36
+ }
37
+ /**
38
+ * Declarations and reference sites of one indexed Terraform file, or null when the file is not
39
+ * indexed or could not be parsed. Cached per indexed module, so a re-indexed file is re-read.
40
+ */
41
+ export function terraformFactsForFile(index, file) {
42
+ const module = index.byFile.get(fileIdentityKey(file));
43
+ if (!module)
44
+ return Promise.resolve(null);
45
+ let facts = factsByModule.get(module);
46
+ if (!facts) {
47
+ facts = computeFacts(index, module);
48
+ factsByModule.set(module, facts);
49
+ }
50
+ return facts;
51
+ }
52
+ /** Indexed Terraform files of the module (directory) that contains `file`, including `file`. */
53
+ export function terraformModuleFiles(index, file) {
54
+ return [...getCompilationUnitPeers(index, file).files]
55
+ .filter((peer) => isTerraformFile(index, peer))
56
+ .sort((left, right) => left.localeCompare(right));
57
+ }
58
+ const directoryLookups = new WeakMap();
59
+ /** One indexed Terraform file per module directory, for resolving a module call's directory. */
60
+ function indexedTerraformFileInDirectory(index, directory) {
61
+ let lookup = directoryLookups.get(index);
62
+ if (!lookup || lookup.source !== index.byFile || lookup.size !== index.byFile.size) {
63
+ const files = new Map();
64
+ for (const module of index.byFile.values()) {
65
+ if (!isTerraformFile(index, module.file))
66
+ continue;
67
+ const key = fileIdentityKey(path.dirname(module.file));
68
+ if (!files.has(key))
69
+ files.set(key, module.file);
70
+ }
71
+ lookup = { source: index.byFile, size: index.byFile.size, files };
72
+ directoryLookups.set(index, lookup);
73
+ }
74
+ return lookup.files.get(fileIdentityKey(directory));
75
+ }
76
+ /** Every indexed Terraform file, in path order. */
77
+ export function indexedTerraformFiles(index) {
78
+ return [...index.byFile.values()]
79
+ .map((module) => module.file)
80
+ .filter((file) => isTerraformFile(index, file))
81
+ .sort((left, right) => left.localeCompare(right));
82
+ }
83
+ function definitionForDeclaration(index, file, declaration) {
84
+ const module = index.byFile.get(fileIdentityKey(file));
85
+ return module?.locals.find((local) => local.localName === declaration.name && local.range.start.index === declaration.range.start.index);
86
+ }
87
+ function describe(query) {
88
+ return query.type ? `${query.kind} ${query.type}.${query.name}` : `${query.kind} ${query.name}`;
89
+ }
90
+ /** Declarations matching `query` in `files`, and the files whose facts could not be loaded. */
91
+ async function matchingDeclarations(index, files, query) {
92
+ const matches = [];
93
+ let unreadable = 0;
94
+ for (const file of files) {
95
+ const facts = await terraformFactsForFile(index, file);
96
+ if (!facts) {
97
+ unreadable += 1;
98
+ continue;
99
+ }
100
+ for (const declaration of facts.declarations) {
101
+ if (declaration.kind !== query.kind || declaration.name !== query.name)
102
+ continue;
103
+ if (query.type !== undefined && declaration.type !== query.type)
104
+ continue;
105
+ matches.push({ file, declaration });
106
+ }
107
+ }
108
+ return { matches, unreadable };
109
+ }
110
+ function indexedDefinitions(index, matches) {
111
+ return matches.flatMap((match) => {
112
+ const def = definitionForDeclaration(index, match.file, match.declaration);
113
+ return def ? [def] : [];
114
+ });
115
+ }
116
+ /** An unreadable module file may also declare the name, so no match is proven. */
117
+ function unreadableModuleFiles(query) {
118
+ return {
119
+ status: "not_found",
120
+ reason: `A Terraform file of the module could not be read, so ${describe(query)} is unproven`,
121
+ unproven: true,
122
+ };
123
+ }
124
+ function declaredMoreThanOnce(query) {
125
+ return {
126
+ status: "not_found",
127
+ reason: `Terraform ${describe(query)} is declared more than once in the module`,
128
+ unproven: true,
129
+ };
130
+ }
131
+ async function findDeclaration(index, files, query) {
132
+ const { matches, unreadable } = await matchingDeclarations(index, files, query);
133
+ if (unreadable)
134
+ return unreadableModuleFiles(query);
135
+ const [match, ...others] = matches;
136
+ if (!match)
137
+ return { status: "not_found", reason: `No Terraform ${describe(query)} declaration in the module` };
138
+ if (others.length)
139
+ return declaredMoreThanOnce(query);
140
+ const def = definitionForDeclaration(index, match.file, match.declaration);
141
+ if (!def)
142
+ return { status: "not_found", reason: `Terraform ${describe(query)} declaration is not indexed` };
143
+ return { status: "ok", file: match.file, declaration: match.declaration, def };
144
+ }
145
+ /** The directory a module call in `file`'s module sources, or a reason it has none. */
146
+ async function calledModuleDirectory(index, file, moduleName) {
147
+ const query = { kind: "module", name: moduleName };
148
+ const call = await findDeclaration(index, terraformModuleFiles(index, file), query);
149
+ if (call.status !== "ok")
150
+ return call;
151
+ const source = call.declaration.source;
152
+ if (source === undefined)
153
+ return { status: "not_found", reason: `Module ${moduleName} has no literal source` };
154
+ const directory = terraformLocalModuleDirectory(call.file, source);
155
+ if (!directory)
156
+ return { status: "not_found", reason: `Module source ${source} is not a local path` };
157
+ return { status: "ok", directory, instancing: call.declaration.instancing ?? "single" };
158
+ }
159
+ /** Indexed files of the module that a module call in `file` sources, or a reason it has none. */
160
+ async function calledModuleFiles(index, file, moduleName, selection) {
161
+ const called = await calledModuleDirectory(index, file, moduleName);
162
+ if (called.status !== "ok")
163
+ return called;
164
+ if (selection && !terraformOutputSelectionReadsOutput(selection, called.instancing)) {
165
+ return { status: "not_found", reason: `The indexes after module ${moduleName} do not select an output` };
166
+ }
167
+ const childFile = indexedTerraformFileInDirectory(index, called.directory);
168
+ if (!childFile)
169
+ return { status: "not_found", reason: `Module ${moduleName} source has no indexed Terraform files` };
170
+ return { status: "ok", files: terraformModuleFiles(index, childFile) };
171
+ }
172
+ function isModuleDirectoryOf(directory, def) {
173
+ return fileIdentityKey(directory) === fileIdentityKey(path.dirname(def.file));
174
+ }
175
+ /** True when `use` in `file` may read an output of the module whose files include `def`, unproven. */
176
+ export async function terraformModuleUseTargetsDefinition(index, file, use, def) {
177
+ const called = await calledModuleDirectory(index, file, use.module);
178
+ if (called.status !== "ok")
179
+ return called.unproven === true;
180
+ // A selection that fits the call names its output; the reference loop resolves that site.
181
+ if (use.selection && terraformOutputSelectionReadsOutput(use.selection, called.instancing))
182
+ return false;
183
+ return isModuleDirectoryOf(called.directory, def);
184
+ }
185
+ /** Resolves one reference target written in `file` to its indexed declaration. */
186
+ export async function resolveTerraformTarget(index, file, target) {
187
+ let files;
188
+ let query;
189
+ if (target.kind === "output" || target.kind === "input") {
190
+ const selection = target.kind === "output" ? target.selection : undefined;
191
+ const called = await calledModuleFiles(index, file, target.module, selection);
192
+ if (called.status !== "ok")
193
+ return called;
194
+ files = called.files;
195
+ query = { kind: target.kind === "output" ? "output" : "variable", name: target.name };
196
+ }
197
+ else {
198
+ files = terraformModuleFiles(index, file);
199
+ query = target;
200
+ }
201
+ const match = await findDeclaration(index, files, query);
202
+ return match.status === "ok" ? { status: "ok", def: match.def } : match;
203
+ }
204
+ /** The Terraform declaration that an indexed definition names, if any. */
205
+ export async function terraformDeclarationForDefinition(index, def) {
206
+ const facts = await terraformFactsForFile(index, def.file);
207
+ return facts?.declarations.find((declaration) => declaration.name === def.localName && declaration.range.start.index === def.range.start.index);
208
+ }
209
+ /**
210
+ * Declarations in the same module that renaming `def` to `newName` would collide with. Terraform
211
+ * keeps one namespace per declaration kind (and per type for resources and data sources), so only
212
+ * a same-kind declaration with that name conflicts.
213
+ */
214
+ export async function terraformRenameCollisions(index, def, newName) {
215
+ if (!isTerraformFile(index, def.file))
216
+ return [];
217
+ const declaration = await terraformDeclarationForDefinition(index, def);
218
+ if (!declaration)
219
+ return [];
220
+ const query = {
221
+ kind: declaration.kind,
222
+ ...(declaration.type === undefined ? {} : { type: declaration.type }),
223
+ name: newName,
224
+ };
225
+ const { matches } = await matchingDeclarations(index, terraformModuleFiles(index, def.file), query);
226
+ return indexedDefinitions(index, matches);
227
+ }
228
+ /**
229
+ * Reference sites to a data source `def` that a `check` block would capture after renaming it to
230
+ * `newName`: the check declares its own `data "<type>" "<newName>"`, which wins inside the check.
231
+ */
232
+ export async function terraformScopedDataCaptures(index, def, newName, references) {
233
+ if (!isTerraformFile(index, def.file))
234
+ return [];
235
+ const declaration = await terraformDeclarationForDefinition(index, def);
236
+ if (declaration?.kind !== "data")
237
+ return [];
238
+ const address = `${declaration.type}.${newName}`;
239
+ const captured = [];
240
+ for (const reference of references) {
241
+ const facts = await terraformFactsForFile(index, reference.file);
242
+ const start = reference.range.start.index ?? 0;
243
+ const inCapturingCheck = facts?.checkScopes.some((scope) => (scope.range.start.index ?? 0) <= start &&
244
+ start < (scope.range.end.index ?? 0) &&
245
+ scope.dataSources.includes(address));
246
+ if (inCapturingCheck)
247
+ captured.push(reference);
248
+ }
249
+ return captured;
250
+ }
251
+ /** Input variable names Terraform reserves because module calls use them as meta-arguments. */
252
+ const RESERVED_INPUT_NAMES = new Set([
253
+ "source",
254
+ "version",
255
+ "providers",
256
+ "count",
257
+ "for_each",
258
+ "lifecycle",
259
+ "depends_on",
260
+ "locals",
261
+ ]);
262
+ /** True when renaming `def` to `newName` would give an input variable a reserved name. */
263
+ export async function isTerraformReservedRename(index, def, newName) {
264
+ if (!RESERVED_INPUT_NAMES.has(newName) || !isTerraformFile(index, def.file))
265
+ return false;
266
+ return (await terraformDeclarationForDefinition(index, def))?.kind === "variable";
267
+ }
268
+ /**
269
+ * Files outside the declaring module that can reference a declaration: every file of each module
270
+ * that calls the declaring directory through a local source. Call arguments name input variables,
271
+ * and `module.<name>.<output>` can appear in any file of the calling module. `addressFiles` lists
272
+ * every file that holds a module resource address, which can name nested calls at any depth.
273
+ * `unavailable` lists files whose facts could not be loaded, so what they name is unknown.
274
+ */
275
+ export async function terraformModuleCallerFiles(index, def) {
276
+ const directoryKey = fileIdentityKey(path.dirname(def.file));
277
+ const callers = new Map();
278
+ const addressFiles = [];
279
+ const unavailable = [];
280
+ for (const file of indexedTerraformFiles(index)) {
281
+ const facts = await terraformFactsForFile(index, file);
282
+ if (!facts) {
283
+ unavailable.push(file);
284
+ continue;
285
+ }
286
+ if (facts.moduleObjectUses.some((use) => use.addressChain))
287
+ addressFiles.push(file);
288
+ const callsDirectory = facts.declarations.some((declaration) => {
289
+ if (declaration.kind !== "module" || declaration.source === undefined)
290
+ return false;
291
+ const directory = terraformLocalModuleDirectory(file, declaration.source);
292
+ return directory !== null && fileIdentityKey(directory) === directoryKey;
293
+ });
294
+ if (!callsDirectory)
295
+ continue;
296
+ for (const peer of terraformModuleFiles(index, file))
297
+ callers.set(fileIdentityKey(peer), peer);
298
+ }
299
+ return { files: [...callers.values()], addressFiles, unavailable };
300
+ }
301
+ /**
302
+ * True when a module resource address written in `file` may name `def`: a nested module call in
303
+ * its chain, or a resource or data source of the last called module. Each chain segment resolves
304
+ * in the module the previous segment calls; an unproven segment may name anything.
305
+ */
306
+ export async function terraformAddressMayName(index, file, chain, def, kind) {
307
+ let from = file;
308
+ for (const [position, moduleName] of chain.entries()) {
309
+ if (!from)
310
+ return false;
311
+ const called = await calledModuleDirectory(index, from, moduleName);
312
+ if (called.status !== "ok")
313
+ return called.unproven === true;
314
+ const nextModule = chain[position + 1];
315
+ if (nextModule === undefined) {
316
+ return (kind === "resource" || kind === "data") && isModuleDirectoryOf(called.directory, def);
317
+ }
318
+ if (kind === "module" && nextModule === def.localName && isModuleDirectoryOf(called.directory, def))
319
+ return true;
320
+ from = indexedTerraformFileInDirectory(index, called.directory);
321
+ }
322
+ return false;
323
+ }
324
+ //# sourceMappingURL=resolution.js.map