@rangojs/router 0.4.3 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. package/dist/types/browser/prefetch/cache.d.ts +31 -2
  2. package/dist/types/cache/cf/cf-cache-store.d.ts +2 -0
  3. package/dist/types/cache/types.d.ts +39 -6
  4. package/dist/types/route-definition/helpers-types.d.ts +5 -4
  5. package/dist/types/rsc/capture-queue.d.ts +19 -3
  6. package/dist/types/rsc/shell-build-manifest.d.ts +2 -2
  7. package/dist/types/rsc/shell-capture.d.ts +22 -2
  8. package/dist/types/rsc/shell-serve.d.ts +18 -12
  9. package/dist/types/static-handler.d.ts +15 -1
  10. package/dist/types/urls/path-helper-types.d.ts +6 -7
  11. package/dist/types.backup/__internal.d.ts +127 -0
  12. package/dist/types.backup/bin/rango.d.ts +1 -0
  13. package/dist/types.backup/browser/action-coordinator.d.ts +57 -0
  14. package/dist/types.backup/browser/action-fence.d.ts +33 -0
  15. package/dist/types.backup/browser/app-shell.d.ts +34 -0
  16. package/dist/types.backup/browser/app-version.d.ts +6 -0
  17. package/dist/types.backup/browser/connection-warmup.d.ts +31 -0
  18. package/dist/types.backup/browser/cookie-name.d.ts +66 -0
  19. package/dist/types.backup/browser/event-controller.d.ts +221 -0
  20. package/dist/types.backup/browser/history-state.d.ts +26 -0
  21. package/dist/types.backup/browser/index.d.ts +1 -0
  22. package/dist/types.backup/browser/intercept-utils.d.ts +30 -0
  23. package/dist/types.backup/browser/invalidate-client-cache.d.ts +17 -0
  24. package/dist/types.backup/browser/link-interceptor.d.ts +43 -0
  25. package/dist/types.backup/browser/logging.d.ts +33 -0
  26. package/dist/types.backup/browser/merge-segment-loaders.d.ts +38 -0
  27. package/dist/types.backup/browser/navigation-bridge.d.ts +27 -0
  28. package/dist/types.backup/browser/navigation-client.d.ts +17 -0
  29. package/dist/types.backup/browser/navigation-store-handle.d.ts +25 -0
  30. package/dist/types.backup/browser/navigation-store.d.ts +95 -0
  31. package/dist/types.backup/browser/navigation-transaction.d.ts +75 -0
  32. package/dist/types.backup/browser/network-error-handler.d.ts +35 -0
  33. package/dist/types.backup/browser/partial-update.d.ts +61 -0
  34. package/dist/types.backup/browser/prefetch/cache.d.ts +183 -0
  35. package/dist/types.backup/browser/prefetch/fetch.d.ts +52 -0
  36. package/dist/types.backup/browser/prefetch/observer.d.ts +27 -0
  37. package/dist/types.backup/browser/prefetch/policy.d.ts +13 -0
  38. package/dist/types.backup/browser/prefetch/queue.d.ts +48 -0
  39. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +28 -0
  40. package/dist/types.backup/browser/rango-state.d.ts +52 -0
  41. package/dist/types.backup/browser/react/Link.d.ts +140 -0
  42. package/dist/types.backup/browser/react/NavigationProvider.d.ts +88 -0
  43. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +78 -0
  44. package/dist/types.backup/browser/react/context.d.ts +54 -0
  45. package/dist/types.backup/browser/react/filter-segment-order.d.ts +35 -0
  46. package/dist/types.backup/browser/react/index.d.ts +1 -0
  47. package/dist/types.backup/browser/react/location-state-shared.d.ts +162 -0
  48. package/dist/types.backup/browser/react/location-state.d.ts +29 -0
  49. package/dist/types.backup/browser/react/mount-context.d.ts +23 -0
  50. package/dist/types.backup/browser/react/nonce-context.d.ts +14 -0
  51. package/dist/types.backup/browser/react/shallow-equal.d.ts +5 -0
  52. package/dist/types.backup/browser/react/use-action.d.ts +61 -0
  53. package/dist/types.backup/browser/react/use-handle.d.ts +21 -0
  54. package/dist/types.backup/browser/react/use-href.d.ts +32 -0
  55. package/dist/types.backup/browser/react/use-link-status.d.ts +36 -0
  56. package/dist/types.backup/browser/react/use-mount.d.ts +24 -0
  57. package/dist/types.backup/browser/react/use-navigation.d.ts +15 -0
  58. package/dist/types.backup/browser/react/use-params.d.ts +21 -0
  59. package/dist/types.backup/browser/react/use-pathname.d.ts +13 -0
  60. package/dist/types.backup/browser/react/use-reverse.d.ts +40 -0
  61. package/dist/types.backup/browser/react/use-router.d.ts +23 -0
  62. package/dist/types.backup/browser/react/use-search-params.d.ts +19 -0
  63. package/dist/types.backup/browser/react/use-segments.d.ts +29 -0
  64. package/dist/types.backup/browser/response-adapter.d.ts +58 -0
  65. package/dist/types.backup/browser/rsc-router.d.ts +141 -0
  66. package/dist/types.backup/browser/scroll-restoration.d.ts +103 -0
  67. package/dist/types.backup/browser/segment-reconciler.d.ts +74 -0
  68. package/dist/types.backup/browser/segment-structure-assert.d.ts +16 -0
  69. package/dist/types.backup/browser/server-action-bridge.d.ts +29 -0
  70. package/dist/types.backup/browser/types.d.ts +530 -0
  71. package/dist/types.backup/browser/validate-redirect-origin.d.ts +28 -0
  72. package/dist/types.backup/build/collect-fallback-refs.d.ts +5 -0
  73. package/dist/types.backup/build/generate-manifest.d.ts +100 -0
  74. package/dist/types.backup/build/generate-route-types.d.ts +8 -0
  75. package/dist/types.backup/build/index.d.ts +21 -0
  76. package/dist/types.backup/build/prefix-tree-utils.d.ts +56 -0
  77. package/dist/types.backup/build/route-trie.d.ts +89 -0
  78. package/dist/types.backup/build/route-types/ast-helpers.d.ts +3 -0
  79. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +13 -0
  80. package/dist/types.backup/build/route-types/codegen.d.ts +16 -0
  81. package/dist/types.backup/build/route-types/include-resolution.d.ts +74 -0
  82. package/dist/types.backup/build/route-types/param-extraction.d.ts +13 -0
  83. package/dist/types.backup/build/route-types/per-module-writer.d.ts +18 -0
  84. package/dist/types.backup/build/route-types/router-processing.d.ts +82 -0
  85. package/dist/types.backup/build/route-types/scan-filter.d.ts +17 -0
  86. package/dist/types.backup/build/route-types/source-scan.d.ts +13 -0
  87. package/dist/types.backup/build/runtime-discovery.d.ts +24 -0
  88. package/dist/types.backup/cache/background-task.d.ts +21 -0
  89. package/dist/types.backup/cache/cache-error.d.ts +71 -0
  90. package/dist/types.backup/cache/cache-key-utils.d.ts +35 -0
  91. package/dist/types.backup/cache/cache-policy.d.ts +59 -0
  92. package/dist/types.backup/cache/cache-runtime.d.ts +51 -0
  93. package/dist/types.backup/cache/cache-scope.d.ts +134 -0
  94. package/dist/types.backup/cache/cache-tag.d.ts +79 -0
  95. package/dist/types.backup/cache/cf/cf-base64.d.ts +4 -0
  96. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +105 -0
  97. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +481 -0
  98. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +300 -0
  99. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +22 -0
  100. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  101. package/dist/types.backup/cache/cf/index.d.ts +3 -0
  102. package/dist/types.backup/cache/document-cache.d.ts +69 -0
  103. package/dist/types.backup/cache/handle-capture.d.ts +23 -0
  104. package/dist/types.backup/cache/handle-snapshot.d.ts +39 -0
  105. package/dist/types.backup/cache/index.d.ts +7 -0
  106. package/dist/types.backup/cache/memory-segment-store.d.ts +163 -0
  107. package/dist/types.backup/cache/profile-registry.d.ts +40 -0
  108. package/dist/types.backup/cache/read-through-swr.d.ts +60 -0
  109. package/dist/types.backup/cache/segment-codec.d.ts +78 -0
  110. package/dist/types.backup/cache/shell-snapshot.d.ts +162 -0
  111. package/dist/types.backup/cache/tag-invalidation.d.ts +74 -0
  112. package/dist/types.backup/cache/taint.d.ts +71 -0
  113. package/dist/types.backup/cache/types.d.ts +407 -0
  114. package/dist/types.backup/cache/vercel/index.d.ts +1 -0
  115. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +267 -0
  116. package/dist/types.backup/client.d.ts +184 -0
  117. package/dist/types.backup/client.rsc.d.ts +39 -0
  118. package/dist/types.backup/cloudflare/index.d.ts +7 -0
  119. package/dist/types.backup/cloudflare/tracing.d.ts +53 -0
  120. package/dist/types.backup/component-utils.d.ts +46 -0
  121. package/dist/types.backup/components/DefaultDocument.d.ts +13 -0
  122. package/dist/types.backup/context-var.d.ts +84 -0
  123. package/dist/types.backup/debug.d.ts +57 -0
  124. package/dist/types.backup/decode-loader-results.d.ts +5 -0
  125. package/dist/types.backup/default-error-boundary.d.ts +10 -0
  126. package/dist/types.backup/defer.d.ts +89 -0
  127. package/dist/types.backup/deps/browser.d.ts +1 -0
  128. package/dist/types.backup/deps/html-stream-client.d.ts +1 -0
  129. package/dist/types.backup/deps/html-stream-server.d.ts +1 -0
  130. package/dist/types.backup/deps/rsc.d.ts +1 -0
  131. package/dist/types.backup/deps/ssr.d.ts +1 -0
  132. package/dist/types.backup/encode-kv.d.ts +35 -0
  133. package/dist/types.backup/errors.d.ts +226 -0
  134. package/dist/types.backup/escape-script.d.ts +44 -0
  135. package/dist/types.backup/handle.d.ts +93 -0
  136. package/dist/types.backup/handles/MetaTags.d.ts +17 -0
  137. package/dist/types.backup/handles/Scripts.d.ts +38 -0
  138. package/dist/types.backup/handles/breadcrumbs.d.ts +43 -0
  139. package/dist/types.backup/handles/deferred-resolution.d.ts +53 -0
  140. package/dist/types.backup/handles/is-thenable.d.ts +12 -0
  141. package/dist/types.backup/handles/meta.d.ts +43 -0
  142. package/dist/types.backup/handles/script.d.ts +139 -0
  143. package/dist/types.backup/host/cookie-handler.d.ts +8 -0
  144. package/dist/types.backup/host/errors.d.ts +40 -0
  145. package/dist/types.backup/host/index.d.ts +33 -0
  146. package/dist/types.backup/host/pattern-matcher.d.ts +30 -0
  147. package/dist/types.backup/host/router.d.ts +12 -0
  148. package/dist/types.backup/host/testing.d.ts +41 -0
  149. package/dist/types.backup/host/types.d.ts +148 -0
  150. package/dist/types.backup/host/utils.d.ts +20 -0
  151. package/dist/types.backup/href-client.d.ts +214 -0
  152. package/dist/types.backup/index.d.ts +112 -0
  153. package/dist/types.backup/index.rsc.d.ts +51 -0
  154. package/dist/types.backup/internal-debug.d.ts +1 -0
  155. package/dist/types.backup/loader-store.d.ts +193 -0
  156. package/dist/types.backup/loader.d.ts +18 -0
  157. package/dist/types.backup/loader.rsc.d.ts +18 -0
  158. package/dist/types.backup/missing-id-error.d.ts +1 -0
  159. package/dist/types.backup/outlet-context.d.ts +12 -0
  160. package/dist/types.backup/outlet-provider.d.ts +12 -0
  161. package/dist/types.backup/prerender/build-shell-capture.d.ts +104 -0
  162. package/dist/types.backup/prerender/param-hash.d.ts +6 -0
  163. package/dist/types.backup/prerender/shell-manifest-key.d.ts +18 -0
  164. package/dist/types.backup/prerender/store.d.ts +62 -0
  165. package/dist/types.backup/prerender.d.ts +292 -0
  166. package/dist/types.backup/redirect-origin.d.ts +55 -0
  167. package/dist/types.backup/regex-escape.d.ts +6 -0
  168. package/dist/types.backup/render-error-thrower.d.ts +13 -0
  169. package/dist/types.backup/response-utils.d.ts +35 -0
  170. package/dist/types.backup/reverse.d.ts +206 -0
  171. package/dist/types.backup/root-error-boundary.d.ts +32 -0
  172. package/dist/types.backup/route-content-wrapper.d.ts +40 -0
  173. package/dist/types.backup/route-definition/dsl-helpers.d.ts +130 -0
  174. package/dist/types.backup/route-definition/helper-factories.d.ts +22 -0
  175. package/dist/types.backup/route-definition/helpers-types.d.ts +392 -0
  176. package/dist/types.backup/route-definition/index.d.ts +7 -0
  177. package/dist/types.backup/route-definition/redirect.d.ts +48 -0
  178. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +19 -0
  179. package/dist/types.backup/route-definition/use-item-types.d.ts +1 -0
  180. package/dist/types.backup/route-definition.d.ts +1 -0
  181. package/dist/types.backup/route-map-builder.d.ts +127 -0
  182. package/dist/types.backup/route-name.d.ts +27 -0
  183. package/dist/types.backup/route-types.d.ts +172 -0
  184. package/dist/types.backup/router/basename.d.ts +10 -0
  185. package/dist/types.backup/router/content-negotiation.d.ts +91 -0
  186. package/dist/types.backup/router/debug-manifest.d.ts +7 -0
  187. package/dist/types.backup/router/error-handling.d.ts +76 -0
  188. package/dist/types.backup/router/find-match.d.ts +19 -0
  189. package/dist/types.backup/router/handler-context.d.ts +41 -0
  190. package/dist/types.backup/router/instrument.d.ts +161 -0
  191. package/dist/types.backup/router/intercept-resolution.d.ts +79 -0
  192. package/dist/types.backup/router/lazy-includes.d.ts +26 -0
  193. package/dist/types.backup/router/loader-resolution.d.ts +63 -0
  194. package/dist/types.backup/router/logging.d.ts +41 -0
  195. package/dist/types.backup/router/manifest.d.ts +8 -0
  196. package/dist/types.backup/router/match-api.d.ts +19 -0
  197. package/dist/types.backup/router/match-context.d.ts +184 -0
  198. package/dist/types.backup/router/match-handlers.d.ts +49 -0
  199. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +113 -0
  200. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +113 -0
  201. package/dist/types.backup/router/match-middleware/cache-store.d.ts +112 -0
  202. package/dist/types.backup/router/match-middleware/index.d.ts +80 -0
  203. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +116 -0
  204. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +94 -0
  205. package/dist/types.backup/router/match-pipelines.d.ts +103 -0
  206. package/dist/types.backup/router/match-result.d.ts +114 -0
  207. package/dist/types.backup/router/metrics.d.ts +6 -0
  208. package/dist/types.backup/router/middleware-types.d.ts +74 -0
  209. package/dist/types.backup/router/middleware.d.ts +116 -0
  210. package/dist/types.backup/router/navigation-snapshot.d.ts +22 -0
  211. package/dist/types.backup/router/params-util.d.ts +8 -0
  212. package/dist/types.backup/router/parse-pattern.d.ts +38 -0
  213. package/dist/types.backup/router/pattern-matching.d.ts +169 -0
  214. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +27 -0
  215. package/dist/types.backup/router/prefetch-limits.d.ts +20 -0
  216. package/dist/types.backup/router/prerender-match.d.ts +50 -0
  217. package/dist/types.backup/router/preview-match.d.ts +22 -0
  218. package/dist/types.backup/router/request-classification.d.ts +104 -0
  219. package/dist/types.backup/router/revalidation.d.ts +57 -0
  220. package/dist/types.backup/router/route-snapshot.d.ts +112 -0
  221. package/dist/types.backup/router/router-context.d.ts +137 -0
  222. package/dist/types.backup/router/router-interfaces.d.ts +432 -0
  223. package/dist/types.backup/router/router-options.d.ts +738 -0
  224. package/dist/types.backup/router/router-registry.d.ts +15 -0
  225. package/dist/types.backup/router/segment-resolution/fresh.d.ts +55 -0
  226. package/dist/types.backup/router/segment-resolution/helpers.d.ts +93 -0
  227. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +33 -0
  228. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +44 -0
  229. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +90 -0
  230. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +53 -0
  231. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +85 -0
  232. package/dist/types.backup/router/segment-resolution/static-store.d.ts +17 -0
  233. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  234. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +28 -0
  235. package/dist/types.backup/router/segment-resolution.d.ts +3 -0
  236. package/dist/types.backup/router/segment-wrappers.d.ts +53 -0
  237. package/dist/types.backup/router/state-cookie-name.d.ts +1 -0
  238. package/dist/types.backup/router/substitute-pattern-params.d.ts +23 -0
  239. package/dist/types.backup/router/telemetry-otel.d.ts +113 -0
  240. package/dist/types.backup/router/telemetry.d.ts +215 -0
  241. package/dist/types.backup/router/timeout.d.ts +68 -0
  242. package/dist/types.backup/router/tracing.d.ts +125 -0
  243. package/dist/types.backup/router/trie-matching.d.ts +32 -0
  244. package/dist/types.backup/router/types.d.ts +98 -0
  245. package/dist/types.backup/router/url-params.d.ts +26 -0
  246. package/dist/types.backup/router.d.ts +7 -0
  247. package/dist/types.backup/rsc/capture-queue.d.ts +6 -0
  248. package/dist/types.backup/rsc/full-payload.d.ts +22 -0
  249. package/dist/types.backup/rsc/handler-context.d.ts +31 -0
  250. package/dist/types.backup/rsc/handler.d.ts +9 -0
  251. package/dist/types.backup/rsc/helpers.d.ts +213 -0
  252. package/dist/types.backup/rsc/index.d.ts +17 -0
  253. package/dist/types.backup/rsc/json-route-result.d.ts +20 -0
  254. package/dist/types.backup/rsc/loader-fetch.d.ts +14 -0
  255. package/dist/types.backup/rsc/manifest-init.d.ts +18 -0
  256. package/dist/types.backup/rsc/nonce.d.ts +28 -0
  257. package/dist/types.backup/rsc/origin-guard.d.ts +50 -0
  258. package/dist/types.backup/rsc/progressive-enhancement.d.ts +19 -0
  259. package/dist/types.backup/rsc/redirect-guard.d.ts +35 -0
  260. package/dist/types.backup/rsc/response-cache-serve.d.ts +46 -0
  261. package/dist/types.backup/rsc/response-error.d.ts +19 -0
  262. package/dist/types.backup/rsc/response-route-handler.d.ts +29 -0
  263. package/dist/types.backup/rsc/rsc-rendering.d.ts +23 -0
  264. package/dist/types.backup/rsc/runtime-warnings.d.ts +22 -0
  265. package/dist/types.backup/rsc/server-action.d.ts +68 -0
  266. package/dist/types.backup/rsc/shell-build-manifest.d.ts +84 -0
  267. package/dist/types.backup/rsc/shell-capture-constants.d.ts +27 -0
  268. package/dist/types.backup/rsc/shell-capture.d.ts +374 -0
  269. package/dist/types.backup/rsc/shell-serve.d.ts +136 -0
  270. package/dist/types.backup/rsc/ssr-setup.d.ts +48 -0
  271. package/dist/types.backup/rsc/transition-gate.d.ts +27 -0
  272. package/dist/types.backup/rsc/types.d.ts +290 -0
  273. package/dist/types.backup/runtime-env.d.ts +1 -0
  274. package/dist/types.backup/search-params.d.ts +125 -0
  275. package/dist/types.backup/segment-content-promise.d.ts +13 -0
  276. package/dist/types.backup/segment-fragments.d.ts +56 -0
  277. package/dist/types.backup/segment-loader-promise.d.ts +22 -0
  278. package/dist/types.backup/segment-system.d.ts +84 -0
  279. package/dist/types.backup/serialize.d.ts +164 -0
  280. package/dist/types.backup/server/context.d.ts +494 -0
  281. package/dist/types.backup/server/cookie-parse.d.ts +10 -0
  282. package/dist/types.backup/server/cookie-store.d.ts +107 -0
  283. package/dist/types.backup/server/fetchable-loader-store.d.ts +20 -0
  284. package/dist/types.backup/server/handle-store.d.ts +100 -0
  285. package/dist/types.backup/server/loader-registry.d.ts +32 -0
  286. package/dist/types.backup/server/request-context.d.ts +596 -0
  287. package/dist/types.backup/server/root-layout.d.ts +3 -0
  288. package/dist/types.backup/server.d.ts +15 -0
  289. package/dist/types.backup/ssr/index.d.ts +233 -0
  290. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +3 -0
  291. package/dist/types.backup/ssr/preinit-client-references.d.ts +71 -0
  292. package/dist/types.backup/ssr/ssr-root.d.ts +69 -0
  293. package/dist/types.backup/static-handler.d.ts +57 -0
  294. package/dist/types.backup/testing/cache-status.d.ts +63 -0
  295. package/dist/types.backup/testing/collect-handle.d.ts +20 -0
  296. package/dist/types.backup/testing/dispatch.d.ts +123 -0
  297. package/dist/types.backup/testing/dom.entry.d.ts +15 -0
  298. package/dist/types.backup/testing/e2e/fixture.d.ts +37 -0
  299. package/dist/types.backup/testing/e2e/index.d.ts +30 -0
  300. package/dist/types.backup/testing/e2e/matchers.d.ts +17 -0
  301. package/dist/types.backup/testing/e2e/page-helpers.d.ts +62 -0
  302. package/dist/types.backup/testing/e2e/parity.d.ts +111 -0
  303. package/dist/types.backup/testing/e2e/server.d.ts +35 -0
  304. package/dist/types.backup/testing/flight-matchers.d.ts +55 -0
  305. package/dist/types.backup/testing/flight-normalize.d.ts +1 -0
  306. package/dist/types.backup/testing/flight-tree.d.ts +192 -0
  307. package/dist/types.backup/testing/flight.d.ts +115 -0
  308. package/dist/types.backup/testing/flight.entry.d.ts +27 -0
  309. package/dist/types.backup/testing/generated-routes.d.ts +66 -0
  310. package/dist/types.backup/testing/index.d.ts +52 -0
  311. package/dist/types.backup/testing/internal/context.d.ts +225 -0
  312. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +1 -0
  313. package/dist/types.backup/testing/internal/seed-vars.d.ts +30 -0
  314. package/dist/types.backup/testing/render-handler.d.ts +160 -0
  315. package/dist/types.backup/testing/render-route.d.ts +246 -0
  316. package/dist/types.backup/testing/run-loader.d.ts +186 -0
  317. package/dist/types.backup/testing/run-middleware.d.ts +132 -0
  318. package/dist/types.backup/testing/run-transition-when.d.ts +77 -0
  319. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  320. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  321. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  322. package/dist/types.backup/testing/vitest-stubs/version.d.ts +1 -0
  323. package/dist/types.backup/testing/vitest.d.ts +205 -0
  324. package/dist/types.backup/theme/ThemeProvider.d.ts +13 -0
  325. package/dist/types.backup/theme/ThemeScript.d.ts +45 -0
  326. package/dist/types.backup/theme/constants.d.ts +39 -0
  327. package/dist/types.backup/theme/index.d.ts +29 -0
  328. package/dist/types.backup/theme/theme-context.d.ts +21 -0
  329. package/dist/types.backup/theme/theme-script.d.ts +26 -0
  330. package/dist/types.backup/theme/types.d.ts +162 -0
  331. package/dist/types.backup/theme/use-theme.d.ts +8 -0
  332. package/dist/types.backup/types/boundaries.d.ts +93 -0
  333. package/dist/types.backup/types/cache-types.d.ts +191 -0
  334. package/dist/types.backup/types/error-types.d.ts +114 -0
  335. package/dist/types.backup/types/global-namespace.d.ts +90 -0
  336. package/dist/types.backup/types/handler-context.d.ts +658 -0
  337. package/dist/types.backup/types/index.d.ts +11 -0
  338. package/dist/types.backup/types/loader-types.d.ts +182 -0
  339. package/dist/types.backup/types/request-scope.d.ts +93 -0
  340. package/dist/types.backup/types/route-config.d.ts +105 -0
  341. package/dist/types.backup/types/route-entry.d.ts +95 -0
  342. package/dist/types.backup/types/segments.d.ts +234 -0
  343. package/dist/types.backup/types.d.ts +1 -0
  344. package/dist/types.backup/urls/include-helper.d.ts +17 -0
  345. package/dist/types.backup/urls/include-provider.d.ts +27 -0
  346. package/dist/types.backup/urls/index.d.ts +6 -0
  347. package/dist/types.backup/urls/path-helper-types.d.ts +197 -0
  348. package/dist/types.backup/urls/path-helper.d.ts +12 -0
  349. package/dist/types.backup/urls/pattern-types.d.ts +166 -0
  350. package/dist/types.backup/urls/response-types.d.ts +67 -0
  351. package/dist/types.backup/urls/type-extraction.d.ts +157 -0
  352. package/dist/types.backup/urls/urls-function.d.ts +24 -0
  353. package/dist/types.backup/urls.d.ts +1 -0
  354. package/dist/types.backup/use-loader.d.ts +150 -0
  355. package/dist/types.backup/vercel/index.d.ts +10 -0
  356. package/dist/types.backup/vercel/tracing.d.ts +70 -0
  357. package/dist/types.backup/vite/debug.d.ts +80 -0
  358. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +12 -0
  359. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +65 -0
  360. package/dist/types.backup/vite/discovery/discover-routers.d.ts +17 -0
  361. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +113 -0
  362. package/dist/types.backup/vite/discovery/gate-state.d.ts +79 -0
  363. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +24 -0
  364. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +32 -0
  365. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +22 -0
  366. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +40 -0
  367. package/dist/types.backup/vite/discovery/state.d.ts +162 -0
  368. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +15 -0
  369. package/dist/types.backup/vite/index.d.ts +11 -0
  370. package/dist/types.backup/vite/inject-client-debug.d.ts +56 -0
  371. package/dist/types.backup/vite/plugin-types.d.ts +298 -0
  372. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +6 -0
  373. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +40 -0
  374. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +35 -0
  375. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  376. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +18 -0
  377. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +37 -0
  378. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  379. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  380. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  381. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  382. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +29 -0
  383. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +6 -0
  384. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +25 -0
  385. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +20 -0
  386. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +20 -0
  387. package/dist/types.backup/vite/plugins/vercel-output.d.ts +85 -0
  388. package/dist/types.backup/vite/plugins/version-injector.d.ts +21 -0
  389. package/dist/types.backup/vite/plugins/version-plugin.d.ts +19 -0
  390. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +36 -0
  391. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  392. package/dist/types.backup/vite/rango.d.ts +29 -0
  393. package/dist/types.backup/vite/router-discovery.d.ts +23 -0
  394. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +64 -0
  395. package/dist/types.backup/vite/utils/banner.d.ts +2 -0
  396. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +28 -0
  397. package/dist/types.backup/vite/utils/client-chunks.d.ts +55 -0
  398. package/dist/types.backup/vite/utils/directive-prologue.d.ts +16 -0
  399. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +37 -0
  400. package/dist/types.backup/vite/utils/manifest-utils.d.ts +7 -0
  401. package/dist/types.backup/vite/utils/package-resolution.d.ts +6 -0
  402. package/dist/types.backup/vite/utils/prerender-utils.d.ts +32 -0
  403. package/dist/types.backup/vite/utils/shared-utils.d.ts +55 -0
  404. package/dist/vite/index.js +1 -1
  405. package/package.json +1 -1
  406. package/skills/parallel/SKILL.md +1 -1
  407. package/skills/ppr/SKILL.md +44 -3
  408. package/src/browser/prefetch/cache.ts +53 -9
  409. package/src/browser/prefetch/fetch.ts +83 -2
  410. package/src/cache/cf/cf-cache-store.ts +27 -8
  411. package/src/cache/types.ts +41 -6
  412. package/src/cache/vercel/vercel-cache-store.ts +24 -10
  413. package/src/route-definition/helpers-types.ts +5 -3
  414. package/src/rsc/capture-queue.ts +120 -47
  415. package/src/rsc/rsc-rendering.ts +11 -3
  416. package/src/rsc/shell-build-manifest.ts +20 -7
  417. package/src/rsc/shell-capture.ts +164 -12
  418. package/src/rsc/shell-serve.ts +27 -12
  419. package/src/static-handler.ts +18 -2
  420. package/src/urls/path-helper-types.ts +9 -10
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Build-time manifest generation for @rangojs/router
3
+ *
4
+ * Extracts the prefix tree and route manifest from UrlPatterns at build time.
5
+ * This enables:
6
+ * - Pre-computed prefix tree for fast short-circuit checks
7
+ * - Complete route manifest for href() without runtime evaluation
8
+ * - Support for nested includes
9
+ */
10
+ import type { UrlPatterns } from "../urls.js";
11
+ /**
12
+ * Node in the prefix tree
13
+ */
14
+ export interface PrefixTreeNode {
15
+ /** The static prefix for this node */
16
+ staticPrefix: string;
17
+ /** The full URL prefix (including parent prefixes) */
18
+ fullPrefix: string;
19
+ /** Name prefix for routes in this include */
20
+ namePrefix?: string;
21
+ /** Child nodes (nested includes) */
22
+ children: Record<string, PrefixTreeNode>;
23
+ /** Route names defined directly in this include (not in children) */
24
+ routes: string[];
25
+ }
26
+ /**
27
+ * Generated manifest containing prefix tree and route mappings
28
+ */
29
+ export interface GeneratedManifest {
30
+ /** Nested prefix tree for short-circuit optimization */
31
+ prefixTree: Record<string, PrefixTreeNode>;
32
+ /** Complete route name → pattern mapping for href() */
33
+ routeManifest: Record<string, string>;
34
+ /** Route name → trailing slash mode for trie redirect handling */
35
+ routeTrailingSlash?: Record<string, string>;
36
+ /** Route names using Prerender (for dev-mode Node.js delegation) */
37
+ prerenderRoutes?: string[];
38
+ /** Route names wrapped with Passthrough() (live handler for runtime fallback) */
39
+ passthroughRoutes?: string[];
40
+ /** Route name → response type for non-RSC routes */
41
+ responseTypeRoutes?: Record<string, string>;
42
+ /** Route name -> search schema descriptor for typed URL helpers */
43
+ routeSearchSchemas?: Record<string, Record<string, string>>;
44
+ }
45
+ /**
46
+ * Internal manifest result including build-pipeline-only fields.
47
+ * Not part of the public API — use generateManifest() for the public surface.
48
+ */
49
+ export interface FullManifest extends GeneratedManifest {
50
+ _prerenderDefs?: Record<string, any>;
51
+ }
52
+ /**
53
+ * Generate manifest from UrlPatterns (public API).
54
+ *
55
+ * Returns only the public GeneratedManifest fields. Internal build pipeline
56
+ * consumers that need _prerenderDefs should use generateManifestFull() instead.
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * import { generateManifest } from "@rangojs/router/build";
61
+ * import { urlpatterns } from "./urls";
62
+ *
63
+ * // Async: awaits async include() providers (`() => import("./routes")`).
64
+ * const manifest = await generateManifest(urlpatterns);
65
+ * // Write to file for runtime use
66
+ * fs.writeFileSync(
67
+ * "src/generated/route-manifest.json",
68
+ * JSON.stringify(manifest, null, 2)
69
+ * );
70
+ * ```
71
+ */
72
+ export declare function generateManifest<TEnv>(urlpatterns: UrlPatterns<TEnv, any>, mountIndex?: number): Promise<GeneratedManifest>;
73
+ /**
74
+ * Generate manifest with internal build-pipeline fields.
75
+ *
76
+ * Used by the Vite plugin (discover-routers via dynamic import through
77
+ * @rangojs/router/build), manifest-init (direct import), and trie
78
+ * building. Not intended for external use.
79
+ */
80
+ export declare function generateManifestFull<TEnv>(urlpatterns: UrlPatterns<TEnv, any>, mountIndex?: number, options?: {
81
+ urlPrefix?: string;
82
+ /**
83
+ * Called once per `"use client"` component registered as an
84
+ * errorBoundary/notFoundBoundary fallback, with its client-reference key
85
+ * (`$$id`). Lets the build collect fallback module ids for dedicated
86
+ * chunking without exposing the otherwise-discarded EntryData tree. The
87
+ * EntryData map built below is local; this is the only seam that surfaces it.
88
+ */
89
+ collectClientFallbackRef?: (refKey: string) => void;
90
+ }): Promise<FullManifest>;
91
+ /**
92
+ * Generate TypeScript code for the manifest
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const code = await generateManifestCode(urlpatterns);
97
+ * fs.writeFileSync("src/generated/route-manifest.ts", code);
98
+ * ```
99
+ */
100
+ export declare function generateManifestCode<TEnv>(urlpatterns: UrlPatterns<TEnv, any>): Promise<string>;
@@ -0,0 +1,8 @@
1
+ export { extractParamsFromPattern, formatRouteEntry, } from "./route-types/param-extraction.js";
2
+ export { extractRoutesFromSource } from "./route-types/ast-route-extraction.js";
3
+ export { generatePerModuleTypesSource, generateRouteTypesSource, } from "./route-types/codegen.js";
4
+ export { DEFAULT_EXCLUDE_PATTERNS, type ScanFilter, createScanFilter, findTsFiles, } from "./route-types/scan-filter.js";
5
+ export { writePerModuleRouteTypes, writePerModuleRouteTypesForFile, } from "./route-types/per-module-writer.js";
6
+ export { type UnresolvableReason, type UnresolvableInclude, extractIncludesWithDiagnostics, } from "./route-types/include-resolution.js";
7
+ export { extractUrlsFromRouter, extractBasenameFromRouter, type UrlsExtractionResult, buildCombinedRouteMapForRouterFile, detectUnresolvableIncludes, detectUnresolvableIncludesForUrlsFile, findNestedRouterConflict, formatNestedRouterConflictError, findRouterFiles, findHostRouterFiles, writeCombinedRouteTypes, genFileTsPath, resolveSearchSchemas, } from "./route-types/router-processing.js";
8
+ export { findUrlsVariableNames } from "./route-types/per-module-writer.js";
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Build-time utilities for @rangojs/router
3
+ *
4
+ * Note: Route manifest is automatically generated at runtime on first request.
5
+ * These build-time utilities are only needed for advanced use cases like
6
+ * custom tooling or pre-generating manifests.
7
+ *
8
+ * @example Generate manifest programmatically (for custom tooling)
9
+ * ```typescript
10
+ * import { generateManifest } from "@rangojs/router/build";
11
+ * import { urlpatterns } from "./urls";
12
+ *
13
+ * // Async: generateManifest awaits any async include() providers
14
+ * // (`() => import("./routes")`) so the split groups appear in the manifest.
15
+ * const manifest = await generateManifest(urlpatterns);
16
+ * console.log(manifest.routeManifest); // { home: "/", about: "/about", ... }
17
+ * ```
18
+ */
19
+ export { generateManifest, generateManifestFull, generateManifestCode, type GeneratedManifest, } from "./generate-manifest.js";
20
+ export { writePerModuleRouteTypes, extractRoutesFromSource, generatePerModuleTypesSource, createScanFilter, type ScanFilter, } from "./generate-route-types.js";
21
+ export { hashParams } from "../prerender/param-hash.js";
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Pure prefix-tree walks shared by the build/discovery layer and the runtime
3
+ * trie builder. Kept in `build/` (not `vite/utils`) so runtime code
4
+ * (rsc/manifest-init via build/route-trie) can consume them without importing
5
+ * from the vite layer. `vite/utils/manifest-utils` re-exports them so existing
6
+ * vite-side imports stay unchanged.
7
+ */
8
+ /**
9
+ * Flatten prefix tree leaf nodes into precomputed route entries.
10
+ * Leaf nodes have no children (no nested includes), so their routes can be
11
+ * used directly by evaluateLazyEntry() without running the handler.
12
+ * Non-leaf nodes are skipped because they have nested lazy includes that
13
+ * require the handler to run for discovery.
14
+ *
15
+ * A leaf is also skipped when its staticPrefix collides with an ancestor
16
+ * include node's staticPrefix. That happens when a dynamic param collapses the
17
+ * staticPrefix of nested includes onto the parent's (e.g. `/m/:id/edit` -> sp
18
+ * `/m`): precomputing such a leaf under the collapsed prefix would let the
19
+ * ancestor's lazy entry claim a route it cannot register (the route is behind
20
+ * further nested lazy includes), producing a RouteNotFoundError at request time
21
+ * (issue #506). Those routes are resolved via the handler chain instead.
22
+ */
23
+ export declare function flattenLeafEntries(prefixTree: Record<string, any>, routeManifest: Record<string, string>, result: Array<{
24
+ staticPrefix: string;
25
+ routes: Record<string, string>;
26
+ }>): void;
27
+ /**
28
+ * Build the staticPrefix -> routes lookup the runtime shortcut consumes from a
29
+ * flat precomputed-entry array.
30
+ *
31
+ * A staticPrefix owned by MORE THAN ONE leaf include cannot be collapsed to a
32
+ * single routes object: `new Map(entries.map(e => [e.staticPrefix, e.routes]))`
33
+ * is last-wins, so one include's routes are silently dropped and mis-assigned
34
+ * to whichever entry evaluates first. Two distinct includes legitimately share a
35
+ * staticPrefix when a dynamic param collapses their literal prefixes onto the
36
+ * same value (e.g. `include("/shop/:cat", ...)` and a nested
37
+ * `include("/shop/:brand", ...)` both extract "/shop/"). Merging them is also
38
+ * wrong — assigning the merged set to the first matching entry makes findMatch
39
+ * pick the wrong handler for routes belonging to the other include, which then
40
+ * fails its `Store.manifest.has(routeKey)` invariant at render (500 on a valid
41
+ * route, dev/prod identical).
42
+ *
43
+ * So any shared staticPrefix is OMITTED from the shortcut entirely. Those
44
+ * includes fall through to the handler path in evaluateLazyEntry(), which is the
45
+ * ground truth (identical to pre-precomputed behavior). The shortcut is purely an
46
+ * optimization, so dropping a prefix can only cost a handler run, never change a
47
+ * result.
48
+ */
49
+ export declare function buildPrecomputedByPrefix(entries: Array<{
50
+ staticPrefix: string;
51
+ routes: Record<string, string>;
52
+ }>): Map<string, Record<string, string>>;
53
+ /**
54
+ * Walk prefix tree to map each route name to its scope's staticPrefix.
55
+ */
56
+ export declare function buildRouteToStaticPrefix(prefixTree: Record<string, any>, result: Record<string, string>): void;
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Build-time Route Trie Construction
3
+ *
4
+ * Builds a serializable trie from the route manifest for O(path_length)
5
+ * route matching at runtime.
6
+ */
7
+ import type { FullManifest } from "./generate-manifest.js";
8
+ /**
9
+ * A response-type variant folded into a primary leaf's negotiate list. `pa` is
10
+ * the variant's own positional param-name array, carried so the runtime can
11
+ * re-key the matched params under the variant's names when it wins negotiation
12
+ * (the trie match extracts params under the PRIMARY leaf's pa). Omitted when the
13
+ * variant has no params; absent/identical pa means no re-key is needed.
14
+ */
15
+ export interface NegotiateVariant {
16
+ routeKey: string;
17
+ responseType: string;
18
+ pa?: string[];
19
+ }
20
+ export interface TrieLeaf {
21
+ /** Route name (e.g., "site.l1_500") */
22
+ n: string;
23
+ /** Static prefix of the entry (e.g., "/site") */
24
+ sp: string;
25
+ /** Constraint validation: paramName -> allowed values */
26
+ cv?: Record<string, string[]>;
27
+ /** Ordered param names for this route (positional) */
28
+ pa?: string[];
29
+ /** Trailing slash mode */
30
+ ts?: string;
31
+ /** Route has pre-rendered data available */
32
+ pr?: true;
33
+ /** Passthrough: handler kept in bundle for live fallback on unknown params */
34
+ pt?: true;
35
+ /** Response type for non-RSC routes (json, text, image, any) */
36
+ rt?: string;
37
+ /** Negotiate variants: response-type routes sharing this path */
38
+ nv?: NegotiateVariant[];
39
+ /** RSC-first: RSC route was defined before response-type variants */
40
+ rf?: true;
41
+ }
42
+ export interface TrieNode {
43
+ /** Route terminal at this node */
44
+ r?: TrieLeaf;
45
+ /** Static segment children */
46
+ s?: Record<string, TrieNode>;
47
+ /** Param child: { n: paramName, c: child node } */
48
+ p?: {
49
+ n: string;
50
+ c: TrieNode;
51
+ };
52
+ /** Suffix-param children keyed by suffix (e.g., ".html" → { n: "productId", c: ... }) */
53
+ xp?: Record<string, {
54
+ n: string;
55
+ c: TrieNode;
56
+ }>;
57
+ /**
58
+ * Wildcard terminal: leaf + paramName (`pn`). `pn` is "*" for the bare `/*`
59
+ * form and the param name for a named catch-all (`:name+`/`:name*`). `w1`
60
+ * marks a one-or-more catch-all (`:name+`): the runtime walker then rejects
61
+ * the zero-segment/empty-remainder case. Absent `w1` is zero-or-more.
62
+ */
63
+ w?: TrieLeaf & {
64
+ pn: string;
65
+ w1?: true;
66
+ };
67
+ }
68
+ /**
69
+ * Build a route trie from build-time manifest data.
70
+ *
71
+ * @param routeManifest - Map of route name to full URL pattern
72
+ * @param routeToStaticPrefix - Map of route name to its entry's staticPrefix
73
+ * @param routeTrailingSlash - Optional map of route name to trailing slash mode
74
+ * @param prerenderRouteNames - Optional set of prerendered route names (sets leaf.pr)
75
+ * @param passthroughRouteNames - Optional set of passthrough route names (sets leaf.pt)
76
+ * @param responseTypeRoutes - Optional map of route name to response type (sets leaf.rt)
77
+ */
78
+ export declare function buildRouteTrie(routeManifest: Record<string, string>, routeToStaticPrefix: Record<string, string>, routeTrailingSlash?: Record<string, string>, prerenderRouteNames?: Set<string>, passthroughRouteNames?: Set<string>, responseTypeRoutes?: Record<string, string>): TrieNode;
79
+ /**
80
+ * Build a per-router trie from a generated manifest. This is the single
81
+ * construction path shared by build/discovery (discover-routers.ts, serialized
82
+ * into the production chunk) and the dev/HMR runtime rebuild
83
+ * (rsc/manifest-init.ts). Keeping one code path is what guarantees the dev
84
+ * runtime trie and the production serialized trie are byte-for-byte identical.
85
+ *
86
+ * Returns null when the manifest has no routes, matching the prior guard at
87
+ * both call sites.
88
+ */
89
+ export declare function buildPerRouterTrie(manifest: FullManifest): TrieNode | null;
@@ -0,0 +1,3 @@
1
+ import ts from "typescript";
2
+ export declare function getStringValue(node: ts.Node): string | null;
3
+ export declare function extractObjectStringProperties(node: ts.ObjectLiteralExpression): Record<string, string>;
@@ -0,0 +1,13 @@
1
+ import ts from "typescript";
2
+ /**
3
+ * Extract route definitions from source code by walking the TypeScript AST.
4
+ * Finds path() and path.json(), path.md(), etc. call expressions and extracts
5
+ * the pattern, name, params, and optional search schema from each.
6
+ * Skips unnamed paths (no { name: "..." }).
7
+ */
8
+ export declare function extractRoutesFromSource(code: string, sourceFileArg?: ts.SourceFile): Array<{
9
+ name: string;
10
+ pattern: string;
11
+ params?: Record<string, string>;
12
+ search?: Record<string, string>;
13
+ }>;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Generate a per-module types file from extracted routes.
3
+ * Output has zero imports, preventing circular references.
4
+ */
5
+ export declare function generatePerModuleTypesSource(routes: Array<{
6
+ name: string;
7
+ pattern: string;
8
+ params?: Record<string, string>;
9
+ search?: Record<string, string>;
10
+ }>): string;
11
+ /**
12
+ * Generates a .ts file that augments Rango.GeneratedRouteMap
13
+ * with route name -> pattern mappings. This enables Handler<"routeName">
14
+ * without circular references since the file has no imports from the app.
15
+ */
16
+ export declare function generateRouteTypesSource(routeManifest: Record<string, string>, searchSchemas?: Record<string, Record<string, string>>): string;
@@ -0,0 +1,74 @@
1
+ import ts from "typescript";
2
+ export type UnresolvableReason = "factory-call" | "dynamic-expression" | "unresolvable-import" | "file-not-found";
3
+ export interface UnresolvableInclude {
4
+ pathPrefix: string;
5
+ namePrefix: string | null;
6
+ reason: UnresolvableReason;
7
+ sourceFile: string;
8
+ detail: string;
9
+ }
10
+ /**
11
+ * Per-scan memo shared across the include-resolution recursion. Keys are
12
+ * absolute file paths; values cache the readFileSync result and the
13
+ * ts.SourceFile parsed from the FULL file source. A separate blockSources map
14
+ * caches parses of extracted sub-blocks (urls() call text), keyed by the exact
15
+ * block string, so the two extractors (routes + includes) for the same block
16
+ * share a single parse.
17
+ *
18
+ * The memo is purely a performance accelerator: same input -> same parse, so
19
+ * generated output is identical to the un-memoized path. A fresh memo is
20
+ * created per top-level scan entry, so stale file edits between scans are never
21
+ * served.
22
+ */
23
+ export interface ScanMemo {
24
+ files: Map<string, string>;
25
+ blockSourceFiles: Map<string, ts.SourceFile>;
26
+ }
27
+ export declare function createScanMemo(): ScanMemo;
28
+ /**
29
+ * Extract include() calls with diagnostics for unresolvable ones.
30
+ * Returns both resolved includes (identifier second args) and unresolvable
31
+ * includes (factory calls, etc.) with reasons.
32
+ */
33
+ export declare function extractIncludesWithDiagnostics(code: string, sourceFileArg?: ts.SourceFile): {
34
+ resolved: Array<{
35
+ pathPrefix: string;
36
+ variableName?: string;
37
+ moduleSpecifier?: string;
38
+ namePrefix: string | null;
39
+ }>;
40
+ unresolvable: Array<{
41
+ pathPrefix: string;
42
+ namePrefix: string | null;
43
+ reason: UnresolvableReason;
44
+ detail: string;
45
+ }>;
46
+ };
47
+ /**
48
+ * Find the import statement for a local variable name.
49
+ * Returns the import specifier and the exported name from the source module.
50
+ */
51
+ export declare function resolveImportedVariable(code: string, localName: string): {
52
+ specifier: string;
53
+ exportedName: string;
54
+ } | null;
55
+ /**
56
+ * Resolve an import specifier relative to the importing file.
57
+ * Strips .js/.mjs/.jsx extensions and tries .ts/.tsx/.js/.jsx candidates.
58
+ */
59
+ export declare function resolveImportPath(importSpec: string, fromFile: string): string | null;
60
+ /**
61
+ * Build route map and search schemas together.
62
+ * Internal helper used by the include resolution path.
63
+ *
64
+ * @param inlineBlock - Optional pre-extracted code block (e.g. from an inline
65
+ * builder function). When provided, variableName is ignored and the block
66
+ * is parsed directly for path()/include() calls.
67
+ * @param memo - Per-scan readFileSync/parse memo. A fresh one is created at the
68
+ * top-level entry and threaded through the recursion so each file is read and
69
+ * parsed once per scan. Behavior-preserving (same input -> same output).
70
+ */
71
+ export declare function buildCombinedRouteMapWithSearch(filePath: string, variableName?: string, visited?: Set<string>, diagnosticsOut?: UnresolvableInclude[], inlineBlock?: string, memo?: ScanMemo): {
72
+ routes: Record<string, string>;
73
+ searchSchemas: Record<string, Record<string, string>>;
74
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Extract typed params from a route pattern string.
3
+ * Matches `:paramName` and `:paramName?` (optional).
4
+ * Custom regex constraints like `:id(\d+)` are ignored for type purposes.
5
+ */
6
+ export declare function extractParamsFromPattern(pattern: string): Record<string, string> | undefined;
7
+ /**
8
+ * Format a single route entry for codegen output.
9
+ * Routes without search remain plain strings (params are extracted from
10
+ * the pattern at the type level by ExtractParams).
11
+ * Routes with search become objects with path and search fields.
12
+ */
13
+ export declare function formatRouteEntry(key: string, pattern: string, _params?: Record<string, string>, search?: Record<string, string>): string;
@@ -0,0 +1,18 @@
1
+ import type { ScanFilter } from "./scan-filter.js";
2
+ /**
3
+ * Generate per-module route type files by statically parsing url module source.
4
+ * Scans for files containing `urls(` and writes a sibling `.gen.ts` with the
5
+ * extracted route name/pattern pairs. Only writes when content has changed.
6
+ */
7
+ export declare function writePerModuleRouteTypes(root: string, filter?: ScanFilter): void;
8
+ /**
9
+ * Find all variable names assigned to urls() calls in source code.
10
+ * e.g. `export const patterns = urls(...)` -> ["patterns"]
11
+ */
12
+ export declare function findUrlsVariableNames(code: string): string[];
13
+ /**
14
+ * Generate per-module route types for a single url module file.
15
+ * Follows include() calls recursively to produce the full route tree.
16
+ * No-ops if the file doesn't contain `urls(` or has no named routes.
17
+ */
18
+ export declare function writePerModuleRouteTypesForFile(filePath: string): void;
@@ -0,0 +1,82 @@
1
+ import type { ScanFilter } from "./scan-filter.js";
2
+ import { type UnresolvableInclude } from "./include-resolution.js";
3
+ export declare function findNestedRouterConflict(routerFiles: string[]): {
4
+ ancestor: string;
5
+ nested: string;
6
+ } | null;
7
+ export declare function formatNestedRouterConflictError(conflict: {
8
+ ancestor: string;
9
+ nested: string;
10
+ }, prefix?: string): string;
11
+ /**
12
+ * Result of extracting URL patterns from a router file.
13
+ * - "variable": a named variable reference (e.g., `.routes(patterns)` or `urls: patterns`)
14
+ * - "inline": an inline builder function (e.g., `.routes(({ path }) => [...])` or `urls: ({ path }) => [...]`)
15
+ */
16
+ export type UrlsExtractionResult = {
17
+ kind: "variable";
18
+ name: string;
19
+ } | {
20
+ kind: "inline";
21
+ block: string;
22
+ };
23
+ /**
24
+ * Extract the url patterns from a router file using AST.
25
+ * Detects four patterns:
26
+ * 1. createRouter(...).routes(variableName)
27
+ * 2. createRouter({ urls: variableName, ... })
28
+ * 3. createRouter(...).routes(({ path, ... }) => [...])
29
+ * 4. createRouter({ urls: ({ path, ... }) => [...], ... })
30
+ * Returns either a variable name or an inline code block.
31
+ */
32
+ export declare function extractUrlsFromRouter(code: string): UrlsExtractionResult | null;
33
+ /**
34
+ * Extract the `basename` string literal from createRouter({ basename: "..." }).
35
+ * Returns the basename value or undefined if not present.
36
+ */
37
+ export declare function extractBasenameFromRouter(code: string): string | undefined;
38
+ export declare function genFileTsPath(sourceFile: string): string;
39
+ export declare function resolveSearchSchemas(publicRouteNames: string[], runtimeSchemas: Record<string, Record<string, string>> | undefined, sourceFile: string): Record<string, Record<string, string>> | undefined;
40
+ /**
41
+ * Resolve routes and search schemas from a router source file by following the
42
+ * variable passed to `.routes(...)` or `urls: ...` in createRouter options,
43
+ * or by parsing an inline builder function directly.
44
+ */
45
+ export declare function buildCombinedRouteMapForRouterFile(routerFilePath: string): {
46
+ routes: Record<string, string>;
47
+ searchSchemas: Record<string, Record<string, string>>;
48
+ };
49
+ /**
50
+ * Walk the full include tree starting from a router file and detect
51
+ * all includes that the static parser cannot resolve.
52
+ * Returns an array of diagnostics; empty means fully resolvable.
53
+ */
54
+ export declare function detectUnresolvableIncludes(routerFilePath: string): UnresolvableInclude[];
55
+ /**
56
+ * Walk the include tree for a standalone urls() module file and detect
57
+ * all unresolvable includes. Mirrors detectUnresolvableIncludes() but
58
+ * operates on urls() variable declarations instead of going through
59
+ * createRouter().
60
+ */
61
+ export declare function detectUnresolvableIncludesForUrlsFile(filePath: string): UnresolvableInclude[];
62
+ /**
63
+ * Scan for files containing createRouter() and return their paths.
64
+ * Call once at startup; the result can be reused on subsequent watcher triggers.
65
+ */
66
+ export declare function findRouterFiles(root: string, filter?: ScanFilter): string[];
67
+ /**
68
+ * Scan for files containing createHostRouter() and return their paths. Unlike
69
+ * findRouterFiles, this does NOT stop at the first router-root directory -- a host
70
+ * entry typically sits above the sub-app router roots, so the whole tree is scanned.
71
+ */
72
+ export declare function findHostRouterFiles(root: string, filter?: ScanFilter): string[];
73
+ /**
74
+ * Write named-routes.gen.ts files from static source parsing.
75
+ * Dev-only: provides initial .gen.ts files for IDE types before runtime
76
+ * discovery runs. Must NOT be called during production builds -- runtime
77
+ * discovery in buildStart produces the definitive file.
78
+ */
79
+ export declare function writeCombinedRouteTypes(root: string, knownRouterFiles?: string[], opts?: {
80
+ preserveIfLarger?: boolean;
81
+ onWrite?: (outPath: string, content: string) => void;
82
+ }): void;
@@ -0,0 +1,17 @@
1
+ /** Default exclude patterns for route type scanning. */
2
+ export declare const DEFAULT_EXCLUDE_PATTERNS: string[];
3
+ export type ScanFilter = (absolutePath: string) => boolean;
4
+ /**
5
+ * Compile include/exclude glob patterns into a single predicate.
6
+ * Paths are made root-relative before matching.
7
+ * Returns undefined when no filtering is needed (no include, default exclude).
8
+ */
9
+ export declare function createScanFilter(root: string, opts: {
10
+ include?: string[];
11
+ exclude?: string[];
12
+ }): ScanFilter | undefined;
13
+ /**
14
+ * Recursively find .ts/.tsx files under a directory, skipping node_modules
15
+ * and .gen. files.
16
+ */
17
+ export declare function findTsFiles(dir: string, filter?: ScanFilter): string[];
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Index of the first match of `pattern` that occurs in code (not in a comment
3
+ * or string), or -1. `pattern` MUST be a global (`/g`) regex. Single native
4
+ * regex sweep with early-exit; O(1) extra memory.
5
+ */
6
+ export declare function firstCodeMatchIndex(code: string, pattern: RegExp): number;
7
+ /**
8
+ * Byte offsets of every match of `pattern` that occurs in code (not in a
9
+ * comment or string). `pattern` MUST be a global (`/g`) regex. Each offset is
10
+ * the match start — the same byte offset a raw `pattern.exec` reports. O(n)
11
+ * time, O(#matches) memory.
12
+ */
13
+ export declare function codeMatchIndices(code: string, pattern: RegExp): number[];
@@ -0,0 +1,24 @@
1
+ export interface RuntimeDiscoveryOptions {
2
+ /** Project root directory (where package.json / node_modules live). */
3
+ root: string;
4
+ /** Path to vite.config.ts. Auto-detected from root if omitted. */
5
+ configFile?: string;
6
+ /** Absolute path to the router entry file. */
7
+ entry: string;
8
+ /** Override resolve.alias (skips loading from vite config when provided). */
9
+ resolveAlias?: Record<string, string>;
10
+ }
11
+ /**
12
+ * Standalone Vite-based route discovery for the CLI.
13
+ * Creates a temporary Vite server with the RSC plugin, imports the entry via
14
+ * the module runner, reads the RouterRegistry, generates manifests, and writes
15
+ * named-routes.gen.ts files.
16
+ *
17
+ * This mirrors the logic in the Vite plugin's discoverRouters() + writeRouteTypesFiles()
18
+ * but without coupling to plugin closure state.
19
+ */
20
+ export declare function discoverAndWriteRouteTypes(opts: RuntimeDiscoveryOptions): Promise<{
21
+ routerCount: number;
22
+ routeCount: number;
23
+ outputFiles: string[];
24
+ }>;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Background Task Runner
3
+ *
4
+ * Unified helper for scheduling async work via waitUntil.
5
+ * When waitUntil is unavailable, falls back to blocking or skipping.
6
+ */
7
+ interface WaitUntilHost {
8
+ waitUntil?: (fn: () => Promise<void>) => void;
9
+ }
10
+ /**
11
+ * Schedule an async task in the background via waitUntil.
12
+ *
13
+ * @param host - Object with optional waitUntil (request context or similar)
14
+ * @param task - Async function to execute
15
+ * @param blockWhenNoWaitUntil - If true, awaits the task when waitUntil is
16
+ * unavailable (e.g., Node.js dev server). If false (default), the task
17
+ * is silently skipped when waitUntil is unavailable.
18
+ * @returns A promise when blocking fallback is used, void otherwise.
19
+ */
20
+ export declare function runBackground(host: WaitUntilHost | null | undefined, task: () => Promise<void>, blockWhenNoWaitUntil?: boolean): Promise<void> | void;
21
+ export {};
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Cache error reporting.
3
+ *
4
+ * Caches are best-effort: a read failure degrades to a miss (render fresh) and a
5
+ * write failure degrades to a no-op - they MUST NOT throw up and fail the
6
+ * request. But the failure must still be LOUD: it is logged to the console (so
7
+ * it is visible even in a background waitUntil task or when no hook is wired)
8
+ * AND routed through the router's onError callback (via the request context's
9
+ * deduped _reportBackgroundError) so consumers can observe cache degradation in
10
+ * their own telemetry.
11
+ *
12
+ * The one deliberate exception is the invalidation WRITE verb (updateTag ->
13
+ * store.invalidateTags): a failed durable marker write is rejected so an awaited
14
+ * updateTag() surfaces it (read-your-own-writes honesty). That is not a data
15
+ * read/write and does not go through this helper's swallow-and-degrade path.
16
+ */
17
+ /**
18
+ * Minimal shape of a request context for error reporting. Passed explicitly by
19
+ * background tasks (waitUntil) where the ALS context is already gone, so the
20
+ * error can still reach the router's onError. Structural to avoid importing the
21
+ * full RequestContext type (request-context.ts imports CacheErrorCategory from
22
+ * here - a mutual type-only reference).
23
+ */
24
+ export interface CacheErrorReporter {
25
+ _reportBackgroundError?: (error: unknown, category: CacheErrorCategory) => void;
26
+ }
27
+ export type CacheErrorCategory =
28
+ /** A read failed (transient infra: KV/Cache API error). Degrade to a miss. */
29
+ "cache-read"
30
+ /** A write failed. Degrade to a no-op (entry simply not cached). */
31
+ | "cache-write"
32
+ /** A delete/eviction failed. Best-effort. */
33
+ | "cache-delete"
34
+ /**
35
+ * A STORED entry could not be parsed/deserialized (partial KV read, truncated
36
+ * Cache API body, malformed envelope/RSC payload). The entry is faulty and is
37
+ * evicted so subsequent reads do not keep failing on it. Distinct from
38
+ * cache-read so consumers can tell corruption from a transient outage.
39
+ */
40
+ | "cache-corrupt"
41
+ /** A tag-invalidation side effect failed (e.g. the eager CDN purge hook). */
42
+ | "cache-invalidate"
43
+ /**
44
+ * A background stale-while-revalidate refresh failed (the `"use cache"`
45
+ * read-through path). The stale value was already served; the refresh that
46
+ * would have replaced it errored.
47
+ */
48
+ | "stale-revalidation";
49
+ /**
50
+ * Report a non-fatal cache error loudly without failing the request: always logs
51
+ * (label + error) and, when a request context is available, routes the error
52
+ * through the router's onError callback. Never throws.
53
+ *
54
+ * `ctx` is for callers running in a detached background task (waitUntil), where
55
+ * the ALS request context is already gone (so `_getRequestContext()` is null):
56
+ * they capture the context up front and pass it here so onError still fires.
57
+ * Foreground callers omit it and fall back to the ALS context.
58
+ */
59
+ export declare function reportCacheError(error: unknown, category: CacheErrorCategory, label: string, ctx?: CacheErrorReporter): void;
60
+ /**
61
+ * Run a best-effort async cache task (typically scheduled via waitUntil), catching
62
+ * any rejection and routing it through reportCacheError so background cache work
63
+ * (non-blocking L1 writes, KV persistence, L1 promotion) reports failures via
64
+ * onError instead of throwing or silently swallowing. Never rejects.
65
+ *
66
+ * Pass `ctx` when the task runs detached (the ALS context is gone) and the
67
+ * failure should still reach onError; omit it to fall back to the ALS context.
68
+ *
69
+ * @example this.waitUntil(() => reportingAsync(() => cache.put(req, res), "cache-write", "[CFCacheStore] L1 write"))
70
+ */
71
+ export declare function reportingAsync(task: () => Promise<unknown>, category: CacheErrorCategory, label: string, ctx?: CacheErrorReporter): Promise<void>;