@saluzi/codegraph 0.2.0 → 0.2.1

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 (657) hide show
  1. package/dist/bin/codegraph.d.ts +26 -0
  2. package/dist/bin/codegraph.d.ts.map +1 -0
  3. package/dist/bin/codegraph.js +2248 -0
  4. package/dist/bin/codegraph.js.map +1 -0
  5. package/dist/bin/command-supervision.d.ts +49 -0
  6. package/dist/bin/command-supervision.d.ts.map +1 -0
  7. package/dist/bin/command-supervision.js +95 -0
  8. package/dist/bin/command-supervision.js.map +1 -0
  9. package/dist/bin/fatal-handler.d.ts +20 -0
  10. package/dist/bin/fatal-handler.d.ts.map +1 -0
  11. package/dist/bin/fatal-handler.js +118 -0
  12. package/dist/bin/fatal-handler.js.map +1 -0
  13. package/dist/bin/node-version-check.d.ts +37 -0
  14. package/dist/bin/node-version-check.d.ts.map +1 -0
  15. package/dist/bin/node-version-check.js +79 -0
  16. package/dist/bin/node-version-check.js.map +1 -0
  17. package/dist/bin/uninstall.d.ts +14 -0
  18. package/dist/bin/uninstall.d.ts.map +1 -0
  19. package/dist/bin/uninstall.js +36 -0
  20. package/dist/bin/uninstall.js.map +1 -0
  21. package/dist/context/formatter.d.ts +30 -0
  22. package/dist/context/formatter.d.ts.map +1 -0
  23. package/dist/context/formatter.js +263 -0
  24. package/dist/context/formatter.js.map +1 -0
  25. package/dist/context/index.d.ts +119 -0
  26. package/dist/context/index.d.ts.map +1 -0
  27. package/dist/context/index.js +1296 -0
  28. package/dist/context/index.js.map +1 -0
  29. package/dist/context/markers.d.ts +19 -0
  30. package/dist/context/markers.d.ts.map +1 -0
  31. package/dist/context/markers.js +22 -0
  32. package/dist/context/markers.js.map +1 -0
  33. package/dist/db/index.d.ts +201 -0
  34. package/dist/db/index.d.ts.map +1 -0
  35. package/dist/db/index.js +493 -0
  36. package/dist/db/index.js.map +1 -0
  37. package/dist/db/migrations.d.ts +44 -0
  38. package/dist/db/migrations.d.ts.map +1 -0
  39. package/dist/db/migrations.js +212 -0
  40. package/dist/db/migrations.js.map +1 -0
  41. package/dist/db/queries.d.ts +513 -0
  42. package/dist/db/queries.d.ts.map +1 -0
  43. package/dist/db/queries.js +1886 -0
  44. package/dist/db/queries.js.map +1 -0
  45. package/dist/db/schema.sql +194 -0
  46. package/dist/db/sqlite-adapter.d.ts +53 -0
  47. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  48. package/dist/db/sqlite-adapter.js +117 -0
  49. package/dist/db/sqlite-adapter.js.map +1 -0
  50. package/dist/db/wal-valve.d.ts +106 -0
  51. package/dist/db/wal-valve.d.ts.map +1 -0
  52. package/dist/db/wal-valve.js +208 -0
  53. package/dist/db/wal-valve.js.map +1 -0
  54. package/dist/directory.d.ts +183 -0
  55. package/dist/directory.d.ts.map +1 -0
  56. package/dist/directory.js +797 -0
  57. package/dist/directory.js.map +1 -0
  58. package/dist/errors.d.ts +136 -0
  59. package/dist/errors.d.ts.map +1 -0
  60. package/dist/errors.js +219 -0
  61. package/dist/errors.js.map +1 -0
  62. package/dist/extraction/astro-extractor.d.ts +79 -0
  63. package/dist/extraction/astro-extractor.d.ts.map +1 -0
  64. package/dist/extraction/astro-extractor.js +320 -0
  65. package/dist/extraction/astro-extractor.js.map +1 -0
  66. package/dist/extraction/cfml-extractor.d.ts +107 -0
  67. package/dist/extraction/cfml-extractor.d.ts.map +1 -0
  68. package/dist/extraction/cfml-extractor.js +494 -0
  69. package/dist/extraction/cfml-extractor.js.map +1 -0
  70. package/dist/extraction/dfm-extractor.d.ts +31 -0
  71. package/dist/extraction/dfm-extractor.d.ts.map +1 -0
  72. package/dist/extraction/dfm-extractor.js +151 -0
  73. package/dist/extraction/dfm-extractor.js.map +1 -0
  74. package/dist/extraction/extraction-version.d.ts +25 -0
  75. package/dist/extraction/extraction-version.d.ts.map +1 -0
  76. package/dist/extraction/extraction-version.js +28 -0
  77. package/dist/extraction/extraction-version.js.map +1 -0
  78. package/dist/extraction/function-ref.d.ts +118 -0
  79. package/dist/extraction/function-ref.d.ts.map +1 -0
  80. package/dist/extraction/function-ref.js +727 -0
  81. package/dist/extraction/function-ref.js.map +1 -0
  82. package/dist/extraction/generated-detection.d.ts +30 -0
  83. package/dist/extraction/generated-detection.d.ts.map +1 -0
  84. package/dist/extraction/generated-detection.js +83 -0
  85. package/dist/extraction/generated-detection.js.map +1 -0
  86. package/dist/extraction/grammars.d.ts +138 -0
  87. package/dist/extraction/grammars.d.ts.map +1 -0
  88. package/dist/extraction/grammars.js +631 -0
  89. package/dist/extraction/grammars.js.map +1 -0
  90. package/dist/extraction/index.d.ts +232 -0
  91. package/dist/extraction/index.d.ts.map +1 -0
  92. package/dist/extraction/index.js +2409 -0
  93. package/dist/extraction/index.js.map +1 -0
  94. package/dist/extraction/languages/arkts.d.ts +3 -0
  95. package/dist/extraction/languages/arkts.d.ts.map +1 -0
  96. package/dist/extraction/languages/arkts.js +127 -0
  97. package/dist/extraction/languages/arkts.js.map +1 -0
  98. package/dist/extraction/languages/c-cpp.d.ts +110 -0
  99. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  100. package/dist/extraction/languages/c-cpp.js +837 -0
  101. package/dist/extraction/languages/c-cpp.js.map +1 -0
  102. package/dist/extraction/languages/cfquery.d.ts +12 -0
  103. package/dist/extraction/languages/cfquery.d.ts.map +1 -0
  104. package/dist/extraction/languages/cfquery.js +28 -0
  105. package/dist/extraction/languages/cfquery.js.map +1 -0
  106. package/dist/extraction/languages/cfscript.d.ts +3 -0
  107. package/dist/extraction/languages/cfscript.d.ts.map +1 -0
  108. package/dist/extraction/languages/cfscript.js +73 -0
  109. package/dist/extraction/languages/cfscript.js.map +1 -0
  110. package/dist/extraction/languages/cobol.d.ts +33 -0
  111. package/dist/extraction/languages/cobol.d.ts.map +1 -0
  112. package/dist/extraction/languages/cobol.js +499 -0
  113. package/dist/extraction/languages/cobol.js.map +1 -0
  114. package/dist/extraction/languages/csharp.d.ts +25 -0
  115. package/dist/extraction/languages/csharp.d.ts.map +1 -0
  116. package/dist/extraction/languages/csharp.js +175 -0
  117. package/dist/extraction/languages/csharp.js.map +1 -0
  118. package/dist/extraction/languages/dart.d.ts +3 -0
  119. package/dist/extraction/languages/dart.d.ts.map +1 -0
  120. package/dist/extraction/languages/dart.js +374 -0
  121. package/dist/extraction/languages/dart.js.map +1 -0
  122. package/dist/extraction/languages/erlang.d.ts +3 -0
  123. package/dist/extraction/languages/erlang.d.ts.map +1 -0
  124. package/dist/extraction/languages/erlang.js +350 -0
  125. package/dist/extraction/languages/erlang.js.map +1 -0
  126. package/dist/extraction/languages/go.d.ts +3 -0
  127. package/dist/extraction/languages/go.d.ts.map +1 -0
  128. package/dist/extraction/languages/go.js +111 -0
  129. package/dist/extraction/languages/go.js.map +1 -0
  130. package/dist/extraction/languages/index.d.ts +10 -0
  131. package/dist/extraction/languages/index.d.ts.map +1 -0
  132. package/dist/extraction/languages/index.js +71 -0
  133. package/dist/extraction/languages/index.js.map +1 -0
  134. package/dist/extraction/languages/java.d.ts +3 -0
  135. package/dist/extraction/languages/java.d.ts.map +1 -0
  136. package/dist/extraction/languages/java.js +315 -0
  137. package/dist/extraction/languages/java.js.map +1 -0
  138. package/dist/extraction/languages/javascript.d.ts +3 -0
  139. package/dist/extraction/languages/javascript.d.ts.map +1 -0
  140. package/dist/extraction/languages/javascript.js +106 -0
  141. package/dist/extraction/languages/javascript.js.map +1 -0
  142. package/dist/extraction/languages/kotlin.d.ts +3 -0
  143. package/dist/extraction/languages/kotlin.d.ts.map +1 -0
  144. package/dist/extraction/languages/kotlin.js +379 -0
  145. package/dist/extraction/languages/kotlin.js.map +1 -0
  146. package/dist/extraction/languages/lua.d.ts +3 -0
  147. package/dist/extraction/languages/lua.d.ts.map +1 -0
  148. package/dist/extraction/languages/lua.js +150 -0
  149. package/dist/extraction/languages/lua.js.map +1 -0
  150. package/dist/extraction/languages/luau.d.ts +3 -0
  151. package/dist/extraction/languages/luau.d.ts.map +1 -0
  152. package/dist/extraction/languages/luau.js +37 -0
  153. package/dist/extraction/languages/luau.js.map +1 -0
  154. package/dist/extraction/languages/nix.d.ts +3 -0
  155. package/dist/extraction/languages/nix.d.ts.map +1 -0
  156. package/dist/extraction/languages/nix.js +294 -0
  157. package/dist/extraction/languages/nix.js.map +1 -0
  158. package/dist/extraction/languages/objc.d.ts +3 -0
  159. package/dist/extraction/languages/objc.d.ts.map +1 -0
  160. package/dist/extraction/languages/objc.js +175 -0
  161. package/dist/extraction/languages/objc.js.map +1 -0
  162. package/dist/extraction/languages/pascal.d.ts +3 -0
  163. package/dist/extraction/languages/pascal.d.ts.map +1 -0
  164. package/dist/extraction/languages/pascal.js +77 -0
  165. package/dist/extraction/languages/pascal.js.map +1 -0
  166. package/dist/extraction/languages/php.d.ts +3 -0
  167. package/dist/extraction/languages/php.d.ts.map +1 -0
  168. package/dist/extraction/languages/php.js +196 -0
  169. package/dist/extraction/languages/php.js.map +1 -0
  170. package/dist/extraction/languages/python.d.ts +3 -0
  171. package/dist/extraction/languages/python.d.ts.map +1 -0
  172. package/dist/extraction/languages/python.js +56 -0
  173. package/dist/extraction/languages/python.js.map +1 -0
  174. package/dist/extraction/languages/r.d.ts +3 -0
  175. package/dist/extraction/languages/r.d.ts.map +1 -0
  176. package/dist/extraction/languages/r.js +314 -0
  177. package/dist/extraction/languages/r.js.map +1 -0
  178. package/dist/extraction/languages/ruby.d.ts +3 -0
  179. package/dist/extraction/languages/ruby.d.ts.map +1 -0
  180. package/dist/extraction/languages/ruby.js +149 -0
  181. package/dist/extraction/languages/ruby.js.map +1 -0
  182. package/dist/extraction/languages/rust.d.ts +3 -0
  183. package/dist/extraction/languages/rust.d.ts.map +1 -0
  184. package/dist/extraction/languages/rust.js +142 -0
  185. package/dist/extraction/languages/rust.js.map +1 -0
  186. package/dist/extraction/languages/scala.d.ts +3 -0
  187. package/dist/extraction/languages/scala.d.ts.map +1 -0
  188. package/dist/extraction/languages/scala.js +209 -0
  189. package/dist/extraction/languages/scala.js.map +1 -0
  190. package/dist/extraction/languages/solidity.d.ts +3 -0
  191. package/dist/extraction/languages/solidity.d.ts.map +1 -0
  192. package/dist/extraction/languages/solidity.js +293 -0
  193. package/dist/extraction/languages/solidity.js.map +1 -0
  194. package/dist/extraction/languages/swift.d.ts +3 -0
  195. package/dist/extraction/languages/swift.d.ts.map +1 -0
  196. package/dist/extraction/languages/swift.js +152 -0
  197. package/dist/extraction/languages/swift.js.map +1 -0
  198. package/dist/extraction/languages/terraform.d.ts +3 -0
  199. package/dist/extraction/languages/terraform.d.ts.map +1 -0
  200. package/dist/extraction/languages/terraform.js +641 -0
  201. package/dist/extraction/languages/terraform.js.map +1 -0
  202. package/dist/extraction/languages/typescript.d.ts +16 -0
  203. package/dist/extraction/languages/typescript.d.ts.map +1 -0
  204. package/dist/extraction/languages/typescript.js +167 -0
  205. package/dist/extraction/languages/typescript.js.map +1 -0
  206. package/dist/extraction/languages/vbnet.d.ts +11 -0
  207. package/dist/extraction/languages/vbnet.d.ts.map +1 -0
  208. package/dist/extraction/languages/vbnet.js +141 -0
  209. package/dist/extraction/languages/vbnet.js.map +1 -0
  210. package/dist/extraction/liquid-extractor.d.ts +59 -0
  211. package/dist/extraction/liquid-extractor.d.ts.map +1 -0
  212. package/dist/extraction/liquid-extractor.js +357 -0
  213. package/dist/extraction/liquid-extractor.js.map +1 -0
  214. package/dist/extraction/mybatis-extractor.d.ts +68 -0
  215. package/dist/extraction/mybatis-extractor.d.ts.map +1 -0
  216. package/dist/extraction/mybatis-extractor.js +300 -0
  217. package/dist/extraction/mybatis-extractor.js.map +1 -0
  218. package/dist/extraction/parse-pool.d.ts +152 -0
  219. package/dist/extraction/parse-pool.d.ts.map +1 -0
  220. package/dist/extraction/parse-pool.js +387 -0
  221. package/dist/extraction/parse-pool.js.map +1 -0
  222. package/dist/extraction/parse-worker.d.ts +8 -0
  223. package/dist/extraction/parse-worker.d.ts.map +1 -0
  224. package/dist/extraction/parse-worker.js +104 -0
  225. package/dist/extraction/parse-worker.js.map +1 -0
  226. package/dist/extraction/razor-extractor.d.ts +42 -0
  227. package/dist/extraction/razor-extractor.d.ts.map +1 -0
  228. package/dist/extraction/razor-extractor.js +285 -0
  229. package/dist/extraction/razor-extractor.js.map +1 -0
  230. package/dist/extraction/svelte-extractor.d.ts +56 -0
  231. package/dist/extraction/svelte-extractor.d.ts.map +1 -0
  232. package/dist/extraction/svelte-extractor.js +275 -0
  233. package/dist/extraction/svelte-extractor.js.map +1 -0
  234. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  235. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  236. package/dist/extraction/tree-sitter-helpers.js +153 -0
  237. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  238. package/dist/extraction/tree-sitter-types.d.ts +258 -0
  239. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  240. package/dist/extraction/tree-sitter-types.js +10 -0
  241. package/dist/extraction/tree-sitter-types.js.map +1 -0
  242. package/dist/extraction/tree-sitter.d.ts +706 -0
  243. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  244. package/dist/extraction/tree-sitter.js +6506 -0
  245. package/dist/extraction/tree-sitter.js.map +1 -0
  246. package/dist/extraction/vue-extractor.d.ts +51 -0
  247. package/dist/extraction/vue-extractor.d.ts.map +1 -0
  248. package/dist/extraction/vue-extractor.js +254 -0
  249. package/dist/extraction/vue-extractor.js.map +1 -0
  250. package/dist/extraction/wasm/tree-sitter-arkts.wasm +0 -0
  251. package/dist/extraction/wasm/tree-sitter-c_sharp.wasm +0 -0
  252. package/dist/extraction/wasm/tree-sitter-cfml.wasm +0 -0
  253. package/dist/extraction/wasm/tree-sitter-cfquery.wasm +0 -0
  254. package/dist/extraction/wasm/tree-sitter-cfscript.wasm +0 -0
  255. package/dist/extraction/wasm/tree-sitter-cobol.wasm +0 -0
  256. package/dist/extraction/wasm/tree-sitter-erlang.wasm +0 -0
  257. package/dist/extraction/wasm/tree-sitter-lua.wasm +0 -0
  258. package/dist/extraction/wasm/tree-sitter-luau.wasm +0 -0
  259. package/dist/extraction/wasm/tree-sitter-nix.wasm +0 -0
  260. package/dist/extraction/wasm/tree-sitter-pascal.wasm +0 -0
  261. package/dist/extraction/wasm/tree-sitter-r.wasm +0 -0
  262. package/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  263. package/dist/extraction/wasm/tree-sitter-terraform.wasm +0 -0
  264. package/dist/extraction/wasm/tree-sitter-vbnet.wasm +0 -0
  265. package/dist/extraction/wasm-runtime-flags.d.ts +38 -0
  266. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  267. package/dist/extraction/wasm-runtime-flags.js +106 -0
  268. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  269. package/dist/graph/index.d.ts +8 -0
  270. package/dist/graph/index.d.ts.map +1 -0
  271. package/dist/graph/index.js +13 -0
  272. package/dist/graph/index.js.map +1 -0
  273. package/dist/graph/queries.d.ts +106 -0
  274. package/dist/graph/queries.d.ts.map +1 -0
  275. package/dist/graph/queries.js +339 -0
  276. package/dist/graph/queries.js.map +1 -0
  277. package/dist/graph/traversal.d.ts +127 -0
  278. package/dist/graph/traversal.d.ts.map +1 -0
  279. package/dist/graph/traversal.js +599 -0
  280. package/dist/graph/traversal.js.map +1 -0
  281. package/dist/index.d.ts +643 -0
  282. package/dist/index.d.ts.map +1 -0
  283. package/dist/index.js +1491 -0
  284. package/dist/index.js.map +1 -0
  285. package/dist/installer/config-writer.d.ts +28 -0
  286. package/dist/installer/config-writer.d.ts.map +1 -0
  287. package/dist/installer/config-writer.js +91 -0
  288. package/dist/installer/config-writer.js.map +1 -0
  289. package/dist/installer/index.d.ts +142 -0
  290. package/dist/installer/index.d.ts.map +1 -0
  291. package/dist/installer/index.js +619 -0
  292. package/dist/installer/index.js.map +1 -0
  293. package/dist/installer/instructions-template.d.ts +41 -0
  294. package/dist/installer/instructions-template.d.ts.map +1 -0
  295. package/dist/installer/instructions-template.js +53 -0
  296. package/dist/installer/instructions-template.js.map +1 -0
  297. package/dist/installer/targets/antigravity.d.ts +57 -0
  298. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  299. package/dist/installer/targets/antigravity.js +308 -0
  300. package/dist/installer/targets/antigravity.js.map +1 -0
  301. package/dist/installer/targets/claude.d.ts +62 -0
  302. package/dist/installer/targets/claude.d.ts.map +1 -0
  303. package/dist/installer/targets/claude.js +454 -0
  304. package/dist/installer/targets/claude.js.map +1 -0
  305. package/dist/installer/targets/codex.d.ts +18 -0
  306. package/dist/installer/targets/codex.d.ts.map +1 -0
  307. package/dist/installer/targets/codex.js +185 -0
  308. package/dist/installer/targets/codex.js.map +1 -0
  309. package/dist/installer/targets/cursor.d.ts +35 -0
  310. package/dist/installer/targets/cursor.d.ts.map +1 -0
  311. package/dist/installer/targets/cursor.js +254 -0
  312. package/dist/installer/targets/cursor.js.map +1 -0
  313. package/dist/installer/targets/gemini.d.ts +26 -0
  314. package/dist/installer/targets/gemini.d.ts.map +1 -0
  315. package/dist/installer/targets/gemini.js +165 -0
  316. package/dist/installer/targets/gemini.js.map +1 -0
  317. package/dist/installer/targets/hermes.d.ts +18 -0
  318. package/dist/installer/targets/hermes.d.ts.map +1 -0
  319. package/dist/installer/targets/hermes.js +359 -0
  320. package/dist/installer/targets/hermes.js.map +1 -0
  321. package/dist/installer/targets/kiro.d.ts +27 -0
  322. package/dist/installer/targets/kiro.d.ts.map +1 -0
  323. package/dist/installer/targets/kiro.js +178 -0
  324. package/dist/installer/targets/kiro.js.map +1 -0
  325. package/dist/installer/targets/opencode.d.ts +38 -0
  326. package/dist/installer/targets/opencode.d.ts.map +1 -0
  327. package/dist/installer/targets/opencode.js +288 -0
  328. package/dist/installer/targets/opencode.js.map +1 -0
  329. package/dist/installer/targets/registry.d.ts +35 -0
  330. package/dist/installer/targets/registry.d.ts.map +1 -0
  331. package/dist/installer/targets/registry.js +91 -0
  332. package/dist/installer/targets/registry.js.map +1 -0
  333. package/dist/installer/targets/shared.d.ts +101 -0
  334. package/dist/installer/targets/shared.d.ts.map +1 -0
  335. package/dist/installer/targets/shared.js +264 -0
  336. package/dist/installer/targets/shared.js.map +1 -0
  337. package/dist/installer/targets/toml.d.ts +52 -0
  338. package/dist/installer/targets/toml.d.ts.map +1 -0
  339. package/dist/installer/targets/toml.js +147 -0
  340. package/dist/installer/targets/toml.js.map +1 -0
  341. package/dist/installer/targets/types.d.ts +108 -0
  342. package/dist/installer/targets/types.d.ts.map +1 -0
  343. package/dist/installer/targets/types.js +16 -0
  344. package/dist/installer/targets/types.js.map +1 -0
  345. package/dist/mcp/daemon-manager.d.ts +42 -0
  346. package/dist/mcp/daemon-manager.d.ts.map +1 -0
  347. package/dist/mcp/daemon-manager.js +129 -0
  348. package/dist/mcp/daemon-manager.js.map +1 -0
  349. package/dist/mcp/daemon-paths.d.ts +73 -0
  350. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  351. package/dist/mcp/daemon-paths.js +165 -0
  352. package/dist/mcp/daemon-paths.js.map +1 -0
  353. package/dist/mcp/daemon-registry.d.ts +47 -0
  354. package/dist/mcp/daemon-registry.d.ts.map +1 -0
  355. package/dist/mcp/daemon-registry.js +233 -0
  356. package/dist/mcp/daemon-registry.js.map +1 -0
  357. package/dist/mcp/daemon.d.ts +290 -0
  358. package/dist/mcp/daemon.d.ts.map +1 -0
  359. package/dist/mcp/daemon.js +862 -0
  360. package/dist/mcp/daemon.js.map +1 -0
  361. package/dist/mcp/dynamic-boundaries.d.ts +41 -0
  362. package/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  363. package/dist/mcp/dynamic-boundaries.js +360 -0
  364. package/dist/mcp/dynamic-boundaries.js.map +1 -0
  365. package/dist/mcp/early-ppid.d.ts +26 -0
  366. package/dist/mcp/early-ppid.d.ts.map +1 -0
  367. package/dist/mcp/early-ppid.js +29 -0
  368. package/dist/mcp/early-ppid.js.map +1 -0
  369. package/dist/mcp/engine.d.ts +122 -0
  370. package/dist/mcp/engine.d.ts.map +1 -0
  371. package/dist/mcp/engine.js +350 -0
  372. package/dist/mcp/engine.js.map +1 -0
  373. package/dist/mcp/index.d.ts +113 -0
  374. package/dist/mcp/index.d.ts.map +1 -0
  375. package/dist/mcp/index.js +506 -0
  376. package/dist/mcp/index.js.map +1 -0
  377. package/dist/mcp/liveness-watchdog.d.ts +35 -0
  378. package/dist/mcp/liveness-watchdog.d.ts.map +1 -0
  379. package/dist/mcp/liveness-watchdog.js +267 -0
  380. package/dist/mcp/liveness-watchdog.js.map +1 -0
  381. package/dist/mcp/ppid-watchdog.d.ts +62 -0
  382. package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  383. package/dist/mcp/ppid-watchdog.js +64 -0
  384. package/dist/mcp/ppid-watchdog.js.map +1 -0
  385. package/dist/mcp/proxy.d.ts +87 -0
  386. package/dist/mcp/proxy.d.ts.map +1 -0
  387. package/dist/mcp/proxy.js +667 -0
  388. package/dist/mcp/proxy.js.map +1 -0
  389. package/dist/mcp/query-pool.d.ts +108 -0
  390. package/dist/mcp/query-pool.d.ts.map +1 -0
  391. package/dist/mcp/query-pool.js +315 -0
  392. package/dist/mcp/query-pool.js.map +1 -0
  393. package/dist/mcp/query-worker.d.ts +24 -0
  394. package/dist/mcp/query-worker.d.ts.map +1 -0
  395. package/dist/mcp/query-worker.js +87 -0
  396. package/dist/mcp/query-worker.js.map +1 -0
  397. package/dist/mcp/server-instructions.d.ts +34 -0
  398. package/dist/mcp/server-instructions.d.ts.map +1 -0
  399. package/dist/mcp/server-instructions.js +106 -0
  400. package/dist/mcp/server-instructions.js.map +1 -0
  401. package/dist/mcp/session.d.ts +93 -0
  402. package/dist/mcp/session.d.ts.map +1 -0
  403. package/dist/mcp/session.js +357 -0
  404. package/dist/mcp/session.js.map +1 -0
  405. package/dist/mcp/startup-handshake.d.ts +44 -0
  406. package/dist/mcp/startup-handshake.d.ts.map +1 -0
  407. package/dist/mcp/startup-handshake.js +73 -0
  408. package/dist/mcp/startup-handshake.js.map +1 -0
  409. package/dist/mcp/stdin-teardown.d.ts +27 -0
  410. package/dist/mcp/stdin-teardown.d.ts.map +1 -0
  411. package/dist/mcp/stdin-teardown.js +49 -0
  412. package/dist/mcp/stdin-teardown.js.map +1 -0
  413. package/dist/mcp/tools.d.ts +613 -0
  414. package/dist/mcp/tools.d.ts.map +1 -0
  415. package/dist/mcp/tools.js +4477 -0
  416. package/dist/mcp/tools.js.map +1 -0
  417. package/dist/mcp/transport.d.ts +188 -0
  418. package/dist/mcp/transport.d.ts.map +1 -0
  419. package/dist/mcp/transport.js +377 -0
  420. package/dist/mcp/transport.js.map +1 -0
  421. package/dist/mcp/version.d.ts +19 -0
  422. package/dist/mcp/version.d.ts.map +1 -0
  423. package/dist/mcp/version.js +71 -0
  424. package/dist/mcp/version.js.map +1 -0
  425. package/dist/project-config.d.ts +94 -0
  426. package/dist/project-config.d.ts.map +1 -0
  427. package/dist/project-config.js +374 -0
  428. package/dist/project-config.js.map +1 -0
  429. package/dist/resolution/c-fnptr-synthesizer.d.ts +6 -0
  430. package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
  431. package/dist/resolution/c-fnptr-synthesizer.js +1062 -0
  432. package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
  433. package/dist/resolution/callback-synthesizer.d.ts +15 -0
  434. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  435. package/dist/resolution/callback-synthesizer.js +3938 -0
  436. package/dist/resolution/callback-synthesizer.js.map +1 -0
  437. package/dist/resolution/cooperative-yield.d.ts +32 -0
  438. package/dist/resolution/cooperative-yield.d.ts.map +1 -0
  439. package/dist/resolution/cooperative-yield.js +42 -0
  440. package/dist/resolution/cooperative-yield.js.map +1 -0
  441. package/dist/resolution/frameworks/astro.d.ts +9 -0
  442. package/dist/resolution/frameworks/astro.d.ts.map +1 -0
  443. package/dist/resolution/frameworks/astro.js +169 -0
  444. package/dist/resolution/frameworks/astro.js.map +1 -0
  445. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  446. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  447. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  448. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  449. package/dist/resolution/frameworks/cics.d.ts +20 -0
  450. package/dist/resolution/frameworks/cics.d.ts.map +1 -0
  451. package/dist/resolution/frameworks/cics.js +90 -0
  452. package/dist/resolution/frameworks/cics.js.map +1 -0
  453. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  454. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  455. package/dist/resolution/frameworks/csharp.js +241 -0
  456. package/dist/resolution/frameworks/csharp.js.map +1 -0
  457. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  458. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  459. package/dist/resolution/frameworks/drupal.js +367 -0
  460. package/dist/resolution/frameworks/drupal.js.map +1 -0
  461. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  462. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  463. package/dist/resolution/frameworks/expo-modules.js +148 -0
  464. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  465. package/dist/resolution/frameworks/express.d.ts +8 -0
  466. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  467. package/dist/resolution/frameworks/express.js +308 -0
  468. package/dist/resolution/frameworks/express.js.map +1 -0
  469. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  470. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  471. package/dist/resolution/frameworks/fabric.js +354 -0
  472. package/dist/resolution/frameworks/fabric.js.map +1 -0
  473. package/dist/resolution/frameworks/go.d.ts +8 -0
  474. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  475. package/dist/resolution/frameworks/go.js +161 -0
  476. package/dist/resolution/frameworks/go.js.map +1 -0
  477. package/dist/resolution/frameworks/goframe.d.ts +41 -0
  478. package/dist/resolution/frameworks/goframe.d.ts.map +1 -0
  479. package/dist/resolution/frameworks/goframe.js +112 -0
  480. package/dist/resolution/frameworks/goframe.js.map +1 -0
  481. package/dist/resolution/frameworks/index.d.ts +50 -0
  482. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  483. package/dist/resolution/frameworks/index.js +175 -0
  484. package/dist/resolution/frameworks/index.js.map +1 -0
  485. package/dist/resolution/frameworks/java.d.ts +8 -0
  486. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  487. package/dist/resolution/frameworks/java.js +517 -0
  488. package/dist/resolution/frameworks/java.js.map +1 -0
  489. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  490. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  491. package/dist/resolution/frameworks/laravel.js +257 -0
  492. package/dist/resolution/frameworks/laravel.js.map +1 -0
  493. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  494. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  495. package/dist/resolution/frameworks/nestjs.js +698 -0
  496. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  497. package/dist/resolution/frameworks/play.d.ts +19 -0
  498. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  499. package/dist/resolution/frameworks/play.js +111 -0
  500. package/dist/resolution/frameworks/play.js.map +1 -0
  501. package/dist/resolution/frameworks/python.d.ts +10 -0
  502. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  503. package/dist/resolution/frameworks/python.js +400 -0
  504. package/dist/resolution/frameworks/python.js.map +1 -0
  505. package/dist/resolution/frameworks/react-native.d.ts +3 -0
  506. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  507. package/dist/resolution/frameworks/react-native.js +410 -0
  508. package/dist/resolution/frameworks/react-native.js.map +1 -0
  509. package/dist/resolution/frameworks/react.d.ts +8 -0
  510. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  511. package/dist/resolution/frameworks/react.js +334 -0
  512. package/dist/resolution/frameworks/react.js.map +1 -0
  513. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  514. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  515. package/dist/resolution/frameworks/ruby.js +302 -0
  516. package/dist/resolution/frameworks/ruby.js.map +1 -0
  517. package/dist/resolution/frameworks/rust.d.ts +8 -0
  518. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  519. package/dist/resolution/frameworks/rust.js +304 -0
  520. package/dist/resolution/frameworks/rust.js.map +1 -0
  521. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  522. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  523. package/dist/resolution/frameworks/svelte.js +253 -0
  524. package/dist/resolution/frameworks/svelte.js.map +1 -0
  525. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  526. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  527. package/dist/resolution/frameworks/swift-objc.js +252 -0
  528. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  529. package/dist/resolution/frameworks/swift.d.ts +10 -0
  530. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  531. package/dist/resolution/frameworks/swift.js +400 -0
  532. package/dist/resolution/frameworks/swift.js.map +1 -0
  533. package/dist/resolution/frameworks/terraform.d.ts +38 -0
  534. package/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  535. package/dist/resolution/frameworks/terraform.js +277 -0
  536. package/dist/resolution/frameworks/terraform.js.map +1 -0
  537. package/dist/resolution/frameworks/vue.d.ts +9 -0
  538. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  539. package/dist/resolution/frameworks/vue.js +303 -0
  540. package/dist/resolution/frameworks/vue.js.map +1 -0
  541. package/dist/resolution/go-module.d.ts +26 -0
  542. package/dist/resolution/go-module.d.ts.map +1 -0
  543. package/dist/resolution/go-module.js +78 -0
  544. package/dist/resolution/go-module.js.map +1 -0
  545. package/dist/resolution/goframe-synthesizer.d.ts +29 -0
  546. package/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
  547. package/dist/resolution/goframe-synthesizer.js +163 -0
  548. package/dist/resolution/goframe-synthesizer.js.map +1 -0
  549. package/dist/resolution/import-resolver.d.ts +85 -0
  550. package/dist/resolution/import-resolver.d.ts.map +1 -0
  551. package/dist/resolution/import-resolver.js +1974 -0
  552. package/dist/resolution/import-resolver.js.map +1 -0
  553. package/dist/resolution/index.d.ts +258 -0
  554. package/dist/resolution/index.d.ts.map +1 -0
  555. package/dist/resolution/index.js +1746 -0
  556. package/dist/resolution/index.js.map +1 -0
  557. package/dist/resolution/lru-cache.d.ts +24 -0
  558. package/dist/resolution/lru-cache.d.ts.map +1 -0
  559. package/dist/resolution/lru-cache.js +62 -0
  560. package/dist/resolution/lru-cache.js.map +1 -0
  561. package/dist/resolution/name-matcher.d.ts +112 -0
  562. package/dist/resolution/name-matcher.d.ts.map +1 -0
  563. package/dist/resolution/name-matcher.js +1830 -0
  564. package/dist/resolution/name-matcher.js.map +1 -0
  565. package/dist/resolution/path-aliases.d.ts +68 -0
  566. package/dist/resolution/path-aliases.d.ts.map +1 -0
  567. package/dist/resolution/path-aliases.js +238 -0
  568. package/dist/resolution/path-aliases.js.map +1 -0
  569. package/dist/resolution/strip-comments.d.ts +27 -0
  570. package/dist/resolution/strip-comments.d.ts.map +1 -0
  571. package/dist/resolution/strip-comments.js +492 -0
  572. package/dist/resolution/strip-comments.js.map +1 -0
  573. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  574. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  575. package/dist/resolution/swift-objc-bridge.js +256 -0
  576. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  577. package/dist/resolution/types.d.ts +262 -0
  578. package/dist/resolution/types.d.ts.map +1 -0
  579. package/dist/resolution/types.js +8 -0
  580. package/dist/resolution/types.js.map +1 -0
  581. package/dist/resolution/workspace-packages.d.ts +58 -0
  582. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  583. package/dist/resolution/workspace-packages.js +346 -0
  584. package/dist/resolution/workspace-packages.js.map +1 -0
  585. package/dist/search/identifier-segments.d.ts +60 -0
  586. package/dist/search/identifier-segments.d.ts.map +1 -0
  587. package/dist/search/identifier-segments.js +176 -0
  588. package/dist/search/identifier-segments.js.map +1 -0
  589. package/dist/search/query-parser.d.ts +57 -0
  590. package/dist/search/query-parser.d.ts.map +1 -0
  591. package/dist/search/query-parser.js +177 -0
  592. package/dist/search/query-parser.js.map +1 -0
  593. package/dist/search/query-utils.d.ts +87 -0
  594. package/dist/search/query-utils.d.ts.map +1 -0
  595. package/dist/search/query-utils.js +449 -0
  596. package/dist/search/query-utils.js.map +1 -0
  597. package/dist/sync/git-hooks.d.ts +45 -0
  598. package/dist/sync/git-hooks.d.ts.map +1 -0
  599. package/dist/sync/git-hooks.js +227 -0
  600. package/dist/sync/git-hooks.js.map +1 -0
  601. package/dist/sync/index.d.ts +19 -0
  602. package/dist/sync/index.d.ts.map +1 -0
  603. package/dist/sync/index.js +35 -0
  604. package/dist/sync/index.js.map +1 -0
  605. package/dist/sync/watch-policy.d.ts +48 -0
  606. package/dist/sync/watch-policy.d.ts.map +1 -0
  607. package/dist/sync/watch-policy.js +124 -0
  608. package/dist/sync/watch-policy.js.map +1 -0
  609. package/dist/sync/watcher.d.ts +355 -0
  610. package/dist/sync/watcher.d.ts.map +1 -0
  611. package/dist/sync/watcher.js +848 -0
  612. package/dist/sync/watcher.js.map +1 -0
  613. package/dist/sync/worktree.d.ts +63 -0
  614. package/dist/sync/worktree.d.ts.map +1 -0
  615. package/dist/sync/worktree.js +182 -0
  616. package/dist/sync/worktree.js.map +1 -0
  617. package/dist/telemetry/index.d.ts +143 -0
  618. package/dist/telemetry/index.d.ts.map +1 -0
  619. package/dist/telemetry/index.js +541 -0
  620. package/dist/telemetry/index.js.map +1 -0
  621. package/dist/types.d.ts +415 -0
  622. package/dist/types.d.ts.map +1 -0
  623. package/dist/types.js +91 -0
  624. package/dist/types.js.map +1 -0
  625. package/dist/ui/glyphs.d.ts +42 -0
  626. package/dist/ui/glyphs.d.ts.map +1 -0
  627. package/dist/ui/glyphs.js +78 -0
  628. package/dist/ui/glyphs.js.map +1 -0
  629. package/dist/ui/shimmer-progress.d.ts +11 -0
  630. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  631. package/dist/ui/shimmer-progress.js +90 -0
  632. package/dist/ui/shimmer-progress.js.map +1 -0
  633. package/dist/ui/shimmer-worker.d.ts +2 -0
  634. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  635. package/dist/ui/shimmer-worker.js +118 -0
  636. package/dist/ui/shimmer-worker.js.map +1 -0
  637. package/dist/ui/types.d.ts +17 -0
  638. package/dist/ui/types.d.ts.map +1 -0
  639. package/dist/ui/types.js +3 -0
  640. package/dist/ui/types.js.map +1 -0
  641. package/dist/upgrade/index.d.ts +164 -0
  642. package/dist/upgrade/index.d.ts.map +1 -0
  643. package/dist/upgrade/index.js +646 -0
  644. package/dist/upgrade/index.js.map +1 -0
  645. package/dist/upgrade/remove-binary.d.ts +87 -0
  646. package/dist/upgrade/remove-binary.d.ts.map +1 -0
  647. package/dist/upgrade/remove-binary.js +289 -0
  648. package/dist/upgrade/remove-binary.js.map +1 -0
  649. package/dist/upgrade/update-check.d.ts +92 -0
  650. package/dist/upgrade/update-check.d.ts.map +1 -0
  651. package/dist/upgrade/update-check.js +258 -0
  652. package/dist/upgrade/update-check.js.map +1 -0
  653. package/dist/utils.d.ts +224 -0
  654. package/dist/utils.d.ts.map +1 -0
  655. package/dist/utils.js +583 -0
  656. package/dist/utils.js.map +1 -0
  657. package/package.json +1 -1
