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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1329) hide show
  1. package/LICENSE +8 -0
  2. package/agent-skill.md +346 -0
  3. package/dist/_chunks/actions-d1hCqnU3.js +345 -0
  4. package/dist/_chunks/actions-d1hCqnU3.js.map +1 -0
  5. package/dist/_chunks/als-registry-C6kcfprT.js +41 -0
  6. package/dist/_chunks/als-registry-C6kcfprT.js.map +1 -0
  7. package/dist/_chunks/als-slots-BEEIPKYm.js +26 -0
  8. package/dist/_chunks/als-slots-BEEIPKYm.js.map +1 -0
  9. package/dist/_chunks/base-path-DaQrzbez.js +80 -0
  10. package/dist/_chunks/base-path-DaQrzbez.js.map +1 -0
  11. package/dist/_chunks/build-manifest-DTmSGLRz.js +135 -0
  12. package/dist/_chunks/build-manifest-DTmSGLRz.js.map +1 -0
  13. package/dist/_chunks/build-output-helper-9dqCv1pZ.js +370 -0
  14. package/dist/_chunks/build-output-helper-9dqCv1pZ.js.map +1 -0
  15. package/dist/_chunks/cache-api-ByagcC-J.js +1149 -0
  16. package/dist/_chunks/cache-api-ByagcC-J.js.map +1 -0
  17. package/dist/_chunks/canonicalize-CgHoscYO.js +66 -0
  18. package/dist/_chunks/canonicalize-CgHoscYO.js.map +1 -0
  19. package/dist/_chunks/chains-Bpb0W4ax.js +412 -0
  20. package/dist/_chunks/chains-Bpb0W4ax.js.map +1 -0
  21. package/dist/_chunks/cli-check-D6VolrDV.js +293 -0
  22. package/dist/_chunks/cli-check-D6VolrDV.js.map +1 -0
  23. package/dist/_chunks/cli-schema-sync-D6rO-VcS.js +299 -0
  24. package/dist/_chunks/cli-schema-sync-D6rO-VcS.js.map +1 -0
  25. package/dist/_chunks/cloudflare-BFb__LYG.js +1290 -0
  26. package/dist/_chunks/cloudflare-BFb__LYG.js.map +1 -0
  27. package/dist/_chunks/codec-registry-oOUxugz3.js +21 -0
  28. package/dist/_chunks/codec-registry-oOUxugz3.js.map +1 -0
  29. package/dist/_chunks/convention-lint-fRkwVwEH.js +893 -0
  30. package/dist/_chunks/convention-lint-fRkwVwEH.js.map +1 -0
  31. package/dist/_chunks/dist-DtrJyBbw.js +386 -0
  32. package/dist/_chunks/dist-DtrJyBbw.js.map +1 -0
  33. package/dist/_chunks/error-boundary-BfPHZjm0.js +1050 -0
  34. package/dist/_chunks/error-boundary-BfPHZjm0.js.map +1 -0
  35. package/dist/_chunks/fast-hash-C-tVYrLb.js +41 -0
  36. package/dist/_chunks/fast-hash-C-tVYrLb.js.map +1 -0
  37. package/dist/_chunks/file-cache-Dw6BJPG7.js +458 -0
  38. package/dist/_chunks/file-cache-Dw6BJPG7.js.map +1 -0
  39. package/dist/_chunks/format-BKclgVbk.js +14 -0
  40. package/dist/_chunks/format-BKclgVbk.js.map +1 -0
  41. package/dist/_chunks/fs-identity-D7vb6GdI.js +208 -0
  42. package/dist/_chunks/fs-identity-D7vb6GdI.js.map +1 -0
  43. package/dist/_chunks/graph-cache-CP4GEmf9.js +304 -0
  44. package/dist/_chunks/graph-cache-CP4GEmf9.js.map +1 -0
  45. package/dist/_chunks/href-validation-BIrxavIy.js +213 -0
  46. package/dist/_chunks/href-validation-BIrxavIy.js.map +1 -0
  47. package/dist/_chunks/json-lossy-check-ClNvBM_3.js +63 -0
  48. package/dist/_chunks/json-lossy-check-ClNvBM_3.js.map +1 -0
  49. package/dist/_chunks/live-graph-D_2D32Ad.js +150 -0
  50. package/dist/_chunks/live-graph-D_2D32Ad.js.map +1 -0
  51. package/dist/_chunks/logger-uLBuGKDI.js +1484 -0
  52. package/dist/_chunks/logger-uLBuGKDI.js.map +1 -0
  53. package/dist/_chunks/navigation-context-D0TU0Jog.js +135 -0
  54. package/dist/_chunks/navigation-context-D0TU0Jog.js.map +1 -0
  55. package/dist/_chunks/navigation-root-mHSK9psY.js +126 -0
  56. package/dist/_chunks/navigation-root-mHSK9psY.js.map +1 -0
  57. package/dist/_chunks/param-value-C8TNYchQ.js +66 -0
  58. package/dist/_chunks/param-value-C8TNYchQ.js.map +1 -0
  59. package/dist/_chunks/plugin-context-8idfR3UZ.js +321 -0
  60. package/dist/_chunks/plugin-context-8idfR3UZ.js.map +1 -0
  61. package/dist/_chunks/poison-rules-DoEhbqaY.js +110 -0
  62. package/dist/_chunks/poison-rules-DoEhbqaY.js.map +1 -0
  63. package/dist/_chunks/poison-scan-Bm9Yyqk9.js +101 -0
  64. package/dist/_chunks/poison-scan-Bm9Yyqk9.js.map +1 -0
  65. package/dist/_chunks/purge-store-Byr8XOjU.js +14 -0
  66. package/dist/_chunks/purge-store-Byr8XOjU.js.map +1 -0
  67. package/dist/_chunks/resolve-schema-CBR6Lm4i.js +50 -0
  68. package/dist/_chunks/resolve-schema-CBR6Lm4i.js.map +1 -0
  69. package/dist/_chunks/rolldown-runtime-D7D4PA-g.js +13 -0
  70. package/dist/_chunks/rsc-cache-key-ClUiXQnK.js +243 -0
  71. package/dist/_chunks/rsc-cache-key-ClUiXQnK.js.map +1 -0
  72. package/dist/_chunks/rsc-media-type-DDc7duTD.js +61 -0
  73. package/dist/_chunks/rsc-media-type-DDc7duTD.js.map +1 -0
  74. package/dist/_chunks/rsc-payload-path-B_LBodc2.js +48 -0
  75. package/dist/_chunks/rsc-payload-path-B_LBodc2.js.map +1 -0
  76. package/dist/_chunks/scan-BoP17W3w.js +140 -0
  77. package/dist/_chunks/scan-BoP17W3w.js.map +1 -0
  78. package/dist/_chunks/scanner-AiazgH_f.js +1771 -0
  79. package/dist/_chunks/scanner-AiazgH_f.js.map +1 -0
  80. package/dist/_chunks/schema-bridge-C83xa9lT.js +199 -0
  81. package/dist/_chunks/schema-bridge-C83xa9lT.js.map +1 -0
  82. package/dist/_chunks/segment-classify-C539Pa2O.js +197 -0
  83. package/dist/_chunks/segment-classify-C539Pa2O.js.map +1 -0
  84. package/dist/_chunks/segment-context-D9_89u34.js +34 -0
  85. package/dist/_chunks/segment-context-D9_89u34.js.map +1 -0
  86. package/dist/_chunks/segment-keys-lqtdookO.js +256 -0
  87. package/dist/_chunks/segment-keys-lqtdookO.js.map +1 -0
  88. package/dist/_chunks/singleflight-2lUWfcAk.js +54 -0
  89. package/dist/_chunks/singleflight-2lUWfcAk.js.map +1 -0
  90. package/dist/_chunks/sizeof-lXffQ1Vr.js +35 -0
  91. package/dist/_chunks/sizeof-lXffQ1Vr.js.map +1 -0
  92. package/dist/_chunks/{ssr-data-DLnbYpj1.js → ssr-data-D6T6Y3ef.js} +3 -31
  93. package/dist/_chunks/ssr-data-D6T6Y3ef.js.map +1 -0
  94. package/dist/_chunks/state-FippDgxN.js +52 -0
  95. package/dist/_chunks/state-FippDgxN.js.map +1 -0
  96. package/dist/_chunks/status-page-marker-DwQBrLBz.js +496 -0
  97. package/dist/_chunks/status-page-marker-DwQBrLBz.js.map +1 -0
  98. package/dist/_chunks/use-query-states-I3JMng6J.js +226 -0
  99. package/dist/_chunks/use-query-states-I3JMng6J.js.map +1 -0
  100. package/dist/_chunks/walkers-B6XUtmqK.js +144 -0
  101. package/dist/_chunks/walkers-B6XUtmqK.js.map +1 -0
  102. package/dist/adapters/build-output-helper.d.ts +72 -0
  103. package/dist/adapters/build-output-helper.d.ts.map +1 -0
  104. package/dist/adapters/cloudflare-dev.d.ts +109 -0
  105. package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
  106. package/dist/adapters/cloudflare-dev.js +74 -0
  107. package/dist/adapters/cloudflare-dev.js.map +1 -0
  108. package/dist/adapters/cloudflare-kv-cache.d.ts +65 -0
  109. package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
  110. package/dist/adapters/cloudflare-kv-cache.js +123 -0
  111. package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
  112. package/dist/adapters/cloudflare.d.ts +200 -22
  113. package/dist/adapters/cloudflare.d.ts.map +1 -1
  114. package/dist/adapters/cloudflare.js +2 -188
  115. package/dist/adapters/compress-module.d.ts +17 -4
  116. package/dist/adapters/compress-module.d.ts.map +1 -1
  117. package/dist/adapters/fs-identity.d.ts +64 -0
  118. package/dist/adapters/fs-identity.d.ts.map +1 -0
  119. package/dist/adapters/nitro-presets.d.ts +37 -0
  120. package/dist/adapters/nitro-presets.d.ts.map +1 -0
  121. package/dist/adapters/nitro-preview.d.ts +32 -0
  122. package/dist/adapters/nitro-preview.d.ts.map +1 -0
  123. package/dist/adapters/nitro.d.ts +82 -37
  124. package/dist/adapters/nitro.d.ts.map +1 -1
  125. package/dist/adapters/nitro.js +457 -288
  126. package/dist/adapters/nitro.js.map +1 -1
  127. package/dist/adapters/shared.d.ts +62 -0
  128. package/dist/adapters/shared.d.ts.map +1 -0
  129. package/dist/adapters/types.d.ts +28 -6
  130. package/dist/adapters/types.d.ts.map +1 -1
  131. package/dist/analyze/chains.d.ts +124 -0
  132. package/dist/analyze/chains.d.ts.map +1 -0
  133. package/dist/analyze/classify.d.ts +150 -0
  134. package/dist/analyze/classify.d.ts.map +1 -0
  135. package/dist/analyze/crawl-entry.d.ts +17 -0
  136. package/dist/analyze/crawl-entry.d.ts.map +1 -0
  137. package/dist/analyze/crawl-entry.js +313 -0
  138. package/dist/analyze/crawl-entry.js.map +1 -0
  139. package/dist/analyze/crawl.d.ts +134 -0
  140. package/dist/analyze/crawl.d.ts.map +1 -0
  141. package/dist/analyze/graph-cache.d.ts +104 -0
  142. package/dist/analyze/graph-cache.d.ts.map +1 -0
  143. package/dist/analyze/graph-command.d.ts +43 -0
  144. package/dist/analyze/graph-command.d.ts.map +1 -0
  145. package/dist/analyze/graph-command.js +472 -0
  146. package/dist/analyze/graph-command.js.map +1 -0
  147. package/dist/analyze/live-graph.d.ts +81 -0
  148. package/dist/analyze/live-graph.d.ts.map +1 -0
  149. package/dist/analyze/poison-rules.d.ts +72 -0
  150. package/dist/analyze/poison-rules.d.ts.map +1 -0
  151. package/dist/analyze/poison-scan.d.ts +48 -0
  152. package/dist/analyze/poison-scan.d.ts.map +1 -0
  153. package/dist/analyze/scan.d.ts +73 -0
  154. package/dist/analyze/scan.d.ts.map +1 -0
  155. package/dist/cache/cache-api.d.ts +48 -0
  156. package/dist/cache/cache-api.d.ts.map +1 -0
  157. package/dist/cache/fast-hash.d.ts +27 -0
  158. package/dist/cache/fast-hash.d.ts.map +1 -0
  159. package/dist/cache/handler-store.d.ts +33 -0
  160. package/dist/cache/handler-store.d.ts.map +1 -0
  161. package/dist/cache/index.d.ts +32 -9
  162. package/dist/cache/index.d.ts.map +1 -1
  163. package/dist/cache/index.js +3 -284
  164. package/dist/cache/invalidation-epoch.d.ts +43 -0
  165. package/dist/cache/invalidation-epoch.d.ts.map +1 -0
  166. package/dist/cache/json-lossy-check.d.ts +11 -0
  167. package/dist/cache/json-lossy-check.d.ts.map +1 -0
  168. package/dist/cache/redis-handler.d.ts +141 -9
  169. package/dist/cache/redis-handler.d.ts.map +1 -1
  170. package/dist/cache/singleflight.d.ts +21 -2
  171. package/dist/cache/singleflight.d.ts.map +1 -1
  172. package/dist/cache/sizeof.d.ts +22 -0
  173. package/dist/cache/sizeof.d.ts.map +1 -0
  174. package/dist/cache/stable-stringify.d.ts +9 -0
  175. package/dist/cache/stable-stringify.d.ts.map +1 -1
  176. package/dist/cache/store.d.ts +53 -0
  177. package/dist/cache/store.d.ts.map +1 -0
  178. package/dist/cache/stores/cloudflare-kv.d.ts +38 -0
  179. package/dist/cache/stores/cloudflare-kv.d.ts.map +1 -0
  180. package/dist/cache/stores/cloudflare-kv.js +29 -0
  181. package/dist/cache/stores/cloudflare-kv.js.map +1 -0
  182. package/dist/cache/stores/memory.d.ts +42 -0
  183. package/dist/cache/stores/memory.d.ts.map +1 -0
  184. package/dist/cache/stores/memory.js +90 -0
  185. package/dist/cache/stores/memory.js.map +1 -0
  186. package/dist/cache/stores/redis.d.ts +69 -0
  187. package/dist/cache/stores/redis.d.ts.map +1 -0
  188. package/dist/cache/stores/redis.js +35 -0
  189. package/dist/cache/stores/redis.js.map +1 -0
  190. package/dist/cache/stores/vercel.d.ts +36 -0
  191. package/dist/cache/stores/vercel.d.ts.map +1 -0
  192. package/dist/cache/stores/vercel.js +33 -0
  193. package/dist/cache/stores/vercel.js.map +1 -0
  194. package/dist/cache/tag-aware-handler.d.ts +52 -0
  195. package/dist/cache/tag-aware-handler.d.ts.map +1 -0
  196. package/dist/cache/timber-cache.d.ts +21 -11
  197. package/dist/cache/timber-cache.d.ts.map +1 -1
  198. package/dist/cdn/cloudflare-purge.d.ts +23 -0
  199. package/dist/cdn/cloudflare-purge.d.ts.map +1 -0
  200. package/dist/cdn/cloudflare-purge.js +30 -0
  201. package/dist/cdn/cloudflare-purge.js.map +1 -0
  202. package/dist/cdn/fastly-purge.d.ts +25 -0
  203. package/dist/cdn/fastly-purge.d.ts.map +1 -0
  204. package/dist/cdn/fastly-purge.js +33 -0
  205. package/dist/cdn/fastly-purge.js.map +1 -0
  206. package/dist/cdn/headers.d.ts +97 -0
  207. package/dist/cdn/headers.d.ts.map +1 -0
  208. package/dist/cdn/index.d.ts +5 -0
  209. package/dist/cdn/index.d.ts.map +1 -0
  210. package/dist/cdn/index.js +94 -0
  211. package/dist/cdn/index.js.map +1 -0
  212. package/dist/cdn/purge-store.d.ts +23 -0
  213. package/dist/cdn/purge-store.d.ts.map +1 -0
  214. package/dist/cdn/workers-cache-purge.d.ts +20 -0
  215. package/dist/cdn/workers-cache-purge.d.ts.map +1 -0
  216. package/dist/cdn/workers-cache-purge.js +35 -0
  217. package/dist/cdn/workers-cache-purge.js.map +1 -0
  218. package/dist/cli-check.d.ts +163 -0
  219. package/dist/cli-check.d.ts.map +1 -0
  220. package/dist/cli-schema-sync.d.ts +59 -0
  221. package/dist/cli-schema-sync.d.ts.map +1 -0
  222. package/dist/cli.d.ts +75 -8
  223. package/dist/cli.d.ts.map +1 -1
  224. package/dist/cli.js +175 -47
  225. package/dist/cli.js.map +1 -1
  226. package/dist/client/browser-dev.d.ts +37 -1
  227. package/dist/client/browser-dev.d.ts.map +1 -1
  228. package/dist/client/browser-entry/action-dispatch.d.ts +19 -0
  229. package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
  230. package/dist/client/browser-entry/action-queue.d.ts +44 -0
  231. package/dist/client/browser-entry/action-queue.d.ts.map +1 -0
  232. package/dist/client/browser-entry/hmr.d.ts +21 -0
  233. package/dist/client/browser-entry/hmr.d.ts.map +1 -0
  234. package/dist/client/browser-entry/hydrate.d.ts +63 -0
  235. package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
  236. package/dist/client/browser-entry/index.d.ts +30 -0
  237. package/dist/client/browser-entry/index.d.ts.map +1 -0
  238. package/dist/client/browser-entry/post-hydration.d.ts +29 -0
  239. package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
  240. package/dist/client/browser-entry/router-init.d.ts +46 -0
  241. package/dist/client/browser-entry/router-init.d.ts.map +1 -0
  242. package/dist/client/browser-entry/rsc-stream.d.ts +32 -0
  243. package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
  244. package/dist/client/browser-entry/scroll.d.ts +28 -0
  245. package/dist/client/browser-entry/scroll.d.ts.map +1 -0
  246. package/dist/client/deny-last-resort.d.ts +29 -0
  247. package/dist/client/deny-last-resort.d.ts.map +1 -0
  248. package/dist/client/error-boundary.d.ts +66 -6
  249. package/dist/client/error-boundary.d.ts.map +1 -1
  250. package/dist/client/error-boundary.js +2 -126
  251. package/dist/client/error-reconstituter.d.ts +61 -0
  252. package/dist/client/error-reconstituter.d.ts.map +1 -0
  253. package/dist/client/form.d.ts +16 -27
  254. package/dist/client/form.d.ts.map +1 -1
  255. package/dist/client/global-context.d.ts +15 -0
  256. package/dist/client/global-context.d.ts.map +1 -0
  257. package/dist/client/history.d.ts +50 -9
  258. package/dist/client/history.d.ts.map +1 -1
  259. package/dist/client/index.d.ts +20 -33
  260. package/dist/client/index.d.ts.map +1 -1
  261. package/dist/client/index.js +323 -1148
  262. package/dist/client/index.js.map +1 -1
  263. package/dist/client/internal.d.ts +20 -0
  264. package/dist/client/internal.d.ts.map +1 -0
  265. package/dist/client/internal.js +818 -0
  266. package/dist/client/internal.js.map +1 -0
  267. package/dist/client/link.d.ts +63 -60
  268. package/dist/client/link.d.ts.map +1 -1
  269. package/dist/client/location-search.d.ts +12 -0
  270. package/dist/client/location-search.d.ts.map +1 -0
  271. package/dist/client/navigation-api.d.ts +121 -0
  272. package/dist/client/navigation-api.d.ts.map +1 -0
  273. package/dist/client/navigation-commit.d.ts +98 -0
  274. package/dist/client/navigation-commit.d.ts.map +1 -0
  275. package/dist/client/navigation-context.d.ts +51 -31
  276. package/dist/client/navigation-context.d.ts.map +1 -1
  277. package/dist/client/navigation-root.d.ts +98 -0
  278. package/dist/client/navigation-root.d.ts.map +1 -0
  279. package/dist/client/navigation-transition.d.ts +187 -0
  280. package/dist/client/navigation-transition.d.ts.map +1 -0
  281. package/dist/client/nuqs-adapter.d.ts +1 -1
  282. package/dist/client/nuqs-adapter.d.ts.map +1 -1
  283. package/dist/client/params-context.d.ts +81 -0
  284. package/dist/client/params-context.d.ts.map +1 -0
  285. package/dist/client/react-root.d.ts +44 -0
  286. package/dist/client/react-root.d.ts.map +1 -0
  287. package/dist/client/router-effects.d.ts +130 -0
  288. package/dist/client/router-effects.d.ts.map +1 -0
  289. package/dist/client/router-lifecycle.d.ts +98 -0
  290. package/dist/client/router-lifecycle.d.ts.map +1 -0
  291. package/dist/client/router-pipeline.d.ts +87 -0
  292. package/dist/client/router-pipeline.d.ts.map +1 -0
  293. package/dist/client/router-ref.d.ts +2 -2
  294. package/dist/client/router-ref.d.ts.map +1 -1
  295. package/dist/client/router-skew.d.ts +21 -0
  296. package/dist/client/router-skew.d.ts.map +1 -0
  297. package/dist/client/router-types.d.ts +272 -0
  298. package/dist/client/router-types.d.ts.map +1 -0
  299. package/dist/client/router.d.ts +1 -97
  300. package/dist/client/router.d.ts.map +1 -1
  301. package/dist/client/rsc-fetch.d.ts +104 -26
  302. package/dist/client/rsc-fetch.d.ts.map +1 -1
  303. package/dist/client/segment-cache.d.ts +161 -25
  304. package/dist/client/segment-cache.d.ts.map +1 -1
  305. package/dist/client/segment-context.d.ts +1 -1
  306. package/dist/client/segment-context.d.ts.map +1 -1
  307. package/dist/client/segment-outlet.d.ts +68 -0
  308. package/dist/client/segment-outlet.d.ts.map +1 -0
  309. package/dist/client/segment-update-context.d.ts +15 -0
  310. package/dist/client/segment-update-context.d.ts.map +1 -0
  311. package/dist/client/shallow-url.d.ts +10 -0
  312. package/dist/client/shallow-url.d.ts.map +1 -0
  313. package/dist/client/slot-content-cache-context.d.ts +35 -0
  314. package/dist/client/slot-content-cache-context.d.ts.map +1 -0
  315. package/dist/client/slot-context.d.ts +31 -0
  316. package/dist/client/slot-context.d.ts.map +1 -0
  317. package/dist/client/slot-outlet.d.ts +16 -0
  318. package/dist/client/slot-outlet.d.ts.map +1 -0
  319. package/dist/client/slot-provider.d.ts +25 -0
  320. package/dist/client/slot-provider.d.ts.map +1 -0
  321. package/dist/client/ssr-data.d.ts +29 -7
  322. package/dist/client/ssr-data.d.ts.map +1 -1
  323. package/dist/client/stale-client.d.ts +69 -0
  324. package/dist/client/stale-client.d.ts.map +1 -0
  325. package/dist/client/state.d.ts +19 -8
  326. package/dist/client/state.d.ts.map +1 -1
  327. package/dist/client/status-page-marker.d.ts +25 -0
  328. package/dist/client/status-page-marker.d.ts.map +1 -0
  329. package/dist/client/top-loader.d.ts +7 -6
  330. package/dist/client/top-loader.d.ts.map +1 -1
  331. package/dist/client/unload-guard.d.ts +5 -0
  332. package/dist/client/unload-guard.d.ts.map +1 -1
  333. package/dist/client/use-cookie.d.ts +12 -0
  334. package/dist/client/use-cookie.d.ts.map +1 -1
  335. package/dist/client/use-link-status.d.ts +5 -5
  336. package/dist/client/use-link-status.d.ts.map +1 -1
  337. package/dist/client/use-pathname.d.ts +13 -11
  338. package/dist/client/use-pathname.d.ts.map +1 -1
  339. package/dist/client/use-pending-navigation.d.ts +23 -0
  340. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  341. package/dist/client/use-query-states.d.ts +10 -4
  342. package/dist/client/use-query-states.d.ts.map +1 -1
  343. package/dist/client/use-router.d.ts +2 -2
  344. package/dist/client/use-router.d.ts.map +1 -1
  345. package/dist/client/use-search-params.d.ts +15 -8
  346. package/dist/client/use-search-params.d.ts.map +1 -1
  347. package/dist/client/use-segment-params.d.ts +55 -0
  348. package/dist/client/use-segment-params.d.ts.map +1 -0
  349. package/dist/codec.d.ts +69 -0
  350. package/dist/codec.d.ts.map +1 -0
  351. package/dist/codec.js +76 -0
  352. package/dist/codec.js.map +1 -0
  353. package/dist/config-types.d.ts +322 -0
  354. package/dist/config-types.d.ts.map +1 -0
  355. package/dist/config-validation.d.ts +51 -0
  356. package/dist/config-validation.d.ts.map +1 -0
  357. package/dist/cookies/define-cookie.d.ts +58 -25
  358. package/dist/cookies/define-cookie.d.ts.map +1 -1
  359. package/dist/cookies/index.d.ts +3 -2
  360. package/dist/cookies/index.d.ts.map +1 -1
  361. package/dist/cookies/index.js +256 -36
  362. package/dist/cookies/index.js.map +1 -1
  363. package/dist/cookies/json-cookie.d.ts +64 -0
  364. package/dist/cookies/json-cookie.d.ts.map +1 -0
  365. package/dist/cookies/validation.d.ts +34 -0
  366. package/dist/cookies/validation.d.ts.map +1 -0
  367. package/dist/dev-tools/404-page.d.ts +50 -0
  368. package/dist/dev-tools/404-page.d.ts.map +1 -0
  369. package/dist/dev-tools/browser-logs.d.ts +40 -0
  370. package/dist/dev-tools/browser-logs.d.ts.map +1 -0
  371. package/dist/dev-tools/dev-page-shell.d.ts +78 -0
  372. package/dist/dev-tools/dev-page-shell.d.ts.map +1 -0
  373. package/dist/dev-tools/error-page.d.ts +32 -0
  374. package/dist/dev-tools/error-page.d.ts.map +1 -0
  375. package/dist/dev-tools/holding-server.d.ts +46 -0
  376. package/dist/dev-tools/holding-server.d.ts.map +1 -0
  377. package/dist/dev-tools/hydration-overlay.d.ts +11 -0
  378. package/dist/dev-tools/hydration-overlay.d.ts.map +1 -0
  379. package/dist/dev-tools/index.d.ts +31 -0
  380. package/dist/dev-tools/index.d.ts.map +1 -0
  381. package/dist/dev-tools/instrumentation.d.ts +59 -0
  382. package/dist/dev-tools/instrumentation.d.ts.map +1 -0
  383. package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
  384. package/dist/dev-tools/logger.d.ts.map +1 -0
  385. package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +17 -3
  386. package/dist/dev-tools/logs.d.ts.map +1 -0
  387. package/dist/dev-tools/overlay.d.ts +91 -0
  388. package/dist/dev-tools/overlay.d.ts.map +1 -0
  389. package/dist/dev-tools/stack-classifier.d.ts +34 -0
  390. package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
  391. package/dist/dev-tools/terminal.d.ts +28 -0
  392. package/dist/dev-tools/terminal.d.ts.map +1 -0
  393. package/dist/fonts/ast-walk.d.ts +68 -0
  394. package/dist/fonts/ast-walk.d.ts.map +1 -0
  395. package/dist/fonts/ast.d.ts +112 -8
  396. package/dist/fonts/ast.d.ts.map +1 -1
  397. package/dist/fonts/bundle.d.ts +50 -0
  398. package/dist/fonts/bundle.d.ts.map +1 -0
  399. package/dist/fonts/css.d.ts +2 -1
  400. package/dist/fonts/css.d.ts.map +1 -1
  401. package/dist/fonts/dev-middleware.d.ts +22 -0
  402. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  403. package/dist/fonts/fallbacks.d.ts +0 -7
  404. package/dist/fonts/fallbacks.d.ts.map +1 -1
  405. package/dist/fonts/google.d.ts +5 -3
  406. package/dist/fonts/google.d.ts.map +1 -1
  407. package/dist/fonts/local.d.ts +6 -4
  408. package/dist/fonts/local.d.ts.map +1 -1
  409. package/dist/fonts/paths.d.ts +43 -0
  410. package/dist/fonts/paths.d.ts.map +1 -0
  411. package/dist/fonts/pipeline.d.ts +177 -0
  412. package/dist/fonts/pipeline.d.ts.map +1 -0
  413. package/dist/fonts/transform.d.ts +82 -0
  414. package/dist/fonts/transform.d.ts.map +1 -0
  415. package/dist/fonts/types.d.ts +47 -1
  416. package/dist/fonts/types.d.ts.map +1 -1
  417. package/dist/fonts/virtual-modules.d.ts +77 -0
  418. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  419. package/dist/index.d.ts +35 -153
  420. package/dist/index.d.ts.map +1 -1
  421. package/dist/index.js +10488 -13975
  422. package/dist/index.js.map +1 -1
  423. package/dist/params/codec-registry.d.ts +26 -0
  424. package/dist/params/codec-registry.d.ts.map +1 -0
  425. package/dist/params/define-schema.d.ts +81 -0
  426. package/dist/params/define-schema.d.ts.map +1 -0
  427. package/dist/params/index.d.ts +5 -0
  428. package/dist/params/index.d.ts.map +1 -0
  429. package/dist/params/index.js +34 -0
  430. package/dist/params/index.js.map +1 -0
  431. package/dist/params/resolve-schema.d.ts +34 -0
  432. package/dist/params/resolve-schema.d.ts.map +1 -0
  433. package/dist/plugin-context.d.ts +276 -0
  434. package/dist/plugin-context.d.ts.map +1 -0
  435. package/dist/plugins/adapter-build.d.ts +21 -1
  436. package/dist/plugins/adapter-build.d.ts.map +1 -1
  437. package/dist/plugins/build-manifest.d.ts +7 -3
  438. package/dist/plugins/build-manifest.d.ts.map +1 -1
  439. package/dist/plugins/build-report.d.ts +54 -7
  440. package/dist/plugins/build-report.d.ts.map +1 -1
  441. package/dist/plugins/cache.d.ts +64 -0
  442. package/dist/plugins/cache.d.ts.map +1 -0
  443. package/dist/plugins/callsite-ast.d.ts +117 -0
  444. package/dist/plugins/callsite-ast.d.ts.map +1 -0
  445. package/dist/plugins/callsite-jsx.d.ts +35 -0
  446. package/dist/plugins/callsite-jsx.d.ts.map +1 -0
  447. package/dist/plugins/chunks.d.ts +11 -4
  448. package/dist/plugins/chunks.d.ts.map +1 -1
  449. package/dist/plugins/client-chunks.d.ts +40 -0
  450. package/dist/plugins/client-chunks.d.ts.map +1 -0
  451. package/dist/plugins/cloudflare-wasm.d.ts +21 -0
  452. package/dist/plugins/cloudflare-wasm.d.ts.map +1 -0
  453. package/dist/plugins/content.d.ts +1 -1
  454. package/dist/plugins/content.d.ts.map +1 -1
  455. package/dist/plugins/dev-discovery.d.ts +123 -0
  456. package/dist/plugins/dev-discovery.d.ts.map +1 -0
  457. package/dist/plugins/dev-server.d.ts +17 -1
  458. package/dist/plugins/dev-server.d.ts.map +1 -1
  459. package/dist/plugins/entries.d.ts +32 -1
  460. package/dist/plugins/entries.d.ts.map +1 -1
  461. package/dist/plugins/fonts.d.ts +16 -65
  462. package/dist/plugins/fonts.d.ts.map +1 -1
  463. package/dist/plugins/graph-endpoint.d.ts +112 -0
  464. package/dist/plugins/graph-endpoint.d.ts.map +1 -0
  465. package/dist/plugins/mdx.d.ts +24 -5
  466. package/dist/plugins/mdx.d.ts.map +1 -1
  467. package/dist/plugins/prebuilt-capture.d.ts +60 -0
  468. package/dist/plugins/prebuilt-capture.d.ts.map +1 -0
  469. package/dist/plugins/prebuilt-options-analysis.d.ts +40 -0
  470. package/dist/plugins/prebuilt-options-analysis.d.ts.map +1 -0
  471. package/dist/plugins/prebuilt.d.ts +82 -0
  472. package/dist/plugins/prebuilt.d.ts.map +1 -0
  473. package/dist/plugins/prerender-sugar.d.ts +39 -0
  474. package/dist/plugins/prerender-sugar.d.ts.map +1 -0
  475. package/dist/plugins/request-dep/analysis.d.ts +106 -0
  476. package/dist/plugins/request-dep/analysis.d.ts.map +1 -0
  477. package/dist/plugins/request-dep/index.d.ts +75 -0
  478. package/dist/plugins/request-dep/index.d.ts.map +1 -0
  479. package/dist/plugins/request-dep/origin.d.ts +61 -0
  480. package/dist/plugins/request-dep/origin.d.ts.map +1 -0
  481. package/dist/plugins/routing.d.ts +1 -1
  482. package/dist/plugins/routing.d.ts.map +1 -1
  483. package/dist/plugins/server-bundle.d.ts.map +1 -1
  484. package/dist/plugins/shims.d.ts +29 -5
  485. package/dist/plugins/shims.d.ts.map +1 -1
  486. package/dist/plugins/static-build.d.ts +218 -21
  487. package/dist/plugins/static-build.d.ts.map +1 -1
  488. package/dist/routing/codegen-shared.d.ts +26 -0
  489. package/dist/routing/codegen-shared.d.ts.map +1 -0
  490. package/dist/routing/codegen-types.d.ts +61 -0
  491. package/dist/routing/codegen-types.d.ts.map +1 -0
  492. package/dist/routing/codegen-write.d.ts +51 -0
  493. package/dist/routing/codegen-write.d.ts.map +1 -0
  494. package/dist/routing/codegen.d.ts +8 -3
  495. package/dist/routing/codegen.d.ts.map +1 -1
  496. package/dist/routing/collision-probe.d.ts +104 -0
  497. package/dist/routing/collision-probe.d.ts.map +1 -0
  498. package/dist/routing/collision-spaces.d.ts +26 -0
  499. package/dist/routing/collision-spaces.d.ts.map +1 -0
  500. package/dist/routing/convention-lint.d.ts +55 -0
  501. package/dist/routing/convention-lint.d.ts.map +1 -0
  502. package/dist/routing/export-detect.d.ts +72 -0
  503. package/dist/routing/export-detect.d.ts.map +1 -0
  504. package/dist/routing/file-cache.d.ts +8 -0
  505. package/dist/routing/file-cache.d.ts.map +1 -0
  506. package/dist/routing/index.d.ts +13 -7
  507. package/dist/routing/index.d.ts.map +1 -1
  508. package/dist/routing/index.js +5 -2
  509. package/dist/routing/interception-overlap.d.ts +35 -0
  510. package/dist/routing/interception-overlap.d.ts.map +1 -0
  511. package/dist/routing/interception.d.ts +234 -10
  512. package/dist/routing/interception.d.ts.map +1 -1
  513. package/dist/routing/link-codegen.d.ts +105 -0
  514. package/dist/routing/link-codegen.d.ts.map +1 -0
  515. package/dist/routing/manifest-codegen.d.ts +26 -0
  516. package/dist/routing/manifest-codegen.d.ts.map +1 -0
  517. package/dist/routing/scanner.d.ts +14 -10
  518. package/dist/routing/scanner.d.ts.map +1 -1
  519. package/dist/routing/schema-validation.d.ts +35 -0
  520. package/dist/routing/schema-validation.d.ts.map +1 -0
  521. package/dist/routing/segment-classify.d.ts +114 -0
  522. package/dist/routing/segment-classify.d.ts.map +1 -0
  523. package/dist/routing/segment-codegen.d.ts +38 -0
  524. package/dist/routing/segment-codegen.d.ts.map +1 -0
  525. package/dist/routing/segment-keys.d.ts +118 -0
  526. package/dist/routing/segment-keys.d.ts.map +1 -0
  527. package/dist/routing/slot-placement.d.ts +48 -0
  528. package/dist/routing/slot-placement.d.ts.map +1 -0
  529. package/dist/routing/types.d.ts +74 -26
  530. package/dist/routing/types.d.ts.map +1 -1
  531. package/dist/routing/walkers.d.ts +57 -0
  532. package/dist/routing/walkers.d.ts.map +1 -0
  533. package/dist/rsc-runtime/rsc.d.ts +1 -1
  534. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  535. package/dist/rsc-runtime/ssr.d.ts +14 -0
  536. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  537. package/dist/rsc-runtime/transforms.d.ts +13 -0
  538. package/dist/rsc-runtime/transforms.d.ts.map +1 -0
  539. package/dist/schema-bridge.d.ts +145 -0
  540. package/dist/schema-bridge.d.ts.map +1 -0
  541. package/dist/search-params/define.d.ts +262 -0
  542. package/dist/search-params/define.d.ts.map +1 -0
  543. package/dist/search-params/index.d.ts +3 -7
  544. package/dist/search-params/index.d.ts.map +1 -1
  545. package/dist/search-params/index.js +179 -360
  546. package/dist/search-params/index.js.map +1 -1
  547. package/dist/search-params/parse-total.d.ts +81 -0
  548. package/dist/search-params/parse-total.d.ts.map +1 -0
  549. package/dist/search-params/serialize-equal.d.ts +9 -0
  550. package/dist/search-params/serialize-equal.d.ts.map +1 -0
  551. package/dist/search-params/wrappers.d.ts +76 -0
  552. package/dist/search-params/wrappers.d.ts.map +1 -0
  553. package/dist/server/access-gate.d.ts +98 -10
  554. package/dist/server/access-gate.d.ts.map +1 -1
  555. package/dist/server/action-client.d.ts +42 -7
  556. package/dist/server/action-client.d.ts.map +1 -1
  557. package/dist/server/action-encryption.d.ts +76 -0
  558. package/dist/server/action-encryption.d.ts.map +1 -0
  559. package/dist/server/action-handler.d.ts +39 -5
  560. package/dist/server/action-handler.d.ts.map +1 -1
  561. package/dist/server/actions.d.ts +29 -35
  562. package/dist/server/actions.d.ts.map +1 -1
  563. package/dist/server/als-registry.d.ts +117 -13
  564. package/dist/server/als-registry.d.ts.map +1 -1
  565. package/dist/server/asset-headers.d.ts +8 -18
  566. package/dist/server/asset-headers.d.ts.map +1 -1
  567. package/dist/server/body-limits.d.ts.map +1 -1
  568. package/dist/server/build-manifest.d.ts +25 -30
  569. package/dist/server/build-manifest.d.ts.map +1 -1
  570. package/dist/server/canonicalize.d.ts +10 -0
  571. package/dist/server/canonicalize.d.ts.map +1 -1
  572. package/dist/server/chain-url-parts.d.ts +82 -0
  573. package/dist/server/chain-url-parts.d.ts.map +1 -0
  574. package/dist/server/children-interception.d.ts +49 -0
  575. package/dist/server/children-interception.d.ts.map +1 -0
  576. package/dist/server/coalesce-tick.d.ts +40 -0
  577. package/dist/server/coalesce-tick.d.ts.map +1 -0
  578. package/dist/server/compress.d.ts.map +1 -1
  579. package/dist/server/cookie-context.d.ts +170 -0
  580. package/dist/server/cookie-context.d.ts.map +1 -0
  581. package/dist/server/cookie-parsing.d.ts +65 -0
  582. package/dist/server/cookie-parsing.d.ts.map +1 -0
  583. package/dist/server/csp-nonce.d.ts +45 -0
  584. package/dist/server/csp-nonce.d.ts.map +1 -0
  585. package/dist/server/csrf.d.ts +3 -2
  586. package/dist/server/csrf.d.ts.map +1 -1
  587. package/dist/server/debug.d.ts +82 -0
  588. package/dist/server/debug.d.ts.map +1 -0
  589. package/dist/server/default-logger.d.ts +22 -0
  590. package/dist/server/default-logger.d.ts.map +1 -0
  591. package/dist/server/default-status-page.d.ts +45 -0
  592. package/dist/server/default-status-page.d.ts.map +1 -0
  593. package/dist/server/deny-boundary.d.ts +253 -0
  594. package/dist/server/deny-boundary.d.ts.map +1 -0
  595. package/dist/server/deny-renderer.d.ts +20 -9
  596. package/dist/server/deny-renderer.d.ts.map +1 -1
  597. package/dist/server/dev-source-map.d.ts +22 -0
  598. package/dist/server/dev-source-map.d.ts.map +1 -0
  599. package/dist/server/early-hints-sender.d.ts.map +1 -1
  600. package/dist/server/early-hints.d.ts +14 -12
  601. package/dist/server/early-hints.d.ts.map +1 -1
  602. package/dist/server/error-boundary-wrapper.d.ts +101 -10
  603. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  604. package/dist/server/error-response-headers.d.ts +3 -0
  605. package/dist/server/error-response-headers.d.ts.map +1 -0
  606. package/dist/server/fallback-error.d.ts +12 -7
  607. package/dist/server/fallback-error.d.ts.map +1 -1
  608. package/dist/server/flight-injection-state.d.ts +66 -0
  609. package/dist/server/flight-injection-state.d.ts.map +1 -0
  610. package/dist/server/flight-scripts.d.ts +45 -0
  611. package/dist/server/flight-scripts.d.ts.map +1 -0
  612. package/dist/server/form-data.d.ts +41 -0
  613. package/dist/server/form-data.d.ts.map +1 -1
  614. package/dist/server/form-flash.d.ts +1 -1
  615. package/dist/server/head-response.d.ts +35 -0
  616. package/dist/server/head-response.d.ts.map +1 -0
  617. package/dist/server/html-injector-core.d.ts +257 -0
  618. package/dist/server/html-injector-core.d.ts.map +1 -0
  619. package/dist/server/html-injectors.d.ts +84 -42
  620. package/dist/server/html-injectors.d.ts.map +1 -1
  621. package/dist/server/index.d.ts +18 -54
  622. package/dist/server/index.d.ts.map +1 -1
  623. package/dist/server/index.js +212 -2930
  624. package/dist/server/index.js.map +1 -1
  625. package/dist/server/instrumentation.d.ts +1 -1
  626. package/dist/server/internal.d.ts +50 -0
  627. package/dist/server/internal.d.ts.map +1 -0
  628. package/dist/server/internal.js +4034 -0
  629. package/dist/server/internal.js.map +1 -0
  630. package/dist/server/logger.d.ts +39 -7
  631. package/dist/server/logger.d.ts.map +1 -1
  632. package/dist/server/metadata-collector.d.ts +71 -0
  633. package/dist/server/metadata-collector.d.ts.map +1 -0
  634. package/dist/server/metadata-platform.d.ts +2 -2
  635. package/dist/server/metadata-render.d.ts +2 -2
  636. package/dist/server/metadata-render.d.ts.map +1 -1
  637. package/dist/server/metadata-routes.d.ts +60 -11
  638. package/dist/server/metadata-routes.d.ts.map +1 -1
  639. package/dist/server/metadata-social.d.ts +2 -2
  640. package/dist/server/metadata.d.ts +10 -2
  641. package/dist/server/metadata.d.ts.map +1 -1
  642. package/dist/server/middleware-runner.d.ts +20 -5
  643. package/dist/server/middleware-runner.d.ts.map +1 -1
  644. package/dist/server/node-stream-transforms.d.ts +105 -0
  645. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  646. package/dist/server/nuqs-ssr-provider.d.ts +7 -3
  647. package/dist/server/nuqs-ssr-provider.d.ts.map +1 -1
  648. package/dist/server/param-coercion.d.ts +78 -0
  649. package/dist/server/param-coercion.d.ts.map +1 -0
  650. package/dist/server/pipeline-helpers.d.ts +77 -0
  651. package/dist/server/pipeline-helpers.d.ts.map +1 -0
  652. package/dist/server/pipeline-interception.d.ts +59 -9
  653. package/dist/server/pipeline-interception.d.ts.map +1 -1
  654. package/dist/server/pipeline-metadata.d.ts +7 -1
  655. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  656. package/dist/server/pipeline-outcome.d.ts +49 -0
  657. package/dist/server/pipeline-outcome.d.ts.map +1 -0
  658. package/dist/server/pipeline-phases.d.ts +70 -0
  659. package/dist/server/pipeline-phases.d.ts.map +1 -0
  660. package/dist/server/pipeline.d.ts +160 -24
  661. package/dist/server/pipeline.d.ts.map +1 -1
  662. package/dist/server/port-resolution.d.ts +31 -0
  663. package/dist/server/port-resolution.d.ts.map +1 -0
  664. package/dist/server/prebuilt/cache-key.d.ts +63 -0
  665. package/dist/server/prebuilt/cache-key.d.ts.map +1 -0
  666. package/dist/server/prebuilt/capture-state.d.ts +57 -0
  667. package/dist/server/prebuilt/capture-state.d.ts.map +1 -0
  668. package/dist/server/prebuilt/key-discipline.d.ts +52 -0
  669. package/dist/server/prebuilt/key-discipline.d.ts.map +1 -0
  670. package/dist/server/prebuilt/manifest-tag-index.d.ts +27 -0
  671. package/dist/server/prebuilt/manifest-tag-index.d.ts.map +1 -0
  672. package/dist/server/prebuilt/overlay.d.ts +100 -0
  673. package/dist/server/prebuilt/overlay.d.ts.map +1 -0
  674. package/dist/server/prebuilt/payload-source.d.ts +79 -0
  675. package/dist/server/prebuilt/payload-source.d.ts.map +1 -0
  676. package/dist/server/prebuilt/slots.d.ts +99 -0
  677. package/dist/server/prebuilt/slots.d.ts.map +1 -0
  678. package/dist/server/prebuilt/synthetic-store.d.ts +67 -0
  679. package/dist/server/prebuilt/synthetic-store.d.ts.map +1 -0
  680. package/dist/server/prebuilt-builder.d.ts +121 -0
  681. package/dist/server/prebuilt-builder.d.ts.map +1 -0
  682. package/dist/server/prebuilt-runtime.d.ts +111 -0
  683. package/dist/server/prebuilt-runtime.d.ts.map +1 -0
  684. package/dist/server/primitives.d.ts +129 -45
  685. package/dist/server/primitives.d.ts.map +1 -1
  686. package/dist/server/publish-params.d.ts +33 -0
  687. package/dist/server/publish-params.d.ts.map +1 -0
  688. package/dist/server/render-timeout.d.ts +51 -0
  689. package/dist/server/render-timeout.d.ts.map +1 -0
  690. package/dist/server/render-utils.d.ts +26 -0
  691. package/dist/server/render-utils.d.ts.map +1 -0
  692. package/dist/server/request-context.d.ts +111 -107
  693. package/dist/server/request-context.d.ts.map +1 -1
  694. package/dist/server/request-dep.d.ts +15 -0
  695. package/dist/server/request-dep.d.ts.map +1 -0
  696. package/dist/server/response-cache-policy.d.ts +3 -0
  697. package/dist/server/response-cache-policy.d.ts.map +1 -0
  698. package/dist/server/route-element-builder.d.ts +57 -30
  699. package/dist/server/route-element-builder.d.ts.map +1 -1
  700. package/dist/server/route-element-helpers.d.ts +12 -0
  701. package/dist/server/route-element-helpers.d.ts.map +1 -0
  702. package/dist/server/route-handler.d.ts +1 -1
  703. package/dist/server/route-handler.d.ts.map +1 -1
  704. package/dist/server/route-matcher.d.ts +40 -38
  705. package/dist/server/route-matcher.d.ts.map +1 -1
  706. package/dist/server/route-module-loader.d.ts +37 -0
  707. package/dist/server/route-module-loader.d.ts.map +1 -0
  708. package/dist/server/rsc-cache-key-guard.d.ts +78 -0
  709. package/dist/server/rsc-cache-key-guard.d.ts.map +1 -0
  710. package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
  711. package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
  712. package/dist/server/rsc-entry/api-handler.d.ts +12 -3
  713. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  714. package/dist/server/rsc-entry/deny-fallback.d.ts +29 -0
  715. package/dist/server/rsc-entry/deny-fallback.d.ts.map +1 -0
  716. package/dist/server/rsc-entry/error-renderer.d.ts +38 -13
  717. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  718. package/dist/server/rsc-entry/helpers.d.ts +59 -42
  719. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  720. package/dist/server/rsc-entry/index.d.ts +40 -6
  721. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  722. package/dist/server/rsc-entry/render-route.d.ts +51 -0
  723. package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
  724. package/dist/server/rsc-entry/revalidate-renderer.d.ts +108 -0
  725. package/dist/server/rsc-entry/revalidate-renderer.d.ts.map +1 -0
  726. package/dist/server/rsc-entry/rsc-payload.d.ts +26 -6
  727. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  728. package/dist/server/rsc-entry/rsc-stream.d.ts +39 -3
  729. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  730. package/dist/server/rsc-entry/ssr-bridge.d.ts +5 -1
  731. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  732. package/dist/server/rsc-entry/ssr-renderer.d.ts +37 -5
  733. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  734. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +89 -0
  735. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
  736. package/dist/server/rsc-error-envelope.d.ts +11 -0
  737. package/dist/server/rsc-error-envelope.d.ts.map +1 -0
  738. package/dist/server/rsc-prop-warnings.d.ts.map +1 -1
  739. package/dist/server/safe-load.d.ts +46 -0
  740. package/dist/server/safe-load.d.ts.map +1 -0
  741. package/dist/server/sensitive-fields.d.ts +74 -0
  742. package/dist/server/sensitive-fields.d.ts.map +1 -0
  743. package/dist/server/sitemap-generator.d.ts +130 -0
  744. package/dist/server/sitemap-generator.d.ts.map +1 -0
  745. package/dist/server/sitemap-handler.d.ts +22 -0
  746. package/dist/server/sitemap-handler.d.ts.map +1 -0
  747. package/dist/server/skippable-prefix.d.ts +29 -0
  748. package/dist/server/skippable-prefix.d.ts.map +1 -0
  749. package/dist/server/slot-interception.d.ts +80 -0
  750. package/dist/server/slot-interception.d.ts.map +1 -0
  751. package/dist/server/slot-resolver.d.ts +137 -7
  752. package/dist/server/slot-resolver.d.ts.map +1 -1
  753. package/dist/server/slot-subtree-contain.d.ts +54 -0
  754. package/dist/server/slot-subtree-contain.d.ts.map +1 -0
  755. package/dist/server/ssr-bridge-types.d.ts +160 -0
  756. package/dist/server/ssr-bridge-types.d.ts.map +1 -0
  757. package/dist/server/ssr-entry.d.ts +1 -43
  758. package/dist/server/ssr-entry.d.ts.map +1 -1
  759. package/dist/server/ssr-render.d.ts +69 -22
  760. package/dist/server/ssr-render.d.ts.map +1 -1
  761. package/dist/server/ssr-wrappers.d.ts +93 -0
  762. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  763. package/dist/server/state-tree-diff.d.ts +44 -9
  764. package/dist/server/state-tree-diff.d.ts.map +1 -1
  765. package/dist/server/static-generator.d.ts +112 -0
  766. package/dist/server/static-generator.d.ts.map +1 -0
  767. package/dist/server/static-not-found.d.ts +52 -0
  768. package/dist/server/static-not-found.d.ts.map +1 -0
  769. package/dist/server/status-code-resolver.d.ts +26 -15
  770. package/dist/server/status-code-resolver.d.ts.map +1 -1
  771. package/dist/server/stream-utils.d.ts +47 -0
  772. package/dist/server/stream-utils.d.ts.map +1 -0
  773. package/dist/server/tracing.d.ts +56 -11
  774. package/dist/server/tracing.d.ts.map +1 -1
  775. package/dist/server/tree-match.d.ts +49 -0
  776. package/dist/server/tree-match.d.ts.map +1 -0
  777. package/dist/server/types.d.ts +88 -7
  778. package/dist/server/types.d.ts.map +1 -1
  779. package/dist/server/utils/element-type.d.ts +50 -0
  780. package/dist/server/utils/element-type.d.ts.map +1 -0
  781. package/dist/server/utils/escape-html.d.ts +14 -0
  782. package/dist/server/utils/escape-html.d.ts.map +1 -0
  783. package/dist/server/utils/mdx-file.d.ts +17 -0
  784. package/dist/server/utils/mdx-file.d.ts.map +1 -0
  785. package/dist/server/version-skew.d.ts +61 -0
  786. package/dist/server/version-skew.d.ts.map +1 -0
  787. package/dist/server/waituntil-bridge.d.ts.map +1 -1
  788. package/dist/server/workers-cache-bridge.d.ts +26 -0
  789. package/dist/server/workers-cache-bridge.d.ts.map +1 -0
  790. package/dist/shared/als-slots.d.ts +42 -0
  791. package/dist/shared/als-slots.d.ts.map +1 -0
  792. package/dist/shared/base-path.d.ts +56 -0
  793. package/dist/shared/base-path.d.ts.map +1 -0
  794. package/dist/shared/href-validation.d.ts +49 -0
  795. package/dist/shared/href-validation.d.ts.map +1 -0
  796. package/dist/shared/merge-search-params.d.ts +22 -0
  797. package/dist/shared/merge-search-params.d.ts.map +1 -0
  798. package/dist/shared/param-value.d.ts +104 -0
  799. package/dist/shared/param-value.d.ts.map +1 -0
  800. package/dist/shared/payload-root.d.ts +109 -0
  801. package/dist/shared/payload-root.d.ts.map +1 -0
  802. package/dist/shared/redirect-type.d.ts +17 -0
  803. package/dist/shared/redirect-type.d.ts.map +1 -0
  804. package/dist/shared/rsc-cache-key.d.ts +163 -0
  805. package/dist/shared/rsc-cache-key.d.ts.map +1 -0
  806. package/dist/shared/rsc-error-envelope.d.ts +16 -0
  807. package/dist/shared/rsc-error-envelope.d.ts.map +1 -0
  808. package/dist/shared/rsc-manifest.d.ts +28 -0
  809. package/dist/shared/rsc-manifest.d.ts.map +1 -0
  810. package/dist/shared/rsc-media-type.d.ts +52 -0
  811. package/dist/shared/rsc-media-type.d.ts.map +1 -0
  812. package/dist/shared/rsc-payload-path.d.ts +42 -0
  813. package/dist/shared/rsc-payload-path.d.ts.map +1 -0
  814. package/dist/shared/segment-info.d.ts +66 -0
  815. package/dist/shared/segment-info.d.ts.map +1 -0
  816. package/dist/shared/slot-params.d.ts +52 -0
  817. package/dist/shared/slot-params.d.ts.map +1 -0
  818. package/dist/shared/static-platform-files.d.ts +71 -0
  819. package/dist/shared/static-platform-files.d.ts.map +1 -0
  820. package/dist/shared/status-reason-phrase.d.ts +26 -0
  821. package/dist/shared/status-reason-phrase.d.ts.map +1 -0
  822. package/dist/shims/font-google.d.ts +1 -1
  823. package/dist/shims/font-google.d.ts.map +1 -1
  824. package/dist/shims/font-google.js +42 -0
  825. package/dist/shims/font-google.js.map +1 -0
  826. package/dist/shims/font-local.d.ts +26 -0
  827. package/dist/shims/font-local.d.ts.map +1 -0
  828. package/dist/shims/font-local.js +20 -0
  829. package/dist/shims/font-local.js.map +1 -0
  830. package/dist/shims/headers.d.ts +53 -1
  831. package/dist/shims/headers.d.ts.map +1 -1
  832. package/dist/shims/image.d.ts +120 -120
  833. package/dist/shims/image.d.ts.map +1 -1
  834. package/dist/shims/navigation-client.d.ts +25 -12
  835. package/dist/shims/navigation-client.d.ts.map +1 -1
  836. package/dist/shims/navigation-rsc.d.ts +21 -0
  837. package/dist/shims/navigation-rsc.d.ts.map +1 -0
  838. package/dist/shims/navigation.d.ts +10 -5
  839. package/dist/shims/navigation.d.ts.map +1 -1
  840. package/dist/utils/state-machine.d.ts +80 -0
  841. package/dist/utils/state-machine.d.ts.map +1 -0
  842. package/docs/api/30-api-server.mdx +236 -0
  843. package/docs/api/31-api-client.mdx +167 -0
  844. package/docs/api/32-api-cache.mdx +311 -0
  845. package/docs/api/33-api-search-params.mdx +176 -0
  846. package/docs/api/34-api-config.mdx +329 -0
  847. package/docs/api/35-api-typescript.mdx +91 -0
  848. package/docs/api/36-cli.mdx +192 -0
  849. package/docs/learn/00-introduction.mdx +109 -0
  850. package/docs/learn/01-quick-start.mdx +94 -0
  851. package/docs/learn/02-pages-and-layouts.mdx +147 -0
  852. package/docs/learn/03-fetching-data.mdx +211 -0
  853. package/docs/learn/04-access-control.mdx +115 -0
  854. package/docs/learn/05-the-flush-point.mdx +175 -0
  855. package/docs/learn/06-typed-params.mdx +275 -0
  856. package/docs/learn/07-typed-routes.mdx +108 -0
  857. package/docs/learn/08-forms-and-actions.mdx +146 -0
  858. package/docs/learn/09-streaming.mdx +140 -0
  859. package/docs/learn/10-caching.mdx +252 -0
  860. package/docs/learn/11-middleware.mdx +158 -0
  861. package/docs/learn/12-error-handling.mdx +188 -0
  862. package/docs/learn/13-deploying.mdx +287 -0
  863. package/llms.txt +55 -0
  864. package/package.json +117 -29
  865. package/src/adapters/build-output-helper.ts +351 -0
  866. package/src/adapters/cloudflare-dev.ts +183 -0
  867. package/src/adapters/cloudflare-kv-cache.ts +207 -0
  868. package/src/adapters/cloudflare.ts +747 -130
  869. package/src/adapters/compress-module.ts +101 -88
  870. package/src/adapters/fs-identity.ts +156 -0
  871. package/src/adapters/nitro-presets.ts +139 -0
  872. package/src/adapters/nitro-preview.ts +340 -0
  873. package/src/adapters/nitro.ts +279 -418
  874. package/src/adapters/raw-imports.d.ts +5 -0
  875. package/src/adapters/shared.ts +274 -0
  876. package/src/adapters/types.ts +28 -7
  877. package/src/adapters/wrangler.d.ts +7 -0
  878. package/src/analyze/chains.ts +411 -0
  879. package/src/analyze/classify.ts +258 -0
  880. package/src/analyze/crawl-entry.ts +68 -0
  881. package/src/analyze/crawl.ts +500 -0
  882. package/src/analyze/graph-cache.ts +332 -0
  883. package/src/analyze/graph-command.ts +762 -0
  884. package/src/analyze/live-graph.ts +232 -0
  885. package/src/analyze/poison-rules.ts +165 -0
  886. package/src/analyze/poison-scan.ts +162 -0
  887. package/src/analyze/scan.ts +149 -0
  888. package/src/cache/cache-api.ts +107 -0
  889. package/src/cache/fast-hash.ts +39 -0
  890. package/src/cache/handler-store.ts +76 -0
  891. package/src/cache/index.ts +115 -22
  892. package/src/cache/invalidation-epoch.ts +93 -0
  893. package/src/cache/json-lossy-check.ts +75 -0
  894. package/src/cache/redis-handler.ts +198 -20
  895. package/src/cache/singleflight.ts +69 -6
  896. package/src/cache/sizeof.ts +33 -0
  897. package/src/cache/stable-stringify.ts +65 -2
  898. package/src/cache/store.ts +71 -0
  899. package/src/cache/stores/cloudflare-kv.ts +52 -0
  900. package/src/cache/stores/memory.ts +125 -0
  901. package/src/cache/stores/redis.ts +97 -0
  902. package/src/cache/stores/vercel.ts +59 -0
  903. package/src/cache/tag-aware-handler.ts +237 -0
  904. package/src/cache/timber-cache.ts +180 -48
  905. package/src/cdn/cloudflare-purge.ts +50 -0
  906. package/src/cdn/fastly-purge.ts +63 -0
  907. package/src/cdn/headers.ts +153 -0
  908. package/src/cdn/index.ts +23 -0
  909. package/src/cdn/purge-store.ts +34 -0
  910. package/src/cdn/workers-cache-purge.ts +34 -0
  911. package/src/cli-check.ts +507 -0
  912. package/src/cli-schema-sync.ts +401 -0
  913. package/src/cli.ts +262 -55
  914. package/src/client/browser-dev.ts +157 -2
  915. package/src/client/browser-entry/action-dispatch.ts +197 -0
  916. package/src/client/browser-entry/action-queue.ts +90 -0
  917. package/src/client/browser-entry/hmr.ts +70 -0
  918. package/src/client/browser-entry/hydrate.ts +148 -0
  919. package/src/client/browser-entry/index.ts +131 -0
  920. package/src/client/browser-entry/post-hydration.ts +123 -0
  921. package/src/client/browser-entry/router-init.ts +418 -0
  922. package/src/client/browser-entry/rsc-stream.ts +166 -0
  923. package/src/client/browser-entry/scroll.ts +50 -0
  924. package/src/client/deny-last-resort.tsx +54 -0
  925. package/src/client/error-boundary.tsx +316 -40
  926. package/src/client/error-reconstituter.tsx +79 -0
  927. package/src/client/form.tsx +36 -32
  928. package/src/client/global-context.ts +31 -0
  929. package/src/client/history.ts +81 -10
  930. package/src/client/index.ts +89 -53
  931. package/src/client/internal.ts +59 -0
  932. package/src/client/link.tsx +452 -159
  933. package/src/client/location-search.ts +15 -0
  934. package/src/client/navigation-api.ts +347 -0
  935. package/src/client/navigation-commit.ts +295 -0
  936. package/src/client/navigation-context.ts +67 -98
  937. package/src/client/navigation-root.tsx +224 -0
  938. package/src/client/navigation-transition.ts +327 -0
  939. package/src/client/nuqs-adapter.tsx +21 -9
  940. package/src/client/params-context.ts +187 -0
  941. package/src/client/react-root.ts +72 -0
  942. package/src/client/router-effects.ts +228 -0
  943. package/src/client/router-lifecycle.ts +354 -0
  944. package/src/client/router-pipeline.ts +490 -0
  945. package/src/client/router-ref.ts +3 -3
  946. package/src/client/router-skew.ts +30 -0
  947. package/src/client/router-types.ts +294 -0
  948. package/src/client/router.ts +436 -424
  949. package/src/client/rsc-fetch.ts +512 -73
  950. package/src/client/segment-cache.ts +327 -40
  951. package/src/client/segment-context.ts +13 -5
  952. package/src/client/segment-outlet.tsx +96 -0
  953. package/src/client/segment-update-context.ts +23 -0
  954. package/src/client/shallow-url.ts +22 -0
  955. package/src/client/slot-content-cache-context.ts +43 -0
  956. package/src/client/slot-context.ts +50 -0
  957. package/src/client/slot-outlet.tsx +22 -0
  958. package/src/client/slot-provider.tsx +32 -0
  959. package/src/client/ssr-data.ts +30 -9
  960. package/src/client/stale-client.ts +191 -0
  961. package/src/client/state.ts +29 -15
  962. package/src/client/status-page-marker.tsx +32 -0
  963. package/src/client/top-loader.tsx +36 -29
  964. package/src/client/unload-guard.ts +35 -3
  965. package/src/client/use-cookie.ts +70 -18
  966. package/src/client/use-link-status.ts +7 -7
  967. package/src/client/use-pathname.ts +22 -31
  968. package/src/client/use-pending-navigation.ts +40 -0
  969. package/src/client/use-query-states.ts +206 -36
  970. package/src/client/use-router.ts +6 -3
  971. package/src/client/use-search-params.ts +38 -49
  972. package/src/client/use-segment-params.ts +69 -0
  973. package/src/client/use-selected-layout-segment.ts +2 -2
  974. package/src/codec.ts +149 -0
  975. package/src/config-types.ts +322 -0
  976. package/src/config-validation.ts +347 -0
  977. package/src/cookies/define-cookie.ts +222 -53
  978. package/src/cookies/index.ts +13 -2
  979. package/src/cookies/json-cookie.ts +105 -0
  980. package/src/cookies/validation.ts +192 -0
  981. package/src/dev-tools/404-page.ts +286 -0
  982. package/src/dev-tools/browser-logs.ts +55 -0
  983. package/src/dev-tools/dev-page-shell.ts +260 -0
  984. package/src/dev-tools/error-page.ts +331 -0
  985. package/src/dev-tools/holding-server.ts +185 -0
  986. package/src/dev-tools/hydration-overlay.ts +158 -0
  987. package/src/dev-tools/index.ts +83 -0
  988. package/src/dev-tools/instrumentation.ts +213 -0
  989. package/src/{server/dev-logger.ts → dev-tools/logger.ts} +33 -51
  990. package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +122 -26
  991. package/src/dev-tools/overlay.ts +469 -0
  992. package/src/dev-tools/stack-classifier.ts +75 -0
  993. package/src/dev-tools/terminal.ts +182 -0
  994. package/src/fonts/ast-walk.ts +235 -0
  995. package/src/fonts/ast.ts +479 -128
  996. package/src/fonts/bundle.ts +138 -0
  997. package/src/fonts/css.ts +3 -2
  998. package/src/fonts/dev-middleware.ts +85 -0
  999. package/src/fonts/fallbacks.ts +0 -23
  1000. package/src/fonts/google.ts +101 -19
  1001. package/src/fonts/local.ts +13 -8
  1002. package/src/fonts/paths.ts +58 -0
  1003. package/src/fonts/pipeline.ts +348 -0
  1004. package/src/fonts/transform.ts +311 -0
  1005. package/src/fonts/types.ts +52 -1
  1006. package/src/fonts/virtual-modules.ts +179 -0
  1007. package/src/index.ts +486 -344
  1008. package/src/params/codec-registry.ts +34 -0
  1009. package/src/params/define-schema.ts +115 -0
  1010. package/src/params/index.ts +17 -0
  1011. package/src/params/resolve-schema.ts +84 -0
  1012. package/src/plugin-context.ts +503 -0
  1013. package/src/plugins/adapter-build.ts +229 -7
  1014. package/src/plugins/build-manifest.ts +201 -26
  1015. package/src/plugins/build-report.ts +275 -43
  1016. package/src/plugins/cache.ts +243 -0
  1017. package/src/plugins/callsite-ast.ts +472 -0
  1018. package/src/plugins/callsite-jsx.ts +243 -0
  1019. package/src/plugins/chunks.ts +74 -5
  1020. package/src/plugins/client-chunks.ts +185 -0
  1021. package/src/plugins/cloudflare-wasm.ts +141 -0
  1022. package/src/plugins/content.ts +5 -1
  1023. package/src/plugins/dev-discovery.ts +218 -0
  1024. package/src/plugins/dev-server.ts +369 -96
  1025. package/src/plugins/entries.ts +148 -18
  1026. package/src/plugins/fonts.ts +251 -524
  1027. package/src/plugins/graph-endpoint.ts +532 -0
  1028. package/src/plugins/mdx.ts +116 -40
  1029. package/src/plugins/prebuilt-capture.ts +217 -0
  1030. package/src/plugins/prebuilt-options-analysis.ts +175 -0
  1031. package/src/plugins/prebuilt.ts +655 -0
  1032. package/src/plugins/prerender-sugar.ts +320 -0
  1033. package/src/plugins/request-dep/analysis.ts +447 -0
  1034. package/src/plugins/request-dep/index.ts +376 -0
  1035. package/src/plugins/request-dep/origin.ts +310 -0
  1036. package/src/plugins/routing.ts +273 -277
  1037. package/src/plugins/server-bundle.ts +103 -14
  1038. package/src/plugins/shims.ts +259 -97
  1039. package/src/plugins/static-build.ts +708 -66
  1040. package/src/react-canary.d.ts +2 -0
  1041. package/src/routing/codegen-shared.ts +39 -0
  1042. package/src/routing/codegen-types.ts +62 -0
  1043. package/src/routing/codegen-write.ts +141 -0
  1044. package/src/routing/codegen.ts +349 -232
  1045. package/src/routing/collision-probe.ts +438 -0
  1046. package/src/routing/collision-spaces.ts +281 -0
  1047. package/src/routing/convention-lint.ts +623 -0
  1048. package/src/routing/export-detect.ts +448 -0
  1049. package/src/routing/file-cache.ts +23 -0
  1050. package/src/routing/index.ts +16 -7
  1051. package/src/routing/interception-overlap.ts +141 -0
  1052. package/src/routing/interception.ts +1044 -67
  1053. package/src/routing/link-codegen.ts +280 -0
  1054. package/src/routing/manifest-codegen.ts +226 -0
  1055. package/src/routing/scanner.ts +393 -219
  1056. package/src/routing/schema-validation.ts +155 -0
  1057. package/src/routing/segment-classify.ts +280 -0
  1058. package/src/routing/segment-codegen.ts +98 -0
  1059. package/src/routing/segment-keys.ts +186 -0
  1060. package/src/routing/slot-placement.ts +97 -0
  1061. package/src/routing/types.ts +75 -26
  1062. package/src/routing/walkers.ts +98 -0
  1063. package/src/rsc-runtime/rsc.ts +9 -0
  1064. package/src/rsc-runtime/ssr.ts +51 -0
  1065. package/src/rsc-runtime/transforms.ts +13 -0
  1066. package/src/rsc-runtime/vendor-types.d.ts +19 -0
  1067. package/src/schema-bridge.ts +380 -0
  1068. package/src/search-params/define.ts +677 -0
  1069. package/src/search-params/index.ts +14 -20
  1070. package/src/search-params/parse-total.ts +91 -0
  1071. package/src/search-params/serialize-equal.ts +14 -0
  1072. package/src/search-params/wrappers.ts +150 -0
  1073. package/src/server/access-gate.tsx +196 -57
  1074. package/src/server/action-client.ts +136 -35
  1075. package/src/server/action-encryption.ts +144 -0
  1076. package/src/server/action-handler.ts +256 -56
  1077. package/src/server/actions.ts +112 -68
  1078. package/src/server/als-registry.ts +160 -21
  1079. package/src/server/asset-headers.ts +15 -37
  1080. package/src/server/body-limits.ts +10 -2
  1081. package/src/server/build-manifest.ts +33 -57
  1082. package/src/server/canonicalize.ts +6 -3
  1083. package/src/server/chain-url-parts.ts +163 -0
  1084. package/src/server/children-interception.ts +115 -0
  1085. package/src/server/coalesce-tick.ts +75 -0
  1086. package/src/server/compress.ts +43 -8
  1087. package/src/server/cookie-context.ts +484 -0
  1088. package/src/server/cookie-parsing.ts +163 -0
  1089. package/src/server/csp-nonce.ts +70 -0
  1090. package/src/server/csrf.ts +39 -6
  1091. package/src/server/debug.ts +137 -0
  1092. package/src/server/default-logger.ts +99 -0
  1093. package/src/server/default-status-page.ts +88 -0
  1094. package/src/server/deny-boundary.ts +533 -0
  1095. package/src/server/deny-renderer.ts +214 -112
  1096. package/src/server/dev-source-map.ts +31 -0
  1097. package/src/server/early-hints-sender.ts +4 -3
  1098. package/src/server/early-hints.ts +39 -29
  1099. package/src/server/error-boundary-wrapper.ts +181 -44
  1100. package/src/server/error-response-headers.ts +18 -0
  1101. package/src/server/fallback-error.ts +79 -102
  1102. package/src/server/flight-injection-state.ts +113 -0
  1103. package/src/server/flight-scripts.ts +67 -0
  1104. package/src/server/form-data.ts +124 -12
  1105. package/src/server/form-flash.ts +2 -2
  1106. package/src/server/head-response.ts +54 -0
  1107. package/src/server/html-injector-core.ts +512 -0
  1108. package/src/server/html-injectors.ts +272 -235
  1109. package/src/server/index.ts +40 -192
  1110. package/src/server/instrumentation.ts +1 -1
  1111. package/src/server/internal.ts +173 -0
  1112. package/src/server/logger.ts +73 -36
  1113. package/src/server/metadata-collector.ts +174 -0
  1114. package/src/server/metadata-platform.ts +2 -2
  1115. package/src/server/metadata-render.ts +30 -8
  1116. package/src/server/metadata-routes.ts +205 -24
  1117. package/src/server/metadata-social.ts +2 -2
  1118. package/src/server/metadata.ts +23 -2
  1119. package/src/server/middleware-runner.ts +32 -5
  1120. package/src/server/node-stream-transforms.ts +323 -0
  1121. package/src/server/nuqs-ssr-provider.tsx +8 -7
  1122. package/src/server/param-coercion.ts +198 -0
  1123. package/src/server/pipeline-helpers.ts +159 -0
  1124. package/src/server/pipeline-interception.ts +109 -33
  1125. package/src/server/pipeline-metadata.ts +15 -1
  1126. package/src/server/pipeline-outcome.ts +218 -0
  1127. package/src/server/pipeline-phases.ts +606 -0
  1128. package/src/server/pipeline.ts +343 -389
  1129. package/src/server/port-resolution.ts +53 -0
  1130. package/src/server/prebuilt/cache-key.ts +299 -0
  1131. package/src/server/prebuilt/capture-state.ts +89 -0
  1132. package/src/server/prebuilt/key-discipline.ts +122 -0
  1133. package/src/server/prebuilt/manifest-tag-index.ts +46 -0
  1134. package/src/server/prebuilt/overlay.ts +256 -0
  1135. package/src/server/prebuilt/payload-source.ts +202 -0
  1136. package/src/server/prebuilt/slots.ts +190 -0
  1137. package/src/server/prebuilt/synthetic-store.ts +122 -0
  1138. package/src/server/prebuilt-builder.ts +804 -0
  1139. package/src/server/prebuilt-runtime.ts +817 -0
  1140. package/src/server/primitives.ts +246 -97
  1141. package/src/server/publish-params.ts +42 -0
  1142. package/src/server/render-timeout.ts +108 -0
  1143. package/src/server/render-utils.ts +35 -0
  1144. package/src/server/request-context.ts +244 -333
  1145. package/src/server/request-dep.ts +37 -0
  1146. package/src/server/response-cache-policy.ts +45 -0
  1147. package/src/server/route-element-builder.ts +508 -360
  1148. package/src/server/route-element-helpers.ts +37 -0
  1149. package/src/server/route-handler.ts +40 -13
  1150. package/src/server/route-matcher.ts +165 -272
  1151. package/src/server/route-module-loader.ts +161 -0
  1152. package/src/server/rsc-cache-key-guard.ts +122 -0
  1153. package/src/server/rsc-entry/action-middleware-runner.ts +174 -0
  1154. package/src/server/rsc-entry/api-handler.ts +78 -34
  1155. package/src/server/rsc-entry/deny-fallback.ts +93 -0
  1156. package/src/server/rsc-entry/error-renderer.ts +373 -95
  1157. package/src/server/rsc-entry/helpers.ts +226 -95
  1158. package/src/server/rsc-entry/index.ts +405 -323
  1159. package/src/server/rsc-entry/render-route.ts +304 -0
  1160. package/src/server/rsc-entry/revalidate-renderer.ts +350 -0
  1161. package/src/server/rsc-entry/rsc-payload.ts +239 -50
  1162. package/src/server/rsc-entry/rsc-stream.ts +160 -30
  1163. package/src/server/rsc-entry/ssr-bridge.ts +18 -5
  1164. package/src/server/rsc-entry/ssr-renderer.ts +315 -57
  1165. package/src/server/rsc-entry/wrap-action-dispatch.ts +186 -0
  1166. package/src/server/rsc-error-envelope.ts +18 -0
  1167. package/src/server/rsc-prop-warnings.ts +3 -1
  1168. package/src/server/safe-load.ts +60 -0
  1169. package/src/server/sensitive-fields.ts +230 -0
  1170. package/src/server/server-only-guard-noop.js +3 -0
  1171. package/src/server/server-timing.ts +1 -1
  1172. package/src/server/sitemap-generator.ts +337 -0
  1173. package/src/server/sitemap-handler.ts +157 -0
  1174. package/src/server/skippable-prefix.ts +172 -0
  1175. package/src/server/slot-interception.ts +168 -0
  1176. package/src/server/slot-resolver.ts +707 -300
  1177. package/src/server/slot-subtree-contain.ts +255 -0
  1178. package/src/server/ssr-bridge-types.ts +165 -0
  1179. package/src/server/ssr-entry.ts +230 -85
  1180. package/src/server/ssr-render.ts +357 -85
  1181. package/src/server/ssr-wrappers.tsx +162 -0
  1182. package/src/server/state-tree-diff.ts +85 -30
  1183. package/src/server/static-generator.ts +715 -0
  1184. package/src/server/static-not-found.ts +134 -0
  1185. package/src/server/status-code-resolver.ts +107 -148
  1186. package/src/server/stream-utils.ts +292 -0
  1187. package/src/server/tracing.ts +151 -16
  1188. package/src/server/tree-match.ts +262 -0
  1189. package/src/server/types.ts +95 -10
  1190. package/src/server/utils/element-type.ts +88 -0
  1191. package/src/server/utils/escape-html.ts +20 -0
  1192. package/src/server/utils/mdx-file.ts +22 -0
  1193. package/src/server/version-skew.ts +104 -0
  1194. package/src/server/waituntil-bridge.ts +5 -2
  1195. package/src/server/workers-cache-bridge.ts +33 -0
  1196. package/src/shared/als-slots.ts +74 -0
  1197. package/src/shared/base-path.ts +80 -0
  1198. package/src/shared/href-validation.ts +159 -0
  1199. package/src/shared/merge-search-params.ts +55 -0
  1200. package/src/shared/param-value.ts +281 -0
  1201. package/src/shared/payload-root.ts +152 -0
  1202. package/src/shared/redirect-type.ts +17 -0
  1203. package/src/shared/rsc-cache-key.ts +269 -0
  1204. package/src/shared/rsc-error-envelope.ts +16 -0
  1205. package/src/shared/rsc-manifest.ts +29 -0
  1206. package/src/shared/rsc-media-type.ts +59 -0
  1207. package/src/shared/rsc-payload-path.ts +45 -0
  1208. package/src/shared/segment-info.ts +67 -0
  1209. package/src/shared/slot-params.ts +109 -0
  1210. package/src/shared/static-platform-files.ts +75 -0
  1211. package/src/shared/status-reason-phrase.ts +61 -0
  1212. package/src/shims/font-google.ts +1 -1
  1213. package/src/shims/font-local.ts +34 -0
  1214. package/src/shims/headers.ts +122 -1
  1215. package/src/shims/navigation-client.ts +36 -32
  1216. package/src/shims/navigation-rsc.ts +47 -0
  1217. package/src/shims/navigation.ts +10 -7
  1218. package/src/utils/state-machine.ts +111 -0
  1219. package/dist/_chunks/als-registry-k-AtAQ9R.js +0 -41
  1220. package/dist/_chunks/als-registry-k-AtAQ9R.js.map +0 -1
  1221. package/dist/_chunks/format-DNt20Kt8.js +0 -163
  1222. package/dist/_chunks/format-DNt20Kt8.js.map +0 -1
  1223. package/dist/_chunks/interception-DGDIjDbR.js +0 -676
  1224. package/dist/_chunks/interception-DGDIjDbR.js.map +0 -1
  1225. package/dist/_chunks/metadata-routes-CQCnF4VK.js +0 -153
  1226. package/dist/_chunks/metadata-routes-CQCnF4VK.js.map +0 -1
  1227. package/dist/_chunks/request-context-CRj2Zh1E.js +0 -329
  1228. package/dist/_chunks/request-context-CRj2Zh1E.js.map +0 -1
  1229. package/dist/_chunks/ssr-data-DLnbYpj1.js.map +0 -1
  1230. package/dist/_chunks/tracing-DF0G3FB7.js +0 -173
  1231. package/dist/_chunks/tracing-DF0G3FB7.js.map +0 -1
  1232. package/dist/_chunks/use-cookie-dDbpCTx-.js +0 -91
  1233. package/dist/_chunks/use-cookie-dDbpCTx-.js.map +0 -1
  1234. package/dist/_chunks/use-query-states-DAhgj8Gx.js +0 -109
  1235. package/dist/_chunks/use-query-states-DAhgj8Gx.js.map +0 -1
  1236. package/dist/adapters/cloudflare.js.map +0 -1
  1237. package/dist/cache/index.js.map +0 -1
  1238. package/dist/cache/register-cached-function.d.ts +0 -17
  1239. package/dist/cache/register-cached-function.d.ts.map +0 -1
  1240. package/dist/client/browser-entry.d.ts +0 -21
  1241. package/dist/client/browser-entry.d.ts.map +0 -1
  1242. package/dist/client/error-boundary.js.map +0 -1
  1243. package/dist/client/head.d.ts +0 -16
  1244. package/dist/client/head.d.ts.map +0 -1
  1245. package/dist/client/link-status-provider.d.ts +0 -11
  1246. package/dist/client/link-status-provider.d.ts.map +0 -1
  1247. package/dist/client/segment-merger.d.ts +0 -119
  1248. package/dist/client/segment-merger.d.ts.map +0 -1
  1249. package/dist/client/stale-reload.d.ts +0 -44
  1250. package/dist/client/stale-reload.d.ts.map +0 -1
  1251. package/dist/client/transition-root.d.ts +0 -74
  1252. package/dist/client/transition-root.d.ts.map +0 -1
  1253. package/dist/client/use-navigation-pending.d.ts +0 -26
  1254. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  1255. package/dist/client/use-params.d.ts +0 -92
  1256. package/dist/client/use-params.d.ts.map +0 -1
  1257. package/dist/content/index.d.ts +0 -11
  1258. package/dist/content/index.d.ts.map +0 -1
  1259. package/dist/content/index.js +0 -2
  1260. package/dist/plugins/cache-transform.d.ts +0 -36
  1261. package/dist/plugins/cache-transform.d.ts.map +0 -1
  1262. package/dist/plugins/dev-error-overlay.d.ts +0 -60
  1263. package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
  1264. package/dist/plugins/dev-logs.d.ts.map +0 -1
  1265. package/dist/plugins/dynamic-transform.d.ts +0 -72
  1266. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  1267. package/dist/plugins/server-action-exports.d.ts +0 -26
  1268. package/dist/plugins/server-action-exports.d.ts.map +0 -1
  1269. package/dist/routing/status-file-lint.d.ts +0 -33
  1270. package/dist/routing/status-file-lint.d.ts.map +0 -1
  1271. package/dist/search-params/analyze.d.ts +0 -54
  1272. package/dist/search-params/analyze.d.ts.map +0 -1
  1273. package/dist/search-params/builtin-codecs.d.ts +0 -105
  1274. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  1275. package/dist/search-params/codecs.d.ts +0 -53
  1276. package/dist/search-params/codecs.d.ts.map +0 -1
  1277. package/dist/search-params/create.d.ts +0 -106
  1278. package/dist/search-params/create.d.ts.map +0 -1
  1279. package/dist/search-params/registry.d.ts +0 -20
  1280. package/dist/search-params/registry.d.ts.map +0 -1
  1281. package/dist/server/client-module-map.d.ts +0 -47
  1282. package/dist/server/client-module-map.d.ts.map +0 -1
  1283. package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
  1284. package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
  1285. package/dist/server/dev-logger.d.ts.map +0 -1
  1286. package/dist/server/dev-span-processor.d.ts +0 -29
  1287. package/dist/server/dev-span-processor.d.ts.map +0 -1
  1288. package/dist/server/dev-warnings.d.ts +0 -129
  1289. package/dist/server/dev-warnings.d.ts.map +0 -1
  1290. package/dist/server/flush.d.ts +0 -74
  1291. package/dist/server/flush.d.ts.map +0 -1
  1292. package/dist/server/manifest-status-resolver.d.ts +0 -58
  1293. package/dist/server/manifest-status-resolver.d.ts.map +0 -1
  1294. package/dist/server/prerender.d.ts +0 -77
  1295. package/dist/server/prerender.d.ts.map +0 -1
  1296. package/dist/server/tree-builder.d.ts +0 -126
  1297. package/dist/server/tree-builder.d.ts.map +0 -1
  1298. package/dist/utils/directive-parser.d.ts +0 -70
  1299. package/dist/utils/directive-parser.d.ts.map +0 -1
  1300. package/src/cache/register-cached-function.ts +0 -99
  1301. package/src/client/browser-entry.ts +0 -674
  1302. package/src/client/head.ts +0 -61
  1303. package/src/client/link-status-provider.tsx +0 -30
  1304. package/src/client/segment-merger.ts +0 -345
  1305. package/src/client/stale-reload.ts +0 -89
  1306. package/src/client/transition-root.tsx +0 -160
  1307. package/src/client/use-navigation-pending.ts +0 -38
  1308. package/src/client/use-params.ts +0 -141
  1309. package/src/content/index.ts +0 -13
  1310. package/src/plugins/cache-transform.ts +0 -199
  1311. package/src/plugins/dev-error-overlay.ts +0 -230
  1312. package/src/plugins/dynamic-transform.ts +0 -161
  1313. package/src/plugins/server-action-exports.ts +0 -220
  1314. package/src/routing/status-file-lint.ts +0 -112
  1315. package/src/search-params/analyze.ts +0 -192
  1316. package/src/search-params/builtin-codecs.ts +0 -228
  1317. package/src/search-params/codecs.ts +0 -153
  1318. package/src/search-params/create.ts +0 -321
  1319. package/src/search-params/registry.ts +0 -31
  1320. package/src/server/client-module-map.ts +0 -58
  1321. package/src/server/dev-fetch-instrumentation.ts +0 -96
  1322. package/src/server/dev-span-processor.ts +0 -78
  1323. package/src/server/dev-warnings.ts +0 -282
  1324. package/src/server/flush.ts +0 -182
  1325. package/src/server/manifest-status-resolver.ts +0 -215
  1326. package/src/server/prerender.ts +0 -139
  1327. package/src/server/tree-builder.ts +0 -382
  1328. package/src/shims/server-only-noop.js +0 -6
  1329. package/src/utils/directive-parser.ts +0 -529
