@rangojs/router 0.4.3 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/dist/types/browser/prefetch/cache.d.ts +31 -2
  2. package/dist/types/cache/cf/cf-cache-store.d.ts +2 -0
  3. package/dist/types/cache/types.d.ts +39 -6
  4. package/dist/types/route-definition/helpers-types.d.ts +5 -4
  5. package/dist/types/rsc/capture-queue.d.ts +19 -3
  6. package/dist/types/rsc/shell-build-manifest.d.ts +2 -2
  7. package/dist/types/rsc/shell-capture.d.ts +22 -2
  8. package/dist/types/rsc/shell-serve.d.ts +18 -12
  9. package/dist/types/static-handler.d.ts +15 -1
  10. package/dist/types/urls/path-helper-types.d.ts +6 -7
  11. package/dist/types.backup/__internal.d.ts +127 -0
  12. package/dist/types.backup/bin/rango.d.ts +1 -0
  13. package/dist/types.backup/browser/action-coordinator.d.ts +57 -0
  14. package/dist/types.backup/browser/action-fence.d.ts +33 -0
  15. package/dist/types.backup/browser/app-shell.d.ts +34 -0
  16. package/dist/types.backup/browser/app-version.d.ts +6 -0
  17. package/dist/types.backup/browser/connection-warmup.d.ts +31 -0
  18. package/dist/types.backup/browser/cookie-name.d.ts +66 -0
  19. package/dist/types.backup/browser/event-controller.d.ts +221 -0
  20. package/dist/types.backup/browser/history-state.d.ts +26 -0
  21. package/dist/types.backup/browser/index.d.ts +1 -0
  22. package/dist/types.backup/browser/intercept-utils.d.ts +30 -0
  23. package/dist/types.backup/browser/invalidate-client-cache.d.ts +17 -0
  24. package/dist/types.backup/browser/link-interceptor.d.ts +43 -0
  25. package/dist/types.backup/browser/logging.d.ts +33 -0
  26. package/dist/types.backup/browser/merge-segment-loaders.d.ts +38 -0
  27. package/dist/types.backup/browser/navigation-bridge.d.ts +27 -0
  28. package/dist/types.backup/browser/navigation-client.d.ts +17 -0
  29. package/dist/types.backup/browser/navigation-store-handle.d.ts +25 -0
  30. package/dist/types.backup/browser/navigation-store.d.ts +95 -0
  31. package/dist/types.backup/browser/navigation-transaction.d.ts +75 -0
  32. package/dist/types.backup/browser/network-error-handler.d.ts +35 -0
  33. package/dist/types.backup/browser/partial-update.d.ts +61 -0
  34. package/dist/types.backup/browser/prefetch/cache.d.ts +183 -0
  35. package/dist/types.backup/browser/prefetch/fetch.d.ts +52 -0
  36. package/dist/types.backup/browser/prefetch/observer.d.ts +27 -0
  37. package/dist/types.backup/browser/prefetch/policy.d.ts +13 -0
  38. package/dist/types.backup/browser/prefetch/queue.d.ts +48 -0
  39. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +28 -0
  40. package/dist/types.backup/browser/rango-state.d.ts +52 -0
  41. package/dist/types.backup/browser/react/Link.d.ts +140 -0
  42. package/dist/types.backup/browser/react/NavigationProvider.d.ts +88 -0
  43. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +78 -0
  44. package/dist/types.backup/browser/react/context.d.ts +54 -0
  45. package/dist/types.backup/browser/react/filter-segment-order.d.ts +35 -0
  46. package/dist/types.backup/browser/react/index.d.ts +1 -0
  47. package/dist/types.backup/browser/react/location-state-shared.d.ts +162 -0
  48. package/dist/types.backup/browser/react/location-state.d.ts +29 -0
  49. package/dist/types.backup/browser/react/mount-context.d.ts +23 -0
  50. package/dist/types.backup/browser/react/nonce-context.d.ts +14 -0
  51. package/dist/types.backup/browser/react/shallow-equal.d.ts +5 -0
  52. package/dist/types.backup/browser/react/use-action.d.ts +61 -0
  53. package/dist/types.backup/browser/react/use-handle.d.ts +21 -0
  54. package/dist/types.backup/browser/react/use-href.d.ts +32 -0
  55. package/dist/types.backup/browser/react/use-link-status.d.ts +36 -0
  56. package/dist/types.backup/browser/react/use-mount.d.ts +24 -0
  57. package/dist/types.backup/browser/react/use-navigation.d.ts +15 -0
  58. package/dist/types.backup/browser/react/use-params.d.ts +21 -0
  59. package/dist/types.backup/browser/react/use-pathname.d.ts +13 -0
  60. package/dist/types.backup/browser/react/use-reverse.d.ts +40 -0
  61. package/dist/types.backup/browser/react/use-router.d.ts +23 -0
  62. package/dist/types.backup/browser/react/use-search-params.d.ts +19 -0
  63. package/dist/types.backup/browser/react/use-segments.d.ts +29 -0
  64. package/dist/types.backup/browser/response-adapter.d.ts +58 -0
  65. package/dist/types.backup/browser/rsc-router.d.ts +141 -0
  66. package/dist/types.backup/browser/scroll-restoration.d.ts +103 -0
  67. package/dist/types.backup/browser/segment-reconciler.d.ts +74 -0
  68. package/dist/types.backup/browser/segment-structure-assert.d.ts +16 -0
  69. package/dist/types.backup/browser/server-action-bridge.d.ts +29 -0
  70. package/dist/types.backup/browser/types.d.ts +530 -0
  71. package/dist/types.backup/browser/validate-redirect-origin.d.ts +28 -0
  72. package/dist/types.backup/build/collect-fallback-refs.d.ts +5 -0
  73. package/dist/types.backup/build/generate-manifest.d.ts +100 -0
  74. package/dist/types.backup/build/generate-route-types.d.ts +8 -0
  75. package/dist/types.backup/build/index.d.ts +21 -0
  76. package/dist/types.backup/build/prefix-tree-utils.d.ts +56 -0
  77. package/dist/types.backup/build/route-trie.d.ts +89 -0
  78. package/dist/types.backup/build/route-types/ast-helpers.d.ts +3 -0
  79. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +13 -0
  80. package/dist/types.backup/build/route-types/codegen.d.ts +16 -0
  81. package/dist/types.backup/build/route-types/include-resolution.d.ts +74 -0
  82. package/dist/types.backup/build/route-types/param-extraction.d.ts +13 -0
  83. package/dist/types.backup/build/route-types/per-module-writer.d.ts +18 -0
  84. package/dist/types.backup/build/route-types/router-processing.d.ts +82 -0
  85. package/dist/types.backup/build/route-types/scan-filter.d.ts +17 -0
  86. package/dist/types.backup/build/route-types/source-scan.d.ts +13 -0
  87. package/dist/types.backup/build/runtime-discovery.d.ts +24 -0
  88. package/dist/types.backup/cache/background-task.d.ts +21 -0
  89. package/dist/types.backup/cache/cache-error.d.ts +71 -0
  90. package/dist/types.backup/cache/cache-key-utils.d.ts +35 -0
  91. package/dist/types.backup/cache/cache-policy.d.ts +59 -0
  92. package/dist/types.backup/cache/cache-runtime.d.ts +51 -0
  93. package/dist/types.backup/cache/cache-scope.d.ts +134 -0
  94. package/dist/types.backup/cache/cache-tag.d.ts +79 -0
  95. package/dist/types.backup/cache/cf/cf-base64.d.ts +4 -0
  96. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +105 -0
  97. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +481 -0
  98. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +300 -0
  99. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +22 -0
  100. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  101. package/dist/types.backup/cache/cf/index.d.ts +3 -0
  102. package/dist/types.backup/cache/document-cache.d.ts +69 -0
  103. package/dist/types.backup/cache/handle-capture.d.ts +23 -0
  104. package/dist/types.backup/cache/handle-snapshot.d.ts +39 -0
  105. package/dist/types.backup/cache/index.d.ts +7 -0
  106. package/dist/types.backup/cache/memory-segment-store.d.ts +163 -0
  107. package/dist/types.backup/cache/profile-registry.d.ts +40 -0
  108. package/dist/types.backup/cache/read-through-swr.d.ts +60 -0
  109. package/dist/types.backup/cache/segment-codec.d.ts +78 -0
  110. package/dist/types.backup/cache/shell-snapshot.d.ts +162 -0
  111. package/dist/types.backup/cache/tag-invalidation.d.ts +74 -0
  112. package/dist/types.backup/cache/taint.d.ts +71 -0
  113. package/dist/types.backup/cache/types.d.ts +407 -0
  114. package/dist/types.backup/cache/vercel/index.d.ts +1 -0
  115. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +267 -0
  116. package/dist/types.backup/client.d.ts +184 -0
  117. package/dist/types.backup/client.rsc.d.ts +39 -0
  118. package/dist/types.backup/cloudflare/index.d.ts +7 -0
  119. package/dist/types.backup/cloudflare/tracing.d.ts +53 -0
  120. package/dist/types.backup/component-utils.d.ts +46 -0
  121. package/dist/types.backup/components/DefaultDocument.d.ts +13 -0
  122. package/dist/types.backup/context-var.d.ts +84 -0
  123. package/dist/types.backup/debug.d.ts +57 -0
  124. package/dist/types.backup/decode-loader-results.d.ts +5 -0
  125. package/dist/types.backup/default-error-boundary.d.ts +10 -0
  126. package/dist/types.backup/defer.d.ts +89 -0
  127. package/dist/types.backup/deps/browser.d.ts +1 -0
  128. package/dist/types.backup/deps/html-stream-client.d.ts +1 -0
  129. package/dist/types.backup/deps/html-stream-server.d.ts +1 -0
  130. package/dist/types.backup/deps/rsc.d.ts +1 -0
  131. package/dist/types.backup/deps/ssr.d.ts +1 -0
  132. package/dist/types.backup/encode-kv.d.ts +35 -0
  133. package/dist/types.backup/errors.d.ts +226 -0
  134. package/dist/types.backup/escape-script.d.ts +44 -0
  135. package/dist/types.backup/handle.d.ts +93 -0
  136. package/dist/types.backup/handles/MetaTags.d.ts +17 -0
  137. package/dist/types.backup/handles/Scripts.d.ts +38 -0
  138. package/dist/types.backup/handles/breadcrumbs.d.ts +43 -0
  139. package/dist/types.backup/handles/deferred-resolution.d.ts +53 -0
  140. package/dist/types.backup/handles/is-thenable.d.ts +12 -0
  141. package/dist/types.backup/handles/meta.d.ts +43 -0
  142. package/dist/types.backup/handles/script.d.ts +139 -0
  143. package/dist/types.backup/host/cookie-handler.d.ts +8 -0
  144. package/dist/types.backup/host/errors.d.ts +40 -0
  145. package/dist/types.backup/host/index.d.ts +33 -0
  146. package/dist/types.backup/host/pattern-matcher.d.ts +30 -0
  147. package/dist/types.backup/host/router.d.ts +12 -0
  148. package/dist/types.backup/host/testing.d.ts +41 -0
  149. package/dist/types.backup/host/types.d.ts +148 -0
  150. package/dist/types.backup/host/utils.d.ts +20 -0
  151. package/dist/types.backup/href-client.d.ts +214 -0
  152. package/dist/types.backup/index.d.ts +112 -0
  153. package/dist/types.backup/index.rsc.d.ts +51 -0
  154. package/dist/types.backup/internal-debug.d.ts +1 -0
  155. package/dist/types.backup/loader-store.d.ts +193 -0
  156. package/dist/types.backup/loader.d.ts +18 -0
  157. package/dist/types.backup/loader.rsc.d.ts +18 -0
  158. package/dist/types.backup/missing-id-error.d.ts +1 -0
  159. package/dist/types.backup/outlet-context.d.ts +12 -0
  160. package/dist/types.backup/outlet-provider.d.ts +12 -0
  161. package/dist/types.backup/prerender/build-shell-capture.d.ts +104 -0
  162. package/dist/types.backup/prerender/param-hash.d.ts +6 -0
  163. package/dist/types.backup/prerender/shell-manifest-key.d.ts +18 -0
  164. package/dist/types.backup/prerender/store.d.ts +62 -0
  165. package/dist/types.backup/prerender.d.ts +292 -0
  166. package/dist/types.backup/redirect-origin.d.ts +55 -0
  167. package/dist/types.backup/regex-escape.d.ts +6 -0
  168. package/dist/types.backup/render-error-thrower.d.ts +13 -0
  169. package/dist/types.backup/response-utils.d.ts +35 -0
  170. package/dist/types.backup/reverse.d.ts +206 -0
  171. package/dist/types.backup/root-error-boundary.d.ts +32 -0
  172. package/dist/types.backup/route-content-wrapper.d.ts +40 -0
  173. package/dist/types.backup/route-definition/dsl-helpers.d.ts +130 -0
  174. package/dist/types.backup/route-definition/helper-factories.d.ts +22 -0
  175. package/dist/types.backup/route-definition/helpers-types.d.ts +392 -0
  176. package/dist/types.backup/route-definition/index.d.ts +7 -0
  177. package/dist/types.backup/route-definition/redirect.d.ts +48 -0
  178. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +19 -0
  179. package/dist/types.backup/route-definition/use-item-types.d.ts +1 -0
  180. package/dist/types.backup/route-definition.d.ts +1 -0
  181. package/dist/types.backup/route-map-builder.d.ts +127 -0
  182. package/dist/types.backup/route-name.d.ts +27 -0
  183. package/dist/types.backup/route-types.d.ts +172 -0
  184. package/dist/types.backup/router/basename.d.ts +10 -0
  185. package/dist/types.backup/router/content-negotiation.d.ts +91 -0
  186. package/dist/types.backup/router/debug-manifest.d.ts +7 -0
  187. package/dist/types.backup/router/error-handling.d.ts +76 -0
  188. package/dist/types.backup/router/find-match.d.ts +19 -0
  189. package/dist/types.backup/router/handler-context.d.ts +41 -0
  190. package/dist/types.backup/router/instrument.d.ts +161 -0
  191. package/dist/types.backup/router/intercept-resolution.d.ts +79 -0
  192. package/dist/types.backup/router/lazy-includes.d.ts +26 -0
  193. package/dist/types.backup/router/loader-resolution.d.ts +63 -0
  194. package/dist/types.backup/router/logging.d.ts +41 -0
  195. package/dist/types.backup/router/manifest.d.ts +8 -0
  196. package/dist/types.backup/router/match-api.d.ts +19 -0
  197. package/dist/types.backup/router/match-context.d.ts +184 -0
  198. package/dist/types.backup/router/match-handlers.d.ts +49 -0
  199. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +113 -0
  200. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +113 -0
  201. package/dist/types.backup/router/match-middleware/cache-store.d.ts +112 -0
  202. package/dist/types.backup/router/match-middleware/index.d.ts +80 -0
  203. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +116 -0
  204. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +94 -0
  205. package/dist/types.backup/router/match-pipelines.d.ts +103 -0
  206. package/dist/types.backup/router/match-result.d.ts +114 -0
  207. package/dist/types.backup/router/metrics.d.ts +6 -0
  208. package/dist/types.backup/router/middleware-types.d.ts +74 -0
  209. package/dist/types.backup/router/middleware.d.ts +116 -0
  210. package/dist/types.backup/router/navigation-snapshot.d.ts +22 -0
  211. package/dist/types.backup/router/params-util.d.ts +8 -0
  212. package/dist/types.backup/router/parse-pattern.d.ts +38 -0
  213. package/dist/types.backup/router/pattern-matching.d.ts +169 -0
  214. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +27 -0
  215. package/dist/types.backup/router/prefetch-limits.d.ts +20 -0
  216. package/dist/types.backup/router/prerender-match.d.ts +50 -0
  217. package/dist/types.backup/router/preview-match.d.ts +22 -0
  218. package/dist/types.backup/router/request-classification.d.ts +104 -0
  219. package/dist/types.backup/router/revalidation.d.ts +57 -0
  220. package/dist/types.backup/router/route-snapshot.d.ts +112 -0
  221. package/dist/types.backup/router/router-context.d.ts +137 -0
  222. package/dist/types.backup/router/router-interfaces.d.ts +432 -0
  223. package/dist/types.backup/router/router-options.d.ts +738 -0
  224. package/dist/types.backup/router/router-registry.d.ts +15 -0
  225. package/dist/types.backup/router/segment-resolution/fresh.d.ts +55 -0
  226. package/dist/types.backup/router/segment-resolution/helpers.d.ts +93 -0
  227. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +33 -0
  228. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +44 -0
  229. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +90 -0
  230. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +53 -0
  231. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +85 -0
  232. package/dist/types.backup/router/segment-resolution/static-store.d.ts +17 -0
  233. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  234. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +28 -0
  235. package/dist/types.backup/router/segment-resolution.d.ts +3 -0
  236. package/dist/types.backup/router/segment-wrappers.d.ts +53 -0
  237. package/dist/types.backup/router/state-cookie-name.d.ts +1 -0
  238. package/dist/types.backup/router/substitute-pattern-params.d.ts +23 -0
  239. package/dist/types.backup/router/telemetry-otel.d.ts +113 -0
  240. package/dist/types.backup/router/telemetry.d.ts +215 -0
  241. package/dist/types.backup/router/timeout.d.ts +68 -0
  242. package/dist/types.backup/router/tracing.d.ts +125 -0
  243. package/dist/types.backup/router/trie-matching.d.ts +32 -0
  244. package/dist/types.backup/router/types.d.ts +98 -0
  245. package/dist/types.backup/router/url-params.d.ts +26 -0
  246. package/dist/types.backup/router.d.ts +7 -0
  247. package/dist/types.backup/rsc/capture-queue.d.ts +6 -0
  248. package/dist/types.backup/rsc/full-payload.d.ts +22 -0
  249. package/dist/types.backup/rsc/handler-context.d.ts +31 -0
  250. package/dist/types.backup/rsc/handler.d.ts +9 -0
  251. package/dist/types.backup/rsc/helpers.d.ts +213 -0
  252. package/dist/types.backup/rsc/index.d.ts +17 -0
  253. package/dist/types.backup/rsc/json-route-result.d.ts +20 -0
  254. package/dist/types.backup/rsc/loader-fetch.d.ts +14 -0
  255. package/dist/types.backup/rsc/manifest-init.d.ts +18 -0
  256. package/dist/types.backup/rsc/nonce.d.ts +28 -0
  257. package/dist/types.backup/rsc/origin-guard.d.ts +50 -0
  258. package/dist/types.backup/rsc/progressive-enhancement.d.ts +19 -0
  259. package/dist/types.backup/rsc/redirect-guard.d.ts +35 -0
  260. package/dist/types.backup/rsc/response-cache-serve.d.ts +46 -0
  261. package/dist/types.backup/rsc/response-error.d.ts +19 -0
  262. package/dist/types.backup/rsc/response-route-handler.d.ts +29 -0
  263. package/dist/types.backup/rsc/rsc-rendering.d.ts +23 -0
  264. package/dist/types.backup/rsc/runtime-warnings.d.ts +22 -0
  265. package/dist/types.backup/rsc/server-action.d.ts +68 -0
  266. package/dist/types.backup/rsc/shell-build-manifest.d.ts +84 -0
  267. package/dist/types.backup/rsc/shell-capture-constants.d.ts +27 -0
  268. package/dist/types.backup/rsc/shell-capture.d.ts +374 -0
  269. package/dist/types.backup/rsc/shell-serve.d.ts +136 -0
  270. package/dist/types.backup/rsc/ssr-setup.d.ts +48 -0
  271. package/dist/types.backup/rsc/transition-gate.d.ts +27 -0
  272. package/dist/types.backup/rsc/types.d.ts +290 -0
  273. package/dist/types.backup/runtime-env.d.ts +1 -0
  274. package/dist/types.backup/search-params.d.ts +125 -0
  275. package/dist/types.backup/segment-content-promise.d.ts +13 -0
  276. package/dist/types.backup/segment-fragments.d.ts +56 -0
  277. package/dist/types.backup/segment-loader-promise.d.ts +22 -0
  278. package/dist/types.backup/segment-system.d.ts +84 -0
  279. package/dist/types.backup/serialize.d.ts +164 -0
  280. package/dist/types.backup/server/context.d.ts +494 -0
  281. package/dist/types.backup/server/cookie-parse.d.ts +10 -0
  282. package/dist/types.backup/server/cookie-store.d.ts +107 -0
  283. package/dist/types.backup/server/fetchable-loader-store.d.ts +20 -0
  284. package/dist/types.backup/server/handle-store.d.ts +100 -0
  285. package/dist/types.backup/server/loader-registry.d.ts +32 -0
  286. package/dist/types.backup/server/request-context.d.ts +596 -0
  287. package/dist/types.backup/server/root-layout.d.ts +3 -0
  288. package/dist/types.backup/server.d.ts +15 -0
  289. package/dist/types.backup/ssr/index.d.ts +233 -0
  290. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +3 -0
  291. package/dist/types.backup/ssr/preinit-client-references.d.ts +71 -0
  292. package/dist/types.backup/ssr/ssr-root.d.ts +69 -0
  293. package/dist/types.backup/static-handler.d.ts +57 -0
  294. package/dist/types.backup/testing/cache-status.d.ts +63 -0
  295. package/dist/types.backup/testing/collect-handle.d.ts +20 -0
  296. package/dist/types.backup/testing/dispatch.d.ts +123 -0
  297. package/dist/types.backup/testing/dom.entry.d.ts +15 -0
  298. package/dist/types.backup/testing/e2e/fixture.d.ts +37 -0
  299. package/dist/types.backup/testing/e2e/index.d.ts +30 -0
  300. package/dist/types.backup/testing/e2e/matchers.d.ts +17 -0
  301. package/dist/types.backup/testing/e2e/page-helpers.d.ts +62 -0
  302. package/dist/types.backup/testing/e2e/parity.d.ts +111 -0
  303. package/dist/types.backup/testing/e2e/server.d.ts +35 -0
  304. package/dist/types.backup/testing/flight-matchers.d.ts +55 -0
  305. package/dist/types.backup/testing/flight-normalize.d.ts +1 -0
  306. package/dist/types.backup/testing/flight-tree.d.ts +192 -0
  307. package/dist/types.backup/testing/flight.d.ts +115 -0
  308. package/dist/types.backup/testing/flight.entry.d.ts +27 -0
  309. package/dist/types.backup/testing/generated-routes.d.ts +66 -0
  310. package/dist/types.backup/testing/index.d.ts +52 -0
  311. package/dist/types.backup/testing/internal/context.d.ts +225 -0
  312. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +1 -0
  313. package/dist/types.backup/testing/internal/seed-vars.d.ts +30 -0
  314. package/dist/types.backup/testing/render-handler.d.ts +160 -0
  315. package/dist/types.backup/testing/render-route.d.ts +246 -0
  316. package/dist/types.backup/testing/run-loader.d.ts +186 -0
  317. package/dist/types.backup/testing/run-middleware.d.ts +132 -0
  318. package/dist/types.backup/testing/run-transition-when.d.ts +77 -0
  319. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  320. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  321. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  322. package/dist/types.backup/testing/vitest-stubs/version.d.ts +1 -0
  323. package/dist/types.backup/testing/vitest.d.ts +205 -0
  324. package/dist/types.backup/theme/ThemeProvider.d.ts +13 -0
  325. package/dist/types.backup/theme/ThemeScript.d.ts +45 -0
  326. package/dist/types.backup/theme/constants.d.ts +39 -0
  327. package/dist/types.backup/theme/index.d.ts +29 -0
  328. package/dist/types.backup/theme/theme-context.d.ts +21 -0
  329. package/dist/types.backup/theme/theme-script.d.ts +26 -0
  330. package/dist/types.backup/theme/types.d.ts +162 -0
  331. package/dist/types.backup/theme/use-theme.d.ts +8 -0
  332. package/dist/types.backup/types/boundaries.d.ts +93 -0
  333. package/dist/types.backup/types/cache-types.d.ts +191 -0
  334. package/dist/types.backup/types/error-types.d.ts +114 -0
  335. package/dist/types.backup/types/global-namespace.d.ts +90 -0
  336. package/dist/types.backup/types/handler-context.d.ts +658 -0
  337. package/dist/types.backup/types/index.d.ts +11 -0
  338. package/dist/types.backup/types/loader-types.d.ts +182 -0
  339. package/dist/types.backup/types/request-scope.d.ts +93 -0
  340. package/dist/types.backup/types/route-config.d.ts +105 -0
  341. package/dist/types.backup/types/route-entry.d.ts +95 -0
  342. package/dist/types.backup/types/segments.d.ts +234 -0
  343. package/dist/types.backup/types.d.ts +1 -0
  344. package/dist/types.backup/urls/include-helper.d.ts +17 -0
  345. package/dist/types.backup/urls/include-provider.d.ts +27 -0
  346. package/dist/types.backup/urls/index.d.ts +6 -0
  347. package/dist/types.backup/urls/path-helper-types.d.ts +197 -0
  348. package/dist/types.backup/urls/path-helper.d.ts +12 -0
  349. package/dist/types.backup/urls/pattern-types.d.ts +166 -0
  350. package/dist/types.backup/urls/response-types.d.ts +67 -0
  351. package/dist/types.backup/urls/type-extraction.d.ts +157 -0
  352. package/dist/types.backup/urls/urls-function.d.ts +24 -0
  353. package/dist/types.backup/urls.d.ts +1 -0
  354. package/dist/types.backup/use-loader.d.ts +150 -0
  355. package/dist/types.backup/vercel/index.d.ts +10 -0
  356. package/dist/types.backup/vercel/tracing.d.ts +70 -0
  357. package/dist/types.backup/vite/debug.d.ts +80 -0
  358. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +12 -0
  359. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +65 -0
  360. package/dist/types.backup/vite/discovery/discover-routers.d.ts +17 -0
  361. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +113 -0
  362. package/dist/types.backup/vite/discovery/gate-state.d.ts +79 -0
  363. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +24 -0
  364. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +32 -0
  365. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +22 -0
  366. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +40 -0
  367. package/dist/types.backup/vite/discovery/state.d.ts +162 -0
  368. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +15 -0
  369. package/dist/types.backup/vite/index.d.ts +11 -0
  370. package/dist/types.backup/vite/inject-client-debug.d.ts +56 -0
  371. package/dist/types.backup/vite/plugin-types.d.ts +298 -0
  372. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +6 -0
  373. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +40 -0
  374. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +35 -0
  375. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  376. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +18 -0
  377. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +37 -0
  378. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  379. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  380. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  381. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  382. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +29 -0
  383. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +6 -0
  384. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +25 -0
  385. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +20 -0
  386. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +20 -0
  387. package/dist/types.backup/vite/plugins/vercel-output.d.ts +85 -0
  388. package/dist/types.backup/vite/plugins/version-injector.d.ts +21 -0
  389. package/dist/types.backup/vite/plugins/version-plugin.d.ts +19 -0
  390. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +36 -0
  391. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  392. package/dist/types.backup/vite/rango.d.ts +29 -0
  393. package/dist/types.backup/vite/router-discovery.d.ts +23 -0
  394. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +64 -0
  395. package/dist/types.backup/vite/utils/banner.d.ts +2 -0
  396. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +28 -0
  397. package/dist/types.backup/vite/utils/client-chunks.d.ts +55 -0
  398. package/dist/types.backup/vite/utils/directive-prologue.d.ts +16 -0
  399. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +37 -0
  400. package/dist/types.backup/vite/utils/manifest-utils.d.ts +7 -0
  401. package/dist/types.backup/vite/utils/package-resolution.d.ts +6 -0
  402. package/dist/types.backup/vite/utils/prerender-utils.d.ts +32 -0
  403. package/dist/types.backup/vite/utils/shared-utils.d.ts +55 -0
  404. package/dist/vite/index.js +1 -1
  405. package/package.json +1 -1
  406. package/skills/parallel/SKILL.md +1 -1
  407. package/skills/ppr/SKILL.md +44 -3
  408. package/src/browser/prefetch/cache.ts +53 -9
  409. package/src/browser/prefetch/fetch.ts +83 -2
  410. package/src/cache/cf/cf-cache-store.ts +27 -8
  411. package/src/cache/types.ts +41 -6
  412. package/src/cache/vercel/vercel-cache-store.ts +24 -10
  413. package/src/route-definition/helpers-types.ts +5 -3
  414. package/src/rsc/capture-queue.ts +120 -47
  415. package/src/rsc/rsc-rendering.ts +11 -3
  416. package/src/rsc/shell-build-manifest.ts +20 -7
  417. package/src/rsc/shell-capture.ts +164 -12
  418. package/src/rsc/shell-serve.ts +27 -12
  419. package/src/static-handler.ts +18 -2
  420. package/src/urls/path-helper-types.ts +9 -10
