@colbymchenry/codegraph-darwin-x64 0.9.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/lib/dist/bin/codegraph.d.ts +1 -0
  2. package/lib/dist/bin/codegraph.d.ts.map +1 -1
  3. package/lib/dist/bin/codegraph.js +246 -3
  4. package/lib/dist/bin/codegraph.js.map +1 -1
  5. package/lib/dist/context/index.d.ts.map +1 -1
  6. package/lib/dist/context/index.js +7 -0
  7. package/lib/dist/context/index.js.map +1 -1
  8. package/lib/dist/db/index.d.ts.map +1 -1
  9. package/lib/dist/db/index.js +2 -1
  10. package/lib/dist/db/index.js.map +1 -1
  11. package/lib/dist/db/migrations.d.ts +1 -1
  12. package/lib/dist/db/migrations.d.ts.map +1 -1
  13. package/lib/dist/db/migrations.js +10 -1
  14. package/lib/dist/db/migrations.js.map +1 -1
  15. package/lib/dist/db/queries.d.ts +43 -0
  16. package/lib/dist/db/queries.d.ts.map +1 -1
  17. package/lib/dist/db/queries.js +103 -7
  18. package/lib/dist/db/queries.js.map +1 -1
  19. package/lib/dist/db/schema.sql +1 -0
  20. package/lib/dist/db/sqlite-adapter.d.ts +7 -0
  21. package/lib/dist/db/sqlite-adapter.d.ts.map +1 -1
  22. package/lib/dist/db/sqlite-adapter.js +3 -0
  23. package/lib/dist/db/sqlite-adapter.js.map +1 -1
  24. package/lib/dist/directory.d.ts +34 -2
  25. package/lib/dist/directory.d.ts.map +1 -1
  26. package/lib/dist/directory.js +129 -35
  27. package/lib/dist/directory.js.map +1 -1
  28. package/lib/dist/extraction/astro-extractor.d.ts +79 -0
  29. package/lib/dist/extraction/astro-extractor.d.ts.map +1 -0
  30. package/lib/dist/extraction/astro-extractor.js +320 -0
  31. package/lib/dist/extraction/astro-extractor.js.map +1 -0
  32. package/lib/dist/extraction/extraction-version.d.ts +25 -0
  33. package/lib/dist/extraction/extraction-version.d.ts.map +1 -0
  34. package/lib/dist/extraction/extraction-version.js +28 -0
  35. package/lib/dist/extraction/extraction-version.js.map +1 -0
  36. package/lib/dist/extraction/function-ref.d.ts +118 -0
  37. package/lib/dist/extraction/function-ref.d.ts.map +1 -0
  38. package/lib/dist/extraction/function-ref.js +727 -0
  39. package/lib/dist/extraction/function-ref.js.map +1 -0
  40. package/lib/dist/extraction/generated-detection.d.ts.map +1 -1
  41. package/lib/dist/extraction/generated-detection.js +3 -0
  42. package/lib/dist/extraction/generated-detection.js.map +1 -1
  43. package/lib/dist/extraction/grammars.d.ts +7 -1
  44. package/lib/dist/extraction/grammars.d.ts.map +1 -1
  45. package/lib/dist/extraction/grammars.js +52 -4
  46. package/lib/dist/extraction/grammars.js.map +1 -1
  47. package/lib/dist/extraction/index.d.ts +34 -0
  48. package/lib/dist/extraction/index.d.ts.map +1 -1
  49. package/lib/dist/extraction/index.js +346 -62
  50. package/lib/dist/extraction/index.js.map +1 -1
  51. package/lib/dist/extraction/languages/c-cpp.d.ts +8 -0
  52. package/lib/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  53. package/lib/dist/extraction/languages/c-cpp.js +87 -28
  54. package/lib/dist/extraction/languages/c-cpp.js.map +1 -1
  55. package/lib/dist/extraction/languages/csharp.d.ts +22 -0
  56. package/lib/dist/extraction/languages/csharp.d.ts.map +1 -1
  57. package/lib/dist/extraction/languages/csharp.js +84 -2
  58. package/lib/dist/extraction/languages/csharp.js.map +1 -1
  59. package/lib/dist/extraction/languages/dart.d.ts.map +1 -1
  60. package/lib/dist/extraction/languages/dart.js +161 -1
  61. package/lib/dist/extraction/languages/dart.js.map +1 -1
  62. package/lib/dist/extraction/languages/go.d.ts.map +1 -1
  63. package/lib/dist/extraction/languages/go.js +43 -2
  64. package/lib/dist/extraction/languages/go.js.map +1 -1
  65. package/lib/dist/extraction/languages/index.d.ts.map +1 -1
  66. package/lib/dist/extraction/languages/index.js +2 -0
  67. package/lib/dist/extraction/languages/index.js.map +1 -1
  68. package/lib/dist/extraction/languages/java.d.ts.map +1 -1
  69. package/lib/dist/extraction/languages/java.js +42 -1
  70. package/lib/dist/extraction/languages/java.js.map +1 -1
  71. package/lib/dist/extraction/languages/javascript.d.ts.map +1 -1
  72. package/lib/dist/extraction/languages/javascript.js +16 -0
  73. package/lib/dist/extraction/languages/javascript.js.map +1 -1
  74. package/lib/dist/extraction/languages/kotlin.d.ts.map +1 -1
  75. package/lib/dist/extraction/languages/kotlin.js +69 -0
  76. package/lib/dist/extraction/languages/kotlin.js.map +1 -1
  77. package/lib/dist/extraction/languages/objc.d.ts.map +1 -1
  78. package/lib/dist/extraction/languages/objc.js +42 -0
  79. package/lib/dist/extraction/languages/objc.js.map +1 -1
  80. package/lib/dist/extraction/languages/pascal.d.ts.map +1 -1
  81. package/lib/dist/extraction/languages/pascal.js +11 -0
  82. package/lib/dist/extraction/languages/pascal.js.map +1 -1
  83. package/lib/dist/extraction/languages/php.d.ts.map +1 -1
  84. package/lib/dist/extraction/languages/php.js +90 -1
  85. package/lib/dist/extraction/languages/php.js.map +1 -1
  86. package/lib/dist/extraction/languages/r.d.ts +3 -0
  87. package/lib/dist/extraction/languages/r.d.ts.map +1 -0
  88. package/lib/dist/extraction/languages/r.js +314 -0
  89. package/lib/dist/extraction/languages/r.js.map +1 -0
  90. package/lib/dist/extraction/languages/ruby.d.ts.map +1 -1
  91. package/lib/dist/extraction/languages/ruby.js +35 -0
  92. package/lib/dist/extraction/languages/ruby.js.map +1 -1
  93. package/lib/dist/extraction/languages/rust.d.ts.map +1 -1
  94. package/lib/dist/extraction/languages/rust.js +35 -2
  95. package/lib/dist/extraction/languages/rust.js.map +1 -1
  96. package/lib/dist/extraction/languages/scala.d.ts.map +1 -1
  97. package/lib/dist/extraction/languages/scala.js +61 -1
  98. package/lib/dist/extraction/languages/scala.js.map +1 -1
  99. package/lib/dist/extraction/languages/swift.d.ts.map +1 -1
  100. package/lib/dist/extraction/languages/swift.js +61 -0
  101. package/lib/dist/extraction/languages/swift.js.map +1 -1
  102. package/lib/dist/extraction/languages/typescript.d.ts +13 -0
  103. package/lib/dist/extraction/languages/typescript.d.ts.map +1 -1
  104. package/lib/dist/extraction/languages/typescript.js +38 -0
  105. package/lib/dist/extraction/languages/typescript.js.map +1 -1
  106. package/lib/dist/extraction/liquid-extractor.d.ts +7 -0
  107. package/lib/dist/extraction/liquid-extractor.d.ts.map +1 -1
  108. package/lib/dist/extraction/liquid-extractor.js +53 -9
  109. package/lib/dist/extraction/liquid-extractor.js.map +1 -1
  110. package/lib/dist/extraction/razor-extractor.d.ts +42 -0
  111. package/lib/dist/extraction/razor-extractor.d.ts.map +1 -0
  112. package/lib/dist/extraction/razor-extractor.js +285 -0
  113. package/lib/dist/extraction/razor-extractor.js.map +1 -0
  114. package/lib/dist/extraction/svelte-extractor.d.ts.map +1 -1
  115. package/lib/dist/extraction/svelte-extractor.js +6 -3
  116. package/lib/dist/extraction/svelte-extractor.js.map +1 -1
  117. package/lib/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
  118. package/lib/dist/extraction/tree-sitter-helpers.js +59 -10
  119. package/lib/dist/extraction/tree-sitter-helpers.js.map +1 -1
  120. package/lib/dist/extraction/tree-sitter-types.d.ts +33 -0
  121. package/lib/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  122. package/lib/dist/extraction/tree-sitter.d.ts +211 -0
  123. package/lib/dist/extraction/tree-sitter.d.ts.map +1 -1
  124. package/lib/dist/extraction/tree-sitter.js +1681 -49
  125. package/lib/dist/extraction/tree-sitter.js.map +1 -1
  126. package/lib/dist/extraction/vue-extractor.d.ts +15 -0
  127. package/lib/dist/extraction/vue-extractor.d.ts.map +1 -1
  128. package/lib/dist/extraction/vue-extractor.js +94 -3
  129. package/lib/dist/extraction/vue-extractor.js.map +1 -1
  130. package/lib/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  131. package/lib/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  132. package/lib/dist/graph/queries.d.ts.map +1 -1
  133. package/lib/dist/graph/queries.js +13 -40
  134. package/lib/dist/graph/queries.js.map +1 -1
  135. package/lib/dist/graph/traversal.d.ts.map +1 -1
  136. package/lib/dist/graph/traversal.js +16 -4
  137. package/lib/dist/graph/traversal.js.map +1 -1
  138. package/lib/dist/index.d.ts +34 -2
  139. package/lib/dist/index.d.ts.map +1 -1
  140. package/lib/dist/index.js +90 -8
  141. package/lib/dist/index.js.map +1 -1
  142. package/lib/dist/installer/index.d.ts.map +1 -1
  143. package/lib/dist/installer/index.js +52 -2
  144. package/lib/dist/installer/index.js.map +1 -1
  145. package/lib/dist/installer/instructions-template.d.ts +34 -11
  146. package/lib/dist/installer/instructions-template.d.ts.map +1 -1
  147. package/lib/dist/installer/instructions-template.js +44 -12
  148. package/lib/dist/installer/instructions-template.js.map +1 -1
  149. package/lib/dist/installer/targets/claude.d.ts.map +1 -1
  150. package/lib/dist/installer/targets/claude.js +6 -10
  151. package/lib/dist/installer/targets/claude.js.map +1 -1
  152. package/lib/dist/installer/targets/codex.js +4 -6
  153. package/lib/dist/installer/targets/codex.js.map +1 -1
  154. package/lib/dist/installer/targets/gemini.js +4 -6
  155. package/lib/dist/installer/targets/gemini.js.map +1 -1
  156. package/lib/dist/installer/targets/opencode.d.ts +9 -1
  157. package/lib/dist/installer/targets/opencode.d.ts.map +1 -1
  158. package/lib/dist/installer/targets/opencode.js +91 -40
  159. package/lib/dist/installer/targets/opencode.js.map +1 -1
  160. package/lib/dist/installer/targets/shared.d.ts +14 -0
  161. package/lib/dist/installer/targets/shared.d.ts.map +1 -1
  162. package/lib/dist/installer/targets/shared.js +16 -0
  163. package/lib/dist/installer/targets/shared.js.map +1 -1
  164. package/lib/dist/mcp/daemon.d.ts +60 -1
  165. package/lib/dist/mcp/daemon.d.ts.map +1 -1
  166. package/lib/dist/mcp/daemon.js +221 -8
  167. package/lib/dist/mcp/daemon.js.map +1 -1
  168. package/lib/dist/mcp/dynamic-boundaries.d.ts +41 -0
  169. package/lib/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  170. package/lib/dist/mcp/dynamic-boundaries.js +359 -0
  171. package/lib/dist/mcp/dynamic-boundaries.js.map +1 -0
  172. package/lib/dist/mcp/index.d.ts.map +1 -1
  173. package/lib/dist/mcp/index.js +18 -9
  174. package/lib/dist/mcp/index.js.map +1 -1
  175. package/lib/dist/mcp/ppid-watchdog.d.ts +44 -0
  176. package/lib/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  177. package/lib/dist/mcp/ppid-watchdog.js +27 -0
  178. package/lib/dist/mcp/ppid-watchdog.js.map +1 -0
  179. package/lib/dist/mcp/proxy.d.ts +6 -0
  180. package/lib/dist/mcp/proxy.d.ts.map +1 -1
  181. package/lib/dist/mcp/proxy.js +153 -24
  182. package/lib/dist/mcp/proxy.js.map +1 -1
  183. package/lib/dist/mcp/server-instructions.d.ts +12 -1
  184. package/lib/dist/mcp/server-instructions.d.ts.map +1 -1
  185. package/lib/dist/mcp/server-instructions.js +43 -16
  186. package/lib/dist/mcp/server-instructions.js.map +1 -1
  187. package/lib/dist/mcp/session.d.ts +2 -0
  188. package/lib/dist/mcp/session.d.ts.map +1 -1
  189. package/lib/dist/mcp/session.js +49 -2
  190. package/lib/dist/mcp/session.js.map +1 -1
  191. package/lib/dist/mcp/stdin-teardown.d.ts +27 -0
  192. package/lib/dist/mcp/stdin-teardown.d.ts.map +1 -0
  193. package/lib/dist/mcp/stdin-teardown.js +49 -0
  194. package/lib/dist/mcp/stdin-teardown.js.map +1 -0
  195. package/lib/dist/mcp/tools.d.ts +71 -0
  196. package/lib/dist/mcp/tools.d.ts.map +1 -1
  197. package/lib/dist/mcp/tools.js +703 -85
  198. package/lib/dist/mcp/tools.js.map +1 -1
  199. package/lib/dist/mcp/transport.d.ts.map +1 -1
  200. package/lib/dist/mcp/transport.js +18 -2
  201. package/lib/dist/mcp/transport.js.map +1 -1
  202. package/lib/dist/resolution/callback-synthesizer.d.ts +3 -3
  203. package/lib/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  204. package/lib/dist/resolution/callback-synthesizer.js +549 -21
  205. package/lib/dist/resolution/callback-synthesizer.js.map +1 -1
  206. package/lib/dist/resolution/frameworks/astro.d.ts +9 -0
  207. package/lib/dist/resolution/frameworks/astro.d.ts.map +1 -0
  208. package/lib/dist/resolution/frameworks/astro.js +169 -0
  209. package/lib/dist/resolution/frameworks/astro.js.map +1 -0
  210. package/lib/dist/resolution/frameworks/expo-modules.d.ts.map +1 -1
  211. package/lib/dist/resolution/frameworks/expo-modules.js +6 -1
  212. package/lib/dist/resolution/frameworks/expo-modules.js.map +1 -1
  213. package/lib/dist/resolution/frameworks/index.d.ts +1 -0
  214. package/lib/dist/resolution/frameworks/index.d.ts.map +1 -1
  215. package/lib/dist/resolution/frameworks/index.js +5 -1
  216. package/lib/dist/resolution/frameworks/index.js.map +1 -1
  217. package/lib/dist/resolution/frameworks/java.js +6 -1
  218. package/lib/dist/resolution/frameworks/java.js.map +1 -1
  219. package/lib/dist/resolution/frameworks/python.d.ts.map +1 -1
  220. package/lib/dist/resolution/frameworks/python.js +7 -3
  221. package/lib/dist/resolution/frameworks/python.js.map +1 -1
  222. package/lib/dist/resolution/frameworks/react-native.d.ts.map +1 -1
  223. package/lib/dist/resolution/frameworks/react-native.js +53 -3
  224. package/lib/dist/resolution/frameworks/react-native.js.map +1 -1
  225. package/lib/dist/resolution/frameworks/react.d.ts.map +1 -1
  226. package/lib/dist/resolution/frameworks/react.js +15 -3
  227. package/lib/dist/resolution/frameworks/react.js.map +1 -1
  228. package/lib/dist/resolution/frameworks/svelte.js +5 -1
  229. package/lib/dist/resolution/frameworks/svelte.js.map +1 -1
  230. package/lib/dist/resolution/frameworks/vue.js +24 -27
  231. package/lib/dist/resolution/frameworks/vue.js.map +1 -1
  232. package/lib/dist/resolution/import-resolver.d.ts +10 -0
  233. package/lib/dist/resolution/import-resolver.d.ts.map +1 -1
  234. package/lib/dist/resolution/import-resolver.js +564 -2
  235. package/lib/dist/resolution/import-resolver.js.map +1 -1
  236. package/lib/dist/resolution/index.d.ts +80 -0
  237. package/lib/dist/resolution/index.d.ts.map +1 -1
  238. package/lib/dist/resolution/index.js +457 -7
  239. package/lib/dist/resolution/index.js.map +1 -1
  240. package/lib/dist/resolution/name-matcher.d.ts +61 -0
  241. package/lib/dist/resolution/name-matcher.d.ts.map +1 -1
  242. package/lib/dist/resolution/name-matcher.js +590 -14
  243. package/lib/dist/resolution/name-matcher.js.map +1 -1
  244. package/lib/dist/resolution/types.d.ts +27 -3
  245. package/lib/dist/resolution/types.d.ts.map +1 -1
  246. package/lib/dist/resolution/workspace-packages.d.ts +48 -0
  247. package/lib/dist/resolution/workspace-packages.d.ts.map +1 -0
  248. package/lib/dist/resolution/workspace-packages.js +208 -0
  249. package/lib/dist/resolution/workspace-packages.js.map +1 -0
  250. package/lib/dist/search/query-utils.d.ts +17 -1
  251. package/lib/dist/search/query-utils.d.ts.map +1 -1
  252. package/lib/dist/search/query-utils.js +79 -10
  253. package/lib/dist/search/query-utils.js.map +1 -1
  254. package/lib/dist/sync/watcher.d.ts +124 -32
  255. package/lib/dist/sync/watcher.d.ts.map +1 -1
  256. package/lib/dist/sync/watcher.js +326 -111
  257. package/lib/dist/sync/watcher.js.map +1 -1
  258. package/lib/dist/telemetry/index.d.ts +146 -0
  259. package/lib/dist/telemetry/index.d.ts.map +1 -0
  260. package/lib/dist/telemetry/index.js +544 -0
  261. package/lib/dist/telemetry/index.js.map +1 -0
  262. package/lib/dist/types.d.ts +17 -2
  263. package/lib/dist/types.d.ts.map +1 -1
  264. package/lib/dist/types.js +3 -0
  265. package/lib/dist/types.js.map +1 -1
  266. package/lib/dist/upgrade/index.d.ts +132 -0
  267. package/lib/dist/upgrade/index.d.ts.map +1 -0
  268. package/lib/dist/upgrade/index.js +462 -0
  269. package/lib/dist/upgrade/index.js.map +1 -0
  270. package/lib/dist/utils.d.ts +30 -24
  271. package/lib/dist/utils.d.ts.map +1 -1
  272. package/lib/dist/utils.js +64 -48
  273. package/lib/dist/utils.js.map +1 -1
  274. package/lib/node_modules/.package-lock.json +1 -29
  275. package/lib/package.json +1 -2
  276. package/package.json +1 -1
  277. package/lib/node_modules/chokidar/LICENSE +0 -21
  278. package/lib/node_modules/chokidar/README.md +0 -305
  279. package/lib/node_modules/chokidar/esm/handler.d.ts +0 -90
  280. package/lib/node_modules/chokidar/esm/handler.js +0 -629
  281. package/lib/node_modules/chokidar/esm/index.d.ts +0 -215
  282. package/lib/node_modules/chokidar/esm/index.js +0 -798
  283. package/lib/node_modules/chokidar/esm/package.json +0 -1
  284. package/lib/node_modules/chokidar/handler.d.ts +0 -90
  285. package/lib/node_modules/chokidar/handler.js +0 -635
  286. package/lib/node_modules/chokidar/index.d.ts +0 -215
  287. package/lib/node_modules/chokidar/index.js +0 -804
  288. package/lib/node_modules/chokidar/package.json +0 -69
  289. package/lib/node_modules/readdirp/LICENSE +0 -21
  290. package/lib/node_modules/readdirp/README.md +0 -120
  291. package/lib/node_modules/readdirp/esm/index.d.ts +0 -108
  292. package/lib/node_modules/readdirp/esm/index.js +0 -257
  293. package/lib/node_modules/readdirp/esm/package.json +0 -1
  294. package/lib/node_modules/readdirp/index.d.ts +0 -108
  295. package/lib/node_modules/readdirp/index.js +0 -263
  296. package/lib/node_modules/readdirp/package.json +0 -70