@@ -0,0 +1,70 @@
1
+ /**
2
+ * CSP nonce — per-request, generated on demand.
3
+ *
4
+ * timber emits several inline `<script>` tags per HTML response — React's
5
+ * bootstrap script and Fizz runtime, the Flight init/chunk scripts, the
6
+ * segment-tree script, and the post-flush noindex script. Under a strict
7
+ * `Content-Security-Policy` (`script-src 'nonce-…' 'strict-dynamic'`) every
8
+ * one of them needs the request's nonce or the browser refuses to run it.
9
+ *
10
+ * The app opts in by reading `ctx.nonce` in `middleware.ts` and putting it
11
+ * in the CSP header it sets through `ctx.headers`. The first read generates
12
+ * the value and stores it on the request context; the render pipeline reads
13
+ * it back with `getCspNonce()` and stamps it on every inline script. A
14
+ * request whose middleware never reads `ctx.nonce` has no nonce, and its
15
+ * markup is byte-identical to a render without this feature. timber does
16
+ * not parse the CSP header — the app owns the policy, timber owns the
17
+ * markup, and `ctx.nonce` is the one value both are built from.
18
+ *
19
+ * `proxy.ts` cannot participate: it only sees the finished response from
20
+ * `next()`, after the markup exists.
21
+ *
22
+ * See design/13-security.md §"Content Security Policy" (TIM-1414).
23
+ */
24
+
25
+ import { requestContextAls } from './als-registry.ts';
26
+
27
+ /**
28
+ * Generate a CSP nonce: 128 random bits, base64. Matches CSP's
29
+ * `base64-value` grammar, so it is valid in the header verbatim and safe
30
+ * inside a double-quoted HTML attribute without escaping.
31
+ */
32
+ function generateNonce(): string {
33
+ const bytes = crypto.getRandomValues(new Uint8Array(16));
34
+ let binary = '';
35
+ for (const b of bytes) binary += String.fromCharCode(b);
36
+ return btoa(binary);
37
+ }
38
+
39
+ /**
40
+ * The request's CSP nonce, creating it on first call. Backs the
41
+ * `ctx.nonce` getter on `MiddlewareContext`. Outside a request context
42
+ * (tests, build-time rendering) a fresh value is returned but not
43
+ * retained, since there is no request for it to belong to.
44
+ */
45
+ export function requestCspNonce(): string {
46
+ const store = requestContextAls.getStore();
47
+ if (!store) return generateNonce();
48
+ store.cspNonce ??= generateNonce();
49
+ return store.cspNonce;
50
+ }
51
+
52
+ /**
53
+ * The request's CSP nonce if middleware asked for one, else `undefined` —
54
+ * in which case the pipeline emits bare `<script>` tags.
55
+ */
56
+ export function getCspNonce(): string | undefined {
57
+ return requestContextAls.getStore()?.cspNonce;
58
+ }
59
+
60
+ /**
61
+ * The ` nonce="…"` attribute fragment for a timber-generated `<script>` tag,
62
+ * or `''` when the request has no nonce. Callers interpolate it directly
63
+ * after the tag name: `` `<script${nonceAttr(nonce)}>` ``.
64
+ *
65
+ * The value comes from `generateNonce` and is base64, so no attribute
66
+ * escaping is required.
67
+ */
68
+ export function nonceAttr(nonce: string | undefined): string {
69
+ return nonce ? ` nonce="${nonce}"` : '';
70
+ }
@@ -28,12 +28,36 @@ const SAFE_METHODS = new Set(['GET', 'HEAD', 'OPTIONS']);
28
28
  // ─── Implementation ───────────────────────────────────────────────────────
