@rangojs/router 0.4.0 → 0.4.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 (482) hide show
  1. package/README.md +19 -1
  2. package/dist/types/browser/event-controller.d.ts +4 -0
  3. package/dist/types/browser/link-interceptor.d.ts +17 -7
  4. package/dist/types/browser/navigation-bridge.d.ts +13 -1
  5. package/dist/types/browser/notify-listeners.d.ts +2 -0
  6. package/dist/types/browser/prefetch/cache.d.ts +1 -1
  7. package/dist/types/browser/prefetch/default-strategy.d.ts +12 -3
  8. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  9. package/dist/types/browser/prefetch/loader.d.ts +3 -1
  10. package/dist/types/browser/prefetch/observer.d.ts +3 -6
  11. package/dist/types/browser/rango-state.d.ts +4 -0
  12. package/dist/types/browser/react/Link.d.ts +4 -9
  13. package/dist/types/browser/react/context.d.ts +3 -0
  14. package/dist/types/browser/rsc-router.d.ts +7 -2
  15. package/dist/types/browser/types.d.ts +1 -0
  16. package/dist/types/cache/cache-key-utils.d.ts +11 -3
  17. package/dist/types/cache/cache-scope.d.ts +82 -3
  18. package/dist/types/cache/cf/cf-cache-store.d.ts +2 -2
  19. package/dist/types/cache/index.d.ts +3 -1
  20. package/dist/types/cache/search-params-filter.d.ts +64 -0
  21. package/dist/types/cache/shell-snapshot.d.ts +4 -4
  22. package/dist/types/cache/types.d.ts +30 -2
  23. package/dist/types/cache/vercel/vercel-cache-store.d.ts +2 -2
  24. package/dist/types/index.d.ts +1 -0
  25. package/dist/types/index.rsc.d.ts +1 -0
  26. package/dist/types/router/match-middleware/cache-lookup.d.ts +13 -0
  27. package/dist/types/router/navigation-snapshot.d.ts +29 -0
  28. package/dist/types/router/router-options.d.ts +27 -3
  29. package/dist/types/rsc/shell-build-manifest.d.ts +7 -1
  30. package/dist/types/rsc/shell-serve.d.ts +7 -1
  31. package/dist/types/rsc/types.d.ts +17 -0
  32. package/dist/types/server/request-context.d.ts +57 -4
  33. package/dist/types/testing/render-route.d.ts +10 -1
  34. package/dist/types/testing/shell-status.d.ts +6 -3
  35. package/dist/types/vite/plugin-types.d.ts +1 -1
  36. package/dist/vite/index.js +5 -5
  37. package/package.json +23 -22
  38. package/skills/caching/SKILL.md +39 -0
  39. package/skills/comparison/references/framework-comparison.md +7 -1
  40. package/skills/links/SKILL.md +24 -0
  41. package/skills/ppr/SKILL.md +53 -4
  42. package/skills/router-setup/SKILL.md +7 -2
  43. package/skills/testing/client-components.md +15 -14
  44. package/skills/vercel/SKILL.md +1 -1
  45. package/src/browser/event-controller.ts +110 -11
  46. package/src/browser/link-interceptor.ts +469 -20
  47. package/src/browser/navigation-bridge.ts +71 -2
  48. package/src/browser/navigation-store.ts +24 -1
  49. package/src/browser/notify-listeners.ts +22 -0
  50. package/src/browser/prefetch/cache.ts +4 -2
  51. package/src/browser/prefetch/default-strategy.ts +43 -3
  52. package/src/browser/prefetch/invalidation.ts +30 -0
  53. package/src/browser/prefetch/loader.ts +19 -12
  54. package/src/browser/prefetch/observer.ts +50 -22
  55. package/src/browser/rango-state.ts +21 -0
  56. package/src/browser/react/Link.tsx +97 -88
  57. package/src/browser/react/NavigationProvider.tsx +1 -0
  58. package/src/browser/react/context.ts +4 -0
  59. package/src/browser/rsc-router.tsx +22 -9
  60. package/src/browser/types.ts +1 -0
  61. package/src/cache/cache-key-utils.ts +18 -4
  62. package/src/cache/cache-runtime.ts +7 -2
  63. package/src/cache/cache-scope.ts +152 -23
  64. package/src/cache/cf/cf-cache-store.ts +51 -16
  65. package/src/cache/document-cache.ts +7 -1
  66. package/src/cache/index.ts +7 -0
  67. package/src/cache/search-params-filter.ts +118 -0
  68. package/src/cache/shell-snapshot.ts +8 -4
  69. package/src/cache/types.ts +33 -2
  70. package/src/cache/vercel/vercel-cache-store.ts +17 -3
  71. package/src/index.rsc.ts +4 -0
  72. package/src/index.ts +6 -0
  73. package/src/router/match-middleware/cache-lookup.ts +146 -33
  74. package/src/router/match-middleware/cache-store.ts +70 -0
  75. package/src/router/navigation-snapshot.ts +46 -6
  76. package/src/router/router-options.ts +31 -4
  77. package/src/rsc/handler.ts +9 -0
  78. package/src/rsc/response-cache-serve.ts +1 -1
  79. package/src/rsc/rsc-rendering.ts +252 -27
  80. package/src/rsc/shell-build-manifest.ts +8 -1
  81. package/src/rsc/shell-capture.ts +5 -0
  82. package/src/rsc/shell-serve.ts +8 -2
  83. package/src/rsc/types.ts +17 -0
  84. package/src/server/request-context.ts +62 -3
  85. package/src/testing/dispatch.ts +21 -3
  86. package/src/testing/render-route.tsx +86 -17
  87. package/src/testing/shell-status.ts +20 -3
  88. package/src/vite/plugin-types.ts +1 -1
  89. package/src/vite/plugins/vercel-output.ts +2 -2
  90. package/dist/types.backup/__internal.d.ts +0 -127
  91. package/dist/types.backup/bin/rango.d.ts +0 -1
  92. package/dist/types.backup/browser/action-coordinator.d.ts +0 -57
  93. package/dist/types.backup/browser/action-fence.d.ts +0 -33
  94. package/dist/types.backup/browser/app-shell.d.ts +0 -34
  95. package/dist/types.backup/browser/app-version.d.ts +0 -6
  96. package/dist/types.backup/browser/connection-warmup.d.ts +0 -31
  97. package/dist/types.backup/browser/cookie-name.d.ts +0 -66
  98. package/dist/types.backup/browser/event-controller.d.ts +0 -221
  99. package/dist/types.backup/browser/history-state.d.ts +0 -26
  100. package/dist/types.backup/browser/index.d.ts +0 -1
  101. package/dist/types.backup/browser/intercept-utils.d.ts +0 -30
  102. package/dist/types.backup/browser/invalidate-client-cache.d.ts +0 -17
  103. package/dist/types.backup/browser/link-interceptor.d.ts +0 -43
  104. package/dist/types.backup/browser/logging.d.ts +0 -33
  105. package/dist/types.backup/browser/merge-segment-loaders.d.ts +0 -38
  106. package/dist/types.backup/browser/navigation-bridge.d.ts +0 -27
  107. package/dist/types.backup/browser/navigation-client.d.ts +0 -17
  108. package/dist/types.backup/browser/navigation-store-handle.d.ts +0 -25
  109. package/dist/types.backup/browser/navigation-store.d.ts +0 -95
  110. package/dist/types.backup/browser/navigation-transaction.d.ts +0 -75
  111. package/dist/types.backup/browser/network-error-handler.d.ts +0 -35
  112. package/dist/types.backup/browser/partial-update.d.ts +0 -61
  113. package/dist/types.backup/browser/prefetch/cache.d.ts +0 -183
  114. package/dist/types.backup/browser/prefetch/fetch.d.ts +0 -52
  115. package/dist/types.backup/browser/prefetch/observer.d.ts +0 -27
  116. package/dist/types.backup/browser/prefetch/policy.d.ts +0 -13
  117. package/dist/types.backup/browser/prefetch/queue.d.ts +0 -48
  118. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +0 -28
  119. package/dist/types.backup/browser/rango-state.d.ts +0 -52
  120. package/dist/types.backup/browser/react/Link.d.ts +0 -140
  121. package/dist/types.backup/browser/react/NavigationProvider.d.ts +0 -88
  122. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +0 -78
  123. package/dist/types.backup/browser/react/context.d.ts +0 -54
  124. package/dist/types.backup/browser/react/filter-segment-order.d.ts +0 -35
  125. package/dist/types.backup/browser/react/index.d.ts +0 -1
  126. package/dist/types.backup/browser/react/location-state-shared.d.ts +0 -162
  127. package/dist/types.backup/browser/react/location-state.d.ts +0 -29
  128. package/dist/types.backup/browser/react/mount-context.d.ts +0 -23
  129. package/dist/types.backup/browser/react/nonce-context.d.ts +0 -14
  130. package/dist/types.backup/browser/react/shallow-equal.d.ts +0 -5
  131. package/dist/types.backup/browser/react/use-action.d.ts +0 -61
  132. package/dist/types.backup/browser/react/use-handle.d.ts +0 -21
  133. package/dist/types.backup/browser/react/use-href.d.ts +0 -32
  134. package/dist/types.backup/browser/react/use-link-status.d.ts +0 -36
  135. package/dist/types.backup/browser/react/use-mount.d.ts +0 -24
  136. package/dist/types.backup/browser/react/use-navigation.d.ts +0 -15
  137. package/dist/types.backup/browser/react/use-params.d.ts +0 -21
  138. package/dist/types.backup/browser/react/use-pathname.d.ts +0 -13
  139. package/dist/types.backup/browser/react/use-reverse.d.ts +0 -40
  140. package/dist/types.backup/browser/react/use-router.d.ts +0 -23
  141. package/dist/types.backup/browser/react/use-search-params.d.ts +0 -19
  142. package/dist/types.backup/browser/react/use-segments.d.ts +0 -29
  143. package/dist/types.backup/browser/response-adapter.d.ts +0 -58
  144. package/dist/types.backup/browser/rsc-router.d.ts +0 -141
  145. package/dist/types.backup/browser/scroll-restoration.d.ts +0 -103
  146. package/dist/types.backup/browser/segment-reconciler.d.ts +0 -74
  147. package/dist/types.backup/browser/segment-structure-assert.d.ts +0 -16
  148. package/dist/types.backup/browser/server-action-bridge.d.ts +0 -29
  149. package/dist/types.backup/browser/types.d.ts +0 -530
  150. package/dist/types.backup/browser/validate-redirect-origin.d.ts +0 -28
  151. package/dist/types.backup/build/collect-fallback-refs.d.ts +0 -5
  152. package/dist/types.backup/build/generate-manifest.d.ts +0 -100
  153. package/dist/types.backup/build/generate-route-types.d.ts +0 -8
  154. package/dist/types.backup/build/index.d.ts +0 -21
  155. package/dist/types.backup/build/prefix-tree-utils.d.ts +0 -56
  156. package/dist/types.backup/build/route-trie.d.ts +0 -89
  157. package/dist/types.backup/build/route-types/ast-helpers.d.ts +0 -3
  158. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +0 -13
  159. package/dist/types.backup/build/route-types/codegen.d.ts +0 -16
  160. package/dist/types.backup/build/route-types/include-resolution.d.ts +0 -74
  161. package/dist/types.backup/build/route-types/param-extraction.d.ts +0 -13
  162. package/dist/types.backup/build/route-types/per-module-writer.d.ts +0 -18
  163. package/dist/types.backup/build/route-types/router-processing.d.ts +0 -82
  164. package/dist/types.backup/build/route-types/scan-filter.d.ts +0 -17
  165. package/dist/types.backup/build/route-types/source-scan.d.ts +0 -13
  166. package/dist/types.backup/build/runtime-discovery.d.ts +0 -24
  167. package/dist/types.backup/cache/background-task.d.ts +0 -21
  168. package/dist/types.backup/cache/cache-error.d.ts +0 -71
  169. package/dist/types.backup/cache/cache-key-utils.d.ts +0 -35
  170. package/dist/types.backup/cache/cache-policy.d.ts +0 -59
  171. package/dist/types.backup/cache/cache-runtime.d.ts +0 -51
  172. package/dist/types.backup/cache/cache-scope.d.ts +0 -134
  173. package/dist/types.backup/cache/cache-tag.d.ts +0 -79
  174. package/dist/types.backup/cache/cf/cf-base64.d.ts +0 -4
  175. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +0 -105
  176. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +0 -481
  177. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +0 -300
  178. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +0 -22
  179. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +0 -15
  180. package/dist/types.backup/cache/cf/index.d.ts +0 -3
  181. package/dist/types.backup/cache/document-cache.d.ts +0 -69
  182. package/dist/types.backup/cache/handle-capture.d.ts +0 -23
  183. package/dist/types.backup/cache/handle-snapshot.d.ts +0 -39
  184. package/dist/types.backup/cache/index.d.ts +0 -7
  185. package/dist/types.backup/cache/memory-segment-store.d.ts +0 -163
  186. package/dist/types.backup/cache/profile-registry.d.ts +0 -40
  187. package/dist/types.backup/cache/read-through-swr.d.ts +0 -60
  188. package/dist/types.backup/cache/segment-codec.d.ts +0 -78
  189. package/dist/types.backup/cache/shell-snapshot.d.ts +0 -162
  190. package/dist/types.backup/cache/tag-invalidation.d.ts +0 -74
  191. package/dist/types.backup/cache/taint.d.ts +0 -71
  192. package/dist/types.backup/cache/types.d.ts +0 -407
  193. package/dist/types.backup/cache/vercel/index.d.ts +0 -1
  194. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +0 -267
  195. package/dist/types.backup/client.d.ts +0 -184
  196. package/dist/types.backup/client.rsc.d.ts +0 -39
  197. package/dist/types.backup/cloudflare/index.d.ts +0 -7
  198. package/dist/types.backup/cloudflare/tracing.d.ts +0 -53
  199. package/dist/types.backup/component-utils.d.ts +0 -46
  200. package/dist/types.backup/components/DefaultDocument.d.ts +0 -13
  201. package/dist/types.backup/context-var.d.ts +0 -84
  202. package/dist/types.backup/debug.d.ts +0 -57
  203. package/dist/types.backup/decode-loader-results.d.ts +0 -5
  204. package/dist/types.backup/default-error-boundary.d.ts +0 -10
  205. package/dist/types.backup/defer.d.ts +0 -89
  206. package/dist/types.backup/deps/browser.d.ts +0 -1
  207. package/dist/types.backup/deps/html-stream-client.d.ts +0 -1
  208. package/dist/types.backup/deps/html-stream-server.d.ts +0 -1
  209. package/dist/types.backup/deps/rsc.d.ts +0 -1
  210. package/dist/types.backup/deps/ssr.d.ts +0 -1
  211. package/dist/types.backup/encode-kv.d.ts +0 -35
  212. package/dist/types.backup/errors.d.ts +0 -226
  213. package/dist/types.backup/escape-script.d.ts +0 -44
  214. package/dist/types.backup/handle.d.ts +0 -93
  215. package/dist/types.backup/handles/MetaTags.d.ts +0 -17
  216. package/dist/types.backup/handles/Scripts.d.ts +0 -38
  217. package/dist/types.backup/handles/breadcrumbs.d.ts +0 -43
  218. package/dist/types.backup/handles/deferred-resolution.d.ts +0 -53
  219. package/dist/types.backup/handles/is-thenable.d.ts +0 -12
  220. package/dist/types.backup/handles/meta.d.ts +0 -43
  221. package/dist/types.backup/handles/script.d.ts +0 -139
  222. package/dist/types.backup/host/cookie-handler.d.ts +0 -8
  223. package/dist/types.backup/host/errors.d.ts +0 -40
  224. package/dist/types.backup/host/index.d.ts +0 -33
  225. package/dist/types.backup/host/pattern-matcher.d.ts +0 -30
  226. package/dist/types.backup/host/router.d.ts +0 -12
  227. package/dist/types.backup/host/testing.d.ts +0 -41
  228. package/dist/types.backup/host/types.d.ts +0 -148
  229. package/dist/types.backup/host/utils.d.ts +0 -20
  230. package/dist/types.backup/href-client.d.ts +0 -214
  231. package/dist/types.backup/index.d.ts +0 -112
  232. package/dist/types.backup/index.rsc.d.ts +0 -51
  233. package/dist/types.backup/internal-debug.d.ts +0 -1
  234. package/dist/types.backup/loader-store.d.ts +0 -193
  235. package/dist/types.backup/loader.d.ts +0 -18
  236. package/dist/types.backup/loader.rsc.d.ts +0 -18
  237. package/dist/types.backup/missing-id-error.d.ts +0 -1
  238. package/dist/types.backup/outlet-context.d.ts +0 -12
  239. package/dist/types.backup/outlet-provider.d.ts +0 -12
  240. package/dist/types.backup/prerender/build-shell-capture.d.ts +0 -104
  241. package/dist/types.backup/prerender/param-hash.d.ts +0 -6
  242. package/dist/types.backup/prerender/shell-manifest-key.d.ts +0 -18
  243. package/dist/types.backup/prerender/store.d.ts +0 -62
  244. package/dist/types.backup/prerender.d.ts +0 -292
  245. package/dist/types.backup/redirect-origin.d.ts +0 -55
  246. package/dist/types.backup/regex-escape.d.ts +0 -6
  247. package/dist/types.backup/render-error-thrower.d.ts +0 -13
  248. package/dist/types.backup/response-utils.d.ts +0 -35
  249. package/dist/types.backup/reverse.d.ts +0 -206
  250. package/dist/types.backup/root-error-boundary.d.ts +0 -32
  251. package/dist/types.backup/route-content-wrapper.d.ts +0 -40
  252. package/dist/types.backup/route-definition/dsl-helpers.d.ts +0 -130
  253. package/dist/types.backup/route-definition/helper-factories.d.ts +0 -22
  254. package/dist/types.backup/route-definition/helpers-types.d.ts +0 -392
  255. package/dist/types.backup/route-definition/index.d.ts +0 -7
  256. package/dist/types.backup/route-definition/redirect.d.ts +0 -48
  257. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +0 -19
  258. package/dist/types.backup/route-definition/use-item-types.d.ts +0 -1
  259. package/dist/types.backup/route-definition.d.ts +0 -1
  260. package/dist/types.backup/route-map-builder.d.ts +0 -127
  261. package/dist/types.backup/route-name.d.ts +0 -27
  262. package/dist/types.backup/route-types.d.ts +0 -172
  263. package/dist/types.backup/router/basename.d.ts +0 -10
  264. package/dist/types.backup/router/content-negotiation.d.ts +0 -91
  265. package/dist/types.backup/router/debug-manifest.d.ts +0 -7
  266. package/dist/types.backup/router/error-handling.d.ts +0 -76
  267. package/dist/types.backup/router/find-match.d.ts +0 -19
  268. package/dist/types.backup/router/handler-context.d.ts +0 -41
  269. package/dist/types.backup/router/instrument.d.ts +0 -161
  270. package/dist/types.backup/router/intercept-resolution.d.ts +0 -79
  271. package/dist/types.backup/router/lazy-includes.d.ts +0 -26
  272. package/dist/types.backup/router/loader-resolution.d.ts +0 -63
  273. package/dist/types.backup/router/logging.d.ts +0 -41
  274. package/dist/types.backup/router/manifest.d.ts +0 -8
  275. package/dist/types.backup/router/match-api.d.ts +0 -19
  276. package/dist/types.backup/router/match-context.d.ts +0 -184
  277. package/dist/types.backup/router/match-handlers.d.ts +0 -49
  278. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +0 -113
  279. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +0 -113
  280. package/dist/types.backup/router/match-middleware/cache-store.d.ts +0 -112
  281. package/dist/types.backup/router/match-middleware/index.d.ts +0 -80
  282. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +0 -116
  283. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +0 -94
  284. package/dist/types.backup/router/match-pipelines.d.ts +0 -103
  285. package/dist/types.backup/router/match-result.d.ts +0 -114
  286. package/dist/types.backup/router/metrics.d.ts +0 -6
  287. package/dist/types.backup/router/middleware-types.d.ts +0 -74
  288. package/dist/types.backup/router/middleware.d.ts +0 -116
  289. package/dist/types.backup/router/navigation-snapshot.d.ts +0 -22
  290. package/dist/types.backup/router/params-util.d.ts +0 -8
  291. package/dist/types.backup/router/parse-pattern.d.ts +0 -38
  292. package/dist/types.backup/router/pattern-matching.d.ts +0 -169
  293. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +0 -27
  294. package/dist/types.backup/router/prefetch-limits.d.ts +0 -20
  295. package/dist/types.backup/router/prerender-match.d.ts +0 -50
  296. package/dist/types.backup/router/preview-match.d.ts +0 -22
  297. package/dist/types.backup/router/request-classification.d.ts +0 -104
  298. package/dist/types.backup/router/revalidation.d.ts +0 -57
  299. package/dist/types.backup/router/route-snapshot.d.ts +0 -112
  300. package/dist/types.backup/router/router-context.d.ts +0 -137
  301. package/dist/types.backup/router/router-interfaces.d.ts +0 -432
  302. package/dist/types.backup/router/router-options.d.ts +0 -738
  303. package/dist/types.backup/router/router-registry.d.ts +0 -15
  304. package/dist/types.backup/router/segment-resolution/fresh.d.ts +0 -55
  305. package/dist/types.backup/router/segment-resolution/helpers.d.ts +0 -93
  306. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +0 -33
  307. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +0 -44
  308. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +0 -90
  309. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +0 -53
  310. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +0 -85
  311. package/dist/types.backup/router/segment-resolution/static-store.d.ts +0 -17
  312. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +0 -16
  313. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +0 -28
  314. package/dist/types.backup/router/segment-resolution.d.ts +0 -3
  315. package/dist/types.backup/router/segment-wrappers.d.ts +0 -53
  316. package/dist/types.backup/router/state-cookie-name.d.ts +0 -1
  317. package/dist/types.backup/router/substitute-pattern-params.d.ts +0 -23
  318. package/dist/types.backup/router/telemetry-otel.d.ts +0 -113
  319. package/dist/types.backup/router/telemetry.d.ts +0 -215
  320. package/dist/types.backup/router/timeout.d.ts +0 -68
  321. package/dist/types.backup/router/tracing.d.ts +0 -125
  322. package/dist/types.backup/router/trie-matching.d.ts +0 -32
  323. package/dist/types.backup/router/types.d.ts +0 -98
  324. package/dist/types.backup/router/url-params.d.ts +0 -26
  325. package/dist/types.backup/router.d.ts +0 -7
  326. package/dist/types.backup/rsc/capture-queue.d.ts +0 -6
  327. package/dist/types.backup/rsc/full-payload.d.ts +0 -22
  328. package/dist/types.backup/rsc/handler-context.d.ts +0 -31
  329. package/dist/types.backup/rsc/handler.d.ts +0 -9
  330. package/dist/types.backup/rsc/helpers.d.ts +0 -213
  331. package/dist/types.backup/rsc/index.d.ts +0 -17
  332. package/dist/types.backup/rsc/json-route-result.d.ts +0 -20
  333. package/dist/types.backup/rsc/loader-fetch.d.ts +0 -14
  334. package/dist/types.backup/rsc/manifest-init.d.ts +0 -18
  335. package/dist/types.backup/rsc/nonce.d.ts +0 -28
  336. package/dist/types.backup/rsc/origin-guard.d.ts +0 -50
  337. package/dist/types.backup/rsc/progressive-enhancement.d.ts +0 -19
  338. package/dist/types.backup/rsc/redirect-guard.d.ts +0 -35
  339. package/dist/types.backup/rsc/response-cache-serve.d.ts +0 -46
  340. package/dist/types.backup/rsc/response-error.d.ts +0 -19
  341. package/dist/types.backup/rsc/response-route-handler.d.ts +0 -29
  342. package/dist/types.backup/rsc/rsc-rendering.d.ts +0 -23
  343. package/dist/types.backup/rsc/runtime-warnings.d.ts +0 -22
  344. package/dist/types.backup/rsc/server-action.d.ts +0 -68
  345. package/dist/types.backup/rsc/shell-build-manifest.d.ts +0 -84
  346. package/dist/types.backup/rsc/shell-capture-constants.d.ts +0 -27
  347. package/dist/types.backup/rsc/shell-capture.d.ts +0 -374
  348. package/dist/types.backup/rsc/shell-serve.d.ts +0 -136
  349. package/dist/types.backup/rsc/ssr-setup.d.ts +0 -48
  350. package/dist/types.backup/rsc/transition-gate.d.ts +0 -27
  351. package/dist/types.backup/rsc/types.d.ts +0 -290
  352. package/dist/types.backup/runtime-env.d.ts +0 -1
  353. package/dist/types.backup/search-params.d.ts +0 -125
  354. package/dist/types.backup/segment-content-promise.d.ts +0 -13
  355. package/dist/types.backup/segment-fragments.d.ts +0 -56
  356. package/dist/types.backup/segment-loader-promise.d.ts +0 -22
  357. package/dist/types.backup/segment-system.d.ts +0 -84
  358. package/dist/types.backup/serialize.d.ts +0 -164
  359. package/dist/types.backup/server/context.d.ts +0 -494
  360. package/dist/types.backup/server/cookie-parse.d.ts +0 -10
  361. package/dist/types.backup/server/cookie-store.d.ts +0 -107
  362. package/dist/types.backup/server/fetchable-loader-store.d.ts +0 -20
  363. package/dist/types.backup/server/handle-store.d.ts +0 -100
  364. package/dist/types.backup/server/loader-registry.d.ts +0 -32
  365. package/dist/types.backup/server/request-context.d.ts +0 -596
  366. package/dist/types.backup/server/root-layout.d.ts +0 -3
  367. package/dist/types.backup/server.d.ts +0 -15
  368. package/dist/types.backup/ssr/index.d.ts +0 -233
  369. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +0 -3
  370. package/dist/types.backup/ssr/preinit-client-references.d.ts +0 -71
  371. package/dist/types.backup/ssr/ssr-root.d.ts +0 -69
  372. package/dist/types.backup/static-handler.d.ts +0 -57
  373. package/dist/types.backup/testing/cache-status.d.ts +0 -63
  374. package/dist/types.backup/testing/collect-handle.d.ts +0 -20
  375. package/dist/types.backup/testing/dispatch.d.ts +0 -123
  376. package/dist/types.backup/testing/dom.entry.d.ts +0 -15
  377. package/dist/types.backup/testing/e2e/fixture.d.ts +0 -37
  378. package/dist/types.backup/testing/e2e/index.d.ts +0 -30
  379. package/dist/types.backup/testing/e2e/matchers.d.ts +0 -17
  380. package/dist/types.backup/testing/e2e/page-helpers.d.ts +0 -62
  381. package/dist/types.backup/testing/e2e/parity.d.ts +0 -111
  382. package/dist/types.backup/testing/e2e/server.d.ts +0 -35
  383. package/dist/types.backup/testing/flight-matchers.d.ts +0 -55
  384. package/dist/types.backup/testing/flight-normalize.d.ts +0 -1
  385. package/dist/types.backup/testing/flight-tree.d.ts +0 -192
  386. package/dist/types.backup/testing/flight.d.ts +0 -115
  387. package/dist/types.backup/testing/flight.entry.d.ts +0 -27
  388. package/dist/types.backup/testing/generated-routes.d.ts +0 -66
  389. package/dist/types.backup/testing/index.d.ts +0 -52
  390. package/dist/types.backup/testing/internal/context.d.ts +0 -225
  391. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +0 -1
  392. package/dist/types.backup/testing/internal/seed-vars.d.ts +0 -30
  393. package/dist/types.backup/testing/render-handler.d.ts +0 -160
  394. package/dist/types.backup/testing/render-route.d.ts +0 -246
  395. package/dist/types.backup/testing/run-loader.d.ts +0 -186
  396. package/dist/types.backup/testing/run-middleware.d.ts +0 -132
  397. package/dist/types.backup/testing/run-transition-when.d.ts +0 -77
  398. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +0 -6
  399. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +0 -13
  400. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +0 -7
  401. package/dist/types.backup/testing/vitest-stubs/version.d.ts +0 -1
  402. package/dist/types.backup/testing/vitest.d.ts +0 -205
  403. package/dist/types.backup/theme/ThemeProvider.d.ts +0 -13
  404. package/dist/types.backup/theme/ThemeScript.d.ts +0 -45
  405. package/dist/types.backup/theme/constants.d.ts +0 -39
  406. package/dist/types.backup/theme/index.d.ts +0 -29
  407. package/dist/types.backup/theme/theme-context.d.ts +0 -21
  408. package/dist/types.backup/theme/theme-script.d.ts +0 -26
  409. package/dist/types.backup/theme/types.d.ts +0 -162
  410. package/dist/types.backup/theme/use-theme.d.ts +0 -8
  411. package/dist/types.backup/types/boundaries.d.ts +0 -93
  412. package/dist/types.backup/types/cache-types.d.ts +0 -191
  413. package/dist/types.backup/types/error-types.d.ts +0 -114
  414. package/dist/types.backup/types/global-namespace.d.ts +0 -90
  415. package/dist/types.backup/types/handler-context.d.ts +0 -658
  416. package/dist/types.backup/types/index.d.ts +0 -11
  417. package/dist/types.backup/types/loader-types.d.ts +0 -182
  418. package/dist/types.backup/types/request-scope.d.ts +0 -93
  419. package/dist/types.backup/types/route-config.d.ts +0 -105
  420. package/dist/types.backup/types/route-entry.d.ts +0 -95
  421. package/dist/types.backup/types/segments.d.ts +0 -234
  422. package/dist/types.backup/types.d.ts +0 -1
  423. package/dist/types.backup/urls/include-helper.d.ts +0 -17
  424. package/dist/types.backup/urls/include-provider.d.ts +0 -27
  425. package/dist/types.backup/urls/index.d.ts +0 -6
  426. package/dist/types.backup/urls/path-helper-types.d.ts +0 -197
  427. package/dist/types.backup/urls/path-helper.d.ts +0 -12
  428. package/dist/types.backup/urls/pattern-types.d.ts +0 -166
  429. package/dist/types.backup/urls/response-types.d.ts +0 -67
  430. package/dist/types.backup/urls/type-extraction.d.ts +0 -157
  431. package/dist/types.backup/urls/urls-function.d.ts +0 -24
  432. package/dist/types.backup/urls.d.ts +0 -1
  433. package/dist/types.backup/use-loader.d.ts +0 -150
  434. package/dist/types.backup/vercel/index.d.ts +0 -10
  435. package/dist/types.backup/vercel/tracing.d.ts +0 -70
  436. package/dist/types.backup/vite/debug.d.ts +0 -80
  437. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +0 -12
  438. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +0 -65
  439. package/dist/types.backup/vite/discovery/discover-routers.d.ts +0 -17
  440. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +0 -113
  441. package/dist/types.backup/vite/discovery/gate-state.d.ts +0 -79
  442. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +0 -24
  443. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +0 -32
  444. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +0 -22
  445. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +0 -40
  446. package/dist/types.backup/vite/discovery/state.d.ts +0 -162
  447. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +0 -15
  448. package/dist/types.backup/vite/index.d.ts +0 -11
  449. package/dist/types.backup/vite/inject-client-debug.d.ts +0 -56
  450. package/dist/types.backup/vite/plugin-types.d.ts +0 -298
  451. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +0 -6
  452. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +0 -40
  453. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +0 -35
  454. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +0 -64
  455. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +0 -18
  456. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +0 -37
  457. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +0 -19
  458. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +0 -10
  459. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +0 -8
  460. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +0 -13
  461. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +0 -29
  462. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +0 -6
  463. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +0 -25
  464. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +0 -20
  465. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +0 -20
  466. package/dist/types.backup/vite/plugins/vercel-output.d.ts +0 -85
  467. package/dist/types.backup/vite/plugins/version-injector.d.ts +0 -21
  468. package/dist/types.backup/vite/plugins/version-plugin.d.ts +0 -19
  469. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +0 -36
  470. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +0 -7
  471. package/dist/types.backup/vite/rango.d.ts +0 -29
  472. package/dist/types.backup/vite/router-discovery.d.ts +0 -23
  473. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +0 -64
  474. package/dist/types.backup/vite/utils/banner.d.ts +0 -2
  475. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +0 -28
  476. package/dist/types.backup/vite/utils/client-chunks.d.ts +0 -55
  477. package/dist/types.backup/vite/utils/directive-prologue.d.ts +0 -16
  478. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +0 -37
  479. package/dist/types.backup/vite/utils/manifest-utils.d.ts +0 -7
  480. package/dist/types.backup/vite/utils/package-resolution.d.ts +0 -6
  481. package/dist/types.backup/vite/utils/prerender-utils.d.ts +0 -32
  482. package/dist/types.backup/vite/utils/shared-utils.d.ts +0 -55
