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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1198) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +169 -31
  3. package/dist/bin/rango.js +312 -93
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +2974 -1019
  6. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  7. package/package.json +66 -12
  8. package/skills/api-client/SKILL.md +211 -0
  9. package/skills/breadcrumbs/SKILL.md +64 -2
  10. package/skills/bundle-analysis/SKILL.md +159 -0
  11. package/skills/cache-guide/SKILL.md +224 -32
  12. package/skills/caching/SKILL.md +279 -17
  13. package/skills/composability/SKILL.md +27 -2
  14. package/skills/css/SKILL.md +76 -0
  15. package/skills/debug-manifest/SKILL.md +4 -2
  16. package/skills/document-cache/SKILL.md +78 -55
  17. package/skills/handler-use/SKILL.md +364 -0
  18. package/skills/hooks/SKILL.md +250 -30
  19. package/skills/host-router/SKILL.md +83 -23
  20. package/skills/i18n/SKILL.md +276 -0
  21. package/skills/intercept/SKILL.md +50 -6
  22. package/skills/layout/SKILL.md +35 -9
  23. package/skills/links/SKILL.md +247 -17
  24. package/skills/loader/SKILL.md +225 -9
  25. package/skills/middleware/SKILL.md +50 -13
  26. package/skills/migrate-nextjs/SKILL.md +584 -0
  27. package/skills/migrate-react-router/SKILL.md +771 -0
  28. package/skills/mime-routes/SKILL.md +28 -1
  29. package/skills/observability/SKILL.md +172 -0
  30. package/skills/parallel/SKILL.md +77 -7
  31. package/skills/prerender/SKILL.md +45 -43
  32. package/skills/rango/SKILL.md +251 -22
  33. package/skills/react-compiler/SKILL.md +168 -0
  34. package/skills/response-routes/SKILL.md +123 -48
  35. package/skills/route/SKILL.md +70 -5
  36. package/skills/router-setup/SKILL.md +29 -6
  37. package/skills/scripts/SKILL.md +179 -0
  38. package/skills/server-actions/SKILL.md +775 -0
  39. package/skills/streams-and-websockets/SKILL.md +283 -0
  40. package/skills/tailwind/SKILL.md +27 -3
  41. package/skills/testing/SKILL.md +129 -0
  42. package/skills/testing/bindings.md +103 -0
  43. package/skills/testing/cache-prerender.md +127 -0
  44. package/skills/testing/client-components.md +124 -0
  45. package/skills/testing/e2e-parity.md +125 -0
  46. package/skills/testing/flight.md +91 -0
  47. package/skills/testing/handles.md +129 -0
  48. package/skills/testing/loader.md +128 -0
  49. package/skills/testing/middleware.md +99 -0
  50. package/skills/testing/render-handler.md +121 -0
  51. package/skills/testing/response-routes.md +95 -0
  52. package/skills/testing/reverse-and-types.md +84 -0
  53. package/skills/testing/server-actions.md +107 -0
  54. package/skills/testing/server-tree.md +128 -0
  55. package/skills/testing/setup.md +123 -0
  56. package/skills/typesafety/SKILL.md +322 -29
  57. package/skills/use-cache/SKILL.md +46 -14
  58. package/skills/view-transitions/SKILL.md +294 -0
  59. package/src/__augment-tests__/augment.ts +81 -0
  60. package/src/__augment-tests__/augmented.check.ts +116 -0
  61. package/src/__internal.ts +0 -65
  62. package/src/browser/action-coordinator.ts +53 -36
  63. package/src/browser/action-fence.ts +47 -0
  64. package/src/browser/app-shell.ts +39 -0
  65. package/src/browser/connection-warmup.ts +134 -0
  66. package/src/browser/cookie-name.ts +140 -0
  67. package/src/browser/event-controller.ts +192 -150
  68. package/src/browser/history-state.ts +21 -0
  69. package/src/browser/index.ts +3 -3
  70. package/src/browser/invalidate-client-cache.ts +52 -0
  71. package/src/browser/navigation-bridge.ts +92 -18
  72. package/src/browser/navigation-client.ts +146 -69
  73. package/src/browser/navigation-store-handle.ts +38 -0
  74. package/src/browser/navigation-store.ts +33 -59
  75. package/src/browser/navigation-transaction.ts +9 -59
  76. package/src/browser/network-error-handler.ts +34 -7
  77. package/src/browser/partial-update.ts +131 -121
  78. package/src/browser/prefetch/cache.ts +205 -62
  79. package/src/browser/prefetch/fetch.ts +321 -37
  80. package/src/browser/prefetch/queue.ts +42 -8
  81. package/src/browser/rango-state.ts +158 -76
  82. package/src/browser/react/Link.tsx +60 -9
  83. package/src/browser/react/NavigationProvider.tsx +162 -118
  84. package/src/browser/react/ScrollRestoration.tsx +10 -6
  85. package/src/browser/react/filter-segment-order.ts +66 -7
  86. package/src/browser/react/index.ts +0 -48
  87. package/src/browser/react/location-state-shared.ts +178 -8
  88. package/src/browser/react/location-state.ts +39 -14
  89. package/src/browser/react/use-action.ts +6 -15
  90. package/src/browser/react/use-handle.ts +17 -14
  91. package/src/browser/react/use-href.tsx +8 -1
  92. package/src/browser/react/use-link-status.ts +33 -8
  93. package/src/browser/react/use-navigation.ts +32 -7
  94. package/src/browser/react/use-params.ts +20 -10
  95. package/src/browser/react/use-reverse.ts +106 -0
  96. package/src/browser/react/use-router.ts +25 -3
  97. package/src/browser/react/use-search-params.ts +0 -5
  98. package/src/browser/react/use-segments.ts +11 -21
  99. package/src/browser/response-adapter.ts +80 -5
  100. package/src/browser/rsc-router.tsx +91 -24
  101. package/src/browser/scroll-restoration.ts +30 -17
  102. package/src/browser/segment-reconciler.ts +36 -14
  103. package/src/browser/segment-structure-assert.ts +2 -2
  104. package/src/browser/server-action-bridge.ts +214 -55
  105. package/src/browser/types.ts +57 -8
  106. package/src/browser/validate-redirect-origin.ts +43 -16
  107. package/src/build/collect-fallback-refs.ts +107 -0
  108. package/src/build/generate-manifest.ts +60 -35
  109. package/src/build/generate-route-types.ts +2 -1
  110. package/src/build/index.ts +8 -2
  111. package/src/build/prefix-tree-utils.ts +123 -0
  112. package/src/build/route-trie.ts +165 -36
  113. package/src/build/route-types/ast-route-extraction.ts +15 -8
  114. package/src/build/route-types/codegen.ts +16 -5
  115. package/src/build/route-types/include-resolution.ts +117 -23
  116. package/src/build/route-types/param-extraction.ts +6 -3
  117. package/src/build/route-types/per-module-writer.ts +22 -6
  118. package/src/build/route-types/router-processing.ts +55 -28
  119. package/src/build/route-types/scan-filter.ts +1 -1
  120. package/src/build/route-types/source-scan.ts +216 -0
  121. package/src/build/runtime-discovery.ts +9 -20
  122. package/src/cache/cache-error.ts +104 -0
  123. package/src/cache/cache-key-utils.ts +29 -13
  124. package/src/cache/cache-policy.ts +108 -34
  125. package/src/cache/cache-runtime.ts +199 -37
  126. package/src/cache/cache-scope.ts +188 -82
  127. package/src/cache/cache-tag.ts +103 -0
  128. package/src/cache/cf/cf-base64.ts +33 -0
  129. package/src/cache/cf/cf-cache-constants.ts +127 -0
  130. package/src/cache/cf/cf-cache-store.ts +1989 -378
  131. package/src/cache/cf/cf-cache-types.ts +349 -0
  132. package/src/cache/cf/cf-kv-utils.ts +46 -0
  133. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  134. package/src/cache/cf/index.ts +6 -16
  135. package/src/cache/document-cache.ts +72 -20
  136. package/src/cache/handle-snapshot.ts +70 -0
  137. package/src/cache/index.ts +10 -20
  138. package/src/cache/memory-segment-store.ts +136 -37
  139. package/src/cache/profile-registry.ts +31 -31
  140. package/src/cache/read-through-swr.ts +41 -11
  141. package/src/cache/segment-codec.ts +9 -17
  142. package/src/cache/tag-invalidation.ts +230 -0
  143. package/src/cache/types.ts +37 -100
  144. package/src/client.rsc.tsx +44 -21
  145. package/src/client.tsx +118 -235
  146. package/src/cloudflare/index.ts +11 -0
  147. package/src/cloudflare/tracing.ts +109 -0
  148. package/src/component-utils.ts +19 -0
  149. package/src/components/DefaultDocument.tsx +8 -2
  150. package/src/context-var.ts +18 -6
  151. package/src/decode-loader-results.ts +52 -0
  152. package/src/defer.ts +196 -0
  153. package/src/deps/ssr.ts +0 -1
  154. package/src/encode-kv.ts +49 -0
  155. package/src/errors.ts +30 -4
  156. package/src/escape-script.ts +52 -0
  157. package/src/handle.ts +31 -23
  158. package/src/handles/MetaTags.tsx +62 -19
  159. package/src/handles/Scripts.tsx +183 -0
  160. package/src/handles/breadcrumbs.ts +37 -8
  161. package/src/handles/is-thenable.ts +19 -0
  162. package/src/handles/meta.ts +51 -40
  163. package/src/handles/script.ts +244 -0
  164. package/src/host/cookie-handler.ts +9 -60
  165. package/src/host/errors.ts +0 -24
  166. package/src/host/index.ts +8 -2
  167. package/src/host/pattern-matcher.ts +23 -52
  168. package/src/host/router.ts +107 -99
  169. package/src/host/testing.ts +40 -27
  170. package/src/host/types.ts +37 -4
  171. package/src/host/utils.ts +1 -1
  172. package/src/href-client.ts +137 -22
  173. package/src/index.rsc.ts +90 -11
  174. package/src/index.ts +129 -19
  175. package/src/internal-debug.ts +11 -10
  176. package/src/loader-store.ts +500 -0
  177. package/src/loader.rsc.ts +20 -13
  178. package/src/loader.ts +12 -11
  179. package/src/missing-id-error.ts +68 -0
  180. package/src/outlet-context.ts +1 -1
  181. package/src/outlet-provider.tsx +1 -5
  182. package/src/prerender/param-hash.ts +16 -16
  183. package/src/prerender/store.ts +32 -37
  184. package/src/prerender.ts +61 -6
  185. package/src/redirect-origin.ts +100 -0
  186. package/src/regex-escape.ts +8 -0
  187. package/src/render-error-thrower.tsx +20 -0
  188. package/src/response-utils.ts +62 -0
  189. package/src/reverse.ts +65 -36
  190. package/src/root-error-boundary.tsx +1 -19
  191. package/src/route-content-wrapper.tsx +7 -72
  192. package/src/route-definition/dsl-helpers.ts +418 -273
  193. package/src/route-definition/helper-factories.ts +29 -139
  194. package/src/route-definition/helpers-types.ts +103 -31
  195. package/src/route-definition/redirect.ts +44 -11
  196. package/src/route-definition/resolve-handler-use.ts +12 -0
  197. package/src/route-definition/use-item-types.ts +32 -0
  198. package/src/route-map-builder.ts +0 -16
  199. package/src/route-types.ts +26 -41
  200. package/src/router/basename.ts +14 -0
  201. package/src/router/content-negotiation.ts +73 -25
  202. package/src/router/error-handling.ts +45 -18
  203. package/src/router/find-match.ts +44 -23
  204. package/src/router/handler-context.ts +27 -39
  205. package/src/router/instrument.ts +350 -0
  206. package/src/router/intercept-resolution.ts +39 -20
  207. package/src/router/lazy-includes.ts +15 -52
  208. package/src/router/loader-resolution.ts +198 -92
  209. package/src/router/logging.ts +0 -6
  210. package/src/router/manifest.ts +40 -42
  211. package/src/router/match-api.ts +4 -23
  212. package/src/router/match-context.ts +0 -22
  213. package/src/router/match-handlers.ts +58 -58
  214. package/src/router/match-middleware/background-revalidation.ts +6 -7
  215. package/src/router/match-middleware/cache-lookup.ts +164 -285
  216. package/src/router/match-middleware/cache-store.ts +31 -34
  217. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  218. package/src/router/match-middleware/segment-resolution.ts +1 -23
  219. package/src/router/match-pipelines.ts +1 -42
  220. package/src/router/match-result.ts +87 -39
  221. package/src/router/metrics.ts +0 -34
  222. package/src/router/middleware-types.ts +7 -134
  223. package/src/router/middleware.ts +266 -166
  224. package/src/router/navigation-snapshot.ts +0 -51
  225. package/src/router/params-util.ts +23 -0
  226. package/src/router/pattern-matching.ts +132 -90
  227. package/src/router/prefetch-cache-ttl.ts +51 -0
  228. package/src/router/prerender-match.ts +104 -65
  229. package/src/router/preview-match.ts +3 -1
  230. package/src/router/request-classification.ts +28 -62
  231. package/src/router/revalidation.ts +123 -73
  232. package/src/router/route-snapshot.ts +0 -1
  233. package/src/router/router-context.ts +3 -28
  234. package/src/router/router-interfaces.ts +83 -35
  235. package/src/router/router-options.ts +136 -5
  236. package/src/router/router-registry.ts +2 -5
  237. package/src/router/segment-resolution/fresh.ts +98 -84
  238. package/src/router/segment-resolution/helpers.ts +86 -6
  239. package/src/router/segment-resolution/loader-cache.ts +62 -37
  240. package/src/router/segment-resolution/revalidation.ts +274 -319
  241. package/src/router/segment-resolution/static-store.ts +19 -5
  242. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  243. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  244. package/src/router/segment-resolution.ts +5 -1
  245. package/src/router/segment-wrappers.ts +6 -5
  246. package/src/router/state-cookie-name.ts +33 -0
  247. package/src/router/substitute-pattern-params.ts +56 -0
  248. package/src/router/telemetry-otel.ts +161 -199
  249. package/src/router/telemetry.ts +96 -19
  250. package/src/router/timeout.ts +0 -20
  251. package/src/router/tracing.ts +206 -0
  252. package/src/router/trie-matching.ts +163 -59
  253. package/src/router/types.ts +9 -63
  254. package/src/router/url-params.ts +44 -0
  255. package/src/router.ts +110 -55
  256. package/src/rsc/handler-context.ts +3 -2
  257. package/src/rsc/handler.ts +279 -224
  258. package/src/rsc/helpers.ts +168 -46
  259. package/src/rsc/index.ts +2 -5
  260. package/src/rsc/json-route-result.ts +38 -0
  261. package/src/rsc/loader-fetch.ts +127 -31
  262. package/src/rsc/manifest-init.ts +28 -41
  263. package/src/rsc/origin-guard.ts +39 -25
  264. package/src/rsc/progressive-enhancement.ts +73 -11
  265. package/src/rsc/redirect-guard.ts +99 -0
  266. package/src/rsc/response-cache-serve.ts +238 -0
  267. package/src/rsc/response-error.ts +79 -12
  268. package/src/rsc/response-route-handler.ts +99 -189
  269. package/src/rsc/rsc-rendering.ts +104 -76
  270. package/src/rsc/runtime-warnings.ts +23 -10
  271. package/src/rsc/server-action.ts +262 -113
  272. package/src/rsc/ssr-setup.ts +16 -0
  273. package/src/rsc/types.ts +24 -5
  274. package/src/runtime-env.ts +18 -0
  275. package/src/search-params.ts +35 -30
  276. package/src/segment-content-promise.ts +67 -0
  277. package/src/segment-loader-promise.ts +149 -0
  278. package/src/segment-system.tsx +218 -202
  279. package/src/serialize.ts +243 -0
  280. package/src/server/context.ts +175 -53
  281. package/src/server/cookie-parse.ts +32 -0
  282. package/src/server/cookie-store.ts +80 -5
  283. package/src/server/handle-store.ts +40 -38
  284. package/src/server/loader-registry.ts +21 -42
  285. package/src/server/request-context.ts +258 -170
  286. package/src/ssr/index.tsx +21 -16
  287. package/src/static-handler.ts +10 -13
  288. package/src/testing/cache-status.ts +162 -0
  289. package/src/testing/collect-handle.ts +40 -0
  290. package/src/testing/dispatch.ts +701 -0
  291. package/src/testing/dom.entry.ts +22 -0
  292. package/src/testing/e2e/fixture.ts +188 -0
  293. package/src/testing/e2e/index.ts +128 -0
  294. package/src/testing/e2e/matchers.ts +35 -0
  295. package/src/testing/e2e/page-helpers.ts +272 -0
  296. package/src/testing/e2e/parity.ts +387 -0
  297. package/src/testing/e2e/server.ts +195 -0
  298. package/src/testing/flight-matchers.ts +97 -0
  299. package/src/testing/flight-normalize.ts +11 -0
  300. package/src/testing/flight-runtime.d.ts +57 -0
  301. package/src/testing/flight-tree.ts +682 -0
  302. package/src/testing/flight.entry.ts +52 -0
  303. package/src/testing/flight.ts +257 -0
  304. package/src/testing/generated-routes.ts +183 -0
  305. package/src/testing/index.ts +99 -0
  306. package/src/testing/internal/context.ts +371 -0
  307. package/src/testing/internal/flight-client-globals.ts +30 -0
  308. package/src/testing/internal/seed-vars.ts +54 -0
  309. package/src/testing/render-handler.ts +343 -0
  310. package/src/testing/render-route.tsx +581 -0
  311. package/src/testing/run-loader.ts +385 -0
  312. package/src/testing/run-middleware.ts +205 -0
  313. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  314. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  315. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  316. package/src/testing/vitest-stubs/version.ts +5 -0
  317. package/src/testing/vitest.ts +305 -0
  318. package/src/theme/ThemeProvider.tsx +20 -58
  319. package/src/theme/ThemeScript.tsx +7 -9
  320. package/src/theme/constants.ts +52 -13
  321. package/src/theme/index.ts +0 -7
  322. package/src/theme/theme-context.ts +1 -5
  323. package/src/theme/theme-script.ts +22 -21
  324. package/src/theme/use-theme.ts +0 -3
  325. package/src/types/boundaries.ts +0 -35
  326. package/src/types/cache-types.ts +13 -4
  327. package/src/types/error-types.ts +30 -90
  328. package/src/types/global-namespace.ts +54 -41
  329. package/src/types/handler-context.ts +109 -61
  330. package/src/types/index.ts +1 -10
  331. package/src/types/loader-types.ts +11 -9
  332. package/src/types/request-scope.ts +112 -0
  333. package/src/types/route-config.ts +6 -50
  334. package/src/types/route-entry.ts +11 -6
  335. package/src/types/segments.ts +36 -15
  336. package/src/urls/include-helper.ts +33 -70
  337. package/src/urls/index.ts +1 -11
  338. package/src/urls/path-helper-types.ts +49 -9
  339. package/src/urls/path-helper.ts +17 -106
  340. package/src/urls/pattern-types.ts +36 -19
  341. package/src/urls/response-types.ts +22 -29
  342. package/src/urls/type-extraction.ts +58 -139
  343. package/src/urls/urls-function.ts +1 -18
  344. package/src/use-loader.tsx +295 -107
  345. package/src/vite/debug.ts +185 -0
  346. package/src/vite/discovery/bundle-postprocess.ts +8 -7
  347. package/src/vite/discovery/discover-routers.ts +126 -85
  348. package/src/vite/discovery/discovery-errors.ts +194 -0
  349. package/src/vite/discovery/gate-state.ts +171 -0
  350. package/src/vite/discovery/prerender-collection.ts +211 -142
  351. package/src/vite/discovery/route-types-writer.ts +40 -84
  352. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  353. package/src/vite/discovery/state.ts +44 -0
  354. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  355. package/src/vite/index.ts +2 -0
  356. package/src/vite/inject-client-debug.ts +36 -0
  357. package/src/vite/plugin-types.ts +126 -8
  358. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  359. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  360. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  361. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  362. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  363. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  364. package/src/vite/plugins/expose-action-id.ts +48 -95
  365. package/src/vite/plugins/expose-id-utils.ts +96 -51
  366. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  367. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  368. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  369. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  370. package/src/vite/plugins/expose-internal-ids.ts +553 -317
  371. package/src/vite/plugins/performance-tracks.ts +26 -25
  372. package/src/vite/plugins/refresh-cmd.ts +1 -1
  373. package/src/vite/plugins/use-cache-transform.ts +73 -83
  374. package/src/vite/plugins/version-injector.ts +21 -25
  375. package/src/vite/plugins/version-plugin.ts +37 -40
  376. package/src/vite/plugins/virtual-entries.ts +13 -18
  377. package/src/vite/rango.ts +109 -118
  378. package/src/vite/router-discovery.ts +777 -119
  379. package/src/vite/utils/ast-handler-extract.ts +26 -35
  380. package/src/vite/utils/banner.ts +1 -1
  381. package/src/vite/utils/bundle-analysis.ts +10 -15
  382. package/src/vite/utils/client-chunks.ts +184 -0
  383. package/src/vite/utils/directive-prologue.ts +40 -0
  384. package/src/vite/utils/forward-user-plugins.ts +171 -0
  385. package/src/vite/utils/manifest-utils.ts +4 -59
  386. package/src/vite/utils/package-resolution.ts +20 -52
  387. package/src/vite/utils/prerender-utils.ts +67 -38
  388. package/src/vite/utils/shared-utils.ts +90 -41
  389. package/dist/__internal.d.ts +0 -83
  390. package/dist/__internal.d.ts.map +0 -1
  391. package/dist/__internal.js +0 -19
  392. package/dist/__internal.js.map +0 -1
  393. package/dist/__mocks__/version.d.ts +0 -7
  394. package/dist/__mocks__/version.d.ts.map +0 -1
  395. package/dist/__mocks__/version.js +0 -7
  396. package/dist/__mocks__/version.js.map +0 -1
  397. package/dist/__tests__/client-href.test.d.ts +0 -2
  398. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  399. package/dist/__tests__/client-href.test.js +0 -74
  400. package/dist/__tests__/client-href.test.js.map +0 -1
  401. package/dist/__tests__/component-utils.test.d.ts +0 -2
  402. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  403. package/dist/__tests__/component-utils.test.js +0 -51
  404. package/dist/__tests__/component-utils.test.js.map +0 -1
  405. package/dist/__tests__/event-controller.test.d.ts +0 -2
  406. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  407. package/dist/__tests__/event-controller.test.js +0 -538
  408. package/dist/__tests__/event-controller.test.js.map +0 -1
  409. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  410. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  411. package/dist/__tests__/helpers/route-tree.js +0 -374
  412. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  413. package/dist/__tests__/match-result.test.d.ts +0 -2
  414. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  415. package/dist/__tests__/match-result.test.js +0 -154
  416. package/dist/__tests__/match-result.test.js.map +0 -1
  417. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  418. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  419. package/dist/__tests__/navigation-store.test.js +0 -440
  420. package/dist/__tests__/navigation-store.test.js.map +0 -1
  421. package/dist/__tests__/partial-update.test.d.ts +0 -2
  422. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  423. package/dist/__tests__/partial-update.test.js +0 -1009
  424. package/dist/__tests__/partial-update.test.js.map +0 -1
  425. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  426. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  427. package/dist/__tests__/reverse-types.test.js +0 -656
  428. package/dist/__tests__/reverse-types.test.js.map +0 -1
  429. package/dist/__tests__/route-definition.test.d.ts +0 -2
  430. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  431. package/dist/__tests__/route-definition.test.js +0 -55
  432. package/dist/__tests__/route-definition.test.js.map +0 -1
  433. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  434. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  435. package/dist/__tests__/router-helpers.test.js +0 -377
  436. package/dist/__tests__/router-helpers.test.js.map +0 -1
  437. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  438. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  439. package/dist/__tests__/router-integration-2.test.js +0 -426
  440. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  441. package/dist/__tests__/router-integration.test.d.ts +0 -2
  442. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  443. package/dist/__tests__/router-integration.test.js +0 -1051
  444. package/dist/__tests__/router-integration.test.js.map +0 -1
  445. package/dist/__tests__/search-params.test.d.ts +0 -5
  446. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  447. package/dist/__tests__/search-params.test.js +0 -306
  448. package/dist/__tests__/search-params.test.js.map +0 -1
  449. package/dist/__tests__/segment-system.test.d.ts +0 -2
  450. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  451. package/dist/__tests__/segment-system.test.js +0 -627
  452. package/dist/__tests__/segment-system.test.js.map +0 -1
  453. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  454. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  455. package/dist/__tests__/static-handler-types.test.js +0 -63
  456. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  457. package/dist/__tests__/urls.test.d.ts +0 -2
  458. package/dist/__tests__/urls.test.d.ts.map +0 -1
  459. package/dist/__tests__/urls.test.js +0 -421
  460. package/dist/__tests__/urls.test.js.map +0 -1
  461. package/dist/__tests__/use-mount.test.d.ts +0 -2
  462. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  463. package/dist/__tests__/use-mount.test.js +0 -35
  464. package/dist/__tests__/use-mount.test.js.map +0 -1
  465. package/dist/bin/rango.d.ts +0 -2
  466. package/dist/bin/rango.d.ts.map +0 -1
  467. package/dist/bin/rango.js.map +0 -1
  468. package/dist/browser/event-controller.d.ts +0 -191
  469. package/dist/browser/event-controller.d.ts.map +0 -1
  470. package/dist/browser/event-controller.js +0 -559
  471. package/dist/browser/event-controller.js.map +0 -1
  472. package/dist/browser/index.d.ts +0 -2
  473. package/dist/browser/index.d.ts.map +0 -1
  474. package/dist/browser/index.js +0 -14
  475. package/dist/browser/index.js.map +0 -1
  476. package/dist/browser/link-interceptor.d.ts +0 -38
  477. package/dist/browser/link-interceptor.d.ts.map +0 -1
  478. package/dist/browser/link-interceptor.js +0 -99
  479. package/dist/browser/link-interceptor.js.map +0 -1
  480. package/dist/browser/logging.d.ts +0 -10
  481. package/dist/browser/logging.d.ts.map +0 -1
  482. package/dist/browser/logging.js +0 -29
  483. package/dist/browser/logging.js.map +0 -1
  484. package/dist/browser/lru-cache.d.ts +0 -17
  485. package/dist/browser/lru-cache.d.ts.map +0 -1
  486. package/dist/browser/lru-cache.js +0 -50
  487. package/dist/browser/lru-cache.js.map +0 -1
  488. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  489. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  490. package/dist/browser/merge-segment-loaders.js +0 -102
  491. package/dist/browser/merge-segment-loaders.js.map +0 -1
  492. package/dist/browser/navigation-bridge.d.ts +0 -102
  493. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  494. package/dist/browser/navigation-bridge.js +0 -708
  495. package/dist/browser/navigation-bridge.js.map +0 -1
  496. package/dist/browser/navigation-client.d.ts +0 -25
  497. package/dist/browser/navigation-client.d.ts.map +0 -1
  498. package/dist/browser/navigation-client.js +0 -157
  499. package/dist/browser/navigation-client.js.map +0 -1
  500. package/dist/browser/navigation-store.d.ts +0 -101
  501. package/dist/browser/navigation-store.d.ts.map +0 -1
  502. package/dist/browser/navigation-store.js +0 -625
  503. package/dist/browser/navigation-store.js.map +0 -1
  504. package/dist/browser/partial-update.d.ts +0 -75
  505. package/dist/browser/partial-update.d.ts.map +0 -1
  506. package/dist/browser/partial-update.js +0 -426
  507. package/dist/browser/partial-update.js.map +0 -1
  508. package/dist/browser/react/Link.d.ts +0 -86
  509. package/dist/browser/react/Link.d.ts.map +0 -1
  510. package/dist/browser/react/Link.js +0 -128
  511. package/dist/browser/react/Link.js.map +0 -1
  512. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  513. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  514. package/dist/browser/react/NavigationProvider.js +0 -216
  515. package/dist/browser/react/NavigationProvider.js.map +0 -1
  516. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  517. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  518. package/dist/browser/react/ScrollRestoration.js +0 -57
  519. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  520. package/dist/browser/react/context.d.ts +0 -46
  521. package/dist/browser/react/context.d.ts.map +0 -1
  522. package/dist/browser/react/context.js +0 -10
  523. package/dist/browser/react/context.js.map +0 -1
  524. package/dist/browser/react/index.d.ts +0 -11
  525. package/dist/browser/react/index.d.ts.map +0 -1
  526. package/dist/browser/react/index.js +0 -22
  527. package/dist/browser/react/index.js.map +0 -1
  528. package/dist/browser/react/location-state-shared.d.ts +0 -63
  529. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  530. package/dist/browser/react/location-state-shared.js +0 -81
  531. package/dist/browser/react/location-state-shared.js.map +0 -1
  532. package/dist/browser/react/location-state.d.ts +0 -23
  533. package/dist/browser/react/location-state.d.ts.map +0 -1
  534. package/dist/browser/react/location-state.js +0 -29
  535. package/dist/browser/react/location-state.js.map +0 -1
  536. package/dist/browser/react/mount-context.d.ts +0 -24
  537. package/dist/browser/react/mount-context.d.ts.map +0 -1
  538. package/dist/browser/react/mount-context.js +0 -24
  539. package/dist/browser/react/mount-context.js.map +0 -1
  540. package/dist/browser/react/use-action.d.ts +0 -64
  541. package/dist/browser/react/use-action.d.ts.map +0 -1
  542. package/dist/browser/react/use-action.js +0 -134
  543. package/dist/browser/react/use-action.js.map +0 -1
  544. package/dist/browser/react/use-client-cache.d.ts +0 -41
  545. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  546. package/dist/browser/react/use-client-cache.js +0 -39
  547. package/dist/browser/react/use-client-cache.js.map +0 -1
  548. package/dist/browser/react/use-handle.d.ts +0 -31
  549. package/dist/browser/react/use-handle.d.ts.map +0 -1
  550. package/dist/browser/react/use-handle.js +0 -144
  551. package/dist/browser/react/use-handle.js.map +0 -1
  552. package/dist/browser/react/use-href.d.ts +0 -33
  553. package/dist/browser/react/use-href.d.ts.map +0 -1
  554. package/dist/browser/react/use-href.js +0 -39
  555. package/dist/browser/react/use-href.js.map +0 -1
  556. package/dist/browser/react/use-link-status.d.ts +0 -37
  557. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  558. package/dist/browser/react/use-link-status.js +0 -99
  559. package/dist/browser/react/use-link-status.js.map +0 -1
  560. package/dist/browser/react/use-mount.d.ts +0 -25
  561. package/dist/browser/react/use-mount.d.ts.map +0 -1
  562. package/dist/browser/react/use-mount.js +0 -30
  563. package/dist/browser/react/use-mount.js.map +0 -1
  564. package/dist/browser/react/use-navigation.d.ts +0 -27
  565. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  566. package/dist/browser/react/use-navigation.js +0 -87
  567. package/dist/browser/react/use-navigation.js.map +0 -1
  568. package/dist/browser/react/use-segments.d.ts +0 -38
  569. package/dist/browser/react/use-segments.d.ts.map +0 -1
  570. package/dist/browser/react/use-segments.js +0 -130
  571. package/dist/browser/react/use-segments.js.map +0 -1
  572. package/dist/browser/request-controller.d.ts +0 -26
  573. package/dist/browser/request-controller.d.ts.map +0 -1
  574. package/dist/browser/request-controller.js +0 -147
  575. package/dist/browser/request-controller.js.map +0 -1
  576. package/dist/browser/rsc-router.d.ts +0 -129
  577. package/dist/browser/rsc-router.d.ts.map +0 -1
  578. package/dist/browser/rsc-router.js +0 -195
  579. package/dist/browser/rsc-router.js.map +0 -1
  580. package/dist/browser/scroll-restoration.d.ts +0 -93
  581. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  582. package/dist/browser/scroll-restoration.js +0 -321
  583. package/dist/browser/scroll-restoration.js.map +0 -1
  584. package/dist/browser/segment-structure-assert.d.ts +0 -17
  585. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  586. package/dist/browser/segment-structure-assert.js +0 -59
  587. package/dist/browser/segment-structure-assert.js.map +0 -1
  588. package/dist/browser/server-action-bridge.d.ts +0 -26
  589. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  590. package/dist/browser/server-action-bridge.js +0 -668
  591. package/dist/browser/server-action-bridge.js.map +0 -1
  592. package/dist/browser/shallow.d.ts +0 -12
  593. package/dist/browser/shallow.d.ts.map +0 -1
  594. package/dist/browser/shallow.js +0 -34
  595. package/dist/browser/shallow.js.map +0 -1
  596. package/dist/browser/types.d.ts +0 -369
  597. package/dist/browser/types.d.ts.map +0 -1
  598. package/dist/browser/types.js +0 -2
  599. package/dist/browser/types.js.map +0 -1
  600. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  601. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  602. package/dist/build/__tests__/generate-cli.test.js +0 -237
  603. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  604. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  605. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  606. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  607. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  608. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  609. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  610. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  611. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  612. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  613. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  614. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  615. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  616. package/dist/build/generate-manifest.d.ts +0 -81
  617. package/dist/build/generate-manifest.d.ts.map +0 -1
  618. package/dist/build/generate-manifest.js +0 -276
  619. package/dist/build/generate-manifest.js.map +0 -1
  620. package/dist/build/generate-route-types.d.ts +0 -115
  621. package/dist/build/generate-route-types.d.ts.map +0 -1
  622. package/dist/build/generate-route-types.js +0 -740
  623. package/dist/build/generate-route-types.js.map +0 -1
  624. package/dist/build/index.d.ts +0 -21
  625. package/dist/build/index.d.ts.map +0 -1
  626. package/dist/build/index.js +0 -21
  627. package/dist/build/index.js.map +0 -1
  628. package/dist/build/route-trie.d.ts +0 -71
  629. package/dist/build/route-trie.d.ts.map +0 -1
  630. package/dist/build/route-trie.js +0 -175
  631. package/dist/build/route-trie.js.map +0 -1
  632. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  633. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  634. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  635. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  636. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  637. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  638. package/dist/cache/__tests__/document-cache.test.js +0 -345
  639. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  640. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  641. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  642. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  643. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  644. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  645. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  646. package/dist/cache/__tests__/memory-store.test.js +0 -367
  647. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  648. package/dist/cache/cache-scope.d.ts +0 -102
  649. package/dist/cache/cache-scope.d.ts.map +0 -1
  650. package/dist/cache/cache-scope.js +0 -440
  651. package/dist/cache/cache-scope.js.map +0 -1
  652. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  653. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  654. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  655. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  656. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  657. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  658. package/dist/cache/cf/cf-cache-store.js +0 -242
  659. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  660. package/dist/cache/cf/index.d.ts +0 -14
  661. package/dist/cache/cf/index.d.ts.map +0 -1
  662. package/dist/cache/cf/index.js +0 -17
  663. package/dist/cache/cf/index.js.map +0 -1
  664. package/dist/cache/document-cache.d.ts +0 -64
  665. package/dist/cache/document-cache.d.ts.map +0 -1
  666. package/dist/cache/document-cache.js +0 -228
  667. package/dist/cache/document-cache.js.map +0 -1
  668. package/dist/cache/index.d.ts +0 -19
  669. package/dist/cache/index.d.ts.map +0 -1
  670. package/dist/cache/index.js +0 -21
  671. package/dist/cache/index.js.map +0 -1
  672. package/dist/cache/memory-segment-store.d.ts +0 -110
  673. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  674. package/dist/cache/memory-segment-store.js +0 -117
  675. package/dist/cache/memory-segment-store.js.map +0 -1
  676. package/dist/cache/memory-store.d.ts +0 -41
  677. package/dist/cache/memory-store.d.ts.map +0 -1
  678. package/dist/cache/memory-store.js +0 -191
  679. package/dist/cache/memory-store.js.map +0 -1
  680. package/dist/cache/types.d.ts +0 -317
  681. package/dist/cache/types.d.ts.map +0 -1
  682. package/dist/cache/types.js +0 -12
  683. package/dist/cache/types.js.map +0 -1
  684. package/dist/client.d.ts +0 -248
  685. package/dist/client.d.ts.map +0 -1
  686. package/dist/client.js +0 -367
  687. package/dist/client.js.map +0 -1
  688. package/dist/client.rsc.d.ts +0 -26
  689. package/dist/client.rsc.d.ts.map +0 -1
  690. package/dist/client.rsc.js +0 -46
  691. package/dist/client.rsc.js.map +0 -1
  692. package/dist/component-utils.d.ts +0 -36
  693. package/dist/component-utils.d.ts.map +0 -1
  694. package/dist/component-utils.js +0 -61
  695. package/dist/component-utils.js.map +0 -1
  696. package/dist/components/DefaultDocument.d.ts +0 -13
  697. package/dist/components/DefaultDocument.d.ts.map +0 -1
  698. package/dist/components/DefaultDocument.js +0 -15
  699. package/dist/components/DefaultDocument.js.map +0 -1
  700. package/dist/debug.d.ts +0 -58
  701. package/dist/debug.d.ts.map +0 -1
  702. package/dist/debug.js +0 -157
  703. package/dist/debug.js.map +0 -1
  704. package/dist/default-error-boundary.d.ts +0 -11
  705. package/dist/default-error-boundary.d.ts.map +0 -1
  706. package/dist/default-error-boundary.js +0 -45
  707. package/dist/default-error-boundary.js.map +0 -1
  708. package/dist/deps/browser.d.ts +0 -2
  709. package/dist/deps/browser.d.ts.map +0 -1
  710. package/dist/deps/browser.js +0 -3
  711. package/dist/deps/browser.js.map +0 -1
  712. package/dist/deps/html-stream-client.d.ts +0 -2
  713. package/dist/deps/html-stream-client.d.ts.map +0 -1
  714. package/dist/deps/html-stream-client.js +0 -3
  715. package/dist/deps/html-stream-client.js.map +0 -1
  716. package/dist/deps/html-stream-server.d.ts +0 -2
  717. package/dist/deps/html-stream-server.d.ts.map +0 -1
  718. package/dist/deps/html-stream-server.js +0 -3
  719. package/dist/deps/html-stream-server.js.map +0 -1
  720. package/dist/deps/rsc.d.ts +0 -2
  721. package/dist/deps/rsc.d.ts.map +0 -1
  722. package/dist/deps/rsc.js +0 -4
  723. package/dist/deps/rsc.js.map +0 -1
  724. package/dist/deps/ssr.d.ts +0 -2
  725. package/dist/deps/ssr.d.ts.map +0 -1
  726. package/dist/deps/ssr.js +0 -3
  727. package/dist/deps/ssr.js.map +0 -1
  728. package/dist/errors.d.ts +0 -174
  729. package/dist/errors.d.ts.map +0 -1
  730. package/dist/errors.js +0 -241
  731. package/dist/errors.js.map +0 -1
  732. package/dist/handle.d.ts +0 -78
  733. package/dist/handle.d.ts.map +0 -1
  734. package/dist/handle.js +0 -82
  735. package/dist/handle.js.map +0 -1
  736. package/dist/handles/MetaTags.d.ts +0 -14
  737. package/dist/handles/MetaTags.d.ts.map +0 -1
  738. package/dist/handles/MetaTags.js +0 -136
  739. package/dist/handles/MetaTags.js.map +0 -1
  740. package/dist/handles/index.d.ts +0 -6
  741. package/dist/handles/index.d.ts.map +0 -1
  742. package/dist/handles/index.js +0 -6
  743. package/dist/handles/index.js.map +0 -1
  744. package/dist/handles/meta.d.ts +0 -39
  745. package/dist/handles/meta.d.ts.map +0 -1
  746. package/dist/handles/meta.js +0 -202
  747. package/dist/handles/meta.js.map +0 -1
  748. package/dist/host/__tests__/errors.test.d.ts +0 -2
  749. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  750. package/dist/host/__tests__/errors.test.js +0 -76
  751. package/dist/host/__tests__/errors.test.js.map +0 -1
  752. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  753. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  754. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  755. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  756. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  757. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  758. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  759. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  760. package/dist/host/__tests__/router.test.d.ts +0 -2
  761. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  762. package/dist/host/__tests__/router.test.js +0 -241
  763. package/dist/host/__tests__/router.test.js.map +0 -1
  764. package/dist/host/__tests__/testing.test.d.ts +0 -2
  765. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  766. package/dist/host/__tests__/testing.test.js +0 -64
  767. package/dist/host/__tests__/testing.test.js.map +0 -1
  768. package/dist/host/__tests__/utils.test.d.ts +0 -2
  769. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  770. package/dist/host/__tests__/utils.test.js +0 -29
  771. package/dist/host/__tests__/utils.test.js.map +0 -1
  772. package/dist/host/cookie-handler.d.ts +0 -34
  773. package/dist/host/cookie-handler.d.ts.map +0 -1
  774. package/dist/host/cookie-handler.js +0 -124
  775. package/dist/host/cookie-handler.js.map +0 -1
  776. package/dist/host/errors.d.ts +0 -56
  777. package/dist/host/errors.d.ts.map +0 -1
  778. package/dist/host/errors.js +0 -79
  779. package/dist/host/errors.js.map +0 -1
  780. package/dist/host/index.d.ts +0 -29
  781. package/dist/host/index.d.ts.map +0 -1
  782. package/dist/host/index.js +0 -32
  783. package/dist/host/index.js.map +0 -1
  784. package/dist/host/pattern-matcher.d.ts +0 -36
  785. package/dist/host/pattern-matcher.d.ts.map +0 -1
  786. package/dist/host/pattern-matcher.js +0 -172
  787. package/dist/host/pattern-matcher.js.map +0 -1
  788. package/dist/host/router.d.ts +0 -26
  789. package/dist/host/router.d.ts.map +0 -1
  790. package/dist/host/router.js +0 -218
  791. package/dist/host/router.js.map +0 -1
  792. package/dist/host/testing.d.ts +0 -36
  793. package/dist/host/testing.d.ts.map +0 -1
  794. package/dist/host/testing.js +0 -55
  795. package/dist/host/testing.js.map +0 -1
  796. package/dist/host/types.d.ts +0 -115
  797. package/dist/host/types.d.ts.map +0 -1
  798. package/dist/host/types.js +0 -7
  799. package/dist/host/types.js.map +0 -1
  800. package/dist/host/utils.d.ts +0 -21
  801. package/dist/host/utils.d.ts.map +0 -1
  802. package/dist/host/utils.js +0 -23
  803. package/dist/host/utils.js.map +0 -1
  804. package/dist/href-client.d.ts +0 -131
  805. package/dist/href-client.d.ts.map +0 -1
  806. package/dist/href-client.js +0 -64
  807. package/dist/href-client.js.map +0 -1
  808. package/dist/href-context.d.ts +0 -29
  809. package/dist/href-context.d.ts.map +0 -1
  810. package/dist/href-context.js +0 -21
  811. package/dist/href-context.js.map +0 -1
  812. package/dist/index.d.ts +0 -73
  813. package/dist/index.d.ts.map +0 -1
  814. package/dist/index.js +0 -91
  815. package/dist/index.js.map +0 -1
  816. package/dist/index.rsc.d.ts +0 -32
  817. package/dist/index.rsc.d.ts.map +0 -1
  818. package/dist/index.rsc.js +0 -40
  819. package/dist/index.rsc.js.map +0 -1
  820. package/dist/internal-debug.d.ts +0 -2
  821. package/dist/internal-debug.d.ts.map +0 -1
  822. package/dist/internal-debug.js +0 -5
  823. package/dist/internal-debug.js.map +0 -1
  824. package/dist/loader.d.ts +0 -14
  825. package/dist/loader.d.ts.map +0 -1
  826. package/dist/loader.js +0 -20
  827. package/dist/loader.js.map +0 -1
  828. package/dist/loader.rsc.d.ts +0 -19
  829. package/dist/loader.rsc.d.ts.map +0 -1
  830. package/dist/loader.rsc.js +0 -99
  831. package/dist/loader.rsc.js.map +0 -1
  832. package/dist/network-error-thrower.d.ts +0 -17
  833. package/dist/network-error-thrower.d.ts.map +0 -1
  834. package/dist/network-error-thrower.js +0 -14
  835. package/dist/network-error-thrower.js.map +0 -1
  836. package/dist/outlet-context.d.ts +0 -13
  837. package/dist/outlet-context.d.ts.map +0 -1
  838. package/dist/outlet-context.js +0 -3
  839. package/dist/outlet-context.js.map +0 -1
  840. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  841. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  842. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  843. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  844. package/dist/prerender/param-hash.d.ts +0 -16
  845. package/dist/prerender/param-hash.d.ts.map +0 -1
  846. package/dist/prerender/param-hash.js +0 -36
  847. package/dist/prerender/param-hash.js.map +0 -1
  848. package/dist/prerender/store.d.ts +0 -38
  849. package/dist/prerender/store.d.ts.map +0 -1
  850. package/dist/prerender/store.js +0 -61
  851. package/dist/prerender/store.js.map +0 -1
  852. package/dist/prerender.d.ts +0 -66
  853. package/dist/prerender.d.ts.map +0 -1
  854. package/dist/prerender.js +0 -57
  855. package/dist/prerender.js.map +0 -1
  856. package/dist/reverse.d.ts +0 -196
  857. package/dist/reverse.d.ts.map +0 -1
  858. package/dist/reverse.js +0 -78
  859. package/dist/reverse.js.map +0 -1
  860. package/dist/root-error-boundary.d.ts +0 -33
  861. package/dist/root-error-boundary.d.ts.map +0 -1
  862. package/dist/root-error-boundary.js +0 -165
  863. package/dist/root-error-boundary.js.map +0 -1
  864. package/dist/route-content-wrapper.d.ts +0 -46
  865. package/dist/route-content-wrapper.d.ts.map +0 -1
  866. package/dist/route-content-wrapper.js +0 -77
  867. package/dist/route-content-wrapper.js.map +0 -1
  868. package/dist/route-definition.d.ts +0 -421
  869. package/dist/route-definition.d.ts.map +0 -1
  870. package/dist/route-definition.js +0 -868
  871. package/dist/route-definition.js.map +0 -1
  872. package/dist/route-map-builder.d.ts +0 -155
  873. package/dist/route-map-builder.d.ts.map +0 -1
  874. package/dist/route-map-builder.js +0 -237
  875. package/dist/route-map-builder.js.map +0 -1
  876. package/dist/route-types.d.ts +0 -165
  877. package/dist/route-types.d.ts.map +0 -1
  878. package/dist/route-types.js +0 -7
  879. package/dist/route-types.js.map +0 -1
  880. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  881. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  882. package/dist/router/__tests__/handler-context.test.js +0 -65
  883. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  884. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  885. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  886. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  887. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  888. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  889. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  890. package/dist/router/__tests__/match-context.test.js +0 -92
  891. package/dist/router/__tests__/match-context.test.js.map +0 -1
  892. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  893. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  894. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  895. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  896. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  897. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  898. package/dist/router/__tests__/match-result.test.js +0 -457
  899. package/dist/router/__tests__/match-result.test.js.map +0 -1
  900. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  901. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  902. package/dist/router/__tests__/on-error.test.js +0 -678
  903. package/dist/router/__tests__/on-error.test.js.map +0 -1
  904. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  905. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  906. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  907. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  908. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  909. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  910. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  911. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  912. package/dist/router/error-handling.d.ts +0 -77
  913. package/dist/router/error-handling.d.ts.map +0 -1
  914. package/dist/router/error-handling.js +0 -202
  915. package/dist/router/error-handling.js.map +0 -1
  916. package/dist/router/handler-context.d.ts +0 -20
  917. package/dist/router/handler-context.d.ts.map +0 -1
  918. package/dist/router/handler-context.js +0 -198
  919. package/dist/router/handler-context.js.map +0 -1
  920. package/dist/router/intercept-resolution.d.ts +0 -66
  921. package/dist/router/intercept-resolution.d.ts.map +0 -1
  922. package/dist/router/intercept-resolution.js +0 -246
  923. package/dist/router/intercept-resolution.js.map +0 -1
  924. package/dist/router/loader-resolution.d.ts +0 -64
  925. package/dist/router/loader-resolution.d.ts.map +0 -1
  926. package/dist/router/loader-resolution.js +0 -284
  927. package/dist/router/loader-resolution.js.map +0 -1
  928. package/dist/router/logging.d.ts +0 -15
  929. package/dist/router/logging.d.ts.map +0 -1
  930. package/dist/router/logging.js +0 -99
  931. package/dist/router/logging.js.map +0 -1
  932. package/dist/router/manifest.d.ts +0 -22
  933. package/dist/router/manifest.d.ts.map +0 -1
  934. package/dist/router/manifest.js +0 -181
  935. package/dist/router/manifest.js.map +0 -1
  936. package/dist/router/match-api.d.ts +0 -35
  937. package/dist/router/match-api.d.ts.map +0 -1
  938. package/dist/router/match-api.js +0 -406
  939. package/dist/router/match-api.js.map +0 -1
  940. package/dist/router/match-context.d.ts +0 -206
  941. package/dist/router/match-context.d.ts.map +0 -1
  942. package/dist/router/match-context.js +0 -17
  943. package/dist/router/match-context.js.map +0 -1
  944. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  945. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  946. package/dist/router/match-middleware/background-revalidation.js +0 -75
  947. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  948. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  949. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  950. package/dist/router/match-middleware/cache-lookup.js +0 -257
  951. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  952. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  953. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  954. package/dist/router/match-middleware/cache-store.js +0 -108
  955. package/dist/router/match-middleware/cache-store.js.map +0 -1
  956. package/dist/router/match-middleware/index.d.ts +0 -81
  957. package/dist/router/match-middleware/index.d.ts.map +0 -1
  958. package/dist/router/match-middleware/index.js +0 -80
  959. package/dist/router/match-middleware/index.js.map +0 -1
  960. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  961. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  962. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  963. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  964. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  965. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  966. package/dist/router/match-middleware/segment-resolution.js +0 -53
  967. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  968. package/dist/router/match-pipelines.d.ts +0 -147
  969. package/dist/router/match-pipelines.d.ts.map +0 -1
  970. package/dist/router/match-pipelines.js +0 -82
  971. package/dist/router/match-pipelines.js.map +0 -1
  972. package/dist/router/match-result.d.ts +0 -126
  973. package/dist/router/match-result.d.ts.map +0 -1
  974. package/dist/router/match-result.js +0 -93
  975. package/dist/router/match-result.js.map +0 -1
  976. package/dist/router/metrics.d.ts +0 -20
  977. package/dist/router/metrics.d.ts.map +0 -1
  978. package/dist/router/metrics.js +0 -47
  979. package/dist/router/metrics.js.map +0 -1
  980. package/dist/router/middleware.d.ts +0 -249
  981. package/dist/router/middleware.d.ts.map +0 -1
  982. package/dist/router/middleware.js +0 -434
  983. package/dist/router/middleware.js.map +0 -1
  984. package/dist/router/middleware.test.d.ts +0 -2
  985. package/dist/router/middleware.test.d.ts.map +0 -1
  986. package/dist/router/middleware.test.js +0 -816
  987. package/dist/router/middleware.test.js.map +0 -1
  988. package/dist/router/pattern-matching.d.ts +0 -149
  989. package/dist/router/pattern-matching.d.ts.map +0 -1
  990. package/dist/router/pattern-matching.js +0 -349
  991. package/dist/router/pattern-matching.js.map +0 -1
  992. package/dist/router/revalidation.d.ts +0 -44
  993. package/dist/router/revalidation.d.ts.map +0 -1
  994. package/dist/router/revalidation.js +0 -147
  995. package/dist/router/revalidation.js.map +0 -1
  996. package/dist/router/router-context.d.ts +0 -135
  997. package/dist/router/router-context.d.ts.map +0 -1
  998. package/dist/router/router-context.js +0 -36
  999. package/dist/router/router-context.js.map +0 -1
  1000. package/dist/router/segment-resolution.d.ts +0 -127
  1001. package/dist/router/segment-resolution.d.ts.map +0 -1
  1002. package/dist/router/segment-resolution.js +0 -919
  1003. package/dist/router/segment-resolution.js.map +0 -1
  1004. package/dist/router/trie-matching.d.ts +0 -40
  1005. package/dist/router/trie-matching.d.ts.map +0 -1
  1006. package/dist/router/trie-matching.js +0 -127
  1007. package/dist/router/trie-matching.js.map +0 -1
  1008. package/dist/router/types.d.ts +0 -136
  1009. package/dist/router/types.d.ts.map +0 -1
  1010. package/dist/router/types.js +0 -7
  1011. package/dist/router/types.js.map +0 -1
  1012. package/dist/router.d.ts +0 -753
  1013. package/dist/router.d.ts.map +0 -1
  1014. package/dist/router.gen.d.ts +0 -6
  1015. package/dist/router.gen.d.ts.map +0 -1
  1016. package/dist/router.gen.js +0 -6
  1017. package/dist/router.gen.js.map +0 -1
  1018. package/dist/router.js +0 -1304
  1019. package/dist/router.js.map +0 -1
  1020. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1021. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1022. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1023. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1024. package/dist/rsc/handler.d.ts +0 -45
  1025. package/dist/rsc/handler.d.ts.map +0 -1
  1026. package/dist/rsc/handler.js +0 -1172
  1027. package/dist/rsc/handler.js.map +0 -1
  1028. package/dist/rsc/helpers.d.ts +0 -16
  1029. package/dist/rsc/helpers.d.ts.map +0 -1
  1030. package/dist/rsc/helpers.js +0 -55
  1031. package/dist/rsc/helpers.js.map +0 -1
  1032. package/dist/rsc/index.d.ts +0 -22
  1033. package/dist/rsc/index.d.ts.map +0 -1
  1034. package/dist/rsc/index.js +0 -23
  1035. package/dist/rsc/index.js.map +0 -1
  1036. package/dist/rsc/nonce.d.ts +0 -9
  1037. package/dist/rsc/nonce.d.ts.map +0 -1
  1038. package/dist/rsc/nonce.js +0 -18
  1039. package/dist/rsc/nonce.js.map +0 -1
  1040. package/dist/rsc/types.d.ts +0 -206
  1041. package/dist/rsc/types.d.ts.map +0 -1
  1042. package/dist/rsc/types.js +0 -8
  1043. package/dist/rsc/types.js.map +0 -1
  1044. package/dist/search-params.d.ts +0 -103
  1045. package/dist/search-params.d.ts.map +0 -1
  1046. package/dist/search-params.js +0 -74
  1047. package/dist/search-params.js.map +0 -1
  1048. package/dist/segment-system.d.ts +0 -75
  1049. package/dist/segment-system.d.ts.map +0 -1
  1050. package/dist/segment-system.js +0 -336
  1051. package/dist/segment-system.js.map +0 -1
  1052. package/dist/server/context.d.ts +0 -245
  1053. package/dist/server/context.d.ts.map +0 -1
  1054. package/dist/server/context.js +0 -197
  1055. package/dist/server/context.js.map +0 -1
  1056. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1057. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1058. package/dist/server/fetchable-loader-store.js +0 -18
  1059. package/dist/server/fetchable-loader-store.js.map +0 -1
  1060. package/dist/server/handle-store.d.ts +0 -85
  1061. package/dist/server/handle-store.d.ts.map +0 -1
  1062. package/dist/server/handle-store.js +0 -142
  1063. package/dist/server/handle-store.js.map +0 -1
  1064. package/dist/server/loader-registry.d.ts +0 -55
  1065. package/dist/server/loader-registry.d.ts.map +0 -1
  1066. package/dist/server/loader-registry.js +0 -132
  1067. package/dist/server/loader-registry.js.map +0 -1
  1068. package/dist/server/request-context.d.ts +0 -226
  1069. package/dist/server/request-context.d.ts.map +0 -1
  1070. package/dist/server/request-context.js +0 -290
  1071. package/dist/server/request-context.js.map +0 -1
  1072. package/dist/server/root-layout.d.ts +0 -4
  1073. package/dist/server/root-layout.d.ts.map +0 -1
  1074. package/dist/server/root-layout.js +0 -5
  1075. package/dist/server/root-layout.js.map +0 -1
  1076. package/dist/server.d.ts +0 -15
  1077. package/dist/server.d.ts.map +0 -1
  1078. package/dist/server.js +0 -20
  1079. package/dist/server.js.map +0 -1
  1080. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1081. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1082. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1083. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1084. package/dist/ssr/index.d.ts +0 -98
  1085. package/dist/ssr/index.d.ts.map +0 -1
  1086. package/dist/ssr/index.js +0 -158
  1087. package/dist/ssr/index.js.map +0 -1
  1088. package/dist/static-handler.d.ts +0 -50
  1089. package/dist/static-handler.d.ts.map +0 -1
  1090. package/dist/static-handler.gen.d.ts +0 -5
  1091. package/dist/static-handler.gen.d.ts.map +0 -1
  1092. package/dist/static-handler.gen.js +0 -5
  1093. package/dist/static-handler.gen.js.map +0 -1
  1094. package/dist/static-handler.js +0 -29
  1095. package/dist/static-handler.js.map +0 -1
  1096. package/dist/theme/ThemeProvider.d.ts +0 -20
  1097. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1098. package/dist/theme/ThemeProvider.js +0 -240
  1099. package/dist/theme/ThemeProvider.js.map +0 -1
  1100. package/dist/theme/ThemeScript.d.ts +0 -48
  1101. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1102. package/dist/theme/ThemeScript.js +0 -13
  1103. package/dist/theme/ThemeScript.js.map +0 -1
  1104. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1105. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1106. package/dist/theme/__tests__/theme.test.js +0 -103
  1107. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1108. package/dist/theme/constants.d.ts +0 -29
  1109. package/dist/theme/constants.d.ts.map +0 -1
  1110. package/dist/theme/constants.js +0 -48
  1111. package/dist/theme/constants.js.map +0 -1
  1112. package/dist/theme/index.d.ts +0 -31
  1113. package/dist/theme/index.d.ts.map +0 -1
  1114. package/dist/theme/index.js +0 -36
  1115. package/dist/theme/index.js.map +0 -1
  1116. package/dist/theme/theme-context.d.ts +0 -40
  1117. package/dist/theme/theme-context.d.ts.map +0 -1
  1118. package/dist/theme/theme-context.js +0 -60
  1119. package/dist/theme/theme-context.js.map +0 -1
  1120. package/dist/theme/theme-script.d.ts +0 -27
  1121. package/dist/theme/theme-script.d.ts.map +0 -1
  1122. package/dist/theme/theme-script.js +0 -147
  1123. package/dist/theme/theme-script.js.map +0 -1
  1124. package/dist/theme/types.d.ts +0 -163
  1125. package/dist/theme/types.d.ts.map +0 -1
  1126. package/dist/theme/types.js +0 -11
  1127. package/dist/theme/types.js.map +0 -1
  1128. package/dist/theme/use-theme.d.ts +0 -12
  1129. package/dist/theme/use-theme.d.ts.map +0 -1
  1130. package/dist/theme/use-theme.js +0 -40
  1131. package/dist/theme/use-theme.js.map +0 -1
  1132. package/dist/types.d.ts +0 -1479
  1133. package/dist/types.d.ts.map +0 -1
  1134. package/dist/types.js +0 -10
  1135. package/dist/types.js.map +0 -1
  1136. package/dist/urls.d.ts +0 -441
  1137. package/dist/urls.d.ts.map +0 -1
  1138. package/dist/urls.gen.d.ts +0 -8
  1139. package/dist/urls.gen.d.ts.map +0 -1
  1140. package/dist/urls.gen.js +0 -8
  1141. package/dist/urls.gen.js.map +0 -1
  1142. package/dist/urls.js +0 -443
  1143. package/dist/urls.js.map +0 -1
  1144. package/dist/use-loader.d.ts +0 -127
  1145. package/dist/use-loader.d.ts.map +0 -1
  1146. package/dist/use-loader.js +0 -237
  1147. package/dist/use-loader.js.map +0 -1
  1148. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1149. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1150. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1151. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1152. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1153. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1154. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1155. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1156. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1157. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1158. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1159. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1160. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1161. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1162. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1163. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1164. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1165. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1166. package/dist/vite/ast-handler-extract.js +0 -249
  1167. package/dist/vite/ast-handler-extract.js.map +0 -1
  1168. package/dist/vite/expose-action-id.d.ts +0 -19
  1169. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1170. package/dist/vite/expose-action-id.js +0 -250
  1171. package/dist/vite/expose-action-id.js.map +0 -1
  1172. package/dist/vite/expose-id-utils.d.ts +0 -69
  1173. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1174. package/dist/vite/expose-id-utils.js +0 -289
  1175. package/dist/vite/expose-id-utils.js.map +0 -1
  1176. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1177. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1178. package/dist/vite/expose-internal-ids.js +0 -886
  1179. package/dist/vite/expose-internal-ids.js.map +0 -1
  1180. package/dist/vite/index.d.ts +0 -149
  1181. package/dist/vite/index.d.ts.map +0 -1
  1182. package/dist/vite/index.js.bak +0 -5448
  1183. package/dist/vite/index.js.map +0 -1
  1184. package/dist/vite/index.named-routes.gen.ts +0 -103
  1185. package/dist/vite/package-resolution.d.ts +0 -43
  1186. package/dist/vite/package-resolution.d.ts.map +0 -1
  1187. package/dist/vite/package-resolution.js +0 -112
  1188. package/dist/vite/package-resolution.js.map +0 -1
  1189. package/dist/vite/virtual-entries.d.ts +0 -25
  1190. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1191. package/dist/vite/virtual-entries.js +0 -110
  1192. package/dist/vite/virtual-entries.js.map +0 -1
  1193. package/src/browser/action-response-classifier.ts +0 -99
  1194. package/src/browser/react/use-client-cache.ts +0 -58
  1195. package/src/browser/shallow.ts +0 -40
  1196. package/src/handles/index.ts +0 -7
  1197. package/src/network-error-thrower.tsx +0 -23
  1198. package/src/router/middleware-cookies.ts +0 -55