@@ -67,8 +67,31 @@ export interface DecodedPrefetch {
67
67
  * tell a FULLY warmed prefetch (payload commits without suspending → safe to
68
68
  * commit in a startTransition, no fallback flash) from a partially-warmed one
69
69
  * (still streaming → stream its fallbacks like a cold load). Starts false.
70
+ *
71
+ * On a respawned entry (see `respawn`) this starts true: the buffered bytes
72
+ * are a complete stream by construction.
70
73
  */
71
74
  complete: boolean;
75
+ /**
76
+ * Re-create this entry from its buffered raw Flight bytes. Attached (by
77
+ * `executePrefetchFetch`) only after the stream ended cleanly AND the eager
78
+ * decode succeeded — a truncated or failed prefetch must stay one-shot.
79
+ *
80
+ * Why bytes and not the decoded payload: the revived payload is a live graph
81
+ * with one-shot stream edges (the handle stream is an async generator drained
82
+ * during commit; userland payloads may embed serialized ReadableStreams).
83
+ * Re-decoding from the wire bytes manufactures fresh instances of every
84
+ * stream, which no amount of cloning the revived graph can do. Each call tees
85
+ * the reserve branch, so the replacement entry carries its own `respawn` —
86
+ * one prefetch serves unlimited adoptions within TTL/state validity.
87
+ */
88
+ respawn?: () => DecodedPrefetch;
89
+ /**
90
+ * Release the buffered reserve bytes. Called when the entry is evicted
91
+ * without being consumed (expiry, FIFO, sweep, cache clear) so the tee
92
+ * buffer is dropped promptly instead of waiting for GC.
93
+ */
94
+ dispose?: () => void;
72
95
  }
