@rangojs/router 0.0.0-experimental.6fe6a3cc → 0.0.0-experimental.70

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 (942) 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 +115 -58
  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 +57 -5
  24. package/src/browser/prefetch/fetch.ts +38 -23
  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 +53 -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 +60 -5
  79. package/src/router/match-result.ts +22 -6
  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 +5 -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 +193 -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 +429 -296
  95. package/src/router/types.ts +1 -0
  96. package/src/router.ts +59 -6
  97. package/src/rsc/handler.ts +472 -372
  98. package/src/rsc/loader-fetch.ts +23 -3
  99. package/src/rsc/manifest-init.ts +5 -1
  100. package/src/rsc/progressive-enhancement.ts +14 -2
  101. package/src/rsc/rsc-rendering.ts +10 -1
  102. package/src/rsc/server-action.ts +8 -0
  103. package/src/rsc/ssr-setup.ts +2 -2
  104. package/src/rsc/types.ts +9 -1
  105. package/src/segment-system.tsx +140 -4
  106. package/src/server/context.ts +140 -14
  107. package/src/server/handle-store.ts +19 -0
  108. package/src/server/loader-registry.ts +9 -8
  109. package/src/server/request-context.ts +185 -19
  110. package/src/ssr/index.tsx +4 -0
  111. package/src/static-handler.ts +18 -6
  112. package/src/types/cache-types.ts +4 -4
  113. package/src/types/handler-context.ts +137 -33
  114. package/src/types/loader-types.ts +36 -9
  115. package/src/types/route-entry.ts +8 -1
  116. package/src/types/segments.ts +2 -0
  117. package/src/urls/path-helper-types.ts +9 -2
  118. package/src/urls/path-helper.ts +48 -13
  119. package/src/urls/pattern-types.ts +12 -0
  120. package/src/urls/response-types.ts +16 -6
  121. package/src/use-loader.tsx +77 -5
  122. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  123. package/src/vite/discovery/discover-routers.ts +5 -1
  124. package/src/vite/discovery/prerender-collection.ts +128 -74
  125. package/src/vite/discovery/state.ts +13 -6
  126. package/src/vite/index.ts +4 -0
  127. package/src/vite/plugin-types.ts +51 -79
  128. package/src/vite/plugins/expose-action-id.ts +1 -3
  129. package/src/vite/plugins/expose-id-utils.ts +12 -0
  130. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  131. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  132. package/src/vite/plugins/performance-tracks.ts +88 -0
  133. package/src/vite/plugins/refresh-cmd.ts +88 -26
  134. package/src/vite/plugins/version-plugin.ts +13 -1
  135. package/src/vite/rango.ts +163 -211
  136. package/src/vite/router-discovery.ts +178 -45
  137. package/src/vite/utils/banner.ts +3 -3
  138. package/src/vite/utils/prerender-utils.ts +18 -0
  139. package/src/vite/utils/shared-utils.ts +3 -2
  140. package/dist/__internal.d.ts +0 -83
  141. package/dist/__internal.d.ts.map +0 -1
  142. package/dist/__internal.js +0 -19
  143. package/dist/__internal.js.map +0 -1
  144. package/dist/__mocks__/version.d.ts +0 -7
  145. package/dist/__mocks__/version.d.ts.map +0 -1
  146. package/dist/__mocks__/version.js +0 -7
  147. package/dist/__mocks__/version.js.map +0 -1
  148. package/dist/__tests__/client-href.test.d.ts +0 -2
  149. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  150. package/dist/__tests__/client-href.test.js +0 -74
  151. package/dist/__tests__/client-href.test.js.map +0 -1
  152. package/dist/__tests__/component-utils.test.d.ts +0 -2
  153. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  154. package/dist/__tests__/component-utils.test.js +0 -51
  155. package/dist/__tests__/component-utils.test.js.map +0 -1
  156. package/dist/__tests__/event-controller.test.d.ts +0 -2
  157. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  158. package/dist/__tests__/event-controller.test.js +0 -538
  159. package/dist/__tests__/event-controller.test.js.map +0 -1
  160. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  161. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  162. package/dist/__tests__/helpers/route-tree.js +0 -374
  163. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  164. package/dist/__tests__/match-result.test.d.ts +0 -2
  165. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  166. package/dist/__tests__/match-result.test.js +0 -154
  167. package/dist/__tests__/match-result.test.js.map +0 -1
  168. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  169. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  170. package/dist/__tests__/navigation-store.test.js +0 -440
  171. package/dist/__tests__/navigation-store.test.js.map +0 -1
  172. package/dist/__tests__/partial-update.test.d.ts +0 -2
  173. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  174. package/dist/__tests__/partial-update.test.js +0 -1009
  175. package/dist/__tests__/partial-update.test.js.map +0 -1
  176. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  177. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  178. package/dist/__tests__/reverse-types.test.js +0 -656
  179. package/dist/__tests__/reverse-types.test.js.map +0 -1
  180. package/dist/__tests__/route-definition.test.d.ts +0 -2
  181. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  182. package/dist/__tests__/route-definition.test.js +0 -55
  183. package/dist/__tests__/route-definition.test.js.map +0 -1
  184. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  185. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  186. package/dist/__tests__/router-helpers.test.js +0 -377
  187. package/dist/__tests__/router-helpers.test.js.map +0 -1
  188. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  189. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  190. package/dist/__tests__/router-integration-2.test.js +0 -426
  191. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  192. package/dist/__tests__/router-integration.test.d.ts +0 -2
  193. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  194. package/dist/__tests__/router-integration.test.js +0 -1051
  195. package/dist/__tests__/router-integration.test.js.map +0 -1
  196. package/dist/__tests__/search-params.test.d.ts +0 -5
  197. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  198. package/dist/__tests__/search-params.test.js +0 -306
  199. package/dist/__tests__/search-params.test.js.map +0 -1
  200. package/dist/__tests__/segment-system.test.d.ts +0 -2
  201. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  202. package/dist/__tests__/segment-system.test.js +0 -627
  203. package/dist/__tests__/segment-system.test.js.map +0 -1
  204. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  205. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  206. package/dist/__tests__/static-handler-types.test.js +0 -63
  207. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  208. package/dist/__tests__/urls.test.d.ts +0 -2
  209. package/dist/__tests__/urls.test.d.ts.map +0 -1
  210. package/dist/__tests__/urls.test.js +0 -421
  211. package/dist/__tests__/urls.test.js.map +0 -1
  212. package/dist/__tests__/use-mount.test.d.ts +0 -2
  213. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  214. package/dist/__tests__/use-mount.test.js +0 -35
  215. package/dist/__tests__/use-mount.test.js.map +0 -1
  216. package/dist/bin/rango.d.ts +0 -2
  217. package/dist/bin/rango.d.ts.map +0 -1
  218. package/dist/bin/rango.js.map +0 -1
  219. package/dist/browser/event-controller.d.ts +0 -191
  220. package/dist/browser/event-controller.d.ts.map +0 -1
  221. package/dist/browser/event-controller.js +0 -559
  222. package/dist/browser/event-controller.js.map +0 -1
  223. package/dist/browser/index.d.ts +0 -2
  224. package/dist/browser/index.d.ts.map +0 -1
  225. package/dist/browser/index.js +0 -14
  226. package/dist/browser/index.js.map +0 -1
  227. package/dist/browser/link-interceptor.d.ts +0 -38
  228. package/dist/browser/link-interceptor.d.ts.map +0 -1
  229. package/dist/browser/link-interceptor.js +0 -99
  230. package/dist/browser/link-interceptor.js.map +0 -1
  231. package/dist/browser/logging.d.ts +0 -10
  232. package/dist/browser/logging.d.ts.map +0 -1
  233. package/dist/browser/logging.js +0 -29
  234. package/dist/browser/logging.js.map +0 -1
  235. package/dist/browser/lru-cache.d.ts +0 -17
  236. package/dist/browser/lru-cache.d.ts.map +0 -1
  237. package/dist/browser/lru-cache.js +0 -50
  238. package/dist/browser/lru-cache.js.map +0 -1
  239. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  240. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  241. package/dist/browser/merge-segment-loaders.js +0 -102
  242. package/dist/browser/merge-segment-loaders.js.map +0 -1
  243. package/dist/browser/navigation-bridge.d.ts +0 -102
  244. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  245. package/dist/browser/navigation-bridge.js +0 -708
  246. package/dist/browser/navigation-bridge.js.map +0 -1
  247. package/dist/browser/navigation-client.d.ts +0 -25
  248. package/dist/browser/navigation-client.d.ts.map +0 -1
  249. package/dist/browser/navigation-client.js +0 -157
  250. package/dist/browser/navigation-client.js.map +0 -1
  251. package/dist/browser/navigation-store.d.ts +0 -101
  252. package/dist/browser/navigation-store.d.ts.map +0 -1
  253. package/dist/browser/navigation-store.js +0 -625
  254. package/dist/browser/navigation-store.js.map +0 -1
  255. package/dist/browser/partial-update.d.ts +0 -75
  256. package/dist/browser/partial-update.d.ts.map +0 -1
  257. package/dist/browser/partial-update.js +0 -426
  258. package/dist/browser/partial-update.js.map +0 -1
  259. package/dist/browser/react/Link.d.ts +0 -86
  260. package/dist/browser/react/Link.d.ts.map +0 -1
  261. package/dist/browser/react/Link.js +0 -128
  262. package/dist/browser/react/Link.js.map +0 -1
  263. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  264. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  265. package/dist/browser/react/NavigationProvider.js +0 -216
  266. package/dist/browser/react/NavigationProvider.js.map +0 -1
  267. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  268. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  269. package/dist/browser/react/ScrollRestoration.js +0 -57
  270. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  271. package/dist/browser/react/context.d.ts +0 -46
  272. package/dist/browser/react/context.d.ts.map +0 -1
  273. package/dist/browser/react/context.js +0 -10
  274. package/dist/browser/react/context.js.map +0 -1
  275. package/dist/browser/react/index.d.ts +0 -11
  276. package/dist/browser/react/index.d.ts.map +0 -1
  277. package/dist/browser/react/index.js +0 -22
  278. package/dist/browser/react/index.js.map +0 -1
  279. package/dist/browser/react/location-state-shared.d.ts +0 -63
  280. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  281. package/dist/browser/react/location-state-shared.js +0 -81
  282. package/dist/browser/react/location-state-shared.js.map +0 -1
  283. package/dist/browser/react/location-state.d.ts +0 -23
  284. package/dist/browser/react/location-state.d.ts.map +0 -1
  285. package/dist/browser/react/location-state.js +0 -29
  286. package/dist/browser/react/location-state.js.map +0 -1
  287. package/dist/browser/react/mount-context.d.ts +0 -24
  288. package/dist/browser/react/mount-context.d.ts.map +0 -1
  289. package/dist/browser/react/mount-context.js +0 -24
  290. package/dist/browser/react/mount-context.js.map +0 -1
  291. package/dist/browser/react/use-action.d.ts +0 -64
  292. package/dist/browser/react/use-action.d.ts.map +0 -1
  293. package/dist/browser/react/use-action.js +0 -134
  294. package/dist/browser/react/use-action.js.map +0 -1
  295. package/dist/browser/react/use-client-cache.d.ts +0 -41
  296. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  297. package/dist/browser/react/use-client-cache.js +0 -39
  298. package/dist/browser/react/use-client-cache.js.map +0 -1
  299. package/dist/browser/react/use-handle.d.ts +0 -31
  300. package/dist/browser/react/use-handle.d.ts.map +0 -1
  301. package/dist/browser/react/use-handle.js +0 -144
  302. package/dist/browser/react/use-handle.js.map +0 -1
  303. package/dist/browser/react/use-href.d.ts +0 -33
  304. package/dist/browser/react/use-href.d.ts.map +0 -1
  305. package/dist/browser/react/use-href.js +0 -39
  306. package/dist/browser/react/use-href.js.map +0 -1
  307. package/dist/browser/react/use-link-status.d.ts +0 -37
  308. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  309. package/dist/browser/react/use-link-status.js +0 -99
  310. package/dist/browser/react/use-link-status.js.map +0 -1
  311. package/dist/browser/react/use-mount.d.ts +0 -25
  312. package/dist/browser/react/use-mount.d.ts.map +0 -1
  313. package/dist/browser/react/use-mount.js +0 -30
  314. package/dist/browser/react/use-mount.js.map +0 -1
  315. package/dist/browser/react/use-navigation.d.ts +0 -27
  316. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  317. package/dist/browser/react/use-navigation.js +0 -87
  318. package/dist/browser/react/use-navigation.js.map +0 -1
  319. package/dist/browser/react/use-segments.d.ts +0 -38
  320. package/dist/browser/react/use-segments.d.ts.map +0 -1
  321. package/dist/browser/react/use-segments.js +0 -130
  322. package/dist/browser/react/use-segments.js.map +0 -1
  323. package/dist/browser/request-controller.d.ts +0 -26
  324. package/dist/browser/request-controller.d.ts.map +0 -1
  325. package/dist/browser/request-controller.js +0 -147
  326. package/dist/browser/request-controller.js.map +0 -1
  327. package/dist/browser/rsc-router.d.ts +0 -129
  328. package/dist/browser/rsc-router.d.ts.map +0 -1
  329. package/dist/browser/rsc-router.js +0 -195
  330. package/dist/browser/rsc-router.js.map +0 -1
  331. package/dist/browser/scroll-restoration.d.ts +0 -93
  332. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  333. package/dist/browser/scroll-restoration.js +0 -321
  334. package/dist/browser/scroll-restoration.js.map +0 -1
  335. package/dist/browser/segment-structure-assert.d.ts +0 -17
  336. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  337. package/dist/browser/segment-structure-assert.js +0 -59
  338. package/dist/browser/segment-structure-assert.js.map +0 -1
  339. package/dist/browser/server-action-bridge.d.ts +0 -26
  340. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  341. package/dist/browser/server-action-bridge.js +0 -668
  342. package/dist/browser/server-action-bridge.js.map +0 -1
  343. package/dist/browser/shallow.d.ts +0 -12
  344. package/dist/browser/shallow.d.ts.map +0 -1
  345. package/dist/browser/shallow.js +0 -34
  346. package/dist/browser/shallow.js.map +0 -1
  347. package/dist/browser/types.d.ts +0 -369
  348. package/dist/browser/types.d.ts.map +0 -1
  349. package/dist/browser/types.js +0 -2
  350. package/dist/browser/types.js.map +0 -1
  351. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  352. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  353. package/dist/build/__tests__/generate-cli.test.js +0 -237
  354. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  355. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  356. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  357. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  358. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  359. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  360. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  361. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  362. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  363. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  364. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  365. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  366. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  367. package/dist/build/generate-manifest.d.ts +0 -81
  368. package/dist/build/generate-manifest.d.ts.map +0 -1
  369. package/dist/build/generate-manifest.js +0 -276
  370. package/dist/build/generate-manifest.js.map +0 -1
  371. package/dist/build/generate-route-types.d.ts +0 -115
  372. package/dist/build/generate-route-types.d.ts.map +0 -1
  373. package/dist/build/generate-route-types.js +0 -740
  374. package/dist/build/generate-route-types.js.map +0 -1
  375. package/dist/build/index.d.ts +0 -21
  376. package/dist/build/index.d.ts.map +0 -1
  377. package/dist/build/index.js +0 -21
  378. package/dist/build/index.js.map +0 -1
  379. package/dist/build/route-trie.d.ts +0 -71
  380. package/dist/build/route-trie.d.ts.map +0 -1
  381. package/dist/build/route-trie.js +0 -175
  382. package/dist/build/route-trie.js.map +0 -1
  383. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  384. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  385. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  386. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  387. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  388. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  389. package/dist/cache/__tests__/document-cache.test.js +0 -345
  390. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  391. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  392. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  393. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  394. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  395. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  396. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  397. package/dist/cache/__tests__/memory-store.test.js +0 -367
  398. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  399. package/dist/cache/cache-scope.d.ts +0 -102
  400. package/dist/cache/cache-scope.d.ts.map +0 -1
  401. package/dist/cache/cache-scope.js +0 -440
  402. package/dist/cache/cache-scope.js.map +0 -1
  403. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  404. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  405. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  406. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  407. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  408. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  409. package/dist/cache/cf/cf-cache-store.js +0 -242
  410. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  411. package/dist/cache/cf/index.d.ts +0 -14
  412. package/dist/cache/cf/index.d.ts.map +0 -1
  413. package/dist/cache/cf/index.js +0 -17
  414. package/dist/cache/cf/index.js.map +0 -1
  415. package/dist/cache/document-cache.d.ts +0 -64
  416. package/dist/cache/document-cache.d.ts.map +0 -1
  417. package/dist/cache/document-cache.js +0 -228
  418. package/dist/cache/document-cache.js.map +0 -1
  419. package/dist/cache/index.d.ts +0 -19
  420. package/dist/cache/index.d.ts.map +0 -1
  421. package/dist/cache/index.js +0 -21
  422. package/dist/cache/index.js.map +0 -1
  423. package/dist/cache/memory-segment-store.d.ts +0 -110
  424. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  425. package/dist/cache/memory-segment-store.js +0 -117
  426. package/dist/cache/memory-segment-store.js.map +0 -1
  427. package/dist/cache/memory-store.d.ts +0 -41
  428. package/dist/cache/memory-store.d.ts.map +0 -1
  429. package/dist/cache/memory-store.js +0 -191
  430. package/dist/cache/memory-store.js.map +0 -1
  431. package/dist/cache/types.d.ts +0 -317
  432. package/dist/cache/types.d.ts.map +0 -1
  433. package/dist/cache/types.js +0 -12
  434. package/dist/cache/types.js.map +0 -1
  435. package/dist/client.d.ts +0 -248
  436. package/dist/client.d.ts.map +0 -1
  437. package/dist/client.js +0 -367
  438. package/dist/client.js.map +0 -1
  439. package/dist/client.rsc.d.ts +0 -26
  440. package/dist/client.rsc.d.ts.map +0 -1
  441. package/dist/client.rsc.js +0 -46
  442. package/dist/client.rsc.js.map +0 -1
  443. package/dist/component-utils.d.ts +0 -36
  444. package/dist/component-utils.d.ts.map +0 -1
  445. package/dist/component-utils.js +0 -61
  446. package/dist/component-utils.js.map +0 -1
  447. package/dist/components/DefaultDocument.d.ts +0 -13
  448. package/dist/components/DefaultDocument.d.ts.map +0 -1
  449. package/dist/components/DefaultDocument.js +0 -15
  450. package/dist/components/DefaultDocument.js.map +0 -1
  451. package/dist/debug.d.ts +0 -58
  452. package/dist/debug.d.ts.map +0 -1
  453. package/dist/debug.js +0 -157
  454. package/dist/debug.js.map +0 -1
  455. package/dist/default-error-boundary.d.ts +0 -11
  456. package/dist/default-error-boundary.d.ts.map +0 -1
  457. package/dist/default-error-boundary.js +0 -45
  458. package/dist/default-error-boundary.js.map +0 -1
  459. package/dist/deps/browser.d.ts +0 -2
  460. package/dist/deps/browser.d.ts.map +0 -1
  461. package/dist/deps/browser.js +0 -3
  462. package/dist/deps/browser.js.map +0 -1
  463. package/dist/deps/html-stream-client.d.ts +0 -2
  464. package/dist/deps/html-stream-client.d.ts.map +0 -1
  465. package/dist/deps/html-stream-client.js +0 -3
  466. package/dist/deps/html-stream-client.js.map +0 -1
  467. package/dist/deps/html-stream-server.d.ts +0 -2
  468. package/dist/deps/html-stream-server.d.ts.map +0 -1
  469. package/dist/deps/html-stream-server.js +0 -3
  470. package/dist/deps/html-stream-server.js.map +0 -1
  471. package/dist/deps/rsc.d.ts +0 -2
  472. package/dist/deps/rsc.d.ts.map +0 -1
  473. package/dist/deps/rsc.js +0 -4
  474. package/dist/deps/rsc.js.map +0 -1
  475. package/dist/deps/ssr.d.ts +0 -2
  476. package/dist/deps/ssr.d.ts.map +0 -1
  477. package/dist/deps/ssr.js +0 -3
  478. package/dist/deps/ssr.js.map +0 -1
  479. package/dist/errors.d.ts +0 -174
  480. package/dist/errors.d.ts.map +0 -1
  481. package/dist/errors.js +0 -241
  482. package/dist/errors.js.map +0 -1
  483. package/dist/handle.d.ts +0 -78
  484. package/dist/handle.d.ts.map +0 -1
  485. package/dist/handle.js +0 -82
  486. package/dist/handle.js.map +0 -1
  487. package/dist/handles/MetaTags.d.ts +0 -14
  488. package/dist/handles/MetaTags.d.ts.map +0 -1
  489. package/dist/handles/MetaTags.js +0 -136
  490. package/dist/handles/MetaTags.js.map +0 -1
  491. package/dist/handles/index.d.ts +0 -6
  492. package/dist/handles/index.d.ts.map +0 -1
  493. package/dist/handles/index.js +0 -6
  494. package/dist/handles/index.js.map +0 -1
  495. package/dist/handles/meta.d.ts +0 -39
  496. package/dist/handles/meta.d.ts.map +0 -1
  497. package/dist/handles/meta.js +0 -202
  498. package/dist/handles/meta.js.map +0 -1
  499. package/dist/host/__tests__/errors.test.d.ts +0 -2
  500. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  501. package/dist/host/__tests__/errors.test.js +0 -76
  502. package/dist/host/__tests__/errors.test.js.map +0 -1
  503. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  504. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  505. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  506. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  507. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  508. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  509. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  510. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  511. package/dist/host/__tests__/router.test.d.ts +0 -2
  512. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  513. package/dist/host/__tests__/router.test.js +0 -241
  514. package/dist/host/__tests__/router.test.js.map +0 -1
  515. package/dist/host/__tests__/testing.test.d.ts +0 -2
  516. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  517. package/dist/host/__tests__/testing.test.js +0 -64
  518. package/dist/host/__tests__/testing.test.js.map +0 -1
  519. package/dist/host/__tests__/utils.test.d.ts +0 -2
  520. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  521. package/dist/host/__tests__/utils.test.js +0 -29
  522. package/dist/host/__tests__/utils.test.js.map +0 -1
  523. package/dist/host/cookie-handler.d.ts +0 -34
  524. package/dist/host/cookie-handler.d.ts.map +0 -1
  525. package/dist/host/cookie-handler.js +0 -124
  526. package/dist/host/cookie-handler.js.map +0 -1
  527. package/dist/host/errors.d.ts +0 -56
  528. package/dist/host/errors.d.ts.map +0 -1
  529. package/dist/host/errors.js +0 -79
  530. package/dist/host/errors.js.map +0 -1
  531. package/dist/host/index.d.ts +0 -29
  532. package/dist/host/index.d.ts.map +0 -1
  533. package/dist/host/index.js +0 -32
  534. package/dist/host/index.js.map +0 -1
  535. package/dist/host/pattern-matcher.d.ts +0 -36
  536. package/dist/host/pattern-matcher.d.ts.map +0 -1
  537. package/dist/host/pattern-matcher.js +0 -172
  538. package/dist/host/pattern-matcher.js.map +0 -1
  539. package/dist/host/router.d.ts +0 -26
  540. package/dist/host/router.d.ts.map +0 -1
  541. package/dist/host/router.js +0 -218
  542. package/dist/host/router.js.map +0 -1
  543. package/dist/host/testing.d.ts +0 -36
  544. package/dist/host/testing.d.ts.map +0 -1
  545. package/dist/host/testing.js +0 -55
  546. package/dist/host/testing.js.map +0 -1
  547. package/dist/host/types.d.ts +0 -115
  548. package/dist/host/types.d.ts.map +0 -1
  549. package/dist/host/types.js +0 -7
  550. package/dist/host/types.js.map +0 -1
  551. package/dist/host/utils.d.ts +0 -21
  552. package/dist/host/utils.d.ts.map +0 -1
  553. package/dist/host/utils.js +0 -23
  554. package/dist/host/utils.js.map +0 -1
  555. package/dist/href-client.d.ts +0 -131
  556. package/dist/href-client.d.ts.map +0 -1
  557. package/dist/href-client.js +0 -64
  558. package/dist/href-client.js.map +0 -1
  559. package/dist/href-context.d.ts +0 -29
  560. package/dist/href-context.d.ts.map +0 -1
  561. package/dist/href-context.js +0 -21
  562. package/dist/href-context.js.map +0 -1
  563. package/dist/index.d.ts +0 -73
  564. package/dist/index.d.ts.map +0 -1
  565. package/dist/index.js +0 -91
  566. package/dist/index.js.map +0 -1
  567. package/dist/index.rsc.d.ts +0 -32
  568. package/dist/index.rsc.d.ts.map +0 -1
  569. package/dist/index.rsc.js +0 -40
  570. package/dist/index.rsc.js.map +0 -1
  571. package/dist/internal-debug.d.ts +0 -2
  572. package/dist/internal-debug.d.ts.map +0 -1
  573. package/dist/internal-debug.js +0 -5
  574. package/dist/internal-debug.js.map +0 -1
  575. package/dist/loader.d.ts +0 -14
  576. package/dist/loader.d.ts.map +0 -1
  577. package/dist/loader.js +0 -20
  578. package/dist/loader.js.map +0 -1
  579. package/dist/loader.rsc.d.ts +0 -19
  580. package/dist/loader.rsc.d.ts.map +0 -1
  581. package/dist/loader.rsc.js +0 -99
  582. package/dist/loader.rsc.js.map +0 -1
  583. package/dist/network-error-thrower.d.ts +0 -17
  584. package/dist/network-error-thrower.d.ts.map +0 -1
  585. package/dist/network-error-thrower.js +0 -14
  586. package/dist/network-error-thrower.js.map +0 -1
  587. package/dist/outlet-context.d.ts +0 -13
  588. package/dist/outlet-context.d.ts.map +0 -1
  589. package/dist/outlet-context.js +0 -3
  590. package/dist/outlet-context.js.map +0 -1
  591. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  592. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  593. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  594. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  595. package/dist/prerender/param-hash.d.ts +0 -16
  596. package/dist/prerender/param-hash.d.ts.map +0 -1
  597. package/dist/prerender/param-hash.js +0 -36
  598. package/dist/prerender/param-hash.js.map +0 -1
  599. package/dist/prerender/store.d.ts +0 -38
  600. package/dist/prerender/store.d.ts.map +0 -1
  601. package/dist/prerender/store.js +0 -61
  602. package/dist/prerender/store.js.map +0 -1
  603. package/dist/prerender.d.ts +0 -66
  604. package/dist/prerender.d.ts.map +0 -1
  605. package/dist/prerender.js +0 -57
  606. package/dist/prerender.js.map +0 -1
  607. package/dist/reverse.d.ts +0 -196
  608. package/dist/reverse.d.ts.map +0 -1
  609. package/dist/reverse.js +0 -78
  610. package/dist/reverse.js.map +0 -1
  611. package/dist/root-error-boundary.d.ts +0 -33
  612. package/dist/root-error-boundary.d.ts.map +0 -1
  613. package/dist/root-error-boundary.js +0 -165
  614. package/dist/root-error-boundary.js.map +0 -1
  615. package/dist/route-content-wrapper.d.ts +0 -46
  616. package/dist/route-content-wrapper.d.ts.map +0 -1
  617. package/dist/route-content-wrapper.js +0 -77
  618. package/dist/route-content-wrapper.js.map +0 -1
  619. package/dist/route-definition.d.ts +0 -421
  620. package/dist/route-definition.d.ts.map +0 -1
  621. package/dist/route-definition.js +0 -868
  622. package/dist/route-definition.js.map +0 -1
  623. package/dist/route-map-builder.d.ts +0 -155
  624. package/dist/route-map-builder.d.ts.map +0 -1
  625. package/dist/route-map-builder.js +0 -237
  626. package/dist/route-map-builder.js.map +0 -1
  627. package/dist/route-types.d.ts +0 -165
  628. package/dist/route-types.d.ts.map +0 -1
  629. package/dist/route-types.js +0 -7
  630. package/dist/route-types.js.map +0 -1
  631. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  632. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  633. package/dist/router/__tests__/handler-context.test.js +0 -65
  634. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  635. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  636. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  637. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  638. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  639. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  640. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  641. package/dist/router/__tests__/match-context.test.js +0 -92
  642. package/dist/router/__tests__/match-context.test.js.map +0 -1
  643. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  644. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  645. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  646. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  647. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  648. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  649. package/dist/router/__tests__/match-result.test.js +0 -457
  650. package/dist/router/__tests__/match-result.test.js.map +0 -1
  651. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  652. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  653. package/dist/router/__tests__/on-error.test.js +0 -678
  654. package/dist/router/__tests__/on-error.test.js.map +0 -1
  655. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  656. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  657. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  658. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  659. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  660. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  661. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  662. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  663. package/dist/router/error-handling.d.ts +0 -77
  664. package/dist/router/error-handling.d.ts.map +0 -1
  665. package/dist/router/error-handling.js +0 -202
  666. package/dist/router/error-handling.js.map +0 -1
  667. package/dist/router/handler-context.d.ts +0 -20
  668. package/dist/router/handler-context.d.ts.map +0 -1
  669. package/dist/router/handler-context.js +0 -198
  670. package/dist/router/handler-context.js.map +0 -1
  671. package/dist/router/intercept-resolution.d.ts +0 -66
  672. package/dist/router/intercept-resolution.d.ts.map +0 -1
  673. package/dist/router/intercept-resolution.js +0 -246
  674. package/dist/router/intercept-resolution.js.map +0 -1
  675. package/dist/router/loader-resolution.d.ts +0 -64
  676. package/dist/router/loader-resolution.d.ts.map +0 -1
  677. package/dist/router/loader-resolution.js +0 -284
  678. package/dist/router/loader-resolution.js.map +0 -1
  679. package/dist/router/logging.d.ts +0 -15
  680. package/dist/router/logging.d.ts.map +0 -1
  681. package/dist/router/logging.js +0 -99
  682. package/dist/router/logging.js.map +0 -1
  683. package/dist/router/manifest.d.ts +0 -22
  684. package/dist/router/manifest.d.ts.map +0 -1
  685. package/dist/router/manifest.js +0 -181
  686. package/dist/router/manifest.js.map +0 -1
  687. package/dist/router/match-api.d.ts +0 -35
  688. package/dist/router/match-api.d.ts.map +0 -1
  689. package/dist/router/match-api.js +0 -406
  690. package/dist/router/match-api.js.map +0 -1
  691. package/dist/router/match-context.d.ts +0 -206
  692. package/dist/router/match-context.d.ts.map +0 -1
  693. package/dist/router/match-context.js +0 -17
  694. package/dist/router/match-context.js.map +0 -1
  695. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  696. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  697. package/dist/router/match-middleware/background-revalidation.js +0 -75
  698. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  699. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  700. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  701. package/dist/router/match-middleware/cache-lookup.js +0 -257
  702. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  703. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  704. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  705. package/dist/router/match-middleware/cache-store.js +0 -108
  706. package/dist/router/match-middleware/cache-store.js.map +0 -1
  707. package/dist/router/match-middleware/index.d.ts +0 -81
  708. package/dist/router/match-middleware/index.d.ts.map +0 -1
  709. package/dist/router/match-middleware/index.js +0 -80
  710. package/dist/router/match-middleware/index.js.map +0 -1
  711. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  712. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  713. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  714. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  715. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  716. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  717. package/dist/router/match-middleware/segment-resolution.js +0 -53
  718. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  719. package/dist/router/match-pipelines.d.ts +0 -147
  720. package/dist/router/match-pipelines.d.ts.map +0 -1
  721. package/dist/router/match-pipelines.js +0 -82
  722. package/dist/router/match-pipelines.js.map +0 -1
  723. package/dist/router/match-result.d.ts +0 -126
  724. package/dist/router/match-result.d.ts.map +0 -1
  725. package/dist/router/match-result.js +0 -93
  726. package/dist/router/match-result.js.map +0 -1
  727. package/dist/router/metrics.d.ts +0 -20
  728. package/dist/router/metrics.d.ts.map +0 -1
  729. package/dist/router/metrics.js +0 -47
  730. package/dist/router/metrics.js.map +0 -1
  731. package/dist/router/middleware.d.ts +0 -249
  732. package/dist/router/middleware.d.ts.map +0 -1
  733. package/dist/router/middleware.js +0 -434
  734. package/dist/router/middleware.js.map +0 -1
  735. package/dist/router/middleware.test.d.ts +0 -2
  736. package/dist/router/middleware.test.d.ts.map +0 -1
  737. package/dist/router/middleware.test.js +0 -816
  738. package/dist/router/middleware.test.js.map +0 -1
  739. package/dist/router/pattern-matching.d.ts +0 -149
  740. package/dist/router/pattern-matching.d.ts.map +0 -1
  741. package/dist/router/pattern-matching.js +0 -349
  742. package/dist/router/pattern-matching.js.map +0 -1
  743. package/dist/router/revalidation.d.ts +0 -44
  744. package/dist/router/revalidation.d.ts.map +0 -1
  745. package/dist/router/revalidation.js +0 -147
  746. package/dist/router/revalidation.js.map +0 -1
  747. package/dist/router/router-context.d.ts +0 -135
  748. package/dist/router/router-context.d.ts.map +0 -1
  749. package/dist/router/router-context.js +0 -36
  750. package/dist/router/router-context.js.map +0 -1
  751. package/dist/router/segment-resolution.d.ts +0 -127
  752. package/dist/router/segment-resolution.d.ts.map +0 -1
  753. package/dist/router/segment-resolution.js +0 -919
  754. package/dist/router/segment-resolution.js.map +0 -1
  755. package/dist/router/trie-matching.d.ts +0 -40
  756. package/dist/router/trie-matching.d.ts.map +0 -1
  757. package/dist/router/trie-matching.js +0 -127
  758. package/dist/router/trie-matching.js.map +0 -1
  759. package/dist/router/types.d.ts +0 -136
  760. package/dist/router/types.d.ts.map +0 -1
  761. package/dist/router/types.js +0 -7
  762. package/dist/router/types.js.map +0 -1
  763. package/dist/router.d.ts +0 -753
  764. package/dist/router.d.ts.map +0 -1
  765. package/dist/router.gen.d.ts +0 -6
  766. package/dist/router.gen.d.ts.map +0 -1
  767. package/dist/router.gen.js +0 -6
  768. package/dist/router.gen.js.map +0 -1
  769. package/dist/router.js +0 -1304
  770. package/dist/router.js.map +0 -1
  771. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  772. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  773. package/dist/rsc/__tests__/helpers.test.js +0 -140
  774. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  775. package/dist/rsc/handler.d.ts +0 -45
  776. package/dist/rsc/handler.d.ts.map +0 -1
  777. package/dist/rsc/handler.js +0 -1172
  778. package/dist/rsc/handler.js.map +0 -1
  779. package/dist/rsc/helpers.d.ts +0 -16
  780. package/dist/rsc/helpers.d.ts.map +0 -1
  781. package/dist/rsc/helpers.js +0 -55
  782. package/dist/rsc/helpers.js.map +0 -1
  783. package/dist/rsc/index.d.ts +0 -22
  784. package/dist/rsc/index.d.ts.map +0 -1
  785. package/dist/rsc/index.js +0 -23
  786. package/dist/rsc/index.js.map +0 -1
  787. package/dist/rsc/nonce.d.ts +0 -9
  788. package/dist/rsc/nonce.d.ts.map +0 -1
  789. package/dist/rsc/nonce.js +0 -18
  790. package/dist/rsc/nonce.js.map +0 -1
  791. package/dist/rsc/types.d.ts +0 -206
  792. package/dist/rsc/types.d.ts.map +0 -1
  793. package/dist/rsc/types.js +0 -8
  794. package/dist/rsc/types.js.map +0 -1
  795. package/dist/search-params.d.ts +0 -103
  796. package/dist/search-params.d.ts.map +0 -1
  797. package/dist/search-params.js +0 -74
  798. package/dist/search-params.js.map +0 -1
  799. package/dist/segment-system.d.ts +0 -75
  800. package/dist/segment-system.d.ts.map +0 -1
  801. package/dist/segment-system.js +0 -336
  802. package/dist/segment-system.js.map +0 -1
  803. package/dist/server/context.d.ts +0 -245
  804. package/dist/server/context.d.ts.map +0 -1
  805. package/dist/server/context.js +0 -197
  806. package/dist/server/context.js.map +0 -1
  807. package/dist/server/fetchable-loader-store.d.ts +0 -18
  808. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  809. package/dist/server/fetchable-loader-store.js +0 -18
  810. package/dist/server/fetchable-loader-store.js.map +0 -1
  811. package/dist/server/handle-store.d.ts +0 -85
  812. package/dist/server/handle-store.d.ts.map +0 -1
  813. package/dist/server/handle-store.js +0 -142
  814. package/dist/server/handle-store.js.map +0 -1
  815. package/dist/server/loader-registry.d.ts +0 -55
  816. package/dist/server/loader-registry.d.ts.map +0 -1
  817. package/dist/server/loader-registry.js +0 -132
  818. package/dist/server/loader-registry.js.map +0 -1
  819. package/dist/server/request-context.d.ts +0 -226
  820. package/dist/server/request-context.d.ts.map +0 -1
  821. package/dist/server/request-context.js +0 -290
  822. package/dist/server/request-context.js.map +0 -1
  823. package/dist/server/root-layout.d.ts +0 -4
  824. package/dist/server/root-layout.d.ts.map +0 -1
  825. package/dist/server/root-layout.js +0 -5
  826. package/dist/server/root-layout.js.map +0 -1
  827. package/dist/server.d.ts +0 -15
  828. package/dist/server.d.ts.map +0 -1
  829. package/dist/server.js +0 -20
  830. package/dist/server.js.map +0 -1
  831. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  832. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  833. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  834. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  835. package/dist/ssr/index.d.ts +0 -98
  836. package/dist/ssr/index.d.ts.map +0 -1
  837. package/dist/ssr/index.js +0 -158
  838. package/dist/ssr/index.js.map +0 -1
  839. package/dist/static-handler.d.ts +0 -50
  840. package/dist/static-handler.d.ts.map +0 -1
  841. package/dist/static-handler.gen.d.ts +0 -5
  842. package/dist/static-handler.gen.d.ts.map +0 -1
  843. package/dist/static-handler.gen.js +0 -5
  844. package/dist/static-handler.gen.js.map +0 -1
  845. package/dist/static-handler.js +0 -29
  846. package/dist/static-handler.js.map +0 -1
  847. package/dist/theme/ThemeProvider.d.ts +0 -20
  848. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  849. package/dist/theme/ThemeProvider.js +0 -240
  850. package/dist/theme/ThemeProvider.js.map +0 -1
  851. package/dist/theme/ThemeScript.d.ts +0 -48
  852. package/dist/theme/ThemeScript.d.ts.map +0 -1
  853. package/dist/theme/ThemeScript.js +0 -13
  854. package/dist/theme/ThemeScript.js.map +0 -1
  855. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  856. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  857. package/dist/theme/__tests__/theme.test.js +0 -103
  858. package/dist/theme/__tests__/theme.test.js.map +0 -1
  859. package/dist/theme/constants.d.ts +0 -29
  860. package/dist/theme/constants.d.ts.map +0 -1
  861. package/dist/theme/constants.js +0 -48
  862. package/dist/theme/constants.js.map +0 -1
  863. package/dist/theme/index.d.ts +0 -31
  864. package/dist/theme/index.d.ts.map +0 -1
  865. package/dist/theme/index.js +0 -36
  866. package/dist/theme/index.js.map +0 -1
  867. package/dist/theme/theme-context.d.ts +0 -40
  868. package/dist/theme/theme-context.d.ts.map +0 -1
  869. package/dist/theme/theme-context.js +0 -60
  870. package/dist/theme/theme-context.js.map +0 -1
  871. package/dist/theme/theme-script.d.ts +0 -27
  872. package/dist/theme/theme-script.d.ts.map +0 -1
  873. package/dist/theme/theme-script.js +0 -147
  874. package/dist/theme/theme-script.js.map +0 -1
  875. package/dist/theme/types.d.ts +0 -163
  876. package/dist/theme/types.d.ts.map +0 -1
  877. package/dist/theme/types.js +0 -11
  878. package/dist/theme/types.js.map +0 -1
  879. package/dist/theme/use-theme.d.ts +0 -12
  880. package/dist/theme/use-theme.d.ts.map +0 -1
  881. package/dist/theme/use-theme.js +0 -40
  882. package/dist/theme/use-theme.js.map +0 -1
  883. package/dist/types.d.ts +0 -1479
  884. package/dist/types.d.ts.map +0 -1
  885. package/dist/types.js +0 -10
  886. package/dist/types.js.map +0 -1
  887. package/dist/urls.d.ts +0 -441
  888. package/dist/urls.d.ts.map +0 -1
  889. package/dist/urls.gen.d.ts +0 -8
  890. package/dist/urls.gen.d.ts.map +0 -1
  891. package/dist/urls.gen.js +0 -8
  892. package/dist/urls.gen.js.map +0 -1
  893. package/dist/urls.js +0 -443
  894. package/dist/urls.js.map +0 -1
  895. package/dist/use-loader.d.ts +0 -127
  896. package/dist/use-loader.d.ts.map +0 -1
  897. package/dist/use-loader.js +0 -237
  898. package/dist/use-loader.js.map +0 -1
  899. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  900. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  901. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  902. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  903. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  904. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  905. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  906. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  907. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  908. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  909. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  910. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  911. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  912. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  913. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  914. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  915. package/dist/vite/ast-handler-extract.d.ts +0 -49
  916. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  917. package/dist/vite/ast-handler-extract.js +0 -249
  918. package/dist/vite/ast-handler-extract.js.map +0 -1
  919. package/dist/vite/expose-action-id.d.ts +0 -19
  920. package/dist/vite/expose-action-id.d.ts.map +0 -1
  921. package/dist/vite/expose-action-id.js +0 -250
  922. package/dist/vite/expose-action-id.js.map +0 -1
  923. package/dist/vite/expose-id-utils.d.ts +0 -69
  924. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  925. package/dist/vite/expose-id-utils.js +0 -289
  926. package/dist/vite/expose-id-utils.js.map +0 -1
  927. package/dist/vite/expose-internal-ids.d.ts +0 -22
  928. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  929. package/dist/vite/expose-internal-ids.js +0 -886
  930. package/dist/vite/expose-internal-ids.js.map +0 -1
  931. package/dist/vite/index.d.ts +0 -149
  932. package/dist/vite/index.d.ts.map +0 -1
  933. package/dist/vite/index.js.map +0 -1
  934. package/dist/vite/index.named-routes.gen.ts +0 -103
  935. package/dist/vite/package-resolution.d.ts +0 -43
  936. package/dist/vite/package-resolution.d.ts.map +0 -1
  937. package/dist/vite/package-resolution.js +0 -112
  938. package/dist/vite/package-resolution.js.map +0 -1
  939. package/dist/vite/virtual-entries.d.ts +0 -25
  940. package/dist/vite/virtual-entries.d.ts.map +0 -1
  941. package/dist/vite/virtual-entries.js +0 -110
  942. package/dist/vite/virtual-entries.js.map +0 -1
