@rangojs/router 0.0.0-experimental.ce770c9a → 0.0.0-experimental.d5d3070a

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 (1202) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +245 -49
  3. package/dist/bin/rango.js +433 -131
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +3376 -1102
  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 +247 -23
  12. package/skills/caching/SKILL.md +281 -11
  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 +249 -17
  24. package/skills/loader/SKILL.md +279 -53
  25. package/skills/middleware/SKILL.md +52 -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 +144 -7
  31. package/skills/prerender/SKILL.md +153 -109
  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 +101 -5
  36. package/skills/router-setup/SKILL.md +116 -8
  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 +332 -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 +1 -66
  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/app-version.ts +14 -0
  66. package/src/browser/connection-warmup.ts +134 -0
  67. package/src/browser/cookie-name.ts +140 -0
  68. package/src/browser/event-controller.ts +192 -150
  69. package/src/browser/history-state.ts +21 -0
  70. package/src/browser/index.ts +3 -3
  71. package/src/browser/invalidate-client-cache.ts +52 -0
  72. package/src/browser/navigation-bridge.ts +108 -21
  73. package/src/browser/navigation-client.ts +187 -86
  74. package/src/browser/navigation-store-handle.ts +38 -0
  75. package/src/browser/navigation-store.ts +76 -67
  76. package/src/browser/navigation-transaction.ts +9 -59
  77. package/src/browser/network-error-handler.ts +34 -7
  78. package/src/browser/partial-update.ts +150 -107
  79. package/src/browser/prefetch/cache.ts +205 -62
  80. package/src/browser/prefetch/fetch.ts +329 -39
  81. package/src/browser/prefetch/queue.ts +95 -29
  82. package/src/browser/prefetch/resource-ready.ts +77 -0
  83. package/src/browser/rango-state.ts +158 -76
  84. package/src/browser/react/Link.tsx +102 -15
  85. package/src/browser/react/NavigationProvider.tsx +193 -120
  86. package/src/browser/react/ScrollRestoration.tsx +10 -6
  87. package/src/browser/react/context.ts +7 -2
  88. package/src/browser/react/filter-segment-order.ts +66 -7
  89. package/src/browser/react/index.ts +0 -48
  90. package/src/browser/react/location-state-shared.ts +178 -8
  91. package/src/browser/react/location-state.ts +39 -14
  92. package/src/browser/react/use-action.ts +6 -15
  93. package/src/browser/react/use-handle.ts +23 -69
  94. package/src/browser/react/use-href.tsx +8 -1
  95. package/src/browser/react/use-link-status.ts +33 -8
  96. package/src/browser/react/use-navigation.ts +32 -7
  97. package/src/browser/react/use-params.ts +20 -10
  98. package/src/browser/react/use-reverse.ts +106 -0
  99. package/src/browser/react/use-router.ts +46 -11
  100. package/src/browser/react/use-search-params.ts +0 -5
  101. package/src/browser/react/use-segments.ts +11 -21
  102. package/src/browser/response-adapter.ts +80 -5
  103. package/src/browser/rsc-router.tsx +114 -24
  104. package/src/browser/scroll-restoration.ts +37 -22
  105. package/src/browser/segment-reconciler.ts +36 -14
  106. package/src/browser/segment-structure-assert.ts +2 -2
  107. package/src/browser/server-action-bridge.ts +222 -61
  108. package/src/browser/types.ts +82 -11
  109. package/src/browser/validate-redirect-origin.ts +43 -16
  110. package/src/build/collect-fallback-refs.ts +107 -0
  111. package/src/build/generate-manifest.ts +65 -40
  112. package/src/build/generate-route-types.ts +5 -1
  113. package/src/build/index.ts +8 -2
  114. package/src/build/prefix-tree-utils.ts +123 -0
  115. package/src/build/route-trie.ts +165 -36
  116. package/src/build/route-types/ast-route-extraction.ts +15 -8
  117. package/src/build/route-types/codegen.ts +16 -5
  118. package/src/build/route-types/include-resolution.ts +125 -24
  119. package/src/build/route-types/param-extraction.ts +6 -3
  120. package/src/build/route-types/per-module-writer.ts +22 -6
  121. package/src/build/route-types/router-processing.ts +260 -94
  122. package/src/build/route-types/scan-filter.ts +9 -2
  123. package/src/build/route-types/source-scan.ts +216 -0
  124. package/src/build/runtime-discovery.ts +9 -20
  125. package/src/cache/cache-error.ts +104 -0
  126. package/src/cache/cache-key-utils.ts +29 -13
  127. package/src/cache/cache-policy.ts +108 -34
  128. package/src/cache/cache-runtime.ts +214 -48
  129. package/src/cache/cache-scope.ts +234 -87
  130. package/src/cache/cache-tag.ts +103 -0
  131. package/src/cache/cf/cf-base64.ts +33 -0
  132. package/src/cache/cf/cf-cache-constants.ts +127 -0
  133. package/src/cache/cf/cf-cache-store.ts +1989 -378
  134. package/src/cache/cf/cf-cache-types.ts +349 -0
  135. package/src/cache/cf/cf-kv-utils.ts +46 -0
  136. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  137. package/src/cache/cf/index.ts +6 -16
  138. package/src/cache/document-cache.ts +72 -20
  139. package/src/cache/handle-snapshot.ts +70 -0
  140. package/src/cache/index.ts +10 -20
  141. package/src/cache/memory-segment-store.ts +136 -37
  142. package/src/cache/profile-registry.ts +31 -31
  143. package/src/cache/read-through-swr.ts +41 -11
  144. package/src/cache/segment-codec.ts +9 -17
  145. package/src/cache/tag-invalidation.ts +230 -0
  146. package/src/cache/taint.ts +55 -0
  147. package/src/cache/types.ts +37 -100
  148. package/src/client.rsc.tsx +44 -21
  149. package/src/client.tsx +119 -290
  150. package/src/cloudflare/index.ts +11 -0
  151. package/src/cloudflare/tracing.ts +109 -0
  152. package/src/component-utils.ts +19 -0
  153. package/src/components/DefaultDocument.tsx +8 -2
  154. package/src/context-var.ts +84 -2
  155. package/src/decode-loader-results.ts +52 -0
  156. package/src/defer.ts +196 -0
  157. package/src/deps/ssr.ts +0 -1
  158. package/src/encode-kv.ts +49 -0
  159. package/src/errors.ts +30 -4
  160. package/src/escape-script.ts +52 -0
  161. package/src/handle.ts +70 -22
  162. package/src/handles/MetaTags.tsx +62 -19
  163. package/src/handles/Scripts.tsx +183 -0
  164. package/src/handles/breadcrumbs.ts +37 -8
  165. package/src/handles/is-thenable.ts +19 -0
  166. package/src/handles/meta.ts +51 -40
  167. package/src/handles/script.ts +244 -0
  168. package/src/host/cookie-handler.ts +9 -60
  169. package/src/host/errors.ts +0 -24
  170. package/src/host/index.ts +8 -2
  171. package/src/host/pattern-matcher.ts +23 -52
  172. package/src/host/router.ts +107 -99
  173. package/src/host/testing.ts +40 -27
  174. package/src/host/types.ts +37 -4
  175. package/src/host/utils.ts +1 -1
  176. package/src/href-client.ts +137 -22
  177. package/src/index.rsc.ts +93 -12
  178. package/src/index.ts +133 -15
  179. package/src/internal-debug.ts +11 -10
  180. package/src/loader-store.ts +500 -0
  181. package/src/loader.rsc.ts +20 -13
  182. package/src/loader.ts +12 -11
  183. package/src/missing-id-error.ts +68 -0
  184. package/src/outlet-context.ts +1 -1
  185. package/src/outlet-provider.tsx +1 -5
  186. package/src/prerender/param-hash.ts +16 -16
  187. package/src/prerender/store.ts +37 -41
  188. package/src/prerender.ts +198 -82
  189. package/src/redirect-origin.ts +100 -0
  190. package/src/regex-escape.ts +8 -0
  191. package/src/render-error-thrower.tsx +20 -0
  192. package/src/response-utils.ts +62 -0
  193. package/src/reverse.ts +65 -15
  194. package/src/root-error-boundary.tsx +1 -19
  195. package/src/route-content-wrapper.tsx +7 -72
  196. package/src/route-definition/dsl-helpers.ts +445 -277
  197. package/src/route-definition/helper-factories.ts +29 -139
  198. package/src/route-definition/helpers-types.ts +113 -37
  199. package/src/route-definition/index.ts +3 -0
  200. package/src/route-definition/redirect.ts +51 -10
  201. package/src/route-definition/resolve-handler-use.ts +161 -0
  202. package/src/route-definition/use-item-types.ts +32 -0
  203. package/src/route-map-builder.ts +0 -16
  204. package/src/route-types.ts +37 -41
  205. package/src/router/basename.ts +14 -0
  206. package/src/router/content-negotiation.ts +164 -17
  207. package/src/router/error-handling.ts +45 -18
  208. package/src/router/find-match.ts +44 -23
  209. package/src/router/handler-context.ts +83 -39
  210. package/src/router/instrument.ts +350 -0
  211. package/src/router/intercept-resolution.ts +48 -24
  212. package/src/router/lazy-includes.ts +15 -52
  213. package/src/router/loader-resolution.ts +274 -56
  214. package/src/router/logging.ts +0 -6
  215. package/src/router/manifest.ts +40 -42
  216. package/src/router/match-api.ts +120 -204
  217. package/src/router/match-context.ts +0 -22
  218. package/src/router/match-handlers.ts +58 -58
  219. package/src/router/match-middleware/background-revalidation.ts +15 -5
  220. package/src/router/match-middleware/cache-lookup.ts +202 -268
  221. package/src/router/match-middleware/cache-store.ts +42 -28
  222. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  223. package/src/router/match-middleware/segment-resolution.ts +45 -14
  224. package/src/router/match-pipelines.ts +1 -42
  225. package/src/router/match-result.ts +93 -39
  226. package/src/router/metrics.ts +0 -34
  227. package/src/router/middleware-types.ts +13 -142
  228. package/src/router/middleware.ts +268 -171
  229. package/src/router/navigation-snapshot.ts +131 -0
  230. package/src/router/params-util.ts +23 -0
  231. package/src/router/pattern-matching.ts +132 -90
  232. package/src/router/prefetch-cache-ttl.ts +51 -0
  233. package/src/router/prerender-match.ts +195 -56
  234. package/src/router/preview-match.ts +32 -102
  235. package/src/router/request-classification.ts +276 -0
  236. package/src/router/revalidation.ts +123 -73
  237. package/src/router/route-snapshot.ts +244 -0
  238. package/src/router/router-context.ts +3 -27
  239. package/src/router/router-interfaces.ts +115 -35
  240. package/src/router/router-options.ts +172 -15
  241. package/src/router/router-registry.ts +2 -5
  242. package/src/router/segment-resolution/fresh.ts +190 -99
  243. package/src/router/segment-resolution/helpers.ts +115 -30
  244. package/src/router/segment-resolution/loader-cache.ts +62 -37
  245. package/src/router/segment-resolution/revalidation.ts +386 -341
  246. package/src/router/segment-resolution/static-store.ts +19 -5
  247. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  248. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  249. package/src/router/segment-resolution.ts +5 -1
  250. package/src/router/segment-wrappers.ts +6 -5
  251. package/src/router/state-cookie-name.ts +33 -0
  252. package/src/router/substitute-pattern-params.ts +56 -0
  253. package/src/router/telemetry-otel.ts +161 -199
  254. package/src/router/telemetry.ts +96 -19
  255. package/src/router/timeout.ts +0 -20
  256. package/src/router/tracing.ts +206 -0
  257. package/src/router/trie-matching.ts +163 -59
  258. package/src/router/types.ts +10 -63
  259. package/src/router/url-params.ts +44 -0
  260. package/src/router.ts +158 -54
  261. package/src/rsc/handler-context.ts +3 -2
  262. package/src/rsc/handler.ts +658 -511
  263. package/src/rsc/helpers.ts +168 -46
  264. package/src/rsc/index.ts +2 -5
  265. package/src/rsc/json-route-result.ts +38 -0
  266. package/src/rsc/loader-fetch.ts +127 -31
  267. package/src/rsc/manifest-init.ts +33 -42
  268. package/src/rsc/origin-guard.ts +39 -25
  269. package/src/rsc/progressive-enhancement.ts +77 -11
  270. package/src/rsc/redirect-guard.ts +99 -0
  271. package/src/rsc/response-cache-serve.ts +238 -0
  272. package/src/rsc/response-error.ts +79 -12
  273. package/src/rsc/response-route-handler.ts +99 -189
  274. package/src/rsc/rsc-rendering.ts +105 -72
  275. package/src/rsc/runtime-warnings.ts +23 -10
  276. package/src/rsc/server-action.ts +263 -112
  277. package/src/rsc/ssr-setup.ts +18 -2
  278. package/src/rsc/types.ts +32 -6
  279. package/src/runtime-env.ts +18 -0
  280. package/src/search-params.ts +35 -30
  281. package/src/segment-content-promise.ts +67 -0
  282. package/src/segment-loader-promise.ts +149 -0
  283. package/src/segment-system.tsx +218 -202
  284. package/src/serialize.ts +243 -0
  285. package/src/server/context.ts +222 -51
  286. package/src/server/cookie-parse.ts +32 -0
  287. package/src/server/cookie-store.ts +80 -5
  288. package/src/server/handle-store.ts +40 -38
  289. package/src/server/loader-registry.ts +26 -46
  290. package/src/server/request-context.ts +390 -170
  291. package/src/ssr/index.tsx +24 -16
  292. package/src/static-handler.ts +27 -18
  293. package/src/testing/cache-status.ts +162 -0
  294. package/src/testing/collect-handle.ts +40 -0
  295. package/src/testing/dispatch.ts +701 -0
  296. package/src/testing/dom.entry.ts +22 -0
  297. package/src/testing/e2e/fixture.ts +188 -0
  298. package/src/testing/e2e/index.ts +128 -0
  299. package/src/testing/e2e/matchers.ts +35 -0
  300. package/src/testing/e2e/page-helpers.ts +272 -0
  301. package/src/testing/e2e/parity.ts +387 -0
  302. package/src/testing/e2e/server.ts +195 -0
  303. package/src/testing/flight-matchers.ts +97 -0
  304. package/src/testing/flight-normalize.ts +11 -0
  305. package/src/testing/flight-runtime.d.ts +57 -0
  306. package/src/testing/flight-tree.ts +682 -0
  307. package/src/testing/flight.entry.ts +52 -0
  308. package/src/testing/flight.ts +257 -0
  309. package/src/testing/generated-routes.ts +183 -0
  310. package/src/testing/index.ts +99 -0
  311. package/src/testing/internal/context.ts +371 -0
  312. package/src/testing/internal/flight-client-globals.ts +30 -0
  313. package/src/testing/internal/seed-vars.ts +54 -0
  314. package/src/testing/render-handler.ts +343 -0
  315. package/src/testing/render-route.tsx +581 -0
  316. package/src/testing/run-loader.ts +385 -0
  317. package/src/testing/run-middleware.ts +205 -0
  318. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  319. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  320. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  321. package/src/testing/vitest-stubs/version.ts +5 -0
  322. package/src/testing/vitest.ts +305 -0
  323. package/src/theme/ThemeProvider.tsx +20 -58
  324. package/src/theme/ThemeScript.tsx +7 -9
  325. package/src/theme/constants.ts +52 -13
  326. package/src/theme/index.ts +0 -7
  327. package/src/theme/theme-context.ts +1 -5
  328. package/src/theme/theme-script.ts +22 -21
  329. package/src/theme/use-theme.ts +0 -3
  330. package/src/types/boundaries.ts +0 -35
  331. package/src/types/cache-types.ts +17 -8
  332. package/src/types/error-types.ts +30 -90
  333. package/src/types/global-namespace.ts +54 -41
  334. package/src/types/handler-context.ts +233 -81
  335. package/src/types/index.ts +1 -10
  336. package/src/types/loader-types.ts +44 -15
  337. package/src/types/request-scope.ts +112 -0
  338. package/src/types/route-config.ts +6 -50
  339. package/src/types/route-entry.ts +12 -7
  340. package/src/types/segments.ts +36 -15
  341. package/src/urls/include-helper.ts +33 -70
  342. package/src/urls/index.ts +1 -11
  343. package/src/urls/path-helper-types.ts +58 -11
  344. package/src/urls/path-helper.ts +57 -111
  345. package/src/urls/pattern-types.ts +48 -19
  346. package/src/urls/response-types.ts +25 -22
  347. package/src/urls/type-extraction.ts +58 -139
  348. package/src/urls/urls-function.ts +1 -18
  349. package/src/use-loader.tsx +346 -89
  350. package/src/vite/debug.ts +185 -0
  351. package/src/vite/discovery/bundle-postprocess.ts +36 -38
  352. package/src/vite/discovery/discover-routers.ts +130 -85
  353. package/src/vite/discovery/discovery-errors.ts +194 -0
  354. package/src/vite/discovery/gate-state.ts +171 -0
  355. package/src/vite/discovery/prerender-collection.ts +214 -132
  356. package/src/vite/discovery/route-types-writer.ts +40 -84
  357. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  358. package/src/vite/discovery/state.ts +57 -4
  359. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  360. package/src/vite/index.ts +6 -0
  361. package/src/vite/inject-client-debug.ts +36 -0
  362. package/src/vite/plugin-types.ts +178 -5
  363. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  364. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  365. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  366. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  367. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  368. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  369. package/src/vite/plugins/expose-action-id.ts +48 -95
  370. package/src/vite/plugins/expose-id-utils.ts +96 -51
  371. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  372. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  373. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  374. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  375. package/src/vite/plugins/expose-internal-ids.ts +553 -317
  376. package/src/vite/plugins/performance-tracks.ts +89 -0
  377. package/src/vite/plugins/refresh-cmd.ts +89 -27
  378. package/src/vite/plugins/use-cache-transform.ts +73 -83
  379. package/src/vite/plugins/version-injector.ts +21 -25
  380. package/src/vite/plugins/version-plugin.ts +37 -40
  381. package/src/vite/plugins/virtual-entries.ts +13 -18
  382. package/src/vite/rango.ts +119 -111
  383. package/src/vite/router-discovery.ts +941 -142
  384. package/src/vite/utils/ast-handler-extract.ts +26 -35
  385. package/src/vite/utils/banner.ts +1 -1
  386. package/src/vite/utils/bundle-analysis.ts +10 -15
  387. package/src/vite/utils/client-chunks.ts +184 -0
  388. package/src/vite/utils/directive-prologue.ts +40 -0
  389. package/src/vite/utils/forward-user-plugins.ts +171 -0
  390. package/src/vite/utils/manifest-utils.ts +4 -59
  391. package/src/vite/utils/package-resolution.ts +20 -52
  392. package/src/vite/utils/prerender-utils.ts +81 -34
  393. package/src/vite/utils/shared-utils.ts +92 -42
  394. package/dist/__internal.d.ts +0 -83
  395. package/dist/__internal.d.ts.map +0 -1
  396. package/dist/__internal.js +0 -19
  397. package/dist/__internal.js.map +0 -1
  398. package/dist/__mocks__/version.d.ts +0 -7
  399. package/dist/__mocks__/version.d.ts.map +0 -1
  400. package/dist/__mocks__/version.js +0 -7
  401. package/dist/__mocks__/version.js.map +0 -1
  402. package/dist/__tests__/client-href.test.d.ts +0 -2
  403. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  404. package/dist/__tests__/client-href.test.js +0 -74
  405. package/dist/__tests__/client-href.test.js.map +0 -1
  406. package/dist/__tests__/component-utils.test.d.ts +0 -2
  407. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  408. package/dist/__tests__/component-utils.test.js +0 -51
  409. package/dist/__tests__/component-utils.test.js.map +0 -1
  410. package/dist/__tests__/event-controller.test.d.ts +0 -2
  411. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  412. package/dist/__tests__/event-controller.test.js +0 -538
  413. package/dist/__tests__/event-controller.test.js.map +0 -1
  414. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  415. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  416. package/dist/__tests__/helpers/route-tree.js +0 -374
  417. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  418. package/dist/__tests__/match-result.test.d.ts +0 -2
  419. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  420. package/dist/__tests__/match-result.test.js +0 -154
  421. package/dist/__tests__/match-result.test.js.map +0 -1
  422. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  423. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  424. package/dist/__tests__/navigation-store.test.js +0 -440
  425. package/dist/__tests__/navigation-store.test.js.map +0 -1
  426. package/dist/__tests__/partial-update.test.d.ts +0 -2
  427. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  428. package/dist/__tests__/partial-update.test.js +0 -1009
  429. package/dist/__tests__/partial-update.test.js.map +0 -1
  430. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  431. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  432. package/dist/__tests__/reverse-types.test.js +0 -656
  433. package/dist/__tests__/reverse-types.test.js.map +0 -1
  434. package/dist/__tests__/route-definition.test.d.ts +0 -2
  435. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  436. package/dist/__tests__/route-definition.test.js +0 -55
  437. package/dist/__tests__/route-definition.test.js.map +0 -1
  438. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  439. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  440. package/dist/__tests__/router-helpers.test.js +0 -377
  441. package/dist/__tests__/router-helpers.test.js.map +0 -1
  442. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  443. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  444. package/dist/__tests__/router-integration-2.test.js +0 -426
  445. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  446. package/dist/__tests__/router-integration.test.d.ts +0 -2
  447. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  448. package/dist/__tests__/router-integration.test.js +0 -1051
  449. package/dist/__tests__/router-integration.test.js.map +0 -1
  450. package/dist/__tests__/search-params.test.d.ts +0 -5
  451. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  452. package/dist/__tests__/search-params.test.js +0 -306
  453. package/dist/__tests__/search-params.test.js.map +0 -1
  454. package/dist/__tests__/segment-system.test.d.ts +0 -2
  455. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  456. package/dist/__tests__/segment-system.test.js +0 -627
  457. package/dist/__tests__/segment-system.test.js.map +0 -1
  458. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  459. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  460. package/dist/__tests__/static-handler-types.test.js +0 -63
  461. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  462. package/dist/__tests__/urls.test.d.ts +0 -2
  463. package/dist/__tests__/urls.test.d.ts.map +0 -1
  464. package/dist/__tests__/urls.test.js +0 -421
  465. package/dist/__tests__/urls.test.js.map +0 -1
  466. package/dist/__tests__/use-mount.test.d.ts +0 -2
  467. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  468. package/dist/__tests__/use-mount.test.js +0 -35
  469. package/dist/__tests__/use-mount.test.js.map +0 -1
  470. package/dist/bin/rango.d.ts +0 -2
  471. package/dist/bin/rango.d.ts.map +0 -1
  472. package/dist/bin/rango.js.map +0 -1
  473. package/dist/browser/event-controller.d.ts +0 -191
  474. package/dist/browser/event-controller.d.ts.map +0 -1
  475. package/dist/browser/event-controller.js +0 -559
  476. package/dist/browser/event-controller.js.map +0 -1
  477. package/dist/browser/index.d.ts +0 -2
  478. package/dist/browser/index.d.ts.map +0 -1
  479. package/dist/browser/index.js +0 -14
  480. package/dist/browser/index.js.map +0 -1
  481. package/dist/browser/link-interceptor.d.ts +0 -38
  482. package/dist/browser/link-interceptor.d.ts.map +0 -1
  483. package/dist/browser/link-interceptor.js +0 -99
  484. package/dist/browser/link-interceptor.js.map +0 -1
  485. package/dist/browser/logging.d.ts +0 -10
  486. package/dist/browser/logging.d.ts.map +0 -1
  487. package/dist/browser/logging.js +0 -29
  488. package/dist/browser/logging.js.map +0 -1
  489. package/dist/browser/lru-cache.d.ts +0 -17
  490. package/dist/browser/lru-cache.d.ts.map +0 -1
  491. package/dist/browser/lru-cache.js +0 -50
  492. package/dist/browser/lru-cache.js.map +0 -1
  493. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  494. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  495. package/dist/browser/merge-segment-loaders.js +0 -102
  496. package/dist/browser/merge-segment-loaders.js.map +0 -1
  497. package/dist/browser/navigation-bridge.d.ts +0 -102
  498. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  499. package/dist/browser/navigation-bridge.js +0 -708
  500. package/dist/browser/navigation-bridge.js.map +0 -1
  501. package/dist/browser/navigation-client.d.ts +0 -25
  502. package/dist/browser/navigation-client.d.ts.map +0 -1
  503. package/dist/browser/navigation-client.js +0 -157
  504. package/dist/browser/navigation-client.js.map +0 -1
  505. package/dist/browser/navigation-store.d.ts +0 -101
  506. package/dist/browser/navigation-store.d.ts.map +0 -1
  507. package/dist/browser/navigation-store.js +0 -625
  508. package/dist/browser/navigation-store.js.map +0 -1
  509. package/dist/browser/partial-update.d.ts +0 -75
  510. package/dist/browser/partial-update.d.ts.map +0 -1
  511. package/dist/browser/partial-update.js +0 -426
  512. package/dist/browser/partial-update.js.map +0 -1
  513. package/dist/browser/react/Link.d.ts +0 -86
  514. package/dist/browser/react/Link.d.ts.map +0 -1
  515. package/dist/browser/react/Link.js +0 -128
  516. package/dist/browser/react/Link.js.map +0 -1
  517. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  518. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  519. package/dist/browser/react/NavigationProvider.js +0 -216
  520. package/dist/browser/react/NavigationProvider.js.map +0 -1
  521. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  522. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  523. package/dist/browser/react/ScrollRestoration.js +0 -57
  524. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  525. package/dist/browser/react/context.d.ts +0 -46
  526. package/dist/browser/react/context.d.ts.map +0 -1
  527. package/dist/browser/react/context.js +0 -10
  528. package/dist/browser/react/context.js.map +0 -1
  529. package/dist/browser/react/index.d.ts +0 -11
  530. package/dist/browser/react/index.d.ts.map +0 -1
  531. package/dist/browser/react/index.js +0 -22
  532. package/dist/browser/react/index.js.map +0 -1
  533. package/dist/browser/react/location-state-shared.d.ts +0 -63
  534. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  535. package/dist/browser/react/location-state-shared.js +0 -81
  536. package/dist/browser/react/location-state-shared.js.map +0 -1
  537. package/dist/browser/react/location-state.d.ts +0 -23
  538. package/dist/browser/react/location-state.d.ts.map +0 -1
  539. package/dist/browser/react/location-state.js +0 -29
  540. package/dist/browser/react/location-state.js.map +0 -1
  541. package/dist/browser/react/mount-context.d.ts +0 -24
  542. package/dist/browser/react/mount-context.d.ts.map +0 -1
  543. package/dist/browser/react/mount-context.js +0 -24
  544. package/dist/browser/react/mount-context.js.map +0 -1
  545. package/dist/browser/react/use-action.d.ts +0 -64
  546. package/dist/browser/react/use-action.d.ts.map +0 -1
  547. package/dist/browser/react/use-action.js +0 -134
  548. package/dist/browser/react/use-action.js.map +0 -1
  549. package/dist/browser/react/use-client-cache.d.ts +0 -41
  550. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  551. package/dist/browser/react/use-client-cache.js +0 -39
  552. package/dist/browser/react/use-client-cache.js.map +0 -1
  553. package/dist/browser/react/use-handle.d.ts +0 -31
  554. package/dist/browser/react/use-handle.d.ts.map +0 -1
  555. package/dist/browser/react/use-handle.js +0 -144
  556. package/dist/browser/react/use-handle.js.map +0 -1
  557. package/dist/browser/react/use-href.d.ts +0 -33
  558. package/dist/browser/react/use-href.d.ts.map +0 -1
  559. package/dist/browser/react/use-href.js +0 -39
  560. package/dist/browser/react/use-href.js.map +0 -1
  561. package/dist/browser/react/use-link-status.d.ts +0 -37
  562. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  563. package/dist/browser/react/use-link-status.js +0 -99
  564. package/dist/browser/react/use-link-status.js.map +0 -1
  565. package/dist/browser/react/use-mount.d.ts +0 -25
  566. package/dist/browser/react/use-mount.d.ts.map +0 -1
  567. package/dist/browser/react/use-mount.js +0 -30
  568. package/dist/browser/react/use-mount.js.map +0 -1
  569. package/dist/browser/react/use-navigation.d.ts +0 -27
  570. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  571. package/dist/browser/react/use-navigation.js +0 -87
  572. package/dist/browser/react/use-navigation.js.map +0 -1
  573. package/dist/browser/react/use-segments.d.ts +0 -38
  574. package/dist/browser/react/use-segments.d.ts.map +0 -1
  575. package/dist/browser/react/use-segments.js +0 -130
  576. package/dist/browser/react/use-segments.js.map +0 -1
  577. package/dist/browser/request-controller.d.ts +0 -26
  578. package/dist/browser/request-controller.d.ts.map +0 -1
  579. package/dist/browser/request-controller.js +0 -147
  580. package/dist/browser/request-controller.js.map +0 -1
  581. package/dist/browser/rsc-router.d.ts +0 -129
  582. package/dist/browser/rsc-router.d.ts.map +0 -1
  583. package/dist/browser/rsc-router.js +0 -195
  584. package/dist/browser/rsc-router.js.map +0 -1
  585. package/dist/browser/scroll-restoration.d.ts +0 -93
  586. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  587. package/dist/browser/scroll-restoration.js +0 -321
  588. package/dist/browser/scroll-restoration.js.map +0 -1
  589. package/dist/browser/segment-structure-assert.d.ts +0 -17
  590. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  591. package/dist/browser/segment-structure-assert.js +0 -59
  592. package/dist/browser/segment-structure-assert.js.map +0 -1
  593. package/dist/browser/server-action-bridge.d.ts +0 -26
  594. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  595. package/dist/browser/server-action-bridge.js +0 -668
  596. package/dist/browser/server-action-bridge.js.map +0 -1
  597. package/dist/browser/shallow.d.ts +0 -12
  598. package/dist/browser/shallow.d.ts.map +0 -1
  599. package/dist/browser/shallow.js +0 -34
  600. package/dist/browser/shallow.js.map +0 -1
  601. package/dist/browser/types.d.ts +0 -369
  602. package/dist/browser/types.d.ts.map +0 -1
  603. package/dist/browser/types.js +0 -2
  604. package/dist/browser/types.js.map +0 -1
  605. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  606. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  607. package/dist/build/__tests__/generate-cli.test.js +0 -237
  608. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  609. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  610. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  611. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  612. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  613. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  614. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  615. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  616. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  617. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  618. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  619. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  620. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  621. package/dist/build/generate-manifest.d.ts +0 -81
  622. package/dist/build/generate-manifest.d.ts.map +0 -1
  623. package/dist/build/generate-manifest.js +0 -276
  624. package/dist/build/generate-manifest.js.map +0 -1
  625. package/dist/build/generate-route-types.d.ts +0 -115
  626. package/dist/build/generate-route-types.d.ts.map +0 -1
  627. package/dist/build/generate-route-types.js +0 -740
  628. package/dist/build/generate-route-types.js.map +0 -1
  629. package/dist/build/index.d.ts +0 -21
  630. package/dist/build/index.d.ts.map +0 -1
  631. package/dist/build/index.js +0 -21
  632. package/dist/build/index.js.map +0 -1
  633. package/dist/build/route-trie.d.ts +0 -71
  634. package/dist/build/route-trie.d.ts.map +0 -1
  635. package/dist/build/route-trie.js +0 -175
  636. package/dist/build/route-trie.js.map +0 -1
  637. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  638. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  639. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  640. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  641. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  642. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  643. package/dist/cache/__tests__/document-cache.test.js +0 -345
  644. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  645. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  646. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  647. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  648. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  649. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  650. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  651. package/dist/cache/__tests__/memory-store.test.js +0 -367
  652. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  653. package/dist/cache/cache-scope.d.ts +0 -102
  654. package/dist/cache/cache-scope.d.ts.map +0 -1
  655. package/dist/cache/cache-scope.js +0 -440
  656. package/dist/cache/cache-scope.js.map +0 -1
  657. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  658. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  659. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  660. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  661. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  662. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  663. package/dist/cache/cf/cf-cache-store.js +0 -242
  664. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  665. package/dist/cache/cf/index.d.ts +0 -14
  666. package/dist/cache/cf/index.d.ts.map +0 -1
  667. package/dist/cache/cf/index.js +0 -17
  668. package/dist/cache/cf/index.js.map +0 -1
  669. package/dist/cache/document-cache.d.ts +0 -64
  670. package/dist/cache/document-cache.d.ts.map +0 -1
  671. package/dist/cache/document-cache.js +0 -228
  672. package/dist/cache/document-cache.js.map +0 -1
  673. package/dist/cache/index.d.ts +0 -19
  674. package/dist/cache/index.d.ts.map +0 -1
  675. package/dist/cache/index.js +0 -21
  676. package/dist/cache/index.js.map +0 -1
  677. package/dist/cache/memory-segment-store.d.ts +0 -110
  678. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  679. package/dist/cache/memory-segment-store.js +0 -117
  680. package/dist/cache/memory-segment-store.js.map +0 -1
  681. package/dist/cache/memory-store.d.ts +0 -41
  682. package/dist/cache/memory-store.d.ts.map +0 -1
  683. package/dist/cache/memory-store.js +0 -191
  684. package/dist/cache/memory-store.js.map +0 -1
  685. package/dist/cache/types.d.ts +0 -317
  686. package/dist/cache/types.d.ts.map +0 -1
  687. package/dist/cache/types.js +0 -12
  688. package/dist/cache/types.js.map +0 -1
  689. package/dist/client.d.ts +0 -248
  690. package/dist/client.d.ts.map +0 -1
  691. package/dist/client.js +0 -367
  692. package/dist/client.js.map +0 -1
  693. package/dist/client.rsc.d.ts +0 -26
  694. package/dist/client.rsc.d.ts.map +0 -1
  695. package/dist/client.rsc.js +0 -46
  696. package/dist/client.rsc.js.map +0 -1
  697. package/dist/component-utils.d.ts +0 -36
  698. package/dist/component-utils.d.ts.map +0 -1
  699. package/dist/component-utils.js +0 -61
  700. package/dist/component-utils.js.map +0 -1
  701. package/dist/components/DefaultDocument.d.ts +0 -13
  702. package/dist/components/DefaultDocument.d.ts.map +0 -1
  703. package/dist/components/DefaultDocument.js +0 -15
  704. package/dist/components/DefaultDocument.js.map +0 -1
  705. package/dist/debug.d.ts +0 -58
  706. package/dist/debug.d.ts.map +0 -1
  707. package/dist/debug.js +0 -157
  708. package/dist/debug.js.map +0 -1
  709. package/dist/default-error-boundary.d.ts +0 -11
  710. package/dist/default-error-boundary.d.ts.map +0 -1
  711. package/dist/default-error-boundary.js +0 -45
  712. package/dist/default-error-boundary.js.map +0 -1
  713. package/dist/deps/browser.d.ts +0 -2
  714. package/dist/deps/browser.d.ts.map +0 -1
  715. package/dist/deps/browser.js +0 -3
  716. package/dist/deps/browser.js.map +0 -1
  717. package/dist/deps/html-stream-client.d.ts +0 -2
  718. package/dist/deps/html-stream-client.d.ts.map +0 -1
  719. package/dist/deps/html-stream-client.js +0 -3
  720. package/dist/deps/html-stream-client.js.map +0 -1
  721. package/dist/deps/html-stream-server.d.ts +0 -2
  722. package/dist/deps/html-stream-server.d.ts.map +0 -1
  723. package/dist/deps/html-stream-server.js +0 -3
  724. package/dist/deps/html-stream-server.js.map +0 -1
  725. package/dist/deps/rsc.d.ts +0 -2
  726. package/dist/deps/rsc.d.ts.map +0 -1
  727. package/dist/deps/rsc.js +0 -4
  728. package/dist/deps/rsc.js.map +0 -1
  729. package/dist/deps/ssr.d.ts +0 -2
  730. package/dist/deps/ssr.d.ts.map +0 -1
  731. package/dist/deps/ssr.js +0 -3
  732. package/dist/deps/ssr.js.map +0 -1
  733. package/dist/errors.d.ts +0 -174
  734. package/dist/errors.d.ts.map +0 -1
  735. package/dist/errors.js +0 -241
  736. package/dist/errors.js.map +0 -1
  737. package/dist/handle.d.ts +0 -78
  738. package/dist/handle.d.ts.map +0 -1
  739. package/dist/handle.js +0 -82
  740. package/dist/handle.js.map +0 -1
  741. package/dist/handles/MetaTags.d.ts +0 -14
  742. package/dist/handles/MetaTags.d.ts.map +0 -1
  743. package/dist/handles/MetaTags.js +0 -136
  744. package/dist/handles/MetaTags.js.map +0 -1
  745. package/dist/handles/index.d.ts +0 -6
  746. package/dist/handles/index.d.ts.map +0 -1
  747. package/dist/handles/index.js +0 -6
  748. package/dist/handles/index.js.map +0 -1
  749. package/dist/handles/meta.d.ts +0 -39
  750. package/dist/handles/meta.d.ts.map +0 -1
  751. package/dist/handles/meta.js +0 -202
  752. package/dist/handles/meta.js.map +0 -1
  753. package/dist/host/__tests__/errors.test.d.ts +0 -2
  754. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  755. package/dist/host/__tests__/errors.test.js +0 -76
  756. package/dist/host/__tests__/errors.test.js.map +0 -1
  757. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  758. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  759. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  760. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  761. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  762. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  763. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  764. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  765. package/dist/host/__tests__/router.test.d.ts +0 -2
  766. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  767. package/dist/host/__tests__/router.test.js +0 -241
  768. package/dist/host/__tests__/router.test.js.map +0 -1
  769. package/dist/host/__tests__/testing.test.d.ts +0 -2
  770. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  771. package/dist/host/__tests__/testing.test.js +0 -64
  772. package/dist/host/__tests__/testing.test.js.map +0 -1
  773. package/dist/host/__tests__/utils.test.d.ts +0 -2
  774. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  775. package/dist/host/__tests__/utils.test.js +0 -29
  776. package/dist/host/__tests__/utils.test.js.map +0 -1
  777. package/dist/host/cookie-handler.d.ts +0 -34
  778. package/dist/host/cookie-handler.d.ts.map +0 -1
  779. package/dist/host/cookie-handler.js +0 -124
  780. package/dist/host/cookie-handler.js.map +0 -1
  781. package/dist/host/errors.d.ts +0 -56
  782. package/dist/host/errors.d.ts.map +0 -1
  783. package/dist/host/errors.js +0 -79
  784. package/dist/host/errors.js.map +0 -1
  785. package/dist/host/index.d.ts +0 -29
  786. package/dist/host/index.d.ts.map +0 -1
  787. package/dist/host/index.js +0 -32
  788. package/dist/host/index.js.map +0 -1
  789. package/dist/host/pattern-matcher.d.ts +0 -36
  790. package/dist/host/pattern-matcher.d.ts.map +0 -1
  791. package/dist/host/pattern-matcher.js +0 -172
  792. package/dist/host/pattern-matcher.js.map +0 -1
  793. package/dist/host/router.d.ts +0 -26
  794. package/dist/host/router.d.ts.map +0 -1
  795. package/dist/host/router.js +0 -218
  796. package/dist/host/router.js.map +0 -1
  797. package/dist/host/testing.d.ts +0 -36
  798. package/dist/host/testing.d.ts.map +0 -1
  799. package/dist/host/testing.js +0 -55
  800. package/dist/host/testing.js.map +0 -1
  801. package/dist/host/types.d.ts +0 -115
  802. package/dist/host/types.d.ts.map +0 -1
  803. package/dist/host/types.js +0 -7
  804. package/dist/host/types.js.map +0 -1
  805. package/dist/host/utils.d.ts +0 -21
  806. package/dist/host/utils.d.ts.map +0 -1
  807. package/dist/host/utils.js +0 -23
  808. package/dist/host/utils.js.map +0 -1
  809. package/dist/href-client.d.ts +0 -131
  810. package/dist/href-client.d.ts.map +0 -1
  811. package/dist/href-client.js +0 -64
  812. package/dist/href-client.js.map +0 -1
  813. package/dist/href-context.d.ts +0 -29
  814. package/dist/href-context.d.ts.map +0 -1
  815. package/dist/href-context.js +0 -21
  816. package/dist/href-context.js.map +0 -1
  817. package/dist/index.d.ts +0 -73
  818. package/dist/index.d.ts.map +0 -1
  819. package/dist/index.js +0 -91
  820. package/dist/index.js.map +0 -1
  821. package/dist/index.rsc.d.ts +0 -32
  822. package/dist/index.rsc.d.ts.map +0 -1
  823. package/dist/index.rsc.js +0 -40
  824. package/dist/index.rsc.js.map +0 -1
  825. package/dist/internal-debug.d.ts +0 -2
  826. package/dist/internal-debug.d.ts.map +0 -1
  827. package/dist/internal-debug.js +0 -5
  828. package/dist/internal-debug.js.map +0 -1
  829. package/dist/loader.d.ts +0 -14
  830. package/dist/loader.d.ts.map +0 -1
  831. package/dist/loader.js +0 -20
  832. package/dist/loader.js.map +0 -1
  833. package/dist/loader.rsc.d.ts +0 -19
  834. package/dist/loader.rsc.d.ts.map +0 -1
  835. package/dist/loader.rsc.js +0 -99
  836. package/dist/loader.rsc.js.map +0 -1
  837. package/dist/network-error-thrower.d.ts +0 -17
  838. package/dist/network-error-thrower.d.ts.map +0 -1
  839. package/dist/network-error-thrower.js +0 -14
  840. package/dist/network-error-thrower.js.map +0 -1
  841. package/dist/outlet-context.d.ts +0 -13
  842. package/dist/outlet-context.d.ts.map +0 -1
  843. package/dist/outlet-context.js +0 -3
  844. package/dist/outlet-context.js.map +0 -1
  845. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  846. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  847. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  848. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  849. package/dist/prerender/param-hash.d.ts +0 -16
  850. package/dist/prerender/param-hash.d.ts.map +0 -1
  851. package/dist/prerender/param-hash.js +0 -36
  852. package/dist/prerender/param-hash.js.map +0 -1
  853. package/dist/prerender/store.d.ts +0 -38
  854. package/dist/prerender/store.d.ts.map +0 -1
  855. package/dist/prerender/store.js +0 -61
  856. package/dist/prerender/store.js.map +0 -1
  857. package/dist/prerender.d.ts +0 -66
  858. package/dist/prerender.d.ts.map +0 -1
  859. package/dist/prerender.js +0 -57
  860. package/dist/prerender.js.map +0 -1
  861. package/dist/reverse.d.ts +0 -196
  862. package/dist/reverse.d.ts.map +0 -1
  863. package/dist/reverse.js +0 -78
  864. package/dist/reverse.js.map +0 -1
  865. package/dist/root-error-boundary.d.ts +0 -33
  866. package/dist/root-error-boundary.d.ts.map +0 -1
  867. package/dist/root-error-boundary.js +0 -165
  868. package/dist/root-error-boundary.js.map +0 -1
  869. package/dist/route-content-wrapper.d.ts +0 -46
  870. package/dist/route-content-wrapper.d.ts.map +0 -1
  871. package/dist/route-content-wrapper.js +0 -77
  872. package/dist/route-content-wrapper.js.map +0 -1
  873. package/dist/route-definition.d.ts +0 -421
  874. package/dist/route-definition.d.ts.map +0 -1
  875. package/dist/route-definition.js +0 -868
  876. package/dist/route-definition.js.map +0 -1
  877. package/dist/route-map-builder.d.ts +0 -155
  878. package/dist/route-map-builder.d.ts.map +0 -1
  879. package/dist/route-map-builder.js +0 -237
  880. package/dist/route-map-builder.js.map +0 -1
  881. package/dist/route-types.d.ts +0 -165
  882. package/dist/route-types.d.ts.map +0 -1
  883. package/dist/route-types.js +0 -7
  884. package/dist/route-types.js.map +0 -1
  885. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  886. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  887. package/dist/router/__tests__/handler-context.test.js +0 -65
  888. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  889. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  890. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  891. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  892. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  893. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  894. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  895. package/dist/router/__tests__/match-context.test.js +0 -92
  896. package/dist/router/__tests__/match-context.test.js.map +0 -1
  897. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  898. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  899. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  900. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  901. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  902. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  903. package/dist/router/__tests__/match-result.test.js +0 -457
  904. package/dist/router/__tests__/match-result.test.js.map +0 -1
  905. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  906. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  907. package/dist/router/__tests__/on-error.test.js +0 -678
  908. package/dist/router/__tests__/on-error.test.js.map +0 -1
  909. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  910. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  911. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  912. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  913. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  914. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  915. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  916. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  917. package/dist/router/error-handling.d.ts +0 -77
  918. package/dist/router/error-handling.d.ts.map +0 -1
  919. package/dist/router/error-handling.js +0 -202
  920. package/dist/router/error-handling.js.map +0 -1
  921. package/dist/router/handler-context.d.ts +0 -20
  922. package/dist/router/handler-context.d.ts.map +0 -1
  923. package/dist/router/handler-context.js +0 -198
  924. package/dist/router/handler-context.js.map +0 -1
  925. package/dist/router/intercept-resolution.d.ts +0 -66
  926. package/dist/router/intercept-resolution.d.ts.map +0 -1
  927. package/dist/router/intercept-resolution.js +0 -246
  928. package/dist/router/intercept-resolution.js.map +0 -1
  929. package/dist/router/loader-resolution.d.ts +0 -64
  930. package/dist/router/loader-resolution.d.ts.map +0 -1
  931. package/dist/router/loader-resolution.js +0 -284
  932. package/dist/router/loader-resolution.js.map +0 -1
  933. package/dist/router/logging.d.ts +0 -15
  934. package/dist/router/logging.d.ts.map +0 -1
  935. package/dist/router/logging.js +0 -99
  936. package/dist/router/logging.js.map +0 -1
  937. package/dist/router/manifest.d.ts +0 -22
  938. package/dist/router/manifest.d.ts.map +0 -1
  939. package/dist/router/manifest.js +0 -181
  940. package/dist/router/manifest.js.map +0 -1
  941. package/dist/router/match-api.d.ts +0 -35
  942. package/dist/router/match-api.d.ts.map +0 -1
  943. package/dist/router/match-api.js +0 -406
  944. package/dist/router/match-api.js.map +0 -1
  945. package/dist/router/match-context.d.ts +0 -206
  946. package/dist/router/match-context.d.ts.map +0 -1
  947. package/dist/router/match-context.js +0 -17
  948. package/dist/router/match-context.js.map +0 -1
  949. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  950. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  951. package/dist/router/match-middleware/background-revalidation.js +0 -75
  952. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  953. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  954. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  955. package/dist/router/match-middleware/cache-lookup.js +0 -257
  956. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  957. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  958. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  959. package/dist/router/match-middleware/cache-store.js +0 -108
  960. package/dist/router/match-middleware/cache-store.js.map +0 -1
  961. package/dist/router/match-middleware/index.d.ts +0 -81
  962. package/dist/router/match-middleware/index.d.ts.map +0 -1
  963. package/dist/router/match-middleware/index.js +0 -80
  964. package/dist/router/match-middleware/index.js.map +0 -1
  965. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  966. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  967. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  968. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  969. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  970. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  971. package/dist/router/match-middleware/segment-resolution.js +0 -53
  972. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  973. package/dist/router/match-pipelines.d.ts +0 -147
  974. package/dist/router/match-pipelines.d.ts.map +0 -1
  975. package/dist/router/match-pipelines.js +0 -82
  976. package/dist/router/match-pipelines.js.map +0 -1
  977. package/dist/router/match-result.d.ts +0 -126
  978. package/dist/router/match-result.d.ts.map +0 -1
  979. package/dist/router/match-result.js +0 -93
  980. package/dist/router/match-result.js.map +0 -1
  981. package/dist/router/metrics.d.ts +0 -20
  982. package/dist/router/metrics.d.ts.map +0 -1
  983. package/dist/router/metrics.js +0 -47
  984. package/dist/router/metrics.js.map +0 -1
  985. package/dist/router/middleware.d.ts +0 -249
  986. package/dist/router/middleware.d.ts.map +0 -1
  987. package/dist/router/middleware.js +0 -434
  988. package/dist/router/middleware.js.map +0 -1
  989. package/dist/router/middleware.test.d.ts +0 -2
  990. package/dist/router/middleware.test.d.ts.map +0 -1
  991. package/dist/router/middleware.test.js +0 -816
  992. package/dist/router/middleware.test.js.map +0 -1
  993. package/dist/router/pattern-matching.d.ts +0 -149
  994. package/dist/router/pattern-matching.d.ts.map +0 -1
  995. package/dist/router/pattern-matching.js +0 -349
  996. package/dist/router/pattern-matching.js.map +0 -1
  997. package/dist/router/revalidation.d.ts +0 -44
  998. package/dist/router/revalidation.d.ts.map +0 -1
  999. package/dist/router/revalidation.js +0 -147
  1000. package/dist/router/revalidation.js.map +0 -1
  1001. package/dist/router/router-context.d.ts +0 -135
  1002. package/dist/router/router-context.d.ts.map +0 -1
  1003. package/dist/router/router-context.js +0 -36
  1004. package/dist/router/router-context.js.map +0 -1
  1005. package/dist/router/segment-resolution.d.ts +0 -127
  1006. package/dist/router/segment-resolution.d.ts.map +0 -1
  1007. package/dist/router/segment-resolution.js +0 -919
  1008. package/dist/router/segment-resolution.js.map +0 -1
  1009. package/dist/router/trie-matching.d.ts +0 -40
  1010. package/dist/router/trie-matching.d.ts.map +0 -1
  1011. package/dist/router/trie-matching.js +0 -127
  1012. package/dist/router/trie-matching.js.map +0 -1
  1013. package/dist/router/types.d.ts +0 -136
  1014. package/dist/router/types.d.ts.map +0 -1
  1015. package/dist/router/types.js +0 -7
  1016. package/dist/router/types.js.map +0 -1
  1017. package/dist/router.d.ts +0 -753
  1018. package/dist/router.d.ts.map +0 -1
  1019. package/dist/router.gen.d.ts +0 -6
  1020. package/dist/router.gen.d.ts.map +0 -1
  1021. package/dist/router.gen.js +0 -6
  1022. package/dist/router.gen.js.map +0 -1
  1023. package/dist/router.js +0 -1304
  1024. package/dist/router.js.map +0 -1
  1025. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1026. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1027. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1028. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1029. package/dist/rsc/handler.d.ts +0 -45
  1030. package/dist/rsc/handler.d.ts.map +0 -1
  1031. package/dist/rsc/handler.js +0 -1172
  1032. package/dist/rsc/handler.js.map +0 -1
  1033. package/dist/rsc/helpers.d.ts +0 -16
  1034. package/dist/rsc/helpers.d.ts.map +0 -1
  1035. package/dist/rsc/helpers.js +0 -55
  1036. package/dist/rsc/helpers.js.map +0 -1
  1037. package/dist/rsc/index.d.ts +0 -22
  1038. package/dist/rsc/index.d.ts.map +0 -1
  1039. package/dist/rsc/index.js +0 -23
  1040. package/dist/rsc/index.js.map +0 -1
  1041. package/dist/rsc/nonce.d.ts +0 -9
  1042. package/dist/rsc/nonce.d.ts.map +0 -1
  1043. package/dist/rsc/nonce.js +0 -18
  1044. package/dist/rsc/nonce.js.map +0 -1
  1045. package/dist/rsc/types.d.ts +0 -206
  1046. package/dist/rsc/types.d.ts.map +0 -1
  1047. package/dist/rsc/types.js +0 -8
  1048. package/dist/rsc/types.js.map +0 -1
  1049. package/dist/search-params.d.ts +0 -103
  1050. package/dist/search-params.d.ts.map +0 -1
  1051. package/dist/search-params.js +0 -74
  1052. package/dist/search-params.js.map +0 -1
  1053. package/dist/segment-system.d.ts +0 -75
  1054. package/dist/segment-system.d.ts.map +0 -1
  1055. package/dist/segment-system.js +0 -336
  1056. package/dist/segment-system.js.map +0 -1
  1057. package/dist/server/context.d.ts +0 -245
  1058. package/dist/server/context.d.ts.map +0 -1
  1059. package/dist/server/context.js +0 -197
  1060. package/dist/server/context.js.map +0 -1
  1061. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1062. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1063. package/dist/server/fetchable-loader-store.js +0 -18
  1064. package/dist/server/fetchable-loader-store.js.map +0 -1
  1065. package/dist/server/handle-store.d.ts +0 -85
  1066. package/dist/server/handle-store.d.ts.map +0 -1
  1067. package/dist/server/handle-store.js +0 -142
  1068. package/dist/server/handle-store.js.map +0 -1
  1069. package/dist/server/loader-registry.d.ts +0 -55
  1070. package/dist/server/loader-registry.d.ts.map +0 -1
  1071. package/dist/server/loader-registry.js +0 -132
  1072. package/dist/server/loader-registry.js.map +0 -1
  1073. package/dist/server/request-context.d.ts +0 -226
  1074. package/dist/server/request-context.d.ts.map +0 -1
  1075. package/dist/server/request-context.js +0 -290
  1076. package/dist/server/request-context.js.map +0 -1
  1077. package/dist/server/root-layout.d.ts +0 -4
  1078. package/dist/server/root-layout.d.ts.map +0 -1
  1079. package/dist/server/root-layout.js +0 -5
  1080. package/dist/server/root-layout.js.map +0 -1
  1081. package/dist/server.d.ts +0 -15
  1082. package/dist/server.d.ts.map +0 -1
  1083. package/dist/server.js +0 -20
  1084. package/dist/server.js.map +0 -1
  1085. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1086. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1087. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1088. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1089. package/dist/ssr/index.d.ts +0 -98
  1090. package/dist/ssr/index.d.ts.map +0 -1
  1091. package/dist/ssr/index.js +0 -158
  1092. package/dist/ssr/index.js.map +0 -1
  1093. package/dist/static-handler.d.ts +0 -50
  1094. package/dist/static-handler.d.ts.map +0 -1
  1095. package/dist/static-handler.gen.d.ts +0 -5
  1096. package/dist/static-handler.gen.d.ts.map +0 -1
  1097. package/dist/static-handler.gen.js +0 -5
  1098. package/dist/static-handler.gen.js.map +0 -1
  1099. package/dist/static-handler.js +0 -29
  1100. package/dist/static-handler.js.map +0 -1
  1101. package/dist/theme/ThemeProvider.d.ts +0 -20
  1102. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1103. package/dist/theme/ThemeProvider.js +0 -240
  1104. package/dist/theme/ThemeProvider.js.map +0 -1
  1105. package/dist/theme/ThemeScript.d.ts +0 -48
  1106. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1107. package/dist/theme/ThemeScript.js +0 -13
  1108. package/dist/theme/ThemeScript.js.map +0 -1
  1109. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1110. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1111. package/dist/theme/__tests__/theme.test.js +0 -103
  1112. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1113. package/dist/theme/constants.d.ts +0 -29
  1114. package/dist/theme/constants.d.ts.map +0 -1
  1115. package/dist/theme/constants.js +0 -48
  1116. package/dist/theme/constants.js.map +0 -1
  1117. package/dist/theme/index.d.ts +0 -31
  1118. package/dist/theme/index.d.ts.map +0 -1
  1119. package/dist/theme/index.js +0 -36
  1120. package/dist/theme/index.js.map +0 -1
  1121. package/dist/theme/theme-context.d.ts +0 -40
  1122. package/dist/theme/theme-context.d.ts.map +0 -1
  1123. package/dist/theme/theme-context.js +0 -60
  1124. package/dist/theme/theme-context.js.map +0 -1
  1125. package/dist/theme/theme-script.d.ts +0 -27
  1126. package/dist/theme/theme-script.d.ts.map +0 -1
  1127. package/dist/theme/theme-script.js +0 -147
  1128. package/dist/theme/theme-script.js.map +0 -1
  1129. package/dist/theme/types.d.ts +0 -163
  1130. package/dist/theme/types.d.ts.map +0 -1
  1131. package/dist/theme/types.js +0 -11
  1132. package/dist/theme/types.js.map +0 -1
  1133. package/dist/theme/use-theme.d.ts +0 -12
  1134. package/dist/theme/use-theme.d.ts.map +0 -1
  1135. package/dist/theme/use-theme.js +0 -40
  1136. package/dist/theme/use-theme.js.map +0 -1
  1137. package/dist/types.d.ts +0 -1479
  1138. package/dist/types.d.ts.map +0 -1
  1139. package/dist/types.js +0 -10
  1140. package/dist/types.js.map +0 -1
  1141. package/dist/urls.d.ts +0 -441
  1142. package/dist/urls.d.ts.map +0 -1
  1143. package/dist/urls.gen.d.ts +0 -8
  1144. package/dist/urls.gen.d.ts.map +0 -1
  1145. package/dist/urls.gen.js +0 -8
  1146. package/dist/urls.gen.js.map +0 -1
  1147. package/dist/urls.js +0 -443
  1148. package/dist/urls.js.map +0 -1
  1149. package/dist/use-loader.d.ts +0 -127
  1150. package/dist/use-loader.d.ts.map +0 -1
  1151. package/dist/use-loader.js +0 -237
  1152. package/dist/use-loader.js.map +0 -1
  1153. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1154. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1155. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1156. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1157. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1158. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1159. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1160. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1161. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1162. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1163. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1164. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1165. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1166. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1167. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1168. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1169. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1170. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1171. package/dist/vite/ast-handler-extract.js +0 -249
  1172. package/dist/vite/ast-handler-extract.js.map +0 -1
  1173. package/dist/vite/expose-action-id.d.ts +0 -19
  1174. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1175. package/dist/vite/expose-action-id.js +0 -250
  1176. package/dist/vite/expose-action-id.js.map +0 -1
  1177. package/dist/vite/expose-id-utils.d.ts +0 -69
  1178. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1179. package/dist/vite/expose-id-utils.js +0 -289
  1180. package/dist/vite/expose-id-utils.js.map +0 -1
  1181. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1182. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1183. package/dist/vite/expose-internal-ids.js +0 -886
  1184. package/dist/vite/expose-internal-ids.js.map +0 -1
  1185. package/dist/vite/index.d.ts +0 -149
  1186. package/dist/vite/index.d.ts.map +0 -1
  1187. package/dist/vite/index.js.map +0 -1
  1188. package/dist/vite/index.named-routes.gen.ts +0 -103
  1189. package/dist/vite/package-resolution.d.ts +0 -43
  1190. package/dist/vite/package-resolution.d.ts.map +0 -1
  1191. package/dist/vite/package-resolution.js +0 -112
  1192. package/dist/vite/package-resolution.js.map +0 -1
  1193. package/dist/vite/virtual-entries.d.ts +0 -25
  1194. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1195. package/dist/vite/virtual-entries.js +0 -110
  1196. package/dist/vite/virtual-entries.js.map +0 -1
  1197. package/src/browser/action-response-classifier.ts +0 -99
  1198. package/src/browser/react/use-client-cache.ts +0 -58
  1199. package/src/browser/shallow.ts +0 -40
  1200. package/src/handles/index.ts +0 -7
  1201. package/src/network-error-thrower.tsx +0 -23
  1202. package/src/router/middleware-cookies.ts +0 -55
