@timber-js/app 0.2.0-alpha.21 → 0.2.0-alpha.210

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 (1386) hide show
  1. package/LICENSE +8 -0
  2. package/agent-skill.md +346 -0
  3. package/bin/timber.mjs +15 -1
  4. package/dist/_chunks/actions-Rjk4htmA.js +1199 -0
  5. package/dist/_chunks/actions-Rjk4htmA.js.map +1 -0
  6. package/dist/_chunks/als-registry-DaxkVjt5.js +45 -0
  7. package/dist/_chunks/als-registry-DaxkVjt5.js.map +1 -0
  8. package/dist/_chunks/als-slots-BEEIPKYm.js +26 -0
  9. package/dist/_chunks/als-slots-BEEIPKYm.js.map +1 -0
  10. package/dist/_chunks/base-path-DaQrzbez.js +80 -0
  11. package/dist/_chunks/base-path-DaQrzbez.js.map +1 -0
  12. package/dist/_chunks/build-manifest-DWppEdLB.js +86 -0
  13. package/dist/_chunks/build-manifest-DWppEdLB.js.map +1 -0
  14. package/dist/_chunks/build-output-helper-RV_BRcF1.js +367 -0
  15. package/dist/_chunks/build-output-helper-RV_BRcF1.js.map +1 -0
  16. package/dist/_chunks/cache-api-DGdYfNJn.js +1182 -0
  17. package/dist/_chunks/cache-api-DGdYfNJn.js.map +1 -0
  18. package/dist/_chunks/canonicalize-CgHoscYO.js +66 -0
  19. package/dist/_chunks/canonicalize-CgHoscYO.js.map +1 -0
  20. package/dist/_chunks/chains-BoO51joc.js +413 -0
  21. package/dist/_chunks/chains-BoO51joc.js.map +1 -0
  22. package/dist/_chunks/cli-check-ajNY3B2e.js +252 -0
  23. package/dist/_chunks/cli-check-ajNY3B2e.js.map +1 -0
  24. package/dist/_chunks/cli-context-By7k2xVo.js +70 -0
  25. package/dist/_chunks/cli-context-By7k2xVo.js.map +1 -0
  26. package/dist/_chunks/cli-schema-sync-D2eI8jEg.js +299 -0
  27. package/dist/_chunks/cli-schema-sync-D2eI8jEg.js.map +1 -0
  28. package/dist/_chunks/cloudflare-Byxl8FWP.js +1333 -0
  29. package/dist/_chunks/cloudflare-Byxl8FWP.js.map +1 -0
  30. package/dist/_chunks/codec-registry-oOUxugz3.js +21 -0
  31. package/dist/_chunks/codec-registry-oOUxugz3.js.map +1 -0
  32. package/dist/_chunks/codegen-Bps1sLKJ.js +432 -0
  33. package/dist/_chunks/codegen-Bps1sLKJ.js.map +1 -0
  34. package/dist/_chunks/convention-lint-DLmhGsRS.js +590 -0
  35. package/dist/_chunks/convention-lint-DLmhGsRS.js.map +1 -0
  36. package/dist/_chunks/dev-server-v97rQH4b.js +2039 -0
  37. package/dist/_chunks/dev-server-v97rQH4b.js.map +1 -0
  38. package/dist/_chunks/dist-DtrJyBbw.js +386 -0
  39. package/dist/_chunks/dist-DtrJyBbw.js.map +1 -0
  40. package/dist/_chunks/error-boundary-DsNScGRM.js +1024 -0
  41. package/dist/_chunks/error-boundary-DsNScGRM.js.map +1 -0
  42. package/dist/_chunks/fast-hash-C-tVYrLb.js +41 -0
  43. package/dist/_chunks/fast-hash-C-tVYrLb.js.map +1 -0
  44. package/dist/_chunks/format-BKclgVbk.js +14 -0
  45. package/dist/_chunks/format-BKclgVbk.js.map +1 -0
  46. package/dist/_chunks/fs-identity-BRKuL215.js +207 -0
  47. package/dist/_chunks/fs-identity-BRKuL215.js.map +1 -0
  48. package/dist/_chunks/graph-cache-CYiUS2aS.js +303 -0
  49. package/dist/_chunks/graph-cache-CYiUS2aS.js.map +1 -0
  50. package/dist/_chunks/href-validation-BIrxavIy.js +213 -0
  51. package/dist/_chunks/href-validation-BIrxavIy.js.map +1 -0
  52. package/dist/_chunks/json-lossy-check-CVuRs2hG.js +66 -0
  53. package/dist/_chunks/json-lossy-check-CVuRs2hG.js.map +1 -0
  54. package/dist/_chunks/live-graph-9cSnn_h9.js +150 -0
  55. package/dist/_chunks/live-graph-9cSnn_h9.js.map +1 -0
  56. package/dist/_chunks/logger-BP0LN6vP.js +662 -0
  57. package/dist/_chunks/logger-BP0LN6vP.js.map +1 -0
  58. package/dist/_chunks/{metadata-routes-Cjmvi3rQ.js → metadata-routes-DSDjM_hJ.js} +71 -27
  59. package/dist/_chunks/metadata-routes-DSDjM_hJ.js.map +1 -0
  60. package/dist/_chunks/navigation-root-BQfo1-kG.js +126 -0
  61. package/dist/_chunks/navigation-root-BQfo1-kG.js.map +1 -0
  62. package/dist/_chunks/param-value-C8TNYchQ.js +66 -0
  63. package/dist/_chunks/param-value-C8TNYchQ.js.map +1 -0
  64. package/dist/_chunks/plugin-context-BPBPc3lL.js +345 -0
  65. package/dist/_chunks/plugin-context-BPBPc3lL.js.map +1 -0
  66. package/dist/_chunks/poison-rules-DoEhbqaY.js +110 -0
  67. package/dist/_chunks/poison-rules-DoEhbqaY.js.map +1 -0
  68. package/dist/_chunks/poison-scan-vGV7Re0B.js +101 -0
  69. package/dist/_chunks/poison-scan-vGV7Re0B.js.map +1 -0
  70. package/dist/_chunks/purge-store-Byr8XOjU.js +14 -0
  71. package/dist/_chunks/purge-store-Byr8XOjU.js.map +1 -0
  72. package/dist/_chunks/render-timeout-DOf_BBcO.js +46 -0
  73. package/dist/_chunks/render-timeout-DOf_BBcO.js.map +1 -0
  74. package/dist/_chunks/resolve-schema-CBR6Lm4i.js +50 -0
  75. package/dist/_chunks/resolve-schema-CBR6Lm4i.js.map +1 -0
  76. package/dist/_chunks/rolldown-runtime-D7D4PA-g.js +13 -0
  77. package/dist/_chunks/rsc-cache-key-ClUiXQnK.js +243 -0
  78. package/dist/_chunks/rsc-cache-key-ClUiXQnK.js.map +1 -0
  79. package/dist/_chunks/rsc-media-type-DDc7duTD.js +61 -0
  80. package/dist/_chunks/rsc-media-type-DDc7duTD.js.map +1 -0
  81. package/dist/_chunks/rsc-payload-path-dffcs4jp.js +54 -0
  82. package/dist/_chunks/rsc-payload-path-dffcs4jp.js.map +1 -0
  83. package/dist/_chunks/scan-BoP17W3w.js +140 -0
  84. package/dist/_chunks/scan-BoP17W3w.js.map +1 -0
  85. package/dist/_chunks/scanner-DmqdxzbW.js +2056 -0
  86. package/dist/_chunks/scanner-DmqdxzbW.js.map +1 -0
  87. package/dist/_chunks/schema-bridge-C83xa9lT.js +199 -0
  88. package/dist/_chunks/schema-bridge-C83xa9lT.js.map +1 -0
  89. package/dist/_chunks/segment-classify-C539Pa2O.js +197 -0
  90. package/dist/_chunks/segment-classify-C539Pa2O.js.map +1 -0
  91. package/dist/_chunks/segment-context-xtPUGfdq.js +137 -0
  92. package/dist/_chunks/segment-context-xtPUGfdq.js.map +1 -0
  93. package/dist/_chunks/segment-keys-D5hu1hz4.js +62 -0
  94. package/dist/_chunks/segment-keys-D5hu1hz4.js.map +1 -0
  95. package/dist/_chunks/singleflight-BeVMMKi0.js +55 -0
  96. package/dist/_chunks/singleflight-BeVMMKi0.js.map +1 -0
  97. package/dist/_chunks/sizeof-BM1409x2.js +36 -0
  98. package/dist/_chunks/sizeof-BM1409x2.js.map +1 -0
  99. package/dist/_chunks/ssr-data-nA3I70_n.js +49 -0
  100. package/dist/_chunks/ssr-data-nA3I70_n.js.map +1 -0
  101. package/dist/_chunks/state-BhNGPsdi.js +50 -0
  102. package/dist/_chunks/state-BhNGPsdi.js.map +1 -0
  103. package/dist/_chunks/status-page-marker-BRX9Ib-d.js +564 -0
  104. package/dist/_chunks/status-page-marker-BRX9Ib-d.js.map +1 -0
  105. package/dist/_chunks/tree-match-6yihorhk.js +169 -0
  106. package/dist/_chunks/tree-match-6yihorhk.js.map +1 -0
  107. package/dist/_chunks/use-query-states-I3JMng6J.js +226 -0
  108. package/dist/_chunks/use-query-states-I3JMng6J.js.map +1 -0
  109. package/dist/_chunks/walkers-Czu2jXFq.js +144 -0
  110. package/dist/_chunks/walkers-Czu2jXFq.js.map +1 -0
  111. package/dist/_chunks/write-file-atomic-D1qWqHb4.js +32 -0
  112. package/dist/_chunks/write-file-atomic-D1qWqHb4.js.map +1 -0
  113. package/dist/adapters/build-output-helper.d.ts +72 -0
  114. package/dist/adapters/build-output-helper.d.ts.map +1 -0
  115. package/dist/adapters/canonicalize-module.d.ts +8 -0
  116. package/dist/adapters/canonicalize-module.d.ts.map +1 -0
  117. package/dist/adapters/cloudflare-dev.d.ts +109 -0
  118. package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
  119. package/dist/adapters/cloudflare-dev.js +74 -0
  120. package/dist/adapters/cloudflare-dev.js.map +1 -0
  121. package/dist/adapters/cloudflare-kv-cache.d.ts +65 -0
  122. package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
  123. package/dist/adapters/cloudflare-kv-cache.js +123 -0
  124. package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
  125. package/dist/adapters/cloudflare.d.ts +224 -24
  126. package/dist/adapters/cloudflare.d.ts.map +1 -1
  127. package/dist/adapters/cloudflare.js +2 -188
  128. package/dist/adapters/compress-module.d.ts +25 -4
  129. package/dist/adapters/compress-module.d.ts.map +1 -1
  130. package/dist/adapters/fs-identity.d.ts +63 -0
  131. package/dist/adapters/fs-identity.d.ts.map +1 -0
  132. package/dist/adapters/nitro-presets.d.ts +31 -0
  133. package/dist/adapters/nitro-presets.d.ts.map +1 -0
  134. package/dist/adapters/nitro-preview.d.ts +64 -0
  135. package/dist/adapters/nitro-preview.d.ts.map +1 -0
  136. package/dist/adapters/nitro.d.ts +54 -37
  137. package/dist/adapters/nitro.d.ts.map +1 -1
  138. package/dist/adapters/nitro.js +631 -359
  139. package/dist/adapters/nitro.js.map +1 -1
  140. package/dist/adapters/shared.d.ts +67 -0
  141. package/dist/adapters/shared.d.ts.map +1 -0
  142. package/dist/adapters/types.d.ts +122 -16
  143. package/dist/adapters/types.d.ts.map +1 -1
  144. package/dist/adapters/types.js +0 -0
  145. package/dist/analyze/chains.d.ts +124 -0
  146. package/dist/analyze/chains.d.ts.map +1 -0
  147. package/dist/analyze/classify.d.ts +151 -0
  148. package/dist/analyze/classify.d.ts.map +1 -0
  149. package/dist/analyze/crawl-entry.d.ts +17 -0
  150. package/dist/analyze/crawl-entry.d.ts.map +1 -0
  151. package/dist/analyze/crawl-entry.js +313 -0
  152. package/dist/analyze/crawl-entry.js.map +1 -0
  153. package/dist/analyze/crawl.d.ts +134 -0
  154. package/dist/analyze/crawl.d.ts.map +1 -0
  155. package/dist/analyze/graph-cache.d.ts +104 -0
  156. package/dist/analyze/graph-cache.d.ts.map +1 -0
  157. package/dist/analyze/graph-command.d.ts +43 -0
  158. package/dist/analyze/graph-command.d.ts.map +1 -0
  159. package/dist/analyze/graph-command.js +472 -0
  160. package/dist/analyze/graph-command.js.map +1 -0
  161. package/dist/analyze/live-graph.d.ts +81 -0
  162. package/dist/analyze/live-graph.d.ts.map +1 -0
  163. package/dist/analyze/poison-rules.d.ts +72 -0
  164. package/dist/analyze/poison-rules.d.ts.map +1 -0
  165. package/dist/analyze/poison-scan.d.ts +48 -0
  166. package/dist/analyze/poison-scan.d.ts.map +1 -0
  167. package/dist/analyze/scan.d.ts +73 -0
  168. package/dist/analyze/scan.d.ts.map +1 -0
  169. package/dist/cache/cache-api.d.ts +48 -0
  170. package/dist/cache/cache-api.d.ts.map +1 -0
  171. package/dist/cache/fast-hash.d.ts +5 -0
  172. package/dist/cache/fast-hash.d.ts.map +1 -1
  173. package/dist/cache/handler-store.d.ts +33 -0
  174. package/dist/cache/handler-store.d.ts.map +1 -0
  175. package/dist/cache/index.d.ts +32 -9
  176. package/dist/cache/index.d.ts.map +1 -1
  177. package/dist/cache/index.js +3 -326
  178. package/dist/cache/invalidation-epoch.d.ts +43 -0
  179. package/dist/cache/invalidation-epoch.d.ts.map +1 -0
  180. package/dist/cache/json-lossy-check.d.ts +11 -0
  181. package/dist/cache/json-lossy-check.d.ts.map +1 -0
  182. package/dist/cache/redis-handler.d.ts +141 -9
  183. package/dist/cache/redis-handler.d.ts.map +1 -1
  184. package/dist/cache/singleflight.d.ts +21 -2
  185. package/dist/cache/singleflight.d.ts.map +1 -1
  186. package/dist/cache/sizeof.d.ts +22 -0
  187. package/dist/cache/sizeof.d.ts.map +1 -0
  188. package/dist/cache/stable-stringify.d.ts +9 -0
  189. package/dist/cache/stable-stringify.d.ts.map +1 -1
  190. package/dist/cache/store.d.ts +53 -0
  191. package/dist/cache/store.d.ts.map +1 -0
  192. package/dist/cache/stores/cloudflare-kv.d.ts +38 -0
  193. package/dist/cache/stores/cloudflare-kv.d.ts.map +1 -0
  194. package/dist/cache/stores/cloudflare-kv.js +29 -0
  195. package/dist/cache/stores/cloudflare-kv.js.map +1 -0
  196. package/dist/cache/stores/memory.d.ts +42 -0
  197. package/dist/cache/stores/memory.d.ts.map +1 -0
  198. package/dist/cache/stores/memory.js +90 -0
  199. package/dist/cache/stores/memory.js.map +1 -0
  200. package/dist/cache/stores/redis.d.ts +69 -0
  201. package/dist/cache/stores/redis.d.ts.map +1 -0
  202. package/dist/cache/stores/redis.js +35 -0
  203. package/dist/cache/stores/redis.js.map +1 -0
  204. package/dist/cache/stores/vercel.d.ts +36 -0
  205. package/dist/cache/stores/vercel.d.ts.map +1 -0
  206. package/dist/cache/stores/vercel.js +33 -0
  207. package/dist/cache/stores/vercel.js.map +1 -0
  208. package/dist/cache/tag-aware-handler.d.ts +52 -0
  209. package/dist/cache/tag-aware-handler.d.ts.map +1 -0
  210. package/dist/cache/timber-cache.d.ts +21 -11
  211. package/dist/cache/timber-cache.d.ts.map +1 -1
  212. package/dist/cdn/cloudflare-purge.d.ts +23 -0
  213. package/dist/cdn/cloudflare-purge.d.ts.map +1 -0
  214. package/dist/cdn/cloudflare-purge.js +30 -0
  215. package/dist/cdn/cloudflare-purge.js.map +1 -0
  216. package/dist/cdn/fastly-purge.d.ts +25 -0
  217. package/dist/cdn/fastly-purge.d.ts.map +1 -0
  218. package/dist/cdn/fastly-purge.js +33 -0
  219. package/dist/cdn/fastly-purge.js.map +1 -0
  220. package/dist/cdn/headers.d.ts +97 -0
  221. package/dist/cdn/headers.d.ts.map +1 -0
  222. package/dist/cdn/index.d.ts +5 -0
  223. package/dist/cdn/index.d.ts.map +1 -0
  224. package/dist/cdn/index.js +94 -0
  225. package/dist/cdn/index.js.map +1 -0
  226. package/dist/cdn/purge-store.d.ts +23 -0
  227. package/dist/cdn/purge-store.d.ts.map +1 -0
  228. package/dist/cdn/workers-cache-purge.d.ts +20 -0
  229. package/dist/cdn/workers-cache-purge.d.ts.map +1 -0
  230. package/dist/cdn/workers-cache-purge.js +35 -0
  231. package/dist/cdn/workers-cache-purge.js.map +1 -0
  232. package/dist/cli-check.d.ts +133 -0
  233. package/dist/cli-check.d.ts.map +1 -0
  234. package/dist/cli-context.d.ts +54 -0
  235. package/dist/cli-context.d.ts.map +1 -0
  236. package/dist/cli-schema-sync.d.ts +59 -0
  237. package/dist/cli-schema-sync.d.ts.map +1 -0
  238. package/dist/cli.d.ts +85 -13
  239. package/dist/cli.d.ts.map +1 -1
  240. package/dist/cli.js +224 -63
  241. package/dist/cli.js.map +1 -1
  242. package/dist/client/browser-dev.d.ts +42 -2
  243. package/dist/client/browser-dev.d.ts.map +1 -1
  244. package/dist/client/browser-entry/action-dispatch.d.ts +19 -0
  245. package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
  246. package/dist/client/browser-entry/action-queue.d.ts +63 -0
  247. package/dist/client/browser-entry/action-queue.d.ts.map +1 -0
  248. package/dist/client/browser-entry/hmr.d.ts +21 -0
  249. package/dist/client/browser-entry/hmr.d.ts.map +1 -0
  250. package/dist/client/browser-entry/hydrate.d.ts +53 -0
  251. package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
  252. package/dist/client/browser-entry/index.d.ts +30 -0
  253. package/dist/client/browser-entry/index.d.ts.map +1 -0
  254. package/dist/client/browser-entry/post-hydration.d.ts +26 -0
  255. package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
  256. package/dist/client/browser-entry/router-init.d.ts +41 -0
  257. package/dist/client/browser-entry/router-init.d.ts.map +1 -0
  258. package/dist/client/browser-entry/rsc-stream.d.ts +32 -0
  259. package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
  260. package/dist/client/browser-entry/scroll.d.ts +28 -0
  261. package/dist/client/browser-entry/scroll.d.ts.map +1 -0
  262. package/dist/client/deny-last-resort.d.ts +29 -0
  263. package/dist/client/deny-last-resort.d.ts.map +1 -0
  264. package/dist/client/error-boundary.d.ts +58 -9
  265. package/dist/client/error-boundary.d.ts.map +1 -1
  266. package/dist/client/error-boundary.js +2 -126
  267. package/dist/client/error-reconstituter.d.ts +55 -0
  268. package/dist/client/error-reconstituter.d.ts.map +1 -0
  269. package/dist/client/form.d.ts +16 -27
  270. package/dist/client/form.d.ts.map +1 -1
  271. package/dist/client/global-context.d.ts +15 -0
  272. package/dist/client/global-context.d.ts.map +1 -0
  273. package/dist/client/history.d.ts +50 -9
  274. package/dist/client/history.d.ts.map +1 -1
  275. package/dist/client/index.d.ts +20 -33
  276. package/dist/client/index.d.ts.map +1 -1
  277. package/dist/client/index.js +330 -1150
  278. package/dist/client/index.js.map +1 -1
  279. package/dist/client/internal.d.ts +20 -0
  280. package/dist/client/internal.d.ts.map +1 -0
  281. package/dist/client/internal.js +792 -0
  282. package/dist/client/internal.js.map +1 -0
  283. package/dist/client/link.d.ts +85 -60
  284. package/dist/client/link.d.ts.map +1 -1
  285. package/dist/client/location-search.d.ts +12 -0
  286. package/dist/client/location-search.d.ts.map +1 -0
  287. package/dist/client/navigation-api.d.ts +133 -0
  288. package/dist/client/navigation-api.d.ts.map +1 -0
  289. package/dist/client/navigation-commit.d.ts +111 -0
  290. package/dist/client/navigation-commit.d.ts.map +1 -0
  291. package/dist/client/navigation-context.d.ts +54 -36
  292. package/dist/client/navigation-context.d.ts.map +1 -1
  293. package/dist/client/navigation-root.d.ts +106 -0
  294. package/dist/client/navigation-root.d.ts.map +1 -0
  295. package/dist/client/navigation-transition.d.ts +192 -0
  296. package/dist/client/navigation-transition.d.ts.map +1 -0
  297. package/dist/client/nuqs-adapter.d.ts +1 -1
  298. package/dist/client/nuqs-adapter.d.ts.map +1 -1
  299. package/dist/client/params-context.d.ts +81 -0
  300. package/dist/client/params-context.d.ts.map +1 -0
  301. package/dist/client/react-root.d.ts +45 -0
  302. package/dist/client/react-root.d.ts.map +1 -0
  303. package/dist/client/router-effects.d.ts +137 -0
  304. package/dist/client/router-effects.d.ts.map +1 -0
  305. package/dist/client/router-lifecycle.d.ts +98 -0
  306. package/dist/client/router-lifecycle.d.ts.map +1 -0
  307. package/dist/client/router-pipeline.d.ts +84 -0
  308. package/dist/client/router-pipeline.d.ts.map +1 -0
  309. package/dist/client/router-ref.d.ts +2 -2
  310. package/dist/client/router-ref.d.ts.map +1 -1
  311. package/dist/client/router-skew.d.ts +21 -0
  312. package/dist/client/router-skew.d.ts.map +1 -0
  313. package/dist/client/router-types.d.ts +334 -0
  314. package/dist/client/router-types.d.ts.map +1 -0
  315. package/dist/client/router-url.d.ts +24 -0
  316. package/dist/client/router-url.d.ts.map +1 -0
  317. package/dist/client/router.d.ts +1 -97
  318. package/dist/client/router.d.ts.map +1 -1
  319. package/dist/client/rsc-fetch.d.ts +110 -28
  320. package/dist/client/rsc-fetch.d.ts.map +1 -1
  321. package/dist/client/segment-cache.d.ts +186 -25
  322. package/dist/client/segment-cache.d.ts.map +1 -1
  323. package/dist/client/segment-context.d.ts.map +1 -1
  324. package/dist/client/segment-outlet.d.ts +68 -0
  325. package/dist/client/segment-outlet.d.ts.map +1 -0
  326. package/dist/client/segment-update-context.d.ts +15 -0
  327. package/dist/client/segment-update-context.d.ts.map +1 -0
  328. package/dist/client/shallow-url.d.ts +10 -0
  329. package/dist/client/shallow-url.d.ts.map +1 -0
  330. package/dist/client/slot-content-cache-context.d.ts +35 -0
  331. package/dist/client/slot-content-cache-context.d.ts.map +1 -0
  332. package/dist/client/slot-context.d.ts +31 -0
  333. package/dist/client/slot-context.d.ts.map +1 -0
  334. package/dist/client/slot-outlet.d.ts +16 -0
  335. package/dist/client/slot-outlet.d.ts.map +1 -0
  336. package/dist/client/slot-provider.d.ts +25 -0
  337. package/dist/client/slot-provider.d.ts.map +1 -0
  338. package/dist/client/ssr-data.d.ts +26 -50
  339. package/dist/client/ssr-data.d.ts.map +1 -1
  340. package/dist/client/stale-client.d.ts +69 -0
  341. package/dist/client/stale-client.d.ts.map +1 -0
  342. package/dist/client/state.d.ts +21 -13
  343. package/dist/client/state.d.ts.map +1 -1
  344. package/dist/client/status-page-marker.d.ts +25 -0
  345. package/dist/client/status-page-marker.d.ts.map +1 -0
  346. package/dist/client/top-loader.d.ts +7 -6
  347. package/dist/client/top-loader.d.ts.map +1 -1
  348. package/dist/client/unload-guard.d.ts +5 -0
  349. package/dist/client/unload-guard.d.ts.map +1 -1
  350. package/dist/client/use-cookie.d.ts +12 -0
  351. package/dist/client/use-cookie.d.ts.map +1 -1
  352. package/dist/client/use-link-status.d.ts +5 -5
  353. package/dist/client/use-link-status.d.ts.map +1 -1
  354. package/dist/client/use-pathname.d.ts +13 -11
  355. package/dist/client/use-pathname.d.ts.map +1 -1
  356. package/dist/client/use-pending-navigation.d.ts +23 -0
  357. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  358. package/dist/client/use-query-states.d.ts +10 -4
  359. package/dist/client/use-query-states.d.ts.map +1 -1
  360. package/dist/client/use-router.d.ts +15 -8
  361. package/dist/client/use-router.d.ts.map +1 -1
  362. package/dist/client/use-search-params.d.ts +15 -8
  363. package/dist/client/use-search-params.d.ts.map +1 -1
  364. package/dist/client/use-segment-params.d.ts +55 -0
  365. package/dist/client/use-segment-params.d.ts.map +1 -0
  366. package/dist/codec.d.ts +69 -0
  367. package/dist/codec.d.ts.map +1 -0
  368. package/dist/codec.js +76 -0
  369. package/dist/codec.js.map +1 -0
  370. package/dist/config-types.d.ts +323 -0
  371. package/dist/config-types.d.ts.map +1 -0
  372. package/dist/config-validation.d.ts +68 -0
  373. package/dist/config-validation.d.ts.map +1 -0
  374. package/dist/cookies/define-cookie.d.ts +58 -25
  375. package/dist/cookies/define-cookie.d.ts.map +1 -1
  376. package/dist/cookies/index.d.ts +3 -2
  377. package/dist/cookies/index.d.ts.map +1 -1
  378. package/dist/cookies/index.js +256 -36
  379. package/dist/cookies/index.js.map +1 -1
  380. package/dist/cookies/json-cookie.d.ts +64 -0
  381. package/dist/cookies/json-cookie.d.ts.map +1 -0
  382. package/dist/cookies/validation.d.ts +34 -0
  383. package/dist/cookies/validation.d.ts.map +1 -0
  384. package/dist/dev-tools/404-page.d.ts +50 -0
  385. package/dist/dev-tools/404-page.d.ts.map +1 -0
  386. package/dist/dev-tools/browser-logs.d.ts +40 -0
  387. package/dist/dev-tools/browser-logs.d.ts.map +1 -0
  388. package/dist/dev-tools/dev-page-shell.d.ts +95 -0
  389. package/dist/dev-tools/dev-page-shell.d.ts.map +1 -0
  390. package/dist/dev-tools/error-page.d.ts +32 -0
  391. package/dist/dev-tools/error-page.d.ts.map +1 -0
  392. package/dist/dev-tools/holding-server.d.ts +46 -0
  393. package/dist/dev-tools/holding-server.d.ts.map +1 -0
  394. package/dist/dev-tools/hydration-overlay.d.ts +11 -0
  395. package/dist/dev-tools/hydration-overlay.d.ts.map +1 -0
  396. package/dist/dev-tools/index.d.ts +31 -0
  397. package/dist/dev-tools/index.d.ts.map +1 -0
  398. package/dist/dev-tools/instrumentation.d.ts +74 -0
  399. package/dist/dev-tools/instrumentation.d.ts.map +1 -0
  400. package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
  401. package/dist/dev-tools/logger.d.ts.map +1 -0
  402. package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +17 -3
  403. package/dist/dev-tools/logs.d.ts.map +1 -0
  404. package/dist/{plugins/dev-error-overlay.d.ts → dev-tools/overlay.d.ts} +15 -25
  405. package/dist/dev-tools/overlay.d.ts.map +1 -0
  406. package/dist/dev-tools/stack-classifier.d.ts +34 -0
  407. package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
  408. package/dist/dev-tools/terminal.d.ts +28 -0
  409. package/dist/dev-tools/terminal.d.ts.map +1 -0
  410. package/dist/fonts/ast-walk.d.ts +68 -0
  411. package/dist/fonts/ast-walk.d.ts.map +1 -0
  412. package/dist/fonts/ast.d.ts +112 -8
  413. package/dist/fonts/ast.d.ts.map +1 -1
  414. package/dist/fonts/bundle.d.ts +50 -0
  415. package/dist/fonts/bundle.d.ts.map +1 -0
  416. package/dist/fonts/css.d.ts +1 -1
  417. package/dist/fonts/dev-middleware.d.ts +22 -0
  418. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  419. package/dist/fonts/fallbacks.d.ts +0 -7
  420. package/dist/fonts/fallbacks.d.ts.map +1 -1
  421. package/dist/fonts/google.d.ts +5 -3
  422. package/dist/fonts/google.d.ts.map +1 -1
  423. package/dist/fonts/local.d.ts +5 -5
  424. package/dist/fonts/local.d.ts.map +1 -1
  425. package/dist/fonts/paths.d.ts +43 -0
  426. package/dist/fonts/paths.d.ts.map +1 -0
  427. package/dist/fonts/pipeline.d.ts +177 -0
  428. package/dist/fonts/pipeline.d.ts.map +1 -0
  429. package/dist/fonts/transform.d.ts +82 -0
  430. package/dist/fonts/transform.d.ts.map +1 -0
  431. package/dist/fonts/types.d.ts +47 -1
  432. package/dist/fonts/types.d.ts.map +1 -1
  433. package/dist/fonts/virtual-modules.d.ts +77 -0
  434. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  435. package/dist/index.d.ts +35 -181
  436. package/dist/index.d.ts.map +1 -1
  437. package/dist/index.js +8844 -14244
  438. package/dist/index.js.map +1 -1
  439. package/dist/params/codec-registry.d.ts +26 -0
  440. package/dist/params/codec-registry.d.ts.map +1 -0
  441. package/dist/params/define-schema.d.ts +81 -0
  442. package/dist/params/define-schema.d.ts.map +1 -0
  443. package/dist/params/index.d.ts +5 -0
  444. package/dist/params/index.d.ts.map +1 -0
  445. package/dist/params/index.js +34 -0
  446. package/dist/params/index.js.map +1 -0
  447. package/dist/params/resolve-schema.d.ts +34 -0
  448. package/dist/params/resolve-schema.d.ts.map +1 -0
  449. package/dist/plugin-context.d.ts +262 -0
  450. package/dist/plugin-context.d.ts.map +1 -0
  451. package/dist/plugins/build-manifest.d.ts +7 -3
  452. package/dist/plugins/build-manifest.d.ts.map +1 -1
  453. package/dist/plugins/build-report.d.ts +61 -11
  454. package/dist/plugins/build-report.d.ts.map +1 -1
  455. package/dist/plugins/cache.d.ts +64 -0
  456. package/dist/plugins/cache.d.ts.map +1 -0
  457. package/dist/plugins/callsite-ast.d.ts +117 -0
  458. package/dist/plugins/callsite-ast.d.ts.map +1 -0
  459. package/dist/plugins/callsite-jsx.d.ts +35 -0
  460. package/dist/plugins/callsite-jsx.d.ts.map +1 -0
  461. package/dist/plugins/chunks.d.ts +11 -4
  462. package/dist/plugins/chunks.d.ts.map +1 -1
  463. package/dist/plugins/client-chunks.d.ts +40 -0
  464. package/dist/plugins/client-chunks.d.ts.map +1 -0
  465. package/dist/plugins/cloudflare-wasm.d.ts +21 -0
  466. package/dist/plugins/cloudflare-wasm.d.ts.map +1 -0
  467. package/dist/plugins/content.d.ts +1 -1
  468. package/dist/plugins/content.d.ts.map +1 -1
  469. package/dist/plugins/dev-discovery.d.ts +123 -0
  470. package/dist/plugins/dev-discovery.d.ts.map +1 -0
  471. package/dist/plugins/dev-server.d.ts +24 -1
  472. package/dist/plugins/dev-server.d.ts.map +1 -1
  473. package/dist/plugins/entries.d.ts +28 -4
  474. package/dist/plugins/entries.d.ts.map +1 -1
  475. package/dist/plugins/fonts.d.ts +35 -74
  476. package/dist/plugins/fonts.d.ts.map +1 -1
  477. package/dist/plugins/graph-endpoint.d.ts +112 -0
  478. package/dist/plugins/graph-endpoint.d.ts.map +1 -0
  479. package/dist/plugins/mdx.d.ts +18 -5
  480. package/dist/plugins/mdx.d.ts.map +1 -1
  481. package/dist/plugins/post-build.d.ts +110 -0
  482. package/dist/plugins/post-build.d.ts.map +1 -0
  483. package/dist/plugins/prebuilt-capture.d.ts +67 -0
  484. package/dist/plugins/prebuilt-capture.d.ts.map +1 -0
  485. package/dist/plugins/prebuilt-options-analysis.d.ts +40 -0
  486. package/dist/plugins/prebuilt-options-analysis.d.ts.map +1 -0
  487. package/dist/plugins/prebuilt.d.ts +98 -0
  488. package/dist/plugins/prebuilt.d.ts.map +1 -0
  489. package/dist/plugins/prerender-sugar.d.ts +39 -0
  490. package/dist/plugins/prerender-sugar.d.ts.map +1 -0
  491. package/dist/plugins/react-resolve.d.ts +49 -0
  492. package/dist/plugins/react-resolve.d.ts.map +1 -0
  493. package/dist/plugins/request-dep/analysis.d.ts +106 -0
  494. package/dist/plugins/request-dep/analysis.d.ts.map +1 -0
  495. package/dist/plugins/request-dep/index.d.ts +75 -0
  496. package/dist/plugins/request-dep/index.d.ts.map +1 -0
  497. package/dist/plugins/request-dep/origin.d.ts +61 -0
  498. package/dist/plugins/request-dep/origin.d.ts.map +1 -0
  499. package/dist/plugins/routing.d.ts +1 -1
  500. package/dist/plugins/routing.d.ts.map +1 -1
  501. package/dist/plugins/rsc-assets-manifest.d.ts +33 -0
  502. package/dist/plugins/rsc-assets-manifest.d.ts.map +1 -0
  503. package/dist/plugins/server-bundle.d.ts.map +1 -1
  504. package/dist/plugins/shims.d.ts +29 -5
  505. package/dist/plugins/shims.d.ts.map +1 -1
  506. package/dist/plugins/static-build.d.ts +246 -26
  507. package/dist/plugins/static-build.d.ts.map +1 -1
  508. package/dist/routing/codegen-shared.d.ts +26 -0
  509. package/dist/routing/codegen-shared.d.ts.map +1 -0
  510. package/dist/routing/codegen-types.d.ts +61 -0
  511. package/dist/routing/codegen-types.d.ts.map +1 -0
  512. package/dist/routing/codegen-write.d.ts +42 -0
  513. package/dist/routing/codegen-write.d.ts.map +1 -0
  514. package/dist/routing/codegen.d.ts +8 -3
  515. package/dist/routing/codegen.d.ts.map +1 -1
  516. package/dist/routing/collision-probe.d.ts +104 -0
  517. package/dist/routing/collision-probe.d.ts.map +1 -0
  518. package/dist/routing/collision-spaces.d.ts +26 -0
  519. package/dist/routing/collision-spaces.d.ts.map +1 -0
  520. package/dist/routing/convention-lint.d.ts +55 -0
  521. package/dist/routing/convention-lint.d.ts.map +1 -0
  522. package/dist/routing/export-detect.d.ts +91 -0
  523. package/dist/routing/export-detect.d.ts.map +1 -0
  524. package/dist/routing/file-cache.d.ts +8 -0
  525. package/dist/routing/file-cache.d.ts.map +1 -0
  526. package/dist/routing/index.d.ts +13 -7
  527. package/dist/routing/index.d.ts.map +1 -1
  528. package/dist/routing/index.js +5 -2
  529. package/dist/routing/interception-overlap.d.ts +35 -0
  530. package/dist/routing/interception-overlap.d.ts.map +1 -0
  531. package/dist/routing/interception.d.ts +234 -10
  532. package/dist/routing/interception.d.ts.map +1 -1
  533. package/dist/routing/link-codegen.d.ts +105 -0
  534. package/dist/routing/link-codegen.d.ts.map +1 -0
  535. package/dist/routing/manifest-codegen.d.ts +26 -0
  536. package/dist/routing/manifest-codegen.d.ts.map +1 -0
  537. package/dist/routing/scanner.d.ts +14 -10
  538. package/dist/routing/scanner.d.ts.map +1 -1
  539. package/dist/routing/schema-validation.d.ts +35 -0
  540. package/dist/routing/schema-validation.d.ts.map +1 -0
  541. package/dist/routing/segment-classify.d.ts +114 -0
  542. package/dist/routing/segment-classify.d.ts.map +1 -0
  543. package/dist/routing/segment-codegen.d.ts +38 -0
  544. package/dist/routing/segment-codegen.d.ts.map +1 -0
  545. package/dist/routing/segment-keys.d.ts +118 -0
  546. package/dist/routing/segment-keys.d.ts.map +1 -0
  547. package/dist/routing/slot-placement.d.ts +48 -0
  548. package/dist/routing/slot-placement.d.ts.map +1 -0
  549. package/dist/routing/types.d.ts +81 -26
  550. package/dist/routing/types.d.ts.map +1 -1
  551. package/dist/routing/walkers.d.ts +57 -0
  552. package/dist/routing/walkers.d.ts.map +1 -0
  553. package/dist/rsc-runtime/rsc.d.ts +1 -1
  554. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  555. package/dist/rsc-runtime/ssr.d.ts +14 -0
  556. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  557. package/dist/rsc-runtime/transforms.d.ts +13 -0
  558. package/dist/rsc-runtime/transforms.d.ts.map +1 -0
  559. package/dist/schema-bridge.d.ts +145 -0
  560. package/dist/schema-bridge.d.ts.map +1 -0
  561. package/dist/search-params/define.d.ts +262 -0
  562. package/dist/search-params/define.d.ts.map +1 -0
  563. package/dist/search-params/index.d.ts +3 -7
  564. package/dist/search-params/index.d.ts.map +1 -1
  565. package/dist/search-params/index.js +179 -360
  566. package/dist/search-params/index.js.map +1 -1
  567. package/dist/search-params/parse-total.d.ts +81 -0
  568. package/dist/search-params/parse-total.d.ts.map +1 -0
  569. package/dist/search-params/serialize-equal.d.ts +9 -0
  570. package/dist/search-params/serialize-equal.d.ts.map +1 -0
  571. package/dist/search-params/wrappers.d.ts +76 -0
  572. package/dist/search-params/wrappers.d.ts.map +1 -0
  573. package/dist/server/access-gate.d.ts +98 -10
  574. package/dist/server/access-gate.d.ts.map +1 -1
  575. package/dist/server/action-client.d.ts +44 -9
  576. package/dist/server/action-client.d.ts.map +1 -1
  577. package/dist/server/action-encryption.d.ts +76 -0
  578. package/dist/server/action-encryption.d.ts.map +1 -0
  579. package/dist/server/action-handler.d.ts +40 -5
  580. package/dist/server/action-handler.d.ts.map +1 -1
  581. package/dist/server/actions.d.ts +78 -40
  582. package/dist/server/actions.d.ts.map +1 -1
  583. package/dist/server/als-registry.d.ts +166 -16
  584. package/dist/server/als-registry.d.ts.map +1 -1
  585. package/dist/server/body-limits.d.ts.map +1 -1
  586. package/dist/server/build-manifest.d.ts +25 -30
  587. package/dist/server/build-manifest.d.ts.map +1 -1
  588. package/dist/server/canonicalize.d.ts +10 -0
  589. package/dist/server/canonicalize.d.ts.map +1 -1
  590. package/dist/server/chain-url-parts.d.ts +82 -0
  591. package/dist/server/chain-url-parts.d.ts.map +1 -0
  592. package/dist/server/children-interception.d.ts +49 -0
  593. package/dist/server/children-interception.d.ts.map +1 -0
  594. package/dist/server/coalesce-tick.d.ts +40 -0
  595. package/dist/server/coalesce-tick.d.ts.map +1 -0
  596. package/dist/server/compress.d.ts.map +1 -1
  597. package/dist/server/cookie-context.d.ts +149 -0
  598. package/dist/server/cookie-context.d.ts.map +1 -0
  599. package/dist/server/cookie-parsing.d.ts +65 -0
  600. package/dist/server/cookie-parsing.d.ts.map +1 -0
  601. package/dist/server/csp-nonce.d.ts +36 -0
  602. package/dist/server/csp-nonce.d.ts.map +1 -0
  603. package/dist/server/csrf.d.ts +58 -15
  604. package/dist/server/csrf.d.ts.map +1 -1
  605. package/dist/server/debug.d.ts +0 -1
  606. package/dist/server/debug.d.ts.map +1 -1
  607. package/dist/server/default-logger.d.ts +23 -0
  608. package/dist/server/default-logger.d.ts.map +1 -0
  609. package/dist/server/default-status-page.d.ts +45 -0
  610. package/dist/server/default-status-page.d.ts.map +1 -0
  611. package/dist/server/deny-boundary.d.ts +257 -0
  612. package/dist/server/deny-boundary.d.ts.map +1 -0
  613. package/dist/server/deny-renderer.d.ts +21 -15
  614. package/dist/server/deny-renderer.d.ts.map +1 -1
  615. package/dist/server/early-hints-sender.d.ts.map +1 -1
  616. package/dist/server/early-hints.d.ts +14 -12
  617. package/dist/server/early-hints.d.ts.map +1 -1
  618. package/dist/server/error-boundary-wrapper.d.ts +102 -10
  619. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  620. package/dist/server/error-response-headers.d.ts +3 -0
  621. package/dist/server/error-response-headers.d.ts.map +1 -0
  622. package/dist/server/fallback-error.d.ts +19 -7
  623. package/dist/server/fallback-error.d.ts.map +1 -1
  624. package/dist/server/flight-injection-state.d.ts +66 -0
  625. package/dist/server/flight-injection-state.d.ts.map +1 -0
  626. package/dist/server/flight-scripts.d.ts +45 -0
  627. package/dist/server/flight-scripts.d.ts.map +1 -0
  628. package/dist/server/form-data.d.ts +41 -0
  629. package/dist/server/form-data.d.ts.map +1 -1
  630. package/dist/server/form-flash.d.ts +2 -2
  631. package/dist/server/head-response.d.ts +35 -0
  632. package/dist/server/head-response.d.ts.map +1 -0
  633. package/dist/server/html-injector-core.d.ts +257 -0
  634. package/dist/server/html-injector-core.d.ts.map +1 -0
  635. package/dist/server/html-injectors.d.ts +84 -42
  636. package/dist/server/html-injectors.d.ts.map +1 -1
  637. package/dist/server/index.d.ts +17 -54
  638. package/dist/server/index.d.ts.map +1 -1
  639. package/dist/server/index.js +195 -2922
  640. package/dist/server/index.js.map +1 -1
  641. package/dist/server/instrumentation.d.ts +11 -4
  642. package/dist/server/instrumentation.d.ts.map +1 -1
  643. package/dist/server/internal.d.ts +47 -0
  644. package/dist/server/internal.d.ts.map +1 -0
  645. package/dist/server/internal.js +4645 -0
  646. package/dist/server/internal.js.map +1 -0
  647. package/dist/server/json-status-response.d.ts +34 -0
  648. package/dist/server/json-status-response.d.ts.map +1 -0
  649. package/dist/server/logger.d.ts +78 -7
  650. package/dist/server/logger.d.ts.map +1 -1
  651. package/dist/server/metadata-collector.d.ts +73 -0
  652. package/dist/server/metadata-collector.d.ts.map +1 -0
  653. package/dist/server/metadata-platform.d.ts +2 -2
  654. package/dist/server/metadata-render.d.ts +2 -2
  655. package/dist/server/metadata-render.d.ts.map +1 -1
  656. package/dist/server/metadata-routes.d.ts +71 -11
  657. package/dist/server/metadata-routes.d.ts.map +1 -1
  658. package/dist/server/metadata-social.d.ts +2 -2
  659. package/dist/server/metadata.d.ts +10 -2
  660. package/dist/server/metadata.d.ts.map +1 -1
  661. package/dist/server/middleware-runner.d.ts +20 -5
  662. package/dist/server/middleware-runner.d.ts.map +1 -1
  663. package/dist/server/node-stream-transforms.d.ts +105 -0
  664. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  665. package/dist/server/nuqs-ssr-provider.d.ts +7 -3
  666. package/dist/server/nuqs-ssr-provider.d.ts.map +1 -1
  667. package/dist/server/param-coercion.d.ts +83 -0
  668. package/dist/server/param-coercion.d.ts.map +1 -0
  669. package/dist/server/pipeline-helpers.d.ts +193 -0
  670. package/dist/server/pipeline-helpers.d.ts.map +1 -0
  671. package/dist/server/pipeline-interception.d.ts +70 -9
  672. package/dist/server/pipeline-interception.d.ts.map +1 -1
  673. package/dist/server/pipeline-metadata.d.ts +7 -1
  674. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  675. package/dist/server/pipeline-outcome.d.ts +59 -0
  676. package/dist/server/pipeline-outcome.d.ts.map +1 -0
  677. package/dist/server/pipeline-phases.d.ts +70 -0
  678. package/dist/server/pipeline-phases.d.ts.map +1 -0
  679. package/dist/server/pipeline.d.ts +147 -23
  680. package/dist/server/pipeline.d.ts.map +1 -1
  681. package/dist/server/port-resolution.d.ts +31 -0
  682. package/dist/server/port-resolution.d.ts.map +1 -0
  683. package/dist/server/prebuilt/cache-key.d.ts +63 -0
  684. package/dist/server/prebuilt/cache-key.d.ts.map +1 -0
  685. package/dist/server/prebuilt/capture-render.d.ts +25 -0
  686. package/dist/server/prebuilt/capture-render.d.ts.map +1 -0
  687. package/dist/server/prebuilt/capture-routes.d.ts +37 -0
  688. package/dist/server/prebuilt/capture-routes.d.ts.map +1 -0
  689. package/dist/server/prebuilt/capture-state.d.ts +101 -0
  690. package/dist/server/prebuilt/capture-state.d.ts.map +1 -0
  691. package/dist/server/prebuilt/key-discipline.d.ts +52 -0
  692. package/dist/server/prebuilt/key-discipline.d.ts.map +1 -0
  693. package/dist/server/prebuilt/lifetime.d.ts +38 -0
  694. package/dist/server/prebuilt/lifetime.d.ts.map +1 -0
  695. package/dist/server/prebuilt/manifest-tag-index.d.ts +27 -0
  696. package/dist/server/prebuilt/manifest-tag-index.d.ts.map +1 -0
  697. package/dist/server/prebuilt/overlay.d.ts +100 -0
  698. package/dist/server/prebuilt/overlay.d.ts.map +1 -0
  699. package/dist/server/prebuilt/payload-source.d.ts +79 -0
  700. package/dist/server/prebuilt/payload-source.d.ts.map +1 -0
  701. package/dist/server/prebuilt/slots.d.ts +106 -0
  702. package/dist/server/prebuilt/slots.d.ts.map +1 -0
  703. package/dist/server/prebuilt/synthetic-store.d.ts +67 -0
  704. package/dist/server/prebuilt/synthetic-store.d.ts.map +1 -0
  705. package/dist/server/prebuilt-builder.d.ts +121 -0
  706. package/dist/server/prebuilt-builder.d.ts.map +1 -0
  707. package/dist/server/prebuilt-runtime.d.ts +111 -0
  708. package/dist/server/prebuilt-runtime.d.ts.map +1 -0
  709. package/dist/server/primitives.d.ts +101 -90
  710. package/dist/server/primitives.d.ts.map +1 -1
  711. package/dist/server/publish-params.d.ts +33 -0
  712. package/dist/server/publish-params.d.ts.map +1 -0
  713. package/dist/server/react-cache-bridge.d.ts +59 -0
  714. package/dist/server/react-cache-bridge.d.ts.map +1 -0
  715. package/dist/server/react-cache-scope.d.ts +49 -0
  716. package/dist/server/react-cache-scope.d.ts.map +1 -0
  717. package/dist/server/render-timeout.d.ts +66 -0
  718. package/dist/server/render-timeout.d.ts.map +1 -0
  719. package/dist/server/render-utils.d.ts +35 -0
  720. package/dist/server/render-utils.d.ts.map +1 -0
  721. package/dist/server/request-context.d.ts +128 -103
  722. package/dist/server/request-context.d.ts.map +1 -1
  723. package/dist/server/request-dep.d.ts +15 -0
  724. package/dist/server/request-dep.d.ts.map +1 -0
  725. package/dist/server/response-cache-policy.d.ts +3 -0
  726. package/dist/server/response-cache-policy.d.ts.map +1 -0
  727. package/dist/server/route-element-builder.d.ts +57 -30
  728. package/dist/server/route-element-builder.d.ts.map +1 -1
  729. package/dist/server/route-element-helpers.d.ts +12 -0
  730. package/dist/server/route-element-helpers.d.ts.map +1 -0
  731. package/dist/server/route-handler.d.ts +1 -1
  732. package/dist/server/route-handler.d.ts.map +1 -1
  733. package/dist/server/route-matcher.d.ts +55 -38
  734. package/dist/server/route-matcher.d.ts.map +1 -1
  735. package/dist/server/route-module-loader.d.ts +37 -0
  736. package/dist/server/route-module-loader.d.ts.map +1 -0
  737. package/dist/server/rsc-cache-key-guard.d.ts +78 -0
  738. package/dist/server/rsc-cache-key-guard.d.ts.map +1 -0
  739. package/dist/server/rsc-entry/action-dispatcher.d.ts +67 -0
  740. package/dist/server/rsc-entry/action-dispatcher.d.ts.map +1 -0
  741. package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
  742. package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
  743. package/dist/server/rsc-entry/api-handler.d.ts +19 -3
  744. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  745. package/dist/server/rsc-entry/deny-fallback.d.ts +55 -0
  746. package/dist/server/rsc-entry/deny-fallback.d.ts.map +1 -0
  747. package/dist/server/rsc-entry/error-renderer.d.ts +35 -21
  748. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  749. package/dist/server/rsc-entry/helpers.d.ts +14 -59
  750. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  751. package/dist/server/rsc-entry/index.d.ts +30 -6
  752. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  753. package/dist/server/rsc-entry/render-route.d.ts +50 -0
  754. package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
  755. package/dist/server/rsc-entry/render-signals.d.ts +65 -0
  756. package/dist/server/rsc-entry/render-signals.d.ts.map +1 -0
  757. package/dist/server/rsc-entry/revalidate-renderer.d.ts +98 -0
  758. package/dist/server/rsc-entry/revalidate-renderer.d.ts.map +1 -0
  759. package/dist/server/rsc-entry/rsc-payload.d.ts +30 -6
  760. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  761. package/dist/server/rsc-entry/rsc-stream.d.ts +12 -30
  762. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  763. package/dist/server/rsc-entry/ssr-bridge.d.ts +6 -2
  764. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  765. package/dist/server/rsc-entry/ssr-renderer.d.ts +44 -7
  766. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  767. package/dist/server/rsc-error-envelope.d.ts +11 -0
  768. package/dist/server/rsc-error-envelope.d.ts.map +1 -0
  769. package/dist/server/safe-load.d.ts +39 -0
  770. package/dist/server/safe-load.d.ts.map +1 -0
  771. package/dist/server/sensitive-fields.d.ts +74 -0
  772. package/dist/server/sensitive-fields.d.ts.map +1 -0
  773. package/dist/server/signal-identity.d.ts +43 -0
  774. package/dist/server/signal-identity.d.ts.map +1 -0
  775. package/dist/server/sitemap-generator.d.ts +130 -0
  776. package/dist/server/sitemap-generator.d.ts.map +1 -0
  777. package/dist/server/sitemap-handler.d.ts +22 -0
  778. package/dist/server/sitemap-handler.d.ts.map +1 -0
  779. package/dist/server/skippable-prefix.d.ts +29 -0
  780. package/dist/server/skippable-prefix.d.ts.map +1 -0
  781. package/dist/server/slot-interception.d.ts +80 -0
  782. package/dist/server/slot-interception.d.ts.map +1 -0
  783. package/dist/server/slot-resolver.d.ts +138 -7
  784. package/dist/server/slot-resolver.d.ts.map +1 -1
  785. package/dist/server/slot-subtree-contain.d.ts +54 -0
  786. package/dist/server/slot-subtree-contain.d.ts.map +1 -0
  787. package/dist/server/ssr-bridge-types.d.ts +198 -0
  788. package/dist/server/ssr-bridge-types.d.ts.map +1 -0
  789. package/dist/server/ssr-entry.d.ts +8 -47
  790. package/dist/server/ssr-entry.d.ts.map +1 -1
  791. package/dist/server/ssr-render.d.ts +60 -27
  792. package/dist/server/ssr-render.d.ts.map +1 -1
  793. package/dist/server/ssr-wrappers.d.ts +93 -0
  794. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  795. package/dist/server/state-tree-diff.d.ts +44 -9
  796. package/dist/server/state-tree-diff.d.ts.map +1 -1
  797. package/dist/server/static-generator.d.ts +112 -0
  798. package/dist/server/static-generator.d.ts.map +1 -0
  799. package/dist/server/static-not-found.d.ts +52 -0
  800. package/dist/server/static-not-found.d.ts.map +1 -0
  801. package/dist/server/status-code-resolver.d.ts +26 -15
  802. package/dist/server/status-code-resolver.d.ts.map +1 -1
  803. package/dist/server/stream-utils.d.ts +59 -0
  804. package/dist/server/stream-utils.d.ts.map +1 -0
  805. package/dist/server/tracing.d.ts +57 -26
  806. package/dist/server/tracing.d.ts.map +1 -1
  807. package/dist/server/tree-match.d.ts +59 -0
  808. package/dist/server/tree-match.d.ts.map +1 -0
  809. package/dist/server/types.d.ts +89 -8
  810. package/dist/server/types.d.ts.map +1 -1
  811. package/dist/server/utils/element-type.d.ts +50 -0
  812. package/dist/server/utils/element-type.d.ts.map +1 -0
  813. package/dist/server/utils/escape-html.d.ts +14 -0
  814. package/dist/server/utils/escape-html.d.ts.map +1 -0
  815. package/dist/server/version-skew.d.ts +61 -0
  816. package/dist/server/version-skew.d.ts.map +1 -0
  817. package/dist/server/workers-cache-bridge.d.ts +26 -0
  818. package/dist/server/workers-cache-bridge.d.ts.map +1 -0
  819. package/dist/shared/als-slots.d.ts +42 -0
  820. package/dist/shared/als-slots.d.ts.map +1 -0
  821. package/dist/shared/base-path.d.ts +56 -0
  822. package/dist/shared/base-path.d.ts.map +1 -0
  823. package/dist/shared/csrf-reject.d.ts +16 -0
  824. package/dist/shared/csrf-reject.d.ts.map +1 -0
  825. package/dist/shared/error-digest.d.ts +28 -0
  826. package/dist/shared/error-digest.d.ts.map +1 -0
  827. package/dist/shared/href-validation.d.ts +49 -0
  828. package/dist/shared/href-validation.d.ts.map +1 -0
  829. package/dist/shared/merge-search-params.d.ts +22 -0
  830. package/dist/shared/merge-search-params.d.ts.map +1 -0
  831. package/dist/shared/param-value.d.ts +104 -0
  832. package/dist/shared/param-value.d.ts.map +1 -0
  833. package/dist/shared/payload-root.d.ts +110 -0
  834. package/dist/shared/payload-root.d.ts.map +1 -0
  835. package/dist/shared/redirect-type.d.ts +17 -0
  836. package/dist/shared/redirect-type.d.ts.map +1 -0
  837. package/dist/shared/rsc-cache-key.d.ts +163 -0
  838. package/dist/shared/rsc-cache-key.d.ts.map +1 -0
  839. package/dist/shared/rsc-error-envelope.d.ts +16 -0
  840. package/dist/shared/rsc-error-envelope.d.ts.map +1 -0
  841. package/dist/shared/rsc-manifest.d.ts +28 -0
  842. package/dist/shared/rsc-manifest.d.ts.map +1 -0
  843. package/dist/shared/rsc-media-type.d.ts +52 -0
  844. package/dist/shared/rsc-media-type.d.ts.map +1 -0
  845. package/dist/shared/rsc-payload-path.d.ts +48 -0
  846. package/dist/shared/rsc-payload-path.d.ts.map +1 -0
  847. package/dist/shared/segment-info.d.ts +66 -0
  848. package/dist/shared/segment-info.d.ts.map +1 -0
  849. package/dist/shared/slot-params.d.ts +52 -0
  850. package/dist/shared/slot-params.d.ts.map +1 -0
  851. package/dist/shared/static-platform-files.d.ts +71 -0
  852. package/dist/shared/static-platform-files.d.ts.map +1 -0
  853. package/dist/shared/status-reason-phrase.d.ts +26 -0
  854. package/dist/shared/status-reason-phrase.d.ts.map +1 -0
  855. package/dist/shims/font-google.d.ts +1 -1
  856. package/dist/shims/font-google.d.ts.map +1 -1
  857. package/dist/shims/font-google.js +42 -0
  858. package/dist/shims/font-google.js.map +1 -0
  859. package/dist/shims/font-local.d.ts +26 -0
  860. package/dist/shims/font-local.d.ts.map +1 -0
  861. package/dist/shims/font-local.js +20 -0
  862. package/dist/shims/font-local.js.map +1 -0
  863. package/dist/shims/headers.d.ts +53 -1
  864. package/dist/shims/headers.d.ts.map +1 -1
  865. package/dist/shims/image.d.ts +120 -120
  866. package/dist/shims/image.d.ts.map +1 -1
  867. package/dist/shims/navigation-client.d.ts +25 -12
  868. package/dist/shims/navigation-client.d.ts.map +1 -1
  869. package/dist/shims/navigation-rsc.d.ts +21 -0
  870. package/dist/shims/navigation-rsc.d.ts.map +1 -0
  871. package/dist/shims/navigation.d.ts +10 -5
  872. package/dist/shims/navigation.d.ts.map +1 -1
  873. package/dist/utils/state-machine.d.ts +80 -0
  874. package/dist/utils/state-machine.d.ts.map +1 -0
  875. package/dist/utils/write-file-atomic.d.ts +17 -0
  876. package/dist/utils/write-file-atomic.d.ts.map +1 -0
  877. package/docs/api/30-api-server.mdx +239 -0
  878. package/docs/api/31-api-client.mdx +170 -0
  879. package/docs/api/32-api-cache.mdx +339 -0
  880. package/docs/api/33-api-search-params.mdx +176 -0
  881. package/docs/api/34-api-config.mdx +359 -0
  882. package/docs/api/35-api-typescript.mdx +91 -0
  883. package/docs/api/36-cli.mdx +202 -0
  884. package/docs/learn/00-introduction.mdx +109 -0
  885. package/docs/learn/01-quick-start.mdx +94 -0
  886. package/docs/learn/02-pages-and-layouts.mdx +147 -0
  887. package/docs/learn/03-fetching-data.mdx +227 -0
  888. package/docs/learn/04-access-control.mdx +115 -0
  889. package/docs/learn/05-the-flush-point.mdx +175 -0
  890. package/docs/learn/06-typed-params.mdx +275 -0
  891. package/docs/learn/07-typed-routes.mdx +108 -0
  892. package/docs/learn/08-forms-and-actions.mdx +146 -0
  893. package/docs/learn/09-streaming.mdx +140 -0
  894. package/docs/learn/10-caching.mdx +270 -0
  895. package/docs/learn/11-middleware.mdx +164 -0
  896. package/docs/learn/12-error-handling.mdx +192 -0
  897. package/docs/learn/13-deploying.mdx +287 -0
  898. package/llms.txt +55 -0
  899. package/package.json +120 -29
  900. package/src/adapters/build-output-helper.ts +353 -0
  901. package/src/adapters/canonicalize-module.ts +29 -0
  902. package/src/adapters/cloudflare-dev.ts +183 -0
  903. package/src/adapters/cloudflare-kv-cache.ts +207 -0
  904. package/src/adapters/cloudflare.ts +809 -150
  905. package/src/adapters/compress-module.ts +110 -86
  906. package/src/adapters/fs-identity.ts +155 -0
  907. package/src/adapters/nitro-presets.ts +124 -0
  908. package/src/adapters/nitro-preview.ts +476 -0
  909. package/src/adapters/nitro.ts +317 -457
  910. package/src/adapters/raw-imports.d.ts +5 -0
  911. package/src/adapters/shared.ts +283 -0
  912. package/src/adapters/types.ts +127 -17
  913. package/src/adapters/wrangler.d.ts +7 -0
  914. package/src/analyze/chains.ts +411 -0
  915. package/src/analyze/classify.ts +259 -0
  916. package/src/analyze/crawl-entry.ts +68 -0
  917. package/src/analyze/crawl.ts +500 -0
  918. package/src/analyze/graph-cache.ts +331 -0
  919. package/src/analyze/graph-command.ts +762 -0
  920. package/src/analyze/live-graph.ts +232 -0
  921. package/src/analyze/poison-rules.ts +165 -0
  922. package/src/analyze/poison-scan.ts +162 -0
  923. package/src/analyze/scan.ts +149 -0
  924. package/src/cache/cache-api.ts +107 -0
  925. package/src/cache/fast-hash.ts +5 -0
  926. package/src/cache/handler-store.ts +76 -0
  927. package/src/cache/index.ts +115 -22
  928. package/src/cache/invalidation-epoch.ts +93 -0
  929. package/src/cache/json-lossy-check.ts +69 -0
  930. package/src/cache/redis-handler.ts +198 -20
  931. package/src/cache/singleflight.ts +72 -6
  932. package/src/cache/sizeof.ts +35 -0
  933. package/src/cache/stable-stringify.ts +65 -2
  934. package/src/cache/store.ts +71 -0
  935. package/src/cache/stores/cloudflare-kv.ts +52 -0
  936. package/src/cache/stores/memory.ts +125 -0
  937. package/src/cache/stores/redis.ts +97 -0
  938. package/src/cache/stores/vercel.ts +59 -0
  939. package/src/cache/tag-aware-handler.ts +254 -0
  940. package/src/cache/timber-cache.ts +165 -40
  941. package/src/cdn/cloudflare-purge.ts +50 -0
  942. package/src/cdn/fastly-purge.ts +63 -0
  943. package/src/cdn/headers.ts +153 -0
  944. package/src/cdn/index.ts +23 -0
  945. package/src/cdn/purge-store.ts +34 -0
  946. package/src/cdn/workers-cache-purge.ts +34 -0
  947. package/src/cli-check.ts +417 -0
  948. package/src/cli-context.ts +119 -0
  949. package/src/cli-schema-sync.ts +401 -0
  950. package/src/cli.ts +330 -78
  951. package/src/client/browser-dev.ts +192 -5
  952. package/src/client/browser-entry/action-dispatch.ts +237 -0
  953. package/src/client/browser-entry/action-queue.ts +152 -0
  954. package/src/client/browser-entry/hmr.ts +70 -0
  955. package/src/client/browser-entry/hydrate.ts +143 -0
  956. package/src/client/browser-entry/index.ts +120 -0
  957. package/src/client/browser-entry/post-hydration.ts +99 -0
  958. package/src/client/browser-entry/router-init.ts +406 -0
  959. package/src/client/browser-entry/rsc-stream.ts +145 -0
  960. package/src/client/browser-entry/scroll.ts +50 -0
  961. package/src/client/deny-last-resort.tsx +54 -0
  962. package/src/client/error-boundary.tsx +279 -61
  963. package/src/client/error-reconstituter.tsx +84 -0
  964. package/src/client/form.tsx +36 -32
  965. package/src/client/global-context.ts +31 -0
  966. package/src/client/history.ts +74 -11
  967. package/src/client/index.ts +89 -53
  968. package/src/client/internal.ts +54 -0
  969. package/src/client/link.tsx +468 -151
  970. package/src/client/location-search.ts +15 -0
  971. package/src/client/navigation-api.ts +380 -0
  972. package/src/client/navigation-commit.ts +318 -0
  973. package/src/client/navigation-context.ts +67 -134
  974. package/src/client/navigation-root.tsx +236 -0
  975. package/src/client/navigation-transition.ts +337 -0
  976. package/src/client/nuqs-adapter.tsx +21 -9
  977. package/src/client/params-context.ts +187 -0
  978. package/src/client/react-root.ts +82 -0
  979. package/src/client/router-effects.ts +235 -0
  980. package/src/client/router-lifecycle.ts +354 -0
  981. package/src/client/router-pipeline.ts +458 -0
  982. package/src/client/router-ref.ts +3 -3
  983. package/src/client/router-skew.ts +30 -0
  984. package/src/client/router-types.ts +370 -0
  985. package/src/client/router-url.ts +32 -0
  986. package/src/client/router.ts +491 -424
  987. package/src/client/rsc-fetch.ts +510 -109
  988. package/src/client/segment-cache.ts +362 -41
  989. package/src/client/segment-context.ts +7 -4
  990. package/src/client/segment-outlet.tsx +96 -0
  991. package/src/client/segment-update-context.ts +23 -0
  992. package/src/client/shallow-url.ts +22 -0
  993. package/src/client/slot-content-cache-context.ts +43 -0
  994. package/src/client/slot-context.ts +50 -0
  995. package/src/client/slot-outlet.tsx +22 -0
  996. package/src/client/slot-provider.tsx +32 -0
  997. package/src/client/ssr-data.ts +27 -67
  998. package/src/client/stale-client.ts +191 -0
  999. package/src/client/state.ts +31 -24
  1000. package/src/client/status-page-marker.tsx +32 -0
  1001. package/src/client/top-loader.tsx +13 -10
  1002. package/src/client/unload-guard.ts +35 -3
  1003. package/src/client/use-cookie.ts +70 -18
  1004. package/src/client/use-link-status.ts +7 -7
  1005. package/src/client/use-pathname.ts +22 -31
  1006. package/src/client/use-pending-navigation.ts +40 -0
  1007. package/src/client/use-query-states.ts +206 -36
  1008. package/src/client/use-router.ts +31 -9
  1009. package/src/client/use-search-params.ts +38 -49
  1010. package/src/client/use-segment-params.ts +69 -0
  1011. package/src/client/use-selected-layout-segment.ts +2 -2
  1012. package/src/codec.ts +149 -0
  1013. package/src/config-types.ts +323 -0
  1014. package/src/config-validation.ts +464 -0
  1015. package/src/cookies/define-cookie.ts +222 -53
  1016. package/src/cookies/index.ts +13 -2
  1017. package/src/cookies/json-cookie.ts +105 -0
  1018. package/src/cookies/validation.ts +192 -0
  1019. package/src/dev-tools/404-page.ts +286 -0
  1020. package/src/dev-tools/browser-logs.ts +55 -0
  1021. package/src/dev-tools/dev-page-shell.ts +278 -0
  1022. package/src/dev-tools/error-page.ts +331 -0
  1023. package/src/dev-tools/holding-server.ts +185 -0
  1024. package/src/dev-tools/hydration-overlay.ts +158 -0
  1025. package/src/dev-tools/index.ts +79 -0
  1026. package/src/dev-tools/instrumentation.ts +261 -0
  1027. package/src/{server/dev-logger.ts → dev-tools/logger.ts} +33 -51
  1028. package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +122 -26
  1029. package/src/{plugins/dev-error-overlay.ts → dev-tools/overlay.ts} +25 -80
  1030. package/src/dev-tools/stack-classifier.ts +75 -0
  1031. package/src/dev-tools/terminal.ts +182 -0
  1032. package/src/fonts/ast-walk.ts +235 -0
  1033. package/src/fonts/ast.ts +479 -128
  1034. package/src/fonts/bundle.ts +138 -0
  1035. package/src/fonts/css.ts +1 -1
  1036. package/src/fonts/dev-middleware.ts +85 -0
  1037. package/src/fonts/fallbacks.ts +0 -23
  1038. package/src/fonts/google.ts +101 -19
  1039. package/src/fonts/local.ts +12 -11
  1040. package/src/fonts/paths.ts +58 -0
  1041. package/src/fonts/pipeline.ts +348 -0
  1042. package/src/fonts/transform.ts +311 -0
  1043. package/src/fonts/types.ts +52 -1
  1044. package/src/fonts/virtual-modules.ts +179 -0
  1045. package/src/index.ts +494 -380
  1046. package/src/params/codec-registry.ts +34 -0
  1047. package/src/params/define-schema.ts +115 -0
  1048. package/src/params/index.ts +17 -0
  1049. package/src/params/resolve-schema.ts +84 -0
  1050. package/src/plugin-context.ts +502 -0
  1051. package/src/plugins/build-manifest.ts +204 -36
  1052. package/src/plugins/build-report.ts +299 -87
  1053. package/src/plugins/cache.ts +243 -0
  1054. package/src/plugins/callsite-ast.ts +472 -0
  1055. package/src/plugins/callsite-jsx.ts +243 -0
  1056. package/src/plugins/chunks.ts +74 -5
  1057. package/src/plugins/client-chunks.ts +185 -0
  1058. package/src/plugins/cloudflare-wasm.ts +141 -0
  1059. package/src/plugins/content.ts +5 -1
  1060. package/src/plugins/dev-discovery.ts +218 -0
  1061. package/src/plugins/dev-server.ts +360 -97
  1062. package/src/plugins/entries.ts +142 -16
  1063. package/src/plugins/fonts.ts +260 -657
  1064. package/src/plugins/graph-endpoint.ts +532 -0
  1065. package/src/plugins/mdx.ts +108 -35
  1066. package/src/plugins/post-build.ts +327 -0
  1067. package/src/plugins/prebuilt-capture.ts +213 -0
  1068. package/src/plugins/prebuilt-options-analysis.ts +175 -0
  1069. package/src/plugins/prebuilt.ts +670 -0
  1070. package/src/plugins/prerender-sugar.ts +316 -0
  1071. package/src/plugins/react-resolve.ts +149 -0
  1072. package/src/plugins/request-dep/analysis.ts +447 -0
  1073. package/src/plugins/request-dep/index.ts +376 -0
  1074. package/src/plugins/request-dep/origin.ts +310 -0
  1075. package/src/plugins/routing.ts +273 -277
  1076. package/src/plugins/rsc-assets-manifest.ts +251 -0
  1077. package/src/plugins/server-bundle.ts +99 -14
  1078. package/src/plugins/shims.ts +260 -97
  1079. package/src/plugins/static-build.ts +681 -71
  1080. package/src/react-canary.d.ts +2 -0
  1081. package/src/routing/codegen-shared.ts +39 -0
  1082. package/src/routing/codegen-types.ts +62 -0
  1083. package/src/routing/codegen-write.ts +163 -0
  1084. package/src/routing/codegen.ts +349 -232
  1085. package/src/routing/collision-probe.ts +438 -0
  1086. package/src/routing/collision-spaces.ts +281 -0
  1087. package/src/routing/convention-lint.ts +651 -0
  1088. package/src/routing/export-detect.ts +536 -0
  1089. package/src/routing/file-cache.ts +23 -0
  1090. package/src/routing/index.ts +16 -7
  1091. package/src/routing/interception-overlap.ts +141 -0
  1092. package/src/routing/interception.ts +1044 -67
  1093. package/src/routing/link-codegen.ts +280 -0
  1094. package/src/routing/manifest-codegen.ts +232 -0
  1095. package/src/routing/scanner.ts +417 -223
  1096. package/src/routing/schema-validation.ts +155 -0
  1097. package/src/routing/segment-classify.ts +280 -0
  1098. package/src/routing/segment-codegen.ts +99 -0
  1099. package/src/routing/segment-keys.ts +186 -0
  1100. package/src/routing/slot-placement.ts +97 -0
  1101. package/src/routing/types.ts +82 -26
  1102. package/src/routing/walkers.ts +98 -0
  1103. package/src/rsc-runtime/rsc.ts +9 -0
  1104. package/src/rsc-runtime/ssr.ts +51 -0
  1105. package/src/rsc-runtime/transforms.ts +13 -0
  1106. package/src/rsc-runtime/vendor-types.d.ts +27 -0
  1107. package/src/schema-bridge.ts +382 -0
  1108. package/src/search-params/define.ts +677 -0
  1109. package/src/search-params/index.ts +14 -20
  1110. package/src/search-params/parse-total.ts +91 -0
  1111. package/src/search-params/serialize-equal.ts +14 -0
  1112. package/src/search-params/wrappers.ts +150 -0
  1113. package/src/server/access-gate.tsx +195 -56
  1114. package/src/server/action-client.ts +126 -33
  1115. package/src/server/action-encryption.ts +144 -0
  1116. package/src/server/action-handler.ts +457 -111
  1117. package/src/server/actions.ts +172 -85
  1118. package/src/server/als-registry.ts +224 -25
  1119. package/src/server/body-limits.ts +10 -2
  1120. package/src/server/build-manifest.ts +33 -57
  1121. package/src/server/canonicalize.ts +6 -3
  1122. package/src/server/chain-url-parts.ts +163 -0
  1123. package/src/server/children-interception.ts +116 -0
  1124. package/src/server/coalesce-tick.ts +75 -0
  1125. package/src/server/compress.ts +43 -8
  1126. package/src/server/cookie-context.ts +454 -0
  1127. package/src/server/cookie-parsing.ts +163 -0
  1128. package/src/server/csp-nonce.ts +58 -0
  1129. package/src/server/csrf.ts +228 -35
  1130. package/src/server/debug.ts +0 -1
  1131. package/src/server/default-logger.ts +100 -0
  1132. package/src/server/default-status-page.ts +88 -0
  1133. package/src/server/deny-boundary.ts +527 -0
  1134. package/src/server/deny-renderer.ts +201 -179
  1135. package/src/server/early-hints-sender.ts +4 -3
  1136. package/src/server/early-hints.ts +39 -29
  1137. package/src/server/error-boundary-wrapper.ts +160 -44
  1138. package/src/server/error-response-headers.ts +18 -0
  1139. package/src/server/fallback-error.ts +88 -104
  1140. package/src/server/flight-injection-state.ts +113 -0
  1141. package/src/server/flight-scripts.ts +67 -0
  1142. package/src/server/form-data.ts +124 -12
  1143. package/src/server/form-flash.ts +3 -3
  1144. package/src/server/head-response.ts +54 -0
  1145. package/src/server/html-injector-core.ts +512 -0
  1146. package/src/server/html-injectors.ts +270 -255
  1147. package/src/server/index.ts +36 -192
  1148. package/src/server/instrumentation.ts +11 -4
  1149. package/src/server/internal.ts +168 -0
  1150. package/src/server/json-status-response.ts +105 -0
  1151. package/src/server/logger.ts +126 -38
  1152. package/src/server/metadata-collector.ts +177 -0
  1153. package/src/server/metadata-platform.ts +2 -2
  1154. package/src/server/metadata-render.ts +30 -8
  1155. package/src/server/metadata-routes.ts +220 -24
  1156. package/src/server/metadata-social.ts +2 -2
  1157. package/src/server/metadata.ts +23 -2
  1158. package/src/server/middleware-runner.ts +32 -5
  1159. package/src/server/node-stream-transforms.ts +323 -0
  1160. package/src/server/nuqs-ssr-provider.tsx +8 -7
  1161. package/src/server/param-coercion.ts +201 -0
  1162. package/src/server/pipeline-helpers.ts +485 -0
  1163. package/src/server/pipeline-interception.ts +241 -32
  1164. package/src/server/pipeline-metadata.ts +15 -1
  1165. package/src/server/pipeline-outcome.ts +290 -0
  1166. package/src/server/pipeline-phases.ts +496 -0
  1167. package/src/server/pipeline.ts +385 -427
  1168. package/src/server/port-resolution.ts +53 -0
  1169. package/src/server/prebuilt/cache-key.ts +299 -0
  1170. package/src/server/prebuilt/capture-render.ts +118 -0
  1171. package/src/server/prebuilt/capture-routes.ts +104 -0
  1172. package/src/server/prebuilt/capture-state.ts +196 -0
  1173. package/src/server/prebuilt/key-discipline.ts +122 -0
  1174. package/src/server/prebuilt/lifetime.ts +151 -0
  1175. package/src/server/prebuilt/manifest-tag-index.ts +46 -0
  1176. package/src/server/prebuilt/overlay.ts +256 -0
  1177. package/src/server/prebuilt/payload-source.ts +202 -0
  1178. package/src/server/prebuilt/slots.ts +202 -0
  1179. package/src/server/prebuilt/synthetic-store.ts +125 -0
  1180. package/src/server/prebuilt-builder.ts +514 -0
  1181. package/src/server/prebuilt-runtime.ts +813 -0
  1182. package/src/server/primitives.ts +153 -171
  1183. package/src/server/publish-params.ts +42 -0
  1184. package/src/server/react-cache-bridge.ts +124 -0
  1185. package/src/server/react-cache-scope.ts +104 -0
  1186. package/src/server/render-timeout.ts +128 -0
  1187. package/src/server/render-utils.ts +45 -0
  1188. package/src/server/request-context.ts +269 -332
  1189. package/src/server/request-dep.ts +37 -0
  1190. package/src/server/response-cache-policy.ts +45 -0
  1191. package/src/server/route-element-builder.ts +514 -355
  1192. package/src/server/route-element-helpers.ts +37 -0
  1193. package/src/server/route-handler.ts +67 -27
  1194. package/src/server/route-matcher.ts +238 -267
  1195. package/src/server/route-module-loader.ts +161 -0
  1196. package/src/server/rsc-cache-key-guard.ts +122 -0
  1197. package/src/server/rsc-entry/action-dispatcher.ts +142 -0
  1198. package/src/server/rsc-entry/action-middleware-runner.ts +130 -0
  1199. package/src/server/rsc-entry/api-handler.ts +49 -81
  1200. package/src/server/rsc-entry/deny-fallback.ts +151 -0
  1201. package/src/server/rsc-entry/error-renderer.ts +301 -113
  1202. package/src/server/rsc-entry/helpers.ts +90 -115
  1203. package/src/server/rsc-entry/index.ts +370 -350
  1204. package/src/server/rsc-entry/render-route.ts +229 -0
  1205. package/src/server/rsc-entry/render-signals.ts +108 -0
  1206. package/src/server/rsc-entry/revalidate-renderer.ts +349 -0
  1207. package/src/server/rsc-entry/rsc-payload.ts +192 -72
  1208. package/src/server/rsc-entry/rsc-stream.ts +128 -131
  1209. package/src/server/rsc-entry/ssr-bridge.ts +19 -6
  1210. package/src/server/rsc-entry/ssr-renderer.ts +300 -137
  1211. package/src/server/rsc-error-envelope.ts +18 -0
  1212. package/src/server/rsc-prop-warnings.ts +1 -1
  1213. package/src/server/safe-load.ts +53 -0
  1214. package/src/server/sensitive-fields.ts +230 -0
  1215. package/src/server/server-only-guard-noop.js +3 -0
  1216. package/src/server/server-timing.ts +1 -1
  1217. package/src/server/signal-identity.ts +112 -0
  1218. package/src/server/sitemap-generator.ts +337 -0
  1219. package/src/server/sitemap-handler.ts +157 -0
  1220. package/src/server/skippable-prefix.ts +172 -0
  1221. package/src/server/slot-interception.ts +168 -0
  1222. package/src/server/slot-resolver.ts +707 -300
  1223. package/src/server/slot-subtree-contain.ts +273 -0
  1224. package/src/server/ssr-bridge-types.ts +201 -0
  1225. package/src/server/ssr-entry.ts +225 -104
  1226. package/src/server/ssr-render.ts +354 -91
  1227. package/src/server/ssr-wrappers.tsx +162 -0
  1228. package/src/server/state-tree-diff.ts +85 -30
  1229. package/src/server/static-generator.ts +680 -0
  1230. package/src/server/static-not-found.ts +134 -0
  1231. package/src/server/status-code-resolver.ts +107 -148
  1232. package/src/server/stream-utils.ts +343 -0
  1233. package/src/server/tracing.ts +163 -68
  1234. package/src/server/tree-match.ts +494 -0
  1235. package/src/server/types.ts +96 -11
  1236. package/src/server/utils/element-type.ts +88 -0
  1237. package/src/server/utils/escape-html.ts +20 -0
  1238. package/src/server/version-skew.ts +104 -0
  1239. package/src/server/waituntil-bridge.ts +1 -1
  1240. package/src/server/workers-cache-bridge.ts +33 -0
  1241. package/src/shared/als-slots.ts +74 -0
  1242. package/src/shared/base-path.ts +80 -0
  1243. package/src/shared/csrf-reject.ts +15 -0
  1244. package/src/shared/error-digest.ts +46 -0
  1245. package/src/shared/href-validation.ts +159 -0
  1246. package/src/shared/merge-search-params.ts +55 -0
  1247. package/src/shared/param-value.ts +281 -0
  1248. package/src/shared/payload-root.ts +153 -0
  1249. package/src/shared/redirect-type.ts +17 -0
  1250. package/src/shared/rsc-cache-key.ts +269 -0
  1251. package/src/shared/rsc-error-envelope.ts +16 -0
  1252. package/src/shared/rsc-manifest.ts +29 -0
  1253. package/src/shared/rsc-media-type.ts +59 -0
  1254. package/src/shared/rsc-payload-path.ts +52 -0
  1255. package/src/shared/segment-info.ts +67 -0
  1256. package/src/shared/slot-params.ts +109 -0
  1257. package/src/shared/static-platform-files.ts +75 -0
  1258. package/src/shared/status-reason-phrase.ts +61 -0
  1259. package/src/shims/font-google.ts +1 -1
  1260. package/src/shims/font-local.ts +34 -0
  1261. package/src/shims/headers.ts +122 -1
  1262. package/src/shims/navigation-client.ts +36 -32
  1263. package/src/shims/navigation-rsc.ts +47 -0
  1264. package/src/shims/navigation.ts +10 -7
  1265. package/src/utils/state-machine.ts +111 -0
  1266. package/src/utils/write-file-atomic.ts +32 -0
  1267. package/dist/_chunks/als-registry-B7DbZ2hS.js +0 -41
  1268. package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
  1269. package/dist/_chunks/debug-B3Gypr3D.js +0 -108
  1270. package/dist/_chunks/debug-B3Gypr3D.js.map +0 -1
  1271. package/dist/_chunks/format-RyoGQL74.js +0 -164
  1272. package/dist/_chunks/format-RyoGQL74.js.map +0 -1
  1273. package/dist/_chunks/interception-BOoWmLUA.js +0 -676
  1274. package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
  1275. package/dist/_chunks/metadata-routes-Cjmvi3rQ.js.map +0 -1
  1276. package/dist/_chunks/request-context-BQUC8PHn.js +0 -330
  1277. package/dist/_chunks/request-context-BQUC8PHn.js.map +0 -1
  1278. package/dist/_chunks/ssr-data-MjmprTmO.js +0 -88
  1279. package/dist/_chunks/ssr-data-MjmprTmO.js.map +0 -1
  1280. package/dist/_chunks/tracing-CemImE6h.js +0 -187
  1281. package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
  1282. package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
  1283. package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
  1284. package/dist/_chunks/use-query-states-D5KaffOK.js +0 -109
  1285. package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
  1286. package/dist/adapters/cloudflare.js.map +0 -1
  1287. package/dist/cache/index.js.map +0 -1
  1288. package/dist/cache/register-cached-function.d.ts +0 -17
  1289. package/dist/cache/register-cached-function.d.ts.map +0 -1
  1290. package/dist/client/browser-entry.d.ts +0 -21
  1291. package/dist/client/browser-entry.d.ts.map +0 -1
  1292. package/dist/client/error-boundary.js.map +0 -1
  1293. package/dist/client/head.d.ts +0 -16
  1294. package/dist/client/head.d.ts.map +0 -1
  1295. package/dist/client/link-status-provider.d.ts +0 -11
  1296. package/dist/client/link-status-provider.d.ts.map +0 -1
  1297. package/dist/client/segment-merger.d.ts +0 -119
  1298. package/dist/client/segment-merger.d.ts.map +0 -1
  1299. package/dist/client/stale-reload.d.ts +0 -44
  1300. package/dist/client/stale-reload.d.ts.map +0 -1
  1301. package/dist/client/transition-root.d.ts +0 -74
  1302. package/dist/client/transition-root.d.ts.map +0 -1
  1303. package/dist/client/types.d.ts +0 -14
  1304. package/dist/client/types.d.ts.map +0 -1
  1305. package/dist/client/use-navigation-pending.d.ts +0 -26
  1306. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  1307. package/dist/client/use-params.d.ts +0 -92
  1308. package/dist/client/use-params.d.ts.map +0 -1
  1309. package/dist/content/index.d.ts +0 -11
  1310. package/dist/content/index.d.ts.map +0 -1
  1311. package/dist/content/index.js +0 -2
  1312. package/dist/plugins/adapter-build.d.ts +0 -18
  1313. package/dist/plugins/adapter-build.d.ts.map +0 -1
  1314. package/dist/plugins/cache-transform.d.ts +0 -36
  1315. package/dist/plugins/cache-transform.d.ts.map +0 -1
  1316. package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
  1317. package/dist/plugins/dev-logs.d.ts.map +0 -1
  1318. package/dist/plugins/dynamic-transform.d.ts +0 -72
  1319. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  1320. package/dist/plugins/server-action-exports.d.ts +0 -26
  1321. package/dist/plugins/server-action-exports.d.ts.map +0 -1
  1322. package/dist/routing/status-file-lint.d.ts +0 -33
  1323. package/dist/routing/status-file-lint.d.ts.map +0 -1
  1324. package/dist/search-params/analyze.d.ts +0 -54
  1325. package/dist/search-params/analyze.d.ts.map +0 -1
  1326. package/dist/search-params/builtin-codecs.d.ts +0 -105
  1327. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  1328. package/dist/search-params/codecs.d.ts +0 -53
  1329. package/dist/search-params/codecs.d.ts.map +0 -1
  1330. package/dist/search-params/create.d.ts +0 -106
  1331. package/dist/search-params/create.d.ts.map +0 -1
  1332. package/dist/search-params/registry.d.ts +0 -20
  1333. package/dist/search-params/registry.d.ts.map +0 -1
  1334. package/dist/server/asset-headers.d.ts +0 -42
  1335. package/dist/server/asset-headers.d.ts.map +0 -1
  1336. package/dist/server/client-module-map.d.ts +0 -47
  1337. package/dist/server/client-module-map.d.ts.map +0 -1
  1338. package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
  1339. package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
  1340. package/dist/server/dev-logger.d.ts.map +0 -1
  1341. package/dist/server/dev-span-processor.d.ts +0 -29
  1342. package/dist/server/dev-span-processor.d.ts.map +0 -1
  1343. package/dist/server/dev-warnings.d.ts +0 -129
  1344. package/dist/server/dev-warnings.d.ts.map +0 -1
  1345. package/dist/server/flush.d.ts +0 -74
  1346. package/dist/server/flush.d.ts.map +0 -1
  1347. package/dist/server/manifest-status-resolver.d.ts +0 -58
  1348. package/dist/server/manifest-status-resolver.d.ts.map +0 -1
  1349. package/dist/server/prerender.d.ts +0 -77
  1350. package/dist/server/prerender.d.ts.map +0 -1
  1351. package/dist/server/tree-builder.d.ts +0 -126
  1352. package/dist/server/tree-builder.d.ts.map +0 -1
  1353. package/dist/utils/directive-parser.d.ts +0 -70
  1354. package/dist/utils/directive-parser.d.ts.map +0 -1
  1355. package/src/cache/register-cached-function.ts +0 -103
  1356. package/src/client/browser-entry.ts +0 -678
  1357. package/src/client/head.ts +0 -61
  1358. package/src/client/link-status-provider.tsx +0 -30
  1359. package/src/client/segment-merger.ts +0 -339
  1360. package/src/client/stale-reload.ts +0 -87
  1361. package/src/client/transition-root.tsx +0 -166
  1362. package/src/client/types.ts +0 -21
  1363. package/src/client/use-navigation-pending.ts +0 -38
  1364. package/src/client/use-params.ts +0 -141
  1365. package/src/content/index.ts +0 -13
  1366. package/src/plugins/adapter-build.ts +0 -118
  1367. package/src/plugins/cache-transform.ts +0 -199
  1368. package/src/plugins/dynamic-transform.ts +0 -161
  1369. package/src/plugins/server-action-exports.ts +0 -220
  1370. package/src/routing/status-file-lint.ts +0 -112
  1371. package/src/search-params/analyze.ts +0 -192
  1372. package/src/search-params/builtin-codecs.ts +0 -228
  1373. package/src/search-params/codecs.ts +0 -153
  1374. package/src/search-params/create.ts +0 -321
  1375. package/src/search-params/registry.ts +0 -31
  1376. package/src/server/asset-headers.ts +0 -81
  1377. package/src/server/client-module-map.ts +0 -58
  1378. package/src/server/dev-fetch-instrumentation.ts +0 -96
  1379. package/src/server/dev-span-processor.ts +0 -78
  1380. package/src/server/dev-warnings.ts +0 -283
  1381. package/src/server/flush.ts +0 -182
  1382. package/src/server/manifest-status-resolver.ts +0 -215
  1383. package/src/server/prerender.ts +0 -139
  1384. package/src/server/tree-builder.ts +0 -382
  1385. package/src/shims/server-only-noop.js +0 -6
  1386. package/src/utils/directive-parser.ts +0 -529
