@lzehrung/codegraph 2.3.31 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (596) hide show
  1. package/README.md +33 -141
  2. package/codegraph-skill/codegraph/SKILL.md +8 -6
  3. package/dist/agent/artifact.d.ts +2 -0
  4. package/dist/agent/artifact.d.ts.map +1 -1
  5. package/dist/agent/artifact.js.map +1 -1
  6. package/dist/agent/call-hierarchy.js +2 -4
  7. package/dist/agent/call-hierarchy.js.map +1 -1
  8. package/dist/agent/explore.d.ts +1 -1
  9. package/dist/agent/explore.d.ts.map +1 -1
  10. package/dist/agent/explore.js +3 -2
  11. package/dist/agent/explore.js.map +1 -1
  12. package/dist/agent/refactor-plan.js +2 -4
  13. package/dist/agent/refactor-plan.js.map +1 -1
  14. package/dist/agent/rename-preview.d.ts.map +1 -1
  15. package/dist/agent/rename-preview.js +4 -3
  16. package/dist/agent/rename-preview.js.map +1 -1
  17. package/dist/agent/search.d.ts.map +1 -1
  18. package/dist/agent/search.js +5 -3
  19. package/dist/agent/search.js.map +1 -1
  20. package/dist/agent/semantic-symbols.d.ts.map +1 -1
  21. package/dist/agent/semantic-symbols.js +2 -3
  22. package/dist/agent/semantic-symbols.js.map +1 -1
  23. package/dist/agent/session.d.ts +3 -0
  24. package/dist/agent/session.d.ts.map +1 -1
  25. package/dist/agent/session.js +10 -2
  26. package/dist/agent/session.js.map +1 -1
  27. package/dist/agent/type-hierarchy.js +2 -4
  28. package/dist/agent/type-hierarchy.js.map +1 -1
  29. package/dist/agent/workspace-symbols.d.ts.map +1 -1
  30. package/dist/agent/workspace-symbols.js +2 -3
  31. package/dist/agent/workspace-symbols.js.map +1 -1
  32. package/dist/agent-tools.d.ts +0 -4
  33. package/dist/agent-tools.d.ts.map +1 -1
  34. package/dist/agent-tools.js +3 -6
  35. package/dist/agent-tools.js.map +1 -1
  36. package/dist/analysis-summary.d.ts +8 -4
  37. package/dist/analysis-summary.d.ts.map +1 -1
  38. package/dist/analysis-summary.js +15 -66
  39. package/dist/analysis-summary.js.map +1 -1
  40. package/dist/bin/cli.js +51145 -41770
  41. package/dist/bin/query-index-worker.js +122 -82
  42. package/dist/cli/affected.d.ts.map +1 -1
  43. package/dist/cli/affected.js +4 -1
  44. package/dist/cli/affected.js.map +1 -1
  45. package/dist/cli/command-catalog.js +1 -1
  46. package/dist/cli/command-catalog.js.map +1 -1
  47. package/dist/cli/command-table.d.ts.map +1 -1
  48. package/dist/cli/command-table.js +9 -17
  49. package/dist/cli/command-table.js.map +1 -1
  50. package/dist/cli/context.js +10 -10
  51. package/dist/cli/context.js.map +1 -1
  52. package/dist/cli/drift.d.ts +0 -2
  53. package/dist/cli/drift.d.ts.map +1 -1
  54. package/dist/cli/drift.js +0 -1
  55. package/dist/cli/drift.js.map +1 -1
  56. package/dist/cli/graph-delta.d.ts +0 -2
  57. package/dist/cli/graph-delta.d.ts.map +1 -1
  58. package/dist/cli/graph-delta.js +0 -4
  59. package/dist/cli/graph-delta.js.map +1 -1
  60. package/dist/cli/graph-queries.d.ts.map +1 -1
  61. package/dist/cli/graph-queries.js +27 -1
  62. package/dist/cli/graph-queries.js.map +1 -1
  63. package/dist/cli/graph.d.ts +0 -3
  64. package/dist/cli/graph.d.ts.map +1 -1
  65. package/dist/cli/graph.js +4 -14
  66. package/dist/cli/graph.js.map +1 -1
  67. package/dist/cli/help.d.ts +34 -34
  68. package/dist/cli/help.d.ts.map +1 -1
  69. package/dist/cli/help.js +9 -14
  70. package/dist/cli/help.js.map +1 -1
  71. package/dist/cli/impact.d.ts +0 -2
  72. package/dist/cli/impact.d.ts.map +1 -1
  73. package/dist/cli/impact.js +0 -1
  74. package/dist/cli/impact.js.map +1 -1
  75. package/dist/cli/index.d.ts +0 -2
  76. package/dist/cli/index.d.ts.map +1 -1
  77. package/dist/cli/index.js +5 -6
  78. package/dist/cli/index.js.map +1 -1
  79. package/dist/cli/inspect.d.ts +0 -2
  80. package/dist/cli/inspect.d.ts.map +1 -1
  81. package/dist/cli/inspect.js +5 -8
  82. package/dist/cli/inspect.js.map +1 -1
  83. package/dist/cli/invocation-context.d.ts +0 -3
  84. package/dist/cli/invocation-context.d.ts.map +1 -1
  85. package/dist/cli/invocation-context.js +4 -16
  86. package/dist/cli/invocation-context.js.map +1 -1
  87. package/dist/cli/navigation.d.ts +0 -2
  88. package/dist/cli/navigation.d.ts.map +1 -1
  89. package/dist/cli/navigation.js +0 -1
  90. package/dist/cli/navigation.js.map +1 -1
  91. package/dist/cli/options.d.ts.map +1 -1
  92. package/dist/cli/options.js +4 -14
  93. package/dist/cli/options.js.map +1 -1
  94. package/dist/cli/review.d.ts +0 -2
  95. package/dist/cli/review.d.ts.map +1 -1
  96. package/dist/cli/review.js +0 -5
  97. package/dist/cli/review.js.map +1 -1
  98. package/dist/cli/root-policy.d.ts +0 -2
  99. package/dist/cli/root-policy.d.ts.map +1 -1
  100. package/dist/cli/root-policy.js +0 -8
  101. package/dist/cli/root-policy.js.map +1 -1
  102. package/dist/cli/server.d.ts.map +1 -1
  103. package/dist/cli/server.js +0 -2
  104. package/dist/cli/server.js.map +1 -1
  105. package/dist/drift/artifact.d.ts.map +1 -1
  106. package/dist/drift/artifact.js +15 -18
  107. package/dist/drift/artifact.js.map +1 -1
  108. package/dist/drift/compare.js +1 -1
  109. package/dist/drift/compare.js.map +1 -1
  110. package/dist/drift/git.d.ts.map +1 -1
  111. package/dist/drift/git.js +0 -1
  112. package/dist/drift/git.js.map +1 -1
  113. package/dist/drift/snapshot.d.ts.map +1 -1
  114. package/dist/drift/snapshot.js +5 -7
  115. package/dist/drift/snapshot.js.map +1 -1
  116. package/dist/drift/types.d.ts +2 -2
  117. package/dist/drift/types.d.ts.map +1 -1
  118. package/dist/drift/types.js.map +1 -1
  119. package/dist/duplicates/unit-cache.d.ts +0 -1
  120. package/dist/duplicates/unit-cache.d.ts.map +1 -1
  121. package/dist/duplicates/unit-cache.js +3 -11
  122. package/dist/duplicates/unit-cache.js.map +1 -1
  123. package/dist/duplicates/units.d.ts +5 -5
  124. package/dist/duplicates/units.d.ts.map +1 -1
  125. package/dist/duplicates/units.js +25 -88
  126. package/dist/duplicates/units.js.map +1 -1
  127. package/dist/graph-builder.d.ts +0 -6
  128. package/dist/graph-builder.d.ts.map +1 -1
  129. package/dist/graph-builder.js +6 -11
  130. package/dist/graph-builder.js.map +1 -1
  131. package/dist/graph-edge-collector.d.ts +4 -6
  132. package/dist/graph-edge-collector.d.ts.map +1 -1
  133. package/dist/graph-edge-collector.js +31 -26
  134. package/dist/graph-edge-collector.js.map +1 -1
  135. package/dist/graphs/angularjs.d.ts.map +1 -1
  136. package/dist/graphs/angularjs.js +2 -1
  137. package/dist/graphs/angularjs.js.map +1 -1
  138. package/dist/graphs/edge-resolution.d.ts +4 -1
  139. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  140. package/dist/graphs/edge-resolution.js +24 -76
  141. package/dist/graphs/edge-resolution.js.map +1 -1
  142. package/dist/graphs/specifiers.d.ts +4 -13
  143. package/dist/graphs/specifiers.d.ts.map +1 -1
  144. package/dist/graphs/specifiers.js +80 -173
  145. package/dist/graphs/specifiers.js.map +1 -1
  146. package/dist/graphs/symbol-graph-detailed/ast.d.ts +20 -0
  147. package/dist/graphs/symbol-graph-detailed/ast.d.ts.map +1 -1
  148. package/dist/graphs/symbol-graph-detailed/ast.js +154 -15
  149. package/dist/graphs/symbol-graph-detailed/ast.js.map +1 -1
  150. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts +60 -8
  151. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
  152. package/dist/graphs/symbol-graph-detailed/edge-passes.js +997 -168
  153. package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
  154. package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts +2 -1
  155. package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts.map +1 -1
  156. package/dist/graphs/symbol-graph-detailed/import-aliases.js +150 -7
  157. package/dist/graphs/symbol-graph-detailed/import-aliases.js.map +1 -1
  158. package/dist/graphs/symbol-graph-detailed/member-chains.d.ts +1 -0
  159. package/dist/graphs/symbol-graph-detailed/member-chains.d.ts.map +1 -1
  160. package/dist/graphs/symbol-graph-detailed/member-chains.js +3 -1
  161. package/dist/graphs/symbol-graph-detailed/member-chains.js.map +1 -1
  162. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +141 -25
  163. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
  164. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +1015 -166
  165. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  166. package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
  167. package/dist/graphs/symbol-graph-detailed.js +449 -46
  168. package/dist/graphs/symbol-graph-detailed.js.map +1 -1
  169. package/dist/graphs/symbol-graph.d.ts +2 -0
  170. package/dist/graphs/symbol-graph.d.ts.map +1 -1
  171. package/dist/graphs/symbol-graph.js +34 -16
  172. package/dist/graphs/symbol-graph.js.map +1 -1
  173. package/dist/graphs/types.d.ts +0 -4
  174. package/dist/graphs/types.d.ts.map +1 -1
  175. package/dist/graphs.d.ts +1 -1
  176. package/dist/graphs.d.ts.map +1 -1
  177. package/dist/impact/call-compatibility/providers/index.d.ts +4 -4
  178. package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
  179. package/dist/impact/call-compatibility/providers/index.js +6 -6
  180. package/dist/impact/call-compatibility/providers/index.js.map +1 -1
  181. package/dist/impact/call-compatibility/providers/types.d.ts +2 -0
  182. package/dist/impact/call-compatibility/providers/types.d.ts.map +1 -1
  183. package/dist/impact/call-compatibility/types.d.ts +6 -0
  184. package/dist/impact/call-compatibility/types.d.ts.map +1 -1
  185. package/dist/impact/call-compatibility.d.ts.map +1 -1
  186. package/dist/impact/call-compatibility.js +316 -526
  187. package/dist/impact/call-compatibility.js.map +1 -1
  188. package/dist/impact/map.js +1 -0
  189. package/dist/impact/map.js.map +1 -1
  190. package/dist/impact/reference-cache.d.ts.map +1 -1
  191. package/dist/impact/reference-cache.js +2 -2
  192. package/dist/impact/reference-cache.js.map +1 -1
  193. package/dist/index.d.ts +2 -2
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +1 -1
  196. package/dist/index.js.map +1 -1
  197. package/dist/indexer/ambiguous-resolution.d.ts +11 -0
  198. package/dist/indexer/ambiguous-resolution.d.ts.map +1 -0
  199. package/dist/indexer/ambiguous-resolution.js +19 -0
  200. package/dist/indexer/ambiguous-resolution.js.map +1 -0
  201. package/dist/indexer/build-cache/module-cache.d.ts +39 -1
  202. package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
  203. package/dist/indexer/build-cache/module-cache.js +218 -21
  204. package/dist/indexer/build-cache/module-cache.js.map +1 -1
  205. package/dist/indexer/build-cache/options.d.ts +30 -44
  206. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  207. package/dist/indexer/build-cache/options.js +32 -71
  208. package/dist/indexer/build-cache/options.js.map +1 -1
  209. package/dist/indexer/build-cache/project-snapshot.d.ts +3 -3
  210. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  211. package/dist/indexer/build-cache/project-snapshot.js +164 -84
  212. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  213. package/dist/indexer/build-cache/reports.d.ts +0 -2
  214. package/dist/indexer/build-cache/reports.d.ts.map +1 -1
  215. package/dist/indexer/build-cache/reports.js +0 -97
  216. package/dist/indexer/build-cache/reports.js.map +1 -1
  217. package/dist/indexer/build-cache/resolver-environment.d.ts.map +1 -1
  218. package/dist/indexer/build-cache/resolver-environment.js +32 -2
  219. package/dist/indexer/build-cache/resolver-environment.js.map +1 -1
  220. package/dist/indexer/build-cache.d.ts +2 -2
  221. package/dist/indexer/build-cache.d.ts.map +1 -1
  222. package/dist/indexer/build-cache.js +2 -2
  223. package/dist/indexer/build-cache.js.map +1 -1
  224. package/dist/indexer/build-index.d.ts.map +1 -1
  225. package/dist/indexer/build-index.js +656 -71
  226. package/dist/indexer/build-index.js.map +1 -1
  227. package/dist/indexer/build-workers.d.ts.map +1 -1
  228. package/dist/indexer/build-workers.js +9 -9
  229. package/dist/indexer/build-workers.js.map +1 -1
  230. package/dist/indexer/call-hierarchy.js +1 -1
  231. package/dist/indexer/call-hierarchy.js.map +1 -1
  232. package/dist/indexer/callable-identity.d.ts +24 -0
  233. package/dist/indexer/callable-identity.d.ts.map +1 -0
  234. package/dist/indexer/callable-identity.js +111 -0
  235. package/dist/indexer/callable-identity.js.map +1 -0
  236. package/dist/indexer/compilation-units.d.ts +103 -0
  237. package/dist/indexer/compilation-units.d.ts.map +1 -0
  238. package/dist/indexer/compilation-units.js +607 -0
  239. package/dist/indexer/compilation-units.js.map +1 -0
  240. package/dist/indexer/cpp-callables.d.ts +25 -0
  241. package/dist/indexer/cpp-callables.d.ts.map +1 -0
  242. package/dist/indexer/cpp-callables.js +562 -0
  243. package/dist/indexer/cpp-callables.js.map +1 -0
  244. package/dist/indexer/declaration-visibility.d.ts +43 -2
  245. package/dist/indexer/declaration-visibility.d.ts.map +1 -1
  246. package/dist/indexer/declaration-visibility.js +158 -2
  247. package/dist/indexer/declaration-visibility.js.map +1 -1
  248. package/dist/indexer/expand-star-imports.d.ts +6 -1
  249. package/dist/indexer/expand-star-imports.d.ts.map +1 -1
  250. package/dist/indexer/expand-star-imports.js +131 -37
  251. package/dist/indexer/expand-star-imports.js.map +1 -1
  252. package/dist/indexer/finalize.d.ts.map +1 -1
  253. package/dist/indexer/finalize.js +0 -1
  254. package/dist/indexer/finalize.js.map +1 -1
  255. package/dist/indexer/import-resolution-tables.d.ts +72 -0
  256. package/dist/indexer/import-resolution-tables.d.ts.map +1 -0
  257. package/dist/indexer/import-resolution-tables.js +137 -0
  258. package/dist/indexer/import-resolution-tables.js.map +1 -0
  259. package/dist/indexer/import-types.d.ts +54 -0
  260. package/dist/indexer/import-types.d.ts.map +1 -1
  261. package/dist/indexer/import-types.js +24 -1
  262. package/dist/indexer/import-types.js.map +1 -1
  263. package/dist/indexer/imports/context.d.ts +16 -1
  264. package/dist/indexer/imports/context.d.ts.map +1 -1
  265. package/dist/indexer/imports/import-binding-tables.d.ts +13 -1
  266. package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
  267. package/dist/indexer/imports/import-binding-tables.js +149 -30
  268. package/dist/indexer/imports/import-binding-tables.js.map +1 -1
  269. package/dist/indexer/imports/js-text-imports.js +4 -4
  270. package/dist/indexer/imports/js-text-imports.js.map +1 -1
  271. package/dist/indexer/imports/native-captures.d.ts.map +1 -1
  272. package/dist/indexer/imports/native-captures.js +24 -6
  273. package/dist/indexer/imports/native-captures.js.map +1 -1
  274. package/dist/indexer/imports/python.d.ts +10 -2
  275. package/dist/indexer/imports/python.d.ts.map +1 -1
  276. package/dist/indexer/imports/python.js +128 -112
  277. package/dist/indexer/imports/python.js.map +1 -1
  278. package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -1
  279. package/dist/indexer/imports/text-import-extractors.js +68 -19
  280. package/dist/indexer/imports/text-import-extractors.js.map +1 -1
  281. package/dist/indexer/imports.d.ts +3 -4
  282. package/dist/indexer/imports.d.ts.map +1 -1
  283. package/dist/indexer/imports.js +116 -72
  284. package/dist/indexer/imports.js.map +1 -1
  285. package/dist/indexer/incremental-plan.d.ts +33 -0
  286. package/dist/indexer/incremental-plan.d.ts.map +1 -1
  287. package/dist/indexer/incremental-plan.js +203 -1
  288. package/dist/indexer/incremental-plan.js.map +1 -1
  289. package/dist/indexer/locals-and-exports.d.ts +3 -2
  290. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  291. package/dist/indexer/locals-and-exports.js +659 -78
  292. package/dist/indexer/locals-and-exports.js.map +1 -1
  293. package/dist/indexer/member-selection.d.ts +46 -0
  294. package/dist/indexer/member-selection.d.ts.map +1 -0
  295. package/dist/indexer/member-selection.js +169 -0
  296. package/dist/indexer/member-selection.js.map +1 -0
  297. package/dist/indexer/name-lookup-policies/c-family.d.ts +7 -0
  298. package/dist/indexer/name-lookup-policies/c-family.d.ts.map +1 -0
  299. package/dist/indexer/name-lookup-policies/c-family.js +137 -0
  300. package/dist/indexer/name-lookup-policies/c-family.js.map +1 -0
  301. package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts +11 -0
  302. package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts.map +1 -0
  303. package/dist/indexer/name-lookup-policies/csharp-using-static.js +136 -0
  304. package/dist/indexer/name-lookup-policies/csharp-using-static.js.map +1 -0
  305. package/dist/indexer/name-lookup-policies/implicit-self.d.ts +10 -0
  306. package/dist/indexer/name-lookup-policies/implicit-self.d.ts.map +1 -0
  307. package/dist/indexer/name-lookup-policies/implicit-self.js +119 -0
  308. package/dist/indexer/name-lookup-policies/implicit-self.js.map +1 -0
  309. package/dist/indexer/name-lookup-policies/index.d.ts +3 -0
  310. package/dist/indexer/name-lookup-policies/index.d.ts.map +1 -0
  311. package/dist/indexer/name-lookup-policies/index.js +132 -0
  312. package/dist/indexer/name-lookup-policies/index.js.map +1 -0
  313. package/dist/indexer/name-lookup-policies/php.d.ts +3 -0
  314. package/dist/indexer/name-lookup-policies/php.d.ts.map +1 -0
  315. package/dist/indexer/name-lookup-policies/php.js +82 -0
  316. package/dist/indexer/name-lookup-policies/php.js.map +1 -0
  317. package/dist/indexer/name-resolution-types.d.ts +101 -0
  318. package/dist/indexer/name-resolution-types.d.ts.map +1 -0
  319. package/dist/indexer/name-resolution-types.js +2 -0
  320. package/dist/indexer/name-resolution-types.js.map +1 -0
  321. package/dist/indexer/name-resolution.d.ts +57 -0
  322. package/dist/indexer/name-resolution.d.ts.map +1 -0
  323. package/dist/indexer/name-resolution.js +204 -0
  324. package/dist/indexer/name-resolution.js.map +1 -0
  325. package/dist/indexer/navigation-cpp.d.ts +58 -0
  326. package/dist/indexer/navigation-cpp.d.ts.map +1 -0
  327. package/dist/indexer/navigation-cpp.js +935 -0
  328. package/dist/indexer/navigation-cpp.js.map +1 -0
  329. package/dist/indexer/navigation-goto.d.ts +115 -3
  330. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  331. package/dist/indexer/navigation-goto.js +2469 -190
  332. package/dist/indexer/navigation-goto.js.map +1 -1
  333. package/dist/indexer/navigation-local.d.ts +21 -2
  334. package/dist/indexer/navigation-local.d.ts.map +1 -1
  335. package/dist/indexer/navigation-local.js +520 -63
  336. package/dist/indexer/navigation-local.js.map +1 -1
  337. package/dist/indexer/navigation-php.d.ts +66 -0
  338. package/dist/indexer/navigation-php.d.ts.map +1 -1
  339. package/dist/indexer/navigation-php.js +287 -4
  340. package/dist/indexer/navigation-php.js.map +1 -1
  341. package/dist/indexer/navigation-provenance.d.ts +1 -1
  342. package/dist/indexer/navigation-provenance.d.ts.map +1 -1
  343. package/dist/indexer/navigation-provenance.js +4 -13
  344. package/dist/indexer/navigation-provenance.js.map +1 -1
  345. package/dist/indexer/navigation-references.d.ts +73 -6
  346. package/dist/indexer/navigation-references.d.ts.map +1 -1
  347. package/dist/indexer/navigation-references.js +661 -67
  348. package/dist/indexer/navigation-references.js.map +1 -1
  349. package/dist/indexer/navigation-resolve.d.ts +46 -2
  350. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  351. package/dist/indexer/navigation-resolve.js +599 -193
  352. package/dist/indexer/navigation-resolve.js.map +1 -1
  353. package/dist/indexer/navigation.d.ts +29 -2
  354. package/dist/indexer/navigation.d.ts.map +1 -1
  355. package/dist/indexer/navigation.js +1092 -153
  356. package/dist/indexer/navigation.js.map +1 -1
  357. package/dist/indexer/parse-context.d.ts +2 -3
  358. package/dist/indexer/parse-context.d.ts.map +1 -1
  359. package/dist/indexer/parse-context.js +8 -21
  360. package/dist/indexer/parse-context.js.map +1 -1
  361. package/dist/indexer/php-namespace-symbols.d.ts +66 -0
  362. package/dist/indexer/php-namespace-symbols.d.ts.map +1 -0
  363. package/dist/indexer/php-namespace-symbols.js +342 -0
  364. package/dist/indexer/php-namespace-symbols.js.map +1 -0
  365. package/dist/indexer/reference-candidates.d.ts.map +1 -1
  366. package/dist/indexer/reference-candidates.js +13 -7
  367. package/dist/indexer/reference-candidates.js.map +1 -1
  368. package/dist/indexer/reference-context.d.ts +2 -0
  369. package/dist/indexer/reference-context.d.ts.map +1 -1
  370. package/dist/indexer/reference-context.js +4 -0
  371. package/dist/indexer/reference-context.js.map +1 -1
  372. package/dist/indexer/scope-nodes.d.ts +92 -13
  373. package/dist/indexer/scope-nodes.d.ts.map +1 -1
  374. package/dist/indexer/scope-nodes.js +212 -20
  375. package/dist/indexer/scope-nodes.js.map +1 -1
  376. package/dist/indexer/scope-types.d.ts +29 -1
  377. package/dist/indexer/scope-types.d.ts.map +1 -1
  378. package/dist/indexer/scope.d.ts +2 -3
  379. package/dist/indexer/scope.d.ts.map +1 -1
  380. package/dist/indexer/scope.js +968 -47
  381. package/dist/indexer/scope.js.map +1 -1
  382. package/dist/indexer/shared-owner-identity.d.ts +53 -0
  383. package/dist/indexer/shared-owner-identity.d.ts.map +1 -0
  384. package/dist/indexer/shared-owner-identity.js +460 -0
  385. package/dist/indexer/shared-owner-identity.js.map +1 -0
  386. package/dist/indexer/shared.d.ts +1 -1
  387. package/dist/indexer/shared.d.ts.map +1 -1
  388. package/dist/indexer/shared.js +1 -1
  389. package/dist/indexer/shared.js.map +1 -1
  390. package/dist/indexer/star-import-precedence.d.ts +113 -0
  391. package/dist/indexer/star-import-precedence.d.ts.map +1 -0
  392. package/dist/indexer/star-import-precedence.js +402 -0
  393. package/dist/indexer/star-import-precedence.js.map +1 -0
  394. package/dist/indexer/symbols.d.ts +3 -1
  395. package/dist/indexer/symbols.d.ts.map +1 -1
  396. package/dist/indexer/symbols.js +58 -18
  397. package/dist/indexer/symbols.js.map +1 -1
  398. package/dist/indexer/ts-callables.d.ts +42 -0
  399. package/dist/indexer/ts-callables.d.ts.map +1 -0
  400. package/dist/indexer/ts-callables.js +233 -0
  401. package/dist/indexer/ts-callables.js.map +1 -0
  402. package/dist/indexer/types.d.ts +41 -26
  403. package/dist/indexer/types.d.ts.map +1 -1
  404. package/dist/indexer/unused-exports.d.ts +13 -0
  405. package/dist/indexer/unused-exports.d.ts.map +1 -0
  406. package/dist/indexer/unused-exports.js +159 -0
  407. package/dist/indexer/unused-exports.js.map +1 -0
  408. package/dist/indexer/workspace-symbols.d.ts.map +1 -1
  409. package/dist/indexer/workspace-symbols.js +3 -2
  410. package/dist/indexer/workspace-symbols.js.map +1 -1
  411. package/dist/indexer.d.ts +3 -8
  412. package/dist/indexer.d.ts.map +1 -1
  413. package/dist/indexer.js +1 -1
  414. package/dist/indexer.js.map +1 -1
  415. package/dist/languages/callable-arity.d.ts +223 -0
  416. package/dist/languages/callable-arity.d.ts.map +1 -0
  417. package/dist/languages/callable-arity.js +1199 -0
  418. package/dist/languages/callable-arity.js.map +1 -0
  419. package/dist/languages/definitions/c-family.d.ts.map +1 -1
  420. package/dist/languages/definitions/c-family.js +30 -1
  421. package/dist/languages/definitions/c-family.js.map +1 -1
  422. package/dist/languages/definitions/c.d.ts +4 -0
  423. package/dist/languages/definitions/c.d.ts.map +1 -1
  424. package/dist/languages/definitions/c.js +19 -0
  425. package/dist/languages/definitions/c.js.map +1 -1
  426. package/dist/languages/definitions/cpp.d.ts.map +1 -1
  427. package/dist/languages/definitions/cpp.js +12 -0
  428. package/dist/languages/definitions/cpp.js.map +1 -1
  429. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  430. package/dist/languages/definitions/csharp.js +2 -8
  431. package/dist/languages/definitions/csharp.js.map +1 -1
  432. package/dist/languages/definitions/go.d.ts.map +1 -1
  433. package/dist/languages/definitions/go.js +3 -0
  434. package/dist/languages/definitions/go.js.map +1 -1
  435. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  436. package/dist/languages/definitions/javascript.js +10 -1
  437. package/dist/languages/definitions/javascript.js.map +1 -1
  438. package/dist/languages/definitions/js-family.d.ts +1 -1
  439. package/dist/languages/definitions/js-family.d.ts.map +1 -1
  440. package/dist/languages/definitions/js-family.js +7 -1
  441. package/dist/languages/definitions/js-family.js.map +1 -1
  442. package/dist/languages/definitions/php.d.ts.map +1 -1
  443. package/dist/languages/definitions/php.js +5 -1
  444. package/dist/languages/definitions/php.js.map +1 -1
  445. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  446. package/dist/languages/definitions/typescript.js +8 -1
  447. package/dist/languages/definitions/typescript.js.map +1 -1
  448. package/dist/languages/definitions/zig.d.ts.map +1 -1
  449. package/dist/languages/definitions/zig.js +8 -0
  450. package/dist/languages/definitions/zig.js.map +1 -1
  451. package/dist/lifecycle/manifest.d.ts.map +1 -1
  452. package/dist/lifecycle/manifest.js +0 -1
  453. package/dist/lifecycle/manifest.js.map +1 -1
  454. package/dist/mcp/handlers.js +14 -7
  455. package/dist/mcp/handlers.js.map +1 -1
  456. package/dist/native/byte-index.d.ts +6 -0
  457. package/dist/native/byte-index.d.ts.map +1 -1
  458. package/dist/native/byte-index.js +11 -6
  459. package/dist/native/byte-index.js.map +1 -1
  460. package/dist/native/contracts.d.ts +2 -3
  461. package/dist/native/contracts.d.ts.map +1 -1
  462. package/dist/native/execution.d.ts +9 -9
  463. package/dist/native/execution.d.ts.map +1 -1
  464. package/dist/native/execution.js +37 -77
  465. package/dist/native/execution.js.map +1 -1
  466. package/dist/native/js-bridge.d.ts +2 -15
  467. package/dist/native/js-bridge.d.ts.map +1 -1
  468. package/dist/native/js-bridge.js +2 -15
  469. package/dist/native/js-bridge.js.map +1 -1
  470. package/dist/native/query-results.js +2 -2
  471. package/dist/native/query-results.js.map +1 -1
  472. package/dist/native/runtime.d.ts +12 -12
  473. package/dist/native/runtime.d.ts.map +1 -1
  474. package/dist/native/runtime.js +24 -69
  475. package/dist/native/runtime.js.map +1 -1
  476. package/dist/native/tree-sitter-native.d.ts +3 -3
  477. package/dist/native/tree-sitter-native.d.ts.map +1 -1
  478. package/dist/native/tree-sitter-native.js +2 -2
  479. package/dist/native/tree-sitter-native.js.map +1 -1
  480. package/dist/presets.d.ts.map +1 -1
  481. package/dist/presets.js +0 -4
  482. package/dist/presets.js.map +1 -1
  483. package/dist/review/candidates.d.ts.map +1 -1
  484. package/dist/review/candidates.js +1 -1
  485. package/dist/review/candidates.js.map +1 -1
  486. package/dist/review/deleted.d.ts +3 -3
  487. package/dist/review/deleted.d.ts.map +1 -1
  488. package/dist/review/deleted.js +82 -32
  489. package/dist/review/deleted.js.map +1 -1
  490. package/dist/review/report.d.ts +1 -0
  491. package/dist/review/report.d.ts.map +1 -1
  492. package/dist/review/report.js +1 -1
  493. package/dist/review/report.js.map +1 -1
  494. package/dist/review.d.ts.map +1 -1
  495. package/dist/review.js +3 -20
  496. package/dist/review.js.map +1 -1
  497. package/dist/session.d.ts.map +1 -1
  498. package/dist/session.js +0 -5
  499. package/dist/session.js.map +1 -1
  500. package/dist/sql/navigation.d.ts.map +1 -1
  501. package/dist/sql/navigation.js +2 -1
  502. package/dist/sql/navigation.js.map +1 -1
  503. package/dist/sql/source-graph.d.ts.map +1 -1
  504. package/dist/sql/source-graph.js +2 -2
  505. package/dist/sql/source-graph.js.map +1 -1
  506. package/dist/sqlite/schema.d.ts +1 -1
  507. package/dist/sqlite/schema.d.ts.map +1 -1
  508. package/dist/sqlite/schema.js +8 -2
  509. package/dist/sqlite/schema.js.map +1 -1
  510. package/dist/sqlite/write.js +2 -2
  511. package/dist/sqlite/write.js.map +1 -1
  512. package/dist/types.d.ts +2 -0
  513. package/dist/types.d.ts.map +1 -1
  514. package/dist/util/bloom-filter.d.ts +8 -1
  515. package/dist/util/bloom-filter.d.ts.map +1 -1
  516. package/dist/util/bloom-filter.js +15 -2
  517. package/dist/util/bloom-filter.js.map +1 -1
  518. package/dist/util/glob.d.ts +32 -0
  519. package/dist/util/glob.d.ts.map +1 -0
  520. package/dist/util/glob.js +137 -0
  521. package/dist/util/glob.js.map +1 -0
  522. package/dist/util/graph-edges.d.ts +19 -1
  523. package/dist/util/graph-edges.d.ts.map +1 -1
  524. package/dist/util/graph-edges.js +30 -4
  525. package/dist/util/graph-edges.js.map +1 -1
  526. package/dist/util/identifiers.d.ts +15 -0
  527. package/dist/util/identifiers.d.ts.map +1 -1
  528. package/dist/util/identifiers.js +35 -0
  529. package/dist/util/identifiers.js.map +1 -1
  530. package/dist/util/member-access-tables.d.ts +61 -4
  531. package/dist/util/member-access-tables.d.ts.map +1 -1
  532. package/dist/util/member-access-tables.js +139 -19
  533. package/dist/util/member-access-tables.js.map +1 -1
  534. package/dist/util/member-access.d.ts +17 -0
  535. package/dist/util/member-access.d.ts.map +1 -1
  536. package/dist/util/member-access.js +98 -3
  537. package/dist/util/member-access.js.map +1 -1
  538. package/dist/util/project-files.d.ts +2 -10
  539. package/dist/util/project-files.d.ts.map +1 -1
  540. package/dist/util/project-files.js +29 -51
  541. package/dist/util/project-files.js.map +1 -1
  542. package/dist/util/python-type-checking.d.ts +18 -0
  543. package/dist/util/python-type-checking.d.ts.map +1 -0
  544. package/dist/util/python-type-checking.js +160 -0
  545. package/dist/util/python-type-checking.js.map +1 -0
  546. package/dist/util/resolution/cargo-targets.d.ts +11 -0
  547. package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
  548. package/dist/util/resolution/cargo-targets.js +174 -13
  549. package/dist/util/resolution/cargo-targets.js.map +1 -1
  550. package/dist/util/resolution/csharp.d.ts +33 -1
  551. package/dist/util/resolution/csharp.d.ts.map +1 -1
  552. package/dist/util/resolution/csharp.js +145 -30
  553. package/dist/util/resolution/csharp.js.map +1 -1
  554. package/dist/util/resolution/jvm.d.ts +7 -3
  555. package/dist/util/resolution/jvm.d.ts.map +1 -1
  556. package/dist/util/resolution/jvm.js +56 -38
  557. package/dist/util/resolution/jvm.js.map +1 -1
  558. package/dist/util/resolution/php.d.ts.map +1 -1
  559. package/dist/util/resolution/php.js +35 -8
  560. package/dist/util/resolution/php.js.map +1 -1
  561. package/dist/util/resolution/python.d.ts +9 -0
  562. package/dist/util/resolution/python.d.ts.map +1 -1
  563. package/dist/util/resolution/python.js +46 -0
  564. package/dist/util/resolution/python.js.map +1 -1
  565. package/dist/util/resolution/rust.d.ts +0 -1
  566. package/dist/util/resolution/rust.d.ts.map +1 -1
  567. package/dist/util/resolution/rust.js +95 -35
  568. package/dist/util/resolution/rust.js.map +1 -1
  569. package/dist/util/resolution/specifier-targets.d.ts +44 -0
  570. package/dist/util/resolution/specifier-targets.d.ts.map +1 -0
  571. package/dist/util/resolution/specifier-targets.js +152 -0
  572. package/dist/util/resolution/specifier-targets.js.map +1 -0
  573. package/dist/util/resolution-candidates.d.ts +5 -0
  574. package/dist/util/resolution-candidates.d.ts.map +1 -1
  575. package/dist/util/resolution-candidates.js +16 -3
  576. package/dist/util/resolution-candidates.js.map +1 -1
  577. package/dist/util/resolution.d.ts +2 -1
  578. package/dist/util/resolution.d.ts.map +1 -1
  579. package/dist/util/resolution.js +101 -15
  580. package/dist/util/resolution.js.map +1 -1
  581. package/dist/util/specifiers.d.ts +29 -1
  582. package/dist/util/specifiers.d.ts.map +1 -1
  583. package/dist/util/specifiers.js +56 -8
  584. package/dist/util/specifiers.js.map +1 -1
  585. package/dist/util/trivia.d.ts.map +1 -1
  586. package/dist/util/trivia.js +49 -30
  587. package/dist/util/trivia.js.map +1 -1
  588. package/dist/util/workspace.d.ts.map +1 -1
  589. package/dist/util/workspace.js +32 -4
  590. package/dist/util/workspace.js.map +1 -1
  591. package/docs/mcp.md +3 -2
  592. package/package.json +5 -7
  593. package/dist/impact/call-compatibility/providers/profiles.d.ts +0 -80
  594. package/dist/impact/call-compatibility/providers/profiles.d.ts.map +0 -1
  595. package/dist/impact/call-compatibility/providers/profiles.js +0 -164
  596. package/dist/impact/call-compatibility/providers/profiles.js.map +0 -1
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Per-language import-resolution capabilities for declaration-resolved imports, implicit
3
+ * compilation units, and external-specifier re-resolution. Rows are keyed by language id,
4
+ * following the trivia-table precedent in `../util/trivia-tables.ts`: resolvers keep the
5
+ * algorithms; this table keeps the per-language facts.
6
+ *
7
+ * Every registered language has a row. A document, style, or data format row carries only
8
+ * `omittedReason`; a source-language row declares each capability it has and names a one-line
9
+ * reason for each capability it omits, so an omission cannot flip silently.
10
+ * `implicitCompilationUnitGroup` is not its own capability: absent means the language id.
11
+ * `tests/import-resolution-tables.test.ts` asserts both halves.
12
+ *
13
+ * `DECLARATION_RESOLVED_IMPORT_LANGUAGES`, `IMPLICIT_UNIT_LANGUAGES`, and the external-specifier
14
+ * rule are derived from these rows.
15
+ */
16
+ /**
17
+ * How an added file can satisfy an external import specifier.
18
+ * Separator names stay data; the incremental plan compiles them into patterns.
19
+ */
20
+ export type ExternalSpecifierSeparator = "path" | "slash" | "dot" | "python" | "rust";
21
+ export type ExternalSpecifierResolutionData = {
22
+ separator: ExternalSpecifierSeparator;
23
+ /** Directory names an import can name: the parent only, or every ancestor. */
24
+ importNamesDirectory?: "parent" | "ancestors";
25
+ /**
26
+ * Declaration imports name packages, not files.
27
+ * Any added file with one of these extensions re-resolves this language's importers.
28
+ */
29
+ reResolveAnyAddedExtensions?: readonly string[];
30
+ /** An added file stem may match any module segment, not only the last. */
31
+ matchesModuleSegments?: boolean;
32
+ };
33
+ /**
34
+ * Files of this language can name each other's top-level declarations without an import.
35
+ * `package` reads a package clause. `namespace` reads namespace declarations.
36
+ * `module` is the file's directory.
37
+ */
38
+ export type ImplicitCompilationUnitKind = "package" | "namespace" | "module";
39
+ export type ImportResolutionRow = {
40
+ /** Why the language has none of these resolution capabilities. */
41
+ omittedReason?: string;
42
+ /**
43
+ * Imports name declarations in other files, so a content change can move the target.
44
+ */
45
+ resolvesImportsFromDeclarations?: true;
46
+ /** Why imports do not resolve through declarations in other files. */
47
+ resolvesImportsFromDeclarationsOmittedReason?: string;
48
+ /** Implicit compilation unit for this language, when it has one. */
49
+ implicitCompilationUnit?: ImplicitCompilationUnitKind;
50
+ /** Why files cannot name each other's top-level declarations without an import. */
51
+ implicitCompilationUnitOmittedReason?: string;
52
+ /**
53
+ * Languages that share one unit identity. Java and Kotlin use `jvm`.
54
+ * Absent means the language id.
55
+ */
56
+ implicitCompilationUnitGroup?: string;
57
+ /**
58
+ * How an added file can satisfy an external specifier.
59
+ * Absent means a path separator and no declaration-wide re-resolution.
60
+ */
61
+ externalSpecifierResolution?: ExternalSpecifierResolutionData;
62
+ /** Why the language keeps the default path separator and does not re-resolve every added file. */
63
+ externalSpecifierResolutionOmittedReason?: string;
64
+ };
65
+ export declare const IMPORT_RESOLUTION_ROWS: Record<string, ImportResolutionRow>;
66
+ /**
67
+ * Languages that resolve imports through declarations in other files
68
+ * (C# namespaces, JVM packages, PHP namespaces, C++ named modules).
69
+ * A content change in a dependency can move the target.
70
+ */
71
+ export declare const DECLARATION_RESOLVED_IMPORT_LANGUAGES: ReadonlySet<string>;
72
+ //# sourceMappingURL=import-resolution-tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-resolution-tables.d.ts","sourceRoot":"","sources":["../../src/indexer/import-resolution-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,SAAS,EAAE,0BAA0B,CAAC;IACtC,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9C;;;OAGG;IACH,2BAA2B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG;IAChC,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,+BAA+B,CAAC,EAAE,IAAI,CAAC;IACvC,sEAAsE;IACtE,4CAA4C,CAAC,EAAE,MAAM,CAAC;IACtD,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,2BAA2B,CAAC;IACtD,mFAAmF;IACnF,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C;;;OAGG;IACH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC;;;OAGG;IACH,2BAA2B,CAAC,EAAE,+BAA+B,CAAC;IAC9D,kGAAkG;IAClG,wCAAwC,CAAC,EAAE,MAAM,CAAC;CACnD,CAAC;AAiBF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAmHtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qCAAqC,EAAE,WAAW,CAAC,MAAM,CAIrE,CAAC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Per-language import-resolution capabilities for declaration-resolved imports, implicit
3
+ * compilation units, and external-specifier re-resolution. Rows are keyed by language id,
4
+ * following the trivia-table precedent in `../util/trivia-tables.ts`: resolvers keep the
5
+ * algorithms; this table keeps the per-language facts.
6
+ *
7
+ * Every registered language has a row. A document, style, or data format row carries only
8
+ * `omittedReason`; a source-language row declares each capability it has and names a one-line
9
+ * reason for each capability it omits, so an omission cannot flip silently.
10
+ * `implicitCompilationUnitGroup` is not its own capability: absent means the language id.
11
+ * `tests/import-resolution-tables.test.ts` asserts both halves.
12
+ *
13
+ * `DECLARATION_RESOLVED_IMPORT_LANGUAGES`, `IMPLICIT_UNIT_LANGUAGES`, and the external-specifier
14
+ * rule are derived from these rows.
15
+ */
16
+ const ECMASCRIPT_DECLARATION_OMITTED = "An import names a module specifier, not a declaration in another file.";
17
+ const ECMASCRIPT_UNIT_OMITTED = "A cross-file name arrives through an import; files are not bare-name peers.";
18
+ const ECMASCRIPT_SPECIFIER_OMITTED = "Specifiers use the default path separator and match the resolved file stem, not every added file.";
19
+ const STYLESHEET_OMITTED = "Style language; no declaration imports, implicit compilation unit, or external-specifier rule.";
20
+ const ECMASCRIPT_ROW = {
21
+ resolvesImportsFromDeclarationsOmittedReason: ECMASCRIPT_DECLARATION_OMITTED,
22
+ implicitCompilationUnitOmittedReason: ECMASCRIPT_UNIT_OMITTED,
23
+ externalSpecifierResolutionOmittedReason: ECMASCRIPT_SPECIFIER_OMITTED,
24
+ };
25
+ const JVM_DECLARATION_EXTENSIONS = [".java", ".kt", ".kts", ".ktm"];
26
+ export const IMPORT_RESOLUTION_ROWS = {
27
+ adoc: { omittedReason: "AsciiDoc document format; embedded code blocks parse as their own language." },
28
+ astro: { omittedReason: "Astro document format; scripts parse as js/ts and templates as html." },
29
+ c: {
30
+ resolvesImportsFromDeclarationsOmittedReason: "A #include names a header file, not a declaration in another file.",
31
+ implicitCompilationUnitOmittedReason: "Each translation unit is one file; a cross-file name arrives through an include.",
32
+ externalSpecifierResolutionOmittedReason: "Include paths use the default path separator and match the header file stem.",
33
+ },
34
+ cpp: {
35
+ resolvesImportsFromDeclarations: true,
36
+ implicitCompilationUnitOmittedReason: "Each translation unit is one file; a cross-file name arrives through an include or module import.",
37
+ externalSpecifierResolutionOmittedReason: "Includes use the default path separator; named modules re-resolve from declaration history, not an extension rule.",
38
+ },
39
+ css: { omittedReason: STYLESHEET_OMITTED },
40
+ csharp: {
41
+ resolvesImportsFromDeclarations: true,
42
+ implicitCompilationUnit: "namespace",
43
+ externalSpecifierResolution: {
44
+ separator: "path",
45
+ reResolveAnyAddedExtensions: [".cs", ".csx"],
46
+ },
47
+ },
48
+ go: {
49
+ resolvesImportsFromDeclarationsOmittedReason: "An import path names a package directory, not a declaration scanned from another file.",
50
+ implicitCompilationUnit: "package",
51
+ externalSpecifierResolution: {
52
+ separator: "slash",
53
+ importNamesDirectory: "parent",
54
+ },
55
+ },
56
+ hbs: { omittedReason: "Handlebars document format; embedded scripts parse as their own language." },
57
+ html: { omittedReason: "Document format; embedded scripts parse as their own language." },
58
+ java: {
59
+ resolvesImportsFromDeclarations: true,
60
+ implicitCompilationUnit: "package",
61
+ implicitCompilationUnitGroup: "jvm",
62
+ externalSpecifierResolution: {
63
+ separator: "dot",
64
+ reResolveAnyAddedExtensions: JVM_DECLARATION_EXTENSIONS,
65
+ },
66
+ },
67
+ js: ECMASCRIPT_ROW,
68
+ kotlin: {
69
+ resolvesImportsFromDeclarations: true,
70
+ implicitCompilationUnit: "package",
71
+ implicitCompilationUnitGroup: "jvm",
72
+ externalSpecifierResolution: {
73
+ separator: "dot",
74
+ reResolveAnyAddedExtensions: JVM_DECLARATION_EXTENSIONS,
75
+ },
76
+ },
77
+ less: { omittedReason: STYLESHEET_OMITTED },
78
+ markdown: { omittedReason: "Document format; fenced code blocks parse as their own language." },
79
+ mdx: { omittedReason: "MDX document format; scripts parse as js/ts and templates as html." },
80
+ php: {
81
+ resolvesImportsFromDeclarations: true,
82
+ implicitCompilationUnitOmittedReason: "A cross-file name arrives through a use or include, not a shared package, namespace, or module unit.",
83
+ externalSpecifierResolution: {
84
+ separator: "path",
85
+ reResolveAnyAddedExtensions: [".php", ".phtml", ".php4", ".php8"],
86
+ },
87
+ },
88
+ python: {
89
+ resolvesImportsFromDeclarationsOmittedReason: "An import names a module path, not a declaration that can move to another file.",
90
+ implicitCompilationUnitOmittedReason: "A cross-file name arrives through an import; the same directory is not a bare-name unit.",
91
+ externalSpecifierResolution: {
92
+ separator: "python",
93
+ importNamesDirectory: "ancestors",
94
+ },
95
+ },
96
+ rst: { omittedReason: "reStructuredText document format; embedded code blocks parse as their own language." },
97
+ ruby: {
98
+ resolvesImportsFromDeclarationsOmittedReason: "require and load name a file, not a declaration in another file.",
99
+ implicitCompilationUnitOmittedReason: "A cross-file name arrives through require, load, or autoload.",
100
+ externalSpecifierResolutionOmittedReason: "Require paths use the default path separator and match the loaded file stem.",
101
+ },
102
+ rust: {
103
+ resolvesImportsFromDeclarationsOmittedReason: "A use path names a module file, not a declaration discovered by scanning other files.",
104
+ implicitCompilationUnitOmittedReason: "A cross-file name arrives through a use or mod item.",
105
+ externalSpecifierResolution: {
106
+ separator: "rust",
107
+ matchesModuleSegments: true,
108
+ },
109
+ },
110
+ scss: { omittedReason: STYLESHEET_OMITTED },
111
+ sql: {
112
+ omittedReason: "Data language; no declaration imports, implicit compilation unit, or external-specifier rule.",
113
+ },
114
+ svelte: { omittedReason: "Svelte component format; script blocks parse as js/ts and templates as html." },
115
+ swift: {
116
+ resolvesImportsFromDeclarationsOmittedReason: "An import names a module; same-module declarations are visible without resolving that import to a file.",
117
+ implicitCompilationUnit: "module",
118
+ externalSpecifierResolutionOmittedReason: "Module imports are not file stems, so an added file does not re-resolve importers through an extension rule.",
119
+ },
120
+ ts: ECMASCRIPT_ROW,
121
+ tsx: ECMASCRIPT_ROW,
122
+ vue: { omittedReason: "Vue component format; script blocks parse as js/ts and templates as html." },
123
+ zig: {
124
+ resolvesImportsFromDeclarationsOmittedReason: "@import names a file path, not a declaration in another file.",
125
+ implicitCompilationUnitOmittedReason: "A cross-file name arrives through @import.",
126
+ externalSpecifierResolutionOmittedReason: "@import paths use the default path separator and match the imported file stem.",
127
+ },
128
+ };
129
+ /**
130
+ * Languages that resolve imports through declarations in other files
131
+ * (C# namespaces, JVM packages, PHP namespaces, C++ named modules).
132
+ * A content change in a dependency can move the target.
133
+ */
134
+ export const DECLARATION_RESOLVED_IMPORT_LANGUAGES = new Set(Object.entries(IMPORT_RESOLUTION_ROWS)
135
+ .filter(([, row]) => row.resolvesImportsFromDeclarations)
136
+ .map(([languageId]) => languageId));
137
+ //# sourceMappingURL=import-resolution-tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-resolution-tables.js","sourceRoot":"","sources":["../../src/indexer/import-resolution-tables.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { FileId, Range } from "../types.js";
2
+ import type { CFamilyIncludeForm, RubyLoadForm } from "../util/specifiers.js";
2
3
  export type ImportBinding = {
3
4
  kind: "default";
4
5
  local: string;
@@ -28,7 +29,15 @@ export type ImportBinding = {
28
29
  * same range as `importedRange`; for `import { a as b }` it is the alias token.
29
30
  */
30
31
  localRange?: Range;
32
+ /** Direct type owner for an expanded JVM type-on-demand or Java static import. */
33
+ jvmTypeOwnerStartIndex?: number;
34
+ /** Static Java type owner when expanded from a static star import. */
35
+ jvmStaticWildcardName?: string;
36
+ /** Whether the importer shares the declaring JVM package. */
37
+ jvmSamePackage?: boolean;
31
38
  phpImportType?: "class" | "function" | "const";
39
+ /** Namespace retained when a C include expands tags and ordinary names. */
40
+ cNamespace?: "tag" | "ordinary";
32
41
  resolved?: FileId | {
33
42
  external: string;
34
43
  };
@@ -38,10 +47,18 @@ export type ImportBinding = {
38
47
  moduleLevel?: boolean;
39
48
  resolvedType?: "heuristic" | "precise";
40
49
  confidence?: number;
50
+ /** Copied from the C/C++ star include this binding was expanded from. */
51
+ includeForm?: CFamilyIncludeForm;
41
52
  } | {
42
53
  kind: "namespace";
43
54
  localNS: string;
44
55
  from: string;
56
+ /**
57
+ * True when the source spells an explicit `as alias` (Python `import a.b as alias`).
58
+ * A plain `import a.b` also binds a name here (`a`, the first dotted segment), but that
59
+ * name is not itself an alias for `a.b`'s own spelling.
60
+ */
61
+ explicitAlias?: boolean;
45
62
  /** UTF-16 range of the namespace binding token. */
46
63
  localRange?: Range;
47
64
  resolved?: FileId | {
@@ -53,6 +70,8 @@ export type ImportBinding = {
53
70
  moduleLevel?: boolean;
54
71
  resolvedType?: "heuristic" | "precise";
55
72
  confidence?: number;
73
+ /** Copied from the C/C++ star include this binding was expanded from. */
74
+ includeForm?: CFamilyIncludeForm;
56
75
  } | {
57
76
  kind: "star";
58
77
  from: string;
@@ -65,5 +84,40 @@ export type ImportBinding = {
65
84
  moduleLevel?: boolean;
66
85
  resolvedType?: "heuristic" | "precise";
67
86
  confidence?: number;
87
+ /** Present for a C/C++ include. Older cached bindings omit it. */
88
+ includeForm?: CFamilyIncludeForm;
89
+ rubyLoadForm?: RubyLoadForm;
90
+ /**
91
+ * C# `using static N.T;`: the normalized qualified type name `N.T`. Only static members and
92
+ * nested types of that type in the resolved file are imported, so generic star lookup and
93
+ * expansion skip this binding.
94
+ */
95
+ staticMembersOf?: string;
96
+ /** The requested type for a non-static JVM type-on-demand import. */
97
+ jvmTypeWildcardName?: string;
98
+ /** Declaring type for a Java static star import, not a type-on-demand import. */
99
+ jvmStaticWildcardName?: string;
100
+ /** Files of a proven JVM package wildcard, not just its representative resolved file. */
101
+ jvmPackageFiles?: FileId[];
102
+ /** Consumer language needed to keep Java package stars limited to JVM-visible types. */
103
+ jvmPackageLanguageId?: "java" | "kotlin";
104
+ /** Whether the importer shares the imported JVM package or type's package. */
105
+ jvmSamePackage?: boolean;
68
106
  };
107
+ /**
108
+ * PHP resolves named imports through separate class, function, and constant namespaces, and
109
+ * PHP spells an untyped named import as a class alias. Non-PHP bindings carry no PHP role.
110
+ */
111
+ export declare function phpNamedImportRole(binding: ImportBinding): "class" | "function" | "const" | undefined;
112
+ /**
113
+ * The role segment a named binding contributes to its import node ID: a PHP import role or a
114
+ * C include namespace. Bindings with neither keep the plain `import` segment.
115
+ */
116
+ export declare function importIdRoleSegment(binding: Extract<ImportBinding, {
117
+ kind: "named";
118
+ }>): string | undefined;
119
+ /** Use the caller's normalized file path and keep PHP import roles and C namespaces distinct. */
120
+ export declare function importNodeId(file: string, binding: Exclude<ImportBinding, {
121
+ kind: "star";
122
+ }>): string;
69
123
  //# sourceMappingURL=import-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-types.d.ts","sourceRoot":"","sources":["../../src/indexer/import-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC5C,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC5C,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC5C,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC5C,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"import-types.d.ts","sourceRoot":"","sources":["../../src/indexer/import-types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,25 @@
1
- export {};
1
+ /**
2
+ * PHP resolves named imports through separate class, function, and constant namespaces, and
3
+ * PHP spells an untyped named import as a class alias. Non-PHP bindings carry no PHP role.
4
+ */
5
+ export function phpNamedImportRole(binding) {
6
+ if (binding.kind !== "named")
7
+ return undefined;
8
+ if (binding.mechanism !== "php" && binding.phpImportType === undefined)
9
+ return undefined;
10
+ return binding.phpImportType ?? "class";
11
+ }
12
+ /**
13
+ * The role segment a named binding contributes to its import node ID: a PHP import role or a
14
+ * C include namespace. Bindings with neither keep the plain `import` segment.
15
+ */
16
+ export function importIdRoleSegment(binding) {
17
+ return phpNamedImportRole(binding) ?? binding.cNamespace;
18
+ }
19
+ /** Use the caller's normalized file path and keep PHP import roles and C namespaces distinct. */
20
+ export function importNodeId(file, binding) {
21
+ const name = binding.kind === "namespace" ? binding.localNS : binding.local;
22
+ const role = binding.kind === "named" ? importIdRoleSegment(binding) : undefined;
23
+ return `${file}::${name}::import${role ? `:${role}` : ""}`;
24
+ }
2
25
  //# sourceMappingURL=import-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-types.js","sourceRoot":"","sources":["../../src/indexer/import-types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"import-types.js","sourceRoot":"","sources":["../../src/indexer/import-types.ts"],"names":[],"mappings":"AAwGA;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAsB;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzF,OAAO,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAkD;IACpF,OAAO,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;AAC3D,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAiD;IAC1F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,OAAO,GAAG,IAAI,KAAK,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7D,CAAC"}
@@ -1,6 +1,21 @@
1
1
  import type { ImportBinding } from "../types.js";
2
+ import type { CFamilyIncludeForm, ModuleSpecifierResolutionKind, RubyLoadForm } from "../../util/specifiers.js";
2
3
  export type ResolvedImportTarget = Exclude<ImportBinding["resolved"], undefined>;
3
- export type ImportResolver = (from: string, phpImportType?: "class" | "function" | "const") => Promise<ResolvedImportTarget>;
4
+ /**
5
+ * Per-occurrence resolution facts the capture path can prove but the extracted specifier text
6
+ * cannot. A C/C++ `#include` keeps its literal/angle/macro form here so resolution never infers
7
+ * it from the file's other spellings.
8
+ */
9
+ export type ImportResolverOptions = {
10
+ includeForm?: CFamilyIncludeForm;
11
+ rubyLoadForm?: RubyLoadForm;
12
+ resolutionKind?: ModuleSpecifierResolutionKind;
13
+ jvmPackageWildcard?: true;
14
+ /** Rust `#[path = "..."]` on this module item. Resolved only inside the project root. */
15
+ pathAttribute?: string;
16
+ statementStartIndex?: number;
17
+ };
18
+ export type ImportResolver = (from: string, phpImportType?: "class" | "function" | "const", opts?: ImportResolverOptions) => Promise<ResolvedImportTarget>;
4
19
  export type ImportBindingSink = {
5
20
  pushBinding: (binding: ImportBinding) => void;
6
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;AAEjF,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,KAC3C,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/C,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEhH,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;AAEjF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,6BAA6B,CAAC;IAC/C,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAC1B,yFAAyF;IACzF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,EAC9C,IAAI,CAAC,EAAE,qBAAqB,KACzB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/C,CAAC"}
@@ -1,3 +1,6 @@
1
+ import type { LanguageExtensionMap } from "../../languages.js";
2
+ import type { Range } from "../../types.js";
3
+ import type { CFamilyIncludeForm, RubyLoadForm } from "../../util/specifiers.js";
1
4
  import type { ImportBinding } from "../types.js";
2
5
  import type { ImportBindingSink, ImportResolver, ResolvedImportTarget } from "./context.js";
3
6
  /**
@@ -19,6 +22,8 @@ export type LanguageSpecificImportContext = ImportBindingSink & {
19
22
  source: string;
20
23
  languageId: string;
21
24
  resolveFrom: ImportResolver;
25
+ /** Active extension-to-language mapping, so a resolved file is classified as the language that parses it. */
26
+ languageExtensions?: LanguageExtensionMap;
22
27
  getBindings: () => ImportBinding[];
23
28
  replaceBindings: (bindings: ImportBinding[]) => void;
24
29
  };
@@ -31,7 +36,11 @@ export type ImplicitImportBindingArgs = {
31
36
  stmtStartIndex?: number;
32
37
  source?: string;
33
38
  alias?: string;
39
+ /** UTF-16 range of the captured alias token, when the native alias capture proved it. */
40
+ localRange?: Range;
34
41
  wildcard?: boolean;
42
+ includeForm?: CFamilyIncludeForm;
43
+ rubyLoadForm?: RubyLoadForm;
35
44
  };
36
45
  export type ApplyStatementImportOverride = (context: LanguageSpecificImportContext, parserStmt: string, typeOnly: boolean, statementStartIndex?: number) => Promise<boolean>;
37
46
  export type AppendImplicitImportBinding = (context: LanguageSpecificImportContext, args: ImplicitImportBindingArgs) => void;
@@ -49,7 +58,10 @@ export type ImportBindingRow = {
49
58
  maskTrivia?: StatementTriviaMask;
50
59
  /** Collapse whitespace around `.` after masking (C#, Java, Kotlin). */
51
60
  normalizeDots?: true;
52
- /** Include the statement start offset in the override de-dupe key (Rust). */
61
+ /**
62
+ * Include the statement start offset in the override de-dupe key (C#, Rust). Required when the
63
+ * same statement text can appear in several scopes and each must keep its own range.
64
+ */
53
65
  statementKeyUsesOffset?: true;
54
66
  /** Named-range attribution treats unaliased `local === imported` as two tokens (C#). */
55
67
  alwaysAliased?: true;
@@ -1 +1 @@
1
- {"version":3,"file":"import-binding-tables.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/import-binding-tables.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5F;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,6BAA6B,GAAG,iBAAiB,GAAG;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,cAAc,CAAC;IAC5B,WAAW,EAAE,MAAM,aAAa,EAAE,CAAC;IACnC,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CACzC,OAAO,EAAE,6BAA6B,EACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,mBAAmB,CAAC,EAAE,MAAM,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,2BAA2B,GAAG,CACxC,OAAO,EAAE,6BAA6B,EACtC,IAAI,EAAE,yBAAyB,KAC5B,IAAI,CAAC;AAEV;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,aAAa,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C,0CAA0C;IAC1C,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,uEAAuE;IACvE,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC9B,wFAAwF;IACxF,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAC1B,uDAAuD;IACvD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AA6dF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAyFhE,CAAC"}
1
+ {"version":3,"file":"import-binding-tables.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/import-binding-tables.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAO/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5F;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,6BAA6B,GAAG,iBAAiB,GAAG;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,cAAc,CAAC;IAC5B,6GAA6G;IAC7G,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,WAAW,EAAE,MAAM,aAAa,EAAE,CAAC;IACnC,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CACzC,OAAO,EAAE,6BAA6B,EACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,mBAAmB,CAAC,EAAE,MAAM,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,2BAA2B,GAAG,CACxC,OAAO,EAAE,6BAA6B,EACtC,IAAI,EAAE,yBAAyB,KAC5B,IAAI,CAAC;AAEV;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,aAAa,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C,0CAA0C;IAC1C,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,uEAAuE;IACvE,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC9B,wFAAwF;IACxF,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAC1B,uDAAuD;IACvD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAwmBF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA2FhE,CAAC"}