73
96
  /**
74
97
  * Initialize the prefetch cache with the configured TTL and max size.
@@ -123,8 +146,14 @@ export declare function buildSourceKey(rangoState: string, sourceHref: string, t
123
146
  export declare function hasPrefetch(key: string): boolean;
124
147
  /**
125
148
  * Consume a cached, eagerly-decoded prefetch. Returns null if not found or
126
- * expired. One-time consumption: the entry is deleted after retrieval.
127
- * Returns null when caching is disabled (TTL <= 0).
149
+ * expired. Returns null when caching is disabled (TTL <= 0).
150
+ *
151
+ * A decoded payload is single-render (its handle stream is drained during the
152
+ * commit), so the returned entry is never served twice. When the entry carries
153
+ * `respawn` (clean-EOF prefetch with buffered bytes), the slot is re-armed in
154
+ * place with a fresh decode of those bytes — the ORIGINAL timestamp is kept so
155
+ * TTL bounds the age of the data, not of the latest adoption. Without
156
+ * `respawn` the entry is deleted (legacy one-shot behavior).
128
157
  *
129
158
  * Does NOT check in-flight prefetches — use consumeInflightPrefetch()
130
159
  * for that (returns a Promise instead of a resolved entry).
@@ -30,6 +30,8 @@ import type { KVNamespace, CFCacheReadDebugEvent, CFCacheDebug, CFCacheStoreOpti
30
30
  export type { KVNamespace, CFCacheReadDebugEvent, CFCacheDebug, CFCacheStoreOptions, };
31
31
  export declare class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
32
32
  readonly supportsPassiveShellReads: true;
33
+ /** True when constructed without KV: the shell family no-ops (see ctor). */
34
+ readonly shellFamilyInert?: boolean;
33
35
  readonly defaults?: CacheDefaults;
