@timber-js/app 0.2.0-alpha.20 → 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 (1324) 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-MjmprTmO.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 +66 -37
  124. package/dist/adapters/nitro.d.ts.map +1 -1
  125. package/dist/adapters/nitro.js +457 -300
  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 +5 -0
  158. package/dist/cache/fast-hash.d.ts.map +1 -1
  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 -326
  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.map +1 -1
  306. package/dist/client/segment-outlet.d.ts +68 -0
  307. package/dist/client/segment-outlet.d.ts.map +1 -0
  308. package/dist/client/segment-update-context.d.ts +15 -0
  309. package/dist/client/segment-update-context.d.ts.map +1 -0
  310. package/dist/client/shallow-url.d.ts +10 -0
  311. package/dist/client/shallow-url.d.ts.map +1 -0
  312. package/dist/client/slot-content-cache-context.d.ts +35 -0
  313. package/dist/client/slot-content-cache-context.d.ts.map +1 -0
  314. package/dist/client/slot-context.d.ts +31 -0
  315. package/dist/client/slot-context.d.ts.map +1 -0
  316. package/dist/client/slot-outlet.d.ts +16 -0
  317. package/dist/client/slot-outlet.d.ts.map +1 -0
  318. package/dist/client/slot-provider.d.ts +25 -0
  319. package/dist/client/slot-provider.d.ts.map +1 -0
  320. package/dist/client/ssr-data.d.ts +29 -7
  321. package/dist/client/ssr-data.d.ts.map +1 -1
  322. package/dist/client/stale-client.d.ts +69 -0
  323. package/dist/client/stale-client.d.ts.map +1 -0
  324. package/dist/client/state.d.ts +19 -8
  325. package/dist/client/state.d.ts.map +1 -1
  326. package/dist/client/status-page-marker.d.ts +25 -0
  327. package/dist/client/status-page-marker.d.ts.map +1 -0
  328. package/dist/client/top-loader.d.ts +7 -6
  329. package/dist/client/top-loader.d.ts.map +1 -1
  330. package/dist/client/unload-guard.d.ts +5 -0
  331. package/dist/client/unload-guard.d.ts.map +1 -1
  332. package/dist/client/use-cookie.d.ts +12 -0
  333. package/dist/client/use-cookie.d.ts.map +1 -1
  334. package/dist/client/use-link-status.d.ts +5 -5
  335. package/dist/client/use-link-status.d.ts.map +1 -1
  336. package/dist/client/use-pathname.d.ts +13 -11
  337. package/dist/client/use-pathname.d.ts.map +1 -1
  338. package/dist/client/use-pending-navigation.d.ts +23 -0
  339. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  340. package/dist/client/use-query-states.d.ts +10 -4
  341. package/dist/client/use-query-states.d.ts.map +1 -1
  342. package/dist/client/use-router.d.ts +2 -2
  343. package/dist/client/use-router.d.ts.map +1 -1
  344. package/dist/client/use-search-params.d.ts +15 -8
  345. package/dist/client/use-search-params.d.ts.map +1 -1
  346. package/dist/client/use-segment-params.d.ts +55 -0
  347. package/dist/client/use-segment-params.d.ts.map +1 -0
  348. package/dist/codec.d.ts +69 -0
  349. package/dist/codec.d.ts.map +1 -0
  350. package/dist/codec.js +76 -0
  351. package/dist/codec.js.map +1 -0
  352. package/dist/config-types.d.ts +322 -0
  353. package/dist/config-types.d.ts.map +1 -0
  354. package/dist/config-validation.d.ts +51 -0
  355. package/dist/config-validation.d.ts.map +1 -0
  356. package/dist/cookies/define-cookie.d.ts +58 -25
  357. package/dist/cookies/define-cookie.d.ts.map +1 -1
  358. package/dist/cookies/index.d.ts +3 -2
  359. package/dist/cookies/index.d.ts.map +1 -1
  360. package/dist/cookies/index.js +256 -36
  361. package/dist/cookies/index.js.map +1 -1
  362. package/dist/cookies/json-cookie.d.ts +64 -0
  363. package/dist/cookies/json-cookie.d.ts.map +1 -0
  364. package/dist/cookies/validation.d.ts +34 -0
  365. package/dist/cookies/validation.d.ts.map +1 -0
  366. package/dist/dev-tools/404-page.d.ts +50 -0
  367. package/dist/dev-tools/404-page.d.ts.map +1 -0
  368. package/dist/dev-tools/browser-logs.d.ts +40 -0
  369. package/dist/dev-tools/browser-logs.d.ts.map +1 -0
  370. package/dist/dev-tools/dev-page-shell.d.ts +78 -0
  371. package/dist/dev-tools/dev-page-shell.d.ts.map +1 -0
  372. package/dist/dev-tools/error-page.d.ts +32 -0
  373. package/dist/dev-tools/error-page.d.ts.map +1 -0
  374. package/dist/dev-tools/holding-server.d.ts +46 -0
  375. package/dist/dev-tools/holding-server.d.ts.map +1 -0
  376. package/dist/dev-tools/hydration-overlay.d.ts +11 -0
  377. package/dist/dev-tools/hydration-overlay.d.ts.map +1 -0
  378. package/dist/dev-tools/index.d.ts +31 -0
  379. package/dist/dev-tools/index.d.ts.map +1 -0
  380. package/dist/dev-tools/instrumentation.d.ts +59 -0
  381. package/dist/dev-tools/instrumentation.d.ts.map +1 -0
  382. package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
  383. package/dist/dev-tools/logger.d.ts.map +1 -0
  384. package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +17 -3
  385. package/dist/dev-tools/logs.d.ts.map +1 -0
  386. package/dist/dev-tools/overlay.d.ts +91 -0
  387. package/dist/dev-tools/overlay.d.ts.map +1 -0
  388. package/dist/dev-tools/stack-classifier.d.ts +34 -0
  389. package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
  390. package/dist/dev-tools/terminal.d.ts +28 -0
  391. package/dist/dev-tools/terminal.d.ts.map +1 -0
  392. package/dist/fonts/ast-walk.d.ts +68 -0
  393. package/dist/fonts/ast-walk.d.ts.map +1 -0
  394. package/dist/fonts/ast.d.ts +112 -8
  395. package/dist/fonts/ast.d.ts.map +1 -1
  396. package/dist/fonts/bundle.d.ts +50 -0
  397. package/dist/fonts/bundle.d.ts.map +1 -0
  398. package/dist/fonts/css.d.ts +1 -1
  399. package/dist/fonts/dev-middleware.d.ts +22 -0
  400. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  401. package/dist/fonts/fallbacks.d.ts +0 -7
  402. package/dist/fonts/fallbacks.d.ts.map +1 -1
  403. package/dist/fonts/google.d.ts +5 -3
  404. package/dist/fonts/google.d.ts.map +1 -1
  405. package/dist/fonts/local.d.ts +5 -5
  406. package/dist/fonts/local.d.ts.map +1 -1
  407. package/dist/fonts/paths.d.ts +43 -0
  408. package/dist/fonts/paths.d.ts.map +1 -0
  409. package/dist/fonts/pipeline.d.ts +177 -0
  410. package/dist/fonts/pipeline.d.ts.map +1 -0
  411. package/dist/fonts/transform.d.ts +82 -0
  412. package/dist/fonts/transform.d.ts.map +1 -0
  413. package/dist/fonts/types.d.ts +47 -1
  414. package/dist/fonts/types.d.ts.map +1 -1
  415. package/dist/fonts/virtual-modules.d.ts +77 -0
  416. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  417. package/dist/index.d.ts +35 -181
  418. package/dist/index.d.ts.map +1 -1
  419. package/dist/index.js +10461 -14176
  420. package/dist/index.js.map +1 -1
  421. package/dist/params/codec-registry.d.ts +26 -0
  422. package/dist/params/codec-registry.d.ts.map +1 -0
  423. package/dist/params/define-schema.d.ts +81 -0
  424. package/dist/params/define-schema.d.ts.map +1 -0
  425. package/dist/params/index.d.ts +5 -0
  426. package/dist/params/index.d.ts.map +1 -0
  427. package/dist/params/index.js +34 -0
  428. package/dist/params/index.js.map +1 -0
  429. package/dist/params/resolve-schema.d.ts +34 -0
  430. package/dist/params/resolve-schema.d.ts.map +1 -0
  431. package/dist/plugin-context.d.ts +276 -0
  432. package/dist/plugin-context.d.ts.map +1 -0
  433. package/dist/plugins/adapter-build.d.ts +21 -1
  434. package/dist/plugins/adapter-build.d.ts.map +1 -1
  435. package/dist/plugins/build-manifest.d.ts +7 -3
  436. package/dist/plugins/build-manifest.d.ts.map +1 -1
  437. package/dist/plugins/build-report.d.ts +47 -10
  438. package/dist/plugins/build-report.d.ts.map +1 -1
  439. package/dist/plugins/cache.d.ts +64 -0
  440. package/dist/plugins/cache.d.ts.map +1 -0
  441. package/dist/plugins/callsite-ast.d.ts +117 -0
  442. package/dist/plugins/callsite-ast.d.ts.map +1 -0
  443. package/dist/plugins/callsite-jsx.d.ts +35 -0
  444. package/dist/plugins/callsite-jsx.d.ts.map +1 -0
  445. package/dist/plugins/chunks.d.ts +11 -4
  446. package/dist/plugins/chunks.d.ts.map +1 -1
  447. package/dist/plugins/client-chunks.d.ts +40 -0
  448. package/dist/plugins/client-chunks.d.ts.map +1 -0
  449. package/dist/plugins/cloudflare-wasm.d.ts +21 -0
  450. package/dist/plugins/cloudflare-wasm.d.ts.map +1 -0
  451. package/dist/plugins/content.d.ts +1 -1
  452. package/dist/plugins/content.d.ts.map +1 -1
  453. package/dist/plugins/dev-discovery.d.ts +123 -0
  454. package/dist/plugins/dev-discovery.d.ts.map +1 -0
  455. package/dist/plugins/dev-server.d.ts +17 -1
  456. package/dist/plugins/dev-server.d.ts.map +1 -1
  457. package/dist/plugins/entries.d.ts +28 -4
  458. package/dist/plugins/entries.d.ts.map +1 -1
  459. package/dist/plugins/fonts.d.ts +16 -73
  460. package/dist/plugins/fonts.d.ts.map +1 -1
  461. package/dist/plugins/graph-endpoint.d.ts +112 -0
  462. package/dist/plugins/graph-endpoint.d.ts.map +1 -0
  463. package/dist/plugins/mdx.d.ts +18 -5
  464. package/dist/plugins/mdx.d.ts.map +1 -1
  465. package/dist/plugins/prebuilt-capture.d.ts +60 -0
  466. package/dist/plugins/prebuilt-capture.d.ts.map +1 -0
  467. package/dist/plugins/prebuilt-options-analysis.d.ts +40 -0
  468. package/dist/plugins/prebuilt-options-analysis.d.ts.map +1 -0
  469. package/dist/plugins/prebuilt.d.ts +82 -0
  470. package/dist/plugins/prebuilt.d.ts.map +1 -0
  471. package/dist/plugins/prerender-sugar.d.ts +39 -0
  472. package/dist/plugins/prerender-sugar.d.ts.map +1 -0
  473. package/dist/plugins/request-dep/analysis.d.ts +106 -0
  474. package/dist/plugins/request-dep/analysis.d.ts.map +1 -0
  475. package/dist/plugins/request-dep/index.d.ts +75 -0
  476. package/dist/plugins/request-dep/index.d.ts.map +1 -0
  477. package/dist/plugins/request-dep/origin.d.ts +61 -0
  478. package/dist/plugins/request-dep/origin.d.ts.map +1 -0
  479. package/dist/plugins/routing.d.ts +1 -1
  480. package/dist/plugins/routing.d.ts.map +1 -1
  481. package/dist/plugins/server-bundle.d.ts.map +1 -1
  482. package/dist/plugins/shims.d.ts +29 -5
  483. package/dist/plugins/shims.d.ts.map +1 -1
  484. package/dist/plugins/static-build.d.ts +218 -21
  485. package/dist/plugins/static-build.d.ts.map +1 -1
  486. package/dist/routing/codegen-shared.d.ts +26 -0
  487. package/dist/routing/codegen-shared.d.ts.map +1 -0
  488. package/dist/routing/codegen-types.d.ts +61 -0
  489. package/dist/routing/codegen-types.d.ts.map +1 -0
  490. package/dist/routing/codegen-write.d.ts +51 -0
  491. package/dist/routing/codegen-write.d.ts.map +1 -0
  492. package/dist/routing/codegen.d.ts +8 -3
  493. package/dist/routing/codegen.d.ts.map +1 -1
  494. package/dist/routing/collision-probe.d.ts +104 -0
  495. package/dist/routing/collision-probe.d.ts.map +1 -0
  496. package/dist/routing/collision-spaces.d.ts +26 -0
  497. package/dist/routing/collision-spaces.d.ts.map +1 -0
  498. package/dist/routing/convention-lint.d.ts +55 -0
  499. package/dist/routing/convention-lint.d.ts.map +1 -0
  500. package/dist/routing/export-detect.d.ts +72 -0
  501. package/dist/routing/export-detect.d.ts.map +1 -0
  502. package/dist/routing/file-cache.d.ts +8 -0
  503. package/dist/routing/file-cache.d.ts.map +1 -0
  504. package/dist/routing/index.d.ts +13 -7
  505. package/dist/routing/index.d.ts.map +1 -1
  506. package/dist/routing/index.js +5 -2
  507. package/dist/routing/interception-overlap.d.ts +35 -0
  508. package/dist/routing/interception-overlap.d.ts.map +1 -0
  509. package/dist/routing/interception.d.ts +234 -10
  510. package/dist/routing/interception.d.ts.map +1 -1
  511. package/dist/routing/link-codegen.d.ts +105 -0
  512. package/dist/routing/link-codegen.d.ts.map +1 -0
  513. package/dist/routing/manifest-codegen.d.ts +26 -0
  514. package/dist/routing/manifest-codegen.d.ts.map +1 -0
  515. package/dist/routing/scanner.d.ts +14 -10
  516. package/dist/routing/scanner.d.ts.map +1 -1
  517. package/dist/routing/schema-validation.d.ts +35 -0
  518. package/dist/routing/schema-validation.d.ts.map +1 -0
  519. package/dist/routing/segment-classify.d.ts +114 -0
  520. package/dist/routing/segment-classify.d.ts.map +1 -0
  521. package/dist/routing/segment-codegen.d.ts +38 -0
  522. package/dist/routing/segment-codegen.d.ts.map +1 -0
  523. package/dist/routing/segment-keys.d.ts +118 -0
  524. package/dist/routing/segment-keys.d.ts.map +1 -0
  525. package/dist/routing/slot-placement.d.ts +48 -0
  526. package/dist/routing/slot-placement.d.ts.map +1 -0
  527. package/dist/routing/types.d.ts +74 -26
  528. package/dist/routing/types.d.ts.map +1 -1
  529. package/dist/routing/walkers.d.ts +57 -0
  530. package/dist/routing/walkers.d.ts.map +1 -0
  531. package/dist/rsc-runtime/rsc.d.ts +1 -1
  532. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  533. package/dist/rsc-runtime/ssr.d.ts +14 -0
  534. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  535. package/dist/rsc-runtime/transforms.d.ts +13 -0
  536. package/dist/rsc-runtime/transforms.d.ts.map +1 -0
  537. package/dist/schema-bridge.d.ts +145 -0
  538. package/dist/schema-bridge.d.ts.map +1 -0
  539. package/dist/search-params/define.d.ts +262 -0
  540. package/dist/search-params/define.d.ts.map +1 -0
  541. package/dist/search-params/index.d.ts +3 -7
  542. package/dist/search-params/index.d.ts.map +1 -1
  543. package/dist/search-params/index.js +179 -360
  544. package/dist/search-params/index.js.map +1 -1
  545. package/dist/search-params/parse-total.d.ts +81 -0
  546. package/dist/search-params/parse-total.d.ts.map +1 -0
  547. package/dist/search-params/serialize-equal.d.ts +9 -0
  548. package/dist/search-params/serialize-equal.d.ts.map +1 -0
  549. package/dist/search-params/wrappers.d.ts +76 -0
  550. package/dist/search-params/wrappers.d.ts.map +1 -0
  551. package/dist/server/access-gate.d.ts +98 -10
  552. package/dist/server/access-gate.d.ts.map +1 -1
  553. package/dist/server/action-client.d.ts +42 -7
  554. package/dist/server/action-client.d.ts.map +1 -1
  555. package/dist/server/action-encryption.d.ts +76 -0
  556. package/dist/server/action-encryption.d.ts.map +1 -0
  557. package/dist/server/action-handler.d.ts +39 -5
  558. package/dist/server/action-handler.d.ts.map +1 -1
  559. package/dist/server/actions.d.ts +29 -35
  560. package/dist/server/actions.d.ts.map +1 -1
  561. package/dist/server/als-registry.d.ts +117 -13
  562. package/dist/server/als-registry.d.ts.map +1 -1
  563. package/dist/server/asset-headers.d.ts +8 -18
  564. package/dist/server/asset-headers.d.ts.map +1 -1
  565. package/dist/server/body-limits.d.ts.map +1 -1
  566. package/dist/server/build-manifest.d.ts +25 -30
  567. package/dist/server/build-manifest.d.ts.map +1 -1
  568. package/dist/server/canonicalize.d.ts +10 -0
  569. package/dist/server/canonicalize.d.ts.map +1 -1
  570. package/dist/server/chain-url-parts.d.ts +82 -0
  571. package/dist/server/chain-url-parts.d.ts.map +1 -0
  572. package/dist/server/children-interception.d.ts +49 -0
  573. package/dist/server/children-interception.d.ts.map +1 -0
  574. package/dist/server/coalesce-tick.d.ts +40 -0
  575. package/dist/server/coalesce-tick.d.ts.map +1 -0
  576. package/dist/server/compress.d.ts.map +1 -1
  577. package/dist/server/cookie-context.d.ts +170 -0
  578. package/dist/server/cookie-context.d.ts.map +1 -0
  579. package/dist/server/cookie-parsing.d.ts +65 -0
  580. package/dist/server/cookie-parsing.d.ts.map +1 -0
  581. package/dist/server/csp-nonce.d.ts +45 -0
  582. package/dist/server/csp-nonce.d.ts.map +1 -0
  583. package/dist/server/csrf.d.ts +3 -2
  584. package/dist/server/csrf.d.ts.map +1 -1
  585. package/dist/server/default-logger.d.ts +22 -0
  586. package/dist/server/default-logger.d.ts.map +1 -0
  587. package/dist/server/default-status-page.d.ts +45 -0
  588. package/dist/server/default-status-page.d.ts.map +1 -0
  589. package/dist/server/deny-boundary.d.ts +253 -0
  590. package/dist/server/deny-boundary.d.ts.map +1 -0
  591. package/dist/server/deny-renderer.d.ts +20 -9
  592. package/dist/server/deny-renderer.d.ts.map +1 -1
  593. package/dist/server/dev-source-map.d.ts +22 -0
  594. package/dist/server/dev-source-map.d.ts.map +1 -0
  595. package/dist/server/early-hints-sender.d.ts.map +1 -1
  596. package/dist/server/early-hints.d.ts +14 -12
  597. package/dist/server/early-hints.d.ts.map +1 -1
  598. package/dist/server/error-boundary-wrapper.d.ts +101 -10
  599. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  600. package/dist/server/error-response-headers.d.ts +3 -0
  601. package/dist/server/error-response-headers.d.ts.map +1 -0
  602. package/dist/server/fallback-error.d.ts +12 -7
  603. package/dist/server/fallback-error.d.ts.map +1 -1
  604. package/dist/server/flight-injection-state.d.ts +66 -0
  605. package/dist/server/flight-injection-state.d.ts.map +1 -0
  606. package/dist/server/flight-scripts.d.ts +45 -0
  607. package/dist/server/flight-scripts.d.ts.map +1 -0
  608. package/dist/server/form-data.d.ts +41 -0
  609. package/dist/server/form-data.d.ts.map +1 -1
  610. package/dist/server/form-flash.d.ts +1 -1
  611. package/dist/server/head-response.d.ts +35 -0
  612. package/dist/server/head-response.d.ts.map +1 -0
  613. package/dist/server/html-injector-core.d.ts +257 -0
  614. package/dist/server/html-injector-core.d.ts.map +1 -0
  615. package/dist/server/html-injectors.d.ts +84 -42
  616. package/dist/server/html-injectors.d.ts.map +1 -1
  617. package/dist/server/index.d.ts +18 -54
  618. package/dist/server/index.d.ts.map +1 -1
  619. package/dist/server/index.js +195 -2922
  620. package/dist/server/index.js.map +1 -1
  621. package/dist/server/instrumentation.d.ts +1 -1
  622. package/dist/server/internal.d.ts +50 -0
  623. package/dist/server/internal.d.ts.map +1 -0
  624. package/dist/server/internal.js +4034 -0
  625. package/dist/server/internal.js.map +1 -0
  626. package/dist/server/logger.d.ts +39 -7
  627. package/dist/server/logger.d.ts.map +1 -1
  628. package/dist/server/metadata-collector.d.ts +71 -0
  629. package/dist/server/metadata-collector.d.ts.map +1 -0
  630. package/dist/server/metadata-platform.d.ts +2 -2
  631. package/dist/server/metadata-render.d.ts +2 -2
  632. package/dist/server/metadata-render.d.ts.map +1 -1
  633. package/dist/server/metadata-routes.d.ts +60 -11
  634. package/dist/server/metadata-routes.d.ts.map +1 -1
  635. package/dist/server/metadata-social.d.ts +2 -2
  636. package/dist/server/metadata.d.ts +10 -2
  637. package/dist/server/metadata.d.ts.map +1 -1
  638. package/dist/server/middleware-runner.d.ts +20 -5
  639. package/dist/server/middleware-runner.d.ts.map +1 -1
  640. package/dist/server/node-stream-transforms.d.ts +105 -0
  641. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  642. package/dist/server/nuqs-ssr-provider.d.ts +7 -3
  643. package/dist/server/nuqs-ssr-provider.d.ts.map +1 -1
  644. package/dist/server/param-coercion.d.ts +78 -0
  645. package/dist/server/param-coercion.d.ts.map +1 -0
  646. package/dist/server/pipeline-helpers.d.ts +77 -0
  647. package/dist/server/pipeline-helpers.d.ts.map +1 -0
  648. package/dist/server/pipeline-interception.d.ts +59 -9
  649. package/dist/server/pipeline-interception.d.ts.map +1 -1
  650. package/dist/server/pipeline-metadata.d.ts +7 -1
  651. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  652. package/dist/server/pipeline-outcome.d.ts +49 -0
  653. package/dist/server/pipeline-outcome.d.ts.map +1 -0
  654. package/dist/server/pipeline-phases.d.ts +70 -0
  655. package/dist/server/pipeline-phases.d.ts.map +1 -0
  656. package/dist/server/pipeline.d.ts +153 -20
  657. package/dist/server/pipeline.d.ts.map +1 -1
  658. package/dist/server/port-resolution.d.ts +31 -0
  659. package/dist/server/port-resolution.d.ts.map +1 -0
  660. package/dist/server/prebuilt/cache-key.d.ts +63 -0
  661. package/dist/server/prebuilt/cache-key.d.ts.map +1 -0
  662. package/dist/server/prebuilt/capture-state.d.ts +57 -0
  663. package/dist/server/prebuilt/capture-state.d.ts.map +1 -0
  664. package/dist/server/prebuilt/key-discipline.d.ts +52 -0
  665. package/dist/server/prebuilt/key-discipline.d.ts.map +1 -0
  666. package/dist/server/prebuilt/manifest-tag-index.d.ts +27 -0
  667. package/dist/server/prebuilt/manifest-tag-index.d.ts.map +1 -0
  668. package/dist/server/prebuilt/overlay.d.ts +100 -0
  669. package/dist/server/prebuilt/overlay.d.ts.map +1 -0
  670. package/dist/server/prebuilt/payload-source.d.ts +79 -0
  671. package/dist/server/prebuilt/payload-source.d.ts.map +1 -0
  672. package/dist/server/prebuilt/slots.d.ts +99 -0
  673. package/dist/server/prebuilt/slots.d.ts.map +1 -0
  674. package/dist/server/prebuilt/synthetic-store.d.ts +67 -0
  675. package/dist/server/prebuilt/synthetic-store.d.ts.map +1 -0
  676. package/dist/server/prebuilt-builder.d.ts +121 -0
  677. package/dist/server/prebuilt-builder.d.ts.map +1 -0
  678. package/dist/server/prebuilt-runtime.d.ts +111 -0
  679. package/dist/server/prebuilt-runtime.d.ts.map +1 -0
  680. package/dist/server/primitives.d.ts +129 -45
  681. package/dist/server/primitives.d.ts.map +1 -1
  682. package/dist/server/publish-params.d.ts +33 -0
  683. package/dist/server/publish-params.d.ts.map +1 -0
  684. package/dist/server/render-timeout.d.ts +51 -0
  685. package/dist/server/render-timeout.d.ts.map +1 -0
  686. package/dist/server/render-utils.d.ts +26 -0
  687. package/dist/server/render-utils.d.ts.map +1 -0
  688. package/dist/server/request-context.d.ts +111 -107
  689. package/dist/server/request-context.d.ts.map +1 -1
  690. package/dist/server/request-dep.d.ts +15 -0
  691. package/dist/server/request-dep.d.ts.map +1 -0
  692. package/dist/server/response-cache-policy.d.ts +3 -0
  693. package/dist/server/response-cache-policy.d.ts.map +1 -0
  694. package/dist/server/route-element-builder.d.ts +57 -30
  695. package/dist/server/route-element-builder.d.ts.map +1 -1
  696. package/dist/server/route-element-helpers.d.ts +12 -0
  697. package/dist/server/route-element-helpers.d.ts.map +1 -0
  698. package/dist/server/route-handler.d.ts +1 -1
  699. package/dist/server/route-handler.d.ts.map +1 -1
  700. package/dist/server/route-matcher.d.ts +40 -38
  701. package/dist/server/route-matcher.d.ts.map +1 -1
  702. package/dist/server/route-module-loader.d.ts +37 -0
  703. package/dist/server/route-module-loader.d.ts.map +1 -0
  704. package/dist/server/rsc-cache-key-guard.d.ts +78 -0
  705. package/dist/server/rsc-cache-key-guard.d.ts.map +1 -0
  706. package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
  707. package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
  708. package/dist/server/rsc-entry/api-handler.d.ts +12 -3
  709. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  710. package/dist/server/rsc-entry/deny-fallback.d.ts +29 -0
  711. package/dist/server/rsc-entry/deny-fallback.d.ts.map +1 -0
  712. package/dist/server/rsc-entry/error-renderer.d.ts +38 -13
  713. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  714. package/dist/server/rsc-entry/helpers.d.ts +59 -42
  715. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  716. package/dist/server/rsc-entry/index.d.ts +40 -6
  717. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  718. package/dist/server/rsc-entry/render-route.d.ts +51 -0
  719. package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
  720. package/dist/server/rsc-entry/revalidate-renderer.d.ts +108 -0
  721. package/dist/server/rsc-entry/revalidate-renderer.d.ts.map +1 -0
  722. package/dist/server/rsc-entry/rsc-payload.d.ts +26 -6
  723. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  724. package/dist/server/rsc-entry/rsc-stream.d.ts +33 -3
  725. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  726. package/dist/server/rsc-entry/ssr-bridge.d.ts +5 -1
  727. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  728. package/dist/server/rsc-entry/ssr-renderer.d.ts +37 -5
  729. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  730. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +89 -0
  731. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
  732. package/dist/server/rsc-error-envelope.d.ts +11 -0
  733. package/dist/server/rsc-error-envelope.d.ts.map +1 -0
  734. package/dist/server/safe-load.d.ts +46 -0
  735. package/dist/server/safe-load.d.ts.map +1 -0
  736. package/dist/server/sensitive-fields.d.ts +74 -0
  737. package/dist/server/sensitive-fields.d.ts.map +1 -0
  738. package/dist/server/sitemap-generator.d.ts +130 -0
  739. package/dist/server/sitemap-generator.d.ts.map +1 -0
  740. package/dist/server/sitemap-handler.d.ts +22 -0
  741. package/dist/server/sitemap-handler.d.ts.map +1 -0
  742. package/dist/server/skippable-prefix.d.ts +29 -0
  743. package/dist/server/skippable-prefix.d.ts.map +1 -0
  744. package/dist/server/slot-interception.d.ts +80 -0
  745. package/dist/server/slot-interception.d.ts.map +1 -0
  746. package/dist/server/slot-resolver.d.ts +137 -7
  747. package/dist/server/slot-resolver.d.ts.map +1 -1
  748. package/dist/server/slot-subtree-contain.d.ts +54 -0
  749. package/dist/server/slot-subtree-contain.d.ts.map +1 -0
  750. package/dist/server/ssr-bridge-types.d.ts +160 -0
  751. package/dist/server/ssr-bridge-types.d.ts.map +1 -0
  752. package/dist/server/ssr-entry.d.ts +1 -43
  753. package/dist/server/ssr-entry.d.ts.map +1 -1
  754. package/dist/server/ssr-render.d.ts +69 -22
  755. package/dist/server/ssr-render.d.ts.map +1 -1
  756. package/dist/server/ssr-wrappers.d.ts +93 -0
  757. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  758. package/dist/server/state-tree-diff.d.ts +44 -9
  759. package/dist/server/state-tree-diff.d.ts.map +1 -1
  760. package/dist/server/static-generator.d.ts +112 -0
  761. package/dist/server/static-generator.d.ts.map +1 -0
  762. package/dist/server/static-not-found.d.ts +52 -0
  763. package/dist/server/static-not-found.d.ts.map +1 -0
  764. package/dist/server/status-code-resolver.d.ts +26 -15
  765. package/dist/server/status-code-resolver.d.ts.map +1 -1
  766. package/dist/server/stream-utils.d.ts +47 -0
  767. package/dist/server/stream-utils.d.ts.map +1 -0
  768. package/dist/server/tracing.d.ts +46 -11
  769. package/dist/server/tracing.d.ts.map +1 -1
  770. package/dist/server/tree-match.d.ts +49 -0
  771. package/dist/server/tree-match.d.ts.map +1 -0
  772. package/dist/server/types.d.ts +88 -7
  773. package/dist/server/types.d.ts.map +1 -1
  774. package/dist/server/utils/element-type.d.ts +50 -0
  775. package/dist/server/utils/element-type.d.ts.map +1 -0
  776. package/dist/server/utils/escape-html.d.ts +14 -0
  777. package/dist/server/utils/escape-html.d.ts.map +1 -0
  778. package/dist/server/utils/mdx-file.d.ts +17 -0
  779. package/dist/server/utils/mdx-file.d.ts.map +1 -0
  780. package/dist/server/version-skew.d.ts +61 -0
  781. package/dist/server/version-skew.d.ts.map +1 -0
  782. package/dist/server/workers-cache-bridge.d.ts +26 -0
  783. package/dist/server/workers-cache-bridge.d.ts.map +1 -0
  784. package/dist/shared/als-slots.d.ts +42 -0
  785. package/dist/shared/als-slots.d.ts.map +1 -0
  786. package/dist/shared/base-path.d.ts +56 -0
  787. package/dist/shared/base-path.d.ts.map +1 -0
  788. package/dist/shared/href-validation.d.ts +49 -0
  789. package/dist/shared/href-validation.d.ts.map +1 -0
  790. package/dist/shared/merge-search-params.d.ts +22 -0
  791. package/dist/shared/merge-search-params.d.ts.map +1 -0
  792. package/dist/shared/param-value.d.ts +104 -0
  793. package/dist/shared/param-value.d.ts.map +1 -0
  794. package/dist/shared/payload-root.d.ts +109 -0
  795. package/dist/shared/payload-root.d.ts.map +1 -0
  796. package/dist/shared/redirect-type.d.ts +17 -0
  797. package/dist/shared/redirect-type.d.ts.map +1 -0
  798. package/dist/shared/rsc-cache-key.d.ts +163 -0
  799. package/dist/shared/rsc-cache-key.d.ts.map +1 -0
  800. package/dist/shared/rsc-error-envelope.d.ts +16 -0
  801. package/dist/shared/rsc-error-envelope.d.ts.map +1 -0
  802. package/dist/shared/rsc-manifest.d.ts +28 -0
  803. package/dist/shared/rsc-manifest.d.ts.map +1 -0
  804. package/dist/shared/rsc-media-type.d.ts +52 -0
  805. package/dist/shared/rsc-media-type.d.ts.map +1 -0
  806. package/dist/shared/rsc-payload-path.d.ts +42 -0
  807. package/dist/shared/rsc-payload-path.d.ts.map +1 -0
  808. package/dist/shared/segment-info.d.ts +66 -0
  809. package/dist/shared/segment-info.d.ts.map +1 -0
  810. package/dist/shared/slot-params.d.ts +52 -0
  811. package/dist/shared/slot-params.d.ts.map +1 -0
  812. package/dist/shared/static-platform-files.d.ts +71 -0
  813. package/dist/shared/static-platform-files.d.ts.map +1 -0
  814. package/dist/shared/status-reason-phrase.d.ts +26 -0
  815. package/dist/shared/status-reason-phrase.d.ts.map +1 -0
  816. package/dist/shims/font-google.d.ts +1 -1
  817. package/dist/shims/font-google.d.ts.map +1 -1
  818. package/dist/shims/font-google.js +42 -0
  819. package/dist/shims/font-google.js.map +1 -0
  820. package/dist/shims/font-local.d.ts +26 -0
  821. package/dist/shims/font-local.d.ts.map +1 -0
  822. package/dist/shims/font-local.js +20 -0
  823. package/dist/shims/font-local.js.map +1 -0
  824. package/dist/shims/headers.d.ts +53 -1
  825. package/dist/shims/headers.d.ts.map +1 -1
  826. package/dist/shims/image.d.ts +120 -120
  827. package/dist/shims/image.d.ts.map +1 -1
  828. package/dist/shims/navigation-client.d.ts +25 -12
  829. package/dist/shims/navigation-client.d.ts.map +1 -1
  830. package/dist/shims/navigation-rsc.d.ts +21 -0
  831. package/dist/shims/navigation-rsc.d.ts.map +1 -0
  832. package/dist/shims/navigation.d.ts +10 -5
  833. package/dist/shims/navigation.d.ts.map +1 -1
  834. package/dist/utils/state-machine.d.ts +80 -0
  835. package/dist/utils/state-machine.d.ts.map +1 -0
  836. package/docs/api/30-api-server.mdx +236 -0
  837. package/docs/api/31-api-client.mdx +167 -0
  838. package/docs/api/32-api-cache.mdx +311 -0
  839. package/docs/api/33-api-search-params.mdx +176 -0
  840. package/docs/api/34-api-config.mdx +329 -0
  841. package/docs/api/35-api-typescript.mdx +91 -0
  842. package/docs/api/36-cli.mdx +192 -0
  843. package/docs/learn/00-introduction.mdx +109 -0
  844. package/docs/learn/01-quick-start.mdx +94 -0
  845. package/docs/learn/02-pages-and-layouts.mdx +147 -0
  846. package/docs/learn/03-fetching-data.mdx +211 -0
  847. package/docs/learn/04-access-control.mdx +115 -0
  848. package/docs/learn/05-the-flush-point.mdx +175 -0
  849. package/docs/learn/06-typed-params.mdx +275 -0
  850. package/docs/learn/07-typed-routes.mdx +108 -0
  851. package/docs/learn/08-forms-and-actions.mdx +146 -0
  852. package/docs/learn/09-streaming.mdx +140 -0
  853. package/docs/learn/10-caching.mdx +252 -0
  854. package/docs/learn/11-middleware.mdx +158 -0
  855. package/docs/learn/12-error-handling.mdx +188 -0
  856. package/docs/learn/13-deploying.mdx +287 -0
  857. package/llms.txt +55 -0
  858. package/package.json +117 -30
  859. package/src/adapters/build-output-helper.ts +351 -0
  860. package/src/adapters/cloudflare-dev.ts +183 -0
  861. package/src/adapters/cloudflare-kv-cache.ts +207 -0
  862. package/src/adapters/cloudflare.ts +747 -130
  863. package/src/adapters/compress-module.ts +101 -88
  864. package/src/adapters/fs-identity.ts +156 -0
  865. package/src/adapters/nitro-presets.ts +139 -0
  866. package/src/adapters/nitro-preview.ts +340 -0
  867. package/src/adapters/nitro.ts +249 -426
  868. package/src/adapters/raw-imports.d.ts +5 -0
  869. package/src/adapters/shared.ts +274 -0
  870. package/src/adapters/types.ts +28 -7
  871. package/src/adapters/wrangler.d.ts +7 -0
  872. package/src/analyze/chains.ts +411 -0
  873. package/src/analyze/classify.ts +258 -0
  874. package/src/analyze/crawl-entry.ts +68 -0
  875. package/src/analyze/crawl.ts +500 -0
  876. package/src/analyze/graph-cache.ts +332 -0
  877. package/src/analyze/graph-command.ts +762 -0
  878. package/src/analyze/live-graph.ts +232 -0
  879. package/src/analyze/poison-rules.ts +165 -0
  880. package/src/analyze/poison-scan.ts +162 -0
  881. package/src/analyze/scan.ts +149 -0
  882. package/src/cache/cache-api.ts +107 -0
  883. package/src/cache/fast-hash.ts +5 -0
  884. package/src/cache/handler-store.ts +76 -0
  885. package/src/cache/index.ts +115 -22
  886. package/src/cache/invalidation-epoch.ts +93 -0
  887. package/src/cache/json-lossy-check.ts +75 -0
  888. package/src/cache/redis-handler.ts +198 -20
  889. package/src/cache/singleflight.ts +69 -6
  890. package/src/cache/sizeof.ts +33 -0
  891. package/src/cache/stable-stringify.ts +65 -2
  892. package/src/cache/store.ts +71 -0
  893. package/src/cache/stores/cloudflare-kv.ts +52 -0
  894. package/src/cache/stores/memory.ts +125 -0
  895. package/src/cache/stores/redis.ts +97 -0
  896. package/src/cache/stores/vercel.ts +59 -0
  897. package/src/cache/tag-aware-handler.ts +237 -0
  898. package/src/cache/timber-cache.ts +165 -40
  899. package/src/cdn/cloudflare-purge.ts +50 -0
  900. package/src/cdn/fastly-purge.ts +63 -0
  901. package/src/cdn/headers.ts +153 -0
  902. package/src/cdn/index.ts +23 -0
  903. package/src/cdn/purge-store.ts +34 -0
  904. package/src/cdn/workers-cache-purge.ts +34 -0
  905. package/src/cli-check.ts +507 -0
  906. package/src/cli-schema-sync.ts +401 -0
  907. package/src/cli.ts +262 -55
  908. package/src/client/browser-dev.ts +157 -2
  909. package/src/client/browser-entry/action-dispatch.ts +197 -0
  910. package/src/client/browser-entry/action-queue.ts +90 -0
  911. package/src/client/browser-entry/hmr.ts +70 -0
  912. package/src/client/browser-entry/hydrate.ts +148 -0
  913. package/src/client/browser-entry/index.ts +131 -0
  914. package/src/client/browser-entry/post-hydration.ts +123 -0
  915. package/src/client/browser-entry/router-init.ts +418 -0
  916. package/src/client/browser-entry/rsc-stream.ts +166 -0
  917. package/src/client/browser-entry/scroll.ts +50 -0
  918. package/src/client/deny-last-resort.tsx +54 -0
  919. package/src/client/error-boundary.tsx +316 -40
  920. package/src/client/error-reconstituter.tsx +79 -0
  921. package/src/client/form.tsx +36 -32
  922. package/src/client/global-context.ts +31 -0
  923. package/src/client/history.ts +81 -10
  924. package/src/client/index.ts +89 -53
  925. package/src/client/internal.ts +59 -0
  926. package/src/client/link.tsx +439 -151
  927. package/src/client/location-search.ts +15 -0
  928. package/src/client/navigation-api.ts +347 -0
  929. package/src/client/navigation-commit.ts +295 -0
  930. package/src/client/navigation-context.ts +67 -98
  931. package/src/client/navigation-root.tsx +224 -0
  932. package/src/client/navigation-transition.ts +327 -0
  933. package/src/client/nuqs-adapter.tsx +21 -9
  934. package/src/client/params-context.ts +187 -0
  935. package/src/client/react-root.ts +72 -0
  936. package/src/client/router-effects.ts +228 -0
  937. package/src/client/router-lifecycle.ts +354 -0
  938. package/src/client/router-pipeline.ts +490 -0
  939. package/src/client/router-ref.ts +3 -3
  940. package/src/client/router-skew.ts +30 -0
  941. package/src/client/router-types.ts +294 -0
  942. package/src/client/router.ts +435 -421
  943. package/src/client/rsc-fetch.ts +512 -73
  944. package/src/client/segment-cache.ts +327 -40
  945. package/src/client/segment-context.ts +7 -4
  946. package/src/client/segment-outlet.tsx +96 -0
  947. package/src/client/segment-update-context.ts +23 -0
  948. package/src/client/shallow-url.ts +22 -0
  949. package/src/client/slot-content-cache-context.ts +43 -0
  950. package/src/client/slot-context.ts +50 -0
  951. package/src/client/slot-outlet.tsx +22 -0
  952. package/src/client/slot-provider.tsx +32 -0
  953. package/src/client/ssr-data.ts +30 -9
  954. package/src/client/stale-client.ts +191 -0
  955. package/src/client/state.ts +29 -15
  956. package/src/client/status-page-marker.tsx +32 -0
  957. package/src/client/top-loader.tsx +13 -10
  958. package/src/client/unload-guard.ts +35 -3
  959. package/src/client/use-cookie.ts +70 -18
  960. package/src/client/use-link-status.ts +7 -7
  961. package/src/client/use-pathname.ts +22 -31
  962. package/src/client/use-pending-navigation.ts +40 -0
  963. package/src/client/use-query-states.ts +206 -36
  964. package/src/client/use-router.ts +6 -3
  965. package/src/client/use-search-params.ts +38 -49
  966. package/src/client/use-segment-params.ts +69 -0
  967. package/src/client/use-selected-layout-segment.ts +2 -2
  968. package/src/codec.ts +149 -0
  969. package/src/config-types.ts +322 -0
  970. package/src/config-validation.ts +347 -0
  971. package/src/cookies/define-cookie.ts +222 -53
  972. package/src/cookies/index.ts +13 -2
  973. package/src/cookies/json-cookie.ts +105 -0
  974. package/src/cookies/validation.ts +192 -0
  975. package/src/dev-tools/404-page.ts +286 -0
  976. package/src/dev-tools/browser-logs.ts +55 -0
  977. package/src/dev-tools/dev-page-shell.ts +260 -0
  978. package/src/dev-tools/error-page.ts +331 -0
  979. package/src/dev-tools/holding-server.ts +185 -0
  980. package/src/dev-tools/hydration-overlay.ts +158 -0
  981. package/src/dev-tools/index.ts +83 -0
  982. package/src/dev-tools/instrumentation.ts +213 -0
  983. package/src/{server/dev-logger.ts → dev-tools/logger.ts} +33 -51
  984. package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +122 -26
  985. package/src/dev-tools/overlay.ts +469 -0
  986. package/src/dev-tools/stack-classifier.ts +75 -0
  987. package/src/dev-tools/terminal.ts +182 -0
  988. package/src/fonts/ast-walk.ts +235 -0
  989. package/src/fonts/ast.ts +479 -128
  990. package/src/fonts/bundle.ts +138 -0
  991. package/src/fonts/css.ts +1 -1
  992. package/src/fonts/dev-middleware.ts +85 -0
  993. package/src/fonts/fallbacks.ts +0 -23
  994. package/src/fonts/google.ts +101 -19
  995. package/src/fonts/local.ts +12 -11
  996. package/src/fonts/paths.ts +58 -0
  997. package/src/fonts/pipeline.ts +348 -0
  998. package/src/fonts/transform.ts +311 -0
  999. package/src/fonts/types.ts +52 -1
  1000. package/src/fonts/virtual-modules.ts +179 -0
  1001. package/src/index.ts +486 -377
  1002. package/src/params/codec-registry.ts +34 -0
  1003. package/src/params/define-schema.ts +115 -0
  1004. package/src/params/index.ts +17 -0
  1005. package/src/params/resolve-schema.ts +84 -0
  1006. package/src/plugin-context.ts +503 -0
  1007. package/src/plugins/adapter-build.ts +229 -7
  1008. package/src/plugins/build-manifest.ts +201 -26
  1009. package/src/plugins/build-report.ts +259 -47
  1010. package/src/plugins/cache.ts +243 -0
  1011. package/src/plugins/callsite-ast.ts +472 -0
  1012. package/src/plugins/callsite-jsx.ts +243 -0
  1013. package/src/plugins/chunks.ts +74 -5
  1014. package/src/plugins/client-chunks.ts +185 -0
  1015. package/src/plugins/cloudflare-wasm.ts +141 -0
  1016. package/src/plugins/content.ts +5 -1
  1017. package/src/plugins/dev-discovery.ts +218 -0
  1018. package/src/plugins/dev-server.ts +369 -96
  1019. package/src/plugins/entries.ts +141 -16
  1020. package/src/plugins/fonts.ts +234 -659
  1021. package/src/plugins/graph-endpoint.ts +532 -0
  1022. package/src/plugins/mdx.ts +107 -35
  1023. package/src/plugins/prebuilt-capture.ts +217 -0
  1024. package/src/plugins/prebuilt-options-analysis.ts +175 -0
  1025. package/src/plugins/prebuilt.ts +655 -0
  1026. package/src/plugins/prerender-sugar.ts +320 -0
  1027. package/src/plugins/request-dep/analysis.ts +447 -0
  1028. package/src/plugins/request-dep/index.ts +376 -0
  1029. package/src/plugins/request-dep/origin.ts +310 -0
  1030. package/src/plugins/routing.ts +273 -277
  1031. package/src/plugins/server-bundle.ts +99 -14
  1032. package/src/plugins/shims.ts +259 -97
  1033. package/src/plugins/static-build.ts +708 -66
  1034. package/src/react-canary.d.ts +2 -0
  1035. package/src/routing/codegen-shared.ts +39 -0
  1036. package/src/routing/codegen-types.ts +62 -0
  1037. package/src/routing/codegen-write.ts +141 -0
  1038. package/src/routing/codegen.ts +349 -232
  1039. package/src/routing/collision-probe.ts +438 -0
  1040. package/src/routing/collision-spaces.ts +281 -0
  1041. package/src/routing/convention-lint.ts +623 -0
  1042. package/src/routing/export-detect.ts +448 -0
  1043. package/src/routing/file-cache.ts +23 -0
  1044. package/src/routing/index.ts +16 -7
  1045. package/src/routing/interception-overlap.ts +141 -0
  1046. package/src/routing/interception.ts +1044 -67
  1047. package/src/routing/link-codegen.ts +280 -0
  1048. package/src/routing/manifest-codegen.ts +226 -0
  1049. package/src/routing/scanner.ts +393 -219
  1050. package/src/routing/schema-validation.ts +155 -0
  1051. package/src/routing/segment-classify.ts +280 -0
  1052. package/src/routing/segment-codegen.ts +98 -0
  1053. package/src/routing/segment-keys.ts +186 -0
  1054. package/src/routing/slot-placement.ts +97 -0
  1055. package/src/routing/types.ts +75 -26
  1056. package/src/routing/walkers.ts +98 -0
  1057. package/src/rsc-runtime/rsc.ts +9 -0
  1058. package/src/rsc-runtime/ssr.ts +51 -0
  1059. package/src/rsc-runtime/transforms.ts +13 -0
  1060. package/src/rsc-runtime/vendor-types.d.ts +19 -0
  1061. package/src/schema-bridge.ts +380 -0
  1062. package/src/search-params/define.ts +677 -0
  1063. package/src/search-params/index.ts +14 -20
  1064. package/src/search-params/parse-total.ts +91 -0
  1065. package/src/search-params/serialize-equal.ts +14 -0
  1066. package/src/search-params/wrappers.ts +150 -0
  1067. package/src/server/access-gate.tsx +194 -56
  1068. package/src/server/action-client.ts +122 -31
  1069. package/src/server/action-encryption.ts +144 -0
  1070. package/src/server/action-handler.ts +256 -56
  1071. package/src/server/actions.ts +112 -68
  1072. package/src/server/als-registry.ts +160 -21
  1073. package/src/server/asset-headers.ts +15 -37
  1074. package/src/server/body-limits.ts +10 -2
  1075. package/src/server/build-manifest.ts +33 -57
  1076. package/src/server/canonicalize.ts +6 -3
  1077. package/src/server/chain-url-parts.ts +163 -0
  1078. package/src/server/children-interception.ts +115 -0
  1079. package/src/server/coalesce-tick.ts +75 -0
  1080. package/src/server/compress.ts +43 -8
  1081. package/src/server/cookie-context.ts +484 -0
  1082. package/src/server/cookie-parsing.ts +163 -0
  1083. package/src/server/csp-nonce.ts +70 -0
  1084. package/src/server/csrf.ts +39 -6
  1085. package/src/server/default-logger.ts +99 -0
  1086. package/src/server/default-status-page.ts +88 -0
  1087. package/src/server/deny-boundary.ts +533 -0
  1088. package/src/server/deny-renderer.ts +213 -112
  1089. package/src/server/dev-source-map.ts +31 -0
  1090. package/src/server/early-hints-sender.ts +4 -3
  1091. package/src/server/early-hints.ts +39 -29
  1092. package/src/server/error-boundary-wrapper.ts +181 -44
  1093. package/src/server/error-response-headers.ts +18 -0
  1094. package/src/server/fallback-error.ts +79 -102
  1095. package/src/server/flight-injection-state.ts +113 -0
  1096. package/src/server/flight-scripts.ts +67 -0
  1097. package/src/server/form-data.ts +124 -12
  1098. package/src/server/form-flash.ts +2 -2
  1099. package/src/server/head-response.ts +54 -0
  1100. package/src/server/html-injector-core.ts +512 -0
  1101. package/src/server/html-injectors.ts +272 -255
  1102. package/src/server/index.ts +40 -192
  1103. package/src/server/instrumentation.ts +1 -1
  1104. package/src/server/internal.ts +173 -0
  1105. package/src/server/logger.ts +73 -37
  1106. package/src/server/metadata-collector.ts +174 -0
  1107. package/src/server/metadata-platform.ts +2 -2
  1108. package/src/server/metadata-render.ts +30 -8
  1109. package/src/server/metadata-routes.ts +205 -24
  1110. package/src/server/metadata-social.ts +2 -2
  1111. package/src/server/metadata.ts +23 -2
  1112. package/src/server/middleware-runner.ts +32 -5
  1113. package/src/server/node-stream-transforms.ts +323 -0
  1114. package/src/server/nuqs-ssr-provider.tsx +8 -7
  1115. package/src/server/param-coercion.ts +198 -0
  1116. package/src/server/pipeline-helpers.ts +159 -0
  1117. package/src/server/pipeline-interception.ts +109 -33
  1118. package/src/server/pipeline-metadata.ts +15 -1
  1119. package/src/server/pipeline-outcome.ts +218 -0
  1120. package/src/server/pipeline-phases.ts +606 -0
  1121. package/src/server/pipeline.ts +324 -384
  1122. package/src/server/port-resolution.ts +53 -0
  1123. package/src/server/prebuilt/cache-key.ts +299 -0
  1124. package/src/server/prebuilt/capture-state.ts +89 -0
  1125. package/src/server/prebuilt/key-discipline.ts +122 -0
  1126. package/src/server/prebuilt/manifest-tag-index.ts +46 -0
  1127. package/src/server/prebuilt/overlay.ts +256 -0
  1128. package/src/server/prebuilt/payload-source.ts +202 -0
  1129. package/src/server/prebuilt/slots.ts +190 -0
  1130. package/src/server/prebuilt/synthetic-store.ts +122 -0
  1131. package/src/server/prebuilt-builder.ts +804 -0
  1132. package/src/server/prebuilt-runtime.ts +817 -0
  1133. package/src/server/primitives.ts +245 -97
  1134. package/src/server/publish-params.ts +42 -0
  1135. package/src/server/render-timeout.ts +108 -0
  1136. package/src/server/render-utils.ts +35 -0
  1137. package/src/server/request-context.ts +244 -334
  1138. package/src/server/request-dep.ts +37 -0
  1139. package/src/server/response-cache-policy.ts +45 -0
  1140. package/src/server/route-element-builder.ts +508 -355
  1141. package/src/server/route-element-helpers.ts +37 -0
  1142. package/src/server/route-handler.ts +40 -13
  1143. package/src/server/route-matcher.ts +165 -272
  1144. package/src/server/route-module-loader.ts +161 -0
  1145. package/src/server/rsc-cache-key-guard.ts +122 -0
  1146. package/src/server/rsc-entry/action-middleware-runner.ts +174 -0
  1147. package/src/server/rsc-entry/api-handler.ts +78 -34
  1148. package/src/server/rsc-entry/deny-fallback.ts +93 -0
  1149. package/src/server/rsc-entry/error-renderer.ts +373 -95
  1150. package/src/server/rsc-entry/helpers.ts +226 -95
  1151. package/src/server/rsc-entry/index.ts +370 -331
  1152. package/src/server/rsc-entry/render-route.ts +304 -0
  1153. package/src/server/rsc-entry/revalidate-renderer.ts +350 -0
  1154. package/src/server/rsc-entry/rsc-payload.ts +209 -55
  1155. package/src/server/rsc-entry/rsc-stream.ts +151 -26
  1156. package/src/server/rsc-entry/ssr-bridge.ts +18 -5
  1157. package/src/server/rsc-entry/ssr-renderer.ts +311 -60
  1158. package/src/server/rsc-entry/wrap-action-dispatch.ts +186 -0
  1159. package/src/server/rsc-error-envelope.ts +18 -0
  1160. package/src/server/rsc-prop-warnings.ts +1 -1
  1161. package/src/server/safe-load.ts +60 -0
  1162. package/src/server/sensitive-fields.ts +230 -0
  1163. package/src/server/server-only-guard-noop.js +3 -0
  1164. package/src/server/server-timing.ts +1 -1
  1165. package/src/server/sitemap-generator.ts +337 -0
  1166. package/src/server/sitemap-handler.ts +157 -0
  1167. package/src/server/skippable-prefix.ts +172 -0
  1168. package/src/server/slot-interception.ts +168 -0
  1169. package/src/server/slot-resolver.ts +707 -300
  1170. package/src/server/slot-subtree-contain.ts +255 -0
  1171. package/src/server/ssr-bridge-types.ts +165 -0
  1172. package/src/server/ssr-entry.ts +230 -85
  1173. package/src/server/ssr-render.ts +357 -85
  1174. package/src/server/ssr-wrappers.tsx +162 -0
  1175. package/src/server/state-tree-diff.ts +85 -30
  1176. package/src/server/static-generator.ts +715 -0
  1177. package/src/server/static-not-found.ts +134 -0
  1178. package/src/server/status-code-resolver.ts +107 -148
  1179. package/src/server/stream-utils.ts +292 -0
  1180. package/src/server/tracing.ts +128 -16
  1181. package/src/server/tree-match.ts +262 -0
  1182. package/src/server/types.ts +95 -10
  1183. package/src/server/utils/element-type.ts +88 -0
  1184. package/src/server/utils/escape-html.ts +20 -0
  1185. package/src/server/utils/mdx-file.ts +22 -0
  1186. package/src/server/version-skew.ts +104 -0
  1187. package/src/server/waituntil-bridge.ts +1 -1
  1188. package/src/server/workers-cache-bridge.ts +33 -0
  1189. package/src/shared/als-slots.ts +74 -0
  1190. package/src/shared/base-path.ts +80 -0
  1191. package/src/shared/href-validation.ts +159 -0
  1192. package/src/shared/merge-search-params.ts +55 -0
  1193. package/src/shared/param-value.ts +281 -0
  1194. package/src/shared/payload-root.ts +152 -0
  1195. package/src/shared/redirect-type.ts +17 -0
  1196. package/src/shared/rsc-cache-key.ts +269 -0
  1197. package/src/shared/rsc-error-envelope.ts +16 -0
  1198. package/src/shared/rsc-manifest.ts +29 -0
  1199. package/src/shared/rsc-media-type.ts +59 -0
  1200. package/src/shared/rsc-payload-path.ts +45 -0
  1201. package/src/shared/segment-info.ts +67 -0
  1202. package/src/shared/slot-params.ts +109 -0
  1203. package/src/shared/static-platform-files.ts +75 -0
  1204. package/src/shared/status-reason-phrase.ts +61 -0
  1205. package/src/shims/font-google.ts +1 -1
  1206. package/src/shims/font-local.ts +34 -0
  1207. package/src/shims/headers.ts +122 -1
  1208. package/src/shims/navigation-client.ts +36 -32
  1209. package/src/shims/navigation-rsc.ts +47 -0
  1210. package/src/shims/navigation.ts +10 -7
  1211. package/src/utils/state-machine.ts +111 -0
  1212. package/dist/_chunks/als-registry-B7DbZ2hS.js +0 -41
  1213. package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
  1214. package/dist/_chunks/debug-B3Gypr3D.js +0 -108
  1215. package/dist/_chunks/debug-B3Gypr3D.js.map +0 -1
  1216. package/dist/_chunks/format-RyoGQL74.js +0 -164
  1217. package/dist/_chunks/format-RyoGQL74.js.map +0 -1
  1218. package/dist/_chunks/interception-BOoWmLUA.js +0 -676
  1219. package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
  1220. package/dist/_chunks/metadata-routes-Cjmvi3rQ.js +0 -153
  1221. package/dist/_chunks/metadata-routes-Cjmvi3rQ.js.map +0 -1
  1222. package/dist/_chunks/request-context-BQUC8PHn.js +0 -330
  1223. package/dist/_chunks/request-context-BQUC8PHn.js.map +0 -1
  1224. package/dist/_chunks/ssr-data-MjmprTmO.js.map +0 -1
  1225. package/dist/_chunks/tracing-CemImE6h.js +0 -187
  1226. package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
  1227. package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
  1228. package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
  1229. package/dist/_chunks/use-query-states-D5KaffOK.js +0 -109
  1230. package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
  1231. package/dist/adapters/cloudflare.js.map +0 -1
  1232. package/dist/cache/index.js.map +0 -1
  1233. package/dist/cache/register-cached-function.d.ts +0 -17
  1234. package/dist/cache/register-cached-function.d.ts.map +0 -1
  1235. package/dist/client/browser-entry.d.ts +0 -21
  1236. package/dist/client/browser-entry.d.ts.map +0 -1
  1237. package/dist/client/error-boundary.js.map +0 -1
  1238. package/dist/client/head.d.ts +0 -16
  1239. package/dist/client/head.d.ts.map +0 -1
  1240. package/dist/client/link-status-provider.d.ts +0 -11
  1241. package/dist/client/link-status-provider.d.ts.map +0 -1
  1242. package/dist/client/segment-merger.d.ts +0 -119
  1243. package/dist/client/segment-merger.d.ts.map +0 -1
  1244. package/dist/client/stale-reload.d.ts +0 -44
  1245. package/dist/client/stale-reload.d.ts.map +0 -1
  1246. package/dist/client/transition-root.d.ts +0 -74
  1247. package/dist/client/transition-root.d.ts.map +0 -1
  1248. package/dist/client/use-navigation-pending.d.ts +0 -26
  1249. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  1250. package/dist/client/use-params.d.ts +0 -92
  1251. package/dist/client/use-params.d.ts.map +0 -1
  1252. package/dist/content/index.d.ts +0 -11
  1253. package/dist/content/index.d.ts.map +0 -1
  1254. package/dist/content/index.js +0 -2
  1255. package/dist/plugins/cache-transform.d.ts +0 -36
  1256. package/dist/plugins/cache-transform.d.ts.map +0 -1
  1257. package/dist/plugins/dev-error-overlay.d.ts +0 -60
  1258. package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
  1259. package/dist/plugins/dev-logs.d.ts.map +0 -1
  1260. package/dist/plugins/dynamic-transform.d.ts +0 -72
  1261. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  1262. package/dist/plugins/server-action-exports.d.ts +0 -26
  1263. package/dist/plugins/server-action-exports.d.ts.map +0 -1
  1264. package/dist/routing/status-file-lint.d.ts +0 -33
  1265. package/dist/routing/status-file-lint.d.ts.map +0 -1
  1266. package/dist/search-params/analyze.d.ts +0 -54
  1267. package/dist/search-params/analyze.d.ts.map +0 -1
  1268. package/dist/search-params/builtin-codecs.d.ts +0 -105
  1269. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  1270. package/dist/search-params/codecs.d.ts +0 -53
  1271. package/dist/search-params/codecs.d.ts.map +0 -1
  1272. package/dist/search-params/create.d.ts +0 -106
  1273. package/dist/search-params/create.d.ts.map +0 -1
  1274. package/dist/search-params/registry.d.ts +0 -20
  1275. package/dist/search-params/registry.d.ts.map +0 -1
  1276. package/dist/server/client-module-map.d.ts +0 -47
  1277. package/dist/server/client-module-map.d.ts.map +0 -1
  1278. package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
  1279. package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
  1280. package/dist/server/dev-logger.d.ts.map +0 -1
  1281. package/dist/server/dev-span-processor.d.ts +0 -29
  1282. package/dist/server/dev-span-processor.d.ts.map +0 -1
  1283. package/dist/server/dev-warnings.d.ts +0 -129
  1284. package/dist/server/dev-warnings.d.ts.map +0 -1
  1285. package/dist/server/flush.d.ts +0 -74
  1286. package/dist/server/flush.d.ts.map +0 -1
  1287. package/dist/server/manifest-status-resolver.d.ts +0 -58
  1288. package/dist/server/manifest-status-resolver.d.ts.map +0 -1
  1289. package/dist/server/prerender.d.ts +0 -77
  1290. package/dist/server/prerender.d.ts.map +0 -1
  1291. package/dist/server/tree-builder.d.ts +0 -126
  1292. package/dist/server/tree-builder.d.ts.map +0 -1
  1293. package/dist/utils/directive-parser.d.ts +0 -70
  1294. package/dist/utils/directive-parser.d.ts.map +0 -1
  1295. package/src/cache/register-cached-function.ts +0 -103
  1296. package/src/client/browser-entry.ts +0 -678
  1297. package/src/client/head.ts +0 -61
  1298. package/src/client/link-status-provider.tsx +0 -30
  1299. package/src/client/segment-merger.ts +0 -339
  1300. package/src/client/stale-reload.ts +0 -87
  1301. package/src/client/transition-root.tsx +0 -166
  1302. package/src/client/use-navigation-pending.ts +0 -38
  1303. package/src/client/use-params.ts +0 -141
  1304. package/src/content/index.ts +0 -13
  1305. package/src/plugins/cache-transform.ts +0 -199
  1306. package/src/plugins/dev-error-overlay.ts +0 -230
  1307. package/src/plugins/dynamic-transform.ts +0 -161
  1308. package/src/plugins/server-action-exports.ts +0 -220
  1309. package/src/routing/status-file-lint.ts +0 -112
  1310. package/src/search-params/analyze.ts +0 -192
  1311. package/src/search-params/builtin-codecs.ts +0 -228
  1312. package/src/search-params/codecs.ts +0 -153
  1313. package/src/search-params/create.ts +0 -321
  1314. package/src/search-params/registry.ts +0 -31
  1315. package/src/server/client-module-map.ts +0 -58
  1316. package/src/server/dev-fetch-instrumentation.ts +0 -96
  1317. package/src/server/dev-span-processor.ts +0 -78
  1318. package/src/server/dev-warnings.ts +0 -283
  1319. package/src/server/flush.ts +0 -182
  1320. package/src/server/manifest-status-resolver.ts +0 -215
  1321. package/src/server/prerender.ts +0 -139
  1322. package/src/server/tree-builder.ts +0 -382
  1323. package/src/shims/server-only-noop.js +0 -6
  1324. package/src/utils/directive-parser.ts +0 -529
