@timber-js/app 0.2.0-alpha.13 → 0.2.0-alpha.132

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 (784) hide show
  1. package/dist/_chunks/actions-BNhpxrnV.js +1104 -0
  2. package/dist/_chunks/actions-BNhpxrnV.js.map +1 -0
  3. package/dist/_chunks/build-output-helper-K7oUCRqU.js +102 -0
  4. package/dist/_chunks/build-output-helper-K7oUCRqU.js.map +1 -0
  5. package/dist/_chunks/cli-schema-sync-CObqjGWF.js +2 -0
  6. package/dist/_chunks/cli-schema-sync-q-Ce6-iG.js +785 -0
  7. package/dist/_chunks/cli-schema-sync-q-Ce6-iG.js.map +1 -0
  8. package/dist/_chunks/codec-registry-DqkeAydt.js +21 -0
  9. package/dist/_chunks/codec-registry-DqkeAydt.js.map +1 -0
  10. package/dist/_chunks/define-DMq-Yjp7.js +112 -0
  11. package/dist/_chunks/define-DMq-Yjp7.js.map +1 -0
  12. package/dist/_chunks/define-jeHDXZGq.js +195 -0
  13. package/dist/_chunks/define-jeHDXZGq.js.map +1 -0
  14. package/dist/_chunks/format-BjN9HLu9.js +14 -0
  15. package/dist/_chunks/format-BjN9HLu9.js.map +1 -0
  16. package/dist/_chunks/handler-store-bIAstrxQ.js +54 -0
  17. package/dist/_chunks/handler-store-bIAstrxQ.js.map +1 -0
  18. package/dist/_chunks/logger-CMd9P1xQ.js +291 -0
  19. package/dist/_chunks/logger-CMd9P1xQ.js.map +1 -0
  20. package/dist/_chunks/merge-search-params-Cm1j99HC.js +41 -0
  21. package/dist/_chunks/merge-search-params-Cm1j99HC.js.map +1 -0
  22. package/dist/_chunks/{metadata-routes-Cjmvi3rQ.js → metadata-routes-DESG8uk5.js} +32 -19
  23. package/dist/_chunks/metadata-routes-DESG8uk5.js.map +1 -0
  24. package/dist/_chunks/navigation-root-B5-RmsPi.js +103 -0
  25. package/dist/_chunks/navigation-root-B5-RmsPi.js.map +1 -0
  26. package/dist/_chunks/registry-BI9cgCt7.js +20 -0
  27. package/dist/_chunks/registry-BI9cgCt7.js.map +1 -0
  28. package/dist/_chunks/resolve-schema-DU2nbVOi.js +77 -0
  29. package/dist/_chunks/resolve-schema-DU2nbVOi.js.map +1 -0
  30. package/dist/_chunks/router-ref-B2-2kIIC.js +28 -0
  31. package/dist/_chunks/router-ref-B2-2kIIC.js.map +1 -0
  32. package/dist/_chunks/schema-bridge-o0SwFtXW.js +86 -0
  33. package/dist/_chunks/schema-bridge-o0SwFtXW.js.map +1 -0
  34. package/dist/_chunks/segment-classify-BjfuctV2.js +137 -0
  35. package/dist/_chunks/segment-classify-BjfuctV2.js.map +1 -0
  36. package/dist/_chunks/segment-context-Bg0pFbLT.js +34 -0
  37. package/dist/_chunks/segment-context-Bg0pFbLT.js.map +1 -0
  38. package/dist/_chunks/{ssr-data-MjmprTmO.js → ssr-data-DVX8S7vj.js} +1 -1
  39. package/dist/_chunks/ssr-data-DVX8S7vj.js.map +1 -0
  40. package/dist/_chunks/stale-reload-CCqb62Z3.js +84 -0
  41. package/dist/_chunks/stale-reload-CCqb62Z3.js.map +1 -0
  42. package/dist/_chunks/tracing-DP5djRq5.js +358 -0
  43. package/dist/_chunks/tracing-DP5djRq5.js.map +1 -0
  44. package/dist/_chunks/{use-query-states-D5KaffOK.js → use-query-states-C9G6LP0F.js} +7 -20
  45. package/dist/_chunks/use-query-states-C9G6LP0F.js.map +1 -0
  46. package/dist/_chunks/use-segment-params-CIeinIx2.js +151 -0
  47. package/dist/_chunks/use-segment-params-CIeinIx2.js.map +1 -0
  48. package/dist/_chunks/validation-AfEFM5ze.js +84 -0
  49. package/dist/_chunks/validation-AfEFM5ze.js.map +1 -0
  50. package/dist/_chunks/walkers-BbEu2_Pp.js +724 -0
  51. package/dist/_chunks/walkers-BbEu2_Pp.js.map +1 -0
  52. package/dist/_chunks/{format-DviM89f0.js → warnings-CAzunaGo.js} +6 -45
  53. package/dist/_chunks/warnings-CAzunaGo.js.map +1 -0
  54. package/dist/adapters/build-output-helper.d.ts +28 -0
  55. package/dist/adapters/build-output-helper.d.ts.map +1 -0
  56. package/dist/adapters/cloudflare-dev.d.ts +109 -0
  57. package/dist/adapters/cloudflare-dev.d.ts.map +1 -0
  58. package/dist/adapters/cloudflare-dev.js +73 -0
  59. package/dist/adapters/cloudflare-dev.js.map +1 -0
  60. package/dist/adapters/cloudflare-kv-cache.d.ts +64 -0
  61. package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -0
  62. package/dist/adapters/cloudflare-kv-cache.js +95 -0
  63. package/dist/adapters/cloudflare-kv-cache.js.map +1 -0
  64. package/dist/adapters/cloudflare.d.ts +148 -12
  65. package/dist/adapters/cloudflare.d.ts.map +1 -1
  66. package/dist/adapters/cloudflare.js +142 -38
  67. package/dist/adapters/cloudflare.js.map +1 -1
  68. package/dist/adapters/compress-module.d.ts.map +1 -1
  69. package/dist/adapters/nitro.d.ts +17 -1
  70. package/dist/adapters/nitro.d.ts.map +1 -1
  71. package/dist/adapters/nitro.js +143 -45
  72. package/dist/adapters/nitro.js.map +1 -1
  73. package/dist/adapters/shared.d.ts +16 -0
  74. package/dist/adapters/shared.d.ts.map +1 -0
  75. package/dist/cache/cache-api.d.ts +24 -0
  76. package/dist/cache/cache-api.d.ts.map +1 -0
  77. package/dist/cache/handler-store.d.ts +31 -0
  78. package/dist/cache/handler-store.d.ts.map +1 -0
  79. package/dist/cache/index.d.ts +23 -7
  80. package/dist/cache/index.d.ts.map +1 -1
  81. package/dist/cache/index.js +151 -81
  82. package/dist/cache/index.js.map +1 -1
  83. package/dist/cache/singleflight.d.ts +18 -1
  84. package/dist/cache/singleflight.d.ts.map +1 -1
  85. package/dist/cache/sizeof.d.ts +22 -0
  86. package/dist/cache/sizeof.d.ts.map +1 -0
  87. package/dist/cache/timber-cache.d.ts +1 -1
  88. package/dist/cache/timber-cache.d.ts.map +1 -1
  89. package/dist/cli-schema-sync.d.ts +39 -0
  90. package/dist/cli-schema-sync.d.ts.map +1 -0
  91. package/dist/cli.d.ts +14 -2
  92. package/dist/cli.d.ts.map +1 -1
  93. package/dist/cli.js +48 -6
  94. package/dist/cli.js.map +1 -1
  95. package/dist/client/browser-dev.d.ts +34 -1
  96. package/dist/client/browser-dev.d.ts.map +1 -1
  97. package/dist/client/browser-entry/action-dispatch.d.ts +17 -0
  98. package/dist/client/browser-entry/action-dispatch.d.ts.map +1 -0
  99. package/dist/client/browser-entry/hmr.d.ts +21 -0
  100. package/dist/client/browser-entry/hmr.d.ts.map +1 -0
  101. package/dist/client/browser-entry/hydrate.d.ts +46 -0
  102. package/dist/client/browser-entry/hydrate.d.ts.map +1 -0
  103. package/dist/client/browser-entry/index.d.ts +30 -0
  104. package/dist/client/browser-entry/index.d.ts.map +1 -0
  105. package/dist/client/browser-entry/post-hydration.d.ts +26 -0
  106. package/dist/client/browser-entry/post-hydration.d.ts.map +1 -0
  107. package/dist/client/browser-entry/router-init.d.ts +26 -0
  108. package/dist/client/browser-entry/router-init.d.ts.map +1 -0
  109. package/dist/client/browser-entry/rsc-stream.d.ts +24 -0
  110. package/dist/client/browser-entry/rsc-stream.d.ts.map +1 -0
  111. package/dist/client/browser-entry/scroll.d.ts +19 -0
  112. package/dist/client/browser-entry/scroll.d.ts.map +1 -0
  113. package/dist/client/error-boundary.d.ts +12 -5
  114. package/dist/client/error-boundary.d.ts.map +1 -1
  115. package/dist/client/error-boundary.js +29 -6
  116. package/dist/client/error-boundary.js.map +1 -1
  117. package/dist/client/error-reconstituter.d.ts +54 -0
  118. package/dist/client/error-reconstituter.d.ts.map +1 -0
  119. package/dist/client/form.d.ts +16 -27
  120. package/dist/client/form.d.ts.map +1 -1
  121. package/dist/client/history.d.ts +19 -4
  122. package/dist/client/history.d.ts.map +1 -1
  123. package/dist/client/index.d.ts +10 -24
  124. package/dist/client/index.d.ts.map +1 -1
  125. package/dist/client/index.js +180 -1119
  126. package/dist/client/index.js.map +1 -1
  127. package/dist/client/internal.d.ts +19 -0
  128. package/dist/client/internal.d.ts.map +1 -0
  129. package/dist/client/internal.js +845 -0
  130. package/dist/client/internal.js.map +1 -0
  131. package/dist/client/link-pending-store.d.ts +65 -0
  132. package/dist/client/link-pending-store.d.ts.map +1 -0
  133. package/dist/client/link.d.ts +67 -56
  134. package/dist/client/link.d.ts.map +1 -1
  135. package/dist/client/nav-link-store.d.ts +27 -0
  136. package/dist/client/nav-link-store.d.ts.map +1 -0
  137. package/dist/client/navigation-api-types.d.ts +90 -0
  138. package/dist/client/navigation-api-types.d.ts.map +1 -0
  139. package/dist/client/navigation-api.d.ts +115 -0
  140. package/dist/client/navigation-api.d.ts.map +1 -0
  141. package/dist/client/navigation-context.d.ts +14 -2
  142. package/dist/client/navigation-context.d.ts.map +1 -1
  143. package/dist/client/{transition-root.d.ts → navigation-root.d.ts} +46 -9
  144. package/dist/client/navigation-root.d.ts.map +1 -0
  145. package/dist/client/nuqs-adapter.d.ts.map +1 -1
  146. package/dist/client/router-ref.d.ts +1 -1
  147. package/dist/client/router.d.ts +79 -10
  148. package/dist/client/router.d.ts.map +1 -1
  149. package/dist/client/rsc-fetch.d.ts +46 -3
  150. package/dist/client/rsc-fetch.d.ts.map +1 -1
  151. package/dist/client/segment-cache.d.ts +3 -1
  152. package/dist/client/segment-cache.d.ts.map +1 -1
  153. package/dist/client/segment-outlet.d.ts +49 -0
  154. package/dist/client/segment-outlet.d.ts.map +1 -0
  155. package/dist/client/segment-update-context.d.ts +21 -0
  156. package/dist/client/segment-update-context.d.ts.map +1 -0
  157. package/dist/client/shallow-url.d.ts +10 -0
  158. package/dist/client/shallow-url.d.ts.map +1 -0
  159. package/dist/client/ssr-data.d.ts +13 -4
  160. package/dist/client/ssr-data.d.ts.map +1 -1
  161. package/dist/client/stale-reload.d.ts +15 -0
  162. package/dist/client/stale-reload.d.ts.map +1 -1
  163. package/dist/client/state.d.ts +1 -1
  164. package/dist/client/top-loader.d.ts +5 -5
  165. package/dist/client/top-loader.d.ts.map +1 -1
  166. package/dist/client/use-cookie.d.ts +12 -0
  167. package/dist/client/use-cookie.d.ts.map +1 -1
  168. package/dist/client/use-link-status.d.ts +5 -5
  169. package/dist/client/use-link-status.d.ts.map +1 -1
  170. package/dist/client/use-pending-navigation.d.ts +23 -0
  171. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  172. package/dist/client/use-query-states.d.ts +1 -1
  173. package/dist/client/use-query-states.d.ts.map +1 -1
  174. package/dist/client/use-router.d.ts +1 -1
  175. package/dist/client/use-search-params.d.ts +7 -5
  176. package/dist/client/use-search-params.d.ts.map +1 -1
  177. package/dist/client/{use-params.d.ts → use-segment-params.d.ts} +8 -6
  178. package/dist/client/use-segment-params.d.ts.map +1 -0
  179. package/dist/codec.d.ts +69 -0
  180. package/dist/codec.d.ts.map +1 -0
  181. package/dist/codec.js +75 -0
  182. package/dist/codec.js.map +1 -0
  183. package/dist/config-types.d.ts +294 -0
  184. package/dist/config-types.d.ts.map +1 -0
  185. package/dist/config-validation.d.ts +51 -0
  186. package/dist/config-validation.d.ts.map +1 -0
  187. package/dist/content/index.d.ts +1 -10
  188. package/dist/content/index.d.ts.map +1 -1
  189. package/dist/content/index.js +0 -2
  190. package/dist/cookies/define-cookie.d.ts +58 -25
  191. package/dist/cookies/define-cookie.d.ts.map +1 -1
  192. package/dist/cookies/index.d.ts +2 -1
  193. package/dist/cookies/index.d.ts.map +1 -1
  194. package/dist/cookies/index.js +251 -36
  195. package/dist/cookies/index.js.map +1 -1
  196. package/dist/cookies/json-cookie.d.ts +64 -0
  197. package/dist/cookies/json-cookie.d.ts.map +1 -0
  198. package/dist/cookies/validation.d.ts +46 -0
  199. package/dist/cookies/validation.d.ts.map +1 -0
  200. package/dist/dev-tools/404-page.d.ts +46 -0
  201. package/dist/dev-tools/404-page.d.ts.map +1 -0
  202. package/dist/dev-tools/browser-logs.d.ts +84 -0
  203. package/dist/dev-tools/browser-logs.d.ts.map +1 -0
  204. package/dist/dev-tools/error-page.d.ts +58 -0
  205. package/dist/dev-tools/error-page.d.ts.map +1 -0
  206. package/dist/dev-tools/holding-server.d.ts +54 -0
  207. package/dist/dev-tools/holding-server.d.ts.map +1 -0
  208. package/dist/dev-tools/index.d.ts +31 -0
  209. package/dist/dev-tools/index.d.ts.map +1 -0
  210. package/dist/{server/dev-span-processor.d.ts → dev-tools/instrumentation.d.ts} +26 -6
  211. package/dist/dev-tools/instrumentation.d.ts.map +1 -0
  212. package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
  213. package/dist/dev-tools/logger.d.ts.map +1 -0
  214. package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +2 -2
  215. package/dist/dev-tools/logs.d.ts.map +1 -0
  216. package/dist/dev-tools/overlay.d.ts +91 -0
  217. package/dist/dev-tools/overlay.d.ts.map +1 -0
  218. package/dist/dev-tools/stack-classifier.d.ts +34 -0
  219. package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
  220. package/dist/dev-tools/terminal.d.ts +28 -0
  221. package/dist/dev-tools/terminal.d.ts.map +1 -0
  222. package/dist/{server/dev-warnings.d.ts → dev-tools/warnings.d.ts} +2 -22
  223. package/dist/dev-tools/warnings.d.ts.map +1 -0
  224. package/dist/fonts/ast.d.ts +98 -6
  225. package/dist/fonts/ast.d.ts.map +1 -1
  226. package/dist/fonts/bundle.d.ts +48 -0
  227. package/dist/fonts/bundle.d.ts.map +1 -0
  228. package/dist/fonts/dev-middleware.d.ts +22 -0
  229. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  230. package/dist/fonts/local.d.ts +1 -1
  231. package/dist/fonts/pipeline.d.ts +167 -0
  232. package/dist/fonts/pipeline.d.ts.map +1 -0
  233. package/dist/fonts/transform.d.ts +78 -0
  234. package/dist/fonts/transform.d.ts.map +1 -0
  235. package/dist/fonts/types.d.ts +45 -1
  236. package/dist/fonts/types.d.ts.map +1 -1
  237. package/dist/fonts/virtual-modules.d.ts +94 -0
  238. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  239. package/dist/index.d.ts +46 -164
  240. package/dist/index.d.ts.map +1 -1
  241. package/dist/index.js +5584 -13386
  242. package/dist/index.js.map +1 -1
  243. package/dist/params/codec-registry.d.ts +26 -0
  244. package/dist/params/codec-registry.d.ts.map +1 -0
  245. package/dist/params/define-schema.d.ts +81 -0
  246. package/dist/params/define-schema.d.ts.map +1 -0
  247. package/dist/params/index.d.ts +5 -0
  248. package/dist/params/index.d.ts.map +1 -0
  249. package/dist/params/index.js +34 -0
  250. package/dist/params/index.js.map +1 -0
  251. package/dist/params/resolve-schema.d.ts +34 -0
  252. package/dist/params/resolve-schema.d.ts.map +1 -0
  253. package/dist/plugin-context.d.ts +107 -0
  254. package/dist/plugin-context.d.ts.map +1 -0
  255. package/dist/plugins/adapter-build.d.ts +1 -1
  256. package/dist/plugins/adapter-build.d.ts.map +1 -1
  257. package/dist/plugins/build-manifest.d.ts +2 -2
  258. package/dist/plugins/build-manifest.d.ts.map +1 -1
  259. package/dist/plugins/build-report.d.ts +9 -7
  260. package/dist/plugins/build-report.d.ts.map +1 -1
  261. package/dist/plugins/client-chunks.d.ts +32 -0
  262. package/dist/plugins/client-chunks.d.ts.map +1 -0
  263. package/dist/plugins/cloudflare-wasm.d.ts +18 -0
  264. package/dist/plugins/cloudflare-wasm.d.ts.map +1 -0
  265. package/dist/plugins/content.d.ts +1 -1
  266. package/dist/plugins/content.d.ts.map +1 -1
  267. package/dist/plugins/dev-server.d.ts +1 -1
  268. package/dist/plugins/dev-server.d.ts.map +1 -1
  269. package/dist/plugins/entries.d.ts +1 -1
  270. package/dist/plugins/entries.d.ts.map +1 -1
  271. package/dist/plugins/fonts.d.ts +17 -73
  272. package/dist/plugins/fonts.d.ts.map +1 -1
  273. package/dist/plugins/mdx.d.ts +1 -1
  274. package/dist/plugins/mdx.d.ts.map +1 -1
  275. package/dist/plugins/routing.d.ts +1 -1
  276. package/dist/plugins/routing.d.ts.map +1 -1
  277. package/dist/plugins/server-bundle.d.ts.map +1 -1
  278. package/dist/plugins/shims.d.ts +6 -5
  279. package/dist/plugins/shims.d.ts.map +1 -1
  280. package/dist/plugins/static-build.d.ts +5 -26
  281. package/dist/plugins/static-build.d.ts.map +1 -1
  282. package/dist/routing/codegen-shared.d.ts +67 -0
  283. package/dist/routing/codegen-shared.d.ts.map +1 -0
  284. package/dist/routing/codegen-types.d.ts +60 -0
  285. package/dist/routing/codegen-types.d.ts.map +1 -0
  286. package/dist/routing/codegen.d.ts +7 -2
  287. package/dist/routing/codegen.d.ts.map +1 -1
  288. package/dist/routing/convention-lint.d.ts +41 -0
  289. package/dist/routing/convention-lint.d.ts.map +1 -0
  290. package/dist/routing/index.d.ts +7 -1
  291. package/dist/routing/index.d.ts.map +1 -1
  292. package/dist/routing/index.js +4 -2
  293. package/dist/routing/link-codegen.d.ts +90 -0
  294. package/dist/routing/link-codegen.d.ts.map +1 -0
  295. package/dist/routing/scanner.d.ts +1 -10
  296. package/dist/routing/scanner.d.ts.map +1 -1
  297. package/dist/routing/schema-validation.d.ts +35 -0
  298. package/dist/routing/schema-validation.d.ts.map +1 -0
  299. package/dist/routing/segment-classify.d.ts +75 -0
  300. package/dist/routing/segment-classify.d.ts.map +1 -0
  301. package/dist/routing/segment-codegen.d.ts +38 -0
  302. package/dist/routing/segment-codegen.d.ts.map +1 -0
  303. package/dist/routing/types.d.ts +77 -25
  304. package/dist/routing/types.d.ts.map +1 -1
  305. package/dist/routing/walkers.d.ts +51 -0
  306. package/dist/routing/walkers.d.ts.map +1 -0
  307. package/dist/rsc-runtime/rsc.d.ts +1 -1
  308. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  309. package/dist/rsc-runtime/ssr.d.ts +12 -0
  310. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  311. package/dist/schema-bridge.d.ts +76 -0
  312. package/dist/schema-bridge.d.ts.map +1 -0
  313. package/dist/search-params/define.d.ts +157 -0
  314. package/dist/search-params/define.d.ts.map +1 -0
  315. package/dist/search-params/index.d.ts +4 -7
  316. package/dist/search-params/index.d.ts.map +1 -1
  317. package/dist/search-params/index.js +34 -441
  318. package/dist/search-params/index.js.map +1 -1
  319. package/dist/search-params/registry.d.ts +2 -2
  320. package/dist/search-params/registry.d.ts.map +1 -1
  321. package/dist/search-params/wrappers.d.ts +53 -0
  322. package/dist/search-params/wrappers.d.ts.map +1 -0
  323. package/dist/segment-params/define.d.ts +89 -0
  324. package/dist/segment-params/define.d.ts.map +1 -0
  325. package/dist/segment-params/index.d.ts +3 -0
  326. package/dist/segment-params/index.d.ts.map +1 -0
  327. package/dist/segment-params/index.js +2 -0
  328. package/dist/server/access-gate.d.ts +8 -3
  329. package/dist/server/access-gate.d.ts.map +1 -1
  330. package/dist/server/action-client.d.ts +41 -6
  331. package/dist/server/action-client.d.ts.map +1 -1
  332. package/dist/server/action-encryption.d.ts +76 -0
  333. package/dist/server/action-encryption.d.ts.map +1 -0
  334. package/dist/server/action-handler.d.ts +35 -1
  335. package/dist/server/action-handler.d.ts.map +1 -1
  336. package/dist/server/actions.d.ts +6 -14
  337. package/dist/server/actions.d.ts.map +1 -1
  338. package/dist/server/als-registry.d.ts +70 -11
  339. package/dist/server/als-registry.d.ts.map +1 -1
  340. package/dist/server/asset-headers.d.ts +1 -15
  341. package/dist/server/asset-headers.d.ts.map +1 -1
  342. package/dist/server/build-manifest.d.ts +8 -2
  343. package/dist/server/build-manifest.d.ts.map +1 -1
  344. package/dist/server/coalesce-tick.d.ts +40 -0
  345. package/dist/server/coalesce-tick.d.ts.map +1 -0
  346. package/dist/server/cookie-context.d.ts +170 -0
  347. package/dist/server/cookie-context.d.ts.map +1 -0
  348. package/dist/server/cookie-parsing.d.ts +51 -0
  349. package/dist/server/cookie-parsing.d.ts.map +1 -0
  350. package/dist/server/debug.d.ts +1 -1
  351. package/dist/server/default-logger.d.ts +22 -0
  352. package/dist/server/default-logger.d.ts.map +1 -0
  353. package/dist/server/deny-boundary.d.ts +90 -0
  354. package/dist/server/deny-boundary.d.ts.map +1 -0
  355. package/dist/server/deny-renderer.d.ts +1 -1
  356. package/dist/server/deny-renderer.d.ts.map +1 -1
  357. package/dist/server/dev-source-map.d.ts +22 -0
  358. package/dist/server/dev-source-map.d.ts.map +1 -0
  359. package/dist/server/early-hints-sender.d.ts.map +1 -1
  360. package/dist/server/early-hints.d.ts +13 -5
  361. package/dist/server/early-hints.d.ts.map +1 -1
  362. package/dist/server/error-boundary-wrapper.d.ts +7 -1
  363. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  364. package/dist/server/fallback-error.d.ts +12 -7
  365. package/dist/server/fallback-error.d.ts.map +1 -1
  366. package/dist/server/flight-injection-state.d.ts +66 -0
  367. package/dist/server/flight-injection-state.d.ts.map +1 -0
  368. package/dist/server/flight-scripts.d.ts +42 -0
  369. package/dist/server/flight-scripts.d.ts.map +1 -0
  370. package/dist/server/flush.d.ts.map +1 -1
  371. package/dist/server/form-data.d.ts +29 -0
  372. package/dist/server/form-data.d.ts.map +1 -1
  373. package/dist/server/html-injector-core.d.ts +213 -0
  374. package/dist/server/html-injector-core.d.ts.map +1 -0
  375. package/dist/server/html-injectors.d.ts +81 -41
  376. package/dist/server/html-injectors.d.ts.map +1 -1
  377. package/dist/server/index.d.ts +10 -46
  378. package/dist/server/index.d.ts.map +1 -1
  379. package/dist/server/index.js +155 -2905
  380. package/dist/server/index.js.map +1 -1
  381. package/dist/server/internal.d.ts +48 -0
  382. package/dist/server/internal.d.ts.map +1 -0
  383. package/dist/server/internal.js +3073 -0
  384. package/dist/server/internal.js.map +1 -0
  385. package/dist/server/logger.d.ts +39 -7
  386. package/dist/server/logger.d.ts.map +1 -1
  387. package/dist/server/metadata-routes.d.ts +23 -7
  388. package/dist/server/metadata-routes.d.ts.map +1 -1
  389. package/dist/server/middleware-runner.d.ts +36 -4
  390. package/dist/server/middleware-runner.d.ts.map +1 -1
  391. package/dist/server/node-stream-transforms.d.ts +112 -0
  392. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  393. package/dist/server/param-coercion.d.ts +54 -0
  394. package/dist/server/param-coercion.d.ts.map +1 -0
  395. package/dist/server/pipeline-helpers.d.ts +95 -0
  396. package/dist/server/pipeline-helpers.d.ts.map +1 -0
  397. package/dist/server/pipeline-interception.d.ts +1 -1
  398. package/dist/server/pipeline-interception.d.ts.map +1 -1
  399. package/dist/server/pipeline-metadata.d.ts +6 -0
  400. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  401. package/dist/server/pipeline-outcome.d.ts +49 -0
  402. package/dist/server/pipeline-outcome.d.ts.map +1 -0
  403. package/dist/server/pipeline-phases.d.ts +52 -0
  404. package/dist/server/pipeline-phases.d.ts.map +1 -0
  405. package/dist/server/pipeline.d.ts +118 -23
  406. package/dist/server/pipeline.d.ts.map +1 -1
  407. package/dist/server/port-resolution.d.ts +117 -0
  408. package/dist/server/port-resolution.d.ts.map +1 -0
  409. package/dist/server/primitives.d.ts +69 -18
  410. package/dist/server/primitives.d.ts.map +1 -1
  411. package/dist/server/render-timeout.d.ts +51 -0
  412. package/dist/server/render-timeout.d.ts.map +1 -0
  413. package/dist/server/request-context.d.ts +62 -107
  414. package/dist/server/request-context.d.ts.map +1 -1
  415. package/dist/server/route-element-builder.d.ts +28 -2
  416. package/dist/server/route-element-builder.d.ts.map +1 -1
  417. package/dist/server/route-handler.d.ts.map +1 -1
  418. package/dist/server/route-matcher.d.ts +25 -36
  419. package/dist/server/route-matcher.d.ts.map +1 -1
  420. package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
  421. package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
  422. package/dist/server/rsc-entry/api-handler.d.ts +2 -2
  423. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  424. package/dist/server/rsc-entry/error-renderer.d.ts +26 -13
  425. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  426. package/dist/server/rsc-entry/helpers.d.ts +50 -6
  427. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  428. package/dist/server/rsc-entry/index.d.ts +19 -8
  429. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  430. package/dist/server/rsc-entry/render-route.d.ts +50 -0
  431. package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
  432. package/dist/server/rsc-entry/rsc-payload.d.ts +3 -3
  433. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  434. package/dist/server/rsc-entry/rsc-stream.d.ts +17 -1
  435. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  436. package/dist/server/rsc-entry/ssr-bridge.d.ts +5 -1
  437. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  438. package/dist/server/rsc-entry/ssr-renderer.d.ts +19 -4
  439. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  440. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +119 -0
  441. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
  442. package/dist/server/safe-load.d.ts +46 -0
  443. package/dist/server/safe-load.d.ts.map +1 -0
  444. package/dist/server/sensitive-fields.d.ts +74 -0
  445. package/dist/server/sensitive-fields.d.ts.map +1 -0
  446. package/dist/server/sitemap-generator.d.ts +129 -0
  447. package/dist/server/sitemap-generator.d.ts.map +1 -0
  448. package/dist/server/sitemap-handler.d.ts +22 -0
  449. package/dist/server/sitemap-handler.d.ts.map +1 -0
  450. package/dist/server/slot-resolver.d.ts +1 -1
  451. package/dist/server/slot-resolver.d.ts.map +1 -1
  452. package/dist/server/ssr-bridge-types.d.ts +121 -0
  453. package/dist/server/ssr-bridge-types.d.ts.map +1 -0
  454. package/dist/server/ssr-entry.d.ts +2 -43
  455. package/dist/server/ssr-entry.d.ts.map +1 -1
  456. package/dist/server/ssr-render.d.ts +64 -21
  457. package/dist/server/ssr-render.d.ts.map +1 -1
  458. package/dist/server/ssr-wrappers.d.ts +50 -0
  459. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  460. package/dist/server/state-tree-diff.d.ts +12 -5
  461. package/dist/server/state-tree-diff.d.ts.map +1 -1
  462. package/dist/server/status-code-resolver.d.ts +16 -11
  463. package/dist/server/status-code-resolver.d.ts.map +1 -1
  464. package/dist/server/stream-utils.d.ts +36 -0
  465. package/dist/server/stream-utils.d.ts.map +1 -0
  466. package/dist/server/tracing.d.ts +5 -5
  467. package/dist/server/tracing.d.ts.map +1 -1
  468. package/dist/server/tree-builder.d.ts +62 -30
  469. package/dist/server/tree-builder.d.ts.map +1 -1
  470. package/dist/server/tree-match.d.ts +49 -0
  471. package/dist/server/tree-match.d.ts.map +1 -0
  472. package/dist/server/types.d.ts +49 -4
  473. package/dist/server/types.d.ts.map +1 -1
  474. package/dist/server/utils/escape-html.d.ts +14 -0
  475. package/dist/server/utils/escape-html.d.ts.map +1 -0
  476. package/dist/server/version-skew.d.ts +61 -0
  477. package/dist/server/version-skew.d.ts.map +1 -0
  478. package/dist/shared/merge-search-params.d.ts +22 -0
  479. package/dist/shared/merge-search-params.d.ts.map +1 -0
  480. package/dist/shims/font-google.d.ts +1 -1
  481. package/dist/shims/font-google.d.ts.map +1 -1
  482. package/dist/shims/font-google.js +42 -0
  483. package/dist/shims/font-google.js.map +1 -0
  484. package/dist/shims/font-local.d.ts +26 -0
  485. package/dist/shims/font-local.d.ts.map +1 -0
  486. package/dist/shims/font-local.js +20 -0
  487. package/dist/shims/font-local.js.map +1 -0
  488. package/dist/shims/headers.d.ts +2 -1
  489. package/dist/shims/headers.d.ts.map +1 -1
  490. package/dist/shims/navigation-client.d.ts +3 -1
  491. package/dist/shims/navigation-client.d.ts.map +1 -1
  492. package/dist/shims/navigation.d.ts +11 -5
  493. package/dist/shims/navigation.d.ts.map +1 -1
  494. package/dist/utils/state-machine.d.ts +80 -0
  495. package/dist/utils/state-machine.d.ts.map +1 -0
  496. package/package.json +56 -16
  497. package/src/adapters/build-output-helper.ts +139 -0
  498. package/src/adapters/cloudflare-dev.ts +177 -0
  499. package/src/adapters/cloudflare-kv-cache.ts +142 -0
  500. package/src/adapters/cloudflare.ts +350 -76
  501. package/src/adapters/compress-module.ts +24 -4
  502. package/src/adapters/nitro.ts +142 -59
  503. package/src/adapters/shared.ts +40 -0
  504. package/src/adapters/wrangler.d.ts +7 -0
  505. package/src/cache/cache-api.ts +38 -0
  506. package/src/cache/handler-store.ts +68 -0
  507. package/src/cache/index.ts +81 -18
  508. package/src/cache/singleflight.ts +62 -4
  509. package/src/cache/sizeof.ts +33 -0
  510. package/src/cache/timber-cache.ts +25 -20
  511. package/src/cli-schema-sync.ts +295 -0
  512. package/src/cli.ts +76 -8
  513. package/src/client/browser-dev.ts +153 -1
  514. package/src/client/browser-entry/action-dispatch.ts +125 -0
  515. package/src/client/browser-entry/hmr.ts +81 -0
  516. package/src/client/browser-entry/hydrate.ts +153 -0
  517. package/src/client/browser-entry/index.ts +151 -0
  518. package/src/client/browser-entry/post-hydration.ts +113 -0
  519. package/src/client/browser-entry/router-init.ts +219 -0
  520. package/src/client/browser-entry/rsc-stream.ts +157 -0
  521. package/src/client/browser-entry/scroll.ts +27 -0
  522. package/src/client/error-boundary.tsx +99 -22
  523. package/src/client/error-reconstituter.tsx +65 -0
  524. package/src/client/form.tsx +31 -32
  525. package/src/client/history.ts +26 -4
  526. package/src/client/index.ts +66 -45
  527. package/src/client/internal.ts +58 -0
  528. package/src/client/link-pending-store.ts +116 -0
  529. package/src/client/link.tsx +336 -119
  530. package/src/client/nav-link-store.ts +37 -0
  531. package/src/client/navigation-api-types.ts +112 -0
  532. package/src/client/navigation-api.ts +332 -0
  533. package/src/client/navigation-context.ts +33 -7
  534. package/src/client/navigation-root.tsx +347 -0
  535. package/src/client/nuqs-adapter.tsx +16 -3
  536. package/src/client/router-ref.ts +1 -1
  537. package/src/client/router.ts +418 -128
  538. package/src/client/rsc-fetch.ts +208 -10
  539. package/src/client/segment-cache.ts +6 -3
  540. package/src/client/segment-outlet.tsx +77 -0
  541. package/src/client/segment-update-context.ts +42 -0
  542. package/src/client/shallow-url.ts +22 -0
  543. package/src/client/ssr-data.ts +13 -5
  544. package/src/client/stale-reload.ts +72 -3
  545. package/src/client/state.ts +2 -2
  546. package/src/client/top-loader.tsx +11 -9
  547. package/src/client/use-cookie.ts +31 -2
  548. package/src/client/use-link-status.ts +7 -7
  549. package/src/client/use-pending-navigation.ts +40 -0
  550. package/src/client/use-query-states.ts +9 -3
  551. package/src/client/use-router.ts +1 -1
  552. package/src/client/use-search-params.ts +25 -44
  553. package/src/client/{use-params.ts → use-segment-params.ts} +8 -6
  554. package/src/codec.ts +147 -0
  555. package/src/config-types.ts +292 -0
  556. package/src/config-validation.ts +303 -0
  557. package/src/content/index.ts +5 -13
  558. package/src/cookies/define-cookie.ts +233 -53
  559. package/src/cookies/index.ts +12 -1
  560. package/src/cookies/json-cookie.ts +105 -0
  561. package/src/cookies/validation.ts +134 -0
  562. package/src/dev-tools/404-page.ts +387 -0
  563. package/src/dev-tools/browser-logs.ts +291 -0
  564. package/src/dev-tools/error-page.ts +506 -0
  565. package/src/dev-tools/holding-server.ts +187 -0
  566. package/src/dev-tools/index.ts +90 -0
  567. package/src/dev-tools/instrumentation.ts +176 -0
  568. package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +9 -5
  569. package/src/dev-tools/overlay.ts +469 -0
  570. package/src/dev-tools/stack-classifier.ts +75 -0
  571. package/src/dev-tools/terminal.ts +183 -0
  572. package/src/{server/dev-warnings.ts → dev-tools/warnings.ts} +5 -50
  573. package/src/fonts/ast.ts +525 -16
  574. package/src/fonts/bundle.ts +142 -0
  575. package/src/fonts/dev-middleware.ts +74 -0
  576. package/src/fonts/local.ts +1 -1
  577. package/src/fonts/pipeline.ts +314 -0
  578. package/src/fonts/transform.ts +317 -0
  579. package/src/fonts/types.ts +50 -1
  580. package/src/fonts/virtual-modules.ts +233 -0
  581. package/src/index.ts +411 -329
  582. package/src/params/codec-registry.ts +34 -0
  583. package/src/params/define-schema.ts +114 -0
  584. package/src/params/index.ts +17 -0
  585. package/src/params/resolve-schema.ts +116 -0
  586. package/src/plugin-context.ts +240 -0
  587. package/src/plugins/adapter-build.ts +12 -4
  588. package/src/plugins/build-manifest.ts +69 -6
  589. package/src/plugins/build-report.ts +16 -25
  590. package/src/plugins/client-chunks.ts +65 -0
  591. package/src/plugins/cloudflare-wasm.ts +103 -0
  592. package/src/plugins/content.ts +1 -1
  593. package/src/plugins/dev-server.ts +179 -37
  594. package/src/plugins/entries.ts +111 -8
  595. package/src/plugins/fonts.ts +165 -654
  596. package/src/plugins/mdx.ts +47 -10
  597. package/src/plugins/routing.ts +386 -47
  598. package/src/plugins/server-bundle.ts +59 -3
  599. package/src/plugins/shims.ts +136 -35
  600. package/src/plugins/static-build.ts +15 -89
  601. package/src/routing/codegen-shared.ts +115 -0
  602. package/src/routing/codegen-types.ts +61 -0
  603. package/src/routing/codegen.ts +321 -177
  604. package/src/routing/convention-lint.ts +357 -0
  605. package/src/routing/index.ts +10 -1
  606. package/src/routing/interception.ts +1 -1
  607. package/src/routing/link-codegen.ts +308 -0
  608. package/src/routing/scanner.ts +165 -110
  609. package/src/routing/schema-validation.ts +149 -0
  610. package/src/routing/segment-classify.ts +188 -0
  611. package/src/routing/segment-codegen.ts +98 -0
  612. package/src/routing/types.ts +78 -25
  613. package/src/routing/walkers.ts +90 -0
  614. package/src/rsc-runtime/rsc.ts +2 -0
  615. package/src/rsc-runtime/ssr.ts +50 -0
  616. package/src/rsc-runtime/vendor-types.d.ts +7 -0
  617. package/src/{search-params/codecs.ts → schema-bridge.ts} +57 -20
  618. package/src/search-params/define.ts +538 -0
  619. package/src/search-params/index.ts +14 -20
  620. package/src/search-params/registry.ts +2 -2
  621. package/src/search-params/wrappers.ts +92 -0
  622. package/src/segment-params/define.ts +309 -0
  623. package/src/segment-params/index.ts +9 -0
  624. package/src/server/access-gate.tsx +76 -34
  625. package/src/server/action-client.ts +88 -15
  626. package/src/server/action-encryption.ts +144 -0
  627. package/src/server/action-handler.ts +112 -14
  628. package/src/server/actions.ts +14 -23
  629. package/src/server/als-registry.ts +108 -20
  630. package/src/server/asset-headers.ts +8 -34
  631. package/src/server/build-manifest.ts +17 -4
  632. package/src/server/coalesce-tick.ts +75 -0
  633. package/src/server/compress.ts +25 -7
  634. package/src/server/cookie-context.ts +468 -0
  635. package/src/server/cookie-parsing.ts +135 -0
  636. package/src/server/debug.ts +1 -1
  637. package/src/server/default-logger.ts +99 -0
  638. package/src/server/deny-boundary.ts +218 -0
  639. package/src/server/deny-renderer.ts +32 -51
  640. package/src/server/dev-source-map.ts +31 -0
  641. package/src/server/early-hints-sender.ts +3 -2
  642. package/src/server/early-hints.ts +36 -15
  643. package/src/server/error-boundary-wrapper.ts +74 -22
  644. package/src/server/fallback-error.ts +74 -102
  645. package/src/server/flight-injection-state.ts +113 -0
  646. package/src/server/flight-scripts.ts +62 -0
  647. package/src/server/flush.ts +2 -1
  648. package/src/server/form-data.ts +101 -5
  649. package/src/server/html-injector-core.ts +417 -0
  650. package/src/server/html-injectors.ts +235 -223
  651. package/src/server/index.ts +29 -183
  652. package/src/server/internal.ts +182 -0
  653. package/src/server/logger.ts +67 -36
  654. package/src/server/metadata-routes.ts +44 -19
  655. package/src/server/middleware-runner.ts +75 -4
  656. package/src/server/node-stream-transforms.ts +361 -0
  657. package/src/server/param-coercion.ts +206 -0
  658. package/src/server/pipeline-helpers.ts +204 -0
  659. package/src/server/pipeline-interception.ts +31 -18
  660. package/src/server/pipeline-metadata.ts +13 -0
  661. package/src/server/pipeline-outcome.ts +197 -0
  662. package/src/server/pipeline-phases.ts +497 -0
  663. package/src/server/pipeline.ts +194 -394
  664. package/src/server/port-resolution.ts +215 -0
  665. package/src/server/primitives.ts +111 -28
  666. package/src/server/render-timeout.ts +108 -0
  667. package/src/server/request-context.ts +168 -337
  668. package/src/server/route-element-builder.ts +435 -208
  669. package/src/server/route-handler.ts +24 -4
  670. package/src/server/route-matcher.ts +128 -277
  671. package/src/server/rsc-entry/action-middleware-runner.ts +167 -0
  672. package/src/server/rsc-entry/api-handler.ts +16 -17
  673. package/src/server/rsc-entry/error-renderer.ts +315 -89
  674. package/src/server/rsc-entry/helpers.ts +155 -26
  675. package/src/server/rsc-entry/index.ts +316 -327
  676. package/src/server/rsc-entry/render-route.ts +313 -0
  677. package/src/server/rsc-entry/rsc-payload.ts +65 -18
  678. package/src/server/rsc-entry/rsc-stream.ts +85 -13
  679. package/src/server/rsc-entry/ssr-bridge.ts +18 -5
  680. package/src/server/rsc-entry/ssr-renderer.ts +195 -41
  681. package/src/server/rsc-entry/wrap-action-dispatch.ts +449 -0
  682. package/src/server/safe-load.ts +60 -0
  683. package/src/server/sensitive-fields.ts +230 -0
  684. package/src/server/sitemap-generator.ts +338 -0
  685. package/src/server/sitemap-handler.ts +126 -0
  686. package/src/server/slot-resolver.ts +228 -246
  687. package/src/server/ssr-bridge-types.ts +124 -0
  688. package/src/server/ssr-entry.ts +217 -78
  689. package/src/server/ssr-render.ts +344 -71
  690. package/src/server/ssr-wrappers.tsx +139 -0
  691. package/src/server/state-tree-diff.ts +30 -23
  692. package/src/server/status-code-resolver.ts +112 -128
  693. package/src/server/stream-utils.ts +213 -0
  694. package/src/server/tracing.ts +21 -10
  695. package/src/server/tree-builder.ts +202 -90
  696. package/src/server/tree-match.ts +210 -0
  697. package/src/server/types.ts +55 -6
  698. package/src/server/utils/escape-html.ts +20 -0
  699. package/src/server/version-skew.ts +104 -0
  700. package/src/shared/merge-search-params.ts +55 -0
  701. package/src/shims/font-google.ts +1 -1
  702. package/src/shims/font-local.ts +34 -0
  703. package/src/shims/headers.ts +5 -1
  704. package/src/shims/navigation-client.ts +4 -3
  705. package/src/shims/navigation.ts +14 -7
  706. package/src/utils/state-machine.ts +111 -0
  707. package/dist/_chunks/als-registry-B7DbZ2hS.js +0 -41
  708. package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
  709. package/dist/_chunks/debug-gwlJkDuf.js +0 -108
  710. package/dist/_chunks/debug-gwlJkDuf.js.map +0 -1
  711. package/dist/_chunks/format-DviM89f0.js.map +0 -1
  712. package/dist/_chunks/interception-BOoWmLUA.js +0 -676
  713. package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
  714. package/dist/_chunks/metadata-routes-Cjmvi3rQ.js.map +0 -1
  715. package/dist/_chunks/request-context-DIkVh_jG.js +0 -330
  716. package/dist/_chunks/request-context-DIkVh_jG.js.map +0 -1
  717. package/dist/_chunks/ssr-data-MjmprTmO.js.map +0 -1
  718. package/dist/_chunks/tracing-CemImE6h.js +0 -187
  719. package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
  720. package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
  721. package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
  722. package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
  723. package/dist/cache/register-cached-function.d.ts +0 -17
  724. package/dist/cache/register-cached-function.d.ts.map +0 -1
  725. package/dist/client/browser-entry.d.ts +0 -21
  726. package/dist/client/browser-entry.d.ts.map +0 -1
  727. package/dist/client/link-status-provider.d.ts +0 -11
  728. package/dist/client/link-status-provider.d.ts.map +0 -1
  729. package/dist/client/segment-merger.d.ts +0 -119
  730. package/dist/client/segment-merger.d.ts.map +0 -1
  731. package/dist/client/transition-root.d.ts.map +0 -1
  732. package/dist/client/use-navigation-pending.d.ts +0 -26
  733. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  734. package/dist/client/use-params.d.ts.map +0 -1
  735. package/dist/plugins/cache-transform.d.ts +0 -36
  736. package/dist/plugins/cache-transform.d.ts.map +0 -1
  737. package/dist/plugins/dev-error-overlay.d.ts +0 -60
  738. package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
  739. package/dist/plugins/dev-logs.d.ts.map +0 -1
  740. package/dist/plugins/dynamic-transform.d.ts +0 -72
  741. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  742. package/dist/plugins/server-action-exports.d.ts +0 -26
  743. package/dist/plugins/server-action-exports.d.ts.map +0 -1
  744. package/dist/routing/status-file-lint.d.ts +0 -33
  745. package/dist/routing/status-file-lint.d.ts.map +0 -1
  746. package/dist/search-params/analyze.d.ts +0 -54
  747. package/dist/search-params/analyze.d.ts.map +0 -1
  748. package/dist/search-params/builtin-codecs.d.ts +0 -105
  749. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  750. package/dist/search-params/codecs.d.ts +0 -53
  751. package/dist/search-params/codecs.d.ts.map +0 -1
  752. package/dist/search-params/create.d.ts +0 -106
  753. package/dist/search-params/create.d.ts.map +0 -1
  754. package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
  755. package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
  756. package/dist/server/dev-logger.d.ts.map +0 -1
  757. package/dist/server/dev-span-processor.d.ts.map +0 -1
  758. package/dist/server/dev-warnings.d.ts.map +0 -1
  759. package/dist/server/manifest-status-resolver.d.ts +0 -58
  760. package/dist/server/manifest-status-resolver.d.ts.map +0 -1
  761. package/dist/server/prerender.d.ts +0 -77
  762. package/dist/server/prerender.d.ts.map +0 -1
  763. package/dist/utils/directive-parser.d.ts +0 -70
  764. package/dist/utils/directive-parser.d.ts.map +0 -1
  765. package/src/cache/register-cached-function.ts +0 -103
  766. package/src/client/browser-entry.ts +0 -678
  767. package/src/client/link-status-provider.tsx +0 -30
  768. package/src/client/segment-merger.ts +0 -339
  769. package/src/client/transition-root.tsx +0 -166
  770. package/src/client/use-navigation-pending.ts +0 -38
  771. package/src/plugins/cache-transform.ts +0 -199
  772. package/src/plugins/dev-error-overlay.ts +0 -230
  773. package/src/plugins/dynamic-transform.ts +0 -161
  774. package/src/plugins/server-action-exports.ts +0 -220
  775. package/src/routing/status-file-lint.ts +0 -112
  776. package/src/search-params/analyze.ts +0 -192
  777. package/src/search-params/builtin-codecs.ts +0 -228
  778. package/src/search-params/create.ts +0 -321
  779. package/src/server/dev-fetch-instrumentation.ts +0 -96
  780. package/src/server/dev-span-processor.ts +0 -78
  781. package/src/server/manifest-status-resolver.ts +0 -215
  782. package/src/server/prerender.ts +0 -139
  783. package/src/utils/directive-parser.ts +0 -529
  784. /package/src/{server/dev-logger.ts → dev-tools/logger.ts} +0 -0
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Client-side registry for schema segment param codecs.
3
+ *
4
+ * The Link component uses codec `serialize` functions to convert typed
5
+ * segment param values back to URL-safe strings. Without this registry,
6
+ * Link falls back to `String(value)` — which works for simple types
7
+ * but breaks for custom codecs (e.g., Date → '2026-04-10').
8
+ *
9
+ * Populated at startup by the browser entry importing `virtual:timber-schema`.
10
+ * Also usable on the server (isomorphic).
11
+ *
12
+ * Design doc: design/41-global-params.md §"Link Component"
13
+ */
14
+
15
+ import type { Codec } from '../codec.js';
16
+
17
+ let _codecs: Record<string, Codec<unknown>> | null = null;
18
+
19
+ /**
20
+ * Register the resolved schema codecs for use by Link's URL interpolation.
21
+ * Called once at startup from the browser entry or RSC entry.
22
+ * @internal
23
+ */
24
+ export function setLinkCodecs(codecs: Record<string, Codec<unknown>> | null): void {
25
+ _codecs = codecs;
26
+ }
27
+
28
+ /**
29
+ * Look up a codec by bracket key (e.g. '[id]', '[...slug]').
30
+ * Returns undefined if no schema is registered or the key has no codec.
31
+ */
32
+ export function getLinkCodec(bracketKey: string): Codec<unknown> | undefined {
33
+ return _codecs?.[bracketKey] ?? undefined;
34
+ }
@@ -0,0 +1,114 @@
1
+ /**
2
+ * defineSchema — global segment param schema definition.
3
+ *
4
+ * Identity function at runtime; the type information is what matters.
5
+ * The Vite plugin reads the schema at build time for codegen, and
6
+ * the pipeline reads it at runtime for coercion.
7
+ *
8
+ * Design doc: design/41-global-params.md
9
+ */
10
+
11
+ import type { Codec, CatchAllCodec, OptionalCatchAllCodec } from '../codec.js';
12
+ import type { StandardSchemaV1 } from '../schema-bridge.js';
13
+
14
+ // ---------------------------------------------------------------------------
15
+ // Types
16
+ // ---------------------------------------------------------------------------
17
+
18
+ /**
19
+ * Infer the output type from a Codec, StandardSchemaV1, or nuqs parser.
20
+ *
21
+ * Used by codegen to reference schema types without hardcoding:
22
+ * `InferCodecType<typeof schema.segmentParams['[year]']>`
23
+ */
24
+ export type InferCodecType<V> =
25
+ V extends Codec<infer T>
26
+ ? T
27
+ : V extends StandardSchemaV1<infer T>
28
+ ? T
29
+ : V extends { parseServerSide: (value: string) => infer T }
30
+ ? T
31
+ : string;
32
+
33
+ /** Acceptable codec value for segment params: a Codec or Standard Schema. */
34
+ export type SegmentParamCodec = Codec<unknown> | StandardSchemaV1<unknown>;
35
+
36
+ /** Codec constraint for catch-all segment keys (`[...name]`). */
37
+ export type CatchAllParamCodec = CatchAllCodec<unknown> | StandardSchemaV1<readonly unknown[]>;
38
+
39
+ /** Codec constraint for optional catch-all segment keys (`[[...name]]`). */
40
+ export type OptionalCatchAllParamCodec =
41
+ | OptionalCatchAllCodec<unknown>
42
+ | StandardSchemaV1<readonly unknown[] | undefined>;
43
+
44
+ /**
45
+ * Resolves the required codec type for a given bracket key pattern.
46
+ * - `[...name]` → requires a catch-all codec
47
+ * - `[[...name]]` → requires an optional catch-all codec
48
+ * - `[name]` → accepts any segment param codec
49
+ */
50
+ export type CodecForKey<K extends string> = K extends `[[...${string}]]`
51
+ ? OptionalCatchAllParamCodec
52
+ : K extends `[...${string}]`
53
+ ? CatchAllParamCodec
54
+ : SegmentParamCodec;
55
+
56
+ /**
57
+ * Registry interface augmented by codegen with known filesystem bracket keys.
58
+ * When empty (no codegen yet), ValidDynamicSegmentKeys falls back to string.
59
+ */
60
+ export interface ValidDynamicSegmentKeysRegistry {}
61
+
62
+ /**
63
+ * Union of valid bracket keys for defineSchema.
64
+ * After codegen runs, this is the set of filesystem segment names.
65
+ * Before codegen (fresh project), accepts any string.
66
+ */
67
+ export type ValidDynamicSegmentKeys = keyof ValidDynamicSegmentKeysRegistry extends never
68
+ ? string
69
+ : keyof ValidDynamicSegmentKeysRegistry & string;
70
+
71
+ /** Configuration object for defineSchema. */
72
+ export interface SchemaConfig<S extends Record<string, SegmentParamCodec>> {
73
+ segmentParams: S;
74
+ }
75
+
76
+ // ---------------------------------------------------------------------------
77
+ // Factory
78
+ // ---------------------------------------------------------------------------
79
+
80
+ /**
81
+ * Define the global segment param schema.
82
+ *
83
+ * Each key uses the bracket syntax from the filesystem (`[id]`, `[...slug]`,
84
+ * `[[...slug]]`) mapped to a codec. This makes the relationship between
85
+ * filesystem segments and codecs visually obvious.
86
+ *
87
+ * A dynamic segment with no key here defaults to `string` at codegen time.
88
+ *
89
+ * ```ts
90
+ * // app/schema.ts
91
+ * import { defineSchema } from '@timber-js/app/params';
92
+ * import { codec } from '@timber-js/app/codec';
93
+ * import { z } from 'zod';
94
+ *
95
+ * export default defineSchema({
96
+ * segmentParams: {
97
+ * '[artistSlug]': codec.string,
98
+ * '[year]': codec.integer,
99
+ * '[id]': z.coerce.number().int(),
100
+ * },
101
+ * });
102
+ * ```
103
+ */
104
+ export function defineSchema<
105
+ S extends {
106
+ [K in keyof S]: K extends ValidDynamicSegmentKeys
107
+ ? K extends string
108
+ ? CodecForKey<K>
109
+ : SegmentParamCodec
110
+ : never;
111
+ },
112
+ >(config: { segmentParams: S }): { segmentParams: S } {
113
+ return config;
114
+ }
@@ -0,0 +1,17 @@
1
+ // @timber-js/app/params — Global segment param schema and typed accessors.
2
+ //
3
+ // This is the import path for defineSchema, InferCodecType, and
4
+ // the future getSegmentParams/useSegmentParams with route narrowing.
5
+ //
6
+ // See design/41-global-params.md
7
+
8
+ export { defineSchema } from './define-schema.js';
9
+ export type {
10
+ InferCodecType,
11
+ SchemaConfig,
12
+ SegmentParamCodec,
13
+ ValidDynamicSegmentKeys,
14
+ ValidDynamicSegmentKeysRegistry,
15
+ } from './define-schema.js';
16
+ export { resolveSchemaCodecs, toBracketKey } from './resolve-schema.js';
17
+ export { setLinkCodecs, getLinkCodec } from './codec-registry.js';
@@ -0,0 +1,116 @@
1
+ /**
2
+ * Schema resolution — resolves the global schema's segmentParams into
3
+ * a runtime-ready codec map keyed by bracket name (e.g. '[id]').
4
+ *
5
+ * Bracket keys are preserved so that `[id]`, `[...id]`, and `[[...id]]`
6
+ * remain distinct entries. The coercion layer reconstructs bracket keys
7
+ * from matched segment metadata to look up the correct codec.
8
+ *
9
+ * Design doc: design/41-global-params.md §Pipeline Integration
10
+ */
11
+
12
+ import type { Codec } from '../codec.js';
13
+ import { isCodec, isStandardSchema, validateSync } from '../schema-bridge.js';
14
+ import type { StandardSchemaV1 } from '../schema-bridge.js';
15
+
16
+ /**
17
+ * Wrap a Standard Schema into a Codec for route params.
18
+ * Parse throws on failure (invalid param → 404). Serialize returns string.
19
+ */
20
+ function fromParamSchema<T>(fieldName: string, schema: StandardSchemaV1<T>): Codec<T> {
21
+ return {
22
+ parse(value: string | string[] | undefined): T {
23
+ const result = validateSync(schema, value);
24
+ if (!result.issues) {
25
+ return result.value;
26
+ }
27
+ const messages = result.issues.map((i) => i.message).join(', ');
28
+ throw new Error(`[timber] Param '${fieldName}' coercion failed: ${messages}`);
29
+ },
30
+ serialize(value: T): string | null {
31
+ if (value === null || value === undefined) return null;
32
+ if (Array.isArray(value)) return value.join('/');
33
+ return String(value);
34
+ },
35
+ };
36
+ }
37
+
38
+ /**
39
+ * Resolve a schema entry to a Codec. Accepts Codec<T> or StandardSchemaV1<T>.
40
+ */
41
+ function resolveCodec(fieldName: string, value: unknown): Codec<unknown> {
42
+ if (isCodec(value)) return value;
43
+ if (isStandardSchema(value)) return fromParamSchema(fieldName, value);
44
+ throw new Error(`[timber] Schema field '${fieldName}' is not a valid codec or Standard Schema.`);
45
+ }
46
+
47
+ /**
48
+ * Reconstruct the bracket key for a segment from its type and param name.
49
+ * Used by the coercion layer to look up codecs in the bracket-keyed map.
50
+ *
51
+ * 'dynamic' + 'id' → '[id]'
52
+ * 'catch-all' + 'slug' → '[...slug]'
53
+ * 'optional-catch-all' + 'slug' → '[[...slug]]'
54
+ */
55
+ export function toBracketKey(segmentType: string, paramName: string): string {
56
+ switch (segmentType) {
57
+ case 'catch-all':
58
+ return `[...${paramName}]`;
59
+ case 'optional-catch-all':
60
+ return `[[...${paramName}]]`;
61
+ default:
62
+ return `[${paramName}]`;
63
+ }
64
+ }
65
+
66
+ const CATCH_ALL_RE = /^\[\.\.\..+\]$/;
67
+ const OPTIONAL_CATCH_ALL_RE = /^\[\[\.\.\..+\]\]$/;
68
+
69
+ function isCatchAllKey(key: string): boolean {
70
+ return CATCH_ALL_RE.test(key) || OPTIONAL_CATCH_ALL_RE.test(key);
71
+ }
72
+
73
+ function isOptionalCatchAllKey(key: string): boolean {
74
+ return OPTIONAL_CATCH_ALL_RE.test(key);
75
+ }
76
+
77
+ /**
78
+ * Resolve the global schema's segmentParams into a map of bracket-keyed
79
+ * param name → resolved Codec.
80
+ *
81
+ * Keys are preserved exactly as written in `app/schema.ts` so that
82
+ * `[id]`, `[...id]`, and `[[...id]]` remain distinct entries.
83
+ * The coercion layer in `param-coercion.ts` reconstructs bracket keys
84
+ * from matched segment metadata to look up the correct codec.
85
+ *
86
+ * Input: { '[id]': z.coerce.number(), '[...slug]': codec.string }
87
+ * Output: { '[id]': Codec<number>, '[...slug]': Codec<string> }
88
+ */
89
+ export function resolveSchemaCodecs(
90
+ segmentParams: Record<string, unknown>
91
+ ): Record<string, Codec<unknown>> {
92
+ const resolved: Record<string, Codec<unknown>> = Object.create(null);
93
+
94
+ for (const [bracketName, value] of Object.entries(segmentParams)) {
95
+ if (isCatchAllKey(bracketName) && isCodec(value) && !('__catchAll' in value)) {
96
+ throw new Error(
97
+ `[timber] Schema error: '${bracketName}' is a catch-all segment and requires an array codec ` +
98
+ `(e.g. codec.catchAll(codec.string)). Got a scalar codec.`
99
+ );
100
+ }
101
+ if (
102
+ isOptionalCatchAllKey(bracketName) &&
103
+ isCodec(value) &&
104
+ '__catchAll' in value &&
105
+ !('__optional' in value)
106
+ ) {
107
+ throw new Error(
108
+ `[timber] Schema error: '${bracketName}' is an optional catch-all segment and requires codec.optionalCatchAll() ` +
109
+ `(e.g. codec.optionalCatchAll(codec.string)). Got a non-optional catch-all codec.`
110
+ );
111
+ }
112
+ resolved[bracketName] = resolveCodec(bracketName, value);
113
+ }
114
+
115
+ return resolved;
116
+ }
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Plugin context — internal types and helpers for timber sub-plugins.
3
+ *
4
+ * These are NOT part of the user-facing API. They are consumed by
5
+ * sub-plugins (routing, entries, shims, etc.) via relative imports.
6
+ * The root entry point (index.ts) does not re-export them.
7
+ *
8
+ * Design doc: 18-build-system.md §"Shared Plugin Context"
9
+ */
10
+
11
+ import { existsSync } from 'node:fs';
12
+ import { join } from 'node:path';
13
+ import { createRequire } from 'node:module';
14
+ import type { RouteTree } from './routing/types';
15
+ import type { BuildManifest } from './server/build-manifest';
16
+ import type { StartupTimer } from './utils/startup-timer';
17
+ import { createStartupTimer } from './utils/startup-timer';
18
+ import type { TimberUserConfig, ClientJavascriptConfig } from './config-types.js';
19
+ import type { HoldingServer } from './dev-tools/holding-server.js';
20
+
21
+ // Re-export for sub-plugin convenience — they import from plugin-context.ts
22
+ export type { TimberUserConfig, ClientJavascriptConfig } from './config-types.js';
23
+
24
+ // ── Client JavaScript config ─────────────────────────────────────────────
25
+
26
+ /** Fully resolved client JavaScript configuration (no optionals). */
27
+ export interface ResolvedClientJavascript {
28
+ disabled: boolean;
29
+ enableHMRInDev: boolean;
30
+ }
31
+
32
+ /**
33
+ * Resolve `clientJavascript` into a fully resolved config.
34
+ */
35
+ export function resolveClientJavascript(config: TimberUserConfig): ResolvedClientJavascript {
36
+ if (config.clientJavascript !== undefined) {
37
+ if (typeof config.clientJavascript === 'boolean') {
38
+ return {
39
+ disabled: !config.clientJavascript,
40
+ enableHMRInDev: !config.clientJavascript,
41
+ };
42
+ }
43
+ return {
44
+ disabled: config.clientJavascript.disabled,
45
+ enableHMRInDev: config.clientJavascript.enableHMRInDev ?? config.clientJavascript.disabled,
46
+ };
47
+ }
48
+ return { disabled: false, enableHMRInDev: false };
49
+ }
50
+
51
+ // ── Plugin Context ────────────────────────────────────────────────────────
52
+
53
+ /**
54
+ * Shared context object passed to all sub-plugins via closure.
55
+ *
56
+ * Sub-plugins communicate through this context — not through Vite's
57
+ * plugin API or global state.
58
+ * See design/18-build-system.md §"Shared Plugin Context".
59
+ */
60
+ export interface PluginContext {
61
+ config: TimberUserConfig;
62
+ /** Resolved client JavaScript configuration */
63
+ clientJavascript: ResolvedClientJavascript;
64
+ /** The scanned route tree (populated by timber-routing, consumed by timber-entries) */
65
+ routeTree: RouteTree | null;
66
+ /** Absolute path to the app/ directory */
67
+ appDir: string;
68
+ /** Absolute path to the project root */
69
+ root: string;
70
+ /** Whether the dev server is running (set by timber-root-sync in configResolved) */
71
+ dev: boolean;
72
+ /** CSS build manifest (populated by adapter after client build, null in dev) */
73
+ buildManifest: BuildManifest | null;
74
+ /** Per-build deployment ID for version skew detection (null in dev) */
75
+ deploymentId: string | null;
76
+ /** Startup timer for profiling cold start phases (active in dev, no-op in prod) */
77
+ timer: StartupTimer;
78
+ /** Holding server that binds the port during dev startup (closed in timber-dev-server) */
79
+ holdingServer?: HoldingServer | null;
80
+ /**
81
+ * Resolved absolute path to the build output directory.
82
+ *
83
+ * Defaults to `<root>/.timber/dist`. Can be overridden via
84
+ * `timber.config.ts` `buildDir` or Vite's `build.outDir`.
85
+ * Timber config takes precedence when both are set.
86
+ *
87
+ * Used by adapter-build and cli preview.
88
+ */
89
+ buildDir: string;
90
+ }
91
+
92
+ // ── App directory resolution ──────────────────────────────────────────────
93
+
94
+ /**
95
+ * Resolve the app directory. Checks (in order):
96
+ * 1. Explicit `configAppDir` from timber.config.ts
97
+ * 2. `<root>/app`
98
+ * 3. `<root>/src/app`
99
+ *
100
+ * Throws if none exist.
101
+ */
102
+ export function resolveAppDir(root: string, configAppDir?: string): string {
103
+ if (configAppDir) {
104
+ const explicit = join(root, configAppDir);
105
+ if (!existsSync(explicit)) {
106
+ throw new Error(`[timber] Configured appDir "${configAppDir}" does not exist at ${explicit}`);
107
+ }
108
+ return explicit;
109
+ }
110
+
111
+ const rootApp = join(root, 'app');
112
+ if (existsSync(rootApp)) return rootApp;
113
+
114
+ const srcApp = join(root, 'src', 'app');
115
+ if (existsSync(srcApp)) return srcApp;
116
+
117
+ throw new Error(
118
+ `[timber] Could not find app directory. Expected "app/" or "src/app/" in ${root}. ` +
119
+ `You can set appDir in timber.config.ts to specify a custom location.`
120
+ );
121
+ }
122
+
123
+ // ── Plugin context factory ────────────────────────────────────────────────
124
+
125
+ export function createPluginContext(config?: TimberUserConfig, root?: string): PluginContext {
126
+ const projectRoot = root ?? process.cwd();
127
+ const resolvedConfig: TimberUserConfig = { ...config };
128
+ return {
129
+ config: resolvedConfig,
130
+ clientJavascript: resolveClientJavascript(resolvedConfig),
131
+ routeTree: null,
132
+ appDir: join(projectRoot, 'app'),
133
+ root: projectRoot,
134
+ dev: false,
135
+ buildManifest: null,
136
+ deploymentId: null,
137
+ timer: createStartupTimer(),
138
+ holdingServer: null,
139
+ buildDir: resolveBuildDir(projectRoot, resolvedConfig.buildDir),
140
+ };
141
+ }
142
+
143
+ // ── Build directory resolution ────────────────────────────────────────────
144
+
145
+ /** Default build output directory (relative to root). */
146
+ export const DEFAULT_BUILD_DIR = join('.timber', 'dist');
147
+
148
+ /**
149
+ * Resolve the build output directory.
150
+ *
151
+ * Priority:
152
+ * 1. Explicit `timberBuildDir` from timber.config.ts
153
+ * 2. Explicit `viteBuildOutDir` from Vite's build.outDir (if not the default 'dist')
154
+ * 3. Default: `.timber/dist`
155
+ *
156
+ * Returns an absolute path.
157
+ */
158
+ export function resolveBuildDir(
159
+ root: string,
160
+ timberBuildDir?: string,
161
+ viteBuildOutDir?: string
162
+ ): string {
163
+ if (timberBuildDir) {
164
+ return join(root, timberBuildDir);
165
+ }
166
+ if (viteBuildOutDir && viteBuildOutDir !== 'dist') {
167
+ return join(root, viteBuildOutDir);
168
+ }
169
+ return join(root, DEFAULT_BUILD_DIR);
170
+ }
171
+
172
+ // ── Config file loading ───────────────────────────────────────────────────
173
+
174
+ /**
175
+ * Load timber.config.ts (or .js, .mjs) from the project root.
176
+ * Returns the config object or null if no config file is found.
177
+ *
178
+ * Uses require() which works for ESM modules on Node 22.12+.
179
+ * This keeps timber() synchronous — no async config loading needed.
180
+ */
181
+ export function loadTimberConfigFile(root: string): TimberUserConfig | null {
182
+ const configNames = ['timber.config.ts', 'timber.config.js', 'timber.config.mjs'];
183
+ const req = createRequire(join(root, 'package.json'));
184
+
185
+ for (const name of configNames) {
186
+ const configPath = join(root, name);
187
+ if (existsSync(configPath)) {
188
+ const mod = req(configPath);
189
+ return (mod.default ?? mod) as TimberUserConfig;
190
+ }
191
+ }
192
+ return null;
193
+ }
194
+
195
+ /**
196
+ * Detect config keys set in both inline (vite.config.ts) and file (timber.config.ts)
197
+ * and warn the user. The `output` key is excluded because it defaults to 'server'
198
+ * in createPluginContext and would always appear as an inline key.
199
+ *
200
+ * Returns the list of conflicting key names (for testing).
201
+ */
202
+ export function warnConfigConflicts(
203
+ inline: TimberUserConfig,
204
+ fileConfig: TimberUserConfig
205
+ ): string[] {
206
+ const conflicts: string[] = [];
207
+ for (const key of Object.keys(fileConfig) as (keyof TimberUserConfig)[]) {
208
+ if (key in inline && inline[key] !== undefined) {
209
+ conflicts.push(key);
210
+ }
211
+ }
212
+ if (conflicts.length > 0) {
213
+ console.warn(
214
+ `[timber] Config conflict: ${conflicts.map((k) => `"${k}"`).join(', ')} set in both ` +
215
+ `vite.config.ts (inline) and timber.config.ts. ` +
216
+ `Move all config to timber.config.ts to avoid confusion. ` +
217
+ `The inline value from vite.config.ts will be used.`
218
+ );
219
+ }
220
+ return conflicts;
221
+ }
222
+
223
+ /**
224
+ * Merge file-based config into ctx.config. Inline config (already in ctx.config)
225
+ * takes precedence — file config only fills in missing fields.
226
+ */
227
+ export function mergeFileConfig(ctx: PluginContext, fileConfig: TimberUserConfig): void {
228
+ const inline = ctx.config;
229
+ warnConfigConflicts(inline, fileConfig);
230
+
231
+ ctx.config = {
232
+ ...fileConfig,
233
+ ...inline,
234
+ ...(fileConfig.limits && inline.limits
235
+ ? { limits: { ...fileConfig.limits, ...inline.limits } }
236
+ : {}),
237
+ ...(fileConfig.dev && inline.dev ? { dev: { ...fileConfig.dev, ...inline.dev } } : {}),
238
+ ...(fileConfig.mdx && inline.mdx ? { mdx: { ...fileConfig.mdx, ...inline.mdx } } : {}),
239
+ };
240
+ }
@@ -16,8 +16,9 @@
16
16
  import type { Plugin } from 'vite';