29
29
 
30
30
  /**
31
- * Validate the Origin header against the request's Host.
31
+ * Derive the request's scheme from trusted sources.
32
+ *
33
+ * Priority:
34
+ * 1. X-Forwarded-Proto (set by reverse proxies / load balancers)
35
+ * 2. Request URL protocol
36
+ *
37
+ * Falls back to 'https' (fail closed) if neither is available.
38
+ */
39
+ function deriveRequestScheme(req: Request): string {
40
+ const forwarded = req.headers.get('X-Forwarded-Proto');
41
+ if (forwarded) {
42
+ const proto = forwarded.split(',')[0].trim().toLowerCase();
43
+ if (proto === 'http' || proto === 'https') return proto;
44
+ }
45
+
46
+ try {
47
+ return new URL(req.url).protocol.replace(':', '');
48
+ } catch {
49
+ return 'https';
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Validate the Origin header against the request's full origin
55
+ * (scheme + host + port).
32
56
  *
33
57
  * For mutation methods (POST, PUT, PATCH, DELETE):
34
58
  * - If `csrf: false`, skip validation.
35
59
  * - If `allowedOrigins` is set, Origin must match one exactly (no wildcards).
36
- * - Otherwise, Origin's host must match the request's Host header.
60
+ * - Otherwise, Origin must match the derived request origin.
37
61
  *
38
62
  * Safe methods (GET, HEAD, OPTIONS) always pass.
39
63
  */
@@ -67,13 +91,22 @@ export function validateCsrf(req: Request, config: CsrfConfig): CsrfResult {
67
91
  return { ok: false, status: 403 };
68
92
  }
69
93
 
70
- // Extract hostname from Origin URL and compare to Host header
71
- let originHost: string;
94
+ // Compare full origins (scheme + host + port) using URL.origin for
95
+ // canonical port normalization (e.g. https://x:443 → https://x).
96
+ let originOrigin: string;
97
+ try {
98
+ originOrigin = new URL(origin).origin;
99
+ } catch {
100
+ return { ok: false, status: 403 };
101
+ }
102
+
103
+ const scheme = deriveRequestScheme(req);
104
+ let expectedOrigin: string;
72
105
  try {
73
- originHost = new URL(origin).host;
106
+ expectedOrigin = new URL(`${scheme}://${host}`).origin;
74
107
  } catch {
75
108
  return { ok: false, status: 403 };
76
109
  }
77
110
 
78
- return originHost === host ? { ok: true } : { ok: false, status: 403 };
111
+ return originOrigin === expectedOrigin ? { ok: true } : { ok: false, status: 403 };
79
112
  }
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Runtime debug flag for timber.js.
3
+ *
4
+ * Two distinct functions for two distinct security levels:
5
+ *
6
+ * ## `isDebug()` — server-side logging only
7
+ *
8
+ * Returns true when timber's debug/warning messages should be written to
9
+ * stderr / the server console. This NEVER affects what is sent to the
10
+ * client (no error details, no timing headers, no stack traces).
11
+ *
12
+ * Active when any of:
13
+ * - `NODE_ENV !== 'production'` (standard dev mode)
14
+ * - `TIMBER_DEBUG` env var is set to a truthy value at runtime
15
+ * - `timber.config.ts` has `debug: true`
16
+ *
17
+ * ## `isDevMode()` — client-visible dev behavior
18
+ *
19
+ * Returns true ONLY when `NODE_ENV !== 'production'`. This gates anything
20
+ * that changes what clients can observe:
21
+ * - Dev error pages with stack traces (fallback-error.ts)
22
+ * - Detailed Server-Timing headers (pipeline.ts)
23
+ * - Error messages in action INTERNAL_ERROR payloads (action-client.ts)
24
+ * - Pipeline error handler wiring (Vite overlay)
25
+ *
26
+ * `isDevMode()` is statically replaced in production builds → the guarded
27
+ * code is tree-shaken to zero bytes. TIMBER_DEBUG cannot enable it.
28
+ *
29
+ * Usage:
30
+ * In Cloudflare Workers wrangler.toml:
31
+ * [vars]
32
+ * TIMBER_DEBUG = "1"
33
+ *
34
+ * In Node.js:
35
+ * TIMBER_DEBUG=1 node server.js
36
+ *
37
+ * In timber.config.ts:
38
+ * export default { debug: true }
39
+ *
40
+ * See design/13-security.md for the security taxonomy.
41
+ * See design/18-build-system.md for build pipeline details.
42
+ */
43
+
44
+ // ─── Dev Mode (client-visible) ──────────────────────────────────────────────
45
+
46
+ /**
47
+ * Check if the application is running in development mode.
48
+ *
49
+ * This is the ONLY function that should gate client-visible dev behavior:
50
+ * - Dev error pages with stack traces
51
+ * - Server-Timing mode default (`'detailed'` in dev, `'total'` in prod)
52
+ * - Error messages in action `INTERNAL_ERROR` payloads
53
+ * - Pipeline error handler wiring (Vite overlay)
54
+ *
55
+ * Returns `process.env.NODE_ENV !== 'production'`, which is statically
56
+ * replaced by the bundler in production builds. Code guarded by this
57
+ * function is tree-shaken to zero bytes in production.
58
+ *
59
+ * TIMBER_DEBUG does NOT enable this — that would leak server internals
60
+ * to clients. Use `isDebug()` for server-side-only logging.
61
+ */
62
+ export function isDevMode(): boolean {
63
+ return process.env.NODE_ENV !== 'production';
64
+ }
65
+
66
+ // ─── Debug Flag (server-side logging only) ──────────────────────────────────
67
+
68
+ /**
69
+ * Config-level debug override. Set via `setDebugFromConfig()` during
70
+ * initialization when timber.config.ts has `debug: true`.
71
+ */
72
+ let _configDebug = false;
73
+
74
+ /**
75
+ * Set the debug flag from timber.config.ts.
76
+ * Called during handler initialization.
77
+ */
78
+ export function setDebugFromConfig(debug: boolean): void {
79
+ _configDebug = debug;
80
+ }
81
+
82
+ /**
83
+ * Check if timber debug logging is active (server-side only).
84
+ *
85
+ * Returns true if ANY of these conditions hold:
86
+ * - NODE_ENV is not 'production' (standard dev mode)
87
+ * - TIMBER_DEBUG environment variable is set to a truthy value at runtime
88
+ * - timber.config.ts has `debug: true`
89
+ *
90
+ * This function controls ONLY server-side logging — messages written to
91
+ * stderr or the server console. It NEVER affects client-visible behavior
92
+ * (error pages, response headers, action payloads). For client-visible
93
+ * behavior, use `isDevMode()`.
94
+ *
95
+ * The TIMBER_DEBUG check is deliberately written as a dynamic property
96
+ * access so bundlers cannot statically replace it.
97
+ */
98
+ export function isDebug(): boolean {
99
+ // Fast path: dev mode (statically replaced to `true` in dev, `false` in prod)
100
+ if (process.env.NODE_ENV !== 'production') return true;
101
+
102
+ // Config override
103
+ if (_configDebug) return true;
104
+
105
+ // Runtime env var check — uses dynamic access to prevent static replacement.
106
+ // In production builds, process.env.NODE_ENV is statically replaced, but
107
+ // TIMBER_DEBUG must survive as a runtime check. The dynamic key access
108
+ // pattern ensures the bundler treats this as opaque.
109
+ return _readTimberDebugEnv();
110
+ }
111
+
112
+ /**
113
+ * Read TIMBER_DEBUG from the environment at runtime.
114
+ *
115
+ * Extracted to a separate function to:
116
+ * 1. Prevent bundler inlining (cross-module function calls are not inlined)
117
+ * 2. Handle platforms where `process` may not exist (Cloudflare Workers)
118
+ * 3. Support globalThis.__TIMBER_DEBUG for programmatic control
119
+ */
120
+ function _readTimberDebugEnv(): boolean {
121
+ // globalThis override — useful for programmatic control and testing
122
+ if ((globalThis as Record<string, unknown>).__TIMBER_DEBUG) return true;
123
+
124
+ // process.env — works in Node.js and platforms that polyfill process
125
+ try {
126
+ const key = 'TIMBER_DEBUG';
127
+ const val =
128
+ typeof process !== 'undefined' && process.env
129
+ ? (process.env as Record<string, string | undefined>)[key]
130
+ : undefined;
131
+ if (val && val !== '0' && val !== 'false') return true;
132
+ } catch {
133
+ // process may not exist or env may throw — safe to ignore
134
+ }
135
+
136
+ return false;
137
+ }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * DefaultLogger — human-readable stderr logging when no custom logger is configured.
3
+ *
4
+ * Ships as the fallback so production deployments always have error visibility,
5
+ * even without an `instrumentation.ts` logger export. Output is one line per
6
+ * event, designed for `fly logs`, `kubectl logs`, Cloudflare dashboard tails, etc.
7
+ *
8
+ * Format:
9
+ * [timber] ERROR message key=value key=value trace_id=4bf92f35
10
+ * [timber] WARN message key=value key=value trace_id=4bf92f35
11
+ * [timber] INFO message method=GET path=/dashboard status=200 durationMs=43 trace_id=4bf92f35
12
+ *
13
+ * Behavior:
14
+ * - Suppressed entirely in dev mode (dev logging handles all output)
15
+ * - `debug` suppressed unless TIMBER_DEBUG is set
16
+ * - Replaced entirely when a custom logger is set via `setLogger()`
17
+ *
18
+ * See design/17-logging.md §"DefaultLogger"
19
+ */
20
+
21
+ import { isDevMode, isDebug } from './debug.ts';
22
+ import { formatSsrError } from './error-formatter.ts';
23
+ import type { TimberLogger } from './logger.ts';
24
+
25
+ /**
26
+ * Format data fields as `key=value` pairs for human-readable output.
27
+ * - `error` key is serialized via formatSsrError for stack trace cleanup
28
+ * - `trace_id` is truncated to 8 chars for readability (full ID in OTEL)
29
+ * - Other values are stringified inline
30
+ */
31
+ function formatDataFields(data?: Record<string, unknown>): string {
32
+ if (!data) return '';
33
+
34
+ const parts: string[] = [];
35
+ let traceId: string | undefined;
36
+
37
+ for (const [key, value] of Object.entries(data)) {
38
+ if (key === 'trace_id') {
39
+ // Defer trace_id to the end
40
+ traceId = typeof value === 'string' ? value : String(value);
41
+ continue;
42
+ }
43
+ if (key === 'error') {
44
+ // Serialize errors with formatSsrError for clean output
45
+ parts.push(`error=${formatSsrError(value)}`);
46
+ continue;
47
+ }
48
+ if (value === undefined || value === null) continue;
49
+ parts.push(`${key}=${value}`);
50
+ }
51
+
52
+ // trace_id always last, truncated to 8 chars for readability
53
+ if (traceId) {
54
+ parts.push(`trace_id=${traceId.slice(0, 8)}`);
55
+ }
56
+
57
+ return parts.length > 0 ? ' ' + parts.join(' ') : '';
58
+ }
59
+
60
+ /** Pad level string to fixed width for alignment. */
61
+ function padLevel(level: string): string {
62
+ return level.padEnd(5);
63
+ }
64
+
65
+ export function createDefaultLogger(): TimberLogger {
66
+ return {
67
+ error(msg: string, data?: Record<string, unknown>): void {
68
+ // Errors are ALWAYS logged, including dev mode. Suppressing errors
69
+ // in dev causes silent 500s with no stack trace, making route.ts
70
+ // and render errors impossible to debug. See TIM-555.
71
+ const fields = formatDataFields(data);
72
+ process.stderr.write(`[timber] ${padLevel('ERROR')} ${msg}${fields}\n`);
73
+ },
74
+
75
+ warn(msg: string, data?: Record<string, unknown>): void {
76
+ // Warnings are always logged — same rationale as errors.
77
+ const fields = formatDataFields(data);
78
+ process.stderr.write(`[timber] ${padLevel('WARN')} ${msg}${fields}\n`);
79
+ },
80
+
81
+ info(msg: string, data?: Record<string, unknown>): void {
82
+ // info is suppressed by default — per-request lines are too noisy
83
+ // without a custom logger. Enable with TIMBER_DEBUG.
84
+ if (isDevMode()) return;
85
+ if (!isDebug()) return;
86
+ const fields = formatDataFields(data);
87
+ process.stderr.write(`[timber] ${padLevel('INFO')} ${msg}${fields}\n`);
88
+ },
89
+
90
+ debug(msg: string, data?: Record<string, unknown>): void {
91
+ // debug is suppressed in dev (dev logger handles it) and in
92
+ // production unless TIMBER_DEBUG is explicitly set.
93
+ if (isDevMode()) return;
94
+ if (!isDebug()) return;
95
+ const fields = formatDataFields(data);
96
+ process.stderr.write(`[timber] ${padLevel('DEBUG')} ${msg}${fields}\n`);
97
+ },
98
+ };
99
+ }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Framework default status page — the terminal fallback of the deny chain.
3
+ *
4
+ * design/10-error-handling.md §"Fallback Chain" ends every 4xx/5xx chain in a
5
+ * "framework default page". Before TIM-1258 that terminal did not exist: an app
6
+ * with no `404.tsx` / `4xx.tsx` / `error.tsx` got `Response(null, { status })` —
7
+ * a correct status code with an empty body. Browsers render that as a blank
8
+ * page, and static generation had nothing to write to `404.html`.
9
+ *
10
+ * This page is a plain HTML string rather than a React component on purpose:
11
+ * it is the *last* fallback, so it must not depend on the RSC → SSR pipeline
12
+ * (the machinery that may already have failed by the time we get here), and it
13
+ * must be renderable from the static build where no render environment exists.
14
+ * One builder is the single source of truth for both surfaces.
15
+ *
16
+ * Security: the page interpolates nothing but the status code, and the code is
17
+ * clamped to a plain integer before it reaches the markup. No request URL, no
18
+ * error message, no stack — see design/13-security.md principle 4.
19
+ */
20
+
21
+ import { displayStatus, statusReasonPhrase } from '../shared/status-reason-phrase.ts';
22
+
23
+ // The phrase table and status clamp live in `shared/status-reason-phrase.ts`:
24
+ // the client-form terminal (`client/deny-last-resort.tsx`) renders the same
25
+ // words for a deny that streamed past every boundary, and one table keeps the
26
+ // two surfaces from drifting.
27
+ export { statusReasonPhrase };
28
+
29
+ /** HTML content type used for every framework default page response. */
30
+ export const DEFAULT_STATUS_PAGE_CONTENT_TYPE = 'text/html; charset=utf-8';
31
+
32
+ /**
33
+ * Build the framework default page for a status code as a full HTML document.
34
+ *
35
+ * The document is self-contained: no scripts, no external resources, no client
36
+ * JavaScript. It renders identically in `server` mode, in `static` mode's
37
+ * generated `404.html`, and with `clientJavascript: false`.
38
+ */
39
+ export function defaultStatusPageHtml(status: number): string {
40
+ const code = displayStatus(status);
41
+ const phrase = statusReasonPhrase(code);
42
+ return `<!DOCTYPE html>
43
+ <html lang="en">
44
+ <head>
45
+ <meta charset="utf-8">
46
+ <meta name="viewport" content="width=device-width, initial-scale=1">
47
+ <title>${code} ${phrase}</title>
48
+ <style>
49
+ :root { color-scheme: light dark; --fg: #1a1a1a; --muted: #6b6b76; --bg: #ffffff; }
50
+ @media (prefers-color-scheme: dark) { :root { --fg: #ededf1; --muted: #9b9baa; --bg: #111114; } }
51
+ html, body { height: 100%; margin: 0; }
52
+ body {
53
+ display: flex; align-items: center; justify-content: center;
54
+ background: var(--bg); color: var(--fg);
55
+ font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
56
+ text-align: center; padding: 2rem;
57
+ box-sizing: border-box;
58
+ }
59
+ h1 { font-size: 3rem; font-weight: 600; margin: 0; letter-spacing: -0.02em; }
60
+ p { margin: 0.5rem 0 0; color: var(--muted); font-size: 1rem; }
61
+ </style>
62
+ </head>
63
+ <body>
64
+ <main>
65
+ <h1>${code}</h1>
66
+ <p>${phrase}</p>
67
+ </main>
68
+ </body>
69
+ </html>
70
+ `;
71
+ }
72
+
73
+ /**
74
+ * Build the framework default page as an HTTP `Response`.
75
+ *
76
+ * `responseHeaders` carries whatever middleware/proxy already set (cookies,
77
+ * cache directives); the content type is overwritten because the body is
78
+ * always HTML regardless of what the route would have produced.
79
+ *
80
+ * The body is unconditional. HEAD is not this function's problem: the pipeline
81
+ * strips HEAD bodies at its single exit for every response shape, so a
82
+ * `method` parameter here would be one renderer's private copy of a rule that
83
+ * now holds framework-wide (TIM-1324).
84
+ */
85
+ export function defaultStatusPageResponse(status: number, responseHeaders: Headers): Response {
86
+ responseHeaders.set('content-type', DEFAULT_STATUS_PAGE_CONTENT_TYPE);
87
+ return new Response(defaultStatusPageHtml(status), { status, headers: responseHeaders });
88
+ }