@@ -1,326 +1,3 @@
1
- import "../_chunks/als-registry-B7DbZ2hS.js";
2
- import { n as addSpanEventSync } from "../_chunks/tracing-CemImE6h.js";
3
- //#region src/cache/redis-handler.ts
4
- var KEY_PREFIX = "timber:cache:";
5
- var TAG_PREFIX = "timber:tag:";
6
- /**
7
- * Redis-backed CacheHandler for distributed caching.
8
- *
9
- * All instances sharing the same Redis see each other's cache entries and
10
- * invalidations. Tag-based invalidation uses Redis Sets to track which keys
11
- * belong to which tags.
12
- *
13
- * Bring your own Redis client — any client implementing the RedisClient
14
- * interface works (ioredis, node-redis, @upstash/redis, etc.).
15
- */
16
- var RedisCacheHandler = class {
17
- client;
18
- prefix;
19
- constructor(client, opts) {
20
- this.client = client;
21
- this.prefix = opts?.prefix ?? "";
22
- }
23
- cacheKey(key) {
24
- return `${this.prefix}${KEY_PREFIX}${key}`;
25
- }
26
- tagKey(tag) {
27
- return `${this.prefix}${TAG_PREFIX}${tag}`;
28
- }
29
- async get(key) {
30
- const raw = await this.client.get(this.cacheKey(key));
31
- if (raw === null) return null;
32
- const entry = JSON.parse(raw);
33
- const stale = Date.now() > entry.expiresAt;
34
- return {
35
- value: entry.value,
36
- stale
37
- };
38
- }
39
- async set(key, value, opts) {
40
- const ck = this.cacheKey(key);
41
- const expiresAt = Date.now() + opts.ttl * 1e3;
42
- const payload = JSON.stringify({
43
- value,
44
- expiresAt
45
- });
46
- const redisTtlSeconds = Math.max(opts.ttl * 2 + 60, 120);
47
- await this.client.set(ck, payload, "EX", redisTtlSeconds);
48
- for (const tag of opts.tags) await this.client.sadd(this.tagKey(tag), key);
49
- }
50
- async invalidate(opts) {
51
- if (opts.key) await this.client.del(this.cacheKey(opts.key));
52
- if (opts.tag) {
53
- const tk = this.tagKey(opts.tag);
54
- const keys = await this.client.smembers(tk);
55
- if (keys.length > 0) {
56
- const cacheKeys = keys.map((k) => this.cacheKey(k));
57
- await this.client.del(cacheKeys);
58
- }
59
- await this.client.del(tk);
60
- }
61
- }
62
- };
63
- //#endregion
64
- //#region src/cache/stable-stringify.ts
65
- /**
66
- * Deterministic JSON serialization with sorted object keys.
67
- * Used for cache key generation — ensures { a: 1, b: 2 } and { b: 2, a: 1 }
68
- * produce the same string.
69
- */
70
- function stableStringify(value) {
71
- if (value === null || value === void 0) return JSON.stringify(value);
72
- if (typeof value !== "object") return JSON.stringify(value);
73
- if (Array.isArray(value)) return "[" + value.map((item) => stableStringify(item)).join(",") + "]";
74
- const obj = value;
75
- const keys = Object.keys(obj).sort();
76
- const pairs = [];
77
- for (const key of keys) {
78
- if (obj[key] === void 0) continue;
79
- pairs.push(JSON.stringify(key) + ":" + stableStringify(obj[key]));
80
- }
81
- return "{" + pairs.join(",") + "}";
82
- }
83
- //#endregion
84
- //#region src/cache/singleflight.ts
85
- function createSingleflight() {
86
- const inflight = /* @__PURE__ */ new Map();
87
- return { do(key, fn) {
88
- const existing = inflight.get(key);
89
- if (existing) return existing;
90
- const promise = fn().finally(() => {
91
- inflight.delete(key);
92
- });
93
- inflight.set(key, promise);
94
- return promise;
95
- } };
96
- }
97
- //#endregion
98
- //#region src/cache/fast-hash.ts
99
- /**
100
- * Fast non-cryptographic hash for cache keys.
101
- *
102
- * FNV-1a 64-bit produces a well-distributed hash with a collision
103
- * probability of ~1 in 5 billion at 77k keys (birthday paradox).
104
- * Not suitable for security, but ideal for cache key generation
105
- * where we need speed over crypto strength.
106
- *
107
- * Uses BigInt for 64-bit arithmetic — supported in all modern runtimes
108
- * including Cloudflare Workers. No node:crypto dependency.
109
- *
110
- * See TIM-370.
111
- */
112
- var FNV_OFFSET_BASIS = 14695981039346656037n;
113
- var FNV_PRIME = 1099511628211n;
114
- var MASK_64 = 18446744073709551615n;
115
- /**
116
- * Compute a 64-bit FNV-1a hash of a string, returned as a 16-char hex string.
117
- *
118
- * 64 bits gives ~5 billion keys before a 50% collision probability
119
- * (birthday paradox), making accidental collisions effectively impossible
120
- * for cache key use cases.
121
- */
122
- function fnv1aHash(input) {
123
- let hash = FNV_OFFSET_BASIS;
124
- for (let i = 0; i < input.length; i++) {
125
- hash ^= BigInt(input.charCodeAt(i));
126
- hash = hash * FNV_PRIME & MASK_64;
127
- }
128
- return hash.toString(16).padStart(16, "0");
129
- }
130
- //#endregion
131
- //#region src/cache/timber-cache.ts
132
- var singleflight$1 = createSingleflight();
133
- /**
134
- * Generate a cache key from function identity and serialized args.
135
- *
136
- * Uses FNV-1a (fast non-crypto hash) instead of SHA-256. Cache keys don't
137
- * need collision resistance — they need speed. The fnId prefix provides
138
- * namespace isolation; the hash covers the args.
139
- *
140
- * See TIM-370 for perf motivation.
141
- */
142
- function defaultKeyGenerator(fnId, args) {
143
- const raw = fnId + ":" + stableStringify(args);
144
- return fnId + ":" + fnv1aHash(raw);
145
- }
146
- /**
147
- * Resolve tags from the options — supports static array or function form.
148
- */
149
- function resolveTags$1(opts, args) {
150
- if (!opts.tags) return [];
151
- if (Array.isArray(opts.tags)) return opts.tags;
152
- return opts.tags(...args);
153
- }
154
- var fnIdCounter = 0;
155
- /**
156
- * Creates a cached wrapper around an async function.
157
- *
158
- * - SHA-256 default keys with normalized JSON args
159
- * - Singleflight: concurrent misses → single execution
160
- * - SWR: serve stale immediately, background refetch
161
- * - Tags as string[] or function of args
162
- * - No ALS dependency
163
- *
164
- * Cache hits/misses are recorded as OTEL span events on the enclosing
165
- * span (not child spans). The DevSpanProcessor reads these for dev log output.
166
- */
167
- function createCache(fn, opts, handler) {
168
- const fnId = `timber-cache:${fnIdCounter++}`;
169
- return async (...args) => {
170
- const key = opts.key ? opts.key(...args) : defaultKeyGenerator(fnId, args);
171
- const cacheStart = performance.now();
172
- const cached = await handler.get(key);
173
- if (cached && !cached.stale) {
174
- addSpanEventSync("timber.cache.hit", {
175
- key,
176
- duration_ms: Math.round(performance.now() - cacheStart)
177
- });
178
- return cached.value;
179
- }
180
- if (cached && cached.stale && opts.staleWhileRevalidate) {
181
- addSpanEventSync("timber.cache.hit", {
182
- key,
183
- duration_ms: Math.round(performance.now() - cacheStart),
184
- stale: true
185
- });
186
- singleflight$1.do(`swr:${key}`, async () => {
187
- try {
188
- const fresh = await fn(...args);
189
- const tags = resolveTags$1(opts, args);
190
- await handler.set(key, fresh, {
191
- ttl: opts.ttl,
192
- tags
193
- });
194
- } catch {}
195
- }).catch(() => {});
196
- return cached.value;
197
- }
198
- const result = await singleflight$1.do(key, () => fn(...args));
199
- const tags = resolveTags$1(opts, args);
200
- await handler.set(key, result, {
201
- ttl: opts.ttl,
202
- tags
203
- });
204
- addSpanEventSync("timber.cache.miss", {
205
- key,
206
- duration_ms: Math.round(performance.now() - cacheStart)
207
- });
208
- return result;
209
- };
210
- }
211
- /**
212
- * Invalidate cache entries by tag or key.
213
- */
214
- createCache.invalidate = async function invalidate(handler, opts) {
215
- await handler.invalidate(opts);
216
- };
217
- //#endregion
218
- //#region src/cache/register-cached-function.ts
219
- var singleflight = createSingleflight();
220
- var REQUEST_SPECIFIC_PROPS = new Set([
221
- "cookies",
222
- "cookie",
223
- "session",
224
- "sessionId",
225
- "token",
226
- "authorization",
227
- "auth",
228
- "headers"
229
- ]);
230
- /**
231
- * Generate a cache key from a stable function ID and serialized args.
232
- *
233
- * Uses FNV-1a (fast non-crypto hash) instead of SHA-256. The id prefix
234
- * provides namespace isolation; the hash covers the args.
235
- * See TIM-370.
236
- */
237
- function generateKey(id, args) {
238
- const raw = id + ":" + stableStringify(args);
239
- return id + ":" + fnv1aHash(raw);
240
- }
241
- /**
242
- * Resolve tags from options — supports static array or function form.
243
- */
244
- function resolveTags(opts, args) {
245
- if (!opts.tags) return [];
246
- if (Array.isArray(opts.tags)) return opts.tags;
247
- return opts.tags(...args);
248
- }
249
- /**
250
- * Checks if component props contain request-specific keys and emits a dev warning.
251
- * Only runs when process.env.NODE_ENV !== 'production'.
252
- */
253
- function warnRequestSpecificProps(id, props) {
254
- if (typeof props !== "object" || props === null) return;
255
- const suspicious = Object.keys(props).filter((k) => REQUEST_SPECIFIC_PROPS.has(k.toLowerCase()));
256
- if (suspicious.length > 0) console.warn(`[timber] "use cache" component ${id} received request-specific props: ${suspicious.join(", ")}. This may serve one user's cached render to another user. Remove request-specific data from props or remove "use cache".`);
257
- }
258
- /**
259
- * Runtime for the "use cache" directive transform. Wraps an async function
260
- * with caching using the same cache handler as timber.cache.
261
- *
262
- * The stable `id` (file path + function name) ensures cache keys are consistent
263
- * across builds. Args/props are hashed with SHA-256 for the per-call key.
264
- */
265
- function registerCachedFunction(fn, opts, handler) {
266
- return async (...args) => {
267
- if (opts.isComponent && process.env.NODE_ENV !== "production" && args.length > 0) warnRequestSpecificProps(opts.id, args[0]);
268
- const key = generateKey(opts.id, args);
269
- const cached = await handler.get(key);
270
- if (cached && !cached.stale) return cached.value;
271
- const result = await singleflight.do(key, () => fn(...args));
272
- const tags = resolveTags(opts, args);
273
- await handler.set(key, result, {
274
- ttl: opts.ttl,
275
- tags
276
- });
277
- return result;
278
- };
279
- }
280
- //#endregion
281
- //#region src/cache/index.ts
282
- var MemoryCacheHandler = class {
283
- store = /* @__PURE__ */ new Map();
284
- maxSize;
285
- constructor(opts) {
286
- this.maxSize = opts?.maxSize ?? 1e3;
287
- }
288
- async get(key) {
289
- const entry = this.store.get(key);
290
- if (!entry) return null;
291
- this.store.delete(key);
292
- this.store.set(key, entry);
293
- const stale = Date.now() > entry.expiresAt;
294
- return {
295
- value: entry.value,
296
- stale
297
- };
298
- }
299
- async set(key, value, opts) {
300
- if (this.store.has(key)) this.store.delete(key);
301
- while (this.store.size >= this.maxSize) {
302
- const oldest = this.store.keys().next().value;
303
- if (oldest !== void 0) this.store.delete(oldest);
304
- else break;
305
- }
306
- this.store.set(key, {
307
- value,
308
- expiresAt: Date.now() + opts.ttl * 1e3,
309
- tags: opts.tags
310
- });
311
- }
312
- async invalidate(opts) {
313
- if (opts.key) this.store.delete(opts.key);
314
- if (opts.tag) {
315
- for (const [key, entry] of this.store) if (entry.tags.includes(opts.tag)) this.store.delete(key);
316
- }
317
- }
318
- /** Number of entries currently in the cache. */
319
- get size() {
320
- return this.store.size;
321
- }
322
- };
323
- //#endregion
324
- export { MemoryCacheHandler, RedisCacheHandler, createCache, createSingleflight, registerCachedFunction, stableStringify };
325
-
326
- //# sourceMappingURL=index.js.map
1
+ import { _ as setDefaultSingleflightTimeout, f as MemoryCacheHandler, g as setCacheHandler, h as getCacheHandler, m as RedisCacheHandler, p as TagAwareCacheHandler, t as cache } from "../_chunks/cache-api-ByagcC-J.js";
2
+ import { t as estimateByteSize } from "../_chunks/sizeof-lXffQ1Vr.js";
3
+ export { MemoryCacheHandler, RedisCacheHandler, TagAwareCacheHandler, cache, estimateByteSize, getCacheHandler, setCacheHandler, setDefaultSingleflightTimeout };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Per-process invalidation epoch tracking for timber.cache (TIM-1028).
3
+ *
4
+ * handler.set for a cache miss runs after `fn()` resolves. An explicit
5
+ * `cache.invalidate({ tag })` / `revalidateTag` that lands while fn is in
6
+ * flight would otherwise be silently undone — the just-invalidated value
7
+ * re-stored as fresh for the full TTL, resurrecting pre-mutation data.
8
+ *
9
+ * Every invalidation bumps a monotonic epoch and records it against the
10
+ * invalidated key/tag. Before storing a result, the cache wrapper checks
11
+ * whether its key or any of its tags were invalidated after fn started and
12
+ * skips the write if so. Skipping is always safe: the only cost is one
13
+ * extra cache miss on the next call.
14
+ *
15
+ * Scope: per-process, like the singleflight map. An invalidation issued by
16
+ * another instance against a shared handler (Redis/KV) during fn flight is
17
+ * not observable here — closing that window fully would require store-level
18
+ * versioning, which no CacheHandler backend offers.
19
+ */
20
+ /** The current epoch. Capture before running fn(), pass to wasInvalidatedSince. */
21
+ export declare function currentInvalidationEpoch(): number;
22
+ /**
23
+ * Record an invalidation. Call BEFORE handler.invalidate() so an execution
24
+ * whose set-check races the invalidation errs toward skipping the write.
25
+ */
26
+ export declare function recordInvalidation(opts: {
27
+ key?: string;
28
+ tag?: string;
29
+ }): void;
30
+ /**
31
+ * Whether the key or any tag was invalidated after `startEpoch` (the epoch
32
+ * captured when fn started executing).
33
+ */
34
+ export declare function wasInvalidatedSince(startEpoch: number, key: string, tags: string[]): boolean;
35
+ /**
36
+ * The highest epoch at which the key or any of the tags was invalidated
37
+ * (0 if never). Used to scope the singleflight key: callers arriving after
38
+ * an invalidation must not coalesce onto a flight that started before it —
39
+ * they would receive the pre-invalidation result the invalidation was
40
+ * issued to discard.
41
+ */
42
+ export declare function lastInvalidationEpochFor(key: string, tags: string[]): number;
43
+ //# sourceMappingURL=invalidation-epoch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invalidation-epoch.d.ts","sourceRoot":"","sources":["../../src/cache/invalidation-epoch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAwBH,mFAAmF;AACnF,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI7E;AAaD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAE5F;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAS5E"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Dev-mode warning when a cache value contains types that lose fidelity
3
+ * through JSON round-trip. Only runs in development — no-op in production.
4
+ *
5
+ * Detects: Date (→ ISO string), Map/Set (→ {}), BigInt (→ throws).
6
+ * Emits once per process to avoid log spam.
7
+ */
8
+ export declare function warnLossyJsonValue(value: unknown, cacheKey: string): void;
9
+ /** Reset warning state — for tests only. */
10
+ export declare function _resetLossyWarning(): void;
11
+ //# sourceMappingURL=json-lossy-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-lossy-check.d.ts","sourceRoot":"","sources":["../../src/cache/json-lossy-check.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAiBzE;AA2CD,4CAA4C;AAC5C,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -1,15 +1,144 @@
1
- import type { CacheHandler } from './index';
1
+ import type { CacheHandler } from './index.ts';
2
2
  /**
3
- * Minimal Redis client interface — compatible with ioredis, node-redis, and
4
- * Cloudflare Workers Redis bindings. We depend on the interface, not the
5
- * implementation, so users bring their own Redis client.
3
+ * Minimal Redis client contract for `RedisCacheHandler`.
4
+ *
5
+ * This is deliberately NOT the native shape of any client library. ioredis,
6
+ * node-redis v4, and @upstash/redis all disagree on TTL argument shapes
7
+ * (positional `'EX'` vs `{ EX }` vs `{ ex }`), method casing (`sadd` vs
8
+ * `sAdd`), and array handling in `del` — a contract that pattern-matches one
9
+ * client lets another silently drop the expiry (TIM-1030: node-redis ignored
10
+ * the positional `'EX'` and wrote keys with no TTL). Instead, TTL semantics
11
+ * are explicit in the signature and you adapt your client with a thin
12
+ * wrapper, so a mismatch is a type error rather than silent unbounded
13
+ * keyspace growth.
14
+ *
15
+ * @example ioredis
16
+ * ```ts
17
+ * import Redis from 'ioredis';
18
+ * const redis = new Redis(process.env.REDIS_URL);
19
+ * const client: RedisClient = {
20
+ * get: (k) => redis.get(k),
21
+ * set: (k, v, ttl) => redis.set(k, v, 'EX', ttl),
22
+ * expireNX: (k, s) => redis.expire(k, s, 'NX'),
23
+ * expireGT: (k, s) => redis.expire(k, s, 'GT'),
24
+ * del: (k) => redis.del(k),
25
+ * sadd: (k, ...m) => redis.sadd(k, ...m),
26
+ * srem: (k, ...m) => redis.srem(k, ...m),
27
+ * smembers: (k) => redis.smembers(k),
28
+ * ttl: (k) => redis.ttl(k),
29
+ * execMulti: async (ops) => {
30
+ * const p = redis.multi();
31
+ * for (const op of ops) {
32
+ * switch (op.op) {
33
+ * case 'set': p.set(op.key, op.value, 'EX', op.ttlSeconds); break;
34
+ * case 'sadd': p.sadd(op.key, ...op.members); break;
35
+ * case 'expireNX': p.expire(op.key, op.seconds, 'NX'); break;
36
+ * case 'expireGT': p.expire(op.key, op.seconds, 'GT'); break;
37
+ * case 'del': p.del(op.key); break;
38
+ * }
39
+ * }
40
+ * await p.exec();
41
+ * },
42
+ * };
43
+ * ```
44
+ *
45
+ * @example node-redis v4
46
+ * ```ts
47
+ * import { createClient } from 'redis';
48
+ * const redis = createClient({ url: process.env.REDIS_URL });
49
+ * await redis.connect();
50
+ * const client: RedisClient = {
51
+ * get: (k) => redis.get(k),
52
+ * set: (k, v, ttl) => redis.set(k, v, { EX: ttl }),
53
+ * expireNX: (k, s) => redis.expire(k, s, 'NX'),
54
+ * expireGT: (k, s) => redis.expire(k, s, 'GT'),
55
+ * del: (k) => redis.del(k),
56
+ * sadd: (k, ...m) => redis.sAdd(k, m),
57
+ * srem: (k, ...m) => redis.sRem(k, m),
58
+ * smembers: (k) => redis.sMembers(k),
59
+ * ttl: (k) => redis.ttl(k),
60
+ * };
61
+ * ```
62
+ *
63
+ * @example @upstash/redis
64
+ * ```ts
65
+ * import { Redis } from '@upstash/redis';
66
+ * // automaticDeserialization must be off: the handler stores JSON strings
67
+ * // and parses them itself — auto-parsing would hand back objects.
68
+ * const redis = new Redis({ url, token, automaticDeserialization: false });
69
+ * const client: RedisClient = {
70
+ * get: (k) => redis.get(k),
71
+ * set: (k, v, ttl) => redis.set(k, v, { ex: ttl }),
72
+ * expireNX: (k, s) => redis.expire(k, s, 'NX'),
73
+ * expireGT: (k, s) => redis.expire(k, s, 'GT'),
74
+ * del: (k) => redis.del(k),
75
+ * sadd: (k, ...m) => redis.sadd(k, m[0], ...m.slice(1)),
76
+ * srem: (k, ...m) => redis.srem(k, m[0], ...m.slice(1)),
77
+ * smembers: (k) => redis.smembers(k),
78
+ * ttl: (k) => redis.ttl(k),
79
+ * };
80
+ * ```
6
81
  */
