@lzehrung/codegraph 2.3.29 → 2.3.31

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 (324) hide show
  1. package/dist/bin/cli.js +6602 -4453
  2. package/dist/bin/query-index-worker.js +1302 -753
  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 +8 -3
  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/edge-passes.d.ts.map +1 -1
  33. package/dist/graphs/symbol-graph-detailed/edge-passes.js +118 -86
  34. package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
  35. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +27 -0
  36. package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
  37. package/dist/graphs/symbol-graph-detailed/receiver-calls.js +509 -42
  38. package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
  39. package/dist/impact/call-compatibility/providers/index.d.ts +15 -1
  40. package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
  41. package/dist/impact/call-compatibility/providers/index.js +21 -20
  42. package/dist/impact/call-compatibility/providers/index.js.map +1 -1
  43. package/dist/impact/call-compatibility/providers/profiles.d.ts +80 -0
  44. package/dist/impact/call-compatibility/providers/profiles.d.ts.map +1 -0
  45. package/dist/impact/call-compatibility/providers/profiles.js +164 -0
  46. package/dist/impact/call-compatibility/providers/profiles.js.map +1 -0
  47. package/dist/impact/call-compatibility.d.ts.map +1 -1
  48. package/dist/impact/call-compatibility.js +73 -108
  49. package/dist/impact/call-compatibility.js.map +1 -1
  50. package/dist/impact/member-resolution-coverage.d.ts.map +1 -1
  51. package/dist/impact/member-resolution-coverage.js +2 -2
  52. package/dist/impact/member-resolution-coverage.js.map +1 -1
  53. package/dist/indexer/build-cache/manifest.d.ts +7 -0
  54. package/dist/indexer/build-cache/manifest.d.ts.map +1 -1
  55. package/dist/indexer/build-cache/manifest.js +32 -1
  56. package/dist/indexer/build-cache/manifest.js.map +1 -1
  57. package/dist/indexer/build-cache/options.d.ts +16 -2
  58. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  59. package/dist/indexer/build-cache/options.js +17 -3
  60. package/dist/indexer/build-cache/options.js.map +1 -1
  61. package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
  62. package/dist/indexer/build-cache/project-snapshot.js +1 -0
  63. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  64. package/dist/indexer/build-index.d.ts.map +1 -1
  65. package/dist/indexer/build-index.js +80 -2
  66. package/dist/indexer/build-index.js.map +1 -1
  67. package/dist/indexer/build-manifest.d.ts +1 -0
  68. package/dist/indexer/build-manifest.d.ts.map +1 -1
  69. package/dist/indexer/build-manifest.js +18 -0
  70. package/dist/indexer/build-manifest.js.map +1 -1
  71. package/dist/indexer/build-workers.js +1 -1
  72. package/dist/indexer/build-workers.js.map +1 -1
  73. package/dist/indexer/declaration-visibility.d.ts +43 -0
  74. package/dist/indexer/declaration-visibility.d.ts.map +1 -0
  75. package/dist/indexer/declaration-visibility.js +202 -0
  76. package/dist/indexer/declaration-visibility.js.map +1 -0
  77. package/dist/indexer/imports/binding-ranges.d.ts +2 -2
  78. package/dist/indexer/imports/binding-ranges.d.ts.map +1 -1
  79. package/dist/indexer/imports/binding-ranges.js +2 -123
  80. package/dist/indexer/imports/binding-ranges.js.map +1 -1
  81. package/dist/indexer/imports/import-binding-tables.d.ts +64 -0
  82. package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -0
  83. package/dist/indexer/imports/import-binding-tables.js +419 -0
  84. package/dist/indexer/imports/import-binding-tables.js.map +1 -0
  85. package/dist/indexer/imports/js-text-imports.d.ts.map +1 -1
  86. package/dist/indexer/imports/js-text-imports.js +5 -2
  87. package/dist/indexer/imports/js-text-imports.js.map +1 -1
  88. package/dist/indexer/imports/language-specific.d.ts +3 -22
  89. package/dist/indexer/imports/language-specific.d.ts.map +1 -1
  90. package/dist/indexer/imports/language-specific.js +54 -573
  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/imports.d.ts.map +1 -1
  100. package/dist/indexer/imports.js +2 -1
  101. package/dist/indexer/imports.js.map +1 -1
  102. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  103. package/dist/indexer/locals-and-exports.js +23 -27
  104. package/dist/indexer/locals-and-exports.js.map +1 -1
  105. package/dist/indexer/navigation-goto.d.ts +1 -7
  106. package/dist/indexer/navigation-goto.d.ts.map +1 -1
  107. package/dist/indexer/navigation-goto.js +181 -381
  108. package/dist/indexer/navigation-goto.js.map +1 -1
  109. package/dist/indexer/navigation-resolve.d.ts.map +1 -1
  110. package/dist/indexer/navigation-resolve.js +20 -1
  111. package/dist/indexer/navigation-resolve.js.map +1 -1
  112. package/dist/indexer/navigation.d.ts.map +1 -1
  113. package/dist/indexer/navigation.js +39 -7
  114. package/dist/indexer/navigation.js.map +1 -1
  115. package/dist/indexer/parse-context.js +2 -2
  116. package/dist/indexer/parse-context.js.map +1 -1
  117. package/dist/indexer/scope-nodes.d.ts +108 -0
  118. package/dist/indexer/scope-nodes.d.ts.map +1 -0
  119. package/dist/indexer/scope-nodes.js +238 -0
  120. package/dist/indexer/scope-nodes.js.map +1 -0
  121. package/dist/indexer/scope.d.ts.map +1 -1
  122. package/dist/indexer/scope.js +70 -130
  123. package/dist/indexer/scope.js.map +1 -1
  124. package/dist/indexer/types.d.ts +7 -0
  125. package/dist/indexer/types.d.ts.map +1 -1
  126. package/dist/languages/definitions/c-family.d.ts +18 -4
  127. package/dist/languages/definitions/c-family.d.ts.map +1 -1
  128. package/dist/languages/definitions/c-family.js +51 -13
  129. package/dist/languages/definitions/c-family.js.map +1 -1
  130. package/dist/languages/definitions/c.d.ts.map +1 -1
  131. package/dist/languages/definitions/c.js +7 -43
  132. package/dist/languages/definitions/c.js.map +1 -1
  133. package/dist/languages/definitions/cpp.d.ts.map +1 -1
  134. package/dist/languages/definitions/cpp.js +15 -61
  135. package/dist/languages/definitions/cpp.js.map +1 -1
  136. package/dist/languages/definitions/csharp.d.ts.map +1 -1
  137. package/dist/languages/definitions/csharp.js +46 -52
  138. package/dist/languages/definitions/csharp.js.map +1 -1
  139. package/dist/languages/definitions/css-like.d.ts.map +1 -1
  140. package/dist/languages/definitions/css-like.js +13 -10
  141. package/dist/languages/definitions/css-like.js.map +1 -1
  142. package/dist/languages/definitions/go.d.ts.map +1 -1
  143. package/dist/languages/definitions/go.js +29 -42
  144. package/dist/languages/definitions/go.js.map +1 -1
  145. package/dist/languages/definitions/html.d.ts.map +1 -1
  146. package/dist/languages/definitions/html.js +15 -14
  147. package/dist/languages/definitions/html.js.map +1 -1
  148. package/dist/languages/definitions/java.d.ts.map +1 -1
  149. package/dist/languages/definitions/java.js +42 -48
  150. package/dist/languages/definitions/java.js.map +1 -1
  151. package/dist/languages/definitions/javascript.d.ts.map +1 -1
  152. package/dist/languages/definitions/javascript.js +26 -54
  153. package/dist/languages/definitions/javascript.js.map +1 -1
  154. package/dist/languages/definitions/js-family.d.ts +15 -1
  155. package/dist/languages/definitions/js-family.d.ts.map +1 -1
  156. package/dist/languages/definitions/js-family.js +51 -0
  157. package/dist/languages/definitions/js-family.js.map +1 -1
  158. package/dist/languages/definitions/kotlin.d.ts.map +1 -1
  159. package/dist/languages/definitions/kotlin.js +26 -43
  160. package/dist/languages/definitions/kotlin.js.map +1 -1
  161. package/dist/languages/definitions/php.d.ts.map +1 -1
  162. package/dist/languages/definitions/php.js +50 -60
  163. package/dist/languages/definitions/php.js.map +1 -1
  164. package/dist/languages/definitions/python.d.ts.map +1 -1
  165. package/dist/languages/definitions/python.js +23 -14
  166. package/dist/languages/definitions/python.js.map +1 -1
  167. package/dist/languages/definitions/ruby.d.ts.map +1 -1
  168. package/dist/languages/definitions/ruby.js +14 -17
  169. package/dist/languages/definitions/ruby.js.map +1 -1
  170. package/dist/languages/definitions/rust.d.ts.map +1 -1
  171. package/dist/languages/definitions/rust.js +30 -52
  172. package/dist/languages/definitions/rust.js.map +1 -1
  173. package/dist/languages/definitions/scss.d.ts.map +1 -1
  174. package/dist/languages/definitions/scss.js +33 -49
  175. package/dist/languages/definitions/scss.js.map +1 -1
  176. package/dist/languages/definitions/sfc-graph.d.ts +4 -0
  177. package/dist/languages/definitions/sfc-graph.d.ts.map +1 -0
  178. package/dist/languages/definitions/sfc-graph.js +16 -0
  179. package/dist/languages/definitions/sfc-graph.js.map +1 -0
  180. package/dist/languages/definitions/shared.d.ts +33 -0
  181. package/dist/languages/definitions/shared.d.ts.map +1 -0
  182. package/dist/languages/definitions/shared.js +63 -0
  183. package/dist/languages/definitions/shared.js.map +1 -0
  184. package/dist/languages/definitions/sql.d.ts.map +1 -1
  185. package/dist/languages/definitions/sql.js +1 -0
  186. package/dist/languages/definitions/sql.js.map +1 -1
  187. package/dist/languages/definitions/svelte.d.ts.map +1 -1
  188. package/dist/languages/definitions/svelte.js +2 -10
  189. package/dist/languages/definitions/svelte.js.map +1 -1
  190. package/dist/languages/definitions/swift.d.ts.map +1 -1
  191. package/dist/languages/definitions/swift.js +37 -31
  192. package/dist/languages/definitions/swift.js.map +1 -1
  193. package/dist/languages/definitions/typescript.d.ts.map +1 -1
  194. package/dist/languages/definitions/typescript.js +56 -90
  195. package/dist/languages/definitions/typescript.js.map +1 -1
  196. package/dist/languages/definitions/vue.d.ts.map +1 -1
  197. package/dist/languages/definitions/vue.js +2 -10
  198. package/dist/languages/definitions/vue.js.map +1 -1
  199. package/dist/languages/definitions/zig.d.ts.map +1 -1
  200. package/dist/languages/definitions/zig.js +9 -15
  201. package/dist/languages/definitions/zig.js.map +1 -1
  202. package/dist/languages/graph-captures.d.ts +40 -0
  203. package/dist/languages/graph-captures.d.ts.map +1 -0
  204. package/dist/languages/graph-captures.js +46 -0
  205. package/dist/languages/graph-captures.js.map +1 -0
  206. package/dist/languages/import-statement-parsers.d.ts +17 -0
  207. package/dist/languages/import-statement-parsers.d.ts.map +1 -1
  208. package/dist/languages/import-statement-parsers.js +108 -0
  209. package/dist/languages/import-statement-parsers.js.map +1 -1
  210. package/dist/languages/js-family.d.ts +2 -0
  211. package/dist/languages/js-family.d.ts.map +1 -1
  212. package/dist/languages/js-family.js +15 -6
  213. package/dist/languages/js-family.js.map +1 -1
  214. package/dist/languages/types.d.ts +4 -0
  215. package/dist/languages/types.d.ts.map +1 -1
  216. package/dist/languages/types.js +1 -1
  217. package/dist/languages/types.js.map +1 -1
  218. package/dist/languages.js +1 -1
  219. package/dist/languages.js.map +1 -1
  220. package/dist/native/contracts.d.ts +1 -1
  221. package/dist/native/contracts.d.ts.map +1 -1
  222. package/dist/native/js-bridge.d.ts +10 -0
  223. package/dist/native/js-bridge.d.ts.map +1 -1
  224. package/dist/native/js-bridge.js +10 -0
  225. package/dist/native/js-bridge.js.map +1 -1
  226. package/dist/native/native-backend-report.d.ts.map +1 -1
  227. package/dist/native/native-backend-report.js +2 -0
  228. package/dist/native/native-backend-report.js.map +1 -1
  229. package/dist/util/comments.d.ts +7 -7
  230. package/dist/util/comments.d.ts.map +1 -1
  231. package/dist/util/comments.js +15 -214
  232. package/dist/util/comments.js.map +1 -1
  233. package/dist/util/dynamic-import-tables.d.ts +88 -0
  234. package/dist/util/dynamic-import-tables.d.ts.map +1 -0
  235. package/dist/util/dynamic-import-tables.js +100 -0
  236. package/dist/util/dynamic-import-tables.js.map +1 -0
  237. package/dist/util/lines.d.ts.map +1 -1
  238. package/dist/util/lines.js +4 -1
  239. package/dist/util/lines.js.map +1 -1
  240. package/dist/util/member-access-tables.d.ts +72 -0
  241. package/dist/util/member-access-tables.d.ts.map +1 -0
  242. package/dist/util/member-access-tables.js +167 -0
  243. package/dist/util/member-access-tables.js.map +1 -0
  244. package/dist/util/member-access.d.ts +2 -0
  245. package/dist/util/member-access.d.ts.map +1 -1
  246. package/dist/util/member-access.js +61 -95
  247. package/dist/util/member-access.js.map +1 -1
  248. package/dist/util/paths.d.ts +4 -0
  249. package/dist/util/paths.d.ts.map +1 -1
  250. package/dist/util/paths.js +26 -0
  251. package/dist/util/paths.js.map +1 -1
  252. package/dist/util/project-files.js +1 -1
  253. package/dist/util/project-files.js.map +1 -1
  254. package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
  255. package/dist/util/resolution/cargo-targets.js +17 -14
  256. package/dist/util/resolution/cargo-targets.js.map +1 -1
  257. package/dist/util/resolution/cpp.d.ts +6 -0
  258. package/dist/util/resolution/cpp.d.ts.map +1 -0
  259. package/dist/util/resolution/cpp.js +69 -0
  260. package/dist/util/resolution/cpp.js.map +1 -0
  261. package/dist/util/resolution/csharp.d.ts +4 -3
  262. package/dist/util/resolution/csharp.d.ts.map +1 -1
  263. package/dist/util/resolution/csharp.js +27 -113
  264. package/dist/util/resolution/csharp.js.map +1 -1
  265. package/dist/util/resolution/files.d.ts +6 -0
  266. package/dist/util/resolution/files.d.ts.map +1 -1
  267. package/dist/util/resolution/files.js +108 -4
  268. package/dist/util/resolution/files.js.map +1 -1
  269. package/dist/util/resolution/go.d.ts +1 -0
  270. package/dist/util/resolution/go.d.ts.map +1 -1
  271. package/dist/util/resolution/go.js +4 -3
  272. package/dist/util/resolution/go.js.map +1 -1
  273. package/dist/util/resolution/jvm.d.ts +3 -3
  274. package/dist/util/resolution/jvm.d.ts.map +1 -1
  275. package/dist/util/resolution/jvm.js +90 -54
  276. package/dist/util/resolution/jvm.js.map +1 -1
  277. package/dist/util/resolution/node.js +2 -2
  278. package/dist/util/resolution/node.js.map +1 -1
  279. package/dist/util/resolution/php-composer.d.ts.map +1 -1
  280. package/dist/util/resolution/php-composer.js +8 -7
  281. package/dist/util/resolution/php-composer.js.map +1 -1
  282. package/dist/util/resolution/php.d.ts.map +1 -1
  283. package/dist/util/resolution/php.js +30 -43
  284. package/dist/util/resolution/php.js.map +1 -1
  285. package/dist/util/resolution/project-symbols.d.ts +5 -7
  286. package/dist/util/resolution/project-symbols.d.ts.map +1 -1
  287. package/dist/util/resolution/project-symbols.js +23 -9
  288. package/dist/util/resolution/project-symbols.js.map +1 -1
  289. package/dist/util/resolution/python.d.ts.map +1 -1
  290. package/dist/util/resolution/python.js +107 -62
  291. package/dist/util/resolution/python.js.map +1 -1
  292. package/dist/util/resolution/rust.d.ts.map +1 -1
  293. package/dist/util/resolution/rust.js +45 -34
  294. package/dist/util/resolution/rust.js.map +1 -1
  295. package/dist/util/resolution/tsconfig.d.ts.map +1 -1
  296. package/dist/util/resolution/tsconfig.js +3 -9
  297. package/dist/util/resolution/tsconfig.js.map +1 -1
  298. package/dist/util/resolution-candidates.d.ts +5 -1
  299. package/dist/util/resolution-candidates.d.ts.map +1 -1
  300. package/dist/util/resolution-candidates.js +18 -0
  301. package/dist/util/resolution-candidates.js.map +1 -1
  302. package/dist/util/resolution.d.ts.map +1 -1
  303. package/dist/util/resolution.js +93 -49
  304. package/dist/util/resolution.js.map +1 -1
  305. package/dist/util/specifiers.d.ts +4 -10
  306. package/dist/util/specifiers.d.ts.map +1 -1
  307. package/dist/util/specifiers.js +131 -165
  308. package/dist/util/specifiers.js.map +1 -1
  309. package/dist/util/trivia-tables.d.ts +69 -0
  310. package/dist/util/trivia-tables.d.ts.map +1 -0
  311. package/dist/util/trivia-tables.js +186 -0
  312. package/dist/util/trivia-tables.js.map +1 -0
  313. package/dist/util/trivia.d.ts +24 -0
  314. package/dist/util/trivia.d.ts.map +1 -0
  315. package/dist/util/trivia.js +621 -0
  316. package/dist/util/trivia.js.map +1 -0
  317. package/dist/util.d.ts +1 -1
  318. package/dist/util.d.ts.map +1 -1
  319. package/dist/util.js +1 -1
  320. package/dist/util.js.map +1 -1
  321. package/dist/worker/native-extract-worker.d.ts.map +1 -1
  322. package/dist/worker/native-extract-worker.js +4 -4
  323. package/dist/worker/native-extract-worker.js.map +1 -1
  324. package/package.json +3 -3
