@rangojs/router 0.1.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/README.md +2 -1
  2. package/dist/types/browser/prefetch/default-strategy.d.ts +22 -0
  3. package/dist/types/browser/prefetch/runtime.d.ts +0 -1
  4. package/dist/types/browser/react/Link.d.ts +8 -11
  5. package/dist/types/browser/types.d.ts +5 -0
  6. package/dist/types/cache/document-cache.d.ts +3 -1
  7. package/dist/types/cache/types.d.ts +10 -3
  8. package/dist/types/route-definition/helpers-types.d.ts +6 -6
  9. package/dist/types/router/match-handlers.d.ts +2 -3
  10. package/dist/types/router/prefetch-default.d.ts +28 -0
  11. package/dist/types/router/router-interfaces.d.ts +7 -0
  12. package/dist/types/router/router-options.d.ts +30 -0
  13. package/dist/types/router/segment-resolution/view-transition-default.d.ts +3 -4
  14. package/dist/types/router/transition-when.d.ts +13 -0
  15. package/dist/types/rsc/capture-queue.d.ts +6 -0
  16. package/dist/types/rsc/shell-capture.d.ts +15 -7
  17. package/dist/types/rsc/shell-serve.d.ts +6 -3
  18. package/dist/types/rsc/transition-gate.d.ts +10 -14
  19. package/dist/types/rsc/types.d.ts +2 -0
  20. package/dist/types/server/request-context.d.ts +5 -1
  21. package/dist/types/testing/e2e/index.d.ts +3 -3
  22. package/dist/types/testing/e2e/page-helpers.d.ts +24 -0
  23. package/dist/types/testing/index.d.ts +2 -2
  24. package/dist/types/testing/run-transition-when.d.ts +6 -5
  25. package/dist/types/testing/shell-status.d.ts +23 -3
  26. package/dist/types/types/segments.d.ts +27 -22
  27. package/dist/types/urls/path-helper-types.d.ts +4 -3
  28. package/dist/types.backup/__internal.d.ts +127 -0
  29. package/dist/types.backup/bin/rango.d.ts +1 -0
  30. package/dist/types.backup/browser/action-coordinator.d.ts +57 -0
  31. package/dist/types.backup/browser/action-fence.d.ts +33 -0
  32. package/dist/types.backup/browser/app-shell.d.ts +34 -0
  33. package/dist/types.backup/browser/app-version.d.ts +6 -0
  34. package/dist/types.backup/browser/connection-warmup.d.ts +31 -0
  35. package/dist/types.backup/browser/cookie-name.d.ts +66 -0
  36. package/dist/types.backup/browser/event-controller.d.ts +221 -0
  37. package/dist/types.backup/browser/history-state.d.ts +26 -0
  38. package/dist/types.backup/browser/index.d.ts +1 -0
  39. package/dist/types.backup/browser/intercept-utils.d.ts +30 -0
  40. package/dist/types.backup/browser/invalidate-client-cache.d.ts +17 -0
  41. package/dist/types.backup/browser/link-interceptor.d.ts +43 -0
  42. package/dist/types.backup/browser/logging.d.ts +33 -0
  43. package/dist/types.backup/browser/merge-segment-loaders.d.ts +38 -0
  44. package/dist/types.backup/browser/navigation-bridge.d.ts +27 -0
  45. package/dist/types.backup/browser/navigation-client.d.ts +17 -0
  46. package/dist/types.backup/browser/navigation-store-handle.d.ts +25 -0
  47. package/dist/types.backup/browser/navigation-store.d.ts +95 -0
  48. package/dist/types.backup/browser/navigation-transaction.d.ts +75 -0
  49. package/dist/types.backup/browser/network-error-handler.d.ts +35 -0
  50. package/dist/types.backup/browser/partial-update.d.ts +61 -0
  51. package/dist/types.backup/browser/prefetch/cache.d.ts +183 -0
  52. package/dist/types.backup/browser/prefetch/fetch.d.ts +52 -0
  53. package/dist/types.backup/browser/prefetch/observer.d.ts +27 -0
  54. package/dist/types.backup/browser/prefetch/policy.d.ts +13 -0
  55. package/dist/types.backup/browser/prefetch/queue.d.ts +48 -0
  56. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +28 -0
  57. package/dist/types.backup/browser/rango-state.d.ts +52 -0
  58. package/dist/types.backup/browser/react/Link.d.ts +140 -0
  59. package/dist/types.backup/browser/react/NavigationProvider.d.ts +88 -0
  60. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +78 -0
  61. package/dist/types.backup/browser/react/context.d.ts +54 -0
  62. package/dist/types.backup/browser/react/filter-segment-order.d.ts +35 -0
  63. package/dist/types.backup/browser/react/index.d.ts +1 -0
  64. package/dist/types.backup/browser/react/location-state-shared.d.ts +162 -0
  65. package/dist/types.backup/browser/react/location-state.d.ts +29 -0
  66. package/dist/types.backup/browser/react/mount-context.d.ts +23 -0
  67. package/dist/types.backup/browser/react/nonce-context.d.ts +14 -0
  68. package/dist/types.backup/browser/react/shallow-equal.d.ts +5 -0
  69. package/dist/types.backup/browser/react/use-action.d.ts +61 -0
  70. package/dist/types.backup/browser/react/use-handle.d.ts +21 -0
  71. package/dist/types.backup/browser/react/use-href.d.ts +32 -0
  72. package/dist/types.backup/browser/react/use-link-status.d.ts +36 -0
  73. package/dist/types.backup/browser/react/use-mount.d.ts +24 -0
  74. package/dist/types.backup/browser/react/use-navigation.d.ts +15 -0
  75. package/dist/types.backup/browser/react/use-params.d.ts +21 -0
  76. package/dist/types.backup/browser/react/use-pathname.d.ts +13 -0
  77. package/dist/types.backup/browser/react/use-reverse.d.ts +40 -0
  78. package/dist/types.backup/browser/react/use-router.d.ts +23 -0
  79. package/dist/types.backup/browser/react/use-search-params.d.ts +19 -0
  80. package/dist/types.backup/browser/react/use-segments.d.ts +29 -0
  81. package/dist/types.backup/browser/response-adapter.d.ts +58 -0
  82. package/dist/types.backup/browser/rsc-router.d.ts +141 -0
  83. package/dist/types.backup/browser/scroll-restoration.d.ts +103 -0
  84. package/dist/types.backup/browser/segment-reconciler.d.ts +74 -0
  85. package/dist/types.backup/browser/segment-structure-assert.d.ts +16 -0
  86. package/dist/types.backup/browser/server-action-bridge.d.ts +29 -0
  87. package/dist/types.backup/browser/types.d.ts +530 -0
  88. package/dist/types.backup/browser/validate-redirect-origin.d.ts +28 -0
  89. package/dist/types.backup/build/collect-fallback-refs.d.ts +5 -0
  90. package/dist/types.backup/build/generate-manifest.d.ts +100 -0
  91. package/dist/types.backup/build/generate-route-types.d.ts +8 -0
  92. package/dist/types.backup/build/index.d.ts +21 -0
  93. package/dist/types.backup/build/prefix-tree-utils.d.ts +56 -0
  94. package/dist/types.backup/build/route-trie.d.ts +89 -0
  95. package/dist/types.backup/build/route-types/ast-helpers.d.ts +3 -0
  96. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +13 -0
  97. package/dist/types.backup/build/route-types/codegen.d.ts +16 -0
  98. package/dist/types.backup/build/route-types/include-resolution.d.ts +74 -0
  99. package/dist/types.backup/build/route-types/param-extraction.d.ts +13 -0
  100. package/dist/types.backup/build/route-types/per-module-writer.d.ts +18 -0
  101. package/dist/types.backup/build/route-types/router-processing.d.ts +82 -0
  102. package/dist/types.backup/build/route-types/scan-filter.d.ts +17 -0
  103. package/dist/types.backup/build/route-types/source-scan.d.ts +13 -0
  104. package/dist/types.backup/build/runtime-discovery.d.ts +24 -0
  105. package/dist/types.backup/cache/background-task.d.ts +21 -0
  106. package/dist/types.backup/cache/cache-error.d.ts +71 -0
  107. package/dist/types.backup/cache/cache-key-utils.d.ts +35 -0
  108. package/dist/types.backup/cache/cache-policy.d.ts +59 -0
  109. package/dist/types.backup/cache/cache-runtime.d.ts +51 -0
  110. package/dist/types.backup/cache/cache-scope.d.ts +134 -0
  111. package/dist/types.backup/cache/cache-tag.d.ts +79 -0
  112. package/dist/types.backup/cache/cf/cf-base64.d.ts +4 -0
  113. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +105 -0
  114. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +481 -0
  115. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +300 -0
  116. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +22 -0
  117. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  118. package/dist/types.backup/cache/cf/index.d.ts +3 -0
  119. package/dist/types.backup/cache/document-cache.d.ts +69 -0
  120. package/dist/types.backup/cache/handle-capture.d.ts +23 -0
  121. package/dist/types.backup/cache/handle-snapshot.d.ts +39 -0
  122. package/dist/types.backup/cache/index.d.ts +7 -0
  123. package/dist/types.backup/cache/memory-segment-store.d.ts +163 -0
  124. package/dist/types.backup/cache/profile-registry.d.ts +40 -0
  125. package/dist/types.backup/cache/read-through-swr.d.ts +60 -0
  126. package/dist/types.backup/cache/segment-codec.d.ts +78 -0
  127. package/dist/types.backup/cache/shell-snapshot.d.ts +162 -0
  128. package/dist/types.backup/cache/tag-invalidation.d.ts +74 -0
  129. package/dist/types.backup/cache/taint.d.ts +71 -0
  130. package/dist/types.backup/cache/types.d.ts +407 -0
  131. package/dist/types.backup/cache/vercel/index.d.ts +1 -0
  132. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +267 -0
  133. package/dist/types.backup/client.d.ts +184 -0
  134. package/dist/types.backup/client.rsc.d.ts +39 -0
  135. package/dist/types.backup/cloudflare/index.d.ts +7 -0
  136. package/dist/types.backup/cloudflare/tracing.d.ts +53 -0
  137. package/dist/types.backup/component-utils.d.ts +46 -0
  138. package/dist/types.backup/components/DefaultDocument.d.ts +13 -0
  139. package/dist/types.backup/context-var.d.ts +84 -0
  140. package/dist/types.backup/debug.d.ts +57 -0
  141. package/dist/types.backup/decode-loader-results.d.ts +5 -0
  142. package/dist/types.backup/default-error-boundary.d.ts +10 -0
  143. package/dist/types.backup/defer.d.ts +89 -0
  144. package/dist/types.backup/deps/browser.d.ts +1 -0
  145. package/dist/types.backup/deps/html-stream-client.d.ts +1 -0
  146. package/dist/types.backup/deps/html-stream-server.d.ts +1 -0
  147. package/dist/types.backup/deps/rsc.d.ts +1 -0
  148. package/dist/types.backup/deps/ssr.d.ts +1 -0
  149. package/dist/types.backup/encode-kv.d.ts +35 -0
  150. package/dist/types.backup/errors.d.ts +226 -0
  151. package/dist/types.backup/escape-script.d.ts +44 -0
  152. package/dist/types.backup/handle.d.ts +93 -0
  153. package/dist/types.backup/handles/MetaTags.d.ts +17 -0
  154. package/dist/types.backup/handles/Scripts.d.ts +38 -0
  155. package/dist/types.backup/handles/breadcrumbs.d.ts +43 -0
  156. package/dist/types.backup/handles/deferred-resolution.d.ts +53 -0
  157. package/dist/types.backup/handles/is-thenable.d.ts +12 -0
  158. package/dist/types.backup/handles/meta.d.ts +43 -0
  159. package/dist/types.backup/handles/script.d.ts +139 -0
  160. package/dist/types.backup/host/cookie-handler.d.ts +8 -0
  161. package/dist/types.backup/host/errors.d.ts +40 -0
  162. package/dist/types.backup/host/index.d.ts +33 -0
  163. package/dist/types.backup/host/pattern-matcher.d.ts +30 -0
  164. package/dist/types.backup/host/router.d.ts +12 -0
  165. package/dist/types.backup/host/testing.d.ts +41 -0
  166. package/dist/types.backup/host/types.d.ts +148 -0
  167. package/dist/types.backup/host/utils.d.ts +20 -0
  168. package/dist/types.backup/href-client.d.ts +214 -0
  169. package/dist/types.backup/index.d.ts +112 -0
  170. package/dist/types.backup/index.rsc.d.ts +51 -0
  171. package/dist/types.backup/internal-debug.d.ts +1 -0
  172. package/dist/types.backup/loader-store.d.ts +193 -0
  173. package/dist/types.backup/loader.d.ts +18 -0
  174. package/dist/types.backup/loader.rsc.d.ts +18 -0
  175. package/dist/types.backup/missing-id-error.d.ts +1 -0
  176. package/dist/types.backup/outlet-context.d.ts +12 -0
  177. package/dist/types.backup/outlet-provider.d.ts +12 -0
  178. package/dist/types.backup/prerender/build-shell-capture.d.ts +104 -0
  179. package/dist/types.backup/prerender/param-hash.d.ts +6 -0
  180. package/dist/types.backup/prerender/shell-manifest-key.d.ts +18 -0
  181. package/dist/types.backup/prerender/store.d.ts +62 -0
  182. package/dist/types.backup/prerender.d.ts +292 -0
  183. package/dist/types.backup/redirect-origin.d.ts +55 -0
  184. package/dist/types.backup/regex-escape.d.ts +6 -0
  185. package/dist/types.backup/render-error-thrower.d.ts +13 -0
  186. package/dist/types.backup/response-utils.d.ts +35 -0
  187. package/dist/types.backup/reverse.d.ts +206 -0
  188. package/dist/types.backup/root-error-boundary.d.ts +32 -0
  189. package/dist/types.backup/route-content-wrapper.d.ts +40 -0
  190. package/dist/types.backup/route-definition/dsl-helpers.d.ts +130 -0
  191. package/dist/types.backup/route-definition/helper-factories.d.ts +22 -0
  192. package/dist/types.backup/route-definition/helpers-types.d.ts +392 -0
  193. package/dist/types.backup/route-definition/index.d.ts +7 -0
  194. package/dist/types.backup/route-definition/redirect.d.ts +48 -0
  195. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +19 -0
  196. package/dist/types.backup/route-definition/use-item-types.d.ts +1 -0
  197. package/dist/types.backup/route-definition.d.ts +1 -0
  198. package/dist/types.backup/route-map-builder.d.ts +127 -0
  199. package/dist/types.backup/route-name.d.ts +27 -0
  200. package/dist/types.backup/route-types.d.ts +172 -0
  201. package/dist/types.backup/router/basename.d.ts +10 -0
  202. package/dist/types.backup/router/content-negotiation.d.ts +91 -0
  203. package/dist/types.backup/router/debug-manifest.d.ts +7 -0
  204. package/dist/types.backup/router/error-handling.d.ts +76 -0
  205. package/dist/types.backup/router/find-match.d.ts +19 -0
  206. package/dist/types.backup/router/handler-context.d.ts +41 -0
  207. package/dist/types.backup/router/instrument.d.ts +161 -0
  208. package/dist/types.backup/router/intercept-resolution.d.ts +79 -0
  209. package/dist/types.backup/router/lazy-includes.d.ts +26 -0
  210. package/dist/types.backup/router/loader-resolution.d.ts +63 -0
  211. package/dist/types.backup/router/logging.d.ts +41 -0
  212. package/dist/types.backup/router/manifest.d.ts +8 -0
  213. package/dist/types.backup/router/match-api.d.ts +19 -0
  214. package/dist/types.backup/router/match-context.d.ts +184 -0
  215. package/dist/types.backup/router/match-handlers.d.ts +49 -0
  216. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +113 -0
  217. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +113 -0
  218. package/dist/types.backup/router/match-middleware/cache-store.d.ts +112 -0
  219. package/dist/types.backup/router/match-middleware/index.d.ts +80 -0
  220. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +116 -0
  221. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +94 -0
  222. package/dist/types.backup/router/match-pipelines.d.ts +103 -0
  223. package/dist/types.backup/router/match-result.d.ts +114 -0
  224. package/dist/types.backup/router/metrics.d.ts +6 -0
  225. package/dist/types.backup/router/middleware-types.d.ts +74 -0
  226. package/dist/types.backup/router/middleware.d.ts +116 -0
  227. package/dist/types.backup/router/navigation-snapshot.d.ts +22 -0
  228. package/dist/types.backup/router/params-util.d.ts +8 -0
  229. package/dist/types.backup/router/parse-pattern.d.ts +38 -0
  230. package/dist/types.backup/router/pattern-matching.d.ts +169 -0
  231. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +27 -0
  232. package/dist/types.backup/router/prefetch-limits.d.ts +20 -0
  233. package/dist/types.backup/router/prerender-match.d.ts +50 -0
  234. package/dist/types.backup/router/preview-match.d.ts +22 -0
  235. package/dist/types.backup/router/request-classification.d.ts +104 -0
  236. package/dist/types.backup/router/revalidation.d.ts +57 -0
  237. package/dist/types.backup/router/route-snapshot.d.ts +112 -0
  238. package/dist/types.backup/router/router-context.d.ts +137 -0
  239. package/dist/types.backup/router/router-interfaces.d.ts +432 -0
  240. package/dist/types.backup/router/router-options.d.ts +738 -0
  241. package/dist/types.backup/router/router-registry.d.ts +15 -0
  242. package/dist/types.backup/router/segment-resolution/fresh.d.ts +55 -0
  243. package/dist/types.backup/router/segment-resolution/helpers.d.ts +93 -0
  244. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +33 -0
  245. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +44 -0
  246. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +90 -0
  247. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +53 -0
  248. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +85 -0
  249. package/dist/types.backup/router/segment-resolution/static-store.d.ts +17 -0
  250. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  251. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +28 -0
  252. package/dist/types.backup/router/segment-resolution.d.ts +3 -0
  253. package/dist/types.backup/router/segment-wrappers.d.ts +53 -0
  254. package/dist/types.backup/router/state-cookie-name.d.ts +1 -0
  255. package/dist/types.backup/router/substitute-pattern-params.d.ts +23 -0
  256. package/dist/types.backup/router/telemetry-otel.d.ts +113 -0
  257. package/dist/types.backup/router/telemetry.d.ts +215 -0
  258. package/dist/types.backup/router/timeout.d.ts +68 -0
  259. package/dist/types.backup/router/tracing.d.ts +125 -0
  260. package/dist/types.backup/router/trie-matching.d.ts +32 -0
  261. package/dist/types.backup/router/types.d.ts +98 -0
  262. package/dist/types.backup/router/url-params.d.ts +26 -0
  263. package/dist/types.backup/router.d.ts +7 -0
  264. package/dist/types.backup/rsc/capture-queue.d.ts +6 -0
  265. package/dist/types.backup/rsc/full-payload.d.ts +22 -0
  266. package/dist/types.backup/rsc/handler-context.d.ts +31 -0
  267. package/dist/types.backup/rsc/handler.d.ts +9 -0
  268. package/dist/types.backup/rsc/helpers.d.ts +213 -0
  269. package/dist/types.backup/rsc/index.d.ts +17 -0
  270. package/dist/types.backup/rsc/json-route-result.d.ts +20 -0
  271. package/dist/types.backup/rsc/loader-fetch.d.ts +14 -0
  272. package/dist/types.backup/rsc/manifest-init.d.ts +18 -0
  273. package/dist/types.backup/rsc/nonce.d.ts +28 -0
  274. package/dist/types.backup/rsc/origin-guard.d.ts +50 -0
  275. package/dist/types.backup/rsc/progressive-enhancement.d.ts +19 -0
  276. package/dist/types.backup/rsc/redirect-guard.d.ts +35 -0
  277. package/dist/types.backup/rsc/response-cache-serve.d.ts +46 -0
  278. package/dist/types.backup/rsc/response-error.d.ts +19 -0
  279. package/dist/types.backup/rsc/response-route-handler.d.ts +29 -0
  280. package/dist/types.backup/rsc/rsc-rendering.d.ts +23 -0
  281. package/dist/types.backup/rsc/runtime-warnings.d.ts +22 -0
  282. package/dist/types.backup/rsc/server-action.d.ts +68 -0
  283. package/dist/types.backup/rsc/shell-build-manifest.d.ts +84 -0
  284. package/dist/types.backup/rsc/shell-capture-constants.d.ts +27 -0
  285. package/dist/types.backup/rsc/shell-capture.d.ts +374 -0
  286. package/dist/types.backup/rsc/shell-serve.d.ts +136 -0
  287. package/dist/types.backup/rsc/ssr-setup.d.ts +48 -0
  288. package/dist/types.backup/rsc/transition-gate.d.ts +27 -0
  289. package/dist/types.backup/rsc/types.d.ts +290 -0
  290. package/dist/types.backup/runtime-env.d.ts +1 -0
  291. package/dist/types.backup/search-params.d.ts +125 -0
  292. package/dist/types.backup/segment-content-promise.d.ts +13 -0
  293. package/dist/types.backup/segment-fragments.d.ts +56 -0
  294. package/dist/types.backup/segment-loader-promise.d.ts +22 -0
  295. package/dist/types.backup/segment-system.d.ts +84 -0
  296. package/dist/types.backup/serialize.d.ts +164 -0
  297. package/dist/types.backup/server/context.d.ts +494 -0
  298. package/dist/types.backup/server/cookie-parse.d.ts +10 -0
  299. package/dist/types.backup/server/cookie-store.d.ts +107 -0
  300. package/dist/types.backup/server/fetchable-loader-store.d.ts +20 -0
  301. package/dist/types.backup/server/handle-store.d.ts +100 -0
  302. package/dist/types.backup/server/loader-registry.d.ts +32 -0
  303. package/dist/types.backup/server/request-context.d.ts +596 -0
  304. package/dist/types.backup/server/root-layout.d.ts +3 -0
  305. package/dist/types.backup/server.d.ts +15 -0
  306. package/dist/types.backup/ssr/index.d.ts +233 -0
  307. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +3 -0
  308. package/dist/types.backup/ssr/preinit-client-references.d.ts +71 -0
  309. package/dist/types.backup/ssr/ssr-root.d.ts +69 -0
  310. package/dist/types.backup/static-handler.d.ts +57 -0
  311. package/dist/types.backup/testing/cache-status.d.ts +63 -0
  312. package/dist/types.backup/testing/collect-handle.d.ts +20 -0
  313. package/dist/types.backup/testing/dispatch.d.ts +123 -0
  314. package/dist/types.backup/testing/dom.entry.d.ts +15 -0
  315. package/dist/types.backup/testing/e2e/fixture.d.ts +37 -0
  316. package/dist/types.backup/testing/e2e/index.d.ts +30 -0
  317. package/dist/types.backup/testing/e2e/matchers.d.ts +17 -0
  318. package/dist/types.backup/testing/e2e/page-helpers.d.ts +62 -0
  319. package/dist/types.backup/testing/e2e/parity.d.ts +111 -0
  320. package/dist/types.backup/testing/e2e/server.d.ts +35 -0
  321. package/dist/types.backup/testing/flight-matchers.d.ts +55 -0
  322. package/dist/types.backup/testing/flight-normalize.d.ts +1 -0
  323. package/dist/types.backup/testing/flight-tree.d.ts +192 -0
  324. package/dist/types.backup/testing/flight.d.ts +115 -0
  325. package/dist/types.backup/testing/flight.entry.d.ts +27 -0
  326. package/dist/types.backup/testing/generated-routes.d.ts +66 -0
  327. package/dist/types.backup/testing/index.d.ts +52 -0
  328. package/dist/types.backup/testing/internal/context.d.ts +225 -0
  329. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +1 -0
  330. package/dist/types.backup/testing/internal/seed-vars.d.ts +30 -0
  331. package/dist/types.backup/testing/render-handler.d.ts +160 -0
  332. package/dist/types.backup/testing/render-route.d.ts +246 -0
  333. package/dist/types.backup/testing/run-loader.d.ts +186 -0
  334. package/dist/types.backup/testing/run-middleware.d.ts +132 -0
  335. package/dist/types.backup/testing/run-transition-when.d.ts +77 -0
  336. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  337. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  338. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  339. package/dist/types.backup/testing/vitest-stubs/version.d.ts +1 -0
  340. package/dist/types.backup/testing/vitest.d.ts +205 -0
  341. package/dist/types.backup/theme/ThemeProvider.d.ts +13 -0
  342. package/dist/types.backup/theme/ThemeScript.d.ts +45 -0
  343. package/dist/types.backup/theme/constants.d.ts +39 -0
  344. package/dist/types.backup/theme/index.d.ts +29 -0
  345. package/dist/types.backup/theme/theme-context.d.ts +21 -0
  346. package/dist/types.backup/theme/theme-script.d.ts +26 -0
  347. package/dist/types.backup/theme/types.d.ts +162 -0
  348. package/dist/types.backup/theme/use-theme.d.ts +8 -0
  349. package/dist/types.backup/types/boundaries.d.ts +93 -0
  350. package/dist/types.backup/types/cache-types.d.ts +191 -0
  351. package/dist/types.backup/types/error-types.d.ts +114 -0
  352. package/dist/types.backup/types/global-namespace.d.ts +90 -0
  353. package/dist/types.backup/types/handler-context.d.ts +658 -0
  354. package/dist/types.backup/types/index.d.ts +11 -0
  355. package/dist/types.backup/types/loader-types.d.ts +182 -0
  356. package/dist/types.backup/types/request-scope.d.ts +93 -0
  357. package/dist/types.backup/types/route-config.d.ts +105 -0
  358. package/dist/types.backup/types/route-entry.d.ts +95 -0
  359. package/dist/types.backup/types/segments.d.ts +234 -0
  360. package/dist/types.backup/types.d.ts +1 -0
  361. package/dist/types.backup/urls/include-helper.d.ts +17 -0
  362. package/dist/types.backup/urls/include-provider.d.ts +27 -0
  363. package/dist/types.backup/urls/index.d.ts +6 -0
  364. package/dist/types.backup/urls/path-helper-types.d.ts +197 -0
  365. package/dist/types.backup/urls/path-helper.d.ts +12 -0
  366. package/dist/types.backup/urls/pattern-types.d.ts +166 -0
  367. package/dist/types.backup/urls/response-types.d.ts +67 -0
  368. package/dist/types.backup/urls/type-extraction.d.ts +157 -0
  369. package/dist/types.backup/urls/urls-function.d.ts +24 -0
  370. package/dist/types.backup/urls.d.ts +1 -0
  371. package/dist/types.backup/use-loader.d.ts +150 -0
  372. package/dist/types.backup/vercel/index.d.ts +10 -0
  373. package/dist/types.backup/vercel/tracing.d.ts +70 -0
  374. package/dist/types.backup/vite/debug.d.ts +80 -0
  375. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +12 -0
  376. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +65 -0
  377. package/dist/types.backup/vite/discovery/discover-routers.d.ts +17 -0
  378. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +113 -0
  379. package/dist/types.backup/vite/discovery/gate-state.d.ts +79 -0
  380. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +24 -0
  381. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +32 -0
  382. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +22 -0
  383. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +40 -0
  384. package/dist/types.backup/vite/discovery/state.d.ts +162 -0
  385. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +15 -0
  386. package/dist/types.backup/vite/index.d.ts +11 -0
  387. package/dist/types.backup/vite/inject-client-debug.d.ts +56 -0
  388. package/dist/types.backup/vite/plugin-types.d.ts +298 -0
  389. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +6 -0
  390. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +40 -0
  391. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +35 -0
  392. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  393. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +18 -0
  394. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +37 -0
  395. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  396. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  397. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  398. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  399. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +29 -0
  400. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +6 -0
  401. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +25 -0
  402. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +20 -0
  403. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +20 -0
  404. package/dist/types.backup/vite/plugins/vercel-output.d.ts +85 -0
  405. package/dist/types.backup/vite/plugins/version-injector.d.ts +21 -0
  406. package/dist/types.backup/vite/plugins/version-plugin.d.ts +19 -0
  407. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +36 -0
  408. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  409. package/dist/types.backup/vite/rango.d.ts +29 -0
  410. package/dist/types.backup/vite/router-discovery.d.ts +23 -0
  411. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +64 -0
  412. package/dist/types.backup/vite/utils/banner.d.ts +2 -0
  413. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +28 -0
  414. package/dist/types.backup/vite/utils/client-chunks.d.ts +55 -0
  415. package/dist/types.backup/vite/utils/directive-prologue.d.ts +16 -0
  416. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +37 -0
  417. package/dist/types.backup/vite/utils/manifest-utils.d.ts +7 -0
  418. package/dist/types.backup/vite/utils/package-resolution.d.ts +6 -0
  419. package/dist/types.backup/vite/utils/prerender-utils.d.ts +32 -0
  420. package/dist/types.backup/vite/utils/shared-utils.d.ts +55 -0
  421. package/dist/vite/index.js +5 -2
  422. package/package.json +20 -21
  423. package/skills/cache-guide/SKILL.md +6 -3
  424. package/skills/catalog.json +7 -1
  425. package/skills/comparison/references/framework-comparison.md +2 -1
  426. package/skills/deployment-caching/SKILL.md +176 -0
  427. package/skills/document-cache/SKILL.md +30 -3
  428. package/skills/ppr/SKILL.md +81 -34
  429. package/skills/prerender/SKILL.md +15 -8
  430. package/skills/rango/SKILL.md +20 -17
  431. package/skills/router-setup/SKILL.md +4 -0
  432. package/skills/testing/SKILL.md +1 -1
  433. package/skills/testing/cache-prerender.md +5 -1
  434. package/skills/vercel/SKILL.md +22 -1
  435. package/skills/view-transitions/SKILL.md +12 -8
  436. package/src/browser/prefetch/default-strategy.ts +34 -0
  437. package/src/browser/prefetch/loader.ts +6 -12
  438. package/src/browser/prefetch/runtime.ts +0 -1
  439. package/src/browser/react/Link.tsx +22 -21
  440. package/src/browser/rsc-router.tsx +8 -0
  441. package/src/browser/types.ts +5 -0
  442. package/src/cache/cache-scope.ts +6 -1
  443. package/src/cache/cf/cf-cache-store.ts +4 -0
  444. package/src/cache/document-cache.ts +4 -2
  445. package/src/cache/types.ts +10 -3
  446. package/src/cache/vercel/vercel-cache-store.ts +6 -1
  447. package/src/route-definition/helpers-types.ts +6 -6
  448. package/src/router/match-handlers.ts +44 -6
  449. package/src/router/match-middleware/cache-lookup.ts +10 -3
  450. package/src/router/prefetch-default.ts +59 -0
  451. package/src/router/router-interfaces.ts +8 -0
  452. package/src/router/router-options.ts +31 -0
  453. package/src/router/segment-resolution/view-transition-default.ts +9 -5
  454. package/src/router/transition-when.ts +76 -0
  455. package/src/router.ts +7 -0
  456. package/src/rsc/capture-queue.ts +24 -1
  457. package/src/rsc/full-payload.ts +1 -0
  458. package/src/rsc/handler.ts +1 -0
  459. package/src/rsc/progressive-enhancement.ts +9 -14
  460. package/src/rsc/rsc-rendering.ts +261 -48
  461. package/src/rsc/shell-capture.ts +94 -50
  462. package/src/rsc/shell-serve.ts +9 -4
  463. package/src/rsc/transition-gate.ts +37 -40
  464. package/src/rsc/types.ts +2 -0
  465. package/src/server/request-context.ts +6 -0
  466. package/src/testing/e2e/index.ts +11 -0
  467. package/src/testing/e2e/page-helpers.ts +47 -0
  468. package/src/testing/e2e/parity.ts +13 -0
  469. package/src/testing/index.ts +9 -1
  470. package/src/testing/run-transition-when.ts +42 -9
  471. package/src/testing/shell-status.ts +92 -3
  472. package/src/types/segments.ts +27 -22
  473. package/src/urls/path-helper-types.ts +4 -3
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Custom error classes for Rango
3
+ *
4
+ * All errors include:
5
+ * - Descriptive names for easy identification
6
+ * - Cause property for structured debugging data
7
+ */
8
+ /**
9
+ * Options for error construction
10
+ */
11
+ interface ErrorOptions {
12
+ cause?: unknown;
13
+ }
14
+ /**
15
+ * Thrown when no route matches the requested pathname
16
+ */
17
+ export declare class RouteNotFoundError extends Error {
18
+ name: "RouteNotFoundError";
19
+ cause?: unknown;
20
+ constructor(message: string, options?: ErrorOptions);
21
+ }
22
+ export declare function isRouteNotFoundError(error: unknown): error is RouteNotFoundError;
23
+ /**
24
+ * Thrown when data is not found (e.g., product with ID doesn't exist)
25
+ * Use this in handlers/loaders to trigger the nearest notFoundBoundary
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * route("products.detail", async (ctx) => {
30
+ * const product = await db.products.get(ctx.params.slug);
31
+ * if (!product) throw new DataNotFoundError("Product not found");
32
+ * return <ProductDetail product={product} />;
33
+ * });
34
+ * ```
35
+ */
36
+ export declare class DataNotFoundError extends Error {
37
+ name: "DataNotFoundError";
38
+ cause?: unknown;
39
+ constructor(message?: string, options?: ErrorOptions);
40
+ }
41
+ /**
42
+ * Convenience function to throw a DataNotFoundError
43
+ * Shorter syntax for common not-found scenarios
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const product = await db.products.get(slug);
48
+ * if (!product) throw notFound("Product not found");
49
+ * // or simply:
50
+ * if (!product) throw notFound();
51
+ * ```
52
+ */
53
+ export declare function notFound(message?: string): never;
54
+ /**
55
+ * Thrown when middleware execution fails
56
+ */
57
+ export declare class MiddlewareError extends Error {
58
+ name: "MiddlewareError";
59
+ cause?: unknown;
60
+ constructor(message: string, options?: ErrorOptions);
61
+ }
62
+ /**
63
+ * Thrown when a route handler fails
64
+ */
65
+ export declare class HandlerError extends Error {
66
+ name: "HandlerError";
67
+ cause?: unknown;
68
+ constructor(message: string, options?: ErrorOptions);
69
+ }
70
+ /**
71
+ * Thrown when segment building fails
72
+ */
73
+ export declare class BuildError extends Error {
74
+ name: "BuildError";
75
+ cause?: unknown;
76
+ constructor(message: string, options?: ErrorOptions);
77
+ }
78
+ /**
79
+ * Thrown when a route-definition DSL helper (route/layout/loader/cache/…) is
80
+ * called outside an active urls()/map() builder, so there is no
81
+ * AsyncLocalStorage build context to attach to. The message names the specific
82
+ * helper and how to fix it; the `cause` records the mechanical reason so the
83
+ * failure mode is identifiable (not conflated with an unrelated throw).
84
+ */
85
+ export declare class DslContextError extends Error {
86
+ name: "DslContextError";
87
+ cause?: unknown;
88
+ constructor(message: string, options?: ErrorOptions);
89
+ }
90
+ /**
91
+ * Thrown when a network request fails (server unreachable, no internet, etc.)
92
+ * This error triggers the root error boundary with retry capability.
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * try {
97
+ * await fetch(url);
98
+ * } catch (error) {
99
+ * if (error instanceof TypeError) {
100
+ * throw new NetworkError("Unable to connect to server", { cause: error });
101
+ * }
102
+ * throw error;
103
+ * }
104
+ * ```
105
+ */
106
+ export declare class NetworkError extends Error {
107
+ name: "NetworkError";
108
+ cause?: unknown;
109
+ /** The URL that failed to fetch */
110
+ url?: string;
111
+ /** Whether this was during an action, navigation, or revalidation */
112
+ operation?: "action" | "navigation" | "revalidation";
113
+ constructor(message?: string, options?: ErrorOptions & {
114
+ url?: string;
115
+ operation?: "action" | "navigation" | "revalidation";
116
+ });
117
+ }
118
+ /**
119
+ * Check if an error is a network-level failure (server unreachable, no internet)
120
+ * These are typically TypeError from fetch when the network request itself fails.
121
+ */
122
+ export declare function isNetworkError(error: unknown): boolean;
123
+ /**
124
+ * Structured error for JSON response routes.
125
+ * Thrown by handlers to return a typed error envelope with a specific HTTP status.
126
+ *
127
+ * Unlike standard Error, RouterError messages are always exposed to the client
128
+ * (the developer intentionally crafted them for consumers).
129
+ *
130
+ * @example
131
+ * ```typescript
132
+ * path("/products/:id", (ctx) => {
133
+ * const product = products.find(p => p.id === ctx.params.id);
134
+ * if (!product) throw new RouterError("NOT_FOUND", "Product not found", { status: 404 });
135
+ * return product;
136
+ * }, { name: "productDetail" })
137
+ * ```
138
+ */
139
+ export declare class RouterError extends Error {
140
+ name: "RouterError";
141
+ code: string;
142
+ status: number;
143
+ cause?: unknown;
144
+ constructor(code: string, message: string, options?: {
145
+ status?: number;
146
+ cause?: unknown;
147
+ });
148
+ }
149
+ /**
150
+ * Thrown inside a Prerender or Static handler at build time to signal
151
+ * "skip this entry, log it, and continue with the rest."
152
+ *
153
+ * When thrown, the entry is excluded from the pre-render manifest
154
+ * but the build continues normally. Regular throws (non-Skip)
155
+ * stop all further pre-rendering and fail the build.
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * export const BlogPost = Prerender(
160
+ * async () => allPosts.map(p => ({ slug: p.slug })),
161
+ * async (ctx) => {
162
+ * const post = await getPost(ctx.params.slug);
163
+ * if (post.draft) throw new Skip(`"${ctx.params.slug}" is a draft`);
164
+ * return <PostPage post={post} />;
165
+ * },
166
+ * );
167
+ * ```
168
+ */
169
+ export declare class Skip extends Error {
170
+ name: "Skip";
171
+ cause?: unknown;
172
+ constructor(message?: string, options?: ErrorOptions);
173
+ }
174
+ /**
175
+ * Type guard to check if a thrown value is a Skip signal.
176
+ */
177
+ export declare function isSkip(value: unknown): value is Skip;
178
+ /**
179
+ * Thrown by the partial updater when the server responds with a redirect payload
180
+ * that carries location state. Caught by navigate() to re-navigate to the
181
+ * redirect target with the server-set state merged into history.pushState.
182
+ *
183
+ * Not an Error subclass -- this is a control flow signal, not a failure.
184
+ */
185
+ export declare class ServerRedirect {
186
+ readonly url: string;
187
+ readonly state: Record<string, unknown> | undefined;
188
+ readonly name = "ServerRedirect";
189
+ constructor(url: string, state: Record<string, unknown> | undefined);
190
+ }
191
+ /**
192
+ * Thrown when route handler returns invalid type
193
+ */
194
+ export declare class InvalidHandlerError extends Error {
195
+ name: "InvalidHandlerError";
196
+ cause?: unknown;
197
+ constructor(message: string, options?: ErrorOptions);
198
+ }
199
+ /**
200
+ * Internal invariant assertion for development-time checks
201
+ *
202
+ * @internal
203
+ * @param condition - Condition that must be true
204
+ * @param message - Error message to throw if condition is false
205
+ * @throws {Error} If condition is false
206
+ *
207
+ * @example
208
+ * ```typescript
209
+ * invariant(user !== null, 'User must be defined');
210
+ * invariant(node.type === 'layout', `Expected layout, got ${node.type}`);
211
+ * ```
212
+ */
213
+ export declare function invariant(condition: any, message: string): asserts condition;
214
+ /**
215
+ * Sanitize errors for production - prevents leaking sensitive information
216
+ *
217
+ * SECURITY CRITICAL:
218
+ * - In production: NEVER send stack traces, file paths, or internal state
219
+ * - In development: Show full error details for debugging
220
+ * - ALWAYS consume error.stack to prevent memory leaks
221
+ *
222
+ * @param error - Error to sanitize
223
+ * @returns Response suitable for sending to client
224
+ */
225
+ export declare function sanitizeError(error: unknown): Response;
226
+ export {};
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Escape a JSON (or JSON-derived) string for safe embedding inside an HTML
3
+ * <script> element via dangerouslySetInnerHTML. Without this a value containing
4
+ * "</script>" closes the tag early — the rest of the page leaks as raw HTML, and
5
+ * in an executable script the trailing content runs. Escaping "<" defeats the
6
+ * early close; ">" and "&" are escaped for completeness so the serialized payload
7
+ * can never form HTML syntax. The result is still valid JSON and a valid JS
8
+ * string literal (\uXXXX escapes are legal in both) and re-parses identically.
9
+ *
10
+ * Used by every site that interpolates JSON.stringify(...) into inline <script>
11
+ * content: the JSON-LD meta descriptors (handles/MetaTags) and the FOUC theme
12
+ * init script (theme/theme-script).
13
+ */
14
+ export declare function escapeJsonForScript(json: string): string;
15
+ /**
16
+ * Escape an inline <script> body so it cannot terminate or corrupt the document.
17
+ * Two sequences are rewritten, each via a JS escape that is valid in string,
18
+ * template, regex (including the `u`/`v` flags), and JSON contexts — so the body
19
+ * still parses identically as code AND as JSON (application/json, ld+json):
20
+ * - "</script" -> "<\/script": stops a literal close tag inside the body from
21
+ * ending the element early. `\/` is a valid JSON escape and a valid regex escape.
22
+ * - "<!--": the "!" (U+0021) is emitted as a unicode escape (see the replacement
23
+ * string below), so the literal "<!--" token never reaches the HTML parser. A
24
+ * literal "<!--" puts the parser into the "script data escaped" state and a
25
+ * following "<script" into "script data DOUBLE escaped", where the real
26
+ * "</script>" no longer closes the element — `var x = "<!--<script>"` would
27
+ * swallow the rest of the document. The unicode-escape form decodes back to "!"
28
+ * in string/template/JSON/regex contexts, unlike "\!" (invalid JSON, invalid
29
+ * /u-regex escape).
30
+ * Real operators such as `a < b` and `a && b` are untouched (unlike
31
+ * escapeJsonForScript, which \u-escapes every "<", "&", ">").
32
+ *
33
+ * GUARANTEE / LIMITATION: value-preserving for the contexts where these sequences
34
+ * legitimately appear — string/template literals, regexes (incl. `u`/`v`), and
35
+ * JSON. It is NOT source-text-preserving (e.g. String.raw`</script>` sees the
36
+ * extra backslash), and it cannot rewrite "</script"/"<!--" that appear as bare
37
+ * code (a legacy `<!--` line comment, or `</script` outside any literal) — neither
38
+ * occurs in valid script payloads. Not a general sanitizer for arbitrary UNTRUSTED
39
+ * source; for untrusted dynamic data, JSON-encode it and read it back, rather than
40
+ * inlining it as code.
41
+ *
42
+ * Used by the Script handle's <Scripts> renderer for inline `children`.
43
+ */
44
+ export declare function escapeScriptBody(js: string): string;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Handle definition for accumulating data across route segments.
3
+ *
4
+ * Handles allow server-side route handlers to pass accumulated data to client
5
+ * components. Unlike loaders (which fetch data for specific routes), handles
6
+ * accumulate data across all matched route segments.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * // Define a handle (name auto-generated from file + export).
11
+ * // Default collect is the identity: one array per segment that pushed.
12
+ * export const Breadcrumbs = createHandle<BreadcrumbItem, BreadcrumbItem[]>(
13
+ * (segments) => segments.flat(), // opt into a single flat list
14
+ * );
15
+ *
16
+ * // Use in handler
17
+ * const push = ctx.use(Breadcrumbs);
18
+ * push({ label: "Home", href: "/" });
19
+ *
20
+ * // Consume on client
21
+ * const crumbs = useHandle(Breadcrumbs);
22
+ * ```
23
+ */
24
+ export interface Handle<TData, TAccumulated = TData[][]> {
25
+ /**
26
+ * Brand to distinguish handles from loaders in ctx.use()
27
+ */
28
+ readonly __brand: "handle";
29
+ /**
30
+ * Auto-generated unique ID for this handle (used as key in storage)
31
+ * Format: "filePath#ExportName" in dev, "hash#ExportName" in production
32
+ */
33
+ readonly $$id: string;
34
+ }
35
+ export declare function getCollectFn(id: string): ((segments: unknown[][]) => unknown) | undefined;
36
+ /**
37
+ * Create a handle definition for accumulating data across route segments.
38
+ *
39
+ * The $$id is auto-generated by the Vite exposeInternalIds plugin based on
40
+ * file path and export name. No manual naming required.
41
+ *
42
+ * @param collect - Optional collect function. Default: pass the per-segment data
43
+ * through as-is (one array per segment that pushed, in segment order). Lossless,
44
+ * so a consumer can tell which/how-many segments contributed. Opt into a single
45
+ * flat list with `(segments) => segments.flat()`.
46
+ * @param __injectedId - Auto-injected by Vite plugin, do not provide manually
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * // Default: per-segment grouping, as-is
51
+ * export const Pushed = createHandle<string>();
52
+ * // Result type: string[][] (e.g. [["a"], ["b", "c"]])
53
+ *
54
+ * // Opt into a single flat list
55
+ * export const Breadcrumbs = createHandle<BreadcrumbItem, BreadcrumbItem[]>(
56
+ * (segments) => segments.flat()
57
+ * );
58
+ * // Result type: BreadcrumbItem[]
59
+ *
60
+ * // Custom: last value wins
61
+ * export const PageTitle = createHandle<string, string>(
62
+ * (segments) => segments.flat().at(-1) ?? "Default Title"
63
+ * );
64
+ * // Result type: string
65
+ *
66
+ * // Custom: object merge
67
+ * export const Meta = createHandle<Partial<MetaTags>, MetaTags>(
68
+ * (segments) => Object.assign({ robots: "index,follow" }, ...segments.flat())
69
+ * );
70
+ * // Result type: MetaTags
71
+ *
72
+ * // Custom: dedupe by href (TAccumulated must be given — a custom collect that
73
+ * // returns a flat array no longer matches the default TData[][])
74
+ * export const Breadcrumbs = createHandle<BreadcrumbItem, BreadcrumbItem[]>(
75
+ * (segments) => {
76
+ * const all = segments.flat();
77
+ * return all.filter((item, i) => all.findIndex(x => x.href === item.href) === i);
78
+ * }
79
+ * );
80
+ * ```
81
+ */
82
+ export declare function createHandle<TData, TAccumulated = TData[][]>(collect?: (segments: TData[][]) => TAccumulated, __injectedId?: string): Handle<TData, TAccumulated>;
83
+ export declare function isHandle(value: unknown): value is Handle<unknown, unknown>;
84
+ /**
85
+ * Collect handle data from a HandleData map, applying the handle's collect
86
+ * function over segments in order. Shared between server-side rendered()
87
+ * reads and client-side useHandle().
88
+ *
89
+ * @param handle - The handle to collect data for
90
+ * @param data - Full handle data map (handleName -> segmentId -> entries[])
91
+ * @param segmentOrder - Segment IDs in parent -> child resolution order
92
+ */
93
+ export declare function collectHandleData<TData, TAccumulated>(handle: Handle<TData, TAccumulated>, data: Record<string, Record<string, unknown[]>>, segmentOrder: string[]): TAccumulated;
@@ -0,0 +1,17 @@
1
+ import type { MetaDescriptorBase } from "../router/types.js";
2
+ export declare function renderMetaDescriptor(descriptor: MetaDescriptorBase, index: number): React.ReactNode;
3
+ /**
4
+ * Renders all collected meta descriptors from route handlers.
5
+ *
6
+ * Place this component inside the `<head>` element of your document.
7
+ * It will automatically update when meta descriptors change during navigation.
8
+ *
9
+ * When theme is enabled in router config, also renders the theme initialization
10
+ * script to prevent FOUC (flash of unstyled content).
11
+ *
12
+ * Deferred (Promise) meta descriptors are resolved BEFORE MetaTags renders —
13
+ * server-side on the full/SSR render, client-side before apply on navigation
14
+ * (resolve-by-default) — so MetaTags only ever receives resolved descriptors and
15
+ * never suspends.
16
+ */
17
+ export declare function MetaTags(): React.ReactNode;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Renders the scripts collected by the Script handle into the document.
3
+ *
4
+ * Place `<Scripts />` inside `<head>` (default) and, if you push body scripts,
5
+ * `<Scripts position="body" />` at the top of `<body>`. Each site renders the
6
+ * configs whose `position` matches; the request CSP nonce is applied
7
+ * automatically to every DOCUMENT-RENDERED <script> (consumers never pass it). An
8
+ * async script first encountered on a soft navigation is injected client-side
9
+ * where the nonce is unavailable, so it carries no nonce and relies on
10
+ * 'strict-dynamic' (or a host allowance) — see the nonce caveat in the /scripts
11
+ * skill.
12
+ *
13
+ * EXECUTION CONTRACT — see the Script handle's docs. Inline + ordered (defer)
14
+ * scripts are document-load: they execute only when present in the initial HTML,
15
+ * so this component FREEZES that set after hydration (the initializer below runs
16
+ * once) — a later soft navigation never inserts an inert <script> (React creates
17
+ * client-mounted scripts via innerHTML, which the HTML spec makes non-executing).
18
+ * Async external scripts are React resources and stay reactive: React loads them
19
+ * on first encounter, including after navigation, deduped by src.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <html>
24
+ * <head>
25
+ * <MetaTags />
26
+ * <Scripts />
27
+ * </head>
28
+ * <body>
29
+ * <Scripts position="body" />
30
+ * {children}
31
+ * </body>
32
+ * </html>
33
+ * ```
34
+ */
35
+ import { type ReactNode } from "react";
36
+ export declare function Scripts({ position, }?: {
37
+ position?: "head" | "body";
38
+ }): ReactNode;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Built-in Breadcrumbs handle for accumulating breadcrumb items across route segments.
3
+ *
4
+ * Each layout/route pushes breadcrumb items via `ctx.use(Breadcrumbs)`.
5
+ * Items are collected in parent-to-child order with automatic deduplication
6
+ * by `href`: each href keeps its FIRST position but takes the LAST value, so a
7
+ * child re-pushing a parent href refreshes the label without reordering the trail.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * // In route handler
12
+ * route("/blog/:slug", (ctx) => {
13
+ * const breadcrumb = ctx.use(Breadcrumbs);
14
+ * breadcrumb({ label: "Blog", href: "/blog" });
15
+ * breadcrumb({ label: post.title, href: `/blog/${ctx.params.slug}` });
16
+ * });
17
+ *
18
+ * // In client component (consume with useHandle)
19
+ * const crumbs = useHandle(Breadcrumbs);
20
+ * crumbs.map((c) => <a href={c.href}>{c.label}</a>);
21
+ * ```
22
+ */
23
+ import type { ReactNode } from "react";
24
+ import { type Handle } from "../handle.js";
25
+ /**
26
+ * A single breadcrumb item.
27
+ *
28
+ * @property label - Display text for the breadcrumb
29
+ * @property href - URL the breadcrumb links to
30
+ * @property content - Optional extra content (sync or async) rendered alongside the label
31
+ */
32
+ export interface BreadcrumbItem {
33
+ label: string;
34
+ href: string;
35
+ content?: ReactNode | Promise<ReactNode>;
36
+ }
37
+ /**
38
+ * Built-in handle for accumulating breadcrumb navigation items.
39
+ *
40
+ * Use `ctx.use(Breadcrumbs)` in route handlers to push breadcrumb items.
41
+ * Use `useHandle(Breadcrumbs)` in client components to consume them.
42
+ */
43
+ export declare const Breadcrumbs: Handle<BreadcrumbItem, BreadcrumbItem[]>;
@@ -0,0 +1,53 @@
1
+ import type { HandleData, HandleStore } from "../server/handle-store.js";
2
+ /**
3
+ * Runtime-neutral resolution of deferred (Promise) handle values. Shared by the
4
+ * server full-render path (resolve before the payload is finalized so SSR sees
5
+ * resolved values) and the client soft-nav path (NavigationProvider resolves
6
+ * each yield before applying it). Pure — imports only `isThenable` — so it is
7
+ * safe in both the RSC server environment AND the browser.
8
+ *
9
+ * Resolution is SHALLOW: only an entry that is ITSELF a thenable is awaited. A
10
+ * value that merely contains a promise (e.g. `{ data: somePromise }`) is a
11
+ * non-thenable, so the `isThenable` check skips it and it passes through verbatim
12
+ * — the nested promise is the consumer's responsibility. Resolution runs each
13
+ * entry through `Promise.all` with a per-entry `try/catch` (NOT `allSettled`), so
14
+ * one rejecting entry is dropped without rejecting the batch or aborting siblings.
15
+ */
16
+ /**
17
+ * Handle names ($$id) whose snapshot carries a deferred (top-level Promise)
18
+ * value. Used by the client to decide which buckets to hold-and-resolve, and
19
+ * `.size > 0` answers "does this snapshot have any deferred value".
20
+ */
21
+ export declare function deferredHandleNames(data: HandleData): Set<string>;
22
+ /**
23
+ * Snapshot with deferred (Promise) values awaited (shallow — only top-level
24
+ * thenables). A rejected deferred is dropped, and a deferred that resolves to
25
+ * `null`/`undefined` is dropped (the `.defer({ else })` skip semantics), so a
26
+ * nullish deferred slot never reaches a collector. Sync (non-thenable) values —
27
+ * including a legitimate sync `null` push — pass through unchanged.
28
+ */
29
+ export declare function resolveDeferredHandleValues(data: HandleData): Promise<HandleData>;
30
+ /**
31
+ * Full-render handle stream: a one-shot async generator that yields the FINAL
32
+ * handle snapshot with every top-level deferred value resolved. Drop-in for
33
+ * `handleStore.stream()` on full / HTML renders (initial load, 404, progressive
34
+ * enhancement), where the consumer drains the generator to completion before
35
+ * rendering anyway — so the single final yield is equivalent to the streamed
36
+ * yields' converged state, and the SSR markup plus the first sync `useHandle`
37
+ * read see resolved values. `getData()` seals the store and awaits the handler
38
+ * barrier; `resolveDeferredHandleValues` then awaits the pushed-value promises.
39
+ * A hung handle promise blocks the full render like any unresolved await (no
40
+ * handle-specific timeout). Partial / action payloads keep streaming via
41
+ * `handleStore.stream()`.
42
+ */
43
+ export declare function resolvedHandleStream(handleStore: HandleStore): AsyncGenerator<HandleData, void, unknown>;
44
+ /**
45
+ * Resolve the deferred (Promise) values in ONE segment's handle bucket
46
+ * (`handleName -> entries[]`). Same shallow + drop-rejections rule as
47
+ * {@link resolveDeferredHandleValues}, but for the segment-keyed shape the
48
+ * prerender/static collection paths use (`getDataForSegment`). Prerender is a
49
+ * build-time cache, so the baked artifact must hold resolved values — a hit
50
+ * replays them into the segment system, where collect/useHandle expect resolved
51
+ * data.
52
+ */
53
+ export declare function resolveSegmentHandleValues(segHandles: Record<string, unknown[]>): Promise<Record<string, unknown[]>>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Single thenable predicate for the resolve-by-default handle machinery
3
+ * (`handles/deferred-resolution.ts`, its sole owner) — it decides which top-level
4
+ * handle entries are deferred (`Promise`) values to await before any consumer
5
+ * sees them, and which pass through verbatim.
6
+ *
7
+ * Requires a CALLABLE `then` (`typeof obj.then === "function"`), not merely a
8
+ * `"then" in obj` membership check, so a non-promise carrying a `then` field
9
+ * (e.g. a serialized shape `{ then: 5 }`) is treated as a plain sync value rather
10
+ * than awaited. A single predicate keeps that classification consistent.
11
+ */
12
+ export declare function isThenable(value: unknown): value is PromiseLike<unknown>;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Built-in Meta handle for managing document metadata across route segments.
3
+ *
4
+ * Provides automatic deduplication: later routes override earlier ones
5
+ * for the same meta key (title, name, property, etc.)
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * // In route handler
10
+ * route("product/:id", (ctx) => {
11
+ * const meta = ctx.use(Meta);
12
+ * meta({ title: "Product Details" });
13
+ * meta({ name: "description", content: "..." });
14
+ * meta({ property: "og:title", content: "..." });
15
+ * });
16
+ *
17
+ * // In layout (renders the collected meta tags)
18
+ * function RootLayout() {
19
+ * return (
20
+ * <html>
21
+ * <head>
22
+ * <MetaTags />
23
+ * </head>
24
+ * ...
25
+ * </html>
26
+ * );
27
+ * }
28
+ * ```
29
+ */
30
+ import { type Handle } from "../handle.js";
31
+ import type { MetaDescriptor } from "../router/types.js";
32
+ /**
33
+ * Built-in handle for managing document metadata.
34
+ *
35
+ * Use `ctx.use(Meta)` in route handlers to push meta descriptors.
36
+ * Use `<MetaTags />` component to render them in the document head.
37
+ *
38
+ * Deferred (Promise) descriptors are resolved before collectMeta runs
39
+ * (resolve-by-default), so they participate in deduplication and `%s`
40
+ * title-templating identically to synchronous descriptors. A descriptor that
41
+ * resolves to `null`/`undefined` (or rejects) is dropped.
42
+ */
43
+ export declare const Meta: Handle<MetaDescriptor, MetaDescriptor[]>;