82
+ export type RedisWriteOp = {
83
+ op: 'set';
84
+ key: string;
85
+ value: string;
86
+ ttlSeconds: number;
87
+ } | {
88
+ op: 'sadd';
89
+ key: string;
90
+ members: string[];
91
+ } | {
92
+ op: 'expireNX';
93
+ key: string;
94
+ seconds: number;
95
+ } | {
96
+ op: 'expireGT';
97
+ key: string;
98
+ seconds: number;
99
+ } | {
100
+ op: 'del';
101
+ key: string;
102
+ };
7
103
  export interface RedisClient {
104
+ /** `GET key` — the stored string, or null when absent. */
8
105
  get(key: string): Promise<string | null>;
9
- set(key: string, value: string, ...args: unknown[]): Promise<unknown>;
10
- del(key: string | string[]): Promise<number>;
11
- sadd(key: string, ...members: string[]): Promise<number>;
106
+ /**
107
+ * `SET key value EX ttlSeconds` — store with an expiry. The TTL is a
108
+ * required positional argument so no adapter can forget it.
109
+ */
110
+ set(key: string, value: string, ttlSeconds: number): Promise<unknown>;
111
+ /**
112
+ * `EXPIRE key seconds NX` — set the TTL only if the key has no existing
113
+ * expiry (Redis 7.0+). Used to set the initial TTL on new tag sets.
114
+ */
115
+ expireNX(key: string, seconds: number): Promise<unknown>;
116
+ /**
117
+ * `EXPIRE key seconds GT` — update the TTL only if the new value is greater
118
+ * than the current one (Redis 7.0+). Used to extend tag set TTLs without
119
+ * allowing a short-TTL writer to shrink them.
120
+ */
121
+ expireGT(key: string, seconds: number): Promise<unknown>;
122
+ /** `DEL key` — delete a single key. Multi-key deletes loop per key. */
123
+ del(key: string): Promise<unknown>;
124
+ /** `SADD key member [member ...]` — add members to a set. */
125
+ sadd(key: string, ...members: string[]): Promise<unknown>;
126
+ /** `SREM key member [member ...]` — remove members from a set. */
127
+ srem(key: string, ...members: string[]): Promise<unknown>;
128
+ /** `SMEMBERS key` — all members of a set. */
12
129
  smembers(key: string): Promise<string[]>;
130
+ /**
131
+ * `TTL key` — remaining time-to-live in seconds. Returns -2 if the key does
132
+ * not exist, -1 if the key exists but has no expiry.
133
+ */
134
+ ttl(key: string): Promise<number>;
135
+ /**
136
+ * Execute a batch of write operations atomically via `MULTI/EXEC`.
137
+ * When provided, `set()` uses this to make tag-index writes and the data
138
+ * write atomic — no `invalidate({tag})` can interleave. Optional: when
139
+ * absent, operations run sequentially (correct but not race-free).
140
+ */
141
+ execMulti?(ops: RedisWriteOp[]): Promise<void>;
13
142
  }