@@ -1,112 +0,0 @@
1
- /**
2
- * Cache Store Middleware
3
- *
4
- * Stores resolved segments in cache for future requests.
5
- * Implements proactive caching for partial navigation scenarios.
6
- *
7
- * FLOW DIAGRAM
8
- * ============
9
- *
10
- * source (from intercept-resolution)
11
- * |
12
- * v
13
- * +---------------------------+
14
- * | Collect + yield all | Observer pattern: pass through
15
- * | allSegments[] |
16
- * +---------------------------+
17
- * |
18
- * v
19
- * +---------------------+
20
- * | Should skip cache? |
21
- * | - !cacheScope |──yes──> return
22
- * | - isAction |
23
- * | - cacheHit |
24
- * | - method !== GET |
25
- * +---------------------+
26
- * | no
27
- * v
28
- * +-------------------------------+
29
- * | Any null components? |
30
- * | (client already has segment) |
31
- * +-------------------------------+
32
- * |
33
- * +-----+-----+
34
- * | |
35
- * yes no
36
- * | |
37
- * v v
38
- * PROACTIVE DIRECT
39
- * CACHE CACHE
40
- * | |
41
- * v v
42
- * waitUntil() cacheRoute()
43
- * re-render immediately
44
- * fresh |
45
- * | |
46
- * +-----------+
47
- * |
48
- * v
49
- * next middleware
50
- *
51
- *
52
- * CACHING STRATEGIES
53
- * ==================
54
- *
55
- * 1. Direct Cache (all components present):
56
- * - Immediate cacheRoute() call
57
- * - All segments have valid components
58
- * - Used for fresh full-page renders
59
- *
60
- * 2. Proactive Cache (null components present):
61
- * - Background re-render via waitUntil()
62
- * - Creates fresh context to avoid polluting response
63
- * - Re-resolves ALL segments without revalidation
64
- * - Ensures cache has complete components for future requests
65
- *
66
- *
67
- * WHY PROACTIVE CACHING?
68
- * ======================
69
- *
70
- * During partial navigation, some segments have null components:
71
- *
72
- * Request: /products/123 -> /products/456
73
- * Segments: [ProductLayout(null), ProductPage(component)]
74
- *
75
- * The null means "client already has this, don't re-send."
76
- * But if we cache these null components, future document requests
77
- * would fail (no component to render).
78
- *
79
- * Solution: Background re-render all segments fresh, then cache.
80
- * This ensures the cache always has complete, renderable segments.
81
- *
82
- *
83
- * PROACTIVE CACHE FLOW
84
- * ====================
85
- *
86
- * 1. Current request returns (fast, with nulls)
87
- * 2. waitUntil() triggers background work
88
- * 3. Create fresh handler context (silent, no stream pollution)
89
- * 4. Re-resolve all entries without revalidation logic
90
- * 5. Also resolve intercept segments if applicable
91
- * 6. Store complete segments in cache
92
- *
93
- *
94
- * SKIP CONDITIONS
95
- * ===============
96
- *
97
- * Caching is skipped when:
98
- * - Cache scope disabled (no caching configured)
99
- * - This is an action request (mutations shouldn't cache)
100
- * - Cache was already hit (no need to re-cache same data)
101
- * - Non-GET request (only GET requests are cacheable)
102
- */
103
- import type { ResolvedSegment } from "../../types.js";
104
- import type { MatchContext, MatchPipelineState } from "../match-context.js";
105
- import type { GeneratorMiddleware } from "./cache-lookup.js";
106
- /**
107
- * Creates cache store middleware
108
- *
109
- * Observes all segments passing through and stores them in cache after pipeline completes.
110
- * Handles proactive caching for null-component segments.
111
- */
112
- export declare function withCacheStore<TEnv>(ctx: MatchContext<TEnv>, state: MatchPipelineState): GeneratorMiddleware<ResolvedSegment>;
@@ -1,80 +0,0 @@
1
- /**
2
- * Match Middleware
3
- *
4
- * Async generator middleware for the match pipeline.
5
- * Each middleware transforms or enriches the segment stream.
6
- *
7
- * MIDDLEWARE OVERVIEW
8
- * ===================
9
- *
10
- * The pipeline consists of 5 middleware layers, each with a specific role:
11
- *
12
- * +-------------------------------------------------------------------------+
13
- * | MIDDLEWARE PIPELINE |
14
- * +-------------------------------------------------------------------------+
15
- * | |
16
- * | [1] CACHE LOOKUP (innermost) |
17
- * | Purpose: Check cache before resolving |
18
- * | On hit: Yield cached segments + fresh loaders |
19
- * | On miss: Pass through to segment resolution |
20
- * | Side effects: Sets state.cacheHit, state.shouldRevalidate |
21
- * | |
22
- * | [2] SEGMENT RESOLUTION |
23
- * | Purpose: Resolve segments when cache misses |
24
- * | Skips if: state.cacheHit === true |
25
- * | Produces: All route segments (layouts, routes, loaders) |
26
- * | Two modes: Full (simple) vs Partial (with revalidation) |
27
- * | |
28
- * | [3] INTERCEPT RESOLUTION |
29
- * | Purpose: Resolve intercept segments (modal slots) |
30
- * | Triggers: When ctx.interceptResult exists |
31
- * | Produces: Additional segments for named slots |
32
- * | Updates: state.slots[slotName] with intercept segments |
33
- * | |
34
- * | [4] CACHE STORE |
35
- * | Purpose: Store segments in cache for future requests |
36
- * | Skips if: Cache hit, actions, or cache disabled |
37
- * | Strategy: Direct cache if all components present |
38
- * | Proactive cache if null components (via waitUntil) |
39
- * | |
40
- * | [5] BACKGROUND REVALIDATION (outermost) |
41
- * | Purpose: SWR - serve stale, revalidate in background |
42
- * | Triggers: When state.shouldRevalidate === true |
43
- * | Action: Async resolution via waitUntil(), updates cache |
44
- * | |
45
- * +-------------------------------------------------------------------------+
46
- *
47
- *
48
- * MIDDLEWARE INTERACTION PATTERNS
49
- * ===============================
50
- *
51
- * Pattern 1: Producer Middleware (cache-lookup, segment-resolution)
52
- * - Yields segments into the stream
53
- * - Creates new data for downstream middleware
54
- *
55
- * Pattern 2: Transformer Middleware (intercept-resolution)
56
- * - Passes through existing segments
57
- * - Adds additional segments (intercepts)
58
- *
59
- * Pattern 3: Observer Middleware (cache-store, background-revalidation)
60
- * - Passes through all segments unchanged
61
- * - Triggers side effects based on state
62
- *
63
- *
64
- * STATE FLAGS
65
- * ===========
66
- *
67
- * The middleware communicate through MatchPipelineState:
68
- *
69
- * state.cacheHit - Set by cache-lookup, read by others to skip work
70
- * state.shouldRevalidate - Set by cache-lookup, triggers bg-revalidation
71
- * state.segments - Accumulated segments from pipeline
72
- * state.interceptSegments - Segments for intercept slots
73
- * state.slots - Named slot data for client
74
- */
75
- export { withCacheLookup } from "./cache-lookup.js";
76
- export { withSegmentResolution } from "./segment-resolution.js";
77
- export { withInterceptResolution } from "./intercept-resolution.js";
78
- export { withCacheStore } from "./cache-store.js";
79
- export { withBackgroundRevalidation } from "./background-revalidation.js";
80
- export type { GeneratorMiddleware } from "./cache-lookup.js";
@@ -1,116 +0,0 @@
1
- /**
2
- * Intercept Resolution Middleware
3
- *
4
- * Resolves intercept (modal slot) segments for soft navigation.
5
- * Yields intercept segments after main route segments.
6
- *
7
- * FLOW DIAGRAM
8
- * ============
9
- *
10
- * source (from segment-resolution)
11
- * |
12
- * v
13
- * +---------------------------+
14
- * | Collect + yield source | Pass through main segments
15
- * | segments[] |
16
- * +---------------------------+
17
- * |
18
- * v
19
- * +---------------------+
20
- * | isFullMatch? |──yes──> return (no intercepts on doc requests)
21
- * +---------------------+
22
- * | no
23
- * v
24
- * +---------------------+
25
- * | Has interceptResult |──no───> return
26
- * | AND not cached? |
27
- * +---------------------+
28
- * | yes
29
- * v
30
- * +----------------------+ +----------------------------+
31
- * | Fresh intercept? |yes>| resolveInterceptEntry() |
32
- * | (!cacheHit or | | - middleware, loaders, UI |
33
- * | no intercept segs) | +----------------------------+
34
- * +----------------------+ |
35
- * | no v
36
- * v yield intercept segments
37
- * +----------------------------+ |
38
- * | Cache hit with intercept | |
39
- * | handleCacheHitIntercept() | |
40
- * | - Extract from cache | |
41
- * | - Re-resolve loaders only | |
42
- * +----------------------------+ |
43
- * | |
44
- * +-------------------------------+
45
- * |
46
- * v
47
- * +---------------------------+
48
- * | Update state: |
49
- * | - interceptSegments |
50
- * | - slots[slotName] |
51
- * +---------------------------+
52
- * |
53
- * v
54
- * next middleware
55
- *
56
- *
57
- * INTERCEPT SCENARIOS
58
- * ===================
59
- *
60
- * 1. Fresh intercept (no cache):
61
- * - Full resolution of intercept entry
62
- * - Resolves middleware, loaders, and component
63
- * - Yields all intercept segments
64
- *
65
- * 2. Cache hit with intercept:
66
- * - Extracts intercept segments from cached data
67
- * - Re-resolves ONLY loaders for fresh data
68
- * - Keeps cached component/layout
69
- *
70
- * 3. No intercept:
71
- * - Passes through unchanged
72
- * - No intercept segments yielded
73
- *
74
- *
75
- * WHAT ARE INTERCEPTS?
76
- * ====================
77
- *
78
- * Intercepts enable "soft navigation" patterns like modals:
79
- *
80
- * 1. User clicks a link (e.g., /photos/123)
81
- * 2. Instead of full navigation, content renders in a modal slot
82
- * 3. Background page remains visible and interactive
83
- * 4. Hard navigation (direct URL) shows full page
84
- *
85
- * Configuration:
86
- * intercept("@modal", "photos", <PhotoModal />, () => [...])
87
- *
88
- * The intercept resolves to segments that render in the named slot
89
- * instead of replacing the main content.
90
- *
91
- *
92
- * SLOT STRUCTURE
93
- * ==============
94
- *
95
- * state.slots[slotName] = {
96
- * active: true,
97
- * segments: [...intercept segments]
98
- * }
99
- *
100
- * The client uses this to:
101
- * 1. Keep current page segments
102
- * 2. Render intercept segments in named <Outlet name="@modal" />
103
- */
104
- import type { ResolvedSegment } from "../../types.js";
105
- import type { MatchContext, MatchPipelineState } from "../match-context.js";
106
- import type { GeneratorMiddleware } from "./cache-lookup.js";
107
- /**
108
- * Creates intercept resolution middleware
109
- *
110
- * If ctx.interceptResult exists and we're not in a cache-hit-with-intercept scenario:
111
- * - Resolves intercept segments
112
- * - Updates state.interceptSegments
113
- * - Updates state.slots with the intercept slot
114
- * - Yields intercept segments after main segments
115
- */
116
- export declare function withInterceptResolution<TEnv>(ctx: MatchContext<TEnv>, state: MatchPipelineState): GeneratorMiddleware<ResolvedSegment>;
@@ -1,94 +0,0 @@
1
- /**
2
- * Segment Resolution Middleware
3
- *
4
- * Resolves route segments when cache misses. Skips if cache hit.
5
- *
6
- * FLOW DIAGRAM
7
- * ============
8
- *
9
- * source (from cache-lookup)
10
- * |
11
- * v
12
- * +---------------------------+
13
- * | Iterate source first! | <-- CRITICAL: Must drain source
14
- * | yield* source | to let cache-lookup run
15
- * +---------------------------+
16
- * |
17
- * v
18
- * +---------------------+
19
- * | state.cacheHit? |──yes──> return (cache already yielded)
20
- * +---------------------+
21
- * | no
22
- * v
23
- * +---------------------+
24
- * | isFullMatch? |
25
- * +---------------------+
26
- * |
27
- * +-----+-----+
28
- * | |
29
- * yes no
30
- * | |
31
- * v v
32
- * resolveAll resolveAllWithRevalidation
33
- * Segments Segments
34
- * | |
35
- * | | (compares with prev state)
36
- * | | (handles null components)
37
- * | |
38
- * +-----------+
39
- * |
40
- * v
41
- * +---------------------------+
42
- * | Update state: |
43
- * | - state.segments |
44
- * | - state.matchedIds |
45
- * +---------------------------+
46
- * |
47
- * v
48
- * yield all resolved segments
49
- * |
50
- * v
51
- * next middleware
52
- *
53
- *
54
- * RESOLUTION MODES
55
- * ================
56
- *
57
- * Full Match (document request):
58
- * - Uses resolveAllSegments()
59
- * - No revalidation logic (nothing to compare against)
60
- * - Simple resolution of all route entries
61
- *
62
- * Partial Match (navigation):
63
- * - Uses resolveAllSegmentsWithRevalidation()
64
- * - Compares current vs previous params/URL
65
- * - Sets component = null for segments client already has
66
- * - Respects custom revalidation rules
67
- *
68
- *
69
- * CRITICAL: SOURCE ITERATION
70
- * ==========================
71
- *
72
- * The middleware MUST iterate the source generator before checking cacheHit:
73
- *
74
- * for await (const segment of source) { yield segment; }
75
- *
76
- * This is because:
77
- * 1. Generator middleware are lazy (don't execute until iterated)
78
- * 2. cache-lookup sets state.cacheHit during iteration
79
- * 3. Without draining source first, cache-lookup never runs
80
- *
81
- * Incorrect pattern:
82
- * if (!state.cacheHit) { ... } // cacheHit still false!
83
- * yield* source; // Too late, already resolved
84
- *
85
- * Correct pattern:
86
- * yield* source; // Let cache-lookup set cacheHit
87
- * if (state.cacheHit) return; // Now we can check
88
- */
89
- import type { ResolvedSegment } from "../../types.js";
90
- import type { EntryData } from "../../server/context.js";
91
- import type { MatchContext, MatchPipelineState } from "../match-context.js";
92
- import type { GeneratorMiddleware } from "./cache-lookup.js";
93
- export declare function treeHasStreaming(entries: EntryData[]): boolean;
94
- export declare function withSegmentResolution<TEnv>(ctx: MatchContext<TEnv>, state: MatchPipelineState): GeneratorMiddleware<ResolvedSegment>;
@@ -1,103 +0,0 @@
1
- /**
2
- * Match Pipelines
3
- *
4
- * Composes async generator middleware into pipelines for route matching.
5
- * The pipeline transforms navigation requests into resolved UI segments.
6
- *
7
- * PIPELINE ARCHITECTURE OVERVIEW
8
- * ==============================
9
- *
10
- * The router uses a pipeline of async generator middleware to process requests.
11
- * Each middleware can:
12
- * 1. Produce segments (yield)
13
- * 2. Transform segments from upstream
14
- * 3. Observe segments without modifying them
15
- * 4. Trigger side effects (caching, background revalidation)
16
- *
17
- * REQUEST FLOW DIAGRAM
18
- * ====================
19
- *
20
- * Navigation Request
21
- * |
22
- * v
23
- * +------------------+
24
- * | Create Context | MatchContext: routes, params, client state
25
- * +------------------+
26
- * |
27
- * v
28
- * +------------------+
29
- * | Select Pipeline | Full (document) vs Partial (navigation)
30
- * +------------------+
31
- * |
32
- * v
33
- * ==================== PIPELINE EXECUTION ====================
34
- * | |
35
- * | empty() ─────> [1] ─────> [2] ─────> [3] ─────> [4] ───>|───> segments
36
- * | | | | | | |
37
- * | | cache | segment |intercept | cache | bg |
38
- * | | lookup | resolve | resolve | store | reval |
39
- * | |
40
- * ============================================================
41
- * |
42
- * v
43
- * +------------------+
44
- * | Collect Result | Filter segments, build MatchResult
45
- * +------------------+
46
- * |
47
- * v
48
- * RSC Stream Response
49
- *
50
- *
51
- * MIDDLEWARE EXECUTION ORDER
52
- * ==========================
53
- *
54
- * Middleware compose in reverse order (rightmost = innermost, runs first):
55
- *
56
- * compose(A, B, C)(source) => source -> C -> B -> A -> output
57
- *
58
- * For the partial match pipeline:
59
- *
60
- * compose(
61
- * withBackgroundRevalidation, // [5] Outermost - triggers SWR
62
- * withCacheStore, // [4] Stores segments in cache
63
- * withInterceptResolution, // [3] Resolves intercept segments
64
- * withSegmentResolution, // [2] Resolves on cache miss
65
- * withCacheLookup // [1] Innermost - checks cache first
66
- * )
67
- *
68
- * Execution flow for cache MISS:
69
- *
70
- * empty() yields nothing
71
- * -> [1] cache-lookup: no cache, passes through
72
- * -> [2] segment-resolution: resolves segments, yields them
73
- * -> [3] intercept-resolution: resolves intercepts, yields them
74
- * -> [4] cache-store: observes all, stores in cache
75
- * -> [5] bg-revalidation: no-op (wasn't stale)
76
- * -> output: all segments
77
- *
78
- * Execution flow for cache HIT (stale):
79
- *
80
- * empty() yields nothing
81
- * -> [1] cache-lookup: HIT! yields cached segments + fresh loaders
82
- * -> [2] segment-resolution: sees cacheHit=true, skips
83
- * -> [3] intercept-resolution: extracts intercepts from cache
84
- * -> [4] cache-store: sees cacheHit=true, skips
85
- * -> [5] bg-revalidation: triggers waitUntil() to revalidate
86
- * -> output: cached segments + fresh loader data
87
- *
88
- *
89
- * PIPELINE VARIANT
90
- * ================
91
- *
92
- * createMatchPartialPipeline handles both full (document) and partial
93
- * (navigation) requests. The middleware steps adapt based on ctx.isFullMatch:
94
- * - cache-lookup/store work for both
95
- * - background-revalidation is a no-op for full matches (no stale state)
96
- * - intercept-resolution is a no-op for full matches (no previous navigation)
97
- */
98
- import type { ResolvedSegment } from "../types.js";
99
- import type { MatchContext, MatchPipelineState } from "./match-context.js";
100
- import type { GeneratorMiddleware } from "./match-middleware/index.js";
101
- export declare function compose<T>(...middleware: GeneratorMiddleware<T>[]): GeneratorMiddleware<T>;
102
- export declare function empty<T>(): AsyncGenerator<T>;
103
- export declare function createMatchPartialPipeline<TEnv>(ctx: MatchContext<TEnv>, state: MatchPipelineState): AsyncGenerator<ResolvedSegment>;
@@ -1,114 +0,0 @@
1
- /**
2
- * Match Result Collection
3
- *
4
- * Collects segments from the pipeline and builds the final MatchResult.
5
- * This is the final stage of the match pipeline.
6
- *
7
- * COLLECTION FLOW
8
- * ===============
9
- *
10
- * Pipeline Generator
11
- * |
12
- * v
13
- * +---------------------------+
14
- * | collectSegments() | Drain async generator
15
- * | for await...push |
16
- * +---------------------------+
17
- * |
18
- * v
19
- * +---------------------------+
20
- * | buildMatchResult() | Transform to MatchResult
21
- * +---------------------------+
22
- * |
23
- * |
24
- * +-----+-----+
25
- * | |
26
- * Full Partial
27
- * Match Match
28
- * | |
29
- * v v
30
- * All segs Filter:
31
- * rendered - null components out
32
- * - keep loaders
33
- * - handle intercepts
34
- * | |
35
- * +-----------+
36
- * |
37
- * v
38
- * MatchResult {
39
- * segments, // Segments to render
40
- * matched, // All segment IDs
41
- * diff, // Changed segment IDs
42
- * params, // Route params
43
- * slots, // Intercept slot data
44
- * serverTiming // Performance metrics
45
- * }
46
- *
47
- *
48
- * FULL VS PARTIAL MATCH
49
- * =====================
50
- *
51
- * Full Match (document request):
52
- * - All segments are rendered
53
- * - allIds = all segment IDs
54
- * - No filtering needed
55
- *
56
- * Partial Match (navigation):
57
- * - Filter out null components (client already has them)
58
- * - BUT keep loader segments (they carry data)
59
- * - Handle intercepts specially (preserve client page + add modal)
60
- *
61
- *
62
- * SEGMENT FILTERING RULES
63
- * =======================
64
- *
65
- * For partial match, segments are filtered:
66
- *
67
- * Keep if:
68
- * - component !== null (needs rendering)
69
- * - type === "loader" (carries data even with null component)
70
- * - client doesn't have the segment (structurally required parent node)
71
- *
72
- * Skip if:
73
- * - component === null AND type !== "loader" AND client has it cached
74
- * - (Revalidation skip — client already has this segment's UI)
75
- *
76
- *
77
- * INTERCEPT HANDLING
78
- * ==================
79
- *
80
- * When intercepting (modal over current page):
81
- *
82
- * allIds = client segments + intercept segments
83
- *
84
- * This tells the client:
85
- * 1. Keep your current segments
86
- * 2. Add these intercept segments to the modal slot
87
- *
88
- * The page stays visible, modal renders on top.
89
- *
90
- *
91
- * MATCHRESULT STRUCTURE
92
- * =====================
93
- *
94
- * {
95
- * segments: ResolvedSegment[] // Segments to serialize and render
96
- * matched: string[] // All segment IDs for this route
97
- * diff: string[] // Which segments changed (for client diffing)
98
- * params: Record<string,string> // Route parameters
99
- * slots?: Record<string, {...}> // Named slot data for intercepts
100
- * serverTiming?: string // Server-Timing header value
101
- * routeMiddleware?: [...] // Route middleware results
102
- * }
103
- *
104
- * The client uses this to:
105
- * 1. Render segments[] to the UI tree
106
- * 2. Update internal state with matched[]
107
- * 3. Diff against previous state with diff[]
108
- * 4. Render slot content if slots present
109
- */
110
- import type { MatchResult, ResolvedSegment } from "../types.js";
111
- import type { MatchContext, MatchPipelineState } from "./match-context.js";
112
- export declare function collectSegments(generator: AsyncGenerator<ResolvedSegment>): Promise<ResolvedSegment[]>;
113
- export declare function buildMatchResult<TEnv>(allSegments: ResolvedSegment[], ctx: MatchContext<TEnv>, state: MatchPipelineState): MatchResult;
114
- export declare function collectMatchResult<TEnv>(pipeline: AsyncGenerator<ResolvedSegment>, ctx: MatchContext<TEnv>, state: MatchPipelineState): Promise<MatchResult>;
@@ -1,6 +0,0 @@
1
- import type { MetricsStore } from "../server/context";
2
- export declare function createMetricsStore(debugPerformance: boolean, requestStart?: number): MetricsStore | undefined;
3
- export declare function appendMetric(metricsStore: MetricsStore | undefined, label: string, start: number, duration: number, depth?: number, desc?: string): void;
4
- export declare function buildMetricsTiming(method: string, pathname: string, metricsStore: MetricsStore | undefined): string | undefined;
5
- export declare function logMetrics(method: string, pathname: string, metricsStore: MetricsStore): void;
6
- export declare function generateServerTiming(metricsStore: MetricsStore): string;