@@ -1,242 +0,0 @@
1
- /// <reference path="../../vite/version.d.ts" />
2
- import { getRequestContext, } from "../../server/request-context.js";
3
- import { VERSION } from "@rangojs/router:version";
4
- // ============================================================================
5
- // Constants
6
- // ============================================================================
7
- /** Header storing timestamp when entry becomes stale */
8
- export const CACHE_STALE_AT_HEADER = "x-edge-cache-stale-at";
9
- /** Header storing cache status: HIT | REVALIDATING */
10
- export const CACHE_STATUS_HEADER = "x-edge-cache-status";
11
- /**
12
- * Maximum age in seconds for REVALIDATING status before allowing new revalidation.
13
- * After this period, a stale entry in REVALIDATING status will trigger revalidation again.
14
- * @internal
15
- */
16
- export const MAX_REVALIDATION_INTERVAL = 30;
17
- // ============================================================================
18
- // CFCacheStore Implementation
19
- // ============================================================================
20
- export class CFCacheStore {
21
- constructor(options) {
22
- if (!options.ctx) {
23
- throw new Error("[CFCacheStore] ExecutionContext (ctx) is required. " +
24
- "Pass the Cloudflare ExecutionContext from your worker's fetch handler: " +
25
- "new CFCacheStore({ ctx: env.ctx })");
26
- }
27
- this.namespace = options.namespace;
28
- this.baseUrl = options.baseUrl ?? this.deriveBaseUrl();
29
- this.defaults = options.defaults;
30
- this.version = options.version ?? VERSION;
31
- this.keyGenerator = options.keyGenerator;
32
- this.waitUntil = (fn) => options.ctx.waitUntil(fn());
33
- }
34
- /**
35
- * Derive base URL from request hostname via requestContext.
36
- * Uses internal fallback for dev/preview environments.
37
- * @internal
38
- */
39
- deriveBaseUrl() {
40
- const fallback = "https://rsc-cache.internal.com/";
41
- const ctx = getRequestContext();
42
- if (!ctx?.request) {
43
- return fallback;
44
- }
45
- try {
46
- const url = new URL(ctx.request.url);
47
- const hostname = url.hostname;
48
- // Use fallback for dev/preview environments
49
- if (hostname === "localhost" ||
50
- hostname === "127.0.0.1" ||
51
- hostname.endsWith(".workers.dev") ||
52
- hostname.endsWith(".pages.dev")) {
53
- return fallback;
54
- }
55
- // Use actual hostname for production
56
- return `https://${hostname}/`;
57
- }
58
- catch {
59
- return fallback;
60
- }
61
- }
62
- /**
63
- * Get the cache instance - uses caches.default unless namespace is specified.
64
- * @internal
65
- */
66
- getCache() {
67
- if (this.namespace) {
68
- return caches.open(this.namespace);
69
- }
70
- return caches.default;
71
- }
72
- /**
73
- * Get cached entry data by key.
74
- *
75
- * Handles SWR atomically:
76
- * - If stale and not already revalidating, marks as REVALIDATING and returns shouldRevalidate: true
77
- * - If already REVALIDATING (and recent), returns shouldRevalidate: false
78
- * - If fresh, returns shouldRevalidate: false
79
- *
80
- * The atomic mark prevents thundering herd - only first request triggers revalidation.
81
- */
82
- async get(key) {
83
- try {
84
- const cache = await this.getCache();
85
- const request = this.keyToRequest(key);
86
- const response = await cache.match(request);
87
- if (!response) {
88
- return null;
89
- }
90
- // Read status headers
91
- const status = response.headers.get(CACHE_STATUS_HEADER);
92
- const age = Number(response.headers.get("age") ?? "0");
93
- const staleAt = Number(response.headers.get(CACHE_STALE_AT_HEADER) ?? "0");
94
- const isStale = staleAt > 0 && Date.now() > staleAt;
95
- const isRevalidating = status === "REVALIDATING" && age < MAX_REVALIDATION_INTERVAL;
96
- // Case 1: Fresh or already being revalidated - just return data
97
- if (!isStale || isRevalidating) {
98
- const data = (await response.json());
99
- return { data, shouldRevalidate: false };
100
- }
101
- // Case 2: Stale and needs revalidation - atomically mark REVALIDATING
102
- const [b1, b2] = response.body.tee();
103
- const headers = new Headers(response.headers);
104
- headers.set(CACHE_STATUS_HEADER, "REVALIDATING");
105
- // Blocking write - must complete before returning to prevent race
106
- await cache.put(request, new Response(b1, { status: response.status, headers }));
107
- const data = (await new Response(b2).json());
108
- return { data, shouldRevalidate: true };
109
- }
110
- catch (error) {
111
- console.error("[CFCacheStore] get failed:", error);
112
- return null;
113
- }
114
- }
115
- /**
116
- * Store entry data with TTL and optional SWR window.
117
- * Uses waitUntil for non-blocking write when available.
118
- */
119
- async set(key, data, ttl, swr) {
120
- try {
121
- const cache = await this.getCache();
122
- const request = this.keyToRequest(key);
123
- // Extended TTL covers SWR window
124
- const swrWindow = swr ?? this.defaults?.swr ?? 0;
125
- const totalTtl = ttl + swrWindow;
126
- const staleAt = Date.now() + ttl * 1000;
127
- const response = new Response(JSON.stringify(data), {
128
- headers: {
129
- "Content-Type": "application/json",
130
- "Cache-Control": `public, max-age=${totalTtl}`,
131
- [CACHE_STALE_AT_HEADER]: String(staleAt),
132
- [CACHE_STATUS_HEADER]: "HIT",
133
- },
134
- });
135
- const putPromise = cache.put(request, response);
136
- if (this.waitUntil) {
137
- // Non-blocking write
138
- this.waitUntil(async () => {
139
- await putPromise;
140
- });
141
- }
142
- else {
143
- // Blocking fallback
144
- await putPromise;
145
- }
146
- }
147
- catch (error) {
148
- console.error("[CFCacheStore] set failed:", error);
149
- }
150
- }
151
- /**
152
- * Delete a cached entry
153
- */
154
- async delete(key) {
155
- try {
156
- const cache = await this.getCache();
157
- return await cache.delete(this.keyToRequest(key));
158
- }
159
- catch (error) {
160
- console.error("[CFCacheStore] delete failed:", error);
161
- return false;
162
- }
163
- }
164
- // ============================================================================
165
- // Document Cache Methods
166
- // ============================================================================
167
- /**
168
- * Get a cached Response by key (for document-level caching).
169
- * Returns the response and whether it should be revalidated (SWR).
170
- */
171
- async getResponse(key) {
172
- try {
173
- const cache = await this.getCache();
174
- const request = this.keyToRequest(`doc:${key}`);
175
- const response = await cache.match(request);
176
- if (!response || response.status !== 200) {
177
- return null;
178
- }
179
- // Check staleness
180
- const staleAt = Number(response.headers.get(CACHE_STALE_AT_HEADER) || 0);
181
- const isStale = staleAt > 0 && Date.now() > staleAt;
182
- return {
183
- response,
184
- shouldRevalidate: isStale,
185
- };
186
- }
187
- catch (error) {
188
- console.error("[CFCacheStore] getResponse failed:", error);
189
- return null;
190
- }
191
- }
192
- /**
193
- * Store a Response with TTL and optional SWR window (for document-level caching).
194
- */
195
- async putResponse(key, response, ttl, swr) {
196
- try {
197
- const cache = await this.getCache();
198
- const request = this.keyToRequest(`doc:${key}`);
199
- // Extended TTL covers SWR window
200
- const swrWindow = swr ?? this.defaults?.swr ?? 0;
201
- const totalTtl = ttl + swrWindow;
202
- const staleAt = Date.now() + ttl * 1000;
203
- // Clone and add cache headers
204
- const headers = new Headers(response.headers);
205
- headers.set("Cache-Control", `public, max-age=${totalTtl}`);
206
- headers.set(CACHE_STALE_AT_HEADER, String(staleAt));
207
- const toCache = new Response(response.body, {
208
- status: response.status,
209
- statusText: response.statusText,
210
- headers,
211
- });
212
- const putPromise = cache.put(request, toCache);
213
- if (this.waitUntil) {
214
- // Non-blocking write
215
- this.waitUntil(async () => {
216
- await putPromise;
217
- });
218
- }
219
- else {
220
- // Blocking fallback
221
- await putPromise;
222
- }
223
- }
224
- catch (error) {
225
- console.error("[CFCacheStore] putResponse failed:", error);
226
- }
227
- }
228
- /**
229
- * Convert string key to Request object for CF Cache API.
230
- * Includes version in URL if specified (for cache invalidation on code changes).
231
- * @internal
232
- */
233
- keyToRequest(key) {
234
- const encodedKey = encodeURIComponent(key);
235
- // Include version in URL path to invalidate cache when version changes
236
- const versionPath = this.version ? `v/${this.version}/` : "";
237
- return new Request(`${this.baseUrl}${versionPath}${encodedKey}`, {
238
- method: "GET",
239
- });
240
- }
241
- }
242
- //# sourceMappingURL=cf-cache-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cf-cache-store.js","sourceRoot":"","sources":["../../../src/cache/cf/cf-cache-store.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Cloudflare Cache Store Exports
3
- *
4
- * Main export:
5
- * - CFCacheStore - Production cache store using Cloudflare's Cache API
6
- *
7
- * Header constants (for inspection/debugging):
8
- * - CACHE_STALE_AT_HEADER - Header containing staleness timestamp
9
- * - CACHE_STATUS_HEADER - Header containing HIT/REVALIDATING status
10
- */
11
- export { CFCacheStore, type CFCacheStoreOptions } from "./cf-cache-store.js";
12
- export { CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER } from "./cf-cache-store.js";
13
- export { type CacheStatus, MAX_REVALIDATION_INTERVAL } from "./cf-cache-store.js";
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cache/cf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG7E,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,OAAO,EAAE,KAAK,WAAW,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Cloudflare Cache Store Exports
3
- *
4
- * Main export:
5
- * - CFCacheStore - Production cache store using Cloudflare's Cache API
6
- *
7
- * Header constants (for inspection/debugging):
8
- * - CACHE_STALE_AT_HEADER - Header containing staleness timestamp
9
- * - CACHE_STATUS_HEADER - Header containing HIT/REVALIDATING status
10
- */
11
- // Public API
12
- export { CFCacheStore } from "./cf-cache-store.js";
13
- // Header constants for debugging and inspection
14
- export { CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER } from "./cf-cache-store.js";
15
- // Internal exports (re-exported for backwards compatibility, marked @internal in source)
16
- export { MAX_REVALIDATION_INTERVAL } from "./cf-cache-store.js";
17
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/cf/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,aAAa;AACb,OAAO,EAAE,YAAY,EAA4B,MAAM,qBAAqB,CAAC;AAE7E,gDAAgD;AAChD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,yFAAyF;AACzF,OAAO,EAAoB,yBAAyB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Document-Level Cache Middleware
3
- *
4
- * Caches full HTTP responses at the edge based on Cache-Control headers.
5
- * Routes opt-in to caching by setting s-maxage or stale-while-revalidate headers.
6
- *
7
- * Flow:
8
- * 1. Check cache for existing response
9
- * 2. If fresh hit → return cached response
10
- * 3. If stale hit (within SWR window) → return cached, revalidate in background
11
- * 4. If miss → run handler, cache if response has cache headers
12
- */
13
- import type { MiddlewareFn, MiddlewareContext } from "../router/middleware.js";
14
- export interface DocumentCacheOptions<TEnv = any> {
15
- /**
16
- * Skip caching for specific paths (e.g., API routes)
17
- */
18
- skipPaths?: string[];
19
- /**
20
- * Custom cache key generator
21
- */
22
- keyGenerator?: (url: URL) => string;
23
- /**
24
- * Callback to determine if caching should be enabled for this request.
25
- * Receives the middleware context and returns true to enable caching.
26
- * If not provided, caching is enabled by default.
27
- *
28
- * @example
29
- * ```typescript
30
- * createDocumentCacheMiddleware({
31
- * isEnabled: (ctx) => !ctx.request.headers.has('x-skip-cache'),
32
- * })
33
- * ```
34
- */
35
- isEnabled?: (ctx: MiddlewareContext<TEnv>) => boolean | Promise<boolean>;
36
- /**
37
- * Enable debug logging for cache operations.
38
- * Logs HIT, MISS, STALE, and REVALIDATED events.
39
- * Defaults to false.
40
- */
41
- debug?: boolean;
42
- }
43
- /**
44
- * Create document cache middleware
45
- *
46
- * Add this middleware to your router to enable document-level caching.
47
- * It uses the cache store's getResponse/putResponse methods for caching.
48
- * Routes opt-in by setting Cache-Control headers with s-maxage.
49
- *
50
- * @example
51
- * ```typescript
52
- * // Add middleware to router
53
- * const router = createRouter<AppEnv>()
54
- * .use(createDocumentCacheMiddleware({
55
- * isEnabled: (ctx) => ctx.url.pathname !== '/admin',
56
- * }))
57
- * .route("home", (ctx) => {
58
- * ctx.headers.set("Cache-Control", "s-maxage=60, stale-while-revalidate=300");
59
- * return <HomePage />;
60
- * });
61
- * ```
62
- */
63
- export declare function createDocumentCacheMiddleware<TEnv = any>(options?: DocumentCacheOptions<TEnv>): MiddlewareFn<TEnv>;
64
- //# sourceMappingURL=document-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-cache.d.ts","sourceRoot":"","sources":["../../src/cache/document-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAoH/E,MAAM,WAAW,oBAAoB,CAAC,IAAI,GAAG,GAAG;IAC9C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC;IAEpC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEzE;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,GAAG,GAAG,EACtD,OAAO,GAAE,oBAAoB,CAAC,IAAI,CAAM,GACvC,YAAY,CAAC,IAAI,CAAC,CA2JpB"}
@@ -1,228 +0,0 @@
1
- /**
2
- * Document-Level Cache Middleware
3
- *
4
- * Caches full HTTP responses at the edge based on Cache-Control headers.
5
- * Routes opt-in to caching by setting s-maxage or stale-while-revalidate headers.
6
- *
7
- * Flow:
8
- * 1. Check cache for existing response
9
- * 2. If fresh hit → return cached response
10
- * 3. If stale hit (within SWR window) → return cached, revalidate in background
11
- * 4. If miss → run handler, cache if response has cache headers
12
- */
13
- import { getRequestContext } from "../server/request-context.js";
14
- // ============================================================================
15
- // Constants
16
- // ============================================================================
17
- /** Header indicating cache status for debugging */
18
- const CACHE_STATUS_HEADER = "x-document-cache-status";
19
- /**
20
- * Simple hash function for segment IDs.
21
- * Creates a short, deterministic hash to differentiate cache keys
22
- * based on which segments the client already has.
23
- */
24
- function hashSegmentIds(segmentIds) {
25
- if (!segmentIds)
26
- return "";
27
- let hash = 0;
28
- for (let i = 0; i < segmentIds.length; i++) {
29
- const char = segmentIds.charCodeAt(i);
30
- hash = ((hash << 5) - hash + char) | 0;
31
- }
32
- // Convert to base36 for shorter string, take absolute value
33
- return Math.abs(hash).toString(36);
34
- }
35
- /**
36
- * Parse Cache-Control header for s-maxage and stale-while-revalidate directives
37
- */
38
- function parseCacheControl(header) {
39
- if (!header)
40
- return null;
41
- const directives = {};
42
- // Parse s-maxage
43
- const sMaxAgeMatch = header.match(/s-maxage\s*=\s*(\d+)/i);
44
- if (sMaxAgeMatch) {
45
- directives.sMaxAge = parseInt(sMaxAgeMatch[1], 10);
46
- }
47
- // Parse stale-while-revalidate
48
- const swrMatch = header.match(/stale-while-revalidate\s*=\s*(\d+)/i);
49
- if (swrMatch) {
50
- directives.staleWhileRevalidate = parseInt(swrMatch[1], 10);
51
- }
52
- // Only return if we have at least s-maxage (required for document caching)
53
- if (directives.sMaxAge !== undefined) {
54
- return directives;
55
- }
56
- return null;
57
- }
58
- /**
59
- * Check if response should be cached based on Cache-Control headers
60
- */
61
- function shouldCacheResponse(response) {
62
- // Only cache successful responses
63
- if (response.status !== 200) {
64
- return null;
65
- }
66
- const cacheControl = response.headers.get("Cache-Control");
67
- return parseCacheControl(cacheControl);
68
- }
69
- // ============================================================================
70
- // Response Helpers
71
- // ============================================================================
72
- /**
73
- * Add cache status header to response for debugging
74
- */
75
- function addCacheStatusHeader(response, status) {
76
- const headers = new Headers(response.headers);
77
- headers.set(CACHE_STATUS_HEADER, status);
78
- return new Response(response.body, {
79
- status: response.status,
80
- statusText: response.statusText,
81
- headers,
82
- });
83
- }
84
- /**
85
- * Run onResponse callbacks registered on the request context
86
- */
87
- function runOnResponseCallbacks(response, callbacks) {
88
- let result = response;
89
- for (const callback of callbacks) {
90
- result = callback(result);
91
- }
92
- return result;
93
- }
94
- /**
95
- * Create document cache middleware
96
- *
97
- * Add this middleware to your router to enable document-level caching.
98
- * It uses the cache store's getResponse/putResponse methods for caching.
99
- * Routes opt-in by setting Cache-Control headers with s-maxage.
100
- *
101
- * @example
102
- * ```typescript
103
- * // Add middleware to router
104
- * const router = createRouter<AppEnv>()
105
- * .use(createDocumentCacheMiddleware({
106
- * isEnabled: (ctx) => ctx.url.pathname !== '/admin',
107
- * }))
108
- * .route("home", (ctx) => {
109
- * ctx.headers.set("Cache-Control", "s-maxage=60, stale-while-revalidate=300");
110
- * return <HomePage />;
111
- * });
112
- * ```
113
- */
114
- export function createDocumentCacheMiddleware(options = {}) {
115
- const { skipPaths = [], keyGenerator, isEnabled, debug = false } = options;
116
- const log = debug
117
- ? (message) => console.log(message)
118
- : () => { };
119
- return async function documentCacheMiddleware(ctx, next) {
120
- const url = ctx.url;
121
- // Skip RSC action requests (mutations shouldn't be cached)
122
- if (url.searchParams.has("_rsc_action")) {
123
- return next();
124
- }
125
- // Skip loader requests (have their own caching)
126
- if (url.searchParams.has("_rsc_loader")) {
127
- return next();
128
- }
129
- // Skip configured paths
130
- if (skipPaths.some((path) => url.pathname.startsWith(path))) {
131
- return next();
132
- }
133
- // Check if caching is enabled for this request
134
- if (isEnabled) {
135
- const enabled = await isEnabled(ctx);
136
- if (!enabled) {
137
- return next();
138
- }
139
- }
140
- // Get request context and cache store
141
- const requestCtx = getRequestContext();
142
- const store = requestCtx?._cacheStore;
143
- // Skip if no cache store or store doesn't support response caching
144
- if (!store?.getResponse || !store?.putResponse) {
145
- return next();
146
- }
147
- // Determine request type for cache key differentiation
148
- const isPartial = url.searchParams.has("_rsc_partial");
149
- const typeLabel = isPartial ? "RSC" : "HTML";
150
- // Generate cache key
151
- // For partial requests, include hash of client segments to prevent serving
152
- // wrong cached response when navigating from different pages with different layouts
153
- const clientSegments = url.searchParams.get("_rsc_segments") || "";
154
- const segmentHash = isPartial && clientSegments ? `:${hashSegmentIds(clientSegments)}` : "";
155
- const typeSuffix = isPartial ? ":rsc" : ":html";
156
- const cacheKey = keyGenerator
157
- ? keyGenerator(url) + segmentHash + typeSuffix
158
- : `${url.pathname}${segmentHash}${typeSuffix}`;
159
- try {
160
- // 1. Check cache
161
- const cached = await store.getResponse(cacheKey);
162
- if (cached && cached.response.status === 200) {
163
- if (!cached.shouldRevalidate) {
164
- // Fresh hit - return immediately
165
- log(`[DocumentCache] HIT ${typeLabel}: ${url.pathname}`);
166
- let response = addCacheStatusHeader(cached.response, "HIT");
167
- // Run onResponse callbacks even for cache hits
168
- if (requestCtx && requestCtx._onResponseCallbacks.length > 0) {
169
- response = runOnResponseCallbacks(response, requestCtx._onResponseCallbacks);
170
- }
171
- return response;
172
- }
173
- // Stale hit - return cached response, revalidate in background
174
- log(`[DocumentCache] STALE ${typeLabel}: ${url.pathname} (revalidating)`);
175
- if (requestCtx) {
176
- requestCtx.waitUntil(async () => {
177
- try {
178
- const fresh = await next();
179
- const directives = shouldCacheResponse(fresh);
180
- if (directives) {
181
- await store.putResponse(cacheKey, fresh, directives.sMaxAge, directives.staleWhileRevalidate);
182
- log(`[DocumentCache] REVALIDATED ${typeLabel}: ${url.pathname}`);
183
- }
184
- }
185
- catch (error) {
186
- console.error(`[DocumentCache] Revalidation failed:`, error);
187
- }
188
- });
189
- }
190
- let response = addCacheStatusHeader(cached.response, "STALE");
191
- // Run onResponse callbacks even for stale cache hits
192
- if (requestCtx && requestCtx._onResponseCallbacks.length > 0) {
193
- response = runOnResponseCallbacks(response, requestCtx._onResponseCallbacks);
194
- }
195
- return response;
196
- }
197
- // 2. Cache miss - run handler
198
- const originalResponse = await next();
199
- // 3. Cache if response has appropriate headers
200
- const directives = shouldCacheResponse(originalResponse);
201
- if (directives) {
202
- log(`[DocumentCache] MISS ${typeLabel}: ${url.pathname} (caching with s-maxage=${directives.sMaxAge})`);
203
- // Tee the body so we can return one stream and cache the other
204
- const [returnStream, cacheStream] = originalResponse.body.tee();
205
- // Clone response for caching (non-blocking)
206
- if (requestCtx) {
207
- requestCtx.waitUntil(async () => {
208
- try {
209
- await store.putResponse(cacheKey, new Response(cacheStream, originalResponse), directives.sMaxAge, directives.staleWhileRevalidate);
210
- }
211
- catch (error) {
212
- console.error(`[DocumentCache] Cache write failed:`, error);
213
- }
214
- });
215
- }
216
- return addCacheStatusHeader(new Response(returnStream, originalResponse), "MISS");
217
- }
218
- // No cache headers - pass through
219
- return originalResponse;
220
- }
221
- catch (error) {
222
- console.error(`[DocumentCache] Error:`, error);
223
- // On any cache error, fall through to handler
224
- return next();
225
- }
226
- };
227
- }
228
- //# sourceMappingURL=document-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-cache.js","sourceRoot":"","sources":["../../src/cache/document-cache.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Cache Store
3
- *
4
- * Server-side caching for RSC segments and loader data.
5
- *
6
- * Main exports for users:
7
- * - SegmentCacheStore - Interface for implementing custom cache stores
8
- * - MemorySegmentCacheStore - In-memory cache for development/testing
9
- * - CFCacheStore - Cloudflare edge cache store for production
10
- * - CacheScope / createCacheScope - Request-scoped cache provider
11
- */
12
- export type { CacheStore, CacheEntry, CacheValue, CacheValueType, CachePutOptions, CacheMetadata, } from "./types.js";
13
- export { MemoryCacheStore } from "./memory-store.js";
14
- export type { SegmentCacheStore, SegmentCacheProvider, CachedEntryData, CachedEntryResult, CacheGetResult, SerializedSegmentData, SegmentHandleData, CacheConfig, CacheConfigOrFactory, } from "./types.js";
15
- export { MemorySegmentCacheStore } from "./memory-segment-store.js";
16
- export { CFCacheStore, type CFCacheStoreOptions, CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER, } from "./cf/index.js";
17
- export { CacheScope, createCacheScope } from "./cache-scope.js";
18
- export { createDocumentCacheMiddleware, type DocumentCacheOptions, } from "./document-cache.js";
19
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,YAAY,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGrD,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EACL,6BAA6B,EAC7B,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Cache Store
3
- *
4
- * Server-side caching for RSC segments and loader data.
5
- *
6
- * Main exports for users:
7
- * - SegmentCacheStore - Interface for implementing custom cache stores
8
- * - MemorySegmentCacheStore - In-memory cache for development/testing
9
- * - CFCacheStore - Cloudflare edge cache store for production
10
- * - CacheScope / createCacheScope - Request-scoped cache provider
11
- */
12
- // Generic memory cache (reserved for future extensibility)
13
- export { MemoryCacheStore } from "./memory-store.js";
14
- export { MemorySegmentCacheStore } from "./memory-segment-store.js";
15
- // Cloudflare cache store
16
- export { CFCacheStore, CACHE_STALE_AT_HEADER, CACHE_STATUS_HEADER, } from "./cf/index.js";
17
- // Cache scope
18
- export { CacheScope, createCacheScope } from "./cache-scope.js";
19
- // Document-level cache middleware
20
- export { createDocumentCacheMiddleware, } from "./document-cache.js";
21
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,2DAA2D;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAerD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,yBAAyB;AACzB,OAAO,EACL,YAAY,EAEZ,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,kCAAkC;AAClC,OAAO,EACL,6BAA6B,GAE9B,MAAM,qBAAqB,CAAC"}