@rangojs/router 0.0.0-experimental.f2d1a2f1 → 0.0.0-experimental.f4a8e8de

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 (1301) hide show
  1. package/AGENTS.md +8 -4
  2. package/README.md +318 -821
  3. package/dist/bin/rango.js +925 -271
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/types/__internal.d.ts +127 -0
  6. package/dist/types/bin/rango.d.ts +1 -0
  7. package/dist/types/browser/action-coordinator.d.ts +57 -0
  8. package/dist/types/browser/action-fence.d.ts +33 -0
  9. package/dist/types/browser/app-shell.d.ts +34 -0
  10. package/dist/types/browser/app-version.d.ts +6 -0
  11. package/dist/types/browser/connection-warmup.d.ts +31 -0
  12. package/dist/types/browser/cookie-name.d.ts +66 -0
  13. package/dist/types/browser/dev-discovery.d.ts +11 -0
  14. package/dist/types/browser/event-controller.d.ts +231 -0
  15. package/dist/types/browser/history-state.d.ts +26 -0
  16. package/dist/types/browser/index.d.ts +1 -0
  17. package/dist/types/browser/intercept-utils.d.ts +30 -0
  18. package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
  19. package/dist/types/browser/link-interceptor.d.ts +53 -0
  20. package/dist/types/browser/logging.d.ts +33 -0
  21. package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
  22. package/dist/types/browser/navigation-bridge.d.ts +39 -0
  23. package/dist/types/browser/navigation-client.d.ts +17 -0
  24. package/dist/types/browser/navigation-store-handle.d.ts +25 -0
  25. package/dist/types/browser/navigation-store.d.ts +85 -0
  26. package/dist/types/browser/navigation-transaction.d.ts +75 -0
  27. package/dist/types/browser/network-error-handler.d.ts +35 -0
  28. package/dist/types/browser/notify-listeners.d.ts +2 -0
  29. package/dist/types/browser/partial-update.d.ts +61 -0
  30. package/dist/types/browser/prefetch/cache.d.ts +224 -0
  31. package/dist/types/browser/prefetch/default-strategy.d.ts +31 -0
  32. package/dist/types/browser/prefetch/fetch.d.ts +52 -0
  33. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  34. package/dist/types/browser/prefetch/loader.d.ts +12 -0
  35. package/dist/types/browser/prefetch/observer.d.ts +24 -0
  36. package/dist/types/browser/prefetch/policy.d.ts +13 -0
  37. package/dist/types/browser/prefetch/queue.d.ts +48 -0
  38. package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
  39. package/dist/types/browser/prefetch/runtime.d.ts +2 -0
  40. package/dist/types/browser/rango-state.d.ts +56 -0
  41. package/dist/types/browser/react/Link.d.ts +132 -0
  42. package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
  43. package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
  44. package/dist/types/browser/react/context.d.ts +57 -0
  45. package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
  46. package/dist/types/browser/react/index.d.ts +1 -0
  47. package/dist/types/browser/react/location-state-shared.d.ts +162 -0
  48. package/dist/types/browser/react/location-state.d.ts +29 -0
  49. package/dist/types/browser/react/mount-context.d.ts +23 -0
  50. package/dist/types/browser/react/nonce-context.d.ts +14 -0
  51. package/dist/types/browser/react/shallow-equal.d.ts +5 -0
  52. package/dist/types/browser/react/use-action.d.ts +61 -0
  53. package/dist/types/browser/react/use-handle.d.ts +21 -0
  54. package/dist/types/browser/react/use-href.d.ts +32 -0
  55. package/dist/types/browser/react/use-link-status.d.ts +36 -0
  56. package/dist/types/browser/react/use-mount.d.ts +24 -0
  57. package/dist/types/browser/react/use-navigation.d.ts +15 -0
  58. package/dist/types/browser/react/use-params.d.ts +21 -0
  59. package/dist/types/browser/react/use-pathname.d.ts +13 -0
  60. package/dist/types/browser/react/use-reverse.d.ts +40 -0
  61. package/dist/types/browser/react/use-router.d.ts +23 -0
  62. package/dist/types/browser/react/use-search-params.d.ts +19 -0
  63. package/dist/types/browser/react/use-segments.d.ts +29 -0
  64. package/dist/types/browser/response-adapter.d.ts +58 -0
  65. package/dist/types/browser/rsc-router.d.ts +146 -0
  66. package/dist/types/browser/scroll-restoration.d.ts +103 -0
  67. package/dist/types/browser/segment-reconciler.d.ts +74 -0
  68. package/dist/types/browser/segment-structure-assert.d.ts +16 -0
  69. package/dist/types/browser/server-action-bridge.d.ts +29 -0
  70. package/dist/types/browser/types.d.ts +546 -0
  71. package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
  72. package/dist/types/build/collect-fallback-refs.d.ts +5 -0
  73. package/dist/types/build/generate-manifest.d.ts +106 -0
  74. package/dist/types/build/generate-route-types.d.ts +8 -0
  75. package/dist/types/build/index.d.ts +21 -0
  76. package/dist/types/build/merge-full-manifests.d.ts +3 -0
  77. package/dist/types/build/prefix-tree-utils.d.ts +56 -0
  78. package/dist/types/build/route-trie.d.ts +20 -0
  79. package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
  80. package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
  81. package/dist/types/build/route-types/codegen.d.ts +16 -0
  82. package/dist/types/build/route-types/include-resolution.d.ts +74 -0
  83. package/dist/types/build/route-types/param-extraction.d.ts +13 -0
  84. package/dist/types/build/route-types/per-module-writer.d.ts +20 -0
  85. package/dist/types/build/route-types/router-processing.d.ts +81 -0
  86. package/dist/types/build/route-types/scan-filter.d.ts +17 -0
  87. package/dist/types/build/route-types/source-scan.d.ts +13 -0
  88. package/dist/types/build/runtime-discovery.d.ts +24 -0
  89. package/dist/types/cache/background-task.d.ts +21 -0
  90. package/dist/types/cache/cache-error.d.ts +71 -0
  91. package/dist/types/cache/cache-exec-scope.d.ts +31 -0
  92. package/dist/types/cache/cache-key-utils.d.ts +43 -0
  93. package/dist/types/cache/cache-policy.d.ts +59 -0
  94. package/dist/types/cache/cache-runtime.d.ts +51 -0
  95. package/dist/types/cache/cache-scope.d.ts +215 -0
  96. package/dist/types/cache/cache-tag.d.ts +79 -0
  97. package/dist/types/cache/cf/cf-base64.d.ts +4 -0
  98. package/dist/types/cache/cf/cf-cache-constants.d.ts +112 -0
  99. package/dist/types/cache/cf/cf-cache-store.d.ts +616 -0
  100. package/dist/types/cache/cf/cf-cache-types.d.ts +365 -0
  101. package/dist/types/cache/cf/cf-kv-utils.d.ts +43 -0
  102. package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  103. package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
  104. package/dist/types/cache/cf/index.d.ts +4 -0
  105. package/dist/types/cache/document-cache.d.ts +71 -0
  106. package/dist/types/cache/handle-capture.d.ts +23 -0
  107. package/dist/types/cache/handle-snapshot.d.ts +39 -0
  108. package/dist/types/cache/index.d.ts +9 -0
  109. package/dist/types/cache/memory-segment-store.d.ts +163 -0
  110. package/dist/types/cache/profile-registry.d.ts +40 -0
  111. package/dist/types/cache/read-through-swr.d.ts +61 -0
  112. package/dist/types/cache/search-params-filter.d.ts +64 -0
  113. package/dist/types/cache/segment-codec.d.ts +78 -0
  114. package/dist/types/cache/shell-snapshot.d.ts +186 -0
  115. package/dist/types/cache/tag-invalidation.d.ts +74 -0
  116. package/dist/types/cache/taint.d.ts +77 -0
  117. package/dist/types/cache/types.d.ts +503 -0
  118. package/dist/types/cache/vercel/index.d.ts +1 -0
  119. package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
  120. package/dist/types/client-urls/client-root.d.ts +38 -0
  121. package/dist/types/client-urls/client-urls.d.ts +5 -0
  122. package/dist/types/client-urls/navigation.d.ts +38 -0
  123. package/dist/types/client-urls/revalidation-protocol.d.ts +25 -0
  124. package/dist/types/client-urls/server-projection.d.ts +57 -0
  125. package/dist/types/client-urls/types.d.ts +132 -0
  126. package/dist/types/client.d.ts +191 -0
  127. package/dist/types/client.rsc.d.ts +41 -0
  128. package/dist/types/cloudflare/index.d.ts +7 -0
  129. package/dist/types/cloudflare/tracing.d.ts +57 -0
  130. package/dist/types/component-utils.d.ts +46 -0
  131. package/dist/types/components/DefaultDocument.d.ts +13 -0
  132. package/dist/types/context-var.d.ts +84 -0
  133. package/dist/types/debug.d.ts +57 -0
  134. package/dist/types/decode-loader-results.d.ts +42 -0
  135. package/dist/types/default-error-boundary.d.ts +10 -0
  136. package/dist/types/defer.d.ts +89 -0
  137. package/dist/types/deps/browser.d.ts +1 -0
  138. package/dist/types/deps/html-stream-client.d.ts +1 -0
  139. package/dist/types/deps/html-stream-server.d.ts +1 -0
  140. package/dist/types/deps/rsc.d.ts +1 -0
  141. package/dist/types/deps/ssr.d.ts +1 -0
  142. package/dist/types/dev-discovery-protocol.d.ts +5 -0
  143. package/dist/types/encode-kv.d.ts +35 -0
  144. package/dist/types/errors.d.ts +227 -0
  145. package/dist/types/escape-script.d.ts +44 -0
  146. package/dist/types/handle.d.ts +93 -0
  147. package/dist/types/handles/MetaTags.d.ts +17 -0
  148. package/dist/types/handles/Scripts.d.ts +38 -0
  149. package/dist/types/handles/breadcrumbs.d.ts +43 -0
  150. package/dist/types/handles/deferred-resolution.d.ts +53 -0
  151. package/dist/types/handles/is-thenable.d.ts +10 -0
  152. package/dist/types/handles/meta.d.ts +43 -0
  153. package/dist/types/handles/script.d.ts +139 -0
  154. package/dist/types/host/cookie-handler.d.ts +8 -0
  155. package/dist/types/host/errors.d.ts +40 -0
  156. package/dist/types/host/index.d.ts +33 -0
  157. package/dist/types/host/pattern-matcher.d.ts +30 -0
  158. package/dist/types/host/router.d.ts +12 -0
  159. package/dist/types/host/testing.d.ts +41 -0
  160. package/dist/types/host/types.d.ts +148 -0
  161. package/dist/types/host/utils.d.ts +20 -0
  162. package/dist/types/href-client.d.ts +214 -0
  163. package/dist/types/index.d.ts +113 -0
  164. package/dist/types/index.rsc.d.ts +52 -0
  165. package/dist/types/internal-debug.d.ts +1 -0
  166. package/dist/types/loader-redirect.d.ts +18 -0
  167. package/dist/types/loader-store.d.ts +193 -0
  168. package/dist/types/loader.d.ts +18 -0
  169. package/dist/types/loader.rsc.d.ts +18 -0
  170. package/dist/types/missing-id-error.d.ts +1 -0
  171. package/dist/types/outlet-context.d.ts +24 -0
  172. package/dist/types/outlet-provider.d.ts +14 -0
  173. package/dist/types/prerender/build-shell-capture.d.ts +104 -0
  174. package/dist/types/prerender/param-hash.d.ts +6 -0
  175. package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
  176. package/dist/types/prerender/store.d.ts +63 -0
  177. package/dist/types/prerender.d.ts +292 -0
  178. package/dist/types/redirect-origin.d.ts +67 -0
  179. package/dist/types/regex-escape.d.ts +6 -0
  180. package/dist/types/render-error-thrower.d.ts +13 -0
  181. package/dist/types/response-utils.d.ts +35 -0
  182. package/dist/types/reverse.d.ts +206 -0
  183. package/dist/types/root-error-boundary.d.ts +32 -0
  184. package/dist/types/route-content-wrapper.d.ts +81 -0
  185. package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
  186. package/dist/types/route-definition/helper-factories.d.ts +22 -0
  187. package/dist/types/route-definition/helpers-types.d.ts +393 -0
  188. package/dist/types/route-definition/index.d.ts +7 -0
  189. package/dist/types/route-definition/redirect.d.ts +48 -0
  190. package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
  191. package/dist/types/route-definition/use-item-types.d.ts +1 -0
  192. package/dist/types/route-definition.d.ts +1 -0
  193. package/dist/types/route-map-builder.d.ts +102 -0
  194. package/dist/types/route-name.d.ts +27 -0
  195. package/dist/types/route-types.d.ts +172 -0
  196. package/dist/types/router/basename.d.ts +10 -0
  197. package/dist/types/router/content-negotiation.d.ts +91 -0
  198. package/dist/types/router/debug-manifest.d.ts +7 -0
  199. package/dist/types/router/error-handling.d.ts +110 -0
  200. package/dist/types/router/find-match.d.ts +19 -0
  201. package/dist/types/router/handler-context.d.ts +41 -0
  202. package/dist/types/router/instrument.d.ts +191 -0
  203. package/dist/types/router/intercept-resolution.d.ts +91 -0
  204. package/dist/types/router/lazy-includes.d.ts +26 -0
  205. package/dist/types/router/loader-resolution.d.ts +85 -0
  206. package/dist/types/router/logging.d.ts +41 -0
  207. package/dist/types/router/manifest.d.ts +8 -0
  208. package/dist/types/router/match-api.d.ts +19 -0
  209. package/dist/types/router/match-context.d.ts +184 -0
  210. package/dist/types/router/match-handlers.d.ts +48 -0
  211. package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
  212. package/dist/types/router/match-middleware/cache-lookup.d.ts +126 -0
  213. package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
  214. package/dist/types/router/match-middleware/index.d.ts +80 -0
  215. package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
  216. package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
  217. package/dist/types/router/match-pipelines.d.ts +103 -0
  218. package/dist/types/router/match-result.d.ts +114 -0
  219. package/dist/types/router/metrics.d.ts +6 -0
  220. package/dist/types/router/middleware-types.d.ts +74 -0
  221. package/dist/types/router/middleware.d.ts +116 -0
  222. package/dist/types/router/navigation-snapshot.d.ts +51 -0
  223. package/dist/types/router/params-util.d.ts +8 -0
  224. package/dist/types/router/parse-pattern.d.ts +38 -0
  225. package/dist/types/router/pattern-matching.d.ts +169 -0
  226. package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
  227. package/dist/types/router/prefetch-default.d.ts +28 -0
  228. package/dist/types/router/prefetch-limits.d.ts +20 -0
  229. package/dist/types/router/prerender-match.d.ts +53 -0
  230. package/dist/types/router/preview-match.d.ts +22 -0
  231. package/dist/types/router/request-classification.d.ts +104 -0
  232. package/dist/types/router/revalidation.d.ts +64 -0
  233. package/dist/types/router/route-snapshot.d.ts +112 -0
  234. package/dist/types/router/route-trie-builder.d.ts +77 -0
  235. package/dist/types/router/router-context.d.ts +137 -0
  236. package/dist/types/router/router-interfaces.d.ts +461 -0
  237. package/dist/types/router/router-options.d.ts +792 -0
  238. package/dist/types/router/router-registry.d.ts +15 -0
  239. package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
  240. package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
  241. package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
  242. package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
  243. package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
  244. package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
  245. package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
  246. package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
  247. package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  248. package/dist/types/router/segment-resolution/view-transition-default.d.ts +27 -0
  249. package/dist/types/router/segment-resolution.d.ts +3 -0
  250. package/dist/types/router/segment-wrappers.d.ts +53 -0
  251. package/dist/types/router/state-cookie-name.d.ts +1 -0
  252. package/dist/types/router/substitute-pattern-params.d.ts +23 -0
  253. package/dist/types/router/telemetry-otel.d.ts +113 -0
  254. package/dist/types/router/telemetry.d.ts +216 -0
  255. package/dist/types/router/timeout.d.ts +107 -0
  256. package/dist/types/router/tracing.d.ts +139 -0
  257. package/dist/types/router/transition-when.d.ts +13 -0
  258. package/dist/types/router/trie-matching.d.ts +32 -0
  259. package/dist/types/router/types.d.ts +98 -0
  260. package/dist/types/router/url-params.d.ts +26 -0
  261. package/dist/types/router.d.ts +7 -0
  262. package/dist/types/rsc/capture-queue.d.ts +49 -0
  263. package/dist/types/rsc/full-payload.d.ts +22 -0
  264. package/dist/types/rsc/handler-context.d.ts +32 -0
  265. package/dist/types/rsc/handler.d.ts +9 -0
  266. package/dist/types/rsc/helpers.d.ts +127 -0
  267. package/dist/types/rsc/index.d.ts +17 -0
  268. package/dist/types/rsc/json-route-result.d.ts +20 -0
  269. package/dist/types/rsc/loader-fetch.d.ts +14 -0
  270. package/dist/types/rsc/manifest-init.d.ts +18 -0
  271. package/dist/types/rsc/nonce.d.ts +28 -0
  272. package/dist/types/rsc/origin-guard.d.ts +50 -0
  273. package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
  274. package/dist/types/rsc/redirect-guard.d.ts +37 -0
  275. package/dist/types/rsc/render-pipeline.d.ts +148 -0
  276. package/dist/types/rsc/response-cache-serve.d.ts +46 -0
  277. package/dist/types/rsc/response-error.d.ts +19 -0
  278. package/dist/types/rsc/response-route-handler.d.ts +29 -0
  279. package/dist/types/rsc/routine-plan.d.ts +124 -0
  280. package/dist/types/rsc/rsc-rendering.d.ts +18 -0
  281. package/dist/types/rsc/runtime-warnings.d.ts +22 -0
  282. package/dist/types/rsc/server-action.d.ts +68 -0
  283. package/dist/types/rsc/shell-build-manifest.d.ts +90 -0
  284. package/dist/types/rsc/shell-capture-constants.d.ts +44 -0
  285. package/dist/types/rsc/shell-capture.d.ts +406 -0
  286. package/dist/types/rsc/shell-serve.d.ts +189 -0
  287. package/dist/types/rsc/ssr-setup.d.ts +73 -0
  288. package/dist/types/rsc/stream-idle.d.ts +60 -0
  289. package/dist/types/rsc/transition-gate.d.ts +23 -0
  290. package/dist/types/rsc/types.d.ts +328 -0
  291. package/dist/types/runtime-env.d.ts +1 -0
  292. package/dist/types/search-params.d.ts +125 -0
  293. package/dist/types/segment-content-promise.d.ts +13 -0
  294. package/dist/types/segment-fragments.d.ts +79 -0
  295. package/dist/types/segment-loader-promise.d.ts +22 -0
  296. package/dist/types/segment-system.d.ts +86 -0
  297. package/dist/types/serialize.d.ts +164 -0
  298. package/dist/types/server/context.d.ts +510 -0
  299. package/dist/types/server/cookie-parse.d.ts +10 -0
  300. package/dist/types/server/cookie-store.d.ts +107 -0
  301. package/dist/types/server/fetchable-loader-store.d.ts +20 -0
  302. package/dist/types/server/handle-store.d.ts +131 -0
  303. package/dist/types/server/loader-registry.d.ts +32 -0
  304. package/dist/types/server/request-context.d.ts +707 -0
  305. package/dist/types/server/root-layout.d.ts +3 -0
  306. package/dist/types/server.d.ts +16 -0
  307. package/dist/types/ssr/index.d.ts +233 -0
  308. package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
  309. package/dist/types/ssr/preinit-client-references.d.ts +71 -0
  310. package/dist/types/ssr/ssr-root.d.ts +69 -0
  311. package/dist/types/static-handler.d.ts +71 -0
  312. package/dist/types/testing/cache-status.d.ts +63 -0
  313. package/dist/types/testing/collect-handle.d.ts +20 -0
  314. package/dist/types/testing/dispatch.d.ts +127 -0
  315. package/dist/types/testing/dom.entry.d.ts +15 -0
  316. package/dist/types/testing/e2e/fixture.d.ts +37 -0
  317. package/dist/types/testing/e2e/index.d.ts +31 -0
  318. package/dist/types/testing/e2e/matchers.d.ts +17 -0
  319. package/dist/types/testing/e2e/page-helpers.d.ts +86 -0
  320. package/dist/types/testing/e2e/parity.d.ts +111 -0
  321. package/dist/types/testing/e2e/server.d.ts +35 -0
  322. package/dist/types/testing/flight-matchers.d.ts +55 -0
  323. package/dist/types/testing/flight-normalize.d.ts +1 -0
  324. package/dist/types/testing/flight-tree.d.ts +192 -0
  325. package/dist/types/testing/flight.d.ts +115 -0
  326. package/dist/types/testing/flight.entry.d.ts +27 -0
  327. package/dist/types/testing/generated-routes.d.ts +66 -0
  328. package/dist/types/testing/index.d.ts +54 -0
  329. package/dist/types/testing/internal/context.d.ts +225 -0
  330. package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
  331. package/dist/types/testing/internal/seed-vars.d.ts +30 -0
  332. package/dist/types/testing/render-handler.d.ts +160 -0
  333. package/dist/types/testing/render-route.d.ts +265 -0
  334. package/dist/types/testing/run-loader.d.ts +195 -0
  335. package/dist/types/testing/run-middleware.d.ts +132 -0
  336. package/dist/types/testing/run-transition-when.d.ts +78 -0
  337. package/dist/types/testing/shell-status.d.ts +81 -0
  338. package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  339. package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  340. package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  341. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  342. package/dist/types/testing/vitest.d.ts +205 -0
  343. package/dist/types/theme/ThemeProvider.d.ts +13 -0
  344. package/dist/types/theme/ThemeScript.d.ts +45 -0
  345. package/dist/types/theme/constants.d.ts +39 -0
  346. package/dist/types/theme/index.d.ts +29 -0
  347. package/dist/types/theme/theme-context.d.ts +21 -0
  348. package/dist/types/theme/theme-script.d.ts +26 -0
  349. package/dist/types/theme/types.d.ts +162 -0
  350. package/dist/types/theme/use-theme.d.ts +8 -0
  351. package/dist/types/types/boundaries.d.ts +110 -0
  352. package/dist/types/types/cache-types.d.ts +191 -0
  353. package/dist/types/types/error-types.d.ts +114 -0
  354. package/dist/types/types/global-namespace.d.ts +90 -0
  355. package/dist/types/types/handler-context.d.ts +658 -0
  356. package/dist/types/types/index.d.ts +11 -0
  357. package/dist/types/types/loader-types.d.ts +208 -0
  358. package/dist/types/types/request-scope.d.ts +93 -0
  359. package/dist/types/types/route-config.d.ts +105 -0
  360. package/dist/types/types/route-entry.d.ts +98 -0
  361. package/dist/types/types/segments.d.ts +246 -0
  362. package/dist/types/types.d.ts +1 -0
  363. package/dist/types/urls/include-helper.d.ts +17 -0
  364. package/dist/types/urls/include-provider.d.ts +27 -0
  365. package/dist/types/urls/index.d.ts +6 -0
  366. package/dist/types/urls/path-helper-types.d.ts +198 -0
  367. package/dist/types/urls/path-helper.d.ts +12 -0
  368. package/dist/types/urls/pattern-types.d.ts +166 -0
  369. package/dist/types/urls/response-types.d.ts +67 -0
  370. package/dist/types/urls/type-extraction.d.ts +157 -0
  371. package/dist/types/urls/urls-function.d.ts +24 -0
  372. package/dist/types/urls.d.ts +1 -0
  373. package/dist/types/use-loader.d.ts +150 -0
  374. package/dist/types/vercel/index.d.ts +10 -0
  375. package/dist/types/vercel/tracing.d.ts +71 -0
  376. package/dist/types/vite/debug.d.ts +80 -0
  377. package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
  378. package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
  379. package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
  380. package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
  381. package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
  382. package/dist/types/vite/discovery/gate-state.d.ts +79 -0
  383. package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
  384. package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
  385. package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
  386. package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
  387. package/dist/types/vite/discovery/state.d.ts +170 -0
  388. package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
  389. package/dist/types/vite/encryption-key.d.ts +2 -0
  390. package/dist/types/vite/index.d.ts +11 -0
  391. package/dist/types/vite/inject-client-debug.d.ts +56 -0
  392. package/dist/types/vite/plugin-types.d.ts +298 -0
  393. package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
  394. package/dist/types/vite/plugins/client-ref-dedup.d.ts +40 -0
  395. package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
  396. package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  397. package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
  398. package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
  399. package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  400. package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  401. package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  402. package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  403. package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
  404. package/dist/types/vite/plugins/expose-internal-ids.d.ts +16 -0
  405. package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
  406. package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
  407. package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
  408. package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
  409. package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
  410. package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
  411. package/dist/types/vite/plugins/version-injector.d.ts +21 -0
  412. package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
  413. package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
  414. package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  415. package/dist/types/vite/rango.d.ts +29 -0
  416. package/dist/types/vite/router-discovery.d.ts +23 -0
  417. package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
  418. package/dist/types/vite/utils/banner.d.ts +2 -0
  419. package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
  420. package/dist/types/vite/utils/client-chunks.d.ts +55 -0
  421. package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
  422. package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
  423. package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
  424. package/dist/types/vite/utils/package-resolution.d.ts +6 -0
  425. package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
  426. package/dist/types/vite/utils/shared-utils.d.ts +67 -0
  427. package/dist/types.backup/__internal.d.ts +127 -0
  428. package/dist/types.backup/bin/rango.d.ts +1 -0
  429. package/dist/types.backup/browser/action-coordinator.d.ts +57 -0
  430. package/dist/types.backup/browser/action-fence.d.ts +33 -0
  431. package/dist/types.backup/browser/app-shell.d.ts +34 -0
  432. package/dist/types.backup/browser/app-version.d.ts +6 -0
  433. package/dist/types.backup/browser/connection-warmup.d.ts +31 -0
  434. package/dist/types.backup/browser/cookie-name.d.ts +66 -0
  435. package/dist/types.backup/browser/event-controller.d.ts +221 -0
  436. package/dist/types.backup/browser/history-state.d.ts +26 -0
  437. package/dist/types.backup/browser/index.d.ts +1 -0
  438. package/dist/types.backup/browser/intercept-utils.d.ts +30 -0
  439. package/dist/types.backup/browser/invalidate-client-cache.d.ts +17 -0
  440. package/dist/types.backup/browser/link-interceptor.d.ts +43 -0
  441. package/dist/types.backup/browser/logging.d.ts +33 -0
  442. package/dist/types.backup/browser/merge-segment-loaders.d.ts +38 -0
  443. package/dist/types.backup/browser/navigation-bridge.d.ts +27 -0
  444. package/dist/types.backup/browser/navigation-client.d.ts +17 -0
  445. package/dist/types.backup/browser/navigation-store-handle.d.ts +25 -0
  446. package/dist/types.backup/browser/navigation-store.d.ts +95 -0
  447. package/dist/types.backup/browser/navigation-transaction.d.ts +75 -0
  448. package/dist/types.backup/browser/network-error-handler.d.ts +35 -0
  449. package/dist/types.backup/browser/partial-update.d.ts +61 -0
  450. package/dist/types.backup/browser/prefetch/cache.d.ts +183 -0
  451. package/dist/types.backup/browser/prefetch/fetch.d.ts +52 -0
  452. package/dist/types.backup/browser/prefetch/observer.d.ts +27 -0
  453. package/dist/types.backup/browser/prefetch/policy.d.ts +13 -0
  454. package/dist/types.backup/browser/prefetch/queue.d.ts +48 -0
  455. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +28 -0
  456. package/dist/types.backup/browser/rango-state.d.ts +52 -0
  457. package/dist/types.backup/browser/react/Link.d.ts +140 -0
  458. package/dist/types.backup/browser/react/NavigationProvider.d.ts +88 -0
  459. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +78 -0
  460. package/dist/types.backup/browser/react/context.d.ts +54 -0
  461. package/dist/types.backup/browser/react/filter-segment-order.d.ts +35 -0
  462. package/dist/types.backup/browser/react/index.d.ts +1 -0
  463. package/dist/types.backup/browser/react/location-state-shared.d.ts +162 -0
  464. package/dist/types.backup/browser/react/location-state.d.ts +29 -0
  465. package/dist/types.backup/browser/react/mount-context.d.ts +23 -0
  466. package/dist/types.backup/browser/react/nonce-context.d.ts +14 -0
  467. package/dist/types.backup/browser/react/shallow-equal.d.ts +5 -0
  468. package/dist/types.backup/browser/react/use-action.d.ts +61 -0
  469. package/dist/types.backup/browser/react/use-handle.d.ts +21 -0
  470. package/dist/types.backup/browser/react/use-href.d.ts +32 -0
  471. package/dist/types.backup/browser/react/use-link-status.d.ts +36 -0
  472. package/dist/types.backup/browser/react/use-mount.d.ts +24 -0
  473. package/dist/types.backup/browser/react/use-navigation.d.ts +15 -0
  474. package/dist/types.backup/browser/react/use-params.d.ts +21 -0
  475. package/dist/types.backup/browser/react/use-pathname.d.ts +13 -0
  476. package/dist/types.backup/browser/react/use-reverse.d.ts +40 -0
  477. package/dist/types.backup/browser/react/use-router.d.ts +23 -0
  478. package/dist/types.backup/browser/react/use-search-params.d.ts +19 -0
  479. package/dist/types.backup/browser/react/use-segments.d.ts +29 -0
  480. package/dist/types.backup/browser/response-adapter.d.ts +58 -0
  481. package/dist/types.backup/browser/rsc-router.d.ts +141 -0
  482. package/dist/types.backup/browser/scroll-restoration.d.ts +103 -0
  483. package/dist/types.backup/browser/segment-reconciler.d.ts +74 -0
  484. package/dist/types.backup/browser/segment-structure-assert.d.ts +16 -0
  485. package/dist/types.backup/browser/server-action-bridge.d.ts +29 -0
  486. package/dist/types.backup/browser/types.d.ts +530 -0
  487. package/dist/types.backup/browser/validate-redirect-origin.d.ts +28 -0
  488. package/dist/types.backup/build/collect-fallback-refs.d.ts +5 -0
  489. package/dist/types.backup/build/generate-manifest.d.ts +100 -0
  490. package/dist/types.backup/build/generate-route-types.d.ts +8 -0
  491. package/dist/types.backup/build/index.d.ts +21 -0
  492. package/dist/types.backup/build/prefix-tree-utils.d.ts +56 -0
  493. package/dist/types.backup/build/route-trie.d.ts +89 -0
  494. package/dist/types.backup/build/route-types/ast-helpers.d.ts +3 -0
  495. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +13 -0
  496. package/dist/types.backup/build/route-types/codegen.d.ts +16 -0
  497. package/dist/types.backup/build/route-types/include-resolution.d.ts +74 -0
  498. package/dist/types.backup/build/route-types/param-extraction.d.ts +13 -0
  499. package/dist/types.backup/build/route-types/per-module-writer.d.ts +18 -0
  500. package/dist/types.backup/build/route-types/router-processing.d.ts +82 -0
  501. package/dist/types.backup/build/route-types/scan-filter.d.ts +17 -0
  502. package/dist/types.backup/build/route-types/source-scan.d.ts +13 -0
  503. package/dist/types.backup/build/runtime-discovery.d.ts +24 -0
  504. package/dist/types.backup/cache/background-task.d.ts +21 -0
  505. package/dist/types.backup/cache/cache-error.d.ts +71 -0
  506. package/dist/types.backup/cache/cache-key-utils.d.ts +35 -0
  507. package/dist/types.backup/cache/cache-policy.d.ts +59 -0
  508. package/dist/types.backup/cache/cache-runtime.d.ts +51 -0
  509. package/dist/types.backup/cache/cache-scope.d.ts +134 -0
  510. package/dist/types.backup/cache/cache-tag.d.ts +79 -0
  511. package/dist/types.backup/cache/cf/cf-base64.d.ts +4 -0
  512. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +105 -0
  513. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +481 -0
  514. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +300 -0
  515. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +22 -0
  516. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  517. package/dist/types.backup/cache/cf/index.d.ts +3 -0
  518. package/dist/types.backup/cache/document-cache.d.ts +69 -0
  519. package/dist/types.backup/cache/handle-capture.d.ts +23 -0
  520. package/dist/types.backup/cache/handle-snapshot.d.ts +39 -0
  521. package/dist/types.backup/cache/index.d.ts +7 -0
  522. package/dist/types.backup/cache/memory-segment-store.d.ts +163 -0
  523. package/dist/types.backup/cache/profile-registry.d.ts +40 -0
  524. package/dist/types.backup/cache/read-through-swr.d.ts +60 -0
  525. package/dist/types.backup/cache/segment-codec.d.ts +78 -0
  526. package/dist/types.backup/cache/shell-snapshot.d.ts +162 -0
  527. package/dist/types.backup/cache/tag-invalidation.d.ts +74 -0
  528. package/dist/types.backup/cache/taint.d.ts +71 -0
  529. package/dist/types.backup/cache/types.d.ts +407 -0
  530. package/dist/types.backup/cache/vercel/index.d.ts +1 -0
  531. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +267 -0
  532. package/dist/types.backup/client.d.ts +184 -0
  533. package/dist/types.backup/client.rsc.d.ts +39 -0
  534. package/dist/types.backup/cloudflare/index.d.ts +7 -0
  535. package/dist/types.backup/cloudflare/tracing.d.ts +53 -0
  536. package/dist/types.backup/component-utils.d.ts +46 -0
  537. package/dist/types.backup/components/DefaultDocument.d.ts +13 -0
  538. package/dist/types.backup/context-var.d.ts +84 -0
  539. package/dist/types.backup/debug.d.ts +57 -0
  540. package/dist/types.backup/decode-loader-results.d.ts +5 -0
  541. package/dist/types.backup/default-error-boundary.d.ts +10 -0
  542. package/dist/types.backup/defer.d.ts +89 -0
  543. package/dist/types.backup/deps/browser.d.ts +1 -0
  544. package/dist/types.backup/deps/html-stream-client.d.ts +1 -0
  545. package/dist/types.backup/deps/html-stream-server.d.ts +1 -0
  546. package/dist/types.backup/deps/rsc.d.ts +1 -0
  547. package/dist/types.backup/deps/ssr.d.ts +1 -0
  548. package/dist/types.backup/encode-kv.d.ts +35 -0
  549. package/dist/types.backup/errors.d.ts +226 -0
  550. package/dist/types.backup/escape-script.d.ts +44 -0
  551. package/dist/types.backup/handle.d.ts +93 -0
  552. package/dist/types.backup/handles/MetaTags.d.ts +17 -0
  553. package/dist/types.backup/handles/Scripts.d.ts +38 -0
  554. package/dist/types.backup/handles/breadcrumbs.d.ts +43 -0
  555. package/dist/types.backup/handles/deferred-resolution.d.ts +53 -0
  556. package/dist/types.backup/handles/is-thenable.d.ts +12 -0
  557. package/dist/types.backup/handles/meta.d.ts +43 -0
  558. package/dist/types.backup/handles/script.d.ts +139 -0
  559. package/dist/types.backup/host/cookie-handler.d.ts +8 -0
  560. package/dist/types.backup/host/errors.d.ts +40 -0
  561. package/dist/types.backup/host/index.d.ts +33 -0
  562. package/dist/types.backup/host/pattern-matcher.d.ts +30 -0
  563. package/dist/types.backup/host/router.d.ts +12 -0
  564. package/dist/types.backup/host/testing.d.ts +41 -0
  565. package/dist/types.backup/host/types.d.ts +148 -0
  566. package/dist/types.backup/host/utils.d.ts +20 -0
  567. package/dist/types.backup/href-client.d.ts +214 -0
  568. package/dist/types.backup/index.d.ts +112 -0
  569. package/dist/types.backup/index.rsc.d.ts +51 -0
  570. package/dist/types.backup/internal-debug.d.ts +1 -0
  571. package/dist/types.backup/loader-store.d.ts +193 -0
  572. package/dist/types.backup/loader.d.ts +18 -0
  573. package/dist/types.backup/loader.rsc.d.ts +18 -0
  574. package/dist/types.backup/missing-id-error.d.ts +1 -0
  575. package/dist/types.backup/outlet-context.d.ts +12 -0
  576. package/dist/types.backup/outlet-provider.d.ts +12 -0
  577. package/dist/types.backup/prerender/build-shell-capture.d.ts +104 -0
  578. package/dist/types.backup/prerender/param-hash.d.ts +6 -0
  579. package/dist/types.backup/prerender/shell-manifest-key.d.ts +18 -0
  580. package/dist/types.backup/prerender/store.d.ts +62 -0
  581. package/dist/types.backup/prerender.d.ts +292 -0
  582. package/dist/types.backup/redirect-origin.d.ts +55 -0
  583. package/dist/types.backup/regex-escape.d.ts +6 -0
  584. package/dist/types.backup/render-error-thrower.d.ts +13 -0
  585. package/dist/types.backup/response-utils.d.ts +35 -0
  586. package/dist/types.backup/reverse.d.ts +206 -0
  587. package/dist/types.backup/root-error-boundary.d.ts +32 -0
  588. package/dist/types.backup/route-content-wrapper.d.ts +40 -0
  589. package/dist/types.backup/route-definition/dsl-helpers.d.ts +130 -0
  590. package/dist/types.backup/route-definition/helper-factories.d.ts +22 -0
  591. package/dist/types.backup/route-definition/helpers-types.d.ts +392 -0
  592. package/dist/types.backup/route-definition/index.d.ts +7 -0
  593. package/dist/types.backup/route-definition/redirect.d.ts +48 -0
  594. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +19 -0
  595. package/dist/types.backup/route-definition/use-item-types.d.ts +1 -0
  596. package/dist/types.backup/route-definition.d.ts +1 -0
  597. package/dist/types.backup/route-map-builder.d.ts +127 -0
  598. package/dist/types.backup/route-name.d.ts +27 -0
  599. package/dist/types.backup/route-types.d.ts +172 -0
  600. package/dist/types.backup/router/basename.d.ts +10 -0
  601. package/dist/types.backup/router/content-negotiation.d.ts +91 -0
  602. package/dist/types.backup/router/debug-manifest.d.ts +7 -0
  603. package/dist/types.backup/router/error-handling.d.ts +76 -0
  604. package/dist/types.backup/router/find-match.d.ts +19 -0
  605. package/dist/types.backup/router/handler-context.d.ts +41 -0
  606. package/dist/types.backup/router/instrument.d.ts +161 -0
  607. package/dist/types.backup/router/intercept-resolution.d.ts +79 -0
  608. package/dist/types.backup/router/lazy-includes.d.ts +26 -0
  609. package/dist/types.backup/router/loader-resolution.d.ts +63 -0
  610. package/dist/types.backup/router/logging.d.ts +41 -0
  611. package/dist/types.backup/router/manifest.d.ts +8 -0
  612. package/dist/types.backup/router/match-api.d.ts +19 -0
  613. package/dist/types.backup/router/match-context.d.ts +184 -0
  614. package/dist/types.backup/router/match-handlers.d.ts +49 -0
  615. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +113 -0
  616. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +113 -0
  617. package/dist/types.backup/router/match-middleware/cache-store.d.ts +112 -0
  618. package/dist/types.backup/router/match-middleware/index.d.ts +80 -0
  619. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +116 -0
  620. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +94 -0
  621. package/dist/types.backup/router/match-pipelines.d.ts +103 -0
  622. package/dist/types.backup/router/match-result.d.ts +114 -0
  623. package/dist/types.backup/router/metrics.d.ts +6 -0
  624. package/dist/types.backup/router/middleware-types.d.ts +74 -0
  625. package/dist/types.backup/router/middleware.d.ts +116 -0
  626. package/dist/types.backup/router/navigation-snapshot.d.ts +22 -0
  627. package/dist/types.backup/router/params-util.d.ts +8 -0
  628. package/dist/types.backup/router/parse-pattern.d.ts +38 -0
  629. package/dist/types.backup/router/pattern-matching.d.ts +169 -0
  630. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +27 -0
  631. package/dist/types.backup/router/prefetch-limits.d.ts +20 -0
  632. package/dist/types.backup/router/prerender-match.d.ts +50 -0
  633. package/dist/types.backup/router/preview-match.d.ts +22 -0
  634. package/dist/types.backup/router/request-classification.d.ts +104 -0
  635. package/dist/types.backup/router/revalidation.d.ts +57 -0
  636. package/dist/types.backup/router/route-snapshot.d.ts +112 -0
  637. package/dist/types.backup/router/router-context.d.ts +137 -0
  638. package/dist/types.backup/router/router-interfaces.d.ts +432 -0
  639. package/dist/types.backup/router/router-options.d.ts +738 -0
  640. package/dist/types.backup/router/router-registry.d.ts +15 -0
  641. package/dist/types.backup/router/segment-resolution/fresh.d.ts +55 -0
  642. package/dist/types.backup/router/segment-resolution/helpers.d.ts +93 -0
  643. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +33 -0
  644. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +44 -0
  645. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +90 -0
  646. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +53 -0
  647. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +85 -0
  648. package/dist/types.backup/router/segment-resolution/static-store.d.ts +17 -0
  649. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  650. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +28 -0
  651. package/dist/types.backup/router/segment-resolution.d.ts +3 -0
  652. package/dist/types.backup/router/segment-wrappers.d.ts +53 -0
  653. package/dist/types.backup/router/state-cookie-name.d.ts +1 -0
  654. package/dist/types.backup/router/substitute-pattern-params.d.ts +23 -0
  655. package/dist/types.backup/router/telemetry-otel.d.ts +113 -0
  656. package/dist/types.backup/router/telemetry.d.ts +215 -0
  657. package/dist/types.backup/router/timeout.d.ts +68 -0
  658. package/dist/types.backup/router/tracing.d.ts +125 -0
  659. package/dist/types.backup/router/trie-matching.d.ts +32 -0
  660. package/dist/types.backup/router/types.d.ts +98 -0
  661. package/dist/types.backup/router/url-params.d.ts +26 -0
  662. package/dist/types.backup/router.d.ts +7 -0
  663. package/dist/types.backup/rsc/capture-queue.d.ts +6 -0
  664. package/dist/types.backup/rsc/full-payload.d.ts +22 -0
  665. package/dist/types.backup/rsc/handler-context.d.ts +31 -0
  666. package/dist/types.backup/rsc/handler.d.ts +9 -0
  667. package/dist/types.backup/rsc/helpers.d.ts +213 -0
  668. package/dist/types.backup/rsc/index.d.ts +17 -0
  669. package/dist/types.backup/rsc/json-route-result.d.ts +20 -0
  670. package/dist/types.backup/rsc/loader-fetch.d.ts +14 -0
  671. package/dist/types.backup/rsc/manifest-init.d.ts +18 -0
  672. package/dist/types.backup/rsc/nonce.d.ts +28 -0
  673. package/dist/types.backup/rsc/origin-guard.d.ts +50 -0
  674. package/dist/types.backup/rsc/progressive-enhancement.d.ts +19 -0
  675. package/dist/types.backup/rsc/redirect-guard.d.ts +35 -0
  676. package/dist/types.backup/rsc/response-cache-serve.d.ts +46 -0
  677. package/dist/types.backup/rsc/response-error.d.ts +19 -0
  678. package/dist/types.backup/rsc/response-route-handler.d.ts +29 -0
  679. package/dist/types.backup/rsc/rsc-rendering.d.ts +23 -0
  680. package/dist/types.backup/rsc/runtime-warnings.d.ts +22 -0
  681. package/dist/types.backup/rsc/server-action.d.ts +68 -0
  682. package/dist/types.backup/rsc/shell-build-manifest.d.ts +84 -0
  683. package/dist/types.backup/rsc/shell-capture-constants.d.ts +27 -0
  684. package/dist/types.backup/rsc/shell-capture.d.ts +374 -0
  685. package/dist/types.backup/rsc/shell-serve.d.ts +136 -0
  686. package/dist/types.backup/rsc/ssr-setup.d.ts +48 -0
  687. package/dist/types.backup/rsc/transition-gate.d.ts +27 -0
  688. package/dist/types.backup/rsc/types.d.ts +290 -0
  689. package/dist/types.backup/runtime-env.d.ts +1 -0
  690. package/dist/types.backup/search-params.d.ts +125 -0
  691. package/dist/types.backup/segment-content-promise.d.ts +13 -0
  692. package/dist/types.backup/segment-fragments.d.ts +56 -0
  693. package/dist/types.backup/segment-loader-promise.d.ts +22 -0
  694. package/dist/types.backup/segment-system.d.ts +84 -0
  695. package/dist/types.backup/serialize.d.ts +164 -0
  696. package/dist/types.backup/server/context.d.ts +494 -0
  697. package/dist/types.backup/server/cookie-parse.d.ts +10 -0
  698. package/dist/types.backup/server/cookie-store.d.ts +107 -0
  699. package/dist/types.backup/server/fetchable-loader-store.d.ts +20 -0
  700. package/dist/types.backup/server/handle-store.d.ts +100 -0
  701. package/dist/types.backup/server/loader-registry.d.ts +32 -0
  702. package/dist/types.backup/server/request-context.d.ts +596 -0
  703. package/dist/types.backup/server/root-layout.d.ts +3 -0
  704. package/dist/types.backup/server.d.ts +15 -0
  705. package/dist/types.backup/ssr/index.d.ts +233 -0
  706. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +3 -0
  707. package/dist/types.backup/ssr/preinit-client-references.d.ts +71 -0
  708. package/dist/types.backup/ssr/ssr-root.d.ts +69 -0
  709. package/dist/types.backup/static-handler.d.ts +57 -0
  710. package/dist/types.backup/testing/cache-status.d.ts +63 -0
  711. package/dist/types.backup/testing/collect-handle.d.ts +20 -0
  712. package/dist/types.backup/testing/dispatch.d.ts +123 -0
  713. package/dist/types.backup/testing/dom.entry.d.ts +15 -0
  714. package/dist/types.backup/testing/e2e/fixture.d.ts +37 -0
  715. package/dist/types.backup/testing/e2e/index.d.ts +30 -0
  716. package/dist/types.backup/testing/e2e/matchers.d.ts +17 -0
  717. package/dist/types.backup/testing/e2e/page-helpers.d.ts +62 -0
  718. package/dist/types.backup/testing/e2e/parity.d.ts +111 -0
  719. package/dist/types.backup/testing/e2e/server.d.ts +35 -0
  720. package/dist/types.backup/testing/flight-matchers.d.ts +55 -0
  721. package/dist/types.backup/testing/flight-normalize.d.ts +1 -0
  722. package/dist/types.backup/testing/flight-tree.d.ts +192 -0
  723. package/dist/types.backup/testing/flight.d.ts +115 -0
  724. package/dist/types.backup/testing/flight.entry.d.ts +27 -0
  725. package/dist/types.backup/testing/generated-routes.d.ts +66 -0
  726. package/dist/types.backup/testing/index.d.ts +52 -0
  727. package/dist/types.backup/testing/internal/context.d.ts +225 -0
  728. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +1 -0
  729. package/dist/types.backup/testing/internal/seed-vars.d.ts +30 -0
  730. package/dist/types.backup/testing/render-handler.d.ts +160 -0
  731. package/dist/types.backup/testing/render-route.d.ts +246 -0
  732. package/dist/types.backup/testing/run-loader.d.ts +186 -0
  733. package/dist/types.backup/testing/run-middleware.d.ts +132 -0
  734. package/dist/types.backup/testing/run-transition-when.d.ts +77 -0
  735. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  736. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  737. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  738. package/dist/types.backup/testing/vitest-stubs/version.d.ts +1 -0
  739. package/dist/types.backup/testing/vitest.d.ts +205 -0
  740. package/dist/types.backup/theme/ThemeProvider.d.ts +13 -0
  741. package/dist/types.backup/theme/ThemeScript.d.ts +45 -0
  742. package/dist/types.backup/theme/constants.d.ts +39 -0
  743. package/dist/types.backup/theme/index.d.ts +29 -0
  744. package/dist/types.backup/theme/theme-context.d.ts +21 -0
  745. package/dist/types.backup/theme/theme-script.d.ts +26 -0
  746. package/dist/types.backup/theme/types.d.ts +162 -0
  747. package/dist/types.backup/theme/use-theme.d.ts +8 -0
  748. package/dist/types.backup/types/boundaries.d.ts +93 -0
  749. package/dist/types.backup/types/cache-types.d.ts +191 -0
  750. package/dist/types.backup/types/error-types.d.ts +114 -0
  751. package/dist/types.backup/types/global-namespace.d.ts +90 -0
  752. package/dist/types.backup/types/handler-context.d.ts +658 -0
  753. package/dist/types.backup/types/index.d.ts +11 -0
  754. package/dist/types.backup/types/loader-types.d.ts +182 -0
  755. package/dist/types.backup/types/request-scope.d.ts +93 -0
  756. package/dist/types.backup/types/route-config.d.ts +105 -0
  757. package/dist/types.backup/types/route-entry.d.ts +95 -0
  758. package/dist/types.backup/types/segments.d.ts +234 -0
  759. package/dist/types.backup/types.d.ts +1 -0
  760. package/dist/types.backup/urls/include-helper.d.ts +17 -0
  761. package/dist/types.backup/urls/include-provider.d.ts +27 -0
  762. package/dist/types.backup/urls/index.d.ts +6 -0
  763. package/dist/types.backup/urls/path-helper-types.d.ts +197 -0
  764. package/dist/types.backup/urls/path-helper.d.ts +12 -0
  765. package/dist/types.backup/urls/pattern-types.d.ts +166 -0
  766. package/dist/types.backup/urls/response-types.d.ts +67 -0
  767. package/dist/types.backup/urls/type-extraction.d.ts +157 -0
  768. package/dist/types.backup/urls/urls-function.d.ts +24 -0
  769. package/dist/types.backup/urls.d.ts +1 -0
  770. package/dist/types.backup/use-loader.d.ts +150 -0
  771. package/dist/types.backup/vercel/index.d.ts +10 -0
  772. package/dist/types.backup/vercel/tracing.d.ts +70 -0
  773. package/dist/types.backup/vite/debug.d.ts +80 -0
  774. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +12 -0
  775. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +65 -0
  776. package/dist/types.backup/vite/discovery/discover-routers.d.ts +17 -0
  777. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +113 -0
  778. package/dist/types.backup/vite/discovery/gate-state.d.ts +79 -0
  779. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +24 -0
  780. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +32 -0
  781. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +22 -0
  782. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +40 -0
  783. package/dist/types.backup/vite/discovery/state.d.ts +162 -0
  784. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +15 -0
  785. package/dist/types.backup/vite/index.d.ts +11 -0
  786. package/dist/types.backup/vite/inject-client-debug.d.ts +56 -0
  787. package/dist/types.backup/vite/plugin-types.d.ts +298 -0
  788. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +6 -0
  789. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +40 -0
  790. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +35 -0
  791. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  792. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +18 -0
  793. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +37 -0
  794. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  795. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  796. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  797. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  798. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +29 -0
  799. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +6 -0
  800. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +25 -0
  801. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +20 -0
  802. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +20 -0
  803. package/dist/types.backup/vite/plugins/vercel-output.d.ts +85 -0
  804. package/dist/types.backup/vite/plugins/version-injector.d.ts +21 -0
  805. package/dist/types.backup/vite/plugins/version-plugin.d.ts +19 -0
  806. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +36 -0
  807. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  808. package/dist/types.backup/vite/rango.d.ts +29 -0
  809. package/dist/types.backup/vite/router-discovery.d.ts +23 -0
  810. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +64 -0
  811. package/dist/types.backup/vite/utils/banner.d.ts +2 -0
  812. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +28 -0
  813. package/dist/types.backup/vite/utils/client-chunks.d.ts +55 -0
  814. package/dist/types.backup/vite/utils/directive-prologue.d.ts +16 -0
  815. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +37 -0
  816. package/dist/types.backup/vite/utils/manifest-utils.d.ts +7 -0
  817. package/dist/types.backup/vite/utils/package-resolution.d.ts +6 -0
  818. package/dist/types.backup/vite/utils/prerender-utils.d.ts +32 -0
  819. package/dist/types.backup/vite/utils/shared-utils.d.ts +55 -0
  820. package/dist/vite/index.js +9695 -3592
  821. package/package.json +119 -39
  822. package/skills/api-client/SKILL.md +211 -0
  823. package/skills/breadcrumbs/SKILL.md +82 -5
  824. package/skills/bundle-analysis/SKILL.md +159 -0
  825. package/skills/cache-guide/SKILL.md +232 -34
  826. package/skills/caching/SKILL.md +375 -19
  827. package/skills/catalog.json +283 -0
  828. package/skills/cloudflare/SKILL.md +151 -0
  829. package/skills/cloudflare/agents/openai.yaml +4 -0
  830. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  831. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  832. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  833. package/skills/comparison/SKILL.md +50 -0
  834. package/skills/comparison/agents/openai.yaml +4 -0
  835. package/skills/comparison/references/framework-comparison.md +844 -0
  836. package/skills/composability/SKILL.md +124 -4
  837. package/skills/css/SKILL.md +76 -0
  838. package/skills/debug-manifest/SKILL.md +5 -11
  839. package/skills/defer-hydration/SKILL.md +235 -0
  840. package/skills/deployment-caching/SKILL.md +176 -0
  841. package/skills/document-cache/SKILL.md +116 -58
  842. package/skills/fonts/SKILL.md +1 -1
  843. package/skills/handler-use/SKILL.md +12 -10
  844. package/skills/hooks/SKILL.md +73 -699
  845. package/skills/hooks/data.md +273 -0
  846. package/skills/hooks/handle-and-actions.md +103 -0
  847. package/skills/hooks/navigation.md +110 -0
  848. package/skills/hooks/outlets.md +62 -0
  849. package/skills/hooks/state.md +228 -0
  850. package/skills/hooks/urls.md +135 -0
  851. package/skills/host-router/SKILL.md +129 -27
  852. package/skills/i18n/SKILL.md +276 -0
  853. package/skills/intercept/SKILL.md +75 -19
  854. package/skills/layout/SKILL.md +40 -19
  855. package/skills/links/SKILL.md +211 -17
  856. package/skills/loader/SKILL.md +230 -25
  857. package/skills/middleware/SKILL.md +58 -13
  858. package/skills/migrate-nextjs/SKILL.md +267 -33
  859. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  860. package/skills/migrate-react-router/SKILL.md +59 -671
  861. package/skills/migrate-react-router/component-migration.md +196 -0
  862. package/skills/migrate-react-router/data-and-actions.md +225 -0
  863. package/skills/migrate-react-router/route-mapping.md +271 -0
  864. package/skills/mime-routes/SKILL.md +55 -18
  865. package/skills/observability/SKILL.md +231 -0
  866. package/skills/parallel/SKILL.md +50 -10
  867. package/skills/ppr/SKILL.md +904 -0
  868. package/skills/prerender/SKILL.md +130 -68
  869. package/skills/rango/SKILL.md +321 -26
  870. package/skills/react-compiler/SKILL.md +168 -0
  871. package/skills/response-routes/SKILL.md +172 -52
  872. package/skills/route/SKILL.md +123 -9
  873. package/skills/router-setup/SKILL.md +53 -9
  874. package/skills/scripts/SKILL.md +179 -0
  875. package/skills/server-actions/SKILL.md +776 -0
  876. package/skills/shell-manifest/SKILL.md +185 -0
  877. package/skills/streams-and-websockets/SKILL.md +1 -1
  878. package/skills/tailwind/SKILL.md +28 -4
  879. package/skills/testing/SKILL.md +131 -0
  880. package/skills/testing/bindings.md +103 -0
  881. package/skills/testing/cache-prerender.md +172 -0
  882. package/skills/testing/client-components.md +131 -0
  883. package/skills/testing/e2e-parity.md +125 -0
  884. package/skills/testing/flight.md +91 -0
  885. package/skills/testing/handles.md +131 -0
  886. package/skills/testing/loader.md +128 -0
  887. package/skills/testing/middleware.md +99 -0
  888. package/skills/testing/render-handler.md +122 -0
  889. package/skills/testing/response-routes.md +95 -0
  890. package/skills/testing/reverse-and-types.md +85 -0
  891. package/skills/testing/server-actions.md +107 -0
  892. package/skills/testing/server-tree.md +128 -0
  893. package/skills/testing/setup.md +123 -0
  894. package/skills/theme/SKILL.md +1 -1
  895. package/skills/typesafety/SKILL.md +45 -628
  896. package/skills/typesafety/env-and-bindings.md +254 -0
  897. package/skills/typesafety/generated-files-and-cli.md +342 -0
  898. package/skills/typesafety/params-and-search.md +153 -0
  899. package/skills/typesafety/route-types.md +213 -0
  900. package/skills/use-cache/SKILL.md +121 -15
  901. package/skills/vercel/SKILL.md +149 -0
  902. package/skills/view-transitions/SKILL.md +341 -0
  903. package/src/__augment-tests__/augment.ts +81 -0
  904. package/src/__augment-tests__/augmented.check.ts +116 -0
  905. package/src/__internal.ts +0 -65
  906. package/src/browser/action-coordinator.ts +53 -36
  907. package/src/browser/action-fence.ts +47 -0
  908. package/src/browser/app-shell.ts +14 -27
  909. package/src/browser/connection-warmup.ts +134 -0
  910. package/src/browser/cookie-name.ts +140 -0
  911. package/src/browser/dev-discovery.ts +66 -0
  912. package/src/browser/event-controller.ts +400 -168
  913. package/src/browser/history-state.ts +21 -0
  914. package/src/browser/index.ts +3 -3
  915. package/src/browser/invalidate-client-cache.ts +52 -0
  916. package/src/browser/link-interceptor.ts +469 -20
  917. package/src/browser/logging.ts +28 -0
  918. package/src/browser/merge-segment-loaders.ts +6 -4
  919. package/src/browser/navigation-bridge.ts +164 -69
  920. package/src/browser/navigation-client.ts +199 -96
  921. package/src/browser/navigation-store-handle.ts +38 -0
  922. package/src/browser/navigation-store.ts +165 -345
  923. package/src/browser/navigation-transaction.ts +9 -59
  924. package/src/browser/network-error-handler.ts +34 -7
  925. package/src/browser/notify-listeners.ts +22 -0
  926. package/src/browser/partial-update.ts +219 -163
  927. package/src/browser/prefetch/cache.ts +240 -97
  928. package/src/browser/prefetch/default-strategy.ts +74 -0
  929. package/src/browser/prefetch/fetch.ts +317 -51
  930. package/src/browser/prefetch/invalidation.ts +30 -0
  931. package/src/browser/prefetch/loader.ts +111 -0
  932. package/src/browser/prefetch/observer.ts +50 -22
  933. package/src/browser/prefetch/queue.ts +25 -7
  934. package/src/browser/prefetch/runtime.ts +6 -0
  935. package/src/browser/rango-state.ts +177 -114
  936. package/src/browser/react/Link.tsx +115 -75
  937. package/src/browser/react/NavigationProvider.tsx +194 -143
  938. package/src/browser/react/ScrollRestoration.tsx +10 -6
  939. package/src/browser/react/context.ts +4 -0
  940. package/src/browser/react/filter-segment-order.ts +66 -7
  941. package/src/browser/react/index.ts +0 -48
  942. package/src/browser/react/location-state-shared.ts +178 -8
  943. package/src/browser/react/location-state.ts +39 -14
  944. package/src/browser/react/use-action.ts +6 -15
  945. package/src/browser/react/use-handle.ts +17 -14
  946. package/src/browser/react/use-href.tsx +8 -1
  947. package/src/browser/react/use-link-status.ts +33 -8
  948. package/src/browser/react/use-navigation.ts +10 -5
  949. package/src/browser/react/use-params.ts +11 -11
  950. package/src/browser/react/use-reverse.ts +106 -0
  951. package/src/browser/react/use-router.ts +21 -6
  952. package/src/browser/react/use-search-params.ts +0 -5
  953. package/src/browser/react/use-segments.ts +11 -21
  954. package/src/browser/response-adapter.ts +99 -8
  955. package/src/browser/rsc-router.tsx +230 -42
  956. package/src/browser/scroll-restoration.ts +37 -22
  957. package/src/browser/segment-reconciler.ts +31 -21
  958. package/src/browser/segment-structure-assert.ts +2 -2
  959. package/src/browser/server-action-bridge.ts +262 -65
  960. package/src/browser/types.ts +132 -47
  961. package/src/browser/validate-redirect-origin.ts +43 -16
  962. package/src/build/collect-fallback-refs.ts +107 -0
  963. package/src/build/generate-manifest.ts +213 -184
  964. package/src/build/generate-route-types.ts +3 -1
  965. package/src/build/index.ts +11 -3
  966. package/src/build/merge-full-manifests.ts +161 -0
  967. package/src/build/prefix-tree-utils.ts +123 -0
  968. package/src/build/route-trie.ts +43 -280
  969. package/src/build/route-types/ast-route-extraction.ts +15 -8
  970. package/src/build/route-types/codegen.ts +16 -5
  971. package/src/build/route-types/include-resolution.ts +513 -64
  972. package/src/build/route-types/param-extraction.ts +6 -3
  973. package/src/build/route-types/per-module-writer.ts +33 -12
  974. package/src/build/route-types/router-processing.ts +312 -204
  975. package/src/build/route-types/scan-filter.ts +1 -1
  976. package/src/build/route-types/source-scan.ts +216 -0
  977. package/src/build/runtime-discovery.ts +32 -29
  978. package/src/cache/cache-error.ts +104 -0
  979. package/src/cache/cache-exec-scope.ts +47 -0
  980. package/src/cache/cache-key-utils.ts +73 -15
  981. package/src/cache/cache-policy.ts +108 -34
  982. package/src/cache/cache-runtime.ts +566 -121
  983. package/src/cache/cache-scope.ts +383 -105
  984. package/src/cache/cache-tag.ts +149 -0
  985. package/src/cache/cf/cf-base64.ts +33 -0
  986. package/src/cache/cf/cf-cache-constants.ts +134 -0
  987. package/src/cache/cf/cf-cache-store.ts +3028 -391
  988. package/src/cache/cf/cf-cache-types.ts +417 -0
  989. package/src/cache/cf/cf-kv-utils.ts +84 -0
  990. package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
  991. package/src/cache/cf/cf-zone-purge.ts +101 -0
  992. package/src/cache/cf/index.ts +11 -16
  993. package/src/cache/document-cache.ts +184 -53
  994. package/src/cache/handle-snapshot.ts +92 -1
  995. package/src/cache/index.ts +32 -20
  996. package/src/cache/memory-segment-store.ts +286 -37
  997. package/src/cache/profile-registry.ts +46 -31
  998. package/src/cache/read-through-swr.ts +66 -16
  999. package/src/cache/search-params-filter.ts +118 -0
  1000. package/src/cache/segment-codec.ts +80 -25
  1001. package/src/cache/shell-snapshot.ts +516 -0
  1002. package/src/cache/tag-invalidation.ts +230 -0
  1003. package/src/cache/taint.ts +28 -9
  1004. package/src/cache/types.ts +323 -100
  1005. package/src/cache/vercel/index.ts +11 -0
  1006. package/src/cache/vercel/vercel-cache-store.ts +1264 -0
  1007. package/src/client-urls/client-root.tsx +161 -0
  1008. package/src/client-urls/client-urls.ts +665 -0
  1009. package/src/client-urls/navigation.ts +237 -0
  1010. package/src/client-urls/revalidation-protocol.ts +56 -0
  1011. package/src/client-urls/server-projection.ts +563 -0
  1012. package/src/client-urls/types.ts +178 -0
  1013. package/src/client.rsc.tsx +48 -21
  1014. package/src/client.tsx +77 -67
  1015. package/src/cloudflare/index.ts +11 -0
  1016. package/src/cloudflare/tracing.ts +112 -0
  1017. package/src/component-utils.ts +19 -0
  1018. package/src/components/DefaultDocument.tsx +8 -2
  1019. package/src/context-var.ts +18 -6
  1020. package/src/decode-loader-results.ts +160 -0
  1021. package/src/defer.ts +185 -0
  1022. package/src/deps/ssr.ts +4 -2
  1023. package/src/dev-discovery-protocol.ts +11 -0
  1024. package/src/encode-kv.ts +49 -0
  1025. package/src/errors.ts +44 -4
  1026. package/src/escape-script.ts +52 -0
  1027. package/src/handle.ts +67 -37
  1028. package/src/handles/MetaTags.tsx +24 -53
  1029. package/src/handles/Scripts.tsx +183 -0
  1030. package/src/handles/breadcrumbs.ts +35 -8
  1031. package/src/handles/deferred-resolution.ts +134 -0
  1032. package/src/handles/is-thenable.ts +16 -0
  1033. package/src/handles/meta.ts +14 -40
  1034. package/src/handles/script.ts +244 -0
  1035. package/src/host/cookie-handler.ts +9 -60
  1036. package/src/host/errors.ts +13 -22
  1037. package/src/host/index.ts +9 -2
  1038. package/src/host/pattern-matcher.ts +23 -52
  1039. package/src/host/router.ts +107 -99
  1040. package/src/host/testing.ts +40 -27
  1041. package/src/host/types.ts +37 -4
  1042. package/src/host/utils.ts +1 -1
  1043. package/src/href-client.ts +137 -22
  1044. package/src/index.rsc.ts +105 -12
  1045. package/src/index.ts +102 -14
  1046. package/src/internal-debug.ts +11 -10
  1047. package/src/loader-redirect.tsx +47 -0
  1048. package/src/loader-store.ts +500 -0
  1049. package/src/loader.rsc.ts +20 -13
  1050. package/src/loader.ts +12 -11
  1051. package/src/missing-id-error.ts +68 -0
  1052. package/src/outlet-context.ts +12 -0
  1053. package/src/outlet-provider.tsx +16 -6
  1054. package/src/prerender/build-shell-capture.ts +453 -0
  1055. package/src/prerender/param-hash.ts +16 -16
  1056. package/src/prerender/shell-manifest-key.ts +20 -0
  1057. package/src/prerender/store.ts +47 -38
  1058. package/src/prerender.ts +81 -13
  1059. package/src/redirect-origin.ts +143 -0
  1060. package/src/regex-escape.ts +8 -0
  1061. package/src/render-error-thrower.tsx +20 -0
  1062. package/src/response-utils.ts +34 -0
  1063. package/src/reverse.ts +65 -40
  1064. package/src/root-error-boundary.tsx +1 -19
  1065. package/src/route-content-wrapper.tsx +112 -78
  1066. package/src/route-definition/dsl-helpers.ts +300 -313
  1067. package/src/route-definition/helper-factories.ts +28 -140
  1068. package/src/route-definition/helpers-types.ts +92 -62
  1069. package/src/route-definition/index.ts +1 -2
  1070. package/src/route-definition/redirect.ts +44 -11
  1071. package/src/route-definition/resolve-handler-use.ts +6 -1
  1072. package/src/route-definition/use-item-types.ts +29 -0
  1073. package/src/route-map-builder.ts +102 -74
  1074. package/src/route-types.ts +19 -46
  1075. package/src/router/basename.ts +14 -0
  1076. package/src/router/content-negotiation.ts +120 -30
  1077. package/src/router/error-handling.ts +110 -29
  1078. package/src/router/find-match.ts +129 -30
  1079. package/src/router/handler-context.ts +41 -57
  1080. package/src/router/instrument.ts +401 -0
  1081. package/src/router/intercept-resolution.ts +98 -21
  1082. package/src/router/lazy-includes.ts +82 -58
  1083. package/src/router/loader-resolution.ts +401 -85
  1084. package/src/router/logging.ts +0 -6
  1085. package/src/router/manifest.ts +74 -40
  1086. package/src/router/match-api.ts +91 -55
  1087. package/src/router/match-context.ts +0 -22
  1088. package/src/router/match-handlers.ts +268 -171
  1089. package/src/router/match-middleware/background-revalidation.ts +40 -24
  1090. package/src/router/match-middleware/cache-lookup.ts +316 -302
  1091. package/src/router/match-middleware/cache-store.ts +134 -52
  1092. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  1093. package/src/router/match-middleware/segment-resolution.ts +0 -22
  1094. package/src/router/match-pipelines.ts +1 -42
  1095. package/src/router/match-result.ts +76 -79
  1096. package/src/router/metrics.ts +17 -36
  1097. package/src/router/middleware-types.ts +20 -110
  1098. package/src/router/middleware.ts +275 -173
  1099. package/src/router/navigation-snapshot.ts +51 -60
  1100. package/src/router/params-util.ts +23 -0
  1101. package/src/router/parse-pattern.ts +115 -0
  1102. package/src/router/pattern-matching.ts +134 -154
  1103. package/src/router/prefetch-cache-ttl.ts +51 -0
  1104. package/src/router/prefetch-default.ts +59 -0
  1105. package/src/router/prefetch-limits.ts +37 -0
  1106. package/src/router/prerender-match.ts +159 -69
  1107. package/src/router/preview-match.ts +6 -2
  1108. package/src/router/request-classification.ts +50 -69
  1109. package/src/router/revalidation.ts +146 -83
  1110. package/src/router/route-snapshot.ts +14 -3
  1111. package/src/router/route-trie-builder.ts +334 -0
  1112. package/src/router/router-context.ts +6 -29
  1113. package/src/router/router-interfaces.ts +168 -38
  1114. package/src/router/router-options.ts +235 -11
  1115. package/src/router/router-registry.ts +2 -5
  1116. package/src/router/segment-resolution/fresh.ts +163 -88
  1117. package/src/router/segment-resolution/helpers.ts +96 -18
  1118. package/src/router/segment-resolution/loader-cache.ts +187 -39
  1119. package/src/router/segment-resolution/loader-mask.ts +60 -0
  1120. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  1121. package/src/router/segment-resolution/mask-nested.ts +99 -0
  1122. package/src/router/segment-resolution/revalidation.ts +316 -321
  1123. package/src/router/segment-resolution/static-store.ts +55 -15
  1124. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1125. package/src/router/segment-resolution/view-transition-default.ts +60 -0
  1126. package/src/router/segment-resolution.ts +5 -1
  1127. package/src/router/segment-wrappers.ts +6 -5
  1128. package/src/router/state-cookie-name.ts +33 -0
  1129. package/src/router/substitute-pattern-params.ts +75 -0
  1130. package/src/router/telemetry-otel.ts +171 -200
  1131. package/src/router/telemetry.ts +106 -20
  1132. package/src/router/timeout.ts +53 -22
  1133. package/src/router/tracing.ts +235 -0
  1134. package/src/router/transition-when.ts +76 -0
  1135. package/src/router/trie-matching.ts +170 -64
  1136. package/src/router/types.ts +9 -63
  1137. package/src/router/url-params.ts +13 -5
  1138. package/src/router.ts +248 -77
  1139. package/src/rsc/capture-queue.ts +218 -0
  1140. package/src/rsc/full-payload.ts +77 -0
  1141. package/src/rsc/handler-context.ts +4 -2
  1142. package/src/rsc/handler.ts +562 -284
  1143. package/src/rsc/helpers.ts +179 -9
  1144. package/src/rsc/index.ts +2 -5
  1145. package/src/rsc/json-route-result.ts +38 -0
  1146. package/src/rsc/loader-fetch.ts +116 -40
  1147. package/src/rsc/manifest-init.ts +55 -56
  1148. package/src/rsc/nonce.ts +10 -1
  1149. package/src/rsc/origin-guard.ts +39 -25
  1150. package/src/rsc/progressive-enhancement.ts +377 -84
  1151. package/src/rsc/redirect-guard.ts +102 -0
  1152. package/src/rsc/render-pipeline.ts +611 -0
  1153. package/src/rsc/response-cache-serve.ts +259 -0
  1154. package/src/rsc/response-error.ts +79 -12
  1155. package/src/rsc/response-route-handler.ts +73 -212
  1156. package/src/rsc/routine-plan.ts +359 -0
  1157. package/src/rsc/rsc-rendering.ts +1624 -171
  1158. package/src/rsc/runtime-warnings.ts +23 -10
  1159. package/src/rsc/server-action.ts +420 -139
  1160. package/src/rsc/shell-build-manifest.ts +336 -0
  1161. package/src/rsc/shell-capture-constants.ts +45 -0
  1162. package/src/rsc/shell-capture.ts +2063 -0
  1163. package/src/rsc/shell-serve.ts +337 -0
  1164. package/src/rsc/ssr-setup.ts +111 -16
  1165. package/src/rsc/stream-idle.ts +137 -0
  1166. package/src/rsc/transition-gate.ts +86 -0
  1167. package/src/rsc/types.ts +91 -5
  1168. package/src/runtime-env.ts +18 -0
  1169. package/src/search-params.ts +35 -30
  1170. package/src/segment-fragments.ts +165 -0
  1171. package/src/segment-loader-promise.ts +49 -4
  1172. package/src/segment-system.tsx +441 -153
  1173. package/src/serialize.ts +243 -0
  1174. package/src/server/context.ts +416 -55
  1175. package/src/server/cookie-parse.ts +32 -0
  1176. package/src/server/cookie-store.ts +162 -15
  1177. package/src/server/handle-store.ts +190 -70
  1178. package/src/server/loader-registry.ts +33 -42
  1179. package/src/server/request-context.ts +805 -177
  1180. package/src/server.ts +7 -2
  1181. package/src/ssr/index.tsx +631 -183
  1182. package/src/ssr/inject-rsc-eager.ts +167 -0
  1183. package/src/ssr/preinit-client-references.ts +106 -0
  1184. package/src/ssr/ssr-root.tsx +262 -0
  1185. package/src/static-handler.ts +28 -15
  1186. package/src/testing/cache-status.ts +162 -0
  1187. package/src/testing/collect-handle.ts +46 -0
  1188. package/src/testing/dispatch.ts +951 -0
  1189. package/src/testing/dom.entry.ts +22 -0
  1190. package/src/testing/e2e/fixture.ts +188 -0
  1191. package/src/testing/e2e/index.ts +147 -0
  1192. package/src/testing/e2e/matchers.ts +35 -0
  1193. package/src/testing/e2e/page-helpers.ts +319 -0
  1194. package/src/testing/e2e/parity.ts +400 -0
  1195. package/src/testing/e2e/server.ts +195 -0
  1196. package/src/testing/flight-matchers.ts +97 -0
  1197. package/src/testing/flight-normalize.ts +11 -0
  1198. package/src/testing/flight-runtime.d.ts +57 -0
  1199. package/src/testing/flight-tree.ts +682 -0
  1200. package/src/testing/flight.entry.ts +52 -0
  1201. package/src/testing/flight.ts +257 -0
  1202. package/src/testing/generated-routes.ts +199 -0
  1203. package/src/testing/index.ts +121 -0
  1204. package/src/testing/internal/context.ts +380 -0
  1205. package/src/testing/internal/flight-client-globals.ts +30 -0
  1206. package/src/testing/internal/seed-vars.ts +54 -0
  1207. package/src/testing/render-handler.ts +371 -0
  1208. package/src/testing/render-route.tsx +667 -0
  1209. package/src/testing/run-loader.ts +423 -0
  1210. package/src/testing/run-middleware.ts +219 -0
  1211. package/src/testing/run-transition-when.ts +197 -0
  1212. package/src/testing/shell-status.ts +206 -0
  1213. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1214. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1215. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1216. package/src/testing/vitest-stubs/version.ts +5 -0
  1217. package/src/testing/vitest.ts +305 -0
  1218. package/src/theme/ThemeProvider.tsx +56 -84
  1219. package/src/theme/ThemeScript.tsx +7 -9
  1220. package/src/theme/constants.ts +52 -13
  1221. package/src/theme/index.ts +0 -7
  1222. package/src/theme/theme-context.ts +1 -5
  1223. package/src/theme/theme-script.ts +22 -21
  1224. package/src/theme/use-theme.ts +0 -3
  1225. package/src/types/boundaries.ts +15 -35
  1226. package/src/types/cache-types.ts +13 -4
  1227. package/src/types/error-types.ts +30 -90
  1228. package/src/types/global-namespace.ts +54 -41
  1229. package/src/types/handler-context.ts +121 -30
  1230. package/src/types/index.ts +3 -10
  1231. package/src/types/loader-types.ts +38 -7
  1232. package/src/types/request-scope.ts +8 -22
  1233. package/src/types/route-config.ts +20 -52
  1234. package/src/types/route-entry.ts +3 -6
  1235. package/src/types/segments.ts +147 -14
  1236. package/src/urls/include-helper.ts +38 -64
  1237. package/src/urls/include-provider.ts +71 -0
  1238. package/src/urls/index.ts +2 -11
  1239. package/src/urls/path-helper-types.ts +76 -24
  1240. package/src/urls/path-helper.ts +30 -110
  1241. package/src/urls/pattern-types.ts +101 -19
  1242. package/src/urls/response-types.ts +20 -19
  1243. package/src/urls/type-extraction.ts +98 -154
  1244. package/src/urls/urls-function.ts +1 -19
  1245. package/src/use-loader.tsx +355 -109
  1246. package/src/vercel/index.ts +11 -0
  1247. package/src/vercel/tracing.ts +89 -0
  1248. package/src/vite/debug.ts +102 -3
  1249. package/src/vite/discovery/bundle-postprocess.ts +18 -14
  1250. package/src/vite/discovery/client-urls-projection.ts +322 -0
  1251. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  1252. package/src/vite/discovery/discover-routers.ts +178 -151
  1253. package/src/vite/discovery/discovery-errors.ts +255 -0
  1254. package/src/vite/discovery/gate-state.ts +171 -0
  1255. package/src/vite/discovery/prerender-collection.ts +125 -70
  1256. package/src/vite/discovery/route-types-writer.ts +40 -84
  1257. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1258. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  1259. package/src/vite/discovery/state.ts +104 -6
  1260. package/src/vite/discovery/virtual-module-codegen.ts +226 -87
  1261. package/src/vite/encryption-key.ts +29 -0
  1262. package/src/vite/index.ts +12 -0
  1263. package/src/vite/inject-client-debug.ts +88 -0
  1264. package/src/vite/plugin-types.ts +243 -10
  1265. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  1266. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  1267. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  1268. package/src/vite/plugins/cloudflare-protocol-stub.ts +1 -21
  1269. package/src/vite/plugins/expose-action-id.ts +50 -97
  1270. package/src/vite/plugins/expose-id-utils.ts +88 -55
  1271. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  1272. package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
  1273. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  1274. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  1275. package/src/vite/plugins/expose-internal-ids.ts +551 -486
  1276. package/src/vite/plugins/performance-tracks.ts +25 -22
  1277. package/src/vite/plugins/refresh-cmd.ts +1 -1
  1278. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  1279. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  1280. package/src/vite/plugins/use-cache-transform.ts +73 -83
  1281. package/src/vite/plugins/vercel-output.ts +384 -0
  1282. package/src/vite/plugins/version-injector.ts +39 -29
  1283. package/src/vite/plugins/version-plugin.ts +45 -40
  1284. package/src/vite/plugins/virtual-entries.ts +193 -30
  1285. package/src/vite/rango.ts +240 -128
  1286. package/src/vite/router-discovery.ts +1518 -174
  1287. package/src/vite/utils/ast-handler-extract.ts +26 -35
  1288. package/src/vite/utils/bundle-analysis.ts +10 -15
  1289. package/src/vite/utils/client-chunks.ts +184 -0
  1290. package/src/vite/utils/directive-prologue.ts +40 -0
  1291. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1292. package/src/vite/utils/manifest-utils.ts +1 -59
  1293. package/src/vite/utils/package-resolution.ts +2 -73
  1294. package/src/vite/utils/prerender-utils.ts +96 -49
  1295. package/src/vite/utils/shared-utils.ts +156 -43
  1296. package/src/browser/action-response-classifier.ts +0 -99
  1297. package/src/browser/react/use-client-cache.ts +0 -58
  1298. package/src/browser/shallow.ts +0 -40
  1299. package/src/handles/index.ts +0 -7
  1300. package/src/network-error-thrower.tsx +0 -23
  1301. package/src/router/middleware-cookies.ts +0 -55
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Vercel OpenTelemetry tracing integration.
3
+ *
4
+ * Bridges the router's observable phases (request, middleware, action, loaders,
5
+ * handler, render, ssr, response, background) onto OpenTelemetry spans so they
6
+ * show up in Vercel's trace waterfall next to the platform's automatic spans,
7
+ * with correct nesting. Vercel exposes tracing through OpenTelemetry (not a
8
+ * native import-free API like Cloudflare), so this is a thin convenience over
9
+ * `createOTelTracing`: it reads the global OTel tracer that `@vercel/otel`'s
10
+ * `registerOTel()` installs.
11
+ *
12
+ * Usage (vercel preset). A Rango/Vite app does NOT auto-load `instrumentation.ts`
13
+ * the way Next.js does, so export the tracing config from there and import it —
14
+ * the import is what runs `registerOTel()`. A standalone `registerOTel()` that
15
+ * nothing imports is a silent no-op (the tracer never registers, spans drop):
16
+ *
17
+ * // instrumentation.ts
18
+ * import { registerOTel } from "@vercel/otel";
19
+ * import { createVercelTracing } from "@rangojs/router/vercel";
20
+ * registerOTel({ serviceName: "my-app" });
21
+ * export const tracing = createVercelTracing();
22
+ *
23
+ * // router.tsx — importing `tracing` runs instrumentation.ts (and registerOTel)
24
+ * import { createRouter } from "@rangojs/router";
25
+ * import { tracing } from "./instrumentation.js";
26
+ * export const router = createRouter({ tracing });
27
+ *
28
+ * Two runtime caveats inherited from the platform:
29
+ * - Node.js runtime only. Vercel custom spans are unsupported on the Edge
30
+ * runtime; `startActiveSpan` also needs an AsyncLocalStorage context manager
31
+ * (which @vercel/otel configures on Node) for spans to nest correctly.
32
+ * - `registerOTel()` must run before the first request. Reading the tracer via
33
+ * `trace.getTracer` here is safe even if it runs first — the API's proxy
34
+ * tracer delegates to the provider once registered — but no provider means
35
+ * every span is a no-op (the request behaves exactly as if tracing were off).
36
+ *
37
+ * Whether spans are actually exported is governed by your OTel setup / Vercel
38
+ * tracing destination, not by this adapter.
39
+ */
40
+
41
+ import { trace } from "@opentelemetry/api";
42
+ import {
43
+ createOTelTracing,
44
+ type OTelActiveSpanTracer,
45
+ } from "../router/telemetry-otel.js";
46
+ import type {
47
+ RouterTracingConfig,
48
+ TracingToggleOptions,
49
+ } from "../router/tracing.js";
50
+
51
+ /**
52
+ * Options for createVercelTracing. Extends the shared
53
+ * {@link TracingToggleOptions} (`enabled` + per-phase `spans`) with the
54
+ * Vercel-specific tracer selectors.
55
+ */
56
+ export interface VercelTracingOptions extends TracingToggleOptions {
57
+ /**
58
+ * OTel instrumentation-scope name passed to `trace.getTracer()`. Defaults to
59
+ * `"rango"`. Ignored when `tracer` is provided.
60
+ */
61
+ tracerName?: string;
62
+ /**
63
+ * Explicit tracer override. Defaults to the global OTel tracer
64
+ * (`trace.getTracer(tracerName)`) — the provider `@vercel/otel`'s
65
+ * `registerOTel()` installs. Pass this to bridge onto a tracer you own.
66
+ */
67
+ tracer?: OTelActiveSpanTracer;
68
+ }
69
+
70
+ /**
71
+ * Create the tracing config for a Vercel router. Pass the result to
72
+ * `createRouter({ tracing })`. Spans are emitted for the request, middleware,
73
+ * action, loaders, handler, render, ssr, response, and background phases; pass
74
+ * `spans` to turn individual phases off.
75
+ *
76
+ * @see createOTelTracing (`@rangojs/router`) for the underlying adapter on any
77
+ * platform with an OpenTelemetry SDK.
78
+ * @see createCloudflareTracing (`@rangojs/router/cloudflare`) for the same slot
79
+ * using Cloudflare Workers native custom spans.
80
+ */
81
+ export function createVercelTracing(
82
+ options: VercelTracingOptions = {},
83
+ ): RouterTracingConfig {
84
+ const { tracerName = "rango", tracer, enabled, spans } = options;
85
+ return createOTelTracing(tracer ?? trace.getTracer(tracerName), {
86
+ enabled,
87
+ spans,
88
+ });
89
+ }
package/src/vite/debug.ts CHANGED
@@ -10,7 +10,7 @@
10
10
  * Returns `undefined` when no matching namespace is enabled, so call sites
