@rangojs/router 0.0.0-experimental.tapabs3 → 0.1.0

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 (1319) hide show
  1. package/dist/bin/rango.js +8 -40
  2. package/dist/types/__internal.d.ts +127 -0
  3. package/dist/types/bin/rango.d.ts +1 -0
  4. package/dist/types/browser/action-coordinator.d.ts +57 -0
  5. package/dist/types/browser/action-fence.d.ts +33 -0
  6. package/dist/types/browser/app-shell.d.ts +34 -0
  7. package/dist/types/browser/app-version.d.ts +6 -0
  8. package/dist/types/browser/connection-warmup.d.ts +31 -0
  9. package/dist/types/browser/cookie-name.d.ts +66 -0
  10. package/dist/types/browser/event-controller.d.ts +221 -0
  11. package/dist/types/browser/history-state.d.ts +26 -0
  12. package/dist/types/browser/index.d.ts +1 -0
  13. package/dist/types/browser/intercept-utils.d.ts +30 -0
  14. package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
  15. package/dist/types/browser/link-interceptor.d.ts +43 -0
  16. package/dist/types/browser/logging.d.ts +33 -0
  17. package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
  18. package/dist/types/browser/navigation-bridge.d.ts +27 -0
  19. package/dist/types/browser/navigation-client.d.ts +17 -0
  20. package/dist/types/browser/navigation-store-handle.d.ts +25 -0
  21. package/dist/types/browser/navigation-store.d.ts +95 -0
  22. package/dist/types/browser/navigation-transaction.d.ts +75 -0
  23. package/dist/types/browser/network-error-handler.d.ts +35 -0
  24. package/dist/types/browser/partial-update.d.ts +61 -0
  25. package/dist/types/browser/prefetch/cache.d.ts +183 -0
  26. package/dist/types/browser/prefetch/fetch.d.ts +52 -0
  27. package/dist/types/browser/prefetch/observer.d.ts +27 -0
  28. package/dist/types/browser/prefetch/policy.d.ts +13 -0
  29. package/dist/types/browser/prefetch/queue.d.ts +48 -0
  30. package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
  31. package/dist/types/browser/rango-state.d.ts +52 -0
  32. package/dist/types/browser/react/Link.d.ts +140 -0
  33. package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
  34. package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
  35. package/dist/types/browser/react/context.d.ts +54 -0
  36. package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
  37. package/dist/types/browser/react/index.d.ts +1 -0
  38. package/dist/types/browser/react/location-state-shared.d.ts +162 -0
  39. package/dist/types/browser/react/location-state.d.ts +29 -0
  40. package/dist/types/browser/react/mount-context.d.ts +23 -0
  41. package/dist/types/browser/react/nonce-context.d.ts +14 -0
  42. package/dist/types/browser/react/shallow-equal.d.ts +5 -0
  43. package/dist/types/browser/react/use-action.d.ts +61 -0
  44. package/dist/types/browser/react/use-handle.d.ts +21 -0
  45. package/dist/types/browser/react/use-href.d.ts +32 -0
  46. package/dist/types/browser/react/use-link-status.d.ts +36 -0
  47. package/dist/types/browser/react/use-mount.d.ts +24 -0
  48. package/dist/types/browser/react/use-navigation.d.ts +15 -0
  49. package/dist/types/browser/react/use-params.d.ts +21 -0
  50. package/dist/types/browser/react/use-pathname.d.ts +13 -0
  51. package/dist/types/browser/react/use-reverse.d.ts +40 -0
  52. package/dist/types/browser/react/use-router.d.ts +23 -0
  53. package/dist/types/browser/react/use-search-params.d.ts +19 -0
  54. package/dist/types/browser/react/use-segments.d.ts +29 -0
  55. package/dist/types/browser/response-adapter.d.ts +58 -0
  56. package/dist/types/browser/rsc-router.d.ts +141 -0
  57. package/dist/types/browser/scroll-restoration.d.ts +103 -0
  58. package/dist/types/browser/segment-reconciler.d.ts +74 -0
  59. package/dist/types/browser/segment-structure-assert.d.ts +16 -0
  60. package/dist/types/browser/server-action-bridge.d.ts +29 -0
  61. package/dist/types/browser/types.d.ts +530 -0
  62. package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
  63. package/dist/types/build/collect-fallback-refs.d.ts +5 -0
  64. package/dist/types/build/generate-manifest.d.ts +100 -0
  65. package/dist/types/build/generate-route-types.d.ts +8 -0
  66. package/dist/types/build/index.d.ts +21 -0
  67. package/dist/types/build/prefix-tree-utils.d.ts +56 -0
  68. package/dist/types/build/route-trie.d.ts +89 -0
  69. package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
  70. package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
  71. package/dist/types/build/route-types/codegen.d.ts +16 -0
  72. package/dist/types/build/route-types/include-resolution.d.ts +74 -0
  73. package/dist/types/build/route-types/param-extraction.d.ts +13 -0
  74. package/dist/types/build/route-types/per-module-writer.d.ts +18 -0
  75. package/dist/types/build/route-types/router-processing.d.ts +82 -0
  76. package/dist/types/build/route-types/scan-filter.d.ts +17 -0
  77. package/dist/types/build/route-types/source-scan.d.ts +13 -0
  78. package/dist/types/build/runtime-discovery.d.ts +24 -0
  79. package/dist/types/cache/background-task.d.ts +21 -0
  80. package/dist/types/cache/cache-error.d.ts +71 -0
  81. package/dist/types/cache/cache-key-utils.d.ts +35 -0
  82. package/dist/types/cache/cache-policy.d.ts +59 -0
  83. package/dist/types/cache/cache-runtime.d.ts +51 -0
  84. package/dist/types/cache/cache-scope.d.ts +134 -0
  85. package/dist/types/cache/cache-tag.d.ts +79 -0
  86. package/dist/types/cache/cf/cf-base64.d.ts +4 -0
  87. package/dist/types/cache/cf/cf-cache-constants.d.ts +105 -0
  88. package/dist/types/cache/cf/cf-cache-store.d.ts +588 -0
  89. package/dist/types/cache/cf/cf-cache-types.d.ts +363 -0
  90. package/dist/types/cache/cf/cf-kv-utils.d.ts +22 -0
  91. package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  92. package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
  93. package/dist/types/cache/cf/index.d.ts +4 -0
  94. package/dist/types/cache/document-cache.d.ts +69 -0
  95. package/dist/types/cache/handle-capture.d.ts +23 -0
  96. package/dist/types/cache/handle-snapshot.d.ts +39 -0
  97. package/dist/types/cache/index.d.ts +7 -0
  98. package/dist/types/cache/memory-segment-store.d.ts +163 -0
  99. package/dist/types/cache/profile-registry.d.ts +40 -0
  100. package/dist/types/cache/read-through-swr.d.ts +60 -0
  101. package/dist/types/cache/segment-codec.d.ts +78 -0
  102. package/dist/types/cache/shell-snapshot.d.ts +173 -0
  103. package/dist/types/cache/tag-invalidation.d.ts +74 -0
  104. package/dist/types/cache/taint.d.ts +71 -0
  105. package/dist/types/cache/types.d.ts +418 -0
  106. package/dist/types/cache/vercel/index.d.ts +1 -0
  107. package/dist/types/cache/vercel/vercel-cache-store.d.ts +267 -0
  108. package/dist/types/client.d.ts +184 -0
  109. package/dist/types/client.rsc.d.ts +39 -0
  110. package/dist/types/cloudflare/index.d.ts +7 -0
  111. package/dist/types/cloudflare/tracing.d.ts +53 -0
  112. package/dist/types/component-utils.d.ts +46 -0
  113. package/dist/types/components/DefaultDocument.d.ts +13 -0
  114. package/dist/types/context-var.d.ts +84 -0
  115. package/dist/types/debug.d.ts +57 -0
  116. package/dist/types/decode-loader-results.d.ts +5 -0
  117. package/dist/types/default-error-boundary.d.ts +10 -0
  118. package/dist/types/defer.d.ts +89 -0
  119. package/dist/types/deps/browser.d.ts +1 -0
  120. package/dist/types/deps/html-stream-client.d.ts +1 -0
  121. package/dist/types/deps/html-stream-server.d.ts +1 -0
  122. package/dist/types/deps/rsc.d.ts +1 -0
  123. package/dist/types/deps/ssr.d.ts +1 -0
  124. package/dist/types/encode-kv.d.ts +35 -0
  125. package/dist/types/errors.d.ts +226 -0
  126. package/dist/types/escape-script.d.ts +44 -0
  127. package/dist/types/handle.d.ts +93 -0
  128. package/dist/types/handles/MetaTags.d.ts +17 -0
  129. package/dist/types/handles/Scripts.d.ts +38 -0
  130. package/dist/types/handles/breadcrumbs.d.ts +43 -0
  131. package/dist/types/handles/deferred-resolution.d.ts +53 -0
  132. package/dist/types/handles/is-thenable.d.ts +12 -0
  133. package/dist/types/handles/meta.d.ts +43 -0
  134. package/dist/types/handles/script.d.ts +139 -0
  135. package/dist/types/host/cookie-handler.d.ts +8 -0
  136. package/dist/types/host/errors.d.ts +40 -0
  137. package/dist/types/host/index.d.ts +33 -0
  138. package/dist/types/host/pattern-matcher.d.ts +30 -0
  139. package/dist/types/host/router.d.ts +12 -0
  140. package/dist/types/host/testing.d.ts +41 -0
  141. package/dist/types/host/types.d.ts +148 -0
  142. package/dist/types/host/utils.d.ts +20 -0
  143. package/dist/types/href-client.d.ts +214 -0
  144. package/dist/types/index.d.ts +112 -0
  145. package/dist/types/index.rsc.d.ts +51 -0
  146. package/dist/types/internal-debug.d.ts +1 -0
  147. package/dist/types/loader-store.d.ts +193 -0
  148. package/dist/types/loader.d.ts +18 -0
  149. package/dist/types/loader.rsc.d.ts +18 -0
  150. package/dist/types/missing-id-error.d.ts +1 -0
  151. package/dist/types/outlet-context.d.ts +12 -0
  152. package/dist/types/outlet-provider.d.ts +12 -0
  153. package/dist/types/prerender/build-shell-capture.d.ts +104 -0
  154. package/dist/types/prerender/param-hash.d.ts +6 -0
  155. package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
  156. package/dist/types/prerender/store.d.ts +62 -0
  157. package/dist/types/prerender.d.ts +292 -0
  158. package/dist/types/redirect-origin.d.ts +67 -0
  159. package/dist/types/regex-escape.d.ts +6 -0
  160. package/dist/types/render-error-thrower.d.ts +13 -0
  161. package/dist/types/response-utils.d.ts +35 -0
  162. package/dist/types/reverse.d.ts +206 -0
  163. package/dist/types/root-error-boundary.d.ts +32 -0
  164. package/dist/types/route-content-wrapper.d.ts +40 -0
  165. package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
  166. package/dist/types/route-definition/helper-factories.d.ts +22 -0
  167. package/dist/types/route-definition/helpers-types.d.ts +392 -0
  168. package/dist/types/route-definition/index.d.ts +7 -0
  169. package/dist/types/route-definition/redirect.d.ts +48 -0
  170. package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
  171. package/dist/types/route-definition/use-item-types.d.ts +1 -0
  172. package/dist/types/route-definition.d.ts +1 -0
  173. package/dist/types/route-map-builder.d.ts +127 -0
  174. package/dist/types/route-name.d.ts +27 -0
  175. package/dist/types/route-types.d.ts +172 -0
  176. package/dist/types/router/basename.d.ts +10 -0
  177. package/dist/types/router/content-negotiation.d.ts +91 -0
  178. package/dist/types/router/debug-manifest.d.ts +7 -0
  179. package/dist/types/router/error-handling.d.ts +76 -0
  180. package/dist/types/router/find-match.d.ts +19 -0
  181. package/dist/types/router/handler-context.d.ts +41 -0
  182. package/dist/types/router/instrument.d.ts +161 -0
  183. package/dist/types/router/intercept-resolution.d.ts +79 -0
  184. package/dist/types/router/lazy-includes.d.ts +26 -0
  185. package/dist/types/router/loader-resolution.d.ts +63 -0
  186. package/dist/types/router/logging.d.ts +41 -0
  187. package/dist/types/router/manifest.d.ts +8 -0
  188. package/dist/types/router/match-api.d.ts +19 -0
  189. package/dist/types/router/match-context.d.ts +184 -0
  190. package/dist/types/router/match-handlers.d.ts +49 -0
  191. package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
  192. package/dist/types/router/match-middleware/cache-lookup.d.ts +113 -0
  193. package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
  194. package/dist/types/router/match-middleware/index.d.ts +80 -0
  195. package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
  196. package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
  197. package/dist/types/router/match-pipelines.d.ts +103 -0
  198. package/dist/types/router/match-result.d.ts +114 -0
  199. package/dist/types/router/metrics.d.ts +6 -0
  200. package/dist/types/router/middleware-types.d.ts +74 -0
  201. package/dist/types/router/middleware.d.ts +116 -0
  202. package/dist/types/router/navigation-snapshot.d.ts +22 -0
  203. package/dist/types/router/params-util.d.ts +8 -0
  204. package/dist/types/router/parse-pattern.d.ts +38 -0
  205. package/dist/types/router/pattern-matching.d.ts +169 -0
  206. package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
  207. package/dist/types/router/prefetch-limits.d.ts +20 -0
  208. package/dist/types/router/prerender-match.d.ts +50 -0
  209. package/dist/types/router/preview-match.d.ts +22 -0
  210. package/dist/types/router/request-classification.d.ts +104 -0
  211. package/dist/types/router/revalidation.d.ts +57 -0
  212. package/dist/types/router/route-snapshot.d.ts +112 -0
  213. package/dist/types/router/router-context.d.ts +137 -0
  214. package/dist/types/router/router-interfaces.d.ts +432 -0
  215. package/dist/types/router/router-options.d.ts +738 -0
  216. package/dist/types/router/router-registry.d.ts +15 -0
  217. package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
  218. package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
  219. package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
  220. package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
  221. package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
  222. package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
  223. package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
  224. package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
  225. package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  226. package/dist/types/router/segment-resolution/view-transition-default.d.ts +28 -0
  227. package/dist/types/router/segment-resolution.d.ts +3 -0
  228. package/dist/types/router/segment-wrappers.d.ts +53 -0
  229. package/dist/types/router/state-cookie-name.d.ts +1 -0
  230. package/dist/types/router/substitute-pattern-params.d.ts +23 -0
  231. package/dist/types/router/telemetry-otel.d.ts +113 -0
  232. package/dist/types/router/telemetry.d.ts +216 -0
  233. package/dist/types/router/timeout.d.ts +96 -0
  234. package/dist/types/router/tracing.d.ts +125 -0
  235. package/dist/types/router/trie-matching.d.ts +32 -0
  236. package/dist/types/router/types.d.ts +98 -0
  237. package/dist/types/router/url-params.d.ts +26 -0
  238. package/dist/types/router.d.ts +7 -0
  239. package/dist/types/rsc/capture-queue.d.ts +6 -0
  240. package/dist/types/rsc/full-payload.d.ts +22 -0
  241. package/dist/types/rsc/handler-context.d.ts +31 -0
  242. package/dist/types/rsc/handler.d.ts +9 -0
  243. package/dist/types/rsc/helpers.d.ts +124 -0
  244. package/dist/types/rsc/index.d.ts +17 -0
  245. package/dist/types/rsc/json-route-result.d.ts +20 -0
  246. package/dist/types/rsc/loader-fetch.d.ts +14 -0
  247. package/dist/types/rsc/manifest-init.d.ts +18 -0
  248. package/dist/types/rsc/nonce.d.ts +28 -0
  249. package/dist/types/rsc/origin-guard.d.ts +50 -0
  250. package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
  251. package/dist/types/rsc/redirect-guard.d.ts +37 -0
  252. package/dist/types/rsc/render-pipeline.d.ts +138 -0
  253. package/dist/types/rsc/response-cache-serve.d.ts +46 -0
  254. package/dist/types/rsc/response-error.d.ts +19 -0
  255. package/dist/types/rsc/response-route-handler.d.ts +29 -0
  256. package/dist/types/rsc/rsc-rendering.d.ts +23 -0
  257. package/dist/types/rsc/runtime-warnings.d.ts +22 -0
  258. package/dist/types/rsc/server-action.d.ts +68 -0
  259. package/dist/types/rsc/shell-build-manifest.d.ts +84 -0
  260. package/dist/types/rsc/shell-capture-constants.d.ts +27 -0
  261. package/dist/types/rsc/shell-capture.d.ts +374 -0
  262. package/dist/types/rsc/shell-serve.d.ts +174 -0
  263. package/dist/types/rsc/ssr-setup.d.ts +73 -0
  264. package/dist/types/rsc/transition-gate.d.ts +27 -0
  265. package/dist/types/rsc/types.d.ts +290 -0
  266. package/dist/types/runtime-env.d.ts +1 -0
  267. package/dist/types/search-params.d.ts +125 -0
  268. package/dist/types/segment-content-promise.d.ts +13 -0
  269. package/dist/types/segment-fragments.d.ts +56 -0
  270. package/dist/types/segment-loader-promise.d.ts +22 -0
  271. package/dist/types/segment-system.d.ts +84 -0
  272. package/dist/types/serialize.d.ts +164 -0
  273. package/dist/types/server/context.d.ts +494 -0
  274. package/dist/types/server/cookie-parse.d.ts +10 -0
  275. package/dist/types/server/cookie-store.d.ts +107 -0
  276. package/dist/types/server/fetchable-loader-store.d.ts +20 -0
  277. package/dist/types/server/handle-store.d.ts +100 -0
  278. package/dist/types/server/loader-registry.d.ts +32 -0
  279. package/dist/types/server/request-context.d.ts +618 -0
  280. package/dist/types/server/root-layout.d.ts +3 -0
  281. package/dist/types/server.d.ts +15 -0
  282. package/dist/types/ssr/index.d.ts +233 -0
  283. package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
  284. package/dist/types/ssr/preinit-client-references.d.ts +71 -0
  285. package/dist/types/ssr/ssr-root.d.ts +69 -0
  286. package/dist/types/static-handler.d.ts +57 -0
  287. package/dist/types/testing/cache-status.d.ts +63 -0
  288. package/dist/types/testing/collect-handle.d.ts +20 -0
  289. package/dist/types/testing/dispatch.d.ts +127 -0
  290. package/dist/types/testing/dom.entry.d.ts +15 -0
  291. package/dist/types/testing/e2e/fixture.d.ts +37 -0
  292. package/dist/types/testing/e2e/index.d.ts +31 -0
  293. package/dist/types/testing/e2e/matchers.d.ts +17 -0
  294. package/dist/types/testing/e2e/page-helpers.d.ts +62 -0
  295. package/dist/types/testing/e2e/parity.d.ts +111 -0
  296. package/dist/types/testing/e2e/server.d.ts +35 -0
  297. package/dist/types/testing/flight-matchers.d.ts +55 -0
  298. package/dist/types/testing/flight-normalize.d.ts +1 -0
  299. package/dist/types/testing/flight-tree.d.ts +192 -0
  300. package/dist/types/testing/flight.d.ts +115 -0
  301. package/dist/types/testing/flight.entry.d.ts +27 -0
  302. package/dist/types/testing/generated-routes.d.ts +66 -0
  303. package/dist/types/testing/index.d.ts +54 -0
  304. package/dist/types/testing/internal/context.d.ts +225 -0
  305. package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
  306. package/dist/types/testing/internal/seed-vars.d.ts +30 -0
  307. package/dist/types/testing/render-handler.d.ts +160 -0
  308. package/dist/types/testing/render-route.d.ts +246 -0
  309. package/dist/types/testing/run-loader.d.ts +186 -0
  310. package/dist/types/testing/run-middleware.d.ts +132 -0
  311. package/dist/types/testing/run-transition-when.d.ts +77 -0
  312. package/dist/types/testing/shell-status.d.ts +58 -0
  313. package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  314. package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  315. package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  316. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  317. package/dist/types/testing/vitest.d.ts +205 -0
  318. package/dist/types/theme/ThemeProvider.d.ts +13 -0
  319. package/dist/types/theme/ThemeScript.d.ts +45 -0
  320. package/dist/types/theme/constants.d.ts +39 -0
  321. package/dist/types/theme/index.d.ts +29 -0
  322. package/dist/types/theme/theme-context.d.ts +21 -0
  323. package/dist/types/theme/theme-script.d.ts +26 -0
  324. package/dist/types/theme/types.d.ts +162 -0
  325. package/dist/types/theme/use-theme.d.ts +8 -0
  326. package/dist/types/types/boundaries.d.ts +93 -0
  327. package/dist/types/types/cache-types.d.ts +191 -0
  328. package/dist/types/types/error-types.d.ts +114 -0
  329. package/dist/types/types/global-namespace.d.ts +90 -0
  330. package/dist/types/types/handler-context.d.ts +658 -0
  331. package/dist/types/types/index.d.ts +11 -0
  332. package/dist/types/types/loader-types.d.ts +182 -0
  333. package/dist/types/types/request-scope.d.ts +93 -0
  334. package/dist/types/types/route-config.d.ts +105 -0
  335. package/dist/types/types/route-entry.d.ts +95 -0
  336. package/dist/types/types/segments.d.ts +234 -0
  337. package/dist/types/types.d.ts +1 -0
  338. package/dist/types/urls/include-helper.d.ts +17 -0
  339. package/dist/types/urls/include-provider.d.ts +27 -0
  340. package/dist/types/urls/index.d.ts +6 -0
  341. package/dist/types/urls/path-helper-types.d.ts +197 -0
  342. package/dist/types/urls/path-helper.d.ts +12 -0
  343. package/dist/types/urls/pattern-types.d.ts +166 -0
  344. package/dist/types/urls/response-types.d.ts +67 -0
  345. package/dist/types/urls/type-extraction.d.ts +157 -0
  346. package/dist/types/urls/urls-function.d.ts +24 -0
  347. package/dist/types/urls.d.ts +1 -0
  348. package/dist/types/use-loader.d.ts +150 -0
  349. package/dist/types/vercel/index.d.ts +10 -0
  350. package/dist/types/vercel/tracing.d.ts +70 -0
  351. package/dist/types/vite/debug.d.ts +80 -0
  352. package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
  353. package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
  354. package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
  355. package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
  356. package/dist/types/vite/discovery/gate-state.d.ts +79 -0
  357. package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
  358. package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
  359. package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
  360. package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
  361. package/dist/types/vite/discovery/state.d.ts +162 -0
  362. package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
  363. package/dist/types/vite/index.d.ts +11 -0
  364. package/dist/types/vite/inject-client-debug.d.ts +56 -0
  365. package/dist/types/vite/plugin-types.d.ts +298 -0
  366. package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
  367. package/dist/types/vite/plugins/client-ref-dedup.d.ts +40 -0
  368. package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
  369. package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  370. package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
  371. package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
  372. package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  373. package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  374. package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  375. package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  376. package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
  377. package/dist/types/vite/plugins/expose-internal-ids.d.ts +6 -0
  378. package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
  379. package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
  380. package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
  381. package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
  382. package/dist/types/vite/plugins/version-injector.d.ts +21 -0
  383. package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
  384. package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
  385. package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  386. package/dist/types/vite/rango.d.ts +29 -0
  387. package/dist/types/vite/router-discovery.d.ts +23 -0
  388. package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
  389. package/dist/types/vite/utils/banner.d.ts +2 -0
  390. package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
  391. package/dist/types/vite/utils/client-chunks.d.ts +55 -0
  392. package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
  393. package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
  394. package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
  395. package/dist/types/vite/utils/package-resolution.d.ts +6 -0
  396. package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
  397. package/dist/types/vite/utils/shared-utils.d.ts +55 -0
  398. package/dist/vite/index.js +1051 -361
  399. package/package.json +39 -33
  400. package/skills/catalog.json +6 -0
  401. package/skills/cloudflare/SKILL.md +149 -0
  402. package/skills/cloudflare/agents/openai.yaml +4 -0
  403. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  404. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  405. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  406. package/skills/composability/SKILL.md +14 -0
  407. package/skills/debug-manifest/SKILL.md +2 -10
  408. package/skills/links/SKILL.md +12 -0
  409. package/skills/middleware/SKILL.md +33 -0
  410. package/skills/migrate-nextjs/SKILL.md +65 -16
  411. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  412. package/skills/migrate-react-router/SKILL.md +6 -6
  413. package/skills/mime-routes/SKILL.md +25 -17
  414. package/skills/ppr/SKILL.md +100 -15
  415. package/skills/prerender/SKILL.md +44 -1
  416. package/skills/rango/SKILL.md +10 -10
  417. package/skills/response-routes/SKILL.md +41 -4
  418. package/skills/route/SKILL.md +6 -0
  419. package/skills/testing/SKILL.md +1 -0
  420. package/skills/testing/cache-prerender.md +43 -2
  421. package/skills/testing/response-routes.md +2 -2
  422. package/src/browser/event-controller.ts +16 -2
  423. package/src/browser/rsc-router.tsx +11 -0
  424. package/src/build/generate-manifest.ts +5 -36
  425. package/src/build/route-trie.ts +5 -50
  426. package/src/cache/cache-key-utils.ts +0 -1
  427. package/src/cache/cache-scope.ts +41 -3
  428. package/src/cache/cf/cf-cache-store.ts +465 -56
  429. package/src/cache/cf/cf-cache-types.ts +66 -0
  430. package/src/cache/cf/cf-tag-marker-memo.ts +5 -2
  431. package/src/cache/cf/cf-zone-purge.ts +101 -0
  432. package/src/cache/cf/index.ts +5 -0
  433. package/src/cache/handle-snapshot.ts +22 -1
  434. package/src/cache/index.ts +2 -0
  435. package/src/cache/memory-segment-store.ts +32 -0
  436. package/src/cache/segment-codec.ts +47 -0
  437. package/src/cache/shell-snapshot.ts +79 -14
  438. package/src/cache/types.ts +38 -0
  439. package/src/cache/vercel/vercel-cache-store.ts +71 -2
  440. package/src/deps/ssr.ts +4 -1
  441. package/src/index.rsc.ts +7 -0
  442. package/src/index.ts +1 -0
  443. package/src/prerender/build-shell-capture.ts +447 -0
  444. package/src/prerender/shell-manifest-key.ts +20 -0
  445. package/src/prerender/store.ts +10 -1
  446. package/src/prerender.ts +3 -3
  447. package/src/redirect-origin.ts +37 -8
  448. package/src/route-map-builder.ts +8 -8
  449. package/src/router/content-negotiation.ts +47 -5
  450. package/src/router/handler-context.ts +18 -10
  451. package/src/router/intercept-resolution.ts +30 -1
  452. package/src/router/loader-resolution.ts +16 -0
  453. package/src/router/match-api.ts +9 -2
  454. package/src/router/match-middleware/cache-lookup.ts +12 -1
  455. package/src/router/metrics.ts +17 -2
  456. package/src/router/middleware-types.ts +17 -0
  457. package/src/router/middleware.ts +4 -0
  458. package/src/router/prerender-match.ts +28 -0
  459. package/src/router/router-interfaces.ts +7 -6
  460. package/src/router/router-options.ts +13 -8
  461. package/src/router/segment-resolution/fresh.ts +21 -2
  462. package/src/router/segment-resolution/helpers.ts +1 -1
  463. package/src/router/segment-resolution/loader-cache.ts +38 -7
  464. package/src/router/segment-resolution/mask-nested.ts +19 -3
  465. package/src/router/segment-resolution/revalidation.ts +9 -0
  466. package/src/router/telemetry-otel.ts +11 -0
  467. package/src/router/telemetry.ts +1 -0
  468. package/src/router/timeout.ts +41 -1
  469. package/src/router.ts +5 -4
  470. package/src/rsc/capture-queue.ts +67 -0
  471. package/src/rsc/handler.ts +151 -77
  472. package/src/rsc/helpers.ts +67 -4
  473. package/src/rsc/progressive-enhancement.ts +66 -54
  474. package/src/rsc/redirect-guard.ts +3 -1
  475. package/src/rsc/render-pipeline.ts +559 -0
  476. package/src/rsc/response-cache-serve.ts +39 -18
  477. package/src/rsc/response-route-handler.ts +9 -45
  478. package/src/rsc/rsc-rendering.ts +303 -103
  479. package/src/rsc/server-action.ts +50 -42
  480. package/src/rsc/shell-build-manifest.ts +316 -0
  481. package/src/rsc/shell-capture-constants.ts +27 -0
  482. package/src/rsc/shell-capture.ts +595 -69
  483. package/src/rsc/shell-serve.ts +133 -3
  484. package/src/rsc/ssr-setup.ts +102 -23
  485. package/src/segment-fragments.ts +124 -0
  486. package/src/server/context.ts +184 -8
  487. package/src/server/request-context.ts +297 -45
  488. package/src/ssr/index.tsx +167 -32
  489. package/src/ssr/preinit-client-references.ts +106 -0
  490. package/src/ssr/ssr-root.tsx +35 -2
  491. package/src/testing/dispatch.ts +132 -67
  492. package/src/testing/e2e/index.ts +8 -0
  493. package/src/testing/index.ts +9 -1
  494. package/src/testing/internal/context.ts +9 -0
  495. package/src/testing/render-handler.ts +15 -1
  496. package/src/testing/run-middleware.ts +14 -0
  497. package/src/testing/shell-status.ts +100 -0
  498. package/src/types/handler-context.ts +13 -2
  499. package/src/urls/path-helper-types.ts +1 -1
  500. package/src/urls/pattern-types.ts +29 -0
  501. package/src/vite/discovery/discover-routers.ts +71 -52
  502. package/src/vite/discovery/prerender-collection.ts +16 -0
  503. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  504. package/src/vite/discovery/state.ts +44 -0
  505. package/src/vite/discovery/virtual-module-codegen.ts +126 -20
  506. package/src/vite/index.ts +1 -0
  507. package/src/vite/plugin-types.ts +33 -0
  508. package/src/vite/plugins/version-plugin.ts +8 -0
  509. package/src/vite/plugins/virtual-entries.ts +37 -4
  510. package/src/vite/rango.ts +42 -2
  511. package/src/vite/router-discovery.ts +432 -21
  512. package/src/vite/utils/package-resolution.ts +1 -0
  513. package/src/vite/utils/prerender-utils.ts +25 -6
  514. package/src/vite/utils/shared-utils.ts +4 -2
  515. package/dist/__internal.d.ts +0 -83
  516. package/dist/__internal.d.ts.map +0 -1
  517. package/dist/__internal.js +0 -19
  518. package/dist/__internal.js.map +0 -1
  519. package/dist/__mocks__/version.d.ts +0 -7
  520. package/dist/__mocks__/version.d.ts.map +0 -1
  521. package/dist/__mocks__/version.js +0 -7
  522. package/dist/__mocks__/version.js.map +0 -1
  523. package/dist/__tests__/client-href.test.d.ts +0 -2
  524. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  525. package/dist/__tests__/client-href.test.js +0 -74
  526. package/dist/__tests__/client-href.test.js.map +0 -1
  527. package/dist/__tests__/component-utils.test.d.ts +0 -2
  528. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  529. package/dist/__tests__/component-utils.test.js +0 -51
  530. package/dist/__tests__/component-utils.test.js.map +0 -1
  531. package/dist/__tests__/event-controller.test.d.ts +0 -2
  532. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  533. package/dist/__tests__/event-controller.test.js +0 -538
  534. package/dist/__tests__/event-controller.test.js.map +0 -1
  535. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  536. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  537. package/dist/__tests__/helpers/route-tree.js +0 -374
  538. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  539. package/dist/__tests__/match-result.test.d.ts +0 -2
  540. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  541. package/dist/__tests__/match-result.test.js +0 -154
  542. package/dist/__tests__/match-result.test.js.map +0 -1
  543. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  544. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  545. package/dist/__tests__/navigation-store.test.js +0 -440
  546. package/dist/__tests__/navigation-store.test.js.map +0 -1
  547. package/dist/__tests__/partial-update.test.d.ts +0 -2
  548. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  549. package/dist/__tests__/partial-update.test.js +0 -1009
  550. package/dist/__tests__/partial-update.test.js.map +0 -1
  551. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  552. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  553. package/dist/__tests__/reverse-types.test.js +0 -656
  554. package/dist/__tests__/reverse-types.test.js.map +0 -1
  555. package/dist/__tests__/route-definition.test.d.ts +0 -2
  556. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  557. package/dist/__tests__/route-definition.test.js +0 -55
  558. package/dist/__tests__/route-definition.test.js.map +0 -1
  559. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  560. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  561. package/dist/__tests__/router-helpers.test.js +0 -377
  562. package/dist/__tests__/router-helpers.test.js.map +0 -1
  563. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  564. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  565. package/dist/__tests__/router-integration-2.test.js +0 -426
  566. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  567. package/dist/__tests__/router-integration.test.d.ts +0 -2
  568. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  569. package/dist/__tests__/router-integration.test.js +0 -1051
  570. package/dist/__tests__/router-integration.test.js.map +0 -1
  571. package/dist/__tests__/search-params.test.d.ts +0 -5
  572. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  573. package/dist/__tests__/search-params.test.js +0 -306
  574. package/dist/__tests__/search-params.test.js.map +0 -1
  575. package/dist/__tests__/segment-system.test.d.ts +0 -2
  576. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  577. package/dist/__tests__/segment-system.test.js +0 -627
  578. package/dist/__tests__/segment-system.test.js.map +0 -1
  579. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  580. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  581. package/dist/__tests__/static-handler-types.test.js +0 -63
  582. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  583. package/dist/__tests__/urls.test.d.ts +0 -2
  584. package/dist/__tests__/urls.test.d.ts.map +0 -1
  585. package/dist/__tests__/urls.test.js +0 -421
  586. package/dist/__tests__/urls.test.js.map +0 -1
  587. package/dist/__tests__/use-mount.test.d.ts +0 -2
  588. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  589. package/dist/__tests__/use-mount.test.js +0 -35
  590. package/dist/__tests__/use-mount.test.js.map +0 -1
  591. package/dist/bin/rango.d.ts +0 -2
  592. package/dist/bin/rango.d.ts.map +0 -1
  593. package/dist/bin/rango.js.map +0 -1
  594. package/dist/browser/event-controller.d.ts +0 -191
  595. package/dist/browser/event-controller.d.ts.map +0 -1
  596. package/dist/browser/event-controller.js +0 -559
  597. package/dist/browser/event-controller.js.map +0 -1
  598. package/dist/browser/index.d.ts +0 -2
  599. package/dist/browser/index.d.ts.map +0 -1
  600. package/dist/browser/index.js +0 -14
  601. package/dist/browser/index.js.map +0 -1
  602. package/dist/browser/link-interceptor.d.ts +0 -38
  603. package/dist/browser/link-interceptor.d.ts.map +0 -1
  604. package/dist/browser/link-interceptor.js +0 -99
  605. package/dist/browser/link-interceptor.js.map +0 -1
  606. package/dist/browser/logging.d.ts +0 -10
  607. package/dist/browser/logging.d.ts.map +0 -1
  608. package/dist/browser/logging.js +0 -29
  609. package/dist/browser/logging.js.map +0 -1
  610. package/dist/browser/lru-cache.d.ts +0 -17
  611. package/dist/browser/lru-cache.d.ts.map +0 -1
  612. package/dist/browser/lru-cache.js +0 -50
  613. package/dist/browser/lru-cache.js.map +0 -1
  614. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  615. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  616. package/dist/browser/merge-segment-loaders.js +0 -102
  617. package/dist/browser/merge-segment-loaders.js.map +0 -1
  618. package/dist/browser/navigation-bridge.d.ts +0 -102
  619. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  620. package/dist/browser/navigation-bridge.js +0 -708
  621. package/dist/browser/navigation-bridge.js.map +0 -1
  622. package/dist/browser/navigation-client.d.ts +0 -25
  623. package/dist/browser/navigation-client.d.ts.map +0 -1
  624. package/dist/browser/navigation-client.js +0 -157
  625. package/dist/browser/navigation-client.js.map +0 -1
  626. package/dist/browser/navigation-store.d.ts +0 -101
  627. package/dist/browser/navigation-store.d.ts.map +0 -1
  628. package/dist/browser/navigation-store.js +0 -625
  629. package/dist/browser/navigation-store.js.map +0 -1
  630. package/dist/browser/partial-update.d.ts +0 -75
  631. package/dist/browser/partial-update.d.ts.map +0 -1
  632. package/dist/browser/partial-update.js +0 -426
  633. package/dist/browser/partial-update.js.map +0 -1
  634. package/dist/browser/react/Link.d.ts +0 -86
  635. package/dist/browser/react/Link.d.ts.map +0 -1
  636. package/dist/browser/react/Link.js +0 -128
  637. package/dist/browser/react/Link.js.map +0 -1
  638. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  639. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  640. package/dist/browser/react/NavigationProvider.js +0 -216
  641. package/dist/browser/react/NavigationProvider.js.map +0 -1
  642. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  643. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  644. package/dist/browser/react/ScrollRestoration.js +0 -57
  645. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  646. package/dist/browser/react/context.d.ts +0 -46
  647. package/dist/browser/react/context.d.ts.map +0 -1
  648. package/dist/browser/react/context.js +0 -10
  649. package/dist/browser/react/context.js.map +0 -1
  650. package/dist/browser/react/index.d.ts +0 -11
  651. package/dist/browser/react/index.d.ts.map +0 -1
  652. package/dist/browser/react/index.js +0 -22
  653. package/dist/browser/react/index.js.map +0 -1
  654. package/dist/browser/react/location-state-shared.d.ts +0 -63
  655. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  656. package/dist/browser/react/location-state-shared.js +0 -81
  657. package/dist/browser/react/location-state-shared.js.map +0 -1
  658. package/dist/browser/react/location-state.d.ts +0 -23
  659. package/dist/browser/react/location-state.d.ts.map +0 -1
  660. package/dist/browser/react/location-state.js +0 -29
  661. package/dist/browser/react/location-state.js.map +0 -1
  662. package/dist/browser/react/mount-context.d.ts +0 -24
  663. package/dist/browser/react/mount-context.d.ts.map +0 -1
  664. package/dist/browser/react/mount-context.js +0 -24
  665. package/dist/browser/react/mount-context.js.map +0 -1
  666. package/dist/browser/react/use-action.d.ts +0 -64
  667. package/dist/browser/react/use-action.d.ts.map +0 -1
  668. package/dist/browser/react/use-action.js +0 -134
  669. package/dist/browser/react/use-action.js.map +0 -1
  670. package/dist/browser/react/use-client-cache.d.ts +0 -41
  671. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  672. package/dist/browser/react/use-client-cache.js +0 -39
  673. package/dist/browser/react/use-client-cache.js.map +0 -1
  674. package/dist/browser/react/use-handle.d.ts +0 -31
  675. package/dist/browser/react/use-handle.d.ts.map +0 -1
  676. package/dist/browser/react/use-handle.js +0 -144
  677. package/dist/browser/react/use-handle.js.map +0 -1
  678. package/dist/browser/react/use-href.d.ts +0 -33
  679. package/dist/browser/react/use-href.d.ts.map +0 -1
  680. package/dist/browser/react/use-href.js +0 -39
  681. package/dist/browser/react/use-href.js.map +0 -1
  682. package/dist/browser/react/use-link-status.d.ts +0 -37
  683. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  684. package/dist/browser/react/use-link-status.js +0 -99
  685. package/dist/browser/react/use-link-status.js.map +0 -1
  686. package/dist/browser/react/use-mount.d.ts +0 -25
  687. package/dist/browser/react/use-mount.d.ts.map +0 -1
  688. package/dist/browser/react/use-mount.js +0 -30
  689. package/dist/browser/react/use-mount.js.map +0 -1
  690. package/dist/browser/react/use-navigation.d.ts +0 -27
  691. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  692. package/dist/browser/react/use-navigation.js +0 -87
  693. package/dist/browser/react/use-navigation.js.map +0 -1
  694. package/dist/browser/react/use-segments.d.ts +0 -38
  695. package/dist/browser/react/use-segments.d.ts.map +0 -1
  696. package/dist/browser/react/use-segments.js +0 -130
  697. package/dist/browser/react/use-segments.js.map +0 -1
  698. package/dist/browser/request-controller.d.ts +0 -26
  699. package/dist/browser/request-controller.d.ts.map +0 -1
  700. package/dist/browser/request-controller.js +0 -147
  701. package/dist/browser/request-controller.js.map +0 -1
  702. package/dist/browser/rsc-router.d.ts +0 -129
  703. package/dist/browser/rsc-router.d.ts.map +0 -1
  704. package/dist/browser/rsc-router.js +0 -195
  705. package/dist/browser/rsc-router.js.map +0 -1
  706. package/dist/browser/scroll-restoration.d.ts +0 -93
  707. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  708. package/dist/browser/scroll-restoration.js +0 -321
  709. package/dist/browser/scroll-restoration.js.map +0 -1
  710. package/dist/browser/segment-structure-assert.d.ts +0 -17
  711. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  712. package/dist/browser/segment-structure-assert.js +0 -59
  713. package/dist/browser/segment-structure-assert.js.map +0 -1
  714. package/dist/browser/server-action-bridge.d.ts +0 -26
  715. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  716. package/dist/browser/server-action-bridge.js +0 -668
  717. package/dist/browser/server-action-bridge.js.map +0 -1
  718. package/dist/browser/shallow.d.ts +0 -12
  719. package/dist/browser/shallow.d.ts.map +0 -1
  720. package/dist/browser/shallow.js +0 -34
  721. package/dist/browser/shallow.js.map +0 -1
  722. package/dist/browser/types.d.ts +0 -369
  723. package/dist/browser/types.d.ts.map +0 -1
  724. package/dist/browser/types.js +0 -2
  725. package/dist/browser/types.js.map +0 -1
  726. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  727. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  728. package/dist/build/__tests__/generate-cli.test.js +0 -237
  729. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  730. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  731. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  732. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  733. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  734. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  735. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  736. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  737. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  738. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  739. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  740. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  741. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  742. package/dist/build/generate-manifest.d.ts +0 -81
  743. package/dist/build/generate-manifest.d.ts.map +0 -1
  744. package/dist/build/generate-manifest.js +0 -276
  745. package/dist/build/generate-manifest.js.map +0 -1
  746. package/dist/build/generate-route-types.d.ts +0 -115
  747. package/dist/build/generate-route-types.d.ts.map +0 -1
  748. package/dist/build/generate-route-types.js +0 -740
  749. package/dist/build/generate-route-types.js.map +0 -1
  750. package/dist/build/index.d.ts +0 -21
  751. package/dist/build/index.d.ts.map +0 -1
  752. package/dist/build/index.js +0 -21
  753. package/dist/build/index.js.map +0 -1
  754. package/dist/build/route-trie.d.ts +0 -71
  755. package/dist/build/route-trie.d.ts.map +0 -1
  756. package/dist/build/route-trie.js +0 -175
  757. package/dist/build/route-trie.js.map +0 -1
  758. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  759. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  760. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  761. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  762. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  763. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  764. package/dist/cache/__tests__/document-cache.test.js +0 -345
  765. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  766. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  767. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  768. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  769. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  770. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  771. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  772. package/dist/cache/__tests__/memory-store.test.js +0 -367
  773. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  774. package/dist/cache/cache-scope.d.ts +0 -102
  775. package/dist/cache/cache-scope.d.ts.map +0 -1
  776. package/dist/cache/cache-scope.js +0 -440
  777. package/dist/cache/cache-scope.js.map +0 -1
  778. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  779. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  780. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  781. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  782. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  783. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  784. package/dist/cache/cf/cf-cache-store.js +0 -242
  785. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  786. package/dist/cache/cf/index.d.ts +0 -14
  787. package/dist/cache/cf/index.d.ts.map +0 -1
  788. package/dist/cache/cf/index.js +0 -17
  789. package/dist/cache/cf/index.js.map +0 -1
  790. package/dist/cache/document-cache.d.ts +0 -64
  791. package/dist/cache/document-cache.d.ts.map +0 -1
  792. package/dist/cache/document-cache.js +0 -228
  793. package/dist/cache/document-cache.js.map +0 -1
  794. package/dist/cache/index.d.ts +0 -19
  795. package/dist/cache/index.d.ts.map +0 -1
  796. package/dist/cache/index.js +0 -21
  797. package/dist/cache/index.js.map +0 -1
  798. package/dist/cache/memory-segment-store.d.ts +0 -110
  799. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  800. package/dist/cache/memory-segment-store.js +0 -117
  801. package/dist/cache/memory-segment-store.js.map +0 -1
  802. package/dist/cache/memory-store.d.ts +0 -41
  803. package/dist/cache/memory-store.d.ts.map +0 -1
  804. package/dist/cache/memory-store.js +0 -191
  805. package/dist/cache/memory-store.js.map +0 -1
  806. package/dist/cache/types.d.ts +0 -317
  807. package/dist/cache/types.d.ts.map +0 -1
  808. package/dist/cache/types.js +0 -12
  809. package/dist/cache/types.js.map +0 -1
  810. package/dist/client.d.ts +0 -248
  811. package/dist/client.d.ts.map +0 -1
  812. package/dist/client.js +0 -367
  813. package/dist/client.js.map +0 -1
  814. package/dist/client.rsc.d.ts +0 -26
  815. package/dist/client.rsc.d.ts.map +0 -1
  816. package/dist/client.rsc.js +0 -46
  817. package/dist/client.rsc.js.map +0 -1
  818. package/dist/component-utils.d.ts +0 -36
  819. package/dist/component-utils.d.ts.map +0 -1
  820. package/dist/component-utils.js +0 -61
  821. package/dist/component-utils.js.map +0 -1
  822. package/dist/components/DefaultDocument.d.ts +0 -13
  823. package/dist/components/DefaultDocument.d.ts.map +0 -1
  824. package/dist/components/DefaultDocument.js +0 -15
  825. package/dist/components/DefaultDocument.js.map +0 -1
  826. package/dist/debug.d.ts +0 -58
  827. package/dist/debug.d.ts.map +0 -1
  828. package/dist/debug.js +0 -157
  829. package/dist/debug.js.map +0 -1
  830. package/dist/default-error-boundary.d.ts +0 -11
  831. package/dist/default-error-boundary.d.ts.map +0 -1
  832. package/dist/default-error-boundary.js +0 -45
  833. package/dist/default-error-boundary.js.map +0 -1
  834. package/dist/deps/browser.d.ts +0 -2
  835. package/dist/deps/browser.d.ts.map +0 -1
  836. package/dist/deps/browser.js +0 -3
  837. package/dist/deps/browser.js.map +0 -1
  838. package/dist/deps/html-stream-client.d.ts +0 -2
  839. package/dist/deps/html-stream-client.d.ts.map +0 -1
  840. package/dist/deps/html-stream-client.js +0 -3
  841. package/dist/deps/html-stream-client.js.map +0 -1
  842. package/dist/deps/html-stream-server.d.ts +0 -2
  843. package/dist/deps/html-stream-server.d.ts.map +0 -1
  844. package/dist/deps/html-stream-server.js +0 -3
  845. package/dist/deps/html-stream-server.js.map +0 -1
  846. package/dist/deps/rsc.d.ts +0 -2
  847. package/dist/deps/rsc.d.ts.map +0 -1
  848. package/dist/deps/rsc.js +0 -4
  849. package/dist/deps/rsc.js.map +0 -1
  850. package/dist/deps/ssr.d.ts +0 -2
  851. package/dist/deps/ssr.d.ts.map +0 -1
  852. package/dist/deps/ssr.js +0 -3
  853. package/dist/deps/ssr.js.map +0 -1
  854. package/dist/errors.d.ts +0 -174
  855. package/dist/errors.d.ts.map +0 -1
  856. package/dist/errors.js +0 -241
  857. package/dist/errors.js.map +0 -1
  858. package/dist/handle.d.ts +0 -78
  859. package/dist/handle.d.ts.map +0 -1
  860. package/dist/handle.js +0 -82
  861. package/dist/handle.js.map +0 -1
  862. package/dist/handles/MetaTags.d.ts +0 -14
  863. package/dist/handles/MetaTags.d.ts.map +0 -1
  864. package/dist/handles/MetaTags.js +0 -136
  865. package/dist/handles/MetaTags.js.map +0 -1
  866. package/dist/handles/index.d.ts +0 -6
  867. package/dist/handles/index.d.ts.map +0 -1
  868. package/dist/handles/index.js +0 -6
  869. package/dist/handles/index.js.map +0 -1
  870. package/dist/handles/meta.d.ts +0 -39
  871. package/dist/handles/meta.d.ts.map +0 -1
  872. package/dist/handles/meta.js +0 -202
  873. package/dist/handles/meta.js.map +0 -1
  874. package/dist/host/__tests__/errors.test.d.ts +0 -2
  875. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  876. package/dist/host/__tests__/errors.test.js +0 -76
  877. package/dist/host/__tests__/errors.test.js.map +0 -1
  878. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  879. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  880. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  881. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  882. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  883. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  884. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  885. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  886. package/dist/host/__tests__/router.test.d.ts +0 -2
  887. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  888. package/dist/host/__tests__/router.test.js +0 -241
  889. package/dist/host/__tests__/router.test.js.map +0 -1
  890. package/dist/host/__tests__/testing.test.d.ts +0 -2
  891. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  892. package/dist/host/__tests__/testing.test.js +0 -64
  893. package/dist/host/__tests__/testing.test.js.map +0 -1
  894. package/dist/host/__tests__/utils.test.d.ts +0 -2
  895. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  896. package/dist/host/__tests__/utils.test.js +0 -29
  897. package/dist/host/__tests__/utils.test.js.map +0 -1
  898. package/dist/host/cookie-handler.d.ts +0 -34
  899. package/dist/host/cookie-handler.d.ts.map +0 -1
  900. package/dist/host/cookie-handler.js +0 -124
  901. package/dist/host/cookie-handler.js.map +0 -1
  902. package/dist/host/errors.d.ts +0 -56
  903. package/dist/host/errors.d.ts.map +0 -1
  904. package/dist/host/errors.js +0 -79
  905. package/dist/host/errors.js.map +0 -1
  906. package/dist/host/index.d.ts +0 -29
  907. package/dist/host/index.d.ts.map +0 -1
  908. package/dist/host/index.js +0 -32
  909. package/dist/host/index.js.map +0 -1
  910. package/dist/host/pattern-matcher.d.ts +0 -36
  911. package/dist/host/pattern-matcher.d.ts.map +0 -1
  912. package/dist/host/pattern-matcher.js +0 -172
  913. package/dist/host/pattern-matcher.js.map +0 -1
  914. package/dist/host/router.d.ts +0 -26
  915. package/dist/host/router.d.ts.map +0 -1
  916. package/dist/host/router.js +0 -218
  917. package/dist/host/router.js.map +0 -1
  918. package/dist/host/testing.d.ts +0 -36
  919. package/dist/host/testing.d.ts.map +0 -1
  920. package/dist/host/testing.js +0 -55
  921. package/dist/host/testing.js.map +0 -1
  922. package/dist/host/types.d.ts +0 -115
  923. package/dist/host/types.d.ts.map +0 -1
  924. package/dist/host/types.js +0 -7
  925. package/dist/host/types.js.map +0 -1
  926. package/dist/host/utils.d.ts +0 -21
  927. package/dist/host/utils.d.ts.map +0 -1
  928. package/dist/host/utils.js +0 -23
  929. package/dist/host/utils.js.map +0 -1
  930. package/dist/href-client.d.ts +0 -131
  931. package/dist/href-client.d.ts.map +0 -1
  932. package/dist/href-client.js +0 -64
  933. package/dist/href-client.js.map +0 -1
  934. package/dist/href-context.d.ts +0 -29
  935. package/dist/href-context.d.ts.map +0 -1
  936. package/dist/href-context.js +0 -21
  937. package/dist/href-context.js.map +0 -1
  938. package/dist/index.d.ts +0 -73
  939. package/dist/index.d.ts.map +0 -1
  940. package/dist/index.js +0 -91
  941. package/dist/index.js.map +0 -1
  942. package/dist/index.rsc.d.ts +0 -32
  943. package/dist/index.rsc.d.ts.map +0 -1
  944. package/dist/index.rsc.js +0 -40
  945. package/dist/index.rsc.js.map +0 -1
  946. package/dist/internal-debug.d.ts +0 -2
  947. package/dist/internal-debug.d.ts.map +0 -1
  948. package/dist/internal-debug.js +0 -5
  949. package/dist/internal-debug.js.map +0 -1
  950. package/dist/loader.d.ts +0 -14
  951. package/dist/loader.d.ts.map +0 -1
  952. package/dist/loader.js +0 -20
  953. package/dist/loader.js.map +0 -1
  954. package/dist/loader.rsc.d.ts +0 -19
  955. package/dist/loader.rsc.d.ts.map +0 -1
  956. package/dist/loader.rsc.js +0 -99
  957. package/dist/loader.rsc.js.map +0 -1
  958. package/dist/network-error-thrower.d.ts +0 -17
  959. package/dist/network-error-thrower.d.ts.map +0 -1
  960. package/dist/network-error-thrower.js +0 -14
  961. package/dist/network-error-thrower.js.map +0 -1
  962. package/dist/outlet-context.d.ts +0 -13
  963. package/dist/outlet-context.d.ts.map +0 -1
  964. package/dist/outlet-context.js +0 -3
  965. package/dist/outlet-context.js.map +0 -1
  966. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  967. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  968. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  969. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  970. package/dist/prerender/param-hash.d.ts +0 -16
  971. package/dist/prerender/param-hash.d.ts.map +0 -1
  972. package/dist/prerender/param-hash.js +0 -36
  973. package/dist/prerender/param-hash.js.map +0 -1
  974. package/dist/prerender/store.d.ts +0 -38
  975. package/dist/prerender/store.d.ts.map +0 -1
  976. package/dist/prerender/store.js +0 -61
  977. package/dist/prerender/store.js.map +0 -1
  978. package/dist/prerender.d.ts +0 -66
  979. package/dist/prerender.d.ts.map +0 -1
  980. package/dist/prerender.js +0 -57
  981. package/dist/prerender.js.map +0 -1
  982. package/dist/reverse.d.ts +0 -196
  983. package/dist/reverse.d.ts.map +0 -1
  984. package/dist/reverse.js +0 -78
  985. package/dist/reverse.js.map +0 -1
  986. package/dist/root-error-boundary.d.ts +0 -33
  987. package/dist/root-error-boundary.d.ts.map +0 -1
  988. package/dist/root-error-boundary.js +0 -165
  989. package/dist/root-error-boundary.js.map +0 -1
  990. package/dist/route-content-wrapper.d.ts +0 -46
  991. package/dist/route-content-wrapper.d.ts.map +0 -1
  992. package/dist/route-content-wrapper.js +0 -77
  993. package/dist/route-content-wrapper.js.map +0 -1
  994. package/dist/route-definition.d.ts +0 -421
  995. package/dist/route-definition.d.ts.map +0 -1
  996. package/dist/route-definition.js +0 -868
  997. package/dist/route-definition.js.map +0 -1
  998. package/dist/route-map-builder.d.ts +0 -155
  999. package/dist/route-map-builder.d.ts.map +0 -1
  1000. package/dist/route-map-builder.js +0 -237
  1001. package/dist/route-map-builder.js.map +0 -1
  1002. package/dist/route-types.d.ts +0 -165
  1003. package/dist/route-types.d.ts.map +0 -1
  1004. package/dist/route-types.js +0 -7
  1005. package/dist/route-types.js.map +0 -1
  1006. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  1007. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  1008. package/dist/router/__tests__/handler-context.test.js +0 -65
  1009. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  1010. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  1011. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  1012. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  1013. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  1014. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  1015. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  1016. package/dist/router/__tests__/match-context.test.js +0 -92
  1017. package/dist/router/__tests__/match-context.test.js.map +0 -1
  1018. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  1019. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  1020. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  1021. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  1022. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  1023. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  1024. package/dist/router/__tests__/match-result.test.js +0 -457
  1025. package/dist/router/__tests__/match-result.test.js.map +0 -1
  1026. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  1027. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  1028. package/dist/router/__tests__/on-error.test.js +0 -678
  1029. package/dist/router/__tests__/on-error.test.js.map +0 -1
  1030. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  1031. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  1032. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  1033. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  1034. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  1035. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  1036. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  1037. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  1038. package/dist/router/error-handling.d.ts +0 -77
  1039. package/dist/router/error-handling.d.ts.map +0 -1
  1040. package/dist/router/error-handling.js +0 -202
  1041. package/dist/router/error-handling.js.map +0 -1
  1042. package/dist/router/handler-context.d.ts +0 -20
  1043. package/dist/router/handler-context.d.ts.map +0 -1
  1044. package/dist/router/handler-context.js +0 -198
  1045. package/dist/router/handler-context.js.map +0 -1
  1046. package/dist/router/intercept-resolution.d.ts +0 -66
  1047. package/dist/router/intercept-resolution.d.ts.map +0 -1
  1048. package/dist/router/intercept-resolution.js +0 -246
  1049. package/dist/router/intercept-resolution.js.map +0 -1
  1050. package/dist/router/loader-resolution.d.ts +0 -64
  1051. package/dist/router/loader-resolution.d.ts.map +0 -1
  1052. package/dist/router/loader-resolution.js +0 -284
  1053. package/dist/router/loader-resolution.js.map +0 -1
  1054. package/dist/router/logging.d.ts +0 -15
  1055. package/dist/router/logging.d.ts.map +0 -1
  1056. package/dist/router/logging.js +0 -99
  1057. package/dist/router/logging.js.map +0 -1
  1058. package/dist/router/manifest.d.ts +0 -22
  1059. package/dist/router/manifest.d.ts.map +0 -1
  1060. package/dist/router/manifest.js +0 -181
  1061. package/dist/router/manifest.js.map +0 -1
  1062. package/dist/router/match-api.d.ts +0 -35
  1063. package/dist/router/match-api.d.ts.map +0 -1
  1064. package/dist/router/match-api.js +0 -406
  1065. package/dist/router/match-api.js.map +0 -1
  1066. package/dist/router/match-context.d.ts +0 -206
  1067. package/dist/router/match-context.d.ts.map +0 -1
  1068. package/dist/router/match-context.js +0 -17
  1069. package/dist/router/match-context.js.map +0 -1
  1070. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  1071. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  1072. package/dist/router/match-middleware/background-revalidation.js +0 -75
  1073. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  1074. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  1075. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  1076. package/dist/router/match-middleware/cache-lookup.js +0 -257
  1077. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  1078. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  1079. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  1080. package/dist/router/match-middleware/cache-store.js +0 -108
  1081. package/dist/router/match-middleware/cache-store.js.map +0 -1
  1082. package/dist/router/match-middleware/index.d.ts +0 -81
  1083. package/dist/router/match-middleware/index.d.ts.map +0 -1
  1084. package/dist/router/match-middleware/index.js +0 -80
  1085. package/dist/router/match-middleware/index.js.map +0 -1
  1086. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  1087. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  1088. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  1089. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  1090. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  1091. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  1092. package/dist/router/match-middleware/segment-resolution.js +0 -53
  1093. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  1094. package/dist/router/match-pipelines.d.ts +0 -147
  1095. package/dist/router/match-pipelines.d.ts.map +0 -1
  1096. package/dist/router/match-pipelines.js +0 -82
  1097. package/dist/router/match-pipelines.js.map +0 -1
  1098. package/dist/router/match-result.d.ts +0 -126
  1099. package/dist/router/match-result.d.ts.map +0 -1
  1100. package/dist/router/match-result.js +0 -93
  1101. package/dist/router/match-result.js.map +0 -1
  1102. package/dist/router/metrics.d.ts +0 -20
  1103. package/dist/router/metrics.d.ts.map +0 -1
  1104. package/dist/router/metrics.js +0 -47
  1105. package/dist/router/metrics.js.map +0 -1
  1106. package/dist/router/middleware.d.ts +0 -249
  1107. package/dist/router/middleware.d.ts.map +0 -1
  1108. package/dist/router/middleware.js +0 -434
  1109. package/dist/router/middleware.js.map +0 -1
  1110. package/dist/router/middleware.test.d.ts +0 -2
  1111. package/dist/router/middleware.test.d.ts.map +0 -1
  1112. package/dist/router/middleware.test.js +0 -816
  1113. package/dist/router/middleware.test.js.map +0 -1
  1114. package/dist/router/pattern-matching.d.ts +0 -149
  1115. package/dist/router/pattern-matching.d.ts.map +0 -1
  1116. package/dist/router/pattern-matching.js +0 -349
  1117. package/dist/router/pattern-matching.js.map +0 -1
  1118. package/dist/router/revalidation.d.ts +0 -44
  1119. package/dist/router/revalidation.d.ts.map +0 -1
  1120. package/dist/router/revalidation.js +0 -147
  1121. package/dist/router/revalidation.js.map +0 -1
  1122. package/dist/router/router-context.d.ts +0 -135
  1123. package/dist/router/router-context.d.ts.map +0 -1
  1124. package/dist/router/router-context.js +0 -36
  1125. package/dist/router/router-context.js.map +0 -1
  1126. package/dist/router/segment-resolution.d.ts +0 -127
  1127. package/dist/router/segment-resolution.d.ts.map +0 -1
  1128. package/dist/router/segment-resolution.js +0 -919
  1129. package/dist/router/segment-resolution.js.map +0 -1
  1130. package/dist/router/trie-matching.d.ts +0 -40
  1131. package/dist/router/trie-matching.d.ts.map +0 -1
  1132. package/dist/router/trie-matching.js +0 -127
  1133. package/dist/router/trie-matching.js.map +0 -1
  1134. package/dist/router/types.d.ts +0 -136
  1135. package/dist/router/types.d.ts.map +0 -1
  1136. package/dist/router/types.js +0 -7
  1137. package/dist/router/types.js.map +0 -1
  1138. package/dist/router.d.ts +0 -753
  1139. package/dist/router.d.ts.map +0 -1
  1140. package/dist/router.gen.d.ts +0 -6
  1141. package/dist/router.gen.d.ts.map +0 -1
  1142. package/dist/router.gen.js +0 -6
  1143. package/dist/router.gen.js.map +0 -1
  1144. package/dist/router.js +0 -1304
  1145. package/dist/router.js.map +0 -1
  1146. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1147. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1148. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1149. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1150. package/dist/rsc/handler.d.ts +0 -45
  1151. package/dist/rsc/handler.d.ts.map +0 -1
  1152. package/dist/rsc/handler.js +0 -1172
  1153. package/dist/rsc/handler.js.map +0 -1
  1154. package/dist/rsc/helpers.d.ts +0 -16
  1155. package/dist/rsc/helpers.d.ts.map +0 -1
  1156. package/dist/rsc/helpers.js +0 -55
  1157. package/dist/rsc/helpers.js.map +0 -1
  1158. package/dist/rsc/index.d.ts +0 -22
  1159. package/dist/rsc/index.d.ts.map +0 -1
  1160. package/dist/rsc/index.js +0 -23
  1161. package/dist/rsc/index.js.map +0 -1
  1162. package/dist/rsc/nonce.d.ts +0 -9
  1163. package/dist/rsc/nonce.d.ts.map +0 -1
  1164. package/dist/rsc/nonce.js +0 -18
  1165. package/dist/rsc/nonce.js.map +0 -1
  1166. package/dist/rsc/types.d.ts +0 -206
  1167. package/dist/rsc/types.d.ts.map +0 -1
  1168. package/dist/rsc/types.js +0 -8
  1169. package/dist/rsc/types.js.map +0 -1
  1170. package/dist/search-params.d.ts +0 -103
  1171. package/dist/search-params.d.ts.map +0 -1
  1172. package/dist/search-params.js +0 -74
  1173. package/dist/search-params.js.map +0 -1
  1174. package/dist/segment-system.d.ts +0 -75
  1175. package/dist/segment-system.d.ts.map +0 -1
  1176. package/dist/segment-system.js +0 -336
  1177. package/dist/segment-system.js.map +0 -1
  1178. package/dist/server/context.d.ts +0 -245
  1179. package/dist/server/context.d.ts.map +0 -1
  1180. package/dist/server/context.js +0 -197
  1181. package/dist/server/context.js.map +0 -1
  1182. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1183. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1184. package/dist/server/fetchable-loader-store.js +0 -18
  1185. package/dist/server/fetchable-loader-store.js.map +0 -1
  1186. package/dist/server/handle-store.d.ts +0 -85
  1187. package/dist/server/handle-store.d.ts.map +0 -1
  1188. package/dist/server/handle-store.js +0 -142
  1189. package/dist/server/handle-store.js.map +0 -1
  1190. package/dist/server/loader-registry.d.ts +0 -55
  1191. package/dist/server/loader-registry.d.ts.map +0 -1
  1192. package/dist/server/loader-registry.js +0 -132
  1193. package/dist/server/loader-registry.js.map +0 -1
  1194. package/dist/server/request-context.d.ts +0 -226
  1195. package/dist/server/request-context.d.ts.map +0 -1
  1196. package/dist/server/request-context.js +0 -290
  1197. package/dist/server/request-context.js.map +0 -1
  1198. package/dist/server/root-layout.d.ts +0 -4
  1199. package/dist/server/root-layout.d.ts.map +0 -1
  1200. package/dist/server/root-layout.js +0 -5
  1201. package/dist/server/root-layout.js.map +0 -1
  1202. package/dist/server.d.ts +0 -15
  1203. package/dist/server.d.ts.map +0 -1
  1204. package/dist/server.js +0 -20
  1205. package/dist/server.js.map +0 -1
  1206. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1207. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1208. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1209. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1210. package/dist/ssr/index.d.ts +0 -98
  1211. package/dist/ssr/index.d.ts.map +0 -1
  1212. package/dist/ssr/index.js +0 -158
  1213. package/dist/ssr/index.js.map +0 -1
  1214. package/dist/static-handler.d.ts +0 -50
  1215. package/dist/static-handler.d.ts.map +0 -1
  1216. package/dist/static-handler.gen.d.ts +0 -5
  1217. package/dist/static-handler.gen.d.ts.map +0 -1
  1218. package/dist/static-handler.gen.js +0 -5
  1219. package/dist/static-handler.gen.js.map +0 -1
  1220. package/dist/static-handler.js +0 -29
  1221. package/dist/static-handler.js.map +0 -1
  1222. package/dist/theme/ThemeProvider.d.ts +0 -20
  1223. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1224. package/dist/theme/ThemeProvider.js +0 -240
  1225. package/dist/theme/ThemeProvider.js.map +0 -1
  1226. package/dist/theme/ThemeScript.d.ts +0 -48
  1227. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1228. package/dist/theme/ThemeScript.js +0 -13
  1229. package/dist/theme/ThemeScript.js.map +0 -1
  1230. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1231. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1232. package/dist/theme/__tests__/theme.test.js +0 -103
  1233. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1234. package/dist/theme/constants.d.ts +0 -29
  1235. package/dist/theme/constants.d.ts.map +0 -1
  1236. package/dist/theme/constants.js +0 -48
  1237. package/dist/theme/constants.js.map +0 -1
  1238. package/dist/theme/index.d.ts +0 -31
  1239. package/dist/theme/index.d.ts.map +0 -1
  1240. package/dist/theme/index.js +0 -36
  1241. package/dist/theme/index.js.map +0 -1
  1242. package/dist/theme/theme-context.d.ts +0 -40
  1243. package/dist/theme/theme-context.d.ts.map +0 -1
  1244. package/dist/theme/theme-context.js +0 -60
  1245. package/dist/theme/theme-context.js.map +0 -1
  1246. package/dist/theme/theme-script.d.ts +0 -27
  1247. package/dist/theme/theme-script.d.ts.map +0 -1
  1248. package/dist/theme/theme-script.js +0 -147
  1249. package/dist/theme/theme-script.js.map +0 -1
  1250. package/dist/theme/types.d.ts +0 -163
  1251. package/dist/theme/types.d.ts.map +0 -1
  1252. package/dist/theme/types.js +0 -11
  1253. package/dist/theme/types.js.map +0 -1
  1254. package/dist/theme/use-theme.d.ts +0 -12
  1255. package/dist/theme/use-theme.d.ts.map +0 -1
  1256. package/dist/theme/use-theme.js +0 -40
  1257. package/dist/theme/use-theme.js.map +0 -1
  1258. package/dist/types.d.ts +0 -1479
  1259. package/dist/types.d.ts.map +0 -1
  1260. package/dist/types.js +0 -10
  1261. package/dist/types.js.map +0 -1
  1262. package/dist/urls.d.ts +0 -441
  1263. package/dist/urls.d.ts.map +0 -1
  1264. package/dist/urls.gen.d.ts +0 -8
  1265. package/dist/urls.gen.d.ts.map +0 -1
  1266. package/dist/urls.gen.js +0 -8
  1267. package/dist/urls.gen.js.map +0 -1
  1268. package/dist/urls.js +0 -443
  1269. package/dist/urls.js.map +0 -1
  1270. package/dist/use-loader.d.ts +0 -127
  1271. package/dist/use-loader.d.ts.map +0 -1
  1272. package/dist/use-loader.js +0 -237
  1273. package/dist/use-loader.js.map +0 -1
  1274. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1275. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1276. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1277. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1278. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1279. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1280. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1281. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1282. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1283. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1284. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1285. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1286. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1287. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1288. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1289. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1290. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1291. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1292. package/dist/vite/ast-handler-extract.js +0 -249
  1293. package/dist/vite/ast-handler-extract.js.map +0 -1
  1294. package/dist/vite/expose-action-id.d.ts +0 -19
  1295. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1296. package/dist/vite/expose-action-id.js +0 -250
  1297. package/dist/vite/expose-action-id.js.map +0 -1
  1298. package/dist/vite/expose-id-utils.d.ts +0 -69
  1299. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1300. package/dist/vite/expose-id-utils.js +0 -289
  1301. package/dist/vite/expose-id-utils.js.map +0 -1
  1302. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1303. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1304. package/dist/vite/expose-internal-ids.js +0 -886
  1305. package/dist/vite/expose-internal-ids.js.map +0 -1
  1306. package/dist/vite/index.d.ts +0 -149
  1307. package/dist/vite/index.d.ts.map +0 -1
  1308. package/dist/vite/index.js.bak +0 -5448
  1309. package/dist/vite/index.js.map +0 -1
  1310. package/dist/vite/index.named-routes.gen.ts +0 -103
  1311. package/dist/vite/package-resolution.d.ts +0 -43
  1312. package/dist/vite/package-resolution.d.ts.map +0 -1
  1313. package/dist/vite/package-resolution.js +0 -112
  1314. package/dist/vite/package-resolution.js.map +0 -1
  1315. package/dist/vite/virtual-entries.d.ts +0 -25
  1316. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1317. package/dist/vite/virtual-entries.js +0 -110
  1318. package/dist/vite/virtual-entries.js.map +0 -1
  1319. package/skills/migrate-react-router/cloudflare-workers.md +0 -129
