@rangojs/router 0.0.0-experimental.fb6e2f40 → 0.0.0-experimental.fce7fbd1

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 (1060) hide show
  1. package/README.md +120 -25
  2. package/dist/__internal.d.ts +83 -0
  3. package/dist/__internal.d.ts.map +1 -0
  4. package/dist/__internal.js +19 -0
  5. package/dist/__internal.js.map +1 -0
  6. package/dist/__mocks__/version.d.ts +7 -0
  7. package/dist/__mocks__/version.d.ts.map +1 -0
  8. package/dist/__mocks__/version.js +7 -0
  9. package/dist/__mocks__/version.js.map +1 -0
  10. package/dist/__tests__/client-href.test.d.ts +2 -0
  11. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  12. package/dist/__tests__/client-href.test.js +74 -0
  13. package/dist/__tests__/client-href.test.js.map +1 -0
  14. package/dist/__tests__/component-utils.test.d.ts +2 -0
  15. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  16. package/dist/__tests__/component-utils.test.js +51 -0
  17. package/dist/__tests__/component-utils.test.js.map +1 -0
  18. package/dist/__tests__/event-controller.test.d.ts +2 -0
  19. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  20. package/dist/__tests__/event-controller.test.js +538 -0
  21. package/dist/__tests__/event-controller.test.js.map +1 -0
  22. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  24. package/dist/__tests__/helpers/route-tree.js +374 -0
  25. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  26. package/dist/__tests__/match-result.test.d.ts +2 -0
  27. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  28. package/dist/__tests__/match-result.test.js +154 -0
  29. package/dist/__tests__/match-result.test.js.map +1 -0
  30. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  31. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  32. package/dist/__tests__/navigation-store.test.js +440 -0
  33. package/dist/__tests__/navigation-store.test.js.map +1 -0
  34. package/dist/__tests__/partial-update.test.d.ts +2 -0
  35. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  36. package/dist/__tests__/partial-update.test.js +1009 -0
  37. package/dist/__tests__/partial-update.test.js.map +1 -0
  38. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  39. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  40. package/dist/__tests__/reverse-types.test.js +656 -0
  41. package/dist/__tests__/reverse-types.test.js.map +1 -0
  42. package/dist/__tests__/route-definition.test.d.ts +2 -0
  43. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  44. package/dist/__tests__/route-definition.test.js +55 -0
  45. package/dist/__tests__/route-definition.test.js.map +1 -0
  46. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  47. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  48. package/dist/__tests__/router-helpers.test.js +377 -0
  49. package/dist/__tests__/router-helpers.test.js.map +1 -0
  50. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  52. package/dist/__tests__/router-integration-2.test.js +426 -0
  53. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  54. package/dist/__tests__/router-integration.test.d.ts +2 -0
  55. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  56. package/dist/__tests__/router-integration.test.js +1051 -0
  57. package/dist/__tests__/router-integration.test.js.map +1 -0
  58. package/dist/__tests__/search-params.test.d.ts +5 -0
  59. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  60. package/dist/__tests__/search-params.test.js +306 -0
  61. package/dist/__tests__/search-params.test.js.map +1 -0
  62. package/dist/__tests__/segment-system.test.d.ts +2 -0
  63. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  64. package/dist/__tests__/segment-system.test.js +627 -0
  65. package/dist/__tests__/segment-system.test.js.map +1 -0
  66. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  68. package/dist/__tests__/static-handler-types.test.js +63 -0
  69. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  70. package/dist/__tests__/urls.test.d.ts +2 -0
  71. package/dist/__tests__/urls.test.d.ts.map +1 -0
  72. package/dist/__tests__/urls.test.js +421 -0
  73. package/dist/__tests__/urls.test.js.map +1 -0
  74. package/dist/__tests__/use-mount.test.d.ts +2 -0
  75. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  76. package/dist/__tests__/use-mount.test.js +35 -0
  77. package/dist/__tests__/use-mount.test.js.map +1 -0
  78. package/dist/bin/rango.d.ts +2 -0
  79. package/dist/bin/rango.d.ts.map +1 -0
  80. package/dist/bin/rango.js +147 -57
  81. package/dist/bin/rango.js.map +1 -0
  82. package/dist/browser/event-controller.d.ts +191 -0
  83. package/dist/browser/event-controller.d.ts.map +1 -0
  84. package/dist/browser/event-controller.js +559 -0
  85. package/dist/browser/event-controller.js.map +1 -0
  86. package/dist/browser/index.d.ts +2 -0
  87. package/dist/browser/index.d.ts.map +1 -0
  88. package/dist/browser/index.js +14 -0
  89. package/dist/browser/index.js.map +1 -0
  90. package/dist/browser/link-interceptor.d.ts +38 -0
  91. package/dist/browser/link-interceptor.d.ts.map +1 -0
  92. package/dist/browser/link-interceptor.js +99 -0
  93. package/dist/browser/link-interceptor.js.map +1 -0
  94. package/dist/browser/logging.d.ts +10 -0
  95. package/dist/browser/logging.d.ts.map +1 -0
  96. package/dist/browser/logging.js +29 -0
  97. package/dist/browser/logging.js.map +1 -0
  98. package/dist/browser/lru-cache.d.ts +17 -0
  99. package/dist/browser/lru-cache.d.ts.map +1 -0
  100. package/dist/browser/lru-cache.js +50 -0
  101. package/dist/browser/lru-cache.js.map +1 -0
  102. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  103. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  104. package/dist/browser/merge-segment-loaders.js +102 -0
  105. package/dist/browser/merge-segment-loaders.js.map +1 -0
  106. package/dist/browser/navigation-bridge.d.ts +102 -0
  107. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  108. package/dist/browser/navigation-bridge.js +708 -0
  109. package/dist/browser/navigation-bridge.js.map +1 -0
  110. package/dist/browser/navigation-client.d.ts +25 -0
  111. package/dist/browser/navigation-client.d.ts.map +1 -0
  112. package/dist/browser/navigation-client.js +157 -0
  113. package/dist/browser/navigation-client.js.map +1 -0
  114. package/dist/browser/navigation-store.d.ts +101 -0
  115. package/dist/browser/navigation-store.d.ts.map +1 -0
  116. package/dist/browser/navigation-store.js +625 -0
  117. package/dist/browser/navigation-store.js.map +1 -0
  118. package/dist/browser/partial-update.d.ts +75 -0
  119. package/dist/browser/partial-update.d.ts.map +1 -0
  120. package/dist/browser/partial-update.js +426 -0
  121. package/dist/browser/partial-update.js.map +1 -0
  122. package/dist/browser/react/Link.d.ts +86 -0
  123. package/dist/browser/react/Link.d.ts.map +1 -0
  124. package/dist/browser/react/Link.js +128 -0
  125. package/dist/browser/react/Link.js.map +1 -0
  126. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  127. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  128. package/dist/browser/react/NavigationProvider.js +216 -0
  129. package/dist/browser/react/NavigationProvider.js.map +1 -0
  130. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  132. package/dist/browser/react/ScrollRestoration.js +57 -0
  133. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  134. package/dist/browser/react/context.d.ts +46 -0
  135. package/dist/browser/react/context.d.ts.map +1 -0
  136. package/dist/browser/react/context.js +10 -0
  137. package/dist/browser/react/context.js.map +1 -0
  138. package/dist/browser/react/index.d.ts +11 -0
  139. package/dist/browser/react/index.d.ts.map +1 -0
  140. package/dist/browser/react/index.js +22 -0
  141. package/dist/browser/react/index.js.map +1 -0
  142. package/dist/browser/react/location-state-shared.d.ts +63 -0
  143. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  144. package/dist/browser/react/location-state-shared.js +81 -0
  145. package/dist/browser/react/location-state-shared.js.map +1 -0
  146. package/dist/browser/react/location-state.d.ts +23 -0
  147. package/dist/browser/react/location-state.d.ts.map +1 -0
  148. package/dist/browser/react/location-state.js +29 -0
  149. package/dist/browser/react/location-state.js.map +1 -0
  150. package/dist/browser/react/mount-context.d.ts +24 -0
  151. package/dist/browser/react/mount-context.d.ts.map +1 -0
  152. package/dist/browser/react/mount-context.js +24 -0
  153. package/dist/browser/react/mount-context.js.map +1 -0
  154. package/dist/browser/react/use-action.d.ts +64 -0
  155. package/dist/browser/react/use-action.d.ts.map +1 -0
  156. package/dist/browser/react/use-action.js +134 -0
  157. package/dist/browser/react/use-action.js.map +1 -0
  158. package/dist/browser/react/use-client-cache.d.ts +41 -0
  159. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  160. package/dist/browser/react/use-client-cache.js +39 -0
  161. package/dist/browser/react/use-client-cache.js.map +1 -0
  162. package/dist/browser/react/use-handle.d.ts +31 -0
  163. package/dist/browser/react/use-handle.d.ts.map +1 -0
  164. package/dist/browser/react/use-handle.js +144 -0
  165. package/dist/browser/react/use-handle.js.map +1 -0
  166. package/dist/browser/react/use-href.d.ts +33 -0
  167. package/dist/browser/react/use-href.d.ts.map +1 -0
  168. package/dist/browser/react/use-href.js +39 -0
  169. package/dist/browser/react/use-href.js.map +1 -0
  170. package/dist/browser/react/use-link-status.d.ts +37 -0
  171. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  172. package/dist/browser/react/use-link-status.js +99 -0
  173. package/dist/browser/react/use-link-status.js.map +1 -0
  174. package/dist/browser/react/use-mount.d.ts +25 -0
  175. package/dist/browser/react/use-mount.d.ts.map +1 -0
  176. package/dist/browser/react/use-mount.js +30 -0
  177. package/dist/browser/react/use-mount.js.map +1 -0
  178. package/dist/browser/react/use-navigation.d.ts +27 -0
  179. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  180. package/dist/browser/react/use-navigation.js +87 -0
  181. package/dist/browser/react/use-navigation.js.map +1 -0
  182. package/dist/browser/react/use-segments.d.ts +38 -0
  183. package/dist/browser/react/use-segments.d.ts.map +1 -0
  184. package/dist/browser/react/use-segments.js +130 -0
  185. package/dist/browser/react/use-segments.js.map +1 -0
  186. package/dist/browser/request-controller.d.ts +26 -0
  187. package/dist/browser/request-controller.d.ts.map +1 -0
  188. package/dist/browser/request-controller.js +147 -0
  189. package/dist/browser/request-controller.js.map +1 -0
  190. package/dist/browser/rsc-router.d.ts +129 -0
  191. package/dist/browser/rsc-router.d.ts.map +1 -0
  192. package/dist/browser/rsc-router.js +195 -0
  193. package/dist/browser/rsc-router.js.map +1 -0
  194. package/dist/browser/scroll-restoration.d.ts +93 -0
  195. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  196. package/dist/browser/scroll-restoration.js +321 -0
  197. package/dist/browser/scroll-restoration.js.map +1 -0
  198. package/dist/browser/segment-structure-assert.d.ts +17 -0
  199. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  200. package/dist/browser/segment-structure-assert.js +59 -0
  201. package/dist/browser/segment-structure-assert.js.map +1 -0
  202. package/dist/browser/server-action-bridge.d.ts +26 -0
  203. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  204. package/dist/browser/server-action-bridge.js +668 -0
  205. package/dist/browser/server-action-bridge.js.map +1 -0
  206. package/dist/browser/shallow.d.ts +12 -0
  207. package/dist/browser/shallow.d.ts.map +1 -0
  208. package/dist/browser/shallow.js +34 -0
  209. package/dist/browser/shallow.js.map +1 -0
  210. package/dist/browser/types.d.ts +369 -0
  211. package/dist/browser/types.d.ts.map +1 -0
  212. package/dist/browser/types.js +2 -0
  213. package/dist/browser/types.js.map +1 -0
  214. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  216. package/dist/build/__tests__/generate-cli.test.js +237 -0
  217. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  218. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  220. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  221. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  222. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  224. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  225. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  226. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  228. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  230. package/dist/build/generate-manifest.d.ts +81 -0
  231. package/dist/build/generate-manifest.d.ts.map +1 -0
  232. package/dist/build/generate-manifest.js +276 -0
  233. package/dist/build/generate-manifest.js.map +1 -0
  234. package/dist/build/generate-route-types.d.ts +115 -0
  235. package/dist/build/generate-route-types.d.ts.map +1 -0
  236. package/dist/build/generate-route-types.js +740 -0
  237. package/dist/build/generate-route-types.js.map +1 -0
  238. package/dist/build/index.d.ts +21 -0
  239. package/dist/build/index.d.ts.map +1 -0
  240. package/dist/build/index.js +21 -0
  241. package/dist/build/index.js.map +1 -0
  242. package/dist/build/route-trie.d.ts +71 -0
  243. package/dist/build/route-trie.d.ts.map +1 -0
  244. package/dist/build/route-trie.js +175 -0
  245. package/dist/build/route-trie.js.map +1 -0
  246. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  248. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  249. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  250. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  252. package/dist/cache/__tests__/document-cache.test.js +345 -0
  253. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  254. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  258. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  260. package/dist/cache/__tests__/memory-store.test.js +367 -0
  261. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  262. package/dist/cache/cache-scope.d.ts +102 -0
  263. package/dist/cache/cache-scope.d.ts.map +1 -0
  264. package/dist/cache/cache-scope.js +440 -0
  265. package/dist/cache/cache-scope.js.map +1 -0
  266. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  270. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  272. package/dist/cache/cf/cf-cache-store.js +242 -0
  273. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  274. package/dist/cache/cf/index.d.ts +14 -0
  275. package/dist/cache/cf/index.d.ts.map +1 -0
  276. package/dist/cache/cf/index.js +17 -0
  277. package/dist/cache/cf/index.js.map +1 -0
  278. package/dist/cache/document-cache.d.ts +64 -0
  279. package/dist/cache/document-cache.d.ts.map +1 -0
  280. package/dist/cache/document-cache.js +228 -0
  281. package/dist/cache/document-cache.js.map +1 -0
  282. package/dist/cache/index.d.ts +19 -0
  283. package/dist/cache/index.d.ts.map +1 -0
  284. package/dist/cache/index.js +21 -0
  285. package/dist/cache/index.js.map +1 -0
  286. package/dist/cache/memory-segment-store.d.ts +110 -0
  287. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  288. package/dist/cache/memory-segment-store.js +117 -0
  289. package/dist/cache/memory-segment-store.js.map +1 -0
  290. package/dist/cache/memory-store.d.ts +41 -0
  291. package/dist/cache/memory-store.d.ts.map +1 -0
  292. package/dist/cache/memory-store.js +191 -0
  293. package/dist/cache/memory-store.js.map +1 -0
  294. package/dist/cache/types.d.ts +317 -0
  295. package/dist/cache/types.d.ts.map +1 -0
  296. package/dist/cache/types.js +12 -0
  297. package/dist/cache/types.js.map +1 -0
  298. package/dist/client.d.ts +248 -0
  299. package/dist/client.d.ts.map +1 -0
  300. package/dist/client.js +367 -0
  301. package/dist/client.js.map +1 -0
  302. package/dist/client.rsc.d.ts +26 -0
  303. package/dist/client.rsc.d.ts.map +1 -0
  304. package/dist/client.rsc.js +46 -0
  305. package/dist/client.rsc.js.map +1 -0
  306. package/dist/component-utils.d.ts +36 -0
  307. package/dist/component-utils.d.ts.map +1 -0
  308. package/dist/component-utils.js +61 -0
  309. package/dist/component-utils.js.map +1 -0
  310. package/dist/components/DefaultDocument.d.ts +13 -0
  311. package/dist/components/DefaultDocument.d.ts.map +1 -0
  312. package/dist/components/DefaultDocument.js +15 -0
  313. package/dist/components/DefaultDocument.js.map +1 -0
  314. package/dist/debug.d.ts +58 -0
  315. package/dist/debug.d.ts.map +1 -0
  316. package/dist/debug.js +157 -0
  317. package/dist/debug.js.map +1 -0
  318. package/dist/default-error-boundary.d.ts +11 -0
  319. package/dist/default-error-boundary.d.ts.map +1 -0
  320. package/dist/default-error-boundary.js +45 -0
  321. package/dist/default-error-boundary.js.map +1 -0
  322. package/dist/deps/browser.d.ts +2 -0
  323. package/dist/deps/browser.d.ts.map +1 -0
  324. package/dist/deps/browser.js +3 -0
  325. package/dist/deps/browser.js.map +1 -0
  326. package/dist/deps/html-stream-client.d.ts +2 -0
  327. package/dist/deps/html-stream-client.d.ts.map +1 -0
  328. package/dist/deps/html-stream-client.js +3 -0
  329. package/dist/deps/html-stream-client.js.map +1 -0
  330. package/dist/deps/html-stream-server.d.ts +2 -0
  331. package/dist/deps/html-stream-server.d.ts.map +1 -0
  332. package/dist/deps/html-stream-server.js +3 -0
  333. package/dist/deps/html-stream-server.js.map +1 -0
  334. package/dist/deps/rsc.d.ts +2 -0
  335. package/dist/deps/rsc.d.ts.map +1 -0
  336. package/dist/deps/rsc.js +4 -0
  337. package/dist/deps/rsc.js.map +1 -0
  338. package/dist/deps/ssr.d.ts +2 -0
  339. package/dist/deps/ssr.d.ts.map +1 -0
  340. package/dist/deps/ssr.js +3 -0
  341. package/dist/deps/ssr.js.map +1 -0
  342. package/dist/errors.d.ts +174 -0
  343. package/dist/errors.d.ts.map +1 -0
  344. package/dist/errors.js +241 -0
  345. package/dist/errors.js.map +1 -0
  346. package/dist/handle.d.ts +78 -0
  347. package/dist/handle.d.ts.map +1 -0
  348. package/dist/handle.js +82 -0
  349. package/dist/handle.js.map +1 -0
  350. package/dist/handles/MetaTags.d.ts +14 -0
  351. package/dist/handles/MetaTags.d.ts.map +1 -0
  352. package/dist/handles/MetaTags.js +136 -0
  353. package/dist/handles/MetaTags.js.map +1 -0
  354. package/dist/handles/index.d.ts +6 -0
  355. package/dist/handles/index.d.ts.map +1 -0
  356. package/dist/handles/index.js +6 -0
  357. package/dist/handles/index.js.map +1 -0
  358. package/dist/handles/meta.d.ts +39 -0
  359. package/dist/handles/meta.d.ts.map +1 -0
  360. package/dist/handles/meta.js +202 -0
  361. package/dist/handles/meta.js.map +1 -0
  362. package/dist/host/__tests__/errors.test.d.ts +2 -0
  363. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  364. package/dist/host/__tests__/errors.test.js +76 -0
  365. package/dist/host/__tests__/errors.test.js.map +1 -0
  366. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  370. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  372. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  374. package/dist/host/__tests__/router.test.d.ts +2 -0
  375. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  376. package/dist/host/__tests__/router.test.js +241 -0
  377. package/dist/host/__tests__/router.test.js.map +1 -0
  378. package/dist/host/__tests__/testing.test.d.ts +2 -0
  379. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  380. package/dist/host/__tests__/testing.test.js +64 -0
  381. package/dist/host/__tests__/testing.test.js.map +1 -0
  382. package/dist/host/__tests__/utils.test.d.ts +2 -0
  383. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  384. package/dist/host/__tests__/utils.test.js +29 -0
  385. package/dist/host/__tests__/utils.test.js.map +1 -0
  386. package/dist/host/cookie-handler.d.ts +34 -0
  387. package/dist/host/cookie-handler.d.ts.map +1 -0
  388. package/dist/host/cookie-handler.js +124 -0
  389. package/dist/host/cookie-handler.js.map +1 -0
  390. package/dist/host/errors.d.ts +56 -0
  391. package/dist/host/errors.d.ts.map +1 -0
  392. package/dist/host/errors.js +79 -0
  393. package/dist/host/errors.js.map +1 -0
  394. package/dist/host/index.d.ts +29 -0
  395. package/dist/host/index.d.ts.map +1 -0
  396. package/dist/host/index.js +32 -0
  397. package/dist/host/index.js.map +1 -0
  398. package/dist/host/pattern-matcher.d.ts +36 -0
  399. package/dist/host/pattern-matcher.d.ts.map +1 -0
  400. package/dist/host/pattern-matcher.js +172 -0
  401. package/dist/host/pattern-matcher.js.map +1 -0
  402. package/dist/host/router.d.ts +26 -0
  403. package/dist/host/router.d.ts.map +1 -0
  404. package/dist/host/router.js +218 -0
  405. package/dist/host/router.js.map +1 -0
  406. package/dist/host/testing.d.ts +36 -0
  407. package/dist/host/testing.d.ts.map +1 -0
  408. package/dist/host/testing.js +55 -0
  409. package/dist/host/testing.js.map +1 -0
  410. package/dist/host/types.d.ts +115 -0
  411. package/dist/host/types.d.ts.map +1 -0
  412. package/dist/host/types.js +7 -0
  413. package/dist/host/types.js.map +1 -0
  414. package/dist/host/utils.d.ts +21 -0
  415. package/dist/host/utils.d.ts.map +1 -0
  416. package/dist/host/utils.js +23 -0
  417. package/dist/host/utils.js.map +1 -0
  418. package/dist/href-client.d.ts +131 -0
  419. package/dist/href-client.d.ts.map +1 -0
  420. package/dist/href-client.js +64 -0
  421. package/dist/href-client.js.map +1 -0
  422. package/dist/href-context.d.ts +29 -0
  423. package/dist/href-context.d.ts.map +1 -0
  424. package/dist/href-context.js +21 -0
  425. package/dist/href-context.js.map +1 -0
  426. package/dist/index.d.ts +73 -0
  427. package/dist/index.d.ts.map +1 -0
  428. package/dist/index.js +91 -0
  429. package/dist/index.js.map +1 -0
  430. package/dist/index.rsc.d.ts +32 -0
  431. package/dist/index.rsc.d.ts.map +1 -0
  432. package/dist/index.rsc.js +40 -0
  433. package/dist/index.rsc.js.map +1 -0
  434. package/dist/internal-debug.d.ts +2 -0
  435. package/dist/internal-debug.d.ts.map +1 -0
  436. package/dist/internal-debug.js +5 -0
  437. package/dist/internal-debug.js.map +1 -0
  438. package/dist/loader.d.ts +14 -0
  439. package/dist/loader.d.ts.map +1 -0
  440. package/dist/loader.js +20 -0
  441. package/dist/loader.js.map +1 -0
  442. package/dist/loader.rsc.d.ts +19 -0
  443. package/dist/loader.rsc.d.ts.map +1 -0
  444. package/dist/loader.rsc.js +99 -0
  445. package/dist/loader.rsc.js.map +1 -0
  446. package/dist/network-error-thrower.d.ts +17 -0
  447. package/dist/network-error-thrower.d.ts.map +1 -0
  448. package/dist/network-error-thrower.js +14 -0
  449. package/dist/network-error-thrower.js.map +1 -0
  450. package/dist/outlet-context.d.ts +13 -0
  451. package/dist/outlet-context.d.ts.map +1 -0
  452. package/dist/outlet-context.js +3 -0
  453. package/dist/outlet-context.js.map +1 -0
  454. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  455. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  456. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  457. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  458. package/dist/prerender/param-hash.d.ts +16 -0
  459. package/dist/prerender/param-hash.d.ts.map +1 -0
  460. package/dist/prerender/param-hash.js +36 -0
  461. package/dist/prerender/param-hash.js.map +1 -0
  462. package/dist/prerender/store.d.ts +38 -0
  463. package/dist/prerender/store.d.ts.map +1 -0
  464. package/dist/prerender/store.js +61 -0
  465. package/dist/prerender/store.js.map +1 -0
  466. package/dist/prerender.d.ts +66 -0
  467. package/dist/prerender.d.ts.map +1 -0
  468. package/dist/prerender.js +57 -0
  469. package/dist/prerender.js.map +1 -0
  470. package/dist/reverse.d.ts +196 -0
  471. package/dist/reverse.d.ts.map +1 -0
  472. package/dist/reverse.js +78 -0
  473. package/dist/reverse.js.map +1 -0
  474. package/dist/root-error-boundary.d.ts +33 -0
  475. package/dist/root-error-boundary.d.ts.map +1 -0
  476. package/dist/root-error-boundary.js +165 -0
  477. package/dist/root-error-boundary.js.map +1 -0
  478. package/dist/route-content-wrapper.d.ts +46 -0
  479. package/dist/route-content-wrapper.d.ts.map +1 -0
  480. package/dist/route-content-wrapper.js +77 -0
  481. package/dist/route-content-wrapper.js.map +1 -0
  482. package/dist/route-definition.d.ts +421 -0
  483. package/dist/route-definition.d.ts.map +1 -0
  484. package/dist/route-definition.js +868 -0
  485. package/dist/route-definition.js.map +1 -0
  486. package/dist/route-map-builder.d.ts +155 -0
  487. package/dist/route-map-builder.d.ts.map +1 -0
  488. package/dist/route-map-builder.js +237 -0
  489. package/dist/route-map-builder.js.map +1 -0
  490. package/dist/route-types.d.ts +165 -0
  491. package/dist/route-types.d.ts.map +1 -0
  492. package/dist/route-types.js +7 -0
  493. package/dist/route-types.js.map +1 -0
  494. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  495. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  496. package/dist/router/__tests__/handler-context.test.js +65 -0
  497. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  498. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  501. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  502. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  503. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  504. package/dist/router/__tests__/match-context.test.js +92 -0
  505. package/dist/router/__tests__/match-context.test.js.map +1 -0
  506. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  507. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  508. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  509. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  510. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  511. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  512. package/dist/router/__tests__/match-result.test.js +457 -0
  513. package/dist/router/__tests__/match-result.test.js.map +1 -0
  514. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  515. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  516. package/dist/router/__tests__/on-error.test.js +678 -0
  517. package/dist/router/__tests__/on-error.test.js.map +1 -0
  518. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  519. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  520. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  521. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  522. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  525. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  526. package/dist/router/error-handling.d.ts +77 -0
  527. package/dist/router/error-handling.d.ts.map +1 -0
  528. package/dist/router/error-handling.js +202 -0
  529. package/dist/router/error-handling.js.map +1 -0
  530. package/dist/router/handler-context.d.ts +20 -0
  531. package/dist/router/handler-context.d.ts.map +1 -0
  532. package/dist/router/handler-context.js +198 -0
  533. package/dist/router/handler-context.js.map +1 -0
  534. package/dist/router/intercept-resolution.d.ts +66 -0
  535. package/dist/router/intercept-resolution.d.ts.map +1 -0
  536. package/dist/router/intercept-resolution.js +246 -0
  537. package/dist/router/intercept-resolution.js.map +1 -0
  538. package/dist/router/loader-resolution.d.ts +64 -0
  539. package/dist/router/loader-resolution.d.ts.map +1 -0
  540. package/dist/router/loader-resolution.js +284 -0
  541. package/dist/router/loader-resolution.js.map +1 -0
  542. package/dist/router/logging.d.ts +15 -0
  543. package/dist/router/logging.d.ts.map +1 -0
  544. package/dist/router/logging.js +99 -0
  545. package/dist/router/logging.js.map +1 -0
  546. package/dist/router/manifest.d.ts +22 -0
  547. package/dist/router/manifest.d.ts.map +1 -0
  548. package/dist/router/manifest.js +181 -0
  549. package/dist/router/manifest.js.map +1 -0
  550. package/dist/router/match-api.d.ts +35 -0
  551. package/dist/router/match-api.d.ts.map +1 -0
  552. package/dist/router/match-api.js +406 -0
  553. package/dist/router/match-api.js.map +1 -0
  554. package/dist/router/match-context.d.ts +206 -0
  555. package/dist/router/match-context.d.ts.map +1 -0
  556. package/dist/router/match-context.js +17 -0
  557. package/dist/router/match-context.js.map +1 -0
  558. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  559. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  560. package/dist/router/match-middleware/background-revalidation.js +75 -0
  561. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  562. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  563. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  564. package/dist/router/match-middleware/cache-lookup.js +257 -0
  565. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  566. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  567. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  568. package/dist/router/match-middleware/cache-store.js +108 -0
  569. package/dist/router/match-middleware/cache-store.js.map +1 -0
  570. package/dist/router/match-middleware/index.d.ts +81 -0
  571. package/dist/router/match-middleware/index.d.ts.map +1 -0
  572. package/dist/router/match-middleware/index.js +80 -0
  573. package/dist/router/match-middleware/index.js.map +1 -0
  574. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  575. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  576. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  577. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  578. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  579. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  580. package/dist/router/match-middleware/segment-resolution.js +53 -0
  581. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  582. package/dist/router/match-pipelines.d.ts +147 -0
  583. package/dist/router/match-pipelines.d.ts.map +1 -0
  584. package/dist/router/match-pipelines.js +82 -0
  585. package/dist/router/match-pipelines.js.map +1 -0
  586. package/dist/router/match-result.d.ts +126 -0
  587. package/dist/router/match-result.d.ts.map +1 -0
  588. package/dist/router/match-result.js +93 -0
  589. package/dist/router/match-result.js.map +1 -0
  590. package/dist/router/metrics.d.ts +20 -0
  591. package/dist/router/metrics.d.ts.map +1 -0
  592. package/dist/router/metrics.js +47 -0
  593. package/dist/router/metrics.js.map +1 -0
  594. package/dist/router/middleware.d.ts +249 -0
  595. package/dist/router/middleware.d.ts.map +1 -0
  596. package/dist/router/middleware.js +434 -0
  597. package/dist/router/middleware.js.map +1 -0
  598. package/dist/router/middleware.test.d.ts +2 -0
  599. package/dist/router/middleware.test.d.ts.map +1 -0
  600. package/dist/router/middleware.test.js +816 -0
  601. package/dist/router/middleware.test.js.map +1 -0
  602. package/dist/router/pattern-matching.d.ts +149 -0
  603. package/dist/router/pattern-matching.d.ts.map +1 -0
  604. package/dist/router/pattern-matching.js +349 -0
  605. package/dist/router/pattern-matching.js.map +1 -0
  606. package/dist/router/revalidation.d.ts +44 -0
  607. package/dist/router/revalidation.d.ts.map +1 -0
  608. package/dist/router/revalidation.js +147 -0
  609. package/dist/router/revalidation.js.map +1 -0
  610. package/dist/router/router-context.d.ts +135 -0
  611. package/dist/router/router-context.d.ts.map +1 -0
  612. package/dist/router/router-context.js +36 -0
  613. package/dist/router/router-context.js.map +1 -0
  614. package/dist/router/segment-resolution.d.ts +127 -0
  615. package/dist/router/segment-resolution.d.ts.map +1 -0
  616. package/dist/router/segment-resolution.js +919 -0
  617. package/dist/router/segment-resolution.js.map +1 -0
  618. package/dist/router/trie-matching.d.ts +40 -0
  619. package/dist/router/trie-matching.d.ts.map +1 -0
  620. package/dist/router/trie-matching.js +127 -0
  621. package/dist/router/trie-matching.js.map +1 -0
  622. package/dist/router/types.d.ts +136 -0
  623. package/dist/router/types.d.ts.map +1 -0
  624. package/dist/router/types.js +7 -0
  625. package/dist/router/types.js.map +1 -0
  626. package/dist/router.d.ts +753 -0
  627. package/dist/router.d.ts.map +1 -0
  628. package/dist/router.gen.d.ts +6 -0
  629. package/dist/router.gen.d.ts.map +1 -0
  630. package/dist/router.gen.js +6 -0
  631. package/dist/router.gen.js.map +1 -0
  632. package/dist/router.js +1304 -0
  633. package/dist/router.js.map +1 -0
  634. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  635. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  636. package/dist/rsc/__tests__/helpers.test.js +140 -0
  637. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  638. package/dist/rsc/handler.d.ts +45 -0
  639. package/dist/rsc/handler.d.ts.map +1 -0
  640. package/dist/rsc/handler.js +1172 -0
  641. package/dist/rsc/handler.js.map +1 -0
  642. package/dist/rsc/helpers.d.ts +16 -0
  643. package/dist/rsc/helpers.d.ts.map +1 -0
  644. package/dist/rsc/helpers.js +55 -0
  645. package/dist/rsc/helpers.js.map +1 -0
  646. package/dist/rsc/index.d.ts +22 -0
  647. package/dist/rsc/index.d.ts.map +1 -0
  648. package/dist/rsc/index.js +23 -0
  649. package/dist/rsc/index.js.map +1 -0
  650. package/dist/rsc/nonce.d.ts +9 -0
  651. package/dist/rsc/nonce.d.ts.map +1 -0
  652. package/dist/rsc/nonce.js +18 -0
  653. package/dist/rsc/nonce.js.map +1 -0
  654. package/dist/rsc/types.d.ts +206 -0
  655. package/dist/rsc/types.d.ts.map +1 -0
  656. package/dist/rsc/types.js +8 -0
  657. package/dist/rsc/types.js.map +1 -0
  658. package/dist/search-params.d.ts +103 -0
  659. package/dist/search-params.d.ts.map +1 -0
  660. package/dist/search-params.js +74 -0
  661. package/dist/search-params.js.map +1 -0
  662. package/dist/segment-system.d.ts +75 -0
  663. package/dist/segment-system.d.ts.map +1 -0
  664. package/dist/segment-system.js +336 -0
  665. package/dist/segment-system.js.map +1 -0
  666. package/dist/server/context.d.ts +245 -0
  667. package/dist/server/context.d.ts.map +1 -0
  668. package/dist/server/context.js +197 -0
  669. package/dist/server/context.js.map +1 -0
  670. package/dist/server/fetchable-loader-store.d.ts +18 -0
  671. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  672. package/dist/server/fetchable-loader-store.js +18 -0
  673. package/dist/server/fetchable-loader-store.js.map +1 -0
  674. package/dist/server/handle-store.d.ts +85 -0
  675. package/dist/server/handle-store.d.ts.map +1 -0
  676. package/dist/server/handle-store.js +142 -0
  677. package/dist/server/handle-store.js.map +1 -0
  678. package/dist/server/loader-registry.d.ts +55 -0
  679. package/dist/server/loader-registry.d.ts.map +1 -0
  680. package/dist/server/loader-registry.js +132 -0
  681. package/dist/server/loader-registry.js.map +1 -0
  682. package/dist/server/request-context.d.ts +226 -0
  683. package/dist/server/request-context.d.ts.map +1 -0
  684. package/dist/server/request-context.js +290 -0
  685. package/dist/server/request-context.js.map +1 -0
  686. package/dist/server/root-layout.d.ts +4 -0
  687. package/dist/server/root-layout.d.ts.map +1 -0
  688. package/dist/server/root-layout.js +5 -0
  689. package/dist/server/root-layout.js.map +1 -0
  690. package/dist/server.d.ts +15 -0
  691. package/dist/server.d.ts.map +1 -0
  692. package/dist/server.js +20 -0
  693. package/dist/server.js.map +1 -0
  694. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  697. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  698. package/dist/ssr/index.d.ts +98 -0
  699. package/dist/ssr/index.d.ts.map +1 -0
  700. package/dist/ssr/index.js +158 -0
  701. package/dist/ssr/index.js.map +1 -0
  702. package/dist/static-handler.d.ts +50 -0
  703. package/dist/static-handler.d.ts.map +1 -0
  704. package/dist/static-handler.gen.d.ts +5 -0
  705. package/dist/static-handler.gen.d.ts.map +1 -0
  706. package/dist/static-handler.gen.js +5 -0
  707. package/dist/static-handler.gen.js.map +1 -0
  708. package/dist/static-handler.js +29 -0
  709. package/dist/static-handler.js.map +1 -0
  710. package/dist/testing/vitest.js +48 -0
  711. package/dist/theme/ThemeProvider.d.ts +20 -0
  712. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  713. package/dist/theme/ThemeProvider.js +240 -0
  714. package/dist/theme/ThemeProvider.js.map +1 -0
  715. package/dist/theme/ThemeScript.d.ts +48 -0
  716. package/dist/theme/ThemeScript.d.ts.map +1 -0
  717. package/dist/theme/ThemeScript.js +13 -0
  718. package/dist/theme/ThemeScript.js.map +1 -0
  719. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  720. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  721. package/dist/theme/__tests__/theme.test.js +103 -0
  722. package/dist/theme/__tests__/theme.test.js.map +1 -0
  723. package/dist/theme/constants.d.ts +29 -0
  724. package/dist/theme/constants.d.ts.map +1 -0
  725. package/dist/theme/constants.js +48 -0
  726. package/dist/theme/constants.js.map +1 -0
  727. package/dist/theme/index.d.ts +31 -0
  728. package/dist/theme/index.d.ts.map +1 -0
  729. package/dist/theme/index.js +36 -0
  730. package/dist/theme/index.js.map +1 -0
  731. package/dist/theme/theme-context.d.ts +40 -0
  732. package/dist/theme/theme-context.d.ts.map +1 -0
  733. package/dist/theme/theme-context.js +60 -0
  734. package/dist/theme/theme-context.js.map +1 -0
  735. package/dist/theme/theme-script.d.ts +27 -0
  736. package/dist/theme/theme-script.d.ts.map +1 -0
  737. package/dist/theme/theme-script.js +147 -0
  738. package/dist/theme/theme-script.js.map +1 -0
  739. package/dist/theme/types.d.ts +163 -0
  740. package/dist/theme/types.d.ts.map +1 -0
  741. package/dist/theme/types.js +11 -0
  742. package/dist/theme/types.js.map +1 -0
  743. package/dist/theme/use-theme.d.ts +12 -0
  744. package/dist/theme/use-theme.d.ts.map +1 -0
  745. package/dist/theme/use-theme.js +40 -0
  746. package/dist/theme/use-theme.js.map +1 -0
  747. package/dist/types.d.ts +1479 -0
  748. package/dist/types.d.ts.map +1 -0
  749. package/dist/types.js +10 -0
  750. package/dist/types.js.map +1 -0
  751. package/dist/urls.d.ts +441 -0
  752. package/dist/urls.d.ts.map +1 -0
  753. package/dist/urls.gen.d.ts +8 -0
  754. package/dist/urls.gen.d.ts.map +1 -0
  755. package/dist/urls.gen.js +8 -0
  756. package/dist/urls.gen.js.map +1 -0
  757. package/dist/urls.js +443 -0
  758. package/dist/urls.js.map +1 -0
  759. package/dist/use-loader.d.ts +127 -0
  760. package/dist/use-loader.d.ts.map +1 -0
  761. package/dist/use-loader.js +237 -0
  762. package/dist/use-loader.js.map +1 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  766. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  770. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  774. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  775. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  776. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  777. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  778. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  779. package/dist/vite/ast-handler-extract.d.ts +49 -0
  780. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  781. package/dist/vite/ast-handler-extract.js +249 -0
  782. package/dist/vite/ast-handler-extract.js.map +1 -0
  783. package/dist/vite/expose-action-id.d.ts +19 -0
  784. package/dist/vite/expose-action-id.d.ts.map +1 -0
  785. package/dist/vite/expose-action-id.js +250 -0
  786. package/dist/vite/expose-action-id.js.map +1 -0
  787. package/dist/vite/expose-id-utils.d.ts +69 -0
  788. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  789. package/dist/vite/expose-id-utils.js +289 -0
  790. package/dist/vite/expose-id-utils.js.map +1 -0
  791. package/dist/vite/expose-internal-ids.d.ts +22 -0
  792. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  793. package/dist/vite/expose-internal-ids.js +886 -0
  794. package/dist/vite/expose-internal-ids.js.map +1 -0
  795. package/dist/vite/index.d.ts +149 -0
  796. package/dist/vite/index.d.ts.map +1 -0
  797. package/dist/vite/index.js +2309 -833
  798. package/dist/vite/index.js.bak +5448 -0
  799. package/dist/vite/index.js.map +1 -0
  800. package/dist/vite/index.named-routes.gen.ts +103 -0
  801. package/dist/vite/package-resolution.d.ts +43 -0
  802. package/dist/vite/package-resolution.d.ts.map +1 -0
  803. package/dist/vite/package-resolution.js +112 -0
  804. package/dist/vite/package-resolution.js.map +1 -0
  805. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  806. package/dist/vite/virtual-entries.d.ts +25 -0
  807. package/dist/vite/virtual-entries.d.ts.map +1 -0
  808. package/dist/vite/virtual-entries.js +110 -0
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +57 -11
  811. package/skills/breadcrumbs/SKILL.md +3 -1
  812. package/skills/bundle-analysis/SKILL.md +159 -0
  813. package/skills/cache-guide/SKILL.md +220 -30
  814. package/skills/caching/SKILL.md +116 -8
  815. package/skills/composability/SKILL.md +27 -2
  816. package/skills/document-cache/SKILL.md +78 -55
  817. package/skills/handler-use/SKILL.md +364 -0
  818. package/skills/hooks/SKILL.md +229 -20
  819. package/skills/host-router/SKILL.md +45 -20
  820. package/skills/i18n/SKILL.md +276 -0
  821. package/skills/intercept/SKILL.md +46 -4
  822. package/skills/layout/SKILL.md +28 -7
  823. package/skills/links/SKILL.md +247 -17
  824. package/skills/loader/SKILL.md +219 -9
  825. package/skills/middleware/SKILL.md +47 -12
  826. package/skills/migrate-nextjs/SKILL.md +562 -0
  827. package/skills/migrate-react-router/SKILL.md +769 -0
  828. package/skills/mime-routes/SKILL.md +27 -0
  829. package/skills/observability/SKILL.md +137 -0
  830. package/skills/parallel/SKILL.md +71 -6
  831. package/skills/prerender/SKILL.md +14 -33
  832. package/skills/rango/SKILL.md +242 -22
  833. package/skills/react-compiler/SKILL.md +168 -0
  834. package/skills/response-routes/SKILL.md +66 -9
  835. package/skills/route/SKILL.md +57 -4
  836. package/skills/router-setup/SKILL.md +3 -3
  837. package/skills/server-actions/SKILL.md +751 -0
  838. package/skills/streams-and-websockets/SKILL.md +283 -0
  839. package/skills/testing/SKILL.md +599 -0
  840. package/skills/typesafety/SKILL.md +319 -27
  841. package/skills/use-cache/SKILL.md +34 -5
  842. package/skills/view-transitions/SKILL.md +294 -0
  843. package/src/__augment-tests__/augment.ts +81 -0
  844. package/src/__augment-tests__/augmented.check.ts +117 -0
  845. package/src/browser/action-coordinator.ts +53 -36
  846. package/src/browser/app-shell.ts +52 -0
  847. package/src/browser/event-controller.ts +86 -70
  848. package/src/browser/history-state.ts +21 -0
  849. package/src/browser/index.ts +3 -3
  850. package/src/browser/navigation-bridge.ts +86 -11
  851. package/src/browser/navigation-client.ts +76 -28
  852. package/src/browser/navigation-store.ts +32 -9
  853. package/src/browser/navigation-transaction.ts +10 -28
  854. package/src/browser/partial-update.ts +64 -26
  855. package/src/browser/prefetch/cache.ts +129 -21
  856. package/src/browser/prefetch/fetch.ts +148 -16
  857. package/src/browser/prefetch/queue.ts +36 -5
  858. package/src/browser/rango-state.ts +53 -13
  859. package/src/browser/react/Link.tsx +30 -2
  860. package/src/browser/react/NavigationProvider.tsx +72 -31
  861. package/src/browser/react/filter-segment-order.ts +51 -7
  862. package/src/browser/react/index.ts +3 -0
  863. package/src/browser/react/location-state-shared.ts +175 -4
  864. package/src/browser/react/location-state.ts +39 -13
  865. package/src/browser/react/use-handle.ts +17 -9
  866. package/src/browser/react/use-navigation.ts +22 -2
  867. package/src/browser/react/use-params.ts +20 -8
  868. package/src/browser/react/use-reverse.ts +106 -0
  869. package/src/browser/react/use-router.ts +22 -2
  870. package/src/browser/react/use-segments.ts +11 -8
  871. package/src/browser/response-adapter.ts +25 -0
  872. package/src/browser/rsc-router.tsx +64 -22
  873. package/src/browser/scroll-restoration.ts +22 -14
  874. package/src/browser/segment-reconciler.ts +36 -14
  875. package/src/browser/segment-structure-assert.ts +2 -2
  876. package/src/browser/server-action-bridge.ts +23 -30
  877. package/src/browser/types.ts +21 -0
  878. package/src/build/collect-fallback-refs.ts +107 -0
  879. package/src/build/generate-manifest.ts +60 -35
  880. package/src/build/generate-route-types.ts +2 -0
  881. package/src/build/index.ts +2 -0
  882. package/src/build/route-trie.ts +52 -25
  883. package/src/build/route-types/codegen.ts +4 -4
  884. package/src/build/route-types/include-resolution.ts +1 -1
  885. package/src/build/route-types/per-module-writer.ts +7 -4
  886. package/src/build/route-types/router-processing.ts +55 -14
  887. package/src/build/route-types/scan-filter.ts +1 -1
  888. package/src/build/route-types/source-scan.ts +118 -0
  889. package/src/build/runtime-discovery.ts +9 -20
  890. package/src/cache/cache-scope.ts +28 -42
  891. package/src/cache/cf/cf-cache-store.ts +54 -13
  892. package/src/client.rsc.tsx +3 -0
  893. package/src/client.tsx +92 -182
  894. package/src/context-var.ts +5 -5
  895. package/src/decode-loader-results.ts +36 -0
  896. package/src/errors.ts +30 -1
  897. package/src/handle.ts +26 -13
  898. package/src/host/index.ts +2 -2
  899. package/src/host/router.ts +129 -57
  900. package/src/host/types.ts +31 -2
  901. package/src/host/utils.ts +1 -1
  902. package/src/href-client.ts +140 -20
  903. package/src/index.rsc.ts +9 -4
  904. package/src/index.ts +57 -15
  905. package/src/loader-store.ts +500 -0
  906. package/src/loader.rsc.ts +2 -5
  907. package/src/loader.ts +3 -10
  908. package/src/missing-id-error.ts +68 -0
  909. package/src/outlet-context.ts +1 -1
  910. package/src/prerender.ts +4 -4
  911. package/src/response-utils.ts +37 -0
  912. package/src/reverse.ts +65 -36
  913. package/src/route-content-wrapper.tsx +6 -28
  914. package/src/route-definition/dsl-helpers.ts +384 -257
  915. package/src/route-definition/helper-factories.ts +29 -139
  916. package/src/route-definition/helpers-types.ts +100 -28
  917. package/src/route-definition/resolve-handler-use.ts +6 -0
  918. package/src/route-definition/use-item-types.ts +32 -0
  919. package/src/route-types.ts +26 -41
  920. package/src/router/basename.ts +14 -0
  921. package/src/router/content-negotiation.ts +15 -2
  922. package/src/router/error-handling.ts +1 -1
  923. package/src/router/handler-context.ts +21 -38
  924. package/src/router/intercept-resolution.ts +4 -18
  925. package/src/router/lazy-includes.ts +8 -8
  926. package/src/router/loader-resolution.ts +89 -49
  927. package/src/router/manifest.ts +22 -13
  928. package/src/router/match-api.ts +4 -3
  929. package/src/router/match-handlers.ts +63 -20
  930. package/src/router/match-middleware/cache-lookup.ts +54 -96
  931. package/src/router/match-middleware/cache-store.ts +3 -2
  932. package/src/router/match-middleware/segment-resolution.ts +1 -1
  933. package/src/router/match-result.ts +103 -4
  934. package/src/router/metrics.ts +1 -1
  935. package/src/router/middleware-types.ts +15 -26
  936. package/src/router/middleware.ts +99 -84
  937. package/src/router/pattern-matching.ts +101 -17
  938. package/src/router/prerender-match.ts +1 -1
  939. package/src/router/preview-match.ts +3 -1
  940. package/src/router/request-classification.ts +4 -28
  941. package/src/router/revalidation.ts +58 -2
  942. package/src/router/router-interfaces.ts +45 -28
  943. package/src/router/router-options.ts +40 -1
  944. package/src/router/router-registry.ts +2 -5
  945. package/src/router/segment-resolution/fresh.ts +32 -6
  946. package/src/router/segment-resolution/revalidation.ts +154 -107
  947. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  948. package/src/router/substitute-pattern-params.ts +56 -0
  949. package/src/router/telemetry.ts +99 -0
  950. package/src/router/trie-matching.ts +18 -13
  951. package/src/router/types.ts +8 -0
  952. package/src/router/url-params.ts +49 -0
  953. package/src/router.ts +38 -23
  954. package/src/rsc/handler-context.ts +2 -2
  955. package/src/rsc/handler.ts +41 -74
  956. package/src/rsc/helpers.ts +91 -43
  957. package/src/rsc/index.ts +1 -1
  958. package/src/rsc/loader-fetch.ts +23 -3
  959. package/src/rsc/origin-guard.ts +28 -10
  960. package/src/rsc/progressive-enhancement.ts +14 -2
  961. package/src/rsc/response-route-handler.ts +46 -53
  962. package/src/rsc/rsc-rendering.ts +40 -52
  963. package/src/rsc/runtime-warnings.ts +9 -10
  964. package/src/rsc/server-action.ts +23 -37
  965. package/src/rsc/ssr-setup.ts +16 -0
  966. package/src/rsc/types.ts +9 -2
  967. package/src/search-params.ts +4 -4
  968. package/src/segment-content-promise.ts +67 -0
  969. package/src/segment-loader-promise.ts +122 -0
  970. package/src/segment-system.tsx +132 -116
  971. package/src/serialize.ts +243 -0
  972. package/src/server/context.ts +143 -53
  973. package/src/server/cookie-store.ts +28 -4
  974. package/src/server/handle-store.ts +19 -0
  975. package/src/server/request-context.ts +50 -44
  976. package/src/ssr/index.tsx +5 -1
  977. package/src/static-handler.ts +1 -1
  978. package/src/testing/cache-status.ts +166 -0
  979. package/src/testing/collect-handle.ts +63 -0
  980. package/src/testing/dispatch.ts +440 -0
  981. package/src/testing/dom.entry.ts +22 -0
  982. package/src/testing/e2e/fixture.ts +154 -0
  983. package/src/testing/e2e/index.ts +149 -0
  984. package/src/testing/e2e/matchers.ts +51 -0
  985. package/src/testing/e2e/page-helpers.ts +272 -0
  986. package/src/testing/e2e/parity.ts +306 -0
  987. package/src/testing/e2e/server.ts +183 -0
  988. package/src/testing/flight-matchers.ts +104 -0
  989. package/src/testing/flight-runtime.d.ts +21 -0
  990. package/src/testing/flight.entry.ts +22 -0
  991. package/src/testing/flight.ts +182 -0
  992. package/src/testing/generated-routes.ts +223 -0
  993. package/src/testing/index.ts +105 -0
  994. package/src/testing/internal/context.ts +193 -0
  995. package/src/testing/render-route.tsx +536 -0
  996. package/src/testing/run-loader.ts +296 -0
  997. package/src/testing/run-middleware.ts +170 -0
  998. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  999. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1000. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1001. package/src/testing/vitest-stubs/version.ts +5 -0
  1002. package/src/testing/vitest.ts +183 -0
  1003. package/src/types/global-namespace.ts +39 -26
  1004. package/src/types/handler-context.ts +68 -50
  1005. package/src/types/index.ts +1 -0
  1006. package/src/types/loader-types.ts +5 -6
  1007. package/src/types/request-scope.ts +126 -0
  1008. package/src/types/route-entry.ts +11 -0
  1009. package/src/types/segments.ts +36 -2
  1010. package/src/urls/include-helper.ts +34 -67
  1011. package/src/urls/index.ts +0 -3
  1012. package/src/urls/path-helper-types.ts +41 -7
  1013. package/src/urls/path-helper.ts +17 -52
  1014. package/src/urls/pattern-types.ts +36 -19
  1015. package/src/urls/response-types.ts +22 -29
  1016. package/src/urls/type-extraction.ts +26 -116
  1017. package/src/urls/urls-function.ts +1 -5
  1018. package/src/use-loader.tsx +416 -42
  1019. package/src/vite/debug.ts +185 -0
  1020. package/src/vite/discovery/bundle-postprocess.ts +6 -6
  1021. package/src/vite/discovery/discover-routers.ts +101 -51
  1022. package/src/vite/discovery/discovery-errors.ts +194 -0
  1023. package/src/vite/discovery/gate-state.ts +171 -0
  1024. package/src/vite/discovery/prerender-collection.ts +185 -103
  1025. package/src/vite/discovery/route-types-writer.ts +40 -84
  1026. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1027. package/src/vite/discovery/state.ts +33 -0
  1028. package/src/vite/discovery/virtual-module-codegen.ts +13 -23
  1029. package/src/vite/index.ts +2 -0
  1030. package/src/vite/plugin-types.ts +67 -0
  1031. package/src/vite/plugins/cjs-to-esm.ts +8 -7
  1032. package/src/vite/plugins/client-ref-dedup.ts +16 -0
  1033. package/src/vite/plugins/client-ref-hashing.ts +28 -5
  1034. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1035. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1036. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1037. package/src/vite/plugins/expose-action-id.ts +54 -30
  1038. package/src/vite/plugins/expose-id-utils.ts +24 -8
  1039. package/src/vite/plugins/expose-ids/export-analysis.ts +100 -20
  1040. package/src/vite/plugins/expose-ids/handler-transform.ts +12 -35
  1041. package/src/vite/plugins/expose-ids/loader-transform.ts +3 -5
  1042. package/src/vite/plugins/expose-ids/router-transform.ts +20 -3
  1043. package/src/vite/plugins/expose-internal-ids.ts +544 -317
  1044. package/src/vite/plugins/performance-tracks.ts +29 -25
  1045. package/src/vite/plugins/use-cache-transform.ts +65 -50
  1046. package/src/vite/plugins/version-injector.ts +39 -23
  1047. package/src/vite/plugins/version-plugin.ts +59 -2
  1048. package/src/vite/plugins/virtual-entries.ts +2 -2
  1049. package/src/vite/rango.ts +116 -29
  1050. package/src/vite/router-discovery.ts +774 -102
  1051. package/src/vite/utils/ast-handler-extract.ts +15 -15
  1052. package/src/vite/utils/banner.ts +1 -1
  1053. package/src/vite/utils/bundle-analysis.ts +4 -2
  1054. package/src/vite/utils/client-chunks.ts +190 -0
  1055. package/src/vite/utils/forward-user-plugins.ts +193 -0
  1056. package/src/vite/utils/manifest-utils.ts +21 -5
  1057. package/src/vite/utils/package-resolution.ts +41 -1
  1058. package/src/vite/utils/prerender-utils.ts +21 -6
  1059. package/src/vite/utils/shared-utils.ts +107 -26
  1060. package/src/browser/action-response-classifier.ts +0 -99
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mount.test.js","sourceRoot":"","sources":["../../src/__tests__/use-mount.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAEzD,SAAS,YAAY;IACnB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,6BAAkB,KAAK,YAAG,KAAK,GAAQ,CAAC;AACjD,CAAC;AAED,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAC,YAAY,KAAG,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAG,cAAc,CACzB,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAC,WAAW,YACtC,KAAC,YAAY,KAAG,GACM,CACzB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,cAAc,CACzB,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAC,WAAW,YACtC,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAC,oBAAoB,YAC/C,KAAC,YAAY,KAAG,GACM,GACF,CACzB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,SAAS,GAAG;YACV,OAAO,CACL,0BACE,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAC,OAAO,YAClC,KAAC,YAAY,KAAG,GACM,EACxB,KAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAC,OAAO,YAClC,KAAC,YAAY,KAAG,GACM,IACpB,CACP,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rango.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rango.d.ts","sourceRoot":"","sources":["../../src/bin/rango.ts"],"names":[],"mappings":""}
package/dist/bin/rango.js CHANGED
@@ -139,7 +139,7 @@ function generatePerModuleTypesSource(routes) {
139
139
  const valid = routes.filter(({ name }) => {
140
140
  if (!name || /["'\\`\n\r]/.test(name)) {
141
141
  console.warn(
142
- `[rsc-router] Skipping route with invalid name: ${JSON.stringify(name)}`
142
+ `[rango] Skipping route with invalid name: ${JSON.stringify(name)}`
143
143
  );
144
144
  return false;
145
145
  }
@@ -149,7 +149,7 @@ function generatePerModuleTypesSource(routes) {
149
149
  for (const { name, pattern, params, search } of valid) {
150
150
  if (deduped.has(name)) {
151
151
  console.warn(
152
- `[rsc-router] Duplicate route name "${name}" \u2014 keeping first definition`
152
+ `[rango] Duplicate route name "${name}" \u2014 keeping first definition`
153
153
  );
154
154
  continue;
155
155
  }
@@ -186,7 +186,7 @@ ${objectBody}
186
186
  } as const;
187
187
 
188
188
  declare global {
189
- namespace RSCRouter {
189
+ namespace Rango {
190
190
  interface GeneratedRouteMap extends Readonly<typeof NamedRoutes> {}
191
191
  }
192
192
  }
@@ -211,7 +211,7 @@ function findTsFiles(dir, filter) {
211
211
  entries = readdirSync(dir, { withFileTypes: true });
212
212
  } catch (err) {
213
213
  console.warn(
214
- `[rsc-router] Failed to scan directory ${dir}: ${err.message}`
214
+ `[rango] Failed to scan directory ${dir}: ${err.message}`
215
215
  );
216
216
  return results;
217
217
  }
@@ -456,7 +456,7 @@ function buildCombinedRouteMapWithSearch(filePath, variableName, visited, diagno
456
456
  const realPath = resolve(filePath);
457
457
  const key = variableName ? `${realPath}:${variableName}` : realPath;
458
458
  if (visited.has(key)) {
459
- console.warn(`[rsc-router] Circular include detected, skipping: ${key}`);
459
+ console.warn(`[rango] Circular include detected, skipping: ${key}`);
460
460
  return { routes: {}, searchSchemas: {} };
461
461
  }
462
462
  visited.add(key);
@@ -543,12 +543,12 @@ function writePerModuleRouteTypesForFile(filePath) {
543
543
  } else {
544
544
  routes = extractRoutesFromSource(source);
545
545
  }
546
- const genPath = filePath.replace(/\.(tsx?)$/, ".gen.ts");
546
+ const genPath = filePath.replace(/\.(tsx?|jsx?)$/, ".gen.ts");
547
547
  if (routes.length === 0) {
548
548
  if (varNames.length > 0 && !existsSync2(genPath)) {
549
549
  writeFileSync(genPath, generatePerModuleTypesSource([]));
550
550
  console.log(
551
- `[rsc-router] Generated route types (placeholder) -> ${genPath}`
551
+ `[rango] Generated route types (placeholder) -> ${genPath}`
552
552
  );
553
553
  }
554
554
  return;
@@ -557,11 +557,11 @@ function writePerModuleRouteTypesForFile(filePath) {
557
557
  const existing = existsSync2(genPath) ? readFileSync2(genPath, "utf-8") : null;
558
558
  if (existing !== genSource) {
559
559
  writeFileSync(genPath, genSource);
560
- console.log(`[rsc-router] Generated route types -> ${genPath}`);
560
+ console.log(`[rango] Generated route types -> ${genPath}`);
561
561
  }
562
562
  } catch (err) {
563
563
  console.warn(
564
- `[rsc-router] Failed to generate route types for ${filePath}: ${err.message}`
564
+ `[rango] Failed to generate route types for ${filePath}: ${err.message}`
565
565
  );
566
566
  }
567
567
  }
@@ -576,6 +576,75 @@ var init_per_module_writer = __esm({
576
576
  }
577
577
  });
578
578
 
579
+ // src/build/route-types/source-scan.ts
580
+ function isLineTerminator(ch) {
581
+ const c = ch.charCodeAt(0);
582
+ return c === 10 || c === 13 || c === 8232 || c === 8233;
583
+ }
584
+ function makeCodeClassifier(code) {
585
+ const n = code.length;
586
+ let i = 0;
587
+ let skipStart = -1;
588
+ let skipEnd = -1;
589
+ return (q) => {
590
+ if (q >= skipStart && q < skipEnd) return false;
591
+ while (i < n && i <= q) {
592
+ const c = code[i];
593
+ const d = i + 1 < n ? code[i + 1] : "";
594
+ let end = -1;
595
+ if (c === "/" && d === "/") {
596
+ let j = i + 2;
597
+ while (j < n && !isLineTerminator(code[j])) j++;
598
+ end = j;
599
+ } else if (c === "/" && d === "*") {
600
+ let j = i + 2;
601
+ while (j < n && !(code[j] === "*" && code[j + 1] === "/")) j++;
602
+ end = Math.min(n, j + 2);
603
+ } else if (c === '"' || c === "'" || c === "`") {
604
+ let j = i + 1;
605
+ while (j < n) {
606
+ if (code[j] === "\\") {
607
+ j += 2;
608
+ continue;
609
+ }
610
+ if (code[j] === c) {
611
+ j++;
612
+ break;
613
+ }
614
+ j++;
615
+ }
616
+ end = j;
617
+ }
618
+ if (end >= 0) {
619
+ if (q < end) {
620
+ skipStart = i;
621
+ skipEnd = end;
622
+ return false;
623
+ }
624
+ i = end;
625
+ } else {
626
+ i++;
627
+ }
628
+ }
629
+ return true;
630
+ };
631
+ }
632
+ function firstCodeMatchIndex(code, pattern) {
633
+ const inCode = makeCodeClassifier(code);
634
+ pattern.lastIndex = 0;
635
+ let m;
636
+ while ((m = pattern.exec(code)) !== null) {
637
+ if (inCode(m.index)) return m.index;
638
+ if (pattern.lastIndex <= m.index) pattern.lastIndex = m.index + 1;
639
+ }
640
+ return -1;
641
+ }
642
+ var init_source_scan = __esm({
643
+ "src/build/route-types/source-scan.ts"() {
644
+ "use strict";
645
+ }
646
+ });
647
+
579
648
  // src/build/route-types/router-processing.ts
580
649
  import {
581
650
  readFileSync as readFileSync3,
@@ -612,7 +681,7 @@ function findRouterFilesRecursive(dir, filter, results) {
612
681
  entries = readdirSync2(dir, { withFileTypes: true });
613
682
  } catch (err) {
614
683
  console.warn(
615
- `[rsc-router] Failed to scan directory ${dir}: ${err.message}`
684
+ `[rango] Failed to scan directory ${dir}: ${err.message}`
616
685
  );
617
686
  return;
618
687
  }
@@ -630,7 +699,7 @@ function findRouterFilesRecursive(dir, filter, results) {
630
699
  if (filter && !filter(fullPath)) continue;
631
700
  try {
632
701
  const source = readFileSync3(fullPath, "utf-8");
633
- if (ROUTER_CALL_PATTERN.test(source)) {
702
+ if (ROUTER_CALL_PATTERN.test(source) && firstCodeMatchIndex(source, ROUTER_CALL_PATTERN_G) >= 0) {
634
703
  routerFilesInDir.push(fullPath);
635
704
  }
636
705
  } catch {
@@ -668,7 +737,7 @@ function findNestedRouterConflict(routerFiles) {
668
737
  }
669
738
  return null;
670
739
  }
671
- function formatNestedRouterConflictError(conflict, prefix = "[rsc-router]") {
740
+ function formatNestedRouterConflictError(conflict, prefix = "[rango]") {
672
741
  return `${prefix} Nested router roots are not supported.
673
742
  Router root: ${conflict.ancestor}
674
743
  Nested router: ${conflict.nested}
@@ -764,19 +833,38 @@ function extractBasenameFromRouter(code) {
764
833
  visit(sourceFile);
765
834
  return result;
766
835
  }
767
- function applyBasenameToRoutes(result, basename2) {
836
+ function applyBasenameToRoutes(result, basename) {
768
837
  const prefixed = {};
769
838
  for (const [name, pattern] of Object.entries(result.routes)) {
770
839
  if (pattern === "/") {
771
- prefixed[name] = basename2;
772
- } else if (basename2.endsWith("/") && pattern.startsWith("/")) {
773
- prefixed[name] = basename2 + pattern.slice(1);
840
+ prefixed[name] = basename;
841
+ } else if (basename.endsWith("/") && pattern.startsWith("/")) {
842
+ prefixed[name] = basename + pattern.slice(1);
774
843
  } else {
775
- prefixed[name] = basename2 + pattern;
844
+ prefixed[name] = basename + pattern;
776
845
  }
777
846
  }
778
847
  return { routes: prefixed, searchSchemas: result.searchSchemas };
779
848
  }
849
+ function genFileTsPath(sourceFile) {
850
+ const base = pathBasename(sourceFile).replace(/\.(tsx?|jsx?)$/, "");
851
+ return join2(dirname2(sourceFile), `${base}.named-routes.gen.ts`);
852
+ }
853
+ function resolveSearchSchemas(publicRouteNames, runtimeSchemas, sourceFile) {
854
+ if (runtimeSchemas && Object.keys(runtimeSchemas).length > 0) {
855
+ return runtimeSchemas;
856
+ }
857
+ const staticParsed = buildCombinedRouteMapForRouterFile(sourceFile);
858
+ if (Object.keys(staticParsed.searchSchemas).length === 0) {
859
+ return runtimeSchemas;
860
+ }
861
+ const filtered = {};
862
+ for (const name of publicRouteNames) {
863
+ const schema = staticParsed.searchSchemas[name];
864
+ if (schema) filtered[name] = schema;
865
+ }
866
+ return Object.keys(filtered).length > 0 ? filtered : runtimeSchemas;
867
+ }
780
868
  function buildCombinedRouteMapForRouterFile(routerFilePath) {
781
869
  let routerSource;
782
870
  try {
@@ -789,7 +877,7 @@ function buildCombinedRouteMapForRouterFile(routerFilePath) {
789
877
  return { routes: {}, searchSchemas: {} };
790
878
  }
791
879
  const rawBasename = extractBasenameFromRouter(routerSource);
792
- const basename2 = rawBasename ? ("/" + rawBasename.replace(/^\/+|\/+$/g, "")).replace(/^\/$/, "") : void 0;
880
+ const basename = rawBasename ? ("/" + rawBasename.replace(/^\/+|\/+$/g, "")).replace(/^\/$/, "") : void 0;
793
881
  let result;
794
882
  if (extraction.kind === "inline") {
795
883
  result = buildCombinedRouteMapWithSearch(
@@ -814,8 +902,8 @@ function buildCombinedRouteMapForRouterFile(routerFilePath) {
814
902
  result = buildCombinedRouteMapWithSearch(routerFilePath, extraction.name);
815
903
  }
816
904
  }
817
- if (basename2) {
818
- result = applyBasenameToRoutes(result, basename2);
905
+ if (basename) {
906
+ result = applyBasenameToRoutes(result, basename);
819
907
  }
820
908
  return result;
821
909
  }
@@ -897,7 +985,7 @@ function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
897
985
  if (existsSync3(oldCombinedPath)) {
898
986
  unlinkSync(oldCombinedPath);
899
987
  console.log(
900
- `[rsc-router] Removed stale combined route types: ${oldCombinedPath}`
988
+ `[rango] Removed stale combined route types: ${oldCombinedPath}`
901
989
  );
902
990
  }
903
991
  } catch {
@@ -919,18 +1007,12 @@ function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
919
1007
  }
920
1008
  if (!extractUrlsFromRouter(routerSource)) continue;
921
1009
  }
922
- const routerBasename = pathBasename(routerFilePath).replace(
923
- /\.(tsx?|jsx?)$/,
924
- ""
925
- );
926
- const outPath = join2(
927
- dirname2(routerFilePath),
928
- `${routerBasename}.named-routes.gen.ts`
929
- );
1010
+ const outPath = genFileTsPath(routerFilePath);
930
1011
  const existing = existsSync3(outPath) ? readFileSync3(outPath, "utf-8") : null;
931
1012
  if (Object.keys(result.routes).length === 0) {
932
1013
  if (!existing) {
933
1014
  const emptySource = generateRouteTypesSource({});
1015
+ opts?.onWrite?.(outPath, emptySource);
934
1016
  writeFileSync2(outPath, emptySource);
935
1017
  }
936
1018
  continue;
@@ -950,22 +1032,25 @@ function writeCombinedRouteTypes(root, knownRouterFiles, opts) {
950
1032
  continue;
951
1033
  }
952
1034
  }
1035
+ opts?.onWrite?.(outPath, source);
953
1036
  writeFileSync2(outPath, source);
954
1037
  console.log(
955
- `[rsc-router] Generated route types (${Object.keys(result.routes).length} routes) -> ${outPath}`
1038
+ `[rango] Generated route types (${Object.keys(result.routes).length} routes) -> ${outPath}`
956
1039
  );
957
1040
  }
958
1041
  }
959
1042
  }
960
- var ROUTER_CALL_PATTERN;
1043
+ var ROUTER_CALL_PATTERN, ROUTER_CALL_PATTERN_G;
961
1044
  var init_router_processing = __esm({
962
1045
  "src/build/route-types/router-processing.ts"() {
963
1046
  "use strict";
964
1047
  init_codegen();
1048
+ init_source_scan();
965
1049
  init_include_resolution();
966
1050
  init_per_module_writer();
967
1051
  init_route_name();
968
1052
  ROUTER_CALL_PATTERN = /\bcreateRouter\s*[<(]/;
1053
+ ROUTER_CALL_PATTERN_G = /\bcreateRouter\s*[<(]/g;
969
1054
  }
970
1055
  });
971
1056
 
@@ -1003,7 +1088,7 @@ import {
1003
1088
  import { createElement, StrictMode } from "react";
1004
1089
  import { hydrateRoot } from "react-dom/client";
1005
1090
  import { rscStream } from "@rangojs/router/internal/deps/html-stream-client";
1006
- import { initBrowserApp, RSCRouter } from "@rangojs/router/browser";
1091
+ import { initBrowserApp, Rango } from "@rangojs/router/browser";
1007
1092
 
1008
1093
  async function initializeApp() {
1009
1094
  const deps = {
@@ -1018,7 +1103,7 @@ async function initializeApp() {
1018
1103
 
1019
1104
  hydrateRoot(
1020
1105
  document,
1021
- createElement(StrictMode, null, createElement(RSCRouter))
1106
+ createElement(StrictMode, null, createElement(Rango))
1022
1107
  );
1023
1108
  }
1024
1109
 
@@ -1050,7 +1135,8 @@ export const renderHTML = createSSRHandler({
1050
1135
  // src/vite/plugins/version-plugin.ts
1051
1136
  var version_plugin_exports = {};
1052
1137
  __export(version_plugin_exports, {
1053
- createVersionPlugin: () => createVersionPlugin
1138
+ createVersionPlugin: () => createVersionPlugin,
1139
+ isViteDepCachePath: () => isViteDepCachePath
1054
1140
  });
1055
1141
  import { parseAst } from "vite";
1056
1142
  function isCodeModule(id) {
@@ -1062,7 +1148,7 @@ function normalizeModuleId(id) {
1062
1148
  function getClientModuleSignature(source) {
1063
1149
  let program;
1064
1150
  try {
1065
- program = parseAst(source, { jsx: true });
1151
+ program = parseAst(source, { lang: "tsx" });
1066
1152
  } catch {
1067
1153
  return void 0;
1068
1154
  }
@@ -1145,11 +1231,12 @@ function createVersionPlugin() {
1145
1231
  let currentVersion = buildVersion;
1146
1232
  let isDev = false;
1147
1233
  let server = null;
1234
+ let resolvedCacheDir;
1148
1235
  const clientModuleSignatures = /* @__PURE__ */ new Map();
1149
1236
  let versionCounter = 0;
1150
1237
  const bumpVersion = (reason) => {
1151
1238
  currentVersion = Date.now().toString(16) + String(++versionCounter);
1152
- console.log(`[rsc-router] ${reason}, version updated: ${currentVersion}`);
1239
+ console.log(`[rango] ${reason}, version updated: ${currentVersion}`);
1153
1240
  const rscEnv = server?.environments?.rsc;
1154
1241
  const versionMod = rscEnv?.moduleGraph?.getModuleById(
1155
1242
  "\0" + VIRTUAL_IDS.version
@@ -1163,6 +1250,7 @@ function createVersionPlugin() {
1163
1250
  enforce: "pre",
1164
1251
  configResolved(config) {
1165
1252
  isDev = config.command === "serve";
1253
+ resolvedCacheDir = config.cacheDir ? String(config.cacheDir).replace(/\\/g, "/") : void 0;
1166
1254
  },
1167
1255
  configureServer(devServer) {
1168
1256
  server = devServer;
@@ -1204,6 +1292,7 @@ function createVersionPlugin() {
1204
1292
  if (!isDev) return;
1205
1293
  const isRscModule = this.environment?.name === "rsc";
1206
1294
  if (!isRscModule) return;
1295
+ if (isViteDepCachePath(ctx.file, resolvedCacheDir)) return;
1207
1296
  if (ctx.modules.length === 1 && ctx.modules[0].id === "\0" + VIRTUAL_IDS.version) {
1208
1297
  return;
1209
1298
  }
@@ -1233,6 +1322,17 @@ function createVersionPlugin() {
1233
1322
  }
1234
1323
  };
1235
1324
  }
1325
+ function isViteDepCachePath(filePath, cacheDir) {
1326
+ if (!filePath) return false;
1327
+ const normalized = filePath.replace(/\\/g, "/");
1328
+ if (cacheDir) {
1329
+ const normalizedCacheDir = cacheDir.replace(/\\/g, "/").replace(/\/+$/, "");
1330
+ if (normalized === normalizedCacheDir || normalized.startsWith(normalizedCacheDir + "/")) {
1331
+ return true;
1332
+ }
1333
+ }
1334
+ return /\/node_modules\/\.vite[^/]*\//.test(normalized) || normalized.includes("/.vite-isolated/");
1335
+ }
1236
1336
  var init_version_plugin = __esm({
1237
1337
  "src/vite/plugins/version-plugin.ts"() {
1238
1338
  "use strict";
@@ -1278,7 +1378,7 @@ var runtime_discovery_exports = {};
1278
1378
  __export(runtime_discovery_exports, {
1279
1379
  discoverAndWriteRouteTypes: () => discoverAndWriteRouteTypes
1280
1380
  });
1281
- import { dirname as dirname3, join as join3, basename, resolve as resolve3 } from "node:path";
1381
+ import { resolve as resolve3 } from "node:path";
1282
1382
  import { existsSync as existsSync4, readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "node:fs";
1283
1383
  async function discoverAndWriteRouteTypes(opts) {
1284
1384
  let createViteServer;
@@ -1388,22 +1488,12 @@ This means createRouter() stack trace parsing matched an internal frame.
1388
1488
  Set an explicit \`id\` on createRouter() or check the call site.`
1389
1489
  );
1390
1490
  }
1391
- if (!routeSearchSchemas || Object.keys(routeSearchSchemas).length === 0) {
1392
- const staticParsed = buildCombinedRouteMapForRouterFile(sourceFile);
1393
- if (Object.keys(staticParsed.searchSchemas).length > 0) {
1394
- const filtered = {};
1395
- for (const name of Object.keys(routeManifest)) {
1396
- const schema = staticParsed.searchSchemas[name];
1397
- if (schema) filtered[name] = schema;
1398
- }
1399
- if (Object.keys(filtered).length > 0) {
1400
- routeSearchSchemas = filtered;
1401
- }
1402
- }
1403
- }
1404
- const routerDir = dirname3(sourceFile);
1405
- const routerBasename = basename(sourceFile).replace(/\.(tsx?|jsx?)$/, "");
1406
- const outPath = join3(routerDir, `${routerBasename}.named-routes.gen.ts`);
1491
+ routeSearchSchemas = resolveSearchSchemas(
1492
+ Object.keys(routeManifest),
1493
+ routeSearchSchemas,
1494
+ sourceFile
1495
+ );
1496
+ const outPath = genFileTsPath(sourceFile);
1407
1497
  const source = generateRouteTypesSource(
1408
1498
  routeManifest,
1409
1499
  routeSearchSchemas && Object.keys(routeSearchSchemas).length > 0 ? routeSearchSchemas : void 0
@@ -1440,7 +1530,7 @@ var init_runtime_discovery = __esm({
1440
1530
 
1441
1531
  // src/bin/rango.ts
1442
1532
  init_generate_route_types();
1443
- import { resolve as resolve4, dirname as dirname4 } from "node:path";
1533
+ import { resolve as resolve4, dirname as dirname3 } from "node:path";
1444
1534
  import { readFileSync as readFileSync5, statSync, existsSync as existsSync5 } from "node:fs";
1445
1535
  var [command, ...rawArgs] = process.argv.slice(2);
1446
1536
  if (command === "generate") {
@@ -1511,12 +1601,12 @@ Examples:
1511
1601
  );
1512
1602
  }
1513
1603
  function findProjectRoot(fromPath) {
1514
- let dir = dirname4(resolve4(fromPath));
1515
- while (dir !== dirname4(dir)) {
1604
+ let dir = dirname3(resolve4(fromPath));
1605
+ while (dir !== dirname3(dir)) {
1516
1606
  if (existsSync5(resolve4(dir, "package.json")) || existsSync5(resolve4(dir, "vite.config.ts")) || existsSync5(resolve4(dir, "vite.config.js"))) {
1517
1607
  return dir;
1518
1608
  }
1519
- dir = dirname4(dir);
1609
+ dir = dirname3(dir);
1520
1610
  }
1521
1611
  return process.cwd();
1522
1612
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rango.js","sourceRoot":"","sources":["../../src/bin/rango.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,191 @@
1
+ import type { ReactNode } from "react";
2
+ import type { NavigationLocation, NavigateOptions, TrackedActionState, InflightAction, RscMetadata, HandleData } from "./types.js";
3
+ /**
4
+ * Phase of a navigation operation
5
+ */
6
+ export type NavigationPhase = "fetching" | "streaming";
7
+ /**
8
+ * Phase of an action operation
9
+ */
10
+ export type ActionPhase = "fetching" | "streaming" | "settling";
11
+ /**
12
+ * Entry tracking an in-flight navigation
13
+ */
14
+ export interface NavigationEntry {
15
+ url: string;
16
+ abort: AbortController;
17
+ phase: NavigationPhase;
18
+ startedAt: number;
19
+ options?: NavigateOptions & {
20
+ skipLoadingState?: boolean;
21
+ };
22
+ }
23
+ /**
24
+ * Entry tracking an in-flight action
25
+ */
26
+ export interface ActionEntry {
27
+ /** Unique instance ID for this action invocation */
28
+ id: string;
29
+ /** Server action function ID (normalized name like "addToCart") */
30
+ actionId: string;
31
+ /** Abort controller for this action */
32
+ abort: AbortController;
33
+ /** Current phase of the action */
34
+ phase: ActionPhase;
35
+ /** Action arguments */
36
+ payload: unknown[];
37
+ /** Result from action (set on completion) */
38
+ result?: unknown;
39
+ /** Error from action (set on failure) */
40
+ error?: unknown;
41
+ /** Segment IDs that were revalidated by this action */
42
+ revalidatedSegments: string[];
43
+ /** Timestamp when action started */
44
+ startedAt: number;
45
+ /** Whether action processing is complete (may still be streaming) */
46
+ completed?: boolean;
47
+ }
48
+ /**
49
+ * Derived navigation state (computed from source of truth)
50
+ */
51
+ export interface DerivedNavigationState {
52
+ /** Navigation lifecycle state */
53
+ state: "idle" | "loading";
54
+ /** Whether any operation is streaming */
55
+ isStreaming: boolean;
56
+ /** Current committed location */
57
+ location: NavigationLocation;
58
+ /** URL being navigated to (null if idle) */
59
+ pendingUrl: string | null;
60
+ /** List of inflight actions (for compatibility) */
61
+ inflightActions: InflightAction[];
62
+ }
63
+ /**
64
+ * Callback for UI updates when root should re-render
65
+ */
66
+ export type UpdateCallback = (update: {
67
+ root: ReactNode | Promise<ReactNode>;
68
+ metadata: RscMetadata;
69
+ }) => void;
70
+ /**
71
+ * State change listener
72
+ */
73
+ export type StateListener = () => void;
74
+ /**
75
+ * Action state listener
76
+ */
77
+ export type ActionStateListener = (state: TrackedActionState) => void;
78
+ /**
79
+ * Handle state listener
80
+ */
81
+ export type HandleListener = () => void;
82
+ /**
83
+ * Internal handle state stored in controller
84
+ */
85
+ export interface HandleState {
86
+ data: HandleData;
87
+ segmentOrder: string[];
88
+ }
89
+ /**
90
+ * Token for tracking an active stream
91
+ * Call end() when the stream completes
92
+ */
93
+ export interface StreamingToken {
94
+ /** End this streaming operation */
95
+ end(): void;
96
+ }
97
+ /**
98
+ * Result from starting a navigation
99
+ * Implements Disposable for use with `using` keyword
100
+ */
101
+ export interface NavigationHandle extends Disposable {
102
+ /** Abort controller for this navigation */
103
+ abort: AbortController;
104
+ /** Signal for this navigation */
105
+ signal: AbortSignal;
106
+ /** Start streaming and get a token to end it later */
107
+ startStreaming(): StreamingToken;
108
+ /** Complete the navigation successfully */
109
+ complete(location: NavigationLocation): void;
110
+ /** Whether navigation was completed successfully */
111
+ readonly completed: boolean;
112
+ }
113
+ /**
114
+ * Result from starting an action
115
+ * Implements Disposable for use with `using` keyword
116
+ */
117
+ export interface ActionHandle extends Disposable {
118
+ /** Unique instance ID */
119
+ id: string;
120
+ /** Abort controller for this action */
121
+ abort: AbortController;
122
+ /** Signal for this action */
123
+ signal: AbortSignal;
124
+ /** Start streaming and get a token to end it later */
125
+ startStreaming(): StreamingToken;
126
+ /** Record segments that were revalidated */
127
+ recordRevalidatedSegments(segmentIds: string[]): void;
128
+ /** Complete the action with result */
129
+ complete(result?: unknown): void;
130
+ /** Fail the action with error */
131
+ fail(error: unknown): void;
132
+ /** Whether action was completed (success or failure) */
133
+ readonly settled: boolean;
134
+ /** Check if any concurrent actions were started */
135
+ hadConcurrentActions: boolean;
136
+ /** Get segments to consolidate (only valid when this is the last action) */
137
+ getConsolidationSegments(): string[] | null;
138
+ /** Clear consolidation tracking */
139
+ clearConsolidation(): void;
140
+ }
141
+ /**
142
+ * Event controller interface
143
+ */
144
+ export interface EventController {
145
+ startNavigation(url: string, options?: NavigateOptions & {
146
+ skipLoadingState?: boolean;
147
+ }): NavigationHandle;
148
+ abortNavigation(): void;
149
+ startAction(actionId: string, args: unknown[]): ActionHandle;
150
+ abortAllActions(): void;
151
+ getState(): DerivedNavigationState;
152
+ getActionState(actionId: string): TrackedActionState;
153
+ setLocation(location: NavigationLocation): void;
154
+ subscribe(listener: StateListener): () => void;
155
+ subscribeToAction(actionId: string, listener: ActionStateListener): () => void;
156
+ subscribeToHandles(listener: HandleListener): () => void;
157
+ setHandleData(data: HandleData, matched?: string[], isPartial?: boolean): void;
158
+ getHandleState(): HandleState;
159
+ getCurrentNavigation(): NavigationEntry | null;
160
+ getInflightActions(): Map<string, ActionEntry>;
161
+ }
162
+ /**
163
+ * Configuration for creating an event controller
164
+ */
165
+ export interface EventControllerConfig {
166
+ initialLocation?: NavigationLocation;
167
+ }
168
+ /**
169
+ * Create an event controller for managing navigation and action state
170
+ *
171
+ * The controller uses a reactive model where:
172
+ * - Source of truth: currentNavigation, inflightActions, location
173
+ * - Derived state: navState, isStreaming computed from source
174
+ *
175
+ * Navigation uses switchMap semantics (new nav cancels previous).
176
+ * Actions use mergeMap semantics (all run concurrently, consolidate at end).
177
+ */
178
+ export declare function createEventController(config?: EventControllerConfig): EventController;
179
+ /**
180
+ * Initialize the global event controller
181
+ */
182
+ export declare function initEventController(config?: EventControllerConfig): EventController;
183
+ /**
184
+ * Get the global event controller
185
+ */
186
+ export declare function getEventController(): EventController;
187
+ /**
188
+ * Reset the controller instance (for testing)
189
+ */
190
+ export declare function resetEventController(): void;
191
+ //# sourceMappingURL=event-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-controller.d.ts","sourceRoot":"","sources":["../../src/browser/event-controller.ts"],"names":[],"mappings":"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"}