@timber-js/app 0.2.0-alpha.9 → 0.2.0-alpha.91

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 (619) hide show
  1. package/dist/_chunks/actions-DLnUaR65.js +421 -0
  2. package/dist/_chunks/actions-DLnUaR65.js.map +1 -0
  3. package/dist/_chunks/{als-registry-B7DbZ2hS.js → als-registry-HS0LGUl2.js} +1 -1
  4. package/dist/_chunks/als-registry-HS0LGUl2.js.map +1 -0
  5. package/dist/_chunks/chunk-BYIpzuS7.js +39 -0
  6. package/dist/_chunks/{debug-gwlJkDuf.js → debug-ECi_61pb.js} +2 -2
  7. package/dist/_chunks/debug-ECi_61pb.js.map +1 -0
  8. package/dist/_chunks/define-C77ScO0m.js +106 -0
  9. package/dist/_chunks/define-C77ScO0m.js.map +1 -0
  10. package/dist/_chunks/define-Itxvcd7F.js +199 -0
  11. package/dist/_chunks/define-Itxvcd7F.js.map +1 -0
  12. package/dist/_chunks/define-cookie-BowvzoP0.js +94 -0
  13. package/dist/_chunks/define-cookie-BowvzoP0.js.map +1 -0
  14. package/dist/_chunks/{format-DviM89f0.js → dev-warnings-DpGRGoDi.js} +5 -44
  15. package/dist/_chunks/dev-warnings-DpGRGoDi.js.map +1 -0
  16. package/dist/_chunks/format-CYBGxKtc.js +14 -0
  17. package/dist/_chunks/format-CYBGxKtc.js.map +1 -0
  18. package/dist/_chunks/{interception-BOoWmLUA.js → interception-ErnB33JX.js} +301 -133
  19. package/dist/_chunks/interception-ErnB33JX.js.map +1 -0
  20. package/dist/_chunks/merge-search-params-Cm_KIWDX.js +41 -0
  21. package/dist/_chunks/merge-search-params-Cm_KIWDX.js.map +1 -0
  22. package/dist/_chunks/{metadata-routes-Cjmvi3rQ.js → metadata-routes-DS3eKNmf.js} +1 -1
  23. package/dist/_chunks/{metadata-routes-Cjmvi3rQ.js.map → metadata-routes-DS3eKNmf.js.map} +1 -1
  24. package/dist/_chunks/request-context-CK5tZqIP.js +478 -0
  25. package/dist/_chunks/request-context-CK5tZqIP.js.map +1 -0
  26. package/dist/_chunks/schema-bridge-C3xl_vfb.js +86 -0
  27. package/dist/_chunks/schema-bridge-C3xl_vfb.js.map +1 -0
  28. package/dist/_chunks/segment-classify-BDNn6EzD.js +65 -0
  29. package/dist/_chunks/segment-classify-BDNn6EzD.js.map +1 -0
  30. package/dist/_chunks/segment-context-fHFLF1PE.js +34 -0
  31. package/dist/_chunks/segment-context-fHFLF1PE.js.map +1 -0
  32. package/dist/_chunks/{ssr-data-MjmprTmO.js → ssr-data-DzuI0bIV.js} +1 -1
  33. package/dist/_chunks/{ssr-data-MjmprTmO.js.map → ssr-data-DzuI0bIV.js.map} +1 -1
  34. package/dist/_chunks/stale-reload-BX5gL1r-.js +64 -0
  35. package/dist/_chunks/stale-reload-BX5gL1r-.js.map +1 -0
  36. package/dist/_chunks/{tracing-CemImE6h.js → tracing-CCYbKn5n.js} +60 -9
  37. package/dist/_chunks/tracing-CCYbKn5n.js.map +1 -0
  38. package/dist/_chunks/use-params-Br9YSUFV.js +295 -0
  39. package/dist/_chunks/use-params-Br9YSUFV.js.map +1 -0
  40. package/dist/_chunks/{use-query-states-D5KaffOK.js → use-query-states-BiV5GJgm.js} +7 -4
  41. package/dist/_chunks/use-query-states-BiV5GJgm.js.map +1 -0
  42. package/dist/adapters/cloudflare-dev.d.ts +109 -0
  43. package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
  44. package/dist/adapters/cloudflare-dev.js +73 -0
  45. package/dist/adapters/cloudflare-dev.js.map +1 -0
  46. package/dist/adapters/cloudflare-kv-cache.d.ts +64 -0
  47. package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
  48. package/dist/adapters/cloudflare-kv-cache.js +95 -0
  49. package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
  50. package/dist/adapters/cloudflare.d.ts +148 -12
  51. package/dist/adapters/cloudflare.d.ts.map +1 -1
  52. package/dist/adapters/cloudflare.js +135 -11
  53. package/dist/adapters/cloudflare.js.map +1 -1
  54. package/dist/adapters/compress-module.d.ts.map +1 -1
  55. package/dist/adapters/nitro.d.ts +17 -1
  56. package/dist/adapters/nitro.d.ts.map +1 -1
  57. package/dist/adapters/nitro.js +56 -13
  58. package/dist/adapters/nitro.js.map +1 -1
  59. package/dist/cache/cache-api.d.ts +24 -0
  60. package/dist/cache/cache-api.d.ts.map +1 -0
  61. package/dist/cache/handler-store.d.ts +31 -0
  62. package/dist/cache/handler-store.d.ts.map +1 -0
  63. package/dist/cache/index.d.ts +23 -7
  64. package/dist/cache/index.d.ts.map +1 -1
  65. package/dist/cache/index.js +142 -80
  66. package/dist/cache/index.js.map +1 -1
  67. package/dist/cache/singleflight.d.ts +18 -1
  68. package/dist/cache/singleflight.d.ts.map +1 -1
  69. package/dist/cache/sizeof.d.ts +22 -0
  70. package/dist/cache/sizeof.d.ts.map +1 -0
  71. package/dist/cache/timber-cache.d.ts +1 -1
  72. package/dist/cache/timber-cache.d.ts.map +1 -1
  73. package/dist/cli.d.ts +6 -1
  74. package/dist/cli.d.ts.map +1 -1
  75. package/dist/cli.js +8 -3
  76. package/dist/cli.js.map +1 -1
  77. package/dist/client/browser-dev.d.ts +27 -1
  78. package/dist/client/browser-dev.d.ts.map +1 -1
  79. package/dist/client/browser-entry/action-dispatch.d.ts +17 -0
  80. package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
  81. package/dist/client/browser-entry/hmr.d.ts +21 -0
  82. package/dist/client/browser-entry/hmr.d.ts.map +1 -0
  83. package/dist/client/browser-entry/hydrate.d.ts +46 -0
  84. package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
  85. package/dist/client/browser-entry/index.d.ts +30 -0
  86. package/dist/client/browser-entry/index.d.ts.map +1 -0
  87. package/dist/client/browser-entry/post-hydration.d.ts +26 -0
  88. package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
  89. package/dist/client/browser-entry/router-init.d.ts +23 -0
  90. package/dist/client/browser-entry/router-init.d.ts.map +1 -0
  91. package/dist/client/browser-entry/rsc-stream.d.ts +24 -0
  92. package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
  93. package/dist/client/browser-entry/scroll.d.ts +19 -0
  94. package/dist/client/browser-entry/scroll.d.ts.map +1 -0
  95. package/dist/client/error-boundary.d.ts +12 -5
  96. package/dist/client/error-boundary.d.ts.map +1 -1
  97. package/dist/client/error-boundary.js +10 -4
  98. package/dist/client/error-boundary.js.map +1 -1
  99. package/dist/client/error-reconstituter.d.ts +54 -0
  100. package/dist/client/error-reconstituter.d.ts.map +1 -0
  101. package/dist/client/form.d.ts +6 -3
  102. package/dist/client/form.d.ts.map +1 -1
  103. package/dist/client/history.d.ts +19 -4
  104. package/dist/client/history.d.ts.map +1 -1
  105. package/dist/client/index.d.ts +9 -21
  106. package/dist/client/index.d.ts.map +1 -1
  107. package/dist/client/index.js +229 -1018
  108. package/dist/client/index.js.map +1 -1
  109. package/dist/client/internal.d.ts +18 -0
  110. package/dist/client/internal.d.ts.map +1 -0
  111. package/dist/client/internal.js +890 -0
  112. package/dist/client/internal.js.map +1 -0
  113. package/dist/client/link-pending-store.d.ts +63 -0
  114. package/dist/client/link-pending-store.d.ts.map +1 -0
  115. package/dist/client/link.d.ts +62 -55
  116. package/dist/client/link.d.ts.map +1 -1
  117. package/dist/client/nav-link-store.d.ts +36 -0
  118. package/dist/client/nav-link-store.d.ts.map +1 -0
  119. package/dist/client/navigation-api-types.d.ts +90 -0
  120. package/dist/client/navigation-api-types.d.ts.map +1 -0
  121. package/dist/client/navigation-api.d.ts +115 -0
  122. package/dist/client/navigation-api.d.ts.map +1 -0
  123. package/dist/client/navigation-context.d.ts +13 -2
  124. package/dist/client/navigation-context.d.ts.map +1 -1
  125. package/dist/client/{transition-root.d.ts → navigation-root.d.ts} +42 -8
  126. package/dist/client/navigation-root.d.ts.map +1 -0
  127. package/dist/client/nuqs-adapter.d.ts.map +1 -1
  128. package/dist/client/router-ref.d.ts +1 -1
  129. package/dist/client/router.d.ts +70 -4
  130. package/dist/client/router.d.ts.map +1 -1
  131. package/dist/client/rsc-fetch.d.ts +38 -3
  132. package/dist/client/rsc-fetch.d.ts.map +1 -1
  133. package/dist/client/segment-cache.d.ts +1 -1
  134. package/dist/client/segment-cache.d.ts.map +1 -1
  135. package/dist/client/segment-outlet.d.ts +63 -0
  136. package/dist/client/segment-outlet.d.ts.map +1 -0
  137. package/dist/client/ssr-data.d.ts +13 -4
  138. package/dist/client/ssr-data.d.ts.map +1 -1
  139. package/dist/client/stale-reload.d.ts +15 -0
  140. package/dist/client/stale-reload.d.ts.map +1 -1
  141. package/dist/client/top-loader.d.ts +5 -5
  142. package/dist/client/top-loader.d.ts.map +1 -1
  143. package/dist/client/use-link-status.d.ts +5 -5
  144. package/dist/client/use-link-status.d.ts.map +1 -1
  145. package/dist/client/use-params.d.ts +6 -4
  146. package/dist/client/use-params.d.ts.map +1 -1
  147. package/dist/client/{use-navigation-pending.d.ts → use-pending-navigation.d.ts} +4 -4
  148. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  149. package/dist/client/use-query-states.d.ts +1 -1
  150. package/dist/client/use-query-states.d.ts.map +1 -1
  151. package/dist/client/use-router.d.ts +1 -1
  152. package/dist/codec.d.ts +33 -0
  153. package/dist/codec.d.ts.map +1 -0
  154. package/dist/codec.js +2 -0
  155. package/dist/config-types.d.ts +266 -0
  156. package/dist/config-types.d.ts.map +1 -0
  157. package/dist/config-validation.d.ts +51 -0
  158. package/dist/config-validation.d.ts.map +1 -0
  159. package/dist/content/index.d.ts +1 -10
  160. package/dist/content/index.d.ts.map +1 -1
  161. package/dist/content/index.js +0 -2
  162. package/dist/cookies/define-cookie.d.ts +35 -14
  163. package/dist/cookies/define-cookie.d.ts.map +1 -1
  164. package/dist/cookies/index.js +1 -83
  165. package/dist/fonts/bundle.d.ts +48 -0
  166. package/dist/fonts/bundle.d.ts.map +1 -0
  167. package/dist/fonts/css.d.ts +1 -0
  168. package/dist/fonts/css.d.ts.map +1 -1
  169. package/dist/fonts/dev-middleware.d.ts +22 -0
  170. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  171. package/dist/fonts/pipeline.d.ts +138 -0
  172. package/dist/fonts/pipeline.d.ts.map +1 -0
  173. package/dist/fonts/transform.d.ts +72 -0
  174. package/dist/fonts/transform.d.ts.map +1 -0
  175. package/dist/fonts/types.d.ts +45 -1
  176. package/dist/fonts/types.d.ts.map +1 -1
  177. package/dist/fonts/virtual-modules.d.ts +59 -0
  178. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  179. package/dist/index.d.ts +45 -190
  180. package/dist/index.d.ts.map +1 -1
  181. package/dist/index.js +4294 -2453
  182. package/dist/index.js.map +1 -1
  183. package/dist/plugin-context.d.ts +107 -0
  184. package/dist/plugin-context.d.ts.map +1 -0
  185. package/dist/plugins/adapter-build.d.ts +1 -1
  186. package/dist/plugins/adapter-build.d.ts.map +1 -1
  187. package/dist/plugins/build-manifest.d.ts +2 -2
  188. package/dist/plugins/build-manifest.d.ts.map +1 -1
  189. package/dist/plugins/build-report.d.ts +3 -3
  190. package/dist/plugins/build-report.d.ts.map +1 -1
  191. package/dist/plugins/client-chunks.d.ts +32 -0
  192. package/dist/plugins/client-chunks.d.ts.map +1 -0
  193. package/dist/plugins/content.d.ts +1 -1
  194. package/dist/plugins/content.d.ts.map +1 -1
  195. package/dist/plugins/dev-404-page.d.ts +56 -0
  196. package/dist/plugins/dev-404-page.d.ts.map +1 -0
  197. package/dist/plugins/dev-browser-logs.d.ts +84 -0
  198. package/dist/plugins/dev-browser-logs.d.ts.map +1 -0
  199. package/dist/plugins/dev-error-overlay.d.ts +49 -9
  200. package/dist/plugins/dev-error-overlay.d.ts.map +1 -1
  201. package/dist/plugins/dev-error-page.d.ts +58 -0
  202. package/dist/plugins/dev-error-page.d.ts.map +1 -0
  203. package/dist/plugins/dev-logs.d.ts +1 -1
  204. package/dist/plugins/dev-logs.d.ts.map +1 -1
  205. package/dist/plugins/dev-server.d.ts +1 -1
  206. package/dist/plugins/dev-server.d.ts.map +1 -1
  207. package/dist/plugins/dev-terminal-error.d.ts +28 -0
  208. package/dist/plugins/dev-terminal-error.d.ts.map +1 -0
  209. package/dist/plugins/entries.d.ts +1 -1
  210. package/dist/plugins/entries.d.ts.map +1 -1
  211. package/dist/plugins/fonts.d.ts +17 -73
  212. package/dist/plugins/fonts.d.ts.map +1 -1
  213. package/dist/plugins/mdx.d.ts +1 -1
  214. package/dist/plugins/mdx.d.ts.map +1 -1
  215. package/dist/plugins/routing.d.ts +1 -1
  216. package/dist/plugins/routing.d.ts.map +1 -1
  217. package/dist/plugins/server-bundle.d.ts.map +1 -1
  218. package/dist/plugins/shims.d.ts +6 -5
  219. package/dist/plugins/shims.d.ts.map +1 -1
  220. package/dist/plugins/static-build.d.ts +4 -4
  221. package/dist/plugins/static-build.d.ts.map +1 -1
  222. package/dist/routing/codegen-shared.d.ts +38 -0
  223. package/dist/routing/codegen-shared.d.ts.map +1 -0
  224. package/dist/routing/codegen-types.d.ts +36 -0
  225. package/dist/routing/codegen-types.d.ts.map +1 -0
  226. package/dist/routing/codegen.d.ts +2 -2
  227. package/dist/routing/codegen.d.ts.map +1 -1
  228. package/dist/routing/convention-lint.d.ts +41 -0
  229. package/dist/routing/convention-lint.d.ts.map +1 -0
  230. package/dist/routing/index.d.ts +2 -0
  231. package/dist/routing/index.d.ts.map +1 -1
  232. package/dist/routing/index.js +3 -2
  233. package/dist/routing/link-codegen.d.ts +90 -0
  234. package/dist/routing/link-codegen.d.ts.map +1 -0
  235. package/dist/routing/scanner.d.ts.map +1 -1
  236. package/dist/routing/segment-classify.d.ts +46 -0
  237. package/dist/routing/segment-classify.d.ts.map +1 -0
  238. package/dist/routing/status-file-lint.d.ts +2 -1
  239. package/dist/routing/status-file-lint.d.ts.map +1 -1
  240. package/dist/routing/types.d.ts +16 -4
  241. package/dist/routing/types.d.ts.map +1 -1
  242. package/dist/rsc-runtime/rsc.d.ts +1 -1
  243. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  244. package/dist/rsc-runtime/ssr.d.ts +12 -0
  245. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  246. package/dist/schema-bridge.d.ts +76 -0
  247. package/dist/schema-bridge.d.ts.map +1 -0
  248. package/dist/search-params/define.d.ts +139 -0
  249. package/dist/search-params/define.d.ts.map +1 -0
  250. package/dist/search-params/index.d.ts +4 -7
  251. package/dist/search-params/index.d.ts.map +1 -1
  252. package/dist/search-params/index.js +32 -441
  253. package/dist/search-params/index.js.map +1 -1
  254. package/dist/search-params/registry.d.ts +2 -2
  255. package/dist/search-params/registry.d.ts.map +1 -1
  256. package/dist/search-params/wrappers.d.ts +53 -0
  257. package/dist/search-params/wrappers.d.ts.map +1 -0
  258. package/dist/segment-params/define.d.ts +78 -0
  259. package/dist/segment-params/define.d.ts.map +1 -0
  260. package/dist/segment-params/index.d.ts +3 -0
  261. package/dist/segment-params/index.d.ts.map +1 -0
  262. package/dist/segment-params/index.js +2 -0
  263. package/dist/server/access-gate.d.ts +4 -0
  264. package/dist/server/access-gate.d.ts.map +1 -1
  265. package/dist/server/action-client.d.ts +41 -6
  266. package/dist/server/action-client.d.ts.map +1 -1
  267. package/dist/server/action-encryption.d.ts +76 -0
  268. package/dist/server/action-encryption.d.ts.map +1 -0
  269. package/dist/server/action-handler.d.ts +7 -0
  270. package/dist/server/action-handler.d.ts.map +1 -1
  271. package/dist/server/actions.d.ts +3 -6
  272. package/dist/server/actions.d.ts.map +1 -1
  273. package/dist/server/als-registry.d.ts +32 -4
  274. package/dist/server/als-registry.d.ts.map +1 -1
  275. package/dist/server/build-manifest.d.ts +2 -2
  276. package/dist/server/build-manifest.d.ts.map +1 -1
  277. package/dist/server/debug.d.ts +1 -1
  278. package/dist/server/default-logger.d.ts +22 -0
  279. package/dist/server/default-logger.d.ts.map +1 -0
  280. package/dist/server/deny-page-resolver.d.ts +52 -0
  281. package/dist/server/deny-page-resolver.d.ts.map +1 -0
  282. package/dist/server/deny-renderer.d.ts.map +1 -1
  283. package/dist/server/dev-holding-server.d.ts +52 -0
  284. package/dist/server/dev-holding-server.d.ts.map +1 -0
  285. package/dist/server/dev-source-map.d.ts +22 -0
  286. package/dist/server/dev-source-map.d.ts.map +1 -0
  287. package/dist/server/dev-warnings.d.ts +1 -21
  288. package/dist/server/dev-warnings.d.ts.map +1 -1
  289. package/dist/server/early-hints.d.ts +13 -5
  290. package/dist/server/early-hints.d.ts.map +1 -1
  291. package/dist/server/error-boundary-wrapper.d.ts +7 -1
  292. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  293. package/dist/server/fallback-error.d.ts +12 -7
  294. package/dist/server/fallback-error.d.ts.map +1 -1
  295. package/dist/server/flight-injection-state.d.ts +66 -0
  296. package/dist/server/flight-injection-state.d.ts.map +1 -0
  297. package/dist/server/flight-scripts.d.ts +42 -0
  298. package/dist/server/flight-scripts.d.ts.map +1 -0
  299. package/dist/server/flush.d.ts.map +1 -1
  300. package/dist/server/form-data.d.ts +29 -0
  301. package/dist/server/form-data.d.ts.map +1 -1
  302. package/dist/server/html-injectors.d.ts +51 -11
  303. package/dist/server/html-injectors.d.ts.map +1 -1
  304. package/dist/server/index.d.ts +5 -43
  305. package/dist/server/index.d.ts.map +1 -1
  306. package/dist/server/index.js +195 -2800
  307. package/dist/server/index.js.map +1 -1
  308. package/dist/server/internal.d.ts +46 -0
  309. package/dist/server/internal.d.ts.map +1 -0
  310. package/dist/server/internal.js +2900 -0
  311. package/dist/server/internal.js.map +1 -0
  312. package/dist/server/logger.d.ts +25 -7
  313. package/dist/server/logger.d.ts.map +1 -1
  314. package/dist/server/middleware-runner.d.ts +19 -4
  315. package/dist/server/middleware-runner.d.ts.map +1 -1
  316. package/dist/server/node-stream-transforms.d.ts +113 -0
  317. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  318. package/dist/server/page-deny-boundary.d.ts +31 -0
  319. package/dist/server/page-deny-boundary.d.ts.map +1 -0
  320. package/dist/server/pipeline-interception.d.ts +1 -1
  321. package/dist/server/pipeline-interception.d.ts.map +1 -1
  322. package/dist/server/pipeline-metadata.d.ts +6 -0
  323. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  324. package/dist/server/pipeline.d.ts +52 -10
  325. package/dist/server/pipeline.d.ts.map +1 -1
  326. package/dist/server/primitives.d.ts +69 -18
  327. package/dist/server/primitives.d.ts.map +1 -1
  328. package/dist/server/render-timeout.d.ts +51 -0
  329. package/dist/server/render-timeout.d.ts.map +1 -0
  330. package/dist/server/request-context.d.ts +112 -43
  331. package/dist/server/request-context.d.ts.map +1 -1
  332. package/dist/server/route-element-builder.d.ts +27 -1
  333. package/dist/server/route-element-builder.d.ts.map +1 -1
  334. package/dist/server/route-handler.d.ts.map +1 -1
  335. package/dist/server/route-matcher.d.ts +16 -2
  336. package/dist/server/route-matcher.d.ts.map +1 -1
  337. package/dist/server/rsc-entry/api-handler.d.ts +2 -2
  338. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  339. package/dist/server/rsc-entry/error-renderer.d.ts +26 -13
  340. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  341. package/dist/server/rsc-entry/helpers.d.ts +48 -5
  342. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  343. package/dist/server/rsc-entry/index.d.ts +20 -3
  344. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  345. package/dist/server/rsc-entry/rsc-payload.d.ts +3 -3
  346. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  347. package/dist/server/rsc-entry/rsc-stream.d.ts +14 -1
  348. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  349. package/dist/server/rsc-entry/ssr-bridge.d.ts +1 -1
  350. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  351. package/dist/server/rsc-entry/ssr-renderer.d.ts +19 -4
  352. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  353. package/dist/server/safe-load.d.ts +46 -0
  354. package/dist/server/safe-load.d.ts.map +1 -0
  355. package/dist/server/sensitive-fields.d.ts +74 -0
  356. package/dist/server/sensitive-fields.d.ts.map +1 -0
  357. package/dist/server/sitemap-generator.d.ts +129 -0
  358. package/dist/server/sitemap-generator.d.ts.map +1 -0
  359. package/dist/server/sitemap-handler.d.ts +22 -0
  360. package/dist/server/sitemap-handler.d.ts.map +1 -0
  361. package/dist/server/slot-resolver.d.ts +1 -1
  362. package/dist/server/slot-resolver.d.ts.map +1 -1
  363. package/dist/server/ssr-entry.d.ts +23 -0
  364. package/dist/server/ssr-entry.d.ts.map +1 -1
  365. package/dist/server/ssr-render.d.ts +39 -21
  366. package/dist/server/ssr-render.d.ts.map +1 -1
  367. package/dist/server/ssr-wrappers.d.ts +50 -0
  368. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  369. package/dist/server/status-code-resolver.d.ts +1 -1
  370. package/dist/server/status-code-resolver.d.ts.map +1 -1
  371. package/dist/server/stream-utils.d.ts +36 -0
  372. package/dist/server/stream-utils.d.ts.map +1 -0
  373. package/dist/server/tracing.d.ts +4 -4
  374. package/dist/server/tracing.d.ts.map +1 -1
  375. package/dist/server/tree-builder.d.ts +22 -19
  376. package/dist/server/tree-builder.d.ts.map +1 -1
  377. package/dist/server/types.d.ts +1 -4
  378. package/dist/server/types.d.ts.map +1 -1
  379. package/dist/server/version-skew.d.ts +61 -0
  380. package/dist/server/version-skew.d.ts.map +1 -0
  381. package/dist/shared/merge-search-params.d.ts +22 -0
  382. package/dist/shared/merge-search-params.d.ts.map +1 -0
  383. package/dist/shims/font-google.d.ts +1 -1
  384. package/dist/shims/font-google.d.ts.map +1 -1
  385. package/dist/shims/font-google.js +42 -0
  386. package/dist/shims/font-google.js.map +1 -0
  387. package/dist/shims/font-local.d.ts +26 -0
  388. package/dist/shims/font-local.d.ts.map +1 -0
  389. package/dist/shims/font-local.js +20 -0
  390. package/dist/shims/font-local.js.map +1 -0
  391. package/dist/shims/headers.d.ts +2 -1
  392. package/dist/shims/headers.d.ts.map +1 -1
  393. package/dist/shims/navigation-client.d.ts +1 -1
  394. package/dist/shims/navigation-client.d.ts.map +1 -1
  395. package/dist/shims/navigation.d.ts +3 -2
  396. package/dist/shims/navigation.d.ts.map +1 -1
  397. package/dist/utils/directive-parser.d.ts +5 -2
  398. package/dist/utils/directive-parser.d.ts.map +1 -1
  399. package/dist/utils/state-machine.d.ts +80 -0
  400. package/dist/utils/state-machine.d.ts.map +1 -0
  401. package/package.json +51 -16
  402. package/src/adapters/cloudflare-dev.ts +177 -0
  403. package/src/adapters/cloudflare-kv-cache.ts +142 -0
  404. package/src/adapters/cloudflare.ts +342 -28
  405. package/src/adapters/compress-module.ts +24 -4
  406. package/src/adapters/nitro.ts +52 -8
  407. package/src/adapters/wrangler.d.ts +7 -0
  408. package/src/cache/cache-api.ts +38 -0
  409. package/src/cache/handler-store.ts +68 -0
  410. package/src/cache/index.ts +81 -18
  411. package/src/cache/singleflight.ts +62 -4
  412. package/src/cache/sizeof.ts +31 -0
  413. package/src/cache/timber-cache.ts +24 -20
  414. package/src/cli.ts +16 -6
  415. package/src/client/browser-dev.ts +128 -1
  416. package/src/client/browser-entry/action-dispatch.ts +116 -0
  417. package/src/client/browser-entry/hmr.ts +81 -0
  418. package/src/client/browser-entry/hydrate.ts +145 -0
  419. package/src/client/browser-entry/index.ts +143 -0
  420. package/src/client/browser-entry/post-hydration.ts +119 -0
  421. package/src/client/browser-entry/router-init.ts +193 -0
  422. package/src/client/browser-entry/rsc-stream.ts +157 -0
  423. package/src/client/browser-entry/scroll.ts +27 -0
  424. package/src/client/error-boundary.tsx +48 -16
  425. package/src/client/error-reconstituter.tsx +65 -0
  426. package/src/client/form.tsx +14 -7
  427. package/src/client/history.ts +26 -4
  428. package/src/client/index.ts +65 -38
  429. package/src/client/internal.ts +57 -0
  430. package/src/client/link-pending-store.ts +111 -0
  431. package/src/client/link.tsx +342 -113
  432. package/src/client/nav-link-store.ts +47 -0
  433. package/src/client/navigation-api-types.ts +112 -0
  434. package/src/client/navigation-api.ts +332 -0
  435. package/src/client/navigation-context.ts +31 -6
  436. package/src/client/navigation-root.tsx +342 -0
  437. package/src/client/nuqs-adapter.tsx +16 -3
  438. package/src/client/router-ref.ts +1 -1
  439. package/src/client/router.ts +299 -72
  440. package/src/client/rsc-fetch.ts +97 -8
  441. package/src/client/segment-cache.ts +1 -1
  442. package/src/client/segment-outlet.tsx +86 -0
  443. package/src/client/ssr-data.ts +13 -5
  444. package/src/client/stale-reload.ts +72 -3
  445. package/src/client/top-loader.tsx +18 -6
  446. package/src/client/use-link-status.ts +7 -7
  447. package/src/client/use-params.ts +7 -5
  448. package/src/client/{use-navigation-pending.ts → use-pending-navigation.ts} +6 -6
  449. package/src/client/use-query-states.ts +9 -3
  450. package/src/client/use-router.ts +1 -1
  451. package/src/codec.ts +49 -0
  452. package/src/config-types.ts +264 -0
  453. package/src/config-validation.ts +303 -0
  454. package/src/content/index.ts +5 -13
  455. package/src/cookies/define-cookie.ts +78 -25
  456. package/src/cookies/index.ts +8 -0
  457. package/src/fonts/bundle.ts +142 -0
  458. package/src/fonts/css.ts +2 -1
  459. package/src/fonts/dev-middleware.ts +74 -0
  460. package/src/fonts/pipeline.ts +275 -0
  461. package/src/fonts/transform.ts +353 -0
  462. package/src/fonts/types.ts +50 -1
  463. package/src/fonts/virtual-modules.ts +159 -0
  464. package/src/index.ts +314 -355
  465. package/src/plugin-context.ts +240 -0
  466. package/src/plugins/adapter-build.ts +9 -3
  467. package/src/plugins/build-manifest.ts +13 -2
  468. package/src/plugins/build-report.ts +3 -3
  469. package/src/plugins/client-chunks.ts +65 -0
  470. package/src/plugins/content.ts +1 -1
  471. package/src/plugins/dev-404-page.ts +418 -0
  472. package/src/plugins/dev-browser-logs.ts +288 -0
  473. package/src/plugins/dev-error-overlay.ts +286 -42
  474. package/src/plugins/dev-error-page.ts +536 -0
  475. package/src/plugins/dev-logs.ts +1 -1
  476. package/src/plugins/dev-server.ts +146 -19
  477. package/src/plugins/dev-terminal-error.ts +217 -0
  478. package/src/plugins/entries.ts +111 -10
  479. package/src/plugins/fonts.ts +133 -638
  480. package/src/plugins/mdx.ts +1 -1
  481. package/src/plugins/routing.ts +213 -31
  482. package/src/plugins/server-action-exports.ts +1 -1
  483. package/src/plugins/server-bundle.ts +32 -1
  484. package/src/plugins/shims.ts +136 -35
  485. package/src/plugins/static-build.ts +17 -11
  486. package/src/routing/codegen-shared.ts +74 -0
  487. package/src/routing/codegen-types.ts +37 -0
  488. package/src/routing/codegen.ts +112 -173
  489. package/src/routing/convention-lint.ts +356 -0
  490. package/src/routing/index.ts +2 -0
  491. package/src/routing/link-codegen.ts +262 -0
  492. package/src/routing/scanner.ts +93 -23
  493. package/src/routing/segment-classify.ts +89 -0
  494. package/src/routing/status-file-lint.ts +3 -2
  495. package/src/routing/types.ts +17 -4
  496. package/src/rsc-runtime/rsc.ts +2 -0
  497. package/src/rsc-runtime/ssr.ts +50 -0
  498. package/src/rsc-runtime/vendor-types.d.ts +7 -0
  499. package/src/{search-params/codecs.ts → schema-bridge.ts} +57 -20
  500. package/src/search-params/define.ts +482 -0
  501. package/src/search-params/index.ts +14 -20
  502. package/src/search-params/registry.ts +2 -2
  503. package/src/search-params/wrappers.ts +85 -0
  504. package/src/segment-params/define.ts +279 -0
  505. package/src/segment-params/index.ts +9 -0
  506. package/src/server/access-gate.tsx +70 -29
  507. package/src/server/action-client.ts +88 -15
  508. package/src/server/action-encryption.ts +144 -0
  509. package/src/server/action-handler.ts +53 -6
  510. package/src/server/actions.ts +10 -9
  511. package/src/server/als-registry.ts +34 -6
  512. package/src/server/build-manifest.ts +10 -4
  513. package/src/server/compress.ts +25 -7
  514. package/src/server/debug.ts +1 -1
  515. package/src/server/default-logger.ts +99 -0
  516. package/src/server/deny-page-resolver.ts +154 -0
  517. package/src/server/deny-renderer.ts +24 -38
  518. package/src/server/dev-holding-server.ts +185 -0
  519. package/src/server/dev-source-map.ts +31 -0
  520. package/src/server/dev-warnings.ts +4 -49
  521. package/src/server/early-hints.ts +36 -15
  522. package/src/server/error-boundary-wrapper.ts +74 -22
  523. package/src/server/fallback-error.ts +74 -102
  524. package/src/server/flight-injection-state.ts +113 -0
  525. package/src/server/flight-scripts.ts +62 -0
  526. package/src/server/flush.ts +2 -1
  527. package/src/server/form-data.ts +76 -0
  528. package/src/server/html-injectors.ts +280 -120
  529. package/src/server/index.ts +25 -177
  530. package/src/server/internal.ts +169 -0
  531. package/src/server/logger.ts +44 -36
  532. package/src/server/middleware-runner.ts +31 -4
  533. package/src/server/node-stream-transforms.ts +509 -0
  534. package/src/server/page-deny-boundary.tsx +56 -0
  535. package/src/server/pipeline-interception.ts +17 -16
  536. package/src/server/pipeline-metadata.ts +13 -0
  537. package/src/server/pipeline.ts +261 -66
  538. package/src/server/primitives.ts +111 -28
  539. package/src/server/render-timeout.ts +108 -0
  540. package/src/server/request-context.ts +293 -132
  541. package/src/server/route-element-builder.ts +283 -191
  542. package/src/server/route-handler.ts +24 -4
  543. package/src/server/route-matcher.ts +31 -20
  544. package/src/server/rsc-entry/api-handler.ts +15 -16
  545. package/src/server/rsc-entry/error-renderer.ts +305 -89
  546. package/src/server/rsc-entry/helpers.ts +134 -5
  547. package/src/server/rsc-entry/index.ts +304 -111
  548. package/src/server/rsc-entry/rsc-payload.ts +65 -18
  549. package/src/server/rsc-entry/rsc-stream.ts +81 -13
  550. package/src/server/rsc-entry/ssr-bridge.ts +14 -5
  551. package/src/server/rsc-entry/ssr-renderer.ts +171 -38
  552. package/src/server/safe-load.ts +60 -0
  553. package/src/server/sensitive-fields.ts +230 -0
  554. package/src/server/sitemap-generator.ts +338 -0
  555. package/src/server/sitemap-handler.ts +126 -0
  556. package/src/server/slot-resolver.ts +244 -229
  557. package/src/server/ssr-entry.ts +215 -32
  558. package/src/server/ssr-render.ts +289 -67
  559. package/src/server/ssr-wrappers.tsx +139 -0
  560. package/src/server/status-code-resolver.ts +1 -1
  561. package/src/server/stream-utils.ts +213 -0
  562. package/src/server/tracing.ts +20 -9
  563. package/src/server/tree-builder.ts +92 -58
  564. package/src/server/types.ts +3 -6
  565. package/src/server/version-skew.ts +104 -0
  566. package/src/shared/merge-search-params.ts +55 -0
  567. package/src/shims/font-google.ts +1 -1
  568. package/src/shims/font-local.ts +34 -0
  569. package/src/shims/headers.ts +5 -1
  570. package/src/shims/navigation-client.ts +1 -1
  571. package/src/shims/navigation.ts +7 -2
  572. package/src/utils/directive-parser.ts +5 -2
  573. package/src/utils/state-machine.ts +111 -0
  574. package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
  575. package/dist/_chunks/debug-gwlJkDuf.js.map +0 -1
  576. package/dist/_chunks/format-DviM89f0.js.map +0 -1
  577. package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
  578. package/dist/_chunks/request-context-DIkVh_jG.js +0 -330
  579. package/dist/_chunks/request-context-DIkVh_jG.js.map +0 -1
  580. package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
  581. package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
  582. package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
  583. package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
  584. package/dist/cache/register-cached-function.d.ts +0 -17
  585. package/dist/cache/register-cached-function.d.ts.map +0 -1
  586. package/dist/client/browser-entry.d.ts +0 -21
  587. package/dist/client/browser-entry.d.ts.map +0 -1
  588. package/dist/client/link-status-provider.d.ts +0 -11
  589. package/dist/client/link-status-provider.d.ts.map +0 -1
  590. package/dist/client/transition-root.d.ts.map +0 -1
  591. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  592. package/dist/cookies/index.js.map +0 -1
  593. package/dist/plugins/cache-transform.d.ts +0 -36
  594. package/dist/plugins/cache-transform.d.ts.map +0 -1
  595. package/dist/plugins/dynamic-transform.d.ts +0 -72
  596. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  597. package/dist/search-params/analyze.d.ts +0 -54
  598. package/dist/search-params/analyze.d.ts.map +0 -1
  599. package/dist/search-params/builtin-codecs.d.ts +0 -105
  600. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  601. package/dist/search-params/codecs.d.ts +0 -53
  602. package/dist/search-params/codecs.d.ts.map +0 -1
  603. package/dist/search-params/create.d.ts +0 -106
  604. package/dist/search-params/create.d.ts.map +0 -1
  605. package/dist/server/prerender.d.ts +0 -77
  606. package/dist/server/prerender.d.ts.map +0 -1
  607. package/dist/server/response-cache.d.ts +0 -54
  608. package/dist/server/response-cache.d.ts.map +0 -1
  609. package/src/cache/register-cached-function.ts +0 -103
  610. package/src/client/browser-entry.ts +0 -678
  611. package/src/client/link-status-provider.tsx +0 -30
  612. package/src/client/transition-root.tsx +0 -166
  613. package/src/plugins/cache-transform.ts +0 -199
  614. package/src/plugins/dynamic-transform.ts +0 -161
  615. package/src/search-params/analyze.ts +0 -192
  616. package/src/search-params/builtin-codecs.ts +0 -228
  617. package/src/search-params/create.ts +0 -321
  618. package/src/server/prerender.ts +0 -139
  619. package/src/server/response-cache.ts +0 -410
