codegraph-java 0.1.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 (866) hide show
  1. package/README.md +131 -0
  2. package/dist/base-graph/index.d.ts +57 -0
  3. package/dist/base-graph/index.d.ts.map +1 -0
  4. package/dist/base-graph/index.js +175 -0
  5. package/dist/base-graph/index.js.map +1 -0
  6. package/dist/bin/codegraph.d.ts +28 -0
  7. package/dist/bin/codegraph.d.ts.map +1 -0
  8. package/dist/bin/codegraph.js +2615 -0
  9. package/dist/bin/codegraph.js.map +1 -0
  10. package/dist/bin/command-supervision.d.ts +49 -0
  11. package/dist/bin/command-supervision.d.ts.map +1 -0
  12. package/dist/bin/command-supervision.js +95 -0
  13. package/dist/bin/command-supervision.js.map +1 -0
  14. package/dist/bin/fatal-handler.d.ts +20 -0
  15. package/dist/bin/fatal-handler.d.ts.map +1 -0
  16. package/dist/bin/fatal-handler.js +118 -0
  17. package/dist/bin/fatal-handler.js.map +1 -0
  18. package/dist/bin/node-version-check.d.ts +45 -0
  19. package/dist/bin/node-version-check.d.ts.map +1 -0
  20. package/dist/bin/node-version-check.js +98 -0
  21. package/dist/bin/node-version-check.js.map +1 -0
  22. package/dist/bin/uninstall.d.ts +14 -0
  23. package/dist/bin/uninstall.d.ts.map +1 -0
  24. package/dist/bin/uninstall.js +36 -0
  25. package/dist/bin/uninstall.js.map +1 -0
  26. package/dist/context/formatter.d.ts +36 -0
  27. package/dist/context/formatter.d.ts.map +1 -0
  28. package/dist/context/formatter.js +269 -0
  29. package/dist/context/formatter.js.map +1 -0
  30. package/dist/context/index.d.ts +131 -0
  31. package/dist/context/index.d.ts.map +1 -0
  32. package/dist/context/index.js +1378 -0
  33. package/dist/context/index.js.map +1 -0
  34. package/dist/context/markers.d.ts +19 -0
  35. package/dist/context/markers.d.ts.map +1 -0
  36. package/dist/context/markers.js +22 -0
  37. package/dist/context/markers.js.map +1 -0
  38. package/dist/db/index.d.ts +380 -0
  39. package/dist/db/index.d.ts.map +1 -0
  40. package/dist/db/index.js +854 -0
  41. package/dist/db/index.js.map +1 -0
  42. package/dist/db/migrations.d.ts +44 -0
  43. package/dist/db/migrations.d.ts.map +1 -0
  44. package/dist/db/migrations.js +255 -0
  45. package/dist/db/migrations.js.map +1 -0
  46. package/dist/db/queries.d.ts +1060 -0
  47. package/dist/db/queries.d.ts.map +1 -0
  48. package/dist/db/queries.js +3191 -0
  49. package/dist/db/queries.js.map +1 -0
  50. package/dist/db/schema.sql +209 -0
  51. package/dist/db/sqlite-adapter.d.ts +55 -0
  52. package/dist/db/sqlite-adapter.d.ts.map +1 -0
  53. package/dist/db/sqlite-adapter.js +135 -0
  54. package/dist/db/sqlite-adapter.js.map +1 -0
  55. package/dist/db/wal-valve.d.ts +119 -0
  56. package/dist/db/wal-valve.d.ts.map +1 -0
  57. package/dist/db/wal-valve.js +290 -0
  58. package/dist/db/wal-valve.js.map +1 -0
  59. package/dist/directory.d.ts +213 -0
  60. package/dist/directory.d.ts.map +1 -0
  61. package/dist/directory.js +781 -0
  62. package/dist/directory.js.map +1 -0
  63. package/dist/errors.d.ts +150 -0
  64. package/dist/errors.d.ts.map +1 -0
  65. package/dist/errors.js +234 -0
  66. package/dist/errors.js.map +1 -0
  67. package/dist/extraction/extraction-version.d.ts +25 -0
  68. package/dist/extraction/extraction-version.d.ts.map +1 -0
  69. package/dist/extraction/extraction-version.js +28 -0
  70. package/dist/extraction/extraction-version.js.map +1 -0
  71. package/dist/extraction/function-ref.d.ts +118 -0
  72. package/dist/extraction/function-ref.d.ts.map +1 -0
  73. package/dist/extraction/function-ref.js +746 -0
  74. package/dist/extraction/function-ref.js.map +1 -0
  75. package/dist/extraction/generated-detection.d.ts +66 -0
  76. package/dist/extraction/generated-detection.d.ts.map +1 -0
  77. package/dist/extraction/generated-detection.js +248 -0
  78. package/dist/extraction/generated-detection.js.map +1 -0
  79. package/dist/extraction/grammars.d.ts +148 -0
  80. package/dist/extraction/grammars.d.ts.map +1 -0
  81. package/dist/extraction/grammars.js +558 -0
  82. package/dist/extraction/grammars.js.map +1 -0
  83. package/dist/extraction/index.d.ts +367 -0
  84. package/dist/extraction/index.d.ts.map +1 -0
  85. package/dist/extraction/index.js +2833 -0
  86. package/dist/extraction/index.js.map +1 -0
  87. package/dist/extraction/kernel/decode.d.ts +9 -0
  88. package/dist/extraction/kernel/decode.d.ts.map +1 -0
  89. package/dist/extraction/kernel/decode.js +162 -0
  90. package/dist/extraction/kernel/decode.js.map +1 -0
  91. package/dist/extraction/kernel/index.d.ts +64 -0
  92. package/dist/extraction/kernel/index.d.ts.map +1 -0
  93. package/dist/extraction/kernel/index.js +204 -0
  94. package/dist/extraction/kernel/index.js.map +1 -0
  95. package/dist/extraction/kernel/layout.d.ts +101 -0
  96. package/dist/extraction/kernel/layout.d.ts.map +1 -0
  97. package/dist/extraction/kernel/layout.js +104 -0
  98. package/dist/extraction/kernel/layout.js.map +1 -0
  99. package/dist/extraction/kernel/loader.d.ts +103 -0
  100. package/dist/extraction/kernel/loader.d.ts.map +1 -0
  101. package/dist/extraction/kernel/loader.js +146 -0
  102. package/dist/extraction/kernel/loader.js.map +1 -0
  103. package/dist/extraction/languages/c-cpp.d.ts +124 -0
  104. package/dist/extraction/languages/c-cpp.d.ts.map +1 -0
  105. package/dist/extraction/languages/c-cpp.js +1689 -0
  106. package/dist/extraction/languages/c-cpp.js.map +1 -0
  107. package/dist/extraction/languages/index.d.ts +11 -0
  108. package/dist/extraction/languages/index.d.ts.map +1 -0
  109. package/dist/extraction/languages/index.js +15 -0
  110. package/dist/extraction/languages/index.js.map +1 -0
  111. package/dist/extraction/languages/java.d.ts +3 -0
  112. package/dist/extraction/languages/java.d.ts.map +1 -0
  113. package/dist/extraction/languages/java.js +315 -0
  114. package/dist/extraction/languages/java.js.map +1 -0
  115. package/dist/extraction/languages/rust.d.ts +23 -0
  116. package/dist/extraction/languages/rust.d.ts.map +1 -0
  117. package/dist/extraction/languages/rust.js +169 -0
  118. package/dist/extraction/languages/rust.js.map +1 -0
  119. package/dist/extraction/parse-pool.d.ts +167 -0
  120. package/dist/extraction/parse-pool.d.ts.map +1 -0
  121. package/dist/extraction/parse-pool.js +421 -0
  122. package/dist/extraction/parse-pool.js.map +1 -0
  123. package/dist/extraction/parse-worker.d.ts +8 -0
  124. package/dist/extraction/parse-worker.d.ts.map +1 -0
  125. package/dist/extraction/parse-worker.js +138 -0
  126. package/dist/extraction/parse-worker.js.map +1 -0
  127. package/dist/extraction/store-worker.d.ts +24 -0
  128. package/dist/extraction/store-worker.d.ts.map +1 -0
  129. package/dist/extraction/store-worker.js +139 -0
  130. package/dist/extraction/store-worker.js.map +1 -0
  131. package/dist/extraction/store-writer.d.ts +63 -0
  132. package/dist/extraction/store-writer.d.ts.map +1 -0
  133. package/dist/extraction/store-writer.js +174 -0
  134. package/dist/extraction/store-writer.js.map +1 -0
  135. package/dist/extraction/syntax-tokens.d.ts +103 -0
  136. package/dist/extraction/syntax-tokens.d.ts.map +1 -0
  137. package/dist/extraction/syntax-tokens.js +381 -0
  138. package/dist/extraction/syntax-tokens.js.map +1 -0
  139. package/dist/extraction/tree-sitter-helpers.d.ts +28 -0
  140. package/dist/extraction/tree-sitter-helpers.d.ts.map +1 -0
  141. package/dist/extraction/tree-sitter-helpers.js +153 -0
  142. package/dist/extraction/tree-sitter-helpers.js.map +1 -0
  143. package/dist/extraction/tree-sitter-types.d.ts +260 -0
  144. package/dist/extraction/tree-sitter-types.d.ts.map +1 -0
  145. package/dist/extraction/tree-sitter-types.js +10 -0
  146. package/dist/extraction/tree-sitter-types.js.map +1 -0
  147. package/dist/extraction/tree-sitter.d.ts +745 -0
  148. package/dist/extraction/tree-sitter.d.ts.map +1 -0
  149. package/dist/extraction/tree-sitter.js +6725 -0
  150. package/dist/extraction/tree-sitter.js.map +1 -0
  151. package/dist/extraction/wasm/tree-sitter-java.wasm +0 -0
  152. package/dist/extraction/wasm-runtime-flags.d.ts +53 -0
  153. package/dist/extraction/wasm-runtime-flags.d.ts.map +1 -0
  154. package/dist/extraction/wasm-runtime-flags.js +130 -0
  155. package/dist/extraction/wasm-runtime-flags.js.map +1 -0
  156. package/dist/graph/branch-guards.d.ts +248 -0
  157. package/dist/graph/branch-guards.d.ts.map +1 -0
  158. package/dist/graph/branch-guards.js +2231 -0
  159. package/dist/graph/branch-guards.js.map +1 -0
  160. package/dist/graph/dead-code.d.ts +251 -0
  161. package/dist/graph/dead-code.d.ts.map +1 -0
  162. package/dist/graph/dead-code.js +756 -0
  163. package/dist/graph/dead-code.js.map +1 -0
  164. package/dist/graph/dynamic-boundary-report.d.ts +121 -0
  165. package/dist/graph/dynamic-boundary-report.d.ts.map +1 -0
  166. package/dist/graph/dynamic-boundary-report.js +283 -0
  167. package/dist/graph/dynamic-boundary-report.js.map +1 -0
  168. package/dist/graph/index.d.ts +12 -0
  169. package/dist/graph/index.d.ts.map +1 -0
  170. package/dist/graph/index.js +28 -0
  171. package/dist/graph/index.js.map +1 -0
  172. package/dist/graph/named-symbol-flow.d.ts +153 -0
  173. package/dist/graph/named-symbol-flow.d.ts.map +1 -0
  174. package/dist/graph/named-symbol-flow.js +609 -0
  175. package/dist/graph/named-symbol-flow.js.map +1 -0
  176. package/dist/graph/queries.d.ts +106 -0
  177. package/dist/graph/queries.d.ts.map +1 -0
  178. package/dist/graph/queries.js +341 -0
  179. package/dist/graph/queries.js.map +1 -0
  180. package/dist/graph/traversal.d.ts +127 -0
  181. package/dist/graph/traversal.d.ts.map +1 -0
  182. package/dist/graph/traversal.js +599 -0
  183. package/dist/graph/traversal.js.map +1 -0
  184. package/dist/graph/type-hierarchy.d.ts +155 -0
  185. package/dist/graph/type-hierarchy.d.ts.map +1 -0
  186. package/dist/graph/type-hierarchy.js +382 -0
  187. package/dist/graph/type-hierarchy.js.map +1 -0
  188. package/dist/index.d.ts +886 -0
  189. package/dist/index.d.ts.map +1 -0
  190. package/dist/index.js +2019 -0
  191. package/dist/index.js.map +1 -0
  192. package/dist/installer/beta-signup.d.ts +54 -0
  193. package/dist/installer/beta-signup.d.ts.map +1 -0
  194. package/dist/installer/beta-signup.js +178 -0
  195. package/dist/installer/beta-signup.js.map +1 -0
  196. package/dist/installer/config-writer.d.ts +28 -0
  197. package/dist/installer/config-writer.d.ts.map +1 -0
  198. package/dist/installer/config-writer.js +91 -0
  199. package/dist/installer/config-writer.js.map +1 -0
  200. package/dist/installer/index.d.ts +143 -0
  201. package/dist/installer/index.d.ts.map +1 -0
  202. package/dist/installer/index.js +632 -0
  203. package/dist/installer/index.js.map +1 -0
  204. package/dist/installer/instructions-template.d.ts +41 -0
  205. package/dist/installer/instructions-template.d.ts.map +1 -0
  206. package/dist/installer/instructions-template.js +53 -0
  207. package/dist/installer/instructions-template.js.map +1 -0
  208. package/dist/installer/targets/antigravity.d.ts +57 -0
  209. package/dist/installer/targets/antigravity.d.ts.map +1 -0
  210. package/dist/installer/targets/antigravity.js +308 -0
  211. package/dist/installer/targets/antigravity.js.map +1 -0
  212. package/dist/installer/targets/claude.d.ts +62 -0
  213. package/dist/installer/targets/claude.d.ts.map +1 -0
  214. package/dist/installer/targets/claude.js +486 -0
  215. package/dist/installer/targets/claude.js.map +1 -0
  216. package/dist/installer/targets/codex.d.ts +32 -0
  217. package/dist/installer/targets/codex.d.ts.map +1 -0
  218. package/dist/installer/targets/codex.js +202 -0
  219. package/dist/installer/targets/codex.js.map +1 -0
  220. package/dist/installer/targets/copilot-cli.d.ts +32 -0
  221. package/dist/installer/targets/copilot-cli.d.ts.map +1 -0
  222. package/dist/installer/targets/copilot-cli.js +209 -0
  223. package/dist/installer/targets/copilot-cli.js.map +1 -0
  224. package/dist/installer/targets/copilot-jetbrains.d.ts +42 -0
  225. package/dist/installer/targets/copilot-jetbrains.d.ts.map +1 -0
  226. package/dist/installer/targets/copilot-jetbrains.js +238 -0
  227. package/dist/installer/targets/copilot-jetbrains.js.map +1 -0
  228. package/dist/installer/targets/copilot-vscode.d.ts +47 -0
  229. package/dist/installer/targets/copilot-vscode.d.ts.map +1 -0
  230. package/dist/installer/targets/copilot-vscode.js +219 -0
  231. package/dist/installer/targets/copilot-vscode.js.map +1 -0
  232. package/dist/installer/targets/cursor.d.ts +35 -0
  233. package/dist/installer/targets/cursor.d.ts.map +1 -0
  234. package/dist/installer/targets/cursor.js +254 -0
  235. package/dist/installer/targets/cursor.js.map +1 -0
  236. package/dist/installer/targets/gemini.d.ts +26 -0
  237. package/dist/installer/targets/gemini.d.ts.map +1 -0
  238. package/dist/installer/targets/gemini.js +165 -0
  239. package/dist/installer/targets/gemini.js.map +1 -0
  240. package/dist/installer/targets/hermes.d.ts +18 -0
  241. package/dist/installer/targets/hermes.d.ts.map +1 -0
  242. package/dist/installer/targets/hermes.js +359 -0
  243. package/dist/installer/targets/hermes.js.map +1 -0
  244. package/dist/installer/targets/kiro.d.ts +27 -0
  245. package/dist/installer/targets/kiro.d.ts.map +1 -0
  246. package/dist/installer/targets/kiro.js +178 -0
  247. package/dist/installer/targets/kiro.js.map +1 -0
  248. package/dist/installer/targets/opencode.d.ts +38 -0
  249. package/dist/installer/targets/opencode.d.ts.map +1 -0
  250. package/dist/installer/targets/opencode.js +288 -0
  251. package/dist/installer/targets/opencode.js.map +1 -0
  252. package/dist/installer/targets/registry.d.ts +35 -0
  253. package/dist/installer/targets/registry.d.ts.map +1 -0
  254. package/dist/installer/targets/registry.js +101 -0
  255. package/dist/installer/targets/registry.js.map +1 -0
  256. package/dist/installer/targets/shared.d.ts +101 -0
  257. package/dist/installer/targets/shared.d.ts.map +1 -0
  258. package/dist/installer/targets/shared.js +264 -0
  259. package/dist/installer/targets/shared.js.map +1 -0
  260. package/dist/installer/targets/toml.d.ts +53 -0
  261. package/dist/installer/targets/toml.d.ts.map +1 -0
  262. package/dist/installer/targets/toml.js +226 -0
  263. package/dist/installer/targets/toml.js.map +1 -0
  264. package/dist/installer/targets/trae.d.ts +30 -0
  265. package/dist/installer/targets/trae.d.ts.map +1 -0
  266. package/dist/installer/targets/trae.js +164 -0
  267. package/dist/installer/targets/trae.js.map +1 -0
  268. package/dist/installer/targets/types.d.ts +108 -0
  269. package/dist/installer/targets/types.d.ts.map +1 -0
  270. package/dist/installer/targets/types.js +16 -0
  271. package/dist/installer/targets/types.js.map +1 -0
  272. package/dist/installer/targets/workbuddy.d.ts +29 -0
  273. package/dist/installer/targets/workbuddy.d.ts.map +1 -0
  274. package/dist/installer/targets/workbuddy.js +163 -0
  275. package/dist/installer/targets/workbuddy.js.map +1 -0
  276. package/dist/mcp/daemon-manager.d.ts +42 -0
  277. package/dist/mcp/daemon-manager.d.ts.map +1 -0
  278. package/dist/mcp/daemon-manager.js +129 -0
  279. package/dist/mcp/daemon-manager.js.map +1 -0
  280. package/dist/mcp/daemon-paths.d.ts +79 -0
  281. package/dist/mcp/daemon-paths.d.ts.map +1 -0
  282. package/dist/mcp/daemon-paths.js +219 -0
  283. package/dist/mcp/daemon-paths.js.map +1 -0
  284. package/dist/mcp/daemon-registry.d.ts +57 -0
  285. package/dist/mcp/daemon-registry.d.ts.map +1 -0
  286. package/dist/mcp/daemon-registry.js +281 -0
  287. package/dist/mcp/daemon-registry.js.map +1 -0
  288. package/dist/mcp/daemon.d.ts +293 -0
  289. package/dist/mcp/daemon.d.ts.map +1 -0
  290. package/dist/mcp/daemon.js +864 -0
  291. package/dist/mcp/daemon.js.map +1 -0
  292. package/dist/mcp/dynamic-boundaries.d.ts +41 -0
  293. package/dist/mcp/dynamic-boundaries.d.ts.map +1 -0
  294. package/dist/mcp/dynamic-boundaries.js +360 -0
  295. package/dist/mcp/dynamic-boundaries.js.map +1 -0
  296. package/dist/mcp/early-ppid.d.ts +26 -0
  297. package/dist/mcp/early-ppid.d.ts.map +1 -0
  298. package/dist/mcp/early-ppid.js +29 -0
  299. package/dist/mcp/early-ppid.js.map +1 -0
  300. package/dist/mcp/engine.d.ts +125 -0
  301. package/dist/mcp/engine.d.ts.map +1 -0
  302. package/dist/mcp/engine.js +392 -0
  303. package/dist/mcp/engine.js.map +1 -0
  304. package/dist/mcp/explore-dedup.d.ts +137 -0
  305. package/dist/mcp/explore-dedup.d.ts.map +1 -0
  306. package/dist/mcp/explore-dedup.js +236 -0
  307. package/dist/mcp/explore-dedup.js.map +1 -0
  308. package/dist/mcp/explore-diagnostics.d.ts +289 -0
  309. package/dist/mcp/explore-diagnostics.d.ts.map +1 -0
  310. package/dist/mcp/explore-diagnostics.js +558 -0
  311. package/dist/mcp/explore-diagnostics.js.map +1 -0
  312. package/dist/mcp/explore-session-state.d.ts +217 -0
  313. package/dist/mcp/explore-session-state.d.ts.map +1 -0
  314. package/dist/mcp/explore-session-state.js +322 -0
  315. package/dist/mcp/explore-session-state.js.map +1 -0
  316. package/dist/mcp/index.d.ts +137 -0
  317. package/dist/mcp/index.d.ts.map +1 -0
  318. package/dist/mcp/index.js +567 -0
  319. package/dist/mcp/index.js.map +1 -0
  320. package/dist/mcp/liveness-watchdog.d.ts +35 -0
  321. package/dist/mcp/liveness-watchdog.d.ts.map +1 -0
  322. package/dist/mcp/liveness-watchdog.js +269 -0
  323. package/dist/mcp/liveness-watchdog.js.map +1 -0
  324. package/dist/mcp/ppid-watchdog.d.ts +62 -0
  325. package/dist/mcp/ppid-watchdog.d.ts.map +1 -0
  326. package/dist/mcp/ppid-watchdog.js +64 -0
  327. package/dist/mcp/ppid-watchdog.js.map +1 -0
  328. package/dist/mcp/proxy.d.ts +87 -0
  329. package/dist/mcp/proxy.d.ts.map +1 -0
  330. package/dist/mcp/proxy.js +672 -0
  331. package/dist/mcp/proxy.js.map +1 -0
  332. package/dist/mcp/query-pool.d.ts +108 -0
  333. package/dist/mcp/query-pool.d.ts.map +1 -0
  334. package/dist/mcp/query-pool.js +315 -0
  335. package/dist/mcp/query-pool.js.map +1 -0
  336. package/dist/mcp/query-worker.d.ts +24 -0
  337. package/dist/mcp/query-worker.d.ts.map +1 -0
  338. package/dist/mcp/query-worker.js +87 -0
  339. package/dist/mcp/query-worker.js.map +1 -0
  340. package/dist/mcp/server-instructions.d.ts +34 -0
  341. package/dist/mcp/server-instructions.d.ts.map +1 -0
  342. package/dist/mcp/server-instructions.js +111 -0
  343. package/dist/mcp/server-instructions.js.map +1 -0
  344. package/dist/mcp/session.d.ts +109 -0
  345. package/dist/mcp/session.d.ts.map +1 -0
  346. package/dist/mcp/session.js +380 -0
  347. package/dist/mcp/session.js.map +1 -0
  348. package/dist/mcp/startup-handshake.d.ts +44 -0
  349. package/dist/mcp/startup-handshake.d.ts.map +1 -0
  350. package/dist/mcp/startup-handshake.js +73 -0
  351. package/dist/mcp/startup-handshake.js.map +1 -0
  352. package/dist/mcp/stdin-teardown.d.ts +27 -0
  353. package/dist/mcp/stdin-teardown.d.ts.map +1 -0
  354. package/dist/mcp/stdin-teardown.js +49 -0
  355. package/dist/mcp/stdin-teardown.js.map +1 -0
  356. package/dist/mcp/tools.d.ts +877 -0
  357. package/dist/mcp/tools.d.ts.map +1 -0
  358. package/dist/mcp/tools.js +6371 -0
  359. package/dist/mcp/tools.js.map +1 -0
  360. package/dist/mcp/transport.d.ts +188 -0
  361. package/dist/mcp/transport.d.ts.map +1 -0
  362. package/dist/mcp/transport.js +377 -0
  363. package/dist/mcp/transport.js.map +1 -0
  364. package/dist/mcp/version.d.ts +19 -0
  365. package/dist/mcp/version.d.ts.map +1 -0
  366. package/dist/mcp/version.js +71 -0
  367. package/dist/mcp/version.js.map +1 -0
  368. package/dist/project-config.d.ts +158 -0
  369. package/dist/project-config.d.ts.map +1 -0
  370. package/dist/project-config.js +489 -0
  371. package/dist/project-config.js.map +1 -0
  372. package/dist/resolution/c-fnptr-synthesizer.d.ts +6 -0
  373. package/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -0
  374. package/dist/resolution/c-fnptr-synthesizer.js +1506 -0
  375. package/dist/resolution/c-fnptr-synthesizer.js.map +1 -0
  376. package/dist/resolution/callback-synthesizer.d.ts +59 -0
  377. package/dist/resolution/callback-synthesizer.d.ts.map +1 -0
  378. package/dist/resolution/callback-synthesizer.js +4066 -0
  379. package/dist/resolution/callback-synthesizer.js.map +1 -0
  380. package/dist/resolution/cooperative-yield.d.ts +40 -0
  381. package/dist/resolution/cooperative-yield.d.ts.map +1 -0
  382. package/dist/resolution/cooperative-yield.js +44 -0
  383. package/dist/resolution/cooperative-yield.js.map +1 -0
  384. package/dist/resolution/expo-router-synthesizer.d.ts +32 -0
  385. package/dist/resolution/expo-router-synthesizer.d.ts.map +1 -0
  386. package/dist/resolution/expo-router-synthesizer.js +189 -0
  387. package/dist/resolution/expo-router-synthesizer.js.map +1 -0
  388. package/dist/resolution/frameworks/astro.d.ts +9 -0
  389. package/dist/resolution/frameworks/astro.d.ts.map +1 -0
  390. package/dist/resolution/frameworks/astro.js +169 -0
  391. package/dist/resolution/frameworks/astro.js.map +1 -0
  392. package/dist/resolution/frameworks/cargo-workspace.d.ts +18 -0
  393. package/dist/resolution/frameworks/cargo-workspace.d.ts.map +1 -0
  394. package/dist/resolution/frameworks/cargo-workspace.js +225 -0
  395. package/dist/resolution/frameworks/cargo-workspace.js.map +1 -0
  396. package/dist/resolution/frameworks/cics.d.ts +20 -0
  397. package/dist/resolution/frameworks/cics.d.ts.map +1 -0
  398. package/dist/resolution/frameworks/cics.js +90 -0
  399. package/dist/resolution/frameworks/cics.js.map +1 -0
  400. package/dist/resolution/frameworks/csharp.d.ts +8 -0
  401. package/dist/resolution/frameworks/csharp.d.ts.map +1 -0
  402. package/dist/resolution/frameworks/csharp.js +335 -0
  403. package/dist/resolution/frameworks/csharp.js.map +1 -0
  404. package/dist/resolution/frameworks/drupal.d.ts +51 -0
  405. package/dist/resolution/frameworks/drupal.d.ts.map +1 -0
  406. package/dist/resolution/frameworks/drupal.js +367 -0
  407. package/dist/resolution/frameworks/drupal.js.map +1 -0
  408. package/dist/resolution/frameworks/expo-modules.d.ts +3 -0
  409. package/dist/resolution/frameworks/expo-modules.d.ts.map +1 -0
  410. package/dist/resolution/frameworks/expo-modules.js +148 -0
  411. package/dist/resolution/frameworks/expo-modules.js.map +1 -0
  412. package/dist/resolution/frameworks/expo-router.d.ts +189 -0
  413. package/dist/resolution/frameworks/expo-router.d.ts.map +1 -0
  414. package/dist/resolution/frameworks/expo-router.js +785 -0
  415. package/dist/resolution/frameworks/expo-router.js.map +1 -0
  416. package/dist/resolution/frameworks/express.d.ts +8 -0
  417. package/dist/resolution/frameworks/express.d.ts.map +1 -0
  418. package/dist/resolution/frameworks/express.js +540 -0
  419. package/dist/resolution/frameworks/express.js.map +1 -0
  420. package/dist/resolution/frameworks/fabric.d.ts +3 -0
  421. package/dist/resolution/frameworks/fabric.d.ts.map +1 -0
  422. package/dist/resolution/frameworks/fabric.js +354 -0
  423. package/dist/resolution/frameworks/fabric.js.map +1 -0
  424. package/dist/resolution/frameworks/go.d.ts +8 -0
  425. package/dist/resolution/frameworks/go.d.ts.map +1 -0
  426. package/dist/resolution/frameworks/go.js +184 -0
  427. package/dist/resolution/frameworks/go.js.map +1 -0
  428. package/dist/resolution/frameworks/goframe.d.ts +41 -0
  429. package/dist/resolution/frameworks/goframe.d.ts.map +1 -0
  430. package/dist/resolution/frameworks/goframe.js +112 -0
  431. package/dist/resolution/frameworks/goframe.js.map +1 -0
  432. package/dist/resolution/frameworks/index.d.ts +30 -0
  433. package/dist/resolution/frameworks/index.d.ts.map +1 -0
  434. package/dist/resolution/frameworks/index.js +72 -0
  435. package/dist/resolution/frameworks/index.js.map +1 -0
  436. package/dist/resolution/frameworks/java.d.ts +8 -0
  437. package/dist/resolution/frameworks/java.d.ts.map +1 -0
  438. package/dist/resolution/frameworks/java.js +517 -0
  439. package/dist/resolution/frameworks/java.js.map +1 -0
  440. package/dist/resolution/frameworks/laravel.d.ts +13 -0
  441. package/dist/resolution/frameworks/laravel.d.ts.map +1 -0
  442. package/dist/resolution/frameworks/laravel.js +257 -0
  443. package/dist/resolution/frameworks/laravel.js.map +1 -0
  444. package/dist/resolution/frameworks/nestjs.d.ts +26 -0
  445. package/dist/resolution/frameworks/nestjs.d.ts.map +1 -0
  446. package/dist/resolution/frameworks/nestjs.js +690 -0
  447. package/dist/resolution/frameworks/nestjs.js.map +1 -0
  448. package/dist/resolution/frameworks/nextjs.d.ts +76 -0
  449. package/dist/resolution/frameworks/nextjs.d.ts.map +1 -0
  450. package/dist/resolution/frameworks/nextjs.js +328 -0
  451. package/dist/resolution/frameworks/nextjs.js.map +1 -0
  452. package/dist/resolution/frameworks/object-literal.d.ts +32 -0
  453. package/dist/resolution/frameworks/object-literal.d.ts.map +1 -0
  454. package/dist/resolution/frameworks/object-literal.js +139 -0
  455. package/dist/resolution/frameworks/object-literal.js.map +1 -0
  456. package/dist/resolution/frameworks/package-deps.d.ts +14 -0
  457. package/dist/resolution/frameworks/package-deps.d.ts.map +1 -0
  458. package/dist/resolution/frameworks/package-deps.js +78 -0
  459. package/dist/resolution/frameworks/package-deps.js.map +1 -0
  460. package/dist/resolution/frameworks/play.d.ts +19 -0
  461. package/dist/resolution/frameworks/play.d.ts.map +1 -0
  462. package/dist/resolution/frameworks/play.js +111 -0
  463. package/dist/resolution/frameworks/play.js.map +1 -0
  464. package/dist/resolution/frameworks/python.d.ts +10 -0
  465. package/dist/resolution/frameworks/python.d.ts.map +1 -0
  466. package/dist/resolution/frameworks/python.js +566 -0
  467. package/dist/resolution/frameworks/python.js.map +1 -0
  468. package/dist/resolution/frameworks/react-native.d.ts +29 -0
  469. package/dist/resolution/frameworks/react-native.d.ts.map +1 -0
  470. package/dist/resolution/frameworks/react-native.js +549 -0
  471. package/dist/resolution/frameworks/react-native.js.map +1 -0
  472. package/dist/resolution/frameworks/react-router.d.ts +46 -0
  473. package/dist/resolution/frameworks/react-router.d.ts.map +1 -0
  474. package/dist/resolution/frameworks/react-router.js +187 -0
  475. package/dist/resolution/frameworks/react-router.js.map +1 -0
  476. package/dist/resolution/frameworks/react.d.ts +9 -0
  477. package/dist/resolution/frameworks/react.d.ts.map +1 -0
  478. package/dist/resolution/frameworks/react.js +257 -0
  479. package/dist/resolution/frameworks/react.js.map +1 -0
  480. package/dist/resolution/frameworks/ruby.d.ts +8 -0
  481. package/dist/resolution/frameworks/ruby.d.ts.map +1 -0
  482. package/dist/resolution/frameworks/ruby.js +302 -0
  483. package/dist/resolution/frameworks/ruby.js.map +1 -0
  484. package/dist/resolution/frameworks/rust.d.ts +8 -0
  485. package/dist/resolution/frameworks/rust.d.ts.map +1 -0
  486. package/dist/resolution/frameworks/rust.js +304 -0
  487. package/dist/resolution/frameworks/rust.js.map +1 -0
  488. package/dist/resolution/frameworks/svelte.d.ts +9 -0
  489. package/dist/resolution/frameworks/svelte.d.ts.map +1 -0
  490. package/dist/resolution/frameworks/svelte.js +258 -0
  491. package/dist/resolution/frameworks/svelte.js.map +1 -0
  492. package/dist/resolution/frameworks/sveltekit-router.d.ts +36 -0
  493. package/dist/resolution/frameworks/sveltekit-router.d.ts.map +1 -0
  494. package/dist/resolution/frameworks/sveltekit-router.js +156 -0
  495. package/dist/resolution/frameworks/sveltekit-router.js.map +1 -0
  496. package/dist/resolution/frameworks/swift-objc.d.ts +37 -0
  497. package/dist/resolution/frameworks/swift-objc.d.ts.map +1 -0
  498. package/dist/resolution/frameworks/swift-objc.js +252 -0
  499. package/dist/resolution/frameworks/swift-objc.js.map +1 -0
  500. package/dist/resolution/frameworks/swift.d.ts +10 -0
  501. package/dist/resolution/frameworks/swift.d.ts.map +1 -0
  502. package/dist/resolution/frameworks/swift.js +410 -0
  503. package/dist/resolution/frameworks/swift.js.map +1 -0
  504. package/dist/resolution/frameworks/tanstack-router.d.ts +84 -0
  505. package/dist/resolution/frameworks/tanstack-router.d.ts.map +1 -0
  506. package/dist/resolution/frameworks/tanstack-router.js +437 -0
  507. package/dist/resolution/frameworks/tanstack-router.js.map +1 -0
  508. package/dist/resolution/frameworks/terraform.d.ts +38 -0
  509. package/dist/resolution/frameworks/terraform.d.ts.map +1 -0
  510. package/dist/resolution/frameworks/terraform.js +277 -0
  511. package/dist/resolution/frameworks/terraform.js.map +1 -0
  512. package/dist/resolution/frameworks/vue-router.d.ts +82 -0
  513. package/dist/resolution/frameworks/vue-router.d.ts.map +1 -0
  514. package/dist/resolution/frameworks/vue-router.js +377 -0
  515. package/dist/resolution/frameworks/vue-router.js.map +1 -0
  516. package/dist/resolution/frameworks/vue.d.ts +9 -0
  517. package/dist/resolution/frameworks/vue.d.ts.map +1 -0
  518. package/dist/resolution/frameworks/vue.js +303 -0
  519. package/dist/resolution/frameworks/vue.js.map +1 -0
  520. package/dist/resolution/go-module.d.ts +26 -0
  521. package/dist/resolution/go-module.d.ts.map +1 -0
  522. package/dist/resolution/go-module.js +78 -0
  523. package/dist/resolution/go-module.js.map +1 -0
  524. package/dist/resolution/goframe-synthesizer.d.ts +29 -0
  525. package/dist/resolution/goframe-synthesizer.d.ts.map +1 -0
  526. package/dist/resolution/goframe-synthesizer.js +163 -0
  527. package/dist/resolution/goframe-synthesizer.js.map +1 -0
  528. package/dist/resolution/import-resolver.d.ts +84 -0
  529. package/dist/resolution/import-resolver.d.ts.map +1 -0
  530. package/dist/resolution/import-resolver.js +2240 -0
  531. package/dist/resolution/import-resolver.js.map +1 -0
  532. package/dist/resolution/index.d.ts +343 -0
  533. package/dist/resolution/index.d.ts.map +1 -0
  534. package/dist/resolution/index.js +2352 -0
  535. package/dist/resolution/index.js.map +1 -0
  536. package/dist/resolution/lru-cache.d.ts +24 -0
  537. package/dist/resolution/lru-cache.d.ts.map +1 -0
  538. package/dist/resolution/lru-cache.js +62 -0
  539. package/dist/resolution/lru-cache.js.map +1 -0
  540. package/dist/resolution/memory-budget.d.ts +48 -0
  541. package/dist/resolution/memory-budget.d.ts.map +1 -0
  542. package/dist/resolution/memory-budget.js +162 -0
  543. package/dist/resolution/memory-budget.js.map +1 -0
  544. package/dist/resolution/name-matcher.d.ts +153 -0
  545. package/dist/resolution/name-matcher.d.ts.map +1 -0
  546. package/dist/resolution/name-matcher.js +2412 -0
  547. package/dist/resolution/name-matcher.js.map +1 -0
  548. package/dist/resolution/next-router-synthesizer.d.ts +27 -0
  549. package/dist/resolution/next-router-synthesizer.d.ts.map +1 -0
  550. package/dist/resolution/next-router-synthesizer.js +113 -0
  551. package/dist/resolution/next-router-synthesizer.js.map +1 -0
  552. package/dist/resolution/path-aliases.d.ts +70 -0
  553. package/dist/resolution/path-aliases.d.ts.map +1 -0
  554. package/dist/resolution/path-aliases.js +346 -0
  555. package/dist/resolution/path-aliases.js.map +1 -0
  556. package/dist/resolution/react-router-synthesizer.d.ts +33 -0
  557. package/dist/resolution/react-router-synthesizer.d.ts.map +1 -0
  558. package/dist/resolution/react-router-synthesizer.js +126 -0
  559. package/dist/resolution/react-router-synthesizer.js.map +1 -0
  560. package/dist/resolution/resolver-pool.d.ts +106 -0
  561. package/dist/resolution/resolver-pool.d.ts.map +1 -0
  562. package/dist/resolution/resolver-pool.js +344 -0
  563. package/dist/resolution/resolver-pool.js.map +1 -0
  564. package/dist/resolution/resolver-worker.d.ts +17 -0
  565. package/dist/resolution/resolver-worker.d.ts.map +1 -0
  566. package/dist/resolution/resolver-worker.js +141 -0
  567. package/dist/resolution/resolver-worker.js.map +1 -0
  568. package/dist/resolution/strip-comments.d.ts +27 -0
  569. package/dist/resolution/strip-comments.d.ts.map +1 -0
  570. package/dist/resolution/strip-comments.js +492 -0
  571. package/dist/resolution/strip-comments.js.map +1 -0
  572. package/dist/resolution/sveltekit-synthesizer.d.ts +58 -0
  573. package/dist/resolution/sveltekit-synthesizer.d.ts.map +1 -0
  574. package/dist/resolution/sveltekit-synthesizer.js +173 -0
  575. package/dist/resolution/sveltekit-synthesizer.js.map +1 -0
  576. package/dist/resolution/swift-objc-bridge.d.ts +134 -0
  577. package/dist/resolution/swift-objc-bridge.d.ts.map +1 -0
  578. package/dist/resolution/swift-objc-bridge.js +256 -0
  579. package/dist/resolution/swift-objc-bridge.js.map +1 -0
  580. package/dist/resolution/synth-utils.d.ts +26 -0
  581. package/dist/resolution/synth-utils.d.ts.map +1 -0
  582. package/dist/resolution/synth-utils.js +75 -0
  583. package/dist/resolution/synth-utils.js.map +1 -0
  584. package/dist/resolution/tanstack-router-synthesizer.d.ts +31 -0
  585. package/dist/resolution/tanstack-router-synthesizer.d.ts.map +1 -0
  586. package/dist/resolution/tanstack-router-synthesizer.js +114 -0
  587. package/dist/resolution/tanstack-router-synthesizer.js.map +1 -0
  588. package/dist/resolution/tier-synthesizer.d.ts +48 -0
  589. package/dist/resolution/tier-synthesizer.d.ts.map +1 -0
  590. package/dist/resolution/tier-synthesizer.js +907 -0
  591. package/dist/resolution/tier-synthesizer.js.map +1 -0
  592. package/dist/resolution/types.d.ts +290 -0
  593. package/dist/resolution/types.d.ts.map +1 -0
  594. package/dist/resolution/types.js +8 -0
  595. package/dist/resolution/types.js.map +1 -0
  596. package/dist/resolution/vue-router-synthesizer.d.ts +30 -0
  597. package/dist/resolution/vue-router-synthesizer.d.ts.map +1 -0
  598. package/dist/resolution/vue-router-synthesizer.js +115 -0
  599. package/dist/resolution/vue-router-synthesizer.js.map +1 -0
  600. package/dist/resolution/workspace-packages.d.ts +58 -0
  601. package/dist/resolution/workspace-packages.d.ts.map +1 -0
  602. package/dist/resolution/workspace-packages.js +346 -0
  603. package/dist/resolution/workspace-packages.js.map +1 -0
  604. package/dist/search/identifier-segments.d.ts +70 -0
  605. package/dist/search/identifier-segments.d.ts.map +1 -0
  606. package/dist/search/identifier-segments.js +205 -0
  607. package/dist/search/identifier-segments.js.map +1 -0
  608. package/dist/search/query-parser.d.ts +57 -0
  609. package/dist/search/query-parser.d.ts.map +1 -0
  610. package/dist/search/query-parser.js +177 -0
  611. package/dist/search/query-parser.js.map +1 -0
  612. package/dist/search/query-paths.d.ts +57 -0
  613. package/dist/search/query-paths.d.ts.map +1 -0
  614. package/dist/search/query-paths.js +298 -0
  615. package/dist/search/query-paths.js.map +1 -0
  616. package/dist/search/query-utils.d.ts +102 -0
  617. package/dist/search/query-utils.d.ts.map +1 -0
  618. package/dist/search/query-utils.js +487 -0
  619. package/dist/search/query-utils.js.map +1 -0
  620. package/dist/sync/git-hooks.d.ts +45 -0
  621. package/dist/sync/git-hooks.d.ts.map +1 -0
  622. package/dist/sync/git-hooks.js +227 -0
  623. package/dist/sync/git-hooks.js.map +1 -0
  624. package/dist/sync/index.d.ts +19 -0
  625. package/dist/sync/index.d.ts.map +1 -0
  626. package/dist/sync/index.js +35 -0
  627. package/dist/sync/index.js.map +1 -0
  628. package/dist/sync/watch-policy.d.ts +48 -0
  629. package/dist/sync/watch-policy.d.ts.map +1 -0
  630. package/dist/sync/watch-policy.js +124 -0
  631. package/dist/sync/watch-policy.js.map +1 -0
  632. package/dist/sync/watcher.d.ts +401 -0
  633. package/dist/sync/watcher.d.ts.map +1 -0
  634. package/dist/sync/watcher.js +967 -0
  635. package/dist/sync/watcher.js.map +1 -0
  636. package/dist/sync/worktree.d.ts +63 -0
  637. package/dist/sync/worktree.d.ts.map +1 -0
  638. package/dist/sync/worktree.js +182 -0
  639. package/dist/sync/worktree.js.map +1 -0
  640. package/dist/telemetry/index.d.ts +143 -0
  641. package/dist/telemetry/index.d.ts.map +1 -0
  642. package/dist/telemetry/index.js +541 -0
  643. package/dist/telemetry/index.js.map +1 -0
  644. package/dist/types.d.ts +486 -0
  645. package/dist/types.d.ts.map +1 -0
  646. package/dist/types.js +118 -0
  647. package/dist/types.js.map +1 -0
  648. package/dist/ui/color.d.ts +21 -0
  649. package/dist/ui/color.d.ts.map +1 -0
  650. package/dist/ui/color.js +42 -0
  651. package/dist/ui/color.js.map +1 -0
  652. package/dist/ui/glyphs.d.ts +67 -0
  653. package/dist/ui/glyphs.d.ts.map +1 -0
  654. package/dist/ui/glyphs.js +125 -0
  655. package/dist/ui/glyphs.js.map +1 -0
  656. package/dist/ui/shimmer-progress.d.ts +11 -0
  657. package/dist/ui/shimmer-progress.d.ts.map +1 -0
  658. package/dist/ui/shimmer-progress.js +164 -0
  659. package/dist/ui/shimmer-progress.js.map +1 -0
  660. package/dist/ui/shimmer-worker.d.ts +2 -0
  661. package/dist/ui/shimmer-worker.d.ts.map +1 -0
  662. package/dist/ui/shimmer-worker.js +126 -0
  663. package/dist/ui/shimmer-worker.js.map +1 -0
  664. package/dist/ui/types.d.ts +15 -0
  665. package/dist/ui/types.d.ts.map +1 -0
  666. package/dist/ui/types.js +3 -0
  667. package/dist/ui/types.js.map +1 -0
  668. package/dist/ui-server/api/deadcode.d.ts +84 -0
  669. package/dist/ui-server/api/deadcode.d.ts.map +1 -0
  670. package/dist/ui-server/api/deadcode.js +136 -0
  671. package/dist/ui-server/api/deadcode.js.map +1 -0
  672. package/dist/ui-server/api/effects.d.ts +87 -0
  673. package/dist/ui-server/api/effects.d.ts.map +1 -0
  674. package/dist/ui-server/api/effects.js +499 -0
  675. package/dist/ui-server/api/effects.js.map +1 -0
  676. package/dist/ui-server/api/entrypoints.d.ts +86 -0
  677. package/dist/ui-server/api/entrypoints.d.ts.map +1 -0
  678. package/dist/ui-server/api/entrypoints.js +279 -0
  679. package/dist/ui-server/api/entrypoints.js.map +1 -0
  680. package/dist/ui-server/api/events.d.ts +183 -0
  681. package/dist/ui-server/api/events.d.ts.map +1 -0
  682. package/dist/ui-server/api/events.js +430 -0
  683. package/dist/ui-server/api/events.js.map +1 -0
  684. package/dist/ui-server/api/file.d.ts +66 -0
  685. package/dist/ui-server/api/file.d.ts.map +1 -0
  686. package/dist/ui-server/api/file.js +222 -0
  687. package/dist/ui-server/api/file.js.map +1 -0
  688. package/dist/ui-server/api/filecode.d.ts +126 -0
  689. package/dist/ui-server/api/filecode.d.ts.map +1 -0
  690. package/dist/ui-server/api/filecode.js +205 -0
  691. package/dist/ui-server/api/filecode.js.map +1 -0
  692. package/dist/ui-server/api/flow.d.ts +226 -0
  693. package/dist/ui-server/api/flow.d.ts.map +1 -0
  694. package/dist/ui-server/api/flow.js +611 -0
  695. package/dist/ui-server/api/flow.js.map +1 -0
  696. package/dist/ui-server/api/hierarchy.d.ts +81 -0
  697. package/dist/ui-server/api/hierarchy.d.ts.map +1 -0
  698. package/dist/ui-server/api/hierarchy.js +92 -0
  699. package/dist/ui-server/api/hierarchy.js.map +1 -0
  700. package/dist/ui-server/api/index.d.ts +90 -0
  701. package/dist/ui-server/api/index.d.ts.map +1 -0
  702. package/dist/ui-server/api/index.js +332 -0
  703. package/dist/ui-server/api/index.js.map +1 -0
  704. package/dist/ui-server/api/map.d.ts +187 -0
  705. package/dist/ui-server/api/map.d.ts.map +1 -0
  706. package/dist/ui-server/api/map.js +498 -0
  707. package/dist/ui-server/api/map.js.map +1 -0
  708. package/dist/ui-server/api/node.d.ts +81 -0
  709. package/dist/ui-server/api/node.d.ts.map +1 -0
  710. package/dist/ui-server/api/node.js +388 -0
  711. package/dist/ui-server/api/node.js.map +1 -0
  712. package/dist/ui-server/api/nodes.d.ts +25 -0
  713. package/dist/ui-server/api/nodes.d.ts.map +1 -0
  714. package/dist/ui-server/api/nodes.js +45 -0
  715. package/dist/ui-server/api/nodes.js.map +1 -0
  716. package/dist/ui-server/api/program.d.ts +139 -0
  717. package/dist/ui-server/api/program.d.ts.map +1 -0
  718. package/dist/ui-server/api/program.js +315 -0
  719. package/dist/ui-server/api/program.js.map +1 -0
  720. package/dist/ui-server/api/respond.d.ts +76 -0
  721. package/dist/ui-server/api/respond.d.ts.map +1 -0
  722. package/dist/ui-server/api/respond.js +186 -0
  723. package/dist/ui-server/api/respond.js.map +1 -0
  724. package/dist/ui-server/api/route-roots.d.ts +39 -0
  725. package/dist/ui-server/api/route-roots.d.ts.map +1 -0
  726. package/dist/ui-server/api/route-roots.js +96 -0
  727. package/dist/ui-server/api/route-roots.js.map +1 -0
  728. package/dist/ui-server/api/routes.d.ts +59 -0
  729. package/dist/ui-server/api/routes.d.ts.map +1 -0
  730. package/dist/ui-server/api/routes.js +112 -0
  731. package/dist/ui-server/api/routes.js.map +1 -0
  732. package/dist/ui-server/api/screens.d.ts +117 -0
  733. package/dist/ui-server/api/screens.d.ts.map +1 -0
  734. package/dist/ui-server/api/screens.js +611 -0
  735. package/dist/ui-server/api/screens.js.map +1 -0
  736. package/dist/ui-server/api/search.d.ts +29 -0
  737. package/dist/ui-server/api/search.d.ts.map +1 -0
  738. package/dist/ui-server/api/search.js +232 -0
  739. package/dist/ui-server/api/search.js.map +1 -0
  740. package/dist/ui-server/api/session.d.ts +52 -0
  741. package/dist/ui-server/api/session.d.ts.map +1 -0
  742. package/dist/ui-server/api/session.js +196 -0
  743. package/dist/ui-server/api/session.js.map +1 -0
  744. package/dist/ui-server/api/source.d.ts +200 -0
  745. package/dist/ui-server/api/source.d.ts.map +1 -0
  746. package/dist/ui-server/api/source.js +419 -0
  747. package/dist/ui-server/api/source.js.map +1 -0
  748. package/dist/ui-server/api/stats.d.ts +27 -0
  749. package/dist/ui-server/api/stats.d.ts.map +1 -0
  750. package/dist/ui-server/api/stats.js +164 -0
  751. package/dist/ui-server/api/stats.js.map +1 -0
  752. package/dist/ui-server/api/steps.d.ts +274 -0
  753. package/dist/ui-server/api/steps.d.ts.map +1 -0
  754. package/dist/ui-server/api/steps.js +1446 -0
  755. package/dist/ui-server/api/steps.js.map +1 -0
  756. package/dist/ui-server/api/trail-store.d.ts +142 -0
  757. package/dist/ui-server/api/trail-store.d.ts.map +1 -0
  758. package/dist/ui-server/api/trail-store.js +323 -0
  759. package/dist/ui-server/api/trail-store.js.map +1 -0
  760. package/dist/ui-server/api/trails.d.ts +163 -0
  761. package/dist/ui-server/api/trails.d.ts.map +1 -0
  762. package/dist/ui-server/api/trails.js +369 -0
  763. package/dist/ui-server/api/trails.js.map +1 -0
  764. package/dist/ui-server/api/when.d.ts +125 -0
  765. package/dist/ui-server/api/when.d.ts.map +1 -0
  766. package/dist/ui-server/api/when.js +251 -0
  767. package/dist/ui-server/api/when.js.map +1 -0
  768. package/dist/ui-server/api/wire.d.ts +179 -0
  769. package/dist/ui-server/api/wire.d.ts.map +1 -0
  770. package/dist/ui-server/api/wire.js +231 -0
  771. package/dist/ui-server/api/wire.js.map +1 -0
  772. package/dist/ui-server/assets.d.ts +40 -0
  773. package/dist/ui-server/assets.d.ts.map +1 -0
  774. package/dist/ui-server/assets.js +110 -0
  775. package/dist/ui-server/assets.js.map +1 -0
  776. package/dist/ui-server/constants.d.ts +32 -0
  777. package/dist/ui-server/constants.d.ts.map +1 -0
  778. package/dist/ui-server/constants.js +35 -0
  779. package/dist/ui-server/constants.js.map +1 -0
  780. package/dist/ui-server/highlight/index.d.ts +113 -0
  781. package/dist/ui-server/highlight/index.d.ts.map +1 -0
  782. package/dist/ui-server/highlight/index.js +307 -0
  783. package/dist/ui-server/highlight/index.js.map +1 -0
  784. package/dist/ui-server/highlight/languages.d.ts +36 -0
  785. package/dist/ui-server/highlight/languages.d.ts.map +1 -0
  786. package/dist/ui-server/highlight/languages.js +50 -0
  787. package/dist/ui-server/highlight/languages.js.map +1 -0
  788. package/dist/ui-server/index.d.ts +92 -0
  789. package/dist/ui-server/index.d.ts.map +1 -0
  790. package/dist/ui-server/index.js +399 -0
  791. package/dist/ui-server/index.js.map +1 -0
  792. package/dist/ui-server/open-browser.d.ts +31 -0
  793. package/dist/ui-server/open-browser.d.ts.map +1 -0
  794. package/dist/ui-server/open-browser.js +79 -0
  795. package/dist/ui-server/open-browser.js.map +1 -0
  796. package/dist/ui-server/security.d.ts +127 -0
  797. package/dist/ui-server/security.d.ts.map +1 -0
  798. package/dist/ui-server/security.js +332 -0
  799. package/dist/ui-server/security.js.map +1 -0
  800. package/dist/ui-server/static.d.ts +45 -0
  801. package/dist/ui-server/static.d.ts.map +1 -0
  802. package/dist/ui-server/static.js +165 -0
  803. package/dist/ui-server/static.js.map +1 -0
  804. package/dist/upgrade/index.d.ts +177 -0
  805. package/dist/upgrade/index.d.ts.map +1 -0
  806. package/dist/upgrade/index.js +665 -0
  807. package/dist/upgrade/index.js.map +1 -0
  808. package/dist/upgrade/remove-binary.d.ts +87 -0
  809. package/dist/upgrade/remove-binary.d.ts.map +1 -0
  810. package/dist/upgrade/remove-binary.js +289 -0
  811. package/dist/upgrade/remove-binary.js.map +1 -0
  812. package/dist/upgrade/update-check.d.ts +92 -0
  813. package/dist/upgrade/update-check.d.ts.map +1 -0
  814. package/dist/upgrade/update-check.js +258 -0
  815. package/dist/upgrade/update-check.js.map +1 -0
  816. package/dist/utils.d.ts +224 -0
  817. package/dist/utils.d.ts.map +1 -0
  818. package/dist/utils.js +583 -0
  819. package/dist/utils.js.map +1 -0
  820. package/dist/viewer/assets/archivo-latin-ext-wght-normal-C4zznr8T.woff2 +0 -0
  821. package/dist/viewer/assets/archivo-latin-wght-normal-E0tuGl4L.woff2 +0 -0
  822. package/dist/viewer/assets/archivo-vietnamese-wght-normal-XAtsl5Q_.woff2 +0 -0
  823. package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-italic-2syK4fUT.woff +0 -0
  824. package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-italic-CBJ8pzag.woff2 +0 -0
  825. package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
  826. package/dist/viewer/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
  827. package/dist/viewer/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
  828. package/dist/viewer/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
  829. package/dist/viewer/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2 +0 -0
  830. package/dist/viewer/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff +0 -0
  831. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-italic-B4oTjJdl.woff +0 -0
  832. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-italic-CBjNughH.woff2 +0 -0
  833. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
  834. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
  835. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
  836. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
  837. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff +0 -0
  838. package/dist/viewer/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2 +0 -0
  839. package/dist/viewer/assets/ibm-plex-mono-latin-400-italic-66oory27.woff +0 -0
  840. package/dist/viewer/assets/ibm-plex-mono-latin-400-italic-BqAiT5Ww.woff2 +0 -0
  841. package/dist/viewer/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  842. package/dist/viewer/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  843. package/dist/viewer/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  844. package/dist/viewer/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  845. package/dist/viewer/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
  846. package/dist/viewer/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
  847. package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-italic-B7_fu1kp.woff2 +0 -0
  848. package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-italic-Bg0ZHwF4.woff +0 -0
  849. package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
  850. package/dist/viewer/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
  851. package/dist/viewer/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
  852. package/dist/viewer/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
  853. package/dist/viewer/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2 +0 -0
  854. package/dist/viewer/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff +0 -0
  855. package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-italic-D6eaYXMU.woff +0 -0
  856. package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-italic-DRuN92E5.woff2 +0 -0
  857. package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
  858. package/dist/viewer/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
  859. package/dist/viewer/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
  860. package/dist/viewer/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
  861. package/dist/viewer/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2 +0 -0
  862. package/dist/viewer/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff +0 -0
  863. package/dist/viewer/assets/index-2IPslW5t.js +13 -0
  864. package/dist/viewer/assets/index-DSwi2Seu.css +1 -0
  865. package/dist/viewer/index.html +16 -0
  866. package/package.json +67 -0
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ /**
3
+ * SvelteKit — navigation written as markup.
4
+ *
5
+ * <a href="/login">Sign in</a>
6
+ * <a href="/profile/@{user.username}">…</a>
7
+ * <a href={`/article/${slug}`}>…</a>
8
+ *
9
+ * SvelteKit has no link component: an ordinary `<a href>` IS the navigation,
10
+ * intercepted by the router. So a page's outgoing links are plain markup, the
11
+ * extractor records no reference for them, and the resolver in
12
+ * `frameworks/sveltekit-router.ts` — which binds `goto` and `redirect` —
13
+ * never sees them. This pass reads every internal `<a href>` out of the
14
+ * source, attributes it to the component (the innermost function) it is
15
+ * written in, matches it against the SvelteKit route table, and synthesizes
16
+ * one `navigates` edge from the component to the page.
17
+ *
18
+ * Edges are `provenance:'heuristic'`, `synthesizedBy:'sveltekit-link'`, with
19
+ * the href as written and `registeredAt` = the markup site. An external href
20
+ * is a link out of the site, not a transition; a computed one is nothing; a
21
+ * path no page serves is nothing. Nothing here runs on a project with no
22
+ * SvelteKit pages.
23
+ *
24
+ * This is `next-router-synthesizer.ts`'s twin over `<a href>` alone — Next
25
+ * reads `<Link href>` too, and Svelte has no such component.
26
+ *
27
+ * A second pass here binds a route to the `+page.svelte` that serves it
28
+ * (`svelteKitPageComponentEdges`): the route node and the component sit in the
29
+ * same file, but nothing joined them, so a SvelteKit page had no body for the
30
+ * Steps picture to walk and opened as a lone box.
31
+ *
32
+ * The other half of the join — a page and the `+page.server.js` beside it — is
33
+ * `callback-synthesizer.ts`'s `svelteKitLoadEdges`, which already existed: a
34
+ * SvelteKit page and its loader are two halves of one route joined by the file
35
+ * system rather than by a call, and without that join a page's own auth guard
36
+ * (`redirect(302, '/login')` in its loader) belongs to no screen at all.
37
+ */
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.svelteKitLinkEdges = svelteKitLinkEdges;
40
+ exports.svelteKitPageComponentEdges = svelteKitPageComponentEdges;
41
+ const query_utils_1 = require("../search/query-utils");
42
+ const expo_router_1 = require("./frameworks/expo-router");
43
+ const nextjs_1 = require("./frameworks/nextjs");
44
+ const sveltekit_router_1 = require("./frameworks/sveltekit-router");
45
+ const synth_utils_1 = require("./synth-utils");
46
+ const MARKUP_FILE = /\.svelte$/;
47
+ /** `<a … href=…`, the attribute anywhere in the tag, quoted or bound. */
48
+ const LINK_TAG = /<a\b([^>]*?)\bhref\s*=\s*(?:"([^"]*)"|'([^']*)'|\{\s*)/g;
49
+ /** Links a single component may carry before it is a navigation menu, not a decision. */
50
+ const MAX_LINKS_PER_COMPONENT = 24;
51
+ async function svelteKitLinkEdges(ctx, onYield) {
52
+ const table = (0, sveltekit_router_1.svelteKitTable)(ctx);
53
+ if (table.byRoot.size === 0)
54
+ return [];
55
+ const edges = [];
56
+ const seen = new Set();
57
+ const perComponent = new Map();
58
+ let scanned = 0;
59
+ for (const file of ctx.getAllFiles()) {
60
+ if (!MARKUP_FILE.test(file) || (0, query_utils_1.isTestPath)(file))
61
+ continue;
62
+ const routes = (0, expo_router_1.routesForFile)(table, file);
63
+ if (!routes || routes.exact.size === 0)
64
+ continue;
65
+ if ((++scanned & 63) === 0)
66
+ await onYield();
67
+ const source = ctx.readFile(file);
68
+ if (!source || !source.includes('href'))
69
+ continue;
70
+ const nodes = ctx.getNodesInFile(file);
71
+ const lineOf = (0, synth_utils_1.makeLineAt)(source, 1);
72
+ LINK_TAG.lastIndex = 0;
73
+ let m;
74
+ while ((m = LINK_TAG.exec(source)) !== null) {
75
+ let literal = m[2] ?? m[3] ?? null;
76
+ if (literal === null) {
77
+ // `href={…}`: a string or a template with holes.
78
+ const at = m.index + m[0].length;
79
+ const ch = source[at];
80
+ if (ch === '"' || ch === "'" || ch === '`')
81
+ literal = (0, expo_router_1.readStringAt)(source, at);
82
+ }
83
+ if (literal === null)
84
+ continue;
85
+ // An external href is a link out of the site, not a transition. A
86
+ // Svelte `{expr}` inside a quoted attribute is an interpolation, so it
87
+ // becomes the same hole a template literal's `${…}` does — which is how
88
+ // `/profile/@{user.username}` reaches the `/profile/@:user` page.
89
+ if (!literal.startsWith('/'))
90
+ continue;
91
+ const href = (0, expo_router_1.toHref)(literal.replace(/\{[^}]*\}/g, expo_router_1.HOLE));
92
+ if (!href)
93
+ continue;
94
+ const line = lineOf(m.index);
95
+ const component = (0, synth_utils_1.enclosingFn)(nodes, line);
96
+ if (!component)
97
+ continue;
98
+ // A destination written as a choice names one route per arm, and the
99
+ // user reaches every one of them — each is drawn.
100
+ for (const { node: page, href: arm } of (0, nextjs_1.destinationsForHref)(href, routes)) {
101
+ const key = `${component.id}>${page.id}`;
102
+ if (seen.has(key))
103
+ continue;
104
+ const count = (perComponent.get(component.id) ?? 0) + 1;
105
+ perComponent.set(component.id, count);
106
+ if (count > MAX_LINKS_PER_COMPONENT)
107
+ continue;
108
+ seen.add(key);
109
+ edges.push({
110
+ source: component.id,
111
+ target: page.id,
112
+ kind: 'navigates',
113
+ line,
114
+ provenance: 'heuristic',
115
+ metadata: {
116
+ synthesizedBy: 'sveltekit-link',
117
+ href: arm.display,
118
+ navMethod: 'a',
119
+ registeredAt: `${file}:${line}`,
120
+ },
121
+ });
122
+ }
123
+ }
124
+ }
125
+ return edges;
126
+ }
127
+ // =============================================================================
128
+ // A route and the page that serves it
129
+ // =============================================================================
130
+ /**
131
+ * One `calls` edge from each `+page.svelte` route to the component in its own
132
+ * file — the page that renders when a navigation lands there.
133
+ *
134
+ * Every other framework's resolver names this at extraction: a Next page route
135
+ * points at the file's default export, a React Router route at the component
136
+ * the markup named. SvelteKit's route is derived from the file's PATH, and its
137
+ * component has no name of its own to reference (every page file's component
138
+ * is called `+page`), so the two are joined here, where both are already in
139
+ * hand and the match is the file itself rather than a name.
140
+ *
141
+ * With it, `route-roots.ts` reads the page as the route's root: the Steps
142
+ * picture starts at the page instead of at an empty box, and the Screens walk
143
+ * attributes a navigation to the screen whose component holds it rather than
144
+ * falling back to the file it was written in.
145
+ */
146
+ async function svelteKitPageComponentEdges(ctx, onYield) {
147
+ const table = (0, sveltekit_router_1.svelteKitTable)(ctx);
148
+ if (table.byRoot.size === 0)
149
+ return [];
150
+ const edges = [];
151
+ let scanned = 0;
152
+ const pages = new Set();
153
+ for (const routes of table.byRoot.values())
154
+ for (const page of routes.exact.values())
155
+ pages.add(page);
156
+ for (const page of pages) {
157
+ if ((++scanned & 31) === 0)
158
+ await onYield();
159
+ const component = ctx.getNodesInFile(page.filePath).find((n) => n.kind === 'component');
160
+ if (!component)
161
+ continue;
162
+ edges.push({
163
+ source: page.id,
164
+ target: component.id,
165
+ kind: 'calls',
166
+ line: component.startLine,
167
+ provenance: 'heuristic',
168
+ metadata: { synthesizedBy: 'sveltekit-page', registeredAt: page.filePath },
169
+ });
170
+ }
171
+ return edges;
172
+ }
173
+ //# sourceMappingURL=sveltekit-synthesizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sveltekit-synthesizer.js","sourceRoot":"","sources":["../../src/resolution/sveltekit-synthesizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Swift ↔ Objective-C bridging rules.
3
+ *
4
+ * Apple's auto-bridging mechanism exposes Swift declarations to the ObjC
5
+ * runtime under a deterministic selector name. The full rule set:
6
+ * https://developer.apple.com/documentation/swift/importing-swift-into-objective-c
7
+ *
8
+ * This module is **pure name math** — given a Swift declaration's base name
9
+ * + parameter external labels (or the raw signature text), produce the
10
+ * bridged ObjC selector(s); given an ObjC selector, produce the
11
+ * candidate Swift base names. No graph/DB access here.
12
+ *
13
+ * Used by `frameworks/swift-objc.ts` (the framework resolver that wires
14
+ * the rules into the resolution pipeline) and by its tests.
15
+ *
16
+ * ─── Bridging cheat sheet ───────────────────────────────────────────────
17
+ *
18
+ * Swift declaration ObjC selector
19
+ * ───────────────────────────────────────── ─────────────────────────
20
+ * func play() play
21
+ * func play(_ song: String) play:
22
+ * func play(song: String) playWithSong:
23
+ * func play(_ song: String, by artist: String) play:by:
24
+ * func play(song: String, by artist: String) playWithSong:by:
25
+ * init(name: String) initWithName:
26
+ * init(name: String, age: Int) initWithName:age:
27
+ * var name: String (getter / setter) name / setName:
28
+ * @objc(custom:) func f(_ x: Int) custom: (literal override)
29
+ *
30
+ * The reverse direction (ObjC → Swift) collapses the bridge: a Swift call
31
+ * site for `play(song:)` reaches us as the bare base name `play` (Swift's
32
+ * tree-sitter call_expression strips parameter labels from the callee
33
+ * name). So `swiftBaseNamesForObjcSelector('playWithSong:')` returns
34
+ * `['play']` — the resolver looks up Swift methods named `play`.
35
+ */
36
+ /**
37
+ * Compute the auto-bridged ObjC selector for a Swift method declaration.
38
+ *
39
+ * @param baseName The Swift method's base name (e.g. `play`).
40
+ * @param externalLabels Parameter EXTERNAL labels in declaration order;
41
+ * `null` for a `_` (unlabeled) parameter.
42
+ * `[]` for a no-parameter method.
43
+ * @param explicitObjcName If `@objc(customSel:)` was specified, the
44
+ * literal selector — short-circuits the rule
45
+ * and is returned as-is.
46
+ * @returns The ObjC selector (e.g. `playWithSong:by:`), or `null` if it
47
+ * can't be determined.
48
+ *
49
+ * **Method rules:**
50
+ * - No params → base name (no colons)
51
+ * - Single param, `_` label → `baseName:`
52
+ * - Single param, explicit label `L` → `baseNameWithL:`
53
+ * - Multi-param, `_` first label → `baseName:label2:label3:`
54
+ * - Multi-param, explicit first label `L1` → `baseNameWithL1:label2:label3:`
55
+ *
56
+ * Initializer rules are handled by `objcSelectorForSwiftInit`.
57
+ */
58
+ export declare function objcSelectorForSwiftMethod(baseName: string, externalLabels: (string | null)[], explicitObjcName?: string | null): string | null;
59
+ /**
60
+ * Compute the bridged ObjC selector for a Swift `init(...)` declaration.
61
+ *
62
+ * **Init rules** (different from regular methods — Apple always uses
63
+ * `initWith` regardless of whether the first label is `_`):
64
+ * - `init()` → `init`
65
+ * - `init(_ name: String)` → `initWithName:` (uses the INTERNAL
66
+ * name when external is `_`, per Apple's
67
+ * bridging conventions)
68
+ * - `init(name: String)` → `initWithName:`
69
+ * - `init(name: String, age: Int)` → `initWithName:age:`
70
+ *
71
+ * For the `_` case we need the internal (second identifier) name —
72
+ * passed via `internalNames`.
73
+ */
74
+ export declare function objcSelectorForSwiftInit(externalLabels: (string | null)[], internalNames: string[], explicitObjcName?: string | null): string | null;
75
+ /**
76
+ * Compute the bridged ObjC getter + setter for a Swift `@objc` property.
77
+ *
78
+ * - `var name: String` → getter `name`, setter `setName:`
79
+ * - `var isReady: Bool` → getter `isReady`, setter `setIsReady:`
80
+ * (no special `is` handling — Swift's `isReady` stays as `isReady` in ObjC;
81
+ * `@objc(name:)` overrides if a Cocoa-style getter `isReady` / setter
82
+ * `setReady:` pairing is needed — that's the responsibility of the
83
+ * declaration's `@objc(customGetter)` annotation, which we surface via
84
+ * `explicitObjcName`.)
85
+ */
86
+ export declare function objcAccessorsForSwiftProperty(swiftName: string, explicitObjcName?: string | null): {
87
+ getter: string;
88
+ setter: string;
89
+ } | null;
90
+ /**
91
+ * Reverse: from an ObjC selector, return the candidate Swift base names
92
+ * the resolver should try when looking for the bridged Swift declaration.
93
+ *
94
+ * Examples:
95
+ * `play` → ['play']
96
+ * `play:` → ['play']
97
+ * `playWithSong:` → ['play', 'playWithSong']
98
+ * `play:by:` → ['play']
99
+ * `playWithSong:by:` → ['play', 'playWithSong']
100
+ * `initWithName:` → ['init'] (init is its own base name)
101
+ * `initWithName:age:` → ['init']
102
+ * `setName:` → ['name', 'setName'] (could be a setter OR a regular func)
103
+ * `tableView:didSel…:` → ['tableView']
104
+ *
105
+ * Returns multiple candidates because the bare base name is ambiguous —
106
+ * `playWithSong:` could correspond to either `func play(song:)` or
107
+ * `func playWithSong(_ x:)` (a Swift method literally named that with a
108
+ * `_` first label). The resolver tries each.
109
+ */
110
+ export declare function swiftBaseNamesForObjcSelector(selector: string): string[];
111
+ /**
112
+ * Detect whether a Swift method `@objc` declaration uses the `@objc(custom:)`
113
+ * override form, returning the literal selector when present.
114
+ *
115
+ * Regex-based scan over the small chunk of source preceding the declaration —
116
+ * tree-sitter would be more precise but this is only consulted as a fallback
117
+ * when the structured AST isn't available (e.g. resolver-time lookups
118
+ * via `context.readFile`).
119
+ *
120
+ * Returns `null` when the declaration is plain `@objc` (no override) or has
121
+ * no `@objc` attribute at all.
122
+ */
123
+ export declare function detectExplicitObjcName(sourceSlice: string): string | null;
124
+ /**
125
+ * Detect whether a Swift declaration is `@objc`-exposed by scanning the
126
+ * source slice that precedes it. Returns true for explicit `@objc`,
127
+ * `@objc(custom:)`, or membership in a `@objcMembers` class (caller's
128
+ * responsibility to pass class-level context if relevant).
129
+ *
130
+ * `@nonobjc` returns false even if `@objc` also appears (per Swift's rule
131
+ * that `@nonobjc` opts out of class-level `@objcMembers`).
132
+ */
133
+ export declare function isObjcExposed(sourceSlice: string): boolean;
134
+ //# sourceMappingURL=swift-objc-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-objc-bridge.d.ts","sourceRoot":"","sources":["../../src/resolution/swift-objc-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAmBH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,MAAM,GAAG,IAAI,CAoBf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EACjC,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,MAAM,GAAG,IAAI,CA0Bf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAW3C;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA+CxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAG1D"}
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ /**
3
+ * Swift ↔ Objective-C bridging rules.
4
+ *
5
+ * Apple's auto-bridging mechanism exposes Swift declarations to the ObjC
6
+ * runtime under a deterministic selector name. The full rule set:
7
+ * https://developer.apple.com/documentation/swift/importing-swift-into-objective-c
8
+ *
9
+ * This module is **pure name math** — given a Swift declaration's base name
10
+ * + parameter external labels (or the raw signature text), produce the
11
+ * bridged ObjC selector(s); given an ObjC selector, produce the
12
+ * candidate Swift base names. No graph/DB access here.
13
+ *
14
+ * Used by `frameworks/swift-objc.ts` (the framework resolver that wires
15
+ * the rules into the resolution pipeline) and by its tests.
16
+ *
17
+ * ─── Bridging cheat sheet ───────────────────────────────────────────────
18
+ *
19
+ * Swift declaration ObjC selector
20
+ * ───────────────────────────────────────── ─────────────────────────
21
+ * func play() play
22
+ * func play(_ song: String) play:
23
+ * func play(song: String) playWithSong:
24
+ * func play(_ song: String, by artist: String) play:by:
25
+ * func play(song: String, by artist: String) playWithSong:by:
26
+ * init(name: String) initWithName:
27
+ * init(name: String, age: Int) initWithName:age:
28
+ * var name: String (getter / setter) name / setName:
29
+ * @objc(custom:) func f(_ x: Int) custom: (literal override)
30
+ *
31
+ * The reverse direction (ObjC → Swift) collapses the bridge: a Swift call
32
+ * site for `play(song:)` reaches us as the bare base name `play` (Swift's
33
+ * tree-sitter call_expression strips parameter labels from the callee
34
+ * name). So `swiftBaseNamesForObjcSelector('playWithSong:')` returns
35
+ * `['play']` — the resolver looks up Swift methods named `play`.
36
+ */
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.objcSelectorForSwiftMethod = objcSelectorForSwiftMethod;
39
+ exports.objcSelectorForSwiftInit = objcSelectorForSwiftInit;
40
+ exports.objcAccessorsForSwiftProperty = objcAccessorsForSwiftProperty;
41
+ exports.swiftBaseNamesForObjcSelector = swiftBaseNamesForObjcSelector;
42
+ exports.detectExplicitObjcName = detectExplicitObjcName;
43
+ exports.isObjcExposed = isObjcExposed;
44
+ /**
45
+ * Capitalize the first character of a string. Used for the "With"-prefix
46
+ * form on the first selector keyword when the Swift declaration has an
47
+ * explicit first-parameter label (e.g. `func play(song:)` → `playWithSong:`).
48
+ */
49
+ function capFirst(s) {
50
+ return s.length > 0 ? s.charAt(0).toUpperCase() + s.slice(1) : s;
51
+ }
52
+ /**
53
+ * Lowercase the first character. Used in reverse: `setName:` setter ↔
54
+ * Swift property `name`.
55
+ */
56
+ function lowerFirst(s) {
57
+ return s.length > 0 ? s.charAt(0).toLowerCase() + s.slice(1) : s;
58
+ }
59
+ /**
60
+ * Compute the auto-bridged ObjC selector for a Swift method declaration.
61
+ *
62
+ * @param baseName The Swift method's base name (e.g. `play`).
63
+ * @param externalLabels Parameter EXTERNAL labels in declaration order;
64
+ * `null` for a `_` (unlabeled) parameter.
65
+ * `[]` for a no-parameter method.
66
+ * @param explicitObjcName If `@objc(customSel:)` was specified, the
67
+ * literal selector — short-circuits the rule
68
+ * and is returned as-is.
69
+ * @returns The ObjC selector (e.g. `playWithSong:by:`), or `null` if it
70
+ * can't be determined.
71
+ *
72
+ * **Method rules:**
73
+ * - No params → base name (no colons)
74
+ * - Single param, `_` label → `baseName:`
75
+ * - Single param, explicit label `L` → `baseNameWithL:`
76
+ * - Multi-param, `_` first label → `baseName:label2:label3:`
77
+ * - Multi-param, explicit first label `L1` → `baseNameWithL1:label2:label3:`
78
+ *
79
+ * Initializer rules are handled by `objcSelectorForSwiftInit`.
80
+ */
81
+ function objcSelectorForSwiftMethod(baseName, externalLabels, explicitObjcName) {
82
+ if (!baseName)
83
+ return null;
84
+ if (explicitObjcName)
85
+ return explicitObjcName;
86
+ if (externalLabels.length === 0) {
87
+ return baseName;
88
+ }
89
+ const [first, ...rest] = externalLabels;
90
+ // Single param: "_" → "base:" ; "label" → "baseWithLabel:"
91
+ // Multi-param mirrors the same first-keyword formation, then appends each
92
+ // subsequent label as its own keyword. A `null` later label is invalid
93
+ // ObjC (no way to express unlabeled middle params) — keep as `:` to be safe.
94
+ const firstKeyword = first === null || first === undefined || first === '_' || first === ''
95
+ ? `${baseName}:`
96
+ : `${baseName}With${capFirst(first)}:`;
97
+ const restKeywords = rest.map((l) => `${l ?? ''}:`).join('');
98
+ return firstKeyword + restKeywords;
99
+ }
100
+ /**
101
+ * Compute the bridged ObjC selector for a Swift `init(...)` declaration.
102
+ *
103
+ * **Init rules** (different from regular methods — Apple always uses
104
+ * `initWith` regardless of whether the first label is `_`):
105
+ * - `init()` → `init`
106
+ * - `init(_ name: String)` → `initWithName:` (uses the INTERNAL
107
+ * name when external is `_`, per Apple's
108
+ * bridging conventions)
109
+ * - `init(name: String)` → `initWithName:`
110
+ * - `init(name: String, age: Int)` → `initWithName:age:`
111
+ *
112
+ * For the `_` case we need the internal (second identifier) name —
113
+ * passed via `internalNames`.
114
+ */
115
+ function objcSelectorForSwiftInit(externalLabels, internalNames, explicitObjcName) {
116
+ if (explicitObjcName)
117
+ return explicitObjcName;
118
+ if (externalLabels.length === 0) {
119
+ return 'init';
120
+ }
121
+ const [firstExt, ...restExt] = externalLabels;
122
+ const [firstInt] = internalNames;
123
+ // Use the internal name when external is "_"; ObjC needs *some* keyword,
124
+ // and Swift's auto-bridger uses the parameter's local name in this case.
125
+ const firstLabel = firstExt === null || firstExt === '_' || firstExt === ''
126
+ ? firstInt
127
+ : firstExt;
128
+ if (!firstLabel)
129
+ return null;
130
+ const firstKeyword = `initWith${capFirst(firstLabel)}:`;
131
+ const restKeywords = restExt
132
+ .map((label, idx) => {
133
+ const internal = internalNames[idx + 1];
134
+ const name = label && label !== '_' ? label : internal ?? '';
135
+ return `${name}:`;
136
+ })
137
+ .join('');
138
+ return firstKeyword + restKeywords;
139
+ }
140
+ /**
141
+ * Compute the bridged ObjC getter + setter for a Swift `@objc` property.
142
+ *
143
+ * - `var name: String` → getter `name`, setter `setName:`
144
+ * - `var isReady: Bool` → getter `isReady`, setter `setIsReady:`
145
+ * (no special `is` handling — Swift's `isReady` stays as `isReady` in ObjC;
146
+ * `@objc(name:)` overrides if a Cocoa-style getter `isReady` / setter
147
+ * `setReady:` pairing is needed — that's the responsibility of the
148
+ * declaration's `@objc(customGetter)` annotation, which we surface via
149
+ * `explicitObjcName`.)
150
+ */
151
+ function objcAccessorsForSwiftProperty(swiftName, explicitObjcName) {
152
+ if (!swiftName)
153
+ return null;
154
+ // The override syntax `@objc(customGetterName)` re-points the GETTER only;
155
+ // the setter still follows the `setX:` rule but is keyed off the override.
156
+ // (`@objc(getX:setY:)` is not currently supported — that's a rarer
157
+ // shape; can extend later if a real codebase needs it.)
158
+ const getter = explicitObjcName ?? swiftName;
159
+ return {
160
+ getter,
161
+ setter: `set${capFirst(getter)}:`,
162
+ };
163
+ }
164
+ /**
165
+ * Reverse: from an ObjC selector, return the candidate Swift base names
166
+ * the resolver should try when looking for the bridged Swift declaration.
167
+ *
168
+ * Examples:
169
+ * `play` → ['play']
170
+ * `play:` → ['play']
171
+ * `playWithSong:` → ['play', 'playWithSong']
172
+ * `play:by:` → ['play']
173
+ * `playWithSong:by:` → ['play', 'playWithSong']
174
+ * `initWithName:` → ['init'] (init is its own base name)
175
+ * `initWithName:age:` → ['init']
176
+ * `setName:` → ['name', 'setName'] (could be a setter OR a regular func)
177
+ * `tableView:didSel…:` → ['tableView']
178
+ *
179
+ * Returns multiple candidates because the bare base name is ambiguous —
180
+ * `playWithSong:` could correspond to either `func play(song:)` or
181
+ * `func playWithSong(_ x:)` (a Swift method literally named that with a
182
+ * `_` first label). The resolver tries each.
183
+ */
184
+ function swiftBaseNamesForObjcSelector(selector) {
185
+ if (!selector)
186
+ return [];
187
+ // Strip trailing colons and split into keywords.
188
+ const keywords = selector.replace(/:+$/g, '').split(':');
189
+ const firstKeyword = keywords[0];
190
+ if (!firstKeyword)
191
+ return [];
192
+ const candidates = new Set();
193
+ // Always a candidate: the raw first keyword. Covers
194
+ // `play:` → `play`
195
+ // `play:by:` → `play`
196
+ // `playWithSong:` → `playWithSong` (a literal Swift name)
197
+ // `tableView:...:` → `tableView`
198
+ candidates.add(firstKeyword);
199
+ // `initWith<X>:` and `initWith<X>:<more>:` always reduce to `init`.
200
+ if (firstKeyword.startsWith('initWith')) {
201
+ candidates.add('init');
202
+ }
203
+ // Preposition-prefix patterns: `<base>(With|For|By|In|On|At|From|To|Of|As)<Cap>:`
204
+ // covers both Swift's @objc EXPORT rule (always "With") and Cocoa's
205
+ // IMPORTED selectors which use other prepositions natively (e.g.
206
+ // `objectForKey:`, `stringWithFormat:`, `compareTo:`,
207
+ // `imageNamed:inBundle:`). Strip to recover the Swift base name a caller
208
+ // would use (e.g. `object`, `string`, `compare`, `image`).
209
+ const prepositionMatch = firstKeyword.match(/^([a-z][a-zA-Z0-9]*?)(?:With|For|By|In|On|At|From|To|Of|As)[A-Z]/);
210
+ if (prepositionMatch && prepositionMatch[1]) {
211
+ candidates.add(prepositionMatch[1]);
212
+ }
213
+ // `setX:` could be a property setter — the Swift property is `x` (lowercase).
214
+ // Only fires for the obvious shape: `set` + capital letter + ':' (one param).
215
+ if (keywords.length === 1 &&
216
+ /^set[A-Z]/.test(firstKeyword) &&
217
+ selector.endsWith(':')) {
218
+ const propName = lowerFirst(firstKeyword.slice(3));
219
+ if (propName)
220
+ candidates.add(propName);
221
+ }
222
+ return Array.from(candidates);
223
+ }
224
+ /**
225
+ * Detect whether a Swift method `@objc` declaration uses the `@objc(custom:)`
226
+ * override form, returning the literal selector when present.
227
+ *
228
+ * Regex-based scan over the small chunk of source preceding the declaration —
229
+ * tree-sitter would be more precise but this is only consulted as a fallback
230
+ * when the structured AST isn't available (e.g. resolver-time lookups
231
+ * via `context.readFile`).
232
+ *
233
+ * Returns `null` when the declaration is plain `@objc` (no override) or has
234
+ * no `@objc` attribute at all.
235
+ */
236
+ function detectExplicitObjcName(sourceSlice) {
237
+ // `@objc(customName:)` or `@objc(custom:name:)` — the parens contents are
238
+ // the literal ObjC selector. Whitespace permitted.
239
+ const m = sourceSlice.match(/@objc\s*\(\s*([^)\s]+)\s*\)/);
240
+ return m && m[1] ? m[1] : null;
241
+ }
242
+ /**
243
+ * Detect whether a Swift declaration is `@objc`-exposed by scanning the
244
+ * source slice that precedes it. Returns true for explicit `@objc`,
245
+ * `@objc(custom:)`, or membership in a `@objcMembers` class (caller's
246
+ * responsibility to pass class-level context if relevant).
247
+ *
248
+ * `@nonobjc` returns false even if `@objc` also appears (per Swift's rule
249
+ * that `@nonobjc` opts out of class-level `@objcMembers`).
250
+ */
251
+ function isObjcExposed(sourceSlice) {
252
+ if (/@nonobjc\b/.test(sourceSlice))
253
+ return false;
254
+ return /@objc\b/.test(sourceSlice);
255
+ }
256
+ //# sourceMappingURL=swift-objc-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swift-objc-bridge.js","sourceRoot":"","sources":["../../src/resolution/swift-objc-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Small helpers the dynamic-edge synthesizers share: a per-match line
3
+ * resolver over one source string, and "the function this line is in".
4
+ */
5
+ import type { Node } from '../types';
6
+ /** The kinds a call site can be attributed to. */
7
+ export declare const FN_KINDS: ReadonlySet<string>;
8
+ /**
9
+ * Per-match line resolver over `src`, 1-based at `baseLine`. The inline
10
+ * `src.slice(0, idx).split('\n').length` idiom is O(source-length) PER MATCH,
11
+ * which goes quadratic on a match-dense source (a generated function full of
12
+ * `.push(` calls re-scanned tens of thousands of times was most of the #1235
13
+ * indexing wedge). Builds the newline index once — lazily, since most sources
14
+ * never produce a match — then answers each call with a binary search.
15
+ */
16
+ export declare function makeLineAt(src: string, baseLine: number): (idx: number) => number;
17
+ /** Innermost function/method node whose line range contains `line`. */
18
+ export declare function enclosingFn(nodesInFile: readonly Node[], line: number): Node | null;
19
+ /**
20
+ * The smallest `constant` / `variable` node whose lines contain `line` — the
21
+ * value a top-level registration is written inside (`const worker = new
22
+ * Worker('q', async (job) => …)`): what a caller imports and a walk can start
23
+ * from when no function encloses the site.
24
+ */
25
+ export declare function enclosingValue(nodesInFile: readonly Node[], line: number): Node | null;
26
+ //# sourceMappingURL=synth-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synth-utils.d.ts","sourceRoot":"","sources":["../../src/resolution/synth-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC,kDAAkD;AAClD,eAAO,MAAM,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAgD,CAAC;AAE1F;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAiBjF;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAUnF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,SAAS,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAUtF"}