@rangojs/router 0.0.0-experimental.0b82333f → 0.0.0-experimental.0e02cd4e

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 (943) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +138 -50
  3. package/dist/vite/index.js +839 -429
  4. package/package.json +2 -2
  5. package/skills/cache-guide/SKILL.md +32 -0
  6. package/skills/caching/SKILL.md +45 -4
  7. package/skills/links/SKILL.md +3 -1
  8. package/skills/loader/SKILL.md +53 -43
  9. package/skills/middleware/SKILL.md +2 -0
  10. package/skills/parallel/SKILL.md +126 -0
  11. package/skills/prerender/SKILL.md +110 -68
  12. package/skills/route/SKILL.md +31 -0
  13. package/skills/router-setup/SKILL.md +87 -2
  14. package/skills/typesafety/SKILL.md +10 -0
  15. package/src/__internal.ts +1 -1
  16. package/src/browser/app-version.ts +14 -0
  17. package/src/browser/event-controller.ts +5 -0
  18. package/src/browser/navigation-bridge.ts +17 -6
  19. package/src/browser/navigation-client.ts +132 -61
  20. package/src/browser/navigation-store.ts +43 -8
  21. package/src/browser/navigation-transaction.ts +11 -9
  22. package/src/browser/partial-update.ts +76 -13
  23. package/src/browser/prefetch/cache.ts +78 -11
  24. package/src/browser/prefetch/fetch.ts +76 -27
  25. package/src/browser/prefetch/queue.ts +92 -20
  26. package/src/browser/prefetch/resource-ready.ts +77 -0
  27. package/src/browser/react/Link.tsx +67 -9
  28. package/src/browser/react/NavigationProvider.tsx +40 -4
  29. package/src/browser/react/context.ts +7 -2
  30. package/src/browser/react/use-handle.ts +9 -58
  31. package/src/browser/react/use-router.ts +21 -8
  32. package/src/browser/rsc-router.tsx +134 -59
  33. package/src/browser/scroll-restoration.ts +30 -15
  34. package/src/browser/segment-reconciler.ts +6 -1
  35. package/src/browser/server-action-bridge.ts +8 -6
  36. package/src/browser/types.ts +36 -5
  37. package/src/build/generate-manifest.ts +6 -6
  38. package/src/build/generate-route-types.ts +3 -0
  39. package/src/build/route-types/include-resolution.ts +8 -1
  40. package/src/build/route-types/router-processing.ts +223 -74
  41. package/src/build/route-types/scan-filter.ts +8 -1
  42. package/src/cache/cache-runtime.ts +15 -11
  43. package/src/cache/cache-scope.ts +48 -7
  44. package/src/cache/cf/cf-cache-store.ts +453 -11
  45. package/src/cache/cf/index.ts +5 -1
  46. package/src/cache/document-cache.ts +17 -7
  47. package/src/cache/index.ts +1 -0
  48. package/src/cache/taint.ts +55 -0
  49. package/src/client.tsx +2 -56
  50. package/src/context-var.ts +72 -2
  51. package/src/debug.ts +2 -2
  52. package/src/handle.ts +40 -0
  53. package/src/index.rsc.ts +3 -1
  54. package/src/index.ts +12 -0
  55. package/src/prerender/store.ts +5 -4
  56. package/src/prerender.ts +138 -77
  57. package/src/reverse.ts +22 -1
  58. package/src/route-definition/dsl-helpers.ts +73 -25
  59. package/src/route-definition/helpers-types.ts +10 -6
  60. package/src/route-definition/index.ts +3 -0
  61. package/src/route-definition/redirect.ts +11 -3
  62. package/src/route-definition/resolve-handler-use.ts +149 -0
  63. package/src/route-map-builder.ts +7 -1
  64. package/src/route-types.ts +11 -0
  65. package/src/router/content-negotiation.ts +100 -1
  66. package/src/router/find-match.ts +4 -2
  67. package/src/router/handler-context.ts +79 -23
  68. package/src/router/intercept-resolution.ts +11 -4
  69. package/src/router/lazy-includes.ts +4 -1
  70. package/src/router/loader-resolution.ts +156 -21
  71. package/src/router/logging.ts +5 -2
  72. package/src/router/manifest.ts +9 -3
  73. package/src/router/match-api.ts +124 -189
  74. package/src/router/match-middleware/background-revalidation.ts +30 -2
  75. package/src/router/match-middleware/cache-lookup.ts +92 -16
  76. package/src/router/match-middleware/cache-store.ts +53 -10
  77. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  78. package/src/router/match-middleware/segment-resolution.ts +61 -5
  79. package/src/router/match-result.ts +104 -10
  80. package/src/router/metrics.ts +6 -1
  81. package/src/router/middleware-types.ts +6 -8
  82. package/src/router/middleware.ts +4 -6
  83. package/src/router/navigation-snapshot.ts +182 -0
  84. package/src/router/prerender-match.ts +110 -10
  85. package/src/router/preview-match.ts +30 -102
  86. package/src/router/request-classification.ts +310 -0
  87. package/src/router/route-snapshot.ts +245 -0
  88. package/src/router/router-context.ts +6 -1
  89. package/src/router/router-interfaces.ts +36 -4
  90. package/src/router/router-options.ts +37 -11
  91. package/src/router/segment-resolution/fresh.ts +198 -20
  92. package/src/router/segment-resolution/helpers.ts +29 -24
  93. package/src/router/segment-resolution/loader-cache.ts +1 -0
  94. package/src/router/segment-resolution/revalidation.ts +437 -297
  95. package/src/router/segment-wrappers.ts +2 -0
  96. package/src/router/types.ts +1 -0
  97. package/src/router.ts +59 -6
  98. package/src/rsc/handler.ts +472 -372
  99. package/src/rsc/loader-fetch.ts +23 -3
  100. package/src/rsc/manifest-init.ts +5 -1
  101. package/src/rsc/progressive-enhancement.ts +14 -2
  102. package/src/rsc/rsc-rendering.ts +10 -1
  103. package/src/rsc/server-action.ts +8 -0
  104. package/src/rsc/ssr-setup.ts +2 -2
  105. package/src/rsc/types.ts +9 -1
  106. package/src/segment-system.tsx +140 -4
  107. package/src/server/context.ts +140 -14
  108. package/src/server/handle-store.ts +19 -0
  109. package/src/server/loader-registry.ts +9 -8
  110. package/src/server/request-context.ts +185 -19
  111. package/src/ssr/index.tsx +4 -0
  112. package/src/static-handler.ts +18 -6
  113. package/src/types/cache-types.ts +4 -4
  114. package/src/types/handler-context.ts +137 -33
  115. package/src/types/loader-types.ts +36 -9
  116. package/src/types/route-entry.ts +8 -1
  117. package/src/types/segments.ts +3 -0
  118. package/src/urls/path-helper-types.ts +9 -2
  119. package/src/urls/path-helper.ts +48 -13
  120. package/src/urls/pattern-types.ts +12 -0
  121. package/src/urls/response-types.ts +16 -6
  122. package/src/use-loader.tsx +77 -5
  123. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  124. package/src/vite/discovery/discover-routers.ts +5 -1
  125. package/src/vite/discovery/prerender-collection.ts +128 -74
  126. package/src/vite/discovery/state.ts +13 -6
  127. package/src/vite/index.ts +4 -0
  128. package/src/vite/plugin-types.ts +51 -79
  129. package/src/vite/plugins/expose-action-id.ts +1 -3
  130. package/src/vite/plugins/expose-id-utils.ts +12 -0
  131. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  132. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  133. package/src/vite/plugins/performance-tracks.ts +88 -0
  134. package/src/vite/plugins/refresh-cmd.ts +88 -26
  135. package/src/vite/plugins/version-plugin.ts +13 -1
  136. package/src/vite/rango.ts +163 -211
  137. package/src/vite/router-discovery.ts +178 -45
  138. package/src/vite/utils/banner.ts +3 -3
  139. package/src/vite/utils/prerender-utils.ts +18 -0
  140. package/src/vite/utils/shared-utils.ts +3 -2
  141. package/dist/__internal.d.ts +0 -83
  142. package/dist/__internal.d.ts.map +0 -1
  143. package/dist/__internal.js +0 -19
  144. package/dist/__internal.js.map +0 -1
  145. package/dist/__mocks__/version.d.ts +0 -7
  146. package/dist/__mocks__/version.d.ts.map +0 -1
  147. package/dist/__mocks__/version.js +0 -7
  148. package/dist/__mocks__/version.js.map +0 -1
  149. package/dist/__tests__/client-href.test.d.ts +0 -2
  150. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  151. package/dist/__tests__/client-href.test.js +0 -74
  152. package/dist/__tests__/client-href.test.js.map +0 -1
  153. package/dist/__tests__/component-utils.test.d.ts +0 -2
  154. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  155. package/dist/__tests__/component-utils.test.js +0 -51
  156. package/dist/__tests__/component-utils.test.js.map +0 -1
  157. package/dist/__tests__/event-controller.test.d.ts +0 -2
  158. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  159. package/dist/__tests__/event-controller.test.js +0 -538
  160. package/dist/__tests__/event-controller.test.js.map +0 -1
  161. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  162. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  163. package/dist/__tests__/helpers/route-tree.js +0 -374
  164. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  165. package/dist/__tests__/match-result.test.d.ts +0 -2
  166. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  167. package/dist/__tests__/match-result.test.js +0 -154
  168. package/dist/__tests__/match-result.test.js.map +0 -1
  169. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  170. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  171. package/dist/__tests__/navigation-store.test.js +0 -440
  172. package/dist/__tests__/navigation-store.test.js.map +0 -1
  173. package/dist/__tests__/partial-update.test.d.ts +0 -2
  174. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  175. package/dist/__tests__/partial-update.test.js +0 -1009
  176. package/dist/__tests__/partial-update.test.js.map +0 -1
  177. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  178. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  179. package/dist/__tests__/reverse-types.test.js +0 -656
  180. package/dist/__tests__/reverse-types.test.js.map +0 -1
  181. package/dist/__tests__/route-definition.test.d.ts +0 -2
  182. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  183. package/dist/__tests__/route-definition.test.js +0 -55
  184. package/dist/__tests__/route-definition.test.js.map +0 -1
  185. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  186. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  187. package/dist/__tests__/router-helpers.test.js +0 -377
  188. package/dist/__tests__/router-helpers.test.js.map +0 -1
  189. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  190. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  191. package/dist/__tests__/router-integration-2.test.js +0 -426
  192. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  193. package/dist/__tests__/router-integration.test.d.ts +0 -2
  194. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  195. package/dist/__tests__/router-integration.test.js +0 -1051
  196. package/dist/__tests__/router-integration.test.js.map +0 -1
  197. package/dist/__tests__/search-params.test.d.ts +0 -5
  198. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  199. package/dist/__tests__/search-params.test.js +0 -306
  200. package/dist/__tests__/search-params.test.js.map +0 -1
  201. package/dist/__tests__/segment-system.test.d.ts +0 -2
  202. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  203. package/dist/__tests__/segment-system.test.js +0 -627
  204. package/dist/__tests__/segment-system.test.js.map +0 -1
  205. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  206. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  207. package/dist/__tests__/static-handler-types.test.js +0 -63
  208. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  209. package/dist/__tests__/urls.test.d.ts +0 -2
  210. package/dist/__tests__/urls.test.d.ts.map +0 -1
  211. package/dist/__tests__/urls.test.js +0 -421
  212. package/dist/__tests__/urls.test.js.map +0 -1
  213. package/dist/__tests__/use-mount.test.d.ts +0 -2
  214. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  215. package/dist/__tests__/use-mount.test.js +0 -35
  216. package/dist/__tests__/use-mount.test.js.map +0 -1
  217. package/dist/bin/rango.d.ts +0 -2
  218. package/dist/bin/rango.d.ts.map +0 -1
  219. package/dist/bin/rango.js.map +0 -1
  220. package/dist/browser/event-controller.d.ts +0 -191
  221. package/dist/browser/event-controller.d.ts.map +0 -1
  222. package/dist/browser/event-controller.js +0 -559
  223. package/dist/browser/event-controller.js.map +0 -1
  224. package/dist/browser/index.d.ts +0 -2
  225. package/dist/browser/index.d.ts.map +0 -1
  226. package/dist/browser/index.js +0 -14
  227. package/dist/browser/index.js.map +0 -1
  228. package/dist/browser/link-interceptor.d.ts +0 -38
  229. package/dist/browser/link-interceptor.d.ts.map +0 -1
  230. package/dist/browser/link-interceptor.js +0 -99
  231. package/dist/browser/link-interceptor.js.map +0 -1
  232. package/dist/browser/logging.d.ts +0 -10
  233. package/dist/browser/logging.d.ts.map +0 -1
  234. package/dist/browser/logging.js +0 -29
  235. package/dist/browser/logging.js.map +0 -1
  236. package/dist/browser/lru-cache.d.ts +0 -17
  237. package/dist/browser/lru-cache.d.ts.map +0 -1
  238. package/dist/browser/lru-cache.js +0 -50
  239. package/dist/browser/lru-cache.js.map +0 -1
  240. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  241. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  242. package/dist/browser/merge-segment-loaders.js +0 -102
  243. package/dist/browser/merge-segment-loaders.js.map +0 -1
  244. package/dist/browser/navigation-bridge.d.ts +0 -102
  245. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  246. package/dist/browser/navigation-bridge.js +0 -708
  247. package/dist/browser/navigation-bridge.js.map +0 -1
  248. package/dist/browser/navigation-client.d.ts +0 -25
  249. package/dist/browser/navigation-client.d.ts.map +0 -1
  250. package/dist/browser/navigation-client.js +0 -157
  251. package/dist/browser/navigation-client.js.map +0 -1
  252. package/dist/browser/navigation-store.d.ts +0 -101
  253. package/dist/browser/navigation-store.d.ts.map +0 -1
  254. package/dist/browser/navigation-store.js +0 -625
  255. package/dist/browser/navigation-store.js.map +0 -1
  256. package/dist/browser/partial-update.d.ts +0 -75
  257. package/dist/browser/partial-update.d.ts.map +0 -1
  258. package/dist/browser/partial-update.js +0 -426
  259. package/dist/browser/partial-update.js.map +0 -1
  260. package/dist/browser/react/Link.d.ts +0 -86
  261. package/dist/browser/react/Link.d.ts.map +0 -1
  262. package/dist/browser/react/Link.js +0 -128
  263. package/dist/browser/react/Link.js.map +0 -1
  264. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  265. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  266. package/dist/browser/react/NavigationProvider.js +0 -216
  267. package/dist/browser/react/NavigationProvider.js.map +0 -1
  268. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  269. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  270. package/dist/browser/react/ScrollRestoration.js +0 -57
  271. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  272. package/dist/browser/react/context.d.ts +0 -46
  273. package/dist/browser/react/context.d.ts.map +0 -1
  274. package/dist/browser/react/context.js +0 -10
  275. package/dist/browser/react/context.js.map +0 -1
  276. package/dist/browser/react/index.d.ts +0 -11
  277. package/dist/browser/react/index.d.ts.map +0 -1
  278. package/dist/browser/react/index.js +0 -22
  279. package/dist/browser/react/index.js.map +0 -1
  280. package/dist/browser/react/location-state-shared.d.ts +0 -63
  281. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  282. package/dist/browser/react/location-state-shared.js +0 -81
  283. package/dist/browser/react/location-state-shared.js.map +0 -1
  284. package/dist/browser/react/location-state.d.ts +0 -23
  285. package/dist/browser/react/location-state.d.ts.map +0 -1
  286. package/dist/browser/react/location-state.js +0 -29
  287. package/dist/browser/react/location-state.js.map +0 -1
  288. package/dist/browser/react/mount-context.d.ts +0 -24
  289. package/dist/browser/react/mount-context.d.ts.map +0 -1
  290. package/dist/browser/react/mount-context.js +0 -24
  291. package/dist/browser/react/mount-context.js.map +0 -1
  292. package/dist/browser/react/use-action.d.ts +0 -64
  293. package/dist/browser/react/use-action.d.ts.map +0 -1
  294. package/dist/browser/react/use-action.js +0 -134
  295. package/dist/browser/react/use-action.js.map +0 -1
  296. package/dist/browser/react/use-client-cache.d.ts +0 -41
  297. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  298. package/dist/browser/react/use-client-cache.js +0 -39
  299. package/dist/browser/react/use-client-cache.js.map +0 -1
  300. package/dist/browser/react/use-handle.d.ts +0 -31
  301. package/dist/browser/react/use-handle.d.ts.map +0 -1
  302. package/dist/browser/react/use-handle.js +0 -144
  303. package/dist/browser/react/use-handle.js.map +0 -1
  304. package/dist/browser/react/use-href.d.ts +0 -33
  305. package/dist/browser/react/use-href.d.ts.map +0 -1
  306. package/dist/browser/react/use-href.js +0 -39
  307. package/dist/browser/react/use-href.js.map +0 -1
  308. package/dist/browser/react/use-link-status.d.ts +0 -37
  309. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  310. package/dist/browser/react/use-link-status.js +0 -99
  311. package/dist/browser/react/use-link-status.js.map +0 -1
  312. package/dist/browser/react/use-mount.d.ts +0 -25
  313. package/dist/browser/react/use-mount.d.ts.map +0 -1
  314. package/dist/browser/react/use-mount.js +0 -30
  315. package/dist/browser/react/use-mount.js.map +0 -1
  316. package/dist/browser/react/use-navigation.d.ts +0 -27
  317. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  318. package/dist/browser/react/use-navigation.js +0 -87
  319. package/dist/browser/react/use-navigation.js.map +0 -1
  320. package/dist/browser/react/use-segments.d.ts +0 -38
  321. package/dist/browser/react/use-segments.d.ts.map +0 -1
  322. package/dist/browser/react/use-segments.js +0 -130
  323. package/dist/browser/react/use-segments.js.map +0 -1
  324. package/dist/browser/request-controller.d.ts +0 -26
  325. package/dist/browser/request-controller.d.ts.map +0 -1
  326. package/dist/browser/request-controller.js +0 -147
  327. package/dist/browser/request-controller.js.map +0 -1
  328. package/dist/browser/rsc-router.d.ts +0 -129
  329. package/dist/browser/rsc-router.d.ts.map +0 -1
  330. package/dist/browser/rsc-router.js +0 -195
  331. package/dist/browser/rsc-router.js.map +0 -1
  332. package/dist/browser/scroll-restoration.d.ts +0 -93
  333. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  334. package/dist/browser/scroll-restoration.js +0 -321
  335. package/dist/browser/scroll-restoration.js.map +0 -1
  336. package/dist/browser/segment-structure-assert.d.ts +0 -17
  337. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  338. package/dist/browser/segment-structure-assert.js +0 -59
  339. package/dist/browser/segment-structure-assert.js.map +0 -1
  340. package/dist/browser/server-action-bridge.d.ts +0 -26
  341. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  342. package/dist/browser/server-action-bridge.js +0 -668
  343. package/dist/browser/server-action-bridge.js.map +0 -1
  344. package/dist/browser/shallow.d.ts +0 -12
  345. package/dist/browser/shallow.d.ts.map +0 -1
  346. package/dist/browser/shallow.js +0 -34
  347. package/dist/browser/shallow.js.map +0 -1
  348. package/dist/browser/types.d.ts +0 -369
  349. package/dist/browser/types.d.ts.map +0 -1
  350. package/dist/browser/types.js +0 -2
  351. package/dist/browser/types.js.map +0 -1
  352. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  353. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  354. package/dist/build/__tests__/generate-cli.test.js +0 -237
  355. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  356. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  357. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  358. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  359. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  360. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  361. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  362. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  363. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  364. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  365. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  366. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  367. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  368. package/dist/build/generate-manifest.d.ts +0 -81
  369. package/dist/build/generate-manifest.d.ts.map +0 -1
  370. package/dist/build/generate-manifest.js +0 -276
  371. package/dist/build/generate-manifest.js.map +0 -1
  372. package/dist/build/generate-route-types.d.ts +0 -115
  373. package/dist/build/generate-route-types.d.ts.map +0 -1
  374. package/dist/build/generate-route-types.js +0 -740
  375. package/dist/build/generate-route-types.js.map +0 -1
  376. package/dist/build/index.d.ts +0 -21
  377. package/dist/build/index.d.ts.map +0 -1
  378. package/dist/build/index.js +0 -21
  379. package/dist/build/index.js.map +0 -1
  380. package/dist/build/route-trie.d.ts +0 -71
  381. package/dist/build/route-trie.d.ts.map +0 -1
  382. package/dist/build/route-trie.js +0 -175
  383. package/dist/build/route-trie.js.map +0 -1
  384. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  385. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  386. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  387. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  388. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  389. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  390. package/dist/cache/__tests__/document-cache.test.js +0 -345
  391. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  392. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  393. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  394. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  395. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  396. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  397. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  398. package/dist/cache/__tests__/memory-store.test.js +0 -367
  399. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  400. package/dist/cache/cache-scope.d.ts +0 -102
  401. package/dist/cache/cache-scope.d.ts.map +0 -1
  402. package/dist/cache/cache-scope.js +0 -440
  403. package/dist/cache/cache-scope.js.map +0 -1
  404. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  405. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  406. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  407. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  408. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  409. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  410. package/dist/cache/cf/cf-cache-store.js +0 -242
  411. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  412. package/dist/cache/cf/index.d.ts +0 -14
  413. package/dist/cache/cf/index.d.ts.map +0 -1
  414. package/dist/cache/cf/index.js +0 -17
  415. package/dist/cache/cf/index.js.map +0 -1
  416. package/dist/cache/document-cache.d.ts +0 -64
  417. package/dist/cache/document-cache.d.ts.map +0 -1
  418. package/dist/cache/document-cache.js +0 -228
  419. package/dist/cache/document-cache.js.map +0 -1
  420. package/dist/cache/index.d.ts +0 -19
  421. package/dist/cache/index.d.ts.map +0 -1
  422. package/dist/cache/index.js +0 -21
  423. package/dist/cache/index.js.map +0 -1
  424. package/dist/cache/memory-segment-store.d.ts +0 -110
  425. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  426. package/dist/cache/memory-segment-store.js +0 -117
  427. package/dist/cache/memory-segment-store.js.map +0 -1
  428. package/dist/cache/memory-store.d.ts +0 -41
  429. package/dist/cache/memory-store.d.ts.map +0 -1
  430. package/dist/cache/memory-store.js +0 -191
  431. package/dist/cache/memory-store.js.map +0 -1
  432. package/dist/cache/types.d.ts +0 -317
  433. package/dist/cache/types.d.ts.map +0 -1
  434. package/dist/cache/types.js +0 -12
  435. package/dist/cache/types.js.map +0 -1
  436. package/dist/client.d.ts +0 -248
  437. package/dist/client.d.ts.map +0 -1
  438. package/dist/client.js +0 -367
  439. package/dist/client.js.map +0 -1
  440. package/dist/client.rsc.d.ts +0 -26
  441. package/dist/client.rsc.d.ts.map +0 -1
  442. package/dist/client.rsc.js +0 -46
  443. package/dist/client.rsc.js.map +0 -1
  444. package/dist/component-utils.d.ts +0 -36
  445. package/dist/component-utils.d.ts.map +0 -1
  446. package/dist/component-utils.js +0 -61
  447. package/dist/component-utils.js.map +0 -1
  448. package/dist/components/DefaultDocument.d.ts +0 -13
  449. package/dist/components/DefaultDocument.d.ts.map +0 -1
  450. package/dist/components/DefaultDocument.js +0 -15
  451. package/dist/components/DefaultDocument.js.map +0 -1
  452. package/dist/debug.d.ts +0 -58
  453. package/dist/debug.d.ts.map +0 -1
  454. package/dist/debug.js +0 -157
  455. package/dist/debug.js.map +0 -1
  456. package/dist/default-error-boundary.d.ts +0 -11
  457. package/dist/default-error-boundary.d.ts.map +0 -1
  458. package/dist/default-error-boundary.js +0 -45
  459. package/dist/default-error-boundary.js.map +0 -1
  460. package/dist/deps/browser.d.ts +0 -2
  461. package/dist/deps/browser.d.ts.map +0 -1
  462. package/dist/deps/browser.js +0 -3
  463. package/dist/deps/browser.js.map +0 -1
  464. package/dist/deps/html-stream-client.d.ts +0 -2
  465. package/dist/deps/html-stream-client.d.ts.map +0 -1
  466. package/dist/deps/html-stream-client.js +0 -3
  467. package/dist/deps/html-stream-client.js.map +0 -1
  468. package/dist/deps/html-stream-server.d.ts +0 -2
  469. package/dist/deps/html-stream-server.d.ts.map +0 -1
  470. package/dist/deps/html-stream-server.js +0 -3
  471. package/dist/deps/html-stream-server.js.map +0 -1
  472. package/dist/deps/rsc.d.ts +0 -2
  473. package/dist/deps/rsc.d.ts.map +0 -1
  474. package/dist/deps/rsc.js +0 -4
  475. package/dist/deps/rsc.js.map +0 -1
  476. package/dist/deps/ssr.d.ts +0 -2
  477. package/dist/deps/ssr.d.ts.map +0 -1
  478. package/dist/deps/ssr.js +0 -3
  479. package/dist/deps/ssr.js.map +0 -1
  480. package/dist/errors.d.ts +0 -174
  481. package/dist/errors.d.ts.map +0 -1
  482. package/dist/errors.js +0 -241
  483. package/dist/errors.js.map +0 -1
  484. package/dist/handle.d.ts +0 -78
  485. package/dist/handle.d.ts.map +0 -1
  486. package/dist/handle.js +0 -82
  487. package/dist/handle.js.map +0 -1
  488. package/dist/handles/MetaTags.d.ts +0 -14
  489. package/dist/handles/MetaTags.d.ts.map +0 -1
  490. package/dist/handles/MetaTags.js +0 -136
  491. package/dist/handles/MetaTags.js.map +0 -1
  492. package/dist/handles/index.d.ts +0 -6
  493. package/dist/handles/index.d.ts.map +0 -1
  494. package/dist/handles/index.js +0 -6
  495. package/dist/handles/index.js.map +0 -1
  496. package/dist/handles/meta.d.ts +0 -39
  497. package/dist/handles/meta.d.ts.map +0 -1
  498. package/dist/handles/meta.js +0 -202
  499. package/dist/handles/meta.js.map +0 -1
  500. package/dist/host/__tests__/errors.test.d.ts +0 -2
  501. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  502. package/dist/host/__tests__/errors.test.js +0 -76
  503. package/dist/host/__tests__/errors.test.js.map +0 -1
  504. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  505. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  506. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  507. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  508. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  509. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  510. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  511. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  512. package/dist/host/__tests__/router.test.d.ts +0 -2
  513. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  514. package/dist/host/__tests__/router.test.js +0 -241
  515. package/dist/host/__tests__/router.test.js.map +0 -1
  516. package/dist/host/__tests__/testing.test.d.ts +0 -2
  517. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  518. package/dist/host/__tests__/testing.test.js +0 -64
  519. package/dist/host/__tests__/testing.test.js.map +0 -1
  520. package/dist/host/__tests__/utils.test.d.ts +0 -2
  521. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  522. package/dist/host/__tests__/utils.test.js +0 -29
  523. package/dist/host/__tests__/utils.test.js.map +0 -1
  524. package/dist/host/cookie-handler.d.ts +0 -34
  525. package/dist/host/cookie-handler.d.ts.map +0 -1
  526. package/dist/host/cookie-handler.js +0 -124
  527. package/dist/host/cookie-handler.js.map +0 -1
  528. package/dist/host/errors.d.ts +0 -56
  529. package/dist/host/errors.d.ts.map +0 -1
  530. package/dist/host/errors.js +0 -79
  531. package/dist/host/errors.js.map +0 -1
  532. package/dist/host/index.d.ts +0 -29
  533. package/dist/host/index.d.ts.map +0 -1
  534. package/dist/host/index.js +0 -32
  535. package/dist/host/index.js.map +0 -1
  536. package/dist/host/pattern-matcher.d.ts +0 -36
  537. package/dist/host/pattern-matcher.d.ts.map +0 -1
  538. package/dist/host/pattern-matcher.js +0 -172
  539. package/dist/host/pattern-matcher.js.map +0 -1
  540. package/dist/host/router.d.ts +0 -26
  541. package/dist/host/router.d.ts.map +0 -1
  542. package/dist/host/router.js +0 -218
  543. package/dist/host/router.js.map +0 -1
  544. package/dist/host/testing.d.ts +0 -36
  545. package/dist/host/testing.d.ts.map +0 -1
  546. package/dist/host/testing.js +0 -55
  547. package/dist/host/testing.js.map +0 -1
  548. package/dist/host/types.d.ts +0 -115
  549. package/dist/host/types.d.ts.map +0 -1
  550. package/dist/host/types.js +0 -7
  551. package/dist/host/types.js.map +0 -1
  552. package/dist/host/utils.d.ts +0 -21
  553. package/dist/host/utils.d.ts.map +0 -1
  554. package/dist/host/utils.js +0 -23
  555. package/dist/host/utils.js.map +0 -1
  556. package/dist/href-client.d.ts +0 -131
  557. package/dist/href-client.d.ts.map +0 -1
  558. package/dist/href-client.js +0 -64
  559. package/dist/href-client.js.map +0 -1
  560. package/dist/href-context.d.ts +0 -29
  561. package/dist/href-context.d.ts.map +0 -1
  562. package/dist/href-context.js +0 -21
  563. package/dist/href-context.js.map +0 -1
  564. package/dist/index.d.ts +0 -73
  565. package/dist/index.d.ts.map +0 -1
  566. package/dist/index.js +0 -91
  567. package/dist/index.js.map +0 -1
  568. package/dist/index.rsc.d.ts +0 -32
  569. package/dist/index.rsc.d.ts.map +0 -1
  570. package/dist/index.rsc.js +0 -40
  571. package/dist/index.rsc.js.map +0 -1
  572. package/dist/internal-debug.d.ts +0 -2
  573. package/dist/internal-debug.d.ts.map +0 -1
  574. package/dist/internal-debug.js +0 -5
  575. package/dist/internal-debug.js.map +0 -1
  576. package/dist/loader.d.ts +0 -14
  577. package/dist/loader.d.ts.map +0 -1
  578. package/dist/loader.js +0 -20
  579. package/dist/loader.js.map +0 -1
  580. package/dist/loader.rsc.d.ts +0 -19
  581. package/dist/loader.rsc.d.ts.map +0 -1
  582. package/dist/loader.rsc.js +0 -99
  583. package/dist/loader.rsc.js.map +0 -1
  584. package/dist/network-error-thrower.d.ts +0 -17
  585. package/dist/network-error-thrower.d.ts.map +0 -1
  586. package/dist/network-error-thrower.js +0 -14
  587. package/dist/network-error-thrower.js.map +0 -1
  588. package/dist/outlet-context.d.ts +0 -13
  589. package/dist/outlet-context.d.ts.map +0 -1
  590. package/dist/outlet-context.js +0 -3
  591. package/dist/outlet-context.js.map +0 -1
  592. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  593. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  594. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  595. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  596. package/dist/prerender/param-hash.d.ts +0 -16
  597. package/dist/prerender/param-hash.d.ts.map +0 -1
  598. package/dist/prerender/param-hash.js +0 -36
  599. package/dist/prerender/param-hash.js.map +0 -1
  600. package/dist/prerender/store.d.ts +0 -38
  601. package/dist/prerender/store.d.ts.map +0 -1
  602. package/dist/prerender/store.js +0 -61
  603. package/dist/prerender/store.js.map +0 -1
  604. package/dist/prerender.d.ts +0 -66
  605. package/dist/prerender.d.ts.map +0 -1
  606. package/dist/prerender.js +0 -57
  607. package/dist/prerender.js.map +0 -1
  608. package/dist/reverse.d.ts +0 -196
  609. package/dist/reverse.d.ts.map +0 -1
  610. package/dist/reverse.js +0 -78
  611. package/dist/reverse.js.map +0 -1
  612. package/dist/root-error-boundary.d.ts +0 -33
  613. package/dist/root-error-boundary.d.ts.map +0 -1
  614. package/dist/root-error-boundary.js +0 -165
  615. package/dist/root-error-boundary.js.map +0 -1
  616. package/dist/route-content-wrapper.d.ts +0 -46
  617. package/dist/route-content-wrapper.d.ts.map +0 -1
  618. package/dist/route-content-wrapper.js +0 -77
  619. package/dist/route-content-wrapper.js.map +0 -1
  620. package/dist/route-definition.d.ts +0 -421
  621. package/dist/route-definition.d.ts.map +0 -1
  622. package/dist/route-definition.js +0 -868
  623. package/dist/route-definition.js.map +0 -1
  624. package/dist/route-map-builder.d.ts +0 -155
  625. package/dist/route-map-builder.d.ts.map +0 -1
  626. package/dist/route-map-builder.js +0 -237
  627. package/dist/route-map-builder.js.map +0 -1
  628. package/dist/route-types.d.ts +0 -165
  629. package/dist/route-types.d.ts.map +0 -1
  630. package/dist/route-types.js +0 -7
  631. package/dist/route-types.js.map +0 -1
  632. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  633. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  634. package/dist/router/__tests__/handler-context.test.js +0 -65
  635. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  636. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  637. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  638. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  639. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  640. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  641. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  642. package/dist/router/__tests__/match-context.test.js +0 -92
  643. package/dist/router/__tests__/match-context.test.js.map +0 -1
  644. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  645. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  646. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  647. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  648. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  649. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  650. package/dist/router/__tests__/match-result.test.js +0 -457
  651. package/dist/router/__tests__/match-result.test.js.map +0 -1
  652. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  653. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  654. package/dist/router/__tests__/on-error.test.js +0 -678
  655. package/dist/router/__tests__/on-error.test.js.map +0 -1
  656. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  657. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  658. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  659. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  660. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  661. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  662. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  663. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  664. package/dist/router/error-handling.d.ts +0 -77
  665. package/dist/router/error-handling.d.ts.map +0 -1
  666. package/dist/router/error-handling.js +0 -202
  667. package/dist/router/error-handling.js.map +0 -1
  668. package/dist/router/handler-context.d.ts +0 -20
  669. package/dist/router/handler-context.d.ts.map +0 -1
  670. package/dist/router/handler-context.js +0 -198
  671. package/dist/router/handler-context.js.map +0 -1
  672. package/dist/router/intercept-resolution.d.ts +0 -66
  673. package/dist/router/intercept-resolution.d.ts.map +0 -1
  674. package/dist/router/intercept-resolution.js +0 -246
  675. package/dist/router/intercept-resolution.js.map +0 -1
  676. package/dist/router/loader-resolution.d.ts +0 -64
  677. package/dist/router/loader-resolution.d.ts.map +0 -1
  678. package/dist/router/loader-resolution.js +0 -284
  679. package/dist/router/loader-resolution.js.map +0 -1
  680. package/dist/router/logging.d.ts +0 -15
  681. package/dist/router/logging.d.ts.map +0 -1
  682. package/dist/router/logging.js +0 -99
  683. package/dist/router/logging.js.map +0 -1
  684. package/dist/router/manifest.d.ts +0 -22
  685. package/dist/router/manifest.d.ts.map +0 -1
  686. package/dist/router/manifest.js +0 -181
  687. package/dist/router/manifest.js.map +0 -1
  688. package/dist/router/match-api.d.ts +0 -35
  689. package/dist/router/match-api.d.ts.map +0 -1
  690. package/dist/router/match-api.js +0 -406
  691. package/dist/router/match-api.js.map +0 -1
  692. package/dist/router/match-context.d.ts +0 -206
  693. package/dist/router/match-context.d.ts.map +0 -1
  694. package/dist/router/match-context.js +0 -17
  695. package/dist/router/match-context.js.map +0 -1
  696. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  697. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  698. package/dist/router/match-middleware/background-revalidation.js +0 -75
  699. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  700. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  701. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  702. package/dist/router/match-middleware/cache-lookup.js +0 -257
  703. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  704. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  705. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  706. package/dist/router/match-middleware/cache-store.js +0 -108
  707. package/dist/router/match-middleware/cache-store.js.map +0 -1
  708. package/dist/router/match-middleware/index.d.ts +0 -81
  709. package/dist/router/match-middleware/index.d.ts.map +0 -1
  710. package/dist/router/match-middleware/index.js +0 -80
  711. package/dist/router/match-middleware/index.js.map +0 -1
  712. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  713. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  714. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  715. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  716. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  717. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  718. package/dist/router/match-middleware/segment-resolution.js +0 -53
  719. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  720. package/dist/router/match-pipelines.d.ts +0 -147
  721. package/dist/router/match-pipelines.d.ts.map +0 -1
  722. package/dist/router/match-pipelines.js +0 -82
  723. package/dist/router/match-pipelines.js.map +0 -1
  724. package/dist/router/match-result.d.ts +0 -126
  725. package/dist/router/match-result.d.ts.map +0 -1
  726. package/dist/router/match-result.js +0 -93
  727. package/dist/router/match-result.js.map +0 -1
  728. package/dist/router/metrics.d.ts +0 -20
  729. package/dist/router/metrics.d.ts.map +0 -1
  730. package/dist/router/metrics.js +0 -47
  731. package/dist/router/metrics.js.map +0 -1
  732. package/dist/router/middleware.d.ts +0 -249
  733. package/dist/router/middleware.d.ts.map +0 -1
  734. package/dist/router/middleware.js +0 -434
  735. package/dist/router/middleware.js.map +0 -1
  736. package/dist/router/middleware.test.d.ts +0 -2
  737. package/dist/router/middleware.test.d.ts.map +0 -1
  738. package/dist/router/middleware.test.js +0 -816
  739. package/dist/router/middleware.test.js.map +0 -1
  740. package/dist/router/pattern-matching.d.ts +0 -149
  741. package/dist/router/pattern-matching.d.ts.map +0 -1
  742. package/dist/router/pattern-matching.js +0 -349
  743. package/dist/router/pattern-matching.js.map +0 -1
  744. package/dist/router/revalidation.d.ts +0 -44
  745. package/dist/router/revalidation.d.ts.map +0 -1
  746. package/dist/router/revalidation.js +0 -147
  747. package/dist/router/revalidation.js.map +0 -1
  748. package/dist/router/router-context.d.ts +0 -135
  749. package/dist/router/router-context.d.ts.map +0 -1
  750. package/dist/router/router-context.js +0 -36
  751. package/dist/router/router-context.js.map +0 -1
  752. package/dist/router/segment-resolution.d.ts +0 -127
  753. package/dist/router/segment-resolution.d.ts.map +0 -1
  754. package/dist/router/segment-resolution.js +0 -919
  755. package/dist/router/segment-resolution.js.map +0 -1
  756. package/dist/router/trie-matching.d.ts +0 -40
  757. package/dist/router/trie-matching.d.ts.map +0 -1
  758. package/dist/router/trie-matching.js +0 -127
  759. package/dist/router/trie-matching.js.map +0 -1
  760. package/dist/router/types.d.ts +0 -136
  761. package/dist/router/types.d.ts.map +0 -1
  762. package/dist/router/types.js +0 -7
  763. package/dist/router/types.js.map +0 -1
  764. package/dist/router.d.ts +0 -753
  765. package/dist/router.d.ts.map +0 -1
  766. package/dist/router.gen.d.ts +0 -6
  767. package/dist/router.gen.d.ts.map +0 -1
  768. package/dist/router.gen.js +0 -6
  769. package/dist/router.gen.js.map +0 -1
  770. package/dist/router.js +0 -1304
  771. package/dist/router.js.map +0 -1
  772. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  773. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  774. package/dist/rsc/__tests__/helpers.test.js +0 -140
  775. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  776. package/dist/rsc/handler.d.ts +0 -45
  777. package/dist/rsc/handler.d.ts.map +0 -1
  778. package/dist/rsc/handler.js +0 -1172
  779. package/dist/rsc/handler.js.map +0 -1
  780. package/dist/rsc/helpers.d.ts +0 -16
  781. package/dist/rsc/helpers.d.ts.map +0 -1
  782. package/dist/rsc/helpers.js +0 -55
  783. package/dist/rsc/helpers.js.map +0 -1
  784. package/dist/rsc/index.d.ts +0 -22
  785. package/dist/rsc/index.d.ts.map +0 -1
  786. package/dist/rsc/index.js +0 -23
  787. package/dist/rsc/index.js.map +0 -1
  788. package/dist/rsc/nonce.d.ts +0 -9
  789. package/dist/rsc/nonce.d.ts.map +0 -1
  790. package/dist/rsc/nonce.js +0 -18
  791. package/dist/rsc/nonce.js.map +0 -1
  792. package/dist/rsc/types.d.ts +0 -206
  793. package/dist/rsc/types.d.ts.map +0 -1
  794. package/dist/rsc/types.js +0 -8
  795. package/dist/rsc/types.js.map +0 -1
  796. package/dist/search-params.d.ts +0 -103
  797. package/dist/search-params.d.ts.map +0 -1
  798. package/dist/search-params.js +0 -74
  799. package/dist/search-params.js.map +0 -1
  800. package/dist/segment-system.d.ts +0 -75
  801. package/dist/segment-system.d.ts.map +0 -1
  802. package/dist/segment-system.js +0 -336
  803. package/dist/segment-system.js.map +0 -1
  804. package/dist/server/context.d.ts +0 -245
  805. package/dist/server/context.d.ts.map +0 -1
  806. package/dist/server/context.js +0 -197
  807. package/dist/server/context.js.map +0 -1
  808. package/dist/server/fetchable-loader-store.d.ts +0 -18
  809. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  810. package/dist/server/fetchable-loader-store.js +0 -18
  811. package/dist/server/fetchable-loader-store.js.map +0 -1
  812. package/dist/server/handle-store.d.ts +0 -85
  813. package/dist/server/handle-store.d.ts.map +0 -1
  814. package/dist/server/handle-store.js +0 -142
  815. package/dist/server/handle-store.js.map +0 -1
  816. package/dist/server/loader-registry.d.ts +0 -55
  817. package/dist/server/loader-registry.d.ts.map +0 -1
  818. package/dist/server/loader-registry.js +0 -132
  819. package/dist/server/loader-registry.js.map +0 -1
  820. package/dist/server/request-context.d.ts +0 -226
  821. package/dist/server/request-context.d.ts.map +0 -1
  822. package/dist/server/request-context.js +0 -290
  823. package/dist/server/request-context.js.map +0 -1
  824. package/dist/server/root-layout.d.ts +0 -4
  825. package/dist/server/root-layout.d.ts.map +0 -1
  826. package/dist/server/root-layout.js +0 -5
  827. package/dist/server/root-layout.js.map +0 -1
  828. package/dist/server.d.ts +0 -15
  829. package/dist/server.d.ts.map +0 -1
  830. package/dist/server.js +0 -20
  831. package/dist/server.js.map +0 -1
  832. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  833. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  834. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  835. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  836. package/dist/ssr/index.d.ts +0 -98
  837. package/dist/ssr/index.d.ts.map +0 -1
  838. package/dist/ssr/index.js +0 -158
  839. package/dist/ssr/index.js.map +0 -1
  840. package/dist/static-handler.d.ts +0 -50
  841. package/dist/static-handler.d.ts.map +0 -1
  842. package/dist/static-handler.gen.d.ts +0 -5
  843. package/dist/static-handler.gen.d.ts.map +0 -1
  844. package/dist/static-handler.gen.js +0 -5
  845. package/dist/static-handler.gen.js.map +0 -1
  846. package/dist/static-handler.js +0 -29
  847. package/dist/static-handler.js.map +0 -1
  848. package/dist/theme/ThemeProvider.d.ts +0 -20
  849. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  850. package/dist/theme/ThemeProvider.js +0 -240
  851. package/dist/theme/ThemeProvider.js.map +0 -1
  852. package/dist/theme/ThemeScript.d.ts +0 -48
  853. package/dist/theme/ThemeScript.d.ts.map +0 -1
  854. package/dist/theme/ThemeScript.js +0 -13
  855. package/dist/theme/ThemeScript.js.map +0 -1
  856. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  857. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  858. package/dist/theme/__tests__/theme.test.js +0 -103
  859. package/dist/theme/__tests__/theme.test.js.map +0 -1
  860. package/dist/theme/constants.d.ts +0 -29
  861. package/dist/theme/constants.d.ts.map +0 -1
  862. package/dist/theme/constants.js +0 -48
  863. package/dist/theme/constants.js.map +0 -1
  864. package/dist/theme/index.d.ts +0 -31
  865. package/dist/theme/index.d.ts.map +0 -1
  866. package/dist/theme/index.js +0 -36
  867. package/dist/theme/index.js.map +0 -1
  868. package/dist/theme/theme-context.d.ts +0 -40
  869. package/dist/theme/theme-context.d.ts.map +0 -1
  870. package/dist/theme/theme-context.js +0 -60
  871. package/dist/theme/theme-context.js.map +0 -1
  872. package/dist/theme/theme-script.d.ts +0 -27
  873. package/dist/theme/theme-script.d.ts.map +0 -1
  874. package/dist/theme/theme-script.js +0 -147
  875. package/dist/theme/theme-script.js.map +0 -1
  876. package/dist/theme/types.d.ts +0 -163
  877. package/dist/theme/types.d.ts.map +0 -1
  878. package/dist/theme/types.js +0 -11
  879. package/dist/theme/types.js.map +0 -1
  880. package/dist/theme/use-theme.d.ts +0 -12
  881. package/dist/theme/use-theme.d.ts.map +0 -1
  882. package/dist/theme/use-theme.js +0 -40
  883. package/dist/theme/use-theme.js.map +0 -1
  884. package/dist/types.d.ts +0 -1479
  885. package/dist/types.d.ts.map +0 -1
  886. package/dist/types.js +0 -10
  887. package/dist/types.js.map +0 -1
  888. package/dist/urls.d.ts +0 -441
  889. package/dist/urls.d.ts.map +0 -1
  890. package/dist/urls.gen.d.ts +0 -8
  891. package/dist/urls.gen.d.ts.map +0 -1
  892. package/dist/urls.gen.js +0 -8
  893. package/dist/urls.gen.js.map +0 -1
  894. package/dist/urls.js +0 -443
  895. package/dist/urls.js.map +0 -1
  896. package/dist/use-loader.d.ts +0 -127
  897. package/dist/use-loader.d.ts.map +0 -1
  898. package/dist/use-loader.js +0 -237
  899. package/dist/use-loader.js.map +0 -1
  900. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  901. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  902. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  903. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  904. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  905. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  906. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  907. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  908. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  909. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  910. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  911. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  912. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  913. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  914. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  915. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  916. package/dist/vite/ast-handler-extract.d.ts +0 -49
  917. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  918. package/dist/vite/ast-handler-extract.js +0 -249
  919. package/dist/vite/ast-handler-extract.js.map +0 -1
  920. package/dist/vite/expose-action-id.d.ts +0 -19
  921. package/dist/vite/expose-action-id.d.ts.map +0 -1
  922. package/dist/vite/expose-action-id.js +0 -250
  923. package/dist/vite/expose-action-id.js.map +0 -1
  924. package/dist/vite/expose-id-utils.d.ts +0 -69
  925. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  926. package/dist/vite/expose-id-utils.js +0 -289
  927. package/dist/vite/expose-id-utils.js.map +0 -1
  928. package/dist/vite/expose-internal-ids.d.ts +0 -22
  929. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  930. package/dist/vite/expose-internal-ids.js +0 -886
  931. package/dist/vite/expose-internal-ids.js.map +0 -1
  932. package/dist/vite/index.d.ts +0 -149
  933. package/dist/vite/index.d.ts.map +0 -1
  934. package/dist/vite/index.js.map +0 -1
  935. package/dist/vite/index.named-routes.gen.ts +0 -103
  936. package/dist/vite/package-resolution.d.ts +0 -43
  937. package/dist/vite/package-resolution.d.ts.map +0 -1
  938. package/dist/vite/package-resolution.js +0 -112
  939. package/dist/vite/package-resolution.js.map +0 -1
  940. package/dist/vite/virtual-entries.d.ts +0 -25
  941. package/dist/vite/virtual-entries.d.ts.map +0 -1
  942. package/dist/vite/virtual-entries.js +0 -110
  943. package/dist/vite/virtual-entries.js.map +0 -1