@@ -1,36 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- /**
3
- * Parse a cacheLife duration string to seconds.
4
- * Supports: '30s', '5m', '1h', '2d', '1w', or a plain number (seconds).
5
- */
6
- export declare function parseCacheLife(value: string | number): number;
7
- export interface CacheTransformWarning {
8
- message: string;
9
- functionName: string;
10
- }
11
- interface TransformResult {
12
- code: string;
13
- map?: null;
14
- warnings?: CacheTransformWarning[];
15
- }
16
- /**
17
- * Check if a 'use cache' function in a dynamic route page/layout receives
18
- * Promise-typed params, which are not serializable as cache keys.
19
- */
20
- export declare function detectPromiseParamsWarning(declaration: string, functionName: string, fileId: string): CacheTransformWarning | null;
21
- /**
22
- * Transform source code containing 'use cache' directives into
23
- * registerCachedFunction() calls.
24
- *
25
- * Returns null if no transformations were made.
26
- */
27
- export declare function transformUseCache(code: string, fileId: string): TransformResult | null;
28
- /**
29
- * Vite plugin: timber-cache
30
- *
31
- * Transforms 'use cache' directives into registerCachedFunction() calls.
32
- * Only runs in the RSC environment.
33
- */
34
- export declare function cacheTransformPlugin(): Plugin;
35
- export {};
36
- //# sourceMappingURL=cache-transform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-transform.d.ts","sourceRoot":"","sources":["../../src/plugins/cache-transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAc7D;AAKD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAmDD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,qBAAqB,GAAG,IAAI,CAW9B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAuDtF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAsB7C"}
@@ -1,72 +0,0 @@
1
- /**
2
- * timber-dynamic-transform — Vite sub-plugin for 'use dynamic' directive.
3
- *
4
- * Detects `'use dynamic'` directives in server component function bodies
5
- * and transforms them into `markDynamic()` runtime calls. The directive
6
- * declares a dynamic boundary — the component and its subtree opt out of
7
- * the pre-rendered shell and render per-request.
8
- *
9
- * - In `output: 'static'` mode, `'use dynamic'` is a build error.
10
- * - In standard SSR routes (no prerender.ts), the directive is a no-op
11
- * (everything is already per-request), but the transform still runs
12
- * so the runtime can skip unnecessary work.
13
- *
14
- * Design doc: design/15-future-prerendering.md §"'use dynamic'"
15
- */
16
- import type { Plugin } from 'vite';
17
- import type { PluginContext } from '#/index.js';
18
- /**
19
- * Quick check: does this source file contain 'use dynamic' anywhere?
20
- * Used as a fast bail-out before doing expensive AST parsing.
21
- */
22
- export declare function containsUseDynamic(code: string): boolean;
23
- interface TransformResult {
24
- code: string;
25
- map?: null;
26
- }
27
- /**
28
- * Find function declarations/expressions containing 'use dynamic' and
29
- * transform them into markDynamic() calls.
30
- *
31
- * Input:
32
- * ```tsx
33
- * export default async function AddToCartButton({ productId }) {
34
- * 'use dynamic'
35
- * const user = await getUser()
36
- * return <button>Add to cart</button>
37
- * }
38
- * ```
39
- *
40
- * Output:
41
- * ```tsx
42
- * import { markDynamic as __markDynamic } from '@timber-js/app/runtime';
43
- * export default async function AddToCartButton({ productId }) {
44
- * __markDynamic();
45
- * const user = await getUser()
46
- * return <button>Add to cart</button>
47
- * }
48
- * ```
49
- *
50
- * The markDynamic() call registers the component boundary as dynamic
51
- * at render time. The pre-render pass uses this to know which subtrees
52
- * to skip and leave as holes for per-request rendering.
53
- */
54
- export declare function transformUseDynamic(code: string): TransformResult | null;
55
- /**
56
- * In `output: 'static'` mode, `'use dynamic'` is a build error.
57
- * Static mode renders everything at build time — there is no per-request
58
- * rendering to opt into.
59
- */
60
- export declare function validateNoDynamicInStaticMode(code: string): {
61
- message: string;
62
- line?: number;
63
- } | null;
64
- /**
65
- * Create the timber-dynamic-transform Vite plugin.
66
- *
67
- * In server mode: transforms 'use dynamic' into markDynamic() calls.
68
- * In static mode: rejects 'use dynamic' as a build error.
69
- */
70
- export declare function timberDynamicTransform(ctx: PluginContext): Plugin;
71
- export {};
72
- //# sourceMappingURL=dynamic-transform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-transform.d.ts","sourceRoot":"","sources":["../../src/plugins/dynamic-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAoBxE;AAMD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,GACX;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa3C;AAMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAkCjE"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Static analyzability checker for search-params.ts files.
3
- *
4
- * Validates that a search-params.ts file's default export is statically
5
- * analyzable — a createSearchParams() call or a chain of .extend()/.pick()
6
- * calls on a SearchParamsDefinition.
7
- *
8
- * Non-analyzable files produce a hard build error with a diagnostic.
9
- *
10
- * Design doc: design/09-typescript.md §"Static Analyzability"
11
- */
12
- /** Result of analyzing a search-params.ts file. */
13
- export interface AnalyzeResult {
14
- /** Whether the file is statically analyzable. */
15
- valid: boolean;
16
- /** Error details when valid is false. */
17
- error?: AnalyzeError;
18
- }
19
- /** Diagnostic error for non-analyzable search-params.ts. */
20
- export interface AnalyzeError {
21
- /** Absolute file path. */
22
- filePath: string;
23
- /** Description of the non-analyzable expression. */
24
- expression: string;
25
- /** Suggested fix. */
26
- suggestion: string;
27
- }
28
- /**
29
- * Patterns that indicate a valid default export:
30
- *
31
- * 1. `export default createSearchParams(...)`
32
- * 2. `export default someVar.extend(...)`
33
- * 3. `export default someVar.pick(...)`
34
- * 4. `export default someVar.extend(...).extend(...)` (chained)
35
- * 5. `export default someVar.extend(...).pick(...)` (chained)
36
- * 6. `export default createSearchParams(...).extend(...)`
37
- *
38
- * Invalid patterns:
39
- * - `export default someFunction(...)` (arbitrary factory)
40
- * - `export default condition ? a : b` (runtime conditional)
41
- * - `export default variable` (opaque reference without call)
42
- */
43
- /**
44
- * Analyze a search-params.ts file source for static analyzability.
45
- *
46
- * @param source - The file content as a string
47
- * @param filePath - Absolute path to the file (for diagnostics)
48
- */
49
- export declare function analyzeSearchParams(source: string, filePath: string): AnalyzeResult;
50
- /**
51
- * Format an AnalyzeError into a human-readable build error message.
52
- */
53
- export declare function formatAnalyzeError(error: AnalyzeError): string;
54
- //# sourceMappingURL=analyze.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/search-params/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,KAAK,EAAE,OAAO,CAAC;IACf,yCAAyC;IACzC,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED,4DAA4D;AAC5D,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAYD;;;;;;;;;;;;;;GAcG;AAEH;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,CAmCnF;AA0ED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAa9D"}
@@ -1,105 +0,0 @@
1
- /**
2
- * Built-in search param codecs for common types.
3
- *
4
- * These provide zero-dependency alternatives to nuqs parsers for the most
5
- * common cases: strings, integers, floats, booleans, and string enums.
6
- *
7
- * All codecs implement SearchParamCodec<T | null> — returning null when the
8
- * param is absent or unparseable. Use withDefault() to replace null with a
9
- * concrete fallback value.
10
- *
11
- * Design doc: design/23-search-params.md §"Identified Gaps" #1
12
- * Task: TIM-362
13
- */
14
- import type { SearchParamCodec } from './create.js';
15
- /**
16
- * String codec. Returns the raw string value, or null if absent.
17
- *
18
- * ```ts
19
- * import { parseAsString } from '@timber-js/app/search-params'
20
- *
21
- * const def = createSearchParams({ q: parseAsString })
22
- * // ?q=shoes → { q: 'shoes' }
23
- * // (absent) → { q: null }
24
- * ```
25
- */
26
- export declare const parseAsString: SearchParamCodec<string | null>;
27
- /**
28
- * Integer codec. Parses a base-10 integer, or returns null if absent or
29
- * not a valid integer. Rejects floats, NaN, Infinity, and non-numeric strings.
30
- *
31
- * ```ts
32
- * import { parseAsInteger, withDefault } from '@timber-js/app/search-params'
33
- *
34
- * const def = createSearchParams({ page: withDefault(parseAsInteger, 1) })
35
- * // ?page=2 → { page: 2 }
36
- * // ?page=abc → { page: 1 }
37
- * // (absent) → { page: 1 }
38
- * ```
39
- */
40
- export declare const parseAsInteger: SearchParamCodec<number | null>;
41
- /**
42
- * Float codec. Parses a finite number, or returns null if absent or invalid.
43
- * Rejects NaN and Infinity.
44
- *
45
- * ```ts
46
- * import { parseAsFloat, withDefault } from '@timber-js/app/search-params'
47
- *
48
- * const def = createSearchParams({ price: withDefault(parseAsFloat, 0) })
49
- * ```
50
- */
51
- export declare const parseAsFloat: SearchParamCodec<number | null>;
52
- /**
53
- * Boolean codec. Accepts "true"/"1" as true, "false"/"0" as false.
54
- * Returns null for absent or unrecognized values.
55
- *
56
- * ```ts
57
- * import { parseAsBoolean, withDefault } from '@timber-js/app/search-params'
58
- *
59
- * const def = createSearchParams({ debug: withDefault(parseAsBoolean, false) })
60
- * // ?debug=true → { debug: true }
61
- * // ?debug=0 → { debug: false }
62
- * ```
63
- */
64
- export declare const parseAsBoolean: SearchParamCodec<boolean | null>;
65
- /**
66
- * String enum codec. Accepts only values in the provided list.
67
- * Returns null for absent or invalid values.
68
- *
69
- * ```ts
70
- * import { parseAsStringEnum, withDefault } from '@timber-js/app/search-params'
71
- *
72
- * const sortCodec = withDefault(
73
- * parseAsStringEnum(['price', 'name', 'date']),
74
- * 'date'
75
- * )
76
- * ```
77
- */
78
- export declare function parseAsStringEnum<T extends string>(values: readonly T[]): SearchParamCodec<T | null>;
79
- /**
80
- * String literal codec. Functionally identical to parseAsStringEnum but
81
- * accepts `as const` tuples for narrower type inference.
82
- *
83
- * ```ts
84
- * import { parseAsStringLiteral } from '@timber-js/app/search-params'
85
- *
86
- * const sizes = ['sm', 'md', 'lg', 'xl'] as const
87
- * const codec = parseAsStringLiteral(sizes)
88
- * // Type: SearchParamCodec<'sm' | 'md' | 'lg' | 'xl' | null>
89
- * ```
90
- */
91
- export declare function parseAsStringLiteral<const T extends readonly string[]>(values: T): SearchParamCodec<T[number] | null>;
92
- /**
93
- * Wrap a nullable codec with a default value. When the inner codec returns
94
- * null, the default is used instead. The output type becomes non-nullable.
95
- *
96
- * ```ts
97
- * import { parseAsInteger, withDefault } from '@timber-js/app/search-params'
98
- *
99
- * const page = withDefault(parseAsInteger, 1)
100
- * // page.parse(undefined) → 1 (not null)
101
- * // page.parse('5') → 5
102
- * ```
103
- */
104
- export declare function withDefault<T>(codec: SearchParamCodec<T | null>, defaultValue: T): SearchParamCodec<T>;
105
- //# sourceMappingURL=builtin-codecs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builtin-codecs.d.ts","sourceRoot":"","sources":["../../src/search-params/builtin-codecs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqBpD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAQzD,CAAC;AAMF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAW1D,CAAC;AAMF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,gBAAgB,CAAC,MAAM,GAAG,IAAI,CAWxD,CAAC;AAMF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,EAAE,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAW3D,CAAC;AAMF;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,MAAM,EAAE,SAAS,CAAC,EAAE,GACnB,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,CAY5B;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EACpE,MAAM,EAAE,CAAC,GACR,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAGpC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,EAAE,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,EACjC,YAAY,EAAE,CAAC,GACd,gBAAgB,CAAC,CAAC,CAAC,CAUrB"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Built-in codecs and the fromSchema bridge for Standard Schema-compatible
3
- * validation libraries (Zod, Valibot, ArkType).
4
- *
5
- * Design doc: design/09-typescript.md §"The SearchParamCodec Protocol"
6
- */
7
- import type { SearchParamCodec } from './create.js';
8
- interface StandardSchemaV1<Output = unknown> {
9
- '~standard': {
10
- validate(value: unknown): StandardSchemaResult<Output> | Promise<StandardSchemaResult<Output>>;
11
- };
12
- }
13
- type StandardSchemaResult<Output> = {
14
- value: Output;
15
- issues?: undefined;
16
- } | {
17
- value?: undefined;
18
- issues: ReadonlyArray<{
19
- message: string;
20
- }>;
21
- };
22
- /**
23
- * Bridge a Standard Schema-compatible schema (Zod, Valibot, ArkType) to a
24
- * SearchParamCodec.
25
- *
26
- * Parse: coerces the raw URL string through the schema. On validation failure,
27
- * parses `undefined` to get the schema's default value (the schema should have
28
- * a `.default()` call). If that also fails, returns `undefined`.
29
- *
30
- * Serialize: uses `String()` for primitives, `null` for null/undefined.
31
- *
32
- * ```ts
33
- * import { fromSchema } from '@timber-js/app/search-params'
34
- * import { z } from 'zod/v4'
35
- *
36
- * const pageCodec = fromSchema(z.coerce.number().int().min(1).default(1))
37
- * ```
38
- */
39
- export declare function fromSchema<T>(schema: StandardSchemaV1<T>): SearchParamCodec<T>;
40
- /**
41
- * Bridge a Standard Schema for array values. Handles both single strings
42
- * and repeated query keys (`?tag=a&tag=b`).
43
- *
44
- * ```ts
45
- * import { fromArraySchema } from '@timber-js/app/search-params'
46
- * import { z } from 'zod/v4'
47
- *
48
- * const tagsCodec = fromArraySchema(z.array(z.string()).default([]))
49
- * ```
50
- */
51
- export declare function fromArraySchema<T>(schema: StandardSchemaV1<T>): SearchParamCodec<T>;
52
- export {};
53
- //# sourceMappingURL=codecs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codecs.d.ts","sourceRoot":"","sources":["../../src/search-params/codecs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAUpD,UAAU,gBAAgB,CAAC,MAAM,GAAG,OAAO;IACzC,WAAW,EAAE;QACX,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;KAChG,CAAC;CACH;AAED,KAAK,oBAAoB,CAAC,MAAM,IAC5B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAAE,GACrC;IAAE,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AA6BtE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CA6B9E;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAmCnF"}
@@ -1,106 +0,0 @@
1
- /**
2
- * createSearchParams — factory for SearchParamsDefinition<T>.
3
- *
4
- * Creates a typed, composable definition for a route's search parameters.
5
- * Supports codec protocol, URL key aliasing, default-omission serialization,
6
- * and composition via .extend() / .pick().
7
- *
8
- * Design doc: design/09-typescript.md §"Typed searchParams — search-params.ts"
9
- */
10
- /**
11
- * A codec that converts between URL string values and typed values.
12
- *
13
- * nuqs parsers (parseAsInteger, parseAsString, etc.) implement this
14
- * interface natively — no adapter needed.
15
- */
16
- export interface SearchParamCodec<T> {
17
- /** URL string → typed value. Receives undefined when the param is absent. */
18
- parse(value: string | string[] | undefined): T;
19
- /** Typed value → URL string. Return null to omit from URL. */
20
- serialize(value: T): string | null;
21
- }
22
- /** Infer the output type of a codec. */
23
- export type InferCodec<C> = C extends SearchParamCodec<infer T> ? T : never;
24
- /** Map of property names to codecs. */
25
- export type CodecMap<T extends Record<string, unknown>> = {
26
- [K in keyof T]: SearchParamCodec<T[K]>;
27
- };
28
- /** Options for useQueryStates setter. */
29
- export interface SetParamsOptions {
30
- /** Update URL without server roundtrip (default: false). */
31
- shallow?: boolean;
32
- /** Scroll to top after update (default: true). */
33
- scroll?: boolean;
34
- /** 'push' (default) or 'replace' for history state. */
35
- history?: 'push' | 'replace';
36
- }
37
- /** Setter function returned by useQueryStates. */
38
- export type SetParams<T> = (values: Partial<T>, options?: SetParamsOptions) => void;
39
- /** Options for useQueryStates hook. */
40
- export interface QueryStatesOptions {
41
- /** Update URL without server roundtrip (default: false). */
42
- shallow?: boolean;
43
- /** Scroll to top after update (default: true). */
44
- scroll?: boolean;
45
- /** 'push' (default) or 'replace' for history state. */
46
- history?: 'push' | 'replace';
47
- }
48
- /** Options for createSearchParams and .extend(). */
49
- export interface SearchParamsOptions<Keys extends string = string> {
50
- /** Map property names to different URL query parameter keys. */
51
- urlKeys?: Partial<Record<Keys, string>>;
52
- }
53
- /**
54
- * A fully typed, composable search params definition.
55
- *
56
- * Returned by createSearchParams(). Carries a phantom _type property
57
- * for build-time type extraction.
58
- */
59
- export interface SearchParamsDefinition<T extends Record<string, unknown>> {
60
- /** Parse raw URL search params into typed values. */
61
- parse(raw: URLSearchParams | Record<string, string | string[] | undefined>): T;
62
- /** Client hook — reads current URL params and returns typed values + setter. */
63
- useQueryStates(options?: QueryStatesOptions): [T, SetParams<T>];
64
- /** Extend with additional codecs. Key collisions are a type error. */
65
- extend<U extends Record<string, SearchParamCodec<unknown>>>(codecs: U, options?: SearchParamsOptions<string>): SearchParamsDefinition<T & {
66
- [K in keyof U]: InferCodec<U[K]>;
67
- }>;
68
- /** Pick a subset of keys. Preserves codecs and aliases. */
69
- pick<K extends keyof T & string>(...keys: K[]): SearchParamsDefinition<Pick<T, K>>;
70
- /** Serialize values to a query string (no leading '?'), omitting defaults. */
71
- serialize(values: Partial<T>): string;
72
- /** Build a full path with query string, omitting defaults. */
73
- href(pathname: string, values: Partial<T>): string;
74
- /** Build a URLSearchParams instance, omitting defaults. */
75
- toSearchParams(values: Partial<T>): URLSearchParams;
76
- /** Read-only codec map for spreading into .extend(). Aliases NOT carried. */
77
- codecs: {
78
- [K in keyof T]: SearchParamCodec<T[K]>;
79
- };
80
- /** Read-only URL key alias map. Maps property names to URL query parameter keys. */
81
- readonly urlKeys: Readonly<Record<string, string>>;
82
- /**
83
- * Phantom property for build-time type extraction.
84
- * Never set at runtime — exists only in the type system.
85
- */
86
- readonly _type?: T;
87
- }
88
- /**
89
- * Create a SearchParamsDefinition from a codec map and optional URL key aliases.
90
- *
91
- * ```ts
92
- * import { createSearchParams, fromSchema } from '@timber-js/app/search-params'
93
- * import { z } from 'zod/v4'
94
- *
95
- * export default createSearchParams({
96
- * page: fromSchema(z.coerce.number().int().min(1).default(1)),
97
- * q: { parse: (v) => v ?? null, serialize: (v) => v },
98
- * }, {
99
- * urlKeys: { q: 'search' },
100
- * })
101
- * ```
102
- */
103
- export declare function createSearchParams<C extends Record<string, SearchParamCodec<unknown>>>(codecs: C, options?: SearchParamsOptions<Extract<keyof C, string>>): SearchParamsDefinition<{
104
- [K in keyof C]: InferCodec<C[K]>;
105
- }>;
106
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/search-params/create.ts"],"names":[],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- /**
2
- * Pre-rendering types and utilities.
3
- *
4
- * A `prerender.ts` file in a route segment signals the framework to
5
- * pre-render the route's shell at build time. This module defines the
6
- * types that a user exports from `prerender.ts` and utilities for
7
- * loading and validating those exports.
8
- *
9
- * Design doc: design/15-future-prerendering.md
10
- */
11
- /**
12
- * The shape of a prerender.ts module's exports.
13
- *
14
- * ```ts
15
- * // app/docs/[slug]/prerender.ts
16
- * export async function generateParams() {
17
- * return docs.map(d => ({ slug: d.slug }))
18
- * }
19
- * export const ttl = '1h'
20
- * export const tags = ['docs']
21
- * ```
22
- */
23
- export interface PrerenderConfig {
24
- /**
25
- * Generate the set of params to pre-render at build time.
26
- * Required for dynamic segments (`[param]`).
27
- * Optional for static segments (the single URL is pre-rendered automatically).
28
- */
29
- generateParams?: () => Promise<Record<string, string>[]> | Record<string, string>[];
30
- /**
31
- * How long the pre-rendered shell is considered fresh.
32
- * Accepts duration strings ('30s', '5m', '1h', '2d', '1w') or seconds as a number.
33
- * Default: Infinity (cache until explicit invalidation).
34
- */
35
- ttl?: string | number;
36
- /**
37
- * Invalidation tags. Calling `revalidateTag('docs')` purges all
38
- * pre-rendered shells with that tag.
39
- */
40
- tags?: string[];
41
- /**
42
- * Fallback strategy for dynamic routes without `generateParams`.
43
- * Only valid in `output: 'static'` mode.
44
- * - `'shell'`: emit a single pre-rendered shell that serves as client-side fallback
45
- */
46
- fallback?: 'shell';
47
- }
48
- export interface ResolvedPrerenderConfig {
49
- /** TTL in seconds. Infinity if not set. */
50
- ttlSeconds: number;
51
- /** Invalidation tags */
52
- tags: string[];
53
- /** The generateParams function, if provided */
54
- generateParams?: () => Promise<Record<string, string>[]> | Record<string, string>[];
55
- /** Fallback strategy */
56
- fallback?: 'shell';
57
- }
58
- /**
59
- * Resolve raw prerender.ts exports into a normalized config.
60
- *
61
- * Validates:
62
- * - `ttl` is a valid duration string or number
63
- * - `tags` is an array of strings
64
- * - `fallback` is 'shell' or undefined
65
- */
66
- export declare function resolvePrerenderConfig(raw: PrerenderConfig): ResolvedPrerenderConfig;
67
- export interface PrerenderDiagnostic {
68
- type: 'DYNAMIC_SEGMENT_NO_PARAMS';
69
- segmentPath: string;
70
- message: string;
71
- }
72
- /**
73
- * Check if a dynamic segment has `generateParams` when prerender.ts is present.
74
- * If not, emit a diagnostic — the route falls back to SSR.
75
- */
76
- export declare function checkDynamicSegmentParams(segmentPath: string, isDynamic: boolean, hasGenerateParams: boolean, fallback?: 'shell'): PrerenderDiagnostic | null;
77
- //# sourceMappingURL=prerender.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/server/prerender.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAEpF;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAMD,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpF,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG,uBAAuB,CAsBpF;AAMD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,2BAA2B,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,EAClB,iBAAiB,EAAE,OAAO,EAC1B,QAAQ,CAAC,EAAE,OAAO,GACjB,mBAAmB,GAAG,IAAI,CAc5B"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Render-level response deduplication and short-TTL LRU cache.
3
- *
4
- * Two layers of optimization:
5
- *
6
- * 1. **Singleflight** — concurrent requests to the same URL share a single
7
- * render. Uses createSingleflight() from cache/singleflight.ts.
8
- *
9
- * 2. **LRU cache** — recently rendered responses are reused without
10
- * re-executing the RSC-to-SSR pipeline. Entries have a short TTL
11
- * (default 5s) and the cache has a bounded size (default 150 entries).
12
- *
13
- * Cache keys are compound: pathname + search + isRscPayload + Vary'd headers.
14
- * Only GET requests are cached. Responses with Set-Cookie, Cache-Control:
15
- * no-store/private, or error/redirect status codes are never cached.
16
- * When `publicOnly` is true (default), requests with Cookie or Authorization
17
- * headers bypass the cache entirely.
18
- *
19
- * See design/02-rendering-pipeline.md, design/31-benchmarking.md.
20
- */
21
- export interface ResponseCacheConfig {
22
- /** Maximum number of entries in the LRU cache. Default: 150. */
23
- maxSize?: number;
24
- /** TTL for cached entries in milliseconds. Default: 5000 (5s). */
25
- ttlMs?: number;
26
- /**
27
- * When true (default), requests with Cookie or Authorization headers
28
- * bypass the cache entirely. This prevents sharing user-specific
29
- * responses across requests.
30
- */
31
- publicOnly?: boolean;
32
- }
33
- export interface ResolvedResponseCacheConfig {
34
- maxSize: number;
35
- ttlMs: number;
36
- publicOnly: boolean;
37
- }
38
- export declare function resolveResponseCacheConfig(config?: ResponseCacheConfig | false): ResolvedResponseCacheConfig | null;
39
- export interface ResponseCache {
40
- /**
41
- * Wrap a render function with singleflight dedup + LRU caching.
42
- * Returns the cached Response or executes the render function.
43
- */
44
- getOrRender(req: Request, isRscPayload: boolean, renderFn: () => Promise<Response>): Promise<Response>;
45
- /** Number of entries currently in the LRU cache. */
46
- readonly size: number;
47
- /** Clear all cached entries. */
48
- clear(): void;
49
- }
50
- /**
51
- * Create a response cache with singleflight deduplication and LRU caching.
52
- */
53
- export declare function createResponseCache(config: ResolvedResponseCacheConfig): ResponseCache;
54
- //# sourceMappingURL=response-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"response-cache.d.ts","sourceRoot":"","sources":["../../src/server/response-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,0BAA0B,CACxC,MAAM,CAAC,EAAE,mBAAmB,GAAG,KAAK,GACnC,2BAA2B,GAAG,IAAI,CASpC;AA+ED,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,WAAW,CACT,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAChC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErB,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,gCAAgC;IAChC,KAAK,IAAI,IAAI,CAAC;CACf;AAuDD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,2BAA2B,GAAG,aAAa,CAyMtF"}