@quolu/lattice 0.69.5 → 0.71.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 (605) hide show
  1. package/README.ja.md +5 -1
  2. package/package.json +1 -1
  3. package/sensor/dist/bin/lattice-sensor.js +746 -323
  4. package/sensor/dist/bin/viewer-gate.d.ts +17 -0
  5. package/sensor/dist/bin/viewer-gate.d.ts.map +1 -0
  6. package/sensor/dist/bin/viewer-gate.js +31 -0
  7. package/sensor/dist/bin/viewer-gate.js.map +1 -0
  8. package/sensor/dist/context/formatter.d.ts +7 -1
  9. package/sensor/dist/context/formatter.d.ts.map +1 -1
  10. package/sensor/dist/context/formatter.js +12 -6
  11. package/sensor/dist/context/formatter.js.map +1 -1
  12. package/sensor/dist/context/index.d.ts +12 -0
  13. package/sensor/dist/context/index.d.ts.map +1 -1
  14. package/sensor/dist/context/index.js +103 -16
  15. package/sensor/dist/context/index.js.map +1 -1
  16. package/sensor/dist/db/index.d.ts +23 -2
  17. package/sensor/dist/db/index.d.ts.map +1 -1
  18. package/sensor/dist/db/index.js +109 -31
  19. package/sensor/dist/db/index.js.map +1 -1
  20. package/sensor/dist/db/migrations.d.ts +1 -1
  21. package/sensor/dist/db/migrations.d.ts.map +1 -1
  22. package/sensor/dist/db/migrations.js +68 -1
  23. package/sensor/dist/db/migrations.js.map +1 -1
  24. package/sensor/dist/db/queries.d.ts +583 -6
  25. package/sensor/dist/db/queries.d.ts.map +1 -1
  26. package/sensor/dist/db/queries.js +1425 -57
  27. package/sensor/dist/db/queries.js.map +1 -1
  28. package/sensor/dist/db/schema.sql +27 -4
  29. package/sensor/dist/db/sqlite-adapter.d.ts +2 -0
  30. package/sensor/dist/db/sqlite-adapter.d.ts.map +1 -1
  31. package/sensor/dist/db/sqlite-adapter.js +56 -7
  32. package/sensor/dist/db/sqlite-adapter.js.map +1 -1
  33. package/sensor/dist/db/synthesis-stage.d.ts +12 -0
  34. package/sensor/dist/db/synthesis-stage.d.ts.map +1 -0
  35. package/sensor/dist/db/synthesis-stage.js +93 -0
  36. package/sensor/dist/db/synthesis-stage.js.map +1 -0
  37. package/sensor/dist/db/wal-valve.d.ts +32 -12
  38. package/sensor/dist/db/wal-valve.d.ts.map +1 -1
  39. package/sensor/dist/db/wal-valve.js +65 -22
  40. package/sensor/dist/db/wal-valve.js.map +1 -1
  41. package/sensor/dist/db/wsl-shared-index.d.ts +53 -0
  42. package/sensor/dist/db/wsl-shared-index.d.ts.map +1 -0
  43. package/sensor/dist/db/wsl-shared-index.js +121 -0
  44. package/sensor/dist/db/wsl-shared-index.js.map +1 -0
  45. package/sensor/dist/directory.d.ts +126 -2
  46. package/sensor/dist/directory.d.ts.map +1 -1
  47. package/sensor/dist/directory.js +285 -16
  48. package/sensor/dist/directory.js.map +1 -1
  49. package/sensor/dist/errors.d.ts +14 -0
  50. package/sensor/dist/errors.d.ts.map +1 -1
  51. package/sensor/dist/errors.js +16 -1
  52. package/sensor/dist/errors.js.map +1 -1
  53. package/sensor/dist/extraction/cfml-extractor.d.ts +1 -0
  54. package/sensor/dist/extraction/cfml-extractor.d.ts.map +1 -1
  55. package/sensor/dist/extraction/cfml-extractor.js +15 -3
  56. package/sensor/dist/extraction/cfml-extractor.js.map +1 -1
  57. package/sensor/dist/extraction/dfm-extractor.d.ts.map +1 -1
  58. package/sensor/dist/extraction/dfm-extractor.js +14 -10
  59. package/sensor/dist/extraction/dfm-extractor.js.map +1 -1
  60. package/sensor/dist/extraction/extraction-version.d.ts +1 -1
  61. package/sensor/dist/extraction/extraction-version.d.ts.map +1 -1
  62. package/sensor/dist/extraction/extraction-version.js +3 -1
  63. package/sensor/dist/extraction/extraction-version.js.map +1 -1
  64. package/sensor/dist/extraction/function-ref.d.ts +6 -4
  65. package/sensor/dist/extraction/function-ref.d.ts.map +1 -1
  66. package/sensor/dist/extraction/function-ref.js +35 -14
  67. package/sensor/dist/extraction/function-ref.js.map +1 -1
  68. package/sensor/dist/extraction/generated-detection.d.ts +48 -12
  69. package/sensor/dist/extraction/generated-detection.d.ts.map +1 -1
  70. package/sensor/dist/extraction/generated-detection.js +176 -11
  71. package/sensor/dist/extraction/generated-detection.js.map +1 -1
  72. package/sensor/dist/extraction/grammars.d.ts +38 -0
  73. package/sensor/dist/extraction/grammars.d.ts.map +1 -1
  74. package/sensor/dist/extraction/grammars.js +115 -3
  75. package/sensor/dist/extraction/grammars.js.map +1 -1
  76. package/sensor/dist/extraction/index.d.ts +218 -14
  77. package/sensor/dist/extraction/index.d.ts.map +1 -1
  78. package/sensor/dist/extraction/index.js +887 -175
  79. package/sensor/dist/extraction/index.js.map +1 -1
  80. package/sensor/dist/extraction/languages/c-cpp.d.ts +58 -0
  81. package/sensor/dist/extraction/languages/c-cpp.d.ts.map +1 -1
  82. package/sensor/dist/extraction/languages/c-cpp.js +310 -19
  83. package/sensor/dist/extraction/languages/c-cpp.js.map +1 -1
  84. package/sensor/dist/extraction/languages/dart.d.ts.map +1 -1
  85. package/sensor/dist/extraction/languages/dart.js +8 -3
  86. package/sensor/dist/extraction/languages/dart.js.map +1 -1
  87. package/sensor/dist/extraction/languages/erlang.d.ts.map +1 -1
  88. package/sensor/dist/extraction/languages/erlang.js +58 -22
  89. package/sensor/dist/extraction/languages/erlang.js.map +1 -1
  90. package/sensor/dist/extraction/languages/javascript.js +1 -1
  91. package/sensor/dist/extraction/languages/javascript.js.map +1 -1
  92. package/sensor/dist/extraction/languages/kotlin.d.ts.map +1 -1
  93. package/sensor/dist/extraction/languages/kotlin.js +169 -36
  94. package/sensor/dist/extraction/languages/kotlin.js.map +1 -1
  95. package/sensor/dist/extraction/languages/lua.d.ts.map +1 -1
  96. package/sensor/dist/extraction/languages/lua.js +4 -1
  97. package/sensor/dist/extraction/languages/lua.js.map +1 -1
  98. package/sensor/dist/extraction/languages/objc.d.ts.map +1 -1
  99. package/sensor/dist/extraction/languages/objc.js +4 -0
  100. package/sensor/dist/extraction/languages/objc.js.map +1 -1
  101. package/sensor/dist/extraction/languages/python.d.ts.map +1 -1
  102. package/sensor/dist/extraction/languages/python.js +71 -0
  103. package/sensor/dist/extraction/languages/python.js.map +1 -1
  104. package/sensor/dist/extraction/languages/rust.d.ts +20 -0
  105. package/sensor/dist/extraction/languages/rust.d.ts.map +1 -1
  106. package/sensor/dist/extraction/languages/rust.js +50 -20
  107. package/sensor/dist/extraction/languages/rust.js.map +1 -1
  108. package/sensor/dist/extraction/languages/scala.d.ts.map +1 -1
  109. package/sensor/dist/extraction/languages/scala.js +18 -3
  110. package/sensor/dist/extraction/languages/scala.js.map +1 -1
  111. package/sensor/dist/extraction/languages/swift.d.ts +15 -0
  112. package/sensor/dist/extraction/languages/swift.d.ts.map +1 -1
  113. package/sensor/dist/extraction/languages/swift.js +50 -0
  114. package/sensor/dist/extraction/languages/swift.js.map +1 -1
  115. package/sensor/dist/extraction/languages/typescript.d.ts.map +1 -1
  116. package/sensor/dist/extraction/languages/typescript.js +9 -2
  117. package/sensor/dist/extraction/languages/typescript.js.map +1 -1
  118. package/sensor/dist/extraction/liquid-extractor.d.ts +18 -0
  119. package/sensor/dist/extraction/liquid-extractor.d.ts.map +1 -1
  120. package/sensor/dist/extraction/liquid-extractor.js +98 -22
  121. package/sensor/dist/extraction/liquid-extractor.js.map +1 -1
  122. package/sensor/dist/extraction/mybatis-extractor.d.ts.map +1 -1
  123. package/sensor/dist/extraction/mybatis-extractor.js +6 -4
  124. package/sensor/dist/extraction/mybatis-extractor.js.map +1 -1
  125. package/sensor/dist/extraction/parse-pool.d.ts +7 -0
  126. package/sensor/dist/extraction/parse-pool.d.ts.map +1 -1
  127. package/sensor/dist/extraction/parse-pool.js +20 -1
  128. package/sensor/dist/extraction/parse-pool.js.map +1 -1
  129. package/sensor/dist/extraction/syntax-tokens.d.ts +103 -0
  130. package/sensor/dist/extraction/syntax-tokens.d.ts.map +1 -0
  131. package/sensor/dist/extraction/syntax-tokens.js +381 -0
  132. package/sensor/dist/extraction/syntax-tokens.js.map +1 -0
  133. package/sensor/dist/extraction/tree-sitter-helpers.d.ts +5 -0
  134. package/sensor/dist/extraction/tree-sitter-helpers.d.ts.map +1 -1
  135. package/sensor/dist/extraction/tree-sitter-helpers.js +17 -0
  136. package/sensor/dist/extraction/tree-sitter-helpers.js.map +1 -1
  137. package/sensor/dist/extraction/tree-sitter-types.d.ts +31 -3
  138. package/sensor/dist/extraction/tree-sitter-types.d.ts.map +1 -1
  139. package/sensor/dist/extraction/tree-sitter.d.ts +101 -18
  140. package/sensor/dist/extraction/tree-sitter.d.ts.map +1 -1
  141. package/sensor/dist/extraction/tree-sitter.js +928 -134
  142. package/sensor/dist/extraction/tree-sitter.js.map +1 -1
  143. package/sensor/dist/extraction/wasm/tree-sitter-scala.wasm +0 -0
  144. package/sensor/dist/file-limits.d.ts +40 -0
  145. package/sensor/dist/file-limits.d.ts.map +1 -0
  146. package/sensor/dist/file-limits.js +147 -0
  147. package/sensor/dist/file-limits.js.map +1 -0
  148. package/sensor/dist/graph/branch-guards.d.ts +265 -0
  149. package/sensor/dist/graph/branch-guards.d.ts.map +1 -0
  150. package/sensor/dist/graph/branch-guards.js +2325 -0
  151. package/sensor/dist/graph/branch-guards.js.map +1 -0
  152. package/sensor/dist/graph/dead-code.d.ts +251 -0
  153. package/sensor/dist/graph/dead-code.d.ts.map +1 -0
  154. package/sensor/dist/graph/dead-code.js +776 -0
  155. package/sensor/dist/graph/dead-code.js.map +1 -0
  156. package/sensor/dist/graph/dynamic-boundary-report.d.ts +121 -0
  157. package/sensor/dist/graph/dynamic-boundary-report.d.ts.map +1 -0
  158. package/sensor/dist/graph/dynamic-boundary-report.js +283 -0
  159. package/sensor/dist/graph/dynamic-boundary-report.js.map +1 -0
  160. package/sensor/dist/graph/index.d.ts +4 -0
  161. package/sensor/dist/graph/index.d.ts.map +1 -1
  162. package/sensor/dist/graph/index.js +16 -1
  163. package/sensor/dist/graph/index.js.map +1 -1
  164. package/sensor/dist/graph/named-symbol-flow.d.ts +125 -0
  165. package/sensor/dist/graph/named-symbol-flow.d.ts.map +1 -0
  166. package/sensor/dist/graph/named-symbol-flow.js +552 -0
  167. package/sensor/dist/graph/named-symbol-flow.js.map +1 -0
  168. package/sensor/dist/graph/queries.d.ts.map +1 -1
  169. package/sensor/dist/graph/queries.js +2 -0
  170. package/sensor/dist/graph/queries.js.map +1 -1
  171. package/sensor/dist/graph/symbol-lookup.d.ts +83 -0
  172. package/sensor/dist/graph/symbol-lookup.d.ts.map +1 -0
  173. package/sensor/dist/graph/symbol-lookup.js +181 -0
  174. package/sensor/dist/graph/symbol-lookup.js.map +1 -0
  175. package/sensor/dist/graph/traversal.d.ts +9 -0
  176. package/sensor/dist/graph/traversal.d.ts.map +1 -1
  177. package/sensor/dist/graph/traversal.js +62 -36
  178. package/sensor/dist/graph/traversal.js.map +1 -1
  179. package/sensor/dist/graph/type-hierarchy.d.ts +155 -0
  180. package/sensor/dist/graph/type-hierarchy.d.ts.map +1 -0
  181. package/sensor/dist/graph/type-hierarchy.js +382 -0
  182. package/sensor/dist/graph/type-hierarchy.js.map +1 -0
  183. package/sensor/dist/index.d.ts +272 -10
  184. package/sensor/dist/index.d.ts.map +1 -1
  185. package/sensor/dist/index.js +510 -34
  186. package/sensor/dist/index.js.map +1 -1
  187. package/sensor/dist/mcp/answer-freshness.d.ts +10 -0
  188. package/sensor/dist/mcp/answer-freshness.d.ts.map +1 -0
  189. package/sensor/dist/mcp/answer-freshness.js +68 -0
  190. package/sensor/dist/mcp/answer-freshness.js.map +1 -0
  191. package/sensor/dist/mcp/daemon-manager.d.ts +1 -1
  192. package/sensor/dist/mcp/daemon-manager.d.ts.map +1 -1
  193. package/sensor/dist/mcp/daemon-manager.js +17 -1
  194. package/sensor/dist/mcp/daemon-manager.js.map +1 -1
  195. package/sensor/dist/mcp/daemon-paths.d.ts +8 -0
  196. package/sensor/dist/mcp/daemon-paths.d.ts.map +1 -1
  197. package/sensor/dist/mcp/daemon-paths.js +65 -2
  198. package/sensor/dist/mcp/daemon-paths.js.map +1 -1
  199. package/sensor/dist/mcp/daemon-registry.d.ts +17 -4
  200. package/sensor/dist/mcp/daemon-registry.d.ts.map +1 -1
  201. package/sensor/dist/mcp/daemon-registry.js +133 -23
  202. package/sensor/dist/mcp/daemon-registry.js.map +1 -1
  203. package/sensor/dist/mcp/daemon.d.ts +26 -13
  204. package/sensor/dist/mcp/daemon.d.ts.map +1 -1
  205. package/sensor/dist/mcp/daemon.js +126 -32
  206. package/sensor/dist/mcp/daemon.js.map +1 -1
  207. package/sensor/dist/mcp/dynamic-boundaries.d.ts +1 -10
  208. package/sensor/dist/mcp/dynamic-boundaries.d.ts.map +1 -1
  209. package/sensor/dist/mcp/dynamic-boundaries.js +46 -42
  210. package/sensor/dist/mcp/dynamic-boundaries.js.map +1 -1
  211. package/sensor/dist/mcp/engine.d.ts +31 -9
  212. package/sensor/dist/mcp/engine.d.ts.map +1 -1
  213. package/sensor/dist/mcp/engine.js +190 -79
  214. package/sensor/dist/mcp/engine.js.map +1 -1
  215. package/sensor/dist/mcp/explore-dedup.d.ts +140 -0
  216. package/sensor/dist/mcp/explore-dedup.d.ts.map +1 -0
  217. package/sensor/dist/mcp/explore-dedup.js +239 -0
  218. package/sensor/dist/mcp/explore-dedup.js.map +1 -0
  219. package/sensor/dist/mcp/explore-diagnostics.d.ts +289 -0
  220. package/sensor/dist/mcp/explore-diagnostics.d.ts.map +1 -0
  221. package/sensor/dist/mcp/explore-diagnostics.js +558 -0
  222. package/sensor/dist/mcp/explore-diagnostics.js.map +1 -0
  223. package/sensor/dist/mcp/explore-session-state.d.ts +217 -0
  224. package/sensor/dist/mcp/explore-session-state.d.ts.map +1 -0
  225. package/sensor/dist/mcp/explore-session-state.js +322 -0
  226. package/sensor/dist/mcp/explore-session-state.js.map +1 -0
  227. package/sensor/dist/mcp/index-freshness-worker.d.ts +2 -0
  228. package/sensor/dist/mcp/index-freshness-worker.d.ts.map +1 -0
  229. package/sensor/dist/mcp/index-freshness-worker.js +30 -0
  230. package/sensor/dist/mcp/index-freshness-worker.js.map +1 -0
  231. package/sensor/dist/mcp/index-freshness.d.ts +7 -0
  232. package/sensor/dist/mcp/index-freshness.d.ts.map +1 -0
  233. package/sensor/dist/mcp/index-freshness.js +94 -0
  234. package/sensor/dist/mcp/index-freshness.js.map +1 -0
  235. package/sensor/dist/mcp/index.d.ts +3 -1
  236. package/sensor/dist/mcp/index.d.ts.map +1 -1
  237. package/sensor/dist/mcp/index.js +109 -12
  238. package/sensor/dist/mcp/index.js.map +1 -1
  239. package/sensor/dist/mcp/liveness-watchdog.d.ts +4 -1
  240. package/sensor/dist/mcp/liveness-watchdog.d.ts.map +1 -1
  241. package/sensor/dist/mcp/liveness-watchdog.js +11 -2
  242. package/sensor/dist/mcp/liveness-watchdog.js.map +1 -1
  243. package/sensor/dist/mcp/project-lifecycle.d.ts +9 -0
  244. package/sensor/dist/mcp/project-lifecycle.d.ts.map +1 -0
  245. package/sensor/dist/mcp/project-lifecycle.js +182 -0
  246. package/sensor/dist/mcp/project-lifecycle.js.map +1 -0
  247. package/sensor/dist/mcp/proxy.d.ts.map +1 -1
  248. package/sensor/dist/mcp/proxy.js +15 -1
  249. package/sensor/dist/mcp/proxy.js.map +1 -1
  250. package/sensor/dist/mcp/query-pool.d.ts +2 -2
  251. package/sensor/dist/mcp/query-pool.d.ts.map +1 -1
  252. package/sensor/dist/mcp/query-pool.js +9 -7
  253. package/sensor/dist/mcp/query-pool.js.map +1 -1
  254. package/sensor/dist/mcp/query-worker.js +2 -2
  255. package/sensor/dist/mcp/query-worker.js.map +1 -1
  256. package/sensor/dist/mcp/server-instructions.d.ts +2 -2
  257. package/sensor/dist/mcp/server-instructions.d.ts.map +1 -1
  258. package/sensor/dist/mcp/server-instructions.js +13 -6
  259. package/sensor/dist/mcp/server-instructions.js.map +1 -1
  260. package/sensor/dist/mcp/session.d.ts +16 -0
  261. package/sensor/dist/mcp/session.d.ts.map +1 -1
  262. package/sensor/dist/mcp/session.js +36 -13
  263. package/sensor/dist/mcp/session.js.map +1 -1
  264. package/sensor/dist/mcp/startup-handshake.d.ts +3 -1
  265. package/sensor/dist/mcp/startup-handshake.d.ts.map +1 -1
  266. package/sensor/dist/mcp/startup-handshake.js +10 -2
  267. package/sensor/dist/mcp/startup-handshake.js.map +1 -1
  268. package/sensor/dist/mcp/tools.d.ts +496 -38
  269. package/sensor/dist/mcp/tools.d.ts.map +1 -1
  270. package/sensor/dist/mcp/tools.js +4021 -772
  271. package/sensor/dist/mcp/tools.js.map +1 -1
  272. package/sensor/dist/mcp/writer-lock.d.ts +61 -0
  273. package/sensor/dist/mcp/writer-lock.d.ts.map +1 -0
  274. package/sensor/dist/mcp/writer-lock.js +260 -0
  275. package/sensor/dist/mcp/writer-lock.js.map +1 -0
  276. package/sensor/dist/project-config.d.ts +23 -0
  277. package/sensor/dist/project-config.d.ts.map +1 -1
  278. package/sensor/dist/project-config.js +39 -2
  279. package/sensor/dist/project-config.js.map +1 -1
  280. package/sensor/dist/resolution/alias-binding.d.ts +56 -0
  281. package/sensor/dist/resolution/alias-binding.d.ts.map +1 -0
  282. package/sensor/dist/resolution/alias-binding.js +127 -0
  283. package/sensor/dist/resolution/alias-binding.js.map +1 -0
  284. package/sensor/dist/resolution/c-fnptr-synthesizer.d.ts.map +1 -1
  285. package/sensor/dist/resolution/c-fnptr-synthesizer.js +21 -19
  286. package/sensor/dist/resolution/c-fnptr-synthesizer.js.map +1 -1
  287. package/sensor/dist/resolution/callback-synthesizer.d.ts +23 -1
  288. package/sensor/dist/resolution/callback-synthesizer.d.ts.map +1 -1
  289. package/sensor/dist/resolution/callback-synthesizer.js +356 -155
  290. package/sensor/dist/resolution/callback-synthesizer.js.map +1 -1
  291. package/sensor/dist/resolution/cpp-constructor.d.ts +4 -0
  292. package/sensor/dist/resolution/cpp-constructor.d.ts.map +1 -0
  293. package/sensor/dist/resolution/cpp-constructor.js +123 -0
  294. package/sensor/dist/resolution/cpp-constructor.js.map +1 -0
  295. package/sensor/dist/resolution/cpp-macro-visibility.d.ts +12 -0
  296. package/sensor/dist/resolution/cpp-macro-visibility.d.ts.map +1 -0
  297. package/sensor/dist/resolution/cpp-macro-visibility.js +342 -0
  298. package/sensor/dist/resolution/cpp-macro-visibility.js.map +1 -0
  299. package/sensor/dist/resolution/expo-router-synthesizer.d.ts +32 -0
  300. package/sensor/dist/resolution/expo-router-synthesizer.d.ts.map +1 -0
  301. package/sensor/dist/resolution/expo-router-synthesizer.js +189 -0
  302. package/sensor/dist/resolution/expo-router-synthesizer.js.map +1 -0
  303. package/sensor/dist/resolution/frameworks/csharp.d.ts.map +1 -1
  304. package/sensor/dist/resolution/frameworks/csharp.js +96 -2
  305. package/sensor/dist/resolution/frameworks/csharp.js.map +1 -1
  306. package/sensor/dist/resolution/frameworks/expo-router.d.ts +189 -0
  307. package/sensor/dist/resolution/frameworks/expo-router.d.ts.map +1 -0
  308. package/sensor/dist/resolution/frameworks/expo-router.js +785 -0
  309. package/sensor/dist/resolution/frameworks/expo-router.js.map +1 -0
  310. package/sensor/dist/resolution/frameworks/express.d.ts.map +1 -1
  311. package/sensor/dist/resolution/frameworks/express.js +251 -16
  312. package/sensor/dist/resolution/frameworks/express.js.map +1 -1
  313. package/sensor/dist/resolution/frameworks/index.d.ts +5 -0
  314. package/sensor/dist/resolution/frameworks/index.d.ts.map +1 -1
  315. package/sensor/dist/resolution/frameworks/index.js +29 -1
  316. package/sensor/dist/resolution/frameworks/index.js.map +1 -1
  317. package/sensor/dist/resolution/frameworks/java.d.ts.map +1 -1
  318. package/sensor/dist/resolution/frameworks/java.js +79 -47
  319. package/sensor/dist/resolution/frameworks/java.js.map +1 -1
  320. package/sensor/dist/resolution/frameworks/laravel.d.ts.map +1 -1
  321. package/sensor/dist/resolution/frameworks/laravel.js +294 -4
  322. package/sensor/dist/resolution/frameworks/laravel.js.map +1 -1
  323. package/sensor/dist/resolution/frameworks/nestjs.d.ts.map +1 -1
  324. package/sensor/dist/resolution/frameworks/nestjs.js +6 -14
  325. package/sensor/dist/resolution/frameworks/nestjs.js.map +1 -1
  326. package/sensor/dist/resolution/frameworks/nextjs.d.ts +76 -0
  327. package/sensor/dist/resolution/frameworks/nextjs.d.ts.map +1 -0
  328. package/sensor/dist/resolution/frameworks/nextjs.js +328 -0
  329. package/sensor/dist/resolution/frameworks/nextjs.js.map +1 -0
  330. package/sensor/dist/resolution/frameworks/object-literal.d.ts +32 -0
  331. package/sensor/dist/resolution/frameworks/object-literal.d.ts.map +1 -0
  332. package/sensor/dist/resolution/frameworks/object-literal.js +139 -0
  333. package/sensor/dist/resolution/frameworks/object-literal.js.map +1 -0
  334. package/sensor/dist/resolution/frameworks/package-deps.d.ts +14 -0
  335. package/sensor/dist/resolution/frameworks/package-deps.d.ts.map +1 -0
  336. package/sensor/dist/resolution/frameworks/package-deps.js +78 -0
  337. package/sensor/dist/resolution/frameworks/package-deps.js.map +1 -0
  338. package/sensor/dist/resolution/frameworks/python.d.ts.map +1 -1
  339. package/sensor/dist/resolution/frameworks/python.js +166 -0
  340. package/sensor/dist/resolution/frameworks/python.js.map +1 -1
  341. package/sensor/dist/resolution/frameworks/react-native.d.ts +26 -0
  342. package/sensor/dist/resolution/frameworks/react-native.d.ts.map +1 -1
  343. package/sensor/dist/resolution/frameworks/react-native.js +153 -14
  344. package/sensor/dist/resolution/frameworks/react-native.js.map +1 -1
  345. package/sensor/dist/resolution/frameworks/react-router.d.ts +46 -0
  346. package/sensor/dist/resolution/frameworks/react-router.d.ts.map +1 -0
  347. package/sensor/dist/resolution/frameworks/react-router.js +187 -0
  348. package/sensor/dist/resolution/frameworks/react-router.js.map +1 -0
  349. package/sensor/dist/resolution/frameworks/react.d.ts +2 -1
  350. package/sensor/dist/resolution/frameworks/react.d.ts.map +1 -1
  351. package/sensor/dist/resolution/frameworks/react.js +188 -139
  352. package/sensor/dist/resolution/frameworks/react.js.map +1 -1
  353. package/sensor/dist/resolution/frameworks/svelte.d.ts.map +1 -1
  354. package/sensor/dist/resolution/frameworks/svelte.js +6 -1
  355. package/sensor/dist/resolution/frameworks/svelte.js.map +1 -1
  356. package/sensor/dist/resolution/frameworks/sveltekit-router.d.ts +36 -0
  357. package/sensor/dist/resolution/frameworks/sveltekit-router.d.ts.map +1 -0
  358. package/sensor/dist/resolution/frameworks/sveltekit-router.js +156 -0
  359. package/sensor/dist/resolution/frameworks/sveltekit-router.js.map +1 -0
  360. package/sensor/dist/resolution/frameworks/swift.d.ts.map +1 -1
  361. package/sensor/dist/resolution/frameworks/swift.js +140 -99
  362. package/sensor/dist/resolution/frameworks/swift.js.map +1 -1
  363. package/sensor/dist/resolution/frameworks/tanstack-router.d.ts +84 -0
  364. package/sensor/dist/resolution/frameworks/tanstack-router.d.ts.map +1 -0
  365. package/sensor/dist/resolution/frameworks/tanstack-router.js +437 -0
  366. package/sensor/dist/resolution/frameworks/tanstack-router.js.map +1 -0
  367. package/sensor/dist/resolution/frameworks/vue-router.d.ts +82 -0
  368. package/sensor/dist/resolution/frameworks/vue-router.d.ts.map +1 -0
  369. package/sensor/dist/resolution/frameworks/vue-router.js +377 -0
  370. package/sensor/dist/resolution/frameworks/vue-router.js.map +1 -0
  371. package/sensor/dist/resolution/import-resolver.d.ts +38 -0
  372. package/sensor/dist/resolution/import-resolver.d.ts.map +1 -1
  373. package/sensor/dist/resolution/import-resolver.js +394 -28
  374. package/sensor/dist/resolution/import-resolver.js.map +1 -1
  375. package/sensor/dist/resolution/index.d.ts +89 -25
  376. package/sensor/dist/resolution/index.d.ts.map +1 -1
  377. package/sensor/dist/resolution/index.js +573 -148
  378. package/sensor/dist/resolution/index.js.map +1 -1
  379. package/sensor/dist/resolution/js-builtins.d.ts +13 -0
  380. package/sensor/dist/resolution/js-builtins.d.ts.map +1 -0
  381. package/sensor/dist/resolution/js-builtins.js +46 -0
  382. package/sensor/dist/resolution/js-builtins.js.map +1 -0
  383. package/sensor/dist/resolution/name-matcher.d.ts +99 -22
  384. package/sensor/dist/resolution/name-matcher.d.ts.map +1 -1
  385. package/sensor/dist/resolution/name-matcher.js +2220 -86
  386. package/sensor/dist/resolution/name-matcher.js.map +1 -1
  387. package/sensor/dist/resolution/next-router-synthesizer.d.ts +27 -0
  388. package/sensor/dist/resolution/next-router-synthesizer.d.ts.map +1 -0
  389. package/sensor/dist/resolution/next-router-synthesizer.js +113 -0
  390. package/sensor/dist/resolution/next-router-synthesizer.js.map +1 -0
  391. package/sensor/dist/resolution/path-aliases.d.ts +6 -4
  392. package/sensor/dist/resolution/path-aliases.d.ts.map +1 -1
  393. package/sensor/dist/resolution/path-aliases.js +125 -17
  394. package/sensor/dist/resolution/path-aliases.js.map +1 -1
  395. package/sensor/dist/resolution/react-router-synthesizer.d.ts +33 -0
  396. package/sensor/dist/resolution/react-router-synthesizer.d.ts.map +1 -0
  397. package/sensor/dist/resolution/react-router-synthesizer.js +126 -0
  398. package/sensor/dist/resolution/react-router-synthesizer.js.map +1 -0
  399. package/sensor/dist/resolution/resolver-pool.d.ts +2 -0
  400. package/sensor/dist/resolution/resolver-pool.d.ts.map +1 -1
  401. package/sensor/dist/resolution/resolver-pool.js +4 -0
  402. package/sensor/dist/resolution/resolver-pool.js.map +1 -1
  403. package/sensor/dist/resolution/strip-comments.d.ts +6 -0
  404. package/sensor/dist/resolution/strip-comments.d.ts.map +1 -1
  405. package/sensor/dist/resolution/strip-comments.js +58 -0
  406. package/sensor/dist/resolution/strip-comments.js.map +1 -1
  407. package/sensor/dist/resolution/sveltekit-synthesizer.d.ts +58 -0
  408. package/sensor/dist/resolution/sveltekit-synthesizer.d.ts.map +1 -0
  409. package/sensor/dist/resolution/sveltekit-synthesizer.js +173 -0
  410. package/sensor/dist/resolution/sveltekit-synthesizer.js.map +1 -0
  411. package/sensor/dist/resolution/swift-type-visibility.d.ts +52 -0
  412. package/sensor/dist/resolution/swift-type-visibility.d.ts.map +1 -0
  413. package/sensor/dist/resolution/swift-type-visibility.js +328 -0
  414. package/sensor/dist/resolution/swift-type-visibility.js.map +1 -0
  415. package/sensor/dist/resolution/synth-utils.d.ts +26 -0
  416. package/sensor/dist/resolution/synth-utils.d.ts.map +1 -0
  417. package/sensor/dist/resolution/synth-utils.js +75 -0
  418. package/sensor/dist/resolution/synth-utils.js.map +1 -0
  419. package/sensor/dist/resolution/tanstack-router-synthesizer.d.ts +31 -0
  420. package/sensor/dist/resolution/tanstack-router-synthesizer.d.ts.map +1 -0
  421. package/sensor/dist/resolution/tanstack-router-synthesizer.js +114 -0
  422. package/sensor/dist/resolution/tanstack-router-synthesizer.js.map +1 -0
  423. package/sensor/dist/resolution/tier-synthesizer.d.ts +54 -0
  424. package/sensor/dist/resolution/tier-synthesizer.d.ts.map +1 -0
  425. package/sensor/dist/resolution/tier-synthesizer.js +1294 -0
  426. package/sensor/dist/resolution/tier-synthesizer.js.map +1 -0
  427. package/sensor/dist/resolution/types.d.ts +78 -2
  428. package/sensor/dist/resolution/types.d.ts.map +1 -1
  429. package/sensor/dist/resolution/types.js +64 -0
  430. package/sensor/dist/resolution/types.js.map +1 -1
  431. package/sensor/dist/resolution/vue-router-synthesizer.d.ts +30 -0
  432. package/sensor/dist/resolution/vue-router-synthesizer.d.ts.map +1 -0
  433. package/sensor/dist/resolution/vue-router-synthesizer.js +115 -0
  434. package/sensor/dist/resolution/vue-router-synthesizer.js.map +1 -0
  435. package/sensor/dist/search/identifier-segments.d.ts +10 -0
  436. package/sensor/dist/search/identifier-segments.d.ts.map +1 -1
  437. package/sensor/dist/search/identifier-segments.js +29 -0
  438. package/sensor/dist/search/identifier-segments.js.map +1 -1
  439. package/sensor/dist/search/query-paths.d.ts +106 -0
  440. package/sensor/dist/search/query-paths.d.ts.map +1 -0
  441. package/sensor/dist/search/query-paths.js +513 -0
  442. package/sensor/dist/search/query-paths.js.map +1 -0
  443. package/sensor/dist/search/query-utils.d.ts +22 -2
  444. package/sensor/dist/search/query-utils.d.ts.map +1 -1
  445. package/sensor/dist/search/query-utils.js +56 -16
  446. package/sensor/dist/search/query-utils.js.map +1 -1
  447. package/sensor/dist/sync/watch-policy.d.ts +14 -0
  448. package/sensor/dist/sync/watch-policy.d.ts.map +1 -1
  449. package/sensor/dist/sync/watch-policy.js +19 -0
  450. package/sensor/dist/sync/watch-policy.js.map +1 -1
  451. package/sensor/dist/sync/watcher.d.ts +74 -35
  452. package/sensor/dist/sync/watcher.d.ts.map +1 -1
  453. package/sensor/dist/sync/watcher.js +281 -99
  454. package/sensor/dist/sync/watcher.js.map +1 -1
  455. package/sensor/dist/telemetry/index.d.ts +4 -2
  456. package/sensor/dist/telemetry/index.d.ts.map +1 -1
  457. package/sensor/dist/telemetry/index.js +92 -41
  458. package/sensor/dist/telemetry/index.js.map +1 -1
  459. package/sensor/dist/types.d.ts +18 -2
  460. package/sensor/dist/types.d.ts.map +1 -1
  461. package/sensor/dist/types.js +2 -0
  462. package/sensor/dist/types.js.map +1 -1
  463. package/sensor/dist/ui-server/api/deadcode.d.ts +84 -0
  464. package/sensor/dist/ui-server/api/deadcode.d.ts.map +1 -0
  465. package/sensor/dist/ui-server/api/deadcode.js +136 -0
  466. package/sensor/dist/ui-server/api/deadcode.js.map +1 -0
  467. package/sensor/dist/ui-server/api/effects.d.ts +94 -0
  468. package/sensor/dist/ui-server/api/effects.d.ts.map +1 -0
  469. package/sensor/dist/ui-server/api/effects.js +527 -0
  470. package/sensor/dist/ui-server/api/effects.js.map +1 -0
  471. package/sensor/dist/ui-server/api/entrypoints.d.ts +92 -0
  472. package/sensor/dist/ui-server/api/entrypoints.d.ts.map +1 -0
  473. package/sensor/dist/ui-server/api/entrypoints.js +361 -0
  474. package/sensor/dist/ui-server/api/entrypoints.js.map +1 -0
  475. package/sensor/dist/ui-server/api/events.d.ts +183 -0
  476. package/sensor/dist/ui-server/api/events.d.ts.map +1 -0
  477. package/sensor/dist/ui-server/api/events.js +430 -0
  478. package/sensor/dist/ui-server/api/events.js.map +1 -0
  479. package/sensor/dist/ui-server/api/file.d.ts +66 -0
  480. package/sensor/dist/ui-server/api/file.d.ts.map +1 -0
  481. package/sensor/dist/ui-server/api/file.js +235 -0
  482. package/sensor/dist/ui-server/api/file.js.map +1 -0
  483. package/sensor/dist/ui-server/api/filecode.d.ts +126 -0
  484. package/sensor/dist/ui-server/api/filecode.d.ts.map +1 -0
  485. package/sensor/dist/ui-server/api/filecode.js +205 -0
  486. package/sensor/dist/ui-server/api/filecode.js.map +1 -0
  487. package/sensor/dist/ui-server/api/flow.d.ts +226 -0
  488. package/sensor/dist/ui-server/api/flow.d.ts.map +1 -0
  489. package/sensor/dist/ui-server/api/flow.js +612 -0
  490. package/sensor/dist/ui-server/api/flow.js.map +1 -0
  491. package/sensor/dist/ui-server/api/hierarchy.d.ts +81 -0
  492. package/sensor/dist/ui-server/api/hierarchy.d.ts.map +1 -0
  493. package/sensor/dist/ui-server/api/hierarchy.js +92 -0
  494. package/sensor/dist/ui-server/api/hierarchy.js.map +1 -0
  495. package/sensor/dist/ui-server/api/index.d.ts +90 -0
  496. package/sensor/dist/ui-server/api/index.d.ts.map +1 -0
  497. package/sensor/dist/ui-server/api/index.js +332 -0
  498. package/sensor/dist/ui-server/api/index.js.map +1 -0
  499. package/sensor/dist/ui-server/api/map.d.ts +256 -0
  500. package/sensor/dist/ui-server/api/map.d.ts.map +1 -0
  501. package/sensor/dist/ui-server/api/map.js +760 -0
  502. package/sensor/dist/ui-server/api/map.js.map +1 -0
  503. package/sensor/dist/ui-server/api/node.d.ts +81 -0
  504. package/sensor/dist/ui-server/api/node.d.ts.map +1 -0
  505. package/sensor/dist/ui-server/api/node.js +388 -0
  506. package/sensor/dist/ui-server/api/node.js.map +1 -0
  507. package/sensor/dist/ui-server/api/nodes.d.ts +25 -0
  508. package/sensor/dist/ui-server/api/nodes.d.ts.map +1 -0
  509. package/sensor/dist/ui-server/api/nodes.js +45 -0
  510. package/sensor/dist/ui-server/api/nodes.js.map +1 -0
  511. package/sensor/dist/ui-server/api/program.d.ts +139 -0
  512. package/sensor/dist/ui-server/api/program.d.ts.map +1 -0
  513. package/sensor/dist/ui-server/api/program.js +315 -0
  514. package/sensor/dist/ui-server/api/program.js.map +1 -0
  515. package/sensor/dist/ui-server/api/respond.d.ts +76 -0
  516. package/sensor/dist/ui-server/api/respond.d.ts.map +1 -0
  517. package/sensor/dist/ui-server/api/respond.js +186 -0
  518. package/sensor/dist/ui-server/api/respond.js.map +1 -0
  519. package/sensor/dist/ui-server/api/route-roots.d.ts +39 -0
  520. package/sensor/dist/ui-server/api/route-roots.d.ts.map +1 -0
  521. package/sensor/dist/ui-server/api/route-roots.js +96 -0
  522. package/sensor/dist/ui-server/api/route-roots.js.map +1 -0
  523. package/sensor/dist/ui-server/api/routes.d.ts +59 -0
  524. package/sensor/dist/ui-server/api/routes.d.ts.map +1 -0
  525. package/sensor/dist/ui-server/api/routes.js +108 -0
  526. package/sensor/dist/ui-server/api/routes.js.map +1 -0
  527. package/sensor/dist/ui-server/api/screens.d.ts +117 -0
  528. package/sensor/dist/ui-server/api/screens.d.ts.map +1 -0
  529. package/sensor/dist/ui-server/api/screens.js +611 -0
  530. package/sensor/dist/ui-server/api/screens.js.map +1 -0
  531. package/sensor/dist/ui-server/api/search.d.ts +29 -0
  532. package/sensor/dist/ui-server/api/search.d.ts.map +1 -0
  533. package/sensor/dist/ui-server/api/search.js +232 -0
  534. package/sensor/dist/ui-server/api/search.js.map +1 -0
  535. package/sensor/dist/ui-server/api/session.d.ts +52 -0
  536. package/sensor/dist/ui-server/api/session.d.ts.map +1 -0
  537. package/sensor/dist/ui-server/api/session.js +196 -0
  538. package/sensor/dist/ui-server/api/session.js.map +1 -0
  539. package/sensor/dist/ui-server/api/source.d.ts +200 -0
  540. package/sensor/dist/ui-server/api/source.d.ts.map +1 -0
  541. package/sensor/dist/ui-server/api/source.js +422 -0
  542. package/sensor/dist/ui-server/api/source.js.map +1 -0
  543. package/sensor/dist/ui-server/api/stats.d.ts +27 -0
  544. package/sensor/dist/ui-server/api/stats.d.ts.map +1 -0
  545. package/sensor/dist/ui-server/api/stats.js +164 -0
  546. package/sensor/dist/ui-server/api/stats.js.map +1 -0
  547. package/sensor/dist/ui-server/api/steps.d.ts +274 -0
  548. package/sensor/dist/ui-server/api/steps.d.ts.map +1 -0
  549. package/sensor/dist/ui-server/api/steps.js +1544 -0
  550. package/sensor/dist/ui-server/api/steps.js.map +1 -0
  551. package/sensor/dist/ui-server/api/trail-store.d.ts +142 -0
  552. package/sensor/dist/ui-server/api/trail-store.d.ts.map +1 -0
  553. package/sensor/dist/ui-server/api/trail-store.js +325 -0
  554. package/sensor/dist/ui-server/api/trail-store.js.map +1 -0
  555. package/sensor/dist/ui-server/api/trails.d.ts +163 -0
  556. package/sensor/dist/ui-server/api/trails.d.ts.map +1 -0
  557. package/sensor/dist/ui-server/api/trails.js +369 -0
  558. package/sensor/dist/ui-server/api/trails.js.map +1 -0
  559. package/sensor/dist/ui-server/api/when.d.ts +133 -0
  560. package/sensor/dist/ui-server/api/when.d.ts.map +1 -0
  561. package/sensor/dist/ui-server/api/when.js +275 -0
  562. package/sensor/dist/ui-server/api/when.js.map +1 -0
  563. package/sensor/dist/ui-server/api/wire.d.ts +179 -0
  564. package/sensor/dist/ui-server/api/wire.d.ts.map +1 -0
  565. package/sensor/dist/ui-server/api/wire.js +231 -0
  566. package/sensor/dist/ui-server/api/wire.js.map +1 -0
  567. package/sensor/dist/ui-server/assets.d.ts +40 -0
  568. package/sensor/dist/ui-server/assets.d.ts.map +1 -0
  569. package/sensor/dist/ui-server/assets.js +110 -0
  570. package/sensor/dist/ui-server/assets.js.map +1 -0
  571. package/sensor/dist/ui-server/constants.d.ts +32 -0
  572. package/sensor/dist/ui-server/constants.d.ts.map +1 -0
  573. package/sensor/dist/ui-server/constants.js +35 -0
  574. package/sensor/dist/ui-server/constants.js.map +1 -0
  575. package/sensor/dist/ui-server/highlight/index.d.ts +113 -0
  576. package/sensor/dist/ui-server/highlight/index.d.ts.map +1 -0
  577. package/sensor/dist/ui-server/highlight/index.js +307 -0
  578. package/sensor/dist/ui-server/highlight/index.js.map +1 -0
  579. package/sensor/dist/ui-server/highlight/languages.d.ts +36 -0
  580. package/sensor/dist/ui-server/highlight/languages.d.ts.map +1 -0
  581. package/sensor/dist/ui-server/highlight/languages.js +50 -0
  582. package/sensor/dist/ui-server/highlight/languages.js.map +1 -0
  583. package/sensor/dist/ui-server/index.d.ts +92 -0
  584. package/sensor/dist/ui-server/index.d.ts.map +1 -0
  585. package/sensor/dist/ui-server/index.js +399 -0
  586. package/sensor/dist/ui-server/index.js.map +1 -0
  587. package/sensor/dist/ui-server/open-browser.d.ts +31 -0
  588. package/sensor/dist/ui-server/open-browser.d.ts.map +1 -0
  589. package/sensor/dist/ui-server/open-browser.js +79 -0
  590. package/sensor/dist/ui-server/open-browser.js.map +1 -0
  591. package/sensor/dist/ui-server/security.d.ts +127 -0
  592. package/sensor/dist/ui-server/security.d.ts.map +1 -0
  593. package/sensor/dist/ui-server/security.js +332 -0
  594. package/sensor/dist/ui-server/security.js.map +1 -0
  595. package/sensor/dist/ui-server/static.d.ts +45 -0
  596. package/sensor/dist/ui-server/static.d.ts.map +1 -0
  597. package/sensor/dist/ui-server/static.js +165 -0
  598. package/sensor/dist/ui-server/static.js.map +1 -0
  599. package/sensor/dist/utils.d.ts +14 -2
  600. package/sensor/dist/utils.d.ts.map +1 -1
  601. package/sensor/dist/utils.js +25 -10
  602. package/sensor/dist/utils.js.map +1 -1
  603. package/src/cli-help.mjs +4 -2
  604. package/src/sensor-adapter.mjs +5 -1
  605. package/src/todo-cli.mjs +88 -11
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ /**
3
+ * SvelteKit — pages are directories, navigation is a string.
4
+ *
5
+ * `frameworks/svelte.ts` already reads the route table out of the file tree:
6
+ * `src/routes/article/[slug]/+page.svelte` is `/article/:slug`,
7
+ * `[[optional]]` is `:optional?` and `[...rest]` is `*rest`. This file is the
8
+ * navigation half — without it a SvelteKit project's screens are drawn as
9
+ * islands and the Screens tab stays hidden, because it is a picture of
10
+ * `navigates` edges and there were none.
11
+ *
12
+ * Two calls carry a user from one page to another, and they do not agree on
13
+ * where the path goes:
14
+ *
15
+ * goto('/login') // $app/navigation, in the browser
16
+ * redirect(303, '/article/' + slug) // @sveltejs/kit, from a load or an action
17
+ *
18
+ * `redirect` takes the status FIRST, so the destination is its second
19
+ * argument — the one difference from every other framework here. Both are
20
+ * read with the Expo Router readers (a string, a template with holes, a
21
+ * conditional whose arms agree, a local `const href = …`) and matched against
22
+ * this framework's own routes. `<a href="/login">` is markup rather than a
23
+ * call, so a synthesizer reads it (`sveltekit-link-synthesizer.ts`).
24
+ *
25
+ * Only `+page.svelte` is a screen. `+layout.svelte` and `+error.svelte` sit at
26
+ * the same path and would be a second screen for one URL; `+server.ts` is an
27
+ * endpoint, not a page. A computed destination, a path no page serves, and an
28
+ * external URL are left unresolved rather than guessed.
29
+ */
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ exports.svelteKitRouterResolver = void 0;
32
+ exports.svelteKitTable = svelteKitTable;
33
+ exports.svelteKitHrefArgument = svelteKitHrefArgument;
34
+ const package_deps_1 = require("./package-deps");
35
+ const expo_router_1 = require("./expo-router");
36
+ const nextjs_1 = require("./nextjs");
37
+ const NAV_LANGUAGES = ['typescript', 'javascript', 'svelte'];
38
+ /** True for a page route node `frameworks/svelte.ts` emitted, and no other. */
39
+ function isSvelteKitPage(node) {
40
+ return (node.language === 'svelte' &&
41
+ node.filePath.endsWith('/+page.svelte') &&
42
+ node.id === `route:${node.filePath}:${node.name}:1`);
43
+ }
44
+ /** `:id?` — a parameter SvelteKit serves the route with or without. */
45
+ function isOptionalParam(seg) {
46
+ return seg.startsWith(':') && seg.endsWith('?');
47
+ }
48
+ const tables = new WeakMap();
49
+ function svelteKitTable(context) {
50
+ const all = context.getNodesByKind('route');
51
+ const cached = tables.get(context);
52
+ if (cached && cached.source === all)
53
+ return cached;
54
+ const byRoot = new Map();
55
+ const shortened = [];
56
+ const tableAt = (root) => {
57
+ let t = byRoot.get(root);
58
+ if (!t)
59
+ byRoot.set(root, (t = { source: all, exact: new Map(), dynamic: [] }));
60
+ return t;
61
+ };
62
+ for (const node of all) {
63
+ if (!isSvelteKitPage(node))
64
+ continue;
65
+ // `[...rest]` becomes `*rest`, which matches anything — never an answer.
66
+ if (!node.name.startsWith('/') || node.name.includes('*'))
67
+ continue;
68
+ const root = (0, expo_router_1.appRootFor)(node.filePath);
69
+ (0, expo_router_1.addRouteTo)(tableAt(root), node.name, node);
70
+ // `[[optional]]` is `:x?`: the route serves the path with and without it.
71
+ let segs = node.name.split('/').slice(1);
72
+ while (segs.length > 1 && isOptionalParam(segs[segs.length - 1])) {
73
+ segs = segs.slice(0, -1);
74
+ shortened.push({ root, path: '/' + segs.join('/'), node });
75
+ }
76
+ }
77
+ for (const s of shortened) {
78
+ const t = byRoot.get(s.root);
79
+ if (t && !t.exact.has(s.path))
80
+ (0, expo_router_1.addRouteTo)(t, s.path, s.node);
81
+ }
82
+ const table = { source: all, byRoot };
83
+ tables.set(context, table);
84
+ return table;
85
+ }
86
+ // =============================================================================
87
+ // Navigation calls
88
+ // =============================================================================
89
+ /** `goto('/x')` in the browser; `redirect(303, '/x')` from a load or an action. */
90
+ const NAV_CALL = /^(goto|redirect)$/;
91
+ /** Which argument of a navigation call is the destination — `redirect` puts the status first. */
92
+ function svelteKitHrefArgument(name) {
93
+ if (name === 'goto')
94
+ return 0;
95
+ if (name === 'redirect')
96
+ return 1;
97
+ return null;
98
+ }
99
+ // =============================================================================
100
+ // The resolver
101
+ // =============================================================================
102
+ exports.svelteKitRouterResolver = {
103
+ name: 'sveltekit-router',
104
+ languages: [...NAV_LANGUAGES],
105
+ detect(context) {
106
+ return (0, package_deps_1.dependsOn)(context, '@sveltejs/kit');
107
+ },
108
+ claimsReference(name) {
109
+ return NAV_CALL.test(name);
110
+ },
111
+ resolve(ref, context) {
112
+ // `import { redirect } from '@sveltejs/kit'` is not a navigation.
113
+ if (ref.referenceKind !== 'calls')
114
+ return null;
115
+ const argIndex = svelteKitHrefArgument(ref.referenceName);
116
+ if (argIndex === null)
117
+ return null;
118
+ if (!NAV_LANGUAGES.includes(ref.language))
119
+ return null;
120
+ const routes = (0, expo_router_1.routesForFile)(svelteKitTable(context), ref.filePath);
121
+ if (!routes || routes.exact.size === 0)
122
+ return null;
123
+ const lines = context.getFileLines?.(ref.filePath) ?? context.readFile(ref.filePath)?.split(/\r?\n/) ?? null;
124
+ if (!lines)
125
+ return null;
126
+ const arg = (0, expo_router_1.nthArgumentText)(lines, ref.line, ref.column, ref.referenceName, argIndex);
127
+ if (arg === null)
128
+ return null;
129
+ let href = (0, expo_router_1.parseHrefExpression)(arg);
130
+ if (!href && argIndex === 0) {
131
+ const enclosing = context.getNodeById?.(ref.fromNodeId);
132
+ const start = enclosing && enclosing.filePath === ref.filePath ? enclosing.startLine : Math.max(1, ref.line - 40);
133
+ href = (0, expo_router_1.readHrefViaLocal)(lines, ref.line, ref.column, ref.referenceName, start);
134
+ }
135
+ if (!href)
136
+ return null;
137
+ // Every arm of a conditional destination is somewhere this call goes; the
138
+ // first is this reference's resolution and the rest ride as `alsoTargets`.
139
+ const targets = (0, nextjs_1.destinationsForHref)(href, routes);
140
+ const target = targets[0];
141
+ if (!target)
142
+ return null;
143
+ return {
144
+ original: ref,
145
+ targetNodeId: target.node.id,
146
+ ...(targets.length > 1
147
+ ? { alsoTargets: targets.slice(1).map((t) => ({ targetNodeId: t.node.id, metadata: { href: t.href.display, navMethod: ref.referenceName } })) }
148
+ : {}),
149
+ confidence: 0.95,
150
+ resolvedBy: 'framework',
151
+ edgeKind: 'navigates',
152
+ metadata: { href: target.href.display, navMethod: ref.referenceName },
153
+ };
154
+ },
155
+ };
156
+ //# sourceMappingURL=sveltekit-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sveltekit-router.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/sveltekit-router.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/swift.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAG5F,eAAO,MAAM,eAAe,EAAE,iBA2H7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBAmI3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBA6I3B,CAAC"}
1
+ {"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/swift.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAiD,MAAM,UAAU,CAAC;AAO5F,eAAO,MAAM,eAAe,EAAE,iBAoE7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBA6E3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,iBA2K3B,CAAC"}
@@ -7,6 +7,10 @@
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.vaporResolver = exports.uikitResolver = exports.swiftUIResolver = void 0;
9
9
  const strip_comments_1 = require("../strip-comments");