11
11
  * can guard expensive diagnostics with a simple truthiness check:
12
12
  *
13
- * const debug = createRangoDebugger("rango:routes");
13
+ * const debug = createRangoDebugger(NS.routes);
14
14
  * if (debug) debug("built manifest (%d routes) in %dms", n, ms);
15
15
  *
16
16
  * Back-compat: INTERNAL_RANGO_DEBUG=1 still enables all rango namespaces.
@@ -23,6 +23,21 @@
23
23
 
24
24
  import debugFactory from "debug";
25
25
 
26
+ /**
27
+ * Canonical debug namespaces. Import as `NS.xxx` instead of string literals
28
+ * so typos become type errors and the full set lives in one place.
29
+ */
30
+ export const NS = {
31
+ config: "rango:config",
32
+ discovery: "rango:discovery",
33
+ routes: "rango:routes",
34
+ prerender: "rango:prerender",
35
+ build: "rango:build",
36
+ dev: "rango:dev",
37
+ transform: "rango:transform",
38
+ chunks: "rango:chunks",
39
+ } as const;
40
+
26
41
  // Back-compat: the legacy INTERNAL_RANGO_DEBUG env var enabled per-site
27
42
  // console.logs in this plugin. Map it to `rango:*` so those call sites can
28
43
  // be migrated to the `debug` pipeline without breaking existing setups.