@@ -0,0 +1,354 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fabricViewResolver = void 0;
4
+ const CODEGEN_DECL_RE = /codegenNativeComponent\s*(?:<[^>]+>)?\s*\(\s*['"]([A-Za-z_][A-Za-z0-9_]*)['"]/g;
5
+ /**
6
+ * Legacy Paper view manager macros — older RN libs (still very common,
7
+ * especially small libs that haven't migrated to Codegen) declare a
8
+ * ViewManager class and expose props via these macros. Both shapes:
9
+ *
10
+ * RCT_EXPORT_VIEW_PROPERTY(values, NSArray)
11
+ * RCT_EXPORT_VIEW_PROPERTY(onChange, RCTBubblingEventBlock)
12
+ * RCT_CUSTOM_VIEW_PROPERTY(text, NSString, RNCMyView) { … }
13
+ * RCT_REMAP_VIEW_PROPERTY(jsName, nativeKeyPath, NSString)
14
+ *
15
+ * Capture the FIRST argument — that's the JS-visible prop name.
16
+ */
17
+ const RCT_VIEW_PROP_RE = /\bRCT_(?:EXPORT|CUSTOM|REMAP)_VIEW_PROPERTY\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)/g;
18
+ /**
19
+ * ObjC `@implementation Foo` extraction. Used to identify the ViewManager
20
+ * class so we can derive a JS-visible component name (strip the `Manager`
21
+ * suffix and a leading `RCT` prefix, both standard conventions).
22
+ */
23
+ const OBJC_IMPL_RE = /@implementation\s+([A-Za-z_][A-Za-z0-9_]*)/;
24
+ /**
25
+ * Derive the JS-visible component name from a native ViewManager class.
26
+ * Strip a trailing `Manager` (and optionally `ViewManager`) — RN's view
27
+ * registry maps `XXXManager` ↔ JS `<XXX/>` by this convention. The
28
+ * leading `RCT` prefix is also stripped (matches what
29
+ * `defaultObjcModuleName` does for RN's legacy bridge modules).
30
+ */
31
+ function deriveComponentNameFromManager(className) {
32
+ let name = className.startsWith('RCT') ? className.slice(3) : className;
33
+ // Trim ViewManager > Manager > View, in order.
34
+ if (name.endsWith('ViewManager'))
35
+ name = name.slice(0, -'ViewManager'.length);
36
+ else if (name.endsWith('Manager'))
37
+ name = name.slice(0, -'Manager'.length);
38
+ return name;
39
+ }
40
+ /**
41
+ * Cheap source-level detector — must contain `codegenNativeComponent` to
42
+ * be worth parsing. The presence of that import is the canonical Fabric
43
+ * spec signal.
44
+ */
45
+ function isFabricSpec(source) {
46
+ return source.includes('codegenNativeComponent');
47
+ }
48
+ /**
49
+ * Pull the `NativeProps` interface body out of a Fabric spec source.
50
+ * Returns `null` when the interface isn't declared in the expected shape.
51
+ */
52
+ function findNativePropsBody(source) {
53
+ // Permissive: `export interface NativeProps [extends X, Y] { … }`.
54
+ const m = source.match(/export\s+interface\s+NativeProps\b[^{]*\{([\s\S]*?)\n\}/);
55
+ return m?.[1] ?? null;
56
+ }
57
+ /**
58
+ * Parse the NativeProps interface body and return prop names.
59
+ * Each prop is `name?: Type;` or `name: Type;` on its own line.
60
+ * We don't care about types — just the JS-visible name.
61
+ */
62
+ function extractPropNames(body) {
63
+ const props = [];
64
+ // Anchor to start-of-line (after optional whitespace), then capture an
65
+ // identifier, then optional `?`, then `:`. Skip lines that look like
66
+ // method declarations (`name(`) — those are TurboModule spec methods,
67
+ // not view props.
68
+ const regex = /^\s*([A-Za-z_][A-Za-z0-9_]*)\??\s*:/gm;
69
+ let m;
70
+ while ((m = regex.exec(body)) !== null) {
71
+ const name = m[1];
72
+ // Exclude any line that immediately turns into a function-shape (e.g.
73
+ // `onTap?: () => void` is fine — it's a prop, not a method body —
74
+ // but a literal `name(arg: T): R` is a method declaration).
75
+ const after = body.slice(m.index + m[0].length, m.index + m[0].length + 80);
76
+ if (/^\s*\(/.test(after))
77
+ continue; // method-shape, skip
78
+ props.push(name);
79
+ }
80
+ return props;
81
+ }
82
+ /**
83
+ * Extract legacy Paper view-manager declarations from a .m/.mm file.
84
+ * Emits a `component` node named after the JS-visible name (derived from
85
+ * the @implementation class) plus a `property` node per
86
+ * `RCT_EXPORT_VIEW_PROPERTY(name, ...)` macro.
87
+ *
88
+ * Returns `[]` if the file doesn't look like a ViewManager (no
89
+ * RCT_EXPORT_VIEW_PROPERTY macros).
90
+ */
91
+ function extractLegacyViewManagerNodes(filePath, source) {
92
+ // Cheap gate: no view-property macros at all → not a view manager.
93
+ if (!source.includes('RCT_EXPORT_VIEW_PROPERTY') &&
94
+ !source.includes('RCT_CUSTOM_VIEW_PROPERTY') &&
95
+ !source.includes('RCT_REMAP_VIEW_PROPERTY')) {
96
+ return [];
97
+ }
98
+ const implMatch = source.match(OBJC_IMPL_RE);
99
+ if (!implMatch || !implMatch[1])
100
+ return [];
101
+ const className = implMatch[1];
102
+ // Only process actual ViewManagers — classes ending in Manager or
103
+ // (legacy) ViewManager. Classes with view-property macros that don't
104
+ // follow the naming convention are unusual; skip to keep precision.
105
+ if (!className.endsWith('Manager') && !className.endsWith('ViewManager'))
106
+ return [];
107
+ const componentName = deriveComponentNameFromManager(className);
108
+ if (!componentName)
109
+ return [];
110
+ const now = Date.now();
111
+ const nodes = [];
112
+ // Component node — same shape as Codegen Fabric's, so the
113
+ // fabricNativeImplEdges synthesizer linking component → native class
114
+ // works for legacy too. The native class IS the manager itself in this
115
+ // case; the convention-based suffix lookup in the synthesizer
116
+ // (`Manager`, `ViewManager`) will find it.
117
+ const before = source.slice(0, implMatch.index ?? 0);
118
+ const startLine = before.split('\n').length;
119
+ nodes.push({
120
+ id: `fabric-component:${filePath}:${componentName}:${startLine}`,
121
+ kind: 'component',
122
+ name: componentName,
123
+ qualifiedName: `${filePath}::${componentName}`,
124
+ filePath,
125
+ language: 'objc',
126
+ startLine,
127
+ endLine: startLine,
128
+ startColumn: 0,
129
+ endColumn: componentName.length,
130
+ docstring: `Legacy Paper ViewManager component '${componentName}' (from @implementation ${className})`,
131
+ signature: `RCT_EXPORT_MODULE() // ViewManager: ${className}`,
132
+ isExported: true,
133
+ updatedAt: now,
134
+ });
135
+ // Property nodes per RCT_EXPORT_VIEW_PROPERTY macro.
136
+ const seen = new Set();
137
+ RCT_VIEW_PROP_RE.lastIndex = 0;
138
+ let m;
139
+ while ((m = RCT_VIEW_PROP_RE.exec(source)) !== null) {
140
+ const propName = m[1];
141
+ if (seen.has(propName))
142
+ continue;
143
+ seen.add(propName);
144
+ const propBefore = source.slice(0, m.index);
145
+ const propLine = propBefore.split('\n').length;
146
+ nodes.push({
147
+ id: `fabric-prop:${filePath}:${propName}:${propLine}`,
148
+ kind: 'property',
149
+ name: propName,
150
+ qualifiedName: `${filePath}::${componentName}.${propName}`,
151
+ filePath,
152
+ language: 'objc',
153
+ startLine: propLine,
154
+ endLine: propLine,
155
+ startColumn: 0,
156
+ endColumn: propName.length,
157
+ docstring: `Legacy Paper view prop '${propName}' on ${componentName}`,
158
+ isExported: true,
159
+ updatedAt: now,
160
+ });
161
+ }
162
+ return nodes;
163
+ }
164
+ /**
165
+ * Java/Kotlin `@ReactProp("name")` extraction. The annotation precedes a
166
+ * setter method on a class that extends `ViewManager` /
167
+ * `SimpleViewManager` (or in Kotlin, `:` syntax).
168
+ *
169
+ * Returns `[]` if no @ReactProp annotations are found.
170
+ */
171
+ function extractJvmViewManagerNodes(filePath, source) {
172
+ if (!source.includes('@ReactProp'))
173
+ return [];
174
+ // Class name — looking for `class FooManager [extends ViewManager...]`
175
+ // (Java) or `class FooManager : ViewManager...` (Kotlin). Either gates
176
+ // us into a ViewManager file; non-Manager classes with @ReactProp are
177
+ // unusual.
178
+ const classMatch = source.match(/\bclass\s+([A-Za-z_][A-Za-z0-9_]*)\b/);
179
+ if (!classMatch || !classMatch[1])
180
+ return [];
181
+ const className = classMatch[1];
182
+ if (!className.endsWith('Manager') && !className.endsWith('ViewManager'))
183
+ return [];
184
+ const componentName = deriveComponentNameFromManager(className);
185
+ if (!componentName)
186
+ return [];
187
+ const language = filePath.endsWith('.kt') ? 'kotlin' : 'java';
188
+ const now = Date.now();
189
+ const nodes = [];
190
+ const classBefore = source.slice(0, classMatch.index ?? 0);
191
+ const startLine = classBefore.split('\n').length;
192
+ nodes.push({
193
+ id: `fabric-component:${filePath}:${componentName}:${startLine}`,
194
+ kind: 'component',
195
+ name: componentName,
196
+ qualifiedName: `${filePath}::${componentName}`,
197
+ filePath,
198
+ language,
199
+ startLine,
200
+ endLine: startLine,
201
+ startColumn: 0,
202
+ endColumn: componentName.length,
203
+ docstring: `Android view-manager component '${componentName}' (from class ${className})`,
204
+ signature: `class ${className} : ViewManager`,
205
+ isExported: true,
206
+ updatedAt: now,
207
+ });
208
+ // @ReactProp("name") followed (after optional modifiers / args) by a
209
+ // setter declaration. The annotation argument is the JS-visible prop
210
+ // name. Permissive about the rest — we only need the literal.
211
+ const REACT_PROP_RE = /@ReactProp\s*\(\s*(?:name\s*=\s*)?"([^"]+)"/g;
212
+ const seen = new Set();
213
+ let m;
214
+ while ((m = REACT_PROP_RE.exec(source)) !== null) {
215
+ const propName = m[1];
216
+ if (seen.has(propName))
217
+ continue;
218
+ seen.add(propName);
219
+ const propBefore = source.slice(0, m.index);
220
+ const propLine = propBefore.split('\n').length;
221
+ nodes.push({
222
+ id: `fabric-prop:${filePath}:${propName}:${propLine}`,
223
+ kind: 'property',
224
+ name: propName,
225
+ qualifiedName: `${filePath}::${componentName}.${propName}`,
226
+ filePath,
227
+ language,
228
+ startLine: propLine,
229
+ endLine: propLine,
230
+ startColumn: 0,
231
+ endColumn: propName.length,
232
+ docstring: `Android @ReactProp prop '${propName}' on ${componentName}`,
233
+ isExported: true,
234
+ updatedAt: now,
235
+ });
236
+ }
237
+ return nodes;
238
+ }
239
+ function extractFabricNodes(filePath, source) {
240
+ if (!isFabricSpec(source))
241
+ return [];
242
+ const now = Date.now();
243
+ const nodes = [];
244
+ CODEGEN_DECL_RE.lastIndex = 0;
245
+ let m;
246
+ while ((m = CODEGEN_DECL_RE.exec(source)) !== null) {
247
+ const componentName = m[1];
248
+ const before = source.slice(0, m.index);
249
+ const startLine = before.split('\n').length;
250
+ const startColumn = before.length - before.lastIndexOf('\n') - 1;
251
+ // The component itself — kind: 'component' so the existing
252
+ // reactJsxChildEdges synthesizer matches `<MyComponent>` JSX tags to
253
+ // it (its name+kind filter is the gate).
254
+ const componentId = `fabric-component:${filePath}:${componentName}:${startLine}`;
255
+ nodes.push({
256
+ id: componentId,
257
+ kind: 'component',
258
+ name: componentName,
259
+ qualifiedName: `${filePath}::${componentName}`,
260
+ filePath,
261
+ // The spec file is .ts or .tsx; use the file's apparent language
262
+ // by extension. Trim to a known Language value.
263
+ language: filePath.endsWith('.tsx') ? 'tsx' : 'typescript',
264
+ startLine,
265
+ endLine: startLine,
266
+ startColumn,
267
+ endColumn: startColumn + 'codegenNativeComponent'.length,
268
+ docstring: `Fabric/Codegen native component '${componentName}'`,
269
+ signature: `codegenNativeComponent<NativeProps>('${componentName}')`,
270
+ isExported: true,
271
+ updatedAt: now,
272
+ });
273
+ }
274
+ // Props from the NativeProps interface. These are not "method" semantic
275
+ // — they're JS-visible bindings the consumer sets via JSX attributes —
276
+ // so use `property` kind. (The JSX synthesizer doesn't currently
277
+ // produce per-attribute edges, but surfacing the prop names as nodes
278
+ // lets `codegraph_search('onFinishTransitioning')` discover them.)
279
+ const body = findNativePropsBody(source);
280
+ if (body) {
281
+ const props = extractPropNames(body);
282
+ for (const propName of props) {
283
+ const propBefore = source.indexOf(propName, source.indexOf(body));
284
+ const propLine = propBefore >= 0 ? source.slice(0, propBefore).split('\n').length : 1;
285
+ nodes.push({
286
+ id: `fabric-prop:${filePath}:${propName}:${propLine}`,
287
+ kind: 'property',
288
+ name: propName,
289
+ qualifiedName: `${filePath}::NativeProps.${propName}`,
290
+ filePath,
291
+ language: filePath.endsWith('.tsx') ? 'tsx' : 'typescript',
292
+ startLine: propLine,
293
+ endLine: propLine,
294
+ startColumn: 0,
295
+ endColumn: propName.length,
296
+ docstring: `Fabric NativeProps prop '${propName}'`,
297
+ isExported: true,
298
+ updatedAt: now,
299
+ });
300
+ }
301
+ }
302
+ return nodes;
303
+ }
304
+ exports.fabricViewResolver = {
305
+ name: 'fabric-view',
306
+ languages: ['typescript', 'tsx', 'objc', 'java', 'kotlin'],
307
+ detect(context) {
308
+ // Root package.json is the common case. The indexer only tracks
309
+ // SOURCE files in getAllFiles(), so package.jsons in subpackages
310
+ // aren't enumerable that way — we have to probe them explicitly via
311
+ // listDirectories() for monorepos.
312
+ const checkPkg = (relativePath) => {
313
+ const pkg = context.readFile(relativePath);
314
+ return pkg ? /["']react-native["']\s*:/.test(pkg) : false;
315
+ };
316
+ if (checkPkg('package.json'))
317
+ return true;
318
+ // Monorepo escape hatch — react-native-skia and similar workspace
319
+ // repos have the RN dep only in `packages/<sub>/package.json`. Walk
320
+ // the common workspace roots one level deep.
321
+ const list = context.listDirectories;
322
+ if (!list)
323
+ return false;
324
+ for (const root of ['packages', 'apps', 'modules', 'libraries']) {
325
+ for (const sub of list(root) ?? []) {
326
+ if (checkPkg(`${root}/${sub}/package.json`))
327
+ return true;
328
+ }
329
+ }
330
+ return false;
331
+ },
332
+ extract(filePath, source) {
333
+ // Pick the right extractor by file language. The framework registry
334
+ // already filters by `languages` so we only see relevant files.
335
+ let nodes = [];
336
+ if (filePath.endsWith('.ts') || filePath.endsWith('.tsx')) {
337
+ nodes = extractFabricNodes(filePath, source);
338
+ }
339
+ else if (filePath.endsWith('.m') || filePath.endsWith('.mm')) {
340
+ nodes = extractLegacyViewManagerNodes(filePath, source);
341
+ }
342
+ else if (filePath.endsWith('.java') || filePath.endsWith('.kt')) {
343
+ nodes = extractJvmViewManagerNodes(filePath, source);
344
+ }
345
+ return { nodes, references: [] };
346
+ },
347
+ resolve() {
348
+ // The companion synthesizer (`fabricNativeImplEdges`) handles
349
+ // cross-language edges; standard name resolution handles
350
+ // <MyComponent> → component-node via the JSX synthesizer.
351
+ return null;
352
+ },
353
+ };
354
+ //# sourceMappingURL=fabric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fabric.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/fabric.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Go Framework Resolver
3
+ *
4
+ * Handles Gin, Echo, Fiber, Chi, and standard library patterns.
5
+ */
6
+ import { FrameworkResolver } from '../types';
7
+ export declare const goResolver: FrameworkResolver;
8
+ //# sourceMappingURL=go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/go.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAG5F,eAAO,MAAM,UAAU,EAAE,iBA6HxB,CAAC"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ /**
3
+ * Go Framework Resolver
4
+ *
5
+ * Handles Gin, Echo, Fiber, Chi, and standard library patterns.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.goResolver = void 0;
9
+ const strip_comments_1 = require("../strip-comments");
10
+ exports.goResolver = {
11
+ name: 'go',
12
+ languages: ['go'],
13
+ detect(context) {
14
+ // Check for go.mod file (Go modules)
15
+ const goMod = context.readFile('go.mod');
16
+ if (goMod) {
17
+ return true;
18
+ }
19
+ // Check for .go files
20
+ const allFiles = context.getAllFiles();
21
+ return allFiles.some((f) => f.endsWith('.go'));
22
+ },
23
+ resolve(ref, context) {
24
+ // Pattern 1: Handler references
25
+ if (ref.referenceName.endsWith('Handler') || ref.referenceName.startsWith('Handle')) {
26
+ const result = resolveByNameAndKind(ref.referenceName, 'function', HANDLER_DIRS, context);
27
+ if (result) {
28
+ return {
29
+ original: ref,
30
+ targetNodeId: result,
31
+ confidence: 0.8,
32
+ resolvedBy: 'framework',
33
+ };
34
+ }
35
+ }
36
+ // Pattern 2: Service/Repository references
37
+ if (ref.referenceName.endsWith('Service') || ref.referenceName.endsWith('Repository') || ref.referenceName.endsWith('Store')) {
38
+ const result = resolveByNameAndKind(ref.referenceName, null, SERVICE_DIRS, context, SERVICE_KINDS);
39
+ if (result) {
40
+ return {
41
+ original: ref,
42
+ targetNodeId: result,
43
+ confidence: 0.8,
44
+ resolvedBy: 'framework',
45
+ };
46
+ }
47
+ }
48
+ // Pattern 3: Middleware references
49
+ if (ref.referenceName.endsWith('Middleware') || ref.referenceName.startsWith('Auth') || ref.referenceName.startsWith('Log')) {
50
+ const result = resolveByNameAndKind(ref.referenceName, 'function', MIDDLEWARE_DIRS, context);
51
+ if (result) {
52
+ return {
53
+ original: ref,
54
+ targetNodeId: result,
55
+ confidence: 0.75,
56
+ resolvedBy: 'framework',
57
+ };
58
+ }
59
+ }
60
+ // Pattern 4: Model/Entity references (typically PascalCase structs)
61
+ if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
62
+ const result = resolveByNameAndKind(ref.referenceName, 'struct', MODEL_DIRS, context);
63
+ if (result) {
64
+ return {
65
+ original: ref,
66
+ targetNodeId: result,
67
+ confidence: 0.7,
68
+ resolvedBy: 'framework',
69
+ };
70
+ }
71
+ }
72
+ return null;
73
+ },
74
+ extract(filePath, content) {
75
+ if (!filePath.endsWith('.go'))
76
+ return { nodes: [], references: [] };
77
+ const nodes = [];
78
+ const references = [];
79
+ const now = Date.now();
80
+ const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'go');
81
+ // <anyVar>.METHOD("/path", handler) — Gin (GET/POST/...), Chi (Get/Post/...),
82
+ // net/http (HandleFunc/Handle). The receiver is ANY identifier, not just
83
+ // router|r|mux|app|e: real apps route on GROUP vars (`v1.GET`, `PublicGroup.GET`,
84
+ // `userRouter.POST`), which the fixed name list missed (gin-vue-admin: 4 routes
85
+ // for 625 files). The verb + string-path + handler-arg gates keep it route-specific.
86
+ const routeRegex = /\b\w+\.(GET|POST|PUT|PATCH|DELETE|OPTIONS|HEAD|Get|Post|Put|Patch|Delete|Handle|HandleFunc)\s*\(\s*"([^"]+)"\s*,\s*([^)]+)\)/g;
87
+ let match;
88
+ while ((match = routeRegex.exec(safe)) !== null) {
89
+ const [, rawMethod, routePath, handlerExpr] = match;
90
+ const line = safe.slice(0, match.index).split('\n').length;
91
+ const method = rawMethod === 'Handle' || rawMethod === 'HandleFunc'
92
+ ? 'ANY'
93
+ : rawMethod.toUpperCase();
94
+ const routeNode = {
95
+ id: `route:${filePath}:${line}:${method}:${routePath}`,
96
+ kind: 'route',
97
+ name: `${method} ${routePath}`,
98
+ qualifiedName: `${filePath}::route:${routePath}`,
99
+ filePath,
100
+ startLine: line,
101
+ endLine: line,
102
+ startColumn: 0,
103
+ endColumn: match[0].length,
104
+ language: 'go',
105
+ updatedAt: now,
106
+ };
107
+ nodes.push(routeNode);
108
+ const handlerName = extractGoTailIdent(handlerExpr);
109
+ if (handlerName) {
110
+ references.push({
111
+ fromNodeId: routeNode.id,
112
+ referenceName: handlerName,
113
+ referenceKind: 'references',
114
+ line,
115
+ column: 0,
116
+ filePath,
117
+ language: 'go',
118
+ });
119
+ }
120
+ }
121
+ return { nodes, references };
122
+ },
123
+ };
124
+ /** Extract the last identifier from an expression like `pkg.Sub.handler` or `handler`. */
125
+ function extractGoTailIdent(expr) {
126
+ const cleaned = expr.trim().replace(/\s+/g, '').replace(/\(\)$/, '');
127
+ const m = cleaned.match(/(?:\.|^)([A-Za-z_][A-Za-z0-9_]*)$/);
128
+ return m ? m[1] : null;
129
+ }
130
+ // Directory patterns for framework resolution
131
+ const HANDLER_DIRS = ['handler', 'handlers', 'api', 'routes', 'controller', 'controllers'];
132
+ const SERVICE_DIRS = ['service', 'services', 'repository', 'store', 'pkg'];
133
+ const MIDDLEWARE_DIRS = ['middleware', 'middlewares'];
134
+ const MODEL_DIRS = ['model', 'models', 'entity', 'entities', 'domain', 'pkg'];
135
+ const SERVICE_KINDS = new Set(['struct', 'interface']);
136
+ /**
137
+ * Resolve a symbol by name using indexed queries instead of scanning all files.
138
+ * Uses getNodesByName (O(log n) indexed lookup) instead of iterating every file.
139
+ */
140
+ function resolveByNameAndKind(name, kind, preferredDirs, context, kinds) {
141
+ const candidates = context.getNodesByName(name);
142
+ if (candidates.length === 0)
143
+ return null;
144
+ // Filter by kind
145
+ const kindFiltered = candidates.filter((n) => {
146
+ if (kinds)
147
+ return kinds.has(n.kind);
148
+ if (kind)
149
+ return n.kind === kind;
150
+ return true;
151
+ });
152
+ if (kindFiltered.length === 0)
153
+ return null;
154
+ // Prefer candidates in framework-conventional directories
155
+ const preferred = kindFiltered.filter((n) => preferredDirs.some((d) => n.filePath.includes(`/${d}/`)));
156
+ if (preferred.length > 0)
157
+ return preferred[0].id;
158
+ // Fall back to any match
159
+ return kindFiltered[0].id;
160
+ }
161
+ //# sourceMappingURL=go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/go.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * GoFrame Framework Resolver (route metadata) — issue #747.
3
+ *
4
+ * GoFrame's "standard router" binds routes reflectively, so there is no literal
5
+ * path string at a `.GET("/x", handler)` call site and no static edge from a
6
+ * route to the controller method that serves it. The structural facts live in
7
+ * two places, joined only at runtime by GoFrame:
8
+ *
9
+ * // api/user/v1/user_sign_in.go — the route lives in a struct tag on the request type
10
+ * type SignInReq struct {
11
+ * g.Meta `path:"/user/sign-in" method:"post" tags:"UserService" summary:"…"`
12
+ * …
13
+ * }
14
+ * // internal/controller/user/user_v1_sign_in.go — the handler takes *that* request type
15
+ * func (c *ControllerV1) SignIn(ctx context.Context, req *v1.SignInReq) (res *v1.SignInRes, err error)
16
+ * // internal/cmd/cmd.go — reflective binding (no path, no handler name)
17
+ * group.Bind(user.NewV1())
18
+ *
19
+ * This resolver handles the FIRST half: it reads the `g.Meta` struct tag on a
20
+ * request type into a `route` node (`POST /user/sign-in`). The route → handler
21
+ * EDGE is the genuinely reflective part — the method name is NOT derivable from
22
+ * the request type (`DeptSearchReq` is served by `List`, `DeptAddReq` by `Add`),
23
+ * so the only reliable join is the request type appearing in the method's
24
+ * parameter signature. That whole-graph join is done by the companion
25
+ * `goframeRouteEdges` synthesizer, which reads the request type back out of the
26
+ * route node's qualifiedName.
27
+ *
28
+ * Honesty note: the route node carries the `g.Meta` path verbatim. The group
29
+ * prefix from `s.Group("/api", …)` / nested `group.Group("/v1", …)` is applied
30
+ * by reflective `Bind` at runtime and is deliberately NOT reconstructed here —
31
+ * the discriminating, structural part is the per-route path + method.
32
+ */
33
+ import { FrameworkResolver } from '../types';
34
+ /** Marker embedded in a route node's qualifiedName so the synthesizer can read
35
+ * back the request type to join on. The value after it is the package-qualified
36
+ * request type (`cash.ListReq`) — the package disambiguates the many identical
37
+ * bare names (`ListReq`, `GetReq`) a large app defines, one per module. Falls
38
+ * back to the bare type when no `package` declaration is found. */
39
+ export declare const GOFRAME_ROUTE_MARKER = "::goframe-route:";
40
+ export declare const goframeResolver: FrameworkResolver;
41
+ //# sourceMappingURL=goframe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goframe.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/goframe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAe5F;;;;oEAIoE;AACpE,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,eAAO,MAAM,eAAe,EAAE,iBA6D7B,CAAC"}