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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1202) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +245 -49
  3. package/dist/bin/rango.js +433 -131
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +3376 -1102
  6. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  7. package/package.json +66 -12
  8. package/skills/api-client/SKILL.md +211 -0
  9. package/skills/breadcrumbs/SKILL.md +64 -2
  10. package/skills/bundle-analysis/SKILL.md +159 -0
  11. package/skills/cache-guide/SKILL.md +247 -23
  12. package/skills/caching/SKILL.md +281 -11
  13. package/skills/composability/SKILL.md +27 -2
  14. package/skills/css/SKILL.md +76 -0
  15. package/skills/debug-manifest/SKILL.md +4 -2
  16. package/skills/document-cache/SKILL.md +78 -55
  17. package/skills/handler-use/SKILL.md +364 -0
  18. package/skills/hooks/SKILL.md +250 -30
  19. package/skills/host-router/SKILL.md +83 -23
  20. package/skills/i18n/SKILL.md +276 -0
  21. package/skills/intercept/SKILL.md +50 -6
  22. package/skills/layout/SKILL.md +35 -9
  23. package/skills/links/SKILL.md +249 -17
  24. package/skills/loader/SKILL.md +279 -53
  25. package/skills/middleware/SKILL.md +52 -13
  26. package/skills/migrate-nextjs/SKILL.md +584 -0
  27. package/skills/migrate-react-router/SKILL.md +771 -0
  28. package/skills/mime-routes/SKILL.md +28 -1
  29. package/skills/observability/SKILL.md +172 -0
  30. package/skills/parallel/SKILL.md +144 -7
  31. package/skills/prerender/SKILL.md +153 -109
  32. package/skills/rango/SKILL.md +251 -22
  33. package/skills/react-compiler/SKILL.md +168 -0
  34. package/skills/response-routes/SKILL.md +123 -48
  35. package/skills/route/SKILL.md +101 -5
  36. package/skills/router-setup/SKILL.md +116 -8
  37. package/skills/scripts/SKILL.md +179 -0
  38. package/skills/server-actions/SKILL.md +775 -0
  39. package/skills/streams-and-websockets/SKILL.md +283 -0
  40. package/skills/tailwind/SKILL.md +27 -3
  41. package/skills/testing/SKILL.md +129 -0
  42. package/skills/testing/bindings.md +103 -0
  43. package/skills/testing/cache-prerender.md +127 -0
  44. package/skills/testing/client-components.md +124 -0
  45. package/skills/testing/e2e-parity.md +125 -0
  46. package/skills/testing/flight.md +91 -0
  47. package/skills/testing/handles.md +129 -0
  48. package/skills/testing/loader.md +128 -0
  49. package/skills/testing/middleware.md +99 -0
  50. package/skills/testing/render-handler.md +121 -0
  51. package/skills/testing/response-routes.md +95 -0
  52. package/skills/testing/reverse-and-types.md +84 -0
  53. package/skills/testing/server-actions.md +107 -0
  54. package/skills/testing/server-tree.md +128 -0
  55. package/skills/testing/setup.md +123 -0
  56. package/skills/typesafety/SKILL.md +332 -29
  57. package/skills/use-cache/SKILL.md +46 -14
  58. package/skills/view-transitions/SKILL.md +294 -0
  59. package/src/__augment-tests__/augment.ts +81 -0
  60. package/src/__augment-tests__/augmented.check.ts +116 -0
  61. package/src/__internal.ts +1 -66
  62. package/src/browser/action-coordinator.ts +53 -36
  63. package/src/browser/action-fence.ts +47 -0
  64. package/src/browser/app-shell.ts +39 -0
  65. package/src/browser/app-version.ts +14 -0
  66. package/src/browser/connection-warmup.ts +134 -0
  67. package/src/browser/cookie-name.ts +140 -0
  68. package/src/browser/event-controller.ts +192 -150
  69. package/src/browser/history-state.ts +21 -0
  70. package/src/browser/index.ts +3 -3
  71. package/src/browser/invalidate-client-cache.ts +52 -0
  72. package/src/browser/navigation-bridge.ts +108 -21
  73. package/src/browser/navigation-client.ts +187 -86
  74. package/src/browser/navigation-store-handle.ts +38 -0
  75. package/src/browser/navigation-store.ts +76 -67
  76. package/src/browser/navigation-transaction.ts +9 -59
  77. package/src/browser/network-error-handler.ts +34 -7
  78. package/src/browser/partial-update.ts +150 -107
  79. package/src/browser/prefetch/cache.ts +205 -62
  80. package/src/browser/prefetch/fetch.ts +329 -39
  81. package/src/browser/prefetch/queue.ts +95 -29
  82. package/src/browser/prefetch/resource-ready.ts +77 -0
  83. package/src/browser/rango-state.ts +158 -76
  84. package/src/browser/react/Link.tsx +102 -15
  85. package/src/browser/react/NavigationProvider.tsx +193 -120
  86. package/src/browser/react/ScrollRestoration.tsx +10 -6
  87. package/src/browser/react/context.ts +7 -2
  88. package/src/browser/react/filter-segment-order.ts +66 -7
  89. package/src/browser/react/index.ts +0 -48
  90. package/src/browser/react/location-state-shared.ts +178 -8
  91. package/src/browser/react/location-state.ts +39 -14
  92. package/src/browser/react/use-action.ts +6 -15
  93. package/src/browser/react/use-handle.ts +23 -69
  94. package/src/browser/react/use-href.tsx +8 -1
  95. package/src/browser/react/use-link-status.ts +33 -8
  96. package/src/browser/react/use-navigation.ts +32 -7
  97. package/src/browser/react/use-params.ts +20 -10
  98. package/src/browser/react/use-reverse.ts +106 -0
  99. package/src/browser/react/use-router.ts +46 -11
  100. package/src/browser/react/use-search-params.ts +0 -5
  101. package/src/browser/react/use-segments.ts +11 -21
  102. package/src/browser/response-adapter.ts +80 -5
  103. package/src/browser/rsc-router.tsx +114 -24
  104. package/src/browser/scroll-restoration.ts +37 -22
  105. package/src/browser/segment-reconciler.ts +36 -14
  106. package/src/browser/segment-structure-assert.ts +2 -2
  107. package/src/browser/server-action-bridge.ts +222 -61
  108. package/src/browser/types.ts +82 -11
  109. package/src/browser/validate-redirect-origin.ts +43 -16
  110. package/src/build/collect-fallback-refs.ts +107 -0
  111. package/src/build/generate-manifest.ts +65 -40
  112. package/src/build/generate-route-types.ts +5 -1
  113. package/src/build/index.ts +8 -2
  114. package/src/build/prefix-tree-utils.ts +123 -0
  115. package/src/build/route-trie.ts +165 -36
  116. package/src/build/route-types/ast-route-extraction.ts +15 -8
  117. package/src/build/route-types/codegen.ts +16 -5
  118. package/src/build/route-types/include-resolution.ts +125 -24
  119. package/src/build/route-types/param-extraction.ts +6 -3
  120. package/src/build/route-types/per-module-writer.ts +22 -6
  121. package/src/build/route-types/router-processing.ts +260 -94
  122. package/src/build/route-types/scan-filter.ts +9 -2
  123. package/src/build/route-types/source-scan.ts +216 -0
  124. package/src/build/runtime-discovery.ts +9 -20
  125. package/src/cache/cache-error.ts +104 -0
  126. package/src/cache/cache-key-utils.ts +29 -13
  127. package/src/cache/cache-policy.ts +108 -34
  128. package/src/cache/cache-runtime.ts +214 -48
  129. package/src/cache/cache-scope.ts +234 -87
  130. package/src/cache/cache-tag.ts +103 -0
  131. package/src/cache/cf/cf-base64.ts +33 -0
  132. package/src/cache/cf/cf-cache-constants.ts +127 -0
  133. package/src/cache/cf/cf-cache-store.ts +1989 -378
  134. package/src/cache/cf/cf-cache-types.ts +349 -0
  135. package/src/cache/cf/cf-kv-utils.ts +46 -0
  136. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  137. package/src/cache/cf/index.ts +6 -16
  138. package/src/cache/document-cache.ts +72 -20
  139. package/src/cache/handle-snapshot.ts +70 -0
  140. package/src/cache/index.ts +10 -20
  141. package/src/cache/memory-segment-store.ts +136 -37
  142. package/src/cache/profile-registry.ts +31 -31
  143. package/src/cache/read-through-swr.ts +41 -11
  144. package/src/cache/segment-codec.ts +9 -17
  145. package/src/cache/tag-invalidation.ts +230 -0
  146. package/src/cache/taint.ts +55 -0
  147. package/src/cache/types.ts +37 -100
  148. package/src/client.rsc.tsx +44 -21
  149. package/src/client.tsx +119 -290
  150. package/src/cloudflare/index.ts +11 -0
  151. package/src/cloudflare/tracing.ts +109 -0
  152. package/src/component-utils.ts +19 -0
  153. package/src/components/DefaultDocument.tsx +8 -2
  154. package/src/context-var.ts +84 -2
  155. package/src/decode-loader-results.ts +52 -0
  156. package/src/defer.ts +196 -0
  157. package/src/deps/ssr.ts +0 -1
  158. package/src/encode-kv.ts +49 -0
  159. package/src/errors.ts +30 -4
  160. package/src/escape-script.ts +52 -0
  161. package/src/handle.ts +70 -22
  162. package/src/handles/MetaTags.tsx +62 -19
  163. package/src/handles/Scripts.tsx +183 -0
  164. package/src/handles/breadcrumbs.ts +37 -8
  165. package/src/handles/is-thenable.ts +19 -0
  166. package/src/handles/meta.ts +51 -40
  167. package/src/handles/script.ts +244 -0
  168. package/src/host/cookie-handler.ts +9 -60
  169. package/src/host/errors.ts +0 -24
  170. package/src/host/index.ts +8 -2
  171. package/src/host/pattern-matcher.ts +23 -52
  172. package/src/host/router.ts +107 -99
  173. package/src/host/testing.ts +40 -27
  174. package/src/host/types.ts +37 -4
  175. package/src/host/utils.ts +1 -1
  176. package/src/href-client.ts +137 -22
  177. package/src/index.rsc.ts +93 -12
  178. package/src/index.ts +133 -15
  179. package/src/internal-debug.ts +11 -10
  180. package/src/loader-store.ts +500 -0
  181. package/src/loader.rsc.ts +20 -13
  182. package/src/loader.ts +12 -11
  183. package/src/missing-id-error.ts +68 -0
  184. package/src/outlet-context.ts +1 -1
  185. package/src/outlet-provider.tsx +1 -5
  186. package/src/prerender/param-hash.ts +16 -16
  187. package/src/prerender/store.ts +37 -41
  188. package/src/prerender.ts +198 -82
  189. package/src/redirect-origin.ts +100 -0
  190. package/src/regex-escape.ts +8 -0
  191. package/src/render-error-thrower.tsx +20 -0
  192. package/src/response-utils.ts +62 -0
  193. package/src/reverse.ts +65 -15
  194. package/src/root-error-boundary.tsx +1 -19
  195. package/src/route-content-wrapper.tsx +7 -72
  196. package/src/route-definition/dsl-helpers.ts +445 -277
  197. package/src/route-definition/helper-factories.ts +29 -139
  198. package/src/route-definition/helpers-types.ts +113 -37
  199. package/src/route-definition/index.ts +3 -0
  200. package/src/route-definition/redirect.ts +51 -10
  201. package/src/route-definition/resolve-handler-use.ts +161 -0
  202. package/src/route-definition/use-item-types.ts +32 -0
  203. package/src/route-map-builder.ts +0 -16
  204. package/src/route-types.ts +37 -41
  205. package/src/router/basename.ts +14 -0
  206. package/src/router/content-negotiation.ts +164 -17
  207. package/src/router/error-handling.ts +45 -18
  208. package/src/router/find-match.ts +44 -23
  209. package/src/router/handler-context.ts +83 -39
  210. package/src/router/instrument.ts +350 -0
  211. package/src/router/intercept-resolution.ts +48 -24
  212. package/src/router/lazy-includes.ts +15 -52
  213. package/src/router/loader-resolution.ts +274 -56
  214. package/src/router/logging.ts +0 -6
  215. package/src/router/manifest.ts +40 -42
  216. package/src/router/match-api.ts +120 -204
  217. package/src/router/match-context.ts +0 -22
  218. package/src/router/match-handlers.ts +58 -58
  219. package/src/router/match-middleware/background-revalidation.ts +15 -5
  220. package/src/router/match-middleware/cache-lookup.ts +202 -268
  221. package/src/router/match-middleware/cache-store.ts +42 -28
  222. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  223. package/src/router/match-middleware/segment-resolution.ts +45 -14
  224. package/src/router/match-pipelines.ts +1 -42
  225. package/src/router/match-result.ts +93 -39
  226. package/src/router/metrics.ts +0 -34
  227. package/src/router/middleware-types.ts +13 -142
  228. package/src/router/middleware.ts +268 -171
  229. package/src/router/navigation-snapshot.ts +131 -0
  230. package/src/router/params-util.ts +23 -0
  231. package/src/router/pattern-matching.ts +132 -90
  232. package/src/router/prefetch-cache-ttl.ts +51 -0
  233. package/src/router/prerender-match.ts +195 -56
  234. package/src/router/preview-match.ts +32 -102
  235. package/src/router/request-classification.ts +276 -0
  236. package/src/router/revalidation.ts +123 -73
  237. package/src/router/route-snapshot.ts +244 -0
  238. package/src/router/router-context.ts +3 -27
  239. package/src/router/router-interfaces.ts +115 -35
  240. package/src/router/router-options.ts +172 -15
  241. package/src/router/router-registry.ts +2 -5
  242. package/src/router/segment-resolution/fresh.ts +190 -99
  243. package/src/router/segment-resolution/helpers.ts +115 -30
  244. package/src/router/segment-resolution/loader-cache.ts +62 -37
  245. package/src/router/segment-resolution/revalidation.ts +386 -341
  246. package/src/router/segment-resolution/static-store.ts +19 -5
  247. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  248. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  249. package/src/router/segment-resolution.ts +5 -1
  250. package/src/router/segment-wrappers.ts +6 -5
  251. package/src/router/state-cookie-name.ts +33 -0
  252. package/src/router/substitute-pattern-params.ts +56 -0
  253. package/src/router/telemetry-otel.ts +161 -199
  254. package/src/router/telemetry.ts +96 -19
  255. package/src/router/timeout.ts +0 -20
  256. package/src/router/tracing.ts +206 -0
  257. package/src/router/trie-matching.ts +163 -59
  258. package/src/router/types.ts +10 -63
  259. package/src/router/url-params.ts +44 -0
  260. package/src/router.ts +158 -54
  261. package/src/rsc/handler-context.ts +3 -2
  262. package/src/rsc/handler.ts +658 -511
  263. package/src/rsc/helpers.ts +168 -46
  264. package/src/rsc/index.ts +2 -5
  265. package/src/rsc/json-route-result.ts +38 -0
  266. package/src/rsc/loader-fetch.ts +127 -31
  267. package/src/rsc/manifest-init.ts +33 -42
  268. package/src/rsc/origin-guard.ts +39 -25
  269. package/src/rsc/progressive-enhancement.ts +77 -11
  270. package/src/rsc/redirect-guard.ts +99 -0
  271. package/src/rsc/response-cache-serve.ts +238 -0
  272. package/src/rsc/response-error.ts +79 -12
  273. package/src/rsc/response-route-handler.ts +99 -189
  274. package/src/rsc/rsc-rendering.ts +105 -72
  275. package/src/rsc/runtime-warnings.ts +23 -10
  276. package/src/rsc/server-action.ts +263 -112
  277. package/src/rsc/ssr-setup.ts +18 -2
  278. package/src/rsc/types.ts +32 -6
  279. package/src/runtime-env.ts +18 -0
  280. package/src/search-params.ts +35 -30
  281. package/src/segment-content-promise.ts +67 -0
  282. package/src/segment-loader-promise.ts +149 -0
  283. package/src/segment-system.tsx +218 -202
  284. package/src/serialize.ts +243 -0
  285. package/src/server/context.ts +222 -51
  286. package/src/server/cookie-parse.ts +32 -0
  287. package/src/server/cookie-store.ts +80 -5
  288. package/src/server/handle-store.ts +40 -38
  289. package/src/server/loader-registry.ts +26 -46
  290. package/src/server/request-context.ts +390 -170
  291. package/src/ssr/index.tsx +24 -16
  292. package/src/static-handler.ts +27 -18
  293. package/src/testing/cache-status.ts +162 -0
  294. package/src/testing/collect-handle.ts +40 -0
  295. package/src/testing/dispatch.ts +701 -0
  296. package/src/testing/dom.entry.ts +22 -0
  297. package/src/testing/e2e/fixture.ts +188 -0
  298. package/src/testing/e2e/index.ts +128 -0
  299. package/src/testing/e2e/matchers.ts +35 -0
  300. package/src/testing/e2e/page-helpers.ts +272 -0
  301. package/src/testing/e2e/parity.ts +387 -0
  302. package/src/testing/e2e/server.ts +195 -0
  303. package/src/testing/flight-matchers.ts +97 -0
  304. package/src/testing/flight-normalize.ts +11 -0
  305. package/src/testing/flight-runtime.d.ts +57 -0
  306. package/src/testing/flight-tree.ts +682 -0
  307. package/src/testing/flight.entry.ts +52 -0
  308. package/src/testing/flight.ts +257 -0
  309. package/src/testing/generated-routes.ts +183 -0
  310. package/src/testing/index.ts +99 -0
  311. package/src/testing/internal/context.ts +371 -0
  312. package/src/testing/internal/flight-client-globals.ts +30 -0
  313. package/src/testing/internal/seed-vars.ts +54 -0
  314. package/src/testing/render-handler.ts +343 -0
  315. package/src/testing/render-route.tsx +581 -0
  316. package/src/testing/run-loader.ts +385 -0
  317. package/src/testing/run-middleware.ts +205 -0
  318. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  319. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  320. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  321. package/src/testing/vitest-stubs/version.ts +5 -0
  322. package/src/testing/vitest.ts +305 -0
  323. package/src/theme/ThemeProvider.tsx +20 -58
  324. package/src/theme/ThemeScript.tsx +7 -9
  325. package/src/theme/constants.ts +52 -13
  326. package/src/theme/index.ts +0 -7
  327. package/src/theme/theme-context.ts +1 -5
  328. package/src/theme/theme-script.ts +22 -21
  329. package/src/theme/use-theme.ts +0 -3
  330. package/src/types/boundaries.ts +0 -35
  331. package/src/types/cache-types.ts +17 -8
  332. package/src/types/error-types.ts +30 -90
  333. package/src/types/global-namespace.ts +54 -41
  334. package/src/types/handler-context.ts +233 -81
  335. package/src/types/index.ts +1 -10
  336. package/src/types/loader-types.ts +44 -15
  337. package/src/types/request-scope.ts +112 -0
  338. package/src/types/route-config.ts +6 -50
  339. package/src/types/route-entry.ts +12 -7
  340. package/src/types/segments.ts +36 -15
  341. package/src/urls/include-helper.ts +33 -70
  342. package/src/urls/index.ts +1 -11
  343. package/src/urls/path-helper-types.ts +58 -11
  344. package/src/urls/path-helper.ts +57 -111
  345. package/src/urls/pattern-types.ts +48 -19
  346. package/src/urls/response-types.ts +25 -22
  347. package/src/urls/type-extraction.ts +58 -139
  348. package/src/urls/urls-function.ts +1 -18
  349. package/src/use-loader.tsx +346 -89
  350. package/src/vite/debug.ts +185 -0
  351. package/src/vite/discovery/bundle-postprocess.ts +36 -38
  352. package/src/vite/discovery/discover-routers.ts +130 -85
  353. package/src/vite/discovery/discovery-errors.ts +194 -0
  354. package/src/vite/discovery/gate-state.ts +171 -0
  355. package/src/vite/discovery/prerender-collection.ts +214 -132
  356. package/src/vite/discovery/route-types-writer.ts +40 -84
  357. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  358. package/src/vite/discovery/state.ts +57 -4
  359. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  360. package/src/vite/index.ts +6 -0
  361. package/src/vite/inject-client-debug.ts +36 -0
  362. package/src/vite/plugin-types.ts +178 -5
  363. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  364. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  365. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  366. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  367. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  368. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  369. package/src/vite/plugins/expose-action-id.ts +48 -95
  370. package/src/vite/plugins/expose-id-utils.ts +96 -51
  371. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  372. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  373. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  374. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  375. package/src/vite/plugins/expose-internal-ids.ts +553 -317
  376. package/src/vite/plugins/performance-tracks.ts +89 -0
  377. package/src/vite/plugins/refresh-cmd.ts +89 -27
  378. package/src/vite/plugins/use-cache-transform.ts +73 -83
  379. package/src/vite/plugins/version-injector.ts +21 -25
  380. package/src/vite/plugins/version-plugin.ts +37 -40
  381. package/src/vite/plugins/virtual-entries.ts +13 -18
  382. package/src/vite/rango.ts +119 -111
  383. package/src/vite/router-discovery.ts +941 -142
  384. package/src/vite/utils/ast-handler-extract.ts +26 -35
  385. package/src/vite/utils/banner.ts +1 -1
  386. package/src/vite/utils/bundle-analysis.ts +10 -15
  387. package/src/vite/utils/client-chunks.ts +184 -0
  388. package/src/vite/utils/directive-prologue.ts +40 -0
  389. package/src/vite/utils/forward-user-plugins.ts +171 -0
  390. package/src/vite/utils/manifest-utils.ts +4 -59
  391. package/src/vite/utils/package-resolution.ts +20 -52
  392. package/src/vite/utils/prerender-utils.ts +81 -34
  393. package/src/vite/utils/shared-utils.ts +92 -42
  394. package/dist/__internal.d.ts +0 -83
  395. package/dist/__internal.d.ts.map +0 -1
  396. package/dist/__internal.js +0 -19
  397. package/dist/__internal.js.map +0 -1
  398. package/dist/__mocks__/version.d.ts +0 -7
  399. package/dist/__mocks__/version.d.ts.map +0 -1
  400. package/dist/__mocks__/version.js +0 -7
  401. package/dist/__mocks__/version.js.map +0 -1
  402. package/dist/__tests__/client-href.test.d.ts +0 -2
  403. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  404. package/dist/__tests__/client-href.test.js +0 -74
  405. package/dist/__tests__/client-href.test.js.map +0 -1
  406. package/dist/__tests__/component-utils.test.d.ts +0 -2
  407. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  408. package/dist/__tests__/component-utils.test.js +0 -51
  409. package/dist/__tests__/component-utils.test.js.map +0 -1
  410. package/dist/__tests__/event-controller.test.d.ts +0 -2
  411. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  412. package/dist/__tests__/event-controller.test.js +0 -538
  413. package/dist/__tests__/event-controller.test.js.map +0 -1
  414. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  415. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  416. package/dist/__tests__/helpers/route-tree.js +0 -374
  417. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  418. package/dist/__tests__/match-result.test.d.ts +0 -2
  419. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  420. package/dist/__tests__/match-result.test.js +0 -154
  421. package/dist/__tests__/match-result.test.js.map +0 -1
  422. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  423. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  424. package/dist/__tests__/navigation-store.test.js +0 -440
  425. package/dist/__tests__/navigation-store.test.js.map +0 -1
  426. package/dist/__tests__/partial-update.test.d.ts +0 -2
  427. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  428. package/dist/__tests__/partial-update.test.js +0 -1009
  429. package/dist/__tests__/partial-update.test.js.map +0 -1
  430. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  431. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  432. package/dist/__tests__/reverse-types.test.js +0 -656
  433. package/dist/__tests__/reverse-types.test.js.map +0 -1
  434. package/dist/__tests__/route-definition.test.d.ts +0 -2
  435. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  436. package/dist/__tests__/route-definition.test.js +0 -55
  437. package/dist/__tests__/route-definition.test.js.map +0 -1
  438. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  439. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  440. package/dist/__tests__/router-helpers.test.js +0 -377
  441. package/dist/__tests__/router-helpers.test.js.map +0 -1
  442. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  443. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  444. package/dist/__tests__/router-integration-2.test.js +0 -426
  445. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  446. package/dist/__tests__/router-integration.test.d.ts +0 -2
  447. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  448. package/dist/__tests__/router-integration.test.js +0 -1051
  449. package/dist/__tests__/router-integration.test.js.map +0 -1
  450. package/dist/__tests__/search-params.test.d.ts +0 -5
  451. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  452. package/dist/__tests__/search-params.test.js +0 -306
  453. package/dist/__tests__/search-params.test.js.map +0 -1
  454. package/dist/__tests__/segment-system.test.d.ts +0 -2
  455. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  456. package/dist/__tests__/segment-system.test.js +0 -627
  457. package/dist/__tests__/segment-system.test.js.map +0 -1
  458. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  459. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  460. package/dist/__tests__/static-handler-types.test.js +0 -63
  461. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  462. package/dist/__tests__/urls.test.d.ts +0 -2
  463. package/dist/__tests__/urls.test.d.ts.map +0 -1
  464. package/dist/__tests__/urls.test.js +0 -421
  465. package/dist/__tests__/urls.test.js.map +0 -1
  466. package/dist/__tests__/use-mount.test.d.ts +0 -2
  467. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  468. package/dist/__tests__/use-mount.test.js +0 -35
  469. package/dist/__tests__/use-mount.test.js.map +0 -1
  470. package/dist/bin/rango.d.ts +0 -2
  471. package/dist/bin/rango.d.ts.map +0 -1
  472. package/dist/bin/rango.js.map +0 -1
  473. package/dist/browser/event-controller.d.ts +0 -191
  474. package/dist/browser/event-controller.d.ts.map +0 -1
  475. package/dist/browser/event-controller.js +0 -559
  476. package/dist/browser/event-controller.js.map +0 -1
  477. package/dist/browser/index.d.ts +0 -2
  478. package/dist/browser/index.d.ts.map +0 -1
  479. package/dist/browser/index.js +0 -14
  480. package/dist/browser/index.js.map +0 -1
  481. package/dist/browser/link-interceptor.d.ts +0 -38
  482. package/dist/browser/link-interceptor.d.ts.map +0 -1
  483. package/dist/browser/link-interceptor.js +0 -99
  484. package/dist/browser/link-interceptor.js.map +0 -1
  485. package/dist/browser/logging.d.ts +0 -10
  486. package/dist/browser/logging.d.ts.map +0 -1
  487. package/dist/browser/logging.js +0 -29
  488. package/dist/browser/logging.js.map +0 -1
  489. package/dist/browser/lru-cache.d.ts +0 -17
  490. package/dist/browser/lru-cache.d.ts.map +0 -1
  491. package/dist/browser/lru-cache.js +0 -50
  492. package/dist/browser/lru-cache.js.map +0 -1
  493. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  494. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  495. package/dist/browser/merge-segment-loaders.js +0 -102
  496. package/dist/browser/merge-segment-loaders.js.map +0 -1
  497. package/dist/browser/navigation-bridge.d.ts +0 -102
  498. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  499. package/dist/browser/navigation-bridge.js +0 -708
  500. package/dist/browser/navigation-bridge.js.map +0 -1
  501. package/dist/browser/navigation-client.d.ts +0 -25
  502. package/dist/browser/navigation-client.d.ts.map +0 -1
  503. package/dist/browser/navigation-client.js +0 -157
  504. package/dist/browser/navigation-client.js.map +0 -1
  505. package/dist/browser/navigation-store.d.ts +0 -101
  506. package/dist/browser/navigation-store.d.ts.map +0 -1
  507. package/dist/browser/navigation-store.js +0 -625
  508. package/dist/browser/navigation-store.js.map +0 -1
  509. package/dist/browser/partial-update.d.ts +0 -75
  510. package/dist/browser/partial-update.d.ts.map +0 -1
  511. package/dist/browser/partial-update.js +0 -426
  512. package/dist/browser/partial-update.js.map +0 -1
  513. package/dist/browser/react/Link.d.ts +0 -86
  514. package/dist/browser/react/Link.d.ts.map +0 -1
  515. package/dist/browser/react/Link.js +0 -128
  516. package/dist/browser/react/Link.js.map +0 -1
  517. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  518. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  519. package/dist/browser/react/NavigationProvider.js +0 -216
  520. package/dist/browser/react/NavigationProvider.js.map +0 -1
  521. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  522. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  523. package/dist/browser/react/ScrollRestoration.js +0 -57
  524. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  525. package/dist/browser/react/context.d.ts +0 -46
  526. package/dist/browser/react/context.d.ts.map +0 -1
  527. package/dist/browser/react/context.js +0 -10
  528. package/dist/browser/react/context.js.map +0 -1
  529. package/dist/browser/react/index.d.ts +0 -11
  530. package/dist/browser/react/index.d.ts.map +0 -1
  531. package/dist/browser/react/index.js +0 -22
  532. package/dist/browser/react/index.js.map +0 -1
  533. package/dist/browser/react/location-state-shared.d.ts +0 -63
  534. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  535. package/dist/browser/react/location-state-shared.js +0 -81
  536. package/dist/browser/react/location-state-shared.js.map +0 -1
  537. package/dist/browser/react/location-state.d.ts +0 -23
  538. package/dist/browser/react/location-state.d.ts.map +0 -1
  539. package/dist/browser/react/location-state.js +0 -29
  540. package/dist/browser/react/location-state.js.map +0 -1
  541. package/dist/browser/react/mount-context.d.ts +0 -24
  542. package/dist/browser/react/mount-context.d.ts.map +0 -1
  543. package/dist/browser/react/mount-context.js +0 -24
  544. package/dist/browser/react/mount-context.js.map +0 -1
  545. package/dist/browser/react/use-action.d.ts +0 -64
  546. package/dist/browser/react/use-action.d.ts.map +0 -1
  547. package/dist/browser/react/use-action.js +0 -134
  548. package/dist/browser/react/use-action.js.map +0 -1
  549. package/dist/browser/react/use-client-cache.d.ts +0 -41
  550. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  551. package/dist/browser/react/use-client-cache.js +0 -39
  552. package/dist/browser/react/use-client-cache.js.map +0 -1
  553. package/dist/browser/react/use-handle.d.ts +0 -31
  554. package/dist/browser/react/use-handle.d.ts.map +0 -1
  555. package/dist/browser/react/use-handle.js +0 -144
  556. package/dist/browser/react/use-handle.js.map +0 -1
  557. package/dist/browser/react/use-href.d.ts +0 -33
  558. package/dist/browser/react/use-href.d.ts.map +0 -1
  559. package/dist/browser/react/use-href.js +0 -39
  560. package/dist/browser/react/use-href.js.map +0 -1
  561. package/dist/browser/react/use-link-status.d.ts +0 -37
  562. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  563. package/dist/browser/react/use-link-status.js +0 -99
  564. package/dist/browser/react/use-link-status.js.map +0 -1
  565. package/dist/browser/react/use-mount.d.ts +0 -25
  566. package/dist/browser/react/use-mount.d.ts.map +0 -1
  567. package/dist/browser/react/use-mount.js +0 -30
  568. package/dist/browser/react/use-mount.js.map +0 -1
  569. package/dist/browser/react/use-navigation.d.ts +0 -27
  570. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  571. package/dist/browser/react/use-navigation.js +0 -87
  572. package/dist/browser/react/use-navigation.js.map +0 -1
  573. package/dist/browser/react/use-segments.d.ts +0 -38
  574. package/dist/browser/react/use-segments.d.ts.map +0 -1
  575. package/dist/browser/react/use-segments.js +0 -130
  576. package/dist/browser/react/use-segments.js.map +0 -1
  577. package/dist/browser/request-controller.d.ts +0 -26
  578. package/dist/browser/request-controller.d.ts.map +0 -1
  579. package/dist/browser/request-controller.js +0 -147
  580. package/dist/browser/request-controller.js.map +0 -1
  581. package/dist/browser/rsc-router.d.ts +0 -129
  582. package/dist/browser/rsc-router.d.ts.map +0 -1
  583. package/dist/browser/rsc-router.js +0 -195
  584. package/dist/browser/rsc-router.js.map +0 -1
  585. package/dist/browser/scroll-restoration.d.ts +0 -93
  586. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  587. package/dist/browser/scroll-restoration.js +0 -321
  588. package/dist/browser/scroll-restoration.js.map +0 -1
  589. package/dist/browser/segment-structure-assert.d.ts +0 -17
  590. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  591. package/dist/browser/segment-structure-assert.js +0 -59
  592. package/dist/browser/segment-structure-assert.js.map +0 -1
  593. package/dist/browser/server-action-bridge.d.ts +0 -26
  594. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  595. package/dist/browser/server-action-bridge.js +0 -668
  596. package/dist/browser/server-action-bridge.js.map +0 -1
  597. package/dist/browser/shallow.d.ts +0 -12
  598. package/dist/browser/shallow.d.ts.map +0 -1
  599. package/dist/browser/shallow.js +0 -34
  600. package/dist/browser/shallow.js.map +0 -1
  601. package/dist/browser/types.d.ts +0 -369
  602. package/dist/browser/types.d.ts.map +0 -1
  603. package/dist/browser/types.js +0 -2
  604. package/dist/browser/types.js.map +0 -1
  605. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  606. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  607. package/dist/build/__tests__/generate-cli.test.js +0 -237
  608. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  609. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  610. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  611. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  612. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  613. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  614. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  615. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  616. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  617. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  618. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  619. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  620. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  621. package/dist/build/generate-manifest.d.ts +0 -81
  622. package/dist/build/generate-manifest.d.ts.map +0 -1
  623. package/dist/build/generate-manifest.js +0 -276
  624. package/dist/build/generate-manifest.js.map +0 -1
  625. package/dist/build/generate-route-types.d.ts +0 -115
  626. package/dist/build/generate-route-types.d.ts.map +0 -1
  627. package/dist/build/generate-route-types.js +0 -740
  628. package/dist/build/generate-route-types.js.map +0 -1
  629. package/dist/build/index.d.ts +0 -21
  630. package/dist/build/index.d.ts.map +0 -1
  631. package/dist/build/index.js +0 -21
  632. package/dist/build/index.js.map +0 -1
  633. package/dist/build/route-trie.d.ts +0 -71
  634. package/dist/build/route-trie.d.ts.map +0 -1
  635. package/dist/build/route-trie.js +0 -175
  636. package/dist/build/route-trie.js.map +0 -1
  637. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  638. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  639. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  640. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  641. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  642. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  643. package/dist/cache/__tests__/document-cache.test.js +0 -345
  644. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  645. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  646. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  647. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  648. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  649. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  650. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  651. package/dist/cache/__tests__/memory-store.test.js +0 -367
  652. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  653. package/dist/cache/cache-scope.d.ts +0 -102
  654. package/dist/cache/cache-scope.d.ts.map +0 -1
  655. package/dist/cache/cache-scope.js +0 -440
  656. package/dist/cache/cache-scope.js.map +0 -1
  657. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  658. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  659. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  660. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  661. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  662. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  663. package/dist/cache/cf/cf-cache-store.js +0 -242
  664. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  665. package/dist/cache/cf/index.d.ts +0 -14
  666. package/dist/cache/cf/index.d.ts.map +0 -1
  667. package/dist/cache/cf/index.js +0 -17
  668. package/dist/cache/cf/index.js.map +0 -1
  669. package/dist/cache/document-cache.d.ts +0 -64
  670. package/dist/cache/document-cache.d.ts.map +0 -1
  671. package/dist/cache/document-cache.js +0 -228
  672. package/dist/cache/document-cache.js.map +0 -1
  673. package/dist/cache/index.d.ts +0 -19
  674. package/dist/cache/index.d.ts.map +0 -1
  675. package/dist/cache/index.js +0 -21
  676. package/dist/cache/index.js.map +0 -1
  677. package/dist/cache/memory-segment-store.d.ts +0 -110
  678. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  679. package/dist/cache/memory-segment-store.js +0 -117
  680. package/dist/cache/memory-segment-store.js.map +0 -1
  681. package/dist/cache/memory-store.d.ts +0 -41
  682. package/dist/cache/memory-store.d.ts.map +0 -1
  683. package/dist/cache/memory-store.js +0 -191
  684. package/dist/cache/memory-store.js.map +0 -1
  685. package/dist/cache/types.d.ts +0 -317
  686. package/dist/cache/types.d.ts.map +0 -1
  687. package/dist/cache/types.js +0 -12
  688. package/dist/cache/types.js.map +0 -1
  689. package/dist/client.d.ts +0 -248
  690. package/dist/client.d.ts.map +0 -1
  691. package/dist/client.js +0 -367
  692. package/dist/client.js.map +0 -1
  693. package/dist/client.rsc.d.ts +0 -26
  694. package/dist/client.rsc.d.ts.map +0 -1
  695. package/dist/client.rsc.js +0 -46
  696. package/dist/client.rsc.js.map +0 -1
  697. package/dist/component-utils.d.ts +0 -36
  698. package/dist/component-utils.d.ts.map +0 -1
  699. package/dist/component-utils.js +0 -61
  700. package/dist/component-utils.js.map +0 -1
  701. package/dist/components/DefaultDocument.d.ts +0 -13
  702. package/dist/components/DefaultDocument.d.ts.map +0 -1
  703. package/dist/components/DefaultDocument.js +0 -15
  704. package/dist/components/DefaultDocument.js.map +0 -1
  705. package/dist/debug.d.ts +0 -58
  706. package/dist/debug.d.ts.map +0 -1
  707. package/dist/debug.js +0 -157
  708. package/dist/debug.js.map +0 -1
  709. package/dist/default-error-boundary.d.ts +0 -11
  710. package/dist/default-error-boundary.d.ts.map +0 -1
  711. package/dist/default-error-boundary.js +0 -45
  712. package/dist/default-error-boundary.js.map +0 -1
  713. package/dist/deps/browser.d.ts +0 -2
  714. package/dist/deps/browser.d.ts.map +0 -1
  715. package/dist/deps/browser.js +0 -3
  716. package/dist/deps/browser.js.map +0 -1
  717. package/dist/deps/html-stream-client.d.ts +0 -2
  718. package/dist/deps/html-stream-client.d.ts.map +0 -1
  719. package/dist/deps/html-stream-client.js +0 -3
  720. package/dist/deps/html-stream-client.js.map +0 -1
  721. package/dist/deps/html-stream-server.d.ts +0 -2
  722. package/dist/deps/html-stream-server.d.ts.map +0 -1
  723. package/dist/deps/html-stream-server.js +0 -3
  724. package/dist/deps/html-stream-server.js.map +0 -1
  725. package/dist/deps/rsc.d.ts +0 -2
  726. package/dist/deps/rsc.d.ts.map +0 -1
  727. package/dist/deps/rsc.js +0 -4
  728. package/dist/deps/rsc.js.map +0 -1
  729. package/dist/deps/ssr.d.ts +0 -2
  730. package/dist/deps/ssr.d.ts.map +0 -1
  731. package/dist/deps/ssr.js +0 -3
  732. package/dist/deps/ssr.js.map +0 -1
  733. package/dist/errors.d.ts +0 -174
  734. package/dist/errors.d.ts.map +0 -1
  735. package/dist/errors.js +0 -241
  736. package/dist/errors.js.map +0 -1
  737. package/dist/handle.d.ts +0 -78
  738. package/dist/handle.d.ts.map +0 -1
  739. package/dist/handle.js +0 -82
  740. package/dist/handle.js.map +0 -1
  741. package/dist/handles/MetaTags.d.ts +0 -14
  742. package/dist/handles/MetaTags.d.ts.map +0 -1
  743. package/dist/handles/MetaTags.js +0 -136
  744. package/dist/handles/MetaTags.js.map +0 -1
  745. package/dist/handles/index.d.ts +0 -6
  746. package/dist/handles/index.d.ts.map +0 -1
  747. package/dist/handles/index.js +0 -6
  748. package/dist/handles/index.js.map +0 -1
  749. package/dist/handles/meta.d.ts +0 -39
  750. package/dist/handles/meta.d.ts.map +0 -1
  751. package/dist/handles/meta.js +0 -202
  752. package/dist/handles/meta.js.map +0 -1
  753. package/dist/host/__tests__/errors.test.d.ts +0 -2
  754. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  755. package/dist/host/__tests__/errors.test.js +0 -76
  756. package/dist/host/__tests__/errors.test.js.map +0 -1
  757. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  758. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  759. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  760. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  761. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  762. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  763. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  764. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  765. package/dist/host/__tests__/router.test.d.ts +0 -2
  766. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  767. package/dist/host/__tests__/router.test.js +0 -241
  768. package/dist/host/__tests__/router.test.js.map +0 -1
  769. package/dist/host/__tests__/testing.test.d.ts +0 -2
  770. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  771. package/dist/host/__tests__/testing.test.js +0 -64
  772. package/dist/host/__tests__/testing.test.js.map +0 -1
  773. package/dist/host/__tests__/utils.test.d.ts +0 -2
  774. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  775. package/dist/host/__tests__/utils.test.js +0 -29
  776. package/dist/host/__tests__/utils.test.js.map +0 -1
  777. package/dist/host/cookie-handler.d.ts +0 -34
  778. package/dist/host/cookie-handler.d.ts.map +0 -1
  779. package/dist/host/cookie-handler.js +0 -124
  780. package/dist/host/cookie-handler.js.map +0 -1
  781. package/dist/host/errors.d.ts +0 -56
  782. package/dist/host/errors.d.ts.map +0 -1
  783. package/dist/host/errors.js +0 -79
  784. package/dist/host/errors.js.map +0 -1
  785. package/dist/host/index.d.ts +0 -29
  786. package/dist/host/index.d.ts.map +0 -1
  787. package/dist/host/index.js +0 -32
  788. package/dist/host/index.js.map +0 -1
  789. package/dist/host/pattern-matcher.d.ts +0 -36
  790. package/dist/host/pattern-matcher.d.ts.map +0 -1
  791. package/dist/host/pattern-matcher.js +0 -172
  792. package/dist/host/pattern-matcher.js.map +0 -1
  793. package/dist/host/router.d.ts +0 -26
  794. package/dist/host/router.d.ts.map +0 -1
  795. package/dist/host/router.js +0 -218
  796. package/dist/host/router.js.map +0 -1
  797. package/dist/host/testing.d.ts +0 -36
  798. package/dist/host/testing.d.ts.map +0 -1
  799. package/dist/host/testing.js +0 -55
  800. package/dist/host/testing.js.map +0 -1
  801. package/dist/host/types.d.ts +0 -115
  802. package/dist/host/types.d.ts.map +0 -1
  803. package/dist/host/types.js +0 -7
  804. package/dist/host/types.js.map +0 -1
  805. package/dist/host/utils.d.ts +0 -21
  806. package/dist/host/utils.d.ts.map +0 -1
  807. package/dist/host/utils.js +0 -23
  808. package/dist/host/utils.js.map +0 -1
  809. package/dist/href-client.d.ts +0 -131
  810. package/dist/href-client.d.ts.map +0 -1
  811. package/dist/href-client.js +0 -64
  812. package/dist/href-client.js.map +0 -1
  813. package/dist/href-context.d.ts +0 -29
  814. package/dist/href-context.d.ts.map +0 -1
  815. package/dist/href-context.js +0 -21
  816. package/dist/href-context.js.map +0 -1
  817. package/dist/index.d.ts +0 -73
  818. package/dist/index.d.ts.map +0 -1
  819. package/dist/index.js +0 -91
  820. package/dist/index.js.map +0 -1
  821. package/dist/index.rsc.d.ts +0 -32
  822. package/dist/index.rsc.d.ts.map +0 -1
  823. package/dist/index.rsc.js +0 -40
  824. package/dist/index.rsc.js.map +0 -1
  825. package/dist/internal-debug.d.ts +0 -2
  826. package/dist/internal-debug.d.ts.map +0 -1
  827. package/dist/internal-debug.js +0 -5
  828. package/dist/internal-debug.js.map +0 -1
  829. package/dist/loader.d.ts +0 -14
  830. package/dist/loader.d.ts.map +0 -1
  831. package/dist/loader.js +0 -20
  832. package/dist/loader.js.map +0 -1
  833. package/dist/loader.rsc.d.ts +0 -19
  834. package/dist/loader.rsc.d.ts.map +0 -1
  835. package/dist/loader.rsc.js +0 -99
  836. package/dist/loader.rsc.js.map +0 -1
  837. package/dist/network-error-thrower.d.ts +0 -17
  838. package/dist/network-error-thrower.d.ts.map +0 -1
  839. package/dist/network-error-thrower.js +0 -14
  840. package/dist/network-error-thrower.js.map +0 -1
  841. package/dist/outlet-context.d.ts +0 -13
  842. package/dist/outlet-context.d.ts.map +0 -1
  843. package/dist/outlet-context.js +0 -3
  844. package/dist/outlet-context.js.map +0 -1
  845. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  846. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  847. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  848. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  849. package/dist/prerender/param-hash.d.ts +0 -16
  850. package/dist/prerender/param-hash.d.ts.map +0 -1
  851. package/dist/prerender/param-hash.js +0 -36
  852. package/dist/prerender/param-hash.js.map +0 -1
  853. package/dist/prerender/store.d.ts +0 -38
  854. package/dist/prerender/store.d.ts.map +0 -1
  855. package/dist/prerender/store.js +0 -61
  856. package/dist/prerender/store.js.map +0 -1
  857. package/dist/prerender.d.ts +0 -66
  858. package/dist/prerender.d.ts.map +0 -1
  859. package/dist/prerender.js +0 -57
  860. package/dist/prerender.js.map +0 -1
  861. package/dist/reverse.d.ts +0 -196
  862. package/dist/reverse.d.ts.map +0 -1
  863. package/dist/reverse.js +0 -78
  864. package/dist/reverse.js.map +0 -1
  865. package/dist/root-error-boundary.d.ts +0 -33
  866. package/dist/root-error-boundary.d.ts.map +0 -1
  867. package/dist/root-error-boundary.js +0 -165
  868. package/dist/root-error-boundary.js.map +0 -1
  869. package/dist/route-content-wrapper.d.ts +0 -46
  870. package/dist/route-content-wrapper.d.ts.map +0 -1
  871. package/dist/route-content-wrapper.js +0 -77
  872. package/dist/route-content-wrapper.js.map +0 -1
  873. package/dist/route-definition.d.ts +0 -421
  874. package/dist/route-definition.d.ts.map +0 -1
  875. package/dist/route-definition.js +0 -868
  876. package/dist/route-definition.js.map +0 -1
  877. package/dist/route-map-builder.d.ts +0 -155
  878. package/dist/route-map-builder.d.ts.map +0 -1
  879. package/dist/route-map-builder.js +0 -237
  880. package/dist/route-map-builder.js.map +0 -1
  881. package/dist/route-types.d.ts +0 -165
  882. package/dist/route-types.d.ts.map +0 -1
  883. package/dist/route-types.js +0 -7
  884. package/dist/route-types.js.map +0 -1
  885. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  886. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  887. package/dist/router/__tests__/handler-context.test.js +0 -65
  888. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  889. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  890. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  891. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  892. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  893. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  894. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  895. package/dist/router/__tests__/match-context.test.js +0 -92
  896. package/dist/router/__tests__/match-context.test.js.map +0 -1
  897. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  898. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  899. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  900. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  901. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  902. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  903. package/dist/router/__tests__/match-result.test.js +0 -457
  904. package/dist/router/__tests__/match-result.test.js.map +0 -1
  905. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  906. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  907. package/dist/router/__tests__/on-error.test.js +0 -678
  908. package/dist/router/__tests__/on-error.test.js.map +0 -1
  909. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  910. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  911. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  912. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  913. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  914. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  915. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  916. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  917. package/dist/router/error-handling.d.ts +0 -77
  918. package/dist/router/error-handling.d.ts.map +0 -1
  919. package/dist/router/error-handling.js +0 -202
  920. package/dist/router/error-handling.js.map +0 -1
  921. package/dist/router/handler-context.d.ts +0 -20
  922. package/dist/router/handler-context.d.ts.map +0 -1
  923. package/dist/router/handler-context.js +0 -198
  924. package/dist/router/handler-context.js.map +0 -1
  925. package/dist/router/intercept-resolution.d.ts +0 -66
  926. package/dist/router/intercept-resolution.d.ts.map +0 -1
  927. package/dist/router/intercept-resolution.js +0 -246
  928. package/dist/router/intercept-resolution.js.map +0 -1
  929. package/dist/router/loader-resolution.d.ts +0 -64
  930. package/dist/router/loader-resolution.d.ts.map +0 -1
  931. package/dist/router/loader-resolution.js +0 -284
  932. package/dist/router/loader-resolution.js.map +0 -1
  933. package/dist/router/logging.d.ts +0 -15
  934. package/dist/router/logging.d.ts.map +0 -1
  935. package/dist/router/logging.js +0 -99
  936. package/dist/router/logging.js.map +0 -1
  937. package/dist/router/manifest.d.ts +0 -22
  938. package/dist/router/manifest.d.ts.map +0 -1
  939. package/dist/router/manifest.js +0 -181
  940. package/dist/router/manifest.js.map +0 -1
  941. package/dist/router/match-api.d.ts +0 -35
  942. package/dist/router/match-api.d.ts.map +0 -1
  943. package/dist/router/match-api.js +0 -406
  944. package/dist/router/match-api.js.map +0 -1
  945. package/dist/router/match-context.d.ts +0 -206
  946. package/dist/router/match-context.d.ts.map +0 -1
  947. package/dist/router/match-context.js +0 -17
  948. package/dist/router/match-context.js.map +0 -1
  949. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  950. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  951. package/dist/router/match-middleware/background-revalidation.js +0 -75
  952. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  953. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  954. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  955. package/dist/router/match-middleware/cache-lookup.js +0 -257
  956. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  957. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  958. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  959. package/dist/router/match-middleware/cache-store.js +0 -108
  960. package/dist/router/match-middleware/cache-store.js.map +0 -1
  961. package/dist/router/match-middleware/index.d.ts +0 -81
  962. package/dist/router/match-middleware/index.d.ts.map +0 -1
  963. package/dist/router/match-middleware/index.js +0 -80
  964. package/dist/router/match-middleware/index.js.map +0 -1
  965. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  966. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  967. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  968. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  969. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  970. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  971. package/dist/router/match-middleware/segment-resolution.js +0 -53
  972. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  973. package/dist/router/match-pipelines.d.ts +0 -147
  974. package/dist/router/match-pipelines.d.ts.map +0 -1
  975. package/dist/router/match-pipelines.js +0 -82
  976. package/dist/router/match-pipelines.js.map +0 -1
  977. package/dist/router/match-result.d.ts +0 -126
  978. package/dist/router/match-result.d.ts.map +0 -1
  979. package/dist/router/match-result.js +0 -93
  980. package/dist/router/match-result.js.map +0 -1
  981. package/dist/router/metrics.d.ts +0 -20
  982. package/dist/router/metrics.d.ts.map +0 -1
  983. package/dist/router/metrics.js +0 -47
  984. package/dist/router/metrics.js.map +0 -1
  985. package/dist/router/middleware.d.ts +0 -249
  986. package/dist/router/middleware.d.ts.map +0 -1
  987. package/dist/router/middleware.js +0 -434
  988. package/dist/router/middleware.js.map +0 -1
  989. package/dist/router/middleware.test.d.ts +0 -2
  990. package/dist/router/middleware.test.d.ts.map +0 -1
  991. package/dist/router/middleware.test.js +0 -816
  992. package/dist/router/middleware.test.js.map +0 -1
  993. package/dist/router/pattern-matching.d.ts +0 -149
  994. package/dist/router/pattern-matching.d.ts.map +0 -1
  995. package/dist/router/pattern-matching.js +0 -349
  996. package/dist/router/pattern-matching.js.map +0 -1
  997. package/dist/router/revalidation.d.ts +0 -44
  998. package/dist/router/revalidation.d.ts.map +0 -1
  999. package/dist/router/revalidation.js +0 -147
  1000. package/dist/router/revalidation.js.map +0 -1
  1001. package/dist/router/router-context.d.ts +0 -135
  1002. package/dist/router/router-context.d.ts.map +0 -1
  1003. package/dist/router/router-context.js +0 -36
  1004. package/dist/router/router-context.js.map +0 -1
  1005. package/dist/router/segment-resolution.d.ts +0 -127
  1006. package/dist/router/segment-resolution.d.ts.map +0 -1
  1007. package/dist/router/segment-resolution.js +0 -919
  1008. package/dist/router/segment-resolution.js.map +0 -1
  1009. package/dist/router/trie-matching.d.ts +0 -40
  1010. package/dist/router/trie-matching.d.ts.map +0 -1
  1011. package/dist/router/trie-matching.js +0 -127
  1012. package/dist/router/trie-matching.js.map +0 -1
  1013. package/dist/router/types.d.ts +0 -136
  1014. package/dist/router/types.d.ts.map +0 -1
  1015. package/dist/router/types.js +0 -7
  1016. package/dist/router/types.js.map +0 -1
  1017. package/dist/router.d.ts +0 -753
  1018. package/dist/router.d.ts.map +0 -1
  1019. package/dist/router.gen.d.ts +0 -6
  1020. package/dist/router.gen.d.ts.map +0 -1
  1021. package/dist/router.gen.js +0 -6
  1022. package/dist/router.gen.js.map +0 -1
  1023. package/dist/router.js +0 -1304
  1024. package/dist/router.js.map +0 -1
  1025. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1026. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1027. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1028. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1029. package/dist/rsc/handler.d.ts +0 -45
  1030. package/dist/rsc/handler.d.ts.map +0 -1
  1031. package/dist/rsc/handler.js +0 -1172
  1032. package/dist/rsc/handler.js.map +0 -1
  1033. package/dist/rsc/helpers.d.ts +0 -16
  1034. package/dist/rsc/helpers.d.ts.map +0 -1
  1035. package/dist/rsc/helpers.js +0 -55
  1036. package/dist/rsc/helpers.js.map +0 -1
  1037. package/dist/rsc/index.d.ts +0 -22
  1038. package/dist/rsc/index.d.ts.map +0 -1
  1039. package/dist/rsc/index.js +0 -23
  1040. package/dist/rsc/index.js.map +0 -1
  1041. package/dist/rsc/nonce.d.ts +0 -9
  1042. package/dist/rsc/nonce.d.ts.map +0 -1
  1043. package/dist/rsc/nonce.js +0 -18
  1044. package/dist/rsc/nonce.js.map +0 -1
  1045. package/dist/rsc/types.d.ts +0 -206
  1046. package/dist/rsc/types.d.ts.map +0 -1
  1047. package/dist/rsc/types.js +0 -8
  1048. package/dist/rsc/types.js.map +0 -1
  1049. package/dist/search-params.d.ts +0 -103
  1050. package/dist/search-params.d.ts.map +0 -1
  1051. package/dist/search-params.js +0 -74
  1052. package/dist/search-params.js.map +0 -1
  1053. package/dist/segment-system.d.ts +0 -75
  1054. package/dist/segment-system.d.ts.map +0 -1
  1055. package/dist/segment-system.js +0 -336
  1056. package/dist/segment-system.js.map +0 -1
  1057. package/dist/server/context.d.ts +0 -245
  1058. package/dist/server/context.d.ts.map +0 -1
  1059. package/dist/server/context.js +0 -197
  1060. package/dist/server/context.js.map +0 -1
  1061. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1062. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1063. package/dist/server/fetchable-loader-store.js +0 -18
  1064. package/dist/server/fetchable-loader-store.js.map +0 -1
  1065. package/dist/server/handle-store.d.ts +0 -85
  1066. package/dist/server/handle-store.d.ts.map +0 -1
  1067. package/dist/server/handle-store.js +0 -142
  1068. package/dist/server/handle-store.js.map +0 -1
  1069. package/dist/server/loader-registry.d.ts +0 -55
  1070. package/dist/server/loader-registry.d.ts.map +0 -1
  1071. package/dist/server/loader-registry.js +0 -132
  1072. package/dist/server/loader-registry.js.map +0 -1
  1073. package/dist/server/request-context.d.ts +0 -226
  1074. package/dist/server/request-context.d.ts.map +0 -1
  1075. package/dist/server/request-context.js +0 -290
  1076. package/dist/server/request-context.js.map +0 -1
  1077. package/dist/server/root-layout.d.ts +0 -4
  1078. package/dist/server/root-layout.d.ts.map +0 -1
  1079. package/dist/server/root-layout.js +0 -5
  1080. package/dist/server/root-layout.js.map +0 -1
  1081. package/dist/server.d.ts +0 -15
  1082. package/dist/server.d.ts.map +0 -1
  1083. package/dist/server.js +0 -20
  1084. package/dist/server.js.map +0 -1
  1085. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1086. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1087. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1088. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1089. package/dist/ssr/index.d.ts +0 -98
  1090. package/dist/ssr/index.d.ts.map +0 -1
  1091. package/dist/ssr/index.js +0 -158
  1092. package/dist/ssr/index.js.map +0 -1
  1093. package/dist/static-handler.d.ts +0 -50
  1094. package/dist/static-handler.d.ts.map +0 -1
  1095. package/dist/static-handler.gen.d.ts +0 -5
  1096. package/dist/static-handler.gen.d.ts.map +0 -1
  1097. package/dist/static-handler.gen.js +0 -5
  1098. package/dist/static-handler.gen.js.map +0 -1
  1099. package/dist/static-handler.js +0 -29
  1100. package/dist/static-handler.js.map +0 -1
  1101. package/dist/theme/ThemeProvider.d.ts +0 -20
  1102. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1103. package/dist/theme/ThemeProvider.js +0 -240
  1104. package/dist/theme/ThemeProvider.js.map +0 -1
  1105. package/dist/theme/ThemeScript.d.ts +0 -48
  1106. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1107. package/dist/theme/ThemeScript.js +0 -13
  1108. package/dist/theme/ThemeScript.js.map +0 -1
  1109. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1110. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1111. package/dist/theme/__tests__/theme.test.js +0 -103
  1112. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1113. package/dist/theme/constants.d.ts +0 -29
  1114. package/dist/theme/constants.d.ts.map +0 -1
  1115. package/dist/theme/constants.js +0 -48
  1116. package/dist/theme/constants.js.map +0 -1
  1117. package/dist/theme/index.d.ts +0 -31
  1118. package/dist/theme/index.d.ts.map +0 -1
  1119. package/dist/theme/index.js +0 -36
  1120. package/dist/theme/index.js.map +0 -1
  1121. package/dist/theme/theme-context.d.ts +0 -40
  1122. package/dist/theme/theme-context.d.ts.map +0 -1
  1123. package/dist/theme/theme-context.js +0 -60
  1124. package/dist/theme/theme-context.js.map +0 -1
  1125. package/dist/theme/theme-script.d.ts +0 -27
  1126. package/dist/theme/theme-script.d.ts.map +0 -1
  1127. package/dist/theme/theme-script.js +0 -147
  1128. package/dist/theme/theme-script.js.map +0 -1
  1129. package/dist/theme/types.d.ts +0 -163
  1130. package/dist/theme/types.d.ts.map +0 -1
  1131. package/dist/theme/types.js +0 -11
  1132. package/dist/theme/types.js.map +0 -1
  1133. package/dist/theme/use-theme.d.ts +0 -12
  1134. package/dist/theme/use-theme.d.ts.map +0 -1
  1135. package/dist/theme/use-theme.js +0 -40
  1136. package/dist/theme/use-theme.js.map +0 -1
  1137. package/dist/types.d.ts +0 -1479
  1138. package/dist/types.d.ts.map +0 -1
  1139. package/dist/types.js +0 -10
  1140. package/dist/types.js.map +0 -1
  1141. package/dist/urls.d.ts +0 -441
  1142. package/dist/urls.d.ts.map +0 -1
  1143. package/dist/urls.gen.d.ts +0 -8
  1144. package/dist/urls.gen.d.ts.map +0 -1
  1145. package/dist/urls.gen.js +0 -8
  1146. package/dist/urls.gen.js.map +0 -1
  1147. package/dist/urls.js +0 -443
  1148. package/dist/urls.js.map +0 -1
  1149. package/dist/use-loader.d.ts +0 -127
  1150. package/dist/use-loader.d.ts.map +0 -1
  1151. package/dist/use-loader.js +0 -237
  1152. package/dist/use-loader.js.map +0 -1
  1153. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1154. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1155. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1156. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1157. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1158. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1159. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1160. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1161. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1162. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1163. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1164. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1165. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1166. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1167. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1168. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1169. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1170. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1171. package/dist/vite/ast-handler-extract.js +0 -249
  1172. package/dist/vite/ast-handler-extract.js.map +0 -1
  1173. package/dist/vite/expose-action-id.d.ts +0 -19
  1174. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1175. package/dist/vite/expose-action-id.js +0 -250
  1176. package/dist/vite/expose-action-id.js.map +0 -1
  1177. package/dist/vite/expose-id-utils.d.ts +0 -69
  1178. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1179. package/dist/vite/expose-id-utils.js +0 -289
  1180. package/dist/vite/expose-id-utils.js.map +0 -1
  1181. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1182. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1183. package/dist/vite/expose-internal-ids.js +0 -886
  1184. package/dist/vite/expose-internal-ids.js.map +0 -1
  1185. package/dist/vite/index.d.ts +0 -149
  1186. package/dist/vite/index.d.ts.map +0 -1
  1187. package/dist/vite/index.js.map +0 -1
  1188. package/dist/vite/index.named-routes.gen.ts +0 -103
  1189. package/dist/vite/package-resolution.d.ts +0 -43
  1190. package/dist/vite/package-resolution.d.ts.map +0 -1
  1191. package/dist/vite/package-resolution.js +0 -112
  1192. package/dist/vite/package-resolution.js.map +0 -1
  1193. package/dist/vite/virtual-entries.d.ts +0 -25
  1194. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1195. package/dist/vite/virtual-entries.js +0 -110
  1196. package/dist/vite/virtual-entries.js.map +0 -1
  1197. package/src/browser/action-response-classifier.ts +0 -99
  1198. package/src/browser/react/use-client-cache.ts +0 -58
  1199. package/src/browser/shallow.ts +0 -40
  1200. package/src/handles/index.ts +0 -7
  1201. package/src/network-error-thrower.tsx +0 -23
  1202. package/src/router/middleware-cookies.ts +0 -55
