@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,3 +1,4 @@
1
+ import { buildTriviaMask, maskTrivia, stripTrivia } from "./trivia.js";
1
2
  export function stripHashInlineComment(line, trimMode) {
2
3
  let quote = null;
3
4
  for (let i = 0; i < line.length; i += 1) {
@@ -18,191 +19,15 @@ export function stripHashInlineComment(line, trimMode) {
18
19
  }
19
20
  return trimMode === "trim" ? line.trim() : line;
20
21
  }
21
- function transformJsLikeTrivia(src, options) {
22
- let out = "";
23
- let i = 0;
24
- let inSingle = false;
25
- let inDouble = false;
26
- let inTemplate = false;
27
- let escapeNext = false;
28
- const maskStrings = options?.maskStrings ?? false;
29
- const preserveLength = options?.preserveLength ?? false;
30
- const maskedChar = (ch) => (ch === "\n" || ch === "\r" ? ch : " ");
31
- while (i < src.length) {
32
- const ch = src[i];
33
- const next = src[i + 1] ?? "";
34
- if (inSingle || inDouble || inTemplate) {
35
- const isClosingQuote = !escapeNext && ((inSingle && ch === "'") || (inDouble && ch === '"') || (inTemplate && ch === "`"));
36
- if (maskStrings) {
37
- out += isClosingQuote ? ch : maskedChar(ch);
38
- }
39
- else {
40
- out += ch;
41
- }
42
- if (escapeNext) {
43
- escapeNext = false;
44
- }
45
- else if (ch === "\\") {
46
- escapeNext = true;
47
- }
48
- else if (inSingle && ch === "'") {
49
- inSingle = false;
50
- }
51
- else if (inDouble && ch === '"') {
52
- inDouble = false;
53
- }
54
- else if (inTemplate && ch === "`") {
55
- inTemplate = false;
56
- }
57
- i += 1;
58
- continue;
59
- }
60
- if (ch === "'") {
61
- inSingle = true;
62
- out += ch;
63
- i += 1;
64
- continue;
65
- }
66
- if (ch === '"') {
67
- inDouble = true;
68
- out += ch;
69
- i += 1;
70
- continue;
71
- }
72
- if (ch === "`") {
73
- inTemplate = true;
74
- out += ch;
75
- i += 1;
76
- continue;
77
- }
78
- if (ch === "/" && next === "*") {
79
- if (preserveLength)
80
- out += " ";
81
- i += 2;
82
- let depth = 1;
83
- while (i < src.length && depth > 0) {
84
- if (options?.nestedBlockComments && src[i] === "/" && src[i + 1] === "*") {
85
- if (preserveLength)
86
- out += " ";
87
- depth += 1;
88
- i += 2;
89
- continue;
90
- }
91
- if (src[i] === "*" && src[i + 1] === "/") {
92
- if (preserveLength)
93
- out += " ";
94
- depth -= 1;
95
- i += 2;
96
- continue;
97
- }
98
- if (preserveLength)
99
- out += maskedChar(src[i]);
100
- else if (src[i] === "\n")
101
- out += "\n";
102
- i += 1;
103
- }
104
- continue;
105
- }
106
- if (ch === "/" && next === "/") {
107
- if (preserveLength)
108
- out += " ";
109
- i += 2;
110
- while (i < src.length && src[i] !== "\n") {
111
- if (preserveLength)
112
- out += " ";
113
- i += 1;
114
- }
115
- continue;
116
- }
117
- out += ch;
118
- i += 1;
119
- }
120
- return out;
121
- }
122
22
  export function stripJsLikeComments(src) {
123
- return transformJsLikeTrivia(src, { preserveLength: true });
23
+ return maskTrivia(src, "js", { maskStrings: false });
124
24
  }
125
25
  export function maskJsLikeCommentsAndStrings(src) {
126
- return transformJsLikeTrivia(src, {
127
- maskStrings: true,
128
- preserveLength: true,
129
- });
26
+ return maskTrivia(src, "js");
130
27
  }
131
28
  function hasJsLikeLiteralDelimiter(source) {
132
29
  return source.includes("'") || source.includes('"') || source.includes("`") || source.includes("/");
133
30
  }
134
- export function maskNestedBlockCommentsAndStrings(src) {
135
- return transformJsLikeTrivia(src, {
136
- maskStrings: true,
137
- nestedBlockComments: true,
138
- preserveLength: true,
139
- });
140
- }
141
- function maskQuotedString(source, mask, start, quote) {
142
- for (let i = start; i < source.length; i += 1) {
143
- const ch = source[i];
144
- mask[i] = 1;
145
- if (ch === "\\") {
146
- const nextIndex = i + 1;
147
- if (nextIndex < source.length) {
148
- mask[nextIndex] = 1;
149
- i = nextIndex;
150
- }
151
- continue;
152
- }
153
- if (i > start && ch === quote)
154
- return i + 1;
155
- }
156
- return source.length;
157
- }
158
- function maskTemplateLiteral(source, mask, start) {
159
- mask[start] = 1;
160
- for (let i = start + 1; i < source.length; i += 1) {
161
- const ch = source[i];
162
- mask[i] = 1;
163
- if (ch === "\\") {
164
- const nextIndex = i + 1;
165
- if (nextIndex < source.length) {
166
- mask[nextIndex] = 1;
167
- i = nextIndex;
168
- }
169
- continue;
170
- }
171
- if (ch === "`")
172
- return i + 1;
173
- if (ch === "$" && source[i + 1] === "{") {
174
- mask[i + 1] = 1;
175
- i = scanTemplateExpression(source, mask, i + 2) - 1;
176
- }
177
- }
178
- return source.length;
179
- }
180
- function scanTemplateExpression(source, mask, start) {
181
- let depth = 1;
182
- for (let i = start; i < source.length; i += 1) {
183
- const ch = source[i];
184
- if (ch === "'" || ch === '"') {
185
- i = maskQuotedString(source, mask, i, ch) - 1;
186
- continue;
187
- }
188
- if (ch === "`") {
189
- i = maskTemplateLiteral(source, mask, i) - 1;
190
- continue;
191
- }
192
- if (ch === "{") {
193
- depth += 1;
194
- continue;
195
- }
196
- if (ch === "}") {
197
- depth -= 1;
198
- if (!depth) {
199
- mask[i] = 1;
200
- return i + 1;
201
- }
202
- }
203
- }
204
- return source.length;
205
- }
206
31
  function previousVisibleIndex(source, mask, start) {
207
32
  for (let i = start; i >= 0; i -= 1) {
208
33
  if (mask[i])
@@ -309,18 +134,11 @@ function maskRegexLiteral(source, mask, start) {
309
134
  export function buildJsLikeLiteralMask(source) {
310
135
  if (!hasJsLikeLiteralDelimiter(source))
311
136
  return undefined;
312
- const mask = new Uint8Array(source.length);
137
+ const mask = buildTriviaMask(source, "js", { holes: true });
313
138
  for (let i = 0; i < source.length; i += 1) {
314
- const ch = source[i];
315
- if (ch === "'" || ch === '"') {
316
- i = maskQuotedString(source, mask, i, ch) - 1;
317
- continue;
318
- }
319
- if (ch === "`") {
320
- i = maskTemplateLiteral(source, mask, i) - 1;
139
+ if (mask[i])
321
140
  continue;
322
- }
323
- if (ch === "/" && canStartRegex(source, mask, i)) {
141
+ if (source[i] === "/" && canStartRegex(source, mask, i)) {
324
142
  i = maskRegexLiteral(source, mask, i) - 1;
325
143
  }
326
144
  }
@@ -405,35 +223,18 @@ export function parseJsonc(raw) {
405
223
  return JSON.parse(stripJsonTrailingCommas(stripJsLikeComments(raw)));
406
224
  }
407
225
  export function stripPythonCommentsAndStrings(src) {
408
- let out = src;
409
- out = out.replace(/([rRuU]?[fF]?)("""|''')[\s\S]*?\2/g, "");
410
- out = out.replace(/([rRuU]?[fF]?)("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')/g, "");
411
- out = out.replace(/#.*$/gm, "");
412
- return out;
413
- }
414
- function maskMatchPreservingNewlines(match) {
415
- let out = "";
416
- for (const character of match) {
417
- // Iterate by code point (not UTF-16 unit) so an astral character inside a masked
418
- // comment/string is replaced by exactly as many space units as it occupied, keeping
419
- // every later offset in `src` aligned with the masked output.
420
- out += character === "\n" ? "\n" : " ".repeat(character.length);
421
- }
422
- return out;
226
+ return stripTrivia(src, "python");
423
227
  }
424
228
  /**
425
- * Same matching as {@link stripPythonCommentsAndStrings}, but blanks comment/string content
426
- * to same-length whitespace (preserving embedded newlines) instead of deleting it. Callers
427
- * that need to map a regex match position in the masked text back to an exact offset in the
428
- * original source -- rather than only using the masked text to avoid false-positive matches
429
- * inside unrelated strings/comments -- must use this instead; `stripPythonCommentsAndStrings`
430
- * is not offset-preserving.
229
+ * Blanks Python comments and string literals to same-length whitespace (preserving embedded
230
+ * newlines) instead of deleting them. Callers that need to map a regex match position in the
231
+ * masked text back to an exact offset in the original source -- rather than only using the
232
+ * masked text to avoid false-positive matches inside unrelated strings/comments -- must use
233
+ * this instead; `stripPythonCommentsAndStrings` is not offset-preserving. Unlike the previous
234
+ * regex implementation, comments are masked before string literals are located, so an
235
+ * apostrophe inside a comment can no longer open a string literal.
431
236
  */
432
237
  export function maskPythonCommentsAndStrings(src) {
433
- let out = src;
434
- out = out.replace(/([rRuU]?[fF]?)("""|''')[\s\S]*?\2/g, maskMatchPreservingNewlines);
435
- out = out.replace(/([rRuU]?[fF]?)("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')/g, maskMatchPreservingNewlines);
436
- out = out.replace(/#.*$/gm, maskMatchPreservingNewlines);
437
- return out;
238
+ return maskTrivia(src, "python");
438
239
  }
439
240
  //# sourceMappingURL=comments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/util/comments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/util/comments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Per-language dynamic-import adapters for the runner in `./specifiers.js`.
3
+ *
4
+ * The runner and the shared constant-path fold stay in `./specifiers.js`; this module owns
5
+ * only the per-language call shapes and the path-fold profiles they name. The runner builds
6
+ * the table once and injects its fold implementations (`DynamicImportFoldHelpers`), so the
7
+ * two modules never import each other at runtime and no cycle forms.
8
+ */
9
+ /** Root a folded constant path is resolved against: the file's directory, the file itself,
10
+ * or the project root. */
11
+ export type DynamicBase = "fileDir" | "filePath" | "project";
12
+ /** A folded constant path: one rooted base plus its literal segments. */
13
+ export type FoldedPath = {
14
+ base: DynamicBase;
15
+ segments: string[];
16
+ };
17
+ /** Resolves a folded path against the root its base names. */
18
+ export type FoldedPathResolver = (folded: FoldedPath, fromFile: string, projectRoot: string) => string | null;
19
+ /**
20
+ * Per-language inputs to the shared constant-path fold: the base tokens that root a computed
21
+ * path and the join-style helper calls that combine a base with literal segments. Tokens are
22
+ * compared after whitespace removal, so `dirname(__FILE__)` and `process.cwd()` fold like
23
+ * identifiers. Languages without a concatenation operator only fold join-helper arguments.
24
+ */
25
+ export type PathFoldProfile = {
26
+ bases: Readonly<Record<string, DynamicBase>>;
27
+ joinHelpers: readonly string[];
28
+ /** Top-level concatenation operator between constant parts (PHP `.`). */
29
+ concat?: string;
30
+ };
31
+ export type DynamicImportPreparation = {
32
+ /** Python importlib alias tables collected once per file. */
33
+ pythonImportlibAliases?: Set<string>;
34
+ pythonImportModuleAliases?: Set<string>;
35
+ };
36
+ export type DynamicImportShapeContext = {
37
+ /** The text the shape's pattern ran over (comment-blanked for the JS family). */
38
+ text: string;
39
+ match: RegExpMatchArray;
40
+ fromFile: string;
41
+ projectRoot: string;
42
+ preparation: DynamicImportPreparation;
43
+ };
44
+ export type DynamicImportCallShape = {
45
+ /** Pattern over the entry's matching text; capture 1 holds the foldable argument, or the
46
+ * fold reads the argument from the match end (Python's escape-aware literal reader). */
47
+ pattern: RegExp;
48
+ fold: (context: DynamicImportShapeContext) => string | null;
49
+ };
50
+ export type DynamicImportEntry = {
51
+ /** Matching text, blanking comments through the shared trivia lexer where needed; string
52
+ * literals stay intact so folds can read their contents. */
53
+ text: (source: string) => string;
54
+ /** Non-code guard over the matching text; matches starting inside trivia are skipped. */
55
+ guard: (text: string) => Uint8Array | undefined;
56
+ /** Per-file preparation, evaluated once per extraction. */
57
+ prepare?: (source: string) => DynamicImportPreparation;
58
+ shapes: readonly DynamicImportCallShape[];
59
+ };
60
+ /**
61
+ * The shared fold implementation `./specifiers.js` injects. Keeping these as parameters rather
62
+ * than importing them is what keeps the entries here independent of the runner module.
63
+ */
64
+ export type DynamicImportFoldHelpers = {
65
+ /** Builds a shape fold that reads capture 1 as a constant path and resolves the fold. */
66
+ foldCapturedPath: (profile: PathFoldProfile, resolve: FoldedPathResolver) => (context: DynamicImportShapeContext) => string | null;
67
+ /** Folds a `new URL("...", import.meta.url)` argument list. */
68
+ foldNewUrlArgument: (argText: string, profile: PathFoldProfile) => FoldedPath | null;
69
+ resolveFoldedPathAgainstBase: FoldedPathResolver;
70
+ /** Resolves against the containing file's directory regardless of the named base. */
71
+ resolveFoldedPathAgainstFileDir: (folded: FoldedPath, fromFile: string) => string | null;
72
+ /** Resolves by concatenation onto the containing file's directory. */
73
+ resolveFoldedPathByConcatenation: (folded: FoldedPath, fromFile: string) => string | null;
74
+ /** Folds a Python dynamic-import call into a static module string. */
75
+ foldPythonDynamicModuleArgument: (source: string, match: RegExpMatchArray, preparation: DynamicImportPreparation) => string | null;
76
+ /** Collects the importlib alias tables a Python file's dynamic-import calls may use. */
77
+ collectPythonDynamicImportAliases: (source: string) => {
78
+ importlibAliases: Set<string>;
79
+ importModuleAliases: Set<string>;
80
+ };
81
+ };
82
+ /**
83
+ * Builds the dynamic-import adapter table keyed by registered language id. Callers supply the
84
+ * shared fold implementation; the per-file preparation and matching rules stay here with the
85
+ * language that needs them.
86
+ */
87
+ export declare function createDynamicImportEntries(folds: DynamicImportFoldHelpers): Readonly<Partial<Record<string, DynamicImportEntry>>>;
88
+ //# sourceMappingURL=dynamic-import-tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-import-tables.d.ts","sourceRoot":"","sources":["../../src/util/dynamic-import-tables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { buildJsLikeLiteralMask, stripJsLikeComments } from "./comments.js";
2
+ import { PYTHON_IDENTIFIER_SOURCE } from "./identifiers.js";
3
+ import { buildTriviaMask } from "./trivia.js";
4
+ const JS_PATH_FOLD_PROFILE = {
5
+ bases: {
6
+ __dirname: "fileDir",
7
+ __filename: "filePath",
8
+ "import.meta.url": "filePath",
9
+ "process.cwd()": "project",
10
+ },
11
+ joinHelpers: ["path.join", "path.resolve"],
12
+ };
13
+ const RUBY_PATH_FOLD_PROFILE = {
14
+ bases: { __dir__: "fileDir" },
15
+ joinHelpers: ["File.join"],
16
+ };
17
+ const PHP_PATH_FOLD_PROFILE = {
18
+ bases: { __DIR__: "fileDir", "dirname(__FILE__)": "fileDir" },
19
+ joinHelpers: [],
20
+ concat: ".",
21
+ };
22
+ const JS_DYNAMIC_PATH_CALL_PATTERN = /(?<!["'`])\b(?:require|import)\s*\(\s*(path\.(?:join|resolve)\s*\((?:[^()]|\([^()]*\))*\))\s*\)/g;
23
+ const JS_DYNAMIC_URL_CALL_PATTERN = /(?<!["'`])\b(?:require|import)\s*\(\s*(new\s+URL\s*\([^)]*\))\s*\)/g;
24
+ const RUBY_REQUIRE_FILE_JOIN_PATTERN = /(?<![\p{XID_Continue}])require\s*\(?\s*(File\.join\s*\((?:[^()]|\([^()]*\))*\))/gu;
25
+ const PHP_COMPUTED_INCLUDE_PATTERN = /(?<![\p{XID_Continue}$])(?:include_once|include|require_once|require)\b\s*\(?\s*([^;\r\n]*?)\s*\)?\s*;/gu;
26
+ const PYTHON_DYNAMIC_CALL_PREFIX_PATTERN = new RegExp(String.raw `(?<![._\p{XID_Continue}])(${PYTHON_IDENTIFIER_SOURCE})(?:\s*\.\s*(${PYTHON_IDENTIFIER_SOURCE}))?\s*\(\s*(?:name\s*=\s*)?`, "gmu");
27
+ /**
28
+ * Builds the dynamic-import adapter table keyed by registered language id. Callers supply the
29
+ * shared fold implementation; the per-file preparation and matching rules stay here with the
30
+ * language that needs them.
31
+ */
32
+ export function createDynamicImportEntries(folds) {
33
+ const JS_TS_DYNAMIC_IMPORT_ENTRY = {
34
+ // Comments are blanked before matching so a `require(...)` inside a comment cannot match;
35
+ // string literals stay intact because the fold reads their contents.
36
+ text: stripJsLikeComments,
37
+ guard: buildJsLikeLiteralMask,
38
+ shapes: [
39
+ {
40
+ pattern: JS_DYNAMIC_PATH_CALL_PATTERN,
41
+ fold: folds.foldCapturedPath(JS_PATH_FOLD_PROFILE, folds.resolveFoldedPathAgainstBase),
42
+ },
43
+ {
44
+ pattern: JS_DYNAMIC_URL_CALL_PATTERN,
45
+ fold: ({ match, fromFile }) => {
46
+ const folded = folds.foldNewUrlArgument(match[1] ?? "", JS_PATH_FOLD_PROFILE);
47
+ return folded ? folds.resolveFoldedPathAgainstFileDir(folded, fromFile) : null;
48
+ },
49
+ },
50
+ ],
51
+ };
52
+ const RUBY_DYNAMIC_IMPORT_ENTRY = {
53
+ text: (source) => source,
54
+ guard: (text) => buildTriviaMask(text, "ruby"),
55
+ shapes: [
56
+ {
57
+ // Only the computed `require File.join(__dir__, ...)` form is folded here; bare-string
58
+ // requires flow through the static pipeline and `$LOAD_PATH` lookups stay external.
59
+ pattern: RUBY_REQUIRE_FILE_JOIN_PATTERN,
60
+ fold: folds.foldCapturedPath(RUBY_PATH_FOLD_PROFILE, folds.resolveFoldedPathByConcatenation),
61
+ },
62
+ ],
63
+ };
64
+ const PHP_DYNAMIC_IMPORT_ENTRY = {
65
+ text: (source) => source,
66
+ guard: (text) => buildTriviaMask(text, "php"),
67
+ shapes: [
68
+ {
69
+ // Computed `include`/`require` whose path is a constant chain rooted at `__DIR__` (or
70
+ // the legacy `dirname(__FILE__)`); plain string operands stay with the static pipeline
71
+ // and the include-path search stays external.
72
+ pattern: PHP_COMPUTED_INCLUDE_PATTERN,
73
+ fold: folds.foldCapturedPath(PHP_PATH_FOLD_PROFILE, folds.resolveFoldedPathByConcatenation),
74
+ },
75
+ ],
76
+ };
77
+ const PYTHON_DYNAMIC_IMPORT_ENTRY = {
78
+ text: (source) => source,
79
+ guard: (text) => buildTriviaMask(text, "python"),
80
+ prepare: (source) => {
81
+ const { importlibAliases, importModuleAliases } = folds.collectPythonDynamicImportAliases(source);
82
+ return { pythonImportlibAliases: importlibAliases, pythonImportModuleAliases: importModuleAliases };
83
+ },
84
+ shapes: [
85
+ {
86
+ pattern: PYTHON_DYNAMIC_CALL_PREFIX_PATTERN,
87
+ fold: ({ text, match, preparation }) => folds.foldPythonDynamicModuleArgument(text, match, preparation),
88
+ },
89
+ ],
90
+ };
91
+ const entries = {
92
+ js: JS_TS_DYNAMIC_IMPORT_ENTRY,
93
+ ts: JS_TS_DYNAMIC_IMPORT_ENTRY,
94
+ python: PYTHON_DYNAMIC_IMPORT_ENTRY,
95
+ ruby: RUBY_DYNAMIC_IMPORT_ENTRY,
96
+ php: PHP_DYNAMIC_IMPORT_ENTRY,
97
+ };
98
+ return entries;
99
+ }
100
+ //# sourceMappingURL=dynamic-import-tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-import-tables.js","sourceRoot":"","sources":["../../src/util/dynamic-import-tables.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../src/util/lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMhE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAYlF"}
1
+ {"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../src/util/lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAShE;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,CAYlF"}
@@ -1,7 +1,10 @@
1
1
  export function collectLineStartOffsets(source) {
2
2
  const lineStarts = [0];
3
3
  for (let index = 0; index < source.length; index += 1) {
4
- if (source[index] === "\n")
4
+ const char = source[index];
5
+ // A lone carriage return ends a line; `\r\n` is ended by its `\n` alone, so the pair
6
+ // contributes one line start rather than two.
7
+ if (char === "\n" || (char === "\r" && source[index + 1] !== "\n"))
5
8
  lineStarts.push(index + 1);
6
9
  }
7
10
  return lineStarts;
@@ -1 +1 @@
1
- {"version":3,"file":"lines.js","sourceRoot":"","sources":["../../src/util/lines.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAA6B,EAAE,KAAa;IAC3E,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,UAAU,CAAC,MAAM,CAAE,IAAI,KAAK,EAAE,CAAC;YACjC,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"lines.js","sourceRoot":"","sources":["../../src/util/lines.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,qFAAqF;QACrF,8CAA8C;QAC9C,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAA6B,EAAE,KAAa;IAC3E,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,OAAO,GAAG,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,UAAU,CAAC,MAAM,CAAE,IAAI,KAAK,EAAE,CAAC;YACjC,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG,CAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;AACxE,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Per-language member-access and receiver-shape tables for `./member-access.ts` and the receiver
3
+ * pass in `../graphs/symbol-graph-detailed/receiver-calls.ts`. Rows are keyed by language id,
4
+ * following the trivia-table precedent in `./trivia-tables.ts`: the walkers keep the algorithm,
5
+ * the table keeps the per-language node types, extraction shapes, and receiver keywords.
6
+ *
7
+ * Every registered language has a row. A document, style, or data format row carries only
8
+ * `omittedReason`; a source-language row declares each capability it has and names a one-line
9
+ * reason for each capability it omits, so an omission cannot flip silently.
10
+ * `tests/member-access-tables.test.ts` asserts both halves and re-derives every declared node
11
+ * type from that language's pinned grammar.
12
+ */
13
+ /** Receiver spellings that denote the type declaring the calling member, per language. */
14
+ export type ReceiverKeywords = {
15
+ /** Keywords naming the type that declares the calling member. */
16
+ own: readonly string[];
17
+ /** Keywords naming a supertype of the declaring type. */
18
+ supertype: readonly string[];
19
+ };
20
+ /**
21
+ * How one child of a member-access node is extracted: by field name with a positional fallback,
22
+ * by plain child index, or by named-child index with a plain-child fallback.
23
+ */
24
+ export type MemberAccessChild = {
25
+ field: string;
26
+ fallbackIndex: number;
27
+ } | {
28
+ index: number;
29
+ } | {
30
+ namedIndex: number;
31
+ };
32
+ export type MemberAccessShape = {
33
+ /**
34
+ * Member-access node types the shape applies to. A shape without `nodeTypes` is the language's
35
+ * fallback for every other member-access node and must be the last shape in its row.
36
+ */
37
+ nodeTypes?: readonly string[];
38
+ object: MemberAccessChild;
39
+ /** `{ navigation: true }` defers to `getNavigationExpressionProperty`'s navigation-suffix walk. */
40
+ property: MemberAccessChild | {
41
+ navigation: true;
42
+ };
43
+ };
44
+ export type MemberAccessRow = {
45
+ /** Why the language has no member-access capability at all; only document, style, and data formats set it. */
46
+ omittedReason?: string;
47
+ /** Member-expression node type for a support whose `nodeTypes.memberExpression` capability is absent. */
48
+ memberExpressionType?: string;
49
+ /** Node types added to the shared traversal base set in `memberAccessTraversalTypes`. */
50
+ extraTraversalTypes?: readonly string[];
51
+ /** Node types added to the shared generic member-access list in `isMemberAccessNode`. */
52
+ extraMemberAccessTypes?: readonly string[];
53
+ /** Extraction shapes for `getMemberAccessParts`, tried in order before the shared generic default. */
54
+ memberAccessShapes?: readonly MemberAccessShape[];
55
+ /** Why the language declares no shapes of its own: the shared generic default is its extraction. */
56
+ memberAccessOmittedReason?: string;
57
+ /** Kotlin fallback: a degraded `navigation_suffix` leaves the property as the expression's last named child. */
58
+ navigationFallbackLastChild?: true;
59
+ /** Identifiers that name the type declaring the calling member. */
60
+ receiverKeywords?: ReceiverKeywords;
61
+ /** Why the language declares no receiver keywords. */
62
+ receiverKeywordsOmittedReason?: string;
63
+ };
64
+ export declare const MEMBER_ACCESS_ROWS: Record<string, MemberAccessRow>;
65
+ /** Every language that declares receiver keywords, guarded by the registry-consistency test. */
66
+ export declare const receiverKeywordLanguageIds: readonly string[];
67
+ /** Languages that emit proven receiver `calls` edges from the shared keyword table. */
68
+ export declare function supportsReceiverCallEdges(languageId: string): boolean;
69
+ /** Languages where goto and references require proven receivers and do not fall back to a bare name. */
70
+ export declare function supportsReceiverMemberNavigation(languageId: string): boolean;
71
+ export declare function isKeywordReceiver(languageId: string, receiverName: string): boolean;
72
+ //# sourceMappingURL=member-access-tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"member-access-tables.d.ts","sourceRoot":"","sources":["../../src/util/member-access-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,0FAA0F;AAC1F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iEAAiE;IACjE,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,yDAAyD;IACzD,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,mGAAmG;IACnG,QAAQ,EAAE,iBAAiB,GAAG;QAAE,UAAU,EAAE,IAAI,CAAA;KAAE,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,8GAA8G;IAC9G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yGAAyG;IACzG,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,yFAAyF;IACzF,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,yFAAyF;IACzF,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,sGAAsG;IACtG,kBAAkB,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,oGAAoG;IACpG,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,gHAAgH;IAChH,2BAA2B,CAAC,EAAE,IAAI,CAAC;IACnC,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,sDAAsD;IACtD,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,CAAC;AAkBF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAgI9D,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAEvD,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAErE;AAED,wGAAwG;AACxG,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAInF"}