@timber-js/app 0.2.0-alpha.2 → 0.2.0-alpha.200

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 (1329) hide show
  1. package/LICENSE +8 -0
  2. package/agent-skill.md +346 -0
  3. package/dist/_chunks/actions-d1hCqnU3.js +345 -0
  4. package/dist/_chunks/actions-d1hCqnU3.js.map +1 -0
  5. package/dist/_chunks/als-registry-C6kcfprT.js +41 -0
  6. package/dist/_chunks/als-registry-C6kcfprT.js.map +1 -0
  7. package/dist/_chunks/als-slots-BEEIPKYm.js +26 -0
  8. package/dist/_chunks/als-slots-BEEIPKYm.js.map +1 -0
  9. package/dist/_chunks/base-path-DaQrzbez.js +80 -0
  10. package/dist/_chunks/base-path-DaQrzbez.js.map +1 -0
  11. package/dist/_chunks/build-manifest-DTmSGLRz.js +135 -0
  12. package/dist/_chunks/build-manifest-DTmSGLRz.js.map +1 -0
  13. package/dist/_chunks/build-output-helper-9dqCv1pZ.js +370 -0
  14. package/dist/_chunks/build-output-helper-9dqCv1pZ.js.map +1 -0
  15. package/dist/_chunks/cache-api-ByagcC-J.js +1149 -0
  16. package/dist/_chunks/cache-api-ByagcC-J.js.map +1 -0
  17. package/dist/_chunks/canonicalize-CgHoscYO.js +66 -0
  18. package/dist/_chunks/canonicalize-CgHoscYO.js.map +1 -0
  19. package/dist/_chunks/chains-Bpb0W4ax.js +412 -0
  20. package/dist/_chunks/chains-Bpb0W4ax.js.map +1 -0
  21. package/dist/_chunks/cli-check-D6VolrDV.js +293 -0
  22. package/dist/_chunks/cli-check-D6VolrDV.js.map +1 -0
  23. package/dist/_chunks/cli-schema-sync-D6rO-VcS.js +299 -0
  24. package/dist/_chunks/cli-schema-sync-D6rO-VcS.js.map +1 -0
  25. package/dist/_chunks/cloudflare-BFb__LYG.js +1290 -0
  26. package/dist/_chunks/cloudflare-BFb__LYG.js.map +1 -0
  27. package/dist/_chunks/codec-registry-oOUxugz3.js +21 -0
  28. package/dist/_chunks/codec-registry-oOUxugz3.js.map +1 -0
  29. package/dist/_chunks/convention-lint-fRkwVwEH.js +893 -0
  30. package/dist/_chunks/convention-lint-fRkwVwEH.js.map +1 -0
  31. package/dist/_chunks/dist-DtrJyBbw.js +386 -0
  32. package/dist/_chunks/dist-DtrJyBbw.js.map +1 -0
  33. package/dist/_chunks/error-boundary-BfPHZjm0.js +1050 -0
  34. package/dist/_chunks/error-boundary-BfPHZjm0.js.map +1 -0
  35. package/dist/_chunks/fast-hash-C-tVYrLb.js +41 -0
  36. package/dist/_chunks/fast-hash-C-tVYrLb.js.map +1 -0
  37. package/dist/_chunks/file-cache-Dw6BJPG7.js +458 -0
  38. package/dist/_chunks/file-cache-Dw6BJPG7.js.map +1 -0
  39. package/dist/_chunks/format-BKclgVbk.js +14 -0
  40. package/dist/_chunks/format-BKclgVbk.js.map +1 -0
  41. package/dist/_chunks/fs-identity-D7vb6GdI.js +208 -0
  42. package/dist/_chunks/fs-identity-D7vb6GdI.js.map +1 -0
  43. package/dist/_chunks/graph-cache-CP4GEmf9.js +304 -0
  44. package/dist/_chunks/graph-cache-CP4GEmf9.js.map +1 -0
  45. package/dist/_chunks/href-validation-BIrxavIy.js +213 -0
  46. package/dist/_chunks/href-validation-BIrxavIy.js.map +1 -0
  47. package/dist/_chunks/json-lossy-check-ClNvBM_3.js +63 -0
  48. package/dist/_chunks/json-lossy-check-ClNvBM_3.js.map +1 -0
  49. package/dist/_chunks/live-graph-D_2D32Ad.js +150 -0
  50. package/dist/_chunks/live-graph-D_2D32Ad.js.map +1 -0
  51. package/dist/_chunks/logger-uLBuGKDI.js +1484 -0
  52. package/dist/_chunks/logger-uLBuGKDI.js.map +1 -0
  53. package/dist/_chunks/navigation-context-D0TU0Jog.js +135 -0
  54. package/dist/_chunks/navigation-context-D0TU0Jog.js.map +1 -0
  55. package/dist/_chunks/navigation-root-mHSK9psY.js +126 -0
  56. package/dist/_chunks/navigation-root-mHSK9psY.js.map +1 -0
  57. package/dist/_chunks/param-value-C8TNYchQ.js +66 -0
  58. package/dist/_chunks/param-value-C8TNYchQ.js.map +1 -0
  59. package/dist/_chunks/plugin-context-8idfR3UZ.js +321 -0
  60. package/dist/_chunks/plugin-context-8idfR3UZ.js.map +1 -0
  61. package/dist/_chunks/poison-rules-DoEhbqaY.js +110 -0
  62. package/dist/_chunks/poison-rules-DoEhbqaY.js.map +1 -0
  63. package/dist/_chunks/poison-scan-Bm9Yyqk9.js +101 -0
  64. package/dist/_chunks/poison-scan-Bm9Yyqk9.js.map +1 -0
  65. package/dist/_chunks/purge-store-Byr8XOjU.js +14 -0
  66. package/dist/_chunks/purge-store-Byr8XOjU.js.map +1 -0
  67. package/dist/_chunks/resolve-schema-CBR6Lm4i.js +50 -0
  68. package/dist/_chunks/resolve-schema-CBR6Lm4i.js.map +1 -0
  69. package/dist/_chunks/rolldown-runtime-D7D4PA-g.js +13 -0
  70. package/dist/_chunks/rsc-cache-key-ClUiXQnK.js +243 -0
  71. package/dist/_chunks/rsc-cache-key-ClUiXQnK.js.map +1 -0
  72. package/dist/_chunks/rsc-media-type-DDc7duTD.js +61 -0
  73. package/dist/_chunks/rsc-media-type-DDc7duTD.js.map +1 -0
  74. package/dist/_chunks/rsc-payload-path-B_LBodc2.js +48 -0
  75. package/dist/_chunks/rsc-payload-path-B_LBodc2.js.map +1 -0
  76. package/dist/_chunks/scan-BoP17W3w.js +140 -0
  77. package/dist/_chunks/scan-BoP17W3w.js.map +1 -0
  78. package/dist/_chunks/scanner-AiazgH_f.js +1771 -0
  79. package/dist/_chunks/scanner-AiazgH_f.js.map +1 -0
  80. package/dist/_chunks/schema-bridge-C83xa9lT.js +199 -0
  81. package/dist/_chunks/schema-bridge-C83xa9lT.js.map +1 -0
  82. package/dist/_chunks/segment-classify-C539Pa2O.js +197 -0
  83. package/dist/_chunks/segment-classify-C539Pa2O.js.map +1 -0
  84. package/dist/_chunks/segment-context-D9_89u34.js +34 -0
  85. package/dist/_chunks/segment-context-D9_89u34.js.map +1 -0
  86. package/dist/_chunks/segment-keys-lqtdookO.js +256 -0
  87. package/dist/_chunks/segment-keys-lqtdookO.js.map +1 -0
  88. package/dist/_chunks/singleflight-2lUWfcAk.js +54 -0
  89. package/dist/_chunks/singleflight-2lUWfcAk.js.map +1 -0
  90. package/dist/_chunks/sizeof-lXffQ1Vr.js +35 -0
  91. package/dist/_chunks/sizeof-lXffQ1Vr.js.map +1 -0
  92. package/dist/_chunks/{ssr-data-DLnbYpj1.js → ssr-data-D6T6Y3ef.js} +3 -31
  93. package/dist/_chunks/ssr-data-D6T6Y3ef.js.map +1 -0
  94. package/dist/_chunks/state-FippDgxN.js +52 -0
  95. package/dist/_chunks/state-FippDgxN.js.map +1 -0
  96. package/dist/_chunks/status-page-marker-DwQBrLBz.js +496 -0
  97. package/dist/_chunks/status-page-marker-DwQBrLBz.js.map +1 -0
  98. package/dist/_chunks/use-query-states-I3JMng6J.js +226 -0
  99. package/dist/_chunks/use-query-states-I3JMng6J.js.map +1 -0
  100. package/dist/_chunks/walkers-B6XUtmqK.js +144 -0
  101. package/dist/_chunks/walkers-B6XUtmqK.js.map +1 -0
  102. package/dist/adapters/build-output-helper.d.ts +72 -0
  103. package/dist/adapters/build-output-helper.d.ts.map +1 -0
  104. package/dist/adapters/cloudflare-dev.d.ts +109 -0
  105. package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
  106. package/dist/adapters/cloudflare-dev.js +74 -0
  107. package/dist/adapters/cloudflare-dev.js.map +1 -0
  108. package/dist/adapters/cloudflare-kv-cache.d.ts +65 -0
  109. package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
  110. package/dist/adapters/cloudflare-kv-cache.js +123 -0
  111. package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
  112. package/dist/adapters/cloudflare.d.ts +200 -22
  113. package/dist/adapters/cloudflare.d.ts.map +1 -1
  114. package/dist/adapters/cloudflare.js +2 -188
  115. package/dist/adapters/compress-module.d.ts +17 -4
  116. package/dist/adapters/compress-module.d.ts.map +1 -1
  117. package/dist/adapters/fs-identity.d.ts +64 -0
  118. package/dist/adapters/fs-identity.d.ts.map +1 -0
  119. package/dist/adapters/nitro-presets.d.ts +37 -0
  120. package/dist/adapters/nitro-presets.d.ts.map +1 -0
  121. package/dist/adapters/nitro-preview.d.ts +32 -0
  122. package/dist/adapters/nitro-preview.d.ts.map +1 -0
  123. package/dist/adapters/nitro.d.ts +82 -37
  124. package/dist/adapters/nitro.d.ts.map +1 -1
  125. package/dist/adapters/nitro.js +457 -288
  126. package/dist/adapters/nitro.js.map +1 -1
  127. package/dist/adapters/shared.d.ts +62 -0
  128. package/dist/adapters/shared.d.ts.map +1 -0
  129. package/dist/adapters/types.d.ts +28 -6
  130. package/dist/adapters/types.d.ts.map +1 -1
  131. package/dist/analyze/chains.d.ts +124 -0
  132. package/dist/analyze/chains.d.ts.map +1 -0
  133. package/dist/analyze/classify.d.ts +150 -0
  134. package/dist/analyze/classify.d.ts.map +1 -0
  135. package/dist/analyze/crawl-entry.d.ts +17 -0
  136. package/dist/analyze/crawl-entry.d.ts.map +1 -0
  137. package/dist/analyze/crawl-entry.js +313 -0
  138. package/dist/analyze/crawl-entry.js.map +1 -0
  139. package/dist/analyze/crawl.d.ts +134 -0
  140. package/dist/analyze/crawl.d.ts.map +1 -0
  141. package/dist/analyze/graph-cache.d.ts +104 -0
  142. package/dist/analyze/graph-cache.d.ts.map +1 -0
  143. package/dist/analyze/graph-command.d.ts +43 -0
  144. package/dist/analyze/graph-command.d.ts.map +1 -0
  145. package/dist/analyze/graph-command.js +472 -0
  146. package/dist/analyze/graph-command.js.map +1 -0
  147. package/dist/analyze/live-graph.d.ts +81 -0
  148. package/dist/analyze/live-graph.d.ts.map +1 -0
  149. package/dist/analyze/poison-rules.d.ts +72 -0
  150. package/dist/analyze/poison-rules.d.ts.map +1 -0
  151. package/dist/analyze/poison-scan.d.ts +48 -0
  152. package/dist/analyze/poison-scan.d.ts.map +1 -0
  153. package/dist/analyze/scan.d.ts +73 -0
  154. package/dist/analyze/scan.d.ts.map +1 -0
  155. package/dist/cache/cache-api.d.ts +48 -0
  156. package/dist/cache/cache-api.d.ts.map +1 -0
  157. package/dist/cache/fast-hash.d.ts +27 -0
  158. package/dist/cache/fast-hash.d.ts.map +1 -0
  159. package/dist/cache/handler-store.d.ts +33 -0
  160. package/dist/cache/handler-store.d.ts.map +1 -0
  161. package/dist/cache/index.d.ts +32 -9
  162. package/dist/cache/index.d.ts.map +1 -1
  163. package/dist/cache/index.js +3 -284
  164. package/dist/cache/invalidation-epoch.d.ts +43 -0
  165. package/dist/cache/invalidation-epoch.d.ts.map +1 -0
  166. package/dist/cache/json-lossy-check.d.ts +11 -0
  167. package/dist/cache/json-lossy-check.d.ts.map +1 -0
  168. package/dist/cache/redis-handler.d.ts +141 -9
  169. package/dist/cache/redis-handler.d.ts.map +1 -1
  170. package/dist/cache/singleflight.d.ts +21 -2
  171. package/dist/cache/singleflight.d.ts.map +1 -1
  172. package/dist/cache/sizeof.d.ts +22 -0
  173. package/dist/cache/sizeof.d.ts.map +1 -0
  174. package/dist/cache/stable-stringify.d.ts +9 -0
  175. package/dist/cache/stable-stringify.d.ts.map +1 -1
  176. package/dist/cache/store.d.ts +53 -0
  177. package/dist/cache/store.d.ts.map +1 -0
  178. package/dist/cache/stores/cloudflare-kv.d.ts +38 -0
  179. package/dist/cache/stores/cloudflare-kv.d.ts.map +1 -0
  180. package/dist/cache/stores/cloudflare-kv.js +29 -0
  181. package/dist/cache/stores/cloudflare-kv.js.map +1 -0
  182. package/dist/cache/stores/memory.d.ts +42 -0
  183. package/dist/cache/stores/memory.d.ts.map +1 -0
  184. package/dist/cache/stores/memory.js +90 -0
  185. package/dist/cache/stores/memory.js.map +1 -0
  186. package/dist/cache/stores/redis.d.ts +69 -0
  187. package/dist/cache/stores/redis.d.ts.map +1 -0
  188. package/dist/cache/stores/redis.js +35 -0
  189. package/dist/cache/stores/redis.js.map +1 -0
  190. package/dist/cache/stores/vercel.d.ts +36 -0
  191. package/dist/cache/stores/vercel.d.ts.map +1 -0
  192. package/dist/cache/stores/vercel.js +33 -0
  193. package/dist/cache/stores/vercel.js.map +1 -0
  194. package/dist/cache/tag-aware-handler.d.ts +52 -0
  195. package/dist/cache/tag-aware-handler.d.ts.map +1 -0
  196. package/dist/cache/timber-cache.d.ts +21 -11
  197. package/dist/cache/timber-cache.d.ts.map +1 -1
  198. package/dist/cdn/cloudflare-purge.d.ts +23 -0
  199. package/dist/cdn/cloudflare-purge.d.ts.map +1 -0
  200. package/dist/cdn/cloudflare-purge.js +30 -0
  201. package/dist/cdn/cloudflare-purge.js.map +1 -0
  202. package/dist/cdn/fastly-purge.d.ts +25 -0
  203. package/dist/cdn/fastly-purge.d.ts.map +1 -0
  204. package/dist/cdn/fastly-purge.js +33 -0
  205. package/dist/cdn/fastly-purge.js.map +1 -0
  206. package/dist/cdn/headers.d.ts +97 -0
  207. package/dist/cdn/headers.d.ts.map +1 -0
  208. package/dist/cdn/index.d.ts +5 -0
  209. package/dist/cdn/index.d.ts.map +1 -0
  210. package/dist/cdn/index.js +94 -0
  211. package/dist/cdn/index.js.map +1 -0
  212. package/dist/cdn/purge-store.d.ts +23 -0
  213. package/dist/cdn/purge-store.d.ts.map +1 -0
  214. package/dist/cdn/workers-cache-purge.d.ts +20 -0
  215. package/dist/cdn/workers-cache-purge.d.ts.map +1 -0
  216. package/dist/cdn/workers-cache-purge.js +35 -0
  217. package/dist/cdn/workers-cache-purge.js.map +1 -0
  218. package/dist/cli-check.d.ts +163 -0
  219. package/dist/cli-check.d.ts.map +1 -0
  220. package/dist/cli-schema-sync.d.ts +59 -0
  221. package/dist/cli-schema-sync.d.ts.map +1 -0
  222. package/dist/cli.d.ts +75 -8
  223. package/dist/cli.d.ts.map +1 -1
  224. package/dist/cli.js +175 -47
  225. package/dist/cli.js.map +1 -1
  226. package/dist/client/browser-dev.d.ts +37 -1
  227. package/dist/client/browser-dev.d.ts.map +1 -1
  228. package/dist/client/browser-entry/action-dispatch.d.ts +19 -0
  229. package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
  230. package/dist/client/browser-entry/action-queue.d.ts +44 -0
  231. package/dist/client/browser-entry/action-queue.d.ts.map +1 -0
  232. package/dist/client/browser-entry/hmr.d.ts +21 -0
  233. package/dist/client/browser-entry/hmr.d.ts.map +1 -0
  234. package/dist/client/browser-entry/hydrate.d.ts +63 -0
  235. package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
  236. package/dist/client/browser-entry/index.d.ts +30 -0
  237. package/dist/client/browser-entry/index.d.ts.map +1 -0
  238. package/dist/client/browser-entry/post-hydration.d.ts +29 -0
  239. package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
  240. package/dist/client/browser-entry/router-init.d.ts +46 -0
  241. package/dist/client/browser-entry/router-init.d.ts.map +1 -0
  242. package/dist/client/browser-entry/rsc-stream.d.ts +32 -0
  243. package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
  244. package/dist/client/browser-entry/scroll.d.ts +28 -0
  245. package/dist/client/browser-entry/scroll.d.ts.map +1 -0
  246. package/dist/client/deny-last-resort.d.ts +29 -0
  247. package/dist/client/deny-last-resort.d.ts.map +1 -0
  248. package/dist/client/error-boundary.d.ts +66 -6
  249. package/dist/client/error-boundary.d.ts.map +1 -1
  250. package/dist/client/error-boundary.js +2 -126
  251. package/dist/client/error-reconstituter.d.ts +61 -0
  252. package/dist/client/error-reconstituter.d.ts.map +1 -0
  253. package/dist/client/form.d.ts +16 -27
  254. package/dist/client/form.d.ts.map +1 -1
  255. package/dist/client/global-context.d.ts +15 -0
  256. package/dist/client/global-context.d.ts.map +1 -0
  257. package/dist/client/history.d.ts +50 -9
  258. package/dist/client/history.d.ts.map +1 -1
  259. package/dist/client/index.d.ts +20 -33
  260. package/dist/client/index.d.ts.map +1 -1
  261. package/dist/client/index.js +323 -1148
  262. package/dist/client/index.js.map +1 -1
  263. package/dist/client/internal.d.ts +20 -0
  264. package/dist/client/internal.d.ts.map +1 -0
  265. package/dist/client/internal.js +818 -0
  266. package/dist/client/internal.js.map +1 -0
  267. package/dist/client/link.d.ts +63 -60
  268. package/dist/client/link.d.ts.map +1 -1
  269. package/dist/client/location-search.d.ts +12 -0
  270. package/dist/client/location-search.d.ts.map +1 -0
  271. package/dist/client/navigation-api.d.ts +121 -0
  272. package/dist/client/navigation-api.d.ts.map +1 -0
  273. package/dist/client/navigation-commit.d.ts +98 -0
  274. package/dist/client/navigation-commit.d.ts.map +1 -0
  275. package/dist/client/navigation-context.d.ts +51 -31
  276. package/dist/client/navigation-context.d.ts.map +1 -1
  277. package/dist/client/navigation-root.d.ts +98 -0
  278. package/dist/client/navigation-root.d.ts.map +1 -0
  279. package/dist/client/navigation-transition.d.ts +187 -0
  280. package/dist/client/navigation-transition.d.ts.map +1 -0
  281. package/dist/client/nuqs-adapter.d.ts +1 -1
  282. package/dist/client/nuqs-adapter.d.ts.map +1 -1
  283. package/dist/client/params-context.d.ts +81 -0
  284. package/dist/client/params-context.d.ts.map +1 -0
  285. package/dist/client/react-root.d.ts +44 -0
  286. package/dist/client/react-root.d.ts.map +1 -0
  287. package/dist/client/router-effects.d.ts +130 -0
  288. package/dist/client/router-effects.d.ts.map +1 -0
  289. package/dist/client/router-lifecycle.d.ts +98 -0
  290. package/dist/client/router-lifecycle.d.ts.map +1 -0
  291. package/dist/client/router-pipeline.d.ts +87 -0
  292. package/dist/client/router-pipeline.d.ts.map +1 -0
  293. package/dist/client/router-ref.d.ts +2 -2
  294. package/dist/client/router-ref.d.ts.map +1 -1
  295. package/dist/client/router-skew.d.ts +21 -0
  296. package/dist/client/router-skew.d.ts.map +1 -0
  297. package/dist/client/router-types.d.ts +272 -0
  298. package/dist/client/router-types.d.ts.map +1 -0
  299. package/dist/client/router.d.ts +1 -97
  300. package/dist/client/router.d.ts.map +1 -1
  301. package/dist/client/rsc-fetch.d.ts +104 -26
  302. package/dist/client/rsc-fetch.d.ts.map +1 -1
  303. package/dist/client/segment-cache.d.ts +161 -25
  304. package/dist/client/segment-cache.d.ts.map +1 -1
  305. package/dist/client/segment-context.d.ts +1 -1
  306. package/dist/client/segment-context.d.ts.map +1 -1
  307. package/dist/client/segment-outlet.d.ts +68 -0
  308. package/dist/client/segment-outlet.d.ts.map +1 -0
  309. package/dist/client/segment-update-context.d.ts +15 -0
  310. package/dist/client/segment-update-context.d.ts.map +1 -0
  311. package/dist/client/shallow-url.d.ts +10 -0
  312. package/dist/client/shallow-url.d.ts.map +1 -0
  313. package/dist/client/slot-content-cache-context.d.ts +35 -0
  314. package/dist/client/slot-content-cache-context.d.ts.map +1 -0
  315. package/dist/client/slot-context.d.ts +31 -0
  316. package/dist/client/slot-context.d.ts.map +1 -0
  317. package/dist/client/slot-outlet.d.ts +16 -0
  318. package/dist/client/slot-outlet.d.ts.map +1 -0
  319. package/dist/client/slot-provider.d.ts +25 -0
  320. package/dist/client/slot-provider.d.ts.map +1 -0
  321. package/dist/client/ssr-data.d.ts +29 -7
  322. package/dist/client/ssr-data.d.ts.map +1 -1
  323. package/dist/client/stale-client.d.ts +69 -0
  324. package/dist/client/stale-client.d.ts.map +1 -0
  325. package/dist/client/state.d.ts +19 -8
  326. package/dist/client/state.d.ts.map +1 -1
  327. package/dist/client/status-page-marker.d.ts +25 -0
  328. package/dist/client/status-page-marker.d.ts.map +1 -0
  329. package/dist/client/top-loader.d.ts +7 -6
  330. package/dist/client/top-loader.d.ts.map +1 -1
  331. package/dist/client/unload-guard.d.ts +5 -0
  332. package/dist/client/unload-guard.d.ts.map +1 -1
  333. package/dist/client/use-cookie.d.ts +12 -0
  334. package/dist/client/use-cookie.d.ts.map +1 -1
  335. package/dist/client/use-link-status.d.ts +5 -5
  336. package/dist/client/use-link-status.d.ts.map +1 -1
  337. package/dist/client/use-pathname.d.ts +13 -11
  338. package/dist/client/use-pathname.d.ts.map +1 -1
  339. package/dist/client/use-pending-navigation.d.ts +23 -0
  340. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  341. package/dist/client/use-query-states.d.ts +10 -4
  342. package/dist/client/use-query-states.d.ts.map +1 -1
  343. package/dist/client/use-router.d.ts +2 -2
  344. package/dist/client/use-router.d.ts.map +1 -1
  345. package/dist/client/use-search-params.d.ts +15 -8
  346. package/dist/client/use-search-params.d.ts.map +1 -1
  347. package/dist/client/use-segment-params.d.ts +55 -0
  348. package/dist/client/use-segment-params.d.ts.map +1 -0
  349. package/dist/codec.d.ts +69 -0
  350. package/dist/codec.d.ts.map +1 -0
  351. package/dist/codec.js +76 -0
  352. package/dist/codec.js.map +1 -0
  353. package/dist/config-types.d.ts +322 -0
  354. package/dist/config-types.d.ts.map +1 -0
  355. package/dist/config-validation.d.ts +51 -0
  356. package/dist/config-validation.d.ts.map +1 -0
  357. package/dist/cookies/define-cookie.d.ts +58 -25
  358. package/dist/cookies/define-cookie.d.ts.map +1 -1
  359. package/dist/cookies/index.d.ts +3 -2
  360. package/dist/cookies/index.d.ts.map +1 -1
  361. package/dist/cookies/index.js +256 -36
  362. package/dist/cookies/index.js.map +1 -1
  363. package/dist/cookies/json-cookie.d.ts +64 -0
  364. package/dist/cookies/json-cookie.d.ts.map +1 -0
  365. package/dist/cookies/validation.d.ts +34 -0
  366. package/dist/cookies/validation.d.ts.map +1 -0
  367. package/dist/dev-tools/404-page.d.ts +50 -0
  368. package/dist/dev-tools/404-page.d.ts.map +1 -0
  369. package/dist/dev-tools/browser-logs.d.ts +40 -0
  370. package/dist/dev-tools/browser-logs.d.ts.map +1 -0
  371. package/dist/dev-tools/dev-page-shell.d.ts +78 -0
  372. package/dist/dev-tools/dev-page-shell.d.ts.map +1 -0
  373. package/dist/dev-tools/error-page.d.ts +32 -0
  374. package/dist/dev-tools/error-page.d.ts.map +1 -0
  375. package/dist/dev-tools/holding-server.d.ts +46 -0
  376. package/dist/dev-tools/holding-server.d.ts.map +1 -0
  377. package/dist/dev-tools/hydration-overlay.d.ts +11 -0
  378. package/dist/dev-tools/hydration-overlay.d.ts.map +1 -0
  379. package/dist/dev-tools/index.d.ts +31 -0
  380. package/dist/dev-tools/index.d.ts.map +1 -0
  381. package/dist/dev-tools/instrumentation.d.ts +59 -0
  382. package/dist/dev-tools/instrumentation.d.ts.map +1 -0
  383. package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
  384. package/dist/dev-tools/logger.d.ts.map +1 -0
  385. package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +17 -3
  386. package/dist/dev-tools/logs.d.ts.map +1 -0
  387. package/dist/dev-tools/overlay.d.ts +91 -0
  388. package/dist/dev-tools/overlay.d.ts.map +1 -0
  389. package/dist/dev-tools/stack-classifier.d.ts +34 -0
  390. package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
  391. package/dist/dev-tools/terminal.d.ts +28 -0
  392. package/dist/dev-tools/terminal.d.ts.map +1 -0
  393. package/dist/fonts/ast-walk.d.ts +68 -0
  394. package/dist/fonts/ast-walk.d.ts.map +1 -0
  395. package/dist/fonts/ast.d.ts +112 -8
  396. package/dist/fonts/ast.d.ts.map +1 -1
  397. package/dist/fonts/bundle.d.ts +50 -0
  398. package/dist/fonts/bundle.d.ts.map +1 -0
  399. package/dist/fonts/css.d.ts +2 -1
  400. package/dist/fonts/css.d.ts.map +1 -1
  401. package/dist/fonts/dev-middleware.d.ts +22 -0
  402. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  403. package/dist/fonts/fallbacks.d.ts +0 -7
  404. package/dist/fonts/fallbacks.d.ts.map +1 -1
  405. package/dist/fonts/google.d.ts +5 -3
  406. package/dist/fonts/google.d.ts.map +1 -1
  407. package/dist/fonts/local.d.ts +6 -4
  408. package/dist/fonts/local.d.ts.map +1 -1
  409. package/dist/fonts/paths.d.ts +43 -0
  410. package/dist/fonts/paths.d.ts.map +1 -0
  411. package/dist/fonts/pipeline.d.ts +177 -0
  412. package/dist/fonts/pipeline.d.ts.map +1 -0
  413. package/dist/fonts/transform.d.ts +82 -0
  414. package/dist/fonts/transform.d.ts.map +1 -0
  415. package/dist/fonts/types.d.ts +47 -1
  416. package/dist/fonts/types.d.ts.map +1 -1
  417. package/dist/fonts/virtual-modules.d.ts +77 -0
  418. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  419. package/dist/index.d.ts +35 -153
  420. package/dist/index.d.ts.map +1 -1
  421. package/dist/index.js +10488 -13975
  422. package/dist/index.js.map +1 -1
  423. package/dist/params/codec-registry.d.ts +26 -0
  424. package/dist/params/codec-registry.d.ts.map +1 -0
  425. package/dist/params/define-schema.d.ts +81 -0
  426. package/dist/params/define-schema.d.ts.map +1 -0
  427. package/dist/params/index.d.ts +5 -0
  428. package/dist/params/index.d.ts.map +1 -0
  429. package/dist/params/index.js +34 -0
  430. package/dist/params/index.js.map +1 -0
  431. package/dist/params/resolve-schema.d.ts +34 -0
  432. package/dist/params/resolve-schema.d.ts.map +1 -0
  433. package/dist/plugin-context.d.ts +276 -0
  434. package/dist/plugin-context.d.ts.map +1 -0
  435. package/dist/plugins/adapter-build.d.ts +21 -1
  436. package/dist/plugins/adapter-build.d.ts.map +1 -1
  437. package/dist/plugins/build-manifest.d.ts +7 -3
  438. package/dist/plugins/build-manifest.d.ts.map +1 -1
  439. package/dist/plugins/build-report.d.ts +54 -7
  440. package/dist/plugins/build-report.d.ts.map +1 -1
  441. package/dist/plugins/cache.d.ts +64 -0
  442. package/dist/plugins/cache.d.ts.map +1 -0
  443. package/dist/plugins/callsite-ast.d.ts +117 -0
  444. package/dist/plugins/callsite-ast.d.ts.map +1 -0
  445. package/dist/plugins/callsite-jsx.d.ts +35 -0
  446. package/dist/plugins/callsite-jsx.d.ts.map +1 -0
  447. package/dist/plugins/chunks.d.ts +11 -4
  448. package/dist/plugins/chunks.d.ts.map +1 -1
  449. package/dist/plugins/client-chunks.d.ts +40 -0
  450. package/dist/plugins/client-chunks.d.ts.map +1 -0
  451. package/dist/plugins/cloudflare-wasm.d.ts +21 -0
  452. package/dist/plugins/cloudflare-wasm.d.ts.map +1 -0
  453. package/dist/plugins/content.d.ts +1 -1
  454. package/dist/plugins/content.d.ts.map +1 -1
  455. package/dist/plugins/dev-discovery.d.ts +123 -0
  456. package/dist/plugins/dev-discovery.d.ts.map +1 -0
  457. package/dist/plugins/dev-server.d.ts +17 -1
  458. package/dist/plugins/dev-server.d.ts.map +1 -1
  459. package/dist/plugins/entries.d.ts +32 -1
  460. package/dist/plugins/entries.d.ts.map +1 -1
  461. package/dist/plugins/fonts.d.ts +16 -65
  462. package/dist/plugins/fonts.d.ts.map +1 -1
  463. package/dist/plugins/graph-endpoint.d.ts +112 -0
  464. package/dist/plugins/graph-endpoint.d.ts.map +1 -0
  465. package/dist/plugins/mdx.d.ts +24 -5
  466. package/dist/plugins/mdx.d.ts.map +1 -1
  467. package/dist/plugins/prebuilt-capture.d.ts +60 -0
  468. package/dist/plugins/prebuilt-capture.d.ts.map +1 -0
  469. package/dist/plugins/prebuilt-options-analysis.d.ts +40 -0
  470. package/dist/plugins/prebuilt-options-analysis.d.ts.map +1 -0
  471. package/dist/plugins/prebuilt.d.ts +82 -0
  472. package/dist/plugins/prebuilt.d.ts.map +1 -0
  473. package/dist/plugins/prerender-sugar.d.ts +39 -0
  474. package/dist/plugins/prerender-sugar.d.ts.map +1 -0
  475. package/dist/plugins/request-dep/analysis.d.ts +106 -0
  476. package/dist/plugins/request-dep/analysis.d.ts.map +1 -0
  477. package/dist/plugins/request-dep/index.d.ts +75 -0
  478. package/dist/plugins/request-dep/index.d.ts.map +1 -0
  479. package/dist/plugins/request-dep/origin.d.ts +61 -0
  480. package/dist/plugins/request-dep/origin.d.ts.map +1 -0
  481. package/dist/plugins/routing.d.ts +1 -1
  482. package/dist/plugins/routing.d.ts.map +1 -1
  483. package/dist/plugins/server-bundle.d.ts.map +1 -1
  484. package/dist/plugins/shims.d.ts +29 -5
  485. package/dist/plugins/shims.d.ts.map +1 -1
  486. package/dist/plugins/static-build.d.ts +218 -21
  487. package/dist/plugins/static-build.d.ts.map +1 -1
  488. package/dist/routing/codegen-shared.d.ts +26 -0
  489. package/dist/routing/codegen-shared.d.ts.map +1 -0
  490. package/dist/routing/codegen-types.d.ts +61 -0
  491. package/dist/routing/codegen-types.d.ts.map +1 -0
  492. package/dist/routing/codegen-write.d.ts +51 -0
  493. package/dist/routing/codegen-write.d.ts.map +1 -0
  494. package/dist/routing/codegen.d.ts +8 -3
  495. package/dist/routing/codegen.d.ts.map +1 -1
  496. package/dist/routing/collision-probe.d.ts +104 -0
  497. package/dist/routing/collision-probe.d.ts.map +1 -0
  498. package/dist/routing/collision-spaces.d.ts +26 -0
  499. package/dist/routing/collision-spaces.d.ts.map +1 -0
  500. package/dist/routing/convention-lint.d.ts +55 -0
  501. package/dist/routing/convention-lint.d.ts.map +1 -0
  502. package/dist/routing/export-detect.d.ts +72 -0
  503. package/dist/routing/export-detect.d.ts.map +1 -0
  504. package/dist/routing/file-cache.d.ts +8 -0
  505. package/dist/routing/file-cache.d.ts.map +1 -0
  506. package/dist/routing/index.d.ts +13 -7
  507. package/dist/routing/index.d.ts.map +1 -1
  508. package/dist/routing/index.js +5 -2
  509. package/dist/routing/interception-overlap.d.ts +35 -0
  510. package/dist/routing/interception-overlap.d.ts.map +1 -0
  511. package/dist/routing/interception.d.ts +234 -10
  512. package/dist/routing/interception.d.ts.map +1 -1
  513. package/dist/routing/link-codegen.d.ts +105 -0
  514. package/dist/routing/link-codegen.d.ts.map +1 -0
  515. package/dist/routing/manifest-codegen.d.ts +26 -0
  516. package/dist/routing/manifest-codegen.d.ts.map +1 -0
  517. package/dist/routing/scanner.d.ts +14 -10
  518. package/dist/routing/scanner.d.ts.map +1 -1
  519. package/dist/routing/schema-validation.d.ts +35 -0
  520. package/dist/routing/schema-validation.d.ts.map +1 -0
  521. package/dist/routing/segment-classify.d.ts +114 -0
  522. package/dist/routing/segment-classify.d.ts.map +1 -0
  523. package/dist/routing/segment-codegen.d.ts +38 -0
  524. package/dist/routing/segment-codegen.d.ts.map +1 -0
  525. package/dist/routing/segment-keys.d.ts +118 -0
  526. package/dist/routing/segment-keys.d.ts.map +1 -0
  527. package/dist/routing/slot-placement.d.ts +48 -0
  528. package/dist/routing/slot-placement.d.ts.map +1 -0
  529. package/dist/routing/types.d.ts +74 -26
  530. package/dist/routing/types.d.ts.map +1 -1
  531. package/dist/routing/walkers.d.ts +57 -0
  532. package/dist/routing/walkers.d.ts.map +1 -0
  533. package/dist/rsc-runtime/rsc.d.ts +1 -1
  534. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  535. package/dist/rsc-runtime/ssr.d.ts +14 -0
  536. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  537. package/dist/rsc-runtime/transforms.d.ts +13 -0
  538. package/dist/rsc-runtime/transforms.d.ts.map +1 -0
  539. package/dist/schema-bridge.d.ts +145 -0
  540. package/dist/schema-bridge.d.ts.map +1 -0
  541. package/dist/search-params/define.d.ts +262 -0
  542. package/dist/search-params/define.d.ts.map +1 -0
  543. package/dist/search-params/index.d.ts +3 -7
  544. package/dist/search-params/index.d.ts.map +1 -1
  545. package/dist/search-params/index.js +179 -360
  546. package/dist/search-params/index.js.map +1 -1
  547. package/dist/search-params/parse-total.d.ts +81 -0
  548. package/dist/search-params/parse-total.d.ts.map +1 -0
  549. package/dist/search-params/serialize-equal.d.ts +9 -0
  550. package/dist/search-params/serialize-equal.d.ts.map +1 -0
  551. package/dist/search-params/wrappers.d.ts +76 -0
  552. package/dist/search-params/wrappers.d.ts.map +1 -0
  553. package/dist/server/access-gate.d.ts +98 -10
  554. package/dist/server/access-gate.d.ts.map +1 -1
  555. package/dist/server/action-client.d.ts +42 -7
  556. package/dist/server/action-client.d.ts.map +1 -1
  557. package/dist/server/action-encryption.d.ts +76 -0
  558. package/dist/server/action-encryption.d.ts.map +1 -0
  559. package/dist/server/action-handler.d.ts +39 -5
  560. package/dist/server/action-handler.d.ts.map +1 -1
  561. package/dist/server/actions.d.ts +29 -35
  562. package/dist/server/actions.d.ts.map +1 -1
  563. package/dist/server/als-registry.d.ts +117 -13
  564. package/dist/server/als-registry.d.ts.map +1 -1
  565. package/dist/server/asset-headers.d.ts +8 -18
  566. package/dist/server/asset-headers.d.ts.map +1 -1
  567. package/dist/server/body-limits.d.ts.map +1 -1
  568. package/dist/server/build-manifest.d.ts +25 -30
  569. package/dist/server/build-manifest.d.ts.map +1 -1
  570. package/dist/server/canonicalize.d.ts +10 -0
  571. package/dist/server/canonicalize.d.ts.map +1 -1
  572. package/dist/server/chain-url-parts.d.ts +82 -0
  573. package/dist/server/chain-url-parts.d.ts.map +1 -0
  574. package/dist/server/children-interception.d.ts +49 -0
  575. package/dist/server/children-interception.d.ts.map +1 -0
  576. package/dist/server/coalesce-tick.d.ts +40 -0
  577. package/dist/server/coalesce-tick.d.ts.map +1 -0
  578. package/dist/server/compress.d.ts.map +1 -1
  579. package/dist/server/cookie-context.d.ts +170 -0
  580. package/dist/server/cookie-context.d.ts.map +1 -0
  581. package/dist/server/cookie-parsing.d.ts +65 -0
  582. package/dist/server/cookie-parsing.d.ts.map +1 -0
  583. package/dist/server/csp-nonce.d.ts +45 -0
  584. package/dist/server/csp-nonce.d.ts.map +1 -0
  585. package/dist/server/csrf.d.ts +3 -2
  586. package/dist/server/csrf.d.ts.map +1 -1
  587. package/dist/server/debug.d.ts +82 -0
  588. package/dist/server/debug.d.ts.map +1 -0
  589. package/dist/server/default-logger.d.ts +22 -0
  590. package/dist/server/default-logger.d.ts.map +1 -0
  591. package/dist/server/default-status-page.d.ts +45 -0
  592. package/dist/server/default-status-page.d.ts.map +1 -0
  593. package/dist/server/deny-boundary.d.ts +253 -0
  594. package/dist/server/deny-boundary.d.ts.map +1 -0
  595. package/dist/server/deny-renderer.d.ts +20 -9
  596. package/dist/server/deny-renderer.d.ts.map +1 -1
  597. package/dist/server/dev-source-map.d.ts +22 -0
  598. package/dist/server/dev-source-map.d.ts.map +1 -0
  599. package/dist/server/early-hints-sender.d.ts.map +1 -1
  600. package/dist/server/early-hints.d.ts +14 -12
  601. package/dist/server/early-hints.d.ts.map +1 -1
  602. package/dist/server/error-boundary-wrapper.d.ts +101 -10
  603. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  604. package/dist/server/error-response-headers.d.ts +3 -0
  605. package/dist/server/error-response-headers.d.ts.map +1 -0
  606. package/dist/server/fallback-error.d.ts +12 -7
  607. package/dist/server/fallback-error.d.ts.map +1 -1
  608. package/dist/server/flight-injection-state.d.ts +66 -0
  609. package/dist/server/flight-injection-state.d.ts.map +1 -0
  610. package/dist/server/flight-scripts.d.ts +45 -0
  611. package/dist/server/flight-scripts.d.ts.map +1 -0
  612. package/dist/server/form-data.d.ts +41 -0
  613. package/dist/server/form-data.d.ts.map +1 -1
  614. package/dist/server/form-flash.d.ts +1 -1
  615. package/dist/server/head-response.d.ts +35 -0
  616. package/dist/server/head-response.d.ts.map +1 -0
  617. package/dist/server/html-injector-core.d.ts +257 -0
  618. package/dist/server/html-injector-core.d.ts.map +1 -0
  619. package/dist/server/html-injectors.d.ts +84 -42
  620. package/dist/server/html-injectors.d.ts.map +1 -1
  621. package/dist/server/index.d.ts +18 -54
  622. package/dist/server/index.d.ts.map +1 -1
  623. package/dist/server/index.js +212 -2930
  624. package/dist/server/index.js.map +1 -1
  625. package/dist/server/instrumentation.d.ts +1 -1
  626. package/dist/server/internal.d.ts +50 -0
  627. package/dist/server/internal.d.ts.map +1 -0
  628. package/dist/server/internal.js +4034 -0
  629. package/dist/server/internal.js.map +1 -0
  630. package/dist/server/logger.d.ts +39 -7
  631. package/dist/server/logger.d.ts.map +1 -1
  632. package/dist/server/metadata-collector.d.ts +71 -0
  633. package/dist/server/metadata-collector.d.ts.map +1 -0
  634. package/dist/server/metadata-platform.d.ts +2 -2
  635. package/dist/server/metadata-render.d.ts +2 -2
  636. package/dist/server/metadata-render.d.ts.map +1 -1
  637. package/dist/server/metadata-routes.d.ts +60 -11
  638. package/dist/server/metadata-routes.d.ts.map +1 -1
  639. package/dist/server/metadata-social.d.ts +2 -2
  640. package/dist/server/metadata.d.ts +10 -2
  641. package/dist/server/metadata.d.ts.map +1 -1
  642. package/dist/server/middleware-runner.d.ts +20 -5
  643. package/dist/server/middleware-runner.d.ts.map +1 -1
  644. package/dist/server/node-stream-transforms.d.ts +105 -0
  645. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  646. package/dist/server/nuqs-ssr-provider.d.ts +7 -3
  647. package/dist/server/nuqs-ssr-provider.d.ts.map +1 -1
  648. package/dist/server/param-coercion.d.ts +78 -0
  649. package/dist/server/param-coercion.d.ts.map +1 -0
  650. package/dist/server/pipeline-helpers.d.ts +77 -0
  651. package/dist/server/pipeline-helpers.d.ts.map +1 -0
  652. package/dist/server/pipeline-interception.d.ts +59 -9
  653. package/dist/server/pipeline-interception.d.ts.map +1 -1
  654. package/dist/server/pipeline-metadata.d.ts +7 -1
  655. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  656. package/dist/server/pipeline-outcome.d.ts +49 -0
  657. package/dist/server/pipeline-outcome.d.ts.map +1 -0
  658. package/dist/server/pipeline-phases.d.ts +70 -0
  659. package/dist/server/pipeline-phases.d.ts.map +1 -0
  660. package/dist/server/pipeline.d.ts +160 -24
  661. package/dist/server/pipeline.d.ts.map +1 -1
  662. package/dist/server/port-resolution.d.ts +31 -0
  663. package/dist/server/port-resolution.d.ts.map +1 -0
  664. package/dist/server/prebuilt/cache-key.d.ts +63 -0
  665. package/dist/server/prebuilt/cache-key.d.ts.map +1 -0
  666. package/dist/server/prebuilt/capture-state.d.ts +57 -0
  667. package/dist/server/prebuilt/capture-state.d.ts.map +1 -0
  668. package/dist/server/prebuilt/key-discipline.d.ts +52 -0
  669. package/dist/server/prebuilt/key-discipline.d.ts.map +1 -0
  670. package/dist/server/prebuilt/manifest-tag-index.d.ts +27 -0
  671. package/dist/server/prebuilt/manifest-tag-index.d.ts.map +1 -0
  672. package/dist/server/prebuilt/overlay.d.ts +100 -0
  673. package/dist/server/prebuilt/overlay.d.ts.map +1 -0
  674. package/dist/server/prebuilt/payload-source.d.ts +79 -0
  675. package/dist/server/prebuilt/payload-source.d.ts.map +1 -0
  676. package/dist/server/prebuilt/slots.d.ts +99 -0
  677. package/dist/server/prebuilt/slots.d.ts.map +1 -0
  678. package/dist/server/prebuilt/synthetic-store.d.ts +67 -0
  679. package/dist/server/prebuilt/synthetic-store.d.ts.map +1 -0
  680. package/dist/server/prebuilt-builder.d.ts +121 -0
  681. package/dist/server/prebuilt-builder.d.ts.map +1 -0
  682. package/dist/server/prebuilt-runtime.d.ts +111 -0
  683. package/dist/server/prebuilt-runtime.d.ts.map +1 -0
  684. package/dist/server/primitives.d.ts +129 -45
  685. package/dist/server/primitives.d.ts.map +1 -1
  686. package/dist/server/publish-params.d.ts +33 -0
  687. package/dist/server/publish-params.d.ts.map +1 -0
  688. package/dist/server/render-timeout.d.ts +51 -0
  689. package/dist/server/render-timeout.d.ts.map +1 -0
  690. package/dist/server/render-utils.d.ts +26 -0
  691. package/dist/server/render-utils.d.ts.map +1 -0
  692. package/dist/server/request-context.d.ts +111 -107
  693. package/dist/server/request-context.d.ts.map +1 -1
  694. package/dist/server/request-dep.d.ts +15 -0
  695. package/dist/server/request-dep.d.ts.map +1 -0
  696. package/dist/server/response-cache-policy.d.ts +3 -0
  697. package/dist/server/response-cache-policy.d.ts.map +1 -0
  698. package/dist/server/route-element-builder.d.ts +57 -30
  699. package/dist/server/route-element-builder.d.ts.map +1 -1
  700. package/dist/server/route-element-helpers.d.ts +12 -0
  701. package/dist/server/route-element-helpers.d.ts.map +1 -0
  702. package/dist/server/route-handler.d.ts +1 -1
  703. package/dist/server/route-handler.d.ts.map +1 -1
  704. package/dist/server/route-matcher.d.ts +40 -38
  705. package/dist/server/route-matcher.d.ts.map +1 -1
  706. package/dist/server/route-module-loader.d.ts +37 -0
  707. package/dist/server/route-module-loader.d.ts.map +1 -0
  708. package/dist/server/rsc-cache-key-guard.d.ts +78 -0
  709. package/dist/server/rsc-cache-key-guard.d.ts.map +1 -0
  710. package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
  711. package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
  712. package/dist/server/rsc-entry/api-handler.d.ts +12 -3
  713. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  714. package/dist/server/rsc-entry/deny-fallback.d.ts +29 -0
  715. package/dist/server/rsc-entry/deny-fallback.d.ts.map +1 -0
  716. package/dist/server/rsc-entry/error-renderer.d.ts +38 -13
  717. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  718. package/dist/server/rsc-entry/helpers.d.ts +59 -42
  719. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  720. package/dist/server/rsc-entry/index.d.ts +40 -6
  721. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  722. package/dist/server/rsc-entry/render-route.d.ts +51 -0
  723. package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
  724. package/dist/server/rsc-entry/revalidate-renderer.d.ts +108 -0
  725. package/dist/server/rsc-entry/revalidate-renderer.d.ts.map +1 -0
  726. package/dist/server/rsc-entry/rsc-payload.d.ts +26 -6
  727. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  728. package/dist/server/rsc-entry/rsc-stream.d.ts +39 -3
  729. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  730. package/dist/server/rsc-entry/ssr-bridge.d.ts +5 -1
  731. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  732. package/dist/server/rsc-entry/ssr-renderer.d.ts +37 -5
  733. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  734. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +89 -0
  735. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
  736. package/dist/server/rsc-error-envelope.d.ts +11 -0
  737. package/dist/server/rsc-error-envelope.d.ts.map +1 -0
  738. package/dist/server/rsc-prop-warnings.d.ts.map +1 -1
  739. package/dist/server/safe-load.d.ts +46 -0
  740. package/dist/server/safe-load.d.ts.map +1 -0
  741. package/dist/server/sensitive-fields.d.ts +74 -0
  742. package/dist/server/sensitive-fields.d.ts.map +1 -0
  743. package/dist/server/sitemap-generator.d.ts +130 -0
  744. package/dist/server/sitemap-generator.d.ts.map +1 -0
  745. package/dist/server/sitemap-handler.d.ts +22 -0
  746. package/dist/server/sitemap-handler.d.ts.map +1 -0
  747. package/dist/server/skippable-prefix.d.ts +29 -0
  748. package/dist/server/skippable-prefix.d.ts.map +1 -0
  749. package/dist/server/slot-interception.d.ts +80 -0
  750. package/dist/server/slot-interception.d.ts.map +1 -0
  751. package/dist/server/slot-resolver.d.ts +137 -7
  752. package/dist/server/slot-resolver.d.ts.map +1 -1
  753. package/dist/server/slot-subtree-contain.d.ts +54 -0
  754. package/dist/server/slot-subtree-contain.d.ts.map +1 -0
  755. package/dist/server/ssr-bridge-types.d.ts +160 -0
  756. package/dist/server/ssr-bridge-types.d.ts.map +1 -0
  757. package/dist/server/ssr-entry.d.ts +1 -43
  758. package/dist/server/ssr-entry.d.ts.map +1 -1
  759. package/dist/server/ssr-render.d.ts +69 -22
  760. package/dist/server/ssr-render.d.ts.map +1 -1
  761. package/dist/server/ssr-wrappers.d.ts +93 -0
  762. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  763. package/dist/server/state-tree-diff.d.ts +44 -9
  764. package/dist/server/state-tree-diff.d.ts.map +1 -1
  765. package/dist/server/static-generator.d.ts +112 -0
  766. package/dist/server/static-generator.d.ts.map +1 -0
  767. package/dist/server/static-not-found.d.ts +52 -0
  768. package/dist/server/static-not-found.d.ts.map +1 -0
  769. package/dist/server/status-code-resolver.d.ts +26 -15
  770. package/dist/server/status-code-resolver.d.ts.map +1 -1
  771. package/dist/server/stream-utils.d.ts +47 -0
  772. package/dist/server/stream-utils.d.ts.map +1 -0
  773. package/dist/server/tracing.d.ts +56 -11
  774. package/dist/server/tracing.d.ts.map +1 -1
  775. package/dist/server/tree-match.d.ts +49 -0
  776. package/dist/server/tree-match.d.ts.map +1 -0
  777. package/dist/server/types.d.ts +88 -7
  778. package/dist/server/types.d.ts.map +1 -1
  779. package/dist/server/utils/element-type.d.ts +50 -0
  780. package/dist/server/utils/element-type.d.ts.map +1 -0
  781. package/dist/server/utils/escape-html.d.ts +14 -0
  782. package/dist/server/utils/escape-html.d.ts.map +1 -0
  783. package/dist/server/utils/mdx-file.d.ts +17 -0
  784. package/dist/server/utils/mdx-file.d.ts.map +1 -0
  785. package/dist/server/version-skew.d.ts +61 -0
  786. package/dist/server/version-skew.d.ts.map +1 -0
  787. package/dist/server/waituntil-bridge.d.ts.map +1 -1
  788. package/dist/server/workers-cache-bridge.d.ts +26 -0
  789. package/dist/server/workers-cache-bridge.d.ts.map +1 -0
  790. package/dist/shared/als-slots.d.ts +42 -0
  791. package/dist/shared/als-slots.d.ts.map +1 -0
  792. package/dist/shared/base-path.d.ts +56 -0
  793. package/dist/shared/base-path.d.ts.map +1 -0
  794. package/dist/shared/href-validation.d.ts +49 -0
  795. package/dist/shared/href-validation.d.ts.map +1 -0
  796. package/dist/shared/merge-search-params.d.ts +22 -0
  797. package/dist/shared/merge-search-params.d.ts.map +1 -0
  798. package/dist/shared/param-value.d.ts +104 -0
  799. package/dist/shared/param-value.d.ts.map +1 -0
  800. package/dist/shared/payload-root.d.ts +109 -0
  801. package/dist/shared/payload-root.d.ts.map +1 -0
  802. package/dist/shared/redirect-type.d.ts +17 -0
  803. package/dist/shared/redirect-type.d.ts.map +1 -0
  804. package/dist/shared/rsc-cache-key.d.ts +163 -0
  805. package/dist/shared/rsc-cache-key.d.ts.map +1 -0
  806. package/dist/shared/rsc-error-envelope.d.ts +16 -0
  807. package/dist/shared/rsc-error-envelope.d.ts.map +1 -0
  808. package/dist/shared/rsc-manifest.d.ts +28 -0
  809. package/dist/shared/rsc-manifest.d.ts.map +1 -0
  810. package/dist/shared/rsc-media-type.d.ts +52 -0
  811. package/dist/shared/rsc-media-type.d.ts.map +1 -0
  812. package/dist/shared/rsc-payload-path.d.ts +42 -0
  813. package/dist/shared/rsc-payload-path.d.ts.map +1 -0
  814. package/dist/shared/segment-info.d.ts +66 -0
  815. package/dist/shared/segment-info.d.ts.map +1 -0
  816. package/dist/shared/slot-params.d.ts +52 -0
  817. package/dist/shared/slot-params.d.ts.map +1 -0
  818. package/dist/shared/static-platform-files.d.ts +71 -0
  819. package/dist/shared/static-platform-files.d.ts.map +1 -0
  820. package/dist/shared/status-reason-phrase.d.ts +26 -0
  821. package/dist/shared/status-reason-phrase.d.ts.map +1 -0
  822. package/dist/shims/font-google.d.ts +1 -1
  823. package/dist/shims/font-google.d.ts.map +1 -1
  824. package/dist/shims/font-google.js +42 -0
  825. package/dist/shims/font-google.js.map +1 -0
  826. package/dist/shims/font-local.d.ts +26 -0
  827. package/dist/shims/font-local.d.ts.map +1 -0
  828. package/dist/shims/font-local.js +20 -0
  829. package/dist/shims/font-local.js.map +1 -0
  830. package/dist/shims/headers.d.ts +53 -1
  831. package/dist/shims/headers.d.ts.map +1 -1
  832. package/dist/shims/image.d.ts +120 -120
  833. package/dist/shims/image.d.ts.map +1 -1
  834. package/dist/shims/navigation-client.d.ts +25 -12
  835. package/dist/shims/navigation-client.d.ts.map +1 -1
  836. package/dist/shims/navigation-rsc.d.ts +21 -0
  837. package/dist/shims/navigation-rsc.d.ts.map +1 -0
  838. package/dist/shims/navigation.d.ts +10 -5
  839. package/dist/shims/navigation.d.ts.map +1 -1
  840. package/dist/utils/state-machine.d.ts +80 -0
  841. package/dist/utils/state-machine.d.ts.map +1 -0
  842. package/docs/api/30-api-server.mdx +236 -0
  843. package/docs/api/31-api-client.mdx +167 -0
  844. package/docs/api/32-api-cache.mdx +311 -0
  845. package/docs/api/33-api-search-params.mdx +176 -0
  846. package/docs/api/34-api-config.mdx +329 -0
  847. package/docs/api/35-api-typescript.mdx +91 -0
  848. package/docs/api/36-cli.mdx +192 -0
  849. package/docs/learn/00-introduction.mdx +109 -0
  850. package/docs/learn/01-quick-start.mdx +94 -0
  851. package/docs/learn/02-pages-and-layouts.mdx +147 -0
  852. package/docs/learn/03-fetching-data.mdx +211 -0
  853. package/docs/learn/04-access-control.mdx +115 -0
  854. package/docs/learn/05-the-flush-point.mdx +175 -0
  855. package/docs/learn/06-typed-params.mdx +275 -0
  856. package/docs/learn/07-typed-routes.mdx +108 -0
  857. package/docs/learn/08-forms-and-actions.mdx +146 -0
  858. package/docs/learn/09-streaming.mdx +140 -0
  859. package/docs/learn/10-caching.mdx +252 -0
  860. package/docs/learn/11-middleware.mdx +158 -0
  861. package/docs/learn/12-error-handling.mdx +188 -0
  862. package/docs/learn/13-deploying.mdx +287 -0
  863. package/llms.txt +55 -0
  864. package/package.json +117 -29
  865. package/src/adapters/build-output-helper.ts +351 -0
  866. package/src/adapters/cloudflare-dev.ts +183 -0
  867. package/src/adapters/cloudflare-kv-cache.ts +207 -0
  868. package/src/adapters/cloudflare.ts +747 -130
  869. package/src/adapters/compress-module.ts +101 -88
  870. package/src/adapters/fs-identity.ts +156 -0
  871. package/src/adapters/nitro-presets.ts +139 -0
  872. package/src/adapters/nitro-preview.ts +340 -0
  873. package/src/adapters/nitro.ts +279 -418
  874. package/src/adapters/raw-imports.d.ts +5 -0
  875. package/src/adapters/shared.ts +274 -0
  876. package/src/adapters/types.ts +28 -7
  877. package/src/adapters/wrangler.d.ts +7 -0
  878. package/src/analyze/chains.ts +411 -0
  879. package/src/analyze/classify.ts +258 -0
  880. package/src/analyze/crawl-entry.ts +68 -0
  881. package/src/analyze/crawl.ts +500 -0
  882. package/src/analyze/graph-cache.ts +332 -0
  883. package/src/analyze/graph-command.ts +762 -0
  884. package/src/analyze/live-graph.ts +232 -0
  885. package/src/analyze/poison-rules.ts +165 -0
  886. package/src/analyze/poison-scan.ts +162 -0
  887. package/src/analyze/scan.ts +149 -0
  888. package/src/cache/cache-api.ts +107 -0
  889. package/src/cache/fast-hash.ts +39 -0
  890. package/src/cache/handler-store.ts +76 -0
  891. package/src/cache/index.ts +115 -22
  892. package/src/cache/invalidation-epoch.ts +93 -0
  893. package/src/cache/json-lossy-check.ts +75 -0
  894. package/src/cache/redis-handler.ts +198 -20
  895. package/src/cache/singleflight.ts +69 -6
  896. package/src/cache/sizeof.ts +33 -0
  897. package/src/cache/stable-stringify.ts +65 -2
  898. package/src/cache/store.ts +71 -0
  899. package/src/cache/stores/cloudflare-kv.ts +52 -0
  900. package/src/cache/stores/memory.ts +125 -0
  901. package/src/cache/stores/redis.ts +97 -0
  902. package/src/cache/stores/vercel.ts +59 -0
  903. package/src/cache/tag-aware-handler.ts +237 -0
  904. package/src/cache/timber-cache.ts +180 -48
  905. package/src/cdn/cloudflare-purge.ts +50 -0
  906. package/src/cdn/fastly-purge.ts +63 -0
  907. package/src/cdn/headers.ts +153 -0
  908. package/src/cdn/index.ts +23 -0
  909. package/src/cdn/purge-store.ts +34 -0
  910. package/src/cdn/workers-cache-purge.ts +34 -0
  911. package/src/cli-check.ts +507 -0
  912. package/src/cli-schema-sync.ts +401 -0
  913. package/src/cli.ts +262 -55
  914. package/src/client/browser-dev.ts +157 -2
  915. package/src/client/browser-entry/action-dispatch.ts +197 -0
  916. package/src/client/browser-entry/action-queue.ts +90 -0
  917. package/src/client/browser-entry/hmr.ts +70 -0
  918. package/src/client/browser-entry/hydrate.ts +148 -0
  919. package/src/client/browser-entry/index.ts +131 -0
  920. package/src/client/browser-entry/post-hydration.ts +123 -0
  921. package/src/client/browser-entry/router-init.ts +418 -0
  922. package/src/client/browser-entry/rsc-stream.ts +166 -0
  923. package/src/client/browser-entry/scroll.ts +50 -0
  924. package/src/client/deny-last-resort.tsx +54 -0
  925. package/src/client/error-boundary.tsx +316 -40
  926. package/src/client/error-reconstituter.tsx +79 -0
  927. package/src/client/form.tsx +36 -32
  928. package/src/client/global-context.ts +31 -0
  929. package/src/client/history.ts +81 -10
  930. package/src/client/index.ts +89 -53
  931. package/src/client/internal.ts +59 -0
  932. package/src/client/link.tsx +452 -159
  933. package/src/client/location-search.ts +15 -0
  934. package/src/client/navigation-api.ts +347 -0
  935. package/src/client/navigation-commit.ts +295 -0
  936. package/src/client/navigation-context.ts +67 -98
  937. package/src/client/navigation-root.tsx +224 -0
  938. package/src/client/navigation-transition.ts +327 -0
  939. package/src/client/nuqs-adapter.tsx +21 -9
  940. package/src/client/params-context.ts +187 -0
  941. package/src/client/react-root.ts +72 -0
  942. package/src/client/router-effects.ts +228 -0
  943. package/src/client/router-lifecycle.ts +354 -0
  944. package/src/client/router-pipeline.ts +490 -0
  945. package/src/client/router-ref.ts +3 -3
  946. package/src/client/router-skew.ts +30 -0
  947. package/src/client/router-types.ts +294 -0
  948. package/src/client/router.ts +436 -424
  949. package/src/client/rsc-fetch.ts +512 -73
  950. package/src/client/segment-cache.ts +327 -40
  951. package/src/client/segment-context.ts +13 -5
  952. package/src/client/segment-outlet.tsx +96 -0
  953. package/src/client/segment-update-context.ts +23 -0
  954. package/src/client/shallow-url.ts +22 -0
  955. package/src/client/slot-content-cache-context.ts +43 -0
  956. package/src/client/slot-context.ts +50 -0
  957. package/src/client/slot-outlet.tsx +22 -0
  958. package/src/client/slot-provider.tsx +32 -0
  959. package/src/client/ssr-data.ts +30 -9
  960. package/src/client/stale-client.ts +191 -0
  961. package/src/client/state.ts +29 -15
  962. package/src/client/status-page-marker.tsx +32 -0
  963. package/src/client/top-loader.tsx +36 -29
  964. package/src/client/unload-guard.ts +35 -3
  965. package/src/client/use-cookie.ts +70 -18
  966. package/src/client/use-link-status.ts +7 -7
  967. package/src/client/use-pathname.ts +22 -31
  968. package/src/client/use-pending-navigation.ts +40 -0
  969. package/src/client/use-query-states.ts +206 -36
  970. package/src/client/use-router.ts +6 -3
  971. package/src/client/use-search-params.ts +38 -49
  972. package/src/client/use-segment-params.ts +69 -0
  973. package/src/client/use-selected-layout-segment.ts +2 -2
  974. package/src/codec.ts +149 -0
  975. package/src/config-types.ts +322 -0
  976. package/src/config-validation.ts +347 -0
  977. package/src/cookies/define-cookie.ts +222 -53
  978. package/src/cookies/index.ts +13 -2
  979. package/src/cookies/json-cookie.ts +105 -0
  980. package/src/cookies/validation.ts +192 -0
  981. package/src/dev-tools/404-page.ts +286 -0
  982. package/src/dev-tools/browser-logs.ts +55 -0
  983. package/src/dev-tools/dev-page-shell.ts +260 -0
  984. package/src/dev-tools/error-page.ts +331 -0
  985. package/src/dev-tools/holding-server.ts +185 -0
  986. package/src/dev-tools/hydration-overlay.ts +158 -0
  987. package/src/dev-tools/index.ts +83 -0
  988. package/src/dev-tools/instrumentation.ts +213 -0
  989. package/src/{server/dev-logger.ts → dev-tools/logger.ts} +33 -51
  990. package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +122 -26
  991. package/src/dev-tools/overlay.ts +469 -0
  992. package/src/dev-tools/stack-classifier.ts +75 -0
  993. package/src/dev-tools/terminal.ts +182 -0
  994. package/src/fonts/ast-walk.ts +235 -0
  995. package/src/fonts/ast.ts +479 -128
  996. package/src/fonts/bundle.ts +138 -0
  997. package/src/fonts/css.ts +3 -2
  998. package/src/fonts/dev-middleware.ts +85 -0
  999. package/src/fonts/fallbacks.ts +0 -23
  1000. package/src/fonts/google.ts +101 -19
  1001. package/src/fonts/local.ts +13 -8
  1002. package/src/fonts/paths.ts +58 -0
  1003. package/src/fonts/pipeline.ts +348 -0
  1004. package/src/fonts/transform.ts +311 -0
  1005. package/src/fonts/types.ts +52 -1
  1006. package/src/fonts/virtual-modules.ts +179 -0
  1007. package/src/index.ts +486 -344
  1008. package/src/params/codec-registry.ts +34 -0
  1009. package/src/params/define-schema.ts +115 -0
  1010. package/src/params/index.ts +17 -0
  1011. package/src/params/resolve-schema.ts +84 -0
  1012. package/src/plugin-context.ts +503 -0
  1013. package/src/plugins/adapter-build.ts +229 -7
  1014. package/src/plugins/build-manifest.ts +201 -26
  1015. package/src/plugins/build-report.ts +275 -43
  1016. package/src/plugins/cache.ts +243 -0
  1017. package/src/plugins/callsite-ast.ts +472 -0
  1018. package/src/plugins/callsite-jsx.ts +243 -0
  1019. package/src/plugins/chunks.ts +74 -5
  1020. package/src/plugins/client-chunks.ts +185 -0
  1021. package/src/plugins/cloudflare-wasm.ts +141 -0
  1022. package/src/plugins/content.ts +5 -1
  1023. package/src/plugins/dev-discovery.ts +218 -0
  1024. package/src/plugins/dev-server.ts +369 -96
  1025. package/src/plugins/entries.ts +148 -18
  1026. package/src/plugins/fonts.ts +251 -524
  1027. package/src/plugins/graph-endpoint.ts +532 -0
  1028. package/src/plugins/mdx.ts +116 -40
  1029. package/src/plugins/prebuilt-capture.ts +217 -0
  1030. package/src/plugins/prebuilt-options-analysis.ts +175 -0
  1031. package/src/plugins/prebuilt.ts +655 -0
  1032. package/src/plugins/prerender-sugar.ts +320 -0
  1033. package/src/plugins/request-dep/analysis.ts +447 -0
  1034. package/src/plugins/request-dep/index.ts +376 -0
  1035. package/src/plugins/request-dep/origin.ts +310 -0
  1036. package/src/plugins/routing.ts +273 -277
  1037. package/src/plugins/server-bundle.ts +103 -14
  1038. package/src/plugins/shims.ts +259 -97
  1039. package/src/plugins/static-build.ts +708 -66
  1040. package/src/react-canary.d.ts +2 -0
  1041. package/src/routing/codegen-shared.ts +39 -0
  1042. package/src/routing/codegen-types.ts +62 -0
  1043. package/src/routing/codegen-write.ts +141 -0
  1044. package/src/routing/codegen.ts +349 -232
  1045. package/src/routing/collision-probe.ts +438 -0
  1046. package/src/routing/collision-spaces.ts +281 -0
  1047. package/src/routing/convention-lint.ts +623 -0
  1048. package/src/routing/export-detect.ts +448 -0
  1049. package/src/routing/file-cache.ts +23 -0
  1050. package/src/routing/index.ts +16 -7
  1051. package/src/routing/interception-overlap.ts +141 -0
  1052. package/src/routing/interception.ts +1044 -67
  1053. package/src/routing/link-codegen.ts +280 -0
  1054. package/src/routing/manifest-codegen.ts +226 -0
  1055. package/src/routing/scanner.ts +393 -219
  1056. package/src/routing/schema-validation.ts +155 -0
  1057. package/src/routing/segment-classify.ts +280 -0
  1058. package/src/routing/segment-codegen.ts +98 -0
  1059. package/src/routing/segment-keys.ts +186 -0
  1060. package/src/routing/slot-placement.ts +97 -0
  1061. package/src/routing/types.ts +75 -26
  1062. package/src/routing/walkers.ts +98 -0
  1063. package/src/rsc-runtime/rsc.ts +9 -0
  1064. package/src/rsc-runtime/ssr.ts +51 -0
  1065. package/src/rsc-runtime/transforms.ts +13 -0
  1066. package/src/rsc-runtime/vendor-types.d.ts +19 -0
  1067. package/src/schema-bridge.ts +380 -0
  1068. package/src/search-params/define.ts +677 -0
  1069. package/src/search-params/index.ts +14 -20
  1070. package/src/search-params/parse-total.ts +91 -0
  1071. package/src/search-params/serialize-equal.ts +14 -0
  1072. package/src/search-params/wrappers.ts +150 -0
  1073. package/src/server/access-gate.tsx +196 -57
  1074. package/src/server/action-client.ts +136 -35
  1075. package/src/server/action-encryption.ts +144 -0
  1076. package/src/server/action-handler.ts +256 -56
  1077. package/src/server/actions.ts +112 -68
  1078. package/src/server/als-registry.ts +160 -21
  1079. package/src/server/asset-headers.ts +15 -37
  1080. package/src/server/body-limits.ts +10 -2
  1081. package/src/server/build-manifest.ts +33 -57
  1082. package/src/server/canonicalize.ts +6 -3
  1083. package/src/server/chain-url-parts.ts +163 -0
  1084. package/src/server/children-interception.ts +115 -0
  1085. package/src/server/coalesce-tick.ts +75 -0
  1086. package/src/server/compress.ts +43 -8
  1087. package/src/server/cookie-context.ts +484 -0
  1088. package/src/server/cookie-parsing.ts +163 -0
  1089. package/src/server/csp-nonce.ts +70 -0
  1090. package/src/server/csrf.ts +39 -6
  1091. package/src/server/debug.ts +137 -0
  1092. package/src/server/default-logger.ts +99 -0
  1093. package/src/server/default-status-page.ts +88 -0
  1094. package/src/server/deny-boundary.ts +533 -0
  1095. package/src/server/deny-renderer.ts +214 -112
  1096. package/src/server/dev-source-map.ts +31 -0
  1097. package/src/server/early-hints-sender.ts +4 -3
  1098. package/src/server/early-hints.ts +39 -29
  1099. package/src/server/error-boundary-wrapper.ts +181 -44
  1100. package/src/server/error-response-headers.ts +18 -0
  1101. package/src/server/fallback-error.ts +79 -102
  1102. package/src/server/flight-injection-state.ts +113 -0
  1103. package/src/server/flight-scripts.ts +67 -0
  1104. package/src/server/form-data.ts +124 -12
  1105. package/src/server/form-flash.ts +2 -2
  1106. package/src/server/head-response.ts +54 -0
  1107. package/src/server/html-injector-core.ts +512 -0
  1108. package/src/server/html-injectors.ts +272 -235
  1109. package/src/server/index.ts +40 -192
  1110. package/src/server/instrumentation.ts +1 -1
  1111. package/src/server/internal.ts +173 -0
  1112. package/src/server/logger.ts +73 -36
  1113. package/src/server/metadata-collector.ts +174 -0
  1114. package/src/server/metadata-platform.ts +2 -2
  1115. package/src/server/metadata-render.ts +30 -8
  1116. package/src/server/metadata-routes.ts +205 -24
  1117. package/src/server/metadata-social.ts +2 -2
  1118. package/src/server/metadata.ts +23 -2
  1119. package/src/server/middleware-runner.ts +32 -5
  1120. package/src/server/node-stream-transforms.ts +323 -0
  1121. package/src/server/nuqs-ssr-provider.tsx +8 -7
  1122. package/src/server/param-coercion.ts +198 -0
  1123. package/src/server/pipeline-helpers.ts +159 -0
  1124. package/src/server/pipeline-interception.ts +109 -33
  1125. package/src/server/pipeline-metadata.ts +15 -1
  1126. package/src/server/pipeline-outcome.ts +218 -0
  1127. package/src/server/pipeline-phases.ts +606 -0
  1128. package/src/server/pipeline.ts +343 -389
  1129. package/src/server/port-resolution.ts +53 -0
  1130. package/src/server/prebuilt/cache-key.ts +299 -0
  1131. package/src/server/prebuilt/capture-state.ts +89 -0
  1132. package/src/server/prebuilt/key-discipline.ts +122 -0
  1133. package/src/server/prebuilt/manifest-tag-index.ts +46 -0
  1134. package/src/server/prebuilt/overlay.ts +256 -0
  1135. package/src/server/prebuilt/payload-source.ts +202 -0
  1136. package/src/server/prebuilt/slots.ts +190 -0
  1137. package/src/server/prebuilt/synthetic-store.ts +122 -0
  1138. package/src/server/prebuilt-builder.ts +804 -0
  1139. package/src/server/prebuilt-runtime.ts +817 -0
  1140. package/src/server/primitives.ts +246 -97
  1141. package/src/server/publish-params.ts +42 -0
  1142. package/src/server/render-timeout.ts +108 -0
  1143. package/src/server/render-utils.ts +35 -0
  1144. package/src/server/request-context.ts +244 -333
  1145. package/src/server/request-dep.ts +37 -0
  1146. package/src/server/response-cache-policy.ts +45 -0
  1147. package/src/server/route-element-builder.ts +508 -360
  1148. package/src/server/route-element-helpers.ts +37 -0
  1149. package/src/server/route-handler.ts +40 -13
  1150. package/src/server/route-matcher.ts +165 -272
  1151. package/src/server/route-module-loader.ts +161 -0
  1152. package/src/server/rsc-cache-key-guard.ts +122 -0
  1153. package/src/server/rsc-entry/action-middleware-runner.ts +174 -0
  1154. package/src/server/rsc-entry/api-handler.ts +78 -34
  1155. package/src/server/rsc-entry/deny-fallback.ts +93 -0
  1156. package/src/server/rsc-entry/error-renderer.ts +373 -95
  1157. package/src/server/rsc-entry/helpers.ts +226 -95
  1158. package/src/server/rsc-entry/index.ts +405 -323
  1159. package/src/server/rsc-entry/render-route.ts +304 -0
  1160. package/src/server/rsc-entry/revalidate-renderer.ts +350 -0
  1161. package/src/server/rsc-entry/rsc-payload.ts +239 -50
  1162. package/src/server/rsc-entry/rsc-stream.ts +160 -30
  1163. package/src/server/rsc-entry/ssr-bridge.ts +18 -5
  1164. package/src/server/rsc-entry/ssr-renderer.ts +315 -57
  1165. package/src/server/rsc-entry/wrap-action-dispatch.ts +186 -0
  1166. package/src/server/rsc-error-envelope.ts +18 -0
  1167. package/src/server/rsc-prop-warnings.ts +3 -1
  1168. package/src/server/safe-load.ts +60 -0
  1169. package/src/server/sensitive-fields.ts +230 -0
  1170. package/src/server/server-only-guard-noop.js +3 -0
  1171. package/src/server/server-timing.ts +1 -1
  1172. package/src/server/sitemap-generator.ts +337 -0
  1173. package/src/server/sitemap-handler.ts +157 -0
  1174. package/src/server/skippable-prefix.ts +172 -0
  1175. package/src/server/slot-interception.ts +168 -0
  1176. package/src/server/slot-resolver.ts +707 -300
  1177. package/src/server/slot-subtree-contain.ts +255 -0
  1178. package/src/server/ssr-bridge-types.ts +165 -0
  1179. package/src/server/ssr-entry.ts +230 -85
  1180. package/src/server/ssr-render.ts +357 -85
  1181. package/src/server/ssr-wrappers.tsx +162 -0
  1182. package/src/server/state-tree-diff.ts +85 -30
  1183. package/src/server/static-generator.ts +715 -0
  1184. package/src/server/static-not-found.ts +134 -0
  1185. package/src/server/status-code-resolver.ts +107 -148
  1186. package/src/server/stream-utils.ts +292 -0
  1187. package/src/server/tracing.ts +151 -16
  1188. package/src/server/tree-match.ts +262 -0
  1189. package/src/server/types.ts +95 -10
  1190. package/src/server/utils/element-type.ts +88 -0
  1191. package/src/server/utils/escape-html.ts +20 -0
  1192. package/src/server/utils/mdx-file.ts +22 -0
  1193. package/src/server/version-skew.ts +104 -0
  1194. package/src/server/waituntil-bridge.ts +5 -2
  1195. package/src/server/workers-cache-bridge.ts +33 -0
  1196. package/src/shared/als-slots.ts +74 -0
  1197. package/src/shared/base-path.ts +80 -0
  1198. package/src/shared/href-validation.ts +159 -0
  1199. package/src/shared/merge-search-params.ts +55 -0
  1200. package/src/shared/param-value.ts +281 -0
  1201. package/src/shared/payload-root.ts +152 -0
  1202. package/src/shared/redirect-type.ts +17 -0
  1203. package/src/shared/rsc-cache-key.ts +269 -0
  1204. package/src/shared/rsc-error-envelope.ts +16 -0
  1205. package/src/shared/rsc-manifest.ts +29 -0
  1206. package/src/shared/rsc-media-type.ts +59 -0
  1207. package/src/shared/rsc-payload-path.ts +45 -0
  1208. package/src/shared/segment-info.ts +67 -0
  1209. package/src/shared/slot-params.ts +109 -0
  1210. package/src/shared/static-platform-files.ts +75 -0
  1211. package/src/shared/status-reason-phrase.ts +61 -0
  1212. package/src/shims/font-google.ts +1 -1
  1213. package/src/shims/font-local.ts +34 -0
  1214. package/src/shims/headers.ts +122 -1
  1215. package/src/shims/navigation-client.ts +36 -32
  1216. package/src/shims/navigation-rsc.ts +47 -0
  1217. package/src/shims/navigation.ts +10 -7
  1218. package/src/utils/state-machine.ts +111 -0
  1219. package/dist/_chunks/als-registry-k-AtAQ9R.js +0 -41
  1220. package/dist/_chunks/als-registry-k-AtAQ9R.js.map +0 -1
  1221. package/dist/_chunks/format-DNt20Kt8.js +0 -163
  1222. package/dist/_chunks/format-DNt20Kt8.js.map +0 -1
  1223. package/dist/_chunks/interception-DGDIjDbR.js +0 -676
  1224. package/dist/_chunks/interception-DGDIjDbR.js.map +0 -1
  1225. package/dist/_chunks/metadata-routes-CQCnF4VK.js +0 -153
  1226. package/dist/_chunks/metadata-routes-CQCnF4VK.js.map +0 -1
  1227. package/dist/_chunks/request-context-CRj2Zh1E.js +0 -329
  1228. package/dist/_chunks/request-context-CRj2Zh1E.js.map +0 -1
  1229. package/dist/_chunks/ssr-data-DLnbYpj1.js.map +0 -1
  1230. package/dist/_chunks/tracing-DF0G3FB7.js +0 -173
  1231. package/dist/_chunks/tracing-DF0G3FB7.js.map +0 -1
  1232. package/dist/_chunks/use-cookie-dDbpCTx-.js +0 -91
  1233. package/dist/_chunks/use-cookie-dDbpCTx-.js.map +0 -1
  1234. package/dist/_chunks/use-query-states-DAhgj8Gx.js +0 -109
  1235. package/dist/_chunks/use-query-states-DAhgj8Gx.js.map +0 -1
  1236. package/dist/adapters/cloudflare.js.map +0 -1
  1237. package/dist/cache/index.js.map +0 -1
  1238. package/dist/cache/register-cached-function.d.ts +0 -17
  1239. package/dist/cache/register-cached-function.d.ts.map +0 -1
  1240. package/dist/client/browser-entry.d.ts +0 -21
  1241. package/dist/client/browser-entry.d.ts.map +0 -1
  1242. package/dist/client/error-boundary.js.map +0 -1
  1243. package/dist/client/head.d.ts +0 -16
  1244. package/dist/client/head.d.ts.map +0 -1
  1245. package/dist/client/link-status-provider.d.ts +0 -11
  1246. package/dist/client/link-status-provider.d.ts.map +0 -1
  1247. package/dist/client/segment-merger.d.ts +0 -119
  1248. package/dist/client/segment-merger.d.ts.map +0 -1
  1249. package/dist/client/stale-reload.d.ts +0 -44
  1250. package/dist/client/stale-reload.d.ts.map +0 -1
  1251. package/dist/client/transition-root.d.ts +0 -74
  1252. package/dist/client/transition-root.d.ts.map +0 -1
  1253. package/dist/client/use-navigation-pending.d.ts +0 -26
  1254. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  1255. package/dist/client/use-params.d.ts +0 -92
  1256. package/dist/client/use-params.d.ts.map +0 -1
  1257. package/dist/content/index.d.ts +0 -11
  1258. package/dist/content/index.d.ts.map +0 -1
  1259. package/dist/content/index.js +0 -2
  1260. package/dist/plugins/cache-transform.d.ts +0 -36
  1261. package/dist/plugins/cache-transform.d.ts.map +0 -1
  1262. package/dist/plugins/dev-error-overlay.d.ts +0 -60
  1263. package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
  1264. package/dist/plugins/dev-logs.d.ts.map +0 -1
  1265. package/dist/plugins/dynamic-transform.d.ts +0 -72
  1266. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  1267. package/dist/plugins/server-action-exports.d.ts +0 -26
  1268. package/dist/plugins/server-action-exports.d.ts.map +0 -1
  1269. package/dist/routing/status-file-lint.d.ts +0 -33
  1270. package/dist/routing/status-file-lint.d.ts.map +0 -1
  1271. package/dist/search-params/analyze.d.ts +0 -54
  1272. package/dist/search-params/analyze.d.ts.map +0 -1
  1273. package/dist/search-params/builtin-codecs.d.ts +0 -105
  1274. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  1275. package/dist/search-params/codecs.d.ts +0 -53
  1276. package/dist/search-params/codecs.d.ts.map +0 -1
  1277. package/dist/search-params/create.d.ts +0 -106
  1278. package/dist/search-params/create.d.ts.map +0 -1
  1279. package/dist/search-params/registry.d.ts +0 -20
  1280. package/dist/search-params/registry.d.ts.map +0 -1
  1281. package/dist/server/client-module-map.d.ts +0 -47
  1282. package/dist/server/client-module-map.d.ts.map +0 -1
  1283. package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
  1284. package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
  1285. package/dist/server/dev-logger.d.ts.map +0 -1
  1286. package/dist/server/dev-span-processor.d.ts +0 -29
  1287. package/dist/server/dev-span-processor.d.ts.map +0 -1
  1288. package/dist/server/dev-warnings.d.ts +0 -129
  1289. package/dist/server/dev-warnings.d.ts.map +0 -1
  1290. package/dist/server/flush.d.ts +0 -74
  1291. package/dist/server/flush.d.ts.map +0 -1
  1292. package/dist/server/manifest-status-resolver.d.ts +0 -58
  1293. package/dist/server/manifest-status-resolver.d.ts.map +0 -1
  1294. package/dist/server/prerender.d.ts +0 -77
  1295. package/dist/server/prerender.d.ts.map +0 -1
  1296. package/dist/server/tree-builder.d.ts +0 -126
  1297. package/dist/server/tree-builder.d.ts.map +0 -1
  1298. package/dist/utils/directive-parser.d.ts +0 -70
  1299. package/dist/utils/directive-parser.d.ts.map +0 -1
  1300. package/src/cache/register-cached-function.ts +0 -99
  1301. package/src/client/browser-entry.ts +0 -674
  1302. package/src/client/head.ts +0 -61
  1303. package/src/client/link-status-provider.tsx +0 -30
  1304. package/src/client/segment-merger.ts +0 -345
  1305. package/src/client/stale-reload.ts +0 -89
  1306. package/src/client/transition-root.tsx +0 -160
  1307. package/src/client/use-navigation-pending.ts +0 -38
  1308. package/src/client/use-params.ts +0 -141
  1309. package/src/content/index.ts +0 -13
  1310. package/src/plugins/cache-transform.ts +0 -199
  1311. package/src/plugins/dev-error-overlay.ts +0 -230
  1312. package/src/plugins/dynamic-transform.ts +0 -161
  1313. package/src/plugins/server-action-exports.ts +0 -220
  1314. package/src/routing/status-file-lint.ts +0 -112
  1315. package/src/search-params/analyze.ts +0 -192
  1316. package/src/search-params/builtin-codecs.ts +0 -228
  1317. package/src/search-params/codecs.ts +0 -153
  1318. package/src/search-params/create.ts +0 -321
  1319. package/src/search-params/registry.ts +0 -31
  1320. package/src/server/client-module-map.ts +0 -58
  1321. package/src/server/dev-fetch-instrumentation.ts +0 -96
  1322. package/src/server/dev-span-processor.ts +0 -78
  1323. package/src/server/dev-warnings.ts +0 -282
  1324. package/src/server/flush.ts +0 -182
  1325. package/src/server/manifest-status-resolver.ts +0 -215
  1326. package/src/server/prerender.ts +0 -139
  1327. package/src/server/tree-builder.ts +0 -382
  1328. package/src/shims/server-only-noop.js +0 -6
  1329. package/src/utils/directive-parser.ts +0 -529
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,UAAU;IAGzB,gEAAgE;IAChE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEzC,wEAAwE;IACxE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE,qCAAqC;IACrC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAKhC;;;;OAIG;IACH,WAAW,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5F;;;OAGG;IACH,aAAa,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAI3C;;;OAGG;IACH,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzE,uCAAuC;IACvC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,yCAAyC;IACzC,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1C,mCAAmC;IACnC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIlC,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;CACvD"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Cloudflare Workers KV CacheStore — eventually-consistent, no set operations.
3
+ *
4
+ * The TagAwareCacheHandler uses the lazy (version-stamp) strategy for this
5
+ * store: tag invalidation bumps a version counter (O(1) write), and reads
6
+ * validate stored tag versions against current. No enumeration, no
7
+ * read-modify-write races, correct under eventual consistency.
8
+ *
9
+ * Consistency: KV propagates writes in ~60s. A tag version bump propagates
10
+ * like any other write — during the window, some reads may still validate
11
+ * against the old version and serve stale data. This is acceptable for KV's
12
+ * consistency model (use short TTLs for security-critical invalidation).
13
+ */
14
+ import type { CacheStore } from '../store.ts';
15
+ export interface CloudflareKVNamespace {
16
+ get(key: string, options?: {
17
+ type?: string;
18
+ }): Promise<string | null>;
19
+ put(key: string, value: string, options?: {
20
+ expirationTtl?: number;
21
+ }): Promise<void>;
22
+ delete(key: string): Promise<void>;
23
+ }
24
+ export declare class CloudflareKVStore implements CacheStore {
25
+ private kv;
26
+ readonly consistency: 'eventual';
27
+ /**
28
+ * @param kv - Either a KVNamespace instance or a factory function that
29
+ * resolves it from the current request context (for Workers where bindings
30
+ * are per-request).
31
+ */
32
+ constructor(kv: CloudflareKVNamespace | (() => CloudflareKVNamespace));
33
+ private getKV;
34
+ get(key: string): Promise<string | null>;
35
+ set(key: string, value: string, ttlSeconds: number): Promise<void>;
36
+ del(key: string): Promise<void>;
37
+ }
38
+ //# sourceMappingURL=cloudflare-kv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-kv.d.ts","sourceRoot":"","sources":["../../../src/cache/stores/cloudflare-kv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,qBAAa,iBAAkB,YAAW,UAAU;IAClD,OAAO,CAAC,EAAE,CAAwD;IAClE,QAAQ,CAAC,WAAW,EAAG,UAAU,CAAU;IAE3C;;;;OAIG;IACH,YAAY,EAAE,EAAE,qBAAqB,GAAG,CAAC,MAAM,qBAAqB,CAAC,EAEpE;IAED,OAAO,CAAC,KAAK;IAIP,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE7C;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpC;CACF"}
@@ -0,0 +1,29 @@
1
+ //#region src/cache/stores/cloudflare-kv.ts
2
+ var CloudflareKVStore = class {
3
+ kv;
4
+ consistency = "eventual";
5
+ /**
6
+ * @param kv - Either a KVNamespace instance or a factory function that
7
+ * resolves it from the current request context (for Workers where bindings
8
+ * are per-request).
9
+ */
10
+ constructor(kv) {
11
+ this.kv = kv;
12
+ }
13
+ getKV() {
14
+ return typeof this.kv === "function" ? this.kv() : this.kv;
15
+ }
16
+ async get(key) {
17
+ return this.getKV().get(key);
18
+ }
19
+ async set(key, value, ttlSeconds) {
20
+ await this.getKV().put(key, value, { expirationTtl: Math.max(ttlSeconds, 60) });
21
+ }
22
+ async del(key) {
23
+ await this.getKV().delete(key);
24
+ }
25
+ };
26
+ //#endregion
27
+ export { CloudflareKVStore };
28
+
29
+ //# sourceMappingURL=cloudflare-kv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-kv.js","names":[],"sources":["../../../src/cache/stores/cloudflare-kv.ts"],"sourcesContent":["/**\n * Cloudflare Workers KV CacheStore — eventually-consistent, no set operations.\n *\n * The TagAwareCacheHandler uses the lazy (version-stamp) strategy for this\n * store: tag invalidation bumps a version counter (O(1) write), and reads\n * validate stored tag versions against current. No enumeration, no\n * read-modify-write races, correct under eventual consistency.\n *\n * Consistency: KV propagates writes in ~60s. A tag version bump propagates\n * like any other write — during the window, some reads may still validate\n * against the old version and serve stale data. This is acceptable for KV's\n * consistency model (use short TTLs for security-critical invalidation).\n */\n\nimport type { CacheStore } from '../store.ts';\n\nexport interface CloudflareKVNamespace {\n get(key: string, options?: { type?: string }): Promise<string | null>;\n put(key: string, value: string, options?: { expirationTtl?: number }): Promise<void>;\n delete(key: string): Promise<void>;\n}\n\nexport class CloudflareKVStore implements CacheStore {\n private kv: CloudflareKVNamespace | (() => CloudflareKVNamespace);\n readonly consistency = 'eventual' as const;\n\n /**\n * @param kv - Either a KVNamespace instance or a factory function that\n * resolves it from the current request context (for Workers where bindings\n * are per-request).\n */\n constructor(kv: CloudflareKVNamespace | (() => CloudflareKVNamespace)) {\n this.kv = kv;\n }\n\n private getKV(): CloudflareKVNamespace {\n return typeof this.kv === 'function' ? this.kv() : this.kv;\n }\n\n async get(key: string): Promise<string | null> {\n return this.getKV().get(key);\n }\n\n async set(key: string, value: string, ttlSeconds: number): Promise<void> {\n // KV expirationTtl minimum is 60s\n await this.getKV().put(key, value, { expirationTtl: Math.max(ttlSeconds, 60) });\n }\n\n async del(key: string): Promise<void> {\n await this.getKV().delete(key);\n }\n}\n"],"mappings":";AAsBA,IAAa,oBAAb,MAAqD;CACnD;CACA,cAAuB;;;;;;CAOvB,YAAY,IAA2D;EACrE,KAAK,KAAK;CACZ;CAEA,QAAuC;EACrC,OAAO,OAAO,KAAK,OAAO,aAAa,KAAK,GAAG,IAAI,KAAK;CAC1D;CAEA,MAAM,IAAI,KAAqC;EAC7C,OAAO,KAAK,MAAM,CAAC,CAAC,IAAI,GAAG;CAC7B;CAEA,MAAM,IAAI,KAAa,OAAe,YAAmC;EAEvE,MAAM,KAAK,MAAM,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,eAAe,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;CAChF;CAEA,MAAM,IAAI,KAA4B;EACpC,MAAM,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG;CAC/B;AACF"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * In-memory CacheStore — local consistency only.
3
+ *
4
+ * LRU eviction by entry count and optional byte budget. The TagAwareCacheHandler
5
+ * uses the Set-based strategy here (we implement sadd/smembers/srem/sdel with
6
+ * plain Maps — atomic within a single process).
7
+ *
8
+ * Tag sets may accumulate stale memberships when data entries expire via TTL or
9
+ * LRU eviction (the store layer cannot know which sets reference a given key).
10
+ * This is harmless: TagAwareCacheHandler's eager invalidation path reads each
11
+ * member before deleting and prunes stale entries. The cost is proportional to
12
+ * set size on invalidation, not to memory — stale memberships are just strings.
13
+ */
14
+ import type { CacheStore } from '../store.ts';
15
+ export interface MemoryStoreOptions {
16
+ maxEntries?: number;
17
+ maxBytes?: number;
18
+ maxEntryBytes?: number;
19
+ }
20
+ export declare class MemoryCacheStore implements CacheStore {
21
+ private store;
22
+ private sets;
23
+ private maxEntries;
24
+ private maxBytes;
25
+ private maxEntryBytes;
26
+ private currentBytes;
27
+ private readonly trackBytes;
28
+ readonly consistency: 'local';
29
+ constructor(opts?: MemoryStoreOptions);
30
+ get(key: string): Promise<string | null>;
31
+ set(key: string, value: string, ttlSeconds: number): Promise<void>;
32
+ del(key: string): Promise<void>;
33
+ sadd(key: string, members: string[], _ttlSeconds: number): Promise<void>;
34
+ srem(key: string, members: string[]): Promise<void>;
35
+ smembers(key: string): Promise<string[]>;
36
+ sdel(key: string): Promise<void>;
37
+ get size(): number;
38
+ get bytes(): number;
39
+ private removeEntry;
40
+ private evictOldest;
41
+ }
42
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/cache/stores/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,KAAK,CAA6E;IAC1F,OAAO,CAAC,IAAI,CAAkC;IAC9C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,QAAQ,CAAC,WAAW,EAAG,OAAO,CAAU;IAExC,YAAY,IAAI,CAAC,EAAE,kBAAkB,EAKpC;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAW7C;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBvE;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpC;IAIK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7E;IAEK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxD;IAEK,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAG7C;IAEK,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErC;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;CAIpB"}
@@ -0,0 +1,90 @@
1
+ import { t as estimateByteSize } from "../../_chunks/sizeof-lXffQ1Vr.js";
2
+ //#region src/cache/stores/memory.ts
3
+ var MemoryCacheStore = class {
4
+ store = /* @__PURE__ */ new Map();
5
+ sets = /* @__PURE__ */ new Map();
6
+ maxEntries;
7
+ maxBytes;
8
+ maxEntryBytes;
9
+ currentBytes = 0;
10
+ trackBytes;
11
+ consistency = "local";
12
+ constructor(opts) {
13
+ this.maxEntries = Math.max(opts?.maxEntries ?? 1e3, 1);
14
+ this.maxBytes = opts?.maxBytes;
15
+ this.maxEntryBytes = opts?.maxEntryBytes;
16
+ this.trackBytes = this.maxBytes !== void 0 || this.maxEntryBytes !== void 0;
17
+ }
18
+ async get(key) {
19
+ const entry = this.store.get(key);
20
+ if (!entry) return null;
21
+ if (Date.now() > entry.expiresAt) {
22
+ this.removeEntry(key);
23
+ return null;
24
+ }
25
+ this.store.delete(key);
26
+ this.store.set(key, entry);
27
+ return entry.value;
28
+ }
29
+ async set(key, value, ttlSeconds) {
30
+ const byteSize = this.trackBytes ? estimateByteSize(value) : 0;
31
+ if (this.maxEntryBytes !== void 0 && byteSize > this.maxEntryBytes) return;
32
+ if (this.store.has(key)) this.removeEntry(key);
33
+ while (this.store.size >= this.maxEntries) this.evictOldest();
34
+ if (this.maxBytes !== void 0) {
35
+ while (this.currentBytes + byteSize > this.maxBytes && this.store.size > 0) this.evictOldest();
36
+ if (this.currentBytes + byteSize > this.maxBytes) return;
37
+ }
38
+ this.store.set(key, {
39
+ value,
40
+ expiresAt: Date.now() + ttlSeconds * 1e3,
41
+ byteSize
42
+ });
43
+ this.currentBytes += byteSize;
44
+ }
45
+ async del(key) {
46
+ this.removeEntry(key);
47
+ }
48
+ async sadd(key, members, _ttlSeconds) {
49
+ let set = this.sets.get(key);
50
+ if (!set) {
51
+ set = /* @__PURE__ */ new Set();
52
+ this.sets.set(key, set);
53
+ }
54
+ for (const m of members) set.add(m);
55
+ }
56
+ async srem(key, members) {
57
+ const set = this.sets.get(key);
58
+ if (!set) return;
59
+ for (const m of members) set.delete(m);
60
+ if (set.size === 0) this.sets.delete(key);
61
+ }
62
+ async smembers(key) {
63
+ const set = this.sets.get(key);
64
+ return set ? [...set] : [];
65
+ }
66
+ async sdel(key) {
67
+ this.sets.delete(key);
68
+ }
69
+ get size() {
70
+ return this.store.size;
71
+ }
72
+ get bytes() {
73
+ return this.currentBytes;
74
+ }
75
+ removeEntry(key) {
76
+ const entry = this.store.get(key);
77
+ if (entry) {
78
+ this.currentBytes -= entry.byteSize;
79
+ this.store.delete(key);
80
+ }
81
+ }
82
+ evictOldest() {
83
+ const oldest = this.store.keys().next().value;
84
+ if (oldest !== void 0) this.removeEntry(oldest);
85
+ }
86
+ };
87
+ //#endregion
88
+ export { MemoryCacheStore };
89
+
90
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","names":[],"sources":["../../../src/cache/stores/memory.ts"],"sourcesContent":["/**\n * In-memory CacheStore — local consistency only.\n *\n * LRU eviction by entry count and optional byte budget. The TagAwareCacheHandler\n * uses the Set-based strategy here (we implement sadd/smembers/srem/sdel with\n * plain Maps — atomic within a single process).\n *\n * Tag sets may accumulate stale memberships when data entries expire via TTL or\n * LRU eviction (the store layer cannot know which sets reference a given key).\n * This is harmless: TagAwareCacheHandler's eager invalidation path reads each\n * member before deleting and prunes stale entries. The cost is proportional to\n * set size on invalidation, not to memory — stale memberships are just strings.\n */\n\nimport type { CacheStore } from '../store.ts';\nimport { estimateByteSize } from '../sizeof.ts';\n\nexport interface MemoryStoreOptions {\n maxEntries?: number;\n maxBytes?: number;\n maxEntryBytes?: number;\n}\n\nexport class MemoryCacheStore implements CacheStore {\n private store = new Map<string, { value: string; expiresAt: number; byteSize: number }>();\n private sets = new Map<string, Set<string>>();\n private maxEntries: number;\n private maxBytes: number | undefined;\n private maxEntryBytes: number | undefined;\n private currentBytes = 0;\n private readonly trackBytes: boolean;\n readonly consistency = 'local' as const;\n\n constructor(opts?: MemoryStoreOptions) {\n this.maxEntries = Math.max(opts?.maxEntries ?? 1000, 1);\n this.maxBytes = opts?.maxBytes;\n this.maxEntryBytes = opts?.maxEntryBytes;\n this.trackBytes = this.maxBytes !== undefined || this.maxEntryBytes !== undefined;\n }\n\n async get(key: string): Promise<string | null> {\n const entry = this.store.get(key);\n if (!entry) return null;\n if (Date.now() > entry.expiresAt) {\n this.removeEntry(key);\n return null;\n }\n // LRU: move to end\n this.store.delete(key);\n this.store.set(key, entry);\n return entry.value;\n }\n\n async set(key: string, value: string, ttlSeconds: number): Promise<void> {\n const byteSize = this.trackBytes ? estimateByteSize(value) : 0;\n\n if (this.maxEntryBytes !== undefined && byteSize > this.maxEntryBytes) return;\n\n if (this.store.has(key)) this.removeEntry(key);\n\n while (this.store.size >= this.maxEntries) this.evictOldest();\n\n if (this.maxBytes !== undefined) {\n while (this.currentBytes + byteSize > this.maxBytes && this.store.size > 0) {\n this.evictOldest();\n }\n if (this.currentBytes + byteSize > this.maxBytes) return;\n }\n\n this.store.set(key, { value, expiresAt: Date.now() + ttlSeconds * 1000, byteSize });\n this.currentBytes += byteSize;\n }\n\n async del(key: string): Promise<void> {\n this.removeEntry(key);\n }\n\n // Set operations — trivial in-process implementations.\n\n async sadd(key: string, members: string[], _ttlSeconds: number): Promise<void> {\n let set = this.sets.get(key);\n if (!set) {\n set = new Set();\n this.sets.set(key, set);\n }\n for (const m of members) set.add(m);\n }\n\n async srem(key: string, members: string[]): Promise<void> {\n const set = this.sets.get(key);\n if (!set) return;\n for (const m of members) set.delete(m);\n if (set.size === 0) this.sets.delete(key);\n }\n\n async smembers(key: string): Promise<string[]> {\n const set = this.sets.get(key);\n return set ? [...set] : [];\n }\n\n async sdel(key: string): Promise<void> {\n this.sets.delete(key);\n }\n\n get size(): number {\n return this.store.size;\n }\n\n get bytes(): number {\n return this.currentBytes;\n }\n\n private removeEntry(key: string): void {\n const entry = this.store.get(key);\n if (entry) {\n this.currentBytes -= entry.byteSize;\n this.store.delete(key);\n }\n }\n\n private evictOldest(): void {\n const oldest = this.store.keys().next().value;\n if (oldest !== undefined) this.removeEntry(oldest);\n }\n}\n"],"mappings":";;AAuBA,IAAa,mBAAb,MAAoD;CAClD,wBAAgB,IAAI,IAAoE;CACxF,uBAAe,IAAI,IAAyB;CAC5C;CACA;CACA;CACA,eAAuB;CACvB;CACA,cAAuB;CAEvB,YAAY,MAA2B;EACrC,KAAK,aAAa,KAAK,IAAI,MAAM,cAAc,KAAM,CAAC;EACtD,KAAK,WAAW,MAAM;EACtB,KAAK,gBAAgB,MAAM;EAC3B,KAAK,aAAa,KAAK,aAAa,KAAA,KAAa,KAAK,kBAAkB,KAAA;CAC1E;CAEA,MAAM,IAAI,KAAqC;EAC7C,MAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;EAChC,IAAI,CAAC,OAAO,OAAO;EACnB,IAAI,KAAK,IAAI,IAAI,MAAM,WAAW;GAChC,KAAK,YAAY,GAAG;GACpB,OAAO;EACT;EAEA,KAAK,MAAM,OAAO,GAAG;EACrB,KAAK,MAAM,IAAI,KAAK,KAAK;EACzB,OAAO,MAAM;CACf;CAEA,MAAM,IAAI,KAAa,OAAe,YAAmC;EACvE,MAAM,WAAW,KAAK,aAAa,iBAAiB,KAAK,IAAI;EAE7D,IAAI,KAAK,kBAAkB,KAAA,KAAa,WAAW,KAAK,eAAe;EAEvE,IAAI,KAAK,MAAM,IAAI,GAAG,GAAG,KAAK,YAAY,GAAG;EAE7C,OAAO,KAAK,MAAM,QAAQ,KAAK,YAAY,KAAK,YAAY;EAE5D,IAAI,KAAK,aAAa,KAAA,GAAW;GAC/B,OAAO,KAAK,eAAe,WAAW,KAAK,YAAY,KAAK,MAAM,OAAO,GACvE,KAAK,YAAY;GAEnB,IAAI,KAAK,eAAe,WAAW,KAAK,UAAU;EACpD;EAEA,KAAK,MAAM,IAAI,KAAK;GAAE;GAAO,WAAW,KAAK,IAAI,IAAI,aAAa;GAAM;EAAS,CAAC;EAClF,KAAK,gBAAgB;CACvB;CAEA,MAAM,IAAI,KAA4B;EACpC,KAAK,YAAY,GAAG;CACtB;CAIA,MAAM,KAAK,KAAa,SAAmB,aAAoC;EAC7E,IAAI,MAAM,KAAK,KAAK,IAAI,GAAG;EAC3B,IAAI,CAAC,KAAK;GACR,sBAAM,IAAI,IAAI;GACd,KAAK,KAAK,IAAI,KAAK,GAAG;EACxB;EACA,KAAK,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC;CACpC;CAEA,MAAM,KAAK,KAAa,SAAkC;EACxD,MAAM,MAAM,KAAK,KAAK,IAAI,GAAG;EAC7B,IAAI,CAAC,KAAK;EACV,KAAK,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC;EACrC,IAAI,IAAI,SAAS,GAAG,KAAK,KAAK,OAAO,GAAG;CAC1C;CAEA,MAAM,SAAS,KAAgC;EAC7C,MAAM,MAAM,KAAK,KAAK,IAAI,GAAG;EAC7B,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;CAC3B;CAEA,MAAM,KAAK,KAA4B;EACrC,KAAK,KAAK,OAAO,GAAG;CACtB;CAEA,IAAI,OAAe;EACjB,OAAO,KAAK,MAAM;CACpB;CAEA,IAAI,QAAgB;EAClB,OAAO,KAAK;CACd;CAEA,YAAoB,KAAmB;EACrC,MAAM,QAAQ,KAAK,MAAM,IAAI,GAAG;EAChC,IAAI,OAAO;GACT,KAAK,gBAAgB,MAAM;GAC3B,KAAK,MAAM,OAAO,GAAG;EACvB;CACF;CAEA,cAA4B;EAC1B,MAAM,SAAS,KAAK,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;EACxC,IAAI,WAAW,KAAA,GAAW,KAAK,YAAY,MAAM;CACnD;AACF"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Redis CacheStore — strongly-consistent, supports native Set operations.
3
+ *
4
+ * The TagAwareCacheHandler will use the Set-based strategy automatically
5
+ * because this store provides sadd/smembers/srem/sdel.
6
+ */
7
+ import type { CacheStore } from '../store.ts';
8
+ /**
9
+ * Minimal Redis client contract. Same philosophy as the old RedisClient
10
+ * interface — deliberately NOT the native shape of any library. TTL is a
11
+ * required positional argument so no adapter can forget it.
12
+ *
13
+ * @example ioredis
14
+ * ```ts
15
+ * import Redis from 'ioredis';
16
+ * const redis = new Redis(process.env.REDIS_URL);
17
+ * const client: RedisStoreClient = {
18
+ * get: (k) => redis.get(k),
19
+ * set: (k, v, ttl) => redis.set(k, v, 'EX', ttl),
20
+ * del: (k) => redis.del(k).then(() => {}),
21
+ * sadd: (k, ...m) => redis.sadd(k, ...m).then(() => {}),
22
+ * srem: (k, ...m) => redis.srem(k, ...m).then(() => {}),
23
+ * smembers: (k) => redis.smembers(k),
24
+ * expireNX: (k, s) => redis.expire(k, s, 'NX').then(() => {}),
25
+ * expireGT: (k, s) => redis.expire(k, s, 'GT').then(() => {}),
26
+ * };
27
+ * ```
28
+ *
29
+ * @example @upstash/redis
30
+ * ```ts
31
+ * import { Redis } from '@upstash/redis';
32
+ * const redis = new Redis({ url, token, automaticDeserialization: false });
33
+ * const client: RedisStoreClient = {
34
+ * get: (k) => redis.get(k),
35
+ * set: (k, v, ttl) => redis.set(k, v, { ex: ttl }).then(() => {}),
36
+ * del: (k) => redis.del(k).then(() => {}),
37
+ * sadd: (k, ...m) => redis.sadd(k, ...m).then(() => {}),
38
+ * srem: (k, ...m) => redis.srem(k, ...m).then(() => {}),
39
+ * smembers: (k) => redis.smembers(k),
40
+ * expireNX: (k, s) => redis.expire(k, s, 'NX').then(() => {}),
41
+ * expireGT: (k, s) => redis.expire(k, s, 'GT').then(() => {}),
42
+ * };
43
+ * ```
44
+ */
45
+ export interface RedisStoreClient {
46
+ get(key: string): Promise<string | null>;
47
+ set(key: string, value: string, ttlSeconds: number): Promise<unknown>;
48
+ del(key: string): Promise<unknown>;
49
+ sadd(key: string, ...members: string[]): Promise<unknown>;
50
+ srem(key: string, ...members: string[]): Promise<unknown>;
51
+ smembers(key: string): Promise<string[]>;
52
+ /** `EXPIRE key seconds NX` — set TTL only if the key has no existing expiry (Redis 7.0+). */
53
+ expireNX(key: string, seconds: number): Promise<unknown>;
54
+ /** `EXPIRE key seconds GT` — extend TTL only if new value is greater (Redis 7.0+). */
55
+ expireGT(key: string, seconds: number): Promise<unknown>;
56
+ }
57
+ export declare class RedisCacheStore implements CacheStore {
58
+ private client;
59
+ readonly consistency: 'strong';
60
+ constructor(client: RedisStoreClient);
61
+ get(key: string): Promise<string | null>;
62
+ set(key: string, value: string, ttlSeconds: number): Promise<void>;
63
+ del(key: string): Promise<void>;
64
+ sadd(key: string, members: string[], ttlSeconds: number): Promise<void>;
65
+ srem(key: string, members: string[]): Promise<void>;
66
+ smembers(key: string): Promise<string[]>;
67
+ sdel(key: string): Promise<void>;
68
+ }
69
+ //# sourceMappingURL=redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/cache/stores/redis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,6FAA6F;IAC7F,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,sFAAsF;IACtF,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D;AAED,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,MAAM,CAAmB;IACjC,QAAQ,CAAC,WAAW,EAAG,QAAQ,CAAU;IAEzC,YAAY,MAAM,EAAE,gBAAgB,EAEnC;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAE7C;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpC;IAEK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5E;IAEK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;IAEK,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7C;IAEK,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAErC;CACF"}
@@ -0,0 +1,35 @@
1
+ //#region src/cache/stores/redis.ts
2
+ var RedisCacheStore = class {
3
+ client;
4
+ consistency = "strong";
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ async get(key) {
9
+ return this.client.get(key);
10
+ }
11
+ async set(key, value, ttlSeconds) {
12
+ await this.client.set(key, value, ttlSeconds);
13
+ }
14
+ async del(key) {
15
+ await this.client.del(key);
16
+ }
17
+ async sadd(key, members, ttlSeconds) {
18
+ await this.client.sadd(key, ...members);
19
+ await this.client.expireNX(key, ttlSeconds);
20
+ await this.client.expireGT(key, ttlSeconds);
21
+ }
22
+ async srem(key, members) {
23
+ await this.client.srem(key, ...members);
24
+ }
25
+ async smembers(key) {
26
+ return this.client.smembers(key);
27
+ }
28
+ async sdel(key) {
29
+ await this.client.del(key);
30
+ }
31
+ };
32
+ //#endregion
33
+ export { RedisCacheStore };
34
+
35
+ //# sourceMappingURL=redis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.js","names":[],"sources":["../../../src/cache/stores/redis.ts"],"sourcesContent":["/**\n * Redis CacheStore — strongly-consistent, supports native Set operations.\n *\n * The TagAwareCacheHandler will use the Set-based strategy automatically\n * because this store provides sadd/smembers/srem/sdel.\n */\n\nimport type { CacheStore } from '../store.ts';\n\n/**\n * Minimal Redis client contract. Same philosophy as the old RedisClient\n * interface — deliberately NOT the native shape of any library. TTL is a\n * required positional argument so no adapter can forget it.\n *\n * @example ioredis\n * ```ts\n * import Redis from 'ioredis';\n * const redis = new Redis(process.env.REDIS_URL);\n * const client: RedisStoreClient = {\n * get: (k) => redis.get(k),\n * set: (k, v, ttl) => redis.set(k, v, 'EX', ttl),\n * del: (k) => redis.del(k).then(() => {}),\n * sadd: (k, ...m) => redis.sadd(k, ...m).then(() => {}),\n * srem: (k, ...m) => redis.srem(k, ...m).then(() => {}),\n * smembers: (k) => redis.smembers(k),\n * expireNX: (k, s) => redis.expire(k, s, 'NX').then(() => {}),\n * expireGT: (k, s) => redis.expire(k, s, 'GT').then(() => {}),\n * };\n * ```\n *\n * @example @upstash/redis\n * ```ts\n * import { Redis } from '@upstash/redis';\n * const redis = new Redis({ url, token, automaticDeserialization: false });\n * const client: RedisStoreClient = {\n * get: (k) => redis.get(k),\n * set: (k, v, ttl) => redis.set(k, v, { ex: ttl }).then(() => {}),\n * del: (k) => redis.del(k).then(() => {}),\n * sadd: (k, ...m) => redis.sadd(k, ...m).then(() => {}),\n * srem: (k, ...m) => redis.srem(k, ...m).then(() => {}),\n * smembers: (k) => redis.smembers(k),\n * expireNX: (k, s) => redis.expire(k, s, 'NX').then(() => {}),\n * expireGT: (k, s) => redis.expire(k, s, 'GT').then(() => {}),\n * };\n * ```\n */\nexport interface RedisStoreClient {\n get(key: string): Promise<string | null>;\n set(key: string, value: string, ttlSeconds: number): Promise<unknown>;\n del(key: string): Promise<unknown>;\n sadd(key: string, ...members: string[]): Promise<unknown>;\n srem(key: string, ...members: string[]): Promise<unknown>;\n smembers(key: string): Promise<string[]>;\n /** `EXPIRE key seconds NX` — set TTL only if the key has no existing expiry (Redis 7.0+). */\n expireNX(key: string, seconds: number): Promise<unknown>;\n /** `EXPIRE key seconds GT` — extend TTL only if new value is greater (Redis 7.0+). */\n expireGT(key: string, seconds: number): Promise<unknown>;\n}\n\nexport class RedisCacheStore implements CacheStore {\n private client: RedisStoreClient;\n readonly consistency = 'strong' as const;\n\n constructor(client: RedisStoreClient) {\n this.client = client;\n }\n\n async get(key: string): Promise<string | null> {\n return this.client.get(key);\n }\n\n async set(key: string, value: string, ttlSeconds: number): Promise<void> {\n await this.client.set(key, value, ttlSeconds);\n }\n\n async del(key: string): Promise<void> {\n await this.client.del(key);\n }\n\n async sadd(key: string, members: string[], ttlSeconds: number): Promise<void> {\n await this.client.sadd(key, ...members);\n await this.client.expireNX(key, ttlSeconds);\n await this.client.expireGT(key, ttlSeconds);\n }\n\n async srem(key: string, members: string[]): Promise<void> {\n await this.client.srem(key, ...members);\n }\n\n async smembers(key: string): Promise<string[]> {\n return this.client.smembers(key);\n }\n\n async sdel(key: string): Promise<void> {\n await this.client.del(key);\n }\n}\n"],"mappings":";AA2DA,IAAa,kBAAb,MAAmD;CACjD;CACA,cAAuB;CAEvB,YAAY,QAA0B;EACpC,KAAK,SAAS;CAChB;CAEA,MAAM,IAAI,KAAqC;EAC7C,OAAO,KAAK,OAAO,IAAI,GAAG;CAC5B;CAEA,MAAM,IAAI,KAAa,OAAe,YAAmC;EACvE,MAAM,KAAK,OAAO,IAAI,KAAK,OAAO,UAAU;CAC9C;CAEA,MAAM,IAAI,KAA4B;EACpC,MAAM,KAAK,OAAO,IAAI,GAAG;CAC3B;CAEA,MAAM,KAAK,KAAa,SAAmB,YAAmC;EAC5E,MAAM,KAAK,OAAO,KAAK,KAAK,GAAG,OAAO;EACtC,MAAM,KAAK,OAAO,SAAS,KAAK,UAAU;EAC1C,MAAM,KAAK,OAAO,SAAS,KAAK,UAAU;CAC5C;CAEA,MAAM,KAAK,KAAa,SAAkC;EACxD,MAAM,KAAK,OAAO,KAAK,KAAK,GAAG,OAAO;CACxC;CAEA,MAAM,SAAS,KAAgC;EAC7C,OAAO,KAAK,OAAO,SAAS,GAAG;CACjC;CAEA,MAAM,KAAK,KAA4B;EACrC,MAAM,KAAK,OAAO,IAAI,GAAG;CAC3B;AACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Vercel Runtime Cache CacheStore — native tag support.
3
+ *
4
+ * Delegates tag operations to Vercel's infrastructure via their Runtime Cache
5
+ * API (getCache/expireTag). The TagAwareCacheHandler detects setWithTags +
6
+ * invalidateTag and delegates entirely — no inverted index, no version stamps.
7
+ *
8
+ * Vercel handles tag purging across CDN, Runtime Cache, and Data Cache layers
9
+ * simultaneously. Available on all plans.
10
+ */
11
+ import type { CacheStore } from '../store.ts';
12
+ /**
13
+ * Vercel Runtime Cache contract — the subset we depend on.
14
+ * Resolved from `@vercel/functions` at runtime.
15
+ */
16
+ export interface VercelCache {
17
+ get(key: string): Promise<string | undefined>;
18
+ set(key: string, value: string, options: {
19
+ ttl: number;
20
+ tags?: string[];
21
+ }): Promise<void>;
22
+ delete(key: string): Promise<void>;
23
+ expireTag(tag: string): Promise<void>;
24
+ }
25
+ export declare class VercelCacheStore implements CacheStore {
26
+ private cache;
27
+ readonly consistency: 'strong';
28
+ constructor(cache: VercelCache | (() => VercelCache));
29
+ private getCache;
30
+ get(key: string): Promise<string | null>;
31
+ set(key: string, value: string, ttlSeconds: number): Promise<void>;
32
+ del(key: string): Promise<void>;
33
+ setWithTags(key: string, value: string, ttlSeconds: number, tags: string[]): Promise<void>;
34
+ invalidateTag(tag: string): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=vercel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/cache/stores/vercel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,qBAAa,gBAAiB,YAAW,UAAU;IACjD,OAAO,CAAC,KAAK,CAAoC;IACjD,QAAQ,CAAC,WAAW,EAAG,QAAQ,CAAU;IAEzC,YAAY,KAAK,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,EAEnD;IAED,OAAO,CAAC,QAAQ;IAIV,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAG7C;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvE;IAEK,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpC;IAIK,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/F;IAEK,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9C;CACF"}
@@ -0,0 +1,33 @@
1
+ //#region src/cache/stores/vercel.ts
2
+ var VercelCacheStore = class {
3
+ cache;
4
+ consistency = "strong";
5
+ constructor(cache) {
6
+ this.cache = cache;
7
+ }
8
+ getCache() {
9
+ return typeof this.cache === "function" ? this.cache() : this.cache;
10
+ }
11
+ async get(key) {
12
+ return await this.getCache().get(key) ?? null;
13
+ }
14
+ async set(key, value, ttlSeconds) {
15
+ await this.getCache().set(key, value, { ttl: ttlSeconds });
16
+ }
17
+ async del(key) {
18
+ await this.getCache().delete(key);
19
+ }
20
+ async setWithTags(key, value, ttlSeconds, tags) {
21
+ await this.getCache().set(key, value, {
22
+ ttl: ttlSeconds,
23
+ tags
24
+ });
25
+ }
26
+ async invalidateTag(tag) {
27
+ await this.getCache().expireTag(tag);
28
+ }
29
+ };
30
+ //#endregion
31
+ export { VercelCacheStore };
32
+
33
+ //# sourceMappingURL=vercel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vercel.js","names":[],"sources":["../../../src/cache/stores/vercel.ts"],"sourcesContent":["/**\n * Vercel Runtime Cache CacheStore — native tag support.\n *\n * Delegates tag operations to Vercel's infrastructure via their Runtime Cache\n * API (getCache/expireTag). The TagAwareCacheHandler detects setWithTags +\n * invalidateTag and delegates entirely — no inverted index, no version stamps.\n *\n * Vercel handles tag purging across CDN, Runtime Cache, and Data Cache layers\n * simultaneously. Available on all plans.\n */\n\nimport type { CacheStore } from '../store.ts';\n\n/**\n * Vercel Runtime Cache contract — the subset we depend on.\n * Resolved from `@vercel/functions` at runtime.\n */\nexport interface VercelCache {\n get(key: string): Promise<string | undefined>;\n set(key: string, value: string, options: { ttl: number; tags?: string[] }): Promise<void>;\n delete(key: string): Promise<void>;\n expireTag(tag: string): Promise<void>;\n}\n\nexport class VercelCacheStore implements CacheStore {\n private cache: VercelCache | (() => VercelCache);\n readonly consistency = 'strong' as const;\n\n constructor(cache: VercelCache | (() => VercelCache)) {\n this.cache = cache;\n }\n\n private getCache(): VercelCache {\n return typeof this.cache === 'function' ? this.cache() : this.cache;\n }\n\n async get(key: string): Promise<string | null> {\n const result = await this.getCache().get(key);\n return result ?? null;\n }\n\n async set(key: string, value: string, ttlSeconds: number): Promise<void> {\n await this.getCache().set(key, value, { ttl: ttlSeconds });\n }\n\n async del(key: string): Promise<void> {\n await this.getCache().delete(key);\n }\n\n // --- Native tag support ---\n\n async setWithTags(key: string, value: string, ttlSeconds: number, tags: string[]): Promise<void> {\n await this.getCache().set(key, value, { ttl: ttlSeconds, tags });\n }\n\n async invalidateTag(tag: string): Promise<void> {\n await this.getCache().expireTag(tag);\n }\n}\n"],"mappings":";AAwBA,IAAa,mBAAb,MAAoD;CAClD;CACA,cAAuB;CAEvB,YAAY,OAA0C;EACpD,KAAK,QAAQ;CACf;CAEA,WAAgC;EAC9B,OAAO,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,IAAI,KAAK;CAChE;CAEA,MAAM,IAAI,KAAqC;EAE7C,OAAO,MADc,KAAK,SAAS,CAAC,CAAC,IAAI,GAAG,KAC3B;CACnB;CAEA,MAAM,IAAI,KAAa,OAAe,YAAmC;EACvE,MAAM,KAAK,SAAS,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,KAAK,WAAW,CAAC;CAC3D;CAEA,MAAM,IAAI,KAA4B;EACpC,MAAM,KAAK,SAAS,CAAC,CAAC,OAAO,GAAG;CAClC;CAIA,MAAM,YAAY,KAAa,OAAe,YAAoB,MAA+B;EAC/F,MAAM,KAAK,SAAS,CAAC,CAAC,IAAI,KAAK,OAAO;GAAE,KAAK;GAAY;EAAK,CAAC;CACjE;CAEA,MAAM,cAAc,KAA4B;EAC9C,MAAM,KAAK,SAAS,CAAC,CAAC,UAAU,GAAG;CACrC;AACF"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * TagAwareCacheHandler — wraps any CacheStore and adds tag-based invalidation.
3
+ *
4
+ * Three strategies, selected by store capabilities (best available wins):
5
+ *
6
+ * 1. **Native** (store has setWithTags + invalidateTag): Delegates entirely.
7
+ * The store owns tag indexing. Used for Vercel Runtime Cache, DO-backed
8
+ * stores, or any platform with first-class tag support.
9
+ *
10
+ * 2. **Eager** (store has sadd/smembers/srem/sdel): Maintains an inverted
11
+ * index via atomic set operations. Invalidation enumerates the set and
12
+ * deletes entries. Used for Redis.
13
+ *
14
+ * 3. **Lazy** (bare get/set/del only): Version-stamps entries with tag
15
+ * counters. Invalidation bumps a counter (O(1)). Reads validate stored
16
+ * versions against current. Race-free, correct under eventual consistency.
17
+ * Used for Cloudflare KV.
18
+ *
19
+ * Implements the CacheHandler interface consumed by timber-cache.ts.
20
+ */
21
+ import type { CacheHandler } from './index.ts';
22
+ import type { CacheStore } from './store.ts';
23
+ export declare class TagAwareCacheHandler implements CacheHandler {
24
+ private store;
25
+ private prefix;
26
+ private strategy;
27
+ constructor(store: CacheStore, opts?: {
28
+ prefix?: string;
29
+ });
30
+ get consistency(): 'strong' | 'eventual' | 'local';
31
+ private dataKey;
32
+ /** Namespace tags for native stores so prefix isolates shared stores. */
33
+ private prefixTags;
34
+ private tagSetKey;
35
+ private tagVersionKey;
36
+ get(key: string): Promise<{
37
+ value: unknown;
38
+ stale: boolean;
39
+ } | null>;
40
+ set(key: string, value: unknown, opts: {
41
+ ttl: number;
42
+ tags: string[];
43
+ generation?: number;
44
+ }): Promise<void>;
45
+ invalidate(opts: {
46
+ key?: string;
47
+ tag?: string;
48
+ }): Promise<void>;
49
+ private getTagVersions;
50
+ private bumpTagVersion;
51
+ }
52
+ //# sourceMappingURL=tag-aware-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-aware-handler.d.ts","sourceRoot":"","sources":["../../src/cache/tag-aware-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6B7C,qBAAa,oBAAqB,YAAW,YAAY;IACvD,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAW;IAE3B,YAAY,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAIxD;IAED,IAAI,WAAW,IAAI,QAAQ,GAAG,UAAU,GAAG,OAAO,CAEjD;IAED,OAAO,CAAC,OAAO;IAIf,yEAAyE;IACzE,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;IAIf,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC,CAsBzE;IAEK,GAAG,CACP,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EACd,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GACzD,OAAO,CAAC,IAAI,CAAC,CA+Cf;IAEK,UAAU,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CpE;YAIa,cAAc;YAWd,cAAc;CAe7B"}
@@ -1,21 +1,31 @@
1
- import type { CacheHandler, CacheOptions } from './index';
1
+ import type { CacheHandler, CacheOptions } from './index.ts';
2
+ /**
3
+ * Set the timeout for the module-level default singleflight.
4
+ * Called at framework boot with renderTimeoutMs from timber.config.ts so that
5
+ * cache calls without a per-call timeoutMs still get deadlock protection.
6
+ * See design/06-caching.md §"Singleflight Timeout — Deadlock Risk".
7
+ */
8
+ export declare function setDefaultSingleflightTimeout(timeoutMs: number): void;
2
9
  /**
3
10
  * Creates a cached wrapper around an async function.
4
11
  *
5
- * - SHA-256 default keys with normalized JSON args
6
- * - Singleflight: concurrent misses → single execution
12
+ * - FNV-1a default keys with normalized JSON args
13
+ * - Singleflight: concurrent misses → single execution AND single
14
+ * handler.set — the write happens inside the coalesced callback (TIM-1028)
15
+ * - Writes are skipped when the key/tags were invalidated while fn was in
16
+ * flight, so explicit invalidation is never silently undone (TIM-1028)
7
17
  * - SWR: serve stale immediately, background refetch
8
18
  * - Tags as string[] or function of args
9
- * - No ALS dependency
19
+ * - The handler is resolved per invocation via `getHandler`, never captured
20
+ * at wrapper-creation time — module-scope cache() wrappers created before
21
+ * the framework's boot wiring calls setCacheHandler() still use the
22
+ * configured handler once it arrives (TIM-1029)
23
+ * - No ALS dependency for correctness — cache() works outside a request
24
+ * context. The waitUntil ALS bridge is read optionally so the SWR
25
+ * background refetch survives handler return on Workers/Lambda.
10
26
  *
11
27
  * Cache hits/misses are recorded as OTEL span events on the enclosing
12
28
  * span (not child spans). The DevSpanProcessor reads these for dev log output.
13
29
  */
14
- export declare function createCache<Fn extends (...args: any[]) => Promise<any>>(fn: Fn, opts: CacheOptions<Fn>, handler: CacheHandler): (...args: Parameters<Fn>) => Promise<Awaited<ReturnType<Fn>>>;
15
- export declare namespace createCache {
16
- var invalidate: (handler: CacheHandler, opts: {
17
- key?: string;
18
- tag?: string;
19
- }) => Promise<void>;
20
- }
30
+ export declare function createCache<Fn extends (...args: any[]) => Promise<any>>(fn: Fn, opts: CacheOptions<Fn>, getHandler: () => CacheHandler, stableId?: string): Fn;
21
31
  //# sourceMappingURL=timber-cache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timber-cache.d.ts","sourceRoot":"","sources":["../../src/cache/timber-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AA+B1D;;;;;;;;;;;GAWG;AAEH,wBAAgB,WAAW,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACrE,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,EACtB,OAAO,EAAE,YAAY,GACpB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAwD/D;yBA5De,WAAW;8BAkEhB,YAAY,QACf;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,KACnC,OAAO,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"timber-cache.d.ts","sourceRoot":"","sources":["../../src/cache/timber-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA+B7D;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAErE;AAoED;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,wBAAgB,WAAW,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EACrE,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,EACtB,UAAU,EAAE,MAAM,YAAY,EAC9B,QAAQ,CAAC,EAAE,MAAM,GAChB,EAAE,CAiHJ"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Cloudflare CDN purge handler — purges by cache tag via the Cloudflare API.
3
+ *
4
+ * Requires Cloudflare Enterprise for tag-based purging.
5
+ * See https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-tags/
6
+ */
7
+ import type { CdnPurgeHandler } from './purge-store.ts';
8
+ export interface CloudflarePurgeOptions {
9
+ /** Cloudflare zone ID. */
10
+ zoneId: string;
11
+ /** API token with Cache Purge permission. */
12
+ apiToken: string;
13
+ /** Override fetch for testing. */
14
+ fetch?: typeof globalThis.fetch;
15
+ }
16
+ export declare class CloudflarePurge implements CdnPurgeHandler {
17
+ private readonly zoneId;
18
+ private readonly apiToken;
19
+ private readonly _fetch;
20
+ constructor(opts: CloudflarePurgeOptions);
21
+ purgeTags(tags: string[]): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=cloudflare-purge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-purge.d.ts","sourceRoot":"","sources":["../../src/cdn/cloudflare-purge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,YAAY,IAAI,EAAE,sBAAsB,EAIvC;IAEK,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB7C;CACF"}
@@ -0,0 +1,30 @@
1
+ //#region src/cdn/cloudflare-purge.ts
2
+ var CloudflarePurge = class {
3
+ zoneId;
4
+ apiToken;
5
+ _fetch;
6
+ constructor(opts) {
7
+ this.zoneId = opts.zoneId;
8
+ this.apiToken = opts.apiToken;
9
+ this._fetch = opts.fetch ?? globalThis.fetch;
10
+ }
11
+ async purgeTags(tags) {
12
+ if (tags.length === 0) return;
13
+ const res = await this._fetch(`https://api.cloudflare.com/client/v4/zones/${this.zoneId}/purge_cache`, {
14
+ method: "POST",
15
+ headers: {
16
+ "Authorization": `Bearer ${this.apiToken}`,
17
+ "Content-Type": "application/json"
18
+ },
19
+ body: JSON.stringify({ tags })
20
+ });
21
+ if (!res.ok) {
22
+ const body = await res.text();
23
+ throw new Error(`Cloudflare purge failed (${res.status}): ${body}`);
24
+ }
25
+ }
26
+ };
27
+ //#endregion
28
+ export { CloudflarePurge };
29
+
30
+ //# sourceMappingURL=cloudflare-purge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-purge.js","names":[],"sources":["../../src/cdn/cloudflare-purge.ts"],"sourcesContent":["/**\n * Cloudflare CDN purge handler — purges by cache tag via the Cloudflare API.\n *\n * Requires Cloudflare Enterprise for tag-based purging.\n * See https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-tags/\n */\n\nimport type { CdnPurgeHandler } from './purge-store.ts';\n\nexport interface CloudflarePurgeOptions {\n /** Cloudflare zone ID. */\n zoneId: string;\n /** API token with Cache Purge permission. */\n apiToken: string;\n /** Override fetch for testing. */\n fetch?: typeof globalThis.fetch;\n}\n\nexport class CloudflarePurge implements CdnPurgeHandler {\n private readonly zoneId: string;\n private readonly apiToken: string;\n private readonly _fetch: typeof globalThis.fetch;\n\n constructor(opts: CloudflarePurgeOptions) {\n this.zoneId = opts.zoneId;\n this.apiToken = opts.apiToken;\n this._fetch = opts.fetch ?? globalThis.fetch;\n }\n\n async purgeTags(tags: string[]): Promise<void> {\n if (tags.length === 0) return;\n\n const res = await this._fetch(\n `https://api.cloudflare.com/client/v4/zones/${this.zoneId}/purge_cache`,\n {\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${this.apiToken}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ tags }),\n }\n );\n\n if (!res.ok) {\n const body = await res.text();\n throw new Error(`Cloudflare purge failed (${res.status}): ${body}`);\n }\n }\n}\n"],"mappings":";AAkBA,IAAa,kBAAb,MAAwD;CACtD;CACA;CACA;CAEA,YAAY,MAA8B;EACxC,KAAK,SAAS,KAAK;EACnB,KAAK,WAAW,KAAK;EACrB,KAAK,SAAS,KAAK,SAAS,WAAW;CACzC;CAEA,MAAM,UAAU,MAA+B;EAC7C,IAAI,KAAK,WAAW,GAAG;EAEvB,MAAM,MAAM,MAAM,KAAK,OACrB,8CAA8C,KAAK,OAAO,eAC1D;GACE,QAAQ;GACR,SAAS;IACP,iBAAiB,UAAU,KAAK;IAChC,gBAAgB;GAClB;GACA,MAAM,KAAK,UAAU,EAAE,KAAK,CAAC;EAC/B,CACF;EAEA,IAAI,CAAC,IAAI,IAAI;GACX,MAAM,OAAO,MAAM,IAAI,KAAK;GAC5B,MAAM,IAAI,MAAM,4BAA4B,IAAI,OAAO,KAAK,MAAM;EACpE;CACF;AACF"}