@@ -0,0 +1,106 @@
1
+ "use client";
2
+
3
+ import { useCallback } from "react";
4
+ import type { LocalReverseFunction } from "../../reverse.js";
5
+ import { substitutePatternParams } from "../../router/substitute-pattern-params.js";
6
+ import { serializeSearchParams } from "../../search-params.js";
7
+ import { useMount } from "./use-mount.js";
8
+ import { useParams } from "./use-params.js";
9
+
10
+ type RouteEntry = string | { readonly path: string };
11
+ type LocalRouteMap = Readonly<Record<string, RouteEntry>>;
12
+
13
+ function getPattern(entry: RouteEntry | undefined): string | undefined {
14
+ if (entry === undefined) return undefined;
15
+ return typeof entry === "string" ? entry : entry.path;
16
+ }
17
+
18
+ /**
19
+ * Join an include mount prefix with a mount-relative pattern.
20
+ *
21
+ * `pattern === "/"` is the index of the local module — under a non-root
22
+ * mount it must collapse so `/` under `/blog` becomes `/blog`, not
23
+ * `/blog/`. This matches `ctx.reverse(".index")` on the server.
24
+ */
25
+ function joinMount(mount: string, pattern: string): string {
26
+ if (pattern === "/") {
27
+ if (mount === "" || mount === "/") return "/";
28
+ return mount.endsWith("/") ? mount.slice(0, -1) : mount;
29
+ }
30
+ const normalizedMount = mount === "/" ? "" : mount.replace(/\/+$/, "");
31
+ return normalizedMount + pattern;
32
+ }
33
+
34
+ /**
35
+ * Mount-aware reverse function for a locally-imported `routes` map.
36
+ *
37
+ * The `routes` map you pass IS the scope: `reverse("name")` looks the name up
38
+ * in that map (verbatim), prefixes the result with the surrounding `include()`
39
+ * mount path via `useMount()`, and substitutes params — auto-filling from the
40
+ * current matched route's params, with explicit params overriding. A module's
41
+ * components can therefore reverse their own routes without knowing where the
42
+ * module is mounted: include it under any prefix and the URLs resolve correctly.
43
+ *
44
+ * The leading dot is optional and cosmetic: `reverse("post")` and
45
+ * `reverse(".post")` resolve identically. The dot exists only as a readability
46
+ * convention and for parity with `ctx.reverse(".name")` on the server; here the
47
+ * passed map is the scope, so there is no separate global namespace to
48
+ * disambiguate and the dot carries no meaning.
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * "use client";
53
+ * import { Link, useReverse } from "@rangojs/router/client";
54
+ * import { routes as blogRoutes } from "../urls/blog.gen.js";
55
+ *
56
+ * function BlogNav() {
57
+ * const reverse = useReverse(blogRoutes);
58
+ * return (
59
+ * <>
60
+ * <Link to={reverse("index")}>Blog</Link>
61
+ * <Link to={reverse("post", { postId: "hello" })}>Post</Link>
62
+ * </>
63
+ * );
64
+ * }
65
+ * ```
66
+ */
67
+ export function useReverse<const TRoutes extends LocalRouteMap>(
68
+ routes: TRoutes,
69
+ ): LocalReverseFunction<TRoutes> {
70
+ const mount = useMount();
71
+ const currentParams = useParams();
72
+
73
+ return useCallback(
74
+ ((
75
+ name: string,
76
+ explicitParams?: Record<string, string | undefined>,
77
+ search?: Record<string, unknown>,
78
+ ): string => {
79
+ // The leading dot is optional. The passed map IS the scope, so a dot to
80
+ // signal "local" is unnecessary — "detail" and ".detail" resolve the same.
81
+ // A dot is accepted (and stripped) for readability / ctx.reverse parity.
82
+ const lookupName = name.startsWith(".") ? name.slice(1) : name;
83
+ const entry = (routes as LocalRouteMap)[lookupName];
84
+ const pattern = getPattern(entry);
85
+ if (pattern === undefined) {
86
+ throw new Error(`Unknown route: "${name}"`);
87
+ }
88
+
89
+ const joined = joinMount(mount, pattern);
90
+
91
+ const mergedParams = explicitParams
92
+ ? { ...currentParams, ...explicitParams }
93
+ : currentParams;
94
+
95
+ const substituted = substitutePatternParams(joined, mergedParams, name);
96
+
97
+ if (search) {
98
+ const qs = serializeSearchParams(search);
99
+ if (qs) return `${substituted}?${qs}`;
100
+ }
101
+
102
+ return substituted;
103
+ }) as LocalReverseFunction<TRoutes>,
104
+ [routes, mount, currentParams],
105
+ );
106
+ }
@@ -13,6 +13,11 @@ import type { RouterInstance, RouterNavigateOptions } from "../types.js";
13
13
  * useRouter() do not re-render on navigation state changes.