@@ -40,8 +55,8 @@ export function createRangoDebugger(namespace: string): Debugger | undefined {
40
55
  // Shadow namespace so `vite --debug rango:*` (which expands to
41
56
  // DEBUG=vite:rango:*) and `vite --debug` (DEBUG=vite:*) both pick us up.
42
57
  const shadow = debugFactory(`vite:${namespace}`);
43
- if (primary.enabled) return primary as unknown as Debugger;
44
- if (shadow.enabled) return shadow as unknown as Debugger;
58
+ if (primary.enabled) return primary as Debugger;
59
+ if (shadow.enabled) return shadow as Debugger;
45
60
  return undefined;
46
61
  }
47
62
 
@@ -84,3 +99,87 @@ export function timedSync<T>(
84
99
  debug("%s (%sms)", label, (performance.now() - start).toFixed(1));
85
100
  }
86
101
  }
102
+
103
+ /**
104
+ * Aggregate counter for high-frequency call sites (typically Vite
105
+ * `transform` hooks that run on many files). Per-call logging would
106
+ * drown real signal; this collects totals and reports once on flush.
107
+ *
108
+ * const counter = createCounter(debug, "use-cache-transform");
109
+ * // inside transform():
110
+ * return counter?.time(id, () => doWork()) ?? doWork();
111
+ * // or manually:
112
+ * counter?.record(id, ms);
113
+ * // flush on buildEnd (counter resets, so multi-env builds each get
114
+ * // their own summary line):
115
+ * counter?.flush();
116
+ *
117
+ * Returns `undefined` when the namespace is disabled so call sites pay
118
+ * nothing when off.
119
+ */
120
+ export interface Counter {
121
+ record(file: string, ms: number): void;
122
+ /**
123
+ * Convenience: time a sync or async block and record it. Propagates
124
+ * throws; records regardless of outcome. Returns the function's result.
125
+ */
126
+ time<T>(file: string, fn: () => T): T;
127
+ time<T>(file: string, fn: () => Promise<T>): Promise<T>;
128
+ flush(): void;
129
+ }
130
+
131
+ export function createCounter(
132
+ debug: Debugger | undefined,
133
+ label: string,
134
+ ): Counter | undefined {
135
+ if (!debug) return undefined;
136
+ let n = 0;
137
+ let totalMs = 0;
138
+ let slowestMs = 0;
139
+ let slowestFile = "";
140
+ const record = (file: string, ms: number): void => {
141
+ n++;
142
+ totalMs += ms;
143
+ if (ms > slowestMs) {
144
+ slowestMs = ms;
145
+ slowestFile = file;
146
+ }
147
+ };
148
+ return {
149
+ record,
150
+ time<T>(file: string, fn: () => T | Promise<T>): T | Promise<T> {
151
+ const start = performance.now();
152
+ let out: T | Promise<T>;
153
+ try {
154
+ out = fn();
155
+ } catch (err) {
156
+ record(file, performance.now() - start);
157
+ throw err;
158
+ }
159
+ if (out && typeof (out as any).then === "function") {
160
+ return (out as Promise<T>).finally(() =>
161
+ record(file, performance.now() - start),
162
+ );
163
+ }
164
+ record(file, performance.now() - start);
165
+ return out;
166
+ },
167
+ flush(): void {
168
+ if (n === 0) return;
169
+ debug(
170
+ "%s: %d files, %sms total, slowest %sms %s",
171
+ label,
172
+ n,
173
+ totalMs.toFixed(1),
174
+ slowestMs.toFixed(1),
175
+ slowestFile,
176
+ );
177
+ // Reset so buildEnd firing once per environment (Vite 6+ multi-env)
178
+ // gives one log line per env rather than silently dropping later data.
179
+ n = 0;
180
+ totalMs = 0;
181
+ slowestMs = 0;
182
+ slowestFile = "";
183
+ },
184
+ };
185
+ }
@@ -9,6 +9,7 @@ import { resolve } from "node:path";
9
9
  import { readFileSync, writeFileSync, existsSync } from "node:fs";
