@rangojs/router 0.0.0-experimental.7a20d911 → 0.0.0-experimental.7cf4e116

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 (1198) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +169 -31
  3. package/dist/bin/rango.js +312 -93
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +2974 -1019
  6. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  7. package/package.json +66 -12
  8. package/skills/api-client/SKILL.md +211 -0
  9. package/skills/breadcrumbs/SKILL.md +64 -2
  10. package/skills/bundle-analysis/SKILL.md +159 -0
  11. package/skills/cache-guide/SKILL.md +224 -32
  12. package/skills/caching/SKILL.md +279 -17
  13. package/skills/composability/SKILL.md +27 -2
  14. package/skills/css/SKILL.md +76 -0
  15. package/skills/debug-manifest/SKILL.md +4 -2
  16. package/skills/document-cache/SKILL.md +78 -55
  17. package/skills/handler-use/SKILL.md +364 -0
  18. package/skills/hooks/SKILL.md +250 -30
  19. package/skills/host-router/SKILL.md +83 -23
  20. package/skills/i18n/SKILL.md +276 -0
  21. package/skills/intercept/SKILL.md +50 -6
  22. package/skills/layout/SKILL.md +35 -9
  23. package/skills/links/SKILL.md +247 -17
  24. package/skills/loader/SKILL.md +225 -9
  25. package/skills/middleware/SKILL.md +50 -13
  26. package/skills/migrate-nextjs/SKILL.md +584 -0
  27. package/skills/migrate-react-router/SKILL.md +771 -0
  28. package/skills/mime-routes/SKILL.md +28 -1
  29. package/skills/observability/SKILL.md +172 -0
  30. package/skills/parallel/SKILL.md +77 -7
  31. package/skills/prerender/SKILL.md +45 -43
  32. package/skills/rango/SKILL.md +251 -22
  33. package/skills/react-compiler/SKILL.md +168 -0
  34. package/skills/response-routes/SKILL.md +123 -48
  35. package/skills/route/SKILL.md +70 -5
  36. package/skills/router-setup/SKILL.md +29 -6
  37. package/skills/scripts/SKILL.md +179 -0
  38. package/skills/server-actions/SKILL.md +775 -0
  39. package/skills/streams-and-websockets/SKILL.md +283 -0
  40. package/skills/tailwind/SKILL.md +27 -3
  41. package/skills/testing/SKILL.md +129 -0
  42. package/skills/testing/bindings.md +103 -0
  43. package/skills/testing/cache-prerender.md +127 -0
  44. package/skills/testing/client-components.md +124 -0
  45. package/skills/testing/e2e-parity.md +125 -0
  46. package/skills/testing/flight.md +91 -0
  47. package/skills/testing/handles.md +129 -0
  48. package/skills/testing/loader.md +128 -0
  49. package/skills/testing/middleware.md +99 -0
  50. package/skills/testing/render-handler.md +121 -0
  51. package/skills/testing/response-routes.md +95 -0
  52. package/skills/testing/reverse-and-types.md +84 -0
  53. package/skills/testing/server-actions.md +107 -0
  54. package/skills/testing/server-tree.md +128 -0
  55. package/skills/testing/setup.md +123 -0
  56. package/skills/typesafety/SKILL.md +322 -29
  57. package/skills/use-cache/SKILL.md +46 -14
  58. package/skills/view-transitions/SKILL.md +294 -0
  59. package/src/__augment-tests__/augment.ts +81 -0
  60. package/src/__augment-tests__/augmented.check.ts +116 -0
  61. package/src/__internal.ts +0 -65
  62. package/src/browser/action-coordinator.ts +53 -36
  63. package/src/browser/action-fence.ts +47 -0
  64. package/src/browser/app-shell.ts +39 -0
  65. package/src/browser/connection-warmup.ts +134 -0
  66. package/src/browser/cookie-name.ts +140 -0
  67. package/src/browser/event-controller.ts +192 -150
  68. package/src/browser/history-state.ts +21 -0
  69. package/src/browser/index.ts +3 -3
  70. package/src/browser/invalidate-client-cache.ts +52 -0
  71. package/src/browser/navigation-bridge.ts +92 -18
  72. package/src/browser/navigation-client.ts +146 -69
  73. package/src/browser/navigation-store-handle.ts +38 -0
  74. package/src/browser/navigation-store.ts +33 -59
  75. package/src/browser/navigation-transaction.ts +9 -59
  76. package/src/browser/network-error-handler.ts +34 -7
  77. package/src/browser/partial-update.ts +131 -121
  78. package/src/browser/prefetch/cache.ts +205 -62
  79. package/src/browser/prefetch/fetch.ts +321 -37
  80. package/src/browser/prefetch/queue.ts +42 -8
  81. package/src/browser/rango-state.ts +158 -76
  82. package/src/browser/react/Link.tsx +60 -9
  83. package/src/browser/react/NavigationProvider.tsx +162 -118
  84. package/src/browser/react/ScrollRestoration.tsx +10 -6
  85. package/src/browser/react/filter-segment-order.ts +66 -7
  86. package/src/browser/react/index.ts +0 -48
  87. package/src/browser/react/location-state-shared.ts +178 -8
  88. package/src/browser/react/location-state.ts +39 -14
  89. package/src/browser/react/use-action.ts +6 -15
  90. package/src/browser/react/use-handle.ts +17 -14
  91. package/src/browser/react/use-href.tsx +8 -1
  92. package/src/browser/react/use-link-status.ts +33 -8
  93. package/src/browser/react/use-navigation.ts +32 -7
  94. package/src/browser/react/use-params.ts +20 -10
  95. package/src/browser/react/use-reverse.ts +106 -0
  96. package/src/browser/react/use-router.ts +25 -3
  97. package/src/browser/react/use-search-params.ts +0 -5
  98. package/src/browser/react/use-segments.ts +11 -21
  99. package/src/browser/response-adapter.ts +80 -5
  100. package/src/browser/rsc-router.tsx +91 -24
  101. package/src/browser/scroll-restoration.ts +30 -17
  102. package/src/browser/segment-reconciler.ts +36 -14
  103. package/src/browser/segment-structure-assert.ts +2 -2
  104. package/src/browser/server-action-bridge.ts +214 -55
  105. package/src/browser/types.ts +57 -8
  106. package/src/browser/validate-redirect-origin.ts +43 -16
  107. package/src/build/collect-fallback-refs.ts +107 -0
  108. package/src/build/generate-manifest.ts +60 -35
  109. package/src/build/generate-route-types.ts +2 -1
  110. package/src/build/index.ts +8 -2
  111. package/src/build/prefix-tree-utils.ts +123 -0
  112. package/src/build/route-trie.ts +165 -36
  113. package/src/build/route-types/ast-route-extraction.ts +15 -8
  114. package/src/build/route-types/codegen.ts +16 -5
  115. package/src/build/route-types/include-resolution.ts +117 -23
  116. package/src/build/route-types/param-extraction.ts +6 -3
  117. package/src/build/route-types/per-module-writer.ts +22 -6
  118. package/src/build/route-types/router-processing.ts +55 -28
  119. package/src/build/route-types/scan-filter.ts +1 -1
  120. package/src/build/route-types/source-scan.ts +216 -0
  121. package/src/build/runtime-discovery.ts +9 -20
  122. package/src/cache/cache-error.ts +104 -0
  123. package/src/cache/cache-key-utils.ts +29 -13
  124. package/src/cache/cache-policy.ts +108 -34
  125. package/src/cache/cache-runtime.ts +199 -37
  126. package/src/cache/cache-scope.ts +188 -82
  127. package/src/cache/cache-tag.ts +103 -0
  128. package/src/cache/cf/cf-base64.ts +33 -0
  129. package/src/cache/cf/cf-cache-constants.ts +127 -0
  130. package/src/cache/cf/cf-cache-store.ts +1989 -378
  131. package/src/cache/cf/cf-cache-types.ts +349 -0
  132. package/src/cache/cf/cf-kv-utils.ts +46 -0
  133. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  134. package/src/cache/cf/index.ts +6 -16
  135. package/src/cache/document-cache.ts +72 -20
  136. package/src/cache/handle-snapshot.ts +70 -0
  137. package/src/cache/index.ts +10 -20
  138. package/src/cache/memory-segment-store.ts +136 -37
  139. package/src/cache/profile-registry.ts +31 -31
  140. package/src/cache/read-through-swr.ts +41 -11
  141. package/src/cache/segment-codec.ts +9 -17
  142. package/src/cache/tag-invalidation.ts +230 -0
  143. package/src/cache/types.ts +37 -100
  144. package/src/client.rsc.tsx +44 -21
  145. package/src/client.tsx +118 -235
  146. package/src/cloudflare/index.ts +11 -0
  147. package/src/cloudflare/tracing.ts +109 -0
  148. package/src/component-utils.ts +19 -0
  149. package/src/components/DefaultDocument.tsx +8 -2
  150. package/src/context-var.ts +18 -6
  151. package/src/decode-loader-results.ts +52 -0
  152. package/src/defer.ts +196 -0
  153. package/src/deps/ssr.ts +0 -1
  154. package/src/encode-kv.ts +49 -0
  155. package/src/errors.ts +30 -4
  156. package/src/escape-script.ts +52 -0
  157. package/src/handle.ts +31 -23
  158. package/src/handles/MetaTags.tsx +62 -19
  159. package/src/handles/Scripts.tsx +183 -0
  160. package/src/handles/breadcrumbs.ts +37 -8
  161. package/src/handles/is-thenable.ts +19 -0
  162. package/src/handles/meta.ts +51 -40
  163. package/src/handles/script.ts +244 -0
  164. package/src/host/cookie-handler.ts +9 -60
  165. package/src/host/errors.ts +0 -24
  166. package/src/host/index.ts +8 -2
  167. package/src/host/pattern-matcher.ts +23 -52
  168. package/src/host/router.ts +107 -99
  169. package/src/host/testing.ts +40 -27
  170. package/src/host/types.ts +37 -4
  171. package/src/host/utils.ts +1 -1
  172. package/src/href-client.ts +137 -22
  173. package/src/index.rsc.ts +90 -11
  174. package/src/index.ts +129 -19
  175. package/src/internal-debug.ts +11 -10
  176. package/src/loader-store.ts +500 -0
  177. package/src/loader.rsc.ts +20 -13
  178. package/src/loader.ts +12 -11
  179. package/src/missing-id-error.ts +68 -0
  180. package/src/outlet-context.ts +1 -1
  181. package/src/outlet-provider.tsx +1 -5
  182. package/src/prerender/param-hash.ts +16 -16
  183. package/src/prerender/store.ts +32 -37
  184. package/src/prerender.ts +61 -6
  185. package/src/redirect-origin.ts +100 -0
  186. package/src/regex-escape.ts +8 -0
  187. package/src/render-error-thrower.tsx +20 -0
  188. package/src/response-utils.ts +62 -0
  189. package/src/reverse.ts +65 -36
  190. package/src/root-error-boundary.tsx +1 -19
  191. package/src/route-content-wrapper.tsx +7 -72
  192. package/src/route-definition/dsl-helpers.ts +418 -273
  193. package/src/route-definition/helper-factories.ts +29 -139
  194. package/src/route-definition/helpers-types.ts +103 -31
  195. package/src/route-definition/redirect.ts +44 -11
  196. package/src/route-definition/resolve-handler-use.ts +12 -0
  197. package/src/route-definition/use-item-types.ts +32 -0
  198. package/src/route-map-builder.ts +0 -16
  199. package/src/route-types.ts +26 -41
  200. package/src/router/basename.ts +14 -0
  201. package/src/router/content-negotiation.ts +73 -25
  202. package/src/router/error-handling.ts +45 -18
  203. package/src/router/find-match.ts +44 -23
  204. package/src/router/handler-context.ts +27 -39
  205. package/src/router/instrument.ts +350 -0
  206. package/src/router/intercept-resolution.ts +39 -20
  207. package/src/router/lazy-includes.ts +15 -52
  208. package/src/router/loader-resolution.ts +198 -92
  209. package/src/router/logging.ts +0 -6
  210. package/src/router/manifest.ts +40 -42
  211. package/src/router/match-api.ts +4 -23
  212. package/src/router/match-context.ts +0 -22
  213. package/src/router/match-handlers.ts +58 -58
  214. package/src/router/match-middleware/background-revalidation.ts +6 -7
  215. package/src/router/match-middleware/cache-lookup.ts +164 -285
  216. package/src/router/match-middleware/cache-store.ts +31 -34
  217. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  218. package/src/router/match-middleware/segment-resolution.ts +1 -23
  219. package/src/router/match-pipelines.ts +1 -42
  220. package/src/router/match-result.ts +87 -39
  221. package/src/router/metrics.ts +0 -34
  222. package/src/router/middleware-types.ts +7 -134
  223. package/src/router/middleware.ts +266 -166
  224. package/src/router/navigation-snapshot.ts +0 -51
  225. package/src/router/params-util.ts +23 -0
  226. package/src/router/pattern-matching.ts +132 -90
  227. package/src/router/prefetch-cache-ttl.ts +51 -0
  228. package/src/router/prerender-match.ts +104 -65
  229. package/src/router/preview-match.ts +3 -1
  230. package/src/router/request-classification.ts +28 -62
  231. package/src/router/revalidation.ts +123 -73
  232. package/src/router/route-snapshot.ts +0 -1
  233. package/src/router/router-context.ts +3 -28
  234. package/src/router/router-interfaces.ts +83 -35
  235. package/src/router/router-options.ts +136 -5
  236. package/src/router/router-registry.ts +2 -5
  237. package/src/router/segment-resolution/fresh.ts +98 -84
  238. package/src/router/segment-resolution/helpers.ts +86 -6
  239. package/src/router/segment-resolution/loader-cache.ts +62 -37
  240. package/src/router/segment-resolution/revalidation.ts +274 -319
  241. package/src/router/segment-resolution/static-store.ts +19 -5
  242. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  243. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  244. package/src/router/segment-resolution.ts +5 -1
  245. package/src/router/segment-wrappers.ts +6 -5
  246. package/src/router/state-cookie-name.ts +33 -0
  247. package/src/router/substitute-pattern-params.ts +56 -0
  248. package/src/router/telemetry-otel.ts +161 -199
  249. package/src/router/telemetry.ts +96 -19
  250. package/src/router/timeout.ts +0 -20
  251. package/src/router/tracing.ts +206 -0
  252. package/src/router/trie-matching.ts +163 -59
  253. package/src/router/types.ts +9 -63
  254. package/src/router/url-params.ts +44 -0
  255. package/src/router.ts +110 -55
  256. package/src/rsc/handler-context.ts +3 -2
  257. package/src/rsc/handler.ts +279 -224
  258. package/src/rsc/helpers.ts +168 -46
  259. package/src/rsc/index.ts +2 -5
  260. package/src/rsc/json-route-result.ts +38 -0
  261. package/src/rsc/loader-fetch.ts +127 -31
  262. package/src/rsc/manifest-init.ts +28 -41
  263. package/src/rsc/origin-guard.ts +39 -25
  264. package/src/rsc/progressive-enhancement.ts +73 -11
  265. package/src/rsc/redirect-guard.ts +99 -0
  266. package/src/rsc/response-cache-serve.ts +238 -0
  267. package/src/rsc/response-error.ts +79 -12
  268. package/src/rsc/response-route-handler.ts +99 -189
  269. package/src/rsc/rsc-rendering.ts +104 -76
  270. package/src/rsc/runtime-warnings.ts +23 -10
  271. package/src/rsc/server-action.ts +262 -113
  272. package/src/rsc/ssr-setup.ts +16 -0
  273. package/src/rsc/types.ts +24 -5
  274. package/src/runtime-env.ts +18 -0
  275. package/src/search-params.ts +35 -30
  276. package/src/segment-content-promise.ts +67 -0
  277. package/src/segment-loader-promise.ts +149 -0
  278. package/src/segment-system.tsx +218 -202
  279. package/src/serialize.ts +243 -0
  280. package/src/server/context.ts +175 -53
  281. package/src/server/cookie-parse.ts +32 -0
  282. package/src/server/cookie-store.ts +80 -5
  283. package/src/server/handle-store.ts +40 -38
  284. package/src/server/loader-registry.ts +21 -42
  285. package/src/server/request-context.ts +258 -170
  286. package/src/ssr/index.tsx +21 -16
  287. package/src/static-handler.ts +10 -13
  288. package/src/testing/cache-status.ts +162 -0
  289. package/src/testing/collect-handle.ts +40 -0
  290. package/src/testing/dispatch.ts +701 -0
  291. package/src/testing/dom.entry.ts +22 -0
  292. package/src/testing/e2e/fixture.ts +188 -0
  293. package/src/testing/e2e/index.ts +128 -0
  294. package/src/testing/e2e/matchers.ts +35 -0
  295. package/src/testing/e2e/page-helpers.ts +272 -0
  296. package/src/testing/e2e/parity.ts +387 -0
  297. package/src/testing/e2e/server.ts +195 -0
  298. package/src/testing/flight-matchers.ts +97 -0
  299. package/src/testing/flight-normalize.ts +11 -0
  300. package/src/testing/flight-runtime.d.ts +57 -0
  301. package/src/testing/flight-tree.ts +682 -0
  302. package/src/testing/flight.entry.ts +52 -0
  303. package/src/testing/flight.ts +257 -0
  304. package/src/testing/generated-routes.ts +183 -0
  305. package/src/testing/index.ts +99 -0
  306. package/src/testing/internal/context.ts +371 -0
  307. package/src/testing/internal/flight-client-globals.ts +30 -0
  308. package/src/testing/internal/seed-vars.ts +54 -0
  309. package/src/testing/render-handler.ts +343 -0
  310. package/src/testing/render-route.tsx +581 -0
  311. package/src/testing/run-loader.ts +385 -0
  312. package/src/testing/run-middleware.ts +205 -0
  313. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  314. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  315. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  316. package/src/testing/vitest-stubs/version.ts +5 -0
  317. package/src/testing/vitest.ts +305 -0
  318. package/src/theme/ThemeProvider.tsx +20 -58
  319. package/src/theme/ThemeScript.tsx +7 -9
  320. package/src/theme/constants.ts +52 -13
  321. package/src/theme/index.ts +0 -7
  322. package/src/theme/theme-context.ts +1 -5
  323. package/src/theme/theme-script.ts +22 -21
  324. package/src/theme/use-theme.ts +0 -3
  325. package/src/types/boundaries.ts +0 -35
  326. package/src/types/cache-types.ts +13 -4
  327. package/src/types/error-types.ts +30 -90
  328. package/src/types/global-namespace.ts +54 -41
  329. package/src/types/handler-context.ts +109 -61
  330. package/src/types/index.ts +1 -10
  331. package/src/types/loader-types.ts +11 -9
  332. package/src/types/request-scope.ts +112 -0
  333. package/src/types/route-config.ts +6 -50
  334. package/src/types/route-entry.ts +11 -6
  335. package/src/types/segments.ts +36 -15
  336. package/src/urls/include-helper.ts +33 -70
  337. package/src/urls/index.ts +1 -11
  338. package/src/urls/path-helper-types.ts +49 -9
  339. package/src/urls/path-helper.ts +17 -106
  340. package/src/urls/pattern-types.ts +36 -19
  341. package/src/urls/response-types.ts +22 -29
  342. package/src/urls/type-extraction.ts +58 -139
  343. package/src/urls/urls-function.ts +1 -18
  344. package/src/use-loader.tsx +295 -107
  345. package/src/vite/debug.ts +185 -0
  346. package/src/vite/discovery/bundle-postprocess.ts +8 -7
  347. package/src/vite/discovery/discover-routers.ts +126 -85
  348. package/src/vite/discovery/discovery-errors.ts +194 -0
  349. package/src/vite/discovery/gate-state.ts +171 -0
  350. package/src/vite/discovery/prerender-collection.ts +211 -142
  351. package/src/vite/discovery/route-types-writer.ts +40 -84
  352. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  353. package/src/vite/discovery/state.ts +44 -0
  354. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  355. package/src/vite/index.ts +2 -0
  356. package/src/vite/inject-client-debug.ts +36 -0
  357. package/src/vite/plugin-types.ts +126 -8
  358. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  359. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  360. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  361. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  362. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  363. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  364. package/src/vite/plugins/expose-action-id.ts +48 -95
  365. package/src/vite/plugins/expose-id-utils.ts +96 -51
  366. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  367. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  368. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  369. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  370. package/src/vite/plugins/expose-internal-ids.ts +553 -317
  371. package/src/vite/plugins/performance-tracks.ts +26 -25
  372. package/src/vite/plugins/refresh-cmd.ts +1 -1
  373. package/src/vite/plugins/use-cache-transform.ts +73 -83
  374. package/src/vite/plugins/version-injector.ts +21 -25
  375. package/src/vite/plugins/version-plugin.ts +37 -40
  376. package/src/vite/plugins/virtual-entries.ts +13 -18
  377. package/src/vite/rango.ts +109 -118
  378. package/src/vite/router-discovery.ts +777 -119
  379. package/src/vite/utils/ast-handler-extract.ts +26 -35
  380. package/src/vite/utils/banner.ts +1 -1
  381. package/src/vite/utils/bundle-analysis.ts +10 -15
  382. package/src/vite/utils/client-chunks.ts +184 -0
  383. package/src/vite/utils/directive-prologue.ts +40 -0
  384. package/src/vite/utils/forward-user-plugins.ts +171 -0
  385. package/src/vite/utils/manifest-utils.ts +4 -59
  386. package/src/vite/utils/package-resolution.ts +20 -52
  387. package/src/vite/utils/prerender-utils.ts +67 -38
  388. package/src/vite/utils/shared-utils.ts +90 -41
  389. package/dist/__internal.d.ts +0 -83
  390. package/dist/__internal.d.ts.map +0 -1
  391. package/dist/__internal.js +0 -19
  392. package/dist/__internal.js.map +0 -1
  393. package/dist/__mocks__/version.d.ts +0 -7
  394. package/dist/__mocks__/version.d.ts.map +0 -1
  395. package/dist/__mocks__/version.js +0 -7
  396. package/dist/__mocks__/version.js.map +0 -1
  397. package/dist/__tests__/client-href.test.d.ts +0 -2
  398. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  399. package/dist/__tests__/client-href.test.js +0 -74
  400. package/dist/__tests__/client-href.test.js.map +0 -1
  401. package/dist/__tests__/component-utils.test.d.ts +0 -2
  402. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  403. package/dist/__tests__/component-utils.test.js +0 -51
  404. package/dist/__tests__/component-utils.test.js.map +0 -1
  405. package/dist/__tests__/event-controller.test.d.ts +0 -2
  406. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  407. package/dist/__tests__/event-controller.test.js +0 -538
  408. package/dist/__tests__/event-controller.test.js.map +0 -1
  409. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  410. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  411. package/dist/__tests__/helpers/route-tree.js +0 -374
  412. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  413. package/dist/__tests__/match-result.test.d.ts +0 -2
  414. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  415. package/dist/__tests__/match-result.test.js +0 -154
  416. package/dist/__tests__/match-result.test.js.map +0 -1
  417. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  418. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  419. package/dist/__tests__/navigation-store.test.js +0 -440
  420. package/dist/__tests__/navigation-store.test.js.map +0 -1
  421. package/dist/__tests__/partial-update.test.d.ts +0 -2
  422. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  423. package/dist/__tests__/partial-update.test.js +0 -1009
  424. package/dist/__tests__/partial-update.test.js.map +0 -1
  425. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  426. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  427. package/dist/__tests__/reverse-types.test.js +0 -656
  428. package/dist/__tests__/reverse-types.test.js.map +0 -1
  429. package/dist/__tests__/route-definition.test.d.ts +0 -2
  430. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  431. package/dist/__tests__/route-definition.test.js +0 -55
  432. package/dist/__tests__/route-definition.test.js.map +0 -1
  433. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  434. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  435. package/dist/__tests__/router-helpers.test.js +0 -377
  436. package/dist/__tests__/router-helpers.test.js.map +0 -1
  437. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  438. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  439. package/dist/__tests__/router-integration-2.test.js +0 -426
  440. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  441. package/dist/__tests__/router-integration.test.d.ts +0 -2
  442. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  443. package/dist/__tests__/router-integration.test.js +0 -1051
  444. package/dist/__tests__/router-integration.test.js.map +0 -1
  445. package/dist/__tests__/search-params.test.d.ts +0 -5
  446. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  447. package/dist/__tests__/search-params.test.js +0 -306
  448. package/dist/__tests__/search-params.test.js.map +0 -1
  449. package/dist/__tests__/segment-system.test.d.ts +0 -2
  450. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  451. package/dist/__tests__/segment-system.test.js +0 -627
  452. package/dist/__tests__/segment-system.test.js.map +0 -1
  453. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  454. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  455. package/dist/__tests__/static-handler-types.test.js +0 -63
  456. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  457. package/dist/__tests__/urls.test.d.ts +0 -2
  458. package/dist/__tests__/urls.test.d.ts.map +0 -1
  459. package/dist/__tests__/urls.test.js +0 -421
  460. package/dist/__tests__/urls.test.js.map +0 -1
  461. package/dist/__tests__/use-mount.test.d.ts +0 -2
  462. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  463. package/dist/__tests__/use-mount.test.js +0 -35
  464. package/dist/__tests__/use-mount.test.js.map +0 -1
  465. package/dist/bin/rango.d.ts +0 -2
  466. package/dist/bin/rango.d.ts.map +0 -1
  467. package/dist/bin/rango.js.map +0 -1
  468. package/dist/browser/event-controller.d.ts +0 -191
  469. package/dist/browser/event-controller.d.ts.map +0 -1
  470. package/dist/browser/event-controller.js +0 -559
  471. package/dist/browser/event-controller.js.map +0 -1
  472. package/dist/browser/index.d.ts +0 -2
  473. package/dist/browser/index.d.ts.map +0 -1
  474. package/dist/browser/index.js +0 -14
  475. package/dist/browser/index.js.map +0 -1
  476. package/dist/browser/link-interceptor.d.ts +0 -38
  477. package/dist/browser/link-interceptor.d.ts.map +0 -1
  478. package/dist/browser/link-interceptor.js +0 -99
  479. package/dist/browser/link-interceptor.js.map +0 -1
  480. package/dist/browser/logging.d.ts +0 -10
  481. package/dist/browser/logging.d.ts.map +0 -1
  482. package/dist/browser/logging.js +0 -29
  483. package/dist/browser/logging.js.map +0 -1
  484. package/dist/browser/lru-cache.d.ts +0 -17
  485. package/dist/browser/lru-cache.d.ts.map +0 -1
  486. package/dist/browser/lru-cache.js +0 -50
  487. package/dist/browser/lru-cache.js.map +0 -1
  488. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  489. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  490. package/dist/browser/merge-segment-loaders.js +0 -102
  491. package/dist/browser/merge-segment-loaders.js.map +0 -1
  492. package/dist/browser/navigation-bridge.d.ts +0 -102
  493. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  494. package/dist/browser/navigation-bridge.js +0 -708
  495. package/dist/browser/navigation-bridge.js.map +0 -1
  496. package/dist/browser/navigation-client.d.ts +0 -25
  497. package/dist/browser/navigation-client.d.ts.map +0 -1
  498. package/dist/browser/navigation-client.js +0 -157
  499. package/dist/browser/navigation-client.js.map +0 -1
  500. package/dist/browser/navigation-store.d.ts +0 -101
  501. package/dist/browser/navigation-store.d.ts.map +0 -1
  502. package/dist/browser/navigation-store.js +0 -625
  503. package/dist/browser/navigation-store.js.map +0 -1
  504. package/dist/browser/partial-update.d.ts +0 -75
  505. package/dist/browser/partial-update.d.ts.map +0 -1
  506. package/dist/browser/partial-update.js +0 -426
  507. package/dist/browser/partial-update.js.map +0 -1
  508. package/dist/browser/react/Link.d.ts +0 -86
  509. package/dist/browser/react/Link.d.ts.map +0 -1
  510. package/dist/browser/react/Link.js +0 -128
  511. package/dist/browser/react/Link.js.map +0 -1
  512. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  513. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  514. package/dist/browser/react/NavigationProvider.js +0 -216
  515. package/dist/browser/react/NavigationProvider.js.map +0 -1
  516. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  517. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  518. package/dist/browser/react/ScrollRestoration.js +0 -57
  519. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  520. package/dist/browser/react/context.d.ts +0 -46
  521. package/dist/browser/react/context.d.ts.map +0 -1
  522. package/dist/browser/react/context.js +0 -10
  523. package/dist/browser/react/context.js.map +0 -1
  524. package/dist/browser/react/index.d.ts +0 -11
  525. package/dist/browser/react/index.d.ts.map +0 -1
  526. package/dist/browser/react/index.js +0 -22
  527. package/dist/browser/react/index.js.map +0 -1
  528. package/dist/browser/react/location-state-shared.d.ts +0 -63
  529. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  530. package/dist/browser/react/location-state-shared.js +0 -81
  531. package/dist/browser/react/location-state-shared.js.map +0 -1
  532. package/dist/browser/react/location-state.d.ts +0 -23
  533. package/dist/browser/react/location-state.d.ts.map +0 -1
  534. package/dist/browser/react/location-state.js +0 -29
  535. package/dist/browser/react/location-state.js.map +0 -1
  536. package/dist/browser/react/mount-context.d.ts +0 -24
  537. package/dist/browser/react/mount-context.d.ts.map +0 -1
  538. package/dist/browser/react/mount-context.js +0 -24
  539. package/dist/browser/react/mount-context.js.map +0 -1
  540. package/dist/browser/react/use-action.d.ts +0 -64
  541. package/dist/browser/react/use-action.d.ts.map +0 -1
  542. package/dist/browser/react/use-action.js +0 -134
  543. package/dist/browser/react/use-action.js.map +0 -1
  544. package/dist/browser/react/use-client-cache.d.ts +0 -41
  545. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  546. package/dist/browser/react/use-client-cache.js +0 -39
  547. package/dist/browser/react/use-client-cache.js.map +0 -1
  548. package/dist/browser/react/use-handle.d.ts +0 -31
  549. package/dist/browser/react/use-handle.d.ts.map +0 -1
  550. package/dist/browser/react/use-handle.js +0 -144
  551. package/dist/browser/react/use-handle.js.map +0 -1
  552. package/dist/browser/react/use-href.d.ts +0 -33
  553. package/dist/browser/react/use-href.d.ts.map +0 -1
  554. package/dist/browser/react/use-href.js +0 -39
  555. package/dist/browser/react/use-href.js.map +0 -1
  556. package/dist/browser/react/use-link-status.d.ts +0 -37
  557. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  558. package/dist/browser/react/use-link-status.js +0 -99
  559. package/dist/browser/react/use-link-status.js.map +0 -1
  560. package/dist/browser/react/use-mount.d.ts +0 -25
  561. package/dist/browser/react/use-mount.d.ts.map +0 -1
  562. package/dist/browser/react/use-mount.js +0 -30
  563. package/dist/browser/react/use-mount.js.map +0 -1
  564. package/dist/browser/react/use-navigation.d.ts +0 -27
  565. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  566. package/dist/browser/react/use-navigation.js +0 -87
  567. package/dist/browser/react/use-navigation.js.map +0 -1
  568. package/dist/browser/react/use-segments.d.ts +0 -38
  569. package/dist/browser/react/use-segments.d.ts.map +0 -1
  570. package/dist/browser/react/use-segments.js +0 -130
  571. package/dist/browser/react/use-segments.js.map +0 -1
  572. package/dist/browser/request-controller.d.ts +0 -26
  573. package/dist/browser/request-controller.d.ts.map +0 -1
  574. package/dist/browser/request-controller.js +0 -147
  575. package/dist/browser/request-controller.js.map +0 -1
  576. package/dist/browser/rsc-router.d.ts +0 -129
  577. package/dist/browser/rsc-router.d.ts.map +0 -1
  578. package/dist/browser/rsc-router.js +0 -195
  579. package/dist/browser/rsc-router.js.map +0 -1
  580. package/dist/browser/scroll-restoration.d.ts +0 -93
  581. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  582. package/dist/browser/scroll-restoration.js +0 -321
  583. package/dist/browser/scroll-restoration.js.map +0 -1
  584. package/dist/browser/segment-structure-assert.d.ts +0 -17
  585. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  586. package/dist/browser/segment-structure-assert.js +0 -59
  587. package/dist/browser/segment-structure-assert.js.map +0 -1
  588. package/dist/browser/server-action-bridge.d.ts +0 -26
  589. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  590. package/dist/browser/server-action-bridge.js +0 -668
  591. package/dist/browser/server-action-bridge.js.map +0 -1
  592. package/dist/browser/shallow.d.ts +0 -12
  593. package/dist/browser/shallow.d.ts.map +0 -1
  594. package/dist/browser/shallow.js +0 -34
  595. package/dist/browser/shallow.js.map +0 -1
  596. package/dist/browser/types.d.ts +0 -369
  597. package/dist/browser/types.d.ts.map +0 -1
  598. package/dist/browser/types.js +0 -2
  599. package/dist/browser/types.js.map +0 -1
  600. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  601. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  602. package/dist/build/__tests__/generate-cli.test.js +0 -237
  603. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  604. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  605. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  606. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  607. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  608. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  609. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  610. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  611. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  612. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  613. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  614. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  615. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  616. package/dist/build/generate-manifest.d.ts +0 -81
  617. package/dist/build/generate-manifest.d.ts.map +0 -1
  618. package/dist/build/generate-manifest.js +0 -276
  619. package/dist/build/generate-manifest.js.map +0 -1
  620. package/dist/build/generate-route-types.d.ts +0 -115
  621. package/dist/build/generate-route-types.d.ts.map +0 -1
  622. package/dist/build/generate-route-types.js +0 -740
  623. package/dist/build/generate-route-types.js.map +0 -1
  624. package/dist/build/index.d.ts +0 -21
  625. package/dist/build/index.d.ts.map +0 -1
  626. package/dist/build/index.js +0 -21
  627. package/dist/build/index.js.map +0 -1
  628. package/dist/build/route-trie.d.ts +0 -71
  629. package/dist/build/route-trie.d.ts.map +0 -1
  630. package/dist/build/route-trie.js +0 -175
  631. package/dist/build/route-trie.js.map +0 -1
  632. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  633. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  634. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  635. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  636. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  637. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  638. package/dist/cache/__tests__/document-cache.test.js +0 -345
  639. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  640. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  641. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  642. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  643. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  644. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  645. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  646. package/dist/cache/__tests__/memory-store.test.js +0 -367
  647. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  648. package/dist/cache/cache-scope.d.ts +0 -102
  649. package/dist/cache/cache-scope.d.ts.map +0 -1
  650. package/dist/cache/cache-scope.js +0 -440
  651. package/dist/cache/cache-scope.js.map +0 -1
  652. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  653. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  654. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  655. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  656. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  657. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  658. package/dist/cache/cf/cf-cache-store.js +0 -242
  659. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  660. package/dist/cache/cf/index.d.ts +0 -14
  661. package/dist/cache/cf/index.d.ts.map +0 -1
  662. package/dist/cache/cf/index.js +0 -17
  663. package/dist/cache/cf/index.js.map +0 -1
  664. package/dist/cache/document-cache.d.ts +0 -64
  665. package/dist/cache/document-cache.d.ts.map +0 -1
  666. package/dist/cache/document-cache.js +0 -228
  667. package/dist/cache/document-cache.js.map +0 -1
  668. package/dist/cache/index.d.ts +0 -19
  669. package/dist/cache/index.d.ts.map +0 -1
  670. package/dist/cache/index.js +0 -21
  671. package/dist/cache/index.js.map +0 -1
  672. package/dist/cache/memory-segment-store.d.ts +0 -110
  673. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  674. package/dist/cache/memory-segment-store.js +0 -117
  675. package/dist/cache/memory-segment-store.js.map +0 -1
  676. package/dist/cache/memory-store.d.ts +0 -41
  677. package/dist/cache/memory-store.d.ts.map +0 -1
  678. package/dist/cache/memory-store.js +0 -191
  679. package/dist/cache/memory-store.js.map +0 -1
  680. package/dist/cache/types.d.ts +0 -317
  681. package/dist/cache/types.d.ts.map +0 -1
  682. package/dist/cache/types.js +0 -12
  683. package/dist/cache/types.js.map +0 -1
  684. package/dist/client.d.ts +0 -248
  685. package/dist/client.d.ts.map +0 -1
  686. package/dist/client.js +0 -367
  687. package/dist/client.js.map +0 -1
  688. package/dist/client.rsc.d.ts +0 -26
  689. package/dist/client.rsc.d.ts.map +0 -1
  690. package/dist/client.rsc.js +0 -46
  691. package/dist/client.rsc.js.map +0 -1
  692. package/dist/component-utils.d.ts +0 -36
  693. package/dist/component-utils.d.ts.map +0 -1
  694. package/dist/component-utils.js +0 -61
  695. package/dist/component-utils.js.map +0 -1
  696. package/dist/components/DefaultDocument.d.ts +0 -13
  697. package/dist/components/DefaultDocument.d.ts.map +0 -1
  698. package/dist/components/DefaultDocument.js +0 -15
  699. package/dist/components/DefaultDocument.js.map +0 -1
  700. package/dist/debug.d.ts +0 -58
  701. package/dist/debug.d.ts.map +0 -1
  702. package/dist/debug.js +0 -157
  703. package/dist/debug.js.map +0 -1
  704. package/dist/default-error-boundary.d.ts +0 -11
  705. package/dist/default-error-boundary.d.ts.map +0 -1
  706. package/dist/default-error-boundary.js +0 -45
  707. package/dist/default-error-boundary.js.map +0 -1
  708. package/dist/deps/browser.d.ts +0 -2
  709. package/dist/deps/browser.d.ts.map +0 -1
  710. package/dist/deps/browser.js +0 -3
  711. package/dist/deps/browser.js.map +0 -1
  712. package/dist/deps/html-stream-client.d.ts +0 -2
  713. package/dist/deps/html-stream-client.d.ts.map +0 -1
  714. package/dist/deps/html-stream-client.js +0 -3
  715. package/dist/deps/html-stream-client.js.map +0 -1
  716. package/dist/deps/html-stream-server.d.ts +0 -2
  717. package/dist/deps/html-stream-server.d.ts.map +0 -1
  718. package/dist/deps/html-stream-server.js +0 -3
  719. package/dist/deps/html-stream-server.js.map +0 -1
  720. package/dist/deps/rsc.d.ts +0 -2
  721. package/dist/deps/rsc.d.ts.map +0 -1
  722. package/dist/deps/rsc.js +0 -4
  723. package/dist/deps/rsc.js.map +0 -1
  724. package/dist/deps/ssr.d.ts +0 -2
  725. package/dist/deps/ssr.d.ts.map +0 -1
  726. package/dist/deps/ssr.js +0 -3
  727. package/dist/deps/ssr.js.map +0 -1
  728. package/dist/errors.d.ts +0 -174
  729. package/dist/errors.d.ts.map +0 -1
  730. package/dist/errors.js +0 -241
  731. package/dist/errors.js.map +0 -1
  732. package/dist/handle.d.ts +0 -78
  733. package/dist/handle.d.ts.map +0 -1
  734. package/dist/handle.js +0 -82
  735. package/dist/handle.js.map +0 -1
  736. package/dist/handles/MetaTags.d.ts +0 -14
  737. package/dist/handles/MetaTags.d.ts.map +0 -1
  738. package/dist/handles/MetaTags.js +0 -136
  739. package/dist/handles/MetaTags.js.map +0 -1
  740. package/dist/handles/index.d.ts +0 -6
  741. package/dist/handles/index.d.ts.map +0 -1
  742. package/dist/handles/index.js +0 -6
  743. package/dist/handles/index.js.map +0 -1
  744. package/dist/handles/meta.d.ts +0 -39
  745. package/dist/handles/meta.d.ts.map +0 -1
  746. package/dist/handles/meta.js +0 -202
  747. package/dist/handles/meta.js.map +0 -1
  748. package/dist/host/__tests__/errors.test.d.ts +0 -2
  749. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  750. package/dist/host/__tests__/errors.test.js +0 -76
  751. package/dist/host/__tests__/errors.test.js.map +0 -1
  752. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  753. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  754. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  755. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  756. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  757. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  758. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  759. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  760. package/dist/host/__tests__/router.test.d.ts +0 -2
  761. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  762. package/dist/host/__tests__/router.test.js +0 -241
  763. package/dist/host/__tests__/router.test.js.map +0 -1
  764. package/dist/host/__tests__/testing.test.d.ts +0 -2
  765. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  766. package/dist/host/__tests__/testing.test.js +0 -64
  767. package/dist/host/__tests__/testing.test.js.map +0 -1
  768. package/dist/host/__tests__/utils.test.d.ts +0 -2
  769. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  770. package/dist/host/__tests__/utils.test.js +0 -29
  771. package/dist/host/__tests__/utils.test.js.map +0 -1
  772. package/dist/host/cookie-handler.d.ts +0 -34
  773. package/dist/host/cookie-handler.d.ts.map +0 -1
  774. package/dist/host/cookie-handler.js +0 -124
  775. package/dist/host/cookie-handler.js.map +0 -1
  776. package/dist/host/errors.d.ts +0 -56
  777. package/dist/host/errors.d.ts.map +0 -1
  778. package/dist/host/errors.js +0 -79
  779. package/dist/host/errors.js.map +0 -1
  780. package/dist/host/index.d.ts +0 -29
  781. package/dist/host/index.d.ts.map +0 -1
  782. package/dist/host/index.js +0 -32
  783. package/dist/host/index.js.map +0 -1
  784. package/dist/host/pattern-matcher.d.ts +0 -36
  785. package/dist/host/pattern-matcher.d.ts.map +0 -1
  786. package/dist/host/pattern-matcher.js +0 -172
  787. package/dist/host/pattern-matcher.js.map +0 -1
  788. package/dist/host/router.d.ts +0 -26
  789. package/dist/host/router.d.ts.map +0 -1
  790. package/dist/host/router.js +0 -218
  791. package/dist/host/router.js.map +0 -1
  792. package/dist/host/testing.d.ts +0 -36
  793. package/dist/host/testing.d.ts.map +0 -1
  794. package/dist/host/testing.js +0 -55
  795. package/dist/host/testing.js.map +0 -1
  796. package/dist/host/types.d.ts +0 -115
  797. package/dist/host/types.d.ts.map +0 -1
  798. package/dist/host/types.js +0 -7
  799. package/dist/host/types.js.map +0 -1
  800. package/dist/host/utils.d.ts +0 -21
  801. package/dist/host/utils.d.ts.map +0 -1
  802. package/dist/host/utils.js +0 -23
  803. package/dist/host/utils.js.map +0 -1
  804. package/dist/href-client.d.ts +0 -131
  805. package/dist/href-client.d.ts.map +0 -1
  806. package/dist/href-client.js +0 -64
  807. package/dist/href-client.js.map +0 -1
  808. package/dist/href-context.d.ts +0 -29
  809. package/dist/href-context.d.ts.map +0 -1
  810. package/dist/href-context.js +0 -21
  811. package/dist/href-context.js.map +0 -1
  812. package/dist/index.d.ts +0 -73
  813. package/dist/index.d.ts.map +0 -1
  814. package/dist/index.js +0 -91
  815. package/dist/index.js.map +0 -1
  816. package/dist/index.rsc.d.ts +0 -32
  817. package/dist/index.rsc.d.ts.map +0 -1
  818. package/dist/index.rsc.js +0 -40
  819. package/dist/index.rsc.js.map +0 -1
  820. package/dist/internal-debug.d.ts +0 -2
  821. package/dist/internal-debug.d.ts.map +0 -1
  822. package/dist/internal-debug.js +0 -5
  823. package/dist/internal-debug.js.map +0 -1
  824. package/dist/loader.d.ts +0 -14
  825. package/dist/loader.d.ts.map +0 -1
  826. package/dist/loader.js +0 -20
  827. package/dist/loader.js.map +0 -1
  828. package/dist/loader.rsc.d.ts +0 -19
  829. package/dist/loader.rsc.d.ts.map +0 -1
  830. package/dist/loader.rsc.js +0 -99
  831. package/dist/loader.rsc.js.map +0 -1
  832. package/dist/network-error-thrower.d.ts +0 -17
  833. package/dist/network-error-thrower.d.ts.map +0 -1
  834. package/dist/network-error-thrower.js +0 -14
  835. package/dist/network-error-thrower.js.map +0 -1
  836. package/dist/outlet-context.d.ts +0 -13
  837. package/dist/outlet-context.d.ts.map +0 -1
  838. package/dist/outlet-context.js +0 -3
  839. package/dist/outlet-context.js.map +0 -1
  840. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  841. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  842. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  843. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  844. package/dist/prerender/param-hash.d.ts +0 -16
  845. package/dist/prerender/param-hash.d.ts.map +0 -1
  846. package/dist/prerender/param-hash.js +0 -36
  847. package/dist/prerender/param-hash.js.map +0 -1
  848. package/dist/prerender/store.d.ts +0 -38
  849. package/dist/prerender/store.d.ts.map +0 -1
  850. package/dist/prerender/store.js +0 -61
  851. package/dist/prerender/store.js.map +0 -1
  852. package/dist/prerender.d.ts +0 -66
  853. package/dist/prerender.d.ts.map +0 -1
  854. package/dist/prerender.js +0 -57
  855. package/dist/prerender.js.map +0 -1
  856. package/dist/reverse.d.ts +0 -196
  857. package/dist/reverse.d.ts.map +0 -1
  858. package/dist/reverse.js +0 -78
  859. package/dist/reverse.js.map +0 -1
  860. package/dist/root-error-boundary.d.ts +0 -33
  861. package/dist/root-error-boundary.d.ts.map +0 -1
  862. package/dist/root-error-boundary.js +0 -165
  863. package/dist/root-error-boundary.js.map +0 -1
  864. package/dist/route-content-wrapper.d.ts +0 -46
  865. package/dist/route-content-wrapper.d.ts.map +0 -1
  866. package/dist/route-content-wrapper.js +0 -77
  867. package/dist/route-content-wrapper.js.map +0 -1
  868. package/dist/route-definition.d.ts +0 -421
  869. package/dist/route-definition.d.ts.map +0 -1
  870. package/dist/route-definition.js +0 -868
  871. package/dist/route-definition.js.map +0 -1
  872. package/dist/route-map-builder.d.ts +0 -155
  873. package/dist/route-map-builder.d.ts.map +0 -1
  874. package/dist/route-map-builder.js +0 -237
  875. package/dist/route-map-builder.js.map +0 -1
  876. package/dist/route-types.d.ts +0 -165
  877. package/dist/route-types.d.ts.map +0 -1
  878. package/dist/route-types.js +0 -7
  879. package/dist/route-types.js.map +0 -1
  880. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  881. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  882. package/dist/router/__tests__/handler-context.test.js +0 -65
  883. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  884. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  885. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  886. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  887. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  888. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  889. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  890. package/dist/router/__tests__/match-context.test.js +0 -92
  891. package/dist/router/__tests__/match-context.test.js.map +0 -1
  892. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  893. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  894. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  895. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  896. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  897. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  898. package/dist/router/__tests__/match-result.test.js +0 -457
  899. package/dist/router/__tests__/match-result.test.js.map +0 -1
  900. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  901. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  902. package/dist/router/__tests__/on-error.test.js +0 -678
  903. package/dist/router/__tests__/on-error.test.js.map +0 -1
  904. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  905. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  906. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  907. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  908. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  909. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  910. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  911. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  912. package/dist/router/error-handling.d.ts +0 -77
  913. package/dist/router/error-handling.d.ts.map +0 -1
  914. package/dist/router/error-handling.js +0 -202
  915. package/dist/router/error-handling.js.map +0 -1
  916. package/dist/router/handler-context.d.ts +0 -20
  917. package/dist/router/handler-context.d.ts.map +0 -1
  918. package/dist/router/handler-context.js +0 -198
  919. package/dist/router/handler-context.js.map +0 -1
  920. package/dist/router/intercept-resolution.d.ts +0 -66
  921. package/dist/router/intercept-resolution.d.ts.map +0 -1
  922. package/dist/router/intercept-resolution.js +0 -246
  923. package/dist/router/intercept-resolution.js.map +0 -1
  924. package/dist/router/loader-resolution.d.ts +0 -64
  925. package/dist/router/loader-resolution.d.ts.map +0 -1
  926. package/dist/router/loader-resolution.js +0 -284
  927. package/dist/router/loader-resolution.js.map +0 -1
  928. package/dist/router/logging.d.ts +0 -15
  929. package/dist/router/logging.d.ts.map +0 -1
  930. package/dist/router/logging.js +0 -99
  931. package/dist/router/logging.js.map +0 -1
  932. package/dist/router/manifest.d.ts +0 -22
  933. package/dist/router/manifest.d.ts.map +0 -1
  934. package/dist/router/manifest.js +0 -181
  935. package/dist/router/manifest.js.map +0 -1
  936. package/dist/router/match-api.d.ts +0 -35
  937. package/dist/router/match-api.d.ts.map +0 -1
  938. package/dist/router/match-api.js +0 -406
  939. package/dist/router/match-api.js.map +0 -1
  940. package/dist/router/match-context.d.ts +0 -206
  941. package/dist/router/match-context.d.ts.map +0 -1
  942. package/dist/router/match-context.js +0 -17
  943. package/dist/router/match-context.js.map +0 -1
  944. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  945. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  946. package/dist/router/match-middleware/background-revalidation.js +0 -75
  947. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  948. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  949. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  950. package/dist/router/match-middleware/cache-lookup.js +0 -257
  951. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  952. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  953. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  954. package/dist/router/match-middleware/cache-store.js +0 -108
  955. package/dist/router/match-middleware/cache-store.js.map +0 -1
  956. package/dist/router/match-middleware/index.d.ts +0 -81
  957. package/dist/router/match-middleware/index.d.ts.map +0 -1
  958. package/dist/router/match-middleware/index.js +0 -80
  959. package/dist/router/match-middleware/index.js.map +0 -1
  960. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  961. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  962. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  963. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  964. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  965. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  966. package/dist/router/match-middleware/segment-resolution.js +0 -53
  967. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  968. package/dist/router/match-pipelines.d.ts +0 -147
  969. package/dist/router/match-pipelines.d.ts.map +0 -1
  970. package/dist/router/match-pipelines.js +0 -82
  971. package/dist/router/match-pipelines.js.map +0 -1
  972. package/dist/router/match-result.d.ts +0 -126
  973. package/dist/router/match-result.d.ts.map +0 -1
  974. package/dist/router/match-result.js +0 -93
  975. package/dist/router/match-result.js.map +0 -1
  976. package/dist/router/metrics.d.ts +0 -20
  977. package/dist/router/metrics.d.ts.map +0 -1
  978. package/dist/router/metrics.js +0 -47
  979. package/dist/router/metrics.js.map +0 -1
  980. package/dist/router/middleware.d.ts +0 -249
  981. package/dist/router/middleware.d.ts.map +0 -1
  982. package/dist/router/middleware.js +0 -434
  983. package/dist/router/middleware.js.map +0 -1
  984. package/dist/router/middleware.test.d.ts +0 -2
  985. package/dist/router/middleware.test.d.ts.map +0 -1
  986. package/dist/router/middleware.test.js +0 -816
  987. package/dist/router/middleware.test.js.map +0 -1
  988. package/dist/router/pattern-matching.d.ts +0 -149
  989. package/dist/router/pattern-matching.d.ts.map +0 -1
  990. package/dist/router/pattern-matching.js +0 -349
  991. package/dist/router/pattern-matching.js.map +0 -1
  992. package/dist/router/revalidation.d.ts +0 -44
  993. package/dist/router/revalidation.d.ts.map +0 -1
  994. package/dist/router/revalidation.js +0 -147
  995. package/dist/router/revalidation.js.map +0 -1
  996. package/dist/router/router-context.d.ts +0 -135
  997. package/dist/router/router-context.d.ts.map +0 -1
  998. package/dist/router/router-context.js +0 -36
  999. package/dist/router/router-context.js.map +0 -1
  1000. package/dist/router/segment-resolution.d.ts +0 -127
  1001. package/dist/router/segment-resolution.d.ts.map +0 -1
  1002. package/dist/router/segment-resolution.js +0 -919
  1003. package/dist/router/segment-resolution.js.map +0 -1
  1004. package/dist/router/trie-matching.d.ts +0 -40
  1005. package/dist/router/trie-matching.d.ts.map +0 -1
  1006. package/dist/router/trie-matching.js +0 -127
  1007. package/dist/router/trie-matching.js.map +0 -1
  1008. package/dist/router/types.d.ts +0 -136
  1009. package/dist/router/types.d.ts.map +0 -1
  1010. package/dist/router/types.js +0 -7
  1011. package/dist/router/types.js.map +0 -1
  1012. package/dist/router.d.ts +0 -753
  1013. package/dist/router.d.ts.map +0 -1
  1014. package/dist/router.gen.d.ts +0 -6
  1015. package/dist/router.gen.d.ts.map +0 -1
  1016. package/dist/router.gen.js +0 -6
  1017. package/dist/router.gen.js.map +0 -1
  1018. package/dist/router.js +0 -1304
  1019. package/dist/router.js.map +0 -1
  1020. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1021. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1022. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1023. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1024. package/dist/rsc/handler.d.ts +0 -45
  1025. package/dist/rsc/handler.d.ts.map +0 -1
  1026. package/dist/rsc/handler.js +0 -1172
  1027. package/dist/rsc/handler.js.map +0 -1
  1028. package/dist/rsc/helpers.d.ts +0 -16
  1029. package/dist/rsc/helpers.d.ts.map +0 -1
  1030. package/dist/rsc/helpers.js +0 -55
  1031. package/dist/rsc/helpers.js.map +0 -1
  1032. package/dist/rsc/index.d.ts +0 -22
  1033. package/dist/rsc/index.d.ts.map +0 -1
  1034. package/dist/rsc/index.js +0 -23
  1035. package/dist/rsc/index.js.map +0 -1
  1036. package/dist/rsc/nonce.d.ts +0 -9
  1037. package/dist/rsc/nonce.d.ts.map +0 -1
  1038. package/dist/rsc/nonce.js +0 -18
  1039. package/dist/rsc/nonce.js.map +0 -1
  1040. package/dist/rsc/types.d.ts +0 -206
  1041. package/dist/rsc/types.d.ts.map +0 -1
  1042. package/dist/rsc/types.js +0 -8
  1043. package/dist/rsc/types.js.map +0 -1
  1044. package/dist/search-params.d.ts +0 -103
  1045. package/dist/search-params.d.ts.map +0 -1
  1046. package/dist/search-params.js +0 -74
  1047. package/dist/search-params.js.map +0 -1
  1048. package/dist/segment-system.d.ts +0 -75
  1049. package/dist/segment-system.d.ts.map +0 -1
  1050. package/dist/segment-system.js +0 -336
  1051. package/dist/segment-system.js.map +0 -1
  1052. package/dist/server/context.d.ts +0 -245
  1053. package/dist/server/context.d.ts.map +0 -1
  1054. package/dist/server/context.js +0 -197
  1055. package/dist/server/context.js.map +0 -1
  1056. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1057. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1058. package/dist/server/fetchable-loader-store.js +0 -18
  1059. package/dist/server/fetchable-loader-store.js.map +0 -1
  1060. package/dist/server/handle-store.d.ts +0 -85
  1061. package/dist/server/handle-store.d.ts.map +0 -1
  1062. package/dist/server/handle-store.js +0 -142
  1063. package/dist/server/handle-store.js.map +0 -1
  1064. package/dist/server/loader-registry.d.ts +0 -55
  1065. package/dist/server/loader-registry.d.ts.map +0 -1
  1066. package/dist/server/loader-registry.js +0 -132
  1067. package/dist/server/loader-registry.js.map +0 -1
  1068. package/dist/server/request-context.d.ts +0 -226
  1069. package/dist/server/request-context.d.ts.map +0 -1
  1070. package/dist/server/request-context.js +0 -290
  1071. package/dist/server/request-context.js.map +0 -1
  1072. package/dist/server/root-layout.d.ts +0 -4
  1073. package/dist/server/root-layout.d.ts.map +0 -1
  1074. package/dist/server/root-layout.js +0 -5
  1075. package/dist/server/root-layout.js.map +0 -1
  1076. package/dist/server.d.ts +0 -15
  1077. package/dist/server.d.ts.map +0 -1
  1078. package/dist/server.js +0 -20
  1079. package/dist/server.js.map +0 -1
  1080. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1081. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1082. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1083. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1084. package/dist/ssr/index.d.ts +0 -98
  1085. package/dist/ssr/index.d.ts.map +0 -1
  1086. package/dist/ssr/index.js +0 -158
  1087. package/dist/ssr/index.js.map +0 -1
  1088. package/dist/static-handler.d.ts +0 -50
  1089. package/dist/static-handler.d.ts.map +0 -1
  1090. package/dist/static-handler.gen.d.ts +0 -5
  1091. package/dist/static-handler.gen.d.ts.map +0 -1
  1092. package/dist/static-handler.gen.js +0 -5
  1093. package/dist/static-handler.gen.js.map +0 -1
  1094. package/dist/static-handler.js +0 -29
  1095. package/dist/static-handler.js.map +0 -1
  1096. package/dist/theme/ThemeProvider.d.ts +0 -20
  1097. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1098. package/dist/theme/ThemeProvider.js +0 -240
  1099. package/dist/theme/ThemeProvider.js.map +0 -1
  1100. package/dist/theme/ThemeScript.d.ts +0 -48
  1101. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1102. package/dist/theme/ThemeScript.js +0 -13
  1103. package/dist/theme/ThemeScript.js.map +0 -1
  1104. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1105. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1106. package/dist/theme/__tests__/theme.test.js +0 -103
  1107. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1108. package/dist/theme/constants.d.ts +0 -29
  1109. package/dist/theme/constants.d.ts.map +0 -1
  1110. package/dist/theme/constants.js +0 -48
  1111. package/dist/theme/constants.js.map +0 -1
  1112. package/dist/theme/index.d.ts +0 -31
  1113. package/dist/theme/index.d.ts.map +0 -1
  1114. package/dist/theme/index.js +0 -36
  1115. package/dist/theme/index.js.map +0 -1
  1116. package/dist/theme/theme-context.d.ts +0 -40
  1117. package/dist/theme/theme-context.d.ts.map +0 -1
  1118. package/dist/theme/theme-context.js +0 -60
  1119. package/dist/theme/theme-context.js.map +0 -1
  1120. package/dist/theme/theme-script.d.ts +0 -27
  1121. package/dist/theme/theme-script.d.ts.map +0 -1
  1122. package/dist/theme/theme-script.js +0 -147
  1123. package/dist/theme/theme-script.js.map +0 -1
  1124. package/dist/theme/types.d.ts +0 -163
  1125. package/dist/theme/types.d.ts.map +0 -1
  1126. package/dist/theme/types.js +0 -11
  1127. package/dist/theme/types.js.map +0 -1
  1128. package/dist/theme/use-theme.d.ts +0 -12
  1129. package/dist/theme/use-theme.d.ts.map +0 -1
  1130. package/dist/theme/use-theme.js +0 -40
  1131. package/dist/theme/use-theme.js.map +0 -1
  1132. package/dist/types.d.ts +0 -1479
  1133. package/dist/types.d.ts.map +0 -1
  1134. package/dist/types.js +0 -10
  1135. package/dist/types.js.map +0 -1
  1136. package/dist/urls.d.ts +0 -441
  1137. package/dist/urls.d.ts.map +0 -1
  1138. package/dist/urls.gen.d.ts +0 -8
  1139. package/dist/urls.gen.d.ts.map +0 -1
  1140. package/dist/urls.gen.js +0 -8
  1141. package/dist/urls.gen.js.map +0 -1
  1142. package/dist/urls.js +0 -443
  1143. package/dist/urls.js.map +0 -1
  1144. package/dist/use-loader.d.ts +0 -127
  1145. package/dist/use-loader.d.ts.map +0 -1
  1146. package/dist/use-loader.js +0 -237
  1147. package/dist/use-loader.js.map +0 -1
  1148. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1149. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1150. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1151. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1152. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1153. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1154. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1155. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1156. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1157. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1158. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1159. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1160. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1161. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1162. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1163. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1164. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1165. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1166. package/dist/vite/ast-handler-extract.js +0 -249
  1167. package/dist/vite/ast-handler-extract.js.map +0 -1
  1168. package/dist/vite/expose-action-id.d.ts +0 -19
  1169. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1170. package/dist/vite/expose-action-id.js +0 -250
  1171. package/dist/vite/expose-action-id.js.map +0 -1
  1172. package/dist/vite/expose-id-utils.d.ts +0 -69
  1173. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1174. package/dist/vite/expose-id-utils.js +0 -289
  1175. package/dist/vite/expose-id-utils.js.map +0 -1
  1176. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1177. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1178. package/dist/vite/expose-internal-ids.js +0 -886
  1179. package/dist/vite/expose-internal-ids.js.map +0 -1
  1180. package/dist/vite/index.d.ts +0 -149
  1181. package/dist/vite/index.d.ts.map +0 -1
  1182. package/dist/vite/index.js.bak +0 -5448
  1183. package/dist/vite/index.js.map +0 -1
  1184. package/dist/vite/index.named-routes.gen.ts +0 -103
  1185. package/dist/vite/package-resolution.d.ts +0 -43
  1186. package/dist/vite/package-resolution.d.ts.map +0 -1
  1187. package/dist/vite/package-resolution.js +0 -112
  1188. package/dist/vite/package-resolution.js.map +0 -1
  1189. package/dist/vite/virtual-entries.d.ts +0 -25
  1190. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1191. package/dist/vite/virtual-entries.js +0 -110
  1192. package/dist/vite/virtual-entries.js.map +0 -1
  1193. package/src/browser/action-response-classifier.ts +0 -99
  1194. package/src/browser/react/use-client-cache.ts +0 -58
  1195. package/src/browser/shallow.ts +0 -40
  1196. package/src/handles/index.ts +0 -7
  1197. package/src/network-error-thrower.tsx +0 -23
  1198. package/src/router/middleware-cookies.ts +0 -55
