@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
@@ -1,187 +0,0 @@
1
- import { o as traceAls } from "./als-registry-B7DbZ2hS.js";
2
- import { randomUUID } from "node:crypto";
3
- //#region src/server/tracing.ts
4
- /**
5
- * Tracing — per-request trace ID via AsyncLocalStorage, OTEL span helpers.
6
- *
7
- * traceId() is always available in server code (middleware, access, components, actions).
8
- * Returns a 32-char lowercase hex string — the OTEL trace ID when an SDK is active,
9
- * or a crypto.randomUUID()-derived fallback otherwise.
10
- *
11
- * See design/17-logging.md §"trace_id is Always Set"
12
- */
13
- /**
14
- * Returns the current request's trace ID — always a 32-char lowercase hex string.
15
- *
16
- * With OTEL: the real OTEL trace ID (matches Jaeger/Honeycomb/Datadog).
17
- * Without OTEL: crypto.randomUUID() with hyphens stripped.
18
- *
19
- * Throws if called outside a request context (no ALS store).
20
- */
21
- function traceId() {
22
- const store = traceAls.getStore();
23
- if (!store) throw new Error("[timber] traceId() called outside of a request context. It can only be used in middleware, access checks, server components, and server actions.");
24
- return store.traceId;
25
- }
26
- /**
27
- * Returns the current OTEL span ID if available, undefined otherwise.
28
- */
29
- function spanId() {
30
- return traceAls.getStore()?.spanId;
31
- }
32
- /**
33
- * Generate a 32-char lowercase hex ID from crypto.randomUUID().
34
- * Same format as OTEL trace IDs — zero-friction upgrade path.
35
- */
36
- function generateTraceId() {
37
- return randomUUID().replace(/-/g, "");
38
- }
39
- /**
40
- * Run a callback within a trace context. Used by the pipeline to establish
41
- * per-request ALS scope.
42
- */
43
- function runWithTraceId(id, fn) {
44
- return traceAls.run({ traceId: id }, fn);
45
- }
46
- /**
47
- * Replace the trace ID in the current ALS store. Used when OTEL creates
48
- * a root span and we want to switch from the UUID fallback to the real
49
- * OTEL trace ID.
50
- */
51
- function replaceTraceId(newTraceId, newSpanId) {
52
- const store = traceAls.getStore();
53
- if (store) {
54
- store.traceId = newTraceId;
55
- store.spanId = newSpanId;
56
- }
57
- }
58
- /**
59
- * Update the span ID in the current ALS store. Used when entering a new
60
- * OTEL span to keep log–trace correlation accurate.
61
- */
62
- function updateSpanId(newSpanId) {
63
- const store = traceAls.getStore();
64
- if (store) store.spanId = newSpanId;
65
- }
66
- /**
67
- * Get the current trace store, or undefined if outside a request context.
68
- * Framework-internal — use traceId()/spanId() in user code.
69
- */
70
- function getTraceStore() {
71
- return traceAls.getStore();
72
- }
73
- /**
74
- * Attempt to get the @opentelemetry/api tracer. Returns undefined if the
75
- * package is not installed or no SDK is registered.
76
- *
77
- * timber.js depends on @opentelemetry/api as the vendor-neutral interface.
78
- * The API is a no-op by default — spans are only emitted when the developer
79
- * initializes an SDK in register().
80
- */
81
- var _otelApi;
82
- async function getOtelApi() {
83
- if (_otelApi === void 0) try {
84
- _otelApi = await import("@opentelemetry/api");
85
- } catch {
86
- _otelApi = null;
87
- }
88
- return _otelApi;
89
- }
90
- /** OTEL tracer instance, lazily created. */
91
- var _tracer;
92
- /**
93
- * Get the timber.js OTEL tracer. Returns null if @opentelemetry/api is not available.
94
- */
95
- async function getTracer() {
96
- if (_tracer === void 0) {
97
- const api = await getOtelApi();
98
- if (api) _tracer = api.trace.getTracer("timber.js");
99
- else _tracer = null;
100
- }
101
- return _tracer;
102
- }
103
- /**
104
- * Run a function within an OTEL span. If OTEL is not available, runs the function
105
- * directly without any span overhead.
106
- *
107
- * Automatically:
108
- * - Creates the span as a child of the current context
109
- * - Updates the ALS span ID for log–trace correlation
110
- * - Ends the span when the function completes
111
- * - Records exceptions on error
112
- */
113
- async function withSpan(name, attributes, fn) {
114
- const tracer = await getTracer();
115
- if (!tracer) return fn();
116
- const api = await getOtelApi();
117
- return tracer.startActiveSpan(name, { attributes }, async (span) => {
118
- const prevSpanId = spanId();
119
- updateSpanId(span.spanContext().spanId);
120
- try {
121
- const result = await fn();
122
- span.setStatus({ code: api.SpanStatusCode.OK });
123
- return result;
124
- } catch (error) {
125
- span.setStatus({ code: api.SpanStatusCode.ERROR });
126
- if (error instanceof Error) span.recordException(error);
127
- throw error;
128
- } finally {
129
- span.end();
130
- updateSpanId(prevSpanId);
131
- }
132
- });
133
- }
134
- /**
135
- * Set an attribute on the current active span (if any).
136
- * Used for setting span attributes after span creation (e.g. timber.result on access spans).
137
- */
138
- async function setSpanAttribute(key, value) {
139
- const api = await getOtelApi();
140
- if (!api) return;
141
- const activeSpan = api.trace.getActiveSpan();
142
- if (activeSpan) activeSpan.setAttribute(key, value);
143
- }
144
- /**
145
- * Add a span event to the current active span (if any).
146
- * Used for timber.cache HIT/MISS events — recorded as span events, not child spans.
147
- */
148
- async function addSpanEvent(name, attributes) {
149
- const api = await getOtelApi();
150
- if (!api) return;
151
- const activeSpan = api.trace.getActiveSpan();
152
- if (activeSpan) activeSpan.addEvent(name, attributes);
153
- }
154
- /**
155
- * Fire-and-forget span event — no await, no microtask overhead.
156
- *
157
- * Used on the cache hot path where awaiting addSpanEvent creates an
158
- * unnecessary microtask per cache operation. If OTEL is not loaded yet,
159
- * the event is silently dropped (acceptable for diagnostics).
160
- *
161
- * See TIM-370 for perf motivation.
162
- */
163
- function addSpanEventSync(name, attributes) {
164
- if (!_otelApi) return;
165
- const activeSpan = _otelApi.trace.getActiveSpan();
166
- if (activeSpan) activeSpan.addEvent(name, attributes);
167
- }
168
- /**
169
- * Try to extract the OTEL trace ID from the current active span context.
170
- * Returns undefined if OTEL is not active or no span exists.
171
- */
172
- async function getOtelTraceId() {
173
- const api = await getOtelApi();
174
- if (!api) return void 0;
175
- const activeSpan = api.trace.getActiveSpan();
176
- if (!activeSpan) return void 0;
177
- const ctx = activeSpan.spanContext();
178
- if (!ctx.traceId || ctx.traceId === "00000000000000000000000000000000") return;
179
- return {
180
- traceId: ctx.traceId,
181
- spanId: ctx.spanId
182
- };
183
- }
184
- //#endregion
185
- export { getTraceStore as a, setSpanAttribute as c, withSpan as d, getOtelTraceId as i, spanId as l, addSpanEventSync as n, replaceTraceId as o, generateTraceId as r, runWithTraceId as s, addSpanEvent as t, traceId as u };
186
-
187
- //# sourceMappingURL=tracing-CemImE6h.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracing-CemImE6h.js","names":[],"sources":["../../src/server/tracing.ts"],"sourcesContent":["/**\n * Tracing — per-request trace ID via AsyncLocalStorage, OTEL span helpers.\n *\n * traceId() is always available in server code (middleware, access, components, actions).\n * Returns a 32-char lowercase hex string — the OTEL trace ID when an SDK is active,\n * or a crypto.randomUUID()-derived fallback otherwise.\n *\n * See design/17-logging.md §\"trace_id is Always Set\"\n */\n\nimport { randomUUID } from 'node:crypto';\nimport { traceAls, type TraceStore } from './als-registry.js';\n\n// Re-export the TraceStore type for public API consumers.\nexport type { TraceStore } from './als-registry.js';\n\n// ─── Public API ───────────────────────────────────────────────────────────\n\n/**\n * Returns the current request's trace ID — always a 32-char lowercase hex string.\n *\n * With OTEL: the real OTEL trace ID (matches Jaeger/Honeycomb/Datadog).\n * Without OTEL: crypto.randomUUID() with hyphens stripped.\n *\n * Throws if called outside a request context (no ALS store).\n */\nexport function traceId(): string {\n const store = traceAls.getStore();\n if (!store) {\n throw new Error(\n '[timber] traceId() called outside of a request context. ' +\n 'It can only be used in middleware, access checks, server components, and server actions.'\n );\n }\n return store.traceId;\n}\n\n/**\n * Returns the current OTEL span ID if available, undefined otherwise.\n */\nexport function spanId(): string | undefined {\n return traceAls.getStore()?.spanId;\n}\n\n// ─── Framework-Internal Helpers ───────────────────────────────────────────\n\n/**\n * Generate a 32-char lowercase hex ID from crypto.randomUUID().\n * Same format as OTEL trace IDs — zero-friction upgrade path.\n */\nexport function generateTraceId(): string {\n return randomUUID().replace(/-/g, '');\n}\n\n/**\n * Run a callback within a trace context. Used by the pipeline to establish\n * per-request ALS scope.\n */\nexport function runWithTraceId<T>(id: string, fn: () => T): T {\n return traceAls.run({ traceId: id }, fn);\n}\n\n/**\n * Replace the trace ID in the current ALS store. Used when OTEL creates\n * a root span and we want to switch from the UUID fallback to the real\n * OTEL trace ID.\n */\nexport function replaceTraceId(newTraceId: string, newSpanId?: string): void {\n const store = traceAls.getStore();\n if (store) {\n store.traceId = newTraceId;\n store.spanId = newSpanId;\n }\n}\n\n/**\n * Update the span ID in the current ALS store. Used when entering a new\n * OTEL span to keep log–trace correlation accurate.\n */\nexport function updateSpanId(newSpanId: string | undefined): void {\n const store = traceAls.getStore();\n if (store) {\n store.spanId = newSpanId;\n }\n}\n\n/**\n * Get the current trace store, or undefined if outside a request context.\n * Framework-internal — use traceId()/spanId() in user code.\n */\nexport function getTraceStore(): TraceStore | undefined {\n return traceAls.getStore();\n}\n\n// ─── Dev-Mode OTEL Auto-Init ─────────────────────────────────────────────\n\n/**\n * Initialize a minimal OTEL SDK in dev mode so spans are recorded and\n * fed to the DevSpanProcessor for dev log output.\n *\n * If the user already configured an OTEL SDK in register(), we add\n * our DevSpanProcessor alongside theirs. If no SDK is configured,\n * we create a BasicTracerProvider with our processor.\n *\n * Only called in dev mode — zero overhead in production.\n */\nexport async function initDevTracing(\n config: import('./dev-logger.js').DevLoggerConfig\n): Promise<void> {\n const api = await getOtelApi();\n if (!api) return;\n\n const { DevSpanProcessor } = await import('./dev-span-processor.js');\n const { BasicTracerProvider } = await import('@opentelemetry/sdk-trace-base');\n const { AsyncLocalStorageContextManager } = await import('@opentelemetry/context-async-hooks');\n const processor = new DevSpanProcessor(config);\n\n // Register a context manager so OTEL can propagate the active span\n // across async boundaries. Without this, startActiveSpan can't make\n // spans \"active\" — child spans get random trace IDs and getActiveSpan()\n // returns undefined.\n const contextManager = new AsyncLocalStorageContextManager();\n contextManager.enable();\n api.context.setGlobalContextManager(contextManager);\n\n // Create a minimal TracerProvider with our DevSpanProcessor.\n // If the user also configures an SDK in register(), their provider\n // will coexist — the global provider set last wins for new tracers,\n // but our processor captures all spans from the timber.js tracer.\n const provider = new BasicTracerProvider({\n spanProcessors: [processor],\n });\n api.trace.setGlobalTracerProvider(provider);\n\n // Reset cached tracer so next getTracer() picks up the new provider\n _tracer = undefined;\n}\n\n// ─── OTEL Span Helpers ───────────────────────────────────────────────────\n\n/**\n * Attempt to get the @opentelemetry/api tracer. Returns undefined if the\n * package is not installed or no SDK is registered.\n *\n * timber.js depends on @opentelemetry/api as the vendor-neutral interface.\n * The API is a no-op by default — spans are only emitted when the developer\n * initializes an SDK in register().\n */\nlet _otelApi: typeof import('@opentelemetry/api') | null | undefined;\n\nasync function getOtelApi(): Promise<typeof import('@opentelemetry/api') | null> {\n if (_otelApi === undefined) {\n try {\n _otelApi = await import('@opentelemetry/api');\n } catch {\n _otelApi = null;\n }\n }\n return _otelApi;\n}\n\n/** OTEL tracer instance, lazily created. */\nlet _tracer: import('@opentelemetry/api').Tracer | null | undefined;\n\n/**\n * Get the timber.js OTEL tracer. Returns null if @opentelemetry/api is not available.\n */\nexport async function getTracer(): Promise<import('@opentelemetry/api').Tracer | null> {\n if (_tracer === undefined) {\n const api = await getOtelApi();\n if (api) {\n _tracer = api.trace.getTracer('timber.js');\n } else {\n _tracer = null;\n }\n }\n return _tracer;\n}\n\n/**\n * Run a function within an OTEL span. If OTEL is not available, runs the function\n * directly without any span overhead.\n *\n * Automatically:\n * - Creates the span as a child of the current context\n * - Updates the ALS span ID for log–trace correlation\n * - Ends the span when the function completes\n * - Records exceptions on error\n */\nexport async function withSpan<T>(\n name: string,\n attributes: Record<string, string | number | boolean>,\n fn: () => T | Promise<T>\n): Promise<T> {\n const tracer = await getTracer();\n if (!tracer) {\n return fn();\n }\n\n const api = (await getOtelApi())!;\n return tracer.startActiveSpan(name, { attributes }, async (span) => {\n const prevSpanId = spanId();\n updateSpanId(span.spanContext().spanId);\n try {\n const result = await fn();\n span.setStatus({ code: api.SpanStatusCode.OK });\n return result;\n } catch (error) {\n span.setStatus({ code: api.SpanStatusCode.ERROR });\n if (error instanceof Error) {\n span.recordException(error);\n }\n throw error;\n } finally {\n span.end();\n updateSpanId(prevSpanId);\n }\n });\n}\n\n/**\n * Set an attribute on the current active span (if any).\n * Used for setting span attributes after span creation (e.g. timber.result on access spans).\n */\nexport async function setSpanAttribute(\n key: string,\n value: string | number | boolean\n): Promise<void> {\n const api = await getOtelApi();\n if (!api) return;\n\n const activeSpan = api.trace.getActiveSpan();\n if (activeSpan) {\n activeSpan.setAttribute(key, value);\n }\n}\n\n/**\n * Add a span event to the current active span (if any).\n * Used for timber.cache HIT/MISS events — recorded as span events, not child spans.\n */\nexport async function addSpanEvent(\n name: string,\n attributes?: Record<string, string | number | boolean>\n): Promise<void> {\n const api = await getOtelApi();\n if (!api) return;\n\n const activeSpan = api.trace.getActiveSpan();\n if (activeSpan) {\n activeSpan.addEvent(name, attributes);\n }\n}\n\n/**\n * Fire-and-forget span event — no await, no microtask overhead.\n *\n * Used on the cache hot path where awaiting addSpanEvent creates an\n * unnecessary microtask per cache operation. If OTEL is not loaded yet,\n * the event is silently dropped (acceptable for diagnostics).\n *\n * See TIM-370 for perf motivation.\n */\nexport function addSpanEventSync(\n name: string,\n attributes?: Record<string, string | number | boolean>\n): void {\n // Fast path: if OTEL API hasn't been loaded yet, skip entirely.\n // _otelApi is undefined (not yet loaded), null (failed to load), or the module.\n if (!_otelApi) return;\n\n const activeSpan = _otelApi.trace.getActiveSpan();\n if (activeSpan) {\n activeSpan.addEvent(name, attributes);\n }\n}\n\n/**\n * Try to extract the OTEL trace ID from the current active span context.\n * Returns undefined if OTEL is not active or no span exists.\n */\nexport async function getOtelTraceId(): Promise<{ traceId: string; spanId: string } | undefined> {\n const api = await getOtelApi();\n if (!api) return undefined;\n\n const activeSpan = api.trace.getActiveSpan();\n if (!activeSpan) return undefined;\n\n const ctx = activeSpan.spanContext();\n // OTEL uses \"0000000000000000\" as invalid trace IDs\n if (!ctx.traceId || ctx.traceId === '00000000000000000000000000000000') {\n return undefined;\n }\n\n return { traceId: ctx.traceId, spanId: ctx.spanId };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA0BA,SAAgB,UAAkB;CAChC,MAAM,QAAQ,SAAS,UAAU;AACjC,KAAI,CAAC,MACH,OAAM,IAAI,MACR,mJAED;AAEH,QAAO,MAAM;;;;;AAMf,SAAgB,SAA6B;AAC3C,QAAO,SAAS,UAAU,EAAE;;;;;;AAS9B,SAAgB,kBAA0B;AACxC,QAAO,YAAY,CAAC,QAAQ,MAAM,GAAG;;;;;;AAOvC,SAAgB,eAAkB,IAAY,IAAgB;AAC5D,QAAO,SAAS,IAAI,EAAE,SAAS,IAAI,EAAE,GAAG;;;;;;;AAQ1C,SAAgB,eAAe,YAAoB,WAA0B;CAC3E,MAAM,QAAQ,SAAS,UAAU;AACjC,KAAI,OAAO;AACT,QAAM,UAAU;AAChB,QAAM,SAAS;;;;;;;AAQnB,SAAgB,aAAa,WAAqC;CAChE,MAAM,QAAQ,SAAS,UAAU;AACjC,KAAI,MACF,OAAM,SAAS;;;;;;AAQnB,SAAgB,gBAAwC;AACtD,QAAO,SAAS,UAAU;;;;;;;;;;AAyD5B,IAAI;AAEJ,eAAe,aAAkE;AAC/E,KAAI,aAAa,KAAA,EACf,KAAI;AACF,aAAW,MAAM,OAAO;SAClB;AACN,aAAW;;AAGf,QAAO;;;AAIT,IAAI;;;;AAKJ,eAAsB,YAAiE;AACrF,KAAI,YAAY,KAAA,GAAW;EACzB,MAAM,MAAM,MAAM,YAAY;AAC9B,MAAI,IACF,WAAU,IAAI,MAAM,UAAU,YAAY;MAE1C,WAAU;;AAGd,QAAO;;;;;;;;;;;;AAaT,eAAsB,SACpB,MACA,YACA,IACY;CACZ,MAAM,SAAS,MAAM,WAAW;AAChC,KAAI,CAAC,OACH,QAAO,IAAI;CAGb,MAAM,MAAO,MAAM,YAAY;AAC/B,QAAO,OAAO,gBAAgB,MAAM,EAAE,YAAY,EAAE,OAAO,SAAS;EAClE,MAAM,aAAa,QAAQ;AAC3B,eAAa,KAAK,aAAa,CAAC,OAAO;AACvC,MAAI;GACF,MAAM,SAAS,MAAM,IAAI;AACzB,QAAK,UAAU,EAAE,MAAM,IAAI,eAAe,IAAI,CAAC;AAC/C,UAAO;WACA,OAAO;AACd,QAAK,UAAU,EAAE,MAAM,IAAI,eAAe,OAAO,CAAC;AAClD,OAAI,iBAAiB,MACnB,MAAK,gBAAgB,MAAM;AAE7B,SAAM;YACE;AACR,QAAK,KAAK;AACV,gBAAa,WAAW;;GAE1B;;;;;;AAOJ,eAAsB,iBACpB,KACA,OACe;CACf,MAAM,MAAM,MAAM,YAAY;AAC9B,KAAI,CAAC,IAAK;CAEV,MAAM,aAAa,IAAI,MAAM,eAAe;AAC5C,KAAI,WACF,YAAW,aAAa,KAAK,MAAM;;;;;;AAQvC,eAAsB,aACpB,MACA,YACe;CACf,MAAM,MAAM,MAAM,YAAY;AAC9B,KAAI,CAAC,IAAK;CAEV,MAAM,aAAa,IAAI,MAAM,eAAe;AAC5C,KAAI,WACF,YAAW,SAAS,MAAM,WAAW;;;;;;;;;;;AAazC,SAAgB,iBACd,MACA,YACM;AAGN,KAAI,CAAC,SAAU;CAEf,MAAM,aAAa,SAAS,MAAM,eAAe;AACjD,KAAI,WACF,YAAW,SAAS,MAAM,WAAW;;;;;;AAQzC,eAAsB,iBAA2E;CAC/F,MAAM,MAAM,MAAM,YAAY;AAC9B,KAAI,CAAC,IAAK,QAAO,KAAA;CAEjB,MAAM,aAAa,IAAI,MAAM,eAAe;AAC5C,KAAI,CAAC,WAAY,QAAO,KAAA;CAExB,MAAM,MAAM,WAAW,aAAa;AAEpC,KAAI,CAAC,IAAI,WAAW,IAAI,YAAY,mCAClC;AAGF,QAAO;EAAE,SAAS,IAAI;EAAS,QAAQ,IAAI;EAAQ"}
@@ -1,91 +0,0 @@
1
- import { n as getSsrData } from "./ssr-data-MjmprTmO.js";
2
- import { useSyncExternalStore } from "react";
3
- //#region src/client/use-cookie.ts
4
- /**
5
- * useCookie — reactive client-side cookie hook.
6
- *
7
- * Uses useSyncExternalStore for SSR-safe, reactive cookie access.
8
- * All components reading the same cookie name re-render on change.
9
- * No cross-tab sync (intentional — see design/29-cookies.md).
10
- *
11
- * See design/29-cookies.md §"useCookie(name) Hook"
12
- */
13
- /** Per-name subscriber sets. */
14
- var listeners = /* @__PURE__ */ new Map();
15
- /** Parse a cookie name from document.cookie. */
16
- function getCookieValue(name) {
17
- if (typeof document === "undefined") return void 0;
18
- const match = document.cookie.match(new RegExp("(?:^|;\\s*)" + name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") + "\\s*=\\s*([^;]*)"));
19
- return match ? decodeURIComponent(match[1]) : void 0;
20
- }
21
- /** Serialize options into a cookie string suffix. */
22
- function serializeOptions(options) {
23
- if (!options) return "; Path=/; SameSite=Lax";
24
- const parts = [];
25
- parts.push(`Path=${options.path ?? "/"}`);
26
- if (options.domain) parts.push(`Domain=${options.domain}`);
27
- if (options.maxAge !== void 0) parts.push(`Max-Age=${options.maxAge}`);
28
- if (options.expires) parts.push(`Expires=${options.expires.toUTCString()}`);
29
- const sameSite = options.sameSite ?? "lax";
30
- parts.push(`SameSite=${sameSite.charAt(0).toUpperCase()}${sameSite.slice(1)}`);
31
- if (options.secure) parts.push("Secure");
32
- return "; " + parts.join("; ");
33
- }
34
- /** Notify all subscribers for a given cookie name. */
35
- function notify(name) {
36
- const subs = listeners.get(name);
37
- if (subs) for (const fn of subs) fn();
38
- }
39
- /**
40
- * Reactive hook for reading/writing a client-side cookie.
41
- *
42
- * Returns `[value, setCookie, deleteCookie]`:
43
- * - `value`: current cookie value (string | undefined)
44
- * - `setCookie`: sets the cookie and triggers re-renders
45
- * - `deleteCookie`: deletes the cookie and triggers re-renders
46
- *
47
- * @param name - Cookie name.
48
- * @param defaultOptions - Default options for setCookie calls.
49
- */
50
- function useCookie(name, defaultOptions) {
51
- const subscribe = (callback) => {
52
- let subs = listeners.get(name);
53
- if (!subs) {
54
- subs = /* @__PURE__ */ new Set();
55
- listeners.set(name, subs);
56
- }
57
- subs.add(callback);
58
- return () => {
59
- subs.delete(callback);
60
- if (subs.size === 0) listeners.delete(name);
61
- };
62
- };
63
- const getSnapshot = () => getCookieValue(name);
64
- const getServerSnapshot = () => getSsrData()?.cookies.get(name);
65
- const value = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
66
- const setCookie = (newValue, options) => {
67
- const merged = {
68
- ...defaultOptions,
69
- ...options
70
- };
71
- document.cookie = `${name}=${encodeURIComponent(newValue)}${serializeOptions(merged)}`;
72
- notify(name);
73
- };
74
- const deleteCookie = () => {
75
- const path = defaultOptions?.path ?? "/";
76
- const domain = defaultOptions?.domain;
77
- let cookieStr = `${name}=; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=${path}`;
78
- if (domain) cookieStr += `; Domain=${domain}`;
79
- document.cookie = cookieStr;
80
- notify(name);
81
- };
82
- return [
83
- value,
84
- setCookie,
85
- deleteCookie
86
- ];
87
- }
88
- //#endregion
89
- export { useCookie as t };
90
-
91
- //# sourceMappingURL=use-cookie-DX-l1_5E.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-cookie-DX-l1_5E.js","names":[],"sources":["../../src/client/use-cookie.ts"],"sourcesContent":["/**\n * useCookie — reactive client-side cookie hook.\n *\n * Uses useSyncExternalStore for SSR-safe, reactive cookie access.\n * All components reading the same cookie name re-render on change.\n * No cross-tab sync (intentional — see design/29-cookies.md).\n *\n * See design/29-cookies.md §\"useCookie(name) Hook\"\n */\n\nimport { useSyncExternalStore } from 'react';\nimport { getSsrData } from './ssr-data.js';\n\n// ─── Types ────────────────────────────────────────────────────────────────\n\nexport interface ClientCookieOptions {\n /** URL path scope. Default: '/'. */\n path?: string;\n /** Domain scope. Default: omitted (current domain). */\n domain?: string;\n /** Max age in seconds. */\n maxAge?: number;\n /** Expiration date. */\n expires?: Date;\n /** Cross-site policy. Default: 'lax'. */\n sameSite?: 'strict' | 'lax' | 'none';\n /** Only send over HTTPS. Default: true in production. */\n secure?: boolean;\n}\n\nexport type CookieSetter = (value: string, options?: ClientCookieOptions) => void;\n\n// ─── Module-Level Cookie Store ────────────────────────────────────────────\n\ntype Listener = () => void;\n\n/** Per-name subscriber sets. */\nconst listeners = new Map<string, Set<Listener>>();\n\n/** Parse a cookie name from document.cookie. */\nfunction getCookieValue(name: string): string | undefined {\n if (typeof document === 'undefined') return undefined;\n const match = document.cookie.match(\n new RegExp('(?:^|;\\\\s*)' + name.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') + '\\\\s*=\\\\s*([^;]*)')\n );\n return match ? decodeURIComponent(match[1]) : undefined;\n}\n\n/** Serialize options into a cookie string suffix. */\nfunction serializeOptions(options?: ClientCookieOptions): string {\n if (!options) return '; Path=/; SameSite=Lax';\n const parts: string[] = [];\n parts.push(`Path=${options.path ?? '/'}`);\n if (options.domain) parts.push(`Domain=${options.domain}`);\n if (options.maxAge !== undefined) parts.push(`Max-Age=${options.maxAge}`);\n if (options.expires) parts.push(`Expires=${options.expires.toUTCString()}`);\n const sameSite = options.sameSite ?? 'lax';\n parts.push(`SameSite=${sameSite.charAt(0).toUpperCase()}${sameSite.slice(1)}`);\n if (options.secure) parts.push('Secure');\n return '; ' + parts.join('; ');\n}\n\n/** Notify all subscribers for a given cookie name. */\nfunction notify(name: string): void {\n const subs = listeners.get(name);\n if (subs) {\n for (const fn of subs) fn();\n }\n}\n\n// ─── Hook ─────────────────────────────────────────────────────────────────\n\n/**\n * Reactive hook for reading/writing a client-side cookie.\n *\n * Returns `[value, setCookie, deleteCookie]`:\n * - `value`: current cookie value (string | undefined)\n * - `setCookie`: sets the cookie and triggers re-renders\n * - `deleteCookie`: deletes the cookie and triggers re-renders\n *\n * @param name - Cookie name.\n * @param defaultOptions - Default options for setCookie calls.\n */\nexport function useCookie(\n name: string,\n defaultOptions?: ClientCookieOptions\n): [value: string | undefined, setCookie: CookieSetter, deleteCookie: () => void] {\n const subscribe = (callback: Listener): (() => void) => {\n let subs = listeners.get(name);\n if (!subs) {\n subs = new Set();\n listeners.set(name, subs);\n }\n subs.add(callback);\n return () => {\n subs!.delete(callback);\n if (subs!.size === 0) listeners.delete(name);\n };\n };\n\n const getSnapshot = (): string | undefined => getCookieValue(name);\n const getServerSnapshot = (): string | undefined => getSsrData()?.cookies.get(name);\n\n const value = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n const setCookie: CookieSetter = (newValue: string, options?: ClientCookieOptions) => {\n const merged = { ...defaultOptions, ...options };\n document.cookie = `${name}=${encodeURIComponent(newValue)}${serializeOptions(merged)}`;\n notify(name);\n };\n\n const deleteCookie = (): void => {\n const path = defaultOptions?.path ?? '/';\n const domain = defaultOptions?.domain;\n let cookieStr = `${name}=; Max-Age=0; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Path=${path}`;\n if (domain) cookieStr += `; Domain=${domain}`;\n document.cookie = cookieStr;\n notify(name);\n };\n\n return [value, setCookie, deleteCookie];\n}\n"],"mappings":";;;;;;;;;;;;;AAqCA,IAAM,4BAAY,IAAI,KAA4B;;AAGlD,SAAS,eAAe,MAAkC;AACxD,KAAI,OAAO,aAAa,YAAa,QAAO,KAAA;CAC5C,MAAM,QAAQ,SAAS,OAAO,MAC5B,IAAI,OAAO,gBAAgB,KAAK,QAAQ,uBAAuB,OAAO,GAAG,mBAAmB,CAC7F;AACD,QAAO,QAAQ,mBAAmB,MAAM,GAAG,GAAG,KAAA;;;AAIhD,SAAS,iBAAiB,SAAuC;AAC/D,KAAI,CAAC,QAAS,QAAO;CACrB,MAAM,QAAkB,EAAE;AAC1B,OAAM,KAAK,QAAQ,QAAQ,QAAQ,MAAM;AACzC,KAAI,QAAQ,OAAQ,OAAM,KAAK,UAAU,QAAQ,SAAS;AAC1D,KAAI,QAAQ,WAAW,KAAA,EAAW,OAAM,KAAK,WAAW,QAAQ,SAAS;AACzE,KAAI,QAAQ,QAAS,OAAM,KAAK,WAAW,QAAQ,QAAQ,aAAa,GAAG;CAC3E,MAAM,WAAW,QAAQ,YAAY;AACrC,OAAM,KAAK,YAAY,SAAS,OAAO,EAAE,CAAC,aAAa,GAAG,SAAS,MAAM,EAAE,GAAG;AAC9E,KAAI,QAAQ,OAAQ,OAAM,KAAK,SAAS;AACxC,QAAO,OAAO,MAAM,KAAK,KAAK;;;AAIhC,SAAS,OAAO,MAAoB;CAClC,MAAM,OAAO,UAAU,IAAI,KAAK;AAChC,KAAI,KACF,MAAK,MAAM,MAAM,KAAM,KAAI;;;;;;;;;;;;;AAiB/B,SAAgB,UACd,MACA,gBACgF;CAChF,MAAM,aAAa,aAAqC;EACtD,IAAI,OAAO,UAAU,IAAI,KAAK;AAC9B,MAAI,CAAC,MAAM;AACT,0BAAO,IAAI,KAAK;AAChB,aAAU,IAAI,MAAM,KAAK;;AAE3B,OAAK,IAAI,SAAS;AAClB,eAAa;AACX,QAAM,OAAO,SAAS;AACtB,OAAI,KAAM,SAAS,EAAG,WAAU,OAAO,KAAK;;;CAIhD,MAAM,oBAAwC,eAAe,KAAK;CAClE,MAAM,0BAA8C,YAAY,EAAE,QAAQ,IAAI,KAAK;CAEnF,MAAM,QAAQ,qBAAqB,WAAW,aAAa,kBAAkB;CAE7E,MAAM,aAA2B,UAAkB,YAAkC;EACnF,MAAM,SAAS;GAAE,GAAG;GAAgB,GAAG;GAAS;AAChD,WAAS,SAAS,GAAG,KAAK,GAAG,mBAAmB,SAAS,GAAG,iBAAiB,OAAO;AACpF,SAAO,KAAK;;CAGd,MAAM,qBAA2B;EAC/B,MAAM,OAAO,gBAAgB,QAAQ;EACrC,MAAM,SAAS,gBAAgB;EAC/B,IAAI,YAAY,GAAG,KAAK,4DAA4D;AACpF,MAAI,OAAQ,cAAa,YAAY;AACrC,WAAS,SAAS;AAClB,SAAO,KAAK;;AAGd,QAAO;EAAC;EAAO;EAAW;EAAa"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-query-states-D5KaffOK.js","names":[],"sources":["../../src/search-params/registry.ts","../../src/client/use-query-states.ts"],"sourcesContent":["/**\n * Runtime registry for route-scoped search params definitions.\n *\n * When a route's modules load, the framework registers its search-params\n * definition here. useQueryStates('/route') resolves codecs from this map.\n *\n * Design doc: design/23-search-params.md §\"Runtime: Registration at Route Load\"\n */\n\nimport type { SearchParamsDefinition } from './create.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst registry = new Map<string, SearchParamsDefinition<any>>();\n\n/**\n * Register a route's search params definition.\n * Called by the generated route manifest loader when a route's modules load.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function registerSearchParams(route: string, definition: SearchParamsDefinition<any>): void {\n registry.set(route, definition);\n}\n\n/**\n * Look up a route's search params definition.\n * Returns undefined if the route hasn't been loaded yet.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getSearchParams(route: string): SearchParamsDefinition<any> | undefined {\n return registry.get(route);\n}\n","/**\n * useQueryStates — client-side hook for URL-synced search params.\n *\n * Delegates to nuqs for URL synchronization, batching, React 19 transitions,\n * and throttled URL writes. Bridges timber's SearchParamCodec protocol to\n * nuqs-compatible parsers.\n *\n * Design doc: design/23-search-params.md §\"Codec Bridge\"\n */\n\n'use client';\n\nimport { useQueryStates as nuqsUseQueryStates } from 'nuqs';\nimport type { SingleParser } from 'nuqs';\nimport type {\n SearchParamCodec,\n SearchParamsDefinition,\n SetParams,\n QueryStatesOptions,\n} from '#/search-params/create.js';\nimport { getSearchParams } from '#/search-params/registry.js';\n\n// ─── Codec Bridge ─────────────────────────────────────────────────\n\n/**\n * Bridge a timber SearchParamCodec to a nuqs-compatible SingleParser.\n *\n * nuqs parsers: { parse(string) → T|null, serialize?(T) → string, eq?, defaultValue? }\n * timber codecs: { parse(string|string[]|undefined) → T, serialize(T) → string|null }\n */\nfunction bridgeCodec<T>(codec: SearchParamCodec<T>): SingleParser<T> & { defaultValue: T } {\n return {\n parse: (v: string) => codec.parse(v),\n serialize: (v: T) => codec.serialize(v) ?? '',\n defaultValue: codec.parse(undefined) as T,\n eq: (a: T, b: T) => codec.serialize(a) === codec.serialize(b),\n };\n}\n\n/**\n * Bridge an entire codec map to nuqs-compatible parsers.\n */\nfunction bridgeCodecs<T extends Record<string, unknown>>(codecs: {\n [K in keyof T]: SearchParamCodec<T[K]>;\n}) {\n const result: Record<string, SingleParser<unknown> & { defaultValue: unknown }> = {};\n for (const key of Object.keys(codecs)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key] = bridgeCodec(codecs[key as keyof T]) as any;\n }\n return result as { [K in keyof T]: SingleParser<T[K]> & { defaultValue: T[K] } };\n}\n\n// ─── Hook ─────────────────────────────────────────────────────────\n\n/**\n * Read and write typed search params from/to the URL.\n *\n * Delegates to nuqs internally. The timber nuqs adapter (auto-injected in\n * browser-entry.ts) handles RSC navigation on non-shallow updates.\n *\n * Usage:\n * ```ts\n * // Via a SearchParamsDefinition\n * const [params, setParams] = definition.useQueryStates()\n *\n * // Standalone with inline codecs\n * const [params, setParams] = useQueryStates({\n * page: fromSchema(z.coerce.number().int().min(1).default(1)),\n * })\n * ```\n */\nexport function useQueryStates<T extends Record<string, unknown>>(\n codecsOrRoute: { [K in keyof T]: SearchParamCodec<T[K]> } | string,\n _options?: QueryStatesOptions,\n urlKeys?: Readonly<Record<string, string>>\n): [T, SetParams<T>] {\n // Route-string overload: resolve codecs from the registry\n let codecs: { [K in keyof T]: SearchParamCodec<T[K]> };\n let resolvedUrlKeys = urlKeys;\n if (typeof codecsOrRoute === 'string') {\n const definition = getSearchParams(codecsOrRoute);\n if (!definition) {\n throw new Error(\n `useQueryStates('${codecsOrRoute}'): no search params registered for this route. ` +\n `Either the route has no search-params.ts file, or it hasn't been loaded yet. ` +\n `For cross-route usage, import the definition explicitly.`\n );\n }\n codecs = definition.codecs as { [K in keyof T]: SearchParamCodec<T[K]> };\n resolvedUrlKeys = definition.urlKeys;\n } else {\n codecs = codecsOrRoute;\n }\n\n const bridged = bridgeCodecs(codecs);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const nuqsOptions: any = {};\n if (resolvedUrlKeys && Object.keys(resolvedUrlKeys).length > 0) {\n nuqsOptions.urlKeys = resolvedUrlKeys;\n }\n\n let values: Record<string, unknown>;\n let setValues: Function;\n try {\n [values, setValues] = nuqsUseQueryStates(bridged, nuqsOptions);\n } catch (err) {\n if (\n err instanceof Error &&\n /Invalid hook call|cannot be called|Cannot read properties of null/i.test(err.message)\n ) {\n throw new Error(\n 'useQueryStates is a client component hook and cannot be called outside a React component. ' +\n 'Use definition.parse(searchParams) in server components instead.'\n );\n }\n throw err;\n }\n\n // Wrap the nuqs setter to match timber's SetParams<T> signature.\n // nuqs's setter accepts Partial<Nullable<Values>> | UpdaterFn | null.\n // timber's setter accepts Partial<T> with optional SetParamsOptions.\n const setParams: SetParams<T> = (partial, setOptions?) => {\n const nuqsSetOptions: Record<string, unknown> = {};\n if (setOptions?.shallow !== undefined) nuqsSetOptions.shallow = setOptions.shallow;\n if (setOptions?.scroll !== undefined) nuqsSetOptions.scroll = setOptions.scroll;\n if (setOptions?.history !== undefined) nuqsSetOptions.history = setOptions.history;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n void setValues(partial as any, nuqsSetOptions);\n };\n\n return [values as T, setParams];\n}\n\n// ─── Definition binding ───────────────────────────────────────────\n\n/**\n * Create a useQueryStates binding for a SearchParamsDefinition.\n * This is used internally by SearchParamsDefinition.useQueryStates().\n */\nexport function bindUseQueryStates<T extends Record<string, unknown>>(\n definition: SearchParamsDefinition<T>\n): (options?: QueryStatesOptions) => [T, SetParams<T>] {\n return (options?: QueryStatesOptions) => {\n return useQueryStates<T>(definition.codecs, options, definition.urlKeys);\n };\n}\n"],"mappings":";;AAYA,IAAM,2BAAW,IAAI,KAA0C;;;;;AAO/D,SAAgB,qBAAqB,OAAe,YAA+C;AACjG,UAAS,IAAI,OAAO,WAAW;;;;;;AAQjC,SAAgB,gBAAgB,OAAwD;AACtF,QAAO,SAAS,IAAI,MAAM;;;;;;;;;;;;;;;;;;;ACC5B,SAAS,YAAe,OAAmE;AACzF,QAAO;EACL,QAAQ,MAAc,MAAM,MAAM,EAAE;EACpC,YAAY,MAAS,MAAM,UAAU,EAAE,IAAI;EAC3C,cAAc,MAAM,MAAM,KAAA,EAAU;EACpC,KAAK,GAAM,MAAS,MAAM,UAAU,EAAE,KAAK,MAAM,UAAU,EAAE;EAC9D;;;;;AAMH,SAAS,aAAgD,QAEtD;CACD,MAAM,SAA4E,EAAE;AACpF,MAAK,MAAM,OAAO,OAAO,KAAK,OAAO,CAEnC,QAAO,OAAO,YAAY,OAAO,KAAgB;AAEnD,QAAO;;;;;;;;;;;;;;;;;;;AAsBT,SAAgB,iBACd,eACA,UACA,SACmB;CAEnB,IAAI;CACJ,IAAI,kBAAkB;AACtB,KAAI,OAAO,kBAAkB,UAAU;EACrC,MAAM,aAAa,gBAAgB,cAAc;AACjD,MAAI,CAAC,WACH,OAAM,IAAI,MACR,mBAAmB,cAAc,uLAGlC;AAEH,WAAS,WAAW;AACpB,oBAAkB,WAAW;OAE7B,UAAS;CAGX,MAAM,UAAU,aAAa,OAAO;CAGpC,MAAM,cAAmB,EAAE;AAC3B,KAAI,mBAAmB,OAAO,KAAK,gBAAgB,CAAC,SAAS,EAC3D,aAAY,UAAU;CAGxB,IAAI;CACJ,IAAI;AACJ,KAAI;AACF,GAAC,QAAQ,aAAa,eAAmB,SAAS,YAAY;UACvD,KAAK;AACZ,MACE,eAAe,SACf,qEAAqE,KAAK,IAAI,QAAQ,CAEtF,OAAM,IAAI,MACR,6JAED;AAEH,QAAM;;CAMR,MAAM,aAA2B,SAAS,eAAgB;EACxD,MAAM,iBAA0C,EAAE;AAClD,MAAI,YAAY,YAAY,KAAA,EAAW,gBAAe,UAAU,WAAW;AAC3E,MAAI,YAAY,WAAW,KAAA,EAAW,gBAAe,SAAS,WAAW;AACzE,MAAI,YAAY,YAAY,KAAA,EAAW,gBAAe,UAAU,WAAW;AAEtE,YAAU,SAAgB,eAAe;;AAGhD,QAAO,CAAC,QAAa,UAAU;;;;;;AASjC,SAAgB,mBACd,YACqD;AACrD,SAAQ,YAAiC;AACvC,SAAO,iBAAkB,WAAW,QAAQ,SAAS,WAAW,QAAQ"}
@@ -1,17 +0,0 @@
1
- import type { CacheHandler } from './index';
2
- export interface RegisterCachedFunctionOptions<Fn extends (...args: any[]) => any> {
3
- ttl: number;
4
- id: string;
5
- tags?: string[] | ((...args: Parameters<Fn>) => string[]);
6
- /** True when the cached function is a React component (PascalCase name). */
7
- isComponent?: boolean;
8
- }
9
- /**
10
- * Runtime for the "use cache" directive transform. Wraps an async function
11
- * with caching using the same cache handler as timber.cache.
12
- *
13
- * The stable `id` (file path + function name) ensures cache keys are consistent
14
- * across builds. Args/props are hashed with SHA-256 for the per-call key.
15
- */
16
- export declare function registerCachedFunction<Fn extends (...args: any[]) => Promise<any>>(fn: Fn, opts: RegisterCachedFunctionOptions<Fn>, handler: CacheHandler): (...args: Parameters<Fn>) => Promise<Awaited<ReturnType<Fn>>>;
17
- //# sourceMappingURL=register-cached-function.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"register-cached-function.d.ts","sourceRoot":"","sources":["../../src/cache/register-cached-function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAoB5C,MAAM,WAAW,6BAA6B,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IAC/E,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1D,4EAA4E;IAC5E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA4CD;;;;;;GAMG;AAEH,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,EAChF,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,6BAA6B,CAAC,EAAE,CAAC,EACvC,OAAO,EAAE,YAAY,GACpB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAoB/D"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Browser Entry — Client-side hydration and navigation bootstrap.
3
- *
4
- * This is a real TypeScript file, not codegen. It initializes the
5
- * client navigation runtime: segment router, prefetch cache, and
6
- * history stack.
7
- *
8
- * Hydration works by:
9
- * 1. Decoding the RSC payload embedded in the initial HTML response
10
- * via createFromReadableStream from @vitejs/plugin-rsc/browser
11
- * 2. Hydrating the decoded React tree via hydrateRoot
12
- * 3. Setting up client-side navigation for subsequent page transitions
13
- *
14
- * After hydration, the browser entry:
15
- * - Link click handling is per-component (Link's onClick), not global delegation
16
- * - Listens for popstate events for back/forward navigation
17
- *
18
- * Design docs: 18-build-system.md §"Entry Files", 19-client-navigation.md
19
- */
20
- export {};
21
- //# sourceMappingURL=browser-entry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-entry.d.ts","sourceRoot":"","sources":["../../src/client/browser-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
@@ -1,11 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- /**
3
- * Client component that reads the pending URL from PendingNavigationContext
4
- * and provides a scoped LinkStatusContext to children. Renders no extra DOM —
5
- * just a context provider around children.
6
- */
7
- export declare function LinkStatusProvider({ href, children }: {
8
- href: string;
9
- children?: ReactNode;
10
- }): import("react/jsx-runtime").JSX.Element;
11
- //# sourceMappingURL=link-status-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link-status-provider.d.ts","sourceRoot":"","sources":["../../src/client/link-status-provider.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,2CAK5F"}
@@ -1,119 +0,0 @@
1
- /**
2
- * Segment Merger — client-side tree merging for partial RSC payloads.
3
- *
4
- * When the server skips rendering sync layouts (because the client already
5
- * has them cached), the RSC payload is missing outer segment wrappers.
6
- * This module reconstructs the full element tree by splicing the partial
7
- * payload into cached segment subtrees.
8
- *
9
- * The approach:
10
- * 1. After each full RSC payload render, walk the decoded element tree
11
- * and cache each segment's subtree (identified by SegmentProvider boundaries)
12
- * 2. When a partial payload arrives, wrap it with cached segment elements
13
- * using React.cloneElement to preserve component identity
14
- *
15
- * React.cloneElement preserves the element's `type` — React sees the same
16
- * component at the same tree position and reconciles (preserving state)
17
- * rather than remounting. This is how layout state survives navigations.
18
- *
19
- * Design docs: 19-client-navigation.md §"Navigation Reconciliation"
20
- * Security: access.ts runs on the server regardless of skipping — this
21
- * is a performance optimization only. See 13-security.md.
22
- */
23
- import { type ReactElement, type ReactNode } from 'react';
24
- /**
25
- * A cached segment entry. Stores the full subtree rooted at a SegmentProvider
26
- * and the path through the tree to the next SegmentProvider (or leaf).
27
- */
28
- export interface CachedSegmentEntry {
29
- /** The segment's URL path (e.g., "/", "/dashboard") */
30
- segmentPath: string;
31
- /** The SegmentProvider element for this segment */
32
- element: ReactElement;
33
- /**
34
- * Whether this segment's cached element contains a nested SegmentProvider.
35
- * Only segments with inner SegmentProviders are safe to skip — the merger
36
- * can only replace inner SegmentProviders, not pages embedded in layout output.
37
- * Used by the state tree serialization to exclude non-mergeable segments.
38
- */
39
- hasMergeableChild: boolean;
40
- }
41
- /**
42
- * Cache of React element subtrees per segment path.
43
- * Updated after each navigation with the full decoded RSC element tree.
44
- */
45
- export declare class SegmentElementCache {
46
- private entries;
47
- get(segmentPath: string): CachedSegmentEntry | undefined;
48
- set(segmentPath: string, entry: CachedSegmentEntry): void;
49
- has(segmentPath: string): boolean;
50
- clear(): void;
51
- get size(): number;
52
- /**
53
- * Get the set of segment paths that are safe for the server to skip.
54
- * Only segments with an inner SegmentProvider (hasMergeableChild) are
55
- * included — the merger can only replace inner SegmentProviders, not
56
- * pages embedded in layout output. Used to filter the state tree.
57
- *
58
- * Returns an empty set if the element cache is empty (no elements
59
- * cached yet). This is the safe default — an empty set means no
60
- * segments pass the filter, so the state tree is empty and the server
61
- * does a full render. The element cache is populated lazily after the
62
- * first SPA navigation (RSC-decoded elements from hydration are
63
- * thenables that can't be walked until React resolves them).
64
- */
65
- getMergeablePaths(): Set<string>;
66
- }
67
- /**
68
- * Check if a React element is a SegmentProvider by looking for the
69
- * `segments` prop (an array of path segments). This is the only
70
- * component that receives this prop shape.
71
- */
72
- export declare function isSegmentProvider(element: unknown): element is ReactElement;
73
- /**
74
- * Extract the segment path from a SegmentProvider element.
75
- *
76
- * Uses the `segmentId` prop if available (set by the server for route groups
77
- * to distinguish siblings that share the same urlPath). Falls back to
78
- * reconstructing from the `segments` array prop.
79
- */
80
- export declare function getSegmentPath(element: ReactElement): string;
81
- /**
82
- * Walk a React element tree and extract all SegmentProvider boundaries.
83
- * Returns an ordered list of segment entries from outermost to innermost.
84
- *
85
- * This only finds SegmentProviders along the main children path — it does
86
- * not descend into parallel routes/slots (those are separate subtrees).
87
- */
88
- export declare function extractSegments(element: unknown): CachedSegmentEntry[];
89
- /**
90
- * Cache all segment subtrees from a fully-rendered RSC element tree.
91
- * Call this after every full RSC payload render (navigate, refresh, hydration).
92
- */
93
- export declare function cacheSegmentElements(element: unknown, cache: SegmentElementCache): void;
94
- /**
95
- * Replace a nested SegmentProvider within a cached element tree with
96
- * new content. Uses cloneElement along the path to produce a new tree
97
- * with preserved component identity at every level except the replaced node.
98
- *
99
- * @param cachedElement The cached SegmentProvider element for this segment
100
- * @param newInnerContent The new React element to splice in at the inner segment position
101
- * @param innerSegmentPath The path of the inner segment to replace (optional — replaces first found)
102
- * @returns New element tree with the inner segment replaced
103
- */
104
- export declare function replaceInnerSegment(cachedElement: ReactElement, newInnerContent: ReactNode, innerSegmentPath?: string): ReactElement;
105
- /**
106
- * Merge a partial RSC payload with cached segment elements.
107
- *
108
- * When the server skips segments, the partial payload starts from the
109
- * first non-skipped segment. This function wraps it with cached elements
110
- * for the skipped segments, producing a full tree that React can
111
- * reconcile with the mounted tree (preserving layout state).
112
- *
113
- * @param partialPayload The RSC payload element (may be partial)
114
- * @param skippedSegments Ordered list of segment paths that were skipped (outermost first)
115
- * @param cache The segment element cache
116
- * @returns The merged full element tree, or the partial payload if merging isn't possible
117
- */
118
- export declare function mergeSegmentTree(partialPayload: unknown, skippedSegments: string[], cache: SegmentElementCache): unknown;
119
- //# sourceMappingURL=segment-merger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"segment-merger.d.ts","sourceRoot":"","sources":["../../src/client/segment-merger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAgC,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIxF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,OAAO,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAID;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAyC;IAExD,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIxD,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;IAIzD,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIjC,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;;;;;;OAYG;IACH,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC;CASjC;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,YAAY,CAI3E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAM5D;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAUtE;AAuCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAKvF;AAkDD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,YAAY,EAC3B,eAAe,EAAE,SAAS,EAC1B,gBAAgB,CAAC,EAAE,MAAM,GACxB,YAAY,CAoCd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,MAAM,EAAE,EACzB,KAAK,EAAE,mBAAmB,GACzB,OAAO,CA0BT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transition-root.d.ts","sourceRoot":"","sources":["../../src/client/transition-root.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzF,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAqBlE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,eAAe,GAChB,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,SAAS,CAgDZ;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI,CAIzD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Returns true while an RSC navigation is in flight.
3
- *
4
- * The pending state is true from the moment the RSC fetch starts until
5
- * React reconciliation completes. This includes the fetch itself,
6
- * RSC stream parsing, and React tree reconciliation.
7
- *
8
- * It does NOT include Suspense streaming after the shell — only the
9
- * initial shell reconciliation.
10
- *
11
- * ```tsx
12
- * 'use client'
13
- * import { useNavigationPending } from '@timber-js/app/client'
14
- *
15
- * export function NavBar() {
16
- * const isPending = useNavigationPending()
17
- * return (
18
- * <nav className={isPending ? 'opacity-50' : ''}>
19
- * <Link href="/dashboard">Dashboard</Link>
20
- * </nav>
21
- * )
22
- * }
23
- * ```
24
- */
25
- export declare function useNavigationPending(): boolean;
26
- //# sourceMappingURL=use-navigation-pending.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-navigation-pending.d.ts","sourceRoot":"","sources":["../../src/client/use-navigation-pending.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAI9C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-params.d.ts","sourceRoot":"","sources":["../../src/client/use-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AASzC;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAG1D;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAE/D;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAEhF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjF,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC"}
@@ -1,36 +0,0 @@
1
- import type { Plugin } from 'vite';
2
- /**
3
- * Parse a cacheLife duration string to seconds.
4
- * Supports: '30s', '5m', '1h', '2d', '1w', or a plain number (seconds).
5
- */
6
- export declare function parseCacheLife(value: string | number): number;
7
- export interface CacheTransformWarning {
8
- message: string;
9
- functionName: string;
10
- }
11
- interface TransformResult {
12
- code: string;
13
- map?: null;
14
- warnings?: CacheTransformWarning[];
15
- }
16
- /**
17
- * Check if a 'use cache' function in a dynamic route page/layout receives
18
- * Promise-typed params, which are not serializable as cache keys.
19
- */
20
- export declare function detectPromiseParamsWarning(declaration: string, functionName: string, fileId: string): CacheTransformWarning | null;
21
- /**
22
- * Transform source code containing 'use cache' directives into
23
- * registerCachedFunction() calls.
24
- *
25
- * Returns null if no transformations were made.
26
- */
27
- export declare function transformUseCache(code: string, fileId: string): TransformResult | null;
28
- /**
29
- * Vite plugin: timber-cache
30
- *
31
- * Transforms 'use cache' directives into registerCachedFunction() calls.
32
- * Only runs in the RSC environment.
33
- */
34
- export declare function cacheTransformPlugin(): Plugin;
35
- export {};
36
- //# sourceMappingURL=cache-transform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-transform.d.ts","sourceRoot":"","sources":["../../src/plugins/cache-transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAGnC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAc7D;AAKD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAmDD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,GACb,qBAAqB,GAAG,IAAI,CAW9B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAuDtF;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAsB7C"}