14
14
  * For reactive navigation state, use useNavigation() instead.
15
15
  *
16
+ * Methods read `basename` from the context on each call. It is set once from
17
+ * the initial payload and is stable within a session — a cross-app navigation
18
+ * is a full document load (X-RSC-Reload), so the target app mounts fresh with
19
+ * its own basename.
20
+ *
16
21
  * @example
17
22
  * ```tsx
18
23
  * const router = useRouter();
@@ -29,7 +34,10 @@ export function useRouter(): RouterInstance {
29
34
  throw new Error("useRouter must be used within NavigationProvider");
30
35
  }
31
36
 
32
- // Stable reference: ctx is itself stable (NavigationProvider memoizes with [])
37
+ // Stable reference: ctx itself is stable, and reads on each method call
38
+ // pick up live basename values from the context (backed by a live ref
39
+ // in NavigationProvider), so app-switch transitions are reflected without
40
+ // recreating this object.
33
41
  return useMemo<RouterInstance>(() => {
34
42
  /** Prefix a root-relative path with basename if not already prefixed. */
35
43
  function withBasename(url: string): string {
@@ -52,7 +60,7 @@ export function useRouter(): RouterInstance {
52
60
  return ctx.refresh();
53
61
  },
54
62
 
55
- prefetch(url: string): void {
63
+ prefetch(url: string, options?: { key?: ":source" }): void {
56
64
  const segmentState = ctx.store?.getSegmentState();
57
65
  if (segmentState) {
58
66
  prefetchDirect(
@@ -60,12 +68,26 @@ export function useRouter(): RouterInstance {
60
68
  segmentState.currentSegmentIds,
61
69
  getAppVersion(),
62
70
  ctx.store?.getRouterId?.(),
71
+ options?.key,
63
72
  );
64
73
  }
65
74
  },
66
75
 
67
76
  back(): void {
68
- window.history.back();
77
+ // Avoid escaping the host on the first entry of this session.
78
+ // Prefer the Navigation API; fall back to the router-stamped
79
+ // history.state.idx (set by pushHistoryWithIdx) for older browsers.
80
+ const nav = (window as { navigation?: { canGoBack: boolean } })
81
+ .navigation;
82
+ const canGoBack =
83
+ nav && typeof nav.canGoBack === "boolean"
84
+ ? nav.canGoBack
85
+ : ((window.history.state as { idx?: number } | null)?.idx ?? 0) > 0;
86
+ if (canGoBack) {
87
+ window.history.back();
88
+ } else {
89
+ ctx.navigate(withBasename("/"), { replace: true });
90
+ }
69
91
  },
70
92
 
71
93
  forward(): void {
@@ -24,9 +24,6 @@ import type { ReadonlyURLSearchParams } from "../types.js";
24
24
  export function useSearchParams(): ReadonlyURLSearchParams {
25
25
  const ctx = useContext(NavigationStoreContext);
26
26
 
27
- // Always initialize with empty URLSearchParams to match SSR output
28
- // and avoid hydration mismatch. The useEffect below syncs from
29
- // the real URL after hydration.
30
27
  const [searchParams, setSearchParams] = useState<ReadonlyURLSearchParams>(
31
28
  () => new URLSearchParams(),
32
29
  );
@@ -41,12 +38,10 @@ export function useSearchParams(): ReadonlyURLSearchParams {
41
38
  const nextSearch = location.searchParams.toString();
42
39
  if (nextSearch !== prevSearch.current) {
43
40
  prevSearch.current = nextSearch;
44
- // Create a snapshot so callers cannot mutate the source URLSearchParams
45
41
  setSearchParams(new URLSearchParams(nextSearch));
46
42
  }
47
43
  };
48
44
 
49
- // Sync on mount (picks up search params from browser URL)
50
45
  update();
51
46
 
52
47
  return ctx.eventController.subscribe(update);
@@ -25,15 +25,18 @@ function parsePathname(pathname: string): string[] {
25
25
  }
26
26
 
27
27
  /**
28
- * Build segments state from event controller
28
+ * Build segments state from event controller. `segmentIds` is the
29
+ * route-only list (parallels and loaders stripped) — distinct from the
30
+ * controller's `segmentOrder` which drives handle collection and includes
31
+ * parallel slot ids.
29
32
  */
30
33
  function buildSegmentsState(
31
34
  location: URL,
32
- segmentOrder: string[],
35
+ routeSegmentIds: string[],
33
36
  ): SegmentsState {
34
37
  return {
35
38
  path: parsePathname(location.pathname),
36
- segmentIds: segmentOrder,
39
+ segmentIds: routeSegmentIds,
37
40
  location,
38
41
  };
39
42
  }
@@ -74,7 +77,7 @@ export function useSegments<T>(
74
77
  const handleState = ctx.eventController.getHandleState();
75
78
  const segmentsState = buildSegmentsState(
76
79
  location as URL,
77
- handleState.segmentOrder,
80
+ handleState.routeSegmentIds,
78
81
  );
79
82
  return selector ? selector(segmentsState) : segmentsState;
80
83
  });
@@ -83,47 +86,36 @@ export function useSegments<T>(
83
86
  const selectorRef = useRef(selector);
84
87
  selectorRef.current = selector;
85
88
 
86
- // Track selector identity to detect when the selector function changes.
87
- // Only then do we eagerly recompute during render to avoid staleness.
88
- // Without this guard, no-selector mode causes infinite re-renders because
89
- // buildSegmentsState creates fresh arrays that fail Object.is checks.
90
89
  const prevSelectorIdentity = useRef(selector);
91
90
 
92
- // Cache SegmentsState to stabilize nested references (path, segmentIds
93
- // arrays) so selectors returning composite values don't cause spurious
94
- // render-time setState calls.
95
91
  const segmentsCache = useRef<{
96
92
  location: URL;
97
- segmentOrder: string[];
93
+ routeSegmentIds: string[];
98
94
  state: SegmentsState;
99
95
  } | null>(null);
100
96
 
101
- // Recompute selected value from current store state and apply selector.
102
- // Shared by the render-time eager check and the subscription callback.
103
97
  function recompute(
104
98
  sel: ((state: SegmentsState) => T) | undefined,
105
99
  ): T | SegmentsState {
106
100
  const location = ctx!.eventController.getLocation();
107
101
  const handleState = ctx!.eventController.getHandleState();
108
102
 
109
- // Reuse cached state when inputs haven't changed by reference,
110
- // keeping array/object references stable for composite selectors.
111
103
  const cache = segmentsCache.current;
112
104
  let segmentsState: SegmentsState;
113
105
  if (
114
106
  cache &&
115
107
  cache.location === location &&
116
- cache.segmentOrder === handleState.segmentOrder
108
+ cache.routeSegmentIds === handleState.routeSegmentIds
117
109
  ) {
118
110
  segmentsState = cache.state;
119
111
  } else {
120
112
  segmentsState = buildSegmentsState(
121
113
  location as URL,
122
- handleState.segmentOrder,
114
+ handleState.routeSegmentIds,
123
115
  );
124
116
  segmentsCache.current = {
125
117
  location: location as URL,
126
- segmentOrder: handleState.segmentOrder,
118
+ routeSegmentIds: handleState.routeSegmentIds,
127
119
  state: segmentsState,
128
120
  };
129
121
  }
@@ -162,8 +154,6 @@ export function useSegments<T>(
162
154
  unsubscribeNav();
163
155
  unsubscribeHandles();
164
156
  };
165
- // Stable subscription: selector changes are handled via selectorRef,
166
- // state comparison uses prevState ref. No re-subscribe needed.
167
157
  // eslint-disable-next-line react-hooks/exhaustive-deps
168
158
  }, []);
169
159
 
@@ -2,6 +2,16 @@ import { validateRedirectOrigin } from "./validate-redirect-origin.js";
2
2
 
3
3
  type HeaderResult = { url: string } | "blocked" | null;
4
4
 
5
+ /**
6
+ * Null-body statuses: the Fetch spec forbids pairing these with a body, so
7
+ * `new Response(body, { status })` throws ("Response with null body status
8
+ * cannot have body"). fetch() can still surface one WITH a body straight from
9
+ * the network layer (never the JS constructor): a 304 stale-while-revalidate
10
+ * prefetch revalidated to Not Modified (body from cache), or a 204 soft
11
+ * redirect. teeWithCompletion must not re-run those through `new Response`.
12
+ */
13
+ const NULL_BODY_STATUS = new Set([101, 204, 205, 304]);
14
+
5
15
  /**
6
16
  * Extract and validate an RSC response header URL (X-RSC-Reload, X-RSC-Redirect).
7
17
  * Returns { url } if valid, "blocked" if present but invalid origin, null if absent.
@@ -24,6 +34,51 @@ export function emptyResponse(): Response {
24
34
  return new Response(null, { status: 200 });
25
35
  }
26
36
 
37
+ /**
38
+ * Whether an RSC content response carries a server-stamped router identity
39
+ * (`X-RSC-Router-Id`) that DIFFERS from the id this client expects (its own
40
+ * routerId, also sent as `_rsc_rid`). Pre-decode integrity check: lets a caller
41
+ * refuse a foreign app's payload before `createFromFetch` imports its chunks.
42
+ *
43
+ * True ONLY when both the header and the expected id are present and differ. An
44
+ * absent header (control-only reload/redirect responses are not stamped) or an
45
+ * absent expected id (e.g. before the client is seeded) is a pass-through —
46
+ * never a false reject.
47
+ */
48
+ export function isForeignRouterId(
49
+ response: Response,
50
+ expectedId: string | undefined,
51
+ ): boolean {
52
+ const got = response.headers.get("X-RSC-Router-Id");
53
+ if (!got || !expectedId) return false;
54
+ return got !== expectedId;
55
+ }
56
+
57
+ /**
58
+ * Handle the X-RSC-Reload control header (server requests a full page reload on
59
+ * a version mismatch). Returns a short-circuit response when the header is
60
+ * present -- emptyResponse() if the URL was blocked by origin validation, or a
61
+ * never-resolving promise while the page reloads -- and null when absent, so
62
+ * the caller continues processing (e.g. the X-RSC-Redirect check). Scoped to
63
+ * X-RSC-Reload only; redirect handling differs between callers.
64
+ */
65
+ export function handleReloadHeader(
66
+ response: Response,
67
+ opts: { onBlocked: () => void; onReload: (url: string) => void },
68
+ ): Response | Promise<Response> | null {
69
+ const reload = extractRscHeaderUrl(response, "X-RSC-Reload");
70
+ if (reload === "blocked") {
71
+ opts.onBlocked();
72
+ return emptyResponse();
73
+ }
74
+ if (reload) {
75
+ opts.onReload(reload.url);
76
+ window.location.href = reload.url;
77
+ return new Promise<Response>(() => {});
78
+ }
79
+ return null;
80
+ }
81
+
27
82
  /**
28
83
  * Tee a response body for RSC parsing and stream completion tracking.
29
84
  * Returns a new Response with one branch; the other is consumed to detect
@@ -31,14 +86,34 @@ export function emptyResponse(): Response {
31
86
  *
32
87
  * If the response has no body, onComplete fires synchronously.
33
88
  * If signal is provided, an abort cancels the tracking reader.
89
+ *
90
+ * `silent` suppresses the stream-error log. Prefetch passes it: a speculative,
91
+ * low-priority prefetch that is aborted or never consumed can error its stream
92
+ * benignly, which is not worth surfacing. The fresh-navigation path keeps the
93
+ * log (default), where a stream error reflects a real failed navigation.
34
94
  */
35
95
  export function teeWithCompletion(
36
96
  response: Response,
37
97
  onComplete: () => void,
38
98
  signal?: AbortSignal,
99
+ silent = false,
39
100
  ): Response {
40
- if (!response.body) {
41
- onComplete();
101
+ // Once-guard: a mid-stream read error runs both the finally block and the
102
+ // rejection's .catch, so onComplete must be settled exactly once across all
103
+ // paths (no-body early return, finally, catch).
104
+ let settled = false;
105
+ const settle = () => {
106
+ if (!settled) {
107
+ settled = true;
108
+ onComplete();
109
+ }
110
+ };
111
+
112
+ // Empty body, or a null-body status fetch() paired with a body: either way the
113
+ // body can't be re-attached via `new Response` below. Settle and pass the
114
+ // original response through; its body (when present) stays readable downstream.
115
+ if (!response.body || NULL_BODY_STATUS.has(response.status)) {
116
+ settle();
42
117
  return response;
43
118
  }
44
119
 
@@ -56,13 +131,13 @@ export function teeWithCompletion(
56
131
  } finally {
57
132
  if (onAbort) signal!.removeEventListener("abort", onAbort);
58
133
  reader.releaseLock();
59
- onComplete();
134
+ settle();
60
135
  }
61
136
  })().catch((error) => {
62
- if (!signal?.aborted) {
137
+ if (!silent && !signal?.aborted) {
63
138
  console.error("[Browser] Error reading tracking stream:", error);
64
139
  }
65
- onComplete();
140
+ settle();
66
141
  });
67
142
 
68
143
  return new Response(rscStream, {
@@ -8,6 +8,7 @@ import {
8
8
  generateHistoryKey,
9
9
  } from "./navigation-store.js";
10
10
  import { createEventController } from "./event-controller.js";
11
+ import { validateRedirectOrigin } from "./validate-redirect-origin.js";
11
12
  import { createNavigationClient } from "./navigation-client.js";
12
13
  import { createServerActionBridge } from "./server-action-bridge.js";
13
14
  import { createNavigationBridge } from "./navigation-bridge.js";
@@ -22,12 +23,15 @@ import type {
22
23
  import type { EventController } from "./event-controller.js";
23
24
  import type { ResolvedThemeConfig, Theme } from "../theme/types.js";
24
25
  import { initRangoState } from "./rango-state.js";
26
+ import { registerNavigationStore } from "./navigation-store-handle.js";
25
27
  import { initPrefetchCache } from "./prefetch/cache.js";
28
+ import { setPrefetchDecoder } from "./prefetch/fetch.js";
26
29
  import { setAppVersion } from "./app-version.js";
27
30
  import {
28
31
  isInterceptSegment,
29
32
  splitInterceptSegments,
30
33
  } from "./intercept-utils.js";
34
+ import { createAppShellRef } from "./app-shell.js";
31
35
 
32
36
  // Vite HMR types are provided by vite/client
33
37
 
@@ -112,15 +116,26 @@ export interface BrowserAppContext {
112
116
  initialTheme?: Theme;
113
117
  /** Whether connection warmup is enabled */
114
118
  warmupEnabled?: boolean;
119
+ /** Whether the hydrated tree should be wrapped in React.StrictMode */
120
+ strictMode?: boolean;
115
121
  /** App version for prefetch version mismatch detection */
116
122
  version?: string;
123
+ /**
124
+ * App-shell ref, read through on each render so renderSegments and the
125
+ * NavigationProvider see rootLayout/basename/version without closing over a
126
+ * stale snapshot. Set once from the initial payload and not swapped within a
127
+ * session: a cross-app navigation is a full document load (X-RSC-Reload), so
128
+ * the target app establishes its own shell on load. Theme, warmup, and
129
+ * prefetch TTL are document-lifetime too (see AppShell).
130
+ */
131
+ appShellRef?: import("./app-shell.js").AppShellRef;
117
132
  }
118
133
 
119
134
  // Module-level state for the initialized app
120
135
  let browserAppContext: BrowserAppContext | null = null;
121
136
 
122
137
  /**
123
- * Initialize the browser app. Must be called before rendering RSCRouter.
138
+ * Initialize the browser app. Must be called before rendering Rango.
124
139
  *
125
140
  * This function:
126
141
  * - Loads the initial RSC payload from the stream
@@ -164,6 +179,12 @@ export async function initBrowserApp(
164
179
  ...(storeOptions?.cacheSize && { cacheSize: storeOptions.cacheSize }),
165
180
  });
166
181
 
182
+ // Register the active store on the module-level handle and wire the
183
+ // jar-divergence observer before any getRangoState() read can detect a
184
+ // cross-tab/server rotation. There is no global store singleton, so this
185
+ // handle is the live reference.
186
+ registerNavigationStore(store);
187
+
167
188
  // Seed router identity from the initial SSR payload so the first
168
189
  // cross-app SPA navigation can detect the app switch.
169
190
  if (initialPayload.metadata?.routerId) {
@@ -204,13 +225,24 @@ export async function initBrowserApp(
204
225
  // Create composable utilities
205
226
  const client = createNavigationClient(deps);
206
227
 
207
- // Extract rootLayout and version from metadata for browser-side re-renders
208
- const rootLayout = initialPayload.metadata?.rootLayout;
228
+ // Capture the per-router app-shell. rootLayout, basename, and version live
229
+ // here and are read through the ref at call time rather than closed over.
230
+ // It is set once from the initial payload and not swapped within a session:
231
+ // a cross-app navigation is a full document load (X-RSC-Reload), so the
232
+ // target app establishes its own shell on load.
209
233
  const version = initialPayload.metadata?.version;
234
+ const appShellRef = createAppShellRef({
235
+ routerId: initialPayload.metadata?.routerId,
236
+ rootLayout: initialPayload.metadata?.rootLayout,
237
+ basename: initialPayload.metadata?.basename,
238
+ version,
239
+ });
210
240
 
211
- // Initialize the localStorage state key for cache invalidation.
212
- // Uses the build version so a new deploy automatically busts all cached prefetches.
213
- initRangoState(version ?? "0");
241
+ // Initialize the rango state cookie for cache invalidation. The build version
242
+ // busts cached prefetches on deploy; the server-resolved cookie name
243
+ // namespaces the cookie so sibling apps on the same origin don't collide
244
+ // (falls back to the bare default prefix if metadata lacks the name).
245
+ initRangoState(version ?? "0", initialPayload.metadata?.stateCookieName);
214
246
  setAppVersion(version);
215
247
 
216
248
  // Initialize the in-memory prefetch cache TTL from server config.
@@ -220,11 +252,22 @@ export async function initBrowserApp(
220
252
  initPrefetchCache(prefetchCacheTTL);
221
253
  }
222
254
 
223
- // Create a bound renderSegments that includes rootLayout
255
+ // Wire the RSC decoder so prefetches decode eagerly and warm the route's
256
+ // client chunks (same createFromFetch the navigation client uses).
257
+ setPrefetchDecoder((response) => deps.createFromFetch<RscPayload>(response));
258
+
259
+ // Create a bound renderSegments that reads rootLayout through the shell ref.
260
+ // The shell is set once at init and not swapped within a session (a cross-app
261
+ // navigation is a full document load), so this always renders this app's
262
+ // Document; reading through the ref just avoids closing over a stale value.
224
263
  const renderSegments = (
225
264
  segments: ResolvedSegment[],
226
265
  options?: RenderSegmentsOptions,
227
- ) => baseRenderSegments(segments, { ...options, rootLayout });
266
+ ) =>
267
+ baseRenderSegments(segments, {
268
+ ...options,
269
+ rootLayout: appShellRef.get().rootLayout,
270
+ });
228
271
 
229
272
  // Lazy reference for navigation bridge — the action bridge is created first
230
273
  // but may need to trigger SPA navigation for action redirects.
@@ -240,7 +283,13 @@ export async function initBrowserApp(
240
283
  renderSegments,
241
284
  onNavigate: (url, options) => {
242
285
  if (!navigateFn) {
243
- window.location.href = url;
286
+ // Navigation bridge not wired yet: hard-navigate, but re-validate
287
+ // same-origin defensively so this init-window fallback cannot become an
288
+ // open redirect (the normal path validates inside the navigation bridge).
289
+ const safe = validateRedirectOrigin(url, window.location.origin);
290
+ if (safe) {
291
+ window.location.href = safe;
292
+ }
244
293
  return Promise.resolve();
245
294
  }
246
295
  return navigateFn(url, options);
@@ -300,11 +349,11 @@ export async function initBrowserApp(
300
349
  // full lifecycle (fetching + streaming, before commit) without
301
350
  // blocking on server actions.
302
351
  if (eventController.getState().isNavigating) {
303
- console.log("[RSCRouter] HMR: Skipping — navigation in progress");
352
+ console.log("[Rango] HMR: Skipping — navigation in progress");
304
353
  return;
305
354
  }
306
355
 
307
- console.log("[RSCRouter] HMR: Server update, refetching RSC");
356
+ console.log("[Rango] HMR: Server update, refetching RSC");
308
357
 
309
358
  const abort = new AbortController();
310
359
  hmrAbort = abort;
@@ -339,11 +388,18 @@ export async function initBrowserApp(
339
388
  // Update version BEFORE rebuilding state so that
340
389
  // clearHistoryCache() runs first, then the fresh segment
341
390
  // cache entry we create below survives.
391
+ //
392
+ // Compare against the bridge's live version, not the init-time
393
+ // `version` const: after the first HMR bump the const is stale, so a
394
+ // later update with an unchanged version would otherwise re-clear the
395
+ // cache and re-broadcast across tabs/apps. The live read fires only
396
+ // on a genuine version change.
342
397
  const newVersion = payload.metadata.version;
343
- if (newVersion && newVersion !== version) {
398
+ const currentVersion = navigationBridge.getVersion();
399
+ if (newVersion && newVersion !== currentVersion) {
344
400
  console.log(
345
- "[RSCRouter] HMR: version changed",
346
- version,
401
+ "[Rango] HMR: version changed",
402
+ currentVersion,
347
403
  "→",
348
404
  newVersion,
349
405
  "clearing caches",
@@ -351,6 +407,13 @@ export async function initBrowserApp(
351
407
  navigationBridge.updateVersion(newVersion);
352
408
  }
353
409
 
410
+ // Apply only partial segment updates. A non-partial payload during
411
+ // HMR is transient: the worker route table is still rebuilding after
412
+ // the edit, so the URL momentarily resolves to not-found/catch-all.
413
+ // Skip it -- the debounced follow-up refetch returns the settled
414
+ // route's partial payload and renders it below. We never reload here:
415
+ // a paramless document GET would run the SSR path and surface the
416
+ // not-found page during that same transient.
354
417
  if (payload.metadata?.isPartial) {
355
418
  const segments = payload.metadata.segments || [];
356
419
  const matched = payload.metadata.matched || [];
@@ -390,10 +453,10 @@ export async function initBrowserApp(
390
453
 
391
454
  await streamComplete;
392
455
  handle.complete(new URL(window.location.href));
393
- console.log("[RSCRouter] HMR: RSC stream complete");
456
+ console.log("[Rango] HMR: RSC stream complete");
394
457
  } catch (err) {
395
458
  if (abort.signal.aborted) return;
396
- console.warn("[RSCRouter] HMR: Refetch failed, reloading page", err);
459
+ console.warn("[Rango] HMR: Refetch failed, reloading page", err);
397
460
  window.location.reload();
398
461
  return;
399
462
  } finally {
@@ -405,7 +468,7 @@ export async function initBrowserApp(
405
468
  });
406
469
  }
407
470
 
408
- // Store context for RSCRouter component
471
+ // Store context for Rango component
409
472
  const context: BrowserAppContext = {
410
473
  store,
411
474
  eventController,
@@ -415,7 +478,9 @@ export async function initBrowserApp(
415
478
  themeConfig: effectiveThemeConfig,
416
479
  initialTheme: effectiveInitialTheme,
417
480
  warmupEnabled: initialPayload.metadata?.warmupEnabled ?? true,
481
+ strictMode: initialPayload.metadata?.strictMode ?? true,
418
482
  version,
483
+ appShellRef,
419
484
  };
420
485
  browserAppContext = context;
421
486
 
@@ -428,7 +493,7 @@ export async function initBrowserApp(
428
493
  export function getBrowserAppContext(): BrowserAppContext {
429
494
  if (!browserAppContext) {
430
495
  throw new Error(
431
- "RSCRouter: initBrowserApp() must be called before rendering RSCRouter",
496
+ "Rango: initBrowserApp() must be called before rendering Rango",
432
497
  );
433
498
  }
434
499
  return browserAppContext;
@@ -442,18 +507,18 @@ export function resetBrowserAppContext(): void {
442
507
  }
443
508
 
444
509
  /**
445
- * Props for the RSCRouter component
510
+ * Props for the Rango component
446
511
  */
447
- export interface RSCRouterProps {}
512
+ export interface RangoProps {}
448
513
 
449
514
  /**
450
- * RSCRouter component - renders the RSC router with all internal wiring.
515
+ * Rango component - renders the RSC router with all internal wiring.
451
516
  *
452
517
  * Must be called after initBrowserApp() has completed.
453
518
  *
454
519
  * @example
455
520
  * ```tsx