10
+ // No extract(): a SwiftUI view is its own struct node, and a UIKit controller
11
+ // its class. A one-line `component`/`class` twin per `struct X: View` (and per
12
+ // `@main` app, view controller and UIView subclass) carried no edges and
13
+ // showed up in search and the symbol view as a dead-end duplicate.
10
14
  exports.swiftUIResolver = {
11
15
  name: 'swiftui',
12
16
  languages: ['swift'],
@@ -68,54 +72,6 @@ exports.swiftUIResolver = {
68
72
  }
69
73
  return null;
70
74
  },
71
- extract(filePath, content) {
72
- if (!filePath.endsWith('.swift'))
73
- return { nodes: [], references: [] };
74
- const nodes = [];
75
- const now = Date.now();
76
- const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'swift');
77
- // Extract SwiftUI View structs
78
- // struct ContentView: View { ... }
79
- const viewPattern = /struct\s+(\w+)\s*:\s*(?:\w+\s*,\s*)*View/g;
80
- let match;
81
- while ((match = viewPattern.exec(safe)) !== null) {
82
- const [, viewName] = match;
83
- const line = safe.slice(0, match.index).split('\n').length;
84
- nodes.push({
85
- id: `view:${filePath}:${viewName}:${line}`,
86
- kind: 'component',
87
- name: viewName,
88
- qualifiedName: `${filePath}::${viewName}`,
89
- filePath,
90
- startLine: line,
91
- endLine: line,
92
- startColumn: 0,
93
- endColumn: match[0].length,
94
- language: 'swift',
95
- updatedAt: now,
96
- });
97
- }
98
- // Extract @main App entry point
99
- const appPattern = /@main\s+struct\s+(\w+)\s*:\s*App/g;
100
- while ((match = appPattern.exec(safe)) !== null) {
101
- const [, appName] = match;
102
- const line = safe.slice(0, match.index).split('\n').length;
103
- nodes.push({
104
- id: `app:${filePath}:${appName}:${line}`,
105
- kind: 'class',
106
- name: appName,
107
- qualifiedName: `${filePath}::${appName}`,
108
- filePath,
109
- startLine: line,
110
- endLine: line,
111
- startColumn: 0,
112
- endColumn: match[0].length,
113
- language: 'swift',
114
- updatedAt: now,
115
- });
116
- }
117
- return { nodes, references: [] };
118
- },
119
75
  };