@@ -2,10 +2,124 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.dartExtractor = void 0;
4
4
  const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
5
+ /**
6
+ * The `function_signature` carrying a method's return type — unwrapped from a
7
+ * `method_signature` wrapper (Dart nests the signature one level for methods).
8
+ */
9
+ function dartInnerSignature(node) {
10
+ if (node.type === 'method_signature') {
11
+ const inner = node.namedChildren.find((c) => c.type === 'function_signature' || c.type === 'getter_signature' || c.type === 'setter_signature');
12
+ if (inner)
13
+ return inner;
14
+ }
15
+ return node;
16
+ }
17
+ /**
18
+ * The factory/named-constructor signature inside a node, if any. A constructor
19
+ * parses as `method_signature > {factory_,}constructor_signature` (e.g.
20
+ * `factory Foo.create()` or `Foo._()`), whose children are the class identifier
21
+ * and — for a named ctor — the constructor-name identifier.
22
+ */
23
+ function dartConstructorSignature(node) {
24
+ if (node.type === 'factory_constructor_signature' || node.type === 'constructor_signature') {
25
+ return node;
26
+ }
27
+ if (node.type === 'method_signature') {
28
+ return node.namedChildren.find((c) => c.type === 'factory_constructor_signature' || c.type === 'constructor_signature');
29
+ }
30
+ return undefined;
31
+ }
32
+ /** The name of the class/mixin/extension/enum lexically enclosing `node`. */
33
+ function dartEnclosingTypeName(node) {
34
+ let p = node.parent;
35
+ while (p) {
36
+ if (p.type === 'class_definition' || p.type === 'mixin_declaration' ||
37
+ p.type === 'extension_declaration' || p.type === 'enum_declaration') {
38
+ return p.childForFieldName('name')?.text;
39
+ }
40
+ p = p.parent;
41
+ }
42
+ return undefined;
43
+ }
44
+ /**
45
+ * Validated constructor info for `node`, or undefined if it isn't genuinely a
46
+ * constructor. A constructor signature is structurally `<Class>` or
47
+ * `<Class>.<name>`, but tree-sitter-dart MISPARSES `@override (T) m()` — the
48
+ * annotation swallows the record return type `(T)`, leaving `m()` looking like a
49
+ * single-identifier constructor_signature. We disambiguate by the class name:
50
+ * a real ctor's class identifier matches the enclosing type; a misparsed method
51
+ * (`reduce` inside class `Action`) doesn't, and is treated as the method it is.
52
+ */
53
+ function dartCtorInfo(node) {
54
+ const ctor = dartConstructorSignature(node);
55
+ if (!ctor)
56
+ return undefined;
57
+ const ids = ctor.namedChildren.filter((c) => c.type === 'identifier');
58
+ const className = dartEnclosingTypeName(node);
59
+ if (!className || !ids[0])
60
+ return undefined;
61
+ if (ids[0].text !== className)
62
+ return undefined; // misparsed method, not a ctor
63
+ // `<Class>.<name>` is a named ctor; bare `<Class>` is the unnamed ctor.
64
+ return { className, ctorName: ids[1]?.text ?? className };
65
+ }
66
+ /**
67
+ * Capture a Dart method/function's declared return type as a bare type name, for
68
+ * the chained static-factory / fluent call mechanism (#750). `Bar makeBar()`
69
+ * yields `Bar`; a generic `List<Foo>` yields its container `List` (the method is
70
+ * on the container, not the element); a prefixed `prefix.Bar` yields `Bar`. A
71
+ * factory / named constructor returns its enclosing class implicitly, so its
72
+ * "return type" is the class.
73
+ */
74
+ function extractDartReturnType(node, source) {
75
+ const ctor = dartCtorInfo(node);
76
+ if (ctor)
77
+ return ctor.className;
78
+ const sig = dartInnerSignature(node);
79
+ // The return type precedes the method name; it's the first type_identifier
80
+ // (generic args sit in a sibling `type_arguments`, so this is the container).
81
+ const retType = sig.namedChildren.find((c) => c.type === 'type_identifier');
82
+ if (!retType)
83
+ return undefined;
84
+ const text = (0, tree_sitter_helpers_1.getNodeText)(retType, source).replace(/<[^>]*>/g, '').trim();
85
+ const last = text.split('.').pop(); // prefixed `p.Bar` → `Bar`
86
+ if (!last || !/^[A-Za-z_]\w*$/.test(last))
87
+ return undefined;
88
+ return last;
89
+ }
90
+ /**
91
+ * The callee name of the Dart call whose `argument_part` selector is `argPart`
92
+ * — mirrors the main extractBareCall accessor logic so a chained receiver
93
+ * (`Foo.create()` in `Foo.create().bar()`) can be reconstructed. Returns
94
+ * `Foo.create`, a bare `create`, or `Foo` (constructor) — or undefined.
95
+ */
96
+ function dartCalleeOfArgPart(argPart) {
97
+ const prev = argPart.previousNamedSibling;
98
+ if (!prev)
99
+ return undefined;
100
+ if (prev.type === 'identifier')
101
+ return prev.text; // bare `Foo()` / `create()`
102
+ if (prev.type === 'selector') {
103
+ const accessor = prev.namedChildren.find((c) => c.type === 'unconditional_assignable_selector' || c.type === 'conditional_assignable_selector');
104
+ const methodId = accessor?.namedChildren.find((c) => c.type === 'identifier');
105
+ if (methodId) {
106
+ const accessorPrev = prev.previousNamedSibling;
107
+ if (accessorPrev?.type === 'identifier')
108
+ return accessorPrev.text + '.' + methodId.text;
109
+ return methodId.text;
110
+ }
111
+ }
112
+ return undefined;
113
+ }
5
114
  exports.dartExtractor = {
6
115
  functionTypes: ['function_signature'],
7
116
  classTypes: ['class_definition'],
8
- methodTypes: ['method_signature'],
117
+ // `method_signature` covers regular methods AND factory constructors (which
118
+ // parse as method_signature > factory_constructor_signature). A plain named
119
+ // constructor `Foo._()` parses as a bare `constructor_signature`, so include
120
+ // it too — resolveName names it by the ctor name and getReturnType gives it
121
+ // the class as its return type, so `Foo._().bar()` chains resolve (#750).
122
+ methodTypes: ['method_signature', 'constructor_signature'],
9
123
  interfaceTypes: [],
10
124
  structTypes: [],
11
125
  enumTypes: ['enum_declaration'],
@@ -33,6 +147,19 @@ exports.dartExtractor = {
33
147
  bodyField: 'body', // class_definition uses 'body' field
34
148
  paramsField: 'formal_parameter_list',
35
149
  returnField: 'type',
150
+ getReturnType: extractDartReturnType,
151
+ isMisparsedFunction: (_name, node) => {
152
+ // Skip the UNNAMED constructor `Foo()` (its ctor name equals the class). It's
153
+ // ordinary construction — an `instantiates` edge to the class `Foo` — so
154
+ // extracting it as a `Foo::Foo` method node would hijack instantiation
155
+ // resolution (a `Foo(...)` call would resolve to the ctor method, not the
156
+ // class). NAMED ctors `Foo.create()` / `Foo._()` ARE kept so their chains
157
+ // resolve (#750). dartCtorInfo validates against the class name, so a method
158
+ // tree-sitter misparsed as a ctor (`@override (T) m()`) is NOT skipped here.
159
+ // (isMisparsedFunction skips node creation but still visits the body.)
160
+ const ctor = dartCtorInfo(node);
161
+ return ctor != null && ctor.ctorName === ctor.className;
162
+ },
36
163
  getSignature: (node, source) => {
37
164
  // For function_signature: extract params + return type
38
165
  // For method_signature: delegate to inner function_signature
@@ -91,6 +218,24 @@ exports.dartExtractor = {
91
218
  }
92
219
  return false;
93
220
  },
221
+ resolveName: (node) => {
222
+ // Name a factory / named constructor by its constructor name — the 2nd
223
+ // identifier (`create` in `factory Foo.create()`, `_` in `Foo._()`) — not
224
+ // the class, so a call `Foo.create()` resolves to `Foo::create` (#750). The
225
+ // default Dart naming returns the FIRST identifier (the class), which
226
+ // collides every named ctor onto `Foo::Foo` and leaves `Foo.create()`
227
+ // unresolvable. An unnamed ctor `Foo()` has a single identifier — fall
228
+ // through (undefined) to the default class name. Letting the core's
229
+ // extractMethod own the factory (rather than a custom visitNode) keeps the
230
+ // body attribution intact: calls inside `factory Foo.create() { … }` are
231
+ // attributed to `Foo::create`, and getReturnType gives it return type Foo.
232
+ const ctor = dartCtorInfo(node);
233
+ // A named ctor `Foo.create` → `create`; the unnamed ctor `Foo()` → undefined
234
+ // (default naming gives the class name `Foo`, which is correct).
235
+ if (ctor && ctor.ctorName !== ctor.className)
236
+ return ctor.ctorName;
237
+ return undefined;
238
+ },
94
239
  extractImport: (node, source) => {
95
240
  const importText = source.substring(node.startIndex, node.endIndex).trim();
96
241
  let moduleName = '';
@@ -157,6 +302,21 @@ exports.dartExtractor = {
157
302
  if (accessorPrev?.type === 'identifier') {
158
303
  return accessorPrev.text + '.' + methodId.text;
159
304
  }
305
+ // Chained static-factory / fluent call: the receiver is itself a call
306
+ // (`Foo.create().bar()`), so accessorPrev is that call's argument_part
307
+ // selector. Encode `<innerCallee>().<method>` so resolution can infer
308
+ // bar's class from what `Foo.create` RETURNS (#645/#608 mechanism) —
309
+ // but only when the chain starts with a capitalized type (a companion
310
+ // factory / static method / constructor); an instance chain
311
+ // (`obj.foo().bar()`) keeps the bare name (its receiver's type can't
312
+ // be recovered here).
313
+ if (accessorPrev?.type === 'selector' &&
314
+ accessorPrev.namedChildren.some((c) => c.type === 'argument_part')) {
315
+ const innerCallee = dartCalleeOfArgPart(accessorPrev);
316
+ if (innerCallee && /^[A-Z]/.test(innerCallee)) {
317
+ return `${innerCallee}().${methodId.text}`;
318
+ }
319
+ }
160
320
  return methodId.text;
161
321
  }
162
322
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dart.js","sourceRoot":"","sources":["../../../src/extraction/languages/dart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dart.js","sourceRoot":"","sources":["../../../src/extraction/languages/dart.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/go.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,eAAO,MAAM,WAAW,EAAE,iBA2DzB,CAAC"}
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/go.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsC9D,eAAO,MAAM,WAAW,EAAE,iBAgEzB,CAAC"}
@@ -2,6 +2,42 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.goExtractor = void 0;
4
4
  const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
5
+ /**
6
+ * A Go function's declared return type, normalized to the bare type a chained
7
+ * `New().Method()` could be called on (the #645/#608 mechanism). Reads the
8
+ * `result` field: a pointer `*Foo` is unwrapped to `Foo`, a multi-return
9
+ * `(*Foo, error)` takes the first result (the idiomatic value-or-error shape),
10
+ * a qualified `pkg.Foo` reduces to its last segment, and generics to the base.
11
+ * Built-ins / unnamed results simply fail the later existence check.
12
+ */
13
+ function extractGoReturnType(node, source) {
14
+ let result = (0, tree_sitter_helpers_1.getChildByField)(node, 'result');
15
+ if (!result)
16
+ return undefined;
17
+ // Multi-return `(T, error)` → the first result's type.
18
+ if (result.type === 'parameter_list') {
19
+ const first = result.namedChildren.find((c) => c.type === 'parameter_declaration');
20
+ if (!first)
21
+ return undefined;
22
+ result = (0, tree_sitter_helpers_1.getChildByField)(first, 'type') ?? first;
23
+ }
24
+ // Unwrap a pointer `*Foo` → `Foo`.
25
+ if (result?.type === 'pointer_type') {
26
+ result =
27
+ result.namedChildren.find((c) => c.type === 'type_identifier' || c.type === 'qualified_type' || c.type === 'generic_type') ?? result;
28
+ }
29
+ if (!result)
30
+ return undefined;
31
+ const text = (0, tree_sitter_helpers_1.getNodeText)(result, source)
32
+ .trim()
33
+ .replace(/^\*/, '')
34
+ .replace(/<[^>]*>/g, '')
35
+ .replace(/\[[^\]]*\]/g, ''); // strip generic args `Foo[T]`
36
+ const last = text.split('.').pop()?.trim(); // qualified `pkg.Foo` → `Foo`
37
+ if (!last || !/^[A-Za-z_]\w*$/.test(last))
38
+ return undefined;
39
+ return last;
40
+ }
5
41
  exports.goExtractor = {
6
42
  functionTypes: ['function_declaration'],
7
43
  classTypes: [], // Go doesn't have classes
@@ -18,6 +54,7 @@ exports.goExtractor = {
18
54
  bodyField: 'body',
19
55
  paramsField: 'parameters',
20
56
  returnField: 'result',
57
+ getReturnType: extractGoReturnType,
21
58
  getSignature: (node, source) => {
22
59
  const params = (0, tree_sitter_helpers_1.getChildByField)(node, 'parameters');
23
60
  const result = (0, tree_sitter_helpers_1.getChildByField)(node, 'result');
@@ -62,8 +99,12 @@ exports.goExtractor = {
62
99
  return undefined;
63
100
  // Find the type identifier inside the receiver
64
101
  const text = (0, tree_sitter_helpers_1.getNodeText)(receiver, source);
65
- // Extract type name from patterns like "(sl *Type)", "(sl Type)", "(*Type)", "(Type)"
66
- const match = text.match(/\*?\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)/);
102
+ // Extract type name from "(sl *Type)", "(sl Type)", "(*Type)", "(Type)" and
103
+ // generic receivers "(s *Stack[T])". Anchor on the opening "(" and skip an
104
+ // optional receiver var name; the old `name)`-anchored pattern never matched
105
+ // the `[T])` suffix, so generic-type methods were orphaned from their type
106
+ // (no struct→method `contains` edge). (#583)
107
+ const match = text.match(/\(\s*(?:[A-Za-z_]\w*\s+)?\*?\s*([A-Za-z_]\w*)/);
67
108
  return match?.[1];
68
109
  },
69
110
  };
@@ -1 +1 @@
1
- {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/extraction/languages/go.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/extraction/languages/go.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAqB9D,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAsBnE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAsB9D,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAuBnE,CAAC"}
@@ -23,6 +23,7 @@ const dart_1 = require("./dart");
23
23
  const pascal_1 = require("./pascal");
24
24
  const scala_1 = require("./scala");
25
25
  const lua_1 = require("./lua");
26
+ const r_1 = require("./r");
26
27
  const luau_1 = require("./luau");
27
28
  const objc_1 = require("./objc");
28
29
  exports.EXTRACTORS = {
@@ -45,6 +46,7 @@ exports.EXTRACTORS = {
45
46
  pascal: pascal_1.pascalExtractor,
46
47
  scala: scala_1.scalaExtractor,
47
48
  lua: lua_1.luaExtractor,
49
+ r: r_1.rExtractor,
48
50
  luau: luau_1.luauExtractor,
49
51
  objc: objc_1.objcExtractor,
50
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extraction/languages/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH,6CAAmD;AACnD,6CAAmD;AACnD,qCAA2C;AAC3C,6BAAmC;AACnC,iCAAuC;AACvC,iCAAuC;AACvC,mCAAmD;AACnD,qCAA2C;AAC3C,+BAAqC;AACrC,iCAAuC;AACvC,mCAAyC;AACzC,qCAA2C;AAC3C,iCAAuC;AACvC,qCAA2C;AAC3C,mCAAyC;AACzC,+BAAqC;AACrC,iCAAuC;AACvC,iCAAuC;AAE1B,QAAA,UAAU,GAAiD;IACtE,UAAU,EAAE,gCAAmB;IAC/B,GAAG,EAAE,gCAAmB;IACxB,UAAU,EAAE,gCAAmB;IAC/B,GAAG,EAAE,gCAAmB;IACxB,MAAM,EAAE,wBAAe;IACvB,EAAE,EAAE,gBAAW;IACf,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,oBAAa;IACnB,CAAC,EAAE,kBAAU;IACb,GAAG,EAAE,oBAAY;IACjB,MAAM,EAAE,wBAAe;IACvB,GAAG,EAAE,kBAAY;IACjB,IAAI,EAAE,oBAAa;IACnB,KAAK,EAAE,sBAAc;IACrB,MAAM,EAAE,wBAAe;IACvB,IAAI,EAAE,oBAAa;IACnB,MAAM,EAAE,wBAAe;IACvB,KAAK,EAAE,sBAAc;IACrB,GAAG,EAAE,kBAAY;IACjB,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,oBAAa;CACpB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/extraction/languages/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAKH,6CAAmD;AACnD,6CAAmD;AACnD,qCAA2C;AAC3C,6BAAmC;AACnC,iCAAuC;AACvC,iCAAuC;AACvC,mCAAmD;AACnD,qCAA2C;AAC3C,+BAAqC;AACrC,iCAAuC;AACvC,mCAAyC;AACzC,qCAA2C;AAC3C,iCAAuC;AACvC,qCAA2C;AAC3C,mCAAyC;AACzC,+BAAqC;AACrC,2BAAiC;AACjC,iCAAuC;AACvC,iCAAuC;AAE1B,QAAA,UAAU,GAAiD;IACtE,UAAU,EAAE,gCAAmB;IAC/B,GAAG,EAAE,gCAAmB;IACxB,UAAU,EAAE,gCAAmB;IAC/B,GAAG,EAAE,gCAAmB;IACxB,MAAM,EAAE,wBAAe;IACvB,EAAE,EAAE,gBAAW;IACf,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,oBAAa;IACnB,CAAC,EAAE,kBAAU;IACb,GAAG,EAAE,oBAAY;IACjB,MAAM,EAAE,wBAAe;IACvB,GAAG,EAAE,kBAAY;IACjB,IAAI,EAAE,oBAAa;IACnB,KAAK,EAAE,sBAAc;IACrB,MAAM,EAAE,wBAAe;IACvB,IAAI,EAAE,oBAAa;IACnB,MAAM,EAAE,wBAAe;IACvB,KAAK,EAAE,sBAAc;IACrB,GAAG,EAAE,kBAAY;IACjB,CAAC,EAAE,cAAU;IACb,IAAI,EAAE,oBAAa;IACnB,IAAI,EAAE,oBAAa;CACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,eAAO,MAAM,aAAa,EAAE,iBA8D3B,CAAC"}
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/java.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAoC9D,eAAO,MAAM,aAAa,EAAE,iBAmE3B,CAAC"}
@@ -2,11 +2,51 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.javaExtractor = void 0;
4
4
  const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
5
+ /**
6
+ * Tree-sitter-java node types for a method's `type` (return) field that can
7
+ * never be a method receiver — there's no class to chain a `.method()` on, so we
8
+ * store no `returnType` for them.
9
+ */
10
+ const JAVA_NON_CLASS_RETURN_NODES = new Set([
11
+ 'void_type',
12
+ 'integral_type', // int, long, short, byte, char
13
+ 'floating_point_type', // float, double
14
+ 'boolean_type',
15
+ ]);
16
+ /**
17
+ * A Java method's declared return type, normalized to the bare class name a
18
+ * chained `Foo.getInstance().bar()` could be called on (the #645/#608 mechanism).
19
+ * Reads the `type` field: primitives/void/arrays yield undefined (no class to
20
+ * chain on), `List<Foo>` is unwrapped to its base type `List`, and a dotted
21
+ * package/outer-class qualifier (`java.util.List`) is stripped to the simple
22
+ * name. Constructors have no `type` field → undefined.
23
+ */
24
+ function extractJavaReturnType(node, source) {
25
+ const typeNode = (0, tree_sitter_helpers_1.getChildByField)(node, 'type');
26
+ if (!typeNode)
27
+ return undefined;
28
+ if (JAVA_NON_CLASS_RETURN_NODES.has(typeNode.type))
29
+ return undefined;
30
+ // An array return (`Foo[]`) isn't a receiver you call instance methods on.
31
+ if (typeNode.type === 'array_type')
32
+ return undefined;
33
+ // Strip type arguments (`List<Foo>` → `List`) — the chain resolves on the base.
34
+ const raw = (0, tree_sitter_helpers_1.getNodeText)(typeNode, source).trim().replace(/<[^>]*>/g, '');
35
+ // Strip a dotted package / outer-class qualifier (`java.util.List` → `List`).
36
+ const last = raw.split('.').pop()?.trim();
37
+ if (!last || !/^[A-Za-z_]\w*$/.test(last))
38
+ return undefined;
39
+ return last;
40
+ }
5
41
  exports.javaExtractor = {
6
42
  functionTypes: [],
7
43
  classTypes: ['class_declaration'],
8
44
  methodTypes: ['method_declaration', 'constructor_declaration'],
9
- interfaceTypes: ['interface_declaration'],
45
+ // `annotation_type_declaration` is `@interface Foo { … }` — an annotation
46
+ // definition. Without it, annotation types (`@SerializedName`, `@GetMapping`,
47
+ // JPA/Spring annotations) aren't nodes, so the `@Foo` usages that DO get
48
+ // extracted can't resolve and the annotation file shows zero dependents.
49
+ interfaceTypes: ['interface_declaration', 'annotation_type_declaration'],
10
50
  structTypes: [],
11
51
  enumTypes: ['enum_declaration'],
12
52
  enumMemberTypes: ['enum_constant'],
@@ -19,6 +59,7 @@ exports.javaExtractor = {
19
59
  bodyField: 'body',
20
60
  paramsField: 'parameters',
21
61
  returnField: 'type',
62
+ getReturnType: extractJavaReturnType,
22
63
  getSignature: (node, source) => {
23
64
  const params = (0, tree_sitter_helpers_1.getChildByField)(node, 'parameters');
24
65
  const returnType = (0, tree_sitter_helpers_1.getChildByField)(node, 'type');
@@ -1 +1 @@
1
- {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/extraction/languages/java.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../src/extraction/languages/java.ts"],"names":[],"mappings":";;;AACA,gEAAsE;AAGtE;;;;GAIG;AACH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC;IAC1C,WAAW;IACX,eAAe,EAAE,+BAA+B;IAChD,qBAAqB,EAAE,gBAAgB;IACvC,cAAc;CACf,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,IAAgB,EAAE,MAAc;IAC7D,MAAM,QAAQ,GAAG,IAAA,qCAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,2EAA2E;IAC3E,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,SAAS,CAAC;IACrD,gFAAgF;IAChF,MAAM,GAAG,GAAG,IAAA,iCAAW,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzE,8EAA8E;IAC9E,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC;AAEY,QAAA,aAAa,GAAsB;IAC9C,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,CAAC,mBAAmB,CAAC;IACjC,WAAW,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;IAC9D,0EAA0E;IAC1E,8EAA8E;IAC9E,yEAAyE;IACzE,yEAAyE;IACzE,cAAc,EAAE,CAAC,uBAAuB,EAAE,6BAA6B,CAAC;IACxE,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,CAAC,kBAAkB,CAAC;IAC/B,eAAe,EAAE,CAAC,eAAe,CAAC;IAClC,cAAc,EAAE,EAAE;IAClB,WAAW,EAAE,CAAC,oBAAoB,CAAC;IACnC,SAAS,EAAE,CAAC,mBAAmB,CAAC;IAChC,aAAa,EAAE,CAAC,4BAA4B,CAAC;IAC7C,UAAU,EAAE,CAAC,mBAAmB,CAAC;IACjC,SAAS,EAAE,MAAM;IACjB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,qBAAqB;IACpC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,IAAA,qCAAe,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,IAAA,qCAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAA,iCAAW,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,UAAU,CAAC,CAAC,CAAC,IAAA,iCAAW,EAAC,UAAU,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;IACtF,CAAC;IACD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;QACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAAE,OAAO,QAAQ,CAAC;gBAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAAE,OAAO,SAAS,CAAC;gBAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAAE,OAAO,WAAW,CAAC;YACrD,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;QAC5F,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC5E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,YAAY,EAAE,CAAC,qBAAqB,CAAC;IACrC,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC/B,yEAAyE;QACzE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAChC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,mBAAmB,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAC7E,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/javascript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,eAAO,MAAM,mBAAmB,EAAE,iBAgFjC,CAAC"}
1
+ {"version":3,"file":"javascript.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/javascript.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,eAAO,MAAM,mBAAmB,EAAE,iBA8FjC,CAAC"}
@@ -2,10 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.javascriptExtractor = void 0;
4
4
  const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
5
+ const typescript_1 = require("./typescript");
5
6
  exports.javascriptExtractor = {
6
7
  functionTypes: ['function_declaration', 'arrow_function', 'function_expression'],
7
8
  classTypes: ['class_declaration'],
8
9
  methodTypes: ['method_definition', 'field_definition'],
10
+ // JS `field_definition` ≙ TS `public_field_definition`: plain fields are
11
+ // properties, function-valued fields are methods (#808).
12
+ classifyMethodNode: typescript_1.classifyTsClassMember,
9
13
  interfaceTypes: [],
10
14
  structTypes: [],
11
15
  enumTypes: [],
@@ -14,6 +18,18 @@ exports.javascriptExtractor = {
14
18
  callTypes: ['call_expression'],
15
19
  variableTypes: ['lexical_declaration', 'variable_declaration'],
16
20
  nameField: 'name',
21
+ // JS `field_definition` names its key the `property` field (TS's
22
+ // public_field_definition uses `name`). Without this, JS class fields —
23
+ // including arrow-function handler fields — extracted no name and produced
24
+ // no node at all (#808).
25
+ resolveName: (node, source) => {
26
+ if (node.type === 'field_definition') {
27
+ const prop = (0, tree_sitter_helpers_1.getChildByField)(node, 'property');
28
+ if (prop)
29
+ return (0, tree_sitter_helpers_1.getNodeText)(prop, source);
30
+ }
31
+ return undefined;
32
+ },
17
33
  bodyField: 'body',
18
34
  resolveBody: (node, bodyField) => {
19
35
  // field_definition (arrow function class fields) nest the body inside
@@ -1 +1 @@
1
- {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/extraction/languages/javascript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"javascript.js","sourceRoot":"","sources":["../../../src/extraction/languages/javascript.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/kotlin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AA4B9D,eAAO,MAAM,eAAe,EAAE,iBAqN7B,CAAC"}
1
+ {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../src/extraction/languages/kotlin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAoE9D,eAAO,MAAM,eAAe,EAAE,iBA6O7B,CAAC"}
@@ -2,6 +2,48 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.kotlinExtractor = void 0;
4
4
  const tree_sitter_helpers_1 = require("../tree-sitter-helpers");
5
+ /** Kotlin return types that can't be a chained-call receiver (no class to chain on). */
6
+ const KOTLIN_NON_CLASS_RETURN = new Set(['Unit', 'Nothing']);
7
+ /**
8
+ * A Kotlin function's declared return type, normalized to the bare class name a
9
+ * chained `Foo.getInstance().bar()` could be called on (the #645/#608 mechanism).
10
+ * tree-sitter-kotlin exposes no field names, so the return type is found
11
+ * positionally: the first `user_type` / `nullable_type` that FOLLOWS
12
+ * `function_value_parameters` (an extension receiver's type sits before the
13
+ * params, so it's never mistaken for the return). An inferred return (expression
14
+ * body with no `: Type`), a lambda return type, or `Unit` / `Nothing` → undefined.
15
+ */
16
+ function extractKotlinReturnType(node, source) {
17
+ let seenParams = false;
18
+ for (let i = 0; i < node.namedChildCount; i++) {
19
+ const child = node.namedChild(i);
20
+ if (!child)
21
+ continue;
22
+ if (child.type === 'function_value_parameters') {
23
+ seenParams = true;
24
+ continue;
25
+ }
26
+ if (!seenParams)
27
+ continue;
28
+ // The return type is the type node right after the params. If we reach the
29
+ // body or a `where`-clause first, there's no declared return type.
30
+ if (child.type === 'function_body' || child.type === 'type_constraints')
31
+ return undefined;
32
+ if (child.type === 'user_type' || child.type === 'nullable_type') {
33
+ const ut = child.type === 'nullable_type'
34
+ ? (child.namedChildren.find((c) => c.type === 'user_type') ?? child)
35
+ : child;
36
+ const typeId = ut.namedChildren.find((c) => c.type === 'type_identifier');
37
+ const name = (0, tree_sitter_helpers_1.getNodeText)(typeId ?? ut, source).trim();
38
+ if (!name || !/^[A-Za-z_]\w*$/.test(name))
39
+ return undefined;
40
+ if (KOTLIN_NON_CLASS_RETURN.has(name))
41
+ return undefined;
42
+ return name;
43
+ }
44
+ }
45
+ return undefined;
46
+ }
5
47
  /** Check if a node matches the `fun interface` misparse pattern */
6
48
  function isFunInterfaceNode(node) {
7
49
  let hasFun = false;
@@ -133,6 +175,7 @@ exports.kotlinExtractor = {
133
175
  },
134
176
  paramsField: 'function_value_parameters',
135
177
  returnField: 'type',
178
+ getReturnType: extractKotlinReturnType,
136
179
  resolveBody: (node, _bodyField) => {
137
180
  // Kotlin's tree-sitter grammar doesn't use field names, so getChildByField fails.
138
181
  // Find body by type: function_body for functions/methods, class_body for classes,
@@ -241,6 +284,32 @@ exports.kotlinExtractor = {
241
284
  }
242
285
  return false;
243
286
  },
287
+ extractModifiers: (node) => {
288
+ // Kotlin Multiplatform `expect`/`actual` markers live in
289
+ // modifiers > platform_modifier > (expect | actual)
290
+ // Capturing them lets the resolver link an `expect` declaration in a
291
+ // common source set to its `actual` implementations in platform source
292
+ // sets (those impls otherwise have zero dependents — the caller resolves
293
+ // to the `expect`). Match the AST node, not raw text, so an annotation
294
+ // argument or identifier named "actual" can't false-positive.
295
+ const mods = [];
296
+ for (let i = 0; i < node.childCount; i++) {
297
+ const child = node.child(i);
298
+ if (child?.type !== 'modifiers')
299
+ continue;
300
+ for (let j = 0; j < child.childCount; j++) {
301
+ const pm = child.child(j);
302
+ if (pm?.type !== 'platform_modifier')
303
+ continue;
304
+ for (let k = 0; k < pm.childCount; k++) {
305
+ const kw = pm.child(k);
306
+ if (kw && (kw.type === 'expect' || kw.type === 'actual'))
307
+ mods.push(kw.type);
308
+ }
309
+ }
310
+ }
311
+ return mods.length > 0 ? mods : undefined;
312
+ },
244
313
  extractImport: (node, source) => {
245
314
  const importText = source.substring(node.startIndex, node.endIndex).trim();
246
315
  const identifier = node.namedChildren.find((c) => c.type === 'identifier');