@@ -89,8 +89,8 @@ import { useSegments } from "@rangojs/router/client";
89
89
  function Breadcrumbs() {
90
90
  const { path, segmentIds, location } = useSegments();
91
91
 
92
- // path: ["/shop", "products", "123"]
93
- // segmentIds: ["shop-layout", "products-route"]
92
+ // path: ["shop", "products", "123"] (split on "/", no leading slash on any element)
93
+ // segmentIds: ["L0", "L0L1", "L0L1R0"] (opaque internal short-codes, not route names)
94
94
  // location: URL object
95
95
 
96
96
  return <nav>{path.join(" > ")}</nav>;
@@ -190,6 +190,141 @@ function SearchResults() {
190
190
  }
191
191
  ```
192
192
 
193
+ **Shared refetch behavior**:
194
+
195
+ When the loader is registered on the route via `loader()`, a plain
196
+ `load()` call (no options, or a trivially-defaulted GET with no
197
+ `params` and no `body`) broadcasts its result to every component
198
+ reading the same loader id. Layout, page, and parallel-slot reads
199
+ all converge on the new value:
200
+
201
+ ```tsx
202
+ // Layout button calls load() — the page read below sees the update too.
203
+ function Layout() {
204
+ const { data, load } = useLoader(CartLoader);
205
+ return <button onClick={() => load()}>Refresh ({data.count})</button>;
206
+ }
207
+ function Page() {
208
+ const { data } = useLoader(CartLoader); // updates with the layout's load()
209
+ return <span>{data.count} items</span>;
210
+ }
211
+ ```
212
+
213
+ `isLoading` and `error` follow the same scope. `throwOnError: true`
214
+ render-throws are scoped to the **originating** hook — sibling readers
215
+ see the error in their `error` state but their boundaries are not
216
+ triggered by someone else's failure. A successful follow-up `load()`
217
+ clears the shared error.
218
+
219
+ **`load()` calls that stay local** (no broadcast, per-hook state, same
220
+ semantics as the old per-component `useState`):
221
+
222
+ - `load({ params: { ... } })` — explicit params.
223
+ - `load({ method: "POST", body })` — mutations.
224
+ - Any `load()` on a `useFetchLoader(loader)` whose loader is **not**
225
+ registered on the current route. Two unrelated components calling
226
+ `load()` on the same fetchable-but-unregistered loader keep
227
+ independent results.
228
+
229
+ So the search/list pattern still works — two components calling
230
+ `load({ params: { q } })` with different `q` values each keep their
231
+ own result; they do not collapse to last-write-wins through a shared
232
+ store.
233
+
234
+ **Scoping refetch with a `key`**:
235
+
236
+ Pass a `key` to partition the shared refresh store. Only hooks using the
237
+ **same** `key` refresh together when one of them calls `load()`. This is a
238
+ client-side refresh identity only — it never changes the request sent to the
239
+ server, and is unrelated to the server `cache({ key })` option and to
240
+ `revalidate()`.
241
+
242
+ ```tsx
243
+ // Two independent dashboards using the same loader. Without a key, one
244
+ // dashboard's load() would flip the other's spinner and value. With a key,
245
+ // they refresh independently.
246
+ function Dashboard({ id }: { id: string }) {
247
+ const { data, load } = useLoader(StatsLoader, { key: `dashboard:${id}` });
248
+ return <button onClick={() => load()}>Refresh {data.total}</button>;
249
+ }
250
+ ```
251
+
252
+ The `key` widens sharing in two ways the default cannot:
253
+
254
+ - **Parameterized GETs share.** `useFetchLoader(SearchLoader, { key: q })`
255
+ with the same `q` in two components share one result and refresh together —
256
+ a keyed `load({ params: { q } })` broadcasts to the group instead of staying
257
+ local. (Mutations — non-GET or `body` — stay local even with a key.)
258
+ - **Unregistered loaders share.** A `key` makes `useFetchLoader` of a loader
259
+ that is **not** registered on the route share too, letting unrelated
260
+ components opt into a common refresh group.
261
+
262
+ Lifecycle: a keyed read of an unregistered loader is reference-counted — its
263
+ shared value lives as long as at least one component using that key is mounted.
264
+ A persistent component (e.g. a header) keeps the value across navigations; a
265
+ route-scoped component's value is reclaimed when it unmounts. Registered-loader
266
+ reads (keyed or not) reset on navigation from fresh route data, as before.
267
+
268
+ **Refreshing multiple loaders together (`refreshGroup` + `useRefreshLoaders`)**:
269
+
270
+ `key` groups readers of one loader. To refresh **different** loaders together,
271
+ tag them with a shared `refreshGroup` name and trigger them with
272
+ `useRefreshLoaders()`. The hook takes no argument; you pass the group(s) to the
273
+ function it returns, so one `useRefreshLoaders()` can refresh different groups
274
+ depending on context. A read may carry **several** tags — pass an array — and is
275
+ refreshed when **any** of its groups is refreshed:
276
+
277
+ ```tsx
278
+ function Profile() {
279
+ const { data } = useLoader(ProfileLoader, {
280
+ key: userId,
281
+ refreshGroup: "account",
282
+ });
283
+ return <span>{data.name}</span>;
284
+ }
285
+ function Orders() {
286
+ // Tagged into two groups: refreshed by "account" (the whole set) or the
287
+ // finer "orders" tag.
288
+ const { data } = useLoader(OrdersLoader, {
289
+ key: userId,
290
+ refreshGroup: ["account", "orders"],
291
+ });
292
+ return <span>{data.count} orders</span>;
293
+ }
294
+ function RefreshButtons() {
295
+ const refresh = useRefreshLoaders();
296
+ return (
297
+ <>
298
+ <button onClick={() => refresh("account")}>Refresh account</button>
299
+ <button onClick={() => refresh("orders")}>Refresh orders only</button>
300
+ <button onClick={() => refresh(["account", "orders"])}>
301
+ Refresh both
302
+ </button>
303
+ </>
304
+ );
305
+ }
306
+ ```
307
+
308
+ `refresh(groups)` accepts one name or an array and re-runs every currently-mounted
309
+ member tagged with **any** of them, with a **plain GET** against the current route
310
+ URL — no params, no body, no mutation methods, because a group spans loaders with
311
+ different shapes. A member that sits in two of the requested groups is fetched
312
+ once (members are unioned and deduped by read). It returns a promise that resolves
313
+ when all members settle and **rejects with an `AggregateError`** if any fail;
314
+ group refresh never render-throws, so handle failures at the await site
315
+ (`await refresh("account").catch(...)`). Each failing member also exposes its
316
+ error via its own read's `error`.
317
+
318
+ Multiple tags give you granular vs. whole-set refresh from one place: a coarse
319
+ tag (`"account"`) covers everything, while a finer tag (`"orders"`) targets a
320
+ subset. Sharing within a group is opt-in via `key`: members that share a `key`
321
+ share one value (and one fetch); a grouped reader **without** a `key` gets its own
322
+ private bucket, so a group refresh updates only that read and never leaks into
323
+ unrelated unkeyed reads of the same loader. A bucket may belong to several groups
324
+ at once (one read tagged with multiple names, or different reads tagging the same
325
+ keyed bucket with different names). Keep parameterized loaders on the single-loader
326
+ `key` — a plain-GET group refresh sends no params.
327
+
193
328
  **Load options**:
194
329
 
195
330
  ```tsx
@@ -298,9 +433,11 @@ path("/dashboard", (ctx) => {
298
433
  push({ label: "Dashboard", href: "/dashboard" });
299
434
  return <DashboardNav handle={Breadcrumbs} />;
300
435
  });
436
+ ```
301
437
 
438
+ ```tsx
302
439
  // Client component — typeof infers the full Handle<T> type
303
- ("use client");
440
+ "use client";
304
441
  import { useHandle, type Breadcrumbs } from "@rangojs/router/client";
305
442
 
306
443
  function DashboardNav({ handle }: { handle: typeof Breadcrumbs }) {
@@ -321,6 +458,11 @@ RSC serialization strips the `collect` function via `toJSON()`. On the client,
321
458
 
322
459
  ## Action Hooks
323
460
 
461
+ For the full server-action guide (defining actions, `useActionState`,
462
+ `useOptimistic`, validation, revalidation, error handling, file uploads),
463
+ see `/server-actions`. `useAction()` below is a Rango-specific hook for
464
+ tracking actions called outside a `<form action={...}>` flow.
465
+
324
466
  ### useAction()
325
467
 
326
468
  Track state of server action invocations:
@@ -504,33 +646,81 @@ const flash = FlashMessage.read();
504
646
  const product = ProductState.read();
505
647
  ```
506
648
 
507
- ## Cache Hooks
649
+ > **Hydration:** `.read()` returns `undefined` on the server but may return
650
+ > a real value on the first client render (history state survives reload).
651
+ > Do not call `.read()` directly during the initial render of a component;
652
+ > call it from an event handler or inside a `useEffect` post-mount. For
653
+ > reactive hydration-safe access, use `useLocationState()` instead.
508
654
 
509
- ### useClientCache()
655
+ ### .write() / .delete() (static, non-reactive)
510
656
 
511
- Manually control client-side navigation cache:
657
+ Static counterparts to `.read()`. Both mutate the current history entry's
658
+ `history.state` via `replaceState`, preserving any other keys (router
659
+ bookkeeping, other location state slots). Both are client-only; they throw
660
+ when called on the server.
661
+
662
+ Neither dispatches an event, so components reading via `useLocationState`
663
+ will NOT re-render until the next navigation/popstate. Pair with `.read()`
664
+ (or a fresh mount via back/forward/reload) instead.
512
665
 
513
666
  ```tsx
514
667
  "use client";
515
- import { useClientCache } from "@rangojs/router/client";
668
+ import { ProductState } from "./state";
516
669
 
517
- function SaveButton() {
518
- const { clear } = useClientCache();
670
+ // Persisted across hard refresh and back/forward of this entry.
671
+ ProductState.write({ name: "Widget", price: 9.99 });
672
+
673
+ // Read later (or on next mount).
674
+ const current = ProductState.read();
675
+
676
+ // Manually clear the slot. Idempotent if it isn't set.
677
+ ProductState.delete();
678
+ ```
519
679
 
680
+ | Method | Updates `history.state` | Fires `useLocationState` rerender | SSR behavior |
681
+ | ----------- | ----------------------- | --------------------------------- | ------------------- |
682
+ | `.read()` | no | n/a (returns snapshot) | returns `undefined` |
683
+ | `.write()` | yes (replace this slot) | no | throws |
684
+ | `.delete()` | yes (remove this slot) | no | throws |
685
+
686
+ ## Cache Control
687
+
688
+ ### invalidateClientCache()
689
+
690
+ Force the client's caches to miss after a mutation the router can't see (a REST
691
+ call, a WebSocket push, a login). It is a plain function, not a hook, so it works
692
+ from module-level callbacks too. Imported from the root entry `@rangojs/router`,
693
+ it is selected by export conditions: in a client component it marks the caches
694
+ stale immediately; from a handler/server component it writes a rotated
695
+ `Set-Cookie` for the responding client.
696
+
697
+ ```tsx
698
+ "use client";
699
+ import { invalidateClientCache } from "@rangojs/router";
700
+
701
+ function SaveButton() {
520
702
  const handleSave = async () => {
521
703
  await fetch("/api/data", {
522
704
  method: "POST",
523
705
  body: JSON.stringify(data),
524
706
  });
525
707
 
526
- // Invalidate cache after mutation
527
- clear();
708
+ // Invalidate the client's caches after the mutation
709
+ invalidateClientCache();
528
710
  };
529
711
 
530
712
  return <button onClick={handleSave}>Save</button>;
531
713
  }
532
714
  ```
533
715
 
716
+ A module-level subscription works the same way (no component needed):
717
+
718
+ ```ts
719
+ import { invalidateClientCache } from "@rangojs/router";
720
+
721
+ socket.on("catalog-updated", () => invalidateClientCache());
722
+ ```
723
+
534
724
  **Use cases**: REST API mutations, WebSocket updates, non-RSC data changes.
535
725
 
536
726
  ## Outlet Components
@@ -593,6 +783,12 @@ function ProductPage() {
593
783
  return <h1>Product {params.productId}</h1>;
594
784
  }
595
785
 
786
+ // Annotate the expected shape via a generic
787
+ function ProductPageTyped() {
788
+ const { productId } = useParams<{ productId: string }>();
789
+ return <h1>Product {productId}</h1>;
790
+ }
791
+
596
792
  // With selector for performance (re-renders only when selected value changes)
597
793
  function ProductId() {
598
794
  const productId = useParams((p) => p.productId);
@@ -600,7 +796,7 @@ function ProductId() {
600
796
  }
601
797
  ```
602
798
 
603
- Returns merged params from all matched route segments. Updates on navigation commit (not during pending navigation).
799
+ Returns merged params from all matched route segments as a `Readonly<T>` map. Updates on navigation commit (not during pending navigation).
604
800
 
605
801
  ### usePathname()
606
802
 
@@ -681,24 +877,48 @@ function MountInfo() {
681
877
  }
682
878
  ```
683
879
 
684
- See `/links` for full URL generation guide including server-side `ctx.reverse`.
880
+ ### useReverse(routes)
881
+
882
+ Mount-aware local reverse for client components. Import the generated `routes` map from a `urls()` module's `.gen.ts` and call `reverse("name", params?)` — the leading dot is optional. Auto-fills params from `useParams()`; explicit params override.
883
+
884
+ > Per-module `*.gen.ts` files are **CLI opt-in and not Vite-watched** — run `rango generate <urls-file>` (or wire it into `predev`) and re-run it whenever the module's routes change. See `/links` for the full generated-file setup and exposure-boundary rules.
885
+
886
+ ```tsx
887
+ "use client";
888
+ import { Link, useReverse } from "@rangojs/router/client";
889
+ import { routes as blogRoutes } from "../urls/blog.gen.js";
890
+
891
+ function BlogNav() {
892
+ const reverse = useReverse(blogRoutes);
893
+ return (
894
+ <nav>
895
+ <Link to={reverse("index")}>Blog</Link>
896
+ <Link to={reverse("post", { postId: "hello" })}>Post</Link>
897
+ </nav>
898
+ );
899
+ }
900
+ ```
901
+
902
+ See `/links` for the full URL generation guide. `ctx.reverse()` is server-only; on the client, prefer `useReverse(routes)` for in-module names and pass URLs as props for cross-module ones.
685
903
 
686
904
  ## Hook Summary
687
905
 
688
- | Hook | Purpose | Returns |
689
- | -------------------- | --------------------------------- | ----------------------------------------------- |
690
- | `useParams()` | Route params | `Record<string, string>` or selected value |
691
- | `usePathname()` | Current pathname | `string` |
692
- | `useSearchParams()` | URL search params | `ReadonlyURLSearchParams` |
693
- | `useHref()` | Mount-aware href | `(path) => string` |
694
- | `useMount()` | Current include() mount path | `string` |
695
- | `useNavigation()` | Reactive navigation state | state, location, isStreaming |
696
- | `useRouter()` | Stable router actions | push, replace, refresh, prefetch, back, forward |
697
- | `useSegments()` | URL path & segment IDs | path, segmentIds, location |
698
- | `useLinkStatus()` | Link pending state | { pending } |
699
- | `useLoader()` | Loader data (strict) | data, isLoading, error |
700
- | `useFetchLoader()` | Loader with on-demand fetch | data, load, isLoading |
701
- | `useHandle()` | Accumulated handle data | T (handle type) |
702
- | `useAction()` | Server action state | state, error, result |
703
- | `useLocationState()` | History state (persists or flash) | T \| undefined |
704
- | `useClientCache()` | Cache control | { clear } |
906
+ | Hook | Purpose | Returns |
907
+ | ------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------ |
908
+ | `useParams()` | Route params | `Readonly<T>` (default `Record<string, string>`) or selected value |
909
+ | `usePathname()` | Current pathname | `string` |
910
+ | `useSearchParams()` | URL search params | `ReadonlyURLSearchParams` |
911
+ | `useHref()` | Mount-aware href | `(path) => string` |
912
+ | `useMount()` | Current include() mount path | `string` |
913
+ | `useReverse()` | Local reverse for imported routes | `(name, params?, search?) => string` |
914
+ | `useNavigation()` | Reactive navigation state | state, location, isStreaming |
915
+ | `useRouter()` | Stable router actions | push, replace, refresh, prefetch, back, forward |
916
+ | `useSegments()` | URL path & segment IDs | path, segmentIds, location |
917
+ | `useLinkStatus()` | Link pending state | { pending } |
918
+ | `useLoader()` | Loader data (strict) | data, isLoading, error, load, refetch |
919
+ | `useFetchLoader()` | Loader with on-demand fetch | data, load, isLoading, error, refetch |
920
+ | `useRefreshLoaders()` | Refresh cross-loader group(s) | `() => (groups: string \| string[]) => Promise<void>` |
921
+ | `useHandle()` | Accumulated handle data | T (handle type) |
922
+ | `useAction()` | Server action state | state, error, result |
923
+ | `useLocationState()` | History state (persists or flash) | T \| undefined |
924
+ | `invalidateClientCache()` | Force client caches to miss (function, not a hook; root entry) | `void` |
@@ -22,9 +22,9 @@ import { createHostRouter } from "@rangojs/router/host";
22
22
 
23
23
  const router = createHostRouter();
24
24
 
25
- router.host(["."]).map(() => import("./apps/main"));
26
- router.host(["admin.*"]).map(() => import("./apps/admin"));
27
- router.host(["api.*"]).map(() => import("./apps/api"));
25
+ router.host(["."]).lazy(() => import("./apps/main"));
26
+ router.host(["admin.*"]).lazy(() => import("./apps/admin"));
27
+ router.host(["api.*"]).lazy(() => import("./apps/api"));
28
28
 
29
29
  export default {
30
30
  fetch(request: Request, env: Env, ctx: ExecutionContext) {
@@ -33,7 +33,31 @@ export default {
33
33
  };
34
34
  ```
35
35
 
36
- Each `.map()` receives either a direct handler `(request, input) => Response` or a lazy import `() => import(...)`. Lazy imports resolve a module with a `default` export that is either a handler function or another `HostRouter` (for nesting).
36
+ ## Inline handlers (`.map`) vs lazy mounts (`.lazy`)
37
+
38
+ A host pattern maps to one of two things, and you pick the method by intent:
39
+
40
+ | Method | Argument | Use for |
41
+ | ------- | ------------------------------ | ------------------------------------------------------------ |
42
+ | `.map` | `(request, input) => Response` | An inline request handler that produces a response directly. |
43
+ | `.lazy` | `() => import("./sub-app")` | A lazily-imported handler or nested host router (a sub-app). |
44
+
45
+ ```typescript
46
+ // Lazy mount: the module's default export is a handler or a HostRouter.
47
+ router.host(["admin.*"]).lazy(() => import("./apps/admin"));
48
+
49
+ // Inline handler: returns a Response itself (sync or async).
50
+ router.host(["health.*"]).map(() => new Response("ok"));
51
+ router
52
+ .host(["echo.*"])
53
+ .map((request) => new Response(new URL(request.url).pathname));
54
+ ```
55
+
56
+ Why two methods instead of one overloaded `.map()`:
57
+
58
+ - **Build-time discovery** invokes only `.lazy()` mounts (to trigger each sub-app's `createRouter()` registration). Inline `.map()` handlers are never invoked during discovery, so they can't crash it or pollute its errors.
59
+ - `.map(() => import("./sub-app"))` is a **type error** — a lazy import resolves to a module, not a `Response`. Use `.lazy()` for imports. (If the types are bypassed, e.g. from JS, a `.map()` handler that resolves to a module throws a clear `HostRouterError` at request time instead of returning the module.)
60
+ - A lazy loader may declare an ignored parameter (`.lazy((_request?) => import("./x"))`); `.lazy()` accepts it because intent is explicit, not inferred from the signature.
37
61
 
38
62
  ## Pattern Syntax
39
63
 
@@ -42,7 +66,7 @@ Each `.map()` receives either a direct handler `(request, input) => Response` or
42
66
  | `.` or `*` | Any apex domain (`example.com`) |
43
67
  | `**` | Any domain (apex + all subdomains) |
44
68
  | `*.` | Any single-level subdomain (`www.example.com`) |
45
- | `**. ` | Any multi-level subdomain (`a.b.example.com`) |
69
+ | `**.` | Any multi-level subdomain (`a.b.example.com`) |
46
70
  | `example.com` | Exact domain |
47
71
  | `*.com` | Any apex `.com` domain |
48
72
  | `*.example.com` | Single subdomain of `example.com` |
@@ -65,8 +89,8 @@ const hosts = defineHosts({
65
89
  app: [".", "www.*"],
66
90
  });
67
91
 
68
- router.host(hosts.admin).map(() => import("./apps/admin"));
69
- router.host(hosts.app).map(() => import("./apps/main"));
92
+ router.host(hosts.admin).lazy(() => import("./apps/admin"));
93
+ router.host(hosts.app).lazy(() => import("./apps/main"));
70
94
  ```
71
95
 
72
96
  Returns a frozen object — keys are autocompleted by TypeScript.
@@ -88,7 +112,7 @@ router.use(async (request, input, next) => {
88
112
  router
89
113
  .host(["admin.*"])
90
114
  .use(requireAuth)
91
- .map(() => import("./apps/admin"));
115
+ .lazy(() => import("./apps/admin"));
92
116
  ```
93
117
 
94
118
  Middleware signature: `(request: Request, input: RouterRequestInput, next: () => Promise<Response>) => Promise<Response>`
@@ -165,12 +189,26 @@ Logs pattern matching, route registration, and cookie override decisions to cons
165
189
  ## Testing
166
190
 
167
191
  ```typescript
168
- import { createTestRequest, testPattern } from "@rangojs/router/host/testing";
192
+ import {
193
+ createTestRequest,
194
+ testPattern,
195
+ matchesHost,
196
+ } from "@rangojs/router/host/testing";
169
197
 
170
- // Test pattern matching
198
+ // Test pattern matching (host-only)
171
199
  testPattern("admin.*", "admin.example.com"); // true
172
200
  testPattern([".", "www.*"], "example.com"); // true
173
201
 
202
+ // Path-based patterns need the third pathname arg (defaults to "/", so a
203
+ // host-only pattern still works with two args):
204
+ testPattern("**.workers.dev/admin", "foo.workers.dev", "/admin"); // true
205
+
206
+ // Or match a pattern against a real Request (hostname + pathname from the URL):
207
+ matchesHost(
208
+ "**.workers.dev/admin",
209
+ new Request("https://foo.workers.dev/admin"),
210
+ ); // true
211
+
174
212
  // Create requests for integration tests
175
213
  const request = createTestRequest({
176
214
  host: "admin.example.com",
@@ -179,40 +217,62 @@ const request = createTestRequest({
179
217
  });
180
218
 
181
219
  // Test which route would match (without executing)
182
- router.test("admin.example.com"); // { pattern, handler } | null
220
+ router.test("admin.example.com"); // { pattern, handler, kind } | null
183
221
  ```
184
222
 
185
223
  ## Error Types
186
224
 
187
225
  All errors extend `HostRouterError`:
188
226
 
189
- | Error | When |
190
- | ----------------------------- | ------------------------------------------- |
191
- | `InvalidPatternError` | Pattern is empty, non-string, or has spaces |
192
- | `HostOverrideNotAllowedError` | Cookie override from disallowed host |
193
- | `InvalidHostnameError` | Cookie value isn't a valid hostname |
194
- | `HostValidationError` | Custom `validate` function threw |
195
- | `NoRouteMatchError` | No host pattern matched the request |
196
- | `InvalidHandlerError` | Handler is not a function |
227
+ | Error | When |
228
+ | ----------------------------- | ------------------------------------------------------------------------------------------------- |
229
+ | `InvalidPatternError` | Pattern is empty, non-string, or has spaces |
230
+ | `HostOverrideNotAllowedError` | Cookie override from disallowed host |
231
+ | `InvalidHostnameError` | Cookie value isn't a valid hostname |
232
+ | `HostValidationError` | Custom `validate` function threw |
233
+ | `NoRouteMatchError` | No host pattern matched the request |
234
+ | `InvalidHandlerError` | Handler is not a function, or a lazy mount resolved to a module without a usable `default` export |
235
+ | `HostRouterError` | A `.map()` inline handler resolved to a module namespace (a misused lazy import — use `.lazy()`) |
197
236
 
198
237
  See the fallback section above for a `NoRouteMatchError` catch example.
199
238
 
200
239
  ## Nesting Host Routers
201
240
 
202
- A lazy handler can resolve to another `HostRouter`:
241
+ A lazy mount can resolve to another `HostRouter`:
203
242
 
204
243
  ```typescript
205
244
  // apps/regional.ts
206
245
  import { createHostRouter } from "@rangojs/router/host";
207
246
 
208
247
  const regional = createHostRouter();
209
- regional.host(["us.*"]).map(() => import("./regions/us"));
210
- regional.host(["eu.*"]).map(() => import("./regions/eu"));
248
+ regional.host(["us.*"]).lazy(() => import("./regions/us"));
249
+ regional.host(["eu.*"]).lazy(() => import("./regions/eu"));
211
250
 
212
251
  export default regional;
213
252
  ```
214
253
 
215
254
  ```typescript
216
255
  // host-router.ts
217
- router.host(["**.regional.example.com"]).map(() => import("./apps/regional"));
256
+ router.host(["**.regional.example.com"]).lazy(() => import("./apps/regional"));
218
257
  ```
258
+
259
+ ## Cross-app navigation is a full document load
260
+
261
+ A client-side navigation that crosses an app boundary (e.g. a `<Link>` or
262
+ intercepted `<a>` from the app at `/` into an app mounted at `/shop`) is a **hard
263
+ document navigation**, not a soft in-tree swap. When the server sees a partial
264
+ (SPA) request whose router id doesn't match the matched app, it returns
265
+ `X-RSC-Reload` and the client does a real document navigation to the target.
266
+
267
+ Why a reload rather than a soft swap: a soft swap can't faithfully re-establish
268
+ the target app's **document-level** state. Stylesheets shared across apps are
269
+ dropped by React 19's by-`href` resource dedup; and theme, warmup, and
270
+ prefetch-TTL are document-lifetime (captured once at load — see
271
+ `browser/app-shell.ts`), so the target app's config would never take effect. A
272
+ full document load re-establishes the target app's entire document — CSS, theme,
273
+ meta, everything — by construction. So you do **not** need to coordinate
274
+ stylesheet `href`s, `precedence`, theme config, etc. across independently-authored
275
+ apps; each app owns its own document.
276
+
277
+ **Within-app** navigation is unchanged — a normal soft SPA update (the document
278
+ stays mounted). Only crossing an app boundary triggers the reload.