@@ -14,6 +14,7 @@
14
14
  import type { ExecutionContext } from "../../types/request-scope.js";
15
15
  import type { CacheDefaults } from "../types.js";
16
16
  import type { RequestContext } from "../../server/request-context.js";
17
+ import type { CloudflareZonePurgeOptions } from "./cf-zone-purge.js";
17
18
 
18
19
  /**
19
20
  * Minimal Cloudflare KV Namespace interface.
@@ -197,6 +198,71 @@ export interface CFCacheStoreOptions<TEnv = unknown> {
197
198
  */
198
199
  onRevalidateTag?: (cacheTags: string[]) => Promise<void>;
199
200
 
201
+ /**
202
+ * Purge-based tag invalidation (purge mode). When configured, the store
203
+ * delegates L1 (Cache API) tag eviction to Cloudflare's purge-by-tag API
204
+ * instead of the per-read KV marker lookup.
205
+ *
206
+ * Two forms:
207
+ * - **Credentials object** (the normal wiring): `{ zoneId, apiToken }` — the
208
+ * store builds the purge client itself (createCloudflareZonePurge).
209
+ * `zoneId` is on the zone's dashboard overview; `apiToken` needs the
210
+ * `Zone.Cache Purge` permission for that zone — store it as a Worker
211
+ * secret. Validated at store construction (Workers run no code at deploy,
212
+ * so with the usual per-request cache factory this means the first request
213
+ * throws — loudly and on every request), rather than surfacing only when
214
+ * the first invalidation quietly rejects much later.
215
+ * - **Function** `(cacheTags) => Promise<void>` — an escape hatch for
216
+ * proxies, custom transports, or test stubs; receives the exact
217
+ * Cache-Tags to purge.
218
+ *
219
+ * Semantics:
220
+ * - Every tagged L1 entry carries a namespaced `Cache-Tag` header
221
+ * (`rg:{namespace}:e:{encodedTag}`, plus the broader `rg:{namespace}` /
222
+ * `rg:{namespace}:e` tiers for manual resets).
223
+ * - `updateTag()`/`revalidateTag()` AWAIT the purge with the exact Cache-Tags
224
+ * (one batched call per invalidation; entry tags, plus the lookup
225
+ * Cache-Tags when `tagCacheTtl > 0`).
226
+ * - L1 hits then skip the per-read marker lookup entirely: a surviving entry
227
+ * is trusted because an invalidated one would have been purged. Only the
228
+ * per-request memo is consulted (synchronously, no KV read), so a request
229
+ * that ran `updateTag()` still masks its own not-yet-purged entries
230
+ * (read-your-own-writes).
231
+ * - The KV tier and PPR shells still use the KV markers — those are written
232
+ * regardless, and purge cannot reach KV — so keep `kv` configured for L2.
233
+ * Without `kv`, purge mode is the ONLY tag invalidation and the store is
234
+ * L1-only: a supported configuration (previously tag invalidation without
235
+ * KV had no read-side effect at all). One KV-less caveat: an entry whose
236
+ * tag set overflows Cloudflare's 16 KB Cache-Tag header limit is NOT
237
+ * cached (it would be un-invalidatable — no tokens for the purge, no
238
+ * marker fallback); with `kv` such an entry caches and falls back to the
239
+ * marker check.
240
+ *
241
+ * Consistency trade-off vs the default marker mode: invalidation latency for
242
+ * concurrent requests becomes the purge propagation time (Cloudflare quotes
243
+ * sub-second "Instant Purge") instead of read-time KV consistency, and a
244
+ * purge failure leaves L1 stale until TTL — which is why a rejected hook
245
+ * makes `updateTag()` reject (retry the invalidation; markers and purge are
246
+ * both idempotent).
247
+ *
248
+ * Zone scoping: purge-by-tag clears YOUR zone. workers.dev / pages.dev
249
+ * previews have an inert Cache API (nothing to purge — the KV tier still
250
+ * invalidates via markers there); a preview on a SEPARATE zone needs its own
251
+ * purge credentials.
252
+ *
253
+ * @example
254
+ * ```ts
255
+ * new CFCacheStore({
256
+ * ctx,
257
+ * kv: env.CACHE_KV,
258
+ * tagPurge: { zoneId: env.CF_ZONE_ID, apiToken: env.CF_PURGE_TOKEN },
259
+ * })
260
+ * ```
261
+ */
262
+ tagPurge?:
263
+ | CloudflareZonePurgeOptions
264
+ | ((cacheTags: string[]) => Promise<void>);
265
+
200
266
  /**
201
267
  * Optional expiration (seconds) for tag-invalidation markers in KV. A marker
202
268
  * must outlive every entry tagged before the invalidation, so this MUST
@@ -38,8 +38,11 @@ export const TAG_MARKER_ABSENT = "none";
38
38
  * entry A's own KV says is invalidated. Keying by the instance isolates them;
39
39
  * two reads through the SAME store still share the memo. A read through one
40
40
  * store never populates another's memo, so each store always consults its own KV
41
- * binding. Markers are read only through isGloballyInvalidated(), which already
42
- * short-circuits when a store has no KV, so a store without KV never allocates.
41
+ * binding. Markers are read through isGloballyInvalidated(), which
42
+ * short-circuits when a store has no KV and, in purge mode, through
43
+ * isL1Invalidated(), which consults ONLY this memo on an L1 hit (no KV read),
44
+ * so a purge-mode store allocates the memo even without KV for same-request
45
+ * read-your-own-writes after updateTag().
43
46
  *
44
47
  * Without the memo, isGloballyInvalidated() issues a KV read per tag on every
45
48
  * tagged cache read, so a page composed of many segments/items sharing a tag
@@ -0,0 +1,101 @@
1
+ // ============================================================================
2
+ // Cloudflare zone purge-by-tag helper
3
+ // ============================================================================
4
+ //
5
+ // Ready-made `tagPurge` implementation for CFCacheStoreOptions: POSTs the
6
+ // Cache-Tags handed over by invalidateTags() to the zone purge endpoint.
7
+ // Kept transport-only (no store coupling) so it is unit-testable with an
8
+ // injected fetch and reusable for onRevalidateTag.
9
+
10
+ /**
11
+ * Tags per purge_cache API call. Cloudflare's documented purge-by-tag batch
12
+ * limit has historically been 30 tags per call (the newer all-plans limits
13
+ * page quotes 100 operations per request); chunking at 30 stays under both.
14
+ * @internal
15
+ */
16
+ export const PURGE_TAGS_PER_CALL = 30;
17
+
18
+ export interface CloudflareZonePurgeOptions {
19
+ /** Zone to purge (Cloudflare dashboard -> zone overview -> Zone ID). */
20
+ zoneId: string;
21
+ /** API token with the `Zone.Cache Purge` permission for that zone. */
22
+ apiToken: string;
23
+ /**
24
+ * API origin override, mainly for tests/proxies.
25
+ * Defaults to `https://api.cloudflare.com`.
26
+ */
27
+ apiBase?: string;
28
+ /** fetch override, mainly for tests. Defaults to the global fetch. */
29
+ fetch?: typeof fetch;
30
+ }
31
+
32
+ /**
33
+ * Create a purge-by-tag function for {@link CFCacheStoreOptions.tagPurge} (or
34
+ * `onRevalidateTag`). Chunks the tag list under the per-call API limit and
35
+ * rejects on any non-success response, so a failed purge surfaces through
36
+ * `updateTag()` instead of silently leaving L1 stale.
37
+ *
38
+ * Purge-by-tag is available on ALL Cloudflare plans (since April 2025), but
39
+ * account-level purge rate limits apply (Free: 5 calls/min) — keep invalidation
40
+ * tag batches small and low-frequency on lower plans.
41
+ */
42
+ export function createCloudflareZonePurge(
43
+ options: CloudflareZonePurgeOptions,
44
+ ): (cacheTags: string[]) => Promise<void> {
45
+ const { zoneId, apiToken } = options;
46
+ // Fail at construction, not at the first updateTag(): a store wired with an
47
+ // unset env var would otherwise report the misconfig only when the first
48
+ // invalidation rejects — long after deploy.
49
+ if (typeof zoneId !== "string" || zoneId.length === 0) {
50
+ throw new Error(
51
+ "[createCloudflareZonePurge] zoneId is required (Cloudflare dashboard " +
52
+ "-> zone overview -> Zone ID). Check the env var/secret it is read from.",
53
+ );
54
+ }
55
+ if (typeof apiToken !== "string" || apiToken.length === 0) {
56
+ throw new Error(
57
+ "[createCloudflareZonePurge] apiToken is required (an API token with " +
58
+ "the Zone.Cache Purge permission for the zone). Check the secret it " +
59
+ "is read from.",
60
+ );
61
+ }
62
+ const apiBase = options.apiBase ?? "https://api.cloudflare.com";
63
+ const fetchImpl = options.fetch ?? fetch;
64
+ const endpoint = `${apiBase}/client/v4/zones/${zoneId}/purge_cache`;
65
+
66
+ return async (cacheTags: string[]): Promise<void> => {
67
+ for (let i = 0; i < cacheTags.length; i += PURGE_TAGS_PER_CALL) {
68
+ const chunk = cacheTags.slice(i, i + PURGE_TAGS_PER_CALL);
69
+ const response = await fetchImpl(endpoint, {
70
+ method: "POST",
71
+ headers: {
72
+ Authorization: `Bearer ${apiToken}`,
73
+ "Content-Type": "application/json",
74
+ },
75
+ body: JSON.stringify({ tags: chunk }),
76
+ });
77
+ // The API reports failures both via HTTP status and a success flag.
78
+ // Require an EXPLICIT success: true — an empty body, an HTML error
79
+ // page, invalid JSON, or `{}` on a 2xx is NOT a confirmed purge, and
80
+ // purge mode trusts surviving L1 entries on the strength of this call,
81
+ // so an unconfirmed purge must reject rather than pass silently.
82
+ const body = (await response.json().catch(() => null)) as {
83
+ success?: boolean;
84
+ errors?: { code?: number; message?: string }[];
85
+ } | null;
86
+ if (!response.ok || body?.success !== true) {
87
+ const detail =
88
+ body?.errors
89
+ ?.map((e) => `${e.code ?? "?"}: ${e.message ?? "unknown"}`)
90
+ .join("; ") ??
91
+ (response.ok
92
+ ? `HTTP ${response.status} with a missing/invalid success body`
93
+ : `HTTP ${response.status}`);
94
+ throw new Error(
95
+ `[createCloudflareZonePurge] purge_cache failed for ${chunk.length} ` +
96
+ `tag(s): ${detail}`,
97
+ );
98
+ }
99
+ }
100
+ };
101
+ }
@@ -17,3 +17,8 @@ export {
17
17
  EDGE_READ_TIMEOUT_MS,
18
18
  KV_READ_TIMEOUT_MS,
19
19
  } from "./cf-cache-store.js";