120
76
  exports.uikitResolver = {
121
77
  name: 'uikit',
@@ -185,53 +141,6 @@ exports.uikitResolver = {
185
141
  }
186
142
  return null;
187
143
  },
188
- extract(filePath, content) {
189
- if (!filePath.endsWith('.swift'))
190
- return { nodes: [], references: [] };
191
- const nodes = [];
192
- const now = Date.now();
193
- const safe = (0, strip_comments_1.stripCommentsForRegex)(content, 'swift');
194
- // Extract UIViewController subclasses
195
- const vcPattern = /class\s+(\w+)\s*:\s*(?:\w+\s*,\s*)*UIViewController/g;
196
- let match;
197
- while ((match = vcPattern.exec(safe)) !== null) {
198
- const [, vcName] = match;
199
- const line = safe.slice(0, match.index).split('\n').length;
200
- nodes.push({
201
- id: `viewcontroller:${filePath}:${vcName}:${line}`,
202
- kind: 'class',
203
- name: vcName,
204
- qualifiedName: `${filePath}::${vcName}`,
205
- filePath,
206
- startLine: line,
207
- endLine: line,
208
- startColumn: 0,
209
- endColumn: match[0].length,
210
- language: 'swift',
211
- updatedAt: now,
212
- });
213
- }
214
- // Extract UIView subclasses
215
- const viewPattern = /class\s+(\w+)\s*:\s*(?:\w+\s*,\s*)*UIView[^C]/g;
216
- while ((match = viewPattern.exec(safe)) !== null) {
217
- const [, viewName] = match;
218
- const line = safe.slice(0, match.index).split('\n').length;
219
- nodes.push({
220
- id: `uiview:${filePath}:${viewName}:${line}`,
221
- kind: 'class',
222
- name: viewName,
223
- qualifiedName: `${filePath}::${viewName}`,
224
- filePath,
225
- startLine: line,
226
- endLine: line,
227
- startColumn: 0,
228
- endColumn: match[0].length,
229
- language: 'swift',
230
- updatedAt: now,
231
- });
232
- }
233
- return { nodes, references: [] };
234
- },
235
144
  };