17
17
  import { join } from 'node:path';
18
18
  import { readFile, writeFile } from 'node:fs/promises';
19
- import type { PluginContext } from '#/index.js';
20
- import type { TimberPlatformAdapter, TimberConfig } from '#/adapters/types.js';
19
+ import type { PluginContext } from '../plugin-context.js';
20
+ import type { TimberPlatformAdapter, TimberConfig } from '../adapters/types.js';
21
+ import { swallow } from '../server/logger.js';
21
22
 
22
23
  export function timberAdapterBuild(ctx: PluginContext): Plugin {
23
24
  return {
@@ -35,7 +36,7 @@ export function timberAdapterBuild(ctx: PluginContext): Plugin {
35
36
  const adapter = ctx.config.adapter as TimberPlatformAdapter | undefined;
36
37
  if (!adapter || typeof adapter.buildOutput !== 'function') return;
37
38
 
38
- const buildDir = join(ctx.root, 'dist');
39
+ const buildDir = ctx.buildDir;
39
40
 
40
41
  // Serialize the build manifest as a JS module that sets the global.
41
42
  // The adapter writes this as _timber-manifest-init.mjs and imports it
@@ -50,6 +51,12 @@ export function timberAdapterBuild(ctx: PluginContext): Plugin {
50
51
  : ctx.buildManifest;
51
52
  const json = JSON.stringify(manifest);
52
53
  manifestInit = `globalThis.__TIMBER_BUILD_MANIFEST__ = ${json};\n`;
54
+
55
+ // Embed the deployment ID for version skew detection (TIM-446).
56
+ // The server reads this at startup via setDeploymentId().
57
+ if (ctx.deploymentId) {
58
+ manifestInit += `globalThis.__TIMBER_DEPLOYMENT_ID__ = ${JSON.stringify(ctx.deploymentId)};\n`;
59
+ }
53
60
  }
54
61
 
55
62
  // Strip JS from the RSC plugin's assets manifest when client JS
@@ -97,7 +104,8 @@ async function stripJsFromRscAssetsManifests(buildDir: string): Promise<void> {
97
104
  let manifest: Record<string, unknown>;
98
105
  try {
99
106
  manifest = JSON.parse(jsonStr);
100
- } catch {
107
+ } catch (err) {
108
+ swallow(err, `corrupted RSC assets manifest: ${path}`, { level: 'warn' });
101
109
  continue;
102
110
  }
103
111