@@ -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":"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"}
@@ -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":"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"}
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"php-composer.js","sourceRoot":"","sources":["../../../src/util/resolution/php-composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"php-composer.js","sourceRoot":"","sources":["../../../src/util/resolution/php-composer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/php.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAmfhE,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyDxB;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C"}
1
+ {"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/php.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAuehE,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4ExB;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAK/C"}
@@ -1,11 +1,12 @@
1
- import fsp from "node:fs/promises";
2
1
  import path from "node:path";
3
- import { mapLimitSemaphore } from "../concurrency.js";
4
2
  import { findFirstExistingResolutionCandidate } from "./find-first-existing.js";
5
3
  import { clearPhpComposerResolutionCaches, findPhpComposerPath, getPhpComposerAutoloadFiles, loadPhpComposerConfig, resolvePhpPsr0MappedPath, resolvePhpPsr4MappedPath, } from "./php-composer.js";
6
4
  export { getPhpComposerImplicitFiles } from "./php-composer.js";
7
- import { addProjectSymbolFile, getOrCreateProjectSymbolIndex, listProjectLanguageFiles, sortProjectSymbolIndex, } from "./project-symbols.js";
5
+ import { buildDeclaredContainerIndex, getOrCreateProjectSymbolIndex, } from "./project-symbols.js";
6
+ import { getImportableLanguageExtensions, getImportableLanguageGlobs } from "../resolution-candidates.js";
7
+ import { confineResolvedPath, readUtf8WithoutBom } from "../paths.js";
8
8
  import { PHP_IDENTIFIER_SOURCE } from "../identifiers.js";
9
+ import { PHP_PACKAGE_MANIFEST_NAMES, resolveNearestManifestRoot } from "./files.js";
9
10
  const PHP_IDENTIFIER_PATTERN = new RegExp(PHP_IDENTIFIER_SOURCE, "uy");
10
11
  async function resolvePhpPathLikeSpecifier(projectRoot, fromFile, spec) {
11
12
  let base = path.resolve(path.dirname(fromFile), spec);
@@ -15,55 +16,36 @@ async function resolvePhpPathLikeSpecifier(projectRoot, fromFile, spec) {
15
16
  else if (spec.startsWith("/")) {
16
17
  base = path.join(projectRoot, spec);
17
18
  }
18
- return await findFirstExistingResolutionCandidate(base, [".php"]);
19
+ return await confineResolvedPath(projectRoot, await findFirstExistingResolutionCandidate(base, getImportableLanguageExtensions("php")));
19
20
  }
20
21
  async function resolvePathLikePhpModule(projectRoot, spec) {
21
22
  const parts = spec.split(/[/.:]+/).filter(Boolean);
22
23
  for (let i = parts.length; i > 0; i--) {
23
24
  const sub = parts.slice(0, i);
24
25
  const basePath = path.join(projectRoot, ...sub);
25
- const fileHit = await findFirstExistingResolutionCandidate(basePath, [".php"]);
26
+ const fileHit = await findFirstExistingResolutionCandidate(basePath, getImportableLanguageExtensions("php"));
26
27
  if (fileHit)
27
- return fileHit;
28
+ return await confineResolvedPath(projectRoot, fileHit);
28
29
  }
29
30
  return null;
30
31
  }
31
32
  const phpImportResolutionCache = new Map();
32
33
  const phpSymbolIndexCache = new Map();
33
34
  const phpProjectSymbolIndexCache = new Map();
34
- async function getPhpProjectSymbolIndex(projectRoot) {
35
- return await getOrCreateProjectSymbolIndex(phpProjectSymbolIndexCache, projectRoot, async () => {
36
- const files = await listProjectLanguageFiles(projectRoot, ["**/*.php"]);
37
- const index = {
38
- files,
39
- filesByPackage: new Map(),
40
- filesByPackageSymbol: new Map(),
41
- };
42
- const indexEntries = await mapLimitSemaphore(files, 8, async (filePath) => {
43
- try {
44
- const entry = await readPhpSymbolIndex(filePath);
45
- return { filePath, entry };
46
- }
47
- catch {
48
- return null;
49
- }
50
- });
51
- for (const indexEntry of indexEntries) {
52
- if (!indexEntry)
53
- continue;
54
- for (const packageEntry of indexEntry.entry.packageEntries) {
55
- addProjectSymbolFile(index, packageEntry.packageName, indexEntry.filePath, packageEntry.symbols);
56
- }
57
- }
58
- sortProjectSymbolIndex(index);
59
- return index;
60
- });
35
+ async function getPhpProjectSymbolIndex(indexRoot) {
36
+ return await getOrCreateProjectSymbolIndex(phpProjectSymbolIndexCache, indexRoot, async () => buildDeclaredContainerIndex(indexRoot, getImportableLanguageGlobs("php"), async (filePath) => {
37
+ const entry = await readPhpSymbolIndex(filePath);
38
+ return entry.packageEntries.map((packageEntry) => ({
39
+ name: packageEntry.packageName,
40
+ symbols: packageEntry.symbols,
41
+ }));
42
+ }));
61
43
  }
62
44
  async function readPhpSymbolIndex(filePath) {
63
45
  const cached = phpSymbolIndexCache.get(filePath);
64
46
  if (cached)
65
47
  return cached;
66
- const source = await fsp.readFile(filePath, "utf8");
48
+ const source = await readUtf8WithoutBom(filePath);
67
49
  const packageEntries = extractPhpTopLevelPackageEntries(source);
68
50
  const primaryEntry = packageEntries[0] ?? {
69
51
  packageName: "",
@@ -399,13 +381,15 @@ function tokenizePhpSource(source) {
399
381
  }
400
382
  return tokens;
401
383
  }
402
- async function resolvePhpSymbolImportPath(projectRoot, spec, preferredKind, allowedFiles) {
384
+ async function resolvePhpSymbolImportPath(projectRoot, spec, preferredKind, allowedFiles, indexRoot) {
403
385
  const normalizedSpec = spec.replace(/^\\+/, "");
404
- const projectIndex = await getPhpProjectSymbolIndex(projectRoot);
386
+ const projectIndex = await getPhpProjectSymbolIndex(indexRoot ?? projectRoot);
405
387
  const pickCandidate = async (candidates, symbolName) => {
406
388
  for (const candidate of candidates) {
407
- const resolvedCandidate = path.resolve(candidate);
408
- if (allowedFiles && !allowedFiles.has(resolvedCandidate)) {
389
+ const resolvedCandidate = await confineResolvedPath(projectRoot, candidate);
390
+ if (!resolvedCandidate)
391
+ continue;
392
+ if (allowedFiles && !allowedFiles.has(resolvedCandidate) && !allowedFiles.has(path.resolve(candidate))) {
409
393
  continue;
410
394
  }
411
395
  if (!symbolName || !preferredKind) {
@@ -455,23 +439,26 @@ export async function resolvePhpImportPath(projectRoot, fromFile, spec, preferre
455
439
  return fileResolved;
456
440
  }
457
441
  const composerPath = await findPhpComposerPath(projectRoot, fromFile);
442
+ const indexRoot = composerPath
443
+ ? path.dirname(path.resolve(composerPath))
444
+ : await resolveNearestManifestRoot(projectRoot, fromFile, PHP_PACKAGE_MANIFEST_NAMES);
458
445
  if (composerPath) {
459
446
  const composerConfig = await loadPhpComposerConfig(composerPath);
460
447
  if (composerConfig) {
461
448
  if (!preferredKind || preferredKind === "class") {
462
- const psr4Resolved = await resolvePhpPsr4MappedPath(normalizedSpec, composerConfig.psr4);
449
+ const psr4Resolved = await confineResolvedPath(projectRoot, await resolvePhpPsr4MappedPath(normalizedSpec, composerConfig.psr4));
463
450
  if (psr4Resolved) {
464
451
  phpImportResolutionCache.set(cacheKey, psr4Resolved);
465
452
  return psr4Resolved;
466
453
  }
467
- const psr0Resolved = await resolvePhpPsr0MappedPath(normalizedSpec, composerConfig.psr0);
454
+ const psr0Resolved = await confineResolvedPath(projectRoot, await resolvePhpPsr0MappedPath(normalizedSpec, composerConfig.psr0));
468
455
  if (psr0Resolved) {
469
456
  phpImportResolutionCache.set(cacheKey, psr0Resolved);
470
457
  return psr0Resolved;
471
458
  }
472
459
  }
473
460
  const autoloadFiles = await getPhpComposerAutoloadFiles(composerPath, composerConfig);
474
- const symbolResolved = await resolvePhpSymbolImportPath(projectRoot, normalizedSpec, preferredKind, autoloadFiles);
461
+ const symbolResolved = await resolvePhpSymbolImportPath(projectRoot, normalizedSpec, preferredKind, autoloadFiles, indexRoot);
475
462
  if (symbolResolved) {
476
463
  phpImportResolutionCache.set(cacheKey, symbolResolved);
477
464
  return symbolResolved;
@@ -480,12 +467,12 @@ export async function resolvePhpImportPath(projectRoot, fromFile, spec, preferre
480
467
  return null;
481
468
  }
482
469
  }
483
- const symbolResolved = await resolvePhpSymbolImportPath(projectRoot, normalizedSpec, preferredKind);
470
+ const symbolResolved = await resolvePhpSymbolImportPath(projectRoot, normalizedSpec, preferredKind, undefined, indexRoot);
484
471
  if (symbolResolved) {
485
472
  phpImportResolutionCache.set(cacheKey, symbolResolved);
486
473
  return symbolResolved;
487
474
  }
488
- const pathLikeResolved = await resolvePathLikePhpModule(projectRoot, normalizedSpec.replace(/\\/g, "/"));
475
+ const pathLikeResolved = await confineResolvedPath(projectRoot, await resolvePathLikePhpModule(projectRoot, normalizedSpec.replace(/\\/g, "/")));
489
476
  phpImportResolutionCache.set(cacheKey, pathLikeResolved);
490
477
  return pathLikeResolved;
491
478
  }