@lzehrung/codegraph 2.3.28 → 2.3.30

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 (325) hide show
  1. package/dist/bin/cli.js +7008 -4340
  2. package/dist/bin/query-index-worker.js +1357 -724
  3. package/dist/document-links/asciidoc.d.ts.map +1 -1
  4. package/dist/document-links/asciidoc.js +3 -4
  5. package/dist/document-links/asciidoc.js.map +1 -1
  6. package/dist/document-links/html-forms.d.ts +39 -0
  7. package/dist/document-links/html-forms.d.ts.map +1 -0
  8. package/dist/document-links/html-forms.js +94 -0
  9. package/dist/document-links/html-forms.js.map +1 -0
  10. package/dist/document-links/html.d.ts +8 -0
  11. package/dist/document-links/html.d.ts.map +1 -1
  12. package/dist/document-links/html.js +30 -15
  13. package/dist/document-links/html.js.map +1 -1
  14. package/dist/document-links/markdown.d.ts.map +1 -1
  15. package/dist/document-links/markdown.js +6 -7
  16. package/dist/document-links/markdown.js.map +1 -1
  17. package/dist/document-links/rst.d.ts.map +1 -1
  18. package/dist/document-links/rst.js +6 -0
  19. package/dist/document-links/rst.js.map +1 -1
  20. package/dist/document-links/sfc.d.ts.map +1 -1
  21. package/dist/document-links/sfc.js +4 -4
  22. package/dist/document-links/sfc.js.map +1 -1
  23. package/dist/graphs/angularjs.d.ts.map +1 -1
  24. package/dist/graphs/angularjs.js +9 -1
  25. package/dist/graphs/angularjs.js.map +1 -1
  26. package/dist/graphs/edge-resolution.d.ts.map +1 -1
  27. package/dist/graphs/edge-resolution.js +12 -2
  28. package/dist/graphs/edge-resolution.js.map +1 -1
  29. package/dist/graphs/specifiers.d.ts.map +1 -1
  30. package/dist/graphs/specifiers.js +62 -104
  31. package/dist/graphs/specifiers.js.map +1 -1
  32. package/dist/graphs/symbol-graph-detailed/ast.d.ts.map +1 -1
  33. package/dist/graphs/symbol-graph-detailed/ast.js +3 -0
  34. package/dist/graphs/symbol-graph-detailed/ast.js.map +1 -1
  35. package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
  36. package/dist/graphs/symbol-graph-detailed/edge-passes.js +157 -91
  37. package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
  38. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +34 -0
  39. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
  40. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +531 -24
  41. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  42. package/dist/impact/analyzer.d.ts.map +1 -1
  43. package/dist/impact/analyzer.js +82 -4
  44. package/dist/impact/analyzer.js.map +1 -1
  45. package/dist/impact/call-compatibility/providers/index.d.ts +3 -1
  46. package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
  47. package/dist/impact/call-compatibility/providers/index.js +11 -4
  48. package/dist/impact/call-compatibility/providers/index.js.map +1 -1
  49. package/dist/impact/call-compatibility.d.ts.map +1 -1
  50. package/dist/impact/call-compatibility.js +2 -7
  51. package/dist/impact/call-compatibility.js.map +1 -1
  52. package/dist/impact/map.d.ts.map +1 -1
  53. package/dist/impact/map.js +58 -1
  54. package/dist/impact/map.js.map +1 -1
  55. package/dist/impact/member-resolution-coverage.d.ts.map +1 -1
  56. package/dist/impact/member-resolution-coverage.js +2 -5
  57. package/dist/impact/member-resolution-coverage.js.map +1 -1
  58. package/dist/indexer/build-cache/manifest.d.ts +7 -0
  59. package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
  60. package/dist/indexer/build-cache/manifest.js +32 -1
  61. package/dist/indexer/build-cache/manifest.js.map +1 -1
  62. package/dist/indexer/build-cache/options.d.ts +20 -2
  63. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  64. package/dist/indexer/build-cache/options.js +21 -3
  65. package/dist/indexer/build-cache/options.js.map +1 -1
  66. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  67. package/dist/indexer/build-cache/project-snapshot.js +1 -0
  68. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  69. package/dist/indexer/build-index.d.ts.map +1 -1
  70. package/dist/indexer/build-index.js +80 -2
  71. package/dist/indexer/build-index.js.map +1 -1
  72. package/dist/indexer/build-manifest.d.ts +1 -0
  73. package/dist/indexer/build-manifest.d.ts.map +1 -1
  74. package/dist/indexer/build-manifest.js +18 -0
  75. package/dist/indexer/build-manifest.js.map +1 -1
  76. package/dist/indexer/build-workers.js +1 -1
  77. package/dist/indexer/build-workers.js.map +1 -1
  78. package/dist/indexer/declaration-visibility.d.ts +43 -0
  79. package/dist/indexer/declaration-visibility.d.ts.map +1 -0
  80. package/dist/indexer/declaration-visibility.js +202 -0
  81. package/dist/indexer/declaration-visibility.js.map +1 -0
  82. package/dist/indexer/imports/binding-ranges.d.ts +1 -1
  83. package/dist/indexer/imports/binding-ranges.d.ts.map +1 -1
  84. package/dist/indexer/imports/binding-ranges.js +2 -123
  85. package/dist/indexer/imports/binding-ranges.js.map +1 -1
  86. package/dist/indexer/imports/js-text-imports.d.ts.map +1 -1
  87. package/dist/indexer/imports/js-text-imports.js +5 -2
  88. package/dist/indexer/imports/js-text-imports.js.map +1 -1
  89. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  90. package/dist/indexer/imports/language-specific.js +58 -215
  91. package/dist/indexer/imports/language-specific.js.map +1 -1
  92. package/dist/indexer/imports/native-captures.d.ts.map +1 -1
  93. package/dist/indexer/imports/native-captures.js +23 -32
  94. package/dist/indexer/imports/native-captures.js.map +1 -1
  95. package/dist/indexer/imports/text-import-extractors.d.ts +37 -0
  96. package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -0
  97. package/dist/indexer/imports/text-import-extractors.js +358 -0
  98. package/dist/indexer/imports/text-import-extractors.js.map +1 -0
  99. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  100. package/dist/indexer/locals-and-exports.js +26 -27
  101. package/dist/indexer/locals-and-exports.js.map +1 -1
  102. package/dist/indexer/navigation-goto.d.ts +1 -7
  103. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  104. package/dist/indexer/navigation-goto.js +406 -276
  105. package/dist/indexer/navigation-goto.js.map +1 -1
  106. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  107. package/dist/indexer/navigation-resolve.js +20 -1
  108. package/dist/indexer/navigation-resolve.js.map +1 -1
  109. package/dist/indexer/navigation.d.ts.map +1 -1
  110. package/dist/indexer/navigation.js +49 -7
  111. package/dist/indexer/navigation.js.map +1 -1
  112. package/dist/indexer/parse-context.js +2 -2
  113. package/dist/indexer/parse-context.js.map +1 -1
  114. package/dist/indexer/scope-nodes.d.ts +108 -0
  115. package/dist/indexer/scope-nodes.d.ts.map +1 -0
  116. package/dist/indexer/scope-nodes.js +238 -0
  117. package/dist/indexer/scope-nodes.js.map +1 -0
  118. package/dist/indexer/scope.d.ts.map +1 -1
  119. package/dist/indexer/scope.js +70 -130
  120. package/dist/indexer/scope.js.map +1 -1
  121. package/dist/indexer/types.d.ts +7 -0
  122. package/dist/indexer/types.d.ts.map +1 -1
  123. package/dist/languages/definitions/c-family.d.ts +18 -4
  124. package/dist/languages/definitions/c-family.d.ts.map +1 -1
  125. package/dist/languages/definitions/c-family.js +51 -13
  126. package/dist/languages/definitions/c-family.js.map +1 -1
  127. package/dist/languages/definitions/c.d.ts.map +1 -1
  128. package/dist/languages/definitions/c.js +7 -43
  129. package/dist/languages/definitions/c.js.map +1 -1
  130. package/dist/languages/definitions/cpp.d.ts.map +1 -1
  131. package/dist/languages/definitions/cpp.js +34 -53
  132. package/dist/languages/definitions/cpp.js.map +1 -1
  133. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  134. package/dist/languages/definitions/csharp.js +47 -53
  135. package/dist/languages/definitions/csharp.js.map +1 -1
  136. package/dist/languages/definitions/css-like.d.ts.map +1 -1
  137. package/dist/languages/definitions/css-like.js +13 -10
  138. package/dist/languages/definitions/css-like.js.map +1 -1
  139. package/dist/languages/definitions/go.d.ts.map +1 -1
  140. package/dist/languages/definitions/go.js +29 -42
  141. package/dist/languages/definitions/go.js.map +1 -1
  142. package/dist/languages/definitions/html.d.ts.map +1 -1
  143. package/dist/languages/definitions/html.js +15 -14
  144. package/dist/languages/definitions/html.js.map +1 -1
  145. package/dist/languages/definitions/java.d.ts.map +1 -1
  146. package/dist/languages/definitions/java.js +42 -48
  147. package/dist/languages/definitions/java.js.map +1 -1
  148. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  149. package/dist/languages/definitions/javascript.js +26 -54
  150. package/dist/languages/definitions/javascript.js.map +1 -1
  151. package/dist/languages/definitions/js-family.d.ts +15 -1
  152. package/dist/languages/definitions/js-family.d.ts.map +1 -1
  153. package/dist/languages/definitions/js-family.js +51 -0
  154. package/dist/languages/definitions/js-family.js.map +1 -1
  155. package/dist/languages/definitions/kotlin.d.ts.map +1 -1
  156. package/dist/languages/definitions/kotlin.js +26 -43
  157. package/dist/languages/definitions/kotlin.js.map +1 -1
  158. package/dist/languages/definitions/php.d.ts.map +1 -1
  159. package/dist/languages/definitions/php.js +50 -60
  160. package/dist/languages/definitions/php.js.map +1 -1
  161. package/dist/languages/definitions/python.d.ts +5 -1
  162. package/dist/languages/definitions/python.d.ts.map +1 -1
  163. package/dist/languages/definitions/python.js +62 -14
  164. package/dist/languages/definitions/python.js.map +1 -1
  165. package/dist/languages/definitions/ruby.d.ts.map +1 -1
  166. package/dist/languages/definitions/ruby.js +14 -17
  167. package/dist/languages/definitions/ruby.js.map +1 -1
  168. package/dist/languages/definitions/rust.d.ts.map +1 -1
  169. package/dist/languages/definitions/rust.js +30 -52
  170. package/dist/languages/definitions/rust.js.map +1 -1
  171. package/dist/languages/definitions/scss.d.ts.map +1 -1
  172. package/dist/languages/definitions/scss.js +36 -30
  173. package/dist/languages/definitions/scss.js.map +1 -1
  174. package/dist/languages/definitions/sfc-graph.d.ts +4 -0
  175. package/dist/languages/definitions/sfc-graph.d.ts.map +1 -0
  176. package/dist/languages/definitions/sfc-graph.js +16 -0
  177. package/dist/languages/definitions/sfc-graph.js.map +1 -0
  178. package/dist/languages/definitions/shared.d.ts +33 -0
  179. package/dist/languages/definitions/shared.d.ts.map +1 -0
  180. package/dist/languages/definitions/shared.js +63 -0
  181. package/dist/languages/definitions/shared.js.map +1 -0
  182. package/dist/languages/definitions/sql.d.ts.map +1 -1
  183. package/dist/languages/definitions/sql.js +1 -0
  184. package/dist/languages/definitions/sql.js.map +1 -1
  185. package/dist/languages/definitions/svelte.d.ts.map +1 -1
  186. package/dist/languages/definitions/svelte.js +2 -10
  187. package/dist/languages/definitions/svelte.js.map +1 -1
  188. package/dist/languages/definitions/swift.d.ts.map +1 -1
  189. package/dist/languages/definitions/swift.js +37 -31
  190. package/dist/languages/definitions/swift.js.map +1 -1
  191. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  192. package/dist/languages/definitions/typescript.js +65 -79
  193. package/dist/languages/definitions/typescript.js.map +1 -1
  194. package/dist/languages/definitions/vue.d.ts.map +1 -1
  195. package/dist/languages/definitions/vue.js +2 -10
  196. package/dist/languages/definitions/vue.js.map +1 -1
  197. package/dist/languages/definitions/zig.d.ts.map +1 -1
  198. package/dist/languages/definitions/zig.js +9 -15
  199. package/dist/languages/definitions/zig.js.map +1 -1
  200. package/dist/languages/graph-captures.d.ts +40 -0
  201. package/dist/languages/graph-captures.d.ts.map +1 -0
  202. package/dist/languages/graph-captures.js +46 -0
  203. package/dist/languages/graph-captures.js.map +1 -0
  204. package/dist/languages/import-statement-parsers.d.ts +17 -0
  205. package/dist/languages/import-statement-parsers.d.ts.map +1 -1
  206. package/dist/languages/import-statement-parsers.js +108 -0
  207. package/dist/languages/import-statement-parsers.js.map +1 -1
  208. package/dist/languages/js-family.d.ts +2 -0
  209. package/dist/languages/js-family.d.ts.map +1 -1
  210. package/dist/languages/js-family.js +15 -6
  211. package/dist/languages/js-family.js.map +1 -1
  212. package/dist/languages/types.d.ts +4 -0
  213. package/dist/languages/types.d.ts.map +1 -1
  214. package/dist/languages/types.js +1 -1
  215. package/dist/languages/types.js.map +1 -1
  216. package/dist/languages.js +1 -1
  217. package/dist/languages.js.map +1 -1
  218. package/dist/native/contracts.d.ts +1 -1
  219. package/dist/native/contracts.d.ts.map +1 -1
  220. package/dist/native/js-bridge.d.ts +10 -0
  221. package/dist/native/js-bridge.d.ts.map +1 -1
  222. package/dist/native/js-bridge.js +10 -0
  223. package/dist/native/js-bridge.js.map +1 -1
  224. package/dist/native/native-backend-report.d.ts.map +1 -1
  225. package/dist/native/native-backend-report.js +2 -0
  226. package/dist/native/native-backend-report.js.map +1 -1
  227. package/dist/sql/graph.d.ts +1 -1
  228. package/dist/sql/graph.d.ts.map +1 -1
  229. package/dist/sql/graph.js.map +1 -1
  230. package/dist/sql/lookup.d.ts +7 -0
  231. package/dist/sql/lookup.d.ts.map +1 -1
  232. package/dist/sql/lookup.js +17 -0
  233. package/dist/sql/lookup.js.map +1 -1
  234. package/dist/sql/source-graph.d.ts +2 -0
  235. package/dist/sql/source-graph.d.ts.map +1 -1
  236. package/dist/sql/source-graph.js +20 -1
  237. package/dist/sql/source-graph.js.map +1 -1
  238. package/dist/util/comments.d.ts +7 -7
  239. package/dist/util/comments.d.ts.map +1 -1
  240. package/dist/util/comments.js +15 -214
  241. package/dist/util/comments.js.map +1 -1
  242. package/dist/util/lines.d.ts.map +1 -1
  243. package/dist/util/lines.js +4 -1
  244. package/dist/util/lines.js.map +1 -1
  245. package/dist/util/member-access.d.ts +2 -0
  246. package/dist/util/member-access.d.ts.map +1 -1
  247. package/dist/util/member-access.js +18 -5
  248. package/dist/util/member-access.js.map +1 -1
  249. package/dist/util/paths.d.ts +4 -0
  250. package/dist/util/paths.d.ts.map +1 -1
  251. package/dist/util/paths.js +26 -0
  252. package/dist/util/paths.js.map +1 -1
  253. package/dist/util/project-files.js +1 -1
  254. package/dist/util/project-files.js.map +1 -1
  255. package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
  256. package/dist/util/resolution/cargo-targets.js +17 -14
  257. package/dist/util/resolution/cargo-targets.js.map +1 -1
  258. package/dist/util/resolution/cpp.d.ts +6 -0
  259. package/dist/util/resolution/cpp.d.ts.map +1 -0
  260. package/dist/util/resolution/cpp.js +69 -0
  261. package/dist/util/resolution/cpp.js.map +1 -0
  262. package/dist/util/resolution/csharp.d.ts +8 -0
  263. package/dist/util/resolution/csharp.d.ts.map +1 -0
  264. package/dist/util/resolution/csharp.js +103 -0
  265. package/dist/util/resolution/csharp.js.map +1 -0
  266. package/dist/util/resolution/files.d.ts +6 -0
  267. package/dist/util/resolution/files.d.ts.map +1 -1
  268. package/dist/util/resolution/files.js +108 -4
  269. package/dist/util/resolution/files.js.map +1 -1
  270. package/dist/util/resolution/go.d.ts +1 -0
  271. package/dist/util/resolution/go.d.ts.map +1 -1
  272. package/dist/util/resolution/go.js +4 -3
  273. package/dist/util/resolution/go.js.map +1 -1
  274. package/dist/util/resolution/jvm.d.ts +3 -3
  275. package/dist/util/resolution/jvm.d.ts.map +1 -1
  276. package/dist/util/resolution/jvm.js +90 -54
  277. package/dist/util/resolution/jvm.js.map +1 -1
  278. package/dist/util/resolution/node.js +2 -2
  279. package/dist/util/resolution/node.js.map +1 -1
  280. package/dist/util/resolution/php-composer.d.ts.map +1 -1
  281. package/dist/util/resolution/php-composer.js +8 -7
  282. package/dist/util/resolution/php-composer.js.map +1 -1
  283. package/dist/util/resolution/php.d.ts.map +1 -1
  284. package/dist/util/resolution/php.js +30 -43
  285. package/dist/util/resolution/php.js.map +1 -1
  286. package/dist/util/resolution/project-symbols.d.ts +5 -7
  287. package/dist/util/resolution/project-symbols.d.ts.map +1 -1
  288. package/dist/util/resolution/project-symbols.js +23 -9
  289. package/dist/util/resolution/project-symbols.js.map +1 -1
  290. package/dist/util/resolution/python.d.ts.map +1 -1
  291. package/dist/util/resolution/python.js +107 -62
  292. package/dist/util/resolution/python.js.map +1 -1
  293. package/dist/util/resolution/rust.d.ts.map +1 -1
  294. package/dist/util/resolution/rust.js +45 -34
  295. package/dist/util/resolution/rust.js.map +1 -1
  296. package/dist/util/resolution/tsconfig.d.ts.map +1 -1
  297. package/dist/util/resolution/tsconfig.js +3 -9
  298. package/dist/util/resolution/tsconfig.js.map +1 -1
  299. package/dist/util/resolution-candidates.d.ts +5 -1
  300. package/dist/util/resolution-candidates.d.ts.map +1 -1
  301. package/dist/util/resolution-candidates.js +18 -0
  302. package/dist/util/resolution-candidates.js.map +1 -1
  303. package/dist/util/resolution.d.ts.map +1 -1
  304. package/dist/util/resolution.js +95 -49
  305. package/dist/util/resolution.js.map +1 -1
  306. package/dist/util/specifiers.d.ts +4 -10
  307. package/dist/util/specifiers.d.ts.map +1 -1
  308. package/dist/util/specifiers.js +213 -164
  309. package/dist/util/specifiers.js.map +1 -1
  310. package/dist/util/trivia-tables.d.ts +69 -0
  311. package/dist/util/trivia-tables.d.ts.map +1 -0
  312. package/dist/util/trivia-tables.js +186 -0
  313. package/dist/util/trivia-tables.js.map +1 -0
  314. package/dist/util/trivia.d.ts +24 -0
  315. package/dist/util/trivia.d.ts.map +1 -0
  316. package/dist/util/trivia.js +621 -0
  317. package/dist/util/trivia.js.map +1 -0
  318. package/dist/util.d.ts +1 -1
  319. package/dist/util.d.ts.map +1 -1
  320. package/dist/util.js +1 -1
  321. package/dist/util.js.map +1 -1
  322. package/dist/worker/native-extract-worker.d.ts.map +1 -1
  323. package/dist/worker/native-extract-worker.js +4 -4
  324. package/dist/worker/native-extract-worker.js.map +1 -1
  325. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/files.ts"],"names":[],"mappings":"AAIA,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYjH;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO7D"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/files.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,0BAA0B,oGAM7B,CAAC;AAEX,eAAO,MAAM,6BAA6B,uBAAwB,CAAC;AAEnE,eAAO,MAAM,0BAA0B,4BAA6B,CAAC;AAErE,eAAO,MAAM,6BAA6B,iEAAkE,CAAC;AA0D7G,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEjH;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBxB;AAED,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO7D"}
