@timber-js/app 0.2.0-alpha.11 → 0.2.0-alpha.111

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 (755) hide show
  1. package/dist/_chunks/actions-ILhDUzES.js +1094 -0
  2. package/dist/_chunks/actions-ILhDUzES.js.map +1 -0
  3. package/dist/_chunks/build-output-helper-DhxiT18k.js +61 -0
  4. package/dist/_chunks/build-output-helper-DhxiT18k.js.map +1 -0
  5. package/dist/_chunks/cli-schema-sync-BvvuK8Rp.js +137 -0
  6. package/dist/_chunks/cli-schema-sync-BvvuK8Rp.js.map +1 -0
  7. package/dist/_chunks/cli-schema-sync-i2OEL2-p.js +2 -0
  8. package/dist/_chunks/codec-registry-V7ARyeLN.js +21 -0
  9. package/dist/_chunks/codec-registry-V7ARyeLN.js.map +1 -0
  10. package/dist/_chunks/define-8zQ8Vm7x.js +195 -0
  11. package/dist/_chunks/define-8zQ8Vm7x.js.map +1 -0
  12. package/dist/_chunks/define-a0CCE6Nx.js +124 -0
  13. package/dist/_chunks/define-a0CCE6Nx.js.map +1 -0
  14. package/dist/_chunks/format-CR6v1pWE.js +14 -0
  15. package/dist/_chunks/format-CR6v1pWE.js.map +1 -0
  16. package/dist/_chunks/handler-store-iqnt2ghN.js +54 -0
  17. package/dist/_chunks/handler-store-iqnt2ghN.js.map +1 -0
  18. package/dist/_chunks/logger-DDmK5skc.js +291 -0
  19. package/dist/_chunks/logger-DDmK5skc.js.map +1 -0
  20. package/dist/_chunks/merge-search-params-CwxJzBLS.js +41 -0
  21. package/dist/_chunks/merge-search-params-CwxJzBLS.js.map +1 -0
  22. package/dist/_chunks/navigation-root-CY3pRMxF.js +96 -0
  23. package/dist/_chunks/navigation-root-CY3pRMxF.js.map +1 -0
  24. package/dist/_chunks/registry-Dp_hJL4s.js +20 -0
  25. package/dist/_chunks/registry-Dp_hJL4s.js.map +1 -0
  26. package/dist/_chunks/resolve-schema-DO8B0mO9.js +65 -0
  27. package/dist/_chunks/resolve-schema-DO8B0mO9.js.map +1 -0
  28. package/dist/_chunks/router-ref-sektkr-t.js +28 -0
  29. package/dist/_chunks/router-ref-sektkr-t.js.map +1 -0
  30. package/dist/_chunks/scanner-DmfoB7iK.js +336 -0
  31. package/dist/_chunks/scanner-DmfoB7iK.js.map +1 -0
  32. package/dist/_chunks/schema-bridge-eL5vQDSA.js +86 -0
  33. package/dist/_chunks/schema-bridge-eL5vQDSA.js.map +1 -0
  34. package/dist/_chunks/segment-classify-CnfLLvir.js +137 -0
  35. package/dist/_chunks/segment-classify-CnfLLvir.js.map +1 -0
  36. package/dist/_chunks/segment-context-EsfQpS--.js +34 -0
  37. package/dist/_chunks/segment-context-EsfQpS--.js.map +1 -0
  38. package/dist/_chunks/{ssr-data-MjmprTmO.js → ssr-data-BO5OvEvg.js} +1 -1
  39. package/dist/_chunks/ssr-data-BO5OvEvg.js.map +1 -0
  40. package/dist/_chunks/stale-reload-BCPRG0Cv.js +64 -0
  41. package/dist/_chunks/stale-reload-BCPRG0Cv.js.map +1 -0
  42. package/dist/_chunks/tracing-DvKLzCFa.js +329 -0
  43. package/dist/_chunks/tracing-DvKLzCFa.js.map +1 -0
  44. package/dist/_chunks/{use-query-states-D5KaffOK.js → use-query-states-D9SBlAfp.js} +7 -20
  45. package/dist/_chunks/use-query-states-D9SBlAfp.js.map +1 -0
  46. package/dist/_chunks/use-segment-params-BSt_O2cb.js +185 -0
  47. package/dist/_chunks/use-segment-params-BSt_O2cb.js.map +1 -0
  48. package/dist/_chunks/validation-Bm3Je-09.js +84 -0
  49. package/dist/_chunks/validation-Bm3Je-09.js.map +1 -0
  50. package/dist/_chunks/walkers-DGTmJT0f.js +606 -0
  51. package/dist/_chunks/walkers-DGTmJT0f.js.map +1 -0
  52. package/dist/_chunks/{format-DviM89f0.js → warnings-B30wpfaS.js} +6 -45
  53. package/dist/_chunks/warnings-B30wpfaS.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 +37 -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 +42 -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 +23 -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 +9 -24
  124. package/dist/client/index.d.ts.map +1 -1
  125. package/dist/client/index.js +172 -1100
  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 +964 -0
  130. package/dist/client/internal.js.map +1 -0
  131. package/dist/client/link-pending-store.d.ts +63 -0
  132. package/dist/client/link-pending-store.d.ts.map +1 -0
  133. package/dist/client/link.d.ts +62 -55
  134. package/dist/client/link.d.ts.map +1 -1
  135. package/dist/client/nav-link-store.d.ts +36 -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 +13 -2
  142. package/dist/client/navigation-context.d.ts.map +1 -1
  143. package/dist/client/{transition-root.d.ts → navigation-root.d.ts} +42 -8
  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 +70 -4
  148. package/dist/client/router.d.ts.map +1 -1
  149. package/dist/client/rsc-fetch.d.ts +38 -3
  150. package/dist/client/rsc-fetch.d.ts.map +1 -1
  151. package/dist/client/segment-cache.d.ts +1 -1
  152. package/dist/client/segment-cache.d.ts.map +1 -1
  153. package/dist/client/segment-outlet.d.ts +63 -0
  154. package/dist/client/segment-outlet.d.ts.map +1 -0
  155. package/dist/client/ssr-data.d.ts +13 -4
  156. package/dist/client/ssr-data.d.ts.map +1 -1
  157. package/dist/client/stale-reload.d.ts +15 -0
  158. package/dist/client/stale-reload.d.ts.map +1 -1
  159. package/dist/client/state.d.ts +1 -1
  160. package/dist/client/top-loader.d.ts +5 -5
  161. package/dist/client/top-loader.d.ts.map +1 -1
  162. package/dist/client/use-cookie.d.ts +12 -0
  163. package/dist/client/use-cookie.d.ts.map +1 -1
  164. package/dist/client/use-link-status.d.ts +5 -5
  165. package/dist/client/use-link-status.d.ts.map +1 -1
  166. package/dist/client/{use-navigation-pending.d.ts → use-pending-navigation.d.ts} +4 -4
  167. package/dist/client/use-pending-navigation.d.ts.map +1 -0
  168. package/dist/client/use-query-states.d.ts +1 -1
  169. package/dist/client/use-query-states.d.ts.map +1 -1
  170. package/dist/client/use-router.d.ts +1 -1
  171. package/dist/client/{use-params.d.ts → use-segment-params.d.ts} +7 -5
  172. package/dist/client/use-segment-params.d.ts.map +1 -0
  173. package/dist/codec.d.ts +33 -0
  174. package/dist/codec.d.ts.map +1 -0
  175. package/dist/codec.js +2 -0
  176. package/dist/config-types.d.ts +294 -0
  177. package/dist/config-types.d.ts.map +1 -0
  178. package/dist/config-validation.d.ts +51 -0
  179. package/dist/config-validation.d.ts.map +1 -0
  180. package/dist/content/index.d.ts +1 -10
  181. package/dist/content/index.d.ts.map +1 -1
  182. package/dist/content/index.js +0 -2
  183. package/dist/cookies/define-cookie.d.ts +58 -25
  184. package/dist/cookies/define-cookie.d.ts.map +1 -1
  185. package/dist/cookies/index.d.ts +2 -1
  186. package/dist/cookies/index.d.ts.map +1 -1
  187. package/dist/cookies/index.js +251 -36
  188. package/dist/cookies/index.js.map +1 -1
  189. package/dist/cookies/json-cookie.d.ts +64 -0
  190. package/dist/cookies/json-cookie.d.ts.map +1 -0
  191. package/dist/cookies/validation.d.ts +46 -0
  192. package/dist/cookies/validation.d.ts.map +1 -0
  193. package/dist/dev-tools/404-page.d.ts +46 -0
  194. package/dist/dev-tools/404-page.d.ts.map +1 -0
  195. package/dist/dev-tools/browser-logs.d.ts +84 -0
  196. package/dist/dev-tools/browser-logs.d.ts.map +1 -0
  197. package/dist/dev-tools/error-page.d.ts +58 -0
  198. package/dist/dev-tools/error-page.d.ts.map +1 -0
  199. package/dist/dev-tools/holding-server.d.ts +54 -0
  200. package/dist/dev-tools/holding-server.d.ts.map +1 -0
  201. package/dist/dev-tools/index.d.ts +31 -0
  202. package/dist/dev-tools/index.d.ts.map +1 -0
  203. package/dist/{server/dev-span-processor.d.ts → dev-tools/instrumentation.d.ts} +26 -6
  204. package/dist/dev-tools/instrumentation.d.ts.map +1 -0
  205. package/dist/{server/dev-logger.d.ts → dev-tools/logger.d.ts} +1 -1
  206. package/dist/dev-tools/logger.d.ts.map +1 -0
  207. package/dist/{plugins/dev-logs.d.ts → dev-tools/logs.d.ts} +2 -2
  208. package/dist/dev-tools/logs.d.ts.map +1 -0
  209. package/dist/dev-tools/overlay.d.ts +91 -0
  210. package/dist/dev-tools/overlay.d.ts.map +1 -0
  211. package/dist/dev-tools/stack-classifier.d.ts +34 -0
  212. package/dist/dev-tools/stack-classifier.d.ts.map +1 -0
  213. package/dist/dev-tools/terminal.d.ts +28 -0
  214. package/dist/dev-tools/terminal.d.ts.map +1 -0
  215. package/dist/{server/dev-warnings.d.ts → dev-tools/warnings.d.ts} +2 -22
  216. package/dist/dev-tools/warnings.d.ts.map +1 -0
  217. package/dist/fonts/ast.d.ts +98 -6
  218. package/dist/fonts/ast.d.ts.map +1 -1
  219. package/dist/fonts/bundle.d.ts +48 -0
  220. package/dist/fonts/bundle.d.ts.map +1 -0
  221. package/dist/fonts/css.d.ts +1 -0
  222. package/dist/fonts/css.d.ts.map +1 -1
  223. package/dist/fonts/dev-middleware.d.ts +22 -0
  224. package/dist/fonts/dev-middleware.d.ts.map +1 -0
  225. package/dist/fonts/local.d.ts +1 -1
  226. package/dist/fonts/pipeline.d.ts +167 -0
  227. package/dist/fonts/pipeline.d.ts.map +1 -0
  228. package/dist/fonts/transform.d.ts +78 -0
  229. package/dist/fonts/transform.d.ts.map +1 -0
  230. package/dist/fonts/types.d.ts +45 -1
  231. package/dist/fonts/types.d.ts.map +1 -1
  232. package/dist/fonts/virtual-modules.d.ts +103 -0
  233. package/dist/fonts/virtual-modules.d.ts.map +1 -0
  234. package/dist/index.d.ts +47 -190
  235. package/dist/index.d.ts.map +1 -1
  236. package/dist/index.js +4796 -12595
  237. package/dist/index.js.map +1 -1
  238. package/dist/params/codec-registry.d.ts +26 -0
  239. package/dist/params/codec-registry.d.ts.map +1 -0
  240. package/dist/params/define-schema.d.ts +52 -0
  241. package/dist/params/define-schema.d.ts.map +1 -0
  242. package/dist/params/index.d.ts +5 -0
  243. package/dist/params/index.d.ts.map +1 -0
  244. package/dist/params/index.js +33 -0
  245. package/dist/params/index.js.map +1 -0
  246. package/dist/params/resolve-schema.d.ts +34 -0
  247. package/dist/params/resolve-schema.d.ts.map +1 -0
  248. package/dist/plugin-context.d.ts +107 -0
  249. package/dist/plugin-context.d.ts.map +1 -0
  250. package/dist/plugins/adapter-build.d.ts +1 -1
  251. package/dist/plugins/adapter-build.d.ts.map +1 -1
  252. package/dist/plugins/build-manifest.d.ts +2 -2
  253. package/dist/plugins/build-manifest.d.ts.map +1 -1
  254. package/dist/plugins/build-report.d.ts +9 -7
  255. package/dist/plugins/build-report.d.ts.map +1 -1
  256. package/dist/plugins/client-chunks.d.ts +32 -0
  257. package/dist/plugins/client-chunks.d.ts.map +1 -0
  258. package/dist/plugins/content.d.ts +1 -1
  259. package/dist/plugins/content.d.ts.map +1 -1
  260. package/dist/plugins/dev-server.d.ts +1 -1
  261. package/dist/plugins/dev-server.d.ts.map +1 -1
  262. package/dist/plugins/entries.d.ts +1 -1
  263. package/dist/plugins/entries.d.ts.map +1 -1
  264. package/dist/plugins/fonts.d.ts +17 -73
  265. package/dist/plugins/fonts.d.ts.map +1 -1
  266. package/dist/plugins/mdx.d.ts +1 -1
  267. package/dist/plugins/mdx.d.ts.map +1 -1
  268. package/dist/plugins/routing.d.ts +1 -1
  269. package/dist/plugins/routing.d.ts.map +1 -1
  270. package/dist/plugins/server-bundle.d.ts.map +1 -1
  271. package/dist/plugins/shims.d.ts +6 -5
  272. package/dist/plugins/shims.d.ts.map +1 -1
  273. package/dist/plugins/static-build.d.ts +5 -26
  274. package/dist/plugins/static-build.d.ts.map +1 -1
  275. package/dist/routing/codegen-shared.d.ts +63 -0
  276. package/dist/routing/codegen-shared.d.ts.map +1 -0
  277. package/dist/routing/codegen-types.d.ts +57 -0
  278. package/dist/routing/codegen-types.d.ts.map +1 -0
  279. package/dist/routing/codegen.d.ts +7 -2
  280. package/dist/routing/codegen.d.ts.map +1 -1
  281. package/dist/routing/convention-lint.d.ts +41 -0
  282. package/dist/routing/convention-lint.d.ts.map +1 -0
  283. package/dist/routing/index.d.ts +5 -1
  284. package/dist/routing/index.d.ts.map +1 -1
  285. package/dist/routing/index.js +4 -2
  286. package/dist/routing/link-codegen.d.ts +90 -0
  287. package/dist/routing/link-codegen.d.ts.map +1 -0
  288. package/dist/routing/scanner.d.ts +1 -10
  289. package/dist/routing/scanner.d.ts.map +1 -1
  290. package/dist/routing/segment-classify.d.ts +75 -0
  291. package/dist/routing/segment-classify.d.ts.map +1 -0
  292. package/dist/routing/types.d.ts +77 -25
  293. package/dist/routing/types.d.ts.map +1 -1
  294. package/dist/routing/walkers.d.ts +51 -0
  295. package/dist/routing/walkers.d.ts.map +1 -0
  296. package/dist/rsc-runtime/rsc.d.ts +1 -1
  297. package/dist/rsc-runtime/rsc.d.ts.map +1 -1
  298. package/dist/rsc-runtime/ssr.d.ts +12 -0
  299. package/dist/rsc-runtime/ssr.d.ts.map +1 -1
  300. package/dist/schema-bridge.d.ts +76 -0
  301. package/dist/schema-bridge.d.ts.map +1 -0
  302. package/dist/search-params/define.d.ts +157 -0
  303. package/dist/search-params/define.d.ts.map +1 -0
  304. package/dist/search-params/index.d.ts +4 -7
  305. package/dist/search-params/index.d.ts.map +1 -1
  306. package/dist/search-params/index.js +34 -441
  307. package/dist/search-params/index.js.map +1 -1
  308. package/dist/search-params/registry.d.ts +2 -2
  309. package/dist/search-params/registry.d.ts.map +1 -1
  310. package/dist/search-params/wrappers.d.ts +53 -0
  311. package/dist/search-params/wrappers.d.ts.map +1 -0
  312. package/dist/segment-params/define.d.ts +95 -0
  313. package/dist/segment-params/define.d.ts.map +1 -0
  314. package/dist/segment-params/index.d.ts +3 -0
  315. package/dist/segment-params/index.d.ts.map +1 -0
  316. package/dist/segment-params/index.js +2 -0
  317. package/dist/server/access-gate.d.ts +8 -3
  318. package/dist/server/access-gate.d.ts.map +1 -1
  319. package/dist/server/action-client.d.ts +41 -6
  320. package/dist/server/action-client.d.ts.map +1 -1
  321. package/dist/server/action-encryption.d.ts +76 -0
  322. package/dist/server/action-encryption.d.ts.map +1 -0
  323. package/dist/server/action-handler.d.ts +35 -1
  324. package/dist/server/action-handler.d.ts.map +1 -1
  325. package/dist/server/actions.d.ts +3 -6
  326. package/dist/server/actions.d.ts.map +1 -1
  327. package/dist/server/als-registry.d.ts +40 -5
  328. package/dist/server/als-registry.d.ts.map +1 -1
  329. package/dist/server/asset-headers.d.ts +1 -15
  330. package/dist/server/asset-headers.d.ts.map +1 -1
  331. package/dist/server/build-manifest.d.ts +2 -2
  332. package/dist/server/build-manifest.d.ts.map +1 -1
  333. package/dist/server/coalesce-tick.d.ts +40 -0
  334. package/dist/server/coalesce-tick.d.ts.map +1 -0
  335. package/dist/server/cookie-context.d.ts +170 -0
  336. package/dist/server/cookie-context.d.ts.map +1 -0
  337. package/dist/server/cookie-parsing.d.ts +51 -0
  338. package/dist/server/cookie-parsing.d.ts.map +1 -0
  339. package/dist/server/debug.d.ts +1 -1
  340. package/dist/server/default-logger.d.ts +22 -0
  341. package/dist/server/default-logger.d.ts.map +1 -0
  342. package/dist/server/deny-boundary.d.ts +90 -0
  343. package/dist/server/deny-boundary.d.ts.map +1 -0
  344. package/dist/server/deny-renderer.d.ts.map +1 -1
  345. package/dist/server/dev-source-map.d.ts +22 -0
  346. package/dist/server/dev-source-map.d.ts.map +1 -0
  347. package/dist/server/early-hints-sender.d.ts.map +1 -1
  348. package/dist/server/early-hints.d.ts +13 -5
  349. package/dist/server/early-hints.d.ts.map +1 -1
  350. package/dist/server/error-boundary-wrapper.d.ts +7 -1
  351. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  352. package/dist/server/fallback-error.d.ts +12 -7
  353. package/dist/server/fallback-error.d.ts.map +1 -1
  354. package/dist/server/flight-injection-state.d.ts +66 -0
  355. package/dist/server/flight-injection-state.d.ts.map +1 -0
  356. package/dist/server/flight-scripts.d.ts +42 -0
  357. package/dist/server/flight-scripts.d.ts.map +1 -0
  358. package/dist/server/flush.d.ts.map +1 -1
  359. package/dist/server/form-data.d.ts +29 -0
  360. package/dist/server/form-data.d.ts.map +1 -1
  361. package/dist/server/html-injector-core.d.ts +212 -0
  362. package/dist/server/html-injector-core.d.ts.map +1 -0
  363. package/dist/server/html-injectors.d.ts +81 -41
  364. package/dist/server/html-injectors.d.ts.map +1 -1
  365. package/dist/server/index.d.ts +9 -46
  366. package/dist/server/index.d.ts.map +1 -1
  367. package/dist/server/index.js +155 -2905
  368. package/dist/server/index.js.map +1 -1
  369. package/dist/server/internal.d.ts +48 -0
  370. package/dist/server/internal.d.ts.map +1 -0
  371. package/dist/server/internal.js +2946 -0
  372. package/dist/server/internal.js.map +1 -0
  373. package/dist/server/logger.d.ts +39 -7
  374. package/dist/server/logger.d.ts.map +1 -1
  375. package/dist/server/middleware-runner.d.ts +36 -4
  376. package/dist/server/middleware-runner.d.ts.map +1 -1
  377. package/dist/server/node-stream-transforms.d.ts +110 -0
  378. package/dist/server/node-stream-transforms.d.ts.map +1 -0
  379. package/dist/server/param-coercion.d.ts +36 -0
  380. package/dist/server/param-coercion.d.ts.map +1 -0
  381. package/dist/server/pipeline-helpers.d.ts +95 -0
  382. package/dist/server/pipeline-helpers.d.ts.map +1 -0
  383. package/dist/server/pipeline-interception.d.ts +1 -1
  384. package/dist/server/pipeline-interception.d.ts.map +1 -1
  385. package/dist/server/pipeline-metadata.d.ts +6 -0
  386. package/dist/server/pipeline-metadata.d.ts.map +1 -1
  387. package/dist/server/pipeline-outcome.d.ts +49 -0
  388. package/dist/server/pipeline-outcome.d.ts.map +1 -0
  389. package/dist/server/pipeline-phases.d.ts +52 -0
  390. package/dist/server/pipeline-phases.d.ts.map +1 -0
  391. package/dist/server/pipeline.d.ts +111 -23
  392. package/dist/server/pipeline.d.ts.map +1 -1
  393. package/dist/server/port-resolution.d.ts +117 -0
  394. package/dist/server/port-resolution.d.ts.map +1 -0
  395. package/dist/server/primitives.d.ts +69 -18
  396. package/dist/server/primitives.d.ts.map +1 -1
  397. package/dist/server/render-timeout.d.ts +51 -0
  398. package/dist/server/render-timeout.d.ts.map +1 -0
  399. package/dist/server/request-context.d.ts +54 -108
  400. package/dist/server/request-context.d.ts.map +1 -1
  401. package/dist/server/route-element-builder.d.ts +27 -1
  402. package/dist/server/route-element-builder.d.ts.map +1 -1
  403. package/dist/server/route-handler.d.ts.map +1 -1
  404. package/dist/server/route-matcher.d.ts +21 -34
  405. package/dist/server/route-matcher.d.ts.map +1 -1
  406. package/dist/server/rsc-entry/action-middleware-runner.d.ts +66 -0
  407. package/dist/server/rsc-entry/action-middleware-runner.d.ts.map +1 -0
  408. package/dist/server/rsc-entry/api-handler.d.ts +2 -2
  409. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  410. package/dist/server/rsc-entry/error-renderer.d.ts +26 -13
  411. package/dist/server/rsc-entry/error-renderer.d.ts.map +1 -1
  412. package/dist/server/rsc-entry/helpers.d.ts +49 -6
  413. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  414. package/dist/server/rsc-entry/index.d.ts +19 -8
  415. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  416. package/dist/server/rsc-entry/render-route.d.ts +50 -0
  417. package/dist/server/rsc-entry/render-route.d.ts.map +1 -0
  418. package/dist/server/rsc-entry/rsc-payload.d.ts +3 -3
  419. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  420. package/dist/server/rsc-entry/rsc-stream.d.ts +14 -1
  421. package/dist/server/rsc-entry/rsc-stream.d.ts.map +1 -1
  422. package/dist/server/rsc-entry/ssr-bridge.d.ts +1 -1
  423. package/dist/server/rsc-entry/ssr-bridge.d.ts.map +1 -1
  424. package/dist/server/rsc-entry/ssr-renderer.d.ts +19 -4
  425. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  426. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +119 -0
  427. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts.map +1 -0
  428. package/dist/server/safe-load.d.ts +46 -0
  429. package/dist/server/safe-load.d.ts.map +1 -0
  430. package/dist/server/sensitive-fields.d.ts +74 -0
  431. package/dist/server/sensitive-fields.d.ts.map +1 -0
  432. package/dist/server/sitemap-generator.d.ts +129 -0
  433. package/dist/server/sitemap-generator.d.ts.map +1 -0
  434. package/dist/server/sitemap-handler.d.ts +22 -0
  435. package/dist/server/sitemap-handler.d.ts.map +1 -0
  436. package/dist/server/slot-resolver.d.ts +1 -1
  437. package/dist/server/slot-resolver.d.ts.map +1 -1
  438. package/dist/server/ssr-entry.d.ts +23 -0
  439. package/dist/server/ssr-entry.d.ts.map +1 -1
  440. package/dist/server/ssr-render.d.ts +39 -21
  441. package/dist/server/ssr-render.d.ts.map +1 -1
  442. package/dist/server/ssr-wrappers.d.ts +50 -0
  443. package/dist/server/ssr-wrappers.d.ts.map +1 -0
  444. package/dist/server/state-tree-diff.d.ts.map +1 -1
  445. package/dist/server/status-code-resolver.d.ts +16 -11
  446. package/dist/server/status-code-resolver.d.ts.map +1 -1
  447. package/dist/server/stream-utils.d.ts +36 -0
  448. package/dist/server/stream-utils.d.ts.map +1 -0
  449. package/dist/server/tracing.d.ts +5 -5
  450. package/dist/server/tracing.d.ts.map +1 -1
  451. package/dist/server/tree-builder.d.ts +62 -30
  452. package/dist/server/tree-builder.d.ts.map +1 -1
  453. package/dist/server/types.d.ts +49 -4
  454. package/dist/server/types.d.ts.map +1 -1
  455. package/dist/server/utils/escape-html.d.ts +14 -0
  456. package/dist/server/utils/escape-html.d.ts.map +1 -0
  457. package/dist/server/version-skew.d.ts +61 -0
  458. package/dist/server/version-skew.d.ts.map +1 -0
  459. package/dist/shared/merge-search-params.d.ts +22 -0
  460. package/dist/shared/merge-search-params.d.ts.map +1 -0
  461. package/dist/shims/font-google.d.ts +1 -1
  462. package/dist/shims/font-google.d.ts.map +1 -1
  463. package/dist/shims/font-google.js +42 -0
  464. package/dist/shims/font-google.js.map +1 -0
  465. package/dist/shims/font-local.d.ts +26 -0
  466. package/dist/shims/font-local.d.ts.map +1 -0
  467. package/dist/shims/font-local.js +20 -0
  468. package/dist/shims/font-local.js.map +1 -0
  469. package/dist/shims/headers.d.ts +2 -1
  470. package/dist/shims/headers.d.ts.map +1 -1
  471. package/dist/shims/navigation-client.d.ts +3 -1
  472. package/dist/shims/navigation-client.d.ts.map +1 -1
  473. package/dist/shims/navigation.d.ts +11 -5
  474. package/dist/shims/navigation.d.ts.map +1 -1
  475. package/dist/utils/state-machine.d.ts +80 -0
  476. package/dist/utils/state-machine.d.ts.map +1 -0
  477. package/package.json +62 -21
  478. package/src/adapters/build-output-helper.ts +77 -0
  479. package/src/adapters/cloudflare-dev.ts +177 -0
  480. package/src/adapters/cloudflare-kv-cache.ts +142 -0
  481. package/src/adapters/cloudflare.ts +350 -76
  482. package/src/adapters/compress-module.ts +24 -4
  483. package/src/adapters/nitro.ts +142 -59
  484. package/src/adapters/shared.ts +40 -0
  485. package/src/adapters/wrangler.d.ts +7 -0
  486. package/src/cache/cache-api.ts +38 -0
  487. package/src/cache/handler-store.ts +68 -0
  488. package/src/cache/index.ts +81 -18
  489. package/src/cache/singleflight.ts +62 -4
  490. package/src/cache/sizeof.ts +33 -0
  491. package/src/cache/timber-cache.ts +25 -20
  492. package/src/cli-schema-sync.ts +209 -0
  493. package/src/cli.ts +65 -8
  494. package/src/client/browser-dev.ts +153 -1
  495. package/src/client/browser-entry/action-dispatch.ts +126 -0
  496. package/src/client/browser-entry/hmr.ts +81 -0
  497. package/src/client/browser-entry/hydrate.ts +145 -0
  498. package/src/client/browser-entry/index.ts +149 -0
  499. package/src/client/browser-entry/post-hydration.ts +119 -0
  500. package/src/client/browser-entry/router-init.ts +193 -0
  501. package/src/client/browser-entry/rsc-stream.ts +157 -0
  502. package/src/client/browser-entry/scroll.ts +27 -0
  503. package/src/client/error-boundary.tsx +99 -22
  504. package/src/client/error-reconstituter.tsx +65 -0
  505. package/src/client/form.tsx +31 -32
  506. package/src/client/history.ts +26 -4
  507. package/src/client/index.ts +69 -44
  508. package/src/client/internal.ts +58 -0
  509. package/src/client/link-pending-store.ts +111 -0
  510. package/src/client/link.tsx +366 -113
  511. package/src/client/nav-link-store.ts +47 -0
  512. package/src/client/navigation-api-types.ts +112 -0
  513. package/src/client/navigation-api.ts +332 -0
  514. package/src/client/navigation-context.ts +31 -6
  515. package/src/client/navigation-root.tsx +342 -0
  516. package/src/client/nuqs-adapter.tsx +16 -3
  517. package/src/client/router-ref.ts +1 -1
  518. package/src/client/router.ts +300 -73
  519. package/src/client/rsc-fetch.ts +112 -8
  520. package/src/client/segment-cache.ts +1 -1
  521. package/src/client/segment-outlet.tsx +86 -0
  522. package/src/client/ssr-data.ts +13 -5
  523. package/src/client/stale-reload.ts +72 -3
  524. package/src/client/state.ts +2 -2
  525. package/src/client/top-loader.tsx +18 -6
  526. package/src/client/use-cookie.ts +31 -2
  527. package/src/client/use-link-status.ts +7 -7
  528. package/src/client/{use-navigation-pending.ts → use-pending-navigation.ts} +6 -6
  529. package/src/client/use-query-states.ts +9 -3
  530. package/src/client/use-router.ts +1 -1
  531. package/src/client/{use-params.ts → use-segment-params.ts} +7 -5
  532. package/src/codec.ts +45 -0
  533. package/src/config-types.ts +292 -0
  534. package/src/config-validation.ts +303 -0
  535. package/src/content/index.ts +5 -13
  536. package/src/cookies/define-cookie.ts +233 -53
  537. package/src/cookies/index.ts +12 -1
  538. package/src/cookies/json-cookie.ts +105 -0
  539. package/src/cookies/validation.ts +134 -0
  540. package/src/dev-tools/404-page.ts +387 -0
  541. package/src/dev-tools/browser-logs.ts +291 -0
  542. package/src/dev-tools/error-page.ts +506 -0
  543. package/src/dev-tools/holding-server.ts +187 -0
  544. package/src/dev-tools/index.ts +90 -0
  545. package/src/dev-tools/instrumentation.ts +176 -0
  546. package/src/{plugins/dev-logs.ts → dev-tools/logs.ts} +9 -5
  547. package/src/dev-tools/overlay.ts +469 -0
  548. package/src/dev-tools/stack-classifier.ts +75 -0
  549. package/src/dev-tools/terminal.ts +183 -0
  550. package/src/{server/dev-warnings.ts → dev-tools/warnings.ts} +5 -50
  551. package/src/fonts/ast.ts +525 -16
  552. package/src/fonts/bundle.ts +142 -0
  553. package/src/fonts/css.ts +2 -1
  554. package/src/fonts/dev-middleware.ts +74 -0
  555. package/src/fonts/local.ts +1 -1
  556. package/src/fonts/pipeline.ts +314 -0
  557. package/src/fonts/transform.ts +317 -0
  558. package/src/fonts/types.ts +50 -1
  559. package/src/fonts/virtual-modules.ts +227 -0
  560. package/src/index.ts +413 -356
  561. package/src/params/codec-registry.ts +34 -0
  562. package/src/params/define-schema.ts +72 -0
  563. package/src/params/index.ts +11 -0
  564. package/src/params/resolve-schema.ts +88 -0
  565. package/src/plugin-context.ts +240 -0
  566. package/src/plugins/adapter-build.ts +12 -4
  567. package/src/plugins/build-manifest.ts +13 -2
  568. package/src/plugins/build-report.ts +16 -25
  569. package/src/plugins/client-chunks.ts +65 -0
  570. package/src/plugins/content.ts +1 -1
  571. package/src/plugins/dev-server.ts +175 -35
  572. package/src/plugins/entries.ts +111 -9
  573. package/src/plugins/fonts.ts +155 -654
  574. package/src/plugins/mdx.ts +47 -10
  575. package/src/plugins/routing.ts +322 -44
  576. package/src/plugins/server-bundle.ts +32 -1
  577. package/src/plugins/shims.ts +136 -35
  578. package/src/plugins/static-build.ts +15 -89
  579. package/src/routing/codegen-shared.ts +109 -0
  580. package/src/routing/codegen-types.ts +58 -0
  581. package/src/routing/codegen.ts +253 -178
  582. package/src/routing/convention-lint.ts +357 -0
  583. package/src/routing/index.ts +5 -1
  584. package/src/routing/interception.ts +1 -1
  585. package/src/routing/link-codegen.ts +308 -0
  586. package/src/routing/scanner.ts +107 -110
  587. package/src/routing/segment-classify.ts +188 -0
  588. package/src/routing/types.ts +78 -25
  589. package/src/routing/walkers.ts +90 -0
  590. package/src/rsc-runtime/rsc.ts +2 -0
  591. package/src/rsc-runtime/ssr.ts +50 -0
  592. package/src/rsc-runtime/vendor-types.d.ts +7 -0
  593. package/src/{search-params/codecs.ts → schema-bridge.ts} +57 -20
  594. package/src/search-params/define.ts +538 -0
  595. package/src/search-params/index.ts +14 -20
  596. package/src/search-params/registry.ts +2 -2
  597. package/src/search-params/wrappers.ts +92 -0
  598. package/src/segment-params/define.ts +336 -0
  599. package/src/segment-params/index.ts +9 -0
  600. package/src/server/access-gate.tsx +76 -34
  601. package/src/server/action-client.ts +88 -15
  602. package/src/server/action-encryption.ts +144 -0
  603. package/src/server/action-handler.ts +112 -14
  604. package/src/server/actions.ts +10 -9
  605. package/src/server/als-registry.ts +42 -7
  606. package/src/server/asset-headers.ts +8 -34
  607. package/src/server/build-manifest.ts +10 -4
  608. package/src/server/coalesce-tick.ts +75 -0
  609. package/src/server/compress.ts +25 -7
  610. package/src/server/cookie-context.ts +468 -0
  611. package/src/server/cookie-parsing.ts +135 -0
  612. package/src/server/debug.ts +1 -1
  613. package/src/server/default-logger.ts +99 -0
  614. package/src/server/deny-boundary.ts +218 -0
  615. package/src/server/deny-renderer.ts +31 -50
  616. package/src/server/dev-source-map.ts +31 -0
  617. package/src/server/early-hints-sender.ts +3 -2
  618. package/src/server/early-hints.ts +36 -15
  619. package/src/server/error-boundary-wrapper.ts +74 -22
  620. package/src/server/fallback-error.ts +74 -102
  621. package/src/server/flight-injection-state.ts +113 -0
  622. package/src/server/flight-scripts.ts +62 -0
  623. package/src/server/flush.ts +2 -1
  624. package/src/server/form-data.ts +76 -0
  625. package/src/server/html-injector-core.ts +403 -0
  626. package/src/server/html-injectors.ts +233 -223
  627. package/src/server/index.ts +31 -184
  628. package/src/server/internal.ts +176 -0
  629. package/src/server/logger.ts +67 -36
  630. package/src/server/middleware-runner.ts +75 -4
  631. package/src/server/node-stream-transforms.ts +359 -0
  632. package/src/server/param-coercion.ts +148 -0
  633. package/src/server/pipeline-helpers.ts +204 -0
  634. package/src/server/pipeline-interception.ts +17 -16
  635. package/src/server/pipeline-metadata.ts +13 -0
  636. package/src/server/pipeline-outcome.ts +176 -0
  637. package/src/server/pipeline-phases.ts +453 -0
  638. package/src/server/pipeline.ts +147 -394
  639. package/src/server/port-resolution.ts +215 -0
  640. package/src/server/primitives.ts +111 -28
  641. package/src/server/render-timeout.ts +108 -0
  642. package/src/server/request-context.ts +138 -334
  643. package/src/server/route-element-builder.ts +297 -193
  644. package/src/server/route-handler.ts +24 -4
  645. package/src/server/route-matcher.ts +44 -65
  646. package/src/server/rsc-entry/action-middleware-runner.ts +167 -0
  647. package/src/server/rsc-entry/api-handler.ts +16 -17
  648. package/src/server/rsc-entry/error-renderer.ts +305 -89
  649. package/src/server/rsc-entry/helpers.ts +137 -12
  650. package/src/server/rsc-entry/index.ts +316 -352
  651. package/src/server/rsc-entry/render-route.ts +307 -0
  652. package/src/server/rsc-entry/rsc-payload.ts +65 -18
  653. package/src/server/rsc-entry/rsc-stream.ts +81 -13
  654. package/src/server/rsc-entry/ssr-bridge.ts +14 -5
  655. package/src/server/rsc-entry/ssr-renderer.ts +171 -38
  656. package/src/server/rsc-entry/wrap-action-dispatch.ts +449 -0
  657. package/src/server/safe-load.ts +60 -0
  658. package/src/server/sensitive-fields.ts +230 -0
  659. package/src/server/sitemap-generator.ts +338 -0
  660. package/src/server/sitemap-handler.ts +126 -0
  661. package/src/server/slot-resolver.ts +245 -230
  662. package/src/server/ssr-entry.ts +215 -32
  663. package/src/server/ssr-render.ts +289 -67
  664. package/src/server/ssr-wrappers.tsx +139 -0
  665. package/src/server/state-tree-diff.ts +4 -1
  666. package/src/server/status-code-resolver.ts +112 -128
  667. package/src/server/stream-utils.ts +213 -0
  668. package/src/server/tracing.ts +21 -10
  669. package/src/server/tree-builder.ts +202 -90
  670. package/src/server/types.ts +55 -6
  671. package/src/server/utils/escape-html.ts +20 -0
  672. package/src/server/version-skew.ts +104 -0
  673. package/src/shared/merge-search-params.ts +55 -0
  674. package/src/shims/font-google.ts +1 -1
  675. package/src/shims/font-local.ts +34 -0
  676. package/src/shims/headers.ts +5 -1
  677. package/src/shims/navigation-client.ts +4 -3
  678. package/src/shims/navigation.ts +14 -7
  679. package/src/utils/state-machine.ts +111 -0
  680. package/LICENSE +0 -8
  681. package/dist/_chunks/als-registry-B7DbZ2hS.js +0 -41
  682. package/dist/_chunks/als-registry-B7DbZ2hS.js.map +0 -1
  683. package/dist/_chunks/debug-gwlJkDuf.js +0 -108
  684. package/dist/_chunks/debug-gwlJkDuf.js.map +0 -1
  685. package/dist/_chunks/format-DviM89f0.js.map +0 -1
  686. package/dist/_chunks/interception-BOoWmLUA.js +0 -676
  687. package/dist/_chunks/interception-BOoWmLUA.js.map +0 -1
  688. package/dist/_chunks/request-context-DIkVh_jG.js +0 -330
  689. package/dist/_chunks/request-context-DIkVh_jG.js.map +0 -1
  690. package/dist/_chunks/ssr-data-MjmprTmO.js.map +0 -1
  691. package/dist/_chunks/tracing-CemImE6h.js +0 -187
  692. package/dist/_chunks/tracing-CemImE6h.js.map +0 -1
  693. package/dist/_chunks/use-cookie-DX-l1_5E.js +0 -91
  694. package/dist/_chunks/use-cookie-DX-l1_5E.js.map +0 -1
  695. package/dist/_chunks/use-query-states-D5KaffOK.js.map +0 -1
  696. package/dist/cache/register-cached-function.d.ts +0 -17
  697. package/dist/cache/register-cached-function.d.ts.map +0 -1
  698. package/dist/client/browser-entry.d.ts +0 -21
  699. package/dist/client/browser-entry.d.ts.map +0 -1
  700. package/dist/client/link-status-provider.d.ts +0 -11
  701. package/dist/client/link-status-provider.d.ts.map +0 -1
  702. package/dist/client/transition-root.d.ts.map +0 -1
  703. package/dist/client/use-navigation-pending.d.ts.map +0 -1
  704. package/dist/client/use-params.d.ts.map +0 -1
  705. package/dist/plugins/cache-transform.d.ts +0 -36
  706. package/dist/plugins/cache-transform.d.ts.map +0 -1
  707. package/dist/plugins/dev-error-overlay.d.ts +0 -60
  708. package/dist/plugins/dev-error-overlay.d.ts.map +0 -1
  709. package/dist/plugins/dev-logs.d.ts.map +0 -1
  710. package/dist/plugins/dynamic-transform.d.ts +0 -72
  711. package/dist/plugins/dynamic-transform.d.ts.map +0 -1
  712. package/dist/plugins/server-action-exports.d.ts +0 -26
  713. package/dist/plugins/server-action-exports.d.ts.map +0 -1
  714. package/dist/routing/status-file-lint.d.ts +0 -33
  715. package/dist/routing/status-file-lint.d.ts.map +0 -1
  716. package/dist/search-params/analyze.d.ts +0 -54
  717. package/dist/search-params/analyze.d.ts.map +0 -1
  718. package/dist/search-params/builtin-codecs.d.ts +0 -105
  719. package/dist/search-params/builtin-codecs.d.ts.map +0 -1
  720. package/dist/search-params/codecs.d.ts +0 -53
  721. package/dist/search-params/codecs.d.ts.map +0 -1
  722. package/dist/search-params/create.d.ts +0 -106
  723. package/dist/search-params/create.d.ts.map +0 -1
  724. package/dist/server/dev-fetch-instrumentation.d.ts +0 -22
  725. package/dist/server/dev-fetch-instrumentation.d.ts.map +0 -1
  726. package/dist/server/dev-logger.d.ts.map +0 -1
  727. package/dist/server/dev-span-processor.d.ts.map +0 -1
  728. package/dist/server/dev-warnings.d.ts.map +0 -1
  729. package/dist/server/manifest-status-resolver.d.ts +0 -58
  730. package/dist/server/manifest-status-resolver.d.ts.map +0 -1
  731. package/dist/server/prerender.d.ts +0 -77
  732. package/dist/server/prerender.d.ts.map +0 -1
  733. package/dist/server/response-cache.d.ts +0 -54
  734. package/dist/server/response-cache.d.ts.map +0 -1
  735. package/dist/utils/directive-parser.d.ts +0 -70
  736. package/dist/utils/directive-parser.d.ts.map +0 -1
  737. package/src/cache/register-cached-function.ts +0 -103
  738. package/src/client/browser-entry.ts +0 -678
  739. package/src/client/link-status-provider.tsx +0 -30
  740. package/src/client/transition-root.tsx +0 -166
  741. package/src/plugins/cache-transform.ts +0 -199
  742. package/src/plugins/dev-error-overlay.ts +0 -230
  743. package/src/plugins/dynamic-transform.ts +0 -161
  744. package/src/plugins/server-action-exports.ts +0 -220
  745. package/src/routing/status-file-lint.ts +0 -112
  746. package/src/search-params/analyze.ts +0 -192
  747. package/src/search-params/builtin-codecs.ts +0 -228
  748. package/src/search-params/create.ts +0 -321
  749. package/src/server/dev-fetch-instrumentation.ts +0 -96
  750. package/src/server/dev-span-processor.ts +0 -78
  751. package/src/server/manifest-status-resolver.ts +0 -215
  752. package/src/server/prerender.ts +0 -139
  753. package/src/server/response-cache.ts +0 -410
  754. package/src/utils/directive-parser.ts +0 -529
  755. /package/src/{server/dev-logger.ts → dev-tools/logger.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"shims.d.ts","sourceRoot":"","sources":["../../src/plugins/shims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAiDhD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA4JvD"}
1
+ {"version":3,"file":"shims.d.ts","sourceRoot":"","sources":["../../src/plugins/shims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAuE1D;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CA0OvD"}
@@ -2,47 +2,26 @@
2
2
  * timber-static-build — Vite sub-plugin for static output mode.
3
3
  *
4
4
  * When `output: 'static'` is set in timber.config.ts, this plugin:
5
- * 1. Validates that no dynamic APIs (cookies(), headers()) are used
6
- * 2. When client JavaScript is disabled, rejects 'use client' and 'use server' directives
7
- * 3. Coordinates build-time rendering of all pages
5
+ * 1. Validates that no dynamic APIs (getCookies(), getHeaders()) are used
6
+ * 2. Coordinates build-time rendering of all pages
8
7
  *
9
8
  * Design doc: design/15-future-prerendering.md
10
9
  */
11
10
  import type { Plugin } from 'vite';
12
- import type { PluginContext } from '#/index.js';
11
+ import type { PluginContext } from '../plugin-context.js';
13
12
  export interface StaticValidationError {
14
- type: 'dynamic-api' | 'nojs-directive';
13
+ type: 'dynamic-api';
15
14
  file: string;
16
15
  message: string;
17
16
  line?: number;
18
17
  }
19
- export interface StaticOptions {
20
- clientJavascriptDisabled: boolean;
21
- }
22
18
  /**
23
- * Detect usage of dynamic per-request APIs (cookies(), headers())
19
+ * Detect usage of dynamic per-request APIs (getCookies(), getHeaders())
24
20
  * that cannot work at build time in static mode.
25
21
  *
26
22
  * Returns an array of validation errors.
27
23
  */
28
24
  export declare function detectDynamicApis(code: string, fileId: string): StaticValidationError[];
29
- /**
30
- * Detect 'use client' and 'use server' directives using AST-based parsing.
31
- * When client JavaScript is disabled, both are hard build errors — no React
32
- * runtime or server actions are allowed in the output.
33
- *
34
- * When client JavaScript is enabled, these are allowed (client components
35
- * hydrate, server actions get extracted to API endpoints).
36
- */
37
- export declare function detectDirectives(code: string, fileId: string, options: StaticOptions): StaticValidationError[];
38
- /**
39
- * Run all static mode validations on a source file.
40
- *
41
- * Combines:
42
- * - Dynamic API detection (cookies, headers) — always in static mode
43
- * - Directive detection ('use client', 'use server') — only when client JS is disabled
44
- */
45
- export declare function validateStaticMode(code: string, fileId: string, options: StaticOptions): StaticValidationError[];
46
25
  /**
47
26
  * Create the timber-static-build Vite plugin.
48
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"static-build.d.ts","sourceRoot":"","sources":["../../src/plugins/static-build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,GAAG,gBAAgB,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAiBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,qBAAqB,EAAE,CA2BvF;AAMD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,qBAAqB,EAAE,CA8BzB;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,qBAAqB,EAAE,CAOzB;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CA0C5D"}
1
+ {"version":3,"file":"static-build.d.ts","sourceRoot":"","sources":["../../src/plugins/static-build.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAmBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,qBAAqB,EAAE,CA2BvF;AAMD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CA4C5D"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Shared codegen helpers — import-path computation, codec chain type
3
+ * builder, and searchParams type formatter.
4
+ *
5
+ * Extracted from `codegen.ts` so `link-codegen.ts` can use the same
6
+ * helpers without a cyclic import.
7
+ */
8
+ import type { ParamEntry, RouteEntry } from './codegen-types.js';
9
+ /**
10
+ * Compute a relative import specifier for a codec/page file, stripping
11
+ * the .ts/.tsx extension and resolving against the codegen output dir.
12
+ */
13
+ export declare function codecImportPath(codecFilePath: string, importBase: string | undefined): string;
14
+ /** Name of the shared helper type emitted at the top of the .d.ts. */
15
+ export declare const RESOLVE_SEGMENT_FIELD_TYPE_NAME = "_TimberResolveSegmentField";
16
+ /**
17
+ * Helper type emitted once at the top of the generated `.d.ts` and
18
+ * referenced by every codec-chain conditional. Without this shared
19
+ * helper, the inline expansion would duplicate the fallback branch on
20
+ * every step and grow O(2^N) in chain depth (a single deep nested route
21
+ * could blow up the file size and TS performance). With the helper,
22
+ * each step reuses the named type and growth is O(N).
23
+ *
24
+ * The helper is a 2-arg conditional: given a typeof import expression
25
+ * (`Def`), a key (`K`), and a fallback (`F`), it returns `T[K]` if
26
+ * `Def extends ParamsDefinition<T>` and `K extends keyof T`, otherwise
27
+ * `F`. The codec chain composes calls to this helper.
28
+ */
29
+ export declare function emitResolveSegmentFieldHelper(): string;
30
+ /**
31
+ * Build a TypeScript type expression that resolves a single param's
32
+ * codec by walking a chain of params.ts files in priority order.
33
+ *
34
+ * Each entry in the chain emits one application of the shared
35
+ * `_TimberResolveSegmentField` helper type. Composing N applications
36
+ * grows linearly with chain depth (O(N) characters), unlike an inline
37
+ * conditional that would duplicate the fallback in each branch and
38
+ * grow O(2^N).
39
+ *
40
+ * The closest match (position 0 in the chain) is checked first; if its
41
+ * `segmentParams` definition declares the key, its inferred type wins.
42
+ * Otherwise we fall through to the next entry, and finally to the
43
+ * provided fallback. See TIM-834.
44
+ */
45
+ export declare function buildCodecChainType(p: ParamEntry, importBase: string | undefined, fallback: string): string;
46
+ /**
47
+ * Build a TypeScript type expression for a single param using the global
48
+ * schema's InferCodecType. Falls back to `fallback` when schema doesn't
49
+ * declare this param.
50
+ *
51
+ * Generates: `InferCodecType<typeof schema.segmentParams['[paramName]']>`
52
+ */
53
+ export declare function buildSchemaParamType(p: ParamEntry): string;
54
+ /**
55
+ * Format the searchParams type for a route entry.
56
+ *
57
+ * When a page.tsx (or params.ts) exports searchParams, we reference its
58
+ * inferred type via an import type. The import path is relative to
59
+ * `importBase` (the directory where the .d.ts will be written). When
60
+ * importBase is undefined, falls back to a bare relative path.
61
+ */
62
+ export declare function formatSearchParamsType(route: RouteEntry, importBase?: string): string;
63
+ //# sourceMappingURL=codegen-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-shared.d.ts","sourceRoot":"","sources":["../../src/routing/codegen-shared.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAM7F;AAED,sEAAsE;AACtE,eAAO,MAAM,+BAA+B,+BAA+B,CAAC;AAE5E;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAOtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,UAAU,EACb,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,QAAQ,EAAE,MAAM,GACf,MAAM,CAaR;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAOrF"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Shared types for route codegen modules.
3
+ *
4
+ * Lives in its own file so `link-codegen.ts` and `codegen.ts` can import
5
+ * the same `RouteEntry` / `ParamEntry` shapes without a cyclic
6
+ * dependency between the two.
7
+ */
8
+ /** A single route entry extracted from the segment tree. */
9
+ export interface RouteEntry {
10
+ /** URL path pattern (e.g. "/products/[id]") */
11
+ urlPath: string;
12
+ /** Accumulated params from all ancestor dynamic segments */
13
+ params: ParamEntry[];
14
+ /** Whether the page.tsx exports searchParams */
15
+ hasSearchParams: boolean;
16
+ /** Absolute path to the page file that exports searchParams (for import paths) */
17
+ searchParamsPagePath?: string;
18
+ /** Whether this is an API route (route.ts) vs page route */
19
+ isApiRoute: boolean;
20
+ /** Whether a global schema (app/schema.ts) exists for this app */
21
+ hasSchema?: boolean;
22
+ }
23
+ export interface ParamEntry {
24
+ name: string;
25
+ /** Bracket-wrapped segment name as it appears in the filesystem and schema.
26
+ * e.g. '[id]', '[...slug]', '[[...slug]]' */
27
+ bracketName: string;
28
+ type: 'string' | 'string[]' | 'string[] | undefined';
29
+ /**
30
+ * Ordered list of params.ts files in the route chain that may declare
31
+ * a codec for this param, in priority order — **closest-to-leaf
32
+ * first**. The generated type emits a chain that picks the first
33
+ * entry whose `segmentParams` definition declares this param key.
34
+ *
35
+ * This array is the SAME for every param in a given route entry
36
+ * (it is the route's full ancestry of params.ts files in leaf-first
37
+ * order); the type-level conditional in `buildCodecChainType`
38
+ * narrows per-key. Sharing the array matches the runtime semantics
39
+ * of `coerceSegmentParams`, which walks segments top-down and lets
40
+ * later (deeper) coercions overwrite earlier ones — closest-to-leaf
41
+ * wins for both types and runtime.
42
+ *
43
+ * See TIM-834.
44
+ */
45
+ codecFilePaths?: string[];
46
+ /**
47
+ * Per-segment legacy fallback: a layout.tsx or page.tsx that exports
48
+ * `segmentParams` directly (pre-TIM-508 convention). Used only when
49
+ * the chain has no params.ts files at all. Does NOT participate in
50
+ * inheritance — a layout/page export is per-segment only.
51
+ *
52
+ * @internal Set during `collectRoutes`; consumed at leaf time when
53
+ * building the final `codecFilePaths`.
54
+ */
55
+ legacyCodecFilePath?: string;
56
+ }
57
+ //# sourceMappingURL=codegen-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen-types.d.ts","sourceRoot":"","sources":["../../src/routing/codegen-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;IACpB,kEAAkE;IAClE,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb;kDAC8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,sBAAsB,CAAC;IACrD;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
@@ -10,14 +10,19 @@
10
10
  import type { RouteTree } from './types.js';
11
11
  /** Options for route map generation. */
12
12
  export interface CodegenOptions {
13
- /** Absolute path to the app/ directory. Required for search-params.ts detection. */
13
+ /** Absolute path to the app/ directory. Required for page searchParams detection. */
14
14
  appDir?: string;
15
15
  /**
16
16
  * Absolute path to the directory where the .d.ts file will be written.
17
- * Used to compute correct relative import paths for search-params.ts files.
17
+ * Used to compute correct relative import paths for page files.
18
18
  * Defaults to appDir when not provided (preserves backward compat for tests).
19
19
  */
20
20
  outputDir?: string;
21
+ /**
22
+ * Whether a global schema (app/schema.ts) exists.
23
+ * Auto-detected from appDir when not explicitly set.
24
+ */
25
+ hasSchema?: boolean;
21
26
  }
22
27
  /**
23
28
  * Generate a TypeScript declaration file string from a scanned route tree.
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/routing/codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAqBzD,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,CAWtF"}
1
+ {"version":3,"file":"codegen.d.ts","sourceRoot":"","sources":["../../src/routing/codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAUzD,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,CActF"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Convention linter — validates common misconfigurations in the route tree.
3
+ *
4
+ * Runs at scan time (build and dev startup). Each check produces a warning
5
+ * with the file path, what's wrong, and what to do about it.
6
+ *
7
+ * These are warnings, not errors — they don't block the build. The goal is
8
+ * to catch issues that would otherwise produce cryptic runtime behavior
9
+ * (silent 404s, empty pages, confusing React errors).
10
+ *
11
+ * Design doc: 07-routing.md, 10-error-handling.md
12
+ */
13
+ import type { RouteTree } from './types.js';
14
+ export interface ConventionWarning {
15
+ /** Warning ID for deduplication and filtering. */
16
+ id: string;
17
+ /** Human-readable single-line summary. */
18
+ summary: string;
19
+ /** Multi-line details with file path and fix suggestion. */
20
+ details: string;
21
+ /** Severity: 'warn' for potential issues, 'error' for definite misconfigurations. */
22
+ level: 'warn' | 'error';
23
+ }
24
+ /**
25
+ * Run all convention lint checks on a route tree.
26
+ *
27
+ * Returns an array of warnings. Empty array means everything looks good.
28
+ */
29
+ export declare function lintConventions(tree: RouteTree, appDir: string): ConventionWarning[];
30
+ /**
31
+ * Check if the app/ directory exists. Called before scanning.
32
+ * Returns a warning if missing, or null if the directory exists.
33
+ */
34
+ export declare function checkAppDirExists(appDir: string): ConventionWarning | null;
35
+ /**
36
+ * Format warnings for terminal output.
37
+ *
38
+ * Groups by severity, uses colors, and includes fix suggestions.
39
+ */
40
+ export declare function formatConventionWarnings(warnings: ConventionWarning[]): string;
41
+ //# sourceMappingURL=convention-lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convention-lint.d.ts","sourceRoot":"","sources":["../../src/routing/convention-lint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAC;AAKzD,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzB;AAID;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAqBpF;AAwOD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAe1E;AAUD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAgC9E"}
@@ -1,8 +1,12 @@
1
- export { scanRoutes, classifySegment } from './scanner.js';
1
+ export { scanRoutes } from './scanner.js';
2
2
  export { generateRouteMap } from './codegen.js';
3
3
  export type { CodegenOptions } from './codegen.js';
4
4
  export type { RouteTree, SegmentNode, SegmentType, RouteFile, ScannerConfig, InterceptionMarker, } from './types.js';
5
5
  export { DEFAULT_PAGE_EXTENSIONS, INTERCEPTION_MARKERS } from './types.js';
6
6
  export { collectInterceptionRewrites } from './interception.js';
7
7
  export type { InterceptionRewrite } from './interception.js';
8
+ export { classifyUrlSegment, classifySegment } from './segment-classify.js';
9
+ export type { UrlSegment, SegmentClassification } from './segment-classify.js';
10
+ export { collectLeafRoutes } from './walkers.js';
11
+ export type { LeafRoute, CollectLeafRoutesOptions } from './walkers.js';
8
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC5E,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,2 +1,4 @@
1
- import { a as DEFAULT_PAGE_EXTENSIONS, i as scanRoutes, n as generateRouteMap, o as INTERCEPTION_MARKERS, r as classifySegment, t as collectInterceptionRewrites } from "../_chunks/interception-BOoWmLUA.js";
2
- export { DEFAULT_PAGE_EXTENSIONS, INTERCEPTION_MARKERS, classifySegment, collectInterceptionRewrites, generateRouteMap, scanRoutes };
1
+ import { i as INTERCEPTION_MARKERS, n as classifyUrlSegment, r as DEFAULT_PAGE_EXTENSIONS, t as classifySegment } from "../_chunks/segment-classify-CnfLLvir.js";
2
+ import { t as scanRoutes } from "../_chunks/scanner-DmfoB7iK.js";
3
+ import { n as collectInterceptionRewrites, r as generateRouteMap, t as collectLeafRoutes } from "../_chunks/walkers-DGTmJT0f.js";
4
+ export { DEFAULT_PAGE_EXTENSIONS, INTERCEPTION_MARKERS, classifySegment, classifyUrlSegment, collectInterceptionRewrites, collectLeafRoutes, generateRouteMap, scanRoutes };
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Typed `<Link>` codegen — interface augmentation generation.
3
+ *
4
+ * Extracted from `codegen.ts` to keep that file under the project's
5
+ * 500-line cap. This module owns everything that emits the
6
+ * `interface LinkFunction { ... }` augmentation blocks in the generated
7
+ * `.timber/timber-routes.d.ts`.
8
+ *
9
+ * Two augmentation blocks are emitted:
10
+ *
11
+ * 1. **Per-route discriminated union** (`formatTypedLinkOverloads`) —
12
+ * one call signature whose props is a union keyed on `href`. TS
13
+ * narrows by literal href and reports prop errors against the
14
+ * matched variant. See TIM-835 and `design/09-typescript.md`.
15
+ *
16
+ * 2. **Catch-all overloads** (`formatLinkCatchAllOverloads`) — external
17
+ * href literals (`http://`, `mailto:`, etc.) and a computed-string
18
+ * `<H extends string>` signature for runtime-computed paths.
19
+ *
20
+ * Block ordering is critical for error UX: per-route is emitted FIRST
21
+ * so that, after TS's "later overload set ordered first" merge rule,
22
+ * the discriminated union ends up LAST in resolution order — the
23
+ * overload TS reports against on failure.
24
+ */
25
+ import type { ParamEntry, RouteEntry } from './codegen-types.js';
26
+ /** Shared Link base-props type literal used in every emitted call signature. */
27
+ export declare const LINK_BASE_PROPS_TYPE = "Omit<import('react').AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> & { prefetch?: boolean; scroll?: boolean; preserveSearchParams?: true | string[]; onNavigate?: import('./client/link.js').OnNavigateHandler; children?: import('react').ReactNode }";
28
+ /**
29
+ * Build a TypeScript template literal pattern for a dynamic route.
30
+ * e.g. '/products/[id]' → '/products/${string}'
31
+ * '/blog/[...slug]' → '/blog/${string}'
32
+ * '/docs/[[...path]]' → '/docs/${string}' (also matches /docs)
33
+ * '/[org]/[repo]' → '/${string}/${string}'
34
+ */
35
+ export declare function buildResolvedPattern(route: RouteEntry): string | null;
36
+ /**
37
+ * Format the segmentParams type for Link overloads.
38
+ *
39
+ * Link params accept `string | number` for single dynamic segments
40
+ * (convenience — values are stringified at runtime). Catch-all and
41
+ * optional catch-all remain `string[]` / `string[] | undefined`.
42
+ *
43
+ * When the segment's params chain (TIM-834) declares a typed codec, the
44
+ * inferred type from the codec wins via a nested conditional.
45
+ */
46
+ export declare function formatLinkParamsType(params: ParamEntry[], importBase?: string, hasSchema?: boolean): string;
47
+ /**
48
+ * Catch-all call signatures for `<Link>` — external hrefs and computed
49
+ * `string` variables. Emitted from codegen in a SEPARATE
50
+ * `declare module` block (declared AFTER the per-route block) so the TS
51
+ * "later overload set ordered first" rule places these catch-all
52
+ * signatures ahead of per-route in resolution order, leaving per-route
53
+ * as the final overload whose error message is reported on failure.
54
+ *
55
+ * The conditional `string extends H ? ... : never` protection preserves
56
+ * TIM-624's guarantee that unknown internal path literals don't match
57
+ * the catch-all — typos like `<Link href="/typo" />` still error.
58
+ */
59
+ export declare function formatLinkCatchAllOverloads(): string[];
60
+ /**
61
+ * Generate typed per-route Link call signatures via LinkFunction
62
+ * interface merging.
63
+ *
64
+ * TIM-835: This emits a SINGLE call signature whose props is a
65
+ * discriminated union keyed on `href`. TypeScript narrows the union by
66
+ * the literal `href` at the call site, then checks the rest of the
67
+ * props against the matched variant. When `segmentParams` or
68
+ * `searchParams` is wrong, TS reports the error against the matched
69
+ * variant — naming the user's actual `href` and the offending field.
70
+ *
71
+ * Before TIM-835, this function emitted N separate per-route overloads
72
+ * (one per route, sometimes two for dynamic routes). When ALL overloads
73
+ * failed, TS would pick an arbitrary failed overload (heuristically the
74
+ * "last tried") to render the diagnostic, often pointing at a route
75
+ * completely unrelated to the one the user wrote. The discriminated
76
+ * union sidesteps overload-resolution heuristics entirely.
77
+ *
78
+ * Open property shapes (`Record<string, unknown>` instead of `never`)
79
+ * for `segmentParams` on routes that don't declare them keep generic
80
+ * `LinkProps`-spreading wrappers compiling. (Aligned with TIM-833.)
81
+ *
82
+ * TIM-832: this function still emits the per-route block FIRST and the
83
+ * catch-all block follows, so per-route remains the LAST overload set in
84
+ * resolution order — the one TS reports against on failure. With a
85
+ * discriminated union there is only one call signature in this block,
86
+ * so the resolved-template-vs-pattern ordering reduces to placing the
87
+ * pattern variant before the resolved-template variant inside the union.
88
+ */
89
+ export declare function formatTypedLinkOverloads(routes: RouteEntry[], importBase?: string, hasSchema?: boolean): string[];
90
+ //# sourceMappingURL=link-codegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-codegen.d.ts","sourceRoot":"","sources":["../../src/routing/link-codegen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOjE,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,8PAC4N,CAAC;AAE9P;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAkBrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,OAAO,GAClB,MAAM,CAaR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAqEtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,OAAO,GAClB,MAAM,EAAE,CAmGV"}
@@ -7,7 +7,7 @@
7
7
  * timber.js file conventions. Does NOT handle request matching — this
8
8
  * is discovery only.
9
9
  */
10
- import type { RouteTree, SegmentType, ScannerConfig, InterceptionMarker } from './types.js';
10
+ import type { RouteTree, ScannerConfig } from './types.js';
11
11
  /**
12
12
  * Scan the app/ directory and build the route tree.
13
13
  *
@@ -16,13 +16,4 @@ import type { RouteTree, SegmentType, ScannerConfig, InterceptionMarker } from '
16
16
  * @returns The complete route tree
17
17
  */
18
18
  export declare function scanRoutes(appDir: string, config?: ScannerConfig): RouteTree;
19
- /**
20
- * Classify a directory name into its segment type.
21
- */
22
- export declare function classifySegment(dirName: string): {
23
- type: SegmentType;
24
- paramName?: string;
25
- interceptionMarker?: InterceptionMarker;
26
- interceptedSegmentName?: string;
27
- };
28
19
  //# sourceMappingURL=scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/routing/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,SAAS,EAET,WAAW,EAEX,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA6CpB;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,aAAkB,GAAG,SAAS,CAwBhF;AAyBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAChD,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,CA8CA"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/routing/scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,SAAS,EAIT,aAAa,EAEd,MAAM,YAAY,CAAC;AA+CpB;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,aAAkB,GAAG,SAAS,CAoChF"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Shared segment classifier — both URL tokens and filesystem directory names.
3
+ *
4
+ * `classifyUrlSegment(token)` is a pure single-pass character parser that
5
+ * classifies a route segment token (e.g. "dashboard", "[id]", "[...slug]",
6
+ * "[[...path]]") into a typed discriminated union. NO regex, NO Node.js-only
7
+ * APIs — safe to import from browser code (used by `Link` interpolation).
8
+ *
9
+ * `classifySegment(dirName)` is the build-time directory-name classifier
10
+ * used by the scanner. It recognizes timber-only conventions (private
11
+ * `_*`, parallel `@*`, route groups `(name)`, intercepting routes
12
+ * `(.)`/`(..)`/`(...)`/`(..)(..)`) and delegates bracket syntax to
13
+ * `classifyUrlSegment`. It is the **single source of truth** for what
14
+ * counts as a routing segment — there is no separate copy in the
15
+ * scanner. (TIM-848.)
16
+ *
17
+ * Malformed input falls through to `{ kind: 'static' }` — the safe default.
18
+ *
19
+ * If you change the bracket syntax, update ONLY this file. Every
20
+ * consumer imports from here.
21
+ *
22
+ * See design/07-routing.md §"Route Segments"
23
+ */
24
+ import type { InterceptionMarker, SegmentType } from './types.js';
25
+ export type UrlSegment = {
26
+ kind: 'static';
27
+ value: string;
28
+ } | {
29
+ kind: 'dynamic';
30
+ name: string;
31
+ } | {
32
+ kind: 'catch-all';
33
+ name: string;
34
+ } | {
35
+ kind: 'optional-catch-all';
36
+ name: string;
37
+ };
38
+ /**
39
+ * Classify a URL path segment token.
40
+ *
41
+ * Walks the string left-to-right in one pass:
42
+ * 1. If it doesn't start with '[', it's static.
43
+ * 2. Count opening brackets (1 or 2) to detect optional.
44
+ * 3. Check for '...' to detect catch-all.
45
+ * 4. Read the param name up to the closing bracket.
46
+ * 5. Validate the expected closing sequence (']' or ']]').
47
+ * 6. Reject if there are leftover characters after the close.
48
+ *
49
+ * Any structural violation → static (safe default).
50
+ */
51
+ export declare function classifyUrlSegment(token: string): UrlSegment;
52
+ /** Result of classifying a filesystem directory name. */
53
+ export interface SegmentClassification {
54
+ type: SegmentType;
55
+ paramName?: string;
56
+ interceptionMarker?: InterceptionMarker;
57
+ interceptedSegmentName?: string;
58
+ }
59
+ /**
60
+ * Classify a directory name into its segment type.
61
+ *
62
+ * Recognizes all timber file-system conventions in priority order:
63
+ * 1. Private folders: `_name` (excluded from routing)
64
+ * 2. Parallel route slots: `@name`
65
+ * 3. Intercepting routes: `(.)name`, `(..)name`, `(...)name`, `(..)(..)name`
66
+ * 4. Route groups: `(name)`
67
+ * 5. Bracket syntax: `[id]`, `[...slug]`, `[[...path]]` (delegated to
68
+ * `classifyUrlSegment`)
69
+ * 6. Static: anything else
70
+ *
71
+ * If you change the bracket syntax, update only `classifyUrlSegment`.
72
+ * If you change the directory-prefix conventions, update this function.
73
+ */
74
+ export declare function classifySegment(dirName: string): SegmentClassification;
75
+ //# sourceMappingURL=segment-classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-classify.d.ts","sourceRoot":"","sources":["../../src/routing/segment-classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGlE,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAkD5D;AAID,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAkCtE"}
@@ -3,6 +3,23 @@
3
3
  *
4
4
  * The route tree is built by scanning the app/ directory and recognizing
5
5
  * file conventions (page.*, layout.*, middleware.ts, access.ts, route.ts, etc.).
6
+ *
7
+ * **Single shape, two specializations** (TIM-848):
8
+ *
9
+ * `SegmentNode<TFile>` is the one canonical in-memory shape for the
10
+ * timber route tree. The same interface is used at build time (with
11
+ * `TFile = RouteFile`) and at request time (with `TFile = ManifestFile`,
12
+ * see `server/route-matcher.ts`). Walkers parameterized over `TFile`
13
+ * work on either, eliminating the previous duplication between
14
+ * `SegmentNode` (Map-based) and `ManifestSegmentNode` (object-based).
15
+ *
16
+ * Keyed groups (`slots`, `statusFiles`, `jsonStatusFiles`,
17
+ * `legacyStatusFiles`, `metadataRoutes`) are plain `Record<string, …>`
18
+ * objects rather than `Map`s so that the build-time tree can be
19
+ * serialized into the virtual route manifest with no shape transform.
20
+ *
21
+ * See design/07-routing.md §"Route Tree Shape" and design/18-build-system.md
22
+ * §"Route Manifest Shape".
6
23
  */
7
24
  /** Segment type classification */
8
25
  export type SegmentType = 'static' | 'dynamic' | 'catch-all' | 'optional-catch-all' | 'group' | 'slot' | 'intercepting' | 'private';
@@ -15,15 +32,31 @@ export type SegmentType = 'static' | 'dynamic' | 'catch-all' | 'optional-catch-a
15
32
  export type InterceptionMarker = '(.)' | '(..)' | '(...)' | '(..)(..)';
16
33
  /** All recognized interception markers, ordered longest-first for parsing. */
17
34
  export declare const INTERCEPTION_MARKERS: InterceptionMarker[];
18
- /** A single file discovered in a route segment */
35
+ /**
36
+ * A single file discovered in a route segment at build time.
37
+ *
38
+ * The runtime equivalent (`ManifestFile`, defined in
39
+ * `server/route-matcher.ts`) replaces `extension` with a lazy `load`
40
+ * function. Walkers that only need `filePath` are parameterized over
41
+ * `TFile` and accept either.
42
+ */
19
43
  export interface RouteFile {
20
44
  /** Absolute path to the file */
21
45
  filePath: string;
22
46
  /** File extension without leading dot (e.g. "tsx", "ts", "mdx") */
23
47
  extension: string;
24
48
  }
25
- /** A node in the segment tree */
26
- export interface SegmentNode {
49
+ /**
50
+ * A node in the segment tree.
51
+ *
52
+ * Generic over `TFile` so the same interface describes both the
53
+ * build-time tree (`SegmentNode<RouteFile>`, the default) and the
54
+ * runtime manifest tree (`SegmentNode<ManifestFile>`, aliased as
55
+ * `ManifestSegmentNode`). All keyed groups use `Record` (not `Map`)
56
+ * so the build-time tree serializes to the virtual route manifest
57
+ * with no shape transform.
58
+ */
59
+ export interface SegmentNode<TFile = RouteFile> {
27
60
  /** The raw directory name (e.g. "dashboard", "[id]", "(auth)", "@sidebar") */
28
61
  segmentName: string;
29
62
  /** Classified segment type */
@@ -39,37 +72,56 @@ export interface SegmentNode {
39
72
  * E.g., for "(.)photo" this is "photo".
40
73
  */
41
74
  interceptedSegmentName?: string;
42
- page?: RouteFile;
43
- layout?: RouteFile;
44
- middleware?: RouteFile;
45
- access?: RouteFile;
46
- route?: RouteFile;
47
- error?: RouteFile;
48
- default?: RouteFile;
75
+ page?: TFile;
76
+ layout?: TFile;
77
+ middleware?: TFile;
78
+ access?: TFile;
79
+ route?: TFile;
80
+ /**
81
+ * params.ts — isomorphic convention file exporting segmentParams and/or searchParams.
82
+ * Discovered by the scanner like middleware.ts and access.ts.
83
+ * See design/07-routing.md §"params.ts Convention File"
84
+ */
85
+ params?: TFile;
86
+ error?: TFile;
87
+ default?: TFile;
49
88
  /** Status-code files: 4xx.tsx, 5xx.tsx, {status}.tsx (component format) */
50
- statusFiles?: Map<string, RouteFile>;
89
+ statusFiles?: Record<string, TFile>;
51
90
  /** JSON status-code files: 4xx.json, 5xx.json, {status}.json */
52
- jsonStatusFiles?: Map<string, RouteFile>;
91
+ jsonStatusFiles?: Record<string, TFile>;
53
92
  /** denied.tsx — slot-only denial rendering */
54
- denied?: RouteFile;
93
+ denied?: TFile;
55
94
  /** Legacy compat: not-found.tsx (maps to 404), forbidden.tsx (403), unauthorized.tsx (401) */
56
- legacyStatusFiles?: Map<string, RouteFile>;
57
- /** prerender.ts — signals build-time pre-rendering for this segment's shell */
58
- prerender?: RouteFile;
59
- /** search-params.ts — typed search params definition for this route */
60
- searchParams?: RouteFile;
95
+ legacyStatusFiles?: Record<string, TFile>;
61
96
  /** Metadata route files (sitemap.ts, robots.ts, icon.tsx, etc.) keyed by base name */
62
- metadataRoutes?: Map<string, RouteFile>;
63
- children: SegmentNode[];
97
+ metadataRoutes?: Record<string, TFile>;
98
+ children: SegmentNode<TFile>[];
64
99
  /** Parallel route slots (keyed by slot name without @) */
65
- slots: Map<string, SegmentNode>;
100
+ slots: Record<string, SegmentNode<TFile>>;
66
101
  }
67
- /** The full route tree output from the scanner */
68
- export interface RouteTree {
102
+ /**
103
+ * The full route tree output from the scanner (or the root of the
104
+ * runtime route manifest, when `TFile = ManifestFile`).
105
+ *
106
+ * Generic so the same wrapper carries app-root metadata for both
107
+ * shapes. The runtime manifest extends this with `viteRoot` (see
108
+ * `ManifestRoot` in `server/route-matcher.ts`).
109
+ */
110
+ export interface RouteTree<TFile = RouteFile> {
69
111
  /** The root segment node (representing app/) */
70
- root: SegmentNode;
112
+ root: SegmentNode<TFile>;
71
113
  /** All discovered proxy.ts files (should be at most one, in app/) */
72
- proxy?: RouteFile;
114
+ proxy?: TFile;
115
+ /**
116
+ * Global error page: app/global-error.{tsx,ts,jsx,js}
117
+ *
118
+ * Rendered as a standalone full-page replacement (no layout wrapping)
119
+ * when no segment-level error file is found. SSR-only render path.
120
+ * Must provide its own <html> and <body>.
121
+ *
122
+ * See design/10-error-handling.md §"Tier 2 — Global Error Page"
123
+ */
124
+ globalError?: TFile;
73
125
  }
74
126
  /** Configuration passed to the scanner */
75
127
  export interface ScannerConfig {