10
10
  import { evictHandlerCode } from "../utils/bundle-analysis.js";
11
11
  import { copyStagedBuildAssets } from "../utils/prerender-utils.js";
12
+ import { jsonParseExpression } from "../utils/manifest-utils.js";
12
13
  import type { DiscoveryState } from "./state.js";
13
14
 
14
15
  /**
@@ -71,12 +72,12 @@ export function postprocessBundle(state: DiscoveryState): void {
71
72
  writeFileSync(chunkPath, result.code);
72
73
  const savedKB = (result.savedBytes / 1024).toFixed(1);
73
74
  console.log(
74
- `[rsc-router] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`,
75
+ `[rango] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`,
75
76
  );
76
77
  }
77
78
  } catch (replaceErr: any) {
78
79
  console.warn(
79
- `[rsc-router] Failed to evict ${target.label}: ${replaceErr.message}`,
80
+ `[rango] Failed to evict ${target.label}: ${replaceErr.message}`,
80
81
  );
81
82
  }
82
83
  }
@@ -104,7 +105,7 @@ export function postprocessBundle(state: DiscoveryState): void {
104
105
  }
105
106
 
106
107
  const manifestCode = [
107
- `const m=JSON.parse('${JSON.stringify(manifestMap).replace(/'/g, "\\'")}');`,
108
+ `const m=${jsonParseExpression(manifestMap)};`,
108
109
  `export function loadPrerenderAsset(s){return import(s)}`,
109
110
  `export default m;`,
110
111
  "",
@@ -121,18 +122,18 @@ export function postprocessBundle(state: DiscoveryState): void {
121
122
 
122
123
  const totalKB = (totalBytes / 1024).toFixed(1);
123
124
  console.log(
124
- `[rsc-router] Wrote prerender assets (${totalKB} KB total, ${Object.keys(state.prerenderManifestEntries!).length} entries)`,
125
+ `[rango] Wrote prerender assets (${totalKB} KB total, ${Object.keys(state.prerenderManifestEntries!).length} entries)`,
125
126
  );
126
127
  } catch (err: any) {
127
128
  throw new Error(
128
- `[rsc-router] Failed to write prerender assets: ${err.message}`,
129
+ `[rango] Failed to write prerender assets: ${err.message}`,
129
130
  );
130
131
  }
131
132
  }
132
133
  }
133
134
 
134
135
  // 3. Write static handler data as separate importable asset modules
135
- // and inject a __STATIC_MANIFEST import into the RSC entry.
136
+ // and inject a lazy loader thunk into the RSC entry.
136
137
  if (hasStaticData && existsSync(rscEntryPath)) {
137
138
  const rscCode = readFileSync(rscEntryPath, "utf-8");
138
139
  if (!rscCode.includes("__static-manifest.js")) {
@@ -151,9 +152,10 @@ export function postprocessBundle(state: DiscoveryState): void {
151
152
  );
152
153
  }
153
154
 
154
- // Set the global inside the manifest module so it is assigned
155
- // during module evaluation (before dependent modules like
156
- // segment-resolution.ts run their top-level initializers).
155
+ // The module assigns the global on evaluation; evaluation itself is
156
+ // DEFERRED behind the loader thunk below (mirroring the prerender and
157
+ // shell manifests), so the thunk table stays off the worker's eager
158
+ // cold-start path (issue #760) — it grows O(#Static handlers).
157
159
  const manifestCode = `const m={${manifestEntries.join(",")}};globalThis.__STATIC_MANIFEST=m;export default m;\n`;
158
160
  const manifestPath = resolve(
159
161
  state.projectRoot,
@@ -162,18 +164,20 @@ export function postprocessBundle(state: DiscoveryState): void {
162
164
  writeFileSync(manifestPath, manifestCode);
163
165
  totalBytes += Buffer.byteLength(manifestCode);
164
166
 
165
- // The import ensures the manifest module is evaluated early.
166
- // The global is already set inside the module itself.
167
- const injection = `import "./__static-manifest.js";\n`;
167
+ // Lazy thunk, NOT an eager import: static-store.ts resolves it on the
168
+ // first Static() lookup (a first-call latch the entry body assigning
169
+ // this global runs after hoisted imports, so an eval-time read in
170
+ // static-store.ts could never see it).
171
+ const injection = `globalThis.__loadStaticManifestModule = () => import("./__static-manifest.js");\n`;
168
172
  writeFileSync(rscEntryPath, injection + rscCode);
169
173
 
170
174
  const totalKB = (totalBytes / 1024).toFixed(1);
171
175
  console.log(
172
- `[rsc-router] Wrote static assets (${totalKB} KB total, ${Object.keys(state.staticManifestEntries!).length} entries)`,
176
+ `[rango] Wrote static assets (${totalKB} KB total, ${Object.keys(state.staticManifestEntries!).length} entries)`,
173
177
  );
174
178
  } catch (err: any) {
175
179
  throw new Error(
176
- `[rsc-router] Failed to write static assets: ${err.message}`,
180
+ `[rango] Failed to write static assets: ${err.message}`,
177
181
  );
178
182
  }
179
183
  }
@@ -0,0 +1,322 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { isAbsolute, relative, resolve } from "node:path";
3
+ import { normalizePath, parseAst } from "vite";
4
+ import {
5
+ serializeClientUrlPatterns,
6
+ type ClientUrlProjection,
7
+ } from "../../client-urls/server-projection.js";
8
+ import type { ClientUrlPatterns } from "../../client-urls/types.js";
9
+ import {
10
+ computeProductionHash,
11
+ hashRefKey,
12
+ } from "../plugins/client-ref-hashing.js";
13
+ import { hasUseClientDirective } from "../utils/directive-prologue.js";
14
+ import { createRangoDebugger, NS } from "../debug.js";
15
+ import { findTsFiles } from "../../build/route-types/scan-filter.js";
16
+ import type { DiscoveryState } from "./state.js";
17
+
18
+ const debug = createRangoDebugger(NS.discovery);
19
+
20
+ interface ClientUrlSsrEnvironment {
21
+ readonly runner?: {
22
+ import(id: string): Promise<Record<string, unknown>>;
23
+ };
24
+ }
25
+
26
+ interface ClientUrlProjectionServerModule {
27
+ clearClientUrlProjections(): void;
28
+ setClientUrlProjection(
29
+ referenceId: string,
30
+ projection: ClientUrlProjection,
31
+ ): void;
32
+ }
33
+
34
+ function hasDefaultExport(code: string): boolean {
35
+ let program: { body?: any[] };
36
+ try {
37
+ program = parseAst(code, { lang: "tsx" }) as { body?: any[] };
38
+ } catch {
39
+ return false;
40
+ }
41
+
42
+ for (const node of program.body ?? []) {
43
+ if (node?.type === "ExportDefaultDeclaration") return true;
44
+ if (node?.type !== "ExportNamedDeclaration") continue;
45
+ for (const specifier of node.specifiers ?? []) {
46
+ const exportedName =
47
+ specifier?.exported?.name ?? specifier?.exported?.value;
48
+ if (exportedName === "default") return true;
49
+ }
50
+ }
51
+ return false;
52
+ }
53
+
54
+ function normalizeSource(state: DiscoveryState, id: string): string {
55
+ const cleanId = id.split("?", 1)[0];
56
+ const absoluteId = isAbsolute(cleanId)
57
+ ? cleanId
58
+ : resolve(state.projectRoot, cleanId);
59
+ return normalizePath(absoluteId);
60
+ }
61
+
62
+ function referenceId(referenceKey: string): string {
63
+ return `${referenceKey}#default`;
64
+ }
65
+
66
+ function withoutReferenceQuery(reference: string): string {
67
+ const exportIndex = reference.lastIndexOf("#");
68
+ const moduleId =
69
+ exportIndex === -1 ? reference : reference.slice(0, exportIndex);
70
+ const exportName = exportIndex === -1 ? "" : reference.slice(exportIndex);
71
+ const queryIndex = moduleId.indexOf("?");
72
+ return `${queryIndex === -1 ? moduleId : moduleId.slice(0, queryIndex)}${exportName}`;
73
+ }
74
+
75
+ export function recordClientUrlsModule(
76
+ state: DiscoveryState,
77
+ code: string,
78
+ id: string,
79
+ ): void {
80
+ if (
81
+ !code.includes("clientUrls(") ||
82
+ !hasUseClientDirective(code) ||
83
+ !hasDefaultExport(code)
84
+ ) {
85
+ return;
86
+ }
87
+
88
+ const source = normalizeSource(state, id);
89
+ const projectRoot = normalizePath(resolve(state.projectRoot));
90
+ const relativeId = normalizePath(relative(projectRoot, source));
91
+ const outsideProject =
92
+ relativeId === ".." ||
93
+ relativeId.startsWith("../") ||
94
+ isAbsolute(relativeId);
95
+ const devReferenceKey = outsideProject ? `/@fs${source}` : `/${relativeId}`;
96
+
97
+ const sourceByReferenceId = (state.clientUrlSourceByReferenceId ??=
98
+ new Map());
99
+ sourceByReferenceId.set(referenceId(devReferenceKey), source);
100
+
101
+ const productionReferenceKeys = new Set([
102
+ hashRefKey(relativeId),
103
+ computeProductionHash(projectRoot, devReferenceKey),
104
+ ]);
105
+ for (const productionReferenceKey of productionReferenceKeys) {
106
+ sourceByReferenceId.set(referenceId(productionReferenceKey), source);
107
+ }
108
+ }
109
+
110
+ export function resolveClientUrlsSource(
111
+ state: DiscoveryState,
112
+ referenceId: string,
113
+ ): string | undefined {
114
+ return state.clientUrlSourceByReferenceId?.get(
115
+ withoutReferenceQuery(referenceId),
116
+ );
117
+ }
118
+
119
+ /**
120
+ * Deterministic filesystem discovery of clientUrls modules. Transform-based
121
+ * recording only sees modules that some environment actually loads — a
122
+ * clientUrls module not yet reachable from any transformed graph at discovery
123
+ * time (cold ordering, a mount added before its first import is served) would
124
+ * never be recorded and its include would fail with empty projections. Walking
125
+ * the project source (the same walk static route-type generation performs)
126
+ * makes recording independent of module-graph timing. The transform hooks
127
+ * still record too — they refresh dev HMR edits between scans.
128
+ */
129
+ export function scanForClientUrlModules(state: DiscoveryState): void {
130
+ if (!state.projectRoot) return;
131
+ for (const filePath of findTsFiles(state.projectRoot, state.scanFilter)) {
132
+ let code: string;
133
+ try {
134
+ code = readFileSync(filePath, "utf-8");
135
+ } catch {
136
+ continue;
137
+ }
138
+ recordClientUrlsModule(state, code, filePath);
139
+ }
140
+ }
141
+
142
+ function projectionError(
143
+ referenceId: string,
144
+ source: string | undefined,
145
+ message: string,
146
+ cause?: unknown,
147
+ ): Error {
148
+ const sourceDescription = source ? ` from source "${source}"` : "";
149
+ const errorMessage = `Cannot discover client URL projection for reference "${referenceId}"${sourceDescription}: ${message}`;
150
+ return cause === undefined
151
+ ? new Error(errorMessage)
152
+ : new Error(errorMessage, { cause });
153
+ }
154
+
155
+ /**
156
+ * Lenient pre-entry projection refresh. Re-serializes every RECORDED clientUrls
157
+ * module before the discovery pass imports the entry, so routers re-created by
158
+ * that import materialize against the CURRENT module contents.
159
+ *
160
+ * Scar: node-preset HMR served stale client-urls routes after a route-shape
161
+ * edit — the clientUrls module is an HMR-accepted client boundary in the rsc
162
+ * graph, and the strict registry-driven pass below only runs AFTER the entry
163
+ * import, so `.routes(reference)` materialized the previous pass's projection.
164
+ *
165
+ * Errors are deliberately swallowed per source (a module mid-edit keeps its
166
+ * last-known projection); the strict discoverClientUrlProjections() pass still
167
+ * surfaces real failures afterwards. No-ops on cold start (nothing recorded
168
+ * yet) and when the SSR runner is unavailable.
169
+ */
170
+ export async function refreshRecordedClientUrlProjections(
171
+ state: DiscoveryState,
172
+ ssrEnv: ClientUrlSsrEnvironment | undefined,
173
+ serverMod: ClientUrlProjectionServerModule,
174
+ ): Promise<void> {
175
+ const sourceByReferenceId = state.clientUrlSourceByReferenceId;
176
+ if (
177
+ !sourceByReferenceId?.size ||
178
+ typeof ssrEnv?.runner?.import !== "function"
179
+ ) {
180
+ return;
181
+ }
182
+
183
+ const referenceIdsBySource = new Map<string, string[]>();
184
+ for (const [refId, source] of sourceByReferenceId) {
185
+ const ids = referenceIdsBySource.get(source);
186
+ if (ids) {
187
+ ids.push(refId);
188
+ } else {
189
+ referenceIdsBySource.set(source, [refId]);
190
+ }
191
+ }
192
+
193
+ for (const [source, referenceIds] of referenceIdsBySource) {
194
+ let definition: unknown;
195
+ try {
196
+ definition = (await ssrEnv.runner.import(source)).default;
197
+ } catch {
198
+ continue;
199
+ }
200
+ if (
201
+ (typeof definition !== "object" && typeof definition !== "function") ||
202
+ definition === null ||
203
+ (definition as { __brand?: unknown }).__brand !== "client-urls"
204
+ ) {
205
+ continue;
206
+ }
207
+ const projection = serializeClientUrlPatterns(
208
+ definition as ClientUrlPatterns,
209
+ );
210
+ debug?.(
211
+ "pre-entry refresh %s -> [%s]",
212
+ source,
213
+ projection.routes.map((route) => route.pattern).join(", "),
214
+ );
215
+ for (const referenceId of referenceIds) {
216
+ serverMod.setClientUrlProjection(referenceId, projection);
217
+ // The eager routes-manifest virtual module REPLAYS this state map
218
+ // (clearClientUrlProjections + set) whenever it re-evaluates — and the
219
+ // watcher's gen-file write invalidates it right before the entry import,
220
+ // so a stale map here would clobber the registry install above before
221
+ // the router materializes its mount. Keep both in sync.
222
+ state.clientUrlProjectionMap?.set(referenceId, projection);
223
+ }
224
+ }
225
+ }
226
+
227
+ /**
228
+ * Strict projection discovery over every RECORDED clientUrls module. Recorded
229
+ * modules — not router references — are the source of truth: include() mounts
230
+ * materialize lazily from the projection registry, so there is no router-level
231
+ * reference list to consult. Serializes every source before atomically
232
+ * installing the new projections (a failure preserves last-known state).
233
+ *
234
+ * A recorded source whose file no longer exists is dropped silently
235
+ * (recordClientUrlsModule never un-records, so deletions must self-heal here).
236
+ * A present-but-broken module is a hard error: it is part of the app graph.
237
+ */
238
+ export async function discoverClientUrlProjections(
239
+ state: DiscoveryState,
240
+ ssrEnv: ClientUrlSsrEnvironment | undefined,
241
+ serverMod: ClientUrlProjectionServerModule,
242
+ ): Promise<void> {
243
+ scanForClientUrlModules(state);
244
+ const sourceByReferenceId = state.clientUrlSourceByReferenceId;
245
+ if (!sourceByReferenceId?.size) {
246
+ serverMod.clearClientUrlProjections();
247
+ state.clientUrlProjectionMap = new Map();
248
+ return;
249
+ }
250
+
251
+ const referenceIdsBySource = new Map<string, string[]>();
252
+ for (const [referenceId, source] of sourceByReferenceId) {
253
+ const ids = referenceIdsBySource.get(source);
254
+ if (ids) {
255
+ ids.push(referenceId);
256
+ } else {
257
+ referenceIdsBySource.set(source, [referenceId]);
258
+ }
259
+ }
260
+
261
+ if (typeof ssrEnv?.runner?.import !== "function") {
262
+ const [source, ids] = referenceIdsBySource.entries().next().value as [
263
+ string,
264
+ string[],
265
+ ];
266
+ throw projectionError(
267
+ ids[0],
268
+ source,
269
+ "the SSR module runner is unavailable",
270
+ );
271
+ }
272
+
273
+ const nextProjections = new Map<string, ClientUrlProjection>();
274
+ const removedSources: string[] = [];
275
+ for (const [source, referenceIds] of referenceIdsBySource) {
276
+ let module: Record<string, unknown>;
277
+ try {
278
+ module = await ssrEnv.runner.import(source);
279
+ } catch (cause) {
280
+ if (!existsSync(source)) {
281
+ removedSources.push(source);
282
+ continue;
283
+ }
284
+ throw projectionError(
285
+ referenceIds[0],
286
+ source,
287
+ "failed to import the source module",
288
+ cause,
289
+ );
290
+ }
291
+ const definition = module.default;
292
+ if (
293
+ (typeof definition !== "object" && typeof definition !== "function") ||
294
+ definition === null ||
295
+ (definition as { __brand?: unknown }).__brand !== "client-urls"
296
+ ) {
297
+ throw projectionError(
298
+ referenceIds[0],
299
+ source,
300
+ 'the module default export must be created by clientUrls() and have __brand === "client-urls"',
301
+ );
302
+ }
303
+ const projection = serializeClientUrlPatterns(
304
+ definition as ClientUrlPatterns,
305
+ );
306
+ for (const referenceId of referenceIds) {
307
+ nextProjections.set(referenceId, projection);
308
+ }
309
+ }
310
+
311
+ for (const source of removedSources) {
312
+ for (const [referenceId, recorded] of sourceByReferenceId) {
313
+ if (recorded === source) sourceByReferenceId.delete(referenceId);
314
+ }
315
+ }
316
+
317
+ serverMod.clearClientUrlProjections();
318
+ for (const [id, projection] of nextProjections) {
319
+ serverMod.setClientUrlProjection(id, projection);
320
+ }
321
+ state.clientUrlProjectionMap = nextProjections;
322
+ }