@@ -1,22 +1,126 @@
1
1
  import fsp from "node:fs/promises";
2
2
  import path from "node:path";
3
+ import { fileIdentityKey, isFilePathWithinRoot } from "../paths.js";
3
4
  import { fileExists } from "../workspace.js";
5
+ export const JVM_PACKAGE_MANIFEST_NAMES = [
6
+ "pom.xml",
7
+ "build.gradle",
8
+ "build.gradle.kts",
9
+ "settings.gradle",
10
+ "settings.gradle.kts",
11
+ ];
12
+ export const CSHARP_PACKAGE_MANIFEST_NAMES = ["*.csproj"];
13
+ export const PHP_PACKAGE_MANIFEST_NAMES = ["composer.json"];
14
+ export const PYTHON_PACKAGE_MANIFEST_NAMES = ["pyproject.toml", "setup.py", "setup.cfg", "Pipfile"];
15
+ function isExtensionManifestPattern(name) {
16
+ return name.startsWith("*.") && !name.includes("/") && !name.includes("\\");
17
+ }
18
+ /**
19
+ * A symlink counts as a manifest when `stat` follows it to a regular file.
20
+ * Directories, directory links, and dangling links are not manifests.
21
+ */
22
+ async function direntIsManifestFile(entry, fullPath) {
23
+ if (entry.isFile())
24
+ return true;
25
+ if (entry.isDirectory())
26
+ return false;
27
+ try {
28
+ const st = await fsp.stat(fullPath);
29
+ return st.isFile();
30
+ }
31
+ catch {
32
+ return false;
33
+ }
34
+ }
35
+ async function findExtensionManifestInDir(dir, suffix) {
36
+ let entries;
37
+ try {
38
+ entries = await fsp.readdir(dir, { withFileTypes: true });
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ const matches = [];
44
+ for (const entry of entries) {
45
+ if (!entry.name.toLowerCase().endsWith(suffix))
46
+ continue;
47
+ const fullPath = path.join(dir, entry.name);
48
+ if (await direntIsManifestFile(entry, fullPath))
49
+ matches.push(entry.name);
50
+ }
51
+ const first = sortManifestMatches(dir, suffix, matches)[0];
52
+ if (!first)
53
+ return null;
54
+ return path.join(dir, first);
55
+ }
56
+ /**
57
+ * Deterministic tie-break for a directory holding several extension-manifest matches.
58
+ * `readdir` order is filesystem- and locale-dependent (`*.csproj` can match both `App.csproj`
59
+ * and `App.Core.csproj`), so the winner must not depend on it. Prefer the manifest whose stem
60
+ * equals the directory name, because the primary project file is conventionally named after its
61
+ * directory; then fall back to code-unit name order, which is identical on every platform.
62
+ */
63
+ function sortManifestMatches(dir, suffix, names) {
64
+ const dirName = path.basename(dir).toLowerCase();
65
+ return names.sort((a, b) => {
66
+ const aPreferred = a.slice(0, a.length - suffix.length).toLowerCase() === dirName;
67
+ const bPreferred = b.slice(0, b.length - suffix.length).toLowerCase() === dirName;
68
+ if (aPreferred !== bPreferred)
69
+ return aPreferred ? -1 : 1;
70
+ if (a < b)
71
+ return -1;
72
+ if (a > b)
73
+ return 1;
74
+ return 0;
75
+ });
76
+ }
4
77
  export async function findNearestFile(startDir, stopDir, fileName) {
78
+ return await findNearestManifest(startDir, stopDir, [fileName]);
79
+ }
80
+ export async function findNearestManifest(startDir, stopDir, names) {
5
81
  let dir = path.resolve(startDir);
6
82
  const stop = path.resolve(stopDir);
83
+ const stopKey = fileIdentityKey(stop);
7
84
  while (true) {
8
- const candidate = path.join(dir, fileName);
9
- if (await fileExists(candidate))
10
- return candidate;
11
- if (dir === stop)
85
+ for (const name of names) {
86
+ if (isExtensionManifestPattern(name)) {
87
+ const suffix = name.slice(1).toLowerCase();
88
+ const hit = await findExtensionManifestInDir(dir, suffix);
89
+ if (hit)
90
+ return hit;
91
+ continue;
92
+ }
93
+ const candidate = path.join(dir, name);
94
+ if (await fileExists(candidate))
95
+ return candidate;
96
+ }
97
+ if (dir === stop || fileIdentityKey(dir) === stopKey)
12
98
  break;
13
99
  const parent = path.dirname(dir);
14
100
  if (parent === dir)
15
101
  break;
102
+ if (!isFilePathWithinRoot(stop, parent) && fileIdentityKey(parent) !== stopKey)
103
+ break;
16
104
  dir = parent;
17
105
  }
18
106
  return null;
19
107
  }
108
+ export async function resolveNearestManifestRoot(projectRoot, fromFile, names) {
109
+ const resolvedRoot = path.resolve(projectRoot);
110
+ // Empty or out-of-root importers fall back here, not by omitting `fromFile` at call sites.
111
+ if (!fromFile)
112
+ return resolvedRoot;
113
+ const startDir = path.dirname(path.resolve(fromFile));
114
+ const startKey = fileIdentityKey(startDir);
115
+ const rootKey = fileIdentityKey(resolvedRoot);
116
+ if (startKey !== rootKey && !isFilePathWithinRoot(resolvedRoot, startDir)) {
117
+ return resolvedRoot;
118
+ }
119
+ const manifest = await findNearestManifest(startDir, resolvedRoot, names);
120
+ if (!manifest)
121
+ return resolvedRoot;
122
+ return path.dirname(path.resolve(manifest));
123
+ }
20
124
  export async function isDirectory(p) {
21
125
  try {
22
126
  const st = await fsp.stat(p);
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/util/resolution/files.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAe,EAAE,QAAgB;IACvF,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAClD,IAAI,GAAG,KAAK,IAAI;YAAE,MAAM;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAS;IACzC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/util/resolution/files.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
+ export declare function findGoPackageEntry(dirPath: string): Promise<string | null>;
1
2
  export declare function resolveGoImportPath(projectRoot: string, fromFile: string, spec: string): Promise<string | null>;
2
3
  //# sourceMappingURL=go.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/go.ts"],"names":[],"mappings":"AAkIA,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwCrH"}
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/go.ts"],"names":[],"mappings":"AAmFA,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBhF;AA6BD,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwCrH"}
@@ -2,6 +2,7 @@ import fs from "node:fs";
2
2
  import fsp from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import { unquote } from "../ast.js";
5
+ import { stripBom } from "../paths.js";
5
6
  import { fileExists } from "../workspace.js";
6
7
  import { findNearestFile } from "./files.js";
7
8
  function stripInlineComment(line) {
@@ -12,7 +13,7 @@ async function parseGoMod(moduleRoot) {
12
13
  const modPath = path.join(moduleRoot, "go.mod");
13
14
  if (!(await fileExists(modPath)))
14
15
  return null;
15
- const raw = await fsp.readFile(modPath, "utf8");
16
+ const raw = stripBom(await fsp.readFile(modPath, "utf8"));
16
17
  const lines = raw.split(/\r?\n/);
17
18
  let modulePath = null;
18
19
  const replacements = new Map();
@@ -48,7 +49,7 @@ async function parseGoMod(moduleRoot) {
48
49
  };
49
50
  }
50
51
  async function parseGoWork(goWorkPath) {
51
- const content = await fsp.readFile(goWorkPath, "utf8");
52
+ const content = stripBom(await fsp.readFile(goWorkPath, "utf8"));
52
53
  const lines = content.split(/\r?\n/);
53
54
  const modules = [];
54
55
  let inUseBlock = false;
@@ -75,7 +76,7 @@ async function parseGoWork(goWorkPath) {
75
76
  }
76
77
  return modules.filter(Boolean);
77
78
  }
78
- async function findGoPackageEntry(dirPath) {
79
+ export async function findGoPackageEntry(dirPath) {
79
80
  try {
80
81
  const stat = await fsp.stat(dirPath);
81
82
  if (!stat.isDirectory())
@@ -1 +1 @@
1
- {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/util/resolution/go.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/util/resolution/go.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- export declare function resolveJvmPackageImportPaths(projectRoot: string, spec: string, languageId: "java" | "kotlin"): Promise<string[]>;
2
- export declare function resolveKotlinImportPath(projectRoot: string, spec: string): Promise<string | null>;
3
- export declare function resolveJavaImportPath(projectRoot: string, spec: string): Promise<string | null>;
1
+ export declare function resolveJvmPackageImportPaths(projectRoot: string, spec: string, languageId: "java" | "kotlin", fromFile: string): Promise<string[]>;
2
+ export declare function resolveKotlinImportPath(projectRoot: string, spec: string, fromFile: string): Promise<string | null>;
3
+ export declare function resolveJavaImportPath(projectRoot: string, spec: string, fromFile: string): Promise<string | null>;
4
4
  export declare function clearJvmResolutionCaches(): void;
5
5
  //# sourceMappingURL=jvm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jvm.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/jvm.ts"],"names":[],"mappings":"AA8HA,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GAAG,QAAQ,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC,CAInB;AAED,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BvG;AAED,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmCrG;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAO/C"}
1
+ {"version":3,"file":"jvm.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/jvm.ts"],"names":[],"mappings":"AAsJA,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GAAG,QAAQ,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,EAAE,CAAC,CAUnB;AA8DD,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAO/C"}
@@ -1,7 +1,10 @@
1
1
  import fsp from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { buildProjectSymbolIndex, getOrCreateProjectSymbolIndex, } from "./project-symbols.js";
3
+ import { buildDeclaredContainerIndex, getOrCreateProjectSymbolIndex, } from "./project-symbols.js";
4
4
  import { JAVA_IDENTIFIER_IGNORABLE_SOURCE, JAVA_IDENTIFIER_SOURCE, KOTLIN_IDENTIFIER_SOURCE } from "../identifiers.js";
5
+ import { confineResolvedPath, readUtf8WithoutBom } from "../paths.js";
6
+ import { getImportableLanguageGlobs } from "../resolution-candidates.js";
7
+ import { JVM_PACKAGE_MANIFEST_NAMES, resolveNearestManifestRoot } from "./files.js";
5
8
  const KOTLIN_PACKAGE_PATTERN = new RegExp(String.raw `^\s*package\s+(${KOTLIN_IDENTIFIER_SOURCE}(?:\.${KOTLIN_IDENTIFIER_SOURCE})*)`, "mu");
6
9
  const KOTLIN_DECLARATION_PATTERN = new RegExp(String.raw `\b(?:class|object|fun|typealias|interface)\s+(${KOTLIN_IDENTIFIER_SOURCE})`, "gu");
7
10
  const JAVA_PACKAGE_PATTERN = new RegExp(String.raw `^\s*package\s+(${JAVA_IDENTIFIER_SOURCE}(?:\.${JAVA_IDENTIFIER_SOURCE})*)\s*;`, "mu");
@@ -17,7 +20,7 @@ async function readJvmSymbolIndex(filePath, cache, options) {
17
20
  const cached = cache.get(filePath);
18
21
  if (cached)
19
22
  return cached;
20
- const source = await fsp.readFile(filePath, "utf8");
23
+ const source = await readUtf8WithoutBom(filePath);
21
24
  const packageName = source.match(options.packagePattern)?.[1] ?? null;
22
25
  const symbols = new Set();
23
26
  for (const match of source.matchAll(options.declarationPattern)) {
@@ -46,84 +49,117 @@ async function readJavaSymbolIndex(filePath) {
46
49
  normalizeSymbol: (symbol) => symbol.replace(JAVA_IDENTIFIER_IGNORABLE_PATTERN, ""),
47
50
  });
48
51
  }
49
- async function getJvmLanguageProjectSymbolIndex(projectRoot, cache, includeGlobs, readSymbolIndex) {
50
- return await getOrCreateProjectSymbolIndex(cache, projectRoot, async () => await buildProjectSymbolIndex(projectRoot, includeGlobs, readSymbolIndex));
52
+ async function getJvmLanguageProjectSymbolIndex(indexRoot, cache, languageId, readSymbolIndex) {
53
+ return await getOrCreateProjectSymbolIndex(cache, indexRoot, async () => buildDeclaredContainerIndex(indexRoot, getImportableLanguageGlobs(languageId), async (filePath) => {
54
+ const entry = await readSymbolIndex(filePath);
55
+ if (entry.packageName === null)
56
+ return [];
57
+ return [{ name: entry.packageName, symbols: entry.symbols }];
58
+ }));
51
59
  }
52
- async function getKotlinProjectSymbolIndex(projectRoot) {
53
- return await getJvmLanguageProjectSymbolIndex(projectRoot, kotlinProjectSymbolIndexCache, ["**/*.kt", "**/*.kts"], readKotlinSymbolIndex);
60
+ async function getKotlinProjectSymbolIndex(indexRoot) {
61
+ return await getJvmLanguageProjectSymbolIndex(indexRoot, kotlinProjectSymbolIndexCache, "kotlin", readKotlinSymbolIndex);
54
62
  }
55
- async function getJavaProjectSymbolIndex(projectRoot) {
56
- return await getJvmLanguageProjectSymbolIndex(projectRoot, javaProjectSymbolIndexCache, ["**/*.java"], readJavaSymbolIndex);
63
+ async function getJavaProjectSymbolIndex(indexRoot) {
64
+ return await getJvmLanguageProjectSymbolIndex(indexRoot, javaProjectSymbolIndexCache, "java", readJavaSymbolIndex);
57
65
  }
58
- async function getJvmProjectSymbolIndex(projectRoot, languageId) {
66
+ async function getJvmProjectSymbolIndex(indexRoot, languageId) {
59
67
  if (languageId === "kotlin") {
60
- return await getKotlinProjectSymbolIndex(projectRoot);
68
+ return await getKotlinProjectSymbolIndex(indexRoot);
61
69
  }
62
- return await getJavaProjectSymbolIndex(projectRoot);
70
+ return await getJavaProjectSymbolIndex(indexRoot);
63
71
  }
64
- export async function resolveJvmPackageImportPaths(projectRoot, spec, languageId) {
65
- const projectIndex = await getJvmProjectSymbolIndex(projectRoot, languageId);
72
+ async function confineJvmResolvedPath(projectRoot, resolved) {
73
+ const confined = await confineResolvedPath(projectRoot, resolved);
74
+ if (!confined)
75
+ return null;
76
+ try {
77
+ const st = await fsp.stat(confined);
78
+ if (st.isDirectory())
79
+ return null;
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ return confined;
85
+ }
86
+ async function jvmIndexRoot(projectRoot, fromFile) {
87
+ return await resolveNearestManifestRoot(projectRoot, fromFile, JVM_PACKAGE_MANIFEST_NAMES);
88
+ }
89
+ export async function resolveJvmPackageImportPaths(projectRoot, spec, languageId, fromFile) {
90
+ const indexRoot = await jvmIndexRoot(projectRoot, fromFile);
91
+ const projectIndex = await getJvmProjectSymbolIndex(indexRoot, languageId);
66
92
  const packageCandidates = projectIndex.filesByPackage.get(spec) ?? [];
67
- return packageCandidates.map((candidate) => path.resolve(candidate));
93
+ const confined = [];
94
+ for (const candidate of packageCandidates) {
95
+ const hit = await confineJvmResolvedPath(projectRoot, candidate);
96
+ if (hit)
97
+ confined.push(hit);
98
+ }
99
+ return confined;
68
100
  }
69
- export async function resolveKotlinImportPath(projectRoot, spec) {
70
- const cacheKey = `${projectRoot}::${spec}`;
71
- const cached = kotlinImportResolutionCache.get(cacheKey);
101
+ async function resolveJvmImportPath(projectRoot, spec, options) {
102
+ const cache = options.languageId === "kotlin" ? kotlinImportResolutionCache : javaImportResolutionCache;
103
+ const indexRoot = await jvmIndexRoot(projectRoot, options.fromFile);
104
+ const cacheKey = `${path.resolve(projectRoot)}::${indexRoot}::${spec}`;
105
+ const cached = cache.get(cacheKey);
72
106
  if (cached !== undefined)
73
107
  return cached;
74
108
  const parts = spec.split(".").filter(Boolean);
75
- const projectIndex = await getKotlinProjectSymbolIndex(projectRoot);
109
+ const projectIndex = await getJvmProjectSymbolIndex(indexRoot, options.languageId);
76
110
  if (parts.length < 2) {
111
+ if (!options.allowBarePackage) {
112
+ cache.set(cacheKey, null);
113
+ return null;
114
+ }
77
115
  const packageCandidates = projectIndex.filesByPackage.get(spec) ?? [];
78
- const resolved = packageCandidates[0] ? path.resolve(packageCandidates[0]) : null;
79
- kotlinImportResolutionCache.set(cacheKey, resolved);
116
+ const resolved = await confineJvmResolvedPath(projectRoot, packageCandidates[0] ? path.resolve(packageCandidates[0]) : null);
117
+ cache.set(cacheKey, resolved);
80
118
  return resolved;
81
119
  }
82
- const importedName = parts[parts.length - 1];
83
- const packageName = parts.slice(0, -1).join(".");
84
- const packageCandidates = projectIndex.filesByPackage.get(packageName) ?? [];
85
- if (importedName === "*") {
86
- const resolved = packageCandidates[0] ? path.resolve(packageCandidates[0]) : null;
87
- kotlinImportResolutionCache.set(cacheKey, resolved);
88
- return resolved;
89
- }
90
- const symbolFiles = projectIndex.filesByPackageSymbol.get(packageName)?.get(importedName) ?? [];
91
- const resolved = symbolFiles.length === 1 ? path.resolve(symbolFiles[0]) : null;
92
- kotlinImportResolutionCache.set(cacheKey, resolved);
93
- return resolved;
94
- }
95
- export async function resolveJavaImportPath(projectRoot, spec) {
96
- const cacheKey = `${projectRoot}::${spec}`;
97
- const cached = javaImportResolutionCache.get(cacheKey);
98
- if (cached !== undefined)
99
- return cached;
100
- const parts = spec.split(".").filter(Boolean);
101
- if (parts.length < 2) {
102
- javaImportResolutionCache.set(cacheKey, null);
103
- return null;
104
- }
105
- const projectIndex = await getJavaProjectSymbolIndex(projectRoot);
106
- const exactPackageFiles = projectIndex.filesByPackage.get(spec) ?? [];
107
- if (exactPackageFiles[0]) {
108
- const resolved = path.resolve(exactPackageFiles[0]);
109
- javaImportResolutionCache.set(cacheKey, resolved);
110
- return resolved;
120
+ if (options.matchExactPackage) {
121
+ const exactPackageFiles = projectIndex.filesByPackage.get(spec) ?? [];
122
+ if (exactPackageFiles[0]) {
123
+ const resolved = await confineJvmResolvedPath(projectRoot, path.resolve(exactPackageFiles[0]));
124
+ cache.set(cacheKey, resolved);
125
+ return resolved;
126
+ }
111
127
  }
112
128
  const importedName = parts[parts.length - 1];
113
129
  const packageName = parts.slice(0, -1).join(".");
114
130
  const packageCandidates = projectIndex.filesByPackage.get(packageName) ?? [];
115
131
  if (importedName === "*") {
116
- const resolved = packageCandidates[0] ? path.resolve(packageCandidates[0]) : null;
117
- javaImportResolutionCache.set(cacheKey, resolved);
132
+ const resolved = await confineJvmResolvedPath(projectRoot, packageCandidates[0] ? path.resolve(packageCandidates[0]) : null);
133
+ cache.set(cacheKey, resolved);
118
134
  return resolved;
119
135
  }
120
136
  const symbolFiles = projectIndex.filesByPackageSymbol.get(packageName)?.get(importedName) ?? [];
121
- const filenameMatched = packageCandidates.filter((candidate) => path.basename(candidate, ".java") === importedName);
137
+ const filenameMatched = options.filenameFallback
138
+ ? packageCandidates.filter((candidate) => path.parse(candidate).name === importedName)
139
+ : [];
122
140
  const candidates = symbolFiles.length ? symbolFiles : filenameMatched;
123
- const resolved = candidates.length === 1 ? path.resolve(candidates[0]) : null;
124
- javaImportResolutionCache.set(cacheKey, resolved);
141
+ const resolved = candidates.length === 1 ? await confineJvmResolvedPath(projectRoot, path.resolve(candidates[0])) : null;
142
+ cache.set(cacheKey, resolved);
125
143
  return resolved;
126
144
  }
145
+ export async function resolveKotlinImportPath(projectRoot, spec, fromFile) {
146
+ return await resolveJvmImportPath(projectRoot, spec, {
147
+ languageId: "kotlin",
148
+ allowBarePackage: true,
149
+ matchExactPackage: false,
150
+ filenameFallback: false,
151
+ fromFile,
152
+ });
153
+ }
154
+ export async function resolveJavaImportPath(projectRoot, spec, fromFile) {
155
+ return await resolveJvmImportPath(projectRoot, spec, {
156
+ languageId: "java",
157
+ allowBarePackage: false,
158
+ matchExactPackage: true,
159
+ filenameFallback: true,
160
+ fromFile,
161
+ });
162
+ }
127
163
  export function clearJvmResolutionCaches() {
128
164
  kotlinImportResolutionCache.clear();
129
165
  kotlinSymbolIndexCache.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"jvm.js","sourceRoot":"","sources":["../../../src/util/resolution/jvm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jvm.js","sourceRoot":"","sources":["../../../src/util/resolution/jvm.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,GAE9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACvH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,sBAAsB,GAAG,IAAI,MAAM,CACvC,MAAM,CAAC,GAAG,CAAA,kBAAkB,wBAAwB,QAAQ,wBAAwB,KAAK,EACzF,IAAI,CACL,CAAC;AACF,MAAM,0BAA0B,GAAG,IAAI,MAAM,CAC3C,MAAM,CAAC,GAAG,CAAA,iDAAiD,wBAAwB,GAAG,EACtF,IAAI,CACL,CAAC;AACF,MAAM,oBAAoB,GAAG,IAAI,MAAM,CACrC,MAAM,CAAC,GAAG,CAAA,kBAAkB,sBAAsB,QAAQ,sBAAsB,SAAS,EACzF,IAAI,CACL,CAAC;AACF,MAAM,wBAAwB,GAAG,IAAI,MAAM,CACzC,MAAM,CAAC,GAAG,CAAA,uDAAuD,sBAAsB,GAAG,EAC1F,IAAI,CACL,CAAC;AACF,MAAM,iCAAiC,GAAG,IAAI,MAAM,CAAC,IAAI,gCAAgC,GAAG,EAAE,IAAI,CAAC,CAAC;AAqBpG,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAyB,CAAC;AACrE,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAA+B,CAAC;AACtE,MAAM,6BAA6B,GAAG,IAAI,GAAG,EAA+C,CAAC;AAC7F,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAyB,CAAC;AACnE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA+B,CAAC;AACpE,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAA+C,CAAC;AAE3F,KAAK,UAAU,kBAAkB,CAC/B,QAAgB,EAChB,KAAuC,EACvC,OAAoC;IAEpC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACtE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAChE,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxB,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,UAAU,CAAC,CAAC;YAC/D,IAAI,gBAAgB;gBAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IACvC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IACnD,OAAO,MAAM,kBAAkB,CAAC,QAAQ,EAAE,sBAAsB,EAAE;QAChE,cAAc,EAAE,sBAAsB;QACtC,kBAAkB,EAAE,0BAA0B;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACjD,OAAO,MAAM,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,EAAE;QAC9D,cAAc,EAAE,oBAAoB;QACpC,kBAAkB,EAAE,wBAAwB;QAC5C,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC;KACnF,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gCAAgC,CAC7C,SAAiB,EACjB,KAAuD,EACvD,UAA6B,EAC7B,eAAmE;IAEnE,OAAO,MAAM,6BAA6B,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,CACtE,2BAA2B,CAAC,SAAS,EAAE,0BAA0B,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAChG,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,KAAK,CAAC,WAAW,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC1C,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,SAAiB;IAC1D,OAAO,MAAM,gCAAgC,CAC3C,SAAS,EACT,6BAA6B,EAC7B,QAAQ,EACR,qBAAqB,CACtB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,SAAiB;IACxD,OAAO,MAAM,gCAAgC,CAAC,SAAS,EAAE,2BAA2B,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;AACrH,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,SAAiB,EACjB,UAA6B;IAE7B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,yBAAyB,CAAC,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,WAAmB,EAAE,QAAuB;IAChF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClE,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,EAAE,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,QAAgB;IAC/D,OAAO,MAAM,0BAA0B,CAAC,WAAW,EAAE,QAAQ,EAAE,0BAA0B,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,WAAmB,EACnB,IAAY,EACZ,UAA6B,EAC7B,QAAgB;IAEhB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3E,MAAM,iBAAiB,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACjE,IAAI,GAAG;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,WAAmB,EACnB,IAAY,EACZ,OAAmC;IAEnC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,yBAAyB,CAAC;IACxG,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS,KAAK,IAAI,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACnF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9B,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,iBAAiB,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAC3C,WAAW,EACX,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACjE,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,iBAAiB,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtE,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/F,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC9B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,iBAAiB,GAAG,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAE7E,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAC3C,WAAW,EACX,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACjE,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAChG,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB;QAC9C,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;QACtF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;IACtE,MAAM,QAAQ,GACZ,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3G,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,IAAY,EACZ,QAAgB;IAEhB,OAAO,MAAM,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE;QACnD,UAAU,EAAE,QAAQ;QACpB,gBAAgB,EAAE,IAAI;QACtB,iBAAiB,EAAE,KAAK;QACxB,gBAAgB,EAAE,KAAK;QACvB,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,IAAY,EACZ,QAAgB;IAEhB,OAAO,MAAM,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE;QACnD,UAAU,EAAE,MAAM;QAClB,gBAAgB,EAAE,KAAK;QACvB,iBAAiB,EAAE,IAAI;QACvB,gBAAgB,EAAE,IAAI;QACtB,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,2BAA2B,CAAC,KAAK,EAAE,CAAC;IACpC,sBAAsB,CAAC,KAAK,EAAE,CAAC;IAC/B,6BAA6B,CAAC,KAAK,EAAE,CAAC;IACtC,yBAAyB,CAAC,KAAK,EAAE,CAAC;IAClC,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC7B,2BAA2B,CAAC,KAAK,EAAE,CAAC;AACtC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import path from "node:path";
2
2
  import { findFirstExistingResolutionCandidate } from "./find-first-existing.js";
3
3
  import { resolvePackageExportTargets } from "../package-exports.js";
4
- import { fileIdentityKey, isFilePathWithinRoot } from "../paths.js";
4
+ import { confineResolvedPath, fileIdentityKey, isFilePathWithinRoot } from "../paths.js";
5
5
  import { directoryExists, loadJSON } from "../workspace.js";
6
6
  export async function resolveFromNodeModules(spec, fromFile, projectRoot, resolutionExtensions, exportCondition = "import") {
7
7
  try {
@@ -18,7 +18,7 @@ export async function resolveFromNodeModules(spec, fromFile, projectRoot, resolu
18
18
  const pkg = await loadJSON(pkgPath);
19
19
  const tryResolveRelative = async (rel) => {
20
20
  const hit = await findFirstExistingResolutionCandidate(path.resolve(nmDir, rel), resolutionExtensions);
21
- return hit && isFilePathWithinRoot(resolvedProjectRoot, hit) ? hit : null;
21
+ return await confineResolvedPath(resolvedProjectRoot, hit);
22
22
  };
23
23
  if (pkg && Object.hasOwn(pkg, "exports")) {
24
24
  const exportKey = subpath ? `./${subpath}` : ".";
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/util/resolution/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/util/resolution/node.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,oCAAoC,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAmC,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAA2B,MAAM,iBAAiB,CAAC;AAErF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAY,EACZ,QAAgB,EAChB,WAAmB,EACnB,oBAAwC,EACxC,kBAA8C,QAAQ;IAEtD,IAAI,CAAC;QACH,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;QAC5D,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3F,OAAO,oBAAoB,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;YAC1D,IAAI,MAAM,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;gBACjD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAqB,OAAO,CAAC,CAAC;gBACxD,MAAM,kBAAkB,GAAG,KAAK,EAAE,GAAW,EAA0B,EAAE;oBACvE,MAAM,GAAG,GAAG,MAAM,oCAAoC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,oBAAoB,CAAC,CAAC;oBACvG,OAAO,MAAM,mBAAmB,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC,CAAC;gBAEF,IAAI,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;oBACzC,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;oBACjD,KAAK,MAAM,MAAM,IAAI,2BAA2B,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC;wBAC1F,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;wBAC7C,IAAI,GAAG;4BAAE,OAAO,GAAG,CAAC;oBACtB,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,IAAI,OAAO,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAC9C,IAAI,GAAG;wBAAE,OAAO,GAAG,CAAC;gBACtB,CAAC;gBACD,IAAI,OAAO,GAAG,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAClC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACnD,IAAI,OAAO;wBAAE,OAAO,OAAO,CAAC;gBAC9B,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,QAAQ;oBAAE,OAAO,QAAQ,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,cAAc;gBAAE,MAAM;YACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,CAAC;gBAAE,MAAM;YAC9D,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uBAAuB;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"php-composer.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/php-composer.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AA6DF,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA8CnG;AAMD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAepH;AAYD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAepH;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKvG;AAED,wBAAsB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB1G;AAED,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,iBAAiB,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAiFtB;AA4BD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,GAAG,OAAO,CAK1G;AAED,wBAAgB,gCAAgC,IAAI,IAAI,CAGvD"}
1
+ {"version":3,"file":"php-composer.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/php-composer.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AA6DF,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA8CnG;AAMD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAepH;AAYD,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAepH;AAED,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKvG;AAED,wBAAsB,2BAA2B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB1G;AAED,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,iBAAiB,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAiFtB;AA4BD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,GAAG,OAAO,CAK1G;AAED,wBAAgB,gCAAgC,IAAI,IAAI,CAGvD"}
@@ -1,10 +1,11 @@
1
1
  import fsp from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { normalizePath } from "../paths.js";
3
+ import { normalizePath, stripBom } from "../paths.js";
4
4
  import { listProjectFiles } from "../project-files.js";
5
5
  import { fileExists } from "../workspace.js";
6
6
  import { findFirstExistingResolutionCandidate } from "./find-first-existing.js";
7
7
  import { findNearestFile } from "./files.js";
8
+ import { fileHasImportableLanguageExtension, getImportableLanguageExtensions, getImportableLanguageGlobs, } from "../resolution-candidates.js";
8
9
  const phpComposerConfigCache = new Map();
9
10
  const phpComposerAutoloadFileCache = new Map();
10
11
  function readComposerNamespaceDirs(value, composerDir) {
@@ -60,7 +61,7 @@ export async function loadPhpComposerConfig(composerPath) {
60
61
  const pending = (async () => {
61
62
  try {
62
63
  const raw = await fsp.readFile(composerPath, "utf8");
63
- const parsed = JSON.parse(raw);
64
+ const parsed = JSON.parse(stripBom(raw));
64
65
  const composerDir = path.dirname(composerPath);
65
66
  const autoload = parsed.autoload && typeof parsed.autoload === "object" ? parsed.autoload : {};
66
67
  const autoloadDev = parsed["autoload-dev"] && typeof parsed["autoload-dev"] === "object"
@@ -102,7 +103,7 @@ export async function resolvePhpPsr4MappedPath(spec, mappings) {
102
103
  const suffix = normalizedSpec.slice(prefix.length).replace(/\\/g, "/");
103
104
  for (const dir of dirs) {
104
105
  const basePath = suffix ? path.join(dir, suffix) : dir;
105
- const resolved = await findFirstExistingResolutionCandidate(basePath, [".php"]);
106
+ const resolved = await findFirstExistingResolutionCandidate(basePath, getImportableLanguageExtensions("php"));
106
107
  if (resolved)
107
108
  return resolved;
108
109
  }
@@ -128,7 +129,7 @@ export async function resolvePhpPsr0MappedPath(spec, mappings) {
128
129
  continue;
129
130
  for (const dir of dirs) {
130
131
  const basePath = relativePath ? path.join(dir, relativePath) : dir;
131
- const resolved = await findFirstExistingResolutionCandidate(basePath, [".php"]);
132
+ const resolved = await findFirstExistingResolutionCandidate(basePath, getImportableLanguageExtensions("php"));
132
133
  if (resolved)
133
134
  return resolved;
134
135
  }
@@ -204,7 +205,7 @@ export async function getPhpComposerAutoloadFiles(composerPath, composerConfig)
204
205
  try {
205
206
  const stat = await fsp.stat(root.path);
206
207
  if (stat.isDirectory()) {
207
- const files = await listProjectFiles(root.path, ["**/*.php"]);
208
+ const files = await listProjectFiles(root.path, getImportableLanguageGlobs("php"));
208
209
  for (const filePath of files) {
209
210
  if (!(await phpFileMatchesNamespacePrefixes(filePath, root.namespacePrefixes))) {
210
211
  continue;
@@ -216,7 +217,7 @@ export async function getPhpComposerAutoloadFiles(composerPath, composerConfig)
216
217
  }
217
218
  continue;
218
219
  }
219
- if (stat.isFile() && root.path.toLowerCase().endsWith(".php")) {
220
+ if (stat.isFile() && fileHasImportableLanguageExtension(root.path, "php")) {
220
221
  if (!(await phpFileMatchesNamespacePrefixes(root.path, root.namespacePrefixes)))
221
222
  continue;
222
223
  if (root.applyClassmapExcludes && isPhpComposerClassmapExcluded(root.path, composerConfig))
@@ -244,7 +245,7 @@ async function phpFileMatchesNamespacePrefixes(filePath, namespacePrefixes) {
244
245
  }
245
246
  let source;
246
247
  try {
247
- source = await fsp.readFile(filePath, "utf8");
248
+ source = stripBom(await fsp.readFile(filePath, "utf8"));
248
249
  }
249
250
  catch {
250
251
  return false;