@rangojs/router 0.5.0 → 0.5.1

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 (405) hide show
  1. package/dist/types/browser/prefetch/cache.d.ts +31 -2
  2. package/dist/types/route-definition/helpers-types.d.ts +5 -4
  3. package/dist/types/static-handler.d.ts +15 -1
  4. package/dist/types/urls/path-helper-types.d.ts +6 -7
  5. package/dist/types.backup/__internal.d.ts +127 -0
  6. package/dist/types.backup/bin/rango.d.ts +1 -0
  7. package/dist/types.backup/browser/action-coordinator.d.ts +57 -0
  8. package/dist/types.backup/browser/action-fence.d.ts +33 -0
  9. package/dist/types.backup/browser/app-shell.d.ts +34 -0
  10. package/dist/types.backup/browser/app-version.d.ts +6 -0
  11. package/dist/types.backup/browser/connection-warmup.d.ts +31 -0
  12. package/dist/types.backup/browser/cookie-name.d.ts +66 -0
  13. package/dist/types.backup/browser/event-controller.d.ts +221 -0
  14. package/dist/types.backup/browser/history-state.d.ts +26 -0
  15. package/dist/types.backup/browser/index.d.ts +1 -0
  16. package/dist/types.backup/browser/intercept-utils.d.ts +30 -0
  17. package/dist/types.backup/browser/invalidate-client-cache.d.ts +17 -0
  18. package/dist/types.backup/browser/link-interceptor.d.ts +43 -0
  19. package/dist/types.backup/browser/logging.d.ts +33 -0
  20. package/dist/types.backup/browser/merge-segment-loaders.d.ts +38 -0
  21. package/dist/types.backup/browser/navigation-bridge.d.ts +27 -0
  22. package/dist/types.backup/browser/navigation-client.d.ts +17 -0
  23. package/dist/types.backup/browser/navigation-store-handle.d.ts +25 -0
  24. package/dist/types.backup/browser/navigation-store.d.ts +95 -0
  25. package/dist/types.backup/browser/navigation-transaction.d.ts +75 -0
  26. package/dist/types.backup/browser/network-error-handler.d.ts +35 -0
  27. package/dist/types.backup/browser/partial-update.d.ts +61 -0
  28. package/dist/types.backup/browser/prefetch/cache.d.ts +183 -0
  29. package/dist/types.backup/browser/prefetch/fetch.d.ts +52 -0
  30. package/dist/types.backup/browser/prefetch/observer.d.ts +27 -0
  31. package/dist/types.backup/browser/prefetch/policy.d.ts +13 -0
  32. package/dist/types.backup/browser/prefetch/queue.d.ts +48 -0
  33. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +28 -0
  34. package/dist/types.backup/browser/rango-state.d.ts +52 -0
  35. package/dist/types.backup/browser/react/Link.d.ts +140 -0
  36. package/dist/types.backup/browser/react/NavigationProvider.d.ts +88 -0
  37. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +78 -0
  38. package/dist/types.backup/browser/react/context.d.ts +54 -0
  39. package/dist/types.backup/browser/react/filter-segment-order.d.ts +35 -0
  40. package/dist/types.backup/browser/react/index.d.ts +1 -0
  41. package/dist/types.backup/browser/react/location-state-shared.d.ts +162 -0
  42. package/dist/types.backup/browser/react/location-state.d.ts +29 -0
  43. package/dist/types.backup/browser/react/mount-context.d.ts +23 -0
  44. package/dist/types.backup/browser/react/nonce-context.d.ts +14 -0
  45. package/dist/types.backup/browser/react/shallow-equal.d.ts +5 -0
  46. package/dist/types.backup/browser/react/use-action.d.ts +61 -0
  47. package/dist/types.backup/browser/react/use-handle.d.ts +21 -0
  48. package/dist/types.backup/browser/react/use-href.d.ts +32 -0
  49. package/dist/types.backup/browser/react/use-link-status.d.ts +36 -0
  50. package/dist/types.backup/browser/react/use-mount.d.ts +24 -0
  51. package/dist/types.backup/browser/react/use-navigation.d.ts +15 -0
  52. package/dist/types.backup/browser/react/use-params.d.ts +21 -0
  53. package/dist/types.backup/browser/react/use-pathname.d.ts +13 -0
  54. package/dist/types.backup/browser/react/use-reverse.d.ts +40 -0
  55. package/dist/types.backup/browser/react/use-router.d.ts +23 -0
  56. package/dist/types.backup/browser/react/use-search-params.d.ts +19 -0
  57. package/dist/types.backup/browser/react/use-segments.d.ts +29 -0
  58. package/dist/types.backup/browser/response-adapter.d.ts +58 -0
  59. package/dist/types.backup/browser/rsc-router.d.ts +141 -0
  60. package/dist/types.backup/browser/scroll-restoration.d.ts +103 -0
  61. package/dist/types.backup/browser/segment-reconciler.d.ts +74 -0
  62. package/dist/types.backup/browser/segment-structure-assert.d.ts +16 -0
  63. package/dist/types.backup/browser/server-action-bridge.d.ts +29 -0
  64. package/dist/types.backup/browser/types.d.ts +530 -0
  65. package/dist/types.backup/browser/validate-redirect-origin.d.ts +28 -0
  66. package/dist/types.backup/build/collect-fallback-refs.d.ts +5 -0
  67. package/dist/types.backup/build/generate-manifest.d.ts +100 -0
  68. package/dist/types.backup/build/generate-route-types.d.ts +8 -0
  69. package/dist/types.backup/build/index.d.ts +21 -0
  70. package/dist/types.backup/build/prefix-tree-utils.d.ts +56 -0
  71. package/dist/types.backup/build/route-trie.d.ts +89 -0
  72. package/dist/types.backup/build/route-types/ast-helpers.d.ts +3 -0
  73. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +13 -0
  74. package/dist/types.backup/build/route-types/codegen.d.ts +16 -0
  75. package/dist/types.backup/build/route-types/include-resolution.d.ts +74 -0
  76. package/dist/types.backup/build/route-types/param-extraction.d.ts +13 -0
  77. package/dist/types.backup/build/route-types/per-module-writer.d.ts +18 -0
  78. package/dist/types.backup/build/route-types/router-processing.d.ts +82 -0
  79. package/dist/types.backup/build/route-types/scan-filter.d.ts +17 -0
  80. package/dist/types.backup/build/route-types/source-scan.d.ts +13 -0
  81. package/dist/types.backup/build/runtime-discovery.d.ts +24 -0
  82. package/dist/types.backup/cache/background-task.d.ts +21 -0
  83. package/dist/types.backup/cache/cache-error.d.ts +71 -0
  84. package/dist/types.backup/cache/cache-key-utils.d.ts +35 -0
  85. package/dist/types.backup/cache/cache-policy.d.ts +59 -0
  86. package/dist/types.backup/cache/cache-runtime.d.ts +51 -0
  87. package/dist/types.backup/cache/cache-scope.d.ts +134 -0
  88. package/dist/types.backup/cache/cache-tag.d.ts +79 -0
  89. package/dist/types.backup/cache/cf/cf-base64.d.ts +4 -0
  90. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +105 -0
  91. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +481 -0
  92. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +300 -0
  93. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +22 -0
  94. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  95. package/dist/types.backup/cache/cf/index.d.ts +3 -0
  96. package/dist/types.backup/cache/document-cache.d.ts +69 -0
  97. package/dist/types.backup/cache/handle-capture.d.ts +23 -0
  98. package/dist/types.backup/cache/handle-snapshot.d.ts +39 -0
  99. package/dist/types.backup/cache/index.d.ts +7 -0
  100. package/dist/types.backup/cache/memory-segment-store.d.ts +163 -0
  101. package/dist/types.backup/cache/profile-registry.d.ts +40 -0
  102. package/dist/types.backup/cache/read-through-swr.d.ts +60 -0
  103. package/dist/types.backup/cache/segment-codec.d.ts +78 -0
  104. package/dist/types.backup/cache/shell-snapshot.d.ts +162 -0
  105. package/dist/types.backup/cache/tag-invalidation.d.ts +74 -0
  106. package/dist/types.backup/cache/taint.d.ts +71 -0
  107. package/dist/types.backup/cache/types.d.ts +407 -0
  108. package/dist/types.backup/cache/vercel/index.d.ts +1 -0
  109. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +267 -0
  110. package/dist/types.backup/client.d.ts +184 -0
  111. package/dist/types.backup/client.rsc.d.ts +39 -0
  112. package/dist/types.backup/cloudflare/index.d.ts +7 -0
  113. package/dist/types.backup/cloudflare/tracing.d.ts +53 -0
  114. package/dist/types.backup/component-utils.d.ts +46 -0
  115. package/dist/types.backup/components/DefaultDocument.d.ts +13 -0
  116. package/dist/types.backup/context-var.d.ts +84 -0
  117. package/dist/types.backup/debug.d.ts +57 -0
  118. package/dist/types.backup/decode-loader-results.d.ts +5 -0
  119. package/dist/types.backup/default-error-boundary.d.ts +10 -0
  120. package/dist/types.backup/defer.d.ts +89 -0
  121. package/dist/types.backup/deps/browser.d.ts +1 -0
  122. package/dist/types.backup/deps/html-stream-client.d.ts +1 -0
  123. package/dist/types.backup/deps/html-stream-server.d.ts +1 -0
  124. package/dist/types.backup/deps/rsc.d.ts +1 -0
  125. package/dist/types.backup/deps/ssr.d.ts +1 -0
  126. package/dist/types.backup/encode-kv.d.ts +35 -0
  127. package/dist/types.backup/errors.d.ts +226 -0
  128. package/dist/types.backup/escape-script.d.ts +44 -0
  129. package/dist/types.backup/handle.d.ts +93 -0
  130. package/dist/types.backup/handles/MetaTags.d.ts +17 -0
  131. package/dist/types.backup/handles/Scripts.d.ts +38 -0
  132. package/dist/types.backup/handles/breadcrumbs.d.ts +43 -0
  133. package/dist/types.backup/handles/deferred-resolution.d.ts +53 -0
  134. package/dist/types.backup/handles/is-thenable.d.ts +12 -0
  135. package/dist/types.backup/handles/meta.d.ts +43 -0
  136. package/dist/types.backup/handles/script.d.ts +139 -0
  137. package/dist/types.backup/host/cookie-handler.d.ts +8 -0
  138. package/dist/types.backup/host/errors.d.ts +40 -0
  139. package/dist/types.backup/host/index.d.ts +33 -0
  140. package/dist/types.backup/host/pattern-matcher.d.ts +30 -0
  141. package/dist/types.backup/host/router.d.ts +12 -0
  142. package/dist/types.backup/host/testing.d.ts +41 -0
  143. package/dist/types.backup/host/types.d.ts +148 -0
  144. package/dist/types.backup/host/utils.d.ts +20 -0
  145. package/dist/types.backup/href-client.d.ts +214 -0
  146. package/dist/types.backup/index.d.ts +112 -0
  147. package/dist/types.backup/index.rsc.d.ts +51 -0
  148. package/dist/types.backup/internal-debug.d.ts +1 -0
  149. package/dist/types.backup/loader-store.d.ts +193 -0
  150. package/dist/types.backup/loader.d.ts +18 -0
  151. package/dist/types.backup/loader.rsc.d.ts +18 -0
  152. package/dist/types.backup/missing-id-error.d.ts +1 -0
  153. package/dist/types.backup/outlet-context.d.ts +12 -0
  154. package/dist/types.backup/outlet-provider.d.ts +12 -0
  155. package/dist/types.backup/prerender/build-shell-capture.d.ts +104 -0
  156. package/dist/types.backup/prerender/param-hash.d.ts +6 -0
  157. package/dist/types.backup/prerender/shell-manifest-key.d.ts +18 -0
  158. package/dist/types.backup/prerender/store.d.ts +62 -0
  159. package/dist/types.backup/prerender.d.ts +292 -0
  160. package/dist/types.backup/redirect-origin.d.ts +55 -0
  161. package/dist/types.backup/regex-escape.d.ts +6 -0
  162. package/dist/types.backup/render-error-thrower.d.ts +13 -0
  163. package/dist/types.backup/response-utils.d.ts +35 -0
  164. package/dist/types.backup/reverse.d.ts +206 -0
  165. package/dist/types.backup/root-error-boundary.d.ts +32 -0
  166. package/dist/types.backup/route-content-wrapper.d.ts +40 -0
  167. package/dist/types.backup/route-definition/dsl-helpers.d.ts +130 -0
  168. package/dist/types.backup/route-definition/helper-factories.d.ts +22 -0
  169. package/dist/types.backup/route-definition/helpers-types.d.ts +392 -0
  170. package/dist/types.backup/route-definition/index.d.ts +7 -0
  171. package/dist/types.backup/route-definition/redirect.d.ts +48 -0
  172. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +19 -0
  173. package/dist/types.backup/route-definition/use-item-types.d.ts +1 -0
  174. package/dist/types.backup/route-definition.d.ts +1 -0
  175. package/dist/types.backup/route-map-builder.d.ts +127 -0
  176. package/dist/types.backup/route-name.d.ts +27 -0
  177. package/dist/types.backup/route-types.d.ts +172 -0
  178. package/dist/types.backup/router/basename.d.ts +10 -0
  179. package/dist/types.backup/router/content-negotiation.d.ts +91 -0
  180. package/dist/types.backup/router/debug-manifest.d.ts +7 -0
  181. package/dist/types.backup/router/error-handling.d.ts +76 -0
  182. package/dist/types.backup/router/find-match.d.ts +19 -0
  183. package/dist/types.backup/router/handler-context.d.ts +41 -0
  184. package/dist/types.backup/router/instrument.d.ts +161 -0
  185. package/dist/types.backup/router/intercept-resolution.d.ts +79 -0
  186. package/dist/types.backup/router/lazy-includes.d.ts +26 -0
  187. package/dist/types.backup/router/loader-resolution.d.ts +63 -0
  188. package/dist/types.backup/router/logging.d.ts +41 -0
  189. package/dist/types.backup/router/manifest.d.ts +8 -0
  190. package/dist/types.backup/router/match-api.d.ts +19 -0
  191. package/dist/types.backup/router/match-context.d.ts +184 -0
  192. package/dist/types.backup/router/match-handlers.d.ts +49 -0
  193. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +113 -0
  194. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +113 -0
  195. package/dist/types.backup/router/match-middleware/cache-store.d.ts +112 -0
  196. package/dist/types.backup/router/match-middleware/index.d.ts +80 -0
  197. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +116 -0
  198. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +94 -0
  199. package/dist/types.backup/router/match-pipelines.d.ts +103 -0
  200. package/dist/types.backup/router/match-result.d.ts +114 -0
  201. package/dist/types.backup/router/metrics.d.ts +6 -0
  202. package/dist/types.backup/router/middleware-types.d.ts +74 -0
  203. package/dist/types.backup/router/middleware.d.ts +116 -0
  204. package/dist/types.backup/router/navigation-snapshot.d.ts +22 -0
  205. package/dist/types.backup/router/params-util.d.ts +8 -0
  206. package/dist/types.backup/router/parse-pattern.d.ts +38 -0
  207. package/dist/types.backup/router/pattern-matching.d.ts +169 -0
  208. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +27 -0
  209. package/dist/types.backup/router/prefetch-limits.d.ts +20 -0
  210. package/dist/types.backup/router/prerender-match.d.ts +50 -0
  211. package/dist/types.backup/router/preview-match.d.ts +22 -0
  212. package/dist/types.backup/router/request-classification.d.ts +104 -0
  213. package/dist/types.backup/router/revalidation.d.ts +57 -0
  214. package/dist/types.backup/router/route-snapshot.d.ts +112 -0
  215. package/dist/types.backup/router/router-context.d.ts +137 -0
  216. package/dist/types.backup/router/router-interfaces.d.ts +432 -0
  217. package/dist/types.backup/router/router-options.d.ts +738 -0
  218. package/dist/types.backup/router/router-registry.d.ts +15 -0
  219. package/dist/types.backup/router/segment-resolution/fresh.d.ts +55 -0
  220. package/dist/types.backup/router/segment-resolution/helpers.d.ts +93 -0
  221. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +33 -0
  222. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +44 -0
  223. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +90 -0
  224. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +53 -0
  225. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +85 -0
  226. package/dist/types.backup/router/segment-resolution/static-store.d.ts +17 -0
  227. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  228. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +28 -0
  229. package/dist/types.backup/router/segment-resolution.d.ts +3 -0
  230. package/dist/types.backup/router/segment-wrappers.d.ts +53 -0
  231. package/dist/types.backup/router/state-cookie-name.d.ts +1 -0
  232. package/dist/types.backup/router/substitute-pattern-params.d.ts +23 -0
  233. package/dist/types.backup/router/telemetry-otel.d.ts +113 -0
  234. package/dist/types.backup/router/telemetry.d.ts +215 -0
  235. package/dist/types.backup/router/timeout.d.ts +68 -0
  236. package/dist/types.backup/router/tracing.d.ts +125 -0
  237. package/dist/types.backup/router/trie-matching.d.ts +32 -0
  238. package/dist/types.backup/router/types.d.ts +98 -0
  239. package/dist/types.backup/router/url-params.d.ts +26 -0
  240. package/dist/types.backup/router.d.ts +7 -0
  241. package/dist/types.backup/rsc/capture-queue.d.ts +6 -0
  242. package/dist/types.backup/rsc/full-payload.d.ts +22 -0
  243. package/dist/types.backup/rsc/handler-context.d.ts +31 -0
  244. package/dist/types.backup/rsc/handler.d.ts +9 -0
  245. package/dist/types.backup/rsc/helpers.d.ts +213 -0
  246. package/dist/types.backup/rsc/index.d.ts +17 -0
  247. package/dist/types.backup/rsc/json-route-result.d.ts +20 -0
  248. package/dist/types.backup/rsc/loader-fetch.d.ts +14 -0
  249. package/dist/types.backup/rsc/manifest-init.d.ts +18 -0
  250. package/dist/types.backup/rsc/nonce.d.ts +28 -0
  251. package/dist/types.backup/rsc/origin-guard.d.ts +50 -0
  252. package/dist/types.backup/rsc/progressive-enhancement.d.ts +19 -0
  253. package/dist/types.backup/rsc/redirect-guard.d.ts +35 -0
  254. package/dist/types.backup/rsc/response-cache-serve.d.ts +46 -0
  255. package/dist/types.backup/rsc/response-error.d.ts +19 -0
  256. package/dist/types.backup/rsc/response-route-handler.d.ts +29 -0
  257. package/dist/types.backup/rsc/rsc-rendering.d.ts +23 -0
  258. package/dist/types.backup/rsc/runtime-warnings.d.ts +22 -0
  259. package/dist/types.backup/rsc/server-action.d.ts +68 -0
  260. package/dist/types.backup/rsc/shell-build-manifest.d.ts +84 -0
  261. package/dist/types.backup/rsc/shell-capture-constants.d.ts +27 -0
  262. package/dist/types.backup/rsc/shell-capture.d.ts +374 -0
  263. package/dist/types.backup/rsc/shell-serve.d.ts +136 -0
  264. package/dist/types.backup/rsc/ssr-setup.d.ts +48 -0
  265. package/dist/types.backup/rsc/transition-gate.d.ts +27 -0
  266. package/dist/types.backup/rsc/types.d.ts +290 -0
  267. package/dist/types.backup/runtime-env.d.ts +1 -0
  268. package/dist/types.backup/search-params.d.ts +125 -0
  269. package/dist/types.backup/segment-content-promise.d.ts +13 -0
  270. package/dist/types.backup/segment-fragments.d.ts +56 -0
  271. package/dist/types.backup/segment-loader-promise.d.ts +22 -0
  272. package/dist/types.backup/segment-system.d.ts +84 -0
  273. package/dist/types.backup/serialize.d.ts +164 -0
  274. package/dist/types.backup/server/context.d.ts +494 -0
  275. package/dist/types.backup/server/cookie-parse.d.ts +10 -0
  276. package/dist/types.backup/server/cookie-store.d.ts +107 -0
  277. package/dist/types.backup/server/fetchable-loader-store.d.ts +20 -0
  278. package/dist/types.backup/server/handle-store.d.ts +100 -0
  279. package/dist/types.backup/server/loader-registry.d.ts +32 -0
  280. package/dist/types.backup/server/request-context.d.ts +596 -0
  281. package/dist/types.backup/server/root-layout.d.ts +3 -0
  282. package/dist/types.backup/server.d.ts +15 -0
  283. package/dist/types.backup/ssr/index.d.ts +233 -0
  284. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +3 -0
  285. package/dist/types.backup/ssr/preinit-client-references.d.ts +71 -0
  286. package/dist/types.backup/ssr/ssr-root.d.ts +69 -0
  287. package/dist/types.backup/static-handler.d.ts +57 -0
  288. package/dist/types.backup/testing/cache-status.d.ts +63 -0
  289. package/dist/types.backup/testing/collect-handle.d.ts +20 -0
  290. package/dist/types.backup/testing/dispatch.d.ts +123 -0
  291. package/dist/types.backup/testing/dom.entry.d.ts +15 -0
  292. package/dist/types.backup/testing/e2e/fixture.d.ts +37 -0
  293. package/dist/types.backup/testing/e2e/index.d.ts +30 -0
  294. package/dist/types.backup/testing/e2e/matchers.d.ts +17 -0
  295. package/dist/types.backup/testing/e2e/page-helpers.d.ts +62 -0
  296. package/dist/types.backup/testing/e2e/parity.d.ts +111 -0
  297. package/dist/types.backup/testing/e2e/server.d.ts +35 -0
  298. package/dist/types.backup/testing/flight-matchers.d.ts +55 -0
  299. package/dist/types.backup/testing/flight-normalize.d.ts +1 -0
  300. package/dist/types.backup/testing/flight-tree.d.ts +192 -0
  301. package/dist/types.backup/testing/flight.d.ts +115 -0
  302. package/dist/types.backup/testing/flight.entry.d.ts +27 -0
  303. package/dist/types.backup/testing/generated-routes.d.ts +66 -0
  304. package/dist/types.backup/testing/index.d.ts +52 -0
  305. package/dist/types.backup/testing/internal/context.d.ts +225 -0
  306. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +1 -0
  307. package/dist/types.backup/testing/internal/seed-vars.d.ts +30 -0
  308. package/dist/types.backup/testing/render-handler.d.ts +160 -0
  309. package/dist/types.backup/testing/render-route.d.ts +246 -0
  310. package/dist/types.backup/testing/run-loader.d.ts +186 -0
  311. package/dist/types.backup/testing/run-middleware.d.ts +132 -0
  312. package/dist/types.backup/testing/run-transition-when.d.ts +77 -0
  313. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  314. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  315. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  316. package/dist/types.backup/testing/vitest-stubs/version.d.ts +1 -0
  317. package/dist/types.backup/testing/vitest.d.ts +205 -0
  318. package/dist/types.backup/theme/ThemeProvider.d.ts +13 -0
  319. package/dist/types.backup/theme/ThemeScript.d.ts +45 -0
  320. package/dist/types.backup/theme/constants.d.ts +39 -0
  321. package/dist/types.backup/theme/index.d.ts +29 -0
  322. package/dist/types.backup/theme/theme-context.d.ts +21 -0
  323. package/dist/types.backup/theme/theme-script.d.ts +26 -0
  324. package/dist/types.backup/theme/types.d.ts +162 -0
  325. package/dist/types.backup/theme/use-theme.d.ts +8 -0
  326. package/dist/types.backup/types/boundaries.d.ts +93 -0
  327. package/dist/types.backup/types/cache-types.d.ts +191 -0
  328. package/dist/types.backup/types/error-types.d.ts +114 -0
  329. package/dist/types.backup/types/global-namespace.d.ts +90 -0
  330. package/dist/types.backup/types/handler-context.d.ts +658 -0
  331. package/dist/types.backup/types/index.d.ts +11 -0
  332. package/dist/types.backup/types/loader-types.d.ts +182 -0
  333. package/dist/types.backup/types/request-scope.d.ts +93 -0
  334. package/dist/types.backup/types/route-config.d.ts +105 -0
  335. package/dist/types.backup/types/route-entry.d.ts +95 -0
  336. package/dist/types.backup/types/segments.d.ts +234 -0
  337. package/dist/types.backup/types.d.ts +1 -0
  338. package/dist/types.backup/urls/include-helper.d.ts +17 -0
  339. package/dist/types.backup/urls/include-provider.d.ts +27 -0
  340. package/dist/types.backup/urls/index.d.ts +6 -0
  341. package/dist/types.backup/urls/path-helper-types.d.ts +197 -0
  342. package/dist/types.backup/urls/path-helper.d.ts +12 -0
  343. package/dist/types.backup/urls/pattern-types.d.ts +166 -0
  344. package/dist/types.backup/urls/response-types.d.ts +67 -0
  345. package/dist/types.backup/urls/type-extraction.d.ts +157 -0
  346. package/dist/types.backup/urls/urls-function.d.ts +24 -0
  347. package/dist/types.backup/urls.d.ts +1 -0
  348. package/dist/types.backup/use-loader.d.ts +150 -0
  349. package/dist/types.backup/vercel/index.d.ts +10 -0
  350. package/dist/types.backup/vercel/tracing.d.ts +70 -0
  351. package/dist/types.backup/vite/debug.d.ts +80 -0
  352. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +12 -0
  353. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +65 -0
  354. package/dist/types.backup/vite/discovery/discover-routers.d.ts +17 -0
  355. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +113 -0
  356. package/dist/types.backup/vite/discovery/gate-state.d.ts +79 -0
  357. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +24 -0
  358. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +32 -0
  359. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +22 -0
  360. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +40 -0
  361. package/dist/types.backup/vite/discovery/state.d.ts +162 -0
  362. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +15 -0
  363. package/dist/types.backup/vite/index.d.ts +11 -0
  364. package/dist/types.backup/vite/inject-client-debug.d.ts +56 -0
  365. package/dist/types.backup/vite/plugin-types.d.ts +298 -0
  366. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +6 -0
  367. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +40 -0
  368. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +35 -0
  369. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  370. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +18 -0
  371. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +37 -0
  372. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  373. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  374. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  375. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  376. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +29 -0
  377. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +6 -0
  378. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +25 -0
  379. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +20 -0
  380. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +20 -0
  381. package/dist/types.backup/vite/plugins/vercel-output.d.ts +85 -0
  382. package/dist/types.backup/vite/plugins/version-injector.d.ts +21 -0
  383. package/dist/types.backup/vite/plugins/version-plugin.d.ts +19 -0
  384. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +36 -0
  385. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  386. package/dist/types.backup/vite/rango.d.ts +29 -0
  387. package/dist/types.backup/vite/router-discovery.d.ts +23 -0
  388. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +64 -0
  389. package/dist/types.backup/vite/utils/banner.d.ts +2 -0
  390. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +28 -0
  391. package/dist/types.backup/vite/utils/client-chunks.d.ts +55 -0
  392. package/dist/types.backup/vite/utils/directive-prologue.d.ts +16 -0
  393. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +37 -0
  394. package/dist/types.backup/vite/utils/manifest-utils.d.ts +7 -0
  395. package/dist/types.backup/vite/utils/package-resolution.d.ts +6 -0
  396. package/dist/types.backup/vite/utils/prerender-utils.d.ts +32 -0
  397. package/dist/types.backup/vite/utils/shared-utils.d.ts +55 -0
  398. package/dist/vite/index.js +1 -1
  399. package/package.json +1 -1
  400. package/skills/parallel/SKILL.md +1 -1
  401. package/src/browser/prefetch/cache.ts +53 -9
  402. package/src/browser/prefetch/fetch.ts +83 -2
  403. package/src/route-definition/helpers-types.ts +5 -3
  404. package/src/static-handler.ts +18 -2
  405. package/src/urls/path-helper-types.ts +9 -10
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Producer B: build-time PPR shell capture for Prerender+ppr routes (#699).
3
+ *
4
+ * Runs in the RSC realm of the build's temp server, AFTER all bundles are
5
+ * written (the prelude embeds built client asset URLs — bootstrap module,
6
+ * chunk preloads — that only exist post-client-build). The capture core is
7
+ * producer A's, verbatim: deriveShellCaptureContext (mask funnel, liveness,
8
+ * snapshot recording, implicit doc-cache scope) + captureAndStoreShell (gates,
9
+ * quiesce, tags union, putShell barrier). Build capture first replays global
10
+ * and route middleware with a synthetic build request context
11
+ * (`ctx.build === true`, inert `ctx.waitUntil()`); middleware can seed vars or
12
+ * call `ctx.dynamic()` to skip this URL. The sink is an entry collector instead
13
+ * of a runtime store.
14
+ *
15
+ * The capture's match() re-enters withCacheLookup, HITs the in-realm prerender
16
+ * store seeded from the just-collected Flight payloads, and REPLAYS the
17
+ * build-time segments — no handler execution, exactly the runtime composition
18
+ * path (#697). Live-lane loaders mask into holes; bake-lane loaders execute
19
+ * under the build context and refuse the capture if they reject or read
20
+ * identity, the same eligibility rules as at runtime.
21
+ */
22
+ import type { ShellCacheEntry } from "../cache/types.js";
23
+ import type { SSRModule } from "../rsc/types.js";
24
+ import { type ResolvedPprConfig } from "../rsc/shell-serve.js";
25
+ /**
26
+ * Normalize a collected truthy `ppr` path option into the SAME concrete
27
+ * policy the runtime serve path derives — through resolvePprConfig itself,
28
+ * over a synthetic route entry — so the build-stamped ttl default can never
29
+ * drift from the serve-side one.
30
+ */
31
+ export declare function resolveBuildPprConfig(ppr: true | {
32
+ ttl?: number;
33
+ swr?: number;
34
+ tags?: string[];
35
+ captureTimeout?: number;
36
+ }): ResolvedPprConfig;
37
+ export interface BuildShellCaptureOptions {
38
+ /** The router instance (from RouterRegistry in the same realm). */
39
+ router: any;
40
+ /** Concrete URL path to capture (e.g. "/pp/alpha"). */
41
+ urlPath: string;
42
+ /**
43
+ * The candidate's trie route key. The capture's match() must land on THIS
44
+ * route: the phase sweeps every registered router, and a router that does
45
+ * not own the URL matches something else (its catch-all, a 404 shape) —
46
+ * that capture must not be baked.
47
+ */
48
+ routeName: string;
49
+ /** Shell store key to stamp into the descriptor (host-free at build). */
50
+ key: string;
51
+ ttl?: number;
52
+ swr?: number;
53
+ /** The route's static ppr.tags (the capture unions render-recorded tags). */
54
+ tags?: string[];
55
+ /**
56
+ * The route's resolved snapshot size cap (ResolvedPprConfig.maxSnapshotBytes)
57
+ * — build captures apply the same over-cap skip as runtime captures, so a
58
+ * raised per-route cap behaves identically across both producers.
59
+ */
60
+ maxSnapshotBytes?: number;
61
+ /**
62
+ * The route's `ppr.captureTimeout` (ms) — producer B honors the same settle
63
+ * budget as the runtime capture. Build has no waitUntil lifetime bound, so
64
+ * the option is the only ceiling here.
65
+ */
66
+ captureTimeout?: number;
67
+ /** Build-time env bindings (rango plugin buildEnv), if configured. */
68
+ buildEnv?: unknown;
69
+ /**
70
+ * The MAIN build's version (the version plugin's value folded into the
71
+ * shipped worker) — NOT the temp server's own version-plugin value. The
72
+ * serve-side isValidShellHit gate compares entry.buildVersion against the
73
+ * running worker's ctx.version; stamping the temp server's would make every
74
+ * build entry an eternal MISS.
75
+ */
76
+ buildVersion: string;
77
+ /**
78
+ * The SSR half, composed by the plugin from the temp server's SSR
79
+ * environment runner (react-dom/static prerender + Flight client), with the
80
+ * bootstrap script content overridden to the BUILT client entry URL.
81
+ */
82
+ captureShellHTML: NonNullable<SSRModule["captureShellHTML"]>;
83
+ /** Verbose per-attempt breadcrumbs (build log). */
84
+ debug?: boolean;
85
+ }
86
+ export interface BuildShellCaptureResult {
87
+ outcome: "stored" | "no-shell" | "redirect" | "refused"
88
+ /** Middleware/handler opted this URL out of PPR shell capture. */
89
+ | "dynamic"
90
+ /** The router swept does not own this URL — try the next one. */
91
+ | "route-mismatch";
92
+ /** Present iff outcome === "stored". */
93
+ entry?: ShellCacheEntry;
94
+ /** The putShell-barrier tag union (static ppr.tags + render-recorded). */
95
+ tags?: string[];
96
+ /** On route-mismatch: what this router's match actually landed on. */
97
+ matchedRouteName?: string;
98
+ }
99
+ /**
100
+ * Capture the PPR shell for one prerendered URL at build time. Retries once
101
+ * in place on `no-shell` (the first attempt warms the temp server's SSR/Flight
102
+ * transform graph, mirroring producer A's cold-start retry — same delay).
103
+ */
104
+ export declare function captureShellForBuild(opts: BuildShellCaptureOptions): Promise<BuildShellCaptureResult>;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Deterministic param hashing for prerender storage keys.
3
+ * Used at build time and runtime; both must produce identical hashes.
4
+ * DJB2-based; works in all JS environments without crypto imports.
5
+ */
6
+ export declare function hashParams(params: Record<string, string>): string;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Build shell manifest key, shared by the producer (the build's shell
3
+ * prerender phase, vite/discovery/shell-prerender-phase.ts) and the consumer
4
+ * (the runtime read-through, rsc/shell-build-manifest.ts) so the format
5
+ * cannot drift. Dependency-free: the producer runs node-side in the plugin,
6
+ * the consumer in the RSC runtime.
7
+ *
8
+ * PATHNAME-ONLY by design. Host-free because the build knows no request
9
+ * host. Router-free because the router id ($$id) is a hash of
10
+ * filePath:lineNumber of the TRANSFORMED source, which differs between the
11
+ * discovery temp server's dev-style transform chain and the main build's —
12
+ * a temp-realm router id can never be looked up by the shipped worker. The
13
+ * producer instead detects pathname collisions across routers at build time
14
+ * and declines both entries (loudly), keeping the key unambiguous. This is
15
+ * a manifest namespace, never a store keyspace: the runtime shell key
16
+ * (host + pathname + search + ":shell") stays untouched.
17
+ */
18
+ export declare function buildShellManifestKey(pathname: string): string;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Prerender Store — reads pre-rendered segment data from the worker bundle.
3
+ * Manifest module (injected via globalThis.__loadPrerenderManifestModule)
4
+ * contains key-to-specifier map and loadPrerenderAsset for import() resolution.
5
+ */
6
+ import type { SerializedSegmentData } from "../cache/types.js";
7
+ export interface PrerenderEntry {
8
+ segments: SerializedSegmentData[];
9
+ /** RSC-encoded handle map (see handle-snapshot.ts encodeHandles); "" when the
10
+ * route pushed no handles. Encoded so Promise/ReactNode handle values survive
11
+ * the JSON-serialized build artifact / dev wire, identical to the runtime cache. */
12
+ handles: string;
13
+ }
14
+ export interface PrerenderStore {
15
+ get(routeName: string, paramHash: string, meta?: {
16
+ pathname: string;
17
+ isPassthroughRoute?: boolean;
18
+ }): PrerenderEntry | null | Promise<PrerenderEntry | null>;
19
+ }
20
+ export interface StaticEntry {
21
+ encoded: string;
22
+ /** RSC-encoded single-segment handle data (see encodeHandleValue); "" when the
23
+ * Static handler pushed no handles. */
24
+ handles: string;
25
+ }
26
+ export interface StaticStore {
27
+ get(handlerId: string): Promise<StaticEntry | null>;
28
+ }
29
+ interface PrerenderManifestModule {
30
+ default: Record<string, string>;
31
+ loadPrerenderAsset: (specifier: string) => Promise<{
32
+ default: PrerenderEntry;
33
+ }>;
34
+ }
35
+ declare global {
36
+ var __loadPrerenderManifestModule: (() => Promise<PrerenderManifestModule>) | undefined;
37
+ var __STATIC_MANIFEST: Record<string, () => Promise<{
38
+ default: string | StaticEntry;
39
+ }>> | undefined;
40
+ var __PRERENDER_DEV_URL: string | undefined;
41
+ }
42
+ /**
43
+ * Create a dev-mode prerender store that fetches on-demand from the
44
+ * Vite dev server's /__rsc_prerender endpoint (runs in Node.js where
45
+ * node:fs works, unlike workerd).
46
+ */
47
+ export declare function createDevPrerenderStore(devUrl: string): PrerenderStore;
48
+ /**
49
+ * Create a prerender store.
50
+ * Dev mode: on-demand fetch from Vite dev server (node:fs works there).
51
+ * Production: backed by globalThis.__loadPrerenderManifestModule which lazily
52
+ * loads the manifest module on first access.
53
+ * Returns null if no prerender data is available.
54
+ */
55
+ export declare function createPrerenderStore(): PrerenderStore | null;
56
+ /**
57
+ * Create a static segment store.
58
+ * Production only: backed by globalThis.__STATIC_MANIFEST injected at build time.
59
+ * Returns null if no static data is available (dev mode or no Static handlers).
60
+ */
61
+ export declare function createStaticStore(): StaticStore | null;
62
+ export {};
@@ -0,0 +1,292 @@
1
+ /**
2
+ * Pre-render handler definition for build-time rendering of route segments.
3
+ *
4
+ * Prerender wraps a handler so that in production (phase 2)
5
+ * it can be pre-rendered at build time and served as a static Flight payload.
6
+ * In dev mode (phase 1), it behaves as a normal handler — the handler runs
7
+ * on every request just like a regular path() handler.
8
+ *
9
+ * The $$id is auto-generated by the Vite exposeInternalIds plugin
10
+ * based on file path and export name. No manual naming required.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * // Static page — no params
15
+ * export const DocsPage = Prerender(async (ctx) => {
16
+ * return <div>Documentation</div>;
17
+ * });
18
+ *
19
+ * // Dynamic page — params first, handler second
20
+ * export const DocsArticle = Prerender(
21
+ * async () => [{ slug: "getting-started" }, { slug: "api-reference" }],
22
+ * async (ctx) => {
23
+ * return <div>{ctx.params.slug}</div>;
24
+ * }
25
+ * );
26
+ * ```
27
+ */
28
+ import type { ReactNode } from "react";
29
+ import type { Handler, HandlerContext, DefaultEnv, ExtractParams } from "./types.js";
30
+ import type { Handle } from "./handle.js";
31
+ import type { HandlePush } from "./defer.js";
32
+ import type { ContextVar } from "./context-var.js";
33
+ import type { ReverseFunction } from "./reverse.js";
34
+ import type { DefaultReverseRouteMap } from "./types/global-namespace.js";
35
+ import type { UseItems, HandlerUseItem } from "./route-types.js";
36
+ /**
37
+ * Reverse function for build contexts (BuildContext, StaticBuildContext, GetParamsContext).
38
+ * Global names get full autocomplete and param validation from the generated route map.
39
+ * Local `.name` calls are accepted but not validated (the include() scope is unknown
40
+ * at the type level).
41
+ */
42
+ type BuildReverseFunction = [DefaultReverseRouteMap] extends [
43
+ Record<string, string>
44
+ ] ? (name: string, params?: Record<string, string>, search?: Record<string, unknown>) => string : // Generated route map available — typed globals + permissive locals
45
+ ReverseFunction<DefaultReverseRouteMap> & {
46
+ (name: `.${string}`, params?: Record<string, string>, search?: Record<string, unknown>): string;
47
+ };
48
+ /**
49
+ * Default route map for Prerender named route resolution.
50
+ * Uses GeneratedRouteMap (from gen file) to avoid circular dependencies.
51
+ */
52
+ type DefaultPrerenderRouteMap = keyof Rango.GeneratedRouteMap extends never ? {} : Rango.GeneratedRouteMap;
53
+ /** Extract params from a route map entry (string pattern or { path } object). */
54
+ type ExtractParamsFromEntry<TEntry> = TEntry extends string ? ExtractParams<TEntry> : TEntry extends {
55
+ readonly path: infer P extends string;
56
+ } ? ExtractParams<P> : Record<string, string>;
57
+ /**
58
+ * Resolve params from Prerender's type parameter.
59
+ * Accepts named routes (global or .local) and explicit param objects.
60
+ *
61
+ * Resolution order:
62
+ * 1. ".local" string → look up in TRouteMap
63
+ * 2. Global route name string → look up in DefaultPrerenderRouteMap
64
+ * 3. Record<string, any> object → use as-is (explicit params)
65
+ * 4. Fallback → {}
66
+ */
67
+ type ResolvePrerenderParams<T, TRouteMap extends {} = DefaultPrerenderRouteMap> = T extends `.${infer Local}` ? Local extends keyof TRouteMap ? ExtractParamsFromEntry<TRouteMap[Local]> : Record<string, string> : T extends keyof DefaultPrerenderRouteMap ? ExtractParamsFromEntry<DefaultPrerenderRouteMap[T]> : T extends Record<string, any> ? T : {};
68
+ export interface PrerenderOptions {
69
+ /**
70
+ * Maximum number of param sets to render in parallel (default: 1).
71
+ * Only applies to dynamic Prerender handlers with getParams().
72
+ * Set to higher values to speed up builds with many routes.
73
+ *
74
+ * @example
75
+ * ```typescript
76
+ * export const BlogPost = Prerender(
77
+ * async () => allPosts.map(p => ({ slug: p.slug })),
78
+ * async (ctx) => <PostPage slug={ctx.params.slug} />,
79
+ * { concurrency: 4 },
80
+ * );
81
+ * ```
82
+ */
83
+ concurrency?: number;
84
+ }
85
+ /**
86
+ * Context passed to Prerender() handlers at build time.
87
+ * Has a synthetic URL from getParams, params, pathname, and optionally env.
88
+ * No request, headers, cookies.
89
+ */
90
+ export interface BuildContext<TParams> {
91
+ /** Params extracted from the route pattern (populated from getParams). */
92
+ params: TParams;
93
+ /** True during build-time pre-rendering, false during passthrough live render. */
94
+ build: true;
95
+ /**
96
+ * True when running in Vite dev mode (on-demand prerender), false during
97
+ * production `vite build`. Use this to branch on runtime mode without
98
+ * changing build semantics.
99
+ */
100
+ dev: boolean;
101
+ /**
102
+ * Build-time environment bindings (KV, D1, etc.) supplied by the Vite plugin.
103
+ * Only available when `buildEnv` is configured in rango() options.
104
+ * Throws with a clear error if not configured.
105
+ *
106
+ * This is NOT the live request env — it is shared across all prerender
107
+ * invocations for the build.
108
+ */
109
+ env: DefaultEnv;
110
+ /** Read a variable set by getParams or a parent handler. */
111
+ get: {
112
+ <T>(contextVar: ContextVar<T>): T | undefined;
113
+ (key: string): any;
114
+ };
115
+ /** Set a variable readable by child layouts and parallels. */
116
+ set: {
117
+ <T>(contextVar: ContextVar<T>, value: T): void;
118
+ (key: string, value: any): void;
119
+ };
120
+ /**
121
+ * Push handle data (frozen into pre-rendered output at build time). Returns
122
+ * the full push function, including `.defer()` — a deferred slot resolved by
123
+ * a deep async component during the prerender render is awaited before the
124
+ * artifact is baked (resolve-by-default), so the baked output holds the
125
+ * resolved value.
126
+ */
127
+ use: <T>(handle: Handle<T>) => HandlePush<T>;
128
+ /** Synthetic URL built from pattern + params (no real request). */
129
+ url: URL;
130
+ /** Pathname portion of the synthetic URL. */
131
+ pathname: string;
132
+ /** URLSearchParams from the synthetic URL (always empty for prerender). */
133
+ searchParams: URLSearchParams;
134
+ /** Typed search params — always {} for prerender (no real query string). */
135
+ search: {};
136
+ /** URL generation by route name. */
137
+ reverse: BuildReverseFunction;
138
+ /**
139
+ * Signal that this param set should not produce a local prerender artifact.
140
+ * At runtime the live handler runs instead. Only valid on routes wrapped
141
+ * with `Passthrough()`.
142
+ */
143
+ passthrough: () => PrerenderPassthroughResult;
144
+ }
145
+ /**
146
+ * Context passed to Static() handlers at build time.
147
+ * No URL, no params, no pathname — just renders content.
148
+ */
149
+ export interface StaticBuildContext {
150
+ /** Always true for Static handlers at build time. */
151
+ build: true;
152
+ /**
153
+ * True when running in Vite dev mode, false during production build.
154
+ */
155
+ dev: boolean;
156
+ /**
157
+ * Build-time environment bindings supplied by the Vite plugin.
158
+ * Only available when `buildEnv` is configured in rango() options.
159
+ */
160
+ env: DefaultEnv;
161
+ /** Read a variable (available for type consistency with BuildContext). */
162
+ get: {
163
+ <T>(contextVar: ContextVar<T>): T | undefined;
164
+ (key: string): any;
165
+ };
166
+ /** Set a variable (available for type consistency with BuildContext). */
167
+ set: {
168
+ <T>(contextVar: ContextVar<T>, value: T): void;
169
+ (key: string, value: any): void;
170
+ };
171
+ /**
172
+ * Push handle data (frozen into pre-rendered output at build time). Returns
173
+ * the full push function, including `.defer()` — a deferred slot resolved by
174
+ * a deep async component during the prerender render is awaited before the
175
+ * artifact is baked (resolve-by-default), so the baked output holds the
176
+ * resolved value.
177
+ */
178
+ use: <T>(handle: Handle<T>) => HandlePush<T>;
179
+ /** URL generation by route name. */
180
+ reverse: BuildReverseFunction;
181
+ }
182
+ /**
183
+ * Context passed to getParams() at build time.
184
+ * Allows sharing data with handler invocations via set().
185
+ */
186
+ export interface GetParamsContext {
187
+ /** Always true during build-time getParams execution. */
188
+ build: true;
189
+ /**
190
+ * True when running in Vite dev mode, false during production build.
191
+ */
192
+ dev: boolean;
193
+ /**
194
+ * Build-time environment bindings supplied by the Vite plugin.
195
+ * Only available when `buildEnv` is configured in rango() options.
196
+ */
197
+ env: DefaultEnv;
198
+ /** Set a variable that will be available to each handler invocation via ctx.get(). */
199
+ set: {
200
+ <T>(contextVar: ContextVar<T>, value: T): void;
201
+ (key: string, value: any): void;
202
+ };
203
+ /** URL generation by route name. */
204
+ reverse: BuildReverseFunction;
205
+ }
206
+ export interface PrerenderHandlerDefinition<TParams extends Record<string, any> = any> {
207
+ readonly __brand: "prerenderHandler";
208
+ /** Auto-generated unique ID (injected by Vite plugin). */
209
+ $$id: string;
210
+ /** In dev mode, the actual handler function that path() can call. */
211
+ handler: Handler<TParams>;
212
+ /** Returns the list of param objects to pre-render (dynamic routes). */
213
+ getParams?: (ctx: GetParamsContext) => Promise<TParams[]> | TParams[];
214
+ /** Pre-render options. */
215
+ options?: PrerenderOptions;
216
+ /** Composable default DSL items merged when the handler is mounted. */
217
+ use?: () => UseItems<HandlerUseItem>;
218
+ }
219
+ export declare function Prerender<T extends keyof DefaultPrerenderRouteMap | `.${keyof TRouteMap & string}` | Record<string, any> = {}, TRouteMap extends {} = DefaultPrerenderRouteMap>(handler: (ctx: BuildContext<ResolvePrerenderParams<T, TRouteMap>>) => ReactNode | PrerenderPassthroughResult | Promise<ReactNode | PrerenderPassthroughResult>, options?: PrerenderOptions, __injectedId?: string): PrerenderHandlerDefinition<ResolvePrerenderParams<T, TRouteMap>>;
220
+ export declare function Prerender<T extends keyof DefaultPrerenderRouteMap | `.${keyof TRouteMap & string}` | Record<string, any>, TRouteMap extends {} = DefaultPrerenderRouteMap>(getParams: (ctx: GetParamsContext) => Promise<ResolvePrerenderParams<T, TRouteMap>[]> | ResolvePrerenderParams<T, TRouteMap>[], handler: (ctx: BuildContext<ResolvePrerenderParams<T, TRouteMap>>) => ReactNode | PrerenderPassthroughResult | Promise<ReactNode | PrerenderPassthroughResult>, options?: PrerenderOptions, __injectedId?: string): PrerenderHandlerDefinition<ResolvePrerenderParams<T, TRouteMap>>;
221
+ /**
222
+ * Sentinel returned by `ctx.passthrough()` to signal that a specific param set
223
+ * should not produce a local prerender artifact. The build skips writing the
224
+ * entry; at runtime the Passthrough live handler runs instead.
225
+ */
226
+ export declare const PRERENDER_PASSTHROUGH: Readonly<{
227
+ __brand: "prerenderPassthrough";
228
+ }>;
229
+ export type PrerenderPassthroughResult = typeof PRERENDER_PASSTHROUGH;
230
+ /**
231
+ * Type guard to check if a value is the passthrough sentinel.
232
+ */
233
+ export declare function isPrerenderPassthrough(value: unknown): value is PrerenderPassthroughResult;
234
+ /**
235
+ * Detect whether any resolved segment carries the passthrough sentinel.
236
+ *
237
+ * A build handler signals passthrough by returning `ctx.passthrough()` (the
238
+ * PRERENDER_PASSTHROUGH sentinel), which lands on the segment's `component`.
239
+ * But when the route declares `loading()`, the handler result is deferred
240
+ * upstream (segment-resolution/fresh.ts), so `component` is a thenable resolving
241
+ * to the sentinel rather than the sentinel itself — a synchronous
242
+ * `isPrerenderPassthrough(component)` on the Promise returns false and the build
243
+ * bakes a corrupt artifact instead of deferring. Resolve thenables first.
244
+ *
245
+ * Rejections are swallowed here: a throwing build handler resurfaces during
246
+ * segment serialization, preserving the prior error-handling behavior.
247
+ */
248
+ export declare function detectPrerenderPassthrough(segments: ReadonlyArray<{
249
+ component: unknown;
250
+ }>): Promise<boolean>;
251
+ /**
252
+ * Type guard to check if a value is a PrerenderHandlerDefinition.
253
+ */
254
+ export declare function isPrerenderHandler(value: unknown): value is PrerenderHandlerDefinition;
255
+ /**
256
+ * A prerender route with a live fallback handler for unknown params at runtime.
257
+ *
258
+ * Wraps a `Prerender(...)` definition with a separate handler that runs at
259
+ * request time for params not covered by `getParams()`.
260
+ *
261
+ * - Build time: `prerenderDef` provides getParams + build handler.
262
+ * - Runtime: `liveHandler` runs for unknown params with full HandlerContext.
263
+ *
264
+ * @example
265
+ * ```ts
266
+ * const BlogPrerender = Prerender(
267
+ * async () => [{ slug: "getting-started" }, { slug: "api-reference" }],
268
+ * async (ctx) => <BlogPost slug={ctx.params.slug} />,
269
+ * );
270
+ *
271
+ * // In route definition:
272
+ * path("/blog/:slug", Passthrough(BlogPrerender, async (ctx) => {
273
+ * const post = await ctx.env.DB.get(ctx.params.slug);
274
+ * return <BlogPost slug={ctx.params.slug} post={post} />;
275
+ * }))
276
+ * ```
277
+ */
278
+ export interface PassthroughHandlerDefinition<TParams extends Record<string, any> = any, TEnv = DefaultEnv> {
279
+ readonly __brand: "passthroughHandler";
280
+ /** The underlying prerender definition (build-time rendering). */
281
+ prerenderDef: PrerenderHandlerDefinition<TParams>;
282
+ /** Live handler for runtime fallback on unknown params. */
283
+ liveHandler: (ctx: HandlerContext<TParams, TEnv>) => ReactNode | Response | Promise<ReactNode | Response>;
284
+ /** Composable default DSL items merged when the handler is mounted. */
285
+ use?: () => UseItems<HandlerUseItem>;
286
+ }
287
+ export declare function Passthrough<TParams extends Record<string, any>, TEnv = DefaultEnv>(prerenderDef: PrerenderHandlerDefinition<TParams>, liveHandler: (ctx: HandlerContext<TParams, TEnv>) => ReactNode | Response | Promise<ReactNode | Response>): PassthroughHandlerDefinition<TParams, TEnv>;
288
+ /**
289
+ * Type guard to check if a value is a PassthroughHandlerDefinition.
290
+ */
291
+ export declare function isPassthroughHandler(value: unknown): value is PassthroughHandlerDefinition;
292
+ export {};
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Runtime-neutral same-origin redirect rule.
3
+ *
4
+ * Shared by the client redirect guard (`browser/validate-redirect-origin.ts`,
5
+ * which validates redirect targets the client JS is about to navigate to) and
6
+ * the server outgoing-redirect guard (`rsc/redirect-guard.ts`, which validates
7
+ * every browser-followed `Location` header before it leaves the handler). Kept
8
+ * at the `src/` root so both layers import the ONE rule and cannot drift -- a
9
+ * cross-origin target blocked on the JS/fetch path is blocked identically on the
10
+ * no-JS (PE) and full-page document paths.
11
+ */
12
+ /**
13
+ * Resolve a redirect target against the current origin.
14
+ *
15
+ * Returns the canonical (normalized) same-origin href -- which also collapses
16
+ * protocol-relative (`//evil.com`) and other ambiguous forms -- or `null` when
17
+ * the target resolves to a different origin or is unparseable. Pure: no logging,
18
+ * no side effects.
19
+ */
20
+ export declare function resolveSameOriginRedirect(url: string, currentOrigin: string): string | null;
21
+ /**
22
+ * Validate an explicit off-origin redirect target (`redirect(url, { external:
23
+ * true })`).
24
+ *
25
+ * `external` opts out of the same-origin rule, but NOT out of scheme safety:
26
+ * only `http:`/`https:` targets are allowed. A redirect ultimately reaches the
27
+ * browser via `window.location.assign()` on the SPA/action client paths, so a
28
+ * forged or mistaken `redirect("javascript:...", { external: true })` would be a
29
+ * scriptable navigation if the scheme were not checked here. Returns the
30
+ * normalized href for an http(s) target (same- or cross-origin), or `null`
31
+ * otherwise. Pure: no logging, no side effects.
32
+ */
33
+ export declare function resolveExternalRedirect(url: string, currentOrigin: string): string | null;
34
+ /**
35
+ * The safe same-origin landing for a blocked redirect.
36
+ *
37
+ * Every guard that neutralizes a cross-origin/unsafe redirect target sends the
38
+ * browser here instead: the app's basename root, or `"/"` when unset. Kept
39
+ * beside the resolvers so the "where does a blocked redirect go" answer lives
40
+ * in ONE place -- the server 3xx guard (`rsc/redirect-guard.ts`) and the
41
+ * shell-HIT degradation path (`rsc/rsc-rendering.ts`) must agree, or a blocked
42
+ * redirect lands differently depending on which exit it took.
43
+ */
44
+ export declare function safeSameOriginLanding(basename: string | undefined): string;
45
+ /** Brand a Response as an explicit `{ external: true }` redirect (out-of-band). */
46
+ export declare function markExternalRedirect(response: Response): void;
47
+ /** Read the out-of-band `{ external: true }` brand off a Response. */
48
+ export declare function isExternalRedirect(response: Response): boolean;
49
+ /**
50
+ * Reserved internal header name. No longer a trust signal -- the external
51
+ * opt-in is the out-of-band brand above. It is kept only so the redirect-rebuild
52
+ * paths and the guard can defensively strip any value (e.g. one forged by a
53
+ * proxied upstream) and guarantee it never reaches the browser.
54
+ */
55
+ export declare const EXTERNAL_REDIRECT_MARKER: string;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Escape a string for literal use inside a RegExp. Single source of truth for
3
+ * the router runtime (matching) and the vite build (transform/scan); a pure,
4
+ * dependency-free leaf so both environments can share it.
5
+ */
6
+ export declare function escapeRegExp(input: string): string;
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from "react";
2
+ interface RenderErrorThrowerProps {
3
+ error: unknown;
4
+ }
5
+ /**
6
+ * Client component that throws the given error during render, so the nearest
7
+ * error boundary catches it. Errors thrown during render are caught by error
8
+ * boundaries; async errors (rejected promises) are not -- which is why the
9
+ * navigation bridge funnels processing failures through this component instead
10
+ * of letting them surface as uncaught rejections.
11
+ */
12
+ export declare function RenderErrorThrower({ error, }: RenderErrorThrowerProps): ReactNode;
13
+ export {};
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Runtime-neutral Response shape utilities.
3
+ *
4
+ * Kept at the src/ root so both `router/` and `rsc/` can depend on it
5
+ * without creating a cross-layer import cycle.
6
+ */
7
+ /**
8
+ * True when a Response represents a WebSocket upgrade handoff and must not
9
+ * be reconstructed or mutated:
10
+ *
11
+ * - Status 101 (Switching Protocols) is outside the standard Response
12
+ * constructor's 200–599 range, so `new Response(body, { status: 101 })`
13
+ * throws RangeError on Node/undici and any spec-compliant runtime.
14
+ * - Cloudflare's workerd attaches a non-standard `webSocket` property on
15
+ * the upgrade Response (e.g. from `acceptWebSocket`/`handleWebSocketUpgrade`
16
+ * or the `agents` library's `routeAgentRequest`). That property is dropped
17
+ * by a `new Response(...)` copy, breaking the upgrade even on workerd
18
+ * where the status range is relaxed.
19
+ *
20
+ * Callers should short-circuit header/body merges for these responses.
21
+ */
22
+ export declare function isWebSocketUpgradeResponse(response: Response): boolean;
23
+ /**
24
+ * Append `Accept` to a response's `Vary` header without duplicating it.
25
+ *
26
+ * Content-negotiated responses already carry `Vary: Accept` from the
27
+ * upstream layer (response-route-handler's callHandlerWithVary, or
28
+ * handleRscRendering baking `accept` into its vary list). The negotiated
29
+ * post-append in the handler would otherwise emit `Vary: Accept, Accept`,
30
+ * a redundant token some proxies/CDNs treat as a distinct cache key.
31
+ * Token match is case-insensitive (HTTP field tokens are case-insensitive)
32
+ * and whitespace-tolerant.
33
+ */
34
+ export declare function appendVaryAccept(response: Response): void;
35
+ export declare function isRedirectResponse(response: Response): boolean;