@@ -0,0 +1,771 @@
1
+ ---
2
+ name: migrate-react-router
3
+ description: Migrate a React Router v7/v6 project to @rangojs/router. Use when the user asks to "migrate from React Router", "convert React Router to Rango", "replace React Router", "move from Remix to Rango", or has a React Router / Remix app they want to port.
4
+ argument-hint: path-to-react-router-app
5
+ ---
6
+
7
+ # Migrate from React Router to @rangojs/router
8
+
9
+ Covers React Router v7 (framework mode and library mode), v6, and Remix v2.
10
+
11
+ ## Why Rango
12
+
13
+ Common reasons to migrate:
14
+
15
+ - **Server components by default** — move from client-first route rendering to
16
+ server-first UI and data fetching.
17
+ See: `/router-setup`, `/route`
18
+ - **Django-style route definition** — `urls()`, `path()`, and `layout()` make
19
+ the route tree explicit instead of splitting behavior across route modules or
20
+ router config objects.
21
+ See: `/route`, `/layout`
22
+ - **Named routes** — reverse URLs by route name instead of repeating path
23
+ strings in links, redirects, and navigation logic.
24
+ See: `/links`, `/typesafety`
25
+ - **Clear execution model** — request scope, render scope, segment boundaries,
26
+ and shared `ctx` behavior are explicit instead of being inferred from route
27
+ module conventions.
28
+ See: `/middleware`, `/loader`
29
+ - **Live data layer** — `createLoader()` and `loader()` keep data fresh
30
+ independently of cached UI. A route can serve cached segments while loaders
31
+ still resolve live on every request.
32
+ See: `/loader`, `/caching`, `/cache-guide`
33
+ - **Explicit caching model** — `cache()` DSL, `revalidate()`, `use cache`, and
34
+ custom cache stores make data and render caching a first-class part of the router.
35
+ See: `/caching`, `/cache-guide`, `/use-cache`
36
+ - **Build-time rendering** — `Static()` and `Prerender()` provide explicit
37
+ build-time rendering for routes that benefit from it.
38
+ See: `/prerender`
39
+ - **Composable route tree** — layouts, includes, middleware, parallels, and
40
+ intercepts compose directly in the route definition.
41
+ See: `/composability`, `/parallel`, `/intercept`
42
+ - **Multi-router flexibility** — support multiple routers, domain routing, and
43
+ more advanced host-routing setups than a single client router tree.
44
+ See: `/host-router`
45
+
46
+ ## Identify the mode first
47
+
48
+ React Router v7 has two modes that require different migration paths:
49
+
50
+ - **Framework mode** (`@react-router/dev` plugin, file-based routing, route module
51
+ API with `loader`/`action`/`meta`/`headers`/`shouldRevalidate` exports) — this is
52
+ the Remix successor. Migration involves replacing the route module convention with
53
+ Rango's `urls()` DSL and server component handlers.
54
+
55
+ - **Library mode** (`createBrowserRouter` or `<BrowserRouter>`, client-side only) —
56
+ migration involves moving from client-side routing to server-rendered RSC with the
57
+ `urls()` DSL.
58
+
59
+ React Router v6 and Remix v2 follow the same patterns as v7 library mode and
60
+ framework mode respectively.
61
+
62
+ ## Migration Strategy
63
+
64
+ Work route-by-route, bottom-up. Start with leaf routes, then layouts, then
65
+ loaders/actions. Verify each route works before moving to the next.
66
+
67
+ ## 1. Project Setup
68
+
69
+ Replace React Router tooling with Vite + Rango:
70
+
71
+ ```bash
72
+ # Framework mode:
73
+ npm remove react-router @react-router/dev @react-router/node @react-router/serve
74
+ # Library mode:
75
+ npm remove react-router react-router-dom
76
+
77
+ npm install @rangojs/router
78
+ ```
79
+
80
+ Replace the `@react-router/dev` Vite plugin with `rango()`:
81
+
82
+ ```typescript
83
+ // vite.config.ts
84
+ // Before: import { reactRouter } from "@react-router/dev/vite";
85
+ import { defineConfig } from "vite";
86
+ import { rango } from "@rangojs/router/vite";
87
+
88
+ export default defineConfig({
89
+ plugins: [rango()],
90
+ });
91
+ ```
92
+
93
+ Delete `react-router.config.ts` — route configuration moves to the `urls()` DSL.
94
+
95
+ ```typescript
96
+ // src/router.tsx
97
+ import { createRouter } from "@rangojs/router";
98
+ import { Document } from "./document";
99
+ import { urlpatterns } from "./urls";
100
+
101
+ export default createRouter({
102
+ document: Document,
103
+ }).routes(urlpatterns);
104
+ ```
105
+
106
+ ## 2. Route Mapping
107
+
108
+ ### RR7 framework mode: route modules → urls() DSL
109
+
110
+ In framework mode, each route is a file with conventional exports (`loader`,
111
+ `action`, `default`, `meta`, `headers`, `shouldRevalidate`, `handle`,
112
+ `ErrorBoundary`, `HydrateFallback`). In Rango, all of these become part of the
113
+ `urls()` DSL or move into the server component handler:
114
+
115
+ ```text
116
+ RR7 route module export → Rango equivalent
117
+ ─────────────────────────────────────────────────────
118
+ default (Component) → handler in path()
119
+ loader → fetch in handler, or createLoader()
120
+ action → "use server" function
121
+ meta → ctx.use(Meta) in handler
122
+ headers → ctx.header() in handler or middleware
123
+ shouldRevalidate → revalidate() DSL
124
+ ErrorBoundary → errorBoundary() DSL
125
+ HydrateFallback → loading() DSL
126
+ handle → createHandle() for cross-segment data (breadcrumbs, etc.)
127
+ clientLoader / clientAction → "use client" component with React hooks
128
+ ```
129
+
130
+ #### Example: full route module migration
131
+
132
+ ```typescript
133
+ // RR7 framework mode: app/routes/product.$slug.tsx
134
+ import type { Route } from "./+types/product.$slug";
135
+
136
+ export async function loader({ params }: Route.LoaderArgs) {
137
+ const product = await getProduct(params.slug);
138
+ if (!product) throw new Response("Not Found", { status: 404 });
139
+ return { product };
140
+ }
141
+
142
+ export async function action({ request }: Route.ActionArgs) {
143
+ const formData = await request.formData();
144
+ await addToCart(formData.get("productId") as string);
145
+ return { ok: true };
146
+ }
147
+
148
+ export function meta({ data }: Route.MetaArgs) {
149
+ return [{ title: data.product.name }];
150
+ }
151
+
152
+ export function headers() {
153
+ return { "Cache-Control": "max-age=300" };
154
+ }
155
+
156
+ export function shouldRevalidate({ actionResult }) {
157
+ return !!actionResult;
158
+ }
159
+
160
+ export default function ProductPage({ loaderData }: Route.ComponentProps) {
161
+ return <div>{loaderData.product.name}</div>;
162
+ }
163
+
164
+ export function ErrorBoundary() {
165
+ return <div>Product error</div>;
166
+ }
167
+ ```
168
+
169
+ ```typescript
170
+ // Rango: urls.tsx + handler
171
+ import { notFound } from "@rangojs/router";
172
+
173
+ const ProductPage: Handler<"product"> = async (ctx) => {
174
+ const product = await getProduct(ctx.params.slug);
175
+ if (!product) notFound("Product not found");
176
+
177
+ const meta = ctx.use(Meta);
178
+ meta({ title: product.name });
179
+ ctx.header("Cache-Control", "max-age=300");
180
+
181
+ return <div>{product.name}</div>;
182
+ };
183
+
184
+ // In urls.tsx:
185
+ path("/product/:slug", ProductPage, { name: "product" }, () => [
186
+ revalidate(({ actionId }) => !!actionId),
187
+ errorBoundary(() => <div>Product error</div>),
188
+ loading(<ProductSkeleton />),
189
+ ])
190
+ ```
191
+
192
+ Key shift: the route module's scattered exports consolidate into the handler
193
+ (data fetching, meta, headers) and the DSL (revalidation, error boundary, loading).
194
+
195
+ ### RR7 file routing → urls() DSL
196
+
197
+ | RR7 file path | Rango |
198
+ | ---------------------------------------- | ------------------------------------------------------------- |
199
+ | `app/routes/_index.tsx` | `path("/", HomePage, { name: "home" })` |
200
+ | `app/routes/about.tsx` | `path("/about", AboutPage, { name: "about" })` |
201
+ | `app/routes/blog.$slug.tsx` | `path("/blog/:slug", BlogPost, { name: "blogPost" })` |
202
+ | `app/routes/files.$.tsx` (splat) | `path("/files/:path+", FileBrowser, { name: "files" })` |
203
+ | `app/routes/dashboard.tsx` (layout) | `layout(<DashboardLayout />, () => [...])` |
204
+ | `app/routes/dashboard._index.tsx` | `path("/dashboard", DashboardIndex, { name: "dashboard" })` |
205
+ | `app/routes/dashboard.settings.tsx` | `path("/dashboard/settings", Settings, { name: "settings" })` |
206
+ | `app/routes/_auth.tsx` (pathless layout) | `layout(<AuthLayout />, () => [...])` |
207
+ | `app/routes/_auth.login.tsx` | `path("/login", LoginPage, { name: "login" })` |
208
+
209
+ ### Library mode: config routes → urls() DSL
210
+
211
+ | React Router | Rango |
212
+ | -------------------------------------- | ------------------------------------------------------- |
213
+ | `path: "/"` | `path("/", HomePage, { name: "home" })` |
214
+ | `path: "about"` | `path("/about", AboutPage, { name: "about" })` |
215
+ | `path: "blog/:slug"` | `path("/blog/:slug", BlogPost, { name: "blogPost" })` |
216
+ | `path: "files/*"` (splat) | `path("/files/:path+", FileBrowser, { name: "files" })` |
217
+ | `path: "docs/:lang?"` (optional param) | `path("/docs/:lang?", Docs, { name: "docs" })` |
218
+
219
+ ### Layouts
220
+
221
+ React Router layouts use `<Outlet />` — same concept in Rango:
222
+
223
+ ```typescript
224
+ // React Router:
225
+ function DashboardLayout() {
226
+ return (
227
+ <div className="dashboard">
228
+ <Outlet />
229
+ </div>
230
+ );
231
+ }
232
+
233
+ // route config:
234
+ { path: "dashboard", element: <DashboardLayout />, children: [...] }
235
+
236
+ // Rango: same <Outlet />, from @rangojs/router/client
237
+ import { Outlet } from "@rangojs/router/client";
238
+
239
+ layout(<DashboardLayout />, () => [
240
+ path("/dashboard", DashboardIndex, { name: "dashboard" }),
241
+ path("/dashboard/settings", Settings, { name: "settings" }),
242
+ ])
243
+ ```
244
+
245
+ ### Dynamic layouts (with data)
246
+
247
+ ```typescript
248
+ // React Router: useLoaderData() in layout component
249
+ function DashboardLayout() {
250
+ const { user } = useLoaderData();
251
+ return <Shell user={user}><Outlet /></Shell>;
252
+ }
253
+
254
+ // Rango: handler function layout (server component)
255
+ layout(async (ctx) => {
256
+ const user = ctx.get("user");
257
+ return (
258
+ <Shell user={user}>
259
+ <Outlet />
260
+ </Shell>
261
+ );
262
+ }, () => [
263
+ path("/dashboard", DashboardIndex, { name: "dashboard" }),
264
+ ])
265
+ ```
266
+
267
+ ### Nested routes
268
+
269
+ React Router's nested route tree maps directly to Rango's `layout()` nesting:
270
+
271
+ ```typescript
272
+ // React Router:
273
+ createBrowserRouter([{
274
+ path: "/",
275
+ element: <RootLayout />,
276
+ children: [
277
+ { path: "dashboard",
278
+ element: <DashboardLayout />,
279
+ children: [
280
+ { index: true, element: <DashboardIndex /> },
281
+ { path: "settings", element: <Settings /> },
282
+ ]
283
+ },
284
+ ]
285
+ }])
286
+
287
+ // Rango:
288
+ urls(({ path, layout }) => [
289
+ layout(<RootLayout />, () => [
290
+ layout(<DashboardLayout />, () => [
291
+ path("/dashboard", DashboardIndex, { name: "dashboard" }),
292
+ path("/dashboard/settings", Settings, { name: "settings" }),
293
+ ]),
294
+ ]),
295
+ ])
296
+ ```
297
+
298
+ ### Route groups / pathless layouts
299
+
300
+ React Router's pathless routes (layout routes without a path) are Rango's
301
+ layouts without a URL prefix:
302
+
303
+ ```typescript
304
+ // React Router: { element: <AuthLayout />, children: [...] }
305
+
306
+ // Rango: layout with no URL segment
307
+ layout(<AuthLayout />, () => [
308
+ path("/login", LoginPage, { name: "login" }),
309
+ path("/register", RegisterPage, { name: "register" }),
310
+ ])
311
+ ```
312
+
313
+ ### Index routes
314
+
315
+ ```typescript
316
+ // React Router: { index: true, element: <Home /> }
317
+
318
+ // Rango: path with "/" inside a layout
319
+ layout(<RootLayout />, () => [
320
+ path("/", HomePage, { name: "home" }),
321
+ ])
322
+ ```
323
+
324
+ ## 3. Data Fetching
325
+
326
+ ### Loaders → handler (the default migration)
327
+
328
+ In React Router, loaders and components are separate: the loader fetches data,
329
+ the component renders it via `useLoaderData()`. In Rango, server component
330
+ handlers do both — combine the loader and component into a single handler:
331
+
332
+ ```typescript
333
+ // React Router: separate loader + component
334
+ export async function loader({ params }) {
335
+ const product = await getProduct(params.slug);
336
+ return { product };
337
+ }
338
+ function ProductPage() {
339
+ const { product } = useLoaderData();
340
+ return <div>{product.name}</div>;
341
+ }
342
+
343
+ // Rango: handler fetches and renders directly
344
+ const ProductPage: Handler<"product"> = async (ctx) => {
345
+ const product = await getProduct(ctx.params.slug);
346
+ return <div>{product.name}</div>;
347
+ };
348
+ ```
349
+
350
+ This is the standard migration path. The handler IS the loader — it fetches
351
+ data, then returns JSX. No separate data-fetching layer needed.
352
+
353
+ ### When to use createLoader()
354
+
355
+ Rango's `createLoader()` is a live data layer, not a loader migration target.
356
+ Use it only when you need capabilities beyond what the handler provides:
357
+
358
+ - **Client-side reactive data** — `useLoader()` in client components for data
359
+ that updates without a full page navigation
360
+ - **Shared data across segments** — a loader registered on a layout is available
361
+ to all child routes via `ctx.use(Loader)` or `useLoader(Loader)`
362
+ - **Independent revalidation** — `revalidate()` on a specific loader after actions
363
+ - **Per-loader caching** — `loader(L, () => [cache({ ttl: 60 })])`
364
+
365
+ If the React Router loader just fetches data for its page component, merge it
366
+ into the handler. See `/loader` for when the live data layer is useful.
367
+
368
+ ### Actions
369
+
370
+ React Router form actions map to Rango server actions:
371
+
372
+ ```typescript
373
+ // React Router:
374
+ export async function action({ request }) {
375
+ const formData = await request.formData();
376
+ await updateUser(formData.get("name"));
377
+ return redirect("/profile");
378
+ }
379
+ function EditProfile() {
380
+ return (
381
+ <Form method="post">
382
+ <input name="name" />
383
+ <button type="submit">Save</button>
384
+ </Form>
385
+ );
386
+ }
387
+
388
+ // Rango: "use server" action + native form or useActionState
389
+ "use server";
390
+ import { redirect } from "@rangojs/router";
391
+
392
+ export async function updateProfile(formData: FormData): Promise<void> {
393
+ await updateUser(formData.get("name") as string);
394
+ throw redirect("/profile");
395
+ }
396
+
397
+ // Client component:
398
+ function EditProfile() {
399
+ return (
400
+ <form action={updateProfile}>
401
+ <input name="name" />
402
+ <button type="submit">Save</button>
403
+ </form>
404
+ );
405
+ }
406
+ ```
407
+
408
+ Key difference: React Router actions are route-scoped (declared per route).
409
+ Rango actions are function-scoped (`"use server"` on any exported async function).
410
+
411
+ ### useLoaderData
412
+
413
+ There is no `useLoaderData()` in Rango. For most cases, the handler fetches
414
+ and renders directly (see above). When a client component needs live reactive
415
+ data, use `createLoader()` + `useLoader()`:
416
+
417
+ ```typescript
418
+ // React Router: useLoaderData() in client component
419
+ function ProductPrice() {
420
+ const { price } = useLoaderData();
421
+ return <span>{price}</span>;
422
+ }
423
+
424
+ // Rango: useLoader() reads from a registered loader (live data layer)
425
+ "use client";
426
+ import { useLoader } from "@rangojs/router/client";
427
+ import { PriceLoader } from "../loaders";
428
+
429
+ function ProductPrice() {
430
+ const { data } = useLoader(PriceLoader);
431
+ return <span>{data.price}</span>;
432
+ }
433
+ ```
434
+
435
+ `useLoader()` provides live data that stays fresh — it re-fetches on navigation
436
+ and after actions (controlled by `revalidate()`). This is different from
437
+ `useLoaderData()` which just reads a snapshot.
438
+
439
+ ### useActionData
440
+
441
+ React Router's `useActionData()` reads the return value of a route-scoped
442
+ `action()`. In Rango, actions are standard React server actions (`"use server"`),
443
+ so all React patterns apply directly:
444
+
445
+ ```typescript
446
+ // React Router:
447
+ export async function action({ request }) {
448
+ const form = await request.formData();
449
+ const errors = validate(form);
450
+ if (errors) return { errors };
451
+ await save(form);
452
+ return { ok: true };
453
+ }
454
+ function EditForm() {
455
+ const data = useActionData();
456
+ return (
457
+ <Form method="post">
458
+ {data?.errors && <p>{data.errors}</p>}
459
+ <input name="title" />
460
+ <button>Save</button>
461
+ </Form>
462
+ );
463
+ }
464
+
465
+ // Rango: useActionState (standard React hook)
466
+ "use client";
467
+ import { useActionState } from "react";
468
+ import { saveForm } from "../actions"; // "use server" function
469
+
470
+ function EditForm() {
471
+ const [state, action, pending] = useActionState(saveForm, null);
472
+ return (
473
+ <form action={action}>
474
+ {state?.errors && <p>{state.errors}</p>}
475
+ <input name="title" />
476
+ <button disabled={pending}>Save</button>
477
+ </form>
478
+ );
479
+ }
480
+ ```
481
+
482
+ Since Rango uses RSC server actions, all React action patterns work:
483
+ `useActionState`, `useOptimistic`, `useTransition`, `startTransition`,
484
+ and plain `<form action={serverAction}>`. No framework-specific hook needed.
485
+
486
+ For the full guide — defining actions, validation with Zod, error handling,
487
+ revalidation rules, file uploads, and progressive enhancement — see
488
+ `/server-actions`.
489
+
490
+ ### clientLoader / clientAction (framework mode)
491
+
492
+ RR7 framework mode's `clientLoader` and `clientAction` run in the browser.
493
+ Rango does not have a framework-level client loader/action concept — these
494
+ migrate to standard React client-side code:
495
+
496
+ ```typescript
497
+ // RR7: clientLoader fetching from a third-party API
498
+ export async function clientLoader() {
499
+ const res = await fetch("https://api.weather.com/current?city=london");
500
+ return res.json();
501
+ }
502
+
503
+ // Rango: "use client" component with hooks
504
+ "use client";
505
+ import { useState, useEffect } from "react";
506
+
507
+ function WeatherWidget() {
508
+ const [weather, setWeather] = useState(null);
509
+ useEffect(() => {
510
+ fetch("https://api.weather.com/current?city=london")
511
+ .then((r) => r.json())
512
+ .then(setWeather);
513
+ }, []);
514
+ if (!weather) return <span>Loading...</span>;
515
+ return <span>{weather.temp}°C</span>;
516
+ }
517
+ ```
518
+
519
+ The general rule: anything that ran in `clientLoader`/`clientAction` moves into
520
+ React hooks (`useState`, `useEffect`, `useActionState`, `useOptimistic`) inside
521
+ a `"use client"` component. There is no framework wrapper — it's just React.
522
+
523
+ ### shouldRevalidate (framework mode)
524
+
525
+ RR7's `shouldRevalidate` export maps directly to Rango's `revalidate()` DSL:
526
+
527
+ ```typescript
528
+ // RR7:
529
+ export function shouldRevalidate({ actionResult, currentParams, nextParams }) {
530
+ if (actionResult) return true;
531
+ return currentParams.slug !== nextParams.slug;
532
+ }
533
+
534
+ // Rango:
535
+ path("/product/:slug", ProductPage, { name: "product" }, () => [
536
+ revalidate(({ actionId, currentParams, nextParams }) => {
537
+ if (actionId) return true;
538
+ return currentParams.slug !== nextParams.slug;
539
+ }),
540
+ ]);
541
+ ```
542
+
543
+ Note: RR7's `shouldRevalidate` controls client-side loader re-fetching. Rango's
544
+ `revalidate()` controls which segments re-run during partial rendering after
545
+ navigation or actions. The intent is the same — skip unnecessary work — but
546
+ the mechanism is segment-level rather than loader-level.
547
+
548
+ ## 4. Middleware / Route Protection
549
+
550
+ React Router doesn't have built-in middleware. Protection is typically done in loaders:
551
+
552
+ ```typescript
553
+ // React Router: auth check in loader
554
+ export async function loader({ request }) {
555
+ const user = await getUser(request);
556
+ if (!user) throw redirect("/login");
557
+ return { user };
558
+ }
559
+
560
+ // Rango: router.use() for request-level auth
561
+ const router = createRouter({})
562
+ .use(authInit) // all routes — resolves session
563
+ .use("/dashboard/*", requireAuth) // scoped guard
564
+ .routes(urlpatterns);
565
+ ```
566
+
567
+ Use `router.use()` for auth guards (wraps entire request including actions).
568
+ Use DSL `middleware()` for render-level concerns (context shaping, headers).
569
+ See `/middleware`.
570
+
571
+ ## 5. Loading & Error States
572
+
573
+ ### Loading / Suspense
574
+
575
+ ```typescript
576
+ // React Router: defer() + Suspense, or HydrateFallback
577
+ export async function loader() {
578
+ return defer({ data: fetchData() });
579
+ }
580
+
581
+ // Rango: loading() DSL for automatic Suspense boundaries
582
+ path("/dashboard", DashboardPage, { name: "dashboard" }, () => [
583
+ loading(<DashboardSkeleton />),
584
+ ])
585
+ ```
586
+
587
+ ### Error boundaries
588
+
589
+ ```typescript
590
+ // React Router:
591
+ { path: "dashboard", element: <Dashboard />, errorElement: <ErrorPage /> }
592
+
593
+ // or with ErrorBoundary component:
594
+ function ErrorBoundary() {
595
+ const error = useRouteError();
596
+ return <div>Error: {error.message}</div>;
597
+ }
598
+
599
+ // Rango: errorBoundary() wrapping a group of routes
600
+ // Server-side error boundaries only receive `error` (no `reset` — server render
601
+ // cannot be retried; users can navigate away or refresh).
602
+ layout(<DashboardLayout />, () => [
603
+ errorBoundary(({ error }) => (
604
+ <div>
605
+ <h2>Something went wrong</h2>
606
+ <p>{error.message}</p>
607
+ </div>
608
+ )),
609
+ path("/dashboard", DashboardIndex, { name: "dashboard" }),
610
+ path("/dashboard/settings", Settings, { name: "settings" }),
611
+ ])
612
+ ```
613
+
614
+ ### Not found
615
+
616
+ ```typescript
617
+ // React Router: { path: "*", element: <NotFound /> }
618
+
619
+ // Rango (app-level):
620
+ createRouter({
621
+ notFound: ({ pathname }) => <NotFoundPage pathname={pathname} />,
622
+ })
623
+
624
+ // Rango (route-level — catches notFound() thrown in handlers/loaders):
625
+ layout(<ShopLayout />, () => [
626
+ notFoundBoundary(<ProductNotFound />),
627
+ path("/product/:slug", ProductPage, { name: "product" }),
628
+ ])
629
+ ```
630
+
631
+ ## 6. Navigation
632
+
633
+ | React Router | Rango |
634
+ | ----------------------------------------- | -------------------------------------------------------------------------------- |
635
+ | `import { Link } from "react-router-dom"` | `import { Link } from "@rangojs/router/client"` |
636
+ | `<Link to="/about">` | `<Link to="/about">` |
637
+ | `useNavigate()` | `useRouter()` from `@rangojs/router/client` |
638
+ | `navigate("/about")` | `useRouter().push("/about")` |
639
+ | `navigate("/about", { replace: true })` | `useRouter().replace("/about")` |
640
+ | `navigate(-1)` | `useRouter().back()` |
641
+ | `useLocation().pathname` | `usePathname()` from `@rangojs/router/client` |
642
+ | `useSearchParams()` | `useSearchParams()` from `@rangojs/router/client` |
643
+ | `useParams()` | `useParams()` from `@rangojs/router/client` (or `ctx.params` in server handlers) |
644
+ | `useParams<T>()` | `useParams<T>()` — same generic annotation pattern |
645
+ | `<NavLink>` | `<Link>` with `usePathname()` for active state |
646
+
647
+ ### useNavigate → useRouter
648
+
649
+ ```typescript
650
+ // React Router:
651
+ const navigate = useNavigate();
652
+ navigate("/dashboard");
653
+ navigate(-1);
654
+
655
+ // Rango:
656
+ const router = useRouter();
657
+ router.push("/dashboard");
658
+ router.back();
659
+ ```
660
+
661
+ ## 7. Metadata / Head
662
+
663
+ ```typescript
664
+ // React Router: meta function export (framework mode)
665
+ export function meta() {
666
+ return [{ title: "Home" }, { name: "description", content: "Welcome" }];
667
+ }
668
+
669
+ // Rango: Meta handle in server handlers
670
+ import { Meta } from "@rangojs/router";
671
+
672
+ const HomePage: Handler<"home"> = (ctx) => {
673
+ const meta = ctx.use(Meta);
674
+ meta({ title: "Home" });
675
+ meta({ name: "description", content: "Welcome" });
676
+ return <div>Home page</div>;
677
+ };
678
+ ```
679
+
680
+ Add `<MetaTags />` in the Document component's `<head>`:
681
+
682
+ ```typescript
683
+ import { MetaTags } from "@rangojs/router/client";
684
+
685
+ function Document({ children }: { children: ReactNode }) {
686
+ return (
687
+ <html>
688
+ <head>
689
+ <MetaTags />
690
+ </head>
691
+ <body>{children}</body>
692
+ </html>
693
+ );
694
+ }
695
+ ```
696
+
697
+ ## 8. API / Resource Routes
698
+
699
+ ```typescript
700
+ // React Router (framework mode):
701
+ // app/routes/api.users.ts
702
+ export async function loader() {
703
+ return Response.json(await getUsers());
704
+ }
705
+
706
+ // Rango: response routes
707
+ path.json(
708
+ "/api/users",
709
+ async () => {
710
+ return await getUsers();
711
+ },
712
+ { name: "apiUsers" },
713
+ );
714
+ ```
715
+
716
+ See `/response-routes` for `path.json()`, `path.text()`, `path.html()`, etc.
717
+
718
+ ## 9. Theme / Dark Mode
719
+
720
+ Rango has a built-in theme system with FOUC prevention. If the React Router app
721
+ uses a custom theme provider or `next-themes`, replace it with Rango's theme API:
722
+
723
+ ```typescript
724
+ const router = createRouter({
725
+ theme: true, // or { defaultTheme: "system", attribute: "class" }
726
+ });
727
+ ```
728
+
729
+ Client components use `useTheme()` to read and toggle:
730
+
731
+ ```typescript
732
+ "use client";
733
+ import { useTheme } from "@rangojs/router/theme";
734
+
735
+ function ThemeToggle() {
736
+ const { theme, setTheme } = useTheme();
737
+ return <button onClick={() => setTheme(theme === "dark" ? "light" : "dark")}>{theme}</button>;
738
+ }
739
+ ```
740
+
741
+ See `/theme` for full API including system detection and cookie persistence.
742
+
743
+ ## 10. Key Conceptual Differences
744
+
745
+ | Concept | React Router | Rango |
746
+ | ------------------- | ----------------------------------- | -------------------------------------- |
747
+ | Rendering | Client-side by default, SSR opt-in | Server components by default (RSC) |
748
+ | Data loading | `loader()` + `useLoaderData()` | Direct fetch in server components |
749
+ | Form actions | Route-scoped `action()` | Function-scoped `"use server"` |
750
+ | Route definition | File-based or `createBrowserRouter` | `urls()` DSL with `path()`, `layout()` |
751
+ | Middleware | Not built-in (use loaders) | `router.use()` + DSL `middleware()` |
752
+ | Parallel routes | Not built-in | `parallel()` DSL |
753
+ | Intercepting routes | Not built-in | `intercept()` DSL |
754
+ | Caching | Not built-in | `cache()` DSL, `"use cache"` |
755
+ | Type-safe routes | Partial (v7 framework mode) | Full: params, names, href, reverse |
756
+
757
+ ## Migration Checklist
758
+
759
+ 1. [ ] Set up Vite config with `rango()` plugin
760
+ 2. [ ] Create Document component with `<MetaTags />` in head
761
+ 3. [ ] Create `router.tsx` with `createRouter()`
762
+ 4. [ ] Convert route config / file routes to `urls()` DSL
763
+ 5. [ ] Migrate layouts — keep `<Outlet />` (import from `@rangojs/router/client`)
764
+ 6. [ ] Merge loaders + components into handler functions (fetch + render in one place)
765
+ 7. [ ] Convert React Router actions to `"use server"` functions
766
+ 8. [ ] Migrate auth guards from loaders to `router.use()`
767
+ 9. [ ] Replace `react-router-dom` Link/navigation with `@rangojs/router/client`
768
+ 10. [ ] Convert error boundaries to `errorBoundary()` DSL
769
+ 11. [ ] Update metadata to use `Meta` handle + `<MetaTags />`
770
+ 12. [ ] Replace custom theme provider with `theme: true` in createRouter (see `/theme`)
771
+ 13. [ ] Run `npx rango generate src/` to generate route types