@rangojs/router 0.0.0-experimental.66 → 0.0.0-experimental.66f5aa51

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 (1197) 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 +3012 -1058
  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 +97 -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 +56 -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 +2 -4
  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 +155 -72
  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 +161 -286
  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 +0 -22
  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 +274 -223
  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 +114 -38
  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 +63 -9
  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 +99 -75
  270. package/src/rsc/runtime-warnings.ts +23 -10
  271. package/src/rsc/server-action.ts +258 -115
  272. package/src/rsc/ssr-setup.ts +16 -0
  273. package/src/rsc/types.ts +23 -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 +21 -38
  284. package/src/server/loader-registry.ts +21 -42
  285. package/src/server/request-context.ts +235 -175
  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/plugin-types.ts +126 -8
  357. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  358. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  359. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  360. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  361. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  362. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  363. package/src/vite/plugins/expose-action-id.ts +48 -95
  364. package/src/vite/plugins/expose-id-utils.ts +96 -51
  365. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  366. package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
  367. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  368. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  369. package/src/vite/plugins/expose-internal-ids.ts +534 -304
  370. package/src/vite/plugins/performance-tracks.ts +26 -25
  371. package/src/vite/plugins/refresh-cmd.ts +1 -1
  372. package/src/vite/plugins/use-cache-transform.ts +73 -83
  373. package/src/vite/plugins/version-injector.ts +21 -25
  374. package/src/vite/plugins/version-plugin.ts +37 -40
  375. package/src/vite/plugins/virtual-entries.ts +13 -18
  376. package/src/vite/rango.ts +109 -118
  377. package/src/vite/router-discovery.ts +769 -106
  378. package/src/vite/utils/ast-handler-extract.ts +26 -35
  379. package/src/vite/utils/banner.ts +1 -1
  380. package/src/vite/utils/bundle-analysis.ts +10 -15
  381. package/src/vite/utils/client-chunks.ts +184 -0
  382. package/src/vite/utils/directive-prologue.ts +40 -0
  383. package/src/vite/utils/forward-user-plugins.ts +171 -0
  384. package/src/vite/utils/manifest-utils.ts +4 -59
  385. package/src/vite/utils/package-resolution.ts +20 -52
  386. package/src/vite/utils/prerender-utils.ts +67 -38
  387. package/src/vite/utils/shared-utils.ts +90 -41
  388. package/dist/__internal.d.ts +0 -83
  389. package/dist/__internal.d.ts.map +0 -1
  390. package/dist/__internal.js +0 -19
  391. package/dist/__internal.js.map +0 -1
  392. package/dist/__mocks__/version.d.ts +0 -7
  393. package/dist/__mocks__/version.d.ts.map +0 -1
  394. package/dist/__mocks__/version.js +0 -7
  395. package/dist/__mocks__/version.js.map +0 -1
  396. package/dist/__tests__/client-href.test.d.ts +0 -2
  397. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  398. package/dist/__tests__/client-href.test.js +0 -74
  399. package/dist/__tests__/client-href.test.js.map +0 -1
  400. package/dist/__tests__/component-utils.test.d.ts +0 -2
  401. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  402. package/dist/__tests__/component-utils.test.js +0 -51
  403. package/dist/__tests__/component-utils.test.js.map +0 -1
  404. package/dist/__tests__/event-controller.test.d.ts +0 -2
  405. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  406. package/dist/__tests__/event-controller.test.js +0 -538
  407. package/dist/__tests__/event-controller.test.js.map +0 -1
  408. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  409. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  410. package/dist/__tests__/helpers/route-tree.js +0 -374
  411. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  412. package/dist/__tests__/match-result.test.d.ts +0 -2
  413. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  414. package/dist/__tests__/match-result.test.js +0 -154
  415. package/dist/__tests__/match-result.test.js.map +0 -1
  416. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  417. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  418. package/dist/__tests__/navigation-store.test.js +0 -440
  419. package/dist/__tests__/navigation-store.test.js.map +0 -1
  420. package/dist/__tests__/partial-update.test.d.ts +0 -2
  421. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  422. package/dist/__tests__/partial-update.test.js +0 -1009
  423. package/dist/__tests__/partial-update.test.js.map +0 -1
  424. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  425. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  426. package/dist/__tests__/reverse-types.test.js +0 -656
  427. package/dist/__tests__/reverse-types.test.js.map +0 -1
  428. package/dist/__tests__/route-definition.test.d.ts +0 -2
  429. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  430. package/dist/__tests__/route-definition.test.js +0 -55
  431. package/dist/__tests__/route-definition.test.js.map +0 -1
  432. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  433. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  434. package/dist/__tests__/router-helpers.test.js +0 -377
  435. package/dist/__tests__/router-helpers.test.js.map +0 -1
  436. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  437. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  438. package/dist/__tests__/router-integration-2.test.js +0 -426
  439. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  440. package/dist/__tests__/router-integration.test.d.ts +0 -2
  441. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  442. package/dist/__tests__/router-integration.test.js +0 -1051
  443. package/dist/__tests__/router-integration.test.js.map +0 -1
  444. package/dist/__tests__/search-params.test.d.ts +0 -5
  445. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  446. package/dist/__tests__/search-params.test.js +0 -306
  447. package/dist/__tests__/search-params.test.js.map +0 -1
  448. package/dist/__tests__/segment-system.test.d.ts +0 -2
  449. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  450. package/dist/__tests__/segment-system.test.js +0 -627
  451. package/dist/__tests__/segment-system.test.js.map +0 -1
  452. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  453. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  454. package/dist/__tests__/static-handler-types.test.js +0 -63
  455. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  456. package/dist/__tests__/urls.test.d.ts +0 -2
  457. package/dist/__tests__/urls.test.d.ts.map +0 -1
  458. package/dist/__tests__/urls.test.js +0 -421
  459. package/dist/__tests__/urls.test.js.map +0 -1
  460. package/dist/__tests__/use-mount.test.d.ts +0 -2
  461. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  462. package/dist/__tests__/use-mount.test.js +0 -35
  463. package/dist/__tests__/use-mount.test.js.map +0 -1
  464. package/dist/bin/rango.d.ts +0 -2
  465. package/dist/bin/rango.d.ts.map +0 -1
  466. package/dist/bin/rango.js.map +0 -1
  467. package/dist/browser/event-controller.d.ts +0 -191
  468. package/dist/browser/event-controller.d.ts.map +0 -1
  469. package/dist/browser/event-controller.js +0 -559
  470. package/dist/browser/event-controller.js.map +0 -1
  471. package/dist/browser/index.d.ts +0 -2
  472. package/dist/browser/index.d.ts.map +0 -1
  473. package/dist/browser/index.js +0 -14
  474. package/dist/browser/index.js.map +0 -1
  475. package/dist/browser/link-interceptor.d.ts +0 -38
  476. package/dist/browser/link-interceptor.d.ts.map +0 -1
  477. package/dist/browser/link-interceptor.js +0 -99
  478. package/dist/browser/link-interceptor.js.map +0 -1
  479. package/dist/browser/logging.d.ts +0 -10
  480. package/dist/browser/logging.d.ts.map +0 -1
  481. package/dist/browser/logging.js +0 -29
  482. package/dist/browser/logging.js.map +0 -1
  483. package/dist/browser/lru-cache.d.ts +0 -17
  484. package/dist/browser/lru-cache.d.ts.map +0 -1
  485. package/dist/browser/lru-cache.js +0 -50
  486. package/dist/browser/lru-cache.js.map +0 -1
  487. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  488. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  489. package/dist/browser/merge-segment-loaders.js +0 -102
  490. package/dist/browser/merge-segment-loaders.js.map +0 -1
  491. package/dist/browser/navigation-bridge.d.ts +0 -102
  492. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  493. package/dist/browser/navigation-bridge.js +0 -708
  494. package/dist/browser/navigation-bridge.js.map +0 -1
  495. package/dist/browser/navigation-client.d.ts +0 -25
  496. package/dist/browser/navigation-client.d.ts.map +0 -1
  497. package/dist/browser/navigation-client.js +0 -157
  498. package/dist/browser/navigation-client.js.map +0 -1
  499. package/dist/browser/navigation-store.d.ts +0 -101
  500. package/dist/browser/navigation-store.d.ts.map +0 -1
  501. package/dist/browser/navigation-store.js +0 -625
  502. package/dist/browser/navigation-store.js.map +0 -1
  503. package/dist/browser/partial-update.d.ts +0 -75
  504. package/dist/browser/partial-update.d.ts.map +0 -1
  505. package/dist/browser/partial-update.js +0 -426
  506. package/dist/browser/partial-update.js.map +0 -1
  507. package/dist/browser/react/Link.d.ts +0 -86
  508. package/dist/browser/react/Link.d.ts.map +0 -1
  509. package/dist/browser/react/Link.js +0 -128
  510. package/dist/browser/react/Link.js.map +0 -1
  511. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  512. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  513. package/dist/browser/react/NavigationProvider.js +0 -216
  514. package/dist/browser/react/NavigationProvider.js.map +0 -1
  515. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  516. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  517. package/dist/browser/react/ScrollRestoration.js +0 -57
  518. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  519. package/dist/browser/react/context.d.ts +0 -46
  520. package/dist/browser/react/context.d.ts.map +0 -1
  521. package/dist/browser/react/context.js +0 -10
  522. package/dist/browser/react/context.js.map +0 -1
  523. package/dist/browser/react/index.d.ts +0 -11
  524. package/dist/browser/react/index.d.ts.map +0 -1
  525. package/dist/browser/react/index.js +0 -22
  526. package/dist/browser/react/index.js.map +0 -1
  527. package/dist/browser/react/location-state-shared.d.ts +0 -63
  528. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  529. package/dist/browser/react/location-state-shared.js +0 -81
  530. package/dist/browser/react/location-state-shared.js.map +0 -1
  531. package/dist/browser/react/location-state.d.ts +0 -23
  532. package/dist/browser/react/location-state.d.ts.map +0 -1
  533. package/dist/browser/react/location-state.js +0 -29
  534. package/dist/browser/react/location-state.js.map +0 -1
  535. package/dist/browser/react/mount-context.d.ts +0 -24
  536. package/dist/browser/react/mount-context.d.ts.map +0 -1
  537. package/dist/browser/react/mount-context.js +0 -24
  538. package/dist/browser/react/mount-context.js.map +0 -1
  539. package/dist/browser/react/use-action.d.ts +0 -64
  540. package/dist/browser/react/use-action.d.ts.map +0 -1
  541. package/dist/browser/react/use-action.js +0 -134
  542. package/dist/browser/react/use-action.js.map +0 -1
  543. package/dist/browser/react/use-client-cache.d.ts +0 -41
  544. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  545. package/dist/browser/react/use-client-cache.js +0 -39
  546. package/dist/browser/react/use-client-cache.js.map +0 -1
  547. package/dist/browser/react/use-handle.d.ts +0 -31
  548. package/dist/browser/react/use-handle.d.ts.map +0 -1
  549. package/dist/browser/react/use-handle.js +0 -144
  550. package/dist/browser/react/use-handle.js.map +0 -1
  551. package/dist/browser/react/use-href.d.ts +0 -33
  552. package/dist/browser/react/use-href.d.ts.map +0 -1
  553. package/dist/browser/react/use-href.js +0 -39
  554. package/dist/browser/react/use-href.js.map +0 -1
  555. package/dist/browser/react/use-link-status.d.ts +0 -37
  556. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  557. package/dist/browser/react/use-link-status.js +0 -99
  558. package/dist/browser/react/use-link-status.js.map +0 -1
  559. package/dist/browser/react/use-mount.d.ts +0 -25
  560. package/dist/browser/react/use-mount.d.ts.map +0 -1
  561. package/dist/browser/react/use-mount.js +0 -30
  562. package/dist/browser/react/use-mount.js.map +0 -1
  563. package/dist/browser/react/use-navigation.d.ts +0 -27
  564. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  565. package/dist/browser/react/use-navigation.js +0 -87
  566. package/dist/browser/react/use-navigation.js.map +0 -1
  567. package/dist/browser/react/use-segments.d.ts +0 -38
  568. package/dist/browser/react/use-segments.d.ts.map +0 -1
  569. package/dist/browser/react/use-segments.js +0 -130
  570. package/dist/browser/react/use-segments.js.map +0 -1
  571. package/dist/browser/request-controller.d.ts +0 -26
  572. package/dist/browser/request-controller.d.ts.map +0 -1
  573. package/dist/browser/request-controller.js +0 -147
  574. package/dist/browser/request-controller.js.map +0 -1
  575. package/dist/browser/rsc-router.d.ts +0 -129
  576. package/dist/browser/rsc-router.d.ts.map +0 -1
  577. package/dist/browser/rsc-router.js +0 -195
  578. package/dist/browser/rsc-router.js.map +0 -1
  579. package/dist/browser/scroll-restoration.d.ts +0 -93
  580. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  581. package/dist/browser/scroll-restoration.js +0 -321
  582. package/dist/browser/scroll-restoration.js.map +0 -1
  583. package/dist/browser/segment-structure-assert.d.ts +0 -17
  584. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  585. package/dist/browser/segment-structure-assert.js +0 -59
  586. package/dist/browser/segment-structure-assert.js.map +0 -1
  587. package/dist/browser/server-action-bridge.d.ts +0 -26
  588. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  589. package/dist/browser/server-action-bridge.js +0 -668
  590. package/dist/browser/server-action-bridge.js.map +0 -1
  591. package/dist/browser/shallow.d.ts +0 -12
  592. package/dist/browser/shallow.d.ts.map +0 -1
  593. package/dist/browser/shallow.js +0 -34
  594. package/dist/browser/shallow.js.map +0 -1
  595. package/dist/browser/types.d.ts +0 -369
  596. package/dist/browser/types.d.ts.map +0 -1
  597. package/dist/browser/types.js +0 -2
  598. package/dist/browser/types.js.map +0 -1
  599. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  600. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  601. package/dist/build/__tests__/generate-cli.test.js +0 -237
  602. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  603. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  604. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  605. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  606. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  607. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  608. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  609. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  610. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  611. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  612. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  613. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  614. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  615. package/dist/build/generate-manifest.d.ts +0 -81
  616. package/dist/build/generate-manifest.d.ts.map +0 -1
  617. package/dist/build/generate-manifest.js +0 -276
  618. package/dist/build/generate-manifest.js.map +0 -1
  619. package/dist/build/generate-route-types.d.ts +0 -115
  620. package/dist/build/generate-route-types.d.ts.map +0 -1
  621. package/dist/build/generate-route-types.js +0 -740
  622. package/dist/build/generate-route-types.js.map +0 -1
  623. package/dist/build/index.d.ts +0 -21
  624. package/dist/build/index.d.ts.map +0 -1
  625. package/dist/build/index.js +0 -21
  626. package/dist/build/index.js.map +0 -1
  627. package/dist/build/route-trie.d.ts +0 -71
  628. package/dist/build/route-trie.d.ts.map +0 -1
  629. package/dist/build/route-trie.js +0 -175
  630. package/dist/build/route-trie.js.map +0 -1
  631. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  632. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  633. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  634. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  635. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  636. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  637. package/dist/cache/__tests__/document-cache.test.js +0 -345
  638. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  639. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  640. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  641. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  642. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  643. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  644. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  645. package/dist/cache/__tests__/memory-store.test.js +0 -367
  646. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  647. package/dist/cache/cache-scope.d.ts +0 -102
  648. package/dist/cache/cache-scope.d.ts.map +0 -1
  649. package/dist/cache/cache-scope.js +0 -440
  650. package/dist/cache/cache-scope.js.map +0 -1
  651. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  652. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  653. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  654. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  655. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  656. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  657. package/dist/cache/cf/cf-cache-store.js +0 -242
  658. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  659. package/dist/cache/cf/index.d.ts +0 -14
  660. package/dist/cache/cf/index.d.ts.map +0 -1
  661. package/dist/cache/cf/index.js +0 -17
  662. package/dist/cache/cf/index.js.map +0 -1
  663. package/dist/cache/document-cache.d.ts +0 -64
  664. package/dist/cache/document-cache.d.ts.map +0 -1
  665. package/dist/cache/document-cache.js +0 -228
  666. package/dist/cache/document-cache.js.map +0 -1
  667. package/dist/cache/index.d.ts +0 -19
  668. package/dist/cache/index.d.ts.map +0 -1
  669. package/dist/cache/index.js +0 -21
  670. package/dist/cache/index.js.map +0 -1
  671. package/dist/cache/memory-segment-store.d.ts +0 -110
  672. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  673. package/dist/cache/memory-segment-store.js +0 -117
  674. package/dist/cache/memory-segment-store.js.map +0 -1
  675. package/dist/cache/memory-store.d.ts +0 -41
  676. package/dist/cache/memory-store.d.ts.map +0 -1
  677. package/dist/cache/memory-store.js +0 -191
  678. package/dist/cache/memory-store.js.map +0 -1
  679. package/dist/cache/types.d.ts +0 -317
  680. package/dist/cache/types.d.ts.map +0 -1
  681. package/dist/cache/types.js +0 -12
  682. package/dist/cache/types.js.map +0 -1
  683. package/dist/client.d.ts +0 -248
  684. package/dist/client.d.ts.map +0 -1
  685. package/dist/client.js +0 -367
  686. package/dist/client.js.map +0 -1
  687. package/dist/client.rsc.d.ts +0 -26
  688. package/dist/client.rsc.d.ts.map +0 -1
  689. package/dist/client.rsc.js +0 -46
  690. package/dist/client.rsc.js.map +0 -1
  691. package/dist/component-utils.d.ts +0 -36
  692. package/dist/component-utils.d.ts.map +0 -1
  693. package/dist/component-utils.js +0 -61
  694. package/dist/component-utils.js.map +0 -1
  695. package/dist/components/DefaultDocument.d.ts +0 -13
  696. package/dist/components/DefaultDocument.d.ts.map +0 -1
  697. package/dist/components/DefaultDocument.js +0 -15
  698. package/dist/components/DefaultDocument.js.map +0 -1
  699. package/dist/debug.d.ts +0 -58
  700. package/dist/debug.d.ts.map +0 -1
  701. package/dist/debug.js +0 -157
  702. package/dist/debug.js.map +0 -1
  703. package/dist/default-error-boundary.d.ts +0 -11
  704. package/dist/default-error-boundary.d.ts.map +0 -1
  705. package/dist/default-error-boundary.js +0 -45
  706. package/dist/default-error-boundary.js.map +0 -1
  707. package/dist/deps/browser.d.ts +0 -2
  708. package/dist/deps/browser.d.ts.map +0 -1
  709. package/dist/deps/browser.js +0 -3
  710. package/dist/deps/browser.js.map +0 -1
  711. package/dist/deps/html-stream-client.d.ts +0 -2
  712. package/dist/deps/html-stream-client.d.ts.map +0 -1
  713. package/dist/deps/html-stream-client.js +0 -3
  714. package/dist/deps/html-stream-client.js.map +0 -1
  715. package/dist/deps/html-stream-server.d.ts +0 -2
  716. package/dist/deps/html-stream-server.d.ts.map +0 -1
  717. package/dist/deps/html-stream-server.js +0 -3
  718. package/dist/deps/html-stream-server.js.map +0 -1
  719. package/dist/deps/rsc.d.ts +0 -2
  720. package/dist/deps/rsc.d.ts.map +0 -1
  721. package/dist/deps/rsc.js +0 -4
  722. package/dist/deps/rsc.js.map +0 -1
  723. package/dist/deps/ssr.d.ts +0 -2
  724. package/dist/deps/ssr.d.ts.map +0 -1
  725. package/dist/deps/ssr.js +0 -3
  726. package/dist/deps/ssr.js.map +0 -1
  727. package/dist/errors.d.ts +0 -174
  728. package/dist/errors.d.ts.map +0 -1
  729. package/dist/errors.js +0 -241
  730. package/dist/errors.js.map +0 -1
  731. package/dist/handle.d.ts +0 -78
  732. package/dist/handle.d.ts.map +0 -1
  733. package/dist/handle.js +0 -82
  734. package/dist/handle.js.map +0 -1
  735. package/dist/handles/MetaTags.d.ts +0 -14
  736. package/dist/handles/MetaTags.d.ts.map +0 -1
  737. package/dist/handles/MetaTags.js +0 -136
  738. package/dist/handles/MetaTags.js.map +0 -1
  739. package/dist/handles/index.d.ts +0 -6
  740. package/dist/handles/index.d.ts.map +0 -1
  741. package/dist/handles/index.js +0 -6
  742. package/dist/handles/index.js.map +0 -1
  743. package/dist/handles/meta.d.ts +0 -39
  744. package/dist/handles/meta.d.ts.map +0 -1
  745. package/dist/handles/meta.js +0 -202
  746. package/dist/handles/meta.js.map +0 -1
  747. package/dist/host/__tests__/errors.test.d.ts +0 -2
  748. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  749. package/dist/host/__tests__/errors.test.js +0 -76
  750. package/dist/host/__tests__/errors.test.js.map +0 -1
  751. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  752. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  753. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  754. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  755. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  756. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  757. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  758. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  759. package/dist/host/__tests__/router.test.d.ts +0 -2
  760. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  761. package/dist/host/__tests__/router.test.js +0 -241
  762. package/dist/host/__tests__/router.test.js.map +0 -1
  763. package/dist/host/__tests__/testing.test.d.ts +0 -2
  764. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  765. package/dist/host/__tests__/testing.test.js +0 -64
  766. package/dist/host/__tests__/testing.test.js.map +0 -1
  767. package/dist/host/__tests__/utils.test.d.ts +0 -2
  768. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  769. package/dist/host/__tests__/utils.test.js +0 -29
  770. package/dist/host/__tests__/utils.test.js.map +0 -1
  771. package/dist/host/cookie-handler.d.ts +0 -34
  772. package/dist/host/cookie-handler.d.ts.map +0 -1
  773. package/dist/host/cookie-handler.js +0 -124
  774. package/dist/host/cookie-handler.js.map +0 -1
  775. package/dist/host/errors.d.ts +0 -56
  776. package/dist/host/errors.d.ts.map +0 -1
  777. package/dist/host/errors.js +0 -79
  778. package/dist/host/errors.js.map +0 -1
  779. package/dist/host/index.d.ts +0 -29
  780. package/dist/host/index.d.ts.map +0 -1
  781. package/dist/host/index.js +0 -32
  782. package/dist/host/index.js.map +0 -1
  783. package/dist/host/pattern-matcher.d.ts +0 -36
  784. package/dist/host/pattern-matcher.d.ts.map +0 -1
  785. package/dist/host/pattern-matcher.js +0 -172
  786. package/dist/host/pattern-matcher.js.map +0 -1
  787. package/dist/host/router.d.ts +0 -26
  788. package/dist/host/router.d.ts.map +0 -1
  789. package/dist/host/router.js +0 -218
  790. package/dist/host/router.js.map +0 -1
  791. package/dist/host/testing.d.ts +0 -36
  792. package/dist/host/testing.d.ts.map +0 -1
  793. package/dist/host/testing.js +0 -55
  794. package/dist/host/testing.js.map +0 -1
  795. package/dist/host/types.d.ts +0 -115
  796. package/dist/host/types.d.ts.map +0 -1
  797. package/dist/host/types.js +0 -7
  798. package/dist/host/types.js.map +0 -1
  799. package/dist/host/utils.d.ts +0 -21
  800. package/dist/host/utils.d.ts.map +0 -1
  801. package/dist/host/utils.js +0 -23
  802. package/dist/host/utils.js.map +0 -1
  803. package/dist/href-client.d.ts +0 -131
  804. package/dist/href-client.d.ts.map +0 -1
  805. package/dist/href-client.js +0 -64
  806. package/dist/href-client.js.map +0 -1
  807. package/dist/href-context.d.ts +0 -29
  808. package/dist/href-context.d.ts.map +0 -1
  809. package/dist/href-context.js +0 -21
  810. package/dist/href-context.js.map +0 -1
  811. package/dist/index.d.ts +0 -73
  812. package/dist/index.d.ts.map +0 -1
  813. package/dist/index.js +0 -91
  814. package/dist/index.js.map +0 -1
  815. package/dist/index.rsc.d.ts +0 -32
  816. package/dist/index.rsc.d.ts.map +0 -1
  817. package/dist/index.rsc.js +0 -40
  818. package/dist/index.rsc.js.map +0 -1
  819. package/dist/internal-debug.d.ts +0 -2
  820. package/dist/internal-debug.d.ts.map +0 -1
  821. package/dist/internal-debug.js +0 -5
  822. package/dist/internal-debug.js.map +0 -1
  823. package/dist/loader.d.ts +0 -14
  824. package/dist/loader.d.ts.map +0 -1
  825. package/dist/loader.js +0 -20
  826. package/dist/loader.js.map +0 -1
  827. package/dist/loader.rsc.d.ts +0 -19
  828. package/dist/loader.rsc.d.ts.map +0 -1
  829. package/dist/loader.rsc.js +0 -99
  830. package/dist/loader.rsc.js.map +0 -1
  831. package/dist/network-error-thrower.d.ts +0 -17
  832. package/dist/network-error-thrower.d.ts.map +0 -1
  833. package/dist/network-error-thrower.js +0 -14
  834. package/dist/network-error-thrower.js.map +0 -1
  835. package/dist/outlet-context.d.ts +0 -13
  836. package/dist/outlet-context.d.ts.map +0 -1
  837. package/dist/outlet-context.js +0 -3
  838. package/dist/outlet-context.js.map +0 -1
  839. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  840. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  841. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  842. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  843. package/dist/prerender/param-hash.d.ts +0 -16
  844. package/dist/prerender/param-hash.d.ts.map +0 -1
  845. package/dist/prerender/param-hash.js +0 -36
  846. package/dist/prerender/param-hash.js.map +0 -1
  847. package/dist/prerender/store.d.ts +0 -38
  848. package/dist/prerender/store.d.ts.map +0 -1
  849. package/dist/prerender/store.js +0 -61
  850. package/dist/prerender/store.js.map +0 -1
  851. package/dist/prerender.d.ts +0 -66
  852. package/dist/prerender.d.ts.map +0 -1
  853. package/dist/prerender.js +0 -57
  854. package/dist/prerender.js.map +0 -1
  855. package/dist/reverse.d.ts +0 -196
  856. package/dist/reverse.d.ts.map +0 -1
  857. package/dist/reverse.js +0 -78
  858. package/dist/reverse.js.map +0 -1
  859. package/dist/root-error-boundary.d.ts +0 -33
  860. package/dist/root-error-boundary.d.ts.map +0 -1
  861. package/dist/root-error-boundary.js +0 -165
  862. package/dist/root-error-boundary.js.map +0 -1
  863. package/dist/route-content-wrapper.d.ts +0 -46
  864. package/dist/route-content-wrapper.d.ts.map +0 -1
  865. package/dist/route-content-wrapper.js +0 -77
  866. package/dist/route-content-wrapper.js.map +0 -1
  867. package/dist/route-definition.d.ts +0 -421
  868. package/dist/route-definition.d.ts.map +0 -1
  869. package/dist/route-definition.js +0 -868
  870. package/dist/route-definition.js.map +0 -1
  871. package/dist/route-map-builder.d.ts +0 -155
  872. package/dist/route-map-builder.d.ts.map +0 -1
  873. package/dist/route-map-builder.js +0 -237
  874. package/dist/route-map-builder.js.map +0 -1
  875. package/dist/route-types.d.ts +0 -165
  876. package/dist/route-types.d.ts.map +0 -1
  877. package/dist/route-types.js +0 -7
  878. package/dist/route-types.js.map +0 -1
  879. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  880. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  881. package/dist/router/__tests__/handler-context.test.js +0 -65
  882. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  883. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  884. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  885. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  886. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  887. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  888. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  889. package/dist/router/__tests__/match-context.test.js +0 -92
  890. package/dist/router/__tests__/match-context.test.js.map +0 -1
  891. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  892. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  893. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  894. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  895. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  896. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  897. package/dist/router/__tests__/match-result.test.js +0 -457
  898. package/dist/router/__tests__/match-result.test.js.map +0 -1
  899. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  900. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  901. package/dist/router/__tests__/on-error.test.js +0 -678
  902. package/dist/router/__tests__/on-error.test.js.map +0 -1
  903. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  904. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  905. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  906. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  907. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  908. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  909. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  910. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  911. package/dist/router/error-handling.d.ts +0 -77
  912. package/dist/router/error-handling.d.ts.map +0 -1
  913. package/dist/router/error-handling.js +0 -202
  914. package/dist/router/error-handling.js.map +0 -1
  915. package/dist/router/handler-context.d.ts +0 -20
  916. package/dist/router/handler-context.d.ts.map +0 -1
  917. package/dist/router/handler-context.js +0 -198
  918. package/dist/router/handler-context.js.map +0 -1
  919. package/dist/router/intercept-resolution.d.ts +0 -66
  920. package/dist/router/intercept-resolution.d.ts.map +0 -1
  921. package/dist/router/intercept-resolution.js +0 -246
  922. package/dist/router/intercept-resolution.js.map +0 -1
  923. package/dist/router/loader-resolution.d.ts +0 -64
  924. package/dist/router/loader-resolution.d.ts.map +0 -1
  925. package/dist/router/loader-resolution.js +0 -284
  926. package/dist/router/loader-resolution.js.map +0 -1
  927. package/dist/router/logging.d.ts +0 -15
  928. package/dist/router/logging.d.ts.map +0 -1
  929. package/dist/router/logging.js +0 -99
  930. package/dist/router/logging.js.map +0 -1
  931. package/dist/router/manifest.d.ts +0 -22
  932. package/dist/router/manifest.d.ts.map +0 -1
  933. package/dist/router/manifest.js +0 -181
  934. package/dist/router/manifest.js.map +0 -1
  935. package/dist/router/match-api.d.ts +0 -35
  936. package/dist/router/match-api.d.ts.map +0 -1
  937. package/dist/router/match-api.js +0 -406
  938. package/dist/router/match-api.js.map +0 -1
  939. package/dist/router/match-context.d.ts +0 -206
  940. package/dist/router/match-context.d.ts.map +0 -1
  941. package/dist/router/match-context.js +0 -17
  942. package/dist/router/match-context.js.map +0 -1
  943. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  944. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  945. package/dist/router/match-middleware/background-revalidation.js +0 -75
  946. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  947. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  948. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  949. package/dist/router/match-middleware/cache-lookup.js +0 -257
  950. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  951. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  952. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  953. package/dist/router/match-middleware/cache-store.js +0 -108
  954. package/dist/router/match-middleware/cache-store.js.map +0 -1
  955. package/dist/router/match-middleware/index.d.ts +0 -81
  956. package/dist/router/match-middleware/index.d.ts.map +0 -1
  957. package/dist/router/match-middleware/index.js +0 -80
  958. package/dist/router/match-middleware/index.js.map +0 -1
  959. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  960. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  961. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  962. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  963. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  964. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  965. package/dist/router/match-middleware/segment-resolution.js +0 -53
  966. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  967. package/dist/router/match-pipelines.d.ts +0 -147
  968. package/dist/router/match-pipelines.d.ts.map +0 -1
  969. package/dist/router/match-pipelines.js +0 -82
  970. package/dist/router/match-pipelines.js.map +0 -1
  971. package/dist/router/match-result.d.ts +0 -126
  972. package/dist/router/match-result.d.ts.map +0 -1
  973. package/dist/router/match-result.js +0 -93
  974. package/dist/router/match-result.js.map +0 -1
  975. package/dist/router/metrics.d.ts +0 -20
  976. package/dist/router/metrics.d.ts.map +0 -1
  977. package/dist/router/metrics.js +0 -47
  978. package/dist/router/metrics.js.map +0 -1
  979. package/dist/router/middleware.d.ts +0 -249
  980. package/dist/router/middleware.d.ts.map +0 -1
  981. package/dist/router/middleware.js +0 -434
  982. package/dist/router/middleware.js.map +0 -1
  983. package/dist/router/middleware.test.d.ts +0 -2
  984. package/dist/router/middleware.test.d.ts.map +0 -1
  985. package/dist/router/middleware.test.js +0 -816
  986. package/dist/router/middleware.test.js.map +0 -1
  987. package/dist/router/pattern-matching.d.ts +0 -149
  988. package/dist/router/pattern-matching.d.ts.map +0 -1
  989. package/dist/router/pattern-matching.js +0 -349
  990. package/dist/router/pattern-matching.js.map +0 -1
  991. package/dist/router/revalidation.d.ts +0 -44
  992. package/dist/router/revalidation.d.ts.map +0 -1
  993. package/dist/router/revalidation.js +0 -147
  994. package/dist/router/revalidation.js.map +0 -1
  995. package/dist/router/router-context.d.ts +0 -135
  996. package/dist/router/router-context.d.ts.map +0 -1
  997. package/dist/router/router-context.js +0 -36
  998. package/dist/router/router-context.js.map +0 -1
  999. package/dist/router/segment-resolution.d.ts +0 -127
  1000. package/dist/router/segment-resolution.d.ts.map +0 -1
  1001. package/dist/router/segment-resolution.js +0 -919
  1002. package/dist/router/segment-resolution.js.map +0 -1
  1003. package/dist/router/trie-matching.d.ts +0 -40
  1004. package/dist/router/trie-matching.d.ts.map +0 -1
  1005. package/dist/router/trie-matching.js +0 -127
  1006. package/dist/router/trie-matching.js.map +0 -1
  1007. package/dist/router/types.d.ts +0 -136
  1008. package/dist/router/types.d.ts.map +0 -1
  1009. package/dist/router/types.js +0 -7
  1010. package/dist/router/types.js.map +0 -1
  1011. package/dist/router.d.ts +0 -753
  1012. package/dist/router.d.ts.map +0 -1
  1013. package/dist/router.gen.d.ts +0 -6
  1014. package/dist/router.gen.d.ts.map +0 -1
  1015. package/dist/router.gen.js +0 -6
  1016. package/dist/router.gen.js.map +0 -1
  1017. package/dist/router.js +0 -1304
  1018. package/dist/router.js.map +0 -1
  1019. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1020. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1021. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1022. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1023. package/dist/rsc/handler.d.ts +0 -45
  1024. package/dist/rsc/handler.d.ts.map +0 -1
  1025. package/dist/rsc/handler.js +0 -1172
  1026. package/dist/rsc/handler.js.map +0 -1
  1027. package/dist/rsc/helpers.d.ts +0 -16
  1028. package/dist/rsc/helpers.d.ts.map +0 -1
  1029. package/dist/rsc/helpers.js +0 -55
  1030. package/dist/rsc/helpers.js.map +0 -1
  1031. package/dist/rsc/index.d.ts +0 -22
  1032. package/dist/rsc/index.d.ts.map +0 -1
  1033. package/dist/rsc/index.js +0 -23
  1034. package/dist/rsc/index.js.map +0 -1
  1035. package/dist/rsc/nonce.d.ts +0 -9
  1036. package/dist/rsc/nonce.d.ts.map +0 -1
  1037. package/dist/rsc/nonce.js +0 -18
  1038. package/dist/rsc/nonce.js.map +0 -1
  1039. package/dist/rsc/types.d.ts +0 -206
  1040. package/dist/rsc/types.d.ts.map +0 -1
  1041. package/dist/rsc/types.js +0 -8
  1042. package/dist/rsc/types.js.map +0 -1
  1043. package/dist/search-params.d.ts +0 -103
  1044. package/dist/search-params.d.ts.map +0 -1
  1045. package/dist/search-params.js +0 -74
  1046. package/dist/search-params.js.map +0 -1
  1047. package/dist/segment-system.d.ts +0 -75
  1048. package/dist/segment-system.d.ts.map +0 -1
  1049. package/dist/segment-system.js +0 -336
  1050. package/dist/segment-system.js.map +0 -1
  1051. package/dist/server/context.d.ts +0 -245
  1052. package/dist/server/context.d.ts.map +0 -1
  1053. package/dist/server/context.js +0 -197
  1054. package/dist/server/context.js.map +0 -1
  1055. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1056. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1057. package/dist/server/fetchable-loader-store.js +0 -18
  1058. package/dist/server/fetchable-loader-store.js.map +0 -1
  1059. package/dist/server/handle-store.d.ts +0 -85
  1060. package/dist/server/handle-store.d.ts.map +0 -1
  1061. package/dist/server/handle-store.js +0 -142
  1062. package/dist/server/handle-store.js.map +0 -1
  1063. package/dist/server/loader-registry.d.ts +0 -55
  1064. package/dist/server/loader-registry.d.ts.map +0 -1
  1065. package/dist/server/loader-registry.js +0 -132
  1066. package/dist/server/loader-registry.js.map +0 -1
  1067. package/dist/server/request-context.d.ts +0 -226
  1068. package/dist/server/request-context.d.ts.map +0 -1
  1069. package/dist/server/request-context.js +0 -290
  1070. package/dist/server/request-context.js.map +0 -1
  1071. package/dist/server/root-layout.d.ts +0 -4
  1072. package/dist/server/root-layout.d.ts.map +0 -1
  1073. package/dist/server/root-layout.js +0 -5
  1074. package/dist/server/root-layout.js.map +0 -1
  1075. package/dist/server.d.ts +0 -15
  1076. package/dist/server.d.ts.map +0 -1
  1077. package/dist/server.js +0 -20
  1078. package/dist/server.js.map +0 -1
  1079. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1080. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1081. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1082. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1083. package/dist/ssr/index.d.ts +0 -98
  1084. package/dist/ssr/index.d.ts.map +0 -1
  1085. package/dist/ssr/index.js +0 -158
  1086. package/dist/ssr/index.js.map +0 -1
  1087. package/dist/static-handler.d.ts +0 -50
  1088. package/dist/static-handler.d.ts.map +0 -1
  1089. package/dist/static-handler.gen.d.ts +0 -5
  1090. package/dist/static-handler.gen.d.ts.map +0 -1
  1091. package/dist/static-handler.gen.js +0 -5
  1092. package/dist/static-handler.gen.js.map +0 -1
  1093. package/dist/static-handler.js +0 -29
  1094. package/dist/static-handler.js.map +0 -1
  1095. package/dist/theme/ThemeProvider.d.ts +0 -20
  1096. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1097. package/dist/theme/ThemeProvider.js +0 -240
  1098. package/dist/theme/ThemeProvider.js.map +0 -1
  1099. package/dist/theme/ThemeScript.d.ts +0 -48
  1100. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1101. package/dist/theme/ThemeScript.js +0 -13
  1102. package/dist/theme/ThemeScript.js.map +0 -1
  1103. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1104. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1105. package/dist/theme/__tests__/theme.test.js +0 -103
  1106. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1107. package/dist/theme/constants.d.ts +0 -29
  1108. package/dist/theme/constants.d.ts.map +0 -1
  1109. package/dist/theme/constants.js +0 -48
  1110. package/dist/theme/constants.js.map +0 -1
  1111. package/dist/theme/index.d.ts +0 -31
  1112. package/dist/theme/index.d.ts.map +0 -1
  1113. package/dist/theme/index.js +0 -36
  1114. package/dist/theme/index.js.map +0 -1
  1115. package/dist/theme/theme-context.d.ts +0 -40
  1116. package/dist/theme/theme-context.d.ts.map +0 -1
  1117. package/dist/theme/theme-context.js +0 -60
  1118. package/dist/theme/theme-context.js.map +0 -1
  1119. package/dist/theme/theme-script.d.ts +0 -27
  1120. package/dist/theme/theme-script.d.ts.map +0 -1
  1121. package/dist/theme/theme-script.js +0 -147
  1122. package/dist/theme/theme-script.js.map +0 -1
  1123. package/dist/theme/types.d.ts +0 -163
  1124. package/dist/theme/types.d.ts.map +0 -1
  1125. package/dist/theme/types.js +0 -11
  1126. package/dist/theme/types.js.map +0 -1
  1127. package/dist/theme/use-theme.d.ts +0 -12
  1128. package/dist/theme/use-theme.d.ts.map +0 -1
  1129. package/dist/theme/use-theme.js +0 -40
  1130. package/dist/theme/use-theme.js.map +0 -1
  1131. package/dist/types.d.ts +0 -1479
  1132. package/dist/types.d.ts.map +0 -1
  1133. package/dist/types.js +0 -10
  1134. package/dist/types.js.map +0 -1
  1135. package/dist/urls.d.ts +0 -441
  1136. package/dist/urls.d.ts.map +0 -1
  1137. package/dist/urls.gen.d.ts +0 -8
  1138. package/dist/urls.gen.d.ts.map +0 -1
  1139. package/dist/urls.gen.js +0 -8
  1140. package/dist/urls.gen.js.map +0 -1
  1141. package/dist/urls.js +0 -443
  1142. package/dist/urls.js.map +0 -1
  1143. package/dist/use-loader.d.ts +0 -127
  1144. package/dist/use-loader.d.ts.map +0 -1
  1145. package/dist/use-loader.js +0 -237
  1146. package/dist/use-loader.js.map +0 -1
  1147. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1148. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1149. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1150. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1151. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1152. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1153. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1154. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1155. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1156. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1157. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1158. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1159. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1160. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1161. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1162. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1163. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1164. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1165. package/dist/vite/ast-handler-extract.js +0 -249
  1166. package/dist/vite/ast-handler-extract.js.map +0 -1
  1167. package/dist/vite/expose-action-id.d.ts +0 -19
  1168. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1169. package/dist/vite/expose-action-id.js +0 -250
  1170. package/dist/vite/expose-action-id.js.map +0 -1
  1171. package/dist/vite/expose-id-utils.d.ts +0 -69
  1172. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1173. package/dist/vite/expose-id-utils.js +0 -289
  1174. package/dist/vite/expose-id-utils.js.map +0 -1
  1175. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1176. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1177. package/dist/vite/expose-internal-ids.js +0 -886
  1178. package/dist/vite/expose-internal-ids.js.map +0 -1
  1179. package/dist/vite/index.d.ts +0 -149
  1180. package/dist/vite/index.d.ts.map +0 -1
  1181. package/dist/vite/index.js.bak +0 -5448
  1182. package/dist/vite/index.js.map +0 -1
  1183. package/dist/vite/index.named-routes.gen.ts +0 -103
  1184. package/dist/vite/package-resolution.d.ts +0 -43
  1185. package/dist/vite/package-resolution.d.ts.map +0 -1
  1186. package/dist/vite/package-resolution.js +0 -112
  1187. package/dist/vite/package-resolution.js.map +0 -1
  1188. package/dist/vite/virtual-entries.d.ts +0 -25
  1189. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1190. package/dist/vite/virtual-entries.js +0 -110
  1191. package/dist/vite/virtual-entries.js.map +0 -1
  1192. package/src/browser/action-response-classifier.ts +0 -99
  1193. package/src/browser/react/use-client-cache.ts +0 -58
  1194. package/src/browser/shallow.ts +0 -40
  1195. package/src/handles/index.ts +0 -7
  1196. package/src/network-error-thrower.tsx +0 -23
  1197. package/src/router/middleware-cookies.ts +0 -55