20
+
21
+ export {
22
+ createCloudflareZonePurge,
23
+ type CloudflareZonePurgeOptions,
24
+ } from "./cf-zone-purge.js";
@@ -83,14 +83,35 @@ export async function decodeHandleValue<T>(encoded: string): Promise<T | null> {
83
83
  /**
84
84
  * Capture handle data for a set of segments from the handle store.
85
85
  * Used when caching segments to preserve their handle data.
86
+ *
87
+ * `exclude` (shell captures: RequestContext._shellCaptureLoaderHandleValues)
88
+ * drops DSL-loader-scoped push values from the CACHE WRITE only: loaders
89
+ * re-run fresh on every HIT, so replaying their captured values would
90
+ * duplicate the fresh push — and their masked nested promises would stall the
91
+ * Flight handle encode to its timeout. Threaded as an explicit argument so
92
+ * every other getDataForSegment consumer (the render-barrier snapshot,
93
+ * prerender) provably sees every push.
86
94
  */
87
95
  export function captureHandles(
88
96
  segments: ResolvedSegment[],
89
97
  handleStore: HandleStore,
98
+ exclude?: WeakSet<object>,
90
99
  ): Record<string, SegmentHandleData> {
91
100
  const handles: Record<string, SegmentHandleData> = {};
92
101
  for (const seg of segments) {
93
- handles[seg.id] = handleStore.getDataForSegment(seg.id);
102
+ const data = handleStore.getDataForSegment(seg.id);
103
+ if (!exclude) {
104
+ handles[seg.id] = data;
105
+ continue;
106
+ }
107
+ const filtered: SegmentHandleData = {};
108
+ for (const [handleName, values] of Object.entries(data)) {
109
+ const kept = values.filter(
110
+ (v) => typeof v !== "object" || v === null || !exclude.has(v),
111
+ );
112
+ if (kept.length > 0) filtered[handleName] = kept;
113
+ }
114
+ handles[seg.id] = filtered;
94
115
  }
95
116
  return handles;
96
117
  }
@@ -23,6 +23,8 @@ export {
23
23
  EDGE_LOOKUP_TIMEOUT_MS,
24
24
  EDGE_READ_TIMEOUT_MS,
25
25
  KV_READ_TIMEOUT_MS,
26
+ createCloudflareZonePurge,
27
+ type CloudflareZonePurgeOptions,
26
28
  } from "./cf/index.js";
27
29
 
28
30
  export {
@@ -30,6 +30,8 @@ const ITEM_CACHE_REGISTRY_KEY = "__rsc_router_item_cache_registry__";
30
30
  const SHELL_CACHE_REGISTRY_KEY = "__rsc_router_shell_cache_registry__";
31
31
  const TAG_INDEX_REGISTRY_KEY = "__rsc_router_tag_index_registry__";
32
32
  const KEY_TAGS_REGISTRY_KEY = "__rsc_router_key_tags_registry__";
33
+ const TAG_INVALIDATED_AT_REGISTRY_KEY =
34
+ "__rsc_router_tag_invalidated_at_registry__";
33
35
 
34
36
  /**
35
37
  * Get or create a named Map from a globalThis-backed registry.
@@ -194,6 +196,14 @@ export class MemorySegmentCacheStore<
194
196
  private tagIndex: Map<string, Set<string>>;
195
197
  /** prefixed cache key -> set of tags (reverse index for O(tags) unregister) */
196
198
  private keyTags: Map<string, Set<string>>;
199
+ /**
200
+ * tag -> epoch ms of its latest invalidateTags() call. The build-shell
201
+ * read-through's isTagsInvalidatedSince gate: baked shell entries are
202
+ * immutable in the build manifest, so eviction is answered by comparing
203
+ * these markers against the entry's build-time createdAt. Per-isolate,
204
+ * like every other map here — matching this store's tag semantics.
205
+ */
206
+ private tagInvalidatedAt: Map<string, number>;
197
207
  readonly defaults?: CacheDefaults;
198
208
  readonly keyGenerator?: (
199
209
  ctx: RequestContext<TEnv>,
@@ -228,6 +238,10 @@ export class MemorySegmentCacheStore<
228
238
  KEY_TAGS_REGISTRY_KEY,
229
239
  options.name,
230
240
  );
241
+ this.tagInvalidatedAt = getNamedMap<number>(
242
+ TAG_INVALIDATED_AT_REGISTRY_KEY,
243
+ options.name,
244
+ );
231
245
  } else {
232
246
  this.cache = new Map<string, CachedEntryData>();
233
247
  this.responseCache = new Map<string, CachedResponseEntry>();
@@ -235,6 +249,7 @@ export class MemorySegmentCacheStore<
235
249
  this.shellCache = new Map<string, CachedShellEntry>();
236
250
  this.tagIndex = new Map<string, Set<string>>();
237
251
  this.keyTags = new Map<string, Set<string>>();
252
+ this.tagInvalidatedAt = new Map<string, number>();
238
253
  }
239
254
  this.defaults = options?.defaults;
240
255
  this.keyGenerator = options?.keyGenerator;
@@ -457,8 +472,25 @@ export class MemorySegmentCacheStore<
457
472
  }