236
145
  exports.vaporResolver = {
237
146
  name: 'vapor',
@@ -254,7 +163,23 @@ exports.vaporResolver = {
254
163
  }
255
164
  return false;
256
165
  },
166
+ // A route's handler ref (`SearchController@show`, `@index`) names no declared
167
+ // symbol, so resolveOne's pre-filter would drop it before resolve() runs.
168
+ claimsReference(name) {
169
+ return VAPOR_HANDLER.test(name);
170
+ },
257
171
  resolve(ref, context) {
172
+ // Pattern 0: a route's handler — `use: SearchController.show` arrives as
173
+ // `SearchController@show`, `use: self.index` / `use: index` as `@index`.
174
+ // Resolved on the type the route names, never by the method's name alone:
175
+ // every controller has a `show`. No match, or two, is left unresolved.
176
+ const handler = VAPOR_HANDLER.exec(ref.referenceName);
177
+ if (handler) {
178
+ if (ref.language !== 'swift')
179
+ return null;
180
+ const target = resolveVaporHandler(handler[1] ?? null, handler[2], ref, context);
181
+ return target ? { original: ref, targetNodeId: target, confidence: 0.9, resolvedBy: 'framework' } : null;
182
+ }
258
183
  // Pattern 1: Controller references
259
184
  if (ref.referenceName.endsWith('Controller')) {
260
185
  const result = resolveByNameAndKind(ref.referenceName, VAPOR_CONTROLLER_KINDS, VAPOR_CONTROLLER_DIRS, context);
@@ -325,7 +250,22 @@ exports.vaporResolver = {
325
250
  // (`BlogUser.parameter`, `:id`, a path constant) so accept any comma-separated
326
251
  // args before `use:` — the label keeps only the string parts. `use:`
327
252
  // discriminates a real route from Environment.get("X")/req.parameters.get("X").
328
- const routeRegex = /\b(\w+)\.(get|post|put|patch|delete|head|options)\s*\(\s*((?:[^,()]+,\s*)*)use:\s*([A-Za-z_][\w.]*)/g;
253
+ // Each arg repetition must end at a comma, and `,` is outside the char class,
254
+ // so the split is unique and matching stays linear. The earlier
255
+ // `(?:[^,()]+,\s*)*` was ambiguous — the trailing `\s*` and the next
256
+ // iteration's `[^,()]+` could both claim the same spaces — which backtracked
257
+ // exponentially on a long arg list that never reaches `use:`.
258
+ // The tail is `\s*` rather than a lazy `[^,()]*?` on purpose: both are
259
+ // linear, but the lazy form drops the "`use:` is preceded by a comma"
260
+ // requirement and widens the match set — `req.get(foo.use: bar)` would then
261
+ // be indexed as a route (groups `["req","get","foo.","bar"]`) where both
262
+ // this pattern and the original match nothing.
263
+ const routeRegex = /\b(\w+)\.(get|post|put|patch|delete|head|options)\s*\(\s*((?:[^,()]+,)*\s*)use:\s*([A-Za-z_][\w.]*)/g;
264
+ // `let todos = TodoController()` — what a `use: todos.index` receiver is.
265
+ const receiverTypes = new Map();
266
+ const receiverRegex = /\b(?:let|var)\s+([a-z_]\w*)\s*(?::\s*([A-Z]\w*)\s*)?=\s*([A-Z][\w.]*)\s*\(/g;
267
+ while ((gm = receiverRegex.exec(safe)) !== null)
268
+ receiverTypes.set(gm[1], gm[2] ?? gm[3]);
329
269
  let match;
330
270
  while ((match = routeRegex.exec(safe)) !== null) {
331
271
  const [, receiver, method, segsStr, handlerExpr] = match;
@@ -346,8 +286,7 @@ exports.vaporResolver = {
346
286
  updatedAt: now,
347
287
  };
348
288
  nodes.push(routeNode);
349
- // Last segment of a dotted handler (self.list / UserController.list -> list)
350
- const handlerName = handlerExpr.split('.').pop();
289
+ const handlerName = vaporHandlerRef(handlerExpr, receiverTypes);
351
290
  if (handlerName) {
352
291
  references.push({
353
292
  fromNodeId: routeNode.id,
@@ -373,7 +312,109 @@ const CELL_DIRS = ['/Cells/', '/Cell/', '/Views/', '/TableViewCells/', '/Collect
373
312
  const VAPOR_CONTROLLER_DIRS = ['/Controllers/', '/Controller/', '/Routes/'];
374
313
  const FLUENT_MODEL_DIRS = ['/Models/', '/Model/', '/Entities/', '/Database/'];
375
314
  const VAPOR_MIDDLEWARE_DIRS = ['/Middleware/', '/Middlewares/'];
376
- const VIEW_KINDS = new Set(['struct', 'component']);
315
+ /** A Vapor route's handler ref: `Type@method` (the type may be dotted), or `@method`. */
316
+ const VAPOR_HANDLER = /^((?:[A-Za-z_]\w*\.)*[A-Za-z_]\w*)?@([A-Za-z_]\w*)$/;
317
+ /**
318
+ * The handler ref for `use: <expr>`, keeping the type the method is on:
319
+ * `API.PackageController.get` → `API.PackageController@get`; `self.index` and
320
+ * a bare `index` → `@index` (the type the route is written in); `todos.index`
321
+ * → the type `todos` was made from, when the file says.
322
+ */
323
+ function vaporHandlerRef(expr, receiverTypes) {
324
+ const segs = expr.split('.').filter((s) => s.length > 0);
325
+ const method = segs.pop();
326
+ if (!method)
327
+ return null;
328
+ if (segs[0] === 'self' || segs[0] === 'Self')
329
+ segs.shift();
330
+ if (segs.length === 0)
331
+ return `@${method}`;
332
+ if (/^[A-Z]/.test(segs[0]))
333
+ return `${segs.join('.')}@${method}`;
334
+ const type = segs.length === 1 ? receiverTypes.get(segs[0]) : undefined;
335
+ return type ? `${type}@${method}` : `@${method}`;
336
+ }
337
+ /**
338
+ * One type's method among `candidates`, or null when they belong to different
339
+ * types. Of a type's overloads, the one declared to take a `Request` — what
340
+ * Vapor calls a handler with — else the earliest.
341
+ */
342
+ function oneOwnersMethod(candidates, ownerOf, context) {
343
+ if (candidates.length === 0)
344
+ return null;
345
+ if (new Set(candidates.map(ownerOf)).size > 1)
346
+ return null;
347
+ const earliest = (nodes) => nodes.reduce((a, b) => (a.startLine <= b.startLine ? a : b)).id;
348
+ if (candidates.length === 1)
349
+ return candidates[0].id;
350
+ const takesRequest = candidates.filter((n) => {
351
+ const lines = context.readFile(n.filePath)?.split(/\r?\n/) ?? [];
352
+ const head = lines.slice(n.startLine - 1, Math.min(n.endLine, n.startLine + 2)).join(' ');
353
+ return /\(\s*(?:\w+\s+)?\w+\s*:\s*Request\b/.test(head);
354
+ });
355
+ return earliest(takesRequest.length > 0 ? takesRequest : candidates);
356
+ }
357
+ function resolveVaporHandler(typePath, method, ref, context) {
358
+ const callables = context
359
+ .getNodesByName(method)
360
+ .filter((n) => (n.kind === 'method' || n.kind === 'function') && n.language === 'swift');
361
+ if (callables.length === 0)
362
+ return null;
363
+ const ownerOf = (n) => n.qualifiedName.slice(0, Math.max(0, n.qualifiedName.length - method.length - 2));
364
+ if (typePath === null) {
365
+ // `use: self.index` / `use: index`: the type whose body holds the route —
366
+ // its own method in this file, else one declared in another extension of it.
367
+ const owner = context
368
+ .getNodesInFile(ref.filePath)
369
+ .filter((n) => SWIFT_TYPE_KINDS.has(n.kind) && n.startLine <= ref.line && n.endLine >= ref.line)
370
+ .reduce((inner, n) => (!inner || n.startLine >= inner.startLine ? n : inner), null);
371
+ if (!owner) {
372
+ // A route in a top-level `func routes(_ app:)` names a function in scope.
373
+ const functions = callables.filter((n) => n.kind === 'function');
374
+ const sameFile = functions.filter((n) => n.filePath === ref.filePath);
375
+ if (sameFile.length > 0)
376
+ return oneOwnersMethod(sameFile, ownerOf, context);
377
+ return functions.length === 1 ? functions[0].id : null;
378
+ }
379
+ const own = callables.filter((n) => n.filePath === ref.filePath && n.startLine >= owner.startLine && n.endLine <= owner.endLine);
380
+ if (own.length > 0)
381
+ return oneOwnersMethod(own, ownerOf, context);
382
+ typePath = owner.qualifiedName.replace(/::/g, '.');
383
+ }
384
+ const segs = typePath.split('.');
385
+ const type = segs[segs.length - 1];
386
+ const full = segs.join('::');
387
+ const exact = callables.filter((n) => ownerOf(n) === full);
388
+ if (exact.length > 0)
389
+ return oneOwnersMethod(exact, ownerOf, context);
390
+ const nested = callables.filter((n) => ownerOf(n).endsWith(`::${full}`));
391
+ if (nested.length > 0)
392
+ return oneOwnersMethod(nested, ownerOf, context);
393
+ if (segs.length > 1) {
394
+ // `extension API.PackageController { static func get }` names its node by
395
+ // the last segment (`PackageController::get`) — the same QN a top-level
396
+ // `PackageController`'s method has, so the extension's own line decides.
397
+ const declared = new RegExp(String.raw `\bextension\s+${segs.join(String.raw `\s*\.\s*`)}\b`);
398
+ const inExtension = callables.filter((n) => {
399
+ if (ownerOf(n) !== type)
400
+ return false;
401
+ const owner = context
402
+ .getNodesInFile(n.filePath)
403
+ .filter((o) => SWIFT_TYPE_KINDS.has(o.kind) && o.name === type && o.startLine <= n.startLine && o.endLine >= n.endLine)
404
+ .reduce((inner, o) => (!inner || o.startLine >= inner.startLine ? o : inner), null);
405
+ if (!owner)
406
+ return false;
407
+ // The node starts at its attributes (`@available(…)`), the keyword a line or two on.
408
+ const head = (context.readFile(n.filePath)?.split(/\r?\n/) ?? []).slice(owner.startLine - 1, owner.startLine + 2).join(' ');
409
+ return declared.test(head);
410
+ });
411
+ return oneOwnersMethod(inExtension, ownerOf, context);
412
+ }
413
+ // A type named without the namespace it is nested in — only when one type fits.
414
+ return oneOwnersMethod(callables.filter((n) => ownerOf(n).endsWith(`::${type}`)), ownerOf, context);
415
+ }
416
+ const SWIFT_TYPE_KINDS = new Set(['class', 'struct', 'enum', 'protocol']);
417
+ const VIEW_KINDS = new Set(['struct']);
377
418
  const CLASS_KINDS = new Set(['class']);
378
419
  const MODEL_KINDS = new Set(['struct', 'class']);
379
420
  const PROTOCOL_KINDS = new Set(['protocol']);
@@ -1 +1 @@
1
- {"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/swift.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../src/resolution/frameworks/swift.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,sDAA0D;AAE1D,8EAA8E;AAC9E,+EAA+E;AAC/E,yEAAyE;AACzE,mEAAmE;AACtD,QAAA,eAAe,GAAsB;IAChD,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,CAAC,OAAO,CAAC;IAEpB,MAAM,CAAC,OAA0B;QAC/B,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAClD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAkB,EAAE,OAA0B;QACpD,2EAA2E;QAC3E,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3E,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACvF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5H,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;YAC7F,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YACzF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEW,QAAA,aAAa,GAAsB;IAC9C,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,CAAC,OAAO,CAAC;IAEpB,MAAM,CAAC,OAA0B;QAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,OAAO,IAAI,CACb,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;oBAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;oBACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAC3B,EAAE,CAAC;oBACF,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAkB,EAAE,OAA0B;QACpD,uCAAuC;QACvC,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACtF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxF,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC1F,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACxF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvF,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YACpF,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC;AAEW,QAAA,aAAa,GAAsB;IAC9C,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,CAAC,OAAO,CAAC;IAEpB,MAAM,CAAC,OAA0B;QAC/B,gDAAgD;QAChD,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QACvD,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAChD,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8EAA8E;IAC9E,0EAA0E;IAC1E,eAAe,CAAC,IAAY;QAC1B,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,GAAkB,EAAE,OAA0B;QACpD,yEAAyE;QACzE,yEAAyE;QACzE,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACtD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1C,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAClF,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3G,CAAC;QAED,mCAAmC;QACnC,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;YAC/G,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,uCAAuC;QACvC,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAChG,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,IAAI;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,aAAa,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;YAC/G,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,QAAQ,EAAE,GAAG;oBACb,YAAY,EAAE,MAAM;oBACpB,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,WAAW;iBACxB,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,OAAO;QACvB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACvE,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAA,sCAAqB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAErD,2EAA2E;QAC3E,gFAAgF;QAChF,8EAA8E;QAC9E,gFAAgF;QAChF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAU,EAAE;YAC5D,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,OAAO,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC;QACF,IAAI,EAA0B,CAAC;QAC/B,8BAA8B;QAC9B,MAAM,YAAY,GAAG,mDAAmD,CAAC;QACzE,OAAO,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC/C,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,4BAA4B;QAC5B,MAAM,iBAAiB,GAAG,iDAAiD,CAAC;QAC5E,OAAO,CAAC,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACpD,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,yEAAyE;QACzE,0EAA0E;QAC1E,+EAA+E;QAC/E,qEAAqE;QACrE,gFAAgF;QAChF,8EAA8E;QAC9E,gEAAgE;QAChE,qEAAqE;QACrE,6EAA6E;QAC7E,8DAA8D;QAC9D,uEAAuE;QACvE,sEAAsE;QACtE,4EAA4E;QAC5E,yEAAyE;QACzE,+CAA+C;QAC/C,MAAM,UAAU,GAAG,sGAAsG,CAAC;QAC1H,0EAA0E;QAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,MAAM,aAAa,GAAG,6EAA6E,CAAC;QACpG,OAAO,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC;QAC5F,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC;YACzD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAO,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAS,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,OAAQ,CAAC,IAAI,GAAG,CAAC;YAEpF,MAAM,SAAS,GAAS;gBACtB,EAAE,EAAE,SAAS,QAAQ,IAAI,IAAI,IAAI,KAAK,IAAI,SAAS,EAAE;gBACrD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,GAAG,KAAK,IAAI,SAAS,EAAE;gBAC7B,aAAa,EAAE,GAAG,QAAQ,WAAW,SAAS,EAAE;gBAChD,QAAQ;gBACR,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC1B,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,GAAG;aACf,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtB,MAAM,WAAW,GAAG,eAAe,CAAC,WAAY,EAAE,aAAa,CAAC,CAAC;YACjE,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,CAAC,IAAI,CAAC;oBACd,UAAU,EAAE,SAAS,CAAC,EAAE;oBACxB,aAAa,EAAE,WAAW;oBAC1B,aAAa,EAAE,YAAY;oBAC3B,IAAI;oBACJ,MAAM,EAAE,CAAC;oBACT,QAAQ;oBACR,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC/B,CAAC;CACF,CAAC;AAEF,qBAAqB;AACrB,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAC7E,MAAM,cAAc,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAC/F,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AACrE,MAAM,OAAO,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AACxF,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;AAClE,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;AAChG,MAAM,qBAAqB,GAAG,CAAC,eAAe,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;AAC5E,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AAC9E,MAAM,qBAAqB,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AAEhE,yFAAyF;AACzF,MAAM,aAAa,GAAG,qDAAqD,CAAC;AAE5E;;;;;GAKG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,aAA0C;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,MAAM,EAAE,CAAC;IAC3C,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,UAAkB,EAAE,OAA4B,EAAE,OAA0B;IACnG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpG,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;IACtD,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1F,OAAO,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAuB,EAAE,MAAc,EAAE,GAAkB,EAAE,OAA0B;IAClH,MAAM,SAAS,GAAG,OAAO;SACtB,cAAc,CAAC,MAAM,CAAC;SACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC3F,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,CAAC,CAAO,EAAU,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAEvH,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,0EAA0E;QAC1E,6EAA6E;QAC7E,MAAM,KAAK,GAAG,OAAO;aAClB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC;aAC/F,MAAM,CAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QACnG,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,0EAA0E;YAC1E,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5E,OAAO,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,CAAC;QACD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CACnG,CAAC;QACF,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAClE,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACzE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,0EAA0E;QAC1E,wEAAwE;QACxE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,iBAAiB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5F,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACtC,MAAM,KAAK,GAAG,OAAO;iBAClB,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;iBACtH,MAAM,CAAc,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YACnG,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YACzB,qFAAqF;YACrF,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5H,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,gFAAgF;IAChF,OAAO,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACtG,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAE1E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACvC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AACjD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE5D;;GAEG;AACH,SAAS,oBAAoB,CAC3B,IAAY,EACZ,KAAkB,EAClB,oBAA8B,EAC9B,OAA0B;IAE1B,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,0DAA0D;IAC1D,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1C,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACzD,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,yBAAyB;IACzB,OAAO,YAAY,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * TanStack Router — the path is a literal, and so is the destination.
3
+ *
4
+ * Routes are declared two ways, and this reads both:
5
+ *
6
+ * // file-based (the plugin's default): the full path is the argument
7
+ * export const Route = createFileRoute('/dashboard/invoices/$invoiceId')({
8
+ * component: InvoiceComponent,
9
+ * })
10
+ *
11
+ * // code-based: a path per route, composed through its parent
12
+ * const postsRoute = createRoute({ getParentRoute: () => rootRoute, path: 'posts' })
13
+ * const postRoute = createRoute({ getParentRoute: () => postsRoute, path: '$postId' })
14
+ *
15
+ * Three things are TanStack's own, and each one decides whether the picture is
16
+ * right:
17
+ *
18
+ * 1. **A parameter is `$id`, not `:id`.** Route names are normalised to the
19
+ * `:id` every other framework here uses, so one matcher serves them all.
20
+ * 2. **`to` is the route PATTERN, not a filled URL.** `<Link to="/posts/$postId"
21
+ * params={{ postId }}>` names the route and passes the values beside it —
22
+ * where React Router would write `/posts/5`. So a destination is normalised
23
+ * the same way a route name is, and then matches it exactly.
24
+ * 3. **A destination is an object.** `navigate({ to: '/' })`,
25
+ * `throw redirect({ to: '/login' })` — the path is under a `to` key, and a
26
+ * `navigate({ search: … })` with no `to` stays on the page it is on.
27
+ *
28
+ * Not every route file is a page. A segment written `_auth` is a pathless
29
+ * layout — it does not appear in the URL, and the file that declares it renders
30
+ * an outlet rather than a screen; a `(group)` segment is likewise invisible; a
31
+ * `dashboard.route.tsx` is the layout for the `/dashboard` subtree while
32
+ * `dashboard.index.tsx` — whose literal carries a trailing slash — is the page
33
+ * AT `/dashboard`. Drawing both would put one address on the map twice.
34
+ *
35
+ * Left unresolved rather than guessed: a computed `to`, a path no route serves,
36
+ * and a code-based route whose parent is declared in another file (the chain is
37
+ * composed within a file, which is where a route tree is written).
38
+ */
39
+ import type { FrameworkResolver, ResolutionContext } from '../types';
40
+ import { type HrefLiteral, type RootedRouteTable } from './expo-router';
41
+ /**
42
+ * A TanStack path in the form every other framework's routes take.
43
+ *
44
+ * `$invoiceId` is `:invoiceId` and a bare `$` is a splat; a `_auth` segment is
45
+ * a pathless layout and a `(group)` segment is a route group, neither of which
46
+ * appears in the URL; a trailing `_` un-nests without changing the segment.
47
+ * Returns null for a path that names no address at all.
48
+ */
49
+ export declare function tanstackPath(raw: string): string | null;
50
+ export interface TanstackRouteEntry {
51
+ /** `/dashboard/invoices/:invoiceId` — normalised the way the table wants it. */
52
+ path: string;
53
+ /** The component the route renders, when it names one. */
54
+ component: string | null;
55
+ /** True for the index route AT an address, which outranks the layout that wraps it. */
56
+ index: boolean;
57
+ /** True when the route came from `createFileRoute` — one route per file, so the file's own shape describes it. */
58
+ fileBased: boolean;
59
+ line: number;
60
+ }
61
+ /**
62
+ * Every route a file declares, file-based and code-based alike.
63
+ *
64
+ * A code-based route's own `path` is a fragment (`posts`, `$postId`, `/`), so
65
+ * the chain of `getParentRoute: () => parent` is followed to compose the full
66
+ * address — within the file, which is where a route tree is written. A route
67
+ * that is another route's parent is the layout for that subtree, and the
68
+ * address belongs to the index route under it.
69
+ */
70
+ export declare function parseTanstackRoutes(content: string): TanstackRouteEntry[];
71
+ export type TanstackTable = RootedRouteTable;
72
+ export declare function tanstackTable(context: ResolutionContext): TanstackTable;
73
+ /** The verb a navigation call name stands for, or null. */
74
+ export declare function tanstackNavVerb(name: string): string | null;
75
+ /**
76
+ * The destination in a TanStack navigation: `{ to: '/posts/$postId' }`.
77
+ *
78
+ * `to` is the route pattern, so it is normalised exactly as a route name is
79
+ * and then names that route. A `navigate({ search: … })` with no `to` is a
80
+ * change of search parameters on the page the user is already on.
81
+ */
82
+ export declare function tanstackDestination(expr: string): HrefLiteral | null;
83
+ export declare const tanstackRouterResolver: FrameworkResolver;
84
+ //# sourceMappingURL=tanstack-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tanstack-router.d.ts","sourceRoot":"","sources":["../../../src/resolution/frameworks/tanstack-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,KAAK,EAEV,iBAAiB,EACjB,iBAAiB,EAGlB,MAAM,UAAU,CAAC;AAIlB,OAAO,EASL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AASvB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAevD;AAgDD,MAAM,WAAW,kBAAkB;IACjC,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uFAAuF;IACvF,KAAK,EAAE,OAAO,CAAC;IACf,kHAAkH;IAClH,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAKD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAsEzE;AA2DD,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAS7C,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAevE;AASD,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAMpE;AAcD,eAAO,MAAM,sBAAsB,EAAE,iBA2GpC,CAAC"}