@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
@@ -11,7 +11,15 @@
11
11
  */
12
12
 
13
13
  import { AsyncLocalStorage } from "node:async_hooks";
14
+ import { parseCookiesFromHeader } from "./cookie-parse.js";
15
+ import type { CacheErrorCategory } from "../cache/cache-error.js";
14
16
  import type { CookieOptions } from "../router/middleware.js";
17
+ import {
18
+ KEEP_CACHE_HEADER,
19
+ getRawCookieValue,
20
+ mintStateValue,
21
+ serializeStateCookie,
22
+ } from "../browser/cookie-name.js";
15
23
  import type { LoaderDefinition, LoaderContext } from "../types.js";
16
24
  import type { ScopedReverseFunction } from "../reverse.js";
17
25
  import type {
@@ -20,21 +28,46 @@ import type {
20
28
  DefaultRouteName,
21
29
  } from "../types/global-namespace.js";
22
30
  import type { Handle } from "../handle.js";
23
- import { type ContextVar, contextGet, contextSet } from "../context-var.js";
24
- import { createHandleStore, type HandleStore } from "./handle-store.js";
31
+ import {
32
+ type ContextVar,
33
+ contextGet,
34
+ contextSet,
35
+ isNonCacheable,
36
+ } from "../context-var.js";
37
+ import {
38
+ createHandleStore,
39
+ buildHandleSnapshot,
40
+ type HandleStore,
41
+ type HandleData,
42
+ } from "./handle-store.js";
25
43
  import { isHandle } from "../handle.js";
26
- import { track, type MetricsStore } from "./context.js";
44
+ import { withDefer } from "../defer.js";
45
+ import { type MetricsStore } from "./context.js";
46
+ import { observePhase, PHASES } from "../router/instrument.js";
27
47
  import { getFetchableLoader } from "./fetchable-loader-store.js";
28
48
  import type { SegmentCacheStore } from "../cache/types.js";
29
49
  import type { Theme, ResolvedThemeConfig } from "../theme/types.js";
30
- import { THEME_COOKIE } from "../theme/constants.js";
50
+ import type { ExecutionContext, RequestScope } from "../types/request-scope.js";
51
+ import type { ResolvedTracing } from "../router/tracing.js";
52
+ import { fireAndForgetWaitUntil } from "../types/request-scope.js";
53
+ import {
54
+ THEME_COOKIE,
55
+ isValidTheme,
56
+ warnInvalidTheme,
57
+ } from "../theme/constants.js";
31
58
  import type { LocationStateEntry } from "../browser/react/location-state-shared.js";
32
59
  import { NOCACHE_SYMBOL, assertNotInsideCacheExec } from "../cache/taint.js";
60
+ import { isInsideCacheScope } from "./context.js";
33
61
  import {
34
62
  createReverseFunction,
35
63
  stripInternalParams,
36
64
  } from "../router/handler-context.js";
37
- import { getGlobalRouteMap, isRouteRootScoped } from "../route-map-builder.js";
65
+ import {
66
+ getGlobalRouteMap,
67
+ isRouteRootScoped,
68
+ getSearchSchema,
69
+ } from "../route-map-builder.js";
70
+ import { parseSearchParams } from "../search-params.js";
38
71
  import { invariant } from "../errors.js";
39
72
  import { isAutoGeneratedRouteName } from "../route-name.js";
40
73
 
@@ -47,24 +80,9 @@ import { isAutoGeneratedRouteName } from "../route-name.js";
47
80
  export interface RequestContext<
48
81
  TEnv = DefaultEnv,
49
82
  TParams = Record<string, string>,
50
- > {
51
- /** Platform bindings (Cloudflare env, etc.) */
52
- env: TEnv;
53
- /** Original HTTP request */
54
- request: Request;
55
- /** Parsed URL (with internal `_rsc*` params stripped) */
56
- url: URL;
57
- /**
58
- * The original request URL with all parameters intact, including
59
- * internal `_rsc*` transport params.
60
- */
61
- originalUrl: URL;
62
- /** URL pathname */
63
- pathname: string;
64
- /** URL search params (with internal `_rsc*` params stripped, same as `url.searchParams`) */
65
- searchParams: URLSearchParams;
66
- /** Variables set by middleware (same as ctx.var) */
67
- var: Record<string, any>;
83
+ > extends RequestScope<TEnv> {
84
+ /** @internal Shared variable backing store for ctx.get()/ctx.set(). */
85
+ _variables: Record<string, any>;
68
86
  /** Get a variable set by middleware */
69
87
  get: {
70
88
  <T>(contextVar: ContextVar<T>): T | undefined;
@@ -72,8 +90,12 @@ export interface RequestContext<
72
90
  };
73
91
  /** Set a variable (shared with middleware and handlers) */
74
92
  set: {
75
- <T>(contextVar: ContextVar<T>, value: T): void;
76
- <K extends string>(key: K, value: any): void;
93
+ <T>(
94
+ contextVar: ContextVar<T>,
95
+ value: T,
96
+ options?: { cache?: boolean },
97
+ ): void;
98
+ <K extends string>(key: K, value: any, options?: { cache?: boolean }): void;
77
99
  };
78
100
  /**
79
101
  * Route params (populated after route matching)
@@ -100,6 +122,10 @@ export interface RequestContext<
100
122
  setStatus(status: number): void;
101
123
  /** @internal Set status bypassing cache-exec guard (for framework error handling) */
102
124
  _setStatus(status: number): void;
125
+ /** @internal Rotate the rango state cookie (server seat of invalidateClientCache). */
126
+ _rotateStateCookie(): void;
127
+ /** @internal Set the keepClientCache() directive header on the response. */
128
+ _setKeepCacheDirective(): void;
103
129
 
104
130
  /**
105
131
  * Access loader data or push handle data.
@@ -138,26 +164,31 @@ export interface RequestContext<
138
164
  /** @internal Cache store for segment caching (optional, used by CacheScope) */
139
165
  _cacheStore?: SegmentCacheStore;
140
166
 
167
+ /**
168
+ * @internal Handler-owned registry of explicit per-scope stores from
169
+ * cache({ store }). Created once per createRSCHandler() and threaded into
170
+ * every request context, so it accumulates every explicit store the handler
171
+ * resolves. updateTag()/revalidateTag() iterate this set plus _cacheStore to
172
+ * reach every store that may hold tagged entries. The app-level store is not
173
+ * added here (it is always reachable via _cacheStore).
174
+ */
175
+ _explicitTaggedStores?: Set<SegmentCacheStore>;
176
+
177
+ /**
178
+ * @internal Union of every cache tag resolved while producing this request's
179
+ * response (from cache({ tags }), runtime cacheTag(), and loader cache tags).
180
+ * Populated at the tag-resolution sites via recordRequestTags(). Read by the
181
+ * document cache middleware so a full-page entry is tagged with everything its
182
+ * content used and can therefore be invalidated by updateTag()/revalidateTag().
183
+ */
184
+ _requestTags: Set<string>;
185
+
141
186
  /** @internal Cache profiles for "use cache" profile resolution (per-router) */
142
187
  _cacheProfiles?: Record<
143
188
  string,
144
189
  import("../cache/profile-registry.js").CacheProfile
145
190
  >;
146
191
 
147
- /**
148
- * Schedule work to run after the response is sent.
149
- * On Cloudflare Workers, uses ctx.waitUntil().
150
- * On Node.js, runs as fire-and-forget.
151
- *
152
- * @example
153
- * ```typescript
154
- * ctx.waitUntil(async () => {
155
- * await cacheStore.set(key, data, ttl);
156
- * });
157
- * ```
158
- */
159
- waitUntil(fn: () => Promise<void>): void;
160
-
161
192
  /**
162
193
  * Register a callback to run when the response is created.
163
194
  * Callbacks are sync and receive the response. They can:
@@ -261,6 +292,68 @@ export interface RequestContext<
261
292
  /** @internal Previous route key (from the navigation source), used for revalidation */
262
293
  _prevRouteKey?: string;
263
294
 
295
+ /**
296
+ * @internal Render barrier for experimental `rendered()` API.
297
+ * Resolves when all non-loader segments have settled and handle data
298
+ * is available. Used by DSL loaders that call `ctx.rendered()`.
299
+ */
300
+ _renderBarrier: Promise<void>;
301
+
302
+ /**
303
+ * @internal Resolve the render barrier. Accepts resolved segments, filters
304
+ * out loaders, and captures non-loader segment IDs as the handle ordering.
305
+ * Called after segment resolution (fresh) or handle replay (cache/prerender).
306
+ */
307
+ _resolveRenderBarrier: (
308
+ segments: Array<{ type: string; id: string }>,
309
+ ) => void;
310
+
311
+ /**
312
+ * @internal Segment order at barrier resolution time, used by loader
313
+ * ctx.use(handle) to collect handle data in correct order.
314
+ */
315
+ _renderBarrierSegmentOrder?: string[];
316
+
317
+ /**
318
+ * @internal Set to true when the matched entry tree contains any `loading()`
319
+ * entries (streaming). On a streaming tree rendered() waits for the streaming
320
+ * handlers to settle (via handleStore.settled) before resolving, and the
321
+ * deadlock guard state is kept live until that wait completes.
322
+ */
323
+ _treeHasStreaming?: boolean;
324
+
325
+ /**
326
+ * @internal Loader IDs that have called rendered() and are waiting for the
327
+ * barrier. Used to detect deadlocks when a handler tries to await the same
328
+ * loader via ctx.use(Loader).
329
+ */
330
+ _renderBarrierWaiters?: Set<string>;
331
+
332
+ /**
333
+ * @internal Loader IDs that handlers have started awaiting via ctx.use().
334
+ * Used for bidirectional deadlock detection: if a loader later calls
335
+ * rendered() and a handler already awaits it, we can detect the deadlock.
336
+ */
337
+ _handlerLoaderDeps?: Set<string>;
338
+
339
+ /**
340
+ * @internal Cached HandleData snapshot built at barrier resolution time.
341
+ * Avoids rebuilding the snapshot on every loader ctx.use(handle) call.
342
+ */
343
+ _renderBarrierHandleSnapshot?: HandleData;
344
+
345
+ /**
346
+ * @internal The deadlock guard window is closed (no further handler-awaits-
347
+ * loader cycle is possible). For non-streaming trees this is set when the
348
+ * barrier resolves. For streaming trees the window stays open until
349
+ * handleStore.settled — rendered() keeps waiting past the barrier and a
350
+ * loading() handler can still resume and await a still-waiting loader — so it
351
+ * is set only after settled. The guard (loader-resolution `setupLoaderAccess`)
352
+ * reads this instead of `_renderBarrierSegmentOrder` so it does not go blind
353
+ * during the streaming settle wait.
354
+ */
355
+ _renderBarrierGuardClosed?: boolean;
356
+
264
357
  /** @internal Per-request error dedup set for onError reporting */
265
358
  _reportedErrors: WeakSet<object>;
266
359
 
@@ -268,15 +361,40 @@ export interface RequestContext<
268
361
  * @internal Report a non-fatal background error through the router's
269
362
  * onError callback. Wired by the RSC handler / router during request
270
363
  * creation. Cache-runtime and other subsystems call this to surface
271
- * errors without failing the response.
364
+ * errors without failing the response. `category` is surfaced to consumers as
365
+ * `metadata.category` on the onError context (phase `cache`).
272
366
  */
273
- _reportBackgroundError?: (error: unknown, category: string) => void;
367
+ _reportBackgroundError?: (
368
+ error: unknown,
369
+ category: CacheErrorCategory,
370
+ ) => void;
274
371
 
275
372
  /** @internal Per-request debug performance override (set via ctx.debugPerformance()) */
276
373
  _debugPerformance?: boolean;
277
374
 
278
375
  /** @internal Request-scoped performance metrics store */
279
376
  _metricsStore?: MetricsStore;
377
+
378
+ /** @internal Resolved platform phase-span tracing for this request (Cloudflare or OTel) */
379
+ _tracing?: ResolvedTracing;
380
+
381
+ /** @internal Router basename for this request (used by redirect()) */
382
+ _basename?: string;
383
+
384
+ /**
385
+ * @internal RouteSnapshot from classifyRequest, reused by match/matchPartial
386
+ * to avoid a second resolveRoute call. Cleared on HMR invalidation.
387
+ */
388
+ _classifiedRoute?: import("../router/route-snapshot.js").RouteSnapshot;
389
+
390
+ /**
391
+ * @internal Coarse route-level cache signal for the X-Rango-Cache debug
392
+ * header. Populated by match/matchPartial only when the debug cache signal
393
+ * gate is enabled (debugCacheSignal option or RANGO_TEST_SIGNALS=1). Read by
394
+ * the response-finalization path (createResponseWithMergedHeaders). Undefined
395
+ * when the gate is off, so no header is emitted.
396
+ */
397
+ _cacheSignal?: import("../router/telemetry.js").CacheSegmentSignal[];
280
398
  }
281
399
 
282
400
  /**
@@ -296,6 +414,8 @@ export type PublicRequestContext<
296
414
  | "deleteCookie"
297
415
  | "_handleStore"
298
416
  | "_cacheStore"
417
+ | "_explicitTaggedStores"
418
+ | "_requestTags"
299
419
  | "_cacheProfiles"
300
420
  | "_onResponseCallbacks"
301
421
  | "_themeConfig"
@@ -303,10 +423,24 @@ export type PublicRequestContext<
303
423
  | "_routeName"
304
424
  | "_prevRouteKey"
305
425
  | "_reportedErrors"
426
+ | "_renderBarrier"
427
+ | "_resolveRenderBarrier"
428
+ | "_renderBarrierSegmentOrder"
429
+ | "_treeHasStreaming"
430
+ | "_renderBarrierWaiters"
431
+ | "_handlerLoaderDeps"
432
+ | "_renderBarrierHandleSnapshot"
433
+ | "_renderBarrierGuardClosed"
306
434
  | "_reportBackgroundError"
307
435
  | "_debugPerformance"
308
436
  | "_metricsStore"
437
+ | "_basename"
309
438
  | "_setStatus"
439
+ | "_rotateStateCookie"
440
+ | "_setKeepCacheDirective"
441
+ | "_variables"
442
+ | "_classifiedRoute"
443
+ | "_cacheSignal"
310
444
  | "res"
311
445
  >;
312
446
 
@@ -358,6 +492,7 @@ export function _getRequestContext<TEnv = DefaultEnv>():
358
492
  export function setRequestContextParams(
359
493
  params: Record<string, string>,
360
494
  routeName?: string,
495
+ routeMap?: Record<string, string>,
361
496
  ): void {
362
497
  const ctx = requestContextStorage.getStore();
363
498
  if (ctx) {
@@ -370,9 +505,13 @@ export function setRequestContextParams(
370
505
  : undefined
371
506
  ) as DefaultRouteName | undefined;
372
507
  }
373
- // Update reverse with scoped resolution now that route is known
508
+ // Update reverse with scoped resolution now that route is known. Production
509
+ // omits routeMap and uses the global map (routes are registered globally);
510
+ // the testing primitives (renderToFlightString/renderServerTree) pass a
511
+ // scoped routeMap so `ctx.reverse` is not order-dependent on whatever router
512
+ // registered last.
374
513
  ctx.reverse = createReverseFunction(
375
- getGlobalRouteMap(),
514
+ routeMap ?? getGlobalRouteMap(),
376
515
  routeName,
377
516
  params,
378
517
  routeName ? isRouteRootScoped(routeName) : undefined,
@@ -406,23 +545,7 @@ export function getLocationState(): LocationStateEntry[] | undefined {
406
545
  return ctx?._locationState;
407
546
  }
408
547
 
409
- /**
410
- * Get the current request context, throwing if not available
411
- * @deprecated Use getRequestContext() directly — it now throws if outside context
412
- */
413
- export function requireRequestContext<
414
- TEnv = DefaultEnv,
415
- >(): RequestContext<TEnv> {
416
- return getRequestContext<TEnv>();
417
- }
418
-
419
- /**
420
- * Cloudflare Workers ExecutionContext (subset we need)
421
- */
422
- export interface ExecutionContext {
423
- waitUntil(promise: Promise<any>): void;
424
- passThroughOnException(): void;
425
- }
548
+ export type { ExecutionContext };
426
549
 
427
550
  /**
428
551
  * Options for creating a request context
@@ -436,6 +559,11 @@ export interface CreateRequestContextOptions<TEnv> {
436
559
  initialResponse?: Response;
437
560
  /** Optional cache store for segment caching (used by CacheScope) */
438
561
  cacheStore?: SegmentCacheStore;
562
+ /**
563
+ * Handler-owned registry of explicit per-scope stores for cross-store tag
564
+ * invalidation. Created once per handler, reused across requests.
565
+ */
566
+ explicitTaggedStores?: Set<SegmentCacheStore>;
439
567
  /** Optional cache profiles for "use cache" resolution (per-router) */
440
568
  cacheProfiles?: Record<
441
569
  string,
@@ -445,6 +573,10 @@ export interface CreateRequestContextOptions<TEnv> {
445
573
  executionContext?: ExecutionContext;
446
574
  /** Optional theme configuration (enables ctx.theme and ctx.setTheme) */
447
575
  themeConfig?: ResolvedThemeConfig | null;
576
+ /** Resolved rango state cookie name, for the server seat of invalidateClientCache(). */
577
+ stateCookieName?: string;
578
+ /** Build version, used as the prefix of a server-rotated rango state value. */
579
+ version?: string;
448
580
  }
449
581
 
450
582
  /**
@@ -465,15 +597,17 @@ export function createRequestContext<TEnv>(
465
597
  variables,
466
598
  initialResponse,
467
599
  cacheStore,
600
+ explicitTaggedStores,
468
601
  cacheProfiles,
469
602
  executionContext,
470
603
  themeConfig,
604
+ stateCookieName,
605
+ version: stateVersion,
471
606
  } = options;
472
607
  const cookieHeader = request.headers.get("Cookie");
608
+ let rangoStateRotated = false;
473
609
  let parsedCookies: Record<string, string> | null = null;
474
610
 
475
- // Create stub response for collecting headers/cookies.
476
- // All cookie/header mutations go here; cookie reads derive from it.
477
611
  let stubResponse = initialResponse
478
612
  ? new Response(null, {
479
613
  status: initialResponse.status,
@@ -482,11 +616,9 @@ export function createRequestContext<TEnv>(
482
616
  })
483
617
  : new Response(null, { status: 200 });
484
618
 
485
- // Create handle store and loader memoization for this request
486
619
  const handleStore = createHandleStore();
487
620
  const loaderPromises = new Map<string, Promise<any>>();
488
621
 
489
- // Lazy parse cookies from the original Cookie header
490
622
  const getParsedCookies = (): Record<string, string> => {
491
623
  if (!parsedCookies) {
492
624
  parsedCookies = parseCookiesFromHeader(cookieHeader);
@@ -494,7 +626,6 @@ export function createRequestContext<TEnv>(
494
626
  return parsedCookies;
495
627
  };
496
628
 
497
- // Cached response cookie mutations — invalidated on setCookie/deleteCookie/setTheme
498
629
  let responseCookieCache: Map<string, string | null> | null = null;
499
630
  const getResponseCookies = (): Map<string, string | null> => {
500
631
  if (!responseCookieCache) {
@@ -506,8 +637,17 @@ export function createRequestContext<TEnv>(
506
637
  responseCookieCache = null;
507
638
  };
508
639
 
509
- // Effective cookie read: response stub Set-Cookie wins, then original header.
510
- // The stub IS the source of truth for same-request mutations.
640
+ function assertNotInsideCacheScopeALS(methodName: string): void {
641
+ if (isInsideCacheScope()) {
642
+ throw new Error(
643
+ `ctx.${methodName}() cannot be called inside a cache() boundary. ` +
644
+ `On cache hit the handler is skipped, so this side effect would be lost. ` +
645
+ `Move ctx.${methodName}() to a middleware or layout outside the cache() scope.`,
646
+ );
647
+ }
648
+ }
649
+
650
+ // Response stub Set-Cookie wins, then original header (source of truth for mutations).
511
651
  const effectiveCookie = (name: string): string | undefined => {
512
652
  const mutations = getResponseCookies();
513
653
  if (mutations.has(name)) {
@@ -517,14 +657,11 @@ export function createRequestContext<TEnv>(
517
657
  return getParsedCookies()[name];
518
658
  };
519
659
 
520
- // Theme helpers (only used when themeConfig is provided)
521
660
  const getTheme = (): Theme | undefined => {
522
661
  if (!themeConfig) return undefined;
523
662
 
524
- // Use overlay-aware read so setTheme() in the same request is reflected
525
663
  const stored = effectiveCookie(themeConfig.storageKey);
526
664
  if (stored) {
527
- // Validate stored value
528
665
  if (stored === "system" && themeConfig.enableSystem) {
529
666
  return "system";
530
667
  }
@@ -538,15 +675,15 @@ export function createRequestContext<TEnv>(
538
675
  const setTheme = (theme: Theme): void => {
539
676
  if (!themeConfig) return;
540
677
 
541
- // Validate theme value
542
- if (theme !== "system" && !themeConfig.themes.includes(theme)) {
543
- console.warn(
544
- `[Theme] Invalid theme value: "${theme}". Valid values: system, ${themeConfig.themes.join(", ")}`,
545
- );
678
+ // Shared guard (isValidTheme): reject any value not in the configured theme
679
+ // set, AND reject "system" when system detection is off — a cookie of
680
+ // theme=system with enableSystem:false would re-apply a bogus class="system"
681
+ // on the next SSR.
682
+ if (!isValidTheme(theme, themeConfig)) {
683
+ warnInvalidTheme(theme, themeConfig);
546
684
  return;
547
685
  }
548
686
 
549
- // Write to stub — effectiveCookie() will pick it up on next read
550
687
  stubResponse.headers.append(
551
688
  "Set-Cookie",
552
689
  serializeCookieValue(themeConfig.storageKey, theme, {
@@ -558,10 +695,8 @@ export function createRequestContext<TEnv>(
558
695
  invalidateResponseCookieCache();
559
696
  };
560
697
 
561
- // Strip internal _rsc* params so userland sees a clean URL.
562
698
  const cleanUrl = stripInternalParams(url);
563
699
 
564
- // Build the context object first (without use), then add use
565
700
  const ctx: RequestContext<TEnv> = {
566
701
  env,
567
702
  request,
@@ -569,12 +704,20 @@ export function createRequestContext<TEnv>(
569
704
  originalUrl: new URL(request.url),
570
705
  pathname: url.pathname,
571
706
  searchParams: cleanUrl.searchParams,
572
- var: variables,
573
- get: ((keyOrVar: any) =>
574
- contextGet(variables, keyOrVar)) as RequestContext<TEnv>["get"],
575
- set: ((keyOrVar: any, value: any) => {
707
+ _variables: variables,
708
+ get: ((keyOrVar: any) => {
709
+ if (isNonCacheable(variables, keyOrVar) && isInsideCacheScope()) {
710
+ throw new Error(
711
+ `ctx.get() for a non-cacheable variable cannot be called inside a cache() boundary. ` +
712
+ `The variable was created with { cache: false } or set with { cache: false }, ` +
713
+ `and its value would be stale on cache hit. Move the read outside the cached scope.`,
714
+ );
715
+ }
716
+ return contextGet(variables, keyOrVar);
717
+ }) as RequestContext<TEnv>["get"],
718
+ set: ((keyOrVar: any, value: any, options?: any) => {
576
719
  assertNotInsideCacheExec(ctx, "set");
577
- contextSet(variables, keyOrVar, value);
720
+ contextSet(variables, keyOrVar, value, options);
578
721
  }) as RequestContext<TEnv>["set"],
579
722
  params: {} as Record<string, string>,
580
723
 
@@ -612,6 +755,7 @@ export function createRequestContext<TEnv>(
612
755
 
613
756
  setCookie(name: string, value: string, options?: CookieOptions): void {
614
757
  assertNotInsideCacheExec(ctx, "setCookie");
758
+ assertNotInsideCacheScopeALS("setCookie");
615
759
  stubResponse.headers.append(
616
760
  "Set-Cookie",
617
761
  serializeCookieValue(name, value, options),
@@ -624,6 +768,7 @@ export function createRequestContext<TEnv>(
624
768
  options?: Pick<CookieOptions, "domain" | "path">,
625
769
  ): void {
626
770
  assertNotInsideCacheExec(ctx, "deleteCookie");
771
+ assertNotInsideCacheScopeALS("deleteCookie");
627
772
  stubResponse.headers.append(
628
773
  "Set-Cookie",
629
774
  serializeCookieValue(name, "", { ...options, maxAge: 0 }),
@@ -633,11 +778,52 @@ export function createRequestContext<TEnv>(
633
778
 
634
779
  header(name: string, value: string): void {
635
780
  assertNotInsideCacheExec(ctx, "header");
781
+ assertNotInsideCacheScopeALS("header");
636
782
  stubResponse.headers.set(name, value);
637
783
  },
638
784
 
785
+ // Rotate the rango state cookie for the responding client (the server seat
786
+ // of invalidateClientCache). Writes ONE Set-Cookie per request with the
787
+ // value {version}:{timestamp}; the `:` stays raw (the cookie-name.ts
788
+ // serializer), not the URL-encoded form serializeCookieValue would produce.
789
+ // The timestamp is strictly greater than the client's current one (inbound
790
+ // X-Rango-State), so a same-millisecond server rotation still differs from
791
+ // the client value and the divergence observer fires.
792
+ _rotateStateCookie(): void {
793
+ if (rangoStateRotated) return;
794
+ rangoStateRotated = true;
795
+ if (!stateCookieName) return;
796
+ // The client's current value, for the monotonic guard: prefer the
797
+ // X-Rango-State header (router navigation/prefetch fetches send it), but
798
+ // fall back to the request's rango state cookie — action POSTs / plain
799
+ // app fetch()s carry no router header yet DO send the cookie. Without the
800
+ // fallback, prevTs stays 0 and a same-ms mint can equal the client value,
801
+ // leaving the divergence observer silent. `|| null` so an empty header
802
+ // ('' from proxy normalization) falls through instead of short-circuiting.
803
+ // getRawCookieValue reads the cookie undecoded (the wire value
804
+ // decodeStateValue decodes exactly once) AND is the same parser the client
805
+ // mirror uses, so both seats read the same jar entry.
806
+ const prevRaw =
807
+ (request.headers.get("x-rango-state") || null) ??
808
+ getRawCookieValue(cookieHeader, stateCookieName);
809
+ const value = mintStateValue(stateVersion ?? "0", prevRaw);
810
+ stubResponse.headers.append(
811
+ "Set-Cookie",
812
+ serializeStateCookie(stateCookieName, value, url.protocol === "https:"),
813
+ );
814
+ invalidateResponseCookieCache();
815
+ },
816
+
817
+ // Set the keepClientCache() directive header. The action bridge reads it on
818
+ // the response and suppresses its automatic invalidation. `.set` makes this
819
+ // idempotent (one header regardless of call count).
820
+ _setKeepCacheDirective(): void {
821
+ stubResponse.headers.set(KEEP_CACHE_HEADER, "1");
822
+ },
823
+
639
824
  setStatus(status: number): void {
640
825
  assertNotInsideCacheExec(ctx, "setStatus");
826
+ assertNotInsideCacheScopeALS("setStatus");
641
827
  stubResponse = new Response(null, {
642
828
  status,
643
829
  headers: stubResponse.headers,
@@ -651,35 +837,38 @@ export function createRequestContext<TEnv>(
651
837
  });
652
838
  },
653
839
 
654
- // Placeholder - will be replaced below
655
840
  use: null as any,
656
841
 
657
842
  method: request.method,
658
843
 
659
844
  _handleStore: handleStore,
660
845
  _cacheStore: cacheStore,
846
+ _explicitTaggedStores: explicitTaggedStores,
847
+ _requestTags: new Set<string>(),
661
848
  _cacheProfiles: cacheProfiles,
662
849
 
663
850
  waitUntil(fn: () => Promise<void>): void {
664
851
  if (executionContext?.waitUntil) {
665
- // Cloudflare Workers: use native waitUntil
666
- executionContext.waitUntil(fn());
852
+ // Wrap in Promise.resolve().then(fn) so a SYNCHRONOUS throw in a
853
+ // non-async callback becomes a rejected promise handed to the host's
854
+ // waitUntil (logged as a background failure), instead of escaping into
855
+ // the request flow. Mirrors fireAndForgetWaitUntil's deferral.
856
+ executionContext.waitUntil(Promise.resolve().then(fn));
667
857
  } else {
668
- // Node.js / dev: fire-and-forget with error logging
669
- fn().catch((err) =>
670
- console.error("[waitUntil] Background task failed:", err),
671
- );
858
+ fireAndForgetWaitUntil(fn);
672
859
  }
673
860
  },
674
861
 
862
+ executionContext,
863
+
675
864
  _onResponseCallbacks: [],
676
865
 
677
866
  onResponse(callback: (response: Response) => Response): void {
678
867
  assertNotInsideCacheExec(ctx, "onResponse");
868
+ assertNotInsideCacheScopeALS("onResponse");
679
869
  this._onResponseCallbacks.push(callback);
680
870
  },
681
871
 
682
- // Theme properties (only set when themeConfig is provided)
683
872
  get theme() {
684
873
  return themeConfig ? getTheme() : undefined;
685
874
  },
@@ -703,35 +892,88 @@ export function createRequestContext<TEnv>(
703
892
  _reportedErrors: new WeakSet<object>(),
704
893
  _metricsStore: undefined,
705
894
 
895
+ _renderBarrier: null as any,
896
+ _resolveRenderBarrier: null as any,
897
+ _renderBarrierSegmentOrder: undefined,
898
+
706
899
  reverse: createReverseFunction(getGlobalRouteMap(), undefined, {}),
707
900
  };
708
901
 
709
- // Now create use() with access to ctx
902
+ // Lazy allocation: only create Promise when a loader calls rendered().
903
+ let barrierResolved = false;
904
+ let resolveBarrier: (() => void) | undefined;
905
+ ctx._renderBarrier = null as any;
906
+ ctx._resolveRenderBarrier = (
907
+ segments: Array<{ type: string; id: string }>,
908
+ ) => {
909
+ if (barrierResolved) return;
910
+ barrierResolved = true;
911
+ const segOrder = segments
912
+ .filter((s) => s.type !== "loader")
913
+ .map((s) => s.id);
914
+ ctx._renderBarrierSegmentOrder = segOrder;
915
+
916
+ const closeGuard = () => {
917
+ ctx._renderBarrierWaiters = undefined;
918
+ ctx._handlerLoaderDeps = undefined;
919
+ ctx._renderBarrierGuardClosed = true;
920
+ };
921
+
922
+ if (ctx._treeHasStreaming) {
923
+ handleStore.settled.then(closeGuard);
924
+ } else {
925
+ ctx._renderBarrierHandleSnapshot = buildHandleSnapshot(
926
+ handleStore,
927
+ segOrder,
928
+ );
929
+ closeGuard();
930
+ }
931
+ if (resolveBarrier) resolveBarrier();
932
+ };
933
+ Object.defineProperty(ctx, "_renderBarrier", {
934
+ get() {
935
+ const p = barrierResolved
936
+ ? Promise.resolve()
937
+ : new Promise<void>((resolve) => {
938
+ resolveBarrier = resolve;
939
+ });
940
+ Object.defineProperty(ctx, "_renderBarrier", {
941
+ value: p,
942
+ writable: false,
943
+ configurable: false,
944
+ });
945
+ return p;
946
+ },
947
+ configurable: true,
948
+ });
949
+
710
950
  ctx.use = createUseFunction({
711
951
  handleStore,
712
952
  loaderPromises,
713
953
  getContext: () => ctx,
714
954
  });
715
955
 
716
- // Brand with taint symbol so "use cache" excludes ctx from cache keys
717
956
  (ctx as any)[NOCACHE_SYMBOL] = true;
718
957
  return ctx;
719
958
  }
720
959
 
721
- /**
722
- * Parse Set-Cookie headers from a response into effective cookie state.
723
- * Returns a map of cookie name -> value (string) or name -> null (deleted).
724
- * Last-write-wins: later Set-Cookie entries for the same name overwrite earlier ones.
725
- * Max-Age=0 is treated as a delete.
726
- */
727
- const MAX_AGE_ZERO_RE = /;\s*Max-Age\s*=\s*0/i;
960
+ // Capture the Max-Age value so it can be parsed numerically. A leading zero
961
+ // (Max-Age=05) is a non-zero lifetime, not a deletion; only a value that parses
962
+ // to <= 0 marks a cookie for deletion. Pattern-matching a leading "0" misread
963
+ // zero-prefixed values like 05 / 010 as deletions.
964
+ const MAX_AGE_RE = /;\s*Max-Age\s*=\s*(-?\d+)/i;
965
+
966
+ function isCookieDeletion(header: string): boolean {
967
+ const m = MAX_AGE_RE.exec(header);
968
+ if (!m) return false;
969
+ return Number(m[1]) <= 0;
970
+ }
728
971
 
729
972
  function parseResponseCookies(response: Response): Map<string, string | null> {
730
973
  const result = new Map<string, string | null>();
731
974
  const setCookies = response.headers.getSetCookie();
732
975
 
733
976
  for (const header of setCookies) {
734
- // First segment before ';' is the name=value pair
735
977
  const semiIdx = header.indexOf(";");
736
978
  const pair = semiIdx === -1 ? header : header.substring(0, semiIdx);
737
979
  const eqIdx = pair.indexOf("=");
@@ -743,49 +985,22 @@ function parseResponseCookies(response: Response): Map<string, string | null> {
743
985
  name = decodeURIComponent(pair.substring(0, eqIdx).trim());
744
986
  value = decodeURIComponent(pair.substring(eqIdx + 1).trim());
745
987
  } catch {
746
- // Malformed encoding — skip this entry
747
988
  continue;
748
989
  }
749
990
 
750
- // Max-Age=0 means the cookie is being deleted
751
- const isDeleted = MAX_AGE_ZERO_RE.test(header);
991
+ const isDeleted = isCookieDeletion(header);
752
992
  result.set(name, isDeleted ? null : value);
753
993
  }
754
994
 
755
995
  return result;
756
996
  }
757
997
 
758
- /**
759
- * Parse cookies from Cookie header
760
- */
761
- function parseCookiesFromHeader(
762
- cookieHeader: string | null,
763
- ): Record<string, string> {
764
- if (!cookieHeader) return {};
765
-
766
- const cookies: Record<string, string> = {};
767
- const pairs = cookieHeader.split(";");
768
-
769
- for (const pair of pairs) {
770
- const [name, ...rest] = pair.trim().split("=");
771
- if (name) {
772
- const raw = rest.join("=");
773
- try {
774
- cookies[name] = decodeURIComponent(raw);
775
- } catch {
776
- // Malformed percent-encoded value (e.g. %zz, %2) - fall back to raw value
777
- cookies[name] = raw;
778
- }
779
- }
780
- }
781
-
782
- return cookies;
783
- }
998
+ // Re-exported for unit tests and the existing import path. The implementation
999
+ // lives in the dependency-free ./cookie-parse leaf so consumers (e.g. the host
1000
+ // dispatcher) can share it without pulling this module's request-context graph.
1001
+ export { parseCookiesFromHeader };
784
1002
 
785
- /**
786
- * Serialize a cookie for Set-Cookie header
787
- */
788
- function serializeCookieValue(
1003
+ export function serializeCookieValue(
789
1004
  name: string,
790
1005
  value: string,
791
1006
  options: CookieOptions = {},
@@ -812,20 +1027,12 @@ export interface CreateUseFunctionOptions<TEnv> {
812
1027
  getContext: () => RequestContext<TEnv>;
813
1028
  }
814
1029
 
815
- /**
816
- * Create the use() function for loader and handle composition.
817
- *
818
- * This is the unified implementation used by both RequestContext and HandlerContext.
819
- * - For loaders: executes and memoizes loader functions
820
- * - For handles: returns a push function to add handle data
821
- */
822
1030
  export function createUseFunction<TEnv>(
823
1031
  options: CreateUseFunctionOptions<TEnv>,
824
1032
  ): RequestContext["use"] {
825
1033
  const { handleStore, loaderPromises, getContext } = options;
826
1034
 
827
1035
  return ((item: LoaderDefinition<any, any> | Handle<any, any>) => {
828
- // Handle case: return a push function
829
1036
  if (isHandle(item)) {
830
1037
  const handle = item;
831
1038
  const ctx = getContext();
@@ -838,30 +1045,24 @@ export function createUseFunction<TEnv>(
838
1045
  );
839
1046
  }
840
1047
 
841
- // Return a push function bound to this handle and segment
842
- return (
843
- dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>),
844
- ) => {
845
- // If it's a function, call it immediately to get the promise
846
- const valueOrPromise =
847
- typeof dataOrFn === "function"
848
- ? (dataOrFn as () => Promise<unknown>)()
849
- : dataOrFn;
850
-
851
- // Push directly - promises will be serialized by RSC and streamed
852
- handleStore.push(handle.$$id, segmentId, valueOrPromise);
853
- };
1048
+ return withDefer(
1049
+ (dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>)) => {
1050
+ const valueOrPromise =
1051
+ typeof dataOrFn === "function"
1052
+ ? (dataOrFn as () => Promise<unknown>)()
1053
+ : dataOrFn;
1054
+
1055
+ handleStore.push(handle.$$id, segmentId, valueOrPromise);
1056
+ },
1057
+ );
854
1058
  }
855
1059
 
856
- // Loader case
857
1060
  const loader = item as LoaderDefinition<any, any>;
858
1061
 
859
- // Return cached promise if already started
860
1062
  if (loaderPromises.has(loader.$$id)) {
861
1063
  return loaderPromises.get(loader.$$id);
862
1064
  }
863
1065
 
864
- // Get loader function - either from loader object or fetchable registry
865
1066
  let loaderFn = loader.fn;
866
1067
  if (!loaderFn) {
867
1068
  const fetchable = getFetchableLoader(loader.$$id);
@@ -878,24 +1079,36 @@ export function createUseFunction<TEnv>(
878
1079
 
879
1080
  const ctx = getContext();
880
1081
 
881
- // Create loader context with recursive use() support
1082
+ // Build the typed ctx.search the same way the render path
1083
+ // (createHandlerContext) and the fetchable-loader path (loader-fetch.ts) do:
1084
+ // parse the route's search schema over the cleaned searchParams. The base
1085
+ // RequestContext carries no `search` field, so reading `(ctx as any).search`
1086
+ // here always yielded {} — dropping typed search for action/dispatch loaders.
1087
+ const searchSchema = ctx._routeName
1088
+ ? getSearchSchema(ctx._routeName)
1089
+ : undefined;
1090
+ const loaderSearch = searchSchema
1091
+ ? parseSearchParams(ctx.searchParams, searchSchema)
1092
+ : {};
1093
+
882
1094
  const loaderCtx: LoaderContext<Record<string, string | undefined>, TEnv> = {
883
1095
  params: ctx.params,
884
1096
  routeParams: (ctx.params ?? {}) as Record<string, string>,
885
1097
  request: ctx.request,
886
1098
  searchParams: ctx.searchParams,
887
- search: (ctx as any).search ?? {},
1099
+ search: loaderSearch,
888
1100
  pathname: ctx.pathname,
889
1101
  url: ctx.url,
1102
+ originalUrl: ctx.originalUrl,
890
1103
  env: ctx.env as any,
891
- var: ctx.var as any,
1104
+ waitUntil: ctx.waitUntil.bind(ctx),
1105
+ executionContext: ctx.executionContext,
892
1106
  get: ctx.get as any,
893
- use: <TDep, TDepParams = any>(
1107
+ use: (<TDep, TDepParams = any>(
894
1108
  dep: LoaderDefinition<TDep, TDepParams>,
895
1109
  ): Promise<TDep> => {
896
- // Recursive call - will start dep loader if not already started
897
1110
  return ctx.use(dep);
898
- },
1111
+ }) as LoaderContext["use"],
899
1112
  method: "GET",
900
1113
  body: undefined,
901
1114
  reverse: createReverseFunction(
@@ -904,15 +1117,22 @@ export function createUseFunction<TEnv>(
904
1117
  ctx.params as Record<string, string>,
905
1118
  ctx._routeName ? isRouteRootScoped(ctx._routeName) : undefined,
906
1119
  ),
1120
+ rendered: () => {
1121
+ throw new Error(
1122
+ `ctx.rendered() is only available in DSL loaders (registered via loader() in urls()). ` +
1123
+ `It cannot be used from request-context loaders or server actions.`,
1124
+ );
1125
+ },
907
1126
  };
908
1127
 
909
- // Start loader execution with tracking
910
- const doneLoader = track(`loader:${loader.$$id}`, 2);
911
- const promise = Promise.resolve(loaderFn(loaderCtx)).finally(() => {
912
- doneLoader();
913
- });
1128
+ // Meter through the same unified phase API as the loader-resolution funnel
1129
+ // (observePhase), so a loader resolved via this base request-context ctx.use
1130
+ // co-emits the "loader:<id>" perf metric AND the "rango.loader" span — no
1131
+ // drift between the two ctx.use implementations.
1132
+ const promise = observePhase(PHASES.loader(loader.$$id), () =>
1133
+ Promise.resolve(loaderFn(loaderCtx)),
1134
+ );
914
1135
 
915
- // Memoize for subsequent calls
916
1136
  loaderPromises.set(loader.$$id, promise);
917
1137
 
918
1138
  return promise;