@@ -0,0 +1,701 @@
1
+ /**
2
+ * dispatch — in-process request -> Response for unit/integration tests,
3
+ * WITHOUT the Flight RSC runtime.
4
+ *
5
+ * dispatch runs the router's real matching and middleware execution so that
6
+ * redirects, 404s, response routes (path.json / path.text / path.html / ...),
7
+ * and middleware short-circuits behave exactly as in production. It deliberately
8
+ * does NOT render React Server Components: there is no Flight stream, no SSR,
9
+ * and no DOM. Hit an RSC (component) route and dispatch throws a clear error
10
+ * directing you to renderToFlightString/renderServerTree/renderHandler or an e2e test.
11
+ *
12
+ * What dispatch DOES support:
13
+ * - Trailing-slash and other findMatch() redirects -> 308 with Location
14
+ * - Unmatched paths -> 404 Response
15
+ * Both the 308 and the 404 are produced INSIDE the global middleware chain
16
+ * (mirroring production, where coreHandler runs wrapped by executeMiddleware),
17
+ * so a global auth middleware can 401/redirect them and middleware-set
18
+ * cookies/headers merge onto the 308/404 the way createResponseWithMergedHeaders
19
+ * merges them in production.
20
+ * - Response routes (non-RSC) -> serialized Response
21
+ * - json: JSON.stringify(result) (bare value) with application/json
22
+ * - text/html/xml/md: String(result) with the mapped MIME type
23
+ * - handler returning a Response: re-wrapped like
24
+ * handleResponseRoute (stub headers/cookies merged, Set-Cookie preserved,
25
+ * WebSocket upgrade passed through without reconstruction)
26
+ * - handler throwing an error: typed 500 / RouterError
27
+ * status, matching handleResponseRoute (RFC 9457 problem+json body with
28
+ * application/problem+json for json routes, text/plain message otherwise)
29
+ * - content-negotiated route: Vary: Accept appended
30
+ * - cached response route (cache({...})): getResponse/putResponse
31
+ * hit/SWR/tag write, resolved from the matched entry tree exactly as
32
+ * handleResponseRoute does. The write is scheduled via ctx.waitUntil
33
+ * (a microtask without an executionContext), so a HIT-asserting test must
34
+ * flush microtasks between the seeding dispatch and the asserting one.
35
+ * - Global middleware (router.use(...)) AND route-level middleware, with full
36
+ * next()/short-circuit/throw-Response/header+cookie-merge fidelity.
37
+ * - Partial (client-navigation) requests to a RESPONSE route (?_rsc_partial):
38
+ * global middleware runs first (so an auth gate can still 401/redirect),
39
+ * then — if it passes through — an X-RSC-Reload is returned. Route-level
40
+ * middleware is skipped on a partial, exactly as production skips it.
41
+ * - A middleware redirect (3xx + Location) on a partial/action request
42
+ * (?_rsc_partial / ?_rsc_action): converted to a 204 + X-RSC-Redirect via the
43
+ * real interceptRedirectForPartial, so fetch() does not auto-follow the 3xx —
44
+ * identical to production's no-location-state path.
45
+ * - The open-redirect guard (rsc/redirect-guard.ts) on full (browser-followed)
46
+ * redirects: a cross-origin Location is rewritten to the basename root unless
47
+ * redirect(url, { external: true }) opted out, mirroring production's single
48
+ * handler chokepoint. Soft partial/action redirects are 204 and pass through.
49
+ * - createRouter({ onError }) for CACHE / background-error degradation. dispatch
50
+ * wires the request context's _reportBackgroundError to the router's onError the
51
+ * same way the production RSC handler does, so a cache-read/cache-write/
52
+ * stale-revalidation failure on a cached response route (a throwing route
53
+ * cache({ key })/cache({ tags }), or a custom store whose keyGenerator/
54
+ * getResponse/putResponse throws) fires onError with phase "cache" and
55
+ * metadata.category, while the request still degrades-to-miss exactly as before.
56
+ * (A thrown response-route HANDLER error is the one onError path NOT covered —
57
+ * see "DOES NOT support" below.)
58
+ *
59
+ * What dispatch DOES NOT support (and why):
60
+ * - RSC component routes — rendering requires the Flight serializer + React
61
+ * server runtime, which is the boundary this primitive is defined to avoid.
62
+ * This includes partial requests that resolve to a component route.
63
+ * - Server actions (?_rsc_action) — RSC protocol concerns handled by
64
+ * router.fetch().
65
+ * - createRouter({ onError }) on a thrown response-route HANDLER error: the
66
+ * error is serialized into the same typed 500 / RouterError Response as
67
+ * production, but onError is NOT invoked for that path here. Cover handler-error
68
+ * onError side effects with an e2e test. (This is the unchanged boundary; cache
69
+ * and other background errors DO route through onError — see below.)
70
+ * - Location-state-carrying redirects on a partial/action request: production
71
+ * embeds a Flight payload (createRedirectFlightResponse) so the client can
72
+ * restore location state across the redirect. dispatch is RSC-free, so it
73
+ * cannot emit that Flight stream. It falls back to the no-state behavior — a
74
+ * 204 + X-RSC-Redirect via createSimpleRedirectResponse — dropping the
75
+ * embedded location state. The 204 status, the X-RSC-Redirect header, and the
76
+ * merged cookies/headers all match production; only the Flight-embedded
77
+ * location-state entries are absent. Cover location-state restoration across a
78
+ * partial redirect with an e2e test.
79
+ *
80
+ * dispatch reuses router.previewMatch(), which itself runs content negotiation
81
+ * and resolves route middleware from the matched entry tree, so dispatch's
82
+ * route-middleware collection is exactly the router's, not a re-implementation.
83
+ */
84
+
85
+ import {
86
+ createRequestContext,
87
+ runWithRequestContext,
88
+ setRequestContextParams,
89
+ } from "../server/request-context.js";
90
+ import { executeMiddleware, matchMiddleware } from "../router/middleware.js";
91
+ import type {
92
+ MiddlewareEntry,
93
+ MiddlewareFn,
94
+ } from "../router/middleware-types.js";
95
+ import {
96
+ createReverseFunction,
97
+ stripInternalParams,
98
+ } from "../router/handler-context.js";
99
+ import { NOCACHE_SYMBOL } from "../cache/taint.js";
100
+ import type { SegmentCacheStore } from "../cache/types.js";
101
+ import type { CacheProfile } from "../cache/profile-registry.js";
102
+ // cache-scope is loaded LAZILY inside the response-route cache path (below):
103
+ // its module graph pulls @vitejs/plugin-rsc/rsc (via segment-codec), which the
104
+ // non-Vite unit-test runner cannot resolve. A static import here would drag that
105
+ // onto the whole testing barrel's eager graph and break every consumer suite
106
+ // that imports `@rangojs/router/testing` without mocking plugin-rsc.
107
+ import type { EntryData } from "../server/context.js";
108
+ import { setRouterManifest } from "../route-map-builder.js";
109
+ import { RESPONSE_TYPE_MIME } from "../router/content-negotiation.js";
110
+ import { RouterError } from "../errors.js";
111
+ import { createProblemDetails } from "../rsc/response-error.js";
112
+ import {
113
+ createResponseWithMergedHeaders,
114
+ createSimpleRedirectResponse,
115
+ finalizeResponse,
116
+ interceptRedirectForPartial,
117
+ mergeStubHeadersAndFinalize,
118
+ } from "../rsc/helpers.js";
119
+ import { guardOutgoingRedirect } from "../rsc/redirect-guard.js";
120
+ import { stringifyJsonRouteResult } from "../rsc/json-route-result.js";
121
+ import {
122
+ EXTERNAL_REDIRECT_MARKER,
123
+ isExternalRedirect,
124
+ markExternalRedirect,
125
+ } from "../redirect-origin.js";
126
+ import { isWebSocketUpgradeResponse } from "../response-utils.js";
127
+ import { invokeOnError } from "../router/error-handling.js";
128
+ import type { OnErrorCallback } from "../types/error-types.js";
129
+ import type { Rango } from "../router/router-interfaces.js";
130
+
131
+ /**
132
+ * The internal subset of the router surface dispatch depends on. The public
133
+ * `Rango` router carries these members at runtime (they are declared on the
134
+ * internal interface), so dispatch accepts a public `Rango` and reads them
135
+ * through this shape — the consumer never needs a cast.
136
+ */
137
+ interface DispatchableRouter<TEnv> {
138
+ id?: string;
139
+ routerId?: string;
140
+ routeMap: Record<string, unknown>;
141
+ middleware: MiddlewareEntry<TEnv>[];
142
+ onError?: OnErrorCallback<TEnv>;
143
+ findMatch(pathname: string): {
144
+ redirectTo?: string;
145
+ routeKey?: string;
146
+ params?: Record<string, string>;
147
+ } | null;
148
+ previewMatch(
149
+ request: Request,
150
+ input?: { env?: TEnv },
151
+ ): Promise<{
152
+ routeMiddleware?: Array<{
153
+ handler: MiddlewareFn<TEnv>;
154
+ params: Record<string, string>;
155
+ }>;
156
+ responseType?: string;
157
+ handler?: Function;
158
+ params?: Record<string, string>;
159
+ routeKey?: string;
160
+ negotiated?: boolean;
161
+ manifestEntry?: EntryData;
162
+ } | null>;
163
+ basename?: string;
164
+ cache?:
165
+ | { enabled?: boolean; store?: SegmentCacheStore }
166
+ | ((
167
+ env: TEnv,
168
+ executionContext: unknown,
169
+ ) => { enabled?: boolean; store?: SegmentCacheStore });
170
+ cacheProfiles?: Record<string, CacheProfile>;
171
+ }
172
+
173
+ /**
174
+ * Options for dispatch.
175
+ */
176
+ export interface DispatchOptions<TEnv = any> {
177
+ /** The request to dispatch: a `Request`, or a URL string (absolute or path). */
178
+ request: Request | string;
179
+ /** Environment bindings forwarded to matching and middleware. */
180
+ env?: TEnv;
181
+ }
182
+
183
+ const DEFAULT_ORIGIN = "http://localhost/";
184
+
185
+ function toRequest(request: Request | string): Request {
186
+ if (request instanceof Request) return request;
187
+ return new Request(new URL(request, DEFAULT_ORIGIN));
188
+ }
189
+
190
+ /**
191
+ * Serialize a NON-Response response-route handler result, mirroring the
192
+ * router's handleResponseRoute() contract:
193
+ * - "json" serializes the value (bare) with application/json, rejecting a nested
194
+ * unresolved Promise via the shared stringifyJsonRouteResult guard,
195
+ * - text/html/xml/md stringify with the mapped MIME type.
196
+ *
197
+ * A handler-returned Response is NOT routed here — callHandler re-wraps it via
198
+ * rewrapHandlerResponse (mirroring handleResponseRoute's rewrapResponse) so the
199
+ * WebSocket-upgrade bypass and Set-Cookie-preserving header merge match
200
+ * production.
201
+ */
202
+ function serializeResponseRouteResult(
203
+ result: unknown,
204
+ responseType: string,
205
+ ): Response {
206
+ if (responseType === "json") {
207
+ // Serialize through the SAME guard production uses: a nested unresolved
208
+ // Promise (forgotten await) throws RESPONSE_NOT_SERIALIZABLE here, caught by
209
+ // callHandler's catch and mapped to the identical typed 500 production
210
+ // returns -- so a dispatch json test fails exactly where production would,
211
+ // instead of silently emitting {} and passing.
212
+ return new Response(stringifyJsonRouteResult(result), {
213
+ status: 200,
214
+ headers: { "content-type": "application/json;charset=utf-8" },
215
+ });
216
+ }
217
+
218
+ if (Object.hasOwn(RESPONSE_TYPE_MIME, responseType)) {
219
+ return new Response(String(result), {
220
+ status: 200,
221
+ headers: {
222
+ "content-type": `${RESPONSE_TYPE_MIME[responseType]};charset=utf-8`,
223
+ },
224
+ });
225
+ }
226
+
227
+ throw new Error(
228
+ `dispatch(): response route handler for "${responseType}" must return a ` +
229
+ `Response object, got ${typeof result}. Binary/streaming response types ` +
230
+ `(image, stream, any) must return a Response explicitly.`,
231
+ );
232
+ }
233
+
234
+ /**
235
+ * Serialize a thrown handler error into the same typed Response the router's
236
+ * handleResponseRoute() catch block produces:
237
+ * - "json" routes return an RFC 9457 problem+json body (application/problem+json),
238
+ * - all other types return a text/plain body (the RouterError message verbatim,
239
+ * the Error message in dev, else "Internal Server Error").
240
+ *
241
+ * `status` is the effective HTTP status resolved by the caller (RouterError.status
242
+ * or 500, overridden by ctx.setStatus()); it governs both the HTTP status and the
243
+ * problem body's `status`/`title` members. Reuses the production
244
+ * createProblemDetails so the error body is byte-identical rather than re-derived.
245
+ */
246
+ function serializeResponseRouteError(
247
+ error: unknown,
248
+ responseType: string,
249
+ status: number,
250
+ ): Response {
251
+ const isDev = process.env.NODE_ENV !== "production";
252
+
253
+ if (responseType === "json") {
254
+ return new Response(
255
+ JSON.stringify(createProblemDetails(error, status, isDev)),
256
+ {
257
+ status,
258
+ headers: { "content-type": "application/problem+json;charset=utf-8" },
259
+ },
260
+ );
261
+ }
262
+
263
+ const message =
264
+ error instanceof RouterError
265
+ ? error.message
266
+ : isDev && error instanceof Error
267
+ ? error.message
268
+ : "Internal Server Error";
269
+ return new Response(message, {
270
+ status,
271
+ headers: { "content-type": "text/plain;charset=utf-8" },
272
+ });
273
+ }
274
+
275
+ /**
276
+ * Re-wrap a handler-returned Response, byte-identical to handleResponseRoute's
277
+ * rewrapResponse:
278
+ * - A WebSocket upgrade (status 101 or a `webSocket` property) is returned via
279
+ * mergeStubHeadersAndFinalize WITHOUT reconstruction — the Response
280
+ * constructor rejects status 101, and an upgrade response's headers/socket
281
+ * must not be rebuilt.
282
+ * - Otherwise headers are copied into a fresh Headers (Set-Cookie appended to
283
+ * preserve duplicates, others set) and the Response is rebuilt through
284
+ * createResponseWithMergedHeaders so stub headers/cookies, the ctx.setStatus
285
+ * override, and onResponse callbacks merge exactly as in production. statusText
286
+ * is intentionally dropped (production does not carry it across the re-wrap).
287
+ *
288
+ * Must run inside runWithRequestContext (reads the ambient request context via
289
+ * the helpers), which callHandler guarantees.
290
+ */
291
+ function rewrapHandlerResponse(result: Response): Response {
292
+ if (isWebSocketUpgradeResponse(result)) {
293
+ return mergeStubHeadersAndFinalize(result);
294
+ }
295
+ const headers = new Headers();
296
+ result.headers.forEach((value, key) => {
297
+ // Mirror production: never copy the reserved external-redirect marker off a
298
+ // handler result (it is not a trust signal; the opt-in is the out-of-band
299
+ // brand transferred below).
300
+ if (key.toLowerCase() === EXTERNAL_REDIRECT_MARKER) return;
301
+ if (key.toLowerCase() === "set-cookie") {
302
+ headers.append(key, value);
303
+ } else {
304
+ headers.set(key, value);
305
+ }
306
+ });
307
+ const rewrapped = createResponseWithMergedHeaders(result.body, {
308
+ status: result.status,
309
+ headers,
310
+ });
311
+ // Mirror production's rewrapResponse: transfer the out-of-band external brand
312
+ // only from a genuinely branded result (a real redirect(url, { external:
313
+ // true })), never from a proxied upstream's forged header.
314
+ if (isExternalRedirect(result)) {
315
+ markExternalRedirect(rewrapped);
316
+ }
317
+ return rewrapped;
318
+ }
319
+
320
+ /**
321
+ * Run a request through the router in-process and return the Response.
322
+ *
323
+ * @example
324
+ * ```ts
325
+ * const router = createRouter<Env>({}).routes(urls(({ path }) => [
326
+ * path.json("/api/health", () => ({ ok: true }), { name: "health" }),
327
+ * ]));
328
+ *
329
+ * const res = await dispatch(router, { request: "/api/health" });
330
+ * expect(res.status).toBe(200);
331
+ * expect(await res.json()).toEqual({ ok: true });
332
+ * ```
333
+ */
334
+ export async function dispatch<TEnv = any>(
335
+ publicRouter: Rango<TEnv, any>,
336
+ opts: DispatchOptions<TEnv>,
337
+ ): Promise<Response> {
338
+ // The public Rango type intentionally hides the matching internals; read them
339
+ // through the dispatchable shape (present at runtime). Consumers pass their
340
+ // real router with no cast.
341
+ const router = publicRouter as unknown as DispatchableRouter<TEnv>;
342
+ const req = toRequest(opts.request);
343
+ const url = new URL(req.url);
344
+ const env = (opts.env ?? {}) as TEnv;
345
+
346
+ // Seed the per-router manifest so reverse() resolves during handler execution.
347
+ const routerId = router.id ?? router.routerId;
348
+ if (routerId) {
349
+ setRouterManifest(routerId, router.routeMap as Record<string, string>);
350
+ }
351
+
352
+ // findMatch carries trailing-slash/redirect targets and null on no match.
353
+ // previewMatch swallows redirects, so detect them here first.
354
+ const match = router.findMatch(url.pathname);
355
+ const redirectTo = match?.redirectTo;
356
+ const isUnmatched = !match;
357
+
358
+ // previewMatch resolves responseType, the response-route handler, and the
359
+ // route middleware from the matched entry tree (with content negotiation).
360
+ // Skip it for a redirect/unmatched path — there is no response route to
361
+ // resolve, and previewMatch would return null / a redirect marker anyway.
362
+ const preview =
363
+ redirectTo || isUnmatched ? null : await router.previewMatch(req, { env });
364
+
365
+ // A bare match with no responseType is an RSC route. The RSC-route throw is a
366
+ // hard boundary of this primitive (no Flight runtime), distinct from the
367
+ // 308/404 outcomes below, so it stays a pre-middleware guard.
368
+ const responseType = preview?.responseType;
369
+ const handler = preview?.handler;
370
+ const params = preview?.params ?? match?.params ?? {};
371
+ const routeKey = preview?.routeKey ?? match?.routeKey;
372
+
373
+ if (
374
+ !redirectTo &&
375
+ !isUnmatched &&
376
+ (!responseType || typeof handler !== "function")
377
+ ) {
378
+ throw new Error(
379
+ `dispatch() does not render RSC routes — the route matched at ` +
380
+ `"${url.pathname}" is a React Server Component route, not a response ` +
381
+ `route. Use renderHandler/renderServerTree/renderToFlightString or an ` +
382
+ `e2e test to exercise component rendering.`,
383
+ );
384
+ }
385
+
386
+ const variables: Record<string, unknown> = {};
387
+
388
+ // Resolve the router's cache store the way the production handler does, so a
389
+ // "use cache" inside a response-route handler reaches the request-scope
390
+ // (NOCACHE) detection below instead of bypassing on a missing store.
391
+ let cacheStore: SegmentCacheStore | undefined;
392
+ const cacheOption = router.cache;
393
+ if (cacheOption && !url.searchParams.has("__no_cache")) {
394
+ const cacheConfig =
395
+ typeof cacheOption === "function"
396
+ ? cacheOption(env, undefined)
397
+ : cacheOption;
398
+ if (cacheConfig.enabled !== false) cacheStore = cacheConfig.store;
399
+ }
400
+
401
+ const requestContext = createRequestContext<TEnv>({
402
+ env,
403
+ request: req,
404
+ url,
405
+ variables,
406
+ cacheStore,
407
+ cacheProfiles: router.cacheProfiles,
408
+ });
409
+ // Wire background error reporting so cache degradation (reportCacheError ->
410
+ // _reportBackgroundError) reaches the router's onError, mirroring the production
411
+ // RSC handler (rsc/handler.ts). Without this, dispatch could not observe onError.
412
+ requestContext._reportBackgroundError = (error, category) => {
413
+ if (error != null && typeof error === "object") {
414
+ if (requestContext._reportedErrors.has(error)) return;
415
+ requestContext._reportedErrors.add(error);
416
+ }
417
+ invokeOnError(
418
+ router.onError,
419
+ error,
420
+ "cache",
421
+ { request: req, url, metadata: { category } },
422
+ "RSC",
423
+ );
424
+ };
425
+ // Match production: the RSC handler stores the router's basename on the
426
+ // request context (handler.ts), and redirect() prefixes root-relative URLs
427
+ // with it. Mirror it so basename-redirect tests behave as they do in a real
428
+ // mounted app instead of always seeing no prefix.
429
+ requestContext._basename = router.basename;
430
+
431
+ // Match production's response-route reverse EXACTLY: the real handler builds
432
+ // it from the route map alone (response-route-handler.ts), with NO matched
433
+ // routeKey or params. Passing routeKey/params here would auto-fill params from
434
+ // the matched route, so ctx.reverse("name") could pass in a test while the
435
+ // real handler throws for the missing param.
436
+ const reverse = createReverseFunction(
437
+ router.routeMap as Record<string, string>,
438
+ ) as (
439
+ name: string,
440
+ p?: Record<string, string>,
441
+ search?: Record<string, unknown>,
442
+ ) => string;
443
+
444
+ const isPartial = url.searchParams.has("_rsc_partial");
445
+ const isAction = url.searchParams.has("_rsc_action");
446
+
447
+ return runWithRequestContext(requestContext, async () => {
448
+ // Set params before middleware/handler run, so global middleware sees
449
+ // ctx.params (production sets them during matching, before middleware).
450
+ // On a redirect/unmatched path there are no route params.
451
+ if (routeKey !== undefined) {
452
+ setRequestContextParams(params, routeKey);
453
+ } else {
454
+ requestContext.params = params;
455
+ }
456
+
457
+ // The response-route handler (with its own route middleware) lives inside
458
+ // coreHandler below, mirroring production where handleResponseRoute is
459
+ // nested inside coreHandler. Built lazily so a redirect/404 path never
460
+ // touches it.
461
+ const callResponseRoute = async (): Promise<Response> => {
462
+ // Match production: a partial (client-navigation) request to a response
463
+ // route is short-circuited to X-RSC-Reload (handleResponseRoute), BEFORE
464
+ // route-level middleware runs. Route-level middleware is skipped on a
465
+ // partial, exactly as production skips it.
466
+ const partialFinalHandler = async (): Promise<Response> =>
467
+ createResponseWithMergedHeaders(null, {
468
+ status: 200,
469
+ headers: {
470
+ "X-RSC-Reload": stripInternalParams(url).toString(),
471
+ "content-type": "text/x-component;charset=utf-8",
472
+ },
473
+ });
474
+
475
+ const cleanUrl = new URL(req.url);
476
+ for (const key of [...cleanUrl.searchParams.keys()]) {
477
+ if (key.startsWith("_rsc")) cleanUrl.searchParams.delete(key);
478
+ }
479
+
480
+ // Lightweight response-handler context mirroring handleResponseRoute.
481
+ const responseHandlerCtx = {
482
+ request: req,
483
+ params,
484
+ env,
485
+ searchParams: cleanUrl.searchParams,
486
+ url: cleanUrl,
487
+ originalUrl: requestContext.originalUrl,
488
+ pathname: url.pathname,
489
+ reverse,
490
+ get: requestContext.get,
491
+ header: (name: string, value: string) =>
492
+ requestContext.header(name, value),
493
+ waitUntil: requestContext.waitUntil.bind(requestContext),
494
+ executionContext: requestContext.executionContext,
495
+ _responseType: responseType,
496
+ };
497
+ // Brand as request-scoped so a "use cache" inside a response-route handler
498
+ // is detected as a request-scope violation here exactly as in production
499
+ // (response-route-handler.ts brands the same shape).
500
+ (responseHandlerCtx as Record<symbol, unknown>)[NOCACHE_SYMBOL] = true;
501
+
502
+ const callHandler = async (): Promise<Response> => {
503
+ let merged: Response;
504
+ try {
505
+ const result = await (handler as Function)(responseHandlerCtx);
506
+ if (result instanceof Response) {
507
+ // Handler returned a Response: mirror handleResponseRoute's
508
+ // rewrapResponse (WebSocket-upgrade bypass + Set-Cookie-preserving
509
+ // header rebuild, statusText dropped) rather than the generic
510
+ // createResponseWithMergedHeaders re-wrap below.
511
+ merged = rewrapHandlerResponse(result);
512
+ } else {
513
+ // Route the serialized (json/text/...) body through the SAME
514
+ // production finalizer the RSC handler uses, so ctx.onResponse()
515
+ // callbacks fire and stub headers/cookies + the ctx.setStatus
516
+ // override merge identically to production. Runs inside
517
+ // runWithRequestContext, so _getRequestContext() resolves here.
518
+ const serialized = serializeResponseRouteResult(
519
+ result,
520
+ responseType as string,
521
+ );
522
+ merged = createResponseWithMergedHeaders(serialized.body, {
523
+ status: serialized.status,
524
+ headers: serialized.headers,
525
+ });
526
+ }
527
+ } catch (error) {
528
+ // Mirror handleResponseRoute's catch: a genuine handler error becomes
529
+ // the router's typed 500 / RouterError-status Response (NOT a rejected
530
+ // promise). Middleware short-circuit via thrown Response is handled by
531
+ // executeMiddleware and never reaches here.
532
+ const derivedStatus =
533
+ error instanceof RouterError ? error.status : 500;
534
+ // Resolve the effective status the way createResponseWithMergedHeaders
535
+ // (below) will (ctx.res.status override) BEFORE building the problem
536
+ // body, so the body's status/title match the actual HTTP status when a
537
+ // handler called ctx.setStatus() before throwing — exactly as
538
+ // handleResponseRoute resolves it.
539
+ const status =
540
+ requestContext.res.status !== 200
541
+ ? requestContext.res.status
542
+ : derivedStatus;
543
+ const serialized = serializeResponseRouteError(
544
+ error,
545
+ responseType as string,
546
+ status,
547
+ );
548
+ merged = createResponseWithMergedHeaders(serialized.body, {
549
+ status: serialized.status,
550
+ headers: serialized.headers,
551
+ });
552
+ }
553
+
554
+ // Append Vary: Accept on content-negotiated responses, matching
555
+ // handleResponseRoute's callHandlerWithVary. Skipped on WebSocket
556
+ // upgrade responses (immutable headers, Vary meaningless for a 101).
557
+ if (preview?.negotiated && !isWebSocketUpgradeResponse(merged)) {
558
+ merged.headers.append("Vary", "Accept");
559
+ }
560
+
561
+ return merged;
562
+ };
563
+
564
+ // On a partial request the reload IS the terminal handler and route
565
+ // middleware is skipped; otherwise the response-route handler is wrapped
566
+ // by route-level middleware (production order: route middleware runs
567
+ // inside handleResponseRoute, after the global chain).
568
+ if (isPartial) {
569
+ return partialFinalHandler();
570
+ }
571
+
572
+ // executeHandler = callHandler wrapped by route-level middleware, exactly
573
+ // the unit the production response cache wraps (response-route-handler.ts).
574
+ const executeHandler = (): Promise<Response> => {
575
+ const routeMiddlewareEntries = (preview?.routeMiddleware ?? []).map(
576
+ (mw) => ({
577
+ entry: {
578
+ pattern: null,
579
+ regex: null,
580
+ paramNames: [],
581
+ handler: mw.handler,
582
+ } as MiddlewareEntry<TEnv>,
583
+ params: mw.params,
584
+ }),
585
+ );
586
+ if (routeMiddlewareEntries.length === 0) {
587
+ return callHandler();
588
+ }
589
+ return executeMiddleware<TEnv>(
590
+ routeMiddlewareEntries,
591
+ req,
592
+ env,
593
+ variables,
594
+ callHandler,
595
+ reverse,
596
+ );
597
+ };
598
+
599
+ // Response-route cache path: resolved through the SAME shared serve leaf
600
+ // (rsc/response-cache-serve.ts) production uses, so a cached
601
+ // path.json/path.text route hits/SWRs/writes tags through dispatch exactly
602
+ // as in production — and the two can never drift. Resolved from the matched
603
+ // entry tree (preview.manifestEntry), which previewMatch surfaces for
604
+ // response routes.
605
+ const manifestEntry = preview?.manifestEntry;
606
+ if (manifestEntry) {
607
+ // Lazy so the testing barrel's eager graph stays plugin-rsc-free (see the
608
+ // import note above): the leaf takes createCacheScope/resolveCacheTags as
609
+ // INJECTED deps so it never imports plugin-rsc; we hand it the lazily
610
+ // imported pair here, only once a response route actually matched.
611
+ const cacheScopeMod = await import("../cache/cache-scope.js");
612
+ const { serveResponseRouteWithCache } =
613
+ await import("../rsc/response-cache-serve.js");
614
+ // requestContext is RequestContext<TEnv>; the leaf is typed against the
615
+ // default-env RequestContext (it reads only env-agnostic config).
616
+ // Assignable in the router's own tsc but not when a consumer pins a
617
+ // concrete Env — cast to the leaf's param type.
618
+ const cached = await serveResponseRouteWithCache({
619
+ reqCtx: requestContext as Parameters<
620
+ typeof serveResponseRouteWithCache
621
+ >[0]["reqCtx"],
622
+ manifestEntry,
623
+ responseType: responseType as string,
624
+ url,
625
+ executeHandler,
626
+ deps: {
627
+ createCacheScope: cacheScopeMod.createCacheScope,
628
+ resolveCacheTags: cacheScopeMod.resolveCacheTags,
629
+ },
630
+ });
631
+ if (cached !== undefined) return cached;
632
+ }
633
+
634
+ return executeHandler().then(finalizeResponse);
635
+ };
636
+
637
+ // coreHandler is the single terminal the global middleware chain wraps,
638
+ // mirroring production's coreHandler (handler.ts): a trailing-slash/redirect
639
+ // 308, an unmatched-path 404, or the response route. Both the 308 and the
640
+ // 404 are produced via createResponseWithMergedHeaders so middleware-set
641
+ // cookies/headers merge onto them, identical to production's
642
+ // rsc-rendering.ts redirect path — and because they sit inside the chain, a
643
+ // global middleware that short-circuits (e.g. an auth 401) runs first and
644
+ // wins, never reaching the 308/404.
645
+ const coreHandler = async (): Promise<Response> => {
646
+ if (redirectTo) {
647
+ return createResponseWithMergedHeaders(null, {
648
+ status: 308,
649
+ headers: { Location: redirectTo + url.search },
650
+ });
651
+ }
652
+ if (isUnmatched) {
653
+ return createResponseWithMergedHeaders("Not Found", {
654
+ status: 404,
655
+ headers: { "content-type": "text/plain;charset=utf-8" },
656
+ });
657
+ }
658
+ return callResponseRoute();
659
+ };
660
+
661
+ // Global (pattern-matched) middleware wraps coreHandler, exactly as
662
+ // production wraps coreHandler with executeMiddleware (handler.ts).
663
+ const globalMatches = matchMiddleware(url.pathname, router.middleware);
664
+ const mwResponse =
665
+ globalMatches.length === 0
666
+ ? await coreHandler()
667
+ : await executeMiddleware<TEnv>(
668
+ globalMatches,
669
+ req,
670
+ env,
671
+ variables,
672
+ coreHandler,
673
+ reverse,
674
+ );
675
+
676
+ // Match production's global-chain exit (handler.ts): on a partial/action
677
+ // request a middleware 3xx redirect is converted to a Flight-safe response
678
+ // so fetch() does not auto-follow it; every path then drains onResponse
679
+ // callbacks via finalizeResponse. dispatch is RSC-free, so the
680
+ // createRedirectFlightResponse stand-in falls back to the no-state
681
+ // 204 + X-RSC-Redirect (see the location-state divergence in the header).
682
+ let finalResponse: Response;
683
+ if (isPartial || isAction) {
684
+ const intercepted = interceptRedirectForPartial(
685
+ mwResponse,
686
+ (redirectUrl) => createSimpleRedirectResponse(redirectUrl),
687
+ );
688
+ finalResponse = finalizeResponse(intercepted ?? mwResponse);
689
+ } else {
690
+ finalResponse = finalizeResponse(mwResponse);
691
+ }
692
+
693
+ // Mirror production's single open-redirect chokepoint (handler.ts): every
694
+ // browser-followed (3xx + Location) redirect is same-origin guarded before
695
+ // it leaves -- a cross-origin Location is rewritten to the basename root
696
+ // unless redirect(url, { external: true }) opted out. Soft partial/action
697
+ // redirects are 204 + X-RSC-Redirect and pass through untouched (the client
698
+ // validates them), so this is a no-op for them.
699
+ return guardOutgoingRedirect(finalResponse, url.origin, router.basename);
700
+ });
701
+ }