456
- * import { initBrowserApp, RSCRouter } from "rsc-router/browser";
521
+ * import { initBrowserApp, Rango } from "rsc-router/browser";
457
522
  * import { rscStream } from "rsc-html-stream/client";
458
523
  * import * as rscBrowser from "@vitejs/plugin-rsc/browser";
459
524
  *
@@ -463,14 +528,14 @@ export interface RSCRouterProps {}
463
528
  * hydrateRoot(
464
529
  * document,
465
530
  * <React.StrictMode>
466
- * <RSCRouter />
531
+ * <Rango />
467
532
  * </React.StrictMode>
468
533
  * );
469
534
  * }
470
535
  * main();
471
536
  * ```
472
537
  */
473
- export function RSCRouter(_props: RSCRouterProps): React.ReactElement {
538
+ export function Rango(_props: RangoProps): React.ReactElement {
474
539
  const {
475
540
  store,
476
541
  eventController,
@@ -481,6 +546,7 @@ export function RSCRouter(_props: RSCRouterProps): React.ReactElement {
481
546
  initialTheme,
482
547
  warmupEnabled,
483
548
  version,
549
+ appShellRef,
484
550
  } = getBrowserAppContext();
485
551
 
486
552
  // Signal that the React tree has hydrated. useEffect only fires after
@@ -501,6 +567,7 @@ export function RSCRouter(_props: RSCRouterProps): React.ReactElement {
501
567
  warmupEnabled={warmupEnabled}
502
568
  version={version}
503
569
  basename={initialPayload.metadata?.basename}
570
+ appShellRef={appShellRef}
504
571
  />
505
572
  );
506
573
  }