@@ -0,0 +1,30 @@
1
+ //#region src/cdn/cloudflare-purge.ts
2
+ var CloudflarePurge = class {
3
+ zoneId;
4
+ apiToken;
5
+ _fetch;
6
+ constructor(opts) {
7
+ this.zoneId = opts.zoneId;
8
+ this.apiToken = opts.apiToken;
9
+ this._fetch = opts.fetch ?? globalThis.fetch;
10
+ }
11
+ async purgeTags(tags) {
12
+ if (tags.length === 0) return;
13
+ const res = await this._fetch(`https://api.cloudflare.com/client/v4/zones/${this.zoneId}/purge_cache`, {
14
+ method: "POST",
15
+ headers: {
16
+ "Authorization": `Bearer ${this.apiToken}`,
17
+ "Content-Type": "application/json"
18
+ },
19
+ body: JSON.stringify({ tags })
20
+ });
21
+ if (!res.ok) {
22
+ const body = await res.text();
23
+ throw new Error(`Cloudflare purge failed (${res.status}): ${body}`);
24
+ }
25
+ }
26
+ };
27
+ //#endregion
28
+ export { CloudflarePurge };
29
+
30
+ //# sourceMappingURL=cloudflare-purge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare-purge.js","names":[],"sources":["../../src/cdn/cloudflare-purge.ts"],"sourcesContent":["/**\n * Cloudflare CDN purge handler — purges by cache tag via the Cloudflare API.\n *\n * Requires Cloudflare Enterprise for tag-based purging.\n * See https://developers.cloudflare.com/cache/how-to/purge-cache/purge-by-tags/\n */\n\nimport type { CdnPurgeHandler } from './purge-store.ts';\n\nexport interface CloudflarePurgeOptions {\n /** Cloudflare zone ID. */\n zoneId: string;\n /** API token with Cache Purge permission. */\n apiToken: string;\n /** Override fetch for testing. */\n fetch?: typeof globalThis.fetch;\n}\n\nexport class CloudflarePurge implements CdnPurgeHandler {\n private readonly zoneId: string;\n private readonly apiToken: string;\n private readonly _fetch: typeof globalThis.fetch;\n\n constructor(opts: CloudflarePurgeOptions) {\n this.zoneId = opts.zoneId;\n this.apiToken = opts.apiToken;\n this._fetch = opts.fetch ?? globalThis.fetch;\n }\n\n async purgeTags(tags: string[]): Promise<void> {\n if (tags.length === 0) return;\n\n const res = await this._fetch(\n `https://api.cloudflare.com/client/v4/zones/${this.zoneId}/purge_cache`,\n {\n method: 'POST',\n headers: {\n 'Authorization': `Bearer ${this.apiToken}`,\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ tags }),\n }\n );\n\n if (!res.ok) {\n const body = await res.text();\n throw new Error(`Cloudflare purge failed (${res.status}): ${body}`);\n }\n }\n}\n"],"mappings":";AAkBA,IAAa,kBAAb,MAAwD;CACtD;CACA;CACA;CAEA,YAAY,MAA8B;EACxC,KAAK,SAAS,KAAK;EACnB,KAAK,WAAW,KAAK;EACrB,KAAK,SAAS,KAAK,SAAS,WAAW;CACzC;CAEA,MAAM,UAAU,MAA+B;EAC7C,IAAI,KAAK,WAAW,GAAG;EAEvB,MAAM,MAAM,MAAM,KAAK,OACrB,8CAA8C,KAAK,OAAO,eAC1D;GACE,QAAQ;GACR,SAAS;IACP,iBAAiB,UAAU,KAAK;IAChC,gBAAgB;GAClB;GACA,MAAM,KAAK,UAAU,EAAE,KAAK,CAAC;EAC/B,CACF;EAEA,IAAI,CAAC,IAAI,IAAI;GACX,MAAM,OAAO,MAAM,IAAI,KAAK;GAC5B,MAAM,IAAI,MAAM,4BAA4B,IAAI,OAAO,KAAK,MAAM;EACpE;CACF;AACF"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Fastly CDN purge handler — purges by surrogate key via the Fastly API.
3
+ *
4
+ * See https://www.fastly.com/documentation/reference/api/purging/
5
+ */
6
+ import type { CdnPurgeHandler } from './purge-store.ts';
7
+ export interface FastlyPurgeOptions {
8
+ /** Fastly service ID. */
9
+ serviceId: string;
10
+ /** Fastly API token with purge permission. */
11
+ apiToken: string;
12
+ /** Use soft purge (marks as stale instead of immediate delete). Default: false. */
13
+ softPurge?: boolean;
14
+ /** Override fetch for testing. */
15
+ fetch?: typeof globalThis.fetch;
16
+ }
17
+ export declare class FastlyPurge implements CdnPurgeHandler {
18
+ private readonly serviceId;
19
+ private readonly apiToken;
20
+ private readonly softPurge;
21
+ private readonly _fetch;
22
+ constructor(opts: FastlyPurgeOptions);
23
+ purgeTags(tags: string[]): Promise<void>;
24
+ }
25
+ //# sourceMappingURL=fastly-purge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fastly-purge.d.ts","sourceRoot":"","sources":["../../src/cdn/fastly-purge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC;IAClC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,WAAY,YAAW,eAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IAEjD,YAAY,IAAI,EAAE,kBAAkB,EAKnC;IAEK,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B7C;CACF"}
@@ -0,0 +1,33 @@
1
+ //#region src/cdn/fastly-purge.ts
2
+ var FastlyPurge = class {
3
+ serviceId;
4
+ apiToken;
5
+ softPurge;
6
+ _fetch;
7
+ constructor(opts) {
8
+ this.serviceId = opts.serviceId;
9
+ this.apiToken = opts.apiToken;
10
+ this.softPurge = opts.softPurge ?? false;
11
+ this._fetch = opts.fetch ?? globalThis.fetch;
12
+ }
13
+ async purgeTags(tags) {
14
+ if (tags.length === 0) return;
15
+ const failures = (await Promise.allSettled(tags.map((tag) => this._fetch(`https://api.fastly.com/service/${this.serviceId}/purge/${encodeURIComponent(tag)}`, {
16
+ method: "POST",
17
+ headers: {
18
+ "Fastly-Key": this.apiToken,
19
+ ...this.softPurge ? { "Fastly-Soft-Purge": "1" } : {}
20
+ }
21
+ }).then(async (res) => {
22
+ if (!res.ok) {
23
+ const body = await res.text();
24
+ throw new Error(`Fastly purge failed for tag "${tag}" (${res.status}): ${body}`);
25
+ }
26
+ })))).filter((r) => r.status === "rejected");
27
+ if (failures.length > 0) throw new Error(`Fastly purge failed for ${failures.length}/${tags.length} tags: ${failures.map((f) => f.reason?.message).join("; ")}`);
28
+ }
29
+ };
30
+ //#endregion
31
+ export { FastlyPurge };
32
+
33
+ //# sourceMappingURL=fastly-purge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fastly-purge.js","names":[],"sources":["../../src/cdn/fastly-purge.ts"],"sourcesContent":["/**\n * Fastly CDN purge handler — purges by surrogate key via the Fastly API.\n *\n * See https://www.fastly.com/documentation/reference/api/purging/\n */\n\nimport type { CdnPurgeHandler } from './purge-store.ts';\n\nexport interface FastlyPurgeOptions {\n /** Fastly service ID. */\n serviceId: string;\n /** Fastly API token with purge permission. */\n apiToken: string;\n /** Use soft purge (marks as stale instead of immediate delete). Default: false. */\n softPurge?: boolean;\n /** Override fetch for testing. */\n fetch?: typeof globalThis.fetch;\n}\n\nexport class FastlyPurge implements CdnPurgeHandler {\n private readonly serviceId: string;\n private readonly apiToken: string;\n private readonly softPurge: boolean;\n private readonly _fetch: typeof globalThis.fetch;\n\n constructor(opts: FastlyPurgeOptions) {\n this.serviceId = opts.serviceId;\n this.apiToken = opts.apiToken;\n this.softPurge = opts.softPurge ?? false;\n this._fetch = opts.fetch ?? globalThis.fetch;\n }\n\n async purgeTags(tags: string[]): Promise<void> {\n if (tags.length === 0) return;\n\n const results = await Promise.allSettled(\n tags.map((tag) =>\n this._fetch(\n `https://api.fastly.com/service/${this.serviceId}/purge/${encodeURIComponent(tag)}`,\n {\n method: 'POST',\n headers: {\n 'Fastly-Key': this.apiToken,\n ...(this.softPurge ? { 'Fastly-Soft-Purge': '1' } : {}),\n },\n }\n ).then(async (res) => {\n if (!res.ok) {\n const body = await res.text();\n throw new Error(`Fastly purge failed for tag \"${tag}\" (${res.status}): ${body}`);\n }\n })\n )\n );\n\n const failures = results.filter((r): r is PromiseRejectedResult => r.status === 'rejected');\n if (failures.length > 0) {\n throw new Error(\n `Fastly purge failed for ${failures.length}/${tags.length} tags: ${failures.map((f) => f.reason?.message).join('; ')}`\n );\n }\n }\n}\n"],"mappings":";AAmBA,IAAa,cAAb,MAAoD;CAClD;CACA;CACA;CACA;CAEA,YAAY,MAA0B;EACpC,KAAK,YAAY,KAAK;EACtB,KAAK,WAAW,KAAK;EACrB,KAAK,YAAY,KAAK,aAAa;EACnC,KAAK,SAAS,KAAK,SAAS,WAAW;CACzC;CAEA,MAAM,UAAU,MAA+B;EAC7C,IAAI,KAAK,WAAW,GAAG;EAsBvB,MAAM,YAAW,MApBK,QAAQ,WAC5B,KAAK,KAAK,QACR,KAAK,OACH,kCAAkC,KAAK,UAAU,SAAS,mBAAmB,GAAG,KAChF;GACE,QAAQ;GACR,SAAS;IACP,cAAc,KAAK;IACnB,GAAI,KAAK,YAAY,EAAE,qBAAqB,IAAI,IAAI,CAAC;GACvD;EACF,CACF,CAAC,CAAC,KAAK,OAAO,QAAQ;GACpB,IAAI,CAAC,IAAI,IAAI;IACX,MAAM,OAAO,MAAM,IAAI,KAAK;IAC5B,MAAM,IAAI,MAAM,gCAAgC,IAAI,KAAK,IAAI,OAAO,KAAK,MAAM;GACjF;EACF,CAAC,CACH,CACF,EAAA,CAEyB,QAAQ,MAAkC,EAAE,WAAW,UAAU;EAC1F,IAAI,SAAS,SAAS,GACpB,MAAM,IAAI,MACR,2BAA2B,SAAS,OAAO,GAAG,KAAK,OAAO,SAAS,SAAS,KAAK,MAAM,EAAE,QAAQ,OAAO,CAAC,CAAC,KAAK,IAAI,GACrH;CAEJ;AACF"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * CDN header helpers — pure functions that build Cache-Control,
3
+ * CDN-Cache-Control, Surrogate-Control, and Surrogate-Key header values.
4
+ *
5
+ * These are developer-elected utilities for wiring CDN caching in
6
+ * proxy.ts / middleware.ts. The framework never sets these automatically.
7
+ * See design/25-production-deployments.md §Layer 2.
8
+ */
9
+ export interface CacheControlOptions {
10
+ /** Mark the response as publicly cacheable (CDN, shared caches). */
11
+ public?: boolean;
12
+ /** Mark the response as private (browser cache only, not CDN). */
13
+ private?: boolean;
14
+ /** Max freshness in seconds for the browser/client. */
15
+ maxAge?: number;
16
+ /** Max freshness in seconds for shared caches (CDN, proxy). Overrides maxAge for CDNs. */
17
+ sMaxAge?: number;
18
+ /** Serve stale while revalidating in the background (seconds). */
19
+ staleWhileRevalidate?: number;
20
+ /** Serve stale on upstream error (seconds). */
21
+ staleIfError?: number;
22
+ /** Response must not be stored by any cache. */
23
+ noStore?: boolean;
24
+ /** Caches must revalidate before using a stored response. */
25
+ noCache?: boolean;
26
+ /** Caches must revalidate once stale — no serving stale without checking origin. */
27
+ mustRevalidate?: boolean;
28
+ /** Response will not change — allows aggressive caching. Pair with hashed URLs. */
29
+ immutable?: boolean;
30
+ }
31
+ /**
32
+ * Build a `Cache-Control` header value.
33
+ *
34
+ * ```ts
35
+ * ctx.headers.set('Cache-Control', cacheControl({
36
+ * public: true,
37
+ * maxAge: 300,
38
+ * staleWhileRevalidate: 60,
39
+ * }));
40
+ * ```
41
+ */
42
+ export declare function cacheControl(opts: CacheControlOptions): string;
43
+ export interface SurrogateControlOptions {
44
+ /** Max freshness in seconds for the surrogate (CDN). */
45
+ maxAge?: number;
46
+ /** Do not store in surrogate cache. */
47
+ noStore?: boolean;
48
+ /** Serve stale while revalidating (seconds). */
49
+ staleWhileRevalidate?: number;
50
+ /** Serve stale on error (seconds). */
51
+ staleIfError?: number;
52
+ }
53
+ /**
54
+ * Build a `Surrogate-Control` header value (Fastly, Akamai, Varnish).
55
+ *
56
+ * ```ts
57
+ * ctx.headers.set('Surrogate-Control', surrogateControl({ maxAge: 3600 }));
58
+ * ```
59
+ */
60
+ export declare function surrogateControl(opts: SurrogateControlOptions): string;
61
+ /**
62
+ * Build a `CDN-Cache-Control` header value (Cloudflare).
63
+ * Same directive syntax as Surrogate-Control but recognized by Cloudflare.
64
+ *
65
+ * ```ts
66
+ * ctx.headers.set('CDN-Cache-Control', cdnCacheControl({ maxAge: 3600 }));
67
+ * ```
68
+ */
69
+ export declare function cdnCacheControl(opts: SurrogateControlOptions): string;
70
+ /**
71
+ * Build a `Surrogate-Key` header value — space-separated tags for CDN
72
+ * tag-based purging (Fastly, Cloudflare Enterprise, Akamai).
73
+ *
74
+ * Tags are deduplicated. Tags must not contain spaces or double quotes
75
+ * (these are separators/delimiters in the header format).
76
+ *
77
+ * ```ts
78
+ * ctx.headers.set('Surrogate-Key', surrogateKey(['products', `product:${id}`]));
79
+ * ```
80
+ */
81
+ export declare function surrogateKey(tags: string[]): string;
82
+ /**
83
+ * Build a `Cache-Tag` header value — comma-separated tags for Cloudflare
84
+ * Workers Cache tag-based purging. Available on ALL Cloudflare plans.
85
+ *
86
+ * Tags are deduplicated. Tags must not contain commas (the delimiter).
87
+ * Maximum tag length is 1024 characters per Cloudflare's limits.
88
+ *
89
+ * Use this instead of `surrogateKey()` when using Cloudflare Workers Cache
90
+ * (ctx.cache.purge). Workers Cache reads `Cache-Tag`, not `Surrogate-Key`.
91
+ *
92
+ * ```ts
93
+ * ctx.headers.set('Cache-Tag', cacheTag(['products', `product:${id}`]));
94
+ * ```
95
+ */
96
+ export declare function cacheTag(tags: string[]): string;
97
+ //# sourceMappingURL=headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headers.d.ts","sourceRoot":"","sources":["../../src/cdn/headers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oFAAoF;IACpF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAuB9D;AAED,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAQtE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAErE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAOnD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAU/C"}
@@ -0,0 +1,5 @@
1
+ export { cacheControl, surrogateKey, surrogateControl, cdnCacheControl, cacheTag, } from './headers.ts';
2
+ export type { CacheControlOptions, SurrogateControlOptions } from './headers.ts';
3
+ export { setCdnPurgeHandler, getCdnPurgeHandler } from './purge-store.ts';
4
+ export type { CdnPurgeHandler } from './purge-store.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cdn/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { n as setCdnPurgeHandler, t as getCdnPurgeHandler } from "../_chunks/purge-store-Byr8XOjU.js";
2
+ //#region src/cdn/headers.ts
3
+ /**
4
+ * Build a `Cache-Control` header value.
5
+ *
6
+ * ```ts
7
+ * ctx.headers.set('Cache-Control', cacheControl({
8
+ * public: true,
9
+ * maxAge: 300,
10
+ * staleWhileRevalidate: 60,
11
+ * }));
12
+ * ```
13
+ */
14
+ function cacheControl(opts) {
15
+ if (opts.public && opts.private) throw new Error("cacheControl: public and private are mutually exclusive");
16
+ if (opts.noStore && opts.maxAge !== void 0) throw new Error("cacheControl: noStore makes maxAge meaningless — remove one");
17
+ const parts = [];
18
+ parts.push(opts.public ? "public" : "private");
19
+ if (opts.noStore) parts.push("no-store");
20
+ if (opts.noCache) parts.push("no-cache");
21
+ if (opts.maxAge !== void 0) parts.push(`max-age=${opts.maxAge}`);
22
+ if (opts.sMaxAge !== void 0) parts.push(`s-maxage=${opts.sMaxAge}`);
23
+ if (opts.staleWhileRevalidate !== void 0) parts.push(`stale-while-revalidate=${opts.staleWhileRevalidate}`);
24
+ if (opts.staleIfError !== void 0) parts.push(`stale-if-error=${opts.staleIfError}`);
25
+ if (opts.mustRevalidate) parts.push("must-revalidate");
26
+ if (opts.immutable) parts.push("immutable");
27
+ return parts.join(", ");
28
+ }
29
+ /**
30
+ * Build a `Surrogate-Control` header value (Fastly, Akamai, Varnish).
31
+ *
32
+ * ```ts
33
+ * ctx.headers.set('Surrogate-Control', surrogateControl({ maxAge: 3600 }));
34
+ * ```
35
+ */
36
+ function surrogateControl(opts) {
37
+ const parts = [];
38
+ if (opts.noStore) parts.push("no-store");
39
+ if (opts.maxAge !== void 0) parts.push(`max-age=${opts.maxAge}`);
40
+ if (opts.staleWhileRevalidate !== void 0) parts.push(`stale-while-revalidate=${opts.staleWhileRevalidate}`);
41
+ if (opts.staleIfError !== void 0) parts.push(`stale-if-error=${opts.staleIfError}`);
42
+ return parts.join(", ");
43
+ }
44
+ /**
45
+ * Build a `CDN-Cache-Control` header value (Cloudflare).
46
+ * Same directive syntax as Surrogate-Control but recognized by Cloudflare.
47
+ *
48
+ * ```ts
49
+ * ctx.headers.set('CDN-Cache-Control', cdnCacheControl({ maxAge: 3600 }));
50
+ * ```
51
+ */
52
+ function cdnCacheControl(opts) {
53
+ return surrogateControl(opts);
54
+ }
55
+ /**
56
+ * Build a `Surrogate-Key` header value — space-separated tags for CDN
57
+ * tag-based purging (Fastly, Cloudflare Enterprise, Akamai).
58
+ *
59
+ * Tags are deduplicated. Tags must not contain spaces or double quotes
60
+ * (these are separators/delimiters in the header format).
61
+ *
62
+ * ```ts
63
+ * ctx.headers.set('Surrogate-Key', surrogateKey(['products', `product:${id}`]));
64
+ * ```
65
+ */
66
+ function surrogateKey(tags) {
67
+ for (const tag of tags) if (tag.includes(" ") || tag.includes("\"")) throw new Error(`surrogateKey: tag "${tag}" must not contain spaces or double quotes`);
68
+ return [...new Set(tags)].join(" ");
69
+ }
70
+ /**
71
+ * Build a `Cache-Tag` header value — comma-separated tags for Cloudflare
72
+ * Workers Cache tag-based purging. Available on ALL Cloudflare plans.
73
+ *
74
+ * Tags are deduplicated. Tags must not contain commas (the delimiter).
75
+ * Maximum tag length is 1024 characters per Cloudflare's limits.
76
+ *
77
+ * Use this instead of `surrogateKey()` when using Cloudflare Workers Cache
78
+ * (ctx.cache.purge). Workers Cache reads `Cache-Tag`, not `Surrogate-Key`.
79
+ *
80
+ * ```ts
81
+ * ctx.headers.set('Cache-Tag', cacheTag(['products', `product:${id}`]));
82
+ * ```
83
+ */
84
+ function cacheTag(tags) {
85
+ for (const tag of tags) {
86
+ if (tag.includes(",")) throw new Error(`cacheTag: tag "${tag}" must not contain commas`);
87
+ if (tag.length > 1024) throw new Error(`cacheTag: tag "${tag}" exceeds 1024-character limit`);
88
+ }
89
+ return [...new Set(tags)].join(",");
90
+ }
91
+ //#endregion
92
+ export { cacheControl, cacheTag, cdnCacheControl, getCdnPurgeHandler, setCdnPurgeHandler, surrogateControl, surrogateKey };
93
+
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/cdn/headers.ts"],"sourcesContent":["/**\n * CDN header helpers — pure functions that build Cache-Control,\n * CDN-Cache-Control, Surrogate-Control, and Surrogate-Key header values.\n *\n * These are developer-elected utilities for wiring CDN caching in\n * proxy.ts / middleware.ts. The framework never sets these automatically.\n * See design/25-production-deployments.md §Layer 2.\n */\n\nexport interface CacheControlOptions {\n /** Mark the response as publicly cacheable (CDN, shared caches). */\n public?: boolean;\n /** Mark the response as private (browser cache only, not CDN). */\n private?: boolean;\n /** Max freshness in seconds for the browser/client. */\n maxAge?: number;\n /** Max freshness in seconds for shared caches (CDN, proxy). Overrides maxAge for CDNs. */\n sMaxAge?: number;\n /** Serve stale while revalidating in the background (seconds). */\n staleWhileRevalidate?: number;\n /** Serve stale on upstream error (seconds). */\n staleIfError?: number;\n /** Response must not be stored by any cache. */\n noStore?: boolean;\n /** Caches must revalidate before using a stored response. */\n noCache?: boolean;\n /** Caches must revalidate once stale — no serving stale without checking origin. */\n mustRevalidate?: boolean;\n /** Response will not change — allows aggressive caching. Pair with hashed URLs. */\n immutable?: boolean;\n}\n\n/**\n * Build a `Cache-Control` header value.\n *\n * ```ts\n * ctx.headers.set('Cache-Control', cacheControl({\n * public: true,\n * maxAge: 300,\n * staleWhileRevalidate: 60,\n * }));\n * ```\n */\nexport function cacheControl(opts: CacheControlOptions): string {\n if (opts.public && opts.private) {\n throw new Error('cacheControl: public and private are mutually exclusive');\n }\n if (opts.noStore && opts.maxAge !== undefined) {\n throw new Error('cacheControl: noStore makes maxAge meaningless — remove one');\n }\n\n const parts: string[] = [];\n\n parts.push(opts.public ? 'public' : 'private');\n\n if (opts.noStore) parts.push('no-store');\n if (opts.noCache) parts.push('no-cache');\n if (opts.maxAge !== undefined) parts.push(`max-age=${opts.maxAge}`);\n if (opts.sMaxAge !== undefined) parts.push(`s-maxage=${opts.sMaxAge}`);\n if (opts.staleWhileRevalidate !== undefined)\n parts.push(`stale-while-revalidate=${opts.staleWhileRevalidate}`);\n if (opts.staleIfError !== undefined) parts.push(`stale-if-error=${opts.staleIfError}`);\n if (opts.mustRevalidate) parts.push('must-revalidate');\n if (opts.immutable) parts.push('immutable');\n\n return parts.join(', ');\n}\n\nexport interface SurrogateControlOptions {\n /** Max freshness in seconds for the surrogate (CDN). */\n maxAge?: number;\n /** Do not store in surrogate cache. */\n noStore?: boolean;\n /** Serve stale while revalidating (seconds). */\n staleWhileRevalidate?: number;\n /** Serve stale on error (seconds). */\n staleIfError?: number;\n}\n\n/**\n * Build a `Surrogate-Control` header value (Fastly, Akamai, Varnish).\n *\n * ```ts\n * ctx.headers.set('Surrogate-Control', surrogateControl({ maxAge: 3600 }));\n * ```\n */\nexport function surrogateControl(opts: SurrogateControlOptions): string {\n const parts: string[] = [];\n if (opts.noStore) parts.push('no-store');\n if (opts.maxAge !== undefined) parts.push(`max-age=${opts.maxAge}`);\n if (opts.staleWhileRevalidate !== undefined)\n parts.push(`stale-while-revalidate=${opts.staleWhileRevalidate}`);\n if (opts.staleIfError !== undefined) parts.push(`stale-if-error=${opts.staleIfError}`);\n return parts.join(', ');\n}\n\n/**\n * Build a `CDN-Cache-Control` header value (Cloudflare).\n * Same directive syntax as Surrogate-Control but recognized by Cloudflare.\n *\n * ```ts\n * ctx.headers.set('CDN-Cache-Control', cdnCacheControl({ maxAge: 3600 }));\n * ```\n */\nexport function cdnCacheControl(opts: SurrogateControlOptions): string {\n return surrogateControl(opts);\n}\n\n/**\n * Build a `Surrogate-Key` header value — space-separated tags for CDN\n * tag-based purging (Fastly, Cloudflare Enterprise, Akamai).\n *\n * Tags are deduplicated. Tags must not contain spaces or double quotes\n * (these are separators/delimiters in the header format).\n *\n * ```ts\n * ctx.headers.set('Surrogate-Key', surrogateKey(['products', `product:${id}`]));\n * ```\n */\nexport function surrogateKey(tags: string[]): string {\n for (const tag of tags) {\n if (tag.includes(' ') || tag.includes('\"')) {\n throw new Error(`surrogateKey: tag \"${tag}\" must not contain spaces or double quotes`);\n }\n }\n return [...new Set(tags)].join(' ');\n}\n\n/**\n * Build a `Cache-Tag` header value — comma-separated tags for Cloudflare\n * Workers Cache tag-based purging. Available on ALL Cloudflare plans.\n *\n * Tags are deduplicated. Tags must not contain commas (the delimiter).\n * Maximum tag length is 1024 characters per Cloudflare's limits.\n *\n * Use this instead of `surrogateKey()` when using Cloudflare Workers Cache\n * (ctx.cache.purge). Workers Cache reads `Cache-Tag`, not `Surrogate-Key`.\n *\n * ```ts\n * ctx.headers.set('Cache-Tag', cacheTag(['products', `product:${id}`]));\n * ```\n */\nexport function cacheTag(tags: string[]): string {\n for (const tag of tags) {\n if (tag.includes(',')) {\n throw new Error(`cacheTag: tag \"${tag}\" must not contain commas`);\n }\n if (tag.length > 1024) {\n throw new Error(`cacheTag: tag \"${tag}\" exceeds 1024-character limit`);\n }\n }\n return [...new Set(tags)].join(',');\n}\n"],"mappings":";;;;;;;;;;;;;AA2CA,SAAgB,aAAa,MAAmC;CAC9D,IAAI,KAAK,UAAU,KAAK,SACtB,MAAM,IAAI,MAAM,yDAAyD;CAE3E,IAAI,KAAK,WAAW,KAAK,WAAW,KAAA,GAClC,MAAM,IAAI,MAAM,6DAA6D;CAG/E,MAAM,QAAkB,CAAC;CAEzB,MAAM,KAAK,KAAK,SAAS,WAAW,SAAS;CAE7C,IAAI,KAAK,SAAS,MAAM,KAAK,UAAU;CACvC,IAAI,KAAK,SAAS,MAAM,KAAK,UAAU;CACvC,IAAI,KAAK,WAAW,KAAA,GAAW,MAAM,KAAK,WAAW,KAAK,QAAQ;CAClE,IAAI,KAAK,YAAY,KAAA,GAAW,MAAM,KAAK,YAAY,KAAK,SAAS;CACrE,IAAI,KAAK,yBAAyB,KAAA,GAChC,MAAM,KAAK,0BAA0B,KAAK,sBAAsB;CAClE,IAAI,KAAK,iBAAiB,KAAA,GAAW,MAAM,KAAK,kBAAkB,KAAK,cAAc;CACrF,IAAI,KAAK,gBAAgB,MAAM,KAAK,iBAAiB;CACrD,IAAI,KAAK,WAAW,MAAM,KAAK,WAAW;CAE1C,OAAO,MAAM,KAAK,IAAI;AACxB;;;;;;;;AAoBA,SAAgB,iBAAiB,MAAuC;CACtE,MAAM,QAAkB,CAAC;CACzB,IAAI,KAAK,SAAS,MAAM,KAAK,UAAU;CACvC,IAAI,KAAK,WAAW,KAAA,GAAW,MAAM,KAAK,WAAW,KAAK,QAAQ;CAClE,IAAI,KAAK,yBAAyB,KAAA,GAChC,MAAM,KAAK,0BAA0B,KAAK,sBAAsB;CAClE,IAAI,KAAK,iBAAiB,KAAA,GAAW,MAAM,KAAK,kBAAkB,KAAK,cAAc;CACrF,OAAO,MAAM,KAAK,IAAI;AACxB;;;;;;;;;AAUA,SAAgB,gBAAgB,MAAuC;CACrE,OAAO,iBAAiB,IAAI;AAC9B;;;;;;;;;;;;AAaA,SAAgB,aAAa,MAAwB;CACnD,KAAK,MAAM,OAAO,MAChB,IAAI,IAAI,SAAS,GAAG,KAAK,IAAI,SAAS,IAAG,GACvC,MAAM,IAAI,MAAM,sBAAsB,IAAI,2CAA2C;CAGzF,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;AACpC;;;;;;;;;;;;;;;AAgBA,SAAgB,SAAS,MAAwB;CAC/C,KAAK,MAAM,OAAO,MAAM;EACtB,IAAI,IAAI,SAAS,GAAG,GAClB,MAAM,IAAI,MAAM,kBAAkB,IAAI,0BAA0B;EAElE,IAAI,IAAI,SAAS,MACf,MAAM,IAAI,MAAM,kBAAkB,IAAI,+BAA+B;CAEzE;CACA,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;AACpC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * CDN purge handler singleton — same pattern as cache/handler-store.ts.
3
+ *
4
+ * Set via timber.config.ts or setCdnPurgeHandler() at boot. When set,
5
+ * cache.invalidate({ tag }) also triggers CDN purge for the invalidated
6
+ * tags, so revalidateTag() composes with CDN caching out of the box.
7
+ *
8
+ * See design/25-production-deployments.md §Layer 2.
9
+ */
10
+ export interface CdnPurgeHandler {
11
+ /**
12
+ * Purge the given cache tags from the CDN.
13
+ * Called by cache.invalidate when a tag is invalidated.
14
+ */
15
+ purgeTags(tags: string[]): Promise<void>;
16
+ }
17
+ /** Install a CDN purge handler. Called by the framework at boot from timber.config.ts. */
18
+ export declare function setCdnPurgeHandler(h: CdnPurgeHandler): void;
19
+ /** Get the current CDN purge handler, if configured. */
20
+ export declare function getCdnPurgeHandler(): CdnPurgeHandler | undefined;
21
+ /** @internal — reset for tests only. */
22
+ export declare function _resetCdnPurgeHandler(): void;
23
+ //# sourceMappingURL=purge-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"purge-store.d.ts","sourceRoot":"","sources":["../../src/cdn/purge-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAID,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,CAE3D;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAEhE;AAED,wCAAwC;AACxC,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Cloudflare Workers Cache purge handler — purges by cache tag via
3
+ * ctx.cache.purge() on the ExecutionContext.
4
+ *
5
+ * Available on ALL Cloudflare plans (no Enterprise requirement).
6
+ * No API token needed — uses the Workers runtime's built-in cache API.
7
+ *
8
+ * ctx.cache.purge() operates on the same underlying Cloudflare CDN cache
9
+ * as caches.default — entries stored via cache.put() with matching
10
+ * Cache-Tag headers are purged (TIM-1172). See design/25 §TIM-1172.
11
+ *
12
+ * Auto-wired by the Cloudflare adapter when no user-configured CDN
13
+ * purge handler is set. Uses the Workers Cache ALS bridge to access
14
+ * ctx.cache from within the request context.
15
+ */
16
+ import type { CdnPurgeHandler } from './purge-store.ts';
17
+ export declare class WorkersCachePurge implements CdnPurgeHandler {
18
+ purgeTags(tags: string[]): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=workers-cache-purge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workers-cache-purge.d.ts","sourceRoot":"","sources":["../../src/cdn/workers-cache-purge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,qBAAa,iBAAkB,YAAW,eAAe;IACjD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY7C;CACF"}
@@ -0,0 +1,35 @@
1
+ import { u as workersCachePurgeAls } from "../_chunks/als-registry-DaxkVjt5.js";
2
+ //#region src/server/workers-cache-bridge.ts
3
+ /**
4
+ * Per-request Workers Cache purge bridge — ALS bridge for Cloudflare adapter.
5
+ *
6
+ * The generated _worker.js wraps each request with `runWithWorkersCachePurge`,
7
+ * binding `ctx.cache` from the Cloudflare ExecutionContext. The
8
+ * `WorkersCachePurge` CDN purge handler reads from this ALS to call
9
+ * `ctx.cache.purge({ tags })` without needing an API token.
10
+ *
11
+ * Design doc: design/06-caching.md, design/25-production-deployments.md
12
+ */
13
+ /**
14
+ * Get the current request's Workers Cache context, if available.
15
+ *
16
+ * Returns undefined outside a Cloudflare Workers request context
17
+ * or on platforms without Workers Cache support.
18
+ */
19
+ function getWorkersCachePurgeCtx() {
20
+ return workersCachePurgeAls.getStore();
21
+ }
22
+ //#endregion
23
+ //#region src/cdn/workers-cache-purge.ts
24
+ var WorkersCachePurge = class {
25
+ async purgeTags(tags) {
26
+ if (tags.length === 0) return;
27
+ const ctx = getWorkersCachePurgeCtx();
28
+ if (!ctx) throw new Error("WorkersCachePurge: no Workers Cache context available. This handler can only be used within a Cloudflare Workers request context.");
29
+ await ctx.purge({ tags });
30
+ }
31
+ };
32
+ //#endregion
33
+ export { WorkersCachePurge };
34
+
35
+ //# sourceMappingURL=workers-cache-purge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workers-cache-purge.js","names":[],"sources":["../../src/server/workers-cache-bridge.ts","../../src/cdn/workers-cache-purge.ts"],"sourcesContent":["/**\n * Per-request Workers Cache purge bridge — ALS bridge for Cloudflare adapter.\n *\n * The generated _worker.js wraps each request with `runWithWorkersCachePurge`,\n * binding `ctx.cache` from the Cloudflare ExecutionContext. The\n * `WorkersCachePurge` CDN purge handler reads from this ALS to call\n * `ctx.cache.purge({ tags })` without needing an API token.\n *\n * Design doc: design/06-caching.md, design/25-production-deployments.md\n */\n\nimport { workersCachePurgeAls } from './als-registry.ts';\nimport type { WorkersCachePurgeCtx } from './als-registry.ts';\n\n/**\n * Run a function with Workers Cache purge context available.\n *\n * Called by the generated Cloudflare _worker.js entry to bind\n * `ctx.cache` for the request duration.\n */\nexport function runWithWorkersCachePurge<T>(ctx: WorkersCachePurgeCtx, fn: () => T): T {\n return workersCachePurgeAls.run(ctx, fn);\n}\n\n/**\n * Get the current request's Workers Cache context, if available.\n *\n * Returns undefined outside a Cloudflare Workers request context\n * or on platforms without Workers Cache support.\n */\nexport function getWorkersCachePurgeCtx(): WorkersCachePurgeCtx | undefined {\n return workersCachePurgeAls.getStore();\n}\n","/**\n * Cloudflare Workers Cache purge handler — purges by cache tag via\n * ctx.cache.purge() on the ExecutionContext.\n *\n * Available on ALL Cloudflare plans (no Enterprise requirement).\n * No API token needed — uses the Workers runtime's built-in cache API.\n *\n * ctx.cache.purge() operates on the same underlying Cloudflare CDN cache\n * as caches.default — entries stored via cache.put() with matching\n * Cache-Tag headers are purged (TIM-1172). See design/25 §TIM-1172.\n *\n * Auto-wired by the Cloudflare adapter when no user-configured CDN\n * purge handler is set. Uses the Workers Cache ALS bridge to access\n * ctx.cache from within the request context.\n */\n\nimport type { CdnPurgeHandler } from './purge-store.ts';\nimport { getWorkersCachePurgeCtx } from '../server/workers-cache-bridge.ts';\n\nexport class WorkersCachePurge implements CdnPurgeHandler {\n async purgeTags(tags: string[]): Promise<void> {\n if (tags.length === 0) return;\n\n const ctx = getWorkersCachePurgeCtx();\n if (!ctx) {\n throw new Error(\n 'WorkersCachePurge: no Workers Cache context available. ' +\n 'This handler can only be used within a Cloudflare Workers request context.'\n );\n }\n\n await ctx.purge({ tags });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA8BA,SAAgB,0BAA4D;CAC1E,OAAO,qBAAqB,SAAS;AACvC;;;ACbA,IAAa,oBAAb,MAA0D;CACxD,MAAM,UAAU,MAA+B;EAC7C,IAAI,KAAK,WAAW,GAAG;EAEvB,MAAM,MAAM,wBAAwB;EACpC,IAAI,CAAC,KACH,MAAM,IAAI,MACR,mIAEF;EAGF,MAAM,IAAI,MAAM,EAAE,KAAK,CAAC;CAC1B;AACF"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * `timber check` — the implementation behind the CLI command.
3
+ *
4
+ * Two passes, in order:
5
+ *
6
+ * 1. **Routes.** Resolve the project through Vite — so root, `appDir`, and
7
+ * `pageExtensions` are the ones `timber build` uses, including config
8
+ * passed inline to `timber()` — then scan, run the convention linter, and
9
+ * write the route codegen (`.timber/timber-routes.d.ts`,
10
+ * `.timber/segment-types.d.ts`, `timber-env.d.ts`).
11
+ *
12
+ * Codegen runs *before* the type pass on purpose: those
13
+ * files are what give `<Link href>`, `useSegmentParams()` and
14
+ * `MiddlewareContext` their per-route types (design/09-typescript.md
15
+ * §"Typed Routes"), and they are build artifacts — a fresh clone that has
16
+ * never run `timber dev` or `timber build` does not have them, so a type
17
+ * pass on its own would report errors about correct code. A clone whose
18
+ * routes changed since the last build has the same problem with stale ones.
19
+ * 2. **Types.** `tsgo --noEmit` over the project.
20
+ *
21
+ * tsgo is spawned as `node <@typescript/native-preview>/lib/tsgo.js`, never as
22
+ * a bare `tsgo` off PATH — the package is an *optional peer dependency*, so
23
+ * there is no reason for its shim to be on a user's PATH, and the shim is a
24
+ * `.cmd` on Windows which cannot be spawned without a shell. `shell: true`
25
+ * would then concatenate the argv into an unescaped command string, so a
26
+ * project path containing a space would break on exactly the platform the
27
+ * shell was there to support. This mirrors `scripts/build-types.js`, whose
28
+ * header comment is the specification for the pattern.
29
+ *
30
+ * Design docs: 11-platform.md §CLI, 09-typescript.md, 28-npm-packaging.md
31
+ */
32
+ import { type ResolveViteConfig } from './cli-context.ts';
33
+ /**
34
+ * Run the compiler to completion.
35
+ *
36
+ * Resolves with its exit status (`null` when a signal killed it) and rejects
37
+ * only when the process could not be started — the two outcomes `runTypeCheck`
38
+ * has to keep apart. The seam is this narrow on purpose: a test double is a
39
+ * plain async function, with no `ChildProcess` shape to imitate.
40
+ */
41
+ export type RunTsgo = (command: string, args: string[], cwd: string) => Promise<number | null>;
42
+ /**
43
+ * Run the compiler and capture its stdout — used for `--showConfig`, whose
44
+ * output is data we read rather than diagnostics the user reads.
45
+ */
46
+ export type ReadTsgoConfig = (command: string, args: string[], cwd: string) => Promise<string>;
47
+ /** @internal Dependency injection for testing. */
48
+ export interface CheckDeps {
49
+ /**
50
+ * Resolve tsgo's own JS entry point. Throws when the package is not
51
+ * installed — the caller turns that into an install instruction.
52
+ */
53
+ resolveTsgoEntry?: () => string;
54
+ runTsgo?: RunTsgo;
55
+ readTsgoConfig?: ReadTsgoConfig;
56
+ resolveViteConfig?: ResolveViteConfig;
57
+ }
58
+ export interface CheckOptions {
59
+ /** Project root, for resolving tsgo. Defaults to `process.cwd()`. */
60
+ root?: string;
61
+ /**
62
+ * Path to a **tsconfig**, forwarded to tsgo as `--project` and sourced from
63
+ * the CLI's own `--project`. The route pass takes no part in it: it resolves
64
+ * the app's configuration through Vite, as `timber build` does.
65
+ */
66
+ config?: string;
67
+ }
68
+ /**
69
+ * Locate `@typescript/native-preview`'s JS entry.
70
+ *
71
+ * Resolution is attempted from this package first (it is declared an optional
72
+ * peer dependency, so a package manager links it here when the user installs
73
+ * it) and then from the project root (covering a hoisted install, or a user who
74
+ * added it without the peer link). Throws if neither finds it.
75
+ */
76
+ export declare function resolveTsgoEntry(root: string, resolveFrom?: (from: string, specifier: string) => string): string;
77
+ /** What the route pass needs from the command line. */
78
+ export interface RouteOptions {
79
+ /**
80
+ * Path to a **Vite** config file, from `--config`. Undefined means Vite's own
81
+ * discovery, the same as `timber dev`/`build` without the flag. A project
82
+ * that builds with a custom Vite config has to be checkable with it too, or
83
+ * `check` resolves a different app than `build` does (TIM-1332, round 4).
84
+ */
85
+ viteConfigFile?: string;
86
+ }
87
+ /** Everything the route scan needs, as the build itself resolves it. */
88
+ export interface RouteInputs {
89
+ root: string;
90
+ appDir: string;
91
+ pageExtensions: string[] | undefined;
92
+ }
93
+ /**
94
+ * Resolve root, appDir and pageExtensions the way `timber build` resolves them
95
+ * — through Vite, never by re-reading `timber.config.ts` (see `cli-context.ts`).
96
+ * Inline `timber({ pageExtensions: [...] })` is the case that bites: a scan
97
+ * that re-read the file would silently use default page extensions and write a
98
+ * route map missing the app's pages. `examples/next-playground-migration` is
99
+ * exactly this shape.
100
+ */
101
+ export declare function resolveRouteInputs(options?: RouteOptions, deps?: CheckDeps): Promise<RouteInputs>;
102
+ /**
103
+ * Resolve the app directory, scan it, fail on proven-fatal route
104
+ * misconfigurations, print warnings, and write the route codegen the type pass
105
+ * depends on.
106
+ *
107
+ * Error-level lint findings throw rather than print, matching what
108
+ * `plugins/routing.ts` does at build time: the tree is not fit to publish, so
109
+ * it must not reach codegen either. Warnings are printed and do not fail the
110
+ * command — same severity contract as dev and build, so `timber check` cannot
111
+ * disagree with them about what a valid app is.
112
+ */
113
+ export declare function checkRoutes(options?: RouteOptions, deps?: CheckDeps): Promise<RouteInputs>;
114
+ /**
115
+ * Verify that the import specifiers in the generated route types resolve on the
116
+ * filesystem. A `.d.ts` whose import fails does NOT produce a TypeScript error —
117
+ * every type that depends on it silently becomes `any`. The generated file
118
+ * contains type-level `_AssertSchemaNotAny` / `_AssertCodecTypeNotAny` guards
119
+ * that catch this at typecheck time, but a diagnostic here fires earlier and
120
+ * names the exact import that is broken rather than leaving the user to decode
121
+ * a constraint error.
122
+ */
123
+ export declare function verifyCodegenImports(root: string): void;
124
+ /**
125
+ * Run `tsgo --noEmit`, streaming its output.
126
+ *
127
+ * Rejects with the real numeric exit status on type errors. A failure to *start*
128
+ * the compiler is reported separately — the historical bug this replaces
129
+ * surfaced ENOENT as "Type check failed with exit code undefined", which read
130
+ * as a type error and sent users looking at their own code.
131
+ */
132
+ export declare function runTypeCheck(options?: CheckOptions, deps?: CheckDeps): Promise<void>;
133
+ //# sourceMappingURL=cli-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-check.d.ts","sourceRoot":"","sources":["../src/cli-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAQH,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAahF;;;;;;;GAOG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE/F;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE/F,kDAAkD;AAClD,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,WAAW,GAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MACV,GACvC,MAAM,CAwBR;AAED,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,GAAE,YAAiB,EAC1B,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,WAAW,CAAC,CAGtB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,WAAW,CAC/B,OAAO,GAAE,YAAiB,EAC1B,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,WAAW,CAAC,CAiCtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAmCvD;AAqGD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,GAAE,YAAiB,EAC1B,IAAI,GAAE,SAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAiDf"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Resolve timber's configuration the way `timber build` resolves it, for CLI
3
+ * commands that run outside the build: `timber check` and `timber preview`.
4
+ *
5
+ * Reading `timber.config.ts` directly is **not** equivalent, which is the whole
6
+ * reason this goes through Vite (TIM-1332, review round 3; TIM-1531):
7
+ *
8
+ * - Config passed inline — `timber({ pageExtensions, adapter, output })` in
9
+ * `vite.config.ts` — lives only in the plugin's closure. Nothing that
10
+ * re-reads the config file can see it.
11
+ * - `root` is Vite's resolved root, not the caller's cwd, and the two differ in
12
+ * the monorepo layouts TIM-498 describes.
13
+ * - The build directory can come from Vite's `build.outDir`, which only a
14
+ * resolved Vite config knows.
15
+ * - `--config` names a Vite config file; only Vite can load it.
16
+ *
17
+ * There is no fallback to a second, hand-rolled resolution. A project whose
18
+ * Vite config does not produce the timber plugin cannot be built either, so a
19
+ * command that quietly proceeded on a guess would act on an app that does not
20
+ * exist.
21
+ *
22
+ * Design docs: 11-platform.md §CLI
23
+ */
24
+ import { type PluginContext } from './plugin-context.ts';
25
+ /** The subset of a resolved Vite plugin this module reads. */
26
+ export interface PluginWithApi {
27
+ name: string;
28
+ api?: unknown;
29
+ }
30
+ /**
31
+ * Vite's own `resolveConfig`, narrowed to what this module passes and reads.
32
+ *
33
+ * The seam sits at `resolveConfig` rather than at "give me the plugins" so the
34
+ * *arguments* are the thing under test: which config file, which command, and
35
+ * which mode defaults. Those arguments have been wrong three separate times
36
+ * (TIM-1332 rounds 4-6), and a double that answered "here are the plugins"
37
+ * could not see any of it. The double returns what Vite returns — plugins with
38
+ * an opaque `api` — so the lookup and narrowing under test stay the real ones.
39
+ */
40
+ export type ResolveViteConfig = (inlineConfig: {
41
+ configFile: string | undefined;
42
+ }, command: 'build', defaultMode: string, defaultNodeEnv: string) => Promise<{
43
+ plugins: readonly PluginWithApi[];
44
+ }>;
45
+ /**
46
+ * Resolve the project through Vite and return timber's context as
47
+ * `timber build` would see it.
48
+ *
49
+ * @param command The CLI command asking, named in the error message.
50
+ * @param viteConfigFile `--config`. Undefined means Vite's own discovery, the
51
+ * same as `timber build` without the flag.
52
+ */
53
+ export declare function resolveTimberContext(command: string, viteConfigFile: string | undefined, resolveViteConfig?: ResolveViteConfig): Promise<PluginContext>;
54
+ //# sourceMappingURL=cli-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-context.d.ts","sourceRoot":"","sources":["../src/cli-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAK5E,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,YAAY,EAAE;IAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,EAChD,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,KACnB,OAAO,CAAC;IAAE,OAAO,EAAE,SAAS,aAAa,EAAE,CAAA;CAAE,CAAC,CAAC;AAkCpD;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,iBAAiB,GAAE,iBAA4C,GAC9D,OAAO,CAAC,aAAa,CAAC,CAsBxB"}