@@ -0,0 +1,584 @@
1
+ ---
2
+ name: migrate-nextjs
3
+ description: Migrate a Next.js App Router project to @rangojs/router. Use when the user asks to "migrate from Next.js", "convert Next.js to Rango", "replace Next.js", or has a Next.js app they want to port.
4
+ argument-hint: [path-to-nextjs-app]
5
+ ---
6
+
7
+ # Migrate from Next.js App Router to @rangojs/router
8
+
9
+ ## Why Rango
10
+
11
+ Common reasons to migrate:
12
+
13
+ - **Server components by default** — keep data fetching on the server without
14
+ framework-specific file conventions.
15
+ See: `/router-setup`, `/route`
16
+ - **Django-style route definition** — `urls()`, `path()`, and `layout()` make
17
+ the route tree explicit instead of spreading routing across many special files.
18
+ See: `/route`, `/layout`
19
+ - **Named routes** — reverse URLs by route name instead of hard-coding path
20
+ strings throughout the app.
21
+ See: `/links`, `/typesafety`
22
+ - **Clear execution model** — request scope, render scope, segment boundaries,
23
+ and shared `ctx` behavior are explicit in the routing model.
24
+ See: `/middleware`, `/loader`
25
+ - **Live data layer** — `createLoader()` and `loader()` keep data fresh
26
+ independently of cached UI. A route can serve cached segments while loaders
27
+ still resolve live on every request.
28
+ See: `/loader`, `/caching`, `/cache-guide`
29
+ - **Explicit caching model** — `cache()` DSL, `revalidate()`, `use cache`, and
30
+ custom cache stores make caching and revalidation behavior visible in code.
31
+ See: `/caching`, `/cache-guide`, `/use-cache`
32
+ - **Build-time rendering** — `Static()` and `Prerender()` provide explicit
33
+ build-time rendering instead of mixing rendering and caching behind conventions.
34
+ See: `/prerender`
35
+ - **Composable route tree** — layouts, includes, middleware, parallels, and
36
+ intercepts compose directly in the route definition.
37
+ See: `/composability`, `/parallel`, `/intercept`
38
+ - **Multi-router flexibility** — support multiple routers, domain routing, and
39
+ worker/edge-style deployment patterns.
40
+ See: `/host-router`
41
+
42
+ ## Migration Strategy
43
+
44
+ Work route-by-route, bottom-up. Start with leaf pages, then layouts, then middleware. Verify each route works before moving to the next.
45
+
46
+ ## 1. Project Setup
47
+
48
+ Replace Next.js tooling with Vite + Rango:
49
+
50
+ ```bash
51
+ npm remove next @next/env
52
+ npm install @rangojs/router @vitejs/plugin-react
53
+ npm install -D vite
54
+ ```
55
+
56
+ ```typescript
57
+ // vite.config.ts
58
+ import { defineConfig } from "vite";
59
+ import { rango } from "@rangojs/router/vite";
60
+
61
+ export default defineConfig({
62
+ plugins: [rango()],
63
+ });
64
+ ```
65
+
66
+ ```typescript
67
+ // src/router.tsx
68
+ import { createRouter } from "@rangojs/router";
69
+ import { Document } from "./document";
70
+ import { urlpatterns } from "./urls";
71
+
72
+ export default createRouter({
73
+ document: Document,
74
+ }).routes(urlpatterns);
75
+ ```
76
+
77
+ The Document component replaces `app/layout.tsx`'s `<html>` wrapper. See `/router-setup` for full config options.
78
+
79
+ ## 2. Route Mapping
80
+
81
+ ### File-based → URL pattern DSL
82
+
83
+ | Next.js file path | Rango equivalent |
84
+ | ------------------------------- | ---------------------------------------------------------- |
85
+ | `app/page.tsx` | `path("/", HomePage, { name: "home" })` |
86
+ | `app/about/page.tsx` | `path("/about", AboutPage, { name: "about" })` |
87
+ | `app/blog/[slug]/page.tsx` | `path("/blog/:slug", BlogPost, { name: "blogPost" })` |
88
+ | `app/shop/[...path]/page.tsx` | `path("/shop/:path+", CatchAll, { name: "shopCatchAll" })` |
89
+ | `app/docs/[[...slug]]/page.tsx` | `path("/docs/:slug*", Docs, { name: "docs" })` |
90
+
91
+ ### Layouts
92
+
93
+ ```typescript
94
+ // Next.js: app/dashboard/layout.tsx
95
+ export default function DashboardLayout({ children }) {
96
+ return <div className="dashboard">{children}</div>;
97
+ }
98
+
99
+ // Rango:
100
+ import { Outlet } from "@rangojs/router/client";
101
+
102
+ function DashboardLayout() {
103
+ return (
104
+ <div className="dashboard">
105
+ <Outlet />
106
+ </div>
107
+ );
108
+ }
109
+
110
+ // In urls.tsx:
111
+ layout(<DashboardLayout />, () => [
112
+ path("/dashboard", DashboardIndex, { name: "dashboard" }),
113
+ path("/dashboard/settings", Settings, { name: "settings" }),
114
+ ])
115
+ ```
116
+
117
+ Key difference: Rango layouts use `<Outlet />` instead of `{children}`. Layouts are server components by default.
118
+
119
+ ### Dynamic layouts (with data)
120
+
121
+ ```typescript
122
+ // Next.js: app/dashboard/layout.tsx
123
+ export default async function DashboardLayout({ children }) {
124
+ const user = await getUser();
125
+ return <Shell user={user}>{children}</Shell>;
126
+ }
127
+
128
+ // Rango: handler function layout
129
+ layout(async (ctx) => {
130
+ const user = ctx.get("user");
131
+ return (
132
+ <Shell user={user}>
133
+ <Outlet />
134
+ </Shell>
135
+ );
136
+ }, () => [
137
+ path("/dashboard", DashboardIndex, { name: "dashboard" }),
138
+ ])
139
+ ```
140
+
141
+ ### Route groups
142
+
143
+ Next.js `app/(marketing)/page.tsx` route groups have no URL segment. In Rango, just organize with `include()`:
144
+
145
+ ```typescript
146
+ // src/urls/marketing.tsx
147
+ export const marketingPatterns = urls(({ path }) => [
148
+ path("/", LandingPage, { name: "landing" }),
149
+ path("/pricing", PricingPage, { name: "pricing" }),
150
+ ]);
151
+
152
+ // src/urls.tsx
153
+ include("/", marketingPatterns, { name: "marketing" }),
154
+ ```
155
+
156
+ ### Parallel routes
157
+
158
+ In Next.js, `@sidebar` and `@main` are both named slots. In Rango, the main content
159
+ renders through `<Outlet />` (the path handler), and only extra slots use `parallel()` +
160
+ `<ParallelOutlet />`:
161
+
162
+ ```typescript
163
+ // Next.js: app/layout.tsx renders {sidebar} and {children}
164
+ // app/@sidebar/page.tsx provides the sidebar slot
165
+ // app/page.tsx provides the main content
166
+
167
+ // Rango: main content is the path handler, sidebar is a parallel slot
168
+ layout(
169
+ () => (
170
+ <div className="dashboard">
171
+ <ParallelOutlet name="@sidebar" />
172
+ <Outlet />
173
+ </div>
174
+ ),
175
+ () => [
176
+ parallel({
177
+ "@sidebar": <Sidebar />,
178
+ }),
179
+ path("/dashboard", DashboardPage, { name: "dashboard" }),
180
+ ],
181
+ )
182
+ ```
183
+
184
+ Only add `parallel()` slots for content that renders alongside the main route.
185
+ The main content always goes through `<Outlet />` via the `path()` handler.
186
+
187
+ ### Intercepting routes
188
+
189
+ ```typescript
190
+ // Next.js: app/(.)product/[id]/page.tsx
191
+ // (convention: (.) means same level, (..) parent level)
192
+
193
+ // Rango: explicit intercept in layout
194
+ layout(<ShopLayout />, () => [
195
+ path("/product/:id", ProductPage, { name: "product" }),
196
+ intercept("@modal", ".product", <ProductModal />, () => [
197
+ when(({ from }) => from.pathname.startsWith("/shop")),
198
+ ]),
199
+ ])
200
+ ```
201
+
202
+ ## 3. Data Fetching
203
+
204
+ ### Server component data fetching
205
+
206
+ Inline `fetch()` or direct DB calls in server components work as-is — no migration needed:
207
+
208
+ ```typescript
209
+ // Next.js:
210
+ async function ProductPage({ params }) {
211
+ const product = await fetch(`/api/products/${params.slug}`).then(r => r.json());
212
+ return <div>{product.name}</div>;
213
+ }
214
+
215
+ // Rango: same pattern, params come from ctx
216
+ const ProductPage: Handler<"product"> = async (ctx) => {
217
+ const product = await fetch(`/api/products/${ctx.params.slug}`).then(r => r.json());
218
+ return <div>{product.name}</div>;
219
+ };
220
+ ```
221
+
222
+ ### When to use createLoader
223
+
224
+ Loaders are Rango's live data layer. Use them when you need:
225
+
226
+ - **Client-side data refresh** — `useLoader()` in client components for reactive data
227
+ - **Per-loader caching** — opt in with `loader(MyLoader, () => [cache({ ttl: 60 })])`; loaders stay live by default
228
+ - **Revalidation control** — `revalidate()` targets specific segments and loaders after actions
229
+ - **Loading skeletons** — `loading()` shows a Suspense fallback while loaders resolve
230
+
231
+ ```typescript
232
+ import { createLoader } from "@rangojs/router";
233
+
234
+ export const ProductLoader = createLoader(async (ctx) => {
235
+ return await db.getProduct(ctx.params.slug);
236
+ });
237
+
238
+ // In urls:
239
+ path("/product/:slug", ProductPage, { name: "product" }, () => [
240
+ loader(ProductLoader),
241
+ loading(<ProductSkeleton />),
242
+ ])
243
+ ```
244
+
245
+ If the existing fetch pattern works and you don't need these features, leave it as-is. See `/loader` for full API.
246
+
247
+ ### generateStaticParams → Prerender + Passthrough
248
+
249
+ Plain `Prerender` only serves the listed params — unlisted params get no live
250
+ fallback in production (the handler is evicted). If the Next.js route serves
251
+ params outside the generated set at runtime, wrap with `Passthrough()`:
252
+
253
+ ```typescript
254
+ // Next.js:
255
+ export async function generateStaticParams() {
256
+ return [{ slug: "a" }, { slug: "b" }];
257
+ }
258
+
259
+ // Rango (build-only, no live fallback for unlisted params):
260
+ import { Prerender } from "@rangojs/router";
261
+
262
+ export const ProductDef = Prerender<{ slug: string }>(
263
+ async () => [{ slug: "a" }, { slug: "b" }],
264
+ async (ctx) => {
265
+ const product = await getProduct(ctx.params.slug);
266
+ return <ProductPage product={product} />;
267
+ },
268
+ );
269
+
270
+ // Rango (with live fallback — matches Next.js dynamicParams behavior):
271
+ import { Prerender, Passthrough } from "@rangojs/router";
272
+
273
+ const ProductDef = Prerender<{ slug: string }>(
274
+ async () => [{ slug: "a" }, { slug: "b" }],
275
+ async (ctx) => {
276
+ const product = await getProduct(ctx.params.slug);
277
+ if (!product) return ctx.passthrough();
278
+ return <ProductPage product={product} />;
279
+ },
280
+ );
281
+
282
+ export const Product = Passthrough(ProductDef, async (ctx) => {
283
+ const product = await getProduct(ctx.params.slug);
284
+ return <ProductPage product={product} />;
285
+ });
286
+ ```
287
+
288
+ Use `Passthrough()` whenever the Next.js route has `dynamicParams: true` (the
289
+ default) or serves an open-ended param space. See `/prerender` for full API.
290
+
291
+ ### Revalidation: two distinct axes
292
+
293
+ Next.js conflates two things under "revalidation." Rango separates them — and
294
+ tag-based cache invalidation now maps directly.
295
+
296
+ **1. Cache invalidation (bust cached values) — direct equivalent.** Tag entries
297
+ with `cache({ tags })` or, inside a `"use cache"` function, runtime
298
+ `cacheTag(...tags)`. Then invalidate by tag:
299
+
300
+ ```typescript
301
+ // Next.js Rango
302
+ // revalidateTag("products") → await updateTag("products") // in a server action: awaitable,
303
+ // // read-your-own-writes (next render is fresh)
304
+ // or revalidateTag("products") // in a route handler / webhook:
305
+ // // background, non-blocking (hard-purge)
306
+ ```
307
+
308
+ `updateTag` is awaitable and immediate; `revalidateTag` is fire-and-forget. Both
309
+ hard-purge (the next read re-renders fresh); the only difference is awaitability —
310
+ despite the Next.js name, `revalidateTag` here is NOT stale-while-revalidate.
311
+ Built-in stores (`MemorySegmentCacheStore`, `CFCacheStore`) index by tag. Next's
312
+ `revalidatePath` has no path-based equivalent — tag the relevant entries instead.
313
+
314
+ **2. Partial-render selection (which segments re-run after an action).** This is
315
+ NOT cache invalidation — it is `revalidate()`, controlling which segments
316
+ (layouts, paths, loaders, parallels) recompute during partial action
317
+ re-rendering:
318
+
319
+ ```typescript
320
+ import { updateBlog } from "./actions/blog";
321
+
322
+ // Re-run this layout when a blog action fires
323
+ layout(BlogLayout, () => [
324
+ revalidate((ctx) => ctx.isAction(updateBlog) || undefined),
325
+ path("/blog/:slug", BlogPost, { name: "blogPost" }),
326
+ ]);
327
+
328
+ // Re-run sidebar parallel when params change
329
+ parallel({ "@sidebar": BlogSidebar }, () => [
330
+ revalidate(
331
+ ({ currentParams, nextParams }) => currentParams.slug !== nextParams.slug,
332
+ ),
333
+ ]);
334
+ ```
335
+
336
+ **Server-side caching** — `cache()` DSL, loader-level `cache()`, and `"use cache"`
337
+ control what gets cached and for how long. This is separate from `revalidate()`:
338
+
339
+ ```typescript
340
+ cache({ ttl: 60, swr: 300 }, () => [
341
+ path("/blog/:slug", BlogPost, { name: "blogPost" }),
342
+ ]);
343
+ ```
344
+
345
+ The two axes compose: `updateTag()` / `revalidateTag()` bust cached values;
346
+ `revalidate()` selects which segments re-render and stream to the client after an
347
+ action.
348
+
349
+ When migrating:
350
+
351
+ - `revalidateTag(tag)` → `await updateTag(tag)` (in a server action) or
352
+ `revalidateTag(tag)` (in a route handler / webhook). Effectively 1:1.
353
+ - `revalidatePath(path)` → no path-based equivalent; tag the entries on that
354
+ route (`cache({ tags })` / `cacheTag(...)`) and invalidate by tag.
355
+ - To also force specific segments to re-render after the action (independent of
356
+ cache busting), attach a `revalidate()` rule at those segment boundaries.
357
+
358
+ ## 4. Middleware
359
+
360
+ Next.js `middleware.ts` wraps the entire request — including server actions.
361
+ The direct equivalent is `router.use()`, not the DSL `middleware()`:
362
+
363
+ ```typescript
364
+ // Next.js: middleware.ts (file-convention, wraps all requests)
365
+ import { NextResponse } from "next/server";
366
+
367
+ export function middleware(request) {
368
+ if (!request.cookies.get("session")) {
369
+ return NextResponse.redirect(new URL("/login", request.url));
370
+ }
371
+ }
372
+ export const config = { matcher: ["/dashboard/:path*"] };
373
+
374
+ // Rango: split into initialisation (global) + guard (scoped)
375
+ import { redirect, cookies } from "@rangojs/router";
376
+ import type { Middleware } from "@rangojs/router";
377
+
378
+ // Runs on every request — resolves the session for all routes
379
+ const authInit: Middleware = async (ctx, next) => {
380
+ const session = cookies().get("session")?.value;
381
+ if (session) {
382
+ const user = await verifySession(session);
383
+ ctx.set("user", user);
384
+ }
385
+ await next();
386
+ };
387
+
388
+ // Scoped guard — redirects unauthenticated users
389
+ const requireAuth: Middleware = async (ctx, next) => {
390
+ if (!ctx.get("user")) {
391
+ return redirect("/login");
392
+ }
393
+ await next();
394
+ };
395
+
396
+ const router = createRouter({})
397
+ .use(authInit) // all routes — sets ctx user
398
+ .use("/dashboard/*", requireAuth) // dashboard only — redirects
399
+ .routes(urlpatterns);
400
+ ```
401
+
402
+ **Rango has two middleware levels with different scopes:**
403
+
404
+ | | `router.use()` | `middleware()` in DSL |
405
+ | ------------------ | ------------------------------------ | ------------------------------- |
406
+ | Wraps | Entire request (actions + rendering) | Rendering only |
407
+ | Use for | Auth guards, logging, CORS | Context shaping, render headers |
408
+ | Next.js equivalent | `middleware.ts` | No direct equivalent |
409
+
410
+ Use `router.use()` for auth guards — it wraps the full request including actions.
411
+ DSL `middleware()` can also guard rendering (e.g. redirect unauthenticated users
412
+ away from a page), but it does not protect actions on that route. For full auth
413
+ coverage, prefer `router.use()`. See `/middleware`.
414
+
415
+ ## 5. Loading & Error States
416
+
417
+ ```typescript
418
+ // Next.js: app/dashboard/loading.tsx
419
+ export default function Loading() { return <Skeleton />; }
420
+
421
+ // Rango:
422
+ path("/dashboard", DashboardPage, { name: "dashboard" }, () => [
423
+ loading(<Skeleton />),
424
+ ])
425
+ ```
426
+
427
+ ```typescript
428
+ // Next.js: app/dashboard/error.tsx wraps all routes under /dashboard
429
+ "use client";
430
+ export default function Error({ error, reset }) { ... }
431
+
432
+ // Rango: errorBoundary wrapping a group of routes
433
+ layout(<DashboardLayout />, () => [
434
+ errorBoundary(({ error, reset }) => (
435
+ <div>
436
+ <h2>Something went wrong</h2>
437
+ <button onClick={reset}>Try again</button>
438
+ </div>
439
+ )),
440
+ path("/dashboard", DashboardIndex, { name: "dashboard" }),
441
+ path("/dashboard/settings", Settings, { name: "settings" }),
442
+ ])
443
+ ```
444
+
445
+ ```typescript
446
+ // Next.js: app/not-found.tsx
447
+ export default function NotFound() { ... }
448
+
449
+ // Rango (app-level — no route match, or notFound() without a boundary):
450
+ createRouter({
451
+ notFound: ({ pathname }) => <NotFoundPage pathname={pathname} />,
452
+ })
453
+
454
+ // Rango (route-level — notFoundBoundary wrapping a group of routes):
455
+ layout(<ShopLayout />, () => [
456
+ notFoundBoundary(({ notFound: info }) => (
457
+ <div>
458
+ <h2>Not Found</h2>
459
+ <p>{info.message}</p>
460
+ </div>
461
+ )),
462
+ path("/product/:slug", ProductPage, { name: "product" }),
463
+ path("/product/:slug/reviews", ReviewsPage, { name: "reviews" }),
464
+ ])
465
+ ```
466
+
467
+ Both `errorBoundary()` and `notFoundBoundary()` catch errors from all
468
+ children in their scope — handlers, loaders, and nested segments.
469
+
470
+ ## 6. Navigation
471
+
472
+ | Next.js | Rango |
473
+ | ------------------------------- | ------------------------------------------------- |
474
+ | `import Link from "next/link"` | `import { Link } from "@rangojs/router/client"` |
475
+ | `<Link href="/about">` | `<Link to="/about">` |
476
+ | `useRouter().push("/about")` | `useRouter().push("/about")` |
477
+ | `useRouter().replace("/about")` | `useRouter().replace("/about")` |
478
+ | `usePathname()` | `usePathname()` from `@rangojs/router/client` |
479
+ | `useSearchParams()` | `useSearchParams()` from `@rangojs/router/client` |
480
+ | `redirect("/login")` (server) | `redirect("/login")` from `@rangojs/router` |
481
+
482
+ ## 7. Server Actions
483
+
484
+ Server actions work the same way — `"use server"` directive, `useActionState`, form actions. No migration needed for action logic.
485
+
486
+ Key difference: in Rango, route middleware does NOT wrap action execution. Actions only see global middleware context. Use `getRequestContext()` in actions to access `ctx.set()`/`ctx.get()`.
487
+
488
+ Next.js's `revalidateTag()` maps directly: tag entries via `cache({ tags })` / `cacheTag(...)`, then invalidate. **In a server action use `await updateTag(tag)`** — it is read-your-own-writes, so the action's own re-render sees fresh data; `revalidateTag(tag)` is a background (non-blocking) hard-purge and is NOT read-your-own-writes, so reserve it for route handlers / webhooks (calling it from an action can leave that action's re-render stale). `revalidatePath()` has no path-based equivalent — tag the route's entries instead. Separately, to force specific matched segments (path/layout/parallel/intercept) and their loaders to re-render after an action, attach a `revalidate(({ actionId }) => ...)` rule to that segment or loader registration. See `/server-actions` for the full pattern (validation, error handling, file uploads), `/caching` for tag invalidation, and `/loader` for revalidation rule semantics.
489
+
490
+ ## 8. Metadata / Head
491
+
492
+ Rango uses the `Meta` handle + `<MetaTags />` client component:
493
+
494
+ ```typescript
495
+ // Next.js: export const metadata = { title: "Home" }
496
+ // Next.js: export function generateMetadata({ params }) { ... }
497
+
498
+ // Rango: Meta handle in handlers (server), MetaTags in document <head> (client)
499
+ import { Meta } from "@rangojs/router";
500
+
501
+ const HomePage: Handler<"home"> = (ctx) => {
502
+ const meta = ctx.use(Meta);
503
+ meta({ title: "Home" });
504
+ meta({ name: "description", content: "Welcome to the site" });
505
+ return <div>Home page</div>;
506
+ };
507
+ ```
508
+
509
+ Add `<MetaTags />` in the Document component's `<head>`:
510
+
511
+ ```typescript
512
+ import { MetaTags } from "@rangojs/router/client";
513
+
514
+ function Document({ children }: { children: ReactNode }) {
515
+ return (
516
+ <html>
517
+ <head>
518
+ <MetaTags />
519
+ </head>
520
+ <body>{children}</body>
521
+ </html>
522
+ );
523
+ }
524
+ ```
525
+
526
+ Later routes override earlier ones for the same meta key (deduplication).
527
+
528
+ ## 9. API Routes
529
+
530
+ ```typescript
531
+ // Next.js: app/api/users/route.ts
532
+ export async function GET(request) { ... }
533
+
534
+ // Rango: response routes
535
+ path.json("/api/users", async (ctx) => {
536
+ const users = await db.getUsers();
537
+ return users;
538
+ }, { name: "apiUsers" })
539
+
540
+ path.text("/api/health", () => "ok", { name: "apiHealth" })
541
+ ```
542
+
543
+ See `/response-routes` for full API.
544
+
545
+ ## 10. Theme / Dark Mode
546
+
547
+ If the Next.js app uses `next-themes` or a custom theme provider, replace it
548
+ with Rango's built-in theme system (FOUC prevention included):
549
+
550
+ ```typescript
551
+ const router = createRouter({
552
+ theme: true, // or { defaultTheme: "system", attribute: "class" }
553
+ });
554
+ ```
555
+
556
+ Client components use `useTheme()` to read and toggle:
557
+
558
+ ```typescript
559
+ "use client";
560
+ import { useTheme } from "@rangojs/router/theme";
561
+
562
+ function ThemeToggle() {
563
+ const { theme, setTheme } = useTheme();
564
+ return <button onClick={() => setTheme(theme === "dark" ? "light" : "dark")}>{theme}</button>;
565
+ }
566
+ ```
567
+
568
+ See `/theme` for full API including system detection and cookie persistence.
569
+
570
+ ## Migration Checklist
571
+
572
+ 1. [ ] Set up Vite config with `rango()` plugin
573
+ 2. [ ] Create Document component (replaces root `<html>` layout)
574
+ 3. [ ] Create `router.tsx` with `createRouter()`
575
+ 4. [ ] Convert file-based routes to `urls()` DSL in `urls.tsx`
576
+ 5. [ ] Migrate layouts to `layout()` with `<Outlet />`
577
+ 6. [ ] Convert data fetching to `createLoader()` + `ctx.use()`
578
+ 7. [ ] Migrate `middleware.ts` to `router.use()` (auth, guards, logging)
579
+ 8. [ ] Replace `next/link` with `Link` from `@rangojs/router/client`
580
+ 9. [ ] Convert loading/error files to `loading()` / `errorBoundary()`
581
+ 10. [ ] Migrate API routes to `path.json()` / `path.text()`
582
+ 11. [ ] Update metadata to use `Meta` handle + `<MetaTags />` in document head
583
+ 12. [ ] Replace `next-themes` with `theme: true` in createRouter (see `/theme`)
584
+ 13. [ ] Run `npx rango generate src/` to generate route types