34
36
  readonly keyGenerator?: (ctx: RequestContext<TEnv>, defaultKey: string) => string | Promise<string>;
35
37
  private readonly namespace?;
@@ -164,6 +164,15 @@ export interface SegmentCacheStore<TEnv = unknown> {
164
164
  * `stored` when acknowledged, or void for stores without acknowledgements.
165
165
  */
166
166
  putShell?(key: string, entry: ShellCacheEntry, ttlSeconds?: number, swrSeconds?: number, tags?: string[]): Promise<"stored" | "invalidated" | void>;
167
+ /**
168
+ * Declares the shell family present-but-inert: getShell/putShell exist but
169
+ * no-op (CFCacheStore without a KV namespace). scheduleShellCapture skips
170
+ * captures whose only write target is inert — the background render would be
171
+ * dead work that still occupies the per-isolate serialized capture queue
172
+ * (a promise-heavy route bakes for seconds per MISS with nothing stored).
173
+ * Absent/false means the family, when present, actually stores.
174
+ */
175
+ shellFamilyInert?: boolean;
167
176
  /**
168
177
  * Get a cached function result by key.
169
178
  * Returns the serialized value, optional handle data, and staleness flag.
@@ -221,8 +230,8 @@ export interface CacheItemResult {
221
230
  /**
222
231
  * A cached PPR (Partial Pre-rendering) shell entry.
223
232
  *
224
- * One entry carries BOTH artifacts a resume needs — the rendered HTML prelude
225
- * and React's postponed state — because the pair is version- and
233
+ * A DOCUMENT entry carries BOTH artifacts a resume needs — the rendered HTML
234
+ * prelude and React's postponed state — because the pair is version- and
226
235
  * generation-coupled and must never be mixed across a React upgrade or a build
227
236
  * change. The reactVersion and buildVersion fields are the read-time gates that
228
237
  * enforce both halves: isValidShellHit (rsc/shell-serve.ts) treats an entry
@@ -231,15 +240,28 @@ export interface CacheItemResult {
231
240
  * positions against one exact tree; resuming it against a different React or a
232
241
  * different app build tree-mismatches inside resume(), AFTER the 200 + prelude
233
242
  * are committed — an unrecoverable broken serve).
243
+ *
244
+ * A `navigationOnly` entry stores NEITHER half: nothing ever serves its HTML
245
+ * (document serving skips navigationOnly entries at the read gate, and partial
246
+ * replay consumes only `snapshot`/`docKey`), so the prelude would ride every
247
+ * store write and read as dead weight at KV-value scale. The capture still runs
248
+ * the full fizz prerender — it is the completeness arbiter and sanity gate —
249
+ * but its output is dropped before putShell. hasIntactShellPayload is the
250
+ * document-half gate; navigationOnly entries never satisfy it.
234
251
  */
235
252
  export interface ShellCacheEntry {
236
- /** Rendered HTML prelude bytes, base64-encoded (stores are JSON-serializing). */
237
- prelude: string;
253
+ /**
254
+ * Rendered HTML prelude bytes, base64-encoded (stores are JSON-serializing).
255
+ * Absent on `navigationOnly` entries (no document half is stored — see the
256
+ * interface doc); present on every document-servable entry.
257
+ */
258
+ prelude?: string;
238
259
  /**
239
260
  * JSON.stringify of React's postponed state, or null when the shell settled
240
- * with no holes (the DATA variant — served without a fizz resume).
261
+ * with no holes (the DATA variant — served without a fizz resume). Absent
262
+ * exactly when `prelude` is (navigationOnly entries).
241
263
  */
242
- postponed: string | null;
264
+ postponed?: string | null;
243
265
  /** React.version captured at prerender time; the read-time invalidation gate. */
244
266
  reactVersion: string;
245
267
  /**
@@ -322,6 +344,17 @@ export interface ShellCacheEntry {
322
344
  /** Capture-generation start time; tag invalidations at or after it win. */
323
345
  createdAt: number;
324
346
  }
347
+ /**
348
+ * A shell entry whose document half is present — what the document HIT path
349
+ * (serveShellHit / lookupBuildShell) consumes. hasIntactShellPayload
350
+ * (rsc/shell-serve.ts) is the runtime gate AND the type narrowing to this
351
+ * shape; navigationOnly entries never pass it (their document half is not
352
+ * stored).
353
+ */
354
+ export type DocumentShellCacheEntry = ShellCacheEntry & {
355
+ prelude: string;
356
+ postponed: string | null;
357
+ };
325
358
  /**
326
359
  * The families a shell snapshot pins. The item/segment/response families are
327
360
  * cache-store reads/writes (recorded by RecordingShellStore); the loader family
@@ -1,6 +1,7 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { ExtractRouteParams, Handler, PartialCacheOptions, ErrorBoundaryHandler, LoaderDefinition, MiddlewareFn, NotFoundBoundaryHandler, ResolvedRouteMap, RouteDefinition, ShouldRevalidateFn, TransitionConfig } from "../types.js";
3
3
  import type { AllUseItems, LayoutItem, RouteItem, ParallelItem, InterceptItem, MiddlewareItem, RevalidateItem, LoaderItem, LoadingItem, ErrorBoundaryItem, NotFoundBoundaryItem, LayoutUseItem, RouteUseItem, ParallelUseItem, InterceptUseItem, LoaderUseItem, CacheItem, TransitionItem, UseItems } from "../route-types.js";
4
+ import type { StaticHandlerRef } from "../static-handler.js";
4
5
  export type { AllUseItems, LayoutItem, RouteItem, ParallelItem, InterceptItem, MiddlewareItem, RevalidateItem, LoaderItem, ErrorBoundaryItem, NotFoundBoundaryItem, LayoutUseItem, RouteUseItem, ParallelUseItem, InterceptUseItem, CacheItem, } from "../route-types.js";
5
6
  export type { InterceptConfig, InterceptSelectorContext, InterceptSegmentsState, InterceptWhenFn, } from "../server/context";
6
7
  /**
@@ -75,8 +76,8 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
75
76
  * },
76
77
  * })
77
78
  * ```
78
- * @param slots - Object with slot names (prefixed with @) mapped to handlers
79
- * or `{ handler, use? }` slot descriptors.
79
+ * @param slots - Object with slot names (prefixed with @) mapped to handlers,
80
+ * Static() definitions, or `{ handler, use? }` descriptors.
80
81
  * @param use - Optional callback for loaders, loading, revalidate, etc.
81
82
  * Items here apply to every slot in the call (broadcast).
82
83
  * For per-slot single-assignment items, use the slot descriptor's
@@ -84,8 +85,8 @@ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
84
85
  * so they take precedence on `loading()` and other last-write-wins
85
86
  * fields.
86
87
  */
87
- parallel: (slots: Record<`@${string}`, Handler<any, any, TEnv> | ReactNode | {
88
- handler: Handler<any, any, TEnv> | ReactNode;
88
+ parallel: (slots: Record<`@${string}`, Handler<any, any, TEnv> | ReactNode | StaticHandlerRef | {
89
+ handler: Handler<any, any, TEnv> | ReactNode | StaticHandlerRef;
89
90
  use?: () => UseItems<ParallelUseItem>;
90
91
  }>, use?: () => UseItems<ParallelUseItem>) => ParallelItem;
91
92
  /**
@@ -1,5 +1,20 @@
1
1
  /** Bound queued/running capture closures retained by one isolate. */
2
2
  export declare const MAX_ADMITTED_CAPTURES: number;
3
+ /** Point-in-time queue occupancy, for capture-scheduling telemetry. */
4
+ export interface CaptureQueueDepths {
5
+ /** A capture is currently executing (never preempted). */
6
+ running: boolean;
7
+ /** Waiting document-priority captures (run before every navigation capture). */
8
+ document: number;
9
+ /** Waiting navigation-priority captures. */
10
+ navigation: number;
11
+ }
12
+ /**
13
+ * Snapshot the queue's waiting/running state. Wait-timed-out entries still
14
+ * sitting in the arrays (pruned lazily by takeNextCapture) are excluded — they
15
+ * will never run, so counting them would overstate the backlog.
16
+ */
17
+ export declare function captureQueueDepths(): CaptureQueueDepths;
3
18
  /** The caller may drop this best-effort capture and retry on a later request. */
4
19
  export declare class CaptureQueueFullError extends Error {
5
20
  constructor();
@@ -24,10 +39,11 @@ export declare class CaptureQueueWaitTimeoutError extends Error {
24
39
  constructor(waitedMs: number);
25
40
  }
26
41
  /**
27
- * Run `task` after every previously enqueued capture has settled. Returns a
28
- * promise for THIS task's completion (rejections propagate to the caller —
29
- * the queue itself is insulated).
42
+ * Run `task` after the active capture and every higher/equal-priority capture
43
+ * ahead of it have settled. Returns a promise for THIS task's completion
44
+ * (rejections propagate to the caller — the queue itself is insulated).
30
45
  */
31
46
  export declare function enqueueSerializedCapture(task: () => Promise<void>, opts?: {
32
47
  maxQueueWaitMs?: number;
48
+ priority?: "document" | "navigation";
33
49
  }): Promise<void>;
@@ -24,7 +24,7 @@
24
24
  * as the reference instant. No tombstones — the manifest is immutable; the
25
25
  * markers say whether it is still current.
26
26
  */
27
- import type { SegmentCacheStore, ShellCacheEntry } from "../cache/types.js";
27
+ import type { DocumentShellCacheEntry, SegmentCacheStore, ShellCacheEntry } from "../cache/types.js";
28
28
  import type { SearchParamsFilter } from "../cache/search-params-filter.js";
29
29
  /** One baked manifest record (the __ps asset module's default export). */
30
30
  export interface BuildShellEntry {
@@ -49,7 +49,7 @@ declare global {
49
49
  /** Reset the memoized manifest (unit tests swap the global loader). */
50
50
  export declare function resetBuildShellManifestForTests(): void;
51
51
  export interface BuildShellHit {
52
- entry: ShellCacheEntry;
52
+ entry: DocumentShellCacheEntry;
53
53
  /** Past createdAt + ttl: serve, but schedule the runtime recapture. */
54
54
  stale: boolean;
55
55
  }
@@ -125,6 +125,10 @@ export interface ShellCaptureDebugEvent {
125
125
  * - skip-backoff: the key is inside its refused-capture backoff window and
126
126
  * the capture was not attempted
127
127
  * - skip-capacity: the isolate capture queue is full; a later request may retry
128
+ * - skip-inert-store: the resolved store's shell family is missing or
129
+ * declared inert (SegmentCacheStore.shellFamilyInert — a CFCacheStore
130
+ * without a KV namespace); nothing could store the result, so the
131
+ * background render was not scheduled at all
128
132
  * - skip-queue-timeout: the capture waited past CAPTURE_QUEUE_WAIT_BUDGET_MS
129
133
  * behind other captures and was dropped unrun (no backoff — the route is
130
134
  * not doomed, the isolate was busy; a later request re-probes). Carries
@@ -132,7 +136,7 @@ export interface ShellCaptureDebugEvent {
132
136
  * - backoff: the key entered (or escalated) backoff after a terminal
133
137
  * no-shell — carries the new backoff state
134
138
  */
135
- outcome: "stored" | "redirect" | "no-shell" | "refused" | "error" | "skip-in-flight" | "skip-backoff" | "skip-capacity" | "skip-queue-timeout" | "backoff";
139
+ outcome: "stored" | "redirect" | "no-shell" | "refused" | "error" | "skip-in-flight" | "skip-backoff" | "skip-capacity" | "skip-inert-store" | "skip-queue-timeout" | "backoff";
136
140
  /** Attempt number (1 = first, 2 = in-place retry). Absent on skips. */
137
141
  attempt?: number;
138
142
  /** Wall-clock ms of the whole attempt (barrier + render + drain + put). */
@@ -163,6 +167,22 @@ export interface ShellCaptureDebugEvent {
163
167
  backoffRemainingMs?: number;
164
168
  /** Ms the capture waited in the serialized queue (skip-queue-timeout). */
165
169
  queueWaitMs?: number;
170
+ /** Queue priority class at enqueue: document outranks queued navigation. */
171
+ queuePriority?: "document" | "navigation";
172
+ /**
173
+ * Captures ahead at enqueue: the active one plus every waiting capture of
174
+ * same-or-higher priority. 0 = this capture starts immediately.
175
+ */
176
+ queueAhead?: number;
177
+ /**
178
+ * Ms the capture gate was HELD waiting for the slowest bake source — a
179
+ * top-level pushed handle promise or a bake-lane loader container — to
180
+ * settle, measured from capture start. Bake time is by-design shell latency
181
+ * (the hole doctrine: top-level promises bake), but it recurs on EVERY
182
+ * capture of the route and occupies the serialized queue; this field makes
183
+ * it attributable. Absent when nothing held the gate.
184
+ */
185
+ bakeWaitMs?: number;
166
186
  }
167
187
  /**
168
188
  * Debug sink for the capture pipeline, mirroring {@link CFCacheDebug}: `true`
@@ -322,7 +342,7 @@ type CaptureAttemptOutcome = "stored" | "redirect" | "no-shell" | "refused";
322
342
  * bag, not a return value: captureAndStoreShell's outcome type stays a string
323
343
  * union its existing callers (producer B, tests) consume unchanged.
324
344
  */
325
- type CaptureAttemptStats = Pick<ShellCaptureDebugEvent, "barrierWaitMs" | "writeSettleMs" | "preludeBytes" | "snapshotBytes" | "snapshotSkipped" | "untaggedBake" | "storeWrite">;
345
+ type CaptureAttemptStats = Pick<ShellCaptureDebugEvent, "barrierWaitMs" | "writeSettleMs" | "preludeBytes" | "snapshotBytes" | "snapshotSkipped" | "untaggedBake" | "storeWrite" | "bakeWaitMs">;
326
346
  /**
327
347
  * Run the shell capture with a single in-place retry, then store the result.
328
348
  *
@@ -17,7 +17,7 @@
17
17
  */
18
18
  import { type EntryData } from "../server/context.js";
19
19
  import type { SearchParamsFilter } from "../cache/search-params-filter.js";
20
- import type { ShellCacheEntry, SegmentCacheStore } from "../cache/types.js";
20
+ import type { DocumentShellCacheEntry, ShellCacheEntry, SegmentCacheStore } from "../cache/types.js";
21
21
  /** Debug/status header the browser (and e2e assertions) can read: HIT | MISS. */
22
22
  export declare const SHELL_STATUS_HEADER = "x-rango-shell";
23
23
  /** Partial-navigation status header set only after captured PPR segments are consumed. */
@@ -106,18 +106,24 @@ export declare function buildShellKey(url: URL, filter?: SearchParamsFilter): st
106
106
  */
107
107
  export declare function isValidShellHit(entry: ShellCacheEntry, buildVersion: string): boolean;
108
108
  /**
109
- * Payload integrity gate, run BEFORE the HIT response commits: a stored entry
110
- * whose prelude is not decodable base64 or whose postponed blob is not
111
- * parseable JSON would otherwise throw AFTER the 200 + full static prelude
112
- * flushed (`serveShellHit` decodes at stream construction, `resumeShellHTML`
113
- * parses in the tail) — the client gets a visually complete page that never
114
- * hydrates, re-served on every request until the entry ages out (no eviction
115
- * path exists; failure schedules no recapture by itself). Checking here turns
116
- * a corrupt entry (store-layer fault) into a plain MISS the recapture
117
- * overwrites. Cost: one duplicate decode/parse per HIT, sub-ms against a
118
- * prelude flush that dominates the path.
109
+ * DOCUMENT-half integrity gate and type narrowing, run BEFORE the HIT response
110
+ * commits: a stored entry whose prelude is not decodable base64 or whose
111
+ * postponed blob is not parseable JSON would otherwise throw AFTER the 200 +
112
+ * full static prelude flushed (`serveShellHit` decodes at stream construction,
113
+ * `resumeShellHTML` parses in the tail) — the client gets a visually complete
114
+ * page that never hydrates, re-served on every request until the entry ages
115
+ * out (no eviction path exists; failure schedules no recapture by itself).
116
+ * Checking here turns a corrupt entry (store-layer fault) into a plain MISS
117
+ * the recapture overwrites. Cost: one duplicate decode/parse per HIT, sub-ms
118
+ * against a prelude flush that dominates the path.
119
+ *
120
+ * navigationOnly entries store no document half (prelude/postponed absent) and
121
+ * therefore never pass. The partial-replay path skips this gate for them
122
+ * (replayableShellSnapshot) — snapshot fragment corruption is caught by the
123
+ * consumer-side Flight decoders instead (SegmentFragmentDecodeError → healing
124
+ * capture).
119
125
  */
120
- export declare function hasIntactShellPayload(entry: ShellCacheEntry): boolean;
126
+ export declare function hasIntactShellPayload(entry: ShellCacheEntry): entry is DocumentShellCacheEntry;
121
127
  /** Decode a base64 prelude back into bytes for stream composition. */
122
128
  export declare function base64ToBytes(b64: string): Uint8Array;
123
129
  /** True when the store implements the shell entry family. */
@@ -42,7 +42,20 @@ export interface StaticHandlerOptions {
42
42
  */
43
43
  passthrough?: boolean;
44
44
  }
45
- export interface StaticHandlerDefinition<TParams extends Record<string, any> = any> {
45
+ declare const STATIC_HANDLER_REF: unique symbol;
46
+ /**
47
+ * Opaque identity used by DSL type seams that accept Static() values.
48
+ *
49
+ * The brand is required, never optional: an optional brand makes this a weak
50
+ * type, and weak-type checking lets `{}` through — `parallel({ "@x": {} })`
51
+ * would typecheck and then die at render as an invalid React child. The
52
+ * symbol never exists at runtime; Static() casts its return instead.
53
+ */
54
+ export interface StaticHandlerRef {
55
+ /** @internal Type-only brand; see interface doc. */
56
+ readonly [STATIC_HANDLER_REF]: true;
57
+ }
58
+ export interface StaticHandlerDefinition<TParams extends Record<string, any> = any> extends StaticHandlerRef {
46
59
  readonly __brand: "staticHandler";
47
60
  /** Auto-generated unique ID (injected by Vite plugin). */
48
61
  $$id: string;
@@ -55,3 +68,4 @@ export interface StaticHandlerDefinition<TParams extends Record<string, any> = a
55
68
  }
56
69
  export declare function Static<TParams extends Record<string, any> = {}>(handler: (ctx: StaticBuildContext) => ReactNode | Promise<ReactNode>, options?: StaticHandlerOptions, __injectedId?: string): StaticHandlerDefinition<TParams>;
57
70
  export declare function isStaticHandler(value: unknown): value is StaticHandlerDefinition;
71
+ export {};
@@ -3,7 +3,7 @@ import type { ErrorBoundaryHandler, ExtractParams, Handler, HandlerContext, Load
3
3
  import type { AllUseItems, TypedLayoutItem, ParallelItem, InterceptItem, MiddlewareItem, RevalidateItem, LoaderItem, LoadingItem, ErrorBoundaryItem, NotFoundBoundaryItem, LayoutUseItem, RouteUseItem, ResponseRouteUseItem, ParallelUseItem, InterceptUseItem, LoaderUseItem, TypedCacheItem, TransitionItem, TypedTransitionItem, TypedRouteItem, TypedIncludeItem, UseItems } from "../route-types.js";
4
4
  import type { SearchSchema } from "../search-params.js";
5
5
  import type { PrerenderHandlerDefinition, PassthroughHandlerDefinition } from "../prerender.js";
6
- import type { StaticHandlerDefinition } from "../static-handler.js";
6
+ import type { StaticHandlerDefinition, StaticHandlerRef } from "../static-handler.js";
7
7
  import type { ResponseHandler, ResponseHandlerContext, TextResponseHandler } from "./response-types.js";
8
8
  import type { UnnamedRoute, LocalOnlyInclude, PathOptions, UrlPatterns, IncludeOptions } from "./pattern-types.js";
9
9
  import type { ExtractRoutes, ExtractResponses } from "./type-extraction.js";
@@ -118,13 +118,12 @@ export type PathHelpers<TEnv> = {
118
118
  *
119
119
  * Not generic over the slots record: an inferred type parameter makes the
120
120
  * object literal an inference site, which suppresses contextual typing of
121
- * arrow slot handlers (`(ctx) => ...` was implicit any). Bare handlers infer
122
- * now; a descriptor's `handler:` arrow still needs an explicit ctx annotation
123
- * because StaticHandlerDefinition's own `.handler` joins the contextual union
124
- * (two callables — see parallel-slot-handler-types.test.ts).
121
+ * arrow slot handlers (`(ctx) => ...` was implicit any). Static() values use
122
+ * an opaque handler-less reference here so their own `.handler` cannot
123
+ * contribute a second call signature or expose internal fields in completion.
125
124
  */
126
- parallel: (slots: Record<`@${string}`, Handler<any, any, TEnv> | ReactNode | StaticHandlerDefinition | {
127
- handler: Handler<any, any, TEnv> | ReactNode | StaticHandlerDefinition;
125
+ parallel: (slots: Record<`@${string}`, Handler<any, any, TEnv> | ReactNode | StaticHandlerRef | {
126
+ handler: Handler<any, any, TEnv> | ReactNode | StaticHandlerRef;
128
127
  use?: () => ParallelUseItem[];
129
128
  }>, use?: () => ParallelUseItem[]) => ParallelItem;
130
129
  /**
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Internal Types - Implementation Details
3
+ *
4
+ * @internal
5
+ * These types are for internal use only and should not be relied upon by consumers.
6
+ * They may change without notice between versions.
7
+ *
8
+ * If you find yourself needing these types, please open an issue to discuss
9
+ * adding them to the public API.
10
+ */
11
+ /**
12
+ * @internal
13
+ * Internal representation of a resolved route segment.
14
+ * Used during route matching and rendering pipeline.
15
+ */
16
+ export type { ResolvedSegment, SegmentMetadata } from "./types.js";
17
+ /**
18
+ * @internal
19
+ * Internal match result from route resolution.
20
+ */
21
+ export type { MatchResult, SlotState } from "./types.js";
22
+ /**
23
+ * @internal
24
+ * Context for intercept route selection.
25
+ */
26
+ export type { InterceptSelectorContext, InterceptSegmentsState, InterceptWhenFn, } from "./server/context.js";
27
+ /**
28
+ * @internal
29
+ * RSC protocol payload structure.
30
+ */
31
+ export type { RscPayload, ReactFormState } from "./rsc/types.js";
32
+ /**
33
+ * @internal
34
+ * Internal navigation store interface.
35
+ */
36
+ export type { NavigationStore, NavigationBridge, RscMetadata, ActionResult, InflightAction, NavigationState, TrackedActionState, ActionStateListener, SegmentCache, SegmentState, NavigationUpdate, } from "./browser/types.js";
37
+ /**
38
+ * @internal
39
+ * Internal handle storage mechanism.
40
+ */
41
+ export type { HandleStore, HandleData } from "./server/handle-store.js";
42
+ /**
43
+ * @internal
44
+ * Segment handle data in cache.
45
+ */
46
+ export type { SegmentHandleData } from "./cache/types.js";
47
+ /**
48
+ * @internal
49
+ * Internal cache entry data structure.
50
+ */
51
+ export type { CachedEntryData, CacheGetResult, SerializedSegmentData, CacheDefaults, } from "./cache/types.js";
52
+ /**
53
+ * @internal
54
+ * Router context for AsyncLocalStorage.
55
+ */
56
+ export type { RouterContext, RevalidationContext, InterceptResult, } from "./router/router-context.js";
57
+ /**
58
+ * @internal
59
+ * Route match context during pipeline processing.
60
+ */
61
+ export type { MatchContext, MatchPipelineState, } from "./router/match-context.js";
62
+ /**
63
+ * @internal
64
+ * Pattern matching result.
65
+ */
66
+ export type { RouteMatchResult } from "./router/pattern-matching.js";
67
+ /**
68
+ * @internal
69
+ * Entry data during route traversal.
70
+ */
71
+ export type { EntryData, InterceptEntry, MetricsStore, PerformanceMetric, EntryCacheConfig, EntryPropCommon, EntryPropDatas, LoaderEntry, EntryPropSegments, } from "./server/context.js";
72
+ /**
73
+ * @internal
74
+ * Internal handler context with additional props for router internals.
75
+ * Includes `_currentSegmentId` and `_responseType`.
76
+ */
77
+ export type { InternalHandlerContext } from "./types.js";
78
+ /**
79
+ * @internal
80
+ * Builds React element trees from route segments.
81
+ */
82
+ export { renderSegments } from "./segment-system.js";
83
+ /**
84
+ * @internal
85
+ * Error sanitization and network error utilities.
86
+ */
87
+ export { sanitizeError, NetworkError, isNetworkError } from "./errors.js";
88
+ /**
89
+ * @internal
90
+ * Scoped view of GeneratedRouteMap for Handler<"localName", ScopedRouteMap<"prefix">>.
91
+ */
92
+ export type { ScopedRouteMap } from "./types.js";
93
+ /**
94
+ * @internal
95
+ * Type-level utilities for reverse URL generation.
96
+ */
97
+ export type { MergeRoutes, SanitizePrefix } from "./reverse.js";
98
+ /**
99
+ * @internal
100
+ * Individual telemetry event types.
101
+ */
102
+ export type { RequestStartEvent, RequestEndEvent, RequestErrorEvent, RequestTimeoutEvent, LoaderStartEvent, LoaderEndEvent, LoaderErrorEvent, HandlerErrorEvent, CacheDecisionEvent, RevalidationDecisionEvent, } from "./router/telemetry.js";
103
+ /**
104
+ * @internal
105
+ * Type guard for prerender handler definitions.
106
+ */
107
+ export { isPrerenderHandler, isPassthroughHandler } from "./prerender.js";
108
+ /**
109
+ * @internal
110
+ * Type guard for static handler definitions.
111
+ */
112
+ export { isStaticHandler } from "./static-handler.js";
113
+ /**
114
+ * @internal
115
+ * Sentinel used to tag response-type route entries.
116
+ */
117
+ export { RESPONSE_TYPE } from "./urls.js";
118
+ /**
119
+ * @internal
120
+ * Debug utilities for route matching performance analysis.
121
+ */
122
+ export { enableMatchDebug, getMatchDebugStats, } from "./router/pattern-matching.js";
123
+ /**
124
+ * @internal
125
+ * Debug utilities for manifest inspection and comparison.
126
+ */
127
+ export { serializeManifest, compareManifests, formatManifestDiff, type SerializedEntry, type SerializedManifest, } from "./debug.js";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,57 @@
1
+ import type { ActionEntry } from "./event-controller.js";
2
+ /**
3
+ * Post-reconciliation action outcome (discriminated union). Error and
4
+ * full-update-unsupported cases are handled inline in the bridge before
5
+ * reconciliation; this only covers successfully-reconciled partial responses.
6
+ */
7
+ type ActionScenario = {
8
+ type: "navigated-away";
9
+ historyKeyChanged: boolean;
10
+ onInterceptRoute: boolean;
11
+ } | {
12
+ type: "hmr-missing";
13
+ } | {
14
+ type: "consolidation-needed";
15
+ segmentIds: string[];
16
+ } | {
17
+ type: "concurrent-skip";
18
+ otherFetchingCount: number;
19
+ } | {
20
+ type: "normal";
21
+ };
22
+ /**
23
+ * Plain data inputs for classifying a post-reconciliation action outcome.
24
+ * No browser objects or controller references — all values are snapshots.
25
+ */
26
+ export interface ActionOutcomeInput {
27
+ /** This action's unique instance ID */
28
+ handleId: string;
29
+ /** All in-flight action entries (snapshot from event controller) */
30
+ inflightActions: Map<string, ActionEntry>;
31
+ /** Whether any concurrent actions occurred (controller-level shared flag) */
32
+ hadAnyConcurrentActions: boolean;
33
+ /** Segments revalidated by concurrent actions (from tracking set) */
34
+ revalidatedSegments: Set<string>;
35
+ /** window.location.pathname captured at action start */
36
+ actionStartPathname: string;
37
+ /** window.location.pathname at classification time */
38
+ currentPathname: string;
39
+ /** window.history.state?.key captured at action start */
40
+ actionStartLocationKey: string | undefined;
41
+ /** window.history.state?.key at classification time */
42
+ currentLocationKey: string | undefined;
43
+ /** Number of segments after reconciliation */
44
+ reconciledSegmentCount: number;
45
+ /** Number of matched segment IDs from server */
46
+ matchedCount: number;
47
+ /** Current intercept source URL (null when not on intercept route) */
48
+ currentInterceptSource: string | null;
49
+ }
50
+ /**
51
+ * Classify a post-reconciliation action outcome. Ordered priority chain: each
52
+ * case assumes the earlier ones are false (e.g. concurrent-skip only applies on
53
+ * the still-current route, consolidation only once no action is still fetching).
54
+ * The bridge calls this to decide whether to render, skip, consolidate, or refetch.
55
+ */
56
+ export declare function classifyActionOutcome(input: ActionOutcomeInput): ActionScenario;
57
+ export {};
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Action fence: a refcounted flag that is raised while a server action is in
3
+ * flight and lowered when it resolves.
4
+ *
5
+ * It replaces the eager cache clear the action bridge used to do at action
6
+ * start. While the fence is up, the decision of whether the action invalidated
7
+ * anything is deferred to the response:
8
+ *
9
+ * - prefetch consumption is suspended (a queued prefetch result is not served),
10
+ * - a genuine navigation during the flight fetches with `cache: "no-store"` so
11
+ * it cannot be served stale bytes from the browser's Vary-keyed HTTP cache,
12
+ * - popstate reads are treated as stale-while-revalidate.
13
+ *
14
+ * Nothing is wiped, rotated, or broadcast while the fence is up — that is what
15
+ * keeps a sibling tab from seeing a pre-commit signal. Refcounted so concurrent
16
+ * actions compose: each action raises and lowers its own reference, and the
17
+ * fence is down only when the count reaches zero.
18
+ *
19
+ * The refcount is a single module-level counter, not keyed by routerId.
20
+ * Consumers (navigation-client.ts, prefetch/fetch.ts, navigation-bridge.ts)
21
+ * read it unscoped, so an action in one router would suppress another router's
22
+ * navigation/prefetch caches. This is correct only because two routers cannot
23
+ * coexist in one live document: an SPA navigation crossing a host-router
24
+ * boundary forces a full document reload (src/router/request-classification.ts
25
+ * app-switch terminal), so there is always exactly one live router per
26
+ * document. A future multi-router-in-one-document feature must not silently
27
+ * inherit this global, cross-router cache suppression.
28
+ */
29
+ export declare function enterActionFence(): void;
30
+ export declare function exitActionFence(): void;
31
+ export declare function isActionFenceActive(): boolean;
32
+ /** Test-only: reset the refcount between cases. */
33
+ export declare function __resetActionFence(): void;
@@ -0,0 +1,34 @@
1
+ import type { ComponentType, ReactNode } from "react";
2
+ /**
3
+ * App-shell metadata: the per-router fields describing the "envelope" around
4
+ * the current app's segment tree — the rootLayout (Document), basename,
5
+ * version, and router identity. Set once from the initial RSC payload and read
6
+ * through the AppShellRef when rendering segments.
7
+ *
8
+ * This is a per-document value. A navigation that crosses a host-router app
9
+ * boundary is a full document load (the server returns X-RSC-Reload for it;
10
+ * see request-classification.ts, mode "app-switch"), so the target app's shell
11
+ * — along with everything else document-level (theme, warmup, prefetch-TTL) —
12
+ * is established fresh by the target app's own load. The shell is never swapped
13
+ * in place within a session.
14
+ */
15
+ export interface AppShell {
16
+ /** Router identity. Used to namespace per-app client state (e.g. the
17
+ * rango-state localStorage key) so sibling apps on the same origin
18
+ * cannot observe each other's cache invalidations. */
19
+ routerId?: string;
20
+ rootLayout?: ComponentType<{
21
+ children: ReactNode;
22
+ }>;
23
+ basename?: string;
24
+ version?: string;
25
+ }
26
+ /**
27
+ * Container for the active app shell. Read-through via `get()` so closures
28
+ * (e.g. the segment renderer) capture the ref and read the shell at call time
29
+ * rather than closing over a stale snapshot.
30
+ */
31
+ export interface AppShellRef {
32
+ get(): AppShell;
33
+ }
34
+ export declare function createAppShellRef(initial: AppShell): AppShellRef;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Mutable app version — updated after HMR revalidation.
3
+ * Read by prefetch, navigation, and context code.
4
+ */
5
+ export declare function getAppVersion(): string | undefined;
6
+ export declare function setAppVersion(version: string | undefined): void;