458
473
  }
459
474
 
475
+ async isTagsInvalidatedSince(
476
+ tags: string[],
477
+ sinceMs: number,
478
+ ): Promise<boolean> {
479
+ for (const tag of tags) {
480
+ const at = this.tagInvalidatedAt.get(tag);
481
+ // >= so a same-millisecond invalidation wins (freshness over staleness),
482
+ // matching the CF marker comparison.
483
+ if (at !== undefined && at >= sinceMs) return true;
484
+ }
485
+ return false;
486
+ }
487
+
460
488
  async invalidateTags(tags: string[]): Promise<void> {
489
+ const invalidatedAt = Date.now();
461
490
  for (const tag of tags) {
491
+ // Marker first: build-shell entries evict by marker comparison even when
492
+ // no runtime entry currently carries the tag (tagIndex miss below).
493
+ this.tagInvalidatedAt.set(tag, invalidatedAt);
462
494
  const keys = this.tagIndex.get(tag);
463
495
  if (!keys || keys.size === 0) continue;
464
496
 
@@ -11,6 +11,7 @@
11
11
  import type { ResolvedSegment } from "../types.js";
12
12
  import type { SerializedSegmentData } from "./types.js";
13
13
  import { INTERNAL_RANGO_DEBUG } from "../internal-debug.js";
14
+ import { segmentFragment } from "../segment-fragments.js";
14
15
  import {
15
16
  renderToReadableStream,
16
17
  createTemporaryReferenceSet,
@@ -206,6 +207,52 @@ export async function serializeSegments(
206
207
  );
207
208
  }
208
209
 
210
+ /**
211
+ * Build ResolvedSegments that carry the STORED fragment strings verbatim
212
+ * instead of decoding them (PPR fast-path payload splice, issue #700; see
213
+ * segment-fragments.ts). The ReactNode fields (component/layout/loading)
214
+ * become {@link segmentFragment} envelopes the outer Flight render serializes
215
+ * as a string copy; the CONSUMER (SSR resume + browser hydration) expands them
216
+ * through its own deserializer. Loader data fields are NOT enveloped — they
217
+ * are consumer data of any shape (a marker there could collide) and decode
218
+ * server-side exactly as deserializeSegments does; on the doc/prerender
219
+ * records this path serves they are absent in practice (loaders are never
220
+ * cached with the route record).
221
+ *
222
+ * The loading "null" sentinel decodes here (not on the consumer): loading:null
223
+ * must survive as null, and shipping the raw sentinel would change the
224
+ * deduplicateLoaderSegments loading-presence check.
225
+ */
226
+ export async function fragmentSegments(
227
+ data: SerializedSegmentData[],
228
+ ): Promise<ResolvedSegment[]> {
229
+ return Promise.all(
230
+ data.map(async (item): Promise<ResolvedSegment> => {
231
+ const loadingIsNullSentinel = item.encodedLoading === "null";
232
+ const [loaderData, loaderDataPromise] = await Promise.all([
233
+ rscDeserialize(item.encodedLoaderData),
234
+ rscDeserialize(item.encodedLoaderDataPromise),
235
+ ]);
236
+ return {
237
+ ...item.metadata,
238
+ // Envelopes ride ReactNode-typed fields; the consumer expansion pass
239
+ // (segment-fragments.ts) replaces them before any render reads them.
240
+ component: segmentFragment(item.encoded) as unknown,
241
+ layout: item.encodedLayout
242
+ ? (segmentFragment(item.encodedLayout) as unknown)
243
+ : undefined,
244
+ loading: loadingIsNullSentinel
245
+ ? null
246
+ : item.encodedLoading !== undefined
247
+ ? (segmentFragment(item.encodedLoading) as unknown)
248
+ : undefined,
249
+ loaderData,
250
+ loaderDataPromise,
251
+ } as ResolvedSegment;
252
+ }),
253
+ );
254
+ }
255
+
209
256
  /**
210
257
  * Deserialize segments from storage.
211
258
  * Reconstructs ResolvedSegment objects from RSC-serialized data.
@@ -110,6 +110,19 @@ export class RecordingShellStore<
110
110
  this.writes.push(p);
111
111
  }
112
112
 
113
+ /**
114
+ * Record a segment-family write into the snapshot WITHOUT touching the inner
115
+ * store. The shell fast path's implicit doc-cache scope writes through this
116
+ * (via {@link SnapshotOnlySegmentStore}): the recorded doc entry must ride
117
+ * ONLY inside the shell entry — a passthrough write would leave a doc-keyed
118
+ * entry in the real store that the NEXT capture's lookup would hit, replaying
119
+ * the previous generation's segments instead of re-running handlers (breaking
120
+ * SWR recapture freshness).
121
+ */
122
+ recordSegmentWrite(key: string, data: CachedEntryData): void {
123
+ this.record("segment", key, data);
124
+ }
125
+
113
126
  /**
114
127
  * Await the tracked deferred writes so their records are present before drain.
115
128
  * Drains ITERATIVELY: a write task can schedule a NESTED write (the ring-3
@@ -245,6 +258,40 @@ export function getRecordingStore<TEnv>(
245
258
  return store instanceof RecordingShellStore ? store : undefined;
246
259
  }
247
260
 
261
+ /**
262
+ * The store the shell fast path's IMPLICIT doc-cache scope resolves during a
263
+ * capture: reads pass through the recording store (a real-store hit is
264
+ * recorded, exactly like any capture read), but segment WRITES are recorded
265
+ * into the snapshot only — see {@link RecordingShellStore.recordSegmentWrite}
266
+ * for why passthrough would break SWR recapture. Routes with their OWN
267
+ * cache() config never see this store (their scope resolves the app-level
268
+ * recording store and keeps today's record-and-write behavior).
269
+ */
270
+ export class SnapshotOnlySegmentStore<
271
+ TEnv = unknown,
272
+ > implements SegmentCacheStore<TEnv> {
273
+ constructor(private readonly recording: RecordingShellStore<TEnv>) {}
274
+
275
+ get defaults(): SegmentCacheStore<TEnv>["defaults"] {
276
+ return this.recording.defaults;
277
+ }
278
+ get keyGenerator(): SegmentCacheStore<TEnv>["keyGenerator"] {
279
+ return this.recording.keyGenerator;
280
+ }
281
+
282
+ async get(key: string): Promise<CacheGetResult | null> {
283
+ return this.recording.get(key);
284
+ }
285
+
286
+ async set(key: string, data: CachedEntryData): Promise<void> {
287
+ this.recording.recordSegmentWrite(key, data);
288
+ }
289
+
290
+ async delete(key: string): Promise<boolean> {
291
+ return this.recording.delete(key);
292
+ }
293
+ }
294
+
248
295
  /**
249
296
  * Materialize the loader-family seed from a shell snapshot for a HIT's tail
250
297
  * render: Flight-deserialize each recorded (promise-elided) bake-lane
@@ -259,9 +306,21 @@ export function getRecordingStore<TEnv>(
259
306
  * HIT). Returns undefined when the snapshot carries no loader records, without
260
307
  * touching the Flight codec (kept lazy for cold paths and non-RSC configs).
261
308
  */
309
+ export interface ShellLoaderSeedEntry {
310
+ /** The Flight-deserialized elided container (recorded paths + markers). */
311
+ container: unknown;
312
+ /**
313
+ * True when the record carries hole markers (or predates the capture-side
314
+ * hole bit, where hole-ness is unknown): the HIT overlay must gate on the
315
+ * fresh run. False = fully pinned; the payload promise resolves immediately
316
+ * from the pin (loader-cache.ts pin-first path).
317
+ */
318
+ holes: boolean;
319
+ }
320
+
262
321
  export async function buildShellLoaderSeed(
263
322
  snapshot: ShellSnapshotRecord[],
264
- ): Promise<Map<string, unknown> | undefined> {
323
+ ): Promise<Map<string, ShellLoaderSeedEntry> | undefined> {
265
324
  const loaderRecords: ShellSnapshotRecord[] = [];
266
325
  for (const rec of snapshot) {
267
326
  if (rec.family === "loader") loaderRecords.push(rec);
@@ -270,20 +329,26 @@ export async function buildShellLoaderSeed(
270
329
 
271
330
  const { deserializeResult } = await import("./segment-codec.js");
272
331
  const entries = await Promise.all(
273
- loaderRecords.map(async (rec): Promise<[string, unknown] | null> => {
274
- try {
275
- return [
276
- rec.key,
277
- await deserializeResult(
278
- (rec.value as ShellSnapshotLoaderValue).value,
279
- ),
280
- ];
281
- } catch {
282
- return null;
283
- }
284
- }),
332
+ loaderRecords.map(
333
+ async (rec): Promise<[string, ShellLoaderSeedEntry] | null> => {
334
+ try {
335
+ const stored = rec.value as ShellSnapshotLoaderValue;
336
+ return [
337
+ rec.key,
338
+ {
339
+ container: await deserializeResult(stored.value),
340
+ // A record without the bit (pre-bit snapshot) reads as
341
+ // hole-carrying: unknown hole-ness must keep the gated path.
342
+ holes: stored.holes !== 0,
343
+ },
344
+ ];
345
+ } catch {
346
+ return null;
347
+ }
348
+ },
349
+ ),
285
350
  );
286
- const seed = new Map<string, unknown>();
351
+ const seed = new Map<string, ShellLoaderSeedEntry>();
287
352
  for (const entry of entries) {
288
353
  if (entry) seed.set(entry[0], entry[1]);
289
354
  }
@@ -196,6 +196,20 @@ export interface SegmentCacheStore<TEnv = unknown> {
196
196
  * @param tags - The cache tags to invalidate
197
197
  */
198
198
  invalidateTags?(tags: string[]): Promise<void>;
199
+
200
+ /**
201
+ * True when ANY of `tags` was invalidated (invalidateTags/updateTag) at or
202
+ * after `sinceMs` (>= so a same-millisecond invalidation wins, favouring
203
+ * freshness). Consulted by the build-time shell read-through
204
+ * (rsc/shell-build-manifest.ts): a baked shell entry is immutable in the
205
+ * build manifest, so "was it evicted" is answered by the store's tag
206
+ * markers against the entry's createdAt rather than by deleting anything.
207
+ * Optional: without it, TAGGED build entries are not served (untagged ones
208
+ * are unaffected — they are evictable only by deploy/buildVersion anyway).
209
+ * Fail open to `false` on marker-read errors: a transient store fault must
210
+ * degrade to "still valid", the same posture as the envelope tag checks.
211
+ */
212
+ isTagsInvalidatedSince?(tags: string[], sinceMs: number): Promise<boolean>;
199
213
  }
200
214
 
201
215
  /**
@@ -280,6 +294,19 @@ export interface ShellCacheEntry {
280
294
  * heals it. See docs/design/ppr-shell-resume.md ("the capture data snapshot").
281
295
  */
282
296
  snapshot?: ShellSnapshotRecord[];
297
+ /**
298
+ * True when the capture's HANDLER layer declared per-request liveness: a
299
+ * handle pushed OUTSIDE a DSL loader scope carried a nested thenable (the
300
+ * capture mask turns it into a never-filling hole), such a push was still
301
+ * pending when the entry was written, or a handler-invoked loader
302
+ * (ctx.use(loader) from a handler body — the consumption lane, #672)
303
+ * executed during the capture. The serve tail then must NOT take the
304
+ * handler-free fast path (the implicit doc-cache hit): only a handler
305
+ * re-run can mint that hole's live promise or refresh that consumed value.
306
+ * DSL-loader pushes never set this — loaders re-run fresh on every HIT, so
307
+ * their holes always fill.
308
+ */
309
+ handlerLiveHoles?: boolean;
283
310
  /** Epoch ms when the shell was captured. */
284
311
  createdAt: number;
285
312
  }
@@ -305,6 +332,17 @@ export type ShellSnapshotFamily = "item" | "segment" | "response" | "loader";
305
332
  export interface ShellSnapshotLoaderValue {
306
333
  /** RSC-serialized elided container (see loader-snapshot.ts). */
307
334
  value: string;
335
+ /**
336
+ * Hole bit, capture-computed (elide already walks every node): 1 = the
337
+ * container carries hole markers, so a HIT must gate the overlay on the
338
+ * fresh run (only the loader body can mint the live nested promises);
339
+ * 0 = fully pinned, so a HIT resolves the payload promise immediately from
340
+ * the pin while the fresh run proceeds ungated (side effects and cache
341
+ * read-through writes preserved; its values were discarded either way —
342
+ * recorded paths win wholesale). Absent on pre-bit snapshots, which keep
343
+ * the gated path.
344
+ */
345
+ holes?: 0 | 1;
308
346
  }
309
347
 
310
348
  /** A serialized cached Response for the response family of a shell snapshot. */