@@ -1,17 +0,0 @@
1
- /**
2
- * Create initial pipeline state
3
- */
4
- export function createPipelineState() {
5
- return {
6
- cacheHit: false,
7
- segments: [],
8
- matchedIds: [],
9
- interceptSegments: [],
10
- slots: {},
11
- };
12
- }
13
- // Note: createMatchContext() will be implemented in Step J10 when we wire everything together.
14
- // It requires access to RouterContext (findMatch, loadManifest, etc.) which are closure
15
- // functions from createRouter(). The implementation will live in router.ts initially
16
- // and call getRouterContext() to access these dependencies.
17
- //# sourceMappingURL=match-context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-context.js","sourceRoot":"","sources":["../../src/router/match-context.ts"],"names":[],"mappings":"AAsOA;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,EAAE;QACd,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC;AAmBD,+FAA+F;AAC/F,wFAAwF;AACxF,qFAAqF;AACrF,4DAA4D"}
@@ -1,127 +0,0 @@
1
- /**
2
- * Background Revalidation Middleware
3
- *
4
- * Implements SWR (stale-while-revalidate) pattern.
5
- * Triggers background refresh when cached data is stale.
6
- *
7
- * FLOW DIAGRAM
8
- * ============
9
- *
10
- * source (from cache-store)
11
- * |
12
- * v
13
- * +---------------------------+
14
- * | yield* source | Pure pass-through
15
- * | (no modifications) |
16
- * +---------------------------+
17
- * |
18
- * v
19
- * +---------------------+
20
- * | Should revalidate? |
21
- * | - shouldRevalidate |──no───> return
22
- * | - cacheHit |
23
- * | - cacheScope |
24
- * +---------------------+
25
- * | yes
26
- * v
27
- * +---------------------------+
28
- * | requestCtx.waitUntil() | Non-blocking background task
29
- * +---------------------------+
30
- * |
31
- * v (async, doesn't block response)
32
- * +---------------------------+
33
- * | Create fresh handleStore | Isolate from response stream
34
- * +---------------------------+
35
- * |
36
- * v
37
- * +---------------------+
38
- * | isFullMatch? |
39
- * +---------------------+
40
- * |
41
- * +-----+-----+
42
- * | |
43
- * yes no
44
- * | |
45
- * v v
46
- * resolveAll resolveWithRevalidation
47
- * Segments + resolveIntercepts
48
- * | |
49
- * +-----------+
50
- * |
51
- * v
52
- * +---------------------------+
53
- * | cacheScope.cacheRoute() | Update cache with fresh data
54
- * +---------------------------+
55
- *
56
- *
57
- * SWR PATTERN
58
- * ===========
59
- *
60
- * Stale-While-Revalidate provides fast responses with eventual consistency:
61
- *
62
- * Timeline:
63
- * ---------
64
- * T0: Request arrives
65
- * T1: Cache lookup finds stale entry
66
- * T2: Return stale data immediately (fast!)
67
- * T3: Response sent to client
68
- * T4: waitUntil() triggers background revalidation
69
- * T5: Fresh data resolved
70
- * T6: Cache updated with fresh data
71
- * T7: Next request gets fresh data from cache
72
- *
73
- * Benefits:
74
- * - Fast initial response (cached data)
75
- * - Eventually consistent (background refresh)
76
- * - No blocking on revalidation
77
- *
78
- *
79
- * WHEN IS CACHE STALE?
80
- * ====================
81
- *
82
- * The cache-lookup middleware sets state.shouldRevalidate based on:
83
- * - TTL (time-to-live) expiration
84
- * - Cache entry metadata
85
- * - Configured staleness rules
86
- *
87
- * This middleware only acts on the flag, it doesn't determine staleness.
88
- *
89
- *
90
- * ISOLATION FROM RESPONSE
91
- * =======================
92
- *
93
- * The background revalidation creates a fresh handleStore:
94
- *
95
- * requestCtx._handleStore = createHandleStore();
96
- *
97
- * This prevents background handle.push() calls from:
98
- * - Polluting the current response stream
99
- * - Causing duplicate data in the client
100
- * - Creating race conditions
101
- *
102
- *
103
- * FULL VS PARTIAL REVALIDATION
104
- * ============================
105
- *
106
- * Full Match (document request):
107
- * - Simple resolveAllSegments()
108
- * - No need to compare with previous state
109
- *
110
- * Partial Match (navigation):
111
- * - resolveAllSegmentsWithRevalidation()
112
- * - Also resolves intercept segments if applicable
113
- * - More complex but handles all scenarios
114
- */
115
- import type { ResolvedSegment } from "../../types.js";
116
- import type { MatchContext, MatchPipelineState } from "../match-context.js";
117
- import type { GeneratorMiddleware } from "./cache-lookup.js";
118
- /**
119
- * Creates background revalidation middleware
120
- *
121
- * If cache was stale (state.shouldRevalidate === true):
122
- * - Triggers background resolution via waitUntil
123
- * - Observes segments but doesn't modify them
124
- * - Updates cache with fresh segments after revalidation completes
125
- */
126
- export declare function withBackgroundRevalidation<TEnv>(ctx: MatchContext<TEnv>, state: MatchPipelineState): GeneratorMiddleware<ResolvedSegment>;
127
- //# sourceMappingURL=background-revalidation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"background-revalidation.d.ts","sourceRoot":"","sources":["../../../src/router/match-middleware/background-revalidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiHG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAC7C,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,EACvB,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,CAAC,eAAe,CAAC,CA+GtC"}
@@ -1,75 +0,0 @@
1
- import { getRouterContext } from "../router-context.js";
2
- import { debugLog, debugWarn } from "../logging.js";
3
- /**
4
- * Creates background revalidation middleware
5
- *
6
- * If cache was stale (state.shouldRevalidate === true):
7
- * - Triggers background resolution via waitUntil
8
- * - Observes segments but doesn't modify them
9
- * - Updates cache with fresh segments after revalidation completes
10
- */
11
- export function withBackgroundRevalidation(ctx, state) {
12
- return async function* (source) {
13
- // Pass through all segments unchanged
14
- for await (const segment of source) {
15
- yield segment;
16
- }
17
- // Only trigger background revalidation if:
18
- // 1. Cache was hit and stale
19
- // 2. Cache scope exists
20
- if (!state.shouldRevalidate || !state.cacheHit || !ctx.cacheScope) {
21
- return;
22
- }
23
- const { getRequestContext, createHandleStore, resolveAllSegmentsWithRevalidation, resolveAllSegments, resolveInterceptEntry, } = getRouterContext();
24
- const requestCtx = getRequestContext();
25
- const cacheScope = ctx.cacheScope;
26
- requestCtx?.waitUntil(async () => {
27
- debugLog("backgroundRevalidation", "revalidating stale route", {
28
- pathname: ctx.pathname,
29
- fullMatch: ctx.isFullMatch,
30
- });
31
- try {
32
- // Create a fresh handleStore for background revalidation
33
- // to avoid polluting the current response's handle stream
34
- if (requestCtx) {
35
- requestCtx._handleStore = createHandleStore();
36
- }
37
- let freshSegments;
38
- if (ctx.isFullMatch) {
39
- // Full match (document request) - simple resolution
40
- freshSegments = await resolveAllSegments(ctx.entries, ctx.routeKey, ctx.matched.params, ctx.handlerContext, ctx.loaderPromises);
41
- }
42
- else {
43
- // Partial match (navigation) - resolution with revalidation
44
- const freshResult = await resolveAllSegmentsWithRevalidation(ctx.entries, ctx.routeKey, ctx.matched.params, ctx.handlerContext, ctx.clientSegmentSet, ctx.prevParams, ctx.request, ctx.prevUrl, ctx.url, ctx.loaderPromises, ctx.actionContext, ctx.interceptResult, ctx.localRouteName, ctx.pathname);
45
- freshSegments = freshResult.segments;
46
- // For intercept revalidation, also resolve fresh intercept segments
47
- if (ctx.interceptResult) {
48
- const freshInterceptSegments = await resolveInterceptEntry(ctx.interceptResult.intercept, ctx.interceptResult.entry, ctx.matched.params, ctx.handlerContext, true, {
49
- clientSegmentIds: ctx.clientSegmentSet,
50
- prevParams: ctx.prevParams,
51
- request: ctx.request,
52
- prevUrl: ctx.prevUrl,
53
- nextUrl: ctx.url,
54
- routeKey: ctx.routeKey,
55
- actionContext: ctx.actionContext,
56
- stale: false,
57
- });
58
- freshSegments = [...freshSegments, ...freshInterceptSegments];
59
- }
60
- }
61
- await cacheScope.cacheRoute(ctx.pathname, ctx.matched.params, freshSegments, ctx.isIntercept);
62
- debugLog("backgroundRevalidation", "revalidation complete", {
63
- pathname: ctx.pathname,
64
- });
65
- }
66
- catch (error) {
67
- debugWarn("backgroundRevalidation", "revalidation failed", {
68
- pathname: ctx.pathname,
69
- error: String(error),
70
- });
71
- }
72
- });
73
- };
74
- }
75
- //# sourceMappingURL=background-revalidation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"background-revalidation.js","sourceRoot":"","sources":["../../../src/router/match-middleware/background-revalidation.ts"],"names":[],"mappings":"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"}
@@ -1,112 +0,0 @@
1
- /**
2
- * Cache Lookup Middleware
3
- *
4
- * First middleware in the pipeline. Checks cache before segment resolution.
5
- *
6
- * FLOW DIAGRAM
7
- * ============
8
- *
9
- * source (empty)
10
- * |
11
- * v
12
- * +---------------------+
13
- * | Is action request? |──yes──> yield* source (pass through)
14
- * +---------------------+
15
- * | no
16
- * v
17
- * +---------------------+
18
- * | Cache enabled? |──no───> yield* source (pass through)
19
- * +---------------------+
20
- * | yes
21
- * v
22
- * +---------------------+
23
- * | Lookup cache |
24
- * | (pathname, params) |
25
- * +---------------------+
26
- * |
27
- * +-----+-----+
28
- * | |
29
- * miss hit
30
- * | |
31
- * v v
32
- * yield* Set state.cacheHit = true
33
- * source Set state.shouldRevalidate
34
- * | |
35
- * | v
36
- * | +---------------------------+
37
- * | | For each cached segment: |
38
- * | | - Apply revalidation |
39
- * | | - Set component = null |
40
- * | | if client has it |
41
- * | +---------------------------+
42
- * | |
43
- * | v
44
- * | +---------------------------+
45
- * | | Resolve fresh loaders | <-- Loaders are NEVER cached
46
- * | | (always fresh data) |
47
- * | +---------------------------+
48
- * | |
49
- * | v
50
- * | yield cached segments
51
- * | yield fresh loader segments
52
- * | |
53
- * +-----------+
54
- * |
55
- * v
56
- * next middleware
57
- *
58
- *
59
- * CACHE BEHAVIOR
60
- * ==============
61
- *
62
- * Cache HIT:
63
- * - state.cacheHit = true signals downstream middleware to skip
64
- * - Cached segments have their components nullified if client already has them
65
- * - Loaders are always re-resolved for fresh data
66
- * - state.shouldRevalidate triggers background SWR if cache was stale
67
- *
68
- * Cache MISS:
69
- * - Passes through to segment-resolution middleware
70
- * - No segments yielded from this middleware
71
- *
72
- * Loaders:
73
- * - NEVER cached by design
74
- * - Always resolved fresh on every request
75
- * - Ensures data freshness even with cached UI components
76
- *
77
- *
78
- * REVALIDATION RULES
79
- * ==================
80
- *
81
- * Each cached segment is evaluated against its revalidation rules:
82
- *
83
- * 1. No rules defined -> use default (skip if client has segment)
84
- * 2. Rules return false -> skip re-render (nullify component)
85
- * 3. Rules return true -> re-render (keep component)
86
- *
87
- * Revalidation context includes:
88
- * - Previous/next URL and params
89
- * - Request object
90
- * - Action context (if POST)
91
- */
92
- import type { ResolvedSegment } from "../../types.js";
93
- import type { MatchContext, MatchPipelineState } from "../match-context.js";
94
- /**
95
- * Async generator middleware type
96
- */
97
- export type GeneratorMiddleware<T> = (source: AsyncGenerator<T>) => AsyncGenerator<T>;
98
- /**
99
- * Creates cache lookup middleware
100
- *
101
- * Checks cache for segments. If cache hit:
102
- * - Applies revalidation to determine which segments need re-rendering
103
- * - Resolves loaders fresh (loaders are NOT cached by design)
104
- * - Sets state.cacheHit = true
105
- * - Sets state.shouldRevalidate if SWR needed
106
- * - Yields cached segments + fresh loader segments
107
- *
108
- * If cache miss:
109
- * - Passes through to next middleware
110
- */
111
- export declare function withCacheLookup<TEnv>(ctx: MatchContext<TEnv>, state: MatchPipelineState): GeneratorMiddleware<ResolvedSegment>;
112
- //# sourceMappingURL=cache-lookup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-lookup.d.ts","sourceRoot":"","sources":["../../../src/router/match-middleware/cache-lookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA6H5E;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CACnC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,KACtB,cAAc,CAAC,CAAC,CAAC,CAAC;AAEvB;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAClC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,EACvB,KAAK,EAAE,kBAAkB,GACxB,mBAAmB,CAAC,eAAe,CAAC,CAqMtC"}
@@ -1,257 +0,0 @@
1
- import { getRouterContext } from "../router-context.js";
2
- // Lazily initialized prerender store singleton and dynamically imported deps.
3
- // Dynamic imports prevent pulling in @vitejs/plugin-rsc/rsc virtual module at
4
- // top-level, which breaks vitest (only URLs with file:, data:, node: schemes).
5
- let prerenderStoreInstance;
6
- let _deserializeSegments;
7
- let _hashParams;
8
- let _getRequestContext;
9
- async function ensurePrerenderDeps() {
10
- if (!_deserializeSegments) {
11
- const [cache, paramHash, reqCtx, store] = await Promise.all([
12
- import("../../cache/cache-scope.js"),
13
- import("../../prerender/param-hash.js"),
14
- import("../../server/request-context.js"),
15
- import("../../prerender/store.js"),
16
- ]);
17
- _deserializeSegments = cache.deserializeSegments;
18
- _hashParams = paramHash.hashParams;
19
- _getRequestContext = reqCtx.getRequestContext;
20
- if (prerenderStoreInstance === undefined) {
21
- prerenderStoreInstance = store.createPrerenderStore();
22
- }
23
- }
24
- }
25
- /**
26
- * Shared yield logic for prerender and static handler store entries.
27
- * Deserializes segments, replays handle data, yields segments with partial
28
- * navigation nullification, and resolves fresh loaders.
29
- */
30
- async function* yieldFromStore(entry, ctx, state, pipelineStart) {
31
- const { resolveLoadersOnlyWithRevalidation, resolveLoadersOnly, } = getRouterContext();
32
- if (!_deserializeSegments || !_hashParams || !_getRequestContext) {
33
- throw new Error("yieldFromStore called before ensurePrerenderDeps");
34
- }
35
- const segments = await _deserializeSegments(entry.segments);
36
- // Replay handle data (same as runtime cache hit path)
37
- const handleStore = _getRequestContext()?._handleStore;
38
- if (handleStore) {
39
- for (const [segId, segHandles] of Object.entries(entry.handles)) {
40
- if (Object.keys(segHandles).length > 0) {
41
- handleStore.replaySegmentData(segId, segHandles);
42
- }
43
- }
44
- }
45
- state.cacheHit = true;
46
- state.cachedSegments = segments;
47
- state.cachedMatchedIds = segments.map((s) => s.id);
48
- // For partial navigation, nullify components the client already has
49
- // so parent layouts stay live (client keeps its existing versions).
50
- // When params changed (e.g., different guide slug), the segments have
51
- // different content, so we must NOT nullify.
52
- const paramsChanged = !ctx.isFullMatch &&
53
- JSON.stringify(ctx.matched.params) !== JSON.stringify(ctx.prevParams);
54
- for (const segment of segments) {
55
- if (!ctx.isFullMatch && !paramsChanged && ctx.clientSegmentSet.has(segment.id)) {
56
- segment.component = null;
57
- segment.loading = undefined;
58
- }
59
- yield segment;
60
- }
61
- // Resolve loaders fresh (loaders are never pre-rendered/cached)
62
- if (ctx.isFullMatch) {
63
- if (resolveLoadersOnly) {
64
- const loaderSegments = await ctx.Store.run(() => resolveLoadersOnly(ctx.entries, ctx.handlerContext));
65
- state.matchedIds = state.cachedMatchedIds;
66
- for (const segment of loaderSegments) {
67
- yield segment;
68
- }
69
- }
70
- else {
71
- state.matchedIds = state.cachedMatchedIds;
72
- }
73
- }
74
- else {
75
- if (resolveLoadersOnlyWithRevalidation) {
76
- const loaderResult = await ctx.Store.run(() => resolveLoadersOnlyWithRevalidation(ctx.entries, ctx.handlerContext, ctx.clientSegmentSet, ctx.prevParams, ctx.request, ctx.prevUrl, ctx.url, ctx.routeKey, ctx.actionContext));
77
- state.matchedIds = [
78
- ...state.cachedMatchedIds,
79
- ...loaderResult.matchedIds,
80
- ];
81
- for (const segment of loaderResult.segments) {
82
- yield segment;
83
- }
84
- }
85
- else {
86
- state.matchedIds = state.cachedMatchedIds;
87
- }
88
- }
89
- const ms = ctx.metricsStore;
90
- if (ms) {
91
- ms.metrics.push({ label: "pipeline:cache-lookup", duration: performance.now() - pipelineStart, startTime: pipelineStart - ms.requestStart });
92
- }
93
- }
94
- /**
95
- * Creates cache lookup middleware
96
- *
97
- * Checks cache for segments. If cache hit:
98
- * - Applies revalidation to determine which segments need re-rendering
99
- * - Resolves loaders fresh (loaders are NOT cached by design)
100
- * - Sets state.cacheHit = true
101
- * - Sets state.shouldRevalidate if SWR needed
102
- * - Yields cached segments + fresh loader segments
103
- *
104
- * If cache miss:
105
- * - Passes through to next middleware
106
- */
107
- export function withCacheLookup(ctx, state) {
108
- return async function* (source) {
109
- const pipelineStart = performance.now();
110
- const ms = ctx.metricsStore;
111
- const { evaluateRevalidation, buildEntryRevalidateMap, resolveLoadersOnlyWithRevalidation, resolveLoadersOnly, } = getRouterContext();
112
- // Prerender lookup: check build-time cached data before runtime cache.
113
- // Prerender data is available regardless of runtime cache configuration.
114
- if (!ctx.isAction && ctx.matched.pr) {
115
- await ensurePrerenderDeps();
116
- if (prerenderStoreInstance) {
117
- const paramHash = _hashParams(ctx.matched.params);
118
- const entry = await prerenderStoreInstance.get(ctx.matched.routeKey, paramHash, { pathname: ctx.pathname });
119
- if (entry) {
120
- yield* yieldFromStore(entry, ctx, state, pipelineStart);
121
- return;
122
- }
123
- }
124
- }
125
- // Dev-mode static handler interception for non-Node.js runtimes.
126
- // __PRERENDER_DEV_URL is set by the Vite plugin when the RSC environment
127
- // lacks a Node.js module runner (e.g. workerd, Deno workers). In those
128
- // runtimes, handlers that depend on Node APIs like node:fs can't run
129
- // in-process. We redirect them to the /__rsc_prerender endpoint which
130
- // resolves segments in a Node.js temp server, same as prerender routes.
131
- // In Node.js dev mode this variable is undefined -- handlers run
132
- // in-process where Node APIs work, so no interception is needed.
133
- if (!ctx.isAction && !ctx.matched.pr && globalThis.__PRERENDER_DEV_URL) {
134
- const hasStatic = ctx.entries.some((e) => (e.type === "layout" || e.type === "route" || e.type === "parallel") && e.isStaticPrerender);
135
- if (hasStatic) {
136
- await ensurePrerenderDeps();
137
- if (prerenderStoreInstance) {
138
- const paramHash = _hashParams(ctx.matched.params);
139
- const entry = await prerenderStoreInstance.get(ctx.matched.routeKey, paramHash, { pathname: ctx.pathname });
140
- if (entry) {
141
- yield* yieldFromStore(entry, ctx, state, pipelineStart);
142
- return;
143
- }
144
- }
145
- }
146
- }
147
- // Skip cache during actions
148
- if (ctx.isAction || !ctx.cacheScope?.enabled) {
149
- // Cache miss - pass through to segment resolution
150
- yield* source;
151
- if (ms) {
152
- ms.metrics.push({ label: "pipeline:cache-lookup", duration: performance.now() - pipelineStart, startTime: pipelineStart - ms.requestStart });
153
- }
154
- return;
155
- }
156
- // Lookup cache
157
- const cacheResult = await ctx.cacheScope.lookupRoute(ctx.pathname, ctx.matched.params, ctx.isIntercept);
158
- if (!cacheResult) {
159
- // Cache miss - pass through to segment resolution
160
- yield* source;
161
- if (ms) {
162
- ms.metrics.push({ label: "pipeline:cache-lookup", duration: performance.now() - pipelineStart, startTime: pipelineStart - ms.requestStart });
163
- }
164
- return;
165
- }
166
- // Cache HIT
167
- state.cacheHit = true;
168
- state.shouldRevalidate = cacheResult.shouldRevalidate;
169
- state.cachedSegments = cacheResult.segments;
170
- state.cachedMatchedIds = cacheResult.segments.map((s) => s.id);
171
- // Apply revalidation to cached segments
172
- const entryRevalidateMap = buildEntryRevalidateMap?.(ctx.entries);
173
- for (const segment of cacheResult.segments) {
174
- // Skip segments client doesn't have - they need their component
175
- if (!ctx.clientSegmentSet.has(segment.id)) {
176
- yield segment;
177
- continue;
178
- }
179
- // Skip intercept segments - they're handled separately
180
- if (segment.namespace?.startsWith("intercept:")) {
181
- yield segment;
182
- continue;
183
- }
184
- // Look up revalidation rules for this segment
185
- const entryInfo = entryRevalidateMap?.get(segment.id);
186
- if (!entryInfo || entryInfo.revalidate.length === 0) {
187
- // No revalidation rules, use default behavior (skip if client has)
188
- segment.component = null;
189
- segment.loading = undefined;
190
- yield segment;
191
- continue;
192
- }
193
- // Evaluate revalidation rules
194
- const shouldRevalidate = await evaluateRevalidation({
195
- segment,
196
- prevParams: ctx.prevParams,
197
- getPrevSegment: null,
198
- request: ctx.request,
199
- prevUrl: ctx.prevUrl,
200
- nextUrl: ctx.url,
201
- revalidations: entryInfo.revalidate.map((fn, i) => ({
202
- name: `revalidate${i}`,
203
- fn,
204
- })),
205
- routeKey: ctx.routeKey,
206
- context: ctx.handlerContext,
207
- actionContext: ctx.actionContext,
208
- });
209
- if (!shouldRevalidate) {
210
- // Client has it, no revalidation needed
211
- segment.component = null;
212
- segment.loading = undefined;
213
- }
214
- yield segment;
215
- }
216
- // Resolve loaders fresh (loaders are NOT cached by default)
217
- // This ensures fresh data even on cache hit
218
- const Store = ctx.Store;
219
- if (ctx.isFullMatch) {
220
- // Full match (document request) - simple loader resolution without revalidation
221
- if (resolveLoadersOnly) {
222
- const loaderSegments = await Store.run(() => resolveLoadersOnly(ctx.entries, ctx.handlerContext));
223
- // Update state - full match doesn't track matchedIds separately
224
- state.matchedIds = state.cachedMatchedIds;
225
- // Yield fresh loader segments
226
- for (const segment of loaderSegments) {
227
- yield segment;
228
- }
229
- }
230
- else {
231
- state.matchedIds = state.cachedMatchedIds;
232
- }
233
- }
234
- else {
235
- // Partial match (navigation) - loader resolution with revalidation
236
- if (resolveLoadersOnlyWithRevalidation) {
237
- const loaderResult = await Store.run(() => resolveLoadersOnlyWithRevalidation(ctx.entries, ctx.handlerContext, ctx.clientSegmentSet, ctx.prevParams, ctx.request, ctx.prevUrl, ctx.url, ctx.routeKey, ctx.actionContext));
238
- // Update state with fresh loader matchedIds
239
- state.matchedIds = [
240
- ...state.cachedMatchedIds,
241
- ...loaderResult.matchedIds,
242
- ];
243
- // Yield fresh loader segments
244
- for (const segment of loaderResult.segments) {
245
- yield segment;
246
- }
247
- }
248
- else {
249
- state.matchedIds = state.cachedMatchedIds;
250
- }
251
- }
252
- if (ms) {
253
- ms.metrics.push({ label: "pipeline:cache-lookup", duration: performance.now() - pipelineStart, startTime: pipelineStart - ms.requestStart });
254
- }
255
- };
256
- }
257
- //# sourceMappingURL=cache-lookup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-lookup.js","sourceRoot":"","sources":["../../../src/router/match-middleware/cache-lookup.ts"],"names":[],"mappings":"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"}