14
143
  /**
15
144
  * Redis-backed CacheHandler for distributed caching.
@@ -18,8 +147,9 @@ export interface RedisClient {
18
147
  * invalidations. Tag-based invalidation uses Redis Sets to track which keys
19
148
  * belong to which tags.
20
149
  *
21
- * Bring your own Redis client — any client implementing the RedisClient
22
- * interface works (ioredis, node-redis, @upstash/redis, etc.).
150
+ * Bring your own Redis client wrapped to the {@link RedisClient} contract —
151
+ * see the adapter examples on the interface for ioredis, node-redis v4, and
152
+ * @upstash/redis.
23
153
  */
24
154
  export declare class RedisCacheHandler implements CacheHandler {
25
155
  private client;
@@ -36,7 +166,9 @@ export declare class RedisCacheHandler implements CacheHandler {
36
166
  set(key: string, value: unknown, opts: {
37
167
  ttl: number;
38
168
  tags: string[];
169
+ generation?: number;
39
170
  }): Promise<void>;
171
+ private execOp;
40
172
  invalidate(opts: {
41
173
  key?: string;
42
174
  tag?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"redis-handler.d.ts","sourceRoot":"","sources":["../../src/cache/redis-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAC1C;AAKD;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAK3D,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;IAIR,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IASpE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtF,UAAU,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAkBtE"}
1
+ {"version":3,"file":"redis-handler.d.ts","sourceRoot":"","sources":["../../src/cache/redis-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9C;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/B,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACzC;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzD,uEAAuE;IACvE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,6DAA6D;IAC7D,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,kEAAkE;IAClE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC;;;;;OAKG;IACH,SAAS,CAAC,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAKD;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAS;IAEvB,YAAY,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAG1D;IAED,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,MAAM;IAIR,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC,CAOzE;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,CA8Bf;YAEa,MAAM;IAoBd,UAAU,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCpE;CACF"}
@@ -3,9 +3,28 @@
3
3
  * execution. All callers receive the same result (or error).
4
4
  *
5
5
  * Per-process, in-memory. Each process coalesces independently.
6
+ *
7
+ * An optional `timeoutMs` prevents hung `fn()` calls from permanently
8
+ * blocking all future callers for that key. When set, `fn()` is raced
9
+ * against a timeout — if the timeout fires first, the promise rejects
10
+ * with `SingleflightTimeoutError`, `finally` cleans up the key, and
11
+ * subsequent callers can retry. See TIM-518.
6
12
  */
13
+ export interface SingleflightOptions {
14
+ /** Maximum time (ms) a coalesced call may run before being rejected. */
15
+ timeoutMs?: number;
16
+ }
7
17
  export interface Singleflight {
8
- do<T>(key: string, fn: () => Promise<T>): Promise<T>;
18
+ do<T>(key: string, fn: (signal: AbortSignal) => Promise<T>): Promise<T>;
19
+ /** Return the in-flight promise for a key, or undefined if none. */
20
+ get(key: string): Promise<unknown> | undefined;
21
+ }
22
+ /**
23
+ * Error thrown when a singleflight call exceeds `timeoutMs`.
24
+ * Exported so callers can distinguish timeout from other errors.
25
+ */
26
+ export declare class SingleflightTimeoutError extends Error {
27
+ constructor(key: string, timeoutMs: number);
9
28
  }
10
- export declare function createSingleflight(): Singleflight;
29
+ export declare function createSingleflight(opts?: SingleflightOptions): Singleflight;
11
30
  //# sourceMappingURL=singleflight.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"singleflight.d.ts","sourceRoot":"","sources":["../../src/cache/singleflight.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACtD;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAejD"}
1
+ {"version":3,"file":"singleflight.d.ts","sourceRoot":"","sources":["../../src/cache/singleflight.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACxE,oEAAoE;IACpE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CAChD;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,YAAY,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAGzC;CACF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,YAAY,CAqD3E"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Lightweight byte-size estimation for cache entries.
3
+ *
4
+ * Estimates the in-memory byte cost of a JavaScript value using
5
+ * JSON.stringify().length * 2 (UTF-16 char width). This is a rough
6
+ * approximation — it doesn't account for V8 object overhead, Map
7
+ * metadata, or non-serializable values — but it's fast and good
8
+ * enough for cache budget enforcement.
9
+ *
10
+ * Values that fail JSON serialization (circular references, BigInt,
11
+ * etc.) return 0, allowing the entry to be cached without counting
12
+ * toward the byte budget. This is a conservative choice: it's better
13
+ * to cache and undercount than to reject the entry.
14
+ */
15
+ /**
16
+ * Estimate the byte size of a value.
17
+ *
18
+ * Uses `JSON.stringify(value).length * 2` to approximate UTF-16
19
+ * in-memory size. Returns 0 if the value is not serializable.
20
+ */
21
+ export declare function estimateByteSize(value: unknown): number;
22
+ //# sourceMappingURL=sizeof.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sizeof.d.ts","sourceRoot":"","sources":["../../src/cache/sizeof.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAWvD"}
@@ -2,6 +2,15 @@
2
2
  * Deterministic JSON serialization with sorted object keys.
3
3
  * Used for cache key generation — ensures { a: 1, b: 2 } and { b: 2, a: 1 }
4
4
  * produce the same string.
5
+ *
6
+ * Matches JSON.stringify semantics for toJSON: Date serializes to its ISO
7
+ * string, URL to its href, and class instances with a custom toJSON use it.
8
+ * Map and Set serialize their entries explicitly (insertion-order
9
+ * independent). Values that would serialize lossily — functions, symbols,
10
+ * and non-plain objects with no enumerable own state (RegExp, class
11
+ * instances holding data behind getters or internal slots) — throw instead:
12
+ * every such value would collapse to the same cache key, silently returning
13
+ * one argument's cached data for another (TIM-1020).
5
14
  */
6
15
  export declare function stableStringify(value: unknown): string;
7
16
  //# sourceMappingURL=stable-stringify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stable-stringify.d.ts","sourceRoot":"","sources":["../../src/cache/stable-stringify.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAetD"}
1
+ {"version":3,"file":"stable-stringify.d.ts","sourceRoot":"","sources":["../../src/cache/stable-stringify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqEtD"}