@timber-js/app 0.2.0-alpha.191 → 0.2.0-alpha.194

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 (672) hide show
  1. package/agent-skill.md +2 -0
  2. package/dist/_chunks/{actions-BjbbNRFN.js → actions-CWYtq6ii.js} +3 -3
  3. package/dist/_chunks/actions-CWYtq6ii.js.map +1 -0
  4. package/dist/_chunks/als-registry-C6kcfprT.js.map +1 -1
  5. package/dist/_chunks/als-slots-BEEIPKYm.js.map +1 -1
  6. package/dist/_chunks/{build-output-helper-C3DrfzZR.js → build-output-helper-9dqCv1pZ.js} +3 -2
  7. package/dist/_chunks/build-output-helper-9dqCv1pZ.js.map +1 -0
  8. package/dist/_chunks/{cache-api-DllJ-Lyw.js → cache-api-CQeYzA5g.js} +6 -8
  9. package/dist/_chunks/cache-api-CQeYzA5g.js.map +1 -0
  10. package/dist/_chunks/chains-h7EO-u3n.js +412 -0
  11. package/dist/_chunks/chains-h7EO-u3n.js.map +1 -0
  12. package/dist/_chunks/{cli-check-DJZDc22E.js → cli-check-BVthpfLS.js} +43 -6
  13. package/dist/_chunks/cli-check-BVthpfLS.js.map +1 -0
  14. package/dist/_chunks/{cli-schema-sync-D4_AZVUb.js → cli-schema-sync-ZwM9u_ob.js} +6 -5
  15. package/dist/_chunks/{cli-schema-sync-D4_AZVUb.js.map → cli-schema-sync-ZwM9u_ob.js.map} +1 -1
  16. package/dist/_chunks/{cloudflare-CGP6BZKO.js → cloudflare-BKJC3SC_.js} +28 -22
  17. package/dist/_chunks/{cloudflare-CGP6BZKO.js.map → cloudflare-BKJC3SC_.js.map} +1 -1
  18. package/dist/_chunks/codec-registry-oOUxugz3.js.map +1 -1
  19. package/dist/_chunks/{convention-lint-CpteIpTm.js → convention-lint-DO10_pVl.js} +93 -7
  20. package/dist/_chunks/convention-lint-DO10_pVl.js.map +1 -0
  21. package/dist/_chunks/dist-DtrJyBbw.js +386 -0
  22. package/dist/_chunks/dist-DtrJyBbw.js.map +1 -0
  23. package/dist/_chunks/error-boundary-D-ODYX41.js.map +1 -1
  24. package/dist/_chunks/{file-cache-DmX7OqZP.js → file-cache-Dw6BJPG7.js} +5 -1
  25. package/dist/_chunks/{file-cache-DmX7OqZP.js.map → file-cache-Dw6BJPG7.js.map} +1 -1
  26. package/dist/_chunks/{format-CfwjgPz9.js → format-BKclgVbk.js} +3 -3
  27. package/dist/_chunks/{format-CfwjgPz9.js.map → format-BKclgVbk.js.map} +1 -1
  28. package/dist/_chunks/graph-cache-CP4GEmf9.js +304 -0
  29. package/dist/_chunks/graph-cache-CP4GEmf9.js.map +1 -0
  30. package/dist/_chunks/href-validation-CMc5JRls.js.map +1 -1
  31. package/dist/_chunks/live-graph-Bx4HodF1.js +150 -0
  32. package/dist/_chunks/live-graph-Bx4HodF1.js.map +1 -0
  33. package/dist/_chunks/{logger-CH7IcMmg.js → logger-pumCm3Il.js} +25 -7
  34. package/dist/_chunks/{logger-CH7IcMmg.js.map → logger-pumCm3Il.js.map} +1 -1
  35. package/dist/_chunks/{mdx-file-C005ay-P.js → mdx-file-CXyHGUpS.js} +3 -3
  36. package/dist/_chunks/mdx-file-CXyHGUpS.js.map +1 -0
  37. package/dist/_chunks/{plugin-context-rCinWLiE.js → plugin-context-8idfR3UZ.js} +2 -2
  38. package/dist/_chunks/plugin-context-8idfR3UZ.js.map +1 -0
  39. package/dist/_chunks/poison-rules-DoEhbqaY.js +110 -0
  40. package/dist/_chunks/poison-rules-DoEhbqaY.js.map +1 -0
  41. package/dist/_chunks/poison-scan-BAxfTT5L.js +101 -0
  42. package/dist/_chunks/poison-scan-BAxfTT5L.js.map +1 -0
  43. package/dist/_chunks/resolve-schema-CBR6Lm4i.js.map +1 -1
  44. package/dist/_chunks/rolldown-runtime-D7D4PA-g.js +13 -0
  45. package/dist/_chunks/router-ref-DuYuV_0Q.js.map +1 -1
  46. package/dist/_chunks/{rsc-media-type-DRqE_lD_.js → rsc-media-type-DDc7duTD.js} +17 -2
  47. package/dist/_chunks/{rsc-media-type-DRqE_lD_.js.map → rsc-media-type-DDc7duTD.js.map} +1 -1
  48. package/dist/_chunks/scan-BoP17W3w.js +140 -0
  49. package/dist/_chunks/scan-BoP17W3w.js.map +1 -0
  50. package/dist/_chunks/{scanner-CAietmj4.js → scanner-BRIOmHE2.js} +43 -4
  51. package/dist/_chunks/scanner-BRIOmHE2.js.map +1 -0
  52. package/dist/_chunks/schema-bridge-C83xa9lT.js.map +1 -1
  53. package/dist/_chunks/segment-classify-C539Pa2O.js.map +1 -1
  54. package/dist/_chunks/{segment-keys-BawYuNFO.js → segment-keys-BhqoHiLc.js} +14 -2
  55. package/dist/_chunks/{segment-keys-BawYuNFO.js.map → segment-keys-BhqoHiLc.js.map} +1 -1
  56. package/dist/_chunks/slot-params-BCTmZkQB.js.map +1 -1
  57. package/dist/_chunks/ssr-data-14MXm7Pj.js.map +1 -1
  58. package/dist/_chunks/use-query-states-I3JMng6J.js.map +1 -1
  59. package/dist/_chunks/use-segment-params-C4r4BD9T.js.map +1 -1
  60. package/dist/_chunks/{walkers-BsVLmD1S.js → walkers-uCu3WW6_.js} +9 -6
  61. package/dist/_chunks/{walkers-BsVLmD1S.js.map → walkers-uCu3WW6_.js.map} +1 -1
  62. package/dist/adapters/build-output-helper.d.ts +1 -1
  63. package/dist/adapters/build-output-helper.d.ts.map +1 -1
  64. package/dist/adapters/cloudflare-dev.d.ts.map +1 -1
  65. package/dist/adapters/cloudflare-dev.js +2 -1
  66. package/dist/adapters/cloudflare-dev.js.map +1 -1
  67. package/dist/adapters/cloudflare-kv-cache.d.ts +1 -1
  68. package/dist/adapters/cloudflare-kv-cache.d.ts.map +1 -1
  69. package/dist/adapters/cloudflare-kv-cache.js +7 -8
  70. package/dist/adapters/cloudflare-kv-cache.js.map +1 -1
  71. package/dist/adapters/cloudflare.d.ts +1 -1
  72. package/dist/adapters/cloudflare.d.ts.map +1 -1
  73. package/dist/adapters/cloudflare.js +1 -1
  74. package/dist/adapters/nitro-presets.d.ts +37 -0
  75. package/dist/adapters/nitro-presets.d.ts.map +1 -0
  76. package/dist/adapters/nitro-preview.d.ts +32 -0
  77. package/dist/adapters/nitro-preview.d.ts.map +1 -0
  78. package/dist/adapters/nitro.d.ts +28 -51
  79. package/dist/adapters/nitro.d.ts.map +1 -1
  80. package/dist/adapters/nitro.js +224 -171
  81. package/dist/adapters/nitro.js.map +1 -1
  82. package/dist/analyze/chains.d.ts +124 -0
  83. package/dist/analyze/chains.d.ts.map +1 -0
  84. package/dist/analyze/classify.d.ts +150 -0
  85. package/dist/analyze/classify.d.ts.map +1 -0
  86. package/dist/analyze/crawl-entry.d.ts +17 -0
  87. package/dist/analyze/crawl-entry.d.ts.map +1 -0
  88. package/dist/analyze/crawl-entry.js +313 -0
  89. package/dist/analyze/crawl-entry.js.map +1 -0
  90. package/dist/analyze/crawl.d.ts +134 -0
  91. package/dist/analyze/crawl.d.ts.map +1 -0
  92. package/dist/analyze/graph-cache.d.ts +104 -0
  93. package/dist/analyze/graph-cache.d.ts.map +1 -0
  94. package/dist/analyze/graph-command.d.ts +43 -0
  95. package/dist/analyze/graph-command.d.ts.map +1 -0
  96. package/dist/analyze/graph-command.js +472 -0
  97. package/dist/analyze/graph-command.js.map +1 -0
  98. package/dist/analyze/live-graph.d.ts +81 -0
  99. package/dist/analyze/live-graph.d.ts.map +1 -0
  100. package/dist/analyze/poison-rules.d.ts +72 -0
  101. package/dist/analyze/poison-rules.d.ts.map +1 -0
  102. package/dist/analyze/poison-scan.d.ts +48 -0
  103. package/dist/analyze/poison-scan.d.ts.map +1 -0
  104. package/dist/analyze/scan.d.ts +73 -0
  105. package/dist/analyze/scan.d.ts.map +1 -0
  106. package/dist/cache/cache-api.d.ts +2 -2
  107. package/dist/cache/cache-api.d.ts.map +1 -1
  108. package/dist/cache/index.d.ts +8 -8
  109. package/dist/cache/index.d.ts.map +1 -1
  110. package/dist/cache/index.js +1 -1
  111. package/dist/cache/redis-handler.d.ts +1 -1
  112. package/dist/cache/redis-handler.d.ts.map +1 -1
  113. package/dist/cache/stores/cloudflare-kv.d.ts +1 -1
  114. package/dist/cache/stores/cloudflare-kv.d.ts.map +1 -1
  115. package/dist/cache/stores/cloudflare-kv.js.map +1 -1
  116. package/dist/cache/stores/memory.d.ts +1 -1
  117. package/dist/cache/stores/memory.d.ts.map +1 -1
  118. package/dist/cache/stores/memory.js.map +1 -1
  119. package/dist/cache/stores/redis.d.ts +1 -1
  120. package/dist/cache/stores/redis.d.ts.map +1 -1
  121. package/dist/cache/stores/redis.js.map +1 -1
  122. package/dist/cache/stores/vercel.d.ts +1 -1
  123. package/dist/cache/stores/vercel.d.ts.map +1 -1
  124. package/dist/cache/stores/vercel.js.map +1 -1
  125. package/dist/cache/tag-aware-handler.d.ts +2 -2
  126. package/dist/cache/tag-aware-handler.d.ts.map +1 -1
  127. package/dist/cache/timber-cache.d.ts +1 -1
  128. package/dist/cache/timber-cache.d.ts.map +1 -1
  129. package/dist/cdn/cloudflare-purge.d.ts +1 -1
  130. package/dist/cdn/cloudflare-purge.d.ts.map +1 -1
  131. package/dist/cdn/cloudflare-purge.js.map +1 -1
  132. package/dist/cdn/fastly-purge.d.ts +1 -1
  133. package/dist/cdn/fastly-purge.d.ts.map +1 -1
  134. package/dist/cdn/fastly-purge.js.map +1 -1
  135. package/dist/cdn/index.d.ts +4 -4
  136. package/dist/cdn/index.d.ts.map +1 -1
  137. package/dist/cdn/workers-cache-purge.d.ts +5 -1
  138. package/dist/cdn/workers-cache-purge.d.ts.map +1 -1
  139. package/dist/cdn/workers-cache-purge.js.map +1 -1
  140. package/dist/cli-check.d.ts +10 -0
  141. package/dist/cli-check.d.ts.map +1 -1
  142. package/dist/cli.d.ts +12 -4
  143. package/dist/cli.d.ts.map +1 -1
  144. package/dist/cli.js +30 -6
  145. package/dist/cli.js.map +1 -1
  146. package/dist/client/browser-entry/hydrate.d.ts +2 -2
  147. package/dist/client/browser-entry/hydrate.d.ts.map +1 -1
  148. package/dist/client/browser-entry/post-hydration.d.ts +2 -2
  149. package/dist/client/browser-entry/router-init.d.ts +2 -2
  150. package/dist/client/browser-entry/rsc-stream.d.ts +1 -1
  151. package/dist/client/form.d.ts +2 -2
  152. package/dist/client/form.d.ts.map +1 -1
  153. package/dist/client/history.d.ts +2 -2
  154. package/dist/client/index.d.ts +18 -18
  155. package/dist/client/index.d.ts.map +1 -1
  156. package/dist/client/index.js.map +1 -1
  157. package/dist/client/internal.d.ts +19 -19
  158. package/dist/client/internal.d.ts.map +1 -1
  159. package/dist/client/internal.js +11 -15
  160. package/dist/client/internal.js.map +1 -1
  161. package/dist/client/link.d.ts +3 -3
  162. package/dist/client/navigation-commit.d.ts +5 -5
  163. package/dist/client/navigation-root.d.ts +1 -1
  164. package/dist/client/navigation-root.d.ts.map +1 -1
  165. package/dist/client/params-context.d.ts +3 -3
  166. package/dist/client/router-pipeline.d.ts +7 -7
  167. package/dist/client/router-ref.d.ts +1 -1
  168. package/dist/client/router-types.d.ts +6 -6
  169. package/dist/client/router-types.d.ts.map +1 -1
  170. package/dist/client/router.d.ts +1 -1
  171. package/dist/client/rsc-fetch.d.ts +4 -4
  172. package/dist/client/rsc-fetch.d.ts.map +1 -1
  173. package/dist/client/segment-cache.d.ts +2 -2
  174. package/dist/client/slot-provider.d.ts +1 -1
  175. package/dist/client/ssr-data.d.ts +2 -2
  176. package/dist/client/state.d.ts +4 -4
  177. package/dist/client/use-query-states.d.ts +1 -1
  178. package/dist/client/use-segment-params.d.ts +3 -3
  179. package/dist/codec.d.ts +2 -2
  180. package/dist/codec.js.map +1 -1
  181. package/dist/config-types.d.ts +24 -6
  182. package/dist/config-types.d.ts.map +1 -1
  183. package/dist/config-validation.d.ts +1 -1
  184. package/dist/cookies/define-cookie.d.ts +3 -3
  185. package/dist/cookies/index.d.ts +3 -3
  186. package/dist/cookies/index.js +3 -4
  187. package/dist/cookies/index.js.map +1 -1
  188. package/dist/cookies/json-cookie.d.ts +1 -1
  189. package/dist/dev-tools/404-page.d.ts +2 -2
  190. package/dist/dev-tools/error-page.d.ts +2 -2
  191. package/dist/dev-tools/index.d.ts +12 -12
  192. package/dist/dev-tools/instrumentation.d.ts +1 -1
  193. package/dist/dev-tools/logs.d.ts +1 -1
  194. package/dist/dev-tools/overlay.d.ts +2 -2
  195. package/dist/dev-tools/terminal.d.ts +1 -1
  196. package/dist/fonts/ast.d.ts +4 -4
  197. package/dist/fonts/bundle.d.ts +3 -3
  198. package/dist/fonts/css.d.ts +1 -1
  199. package/dist/fonts/dev-middleware.d.ts +1 -1
  200. package/dist/fonts/google.d.ts +1 -1
  201. package/dist/fonts/local.d.ts +1 -1
  202. package/dist/fonts/pipeline.d.ts +3 -3
  203. package/dist/fonts/transform.d.ts +2 -2
  204. package/dist/fonts/types.d.ts +1 -1
  205. package/dist/fonts/virtual-modules.d.ts +1 -1
  206. package/dist/index.d.ts +3 -3
  207. package/dist/index.d.ts.map +1 -1
  208. package/dist/index.js +816 -310
  209. package/dist/index.js.map +1 -1
  210. package/dist/params/codec-registry.d.ts +1 -1
  211. package/dist/params/define-schema.d.ts +2 -2
  212. package/dist/params/index.d.ts +4 -4
  213. package/dist/params/index.js.map +1 -1
  214. package/dist/params/resolve-schema.d.ts +1 -1
  215. package/dist/plugin-context.d.ts +9 -9
  216. package/dist/plugin-context.d.ts.map +1 -1
  217. package/dist/plugins/adapter-build.d.ts +2 -2
  218. package/dist/plugins/build-manifest.d.ts +2 -2
  219. package/dist/plugins/build-report.d.ts +5 -5
  220. package/dist/plugins/cache.d.ts +1 -1
  221. package/dist/plugins/callsite-jsx.d.ts +2 -2
  222. package/dist/plugins/chunks.d.ts +1 -1
  223. package/dist/plugins/chunks.d.ts.map +1 -1
  224. package/dist/plugins/cloudflare-wasm.d.ts +1 -1
  225. package/dist/plugins/content.d.ts +1 -1
  226. package/dist/plugins/content.d.ts.map +1 -1
  227. package/dist/plugins/dev-discovery.d.ts +123 -0
  228. package/dist/plugins/dev-discovery.d.ts.map +1 -0
  229. package/dist/plugins/dev-server.d.ts +1 -1
  230. package/dist/plugins/dev-server.d.ts.map +1 -1
  231. package/dist/plugins/entries.d.ts +1 -1
  232. package/dist/plugins/fonts.d.ts +3 -3
  233. package/dist/plugins/fonts.d.ts.map +1 -1
  234. package/dist/plugins/graph-endpoint.d.ts +112 -0
  235. package/dist/plugins/graph-endpoint.d.ts.map +1 -0
  236. package/dist/plugins/mdx.d.ts +18 -5
  237. package/dist/plugins/mdx.d.ts.map +1 -1
  238. package/dist/plugins/prebuilt-capture.d.ts +2 -2
  239. package/dist/plugins/prebuilt-options-analysis.d.ts +1 -1
  240. package/dist/plugins/prebuilt.d.ts +1 -1
  241. package/dist/plugins/prerender-sugar.d.ts +11 -14
  242. package/dist/plugins/prerender-sugar.d.ts.map +1 -1
  243. package/dist/plugins/request-dep/analysis.d.ts +1 -1
  244. package/dist/plugins/request-dep/index.d.ts +5 -5
  245. package/dist/plugins/request-dep/origin.d.ts +1 -1
  246. package/dist/plugins/routing.d.ts +1 -1
  247. package/dist/plugins/routing.d.ts.map +1 -1
  248. package/dist/plugins/server-bundle.d.ts.map +1 -1
  249. package/dist/plugins/shims.d.ts +1 -1
  250. package/dist/plugins/shims.d.ts.map +1 -1
  251. package/dist/plugins/static-build.d.ts +5 -5
  252. package/dist/routing/codegen-shared.d.ts +1 -1
  253. package/dist/routing/codegen-write.d.ts +1 -1
  254. package/dist/routing/codegen.d.ts +1 -1
  255. package/dist/routing/collision-probe.d.ts +1 -1
  256. package/dist/routing/collision-spaces.d.ts +1 -1
  257. package/dist/routing/convention-lint.d.ts +1 -1
  258. package/dist/routing/convention-lint.d.ts.map +1 -1
  259. package/dist/routing/index.d.ts +13 -13
  260. package/dist/routing/index.js +3 -3
  261. package/dist/routing/interception.d.ts +1 -1
  262. package/dist/routing/interception.d.ts.map +1 -1
  263. package/dist/routing/link-codegen.d.ts +1 -1
  264. package/dist/routing/manifest-codegen.d.ts +1 -1
  265. package/dist/routing/scanner.d.ts +14 -1
  266. package/dist/routing/scanner.d.ts.map +1 -1
  267. package/dist/routing/schema-validation.d.ts +1 -1
  268. package/dist/routing/segment-classify.d.ts +1 -1
  269. package/dist/routing/segment-codegen.d.ts +1 -1
  270. package/dist/routing/segment-keys.d.ts +1 -1
  271. package/dist/routing/slot-placement.d.ts +1 -1
  272. package/dist/routing/walkers.d.ts +1 -1
  273. package/dist/rsc-runtime/transforms.d.ts +13 -0
  274. package/dist/rsc-runtime/transforms.d.ts.map +1 -0
  275. package/dist/schema-bridge.d.ts +1 -1
  276. package/dist/search-params/define.d.ts +3 -3
  277. package/dist/search-params/index.d.ts +3 -3
  278. package/dist/search-params/index.js.map +1 -1
  279. package/dist/search-params/wrappers.d.ts +1 -1
  280. package/dist/server/access-gate.d.ts +1 -1
  281. package/dist/server/action-client.d.ts +1 -1
  282. package/dist/server/action-handler.d.ts +5 -5
  283. package/dist/server/actions.d.ts +2 -2
  284. package/dist/server/als-registry.d.ts +8 -8
  285. package/dist/server/asset-headers.d.ts +1 -1
  286. package/dist/server/chain-url-parts.d.ts +3 -3
  287. package/dist/server/children-interception.d.ts +2 -2
  288. package/dist/server/cookie-context.d.ts +1 -1
  289. package/dist/server/cookie-parsing.d.ts +2 -2
  290. package/dist/server/default-logger.d.ts +1 -1
  291. package/dist/server/deny-boundary.d.ts +2 -2
  292. package/dist/server/deny-renderer.d.ts +5 -5
  293. package/dist/server/early-hints.d.ts +1 -1
  294. package/dist/server/error-boundary-wrapper.d.ts +2 -4
  295. package/dist/server/error-boundary-wrapper.d.ts.map +1 -1
  296. package/dist/server/fallback-error.d.ts +5 -5
  297. package/dist/server/flight-injection-state.d.ts +1 -1
  298. package/dist/server/form-flash.d.ts +1 -1
  299. package/dist/server/html-injector-core.d.ts +2 -2
  300. package/dist/server/html-injectors.d.ts +1 -1
  301. package/dist/server/index.d.ts +18 -18
  302. package/dist/server/index.d.ts.map +1 -1
  303. package/dist/server/index.js +33 -32
  304. package/dist/server/index.js.map +1 -1
  305. package/dist/server/instrumentation.d.ts +1 -1
  306. package/dist/server/internal.d.ts +50 -50
  307. package/dist/server/internal.d.ts.map +1 -1
  308. package/dist/server/internal.js +1023 -1025
  309. package/dist/server/internal.js.map +1 -1
  310. package/dist/server/metadata-collector.d.ts +2 -2
  311. package/dist/server/metadata-platform.d.ts +2 -2
  312. package/dist/server/metadata-render.d.ts +2 -2
  313. package/dist/server/metadata-routes.d.ts +3 -3
  314. package/dist/server/metadata-social.d.ts +2 -2
  315. package/dist/server/metadata.d.ts +2 -2
  316. package/dist/server/middleware-runner.d.ts +1 -1
  317. package/dist/server/node-stream-transforms.d.ts +1 -1
  318. package/dist/server/param-coercion.d.ts +4 -4
  319. package/dist/server/pipeline-helpers.d.ts +3 -3
  320. package/dist/server/pipeline-interception.d.ts +1 -1
  321. package/dist/server/pipeline-metadata.d.ts +1 -1
  322. package/dist/server/pipeline-outcome.d.ts +2 -2
  323. package/dist/server/pipeline-phases.d.ts +3 -3
  324. package/dist/server/pipeline-phases.d.ts.map +1 -1
  325. package/dist/server/pipeline.d.ts +9 -9
  326. package/dist/server/prebuilt/cache-key.d.ts +1 -1
  327. package/dist/server/prebuilt/capture-state.d.ts +1 -1
  328. package/dist/server/prebuilt/key-discipline.d.ts +1 -1
  329. package/dist/server/prebuilt/manifest-tag-index.d.ts +1 -1
  330. package/dist/server/prebuilt/overlay.d.ts +2 -2
  331. package/dist/server/prebuilt/payload-source.d.ts +1 -1
  332. package/dist/server/prebuilt/slots.d.ts +1 -1
  333. package/dist/server/prebuilt/synthetic-store.d.ts +2 -2
  334. package/dist/server/prebuilt-builder.d.ts +2 -2
  335. package/dist/server/primitives.d.ts +2 -2
  336. package/dist/server/publish-params.d.ts +1 -1
  337. package/dist/server/request-context.d.ts +3 -3
  338. package/dist/server/route-element-builder.d.ts +16 -6
  339. package/dist/server/route-element-builder.d.ts.map +1 -1
  340. package/dist/server/route-handler.d.ts +1 -1
  341. package/dist/server/route-matcher.d.ts +4 -4
  342. package/dist/server/rsc-cache-key-guard.d.ts.map +1 -1
  343. package/dist/server/rsc-entry/action-middleware-runner.d.ts +2 -2
  344. package/dist/server/rsc-entry/api-handler.d.ts +1 -1
  345. package/dist/server/rsc-entry/api-handler.d.ts.map +1 -1
  346. package/dist/server/rsc-entry/deny-fallback.d.ts +3 -3
  347. package/dist/server/rsc-entry/error-renderer.d.ts +4 -4
  348. package/dist/server/rsc-entry/helpers.d.ts +6 -6
  349. package/dist/server/rsc-entry/index.d.ts +7 -6
  350. package/dist/server/rsc-entry/index.d.ts.map +1 -1
  351. package/dist/server/rsc-entry/render-route.d.ts +4 -4
  352. package/dist/server/rsc-entry/revalidate-renderer.d.ts +4 -4
  353. package/dist/server/rsc-entry/rsc-payload.d.ts +4 -4
  354. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  355. package/dist/server/rsc-entry/rsc-stream.d.ts +3 -3
  356. package/dist/server/rsc-entry/ssr-bridge.d.ts +1 -1
  357. package/dist/server/rsc-entry/ssr-renderer.d.ts +7 -7
  358. package/dist/server/rsc-entry/wrap-action-dispatch.d.ts +5 -5
  359. package/dist/server/sitemap-generator.d.ts +2 -2
  360. package/dist/server/sitemap-handler.d.ts +1 -1
  361. package/dist/server/skippable-prefix.d.ts +3 -3
  362. package/dist/server/slot-interception.d.ts +2 -2
  363. package/dist/server/slot-resolver.d.ts +3 -7
  364. package/dist/server/slot-resolver.d.ts.map +1 -1
  365. package/dist/server/ssr-bridge-types.d.ts +2 -2
  366. package/dist/server/ssr-entry.d.ts +1 -1
  367. package/dist/server/static-generator.d.ts +1 -1
  368. package/dist/server/static-not-found.d.ts +1 -1
  369. package/dist/server/status-code-resolver.d.ts +1 -1
  370. package/dist/server/tracing.d.ts +3 -3
  371. package/dist/server/tree-builder.d.ts +3 -3
  372. package/dist/server/tree-match.d.ts +1 -1
  373. package/dist/server/types.d.ts +2 -2
  374. package/dist/server/utils/mdx-file.d.ts +2 -0
  375. package/dist/server/utils/mdx-file.d.ts.map +1 -1
  376. package/dist/server/workers-cache-bridge.d.ts +1 -1
  377. package/dist/shared/als-slots.d.ts +1 -1
  378. package/dist/shared/payload-root.d.ts +2 -2
  379. package/dist/shared/rsc-media-type.d.ts +12 -0
  380. package/dist/shared/rsc-media-type.d.ts.map +1 -1
  381. package/dist/shared/slot-params.d.ts +1 -1
  382. package/dist/shims/font-google.d.ts +1 -1
  383. package/dist/shims/font-google.js.map +1 -1
  384. package/dist/shims/font-local.d.ts +1 -1
  385. package/dist/shims/font-local.js.map +1 -1
  386. package/dist/shims/navigation-client.d.ts +4 -4
  387. package/dist/shims/navigation.d.ts +2 -2
  388. package/docs/api/34-api-config.mdx +9 -8
  389. package/docs/api/36-cli.mdx +23 -3
  390. package/docs/learn/11-error-handling.mdx +11 -0
  391. package/docs/more/01-advanced-routing.mdx +1 -0
  392. package/docs/more/04b-mdx.mdx +38 -18
  393. package/package.json +23 -18
  394. package/src/adapters/build-output-helper.ts +4 -4
  395. package/src/adapters/cloudflare-dev.ts +7 -1
  396. package/src/adapters/cloudflare-kv-cache.ts +11 -8
  397. package/src/adapters/cloudflare.ts +21 -15
  398. package/src/adapters/compress-module.ts +2 -2
  399. package/src/adapters/nitro-presets.ts +139 -0
  400. package/src/adapters/nitro-preview.ts +340 -0
  401. package/src/adapters/nitro.ts +100 -465
  402. package/src/adapters/shared.ts +1 -1
  403. package/src/analyze/chains.ts +411 -0
  404. package/src/analyze/classify.ts +258 -0
  405. package/src/analyze/crawl-entry.ts +68 -0
  406. package/src/analyze/crawl.ts +500 -0
  407. package/src/analyze/graph-cache.ts +332 -0
  408. package/src/analyze/graph-command.ts +762 -0
  409. package/src/analyze/live-graph.ts +232 -0
  410. package/src/analyze/poison-rules.ts +165 -0
  411. package/src/analyze/poison-scan.ts +162 -0
  412. package/src/analyze/scan.ts +149 -0
  413. package/src/cache/cache-api.ts +7 -7
  414. package/src/cache/index.ts +9 -9
  415. package/src/cache/redis-handler.ts +2 -2
  416. package/src/cache/stores/cloudflare-kv.ts +1 -1
  417. package/src/cache/stores/memory.ts +2 -2
  418. package/src/cache/stores/redis.ts +1 -1
  419. package/src/cache/stores/vercel.ts +1 -1
  420. package/src/cache/tag-aware-handler.ts +2 -2
  421. package/src/cache/timber-cache.ts +8 -8
  422. package/src/cdn/cloudflare-purge.ts +1 -1
  423. package/src/cdn/fastly-purge.ts +1 -1
  424. package/src/cdn/index.ts +10 -4
  425. package/src/cdn/workers-cache-purge.ts +6 -2
  426. package/src/cli-check.ts +53 -4
  427. package/src/cli-schema-sync.ts +3 -3
  428. package/src/cli.ts +50 -11
  429. package/src/client/browser-dev.ts +1 -1
  430. package/src/client/browser-entry/action-dispatch.ts +5 -5
  431. package/src/client/browser-entry/hmr.ts +1 -1
  432. package/src/client/browser-entry/hydrate.ts +9 -9
  433. package/src/client/browser-entry/index.ts +10 -10
  434. package/src/client/browser-entry/post-hydration.ts +5 -5
  435. package/src/client/browser-entry/router-init.ts +9 -9
  436. package/src/client/browser-entry/rsc-stream.ts +3 -3
  437. package/src/client/error-boundary.tsx +4 -4
  438. package/src/client/form.tsx +7 -2
  439. package/src/client/history.ts +2 -2
  440. package/src/client/index.ts +21 -18
  441. package/src/client/internal.ts +19 -19
  442. package/src/client/link.tsx +9 -9
  443. package/src/client/navigation-api.ts +1 -1
  444. package/src/client/navigation-commit.ts +5 -5
  445. package/src/client/navigation-context.ts +1 -1
  446. package/src/client/navigation-root.tsx +1 -1
  447. package/src/client/nuqs-adapter.tsx +2 -2
  448. package/src/client/params-context.ts +4 -4
  449. package/src/client/router-effects.ts +3 -3
  450. package/src/client/router-lifecycle.ts +2 -2
  451. package/src/client/router-pipeline.ts +10 -10
  452. package/src/client/router-ref.ts +2 -2
  453. package/src/client/router-skew.ts +2 -2
  454. package/src/client/router-types.ts +6 -6
  455. package/src/client/router.ts +13 -13
  456. package/src/client/rsc-fetch.ts +11 -16
  457. package/src/client/segment-cache.ts +2 -2
  458. package/src/client/segment-outlet.tsx +1 -1
  459. package/src/client/shallow-url.ts +1 -1
  460. package/src/client/slot-outlet.tsx +1 -1
  461. package/src/client/slot-provider.tsx +1 -1
  462. package/src/client/ssr-data.ts +3 -3
  463. package/src/client/stale-client.ts +1 -1
  464. package/src/client/state.ts +4 -4
  465. package/src/client/top-loader.tsx +1 -1
  466. package/src/client/unload-guard.ts +1 -1
  467. package/src/client/use-cookie.ts +2 -2
  468. package/src/client/use-pathname.ts +2 -2
  469. package/src/client/use-pending-navigation.ts +1 -1
  470. package/src/client/use-query-states.ts +3 -3
  471. package/src/client/use-router.ts +2 -2
  472. package/src/client/use-search-params.ts +3 -3
  473. package/src/client/use-segment-params.ts +6 -6
  474. package/src/client/use-selected-layout-segment.ts +2 -2
  475. package/src/codec.ts +2 -2
  476. package/src/config-types.ts +27 -7
  477. package/src/config-validation.ts +1 -1
  478. package/src/cookies/define-cookie.ts +6 -6
  479. package/src/cookies/index.ts +3 -3
  480. package/src/cookies/json-cookie.ts +1 -1
  481. package/src/dev-tools/404-page.ts +4 -4
  482. package/src/dev-tools/dev-page-shell.ts +1 -1
  483. package/src/dev-tools/error-page.ts +4 -4
  484. package/src/dev-tools/index.ts +12 -12
  485. package/src/dev-tools/instrumentation.ts +1 -1
  486. package/src/dev-tools/logs.ts +1 -1
  487. package/src/dev-tools/overlay.ts +3 -3
  488. package/src/dev-tools/terminal.ts +2 -2
  489. package/src/fonts/ast.ts +5 -5
  490. package/src/fonts/bundle.ts +5 -5
  491. package/src/fonts/css.ts +1 -1
  492. package/src/fonts/dev-middleware.ts +2 -2
  493. package/src/fonts/google.ts +2 -2
  494. package/src/fonts/local.ts +4 -4
  495. package/src/fonts/pipeline.ts +8 -8
  496. package/src/fonts/transform.ts +5 -5
  497. package/src/fonts/types.ts +1 -1
  498. package/src/fonts/virtual-modules.ts +1 -1
  499. package/src/index.ts +46 -37
  500. package/src/params/codec-registry.ts +1 -1
  501. package/src/params/define-schema.ts +2 -2
  502. package/src/params/index.ts +4 -4
  503. package/src/params/resolve-schema.ts +2 -2
  504. package/src/plugin-context.ts +10 -10
  505. package/src/plugins/adapter-build.ts +5 -5
  506. package/src/plugins/build-manifest.ts +4 -4
  507. package/src/plugins/build-report.ts +6 -6
  508. package/src/plugins/cache.ts +3 -3
  509. package/src/plugins/callsite-ast.ts +1 -1
  510. package/src/plugins/callsite-jsx.ts +2 -2
  511. package/src/plugins/chunks.ts +1 -1
  512. package/src/plugins/cloudflare-wasm.ts +1 -1
  513. package/src/plugins/content.ts +5 -1
  514. package/src/plugins/dev-discovery.ts +218 -0
  515. package/src/plugins/dev-server.ts +97 -12
  516. package/src/plugins/entries.ts +1 -1
  517. package/src/plugins/fonts.ts +17 -10
  518. package/src/plugins/graph-endpoint.ts +532 -0
  519. package/src/plugins/mdx.ts +73 -38
  520. package/src/plugins/prebuilt-capture.ts +3 -3
  521. package/src/plugins/prebuilt-options-analysis.ts +1 -1
  522. package/src/plugins/prebuilt.ts +7 -7
  523. package/src/plugins/prerender-sugar.ts +11 -19
  524. package/src/plugins/request-dep/analysis.ts +1 -1
  525. package/src/plugins/request-dep/index.ts +8 -8
  526. package/src/plugins/request-dep/origin.ts +1 -1
  527. package/src/plugins/routing.ts +12 -7
  528. package/src/plugins/server-bundle.ts +11 -3
  529. package/src/plugins/shims.ts +16 -31
  530. package/src/plugins/static-build.ts +10 -10
  531. package/src/routing/codegen-shared.ts +1 -1
  532. package/src/routing/codegen-write.ts +3 -3
  533. package/src/routing/codegen.ts +14 -5
  534. package/src/routing/collision-probe.ts +3 -3
  535. package/src/routing/collision-spaces.ts +3 -3
  536. package/src/routing/convention-lint.ts +136 -6
  537. package/src/routing/export-detect.ts +1 -1
  538. package/src/routing/index.ts +13 -13
  539. package/src/routing/interception.ts +41 -4
  540. package/src/routing/link-codegen.ts +3 -3
  541. package/src/routing/manifest-codegen.ts +2 -2
  542. package/src/routing/scanner.ts +33 -9
  543. package/src/routing/schema-validation.ts +4 -4
  544. package/src/routing/segment-classify.ts +2 -2
  545. package/src/routing/segment-codegen.ts +1 -1
  546. package/src/routing/segment-keys.ts +1 -1
  547. package/src/routing/slot-placement.ts +1 -1
  548. package/src/routing/walkers.ts +1 -1
  549. package/src/rsc-runtime/transforms.ts +13 -0
  550. package/src/rsc-runtime/vendor-types.d.ts +12 -0
  551. package/src/schema-bridge.ts +1 -1
  552. package/src/search-params/define.ts +8 -8
  553. package/src/search-params/index.ts +3 -3
  554. package/src/search-params/wrappers.ts +3 -3
  555. package/src/server/access-gate.tsx +6 -6
  556. package/src/server/action-client.ts +5 -5
  557. package/src/server/action-handler.ts +16 -16
  558. package/src/server/actions.ts +5 -5
  559. package/src/server/als-registry.ts +8 -8
  560. package/src/server/asset-headers.ts +2 -2
  561. package/src/server/chain-url-parts.ts +5 -5
  562. package/src/server/children-interception.ts +4 -4
  563. package/src/server/compress.ts +1 -1
  564. package/src/server/cookie-context.ts +4 -4
  565. package/src/server/cookie-parsing.ts +2 -2
  566. package/src/server/default-logger.ts +3 -3
  567. package/src/server/deny-boundary.ts +10 -10
  568. package/src/server/deny-renderer.ts +38 -25
  569. package/src/server/early-hints-sender.ts +2 -2
  570. package/src/server/early-hints.ts +2 -2
  571. package/src/server/error-boundary-wrapper.ts +4 -12
  572. package/src/server/fallback-error.ts +13 -13
  573. package/src/server/flight-injection-state.ts +1 -1
  574. package/src/server/form-flash.ts +2 -2
  575. package/src/server/html-injector-core.ts +4 -4
  576. package/src/server/html-injectors.ts +5 -5
  577. package/src/server/index.ts +18 -18
  578. package/src/server/instrumentation.ts +1 -1
  579. package/src/server/internal.ts +50 -50
  580. package/src/server/logger.ts +4 -4
  581. package/src/server/metadata-collector.ts +7 -7
  582. package/src/server/metadata-platform.ts +2 -2
  583. package/src/server/metadata-render.ts +4 -4
  584. package/src/server/metadata-routes.ts +3 -3
  585. package/src/server/metadata-social.ts +2 -2
  586. package/src/server/metadata.ts +2 -2
  587. package/src/server/middleware-runner.ts +1 -1
  588. package/src/server/node-stream-transforms.ts +4 -4
  589. package/src/server/param-coercion.ts +8 -8
  590. package/src/server/pipeline-helpers.ts +7 -7
  591. package/src/server/pipeline-interception.ts +2 -2
  592. package/src/server/pipeline-metadata.ts +1 -1
  593. package/src/server/pipeline-outcome.ts +8 -8
  594. package/src/server/pipeline-phases.ts +24 -28
  595. package/src/server/pipeline.ts +22 -22
  596. package/src/server/prebuilt/cache-key.ts +1 -1
  597. package/src/server/prebuilt/capture-state.ts +1 -1
  598. package/src/server/prebuilt/key-discipline.ts +1 -1
  599. package/src/server/prebuilt/manifest-tag-index.ts +1 -1
  600. package/src/server/prebuilt/overlay.ts +6 -6
  601. package/src/server/prebuilt/payload-source.ts +2 -2
  602. package/src/server/prebuilt/slots.ts +5 -5
  603. package/src/server/prebuilt/synthetic-store.ts +2 -2
  604. package/src/server/prebuilt-builder.ts +16 -16
  605. package/src/server/prebuilt-runtime.ts +12 -12
  606. package/src/server/primitives.ts +7 -7
  607. package/src/server/publish-params.ts +3 -3
  608. package/src/server/request-context.ts +7 -7
  609. package/src/server/route-element-builder.ts +108 -50
  610. package/src/server/route-handler.ts +4 -4
  611. package/src/server/route-matcher.ts +5 -5
  612. package/src/server/rsc-cache-key-guard.ts +3 -5
  613. package/src/server/rsc-entry/action-middleware-runner.ts +7 -7
  614. package/src/server/rsc-entry/api-handler.ts +18 -9
  615. package/src/server/rsc-entry/deny-fallback.ts +10 -10
  616. package/src/server/rsc-entry/error-renderer.ts +27 -27
  617. package/src/server/rsc-entry/helpers.ts +10 -10
  618. package/src/server/rsc-entry/index.ts +51 -47
  619. package/src/server/rsc-entry/render-route.ts +20 -20
  620. package/src/server/rsc-entry/revalidate-renderer.ts +12 -12
  621. package/src/server/rsc-entry/rsc-payload.ts +19 -15
  622. package/src/server/rsc-entry/rsc-stream.ts +8 -8
  623. package/src/server/rsc-entry/ssr-bridge.ts +3 -3
  624. package/src/server/rsc-entry/ssr-renderer.ts +23 -23
  625. package/src/server/rsc-entry/wrap-action-dispatch.ts +9 -9
  626. package/src/server/rsc-prop-warnings.ts +1 -1
  627. package/src/server/sensitive-fields.ts +1 -1
  628. package/src/server/server-timing.ts +1 -1
  629. package/src/server/sitemap-generator.ts +3 -3
  630. package/src/server/sitemap-handler.ts +3 -3
  631. package/src/server/skippable-prefix.ts +7 -7
  632. package/src/server/slot-interception.ts +5 -5
  633. package/src/server/slot-resolver.ts +20 -28
  634. package/src/server/ssr-bridge-types.ts +2 -2
  635. package/src/server/ssr-entry.ts +18 -18
  636. package/src/server/ssr-render.ts +4 -4
  637. package/src/server/ssr-wrappers.tsx +1 -1
  638. package/src/server/state-tree-diff.ts +1 -1
  639. package/src/server/static-generator.ts +6 -6
  640. package/src/server/static-not-found.ts +3 -3
  641. package/src/server/status-code-resolver.ts +1 -1
  642. package/src/server/tracing.ts +5 -5
  643. package/src/server/tree-builder.ts +4 -4
  644. package/src/server/tree-match.ts +1 -1
  645. package/src/server/types.ts +2 -2
  646. package/src/server/utils/mdx-file.ts +2 -2
  647. package/src/server/waituntil-bridge.ts +1 -1
  648. package/src/server/workers-cache-bridge.ts +2 -2
  649. package/src/shared/als-slots.ts +1 -1
  650. package/src/shared/payload-root.ts +2 -2
  651. package/src/shared/rsc-media-type.ts +16 -0
  652. package/src/shared/slot-params.ts +1 -1
  653. package/src/shims/font-google.ts +1 -1
  654. package/src/shims/font-local.ts +1 -1
  655. package/src/shims/navigation-client.ts +5 -5
  656. package/src/shims/navigation.ts +2 -2
  657. package/LICENSE +0 -8
  658. package/dist/_chunks/actions-BjbbNRFN.js.map +0 -1
  659. package/dist/_chunks/build-output-helper-C3DrfzZR.js.map +0 -1
  660. package/dist/_chunks/cache-api-DllJ-Lyw.js.map +0 -1
  661. package/dist/_chunks/cli-check-DJZDc22E.js.map +0 -1
  662. package/dist/_chunks/convention-lint-CpteIpTm.js.map +0 -1
  663. package/dist/_chunks/dist-BA3u1z3W.js +0 -423
  664. package/dist/_chunks/dist-BA3u1z3W.js.map +0 -1
  665. package/dist/_chunks/mdx-file-C005ay-P.js.map +0 -1
  666. package/dist/_chunks/plugin-context-rCinWLiE.js.map +0 -1
  667. package/dist/_chunks/scanner-CAietmj4.js.map +0 -1
  668. package/dist/content/index.d.ts +0 -2
  669. package/dist/content/index.d.ts.map +0 -1
  670. package/dist/content/index.js +0 -0
  671. package/src/content/index.ts +0 -5
  672. package/src/shims/server-only-noop.js +0 -6
@@ -27,15 +27,15 @@
27
27
  * belongs in `createActionClient({ middleware })`.
28
28
  */
29
29
 
30
- import type { FormRerender } from '../action-handler.js';
31
- import { handleActionRequest, isActionRequest } from '../action-handler.js';
32
- import type { BodyLimitsConfig } from '../body-limits.js';
33
- import { validateCsrf, type CsrfConfig } from '../csrf.js';
34
- import { runWithFormFlash } from '../form-flash.js';
35
- import { seedRequestCookies } from '../cookie-context.js';
36
- import type { RouteMatcher } from '../pipeline.js';
37
- import type { SensitiveFieldsOption } from '../sensitive-fields.js';
38
- import type { RevalidateRenderer } from '../actions.js';
30
+ import type { FormRerender } from '../action-handler.ts';
31
+ import { handleActionRequest, isActionRequest } from '../action-handler.ts';
32
+ import type { BodyLimitsConfig } from '../body-limits.ts';
33
+ import { validateCsrf, type CsrfConfig } from '../csrf.ts';
34
+ import { runWithFormFlash } from '../form-flash.ts';
35
+ import { seedRequestCookies } from '../cookie-context.ts';
36
+ import type { RouteMatcher } from '../pipeline.ts';
37
+ import type { SensitiveFieldsOption } from '../sensitive-fields.ts';
38
+ import type { RevalidateRenderer } from '../actions.ts';
39
39
 
40
40
  // ─── Types ────────────────────────────────────────────────────────────────
41
41
 
@@ -16,7 +16,7 @@
16
16
  * Task: TIM-358
17
17
  */
18
18
 
19
- import { isDebug } from './debug.js';
19
+ import { isDebug } from './debug.ts';
20
20
 
21
21
  // ─── Types ────────────────────────────────────────────────────────────────
22
22
 
@@ -23,7 +23,7 @@
23
23
  * See TIM-816
24
24
  */
25
25
 
26
- import { isDebug } from './debug.js';
26
+ import { isDebug } from './debug.ts';
27
27
 
28
28
  // ─── Public types ────────────────────────────────────────────────────────
29
29
 
@@ -11,7 +11,7 @@
11
11
  * Task: LOCAL-290
12
12
  */
13
13
 
14
- import { timingAls } from './als-registry.js';
14
+ import { timingAls } from './als-registry.ts';
15
15
 
16
16
  // ─── Types ────────────────────────────────────────────────────────────────
17
17
 
@@ -14,9 +14,9 @@
14
14
  * See design/16-metadata.md §"Auto-generated Sitemap"
15
15
  */
16
16
 
17
- import { serializeSitemap, serializeSitemapIndex } from './pipeline-metadata.js';
18
- import type { SegmentNode } from '../routing/types.js';
19
- import type { CoercedParams } from '../shared/param-value.js';
17
+ import { serializeSitemap, serializeSitemapIndex } from './pipeline-metadata.ts';
18
+ import type { SegmentNode } from '../routing/types.ts';
19
+ import type { CoercedParams } from '../shared/param-value.ts';
20
20
 
21
21
  // ─── Types ───────────────────────────────────────────────────────────────────
22
22
 
@@ -15,9 +15,9 @@ import {
15
15
  hasUserSitemap,
16
16
  type SitemapConfig,
17
17
  type SitemapResult,
18
- } from './sitemap-generator.js';
19
- import { loadModule } from './safe-load.js';
20
- import type { SegmentNode } from '../routing/types.js';
18
+ } from './sitemap-generator.ts';
19
+ import { loadModule } from './safe-load.ts';
20
+ import type { SegmentNode } from '../routing/types.ts';
21
21
 
22
22
  /** Regex to match /sitemap/N.xml where N is a non-negative integer. */
23
23
  const SITEMAP_PAGE_PATTERN = /^\/sitemap\/(\d+)\.xml$/;
@@ -7,13 +7,13 @@
7
7
  * no dependency on element construction.
8
8
  */
9
9
 
10
- import type { ManifestSegmentNode } from './route-matcher.js';
11
- import type { RouteMatch } from './pipeline.js';
12
- import { shouldSkipSlot, type ClientStateTree } from './state-tree-diff.js';
13
- import { consumedUrlParts } from './chain-url-parts.js';
14
- import { computeSlotContentKey, computeSlotKey } from '../routing/segment-keys.js';
15
- import { matchUrlParts } from './tree-match.js';
16
- import { slotUrlParts } from './slot-resolver.js';
10
+ import type { ManifestSegmentNode } from './route-matcher.ts';
11
+ import type { RouteMatch } from './pipeline.ts';
12
+ import { shouldSkipSlot, type ClientStateTree } from './state-tree-diff.ts';
13
+ import { consumedUrlParts } from './chain-url-parts.ts';
14
+ import { computeSlotContentKey, computeSlotKey } from '../routing/segment-keys.ts';
15
+ import { matchUrlParts } from './tree-match.ts';
16
+ import { slotUrlParts } from './slot-resolver.ts';
17
17
 
18
18
  /**
19
19
  * Truncate the skippable prefix when a skippable layout has slots whose
@@ -15,15 +15,15 @@
15
15
  * See design/07-routing.md §"Intercepting Routes"
16
16
  */
17
17
 
18
- import type { ManifestFile, ManifestSegmentNode } from './route-matcher.js';
19
- import type { SlotMatchResult } from './slot-resolver.js';
18
+ import type { ManifestFile, ManifestSegmentNode } from './route-matcher.ts';
19
+ import type { SlotMatchResult } from './slot-resolver.ts';
20
20
  import {
21
21
  groupByInterceptedAnchor,
22
22
  interceptorProxy,
23
23
  type InterceptorAnchorGroup,
24
- } from '../routing/interception.js';
25
- import { matchUrlParts } from './tree-match.js';
26
- import { pathnameMatchesPattern } from './pipeline-interception.js';
24
+ } from '../routing/interception.ts';
25
+ import { matchUrlParts } from './tree-match.ts';
26
+ import { pathnameMatchesPattern } from './pipeline-interception.ts';
27
27
 
28
28
  /**
29
29
  * Whether an anchor group applies to this target at all.
@@ -16,26 +16,26 @@
16
16
  * See design/02-rendering-pipeline.md §"Parallel Slots"
17
17
  */
18
18
 
19
- import { TimberErrorBoundary } from '../client/error-boundary.js';
20
- import SlotErrorFallback from '../client/slot-error-fallback.js';
21
- import { SlotAccessGate } from './access-gate.js';
22
- import { wrapSegmentWithErrorBoundaries } from './error-boundary-wrapper.js';
23
- import { isClientReference } from './route-element-builder.js';
24
- import { loadModule } from './safe-load.js';
25
- import type { InterceptionContext, RouteMatch } from './pipeline.js';
26
- import { DenySignal, RedirectSignal } from './primitives.js';
27
- import { logRenderError } from './logger.js';
28
- import type { ManifestSegmentNode } from './route-matcher.js';
29
- import { setSlotParams, runWithSlotSegmentParams } from './request-context.js';
30
- import { coerceSlotParams } from './param-coercion.js';
31
- import type { CoercedParams } from '../shared/param-value.js';
32
- import { matchUrlParts } from './tree-match.js';
33
- import { extractUrlParts, consumedPartsThroughSegment } from './chain-url-parts.js';
34
- import { findInterceptingMatch } from './slot-interception.js';
35
- import { SegmentOutlet } from '../client/segment-outlet.js';
36
- import { shouldSkipSlot, type ClientStateTree } from './state-tree-diff.js';
37
- import { computeSlotKey, computeSlotContentKey } from '../routing/segment-keys.js';
38
- import { isStaticRequestDependent } from './request-dep.js';
19
+ import { TimberErrorBoundary } from '../client/error-boundary.tsx';
20
+ import SlotErrorFallback from '../client/slot-error-fallback.tsx';
21
+ import { SlotAccessGate } from './access-gate.tsx';
22
+ import { wrapSegmentWithErrorBoundaries } from './error-boundary-wrapper.ts';
23
+ import { isClientReference } from './route-element-builder.ts';
24
+ import { loadModule } from './safe-load.ts';
25
+ import type { InterceptionContext, RouteMatch } from './pipeline.ts';
26
+ import { DenySignal, RedirectSignal } from './primitives.ts';
27
+ import { logRenderError } from './logger.ts';
28
+ import type { ManifestSegmentNode } from './route-matcher.ts';
29
+ import { setSlotParams, runWithSlotSegmentParams } from './request-context.ts';
30
+ import { coerceSlotParams } from './param-coercion.ts';
31
+ import type { CoercedParams } from '../shared/param-value.ts';
32
+ import { matchUrlParts } from './tree-match.ts';
33
+ import { extractUrlParts, consumedPartsThroughSegment } from './chain-url-parts.ts';
34
+ import { findInterceptingMatch } from './slot-interception.ts';
35
+ import { SegmentOutlet } from '../client/segment-outlet.tsx';
36
+ import { shouldSkipSlot, type ClientStateTree } from './state-tree-diff.ts';
37
+ import { computeSlotKey, computeSlotContentKey } from '../routing/segment-keys.ts';
38
+ import { isStaticRequestDependent } from './request-dep.ts';
39
39
 
40
40
  type CreateElementFn = (...args: unknown[]) => React.ReactElement;
41
41
 
@@ -428,10 +428,6 @@ export interface SlotMatchResult {
428
428
  * pathname at the same point and already used `indexOf(owner)`. Two derivations
429
429
  * of one index is how they came apart; this is the shared one.
430
430
  *
431
- * The `urlPath` search survives only as a fallback for a `slotNode` that is not
432
- * attached to any segment in the chain. Production never does that —
433
- * `resolveSlotProps` iterates `segment.slots` — but unit tests construct a slot
434
- * node standalone, and for those the old behaviour is still the right answer.
435
431
  */
436
432
  export function findSlotOwnerIndex(
437
433
  slotNode: ManifestSegmentNode,
@@ -443,10 +439,6 @@ export function findSlotOwnerIndex(
443
439
  }
444
440
  }
445
441
 
446
- for (let i = segments.length - 1; i >= 0; i--) {
447
- if (segments[i].urlPath === slotNode.urlPath) return i;
448
- }
449
-
450
442
  return -1;
451
443
  }
452
444
 
@@ -29,8 +29,8 @@
29
29
  * and `CLAUDE.md` §"RSC and SSR Are Separate Vite Environments".
30
30
  */
31
31
 
32
- import type { CoercedParams } from '../shared/param-value.js';
33
- import type { SlotParamsRecord } from '../shared/slot-params.js';
32
+ import type { CoercedParams } from '../shared/param-value.ts';
33
+ import type { SlotParamsRecord } from '../shared/slot-params.ts';
34
34
 
35
35
  /**
36
36
  * Navigation context passed from the RSC environment to SSR.
@@ -18,13 +18,13 @@ import config from 'virtual:timber-config';
18
18
  // use codec.serialize() instead of String() fallback for URL interpolation.
19
19
  // @ts-expect-error — virtual module provided by timber-routing plugin
20
20
  import schemaCodecs from 'virtual:timber-schema';
21
- import { setLinkCodecs } from '../params/codec-registry.js';
21
+ import { setLinkCodecs } from '../params/codec-registry.ts';
22
22
  setLinkCodecs(schemaCodecs);
23
23
  import {
24
24
  createFromReadableStream,
25
25
  createFromNodeStream,
26
26
  hasNodeStreamDecode,
27
- } from '../rsc-runtime/ssr.js';
27
+ } from '../rsc-runtime/ssr.ts';
28
28
  import { AsyncLocalStorage } from 'node:async_hooks';
29
29
 
30
30
  import {
@@ -33,26 +33,26 @@ import {
33
33
  nodeReadableToWeb,
34
34
  useNodeStreams,
35
35
  buildSsrResponse,
36
- } from './ssr-render.js';
37
- import { logRenderError } from './logger.js';
38
- import { SsrStreamError } from './primitives.js';
39
- import { createBufferedTransformStream, injectHead, injectRscPayload } from './html-injectors.js';
40
- import { wrapSsrElement } from './ssr-wrappers.js';
41
- import { withSpan } from './tracing.js';
42
- import { setCurrentParams } from '../client/use-segment-params.js';
43
- import { registerSsrDataProvider, type SsrData } from '../client/ssr-data.js';
44
- import { readPayloadTree } from '../shared/payload-root.js';
45
- import type { NavContext } from './ssr-bridge-types.js';
36
+ } from './ssr-render.ts';
37
+ import { logRenderError } from './logger.ts';
38
+ import { SsrStreamError } from './primitives.ts';
39
+ import { createBufferedTransformStream, injectHead, injectRscPayload } from './html-injectors.ts';
40
+ import { wrapSsrElement } from './ssr-wrappers.tsx';
41
+ import { withSpan } from './tracing.ts';
42
+ import { setCurrentParams } from '../client/use-segment-params.ts';
43
+ import { registerSsrDataProvider, type SsrData } from '../client/ssr-data.ts';
44
+ import { readPayloadTree } from '../shared/payload-root.ts';
45
+ import type { NavContext } from './ssr-bridge-types.ts';
46
46
 
47
47
  // Pre-import Node.js stream modules at module load time — not per-request.
48
48
  // Dynamic imports of node-stream-transforms and node:stream/promises were
49
49
  // costing 3-17ms per request due to module resolution overhead.
50
50
  let _nodeStreamImports: {
51
- createNodeBufferedTransform: typeof import('./node-stream-transforms.js').createNodeBufferedTransform;
52
- createNodeHeadInjector: typeof import('./node-stream-transforms.js').createNodeHeadInjector;
53
- createNodeMoveSuffixTransform: typeof import('./node-stream-transforms.js').createNodeMoveSuffixTransform;
54
- createNodeFlightInjector: typeof import('./node-stream-transforms.js').createNodeFlightInjector;
55
- runNodePipelineWithErrorHandling: typeof import('./node-stream-transforms.js').runNodePipelineWithErrorHandling;
51
+ createNodeBufferedTransform: typeof import('./node-stream-transforms.ts').createNodeBufferedTransform;
52
+ createNodeHeadInjector: typeof import('./node-stream-transforms.ts').createNodeHeadInjector;
53
+ createNodeMoveSuffixTransform: typeof import('./node-stream-transforms.ts').createNodeMoveSuffixTransform;
54
+ createNodeFlightInjector: typeof import('./node-stream-transforms.ts').createNodeFlightInjector;
55
+ runNodePipelineWithErrorHandling: typeof import('./node-stream-transforms.ts').runNodePipelineWithErrorHandling;
56
56
  ReadableFromWeb: (
57
57
  webStream: import('stream/web').ReadableStream
58
58
  ) => import('node:stream').Readable;
@@ -61,7 +61,7 @@ let _nodeStreamImports: {
61
61
  if (useNodeStreams) {
62
62
  try {
63
63
  const [transforms, stream] = await Promise.all([
64
- import('./node-stream-transforms.js'),
64
+ import('./node-stream-transforms.ts'),
65
65
  import('node:stream'),
66
66
  ]);
67
67
  _nodeStreamImports = {
@@ -23,9 +23,9 @@
23
23
  import type { ReactNode } from 'react';
24
24
  import { renderToReadableStream } from 'react-dom/server';
25
25
 
26
- import { createRenderTimeout, RenderTimeoutError } from './render-timeout.js';
27
- import { logRenderError, logStreamingError } from './logger.js';
28
- import { isAbortError, NOINDEX_SCRIPT } from './render-utils.js';
26
+ import { createRenderTimeout, RenderTimeoutError } from './render-timeout.ts';
27
+ import { logRenderError, logStreamingError } from './logger.ts';
28
+ import { isAbortError, NOINDEX_SCRIPT } from './render-utils.ts';
29
29
 
30
30
  /**
31
31
  * React's production error sanitization message. When NODE_ENV=production,
@@ -312,7 +312,7 @@ async function renderViaReadableStream(
312
312
 
313
313
  // If a render timeout is configured, create a combined signal that
314
314
  // fires on either request abort OR timeout — whichever comes first.
315
- let renderTimeout: import('./render-timeout.js').RenderTimeout | null = null;
315
+ let renderTimeout: import('./render-timeout.ts').RenderTimeout | null = null;
316
316
  let effectiveSignal = signal;
317
317
  if (timeoutMs && timeoutMs > 0) {
318
318
  renderTimeout = createRenderTimeout(timeoutMs, signal);
@@ -33,7 +33,7 @@
33
33
  */
34
34
 
35
35
  import { createElement, Fragment, type ReactNode } from 'react';
36
- import { withNuqsSsrAdapter } from './nuqs-ssr-provider.js';
36
+ import { withNuqsSsrAdapter } from './nuqs-ssr-provider.tsx';
37
37
 
38
38
  /**
39
39
  * SSR equivalent of NavigationRoot.
@@ -14,7 +14,7 @@
14
14
  * See design/13-security.md §"State tree manipulation"
15
15
  */
16
16
 
17
- import { swallow } from './logger.js';
17
+ import { swallow } from './logger.ts';
18
18
 
19
19
  // ─── State Tree Parsing ──────────────────────────────────────────
20
20
 
@@ -19,17 +19,17 @@
19
19
  * Design docs: design/11-platform.md §"static output mode"
20
20
  */
21
21
 
22
- import type { ManifestRoot, ManifestSegmentNode, ManifestFile } from './route-matcher.js';
23
- import { hasDynamicSegments, hasUserSitemap, resolvePathWithParams } from './sitemap-generator.js';
24
- import { loadModule } from './safe-load.js';
25
- import { METADATA_ROUTE_CONVENTIONS, resolveServePathForFile } from './metadata-routes.js';
26
- import { RSC_CONTENT_TYPE } from '../shared/rsc-media-type.js';
22
+ import type { ManifestRoot, ManifestSegmentNode, ManifestFile } from './route-matcher.ts';
23
+ import { hasDynamicSegments, hasUserSitemap, resolvePathWithParams } from './sitemap-generator.ts';
24
+ import { loadModule } from './safe-load.ts';
25
+ import { METADATA_ROUTE_CONVENTIONS, resolveServePathForFile } from './metadata-routes.ts';
26
+ import { RSC_CONTENT_TYPE } from '../shared/rsc-media-type.ts';
27
27
  import {
28
28
  NOT_FOUND_ENTRY_PATH,
29
29
  NOT_FOUND_PROBE_PATH,
30
30
  resolveNotFoundPage,
31
31
  type NotFoundProbe,
32
- } from './static-not-found.js';
32
+ } from './static-not-found.ts';
33
33
 
34
34
  // ─── Types ───────────────────────────────────────────────────────────────
35
35
 
@@ -12,9 +12,9 @@
12
12
  * to a developer, and a wrong one sends them to the wrong file.
13
13
  */
14
14
 
15
- import { resolveStatusFile } from './status-code-resolver.js';
16
- import { DEFAULT_STATUS_PAGE_CONTENT_TYPE, defaultStatusPageHtml } from './default-status-page.js';
17
- import type { ManifestSegmentNode } from './route-matcher.js';
15
+ import { resolveStatusFile } from './status-code-resolver.ts';
16
+ import { DEFAULT_STATUS_PAGE_CONTENT_TYPE, defaultStatusPageHtml } from './default-status-page.ts';
17
+ import type { ManifestSegmentNode } from './route-matcher.ts';
18
18
 
19
19
  /**
20
20
  * The probe path. `_timber/` is the framework's reserved prefix and
@@ -31,7 +31,7 @@
31
31
  * Then framework default (returns null)
32
32
  */
33
33
 
34
- import type { SegmentNode } from '../routing/types.js';
34
+ import type { SegmentNode } from '../routing/types.ts';
35
35
 
36
36
  // ─── Types ───────────────────────────────────────────────────────────────────
37
37
 
@@ -9,10 +9,10 @@
9
9
  */
10
10
 
11
11
  import { randomUUID } from 'node:crypto';
12
- import { traceAls, type TraceStore } from './als-registry.js';
12
+ import { traceAls, type TraceStore } from './als-registry.ts';
13
13
 
14
14
  // Re-export the TraceStore type for public API consumers.
15
- export type { TraceStore } from './als-registry.js';
15
+ export type { TraceStore } from './als-registry.ts';
16
16
 
17
17
  // ─── Public API ───────────────────────────────────────────────────────────
18
18
 
@@ -116,7 +116,7 @@ const DEV_TRACING_INIT_KEY = Symbol.for('timber.dev.tracing-initialized');
116
116
  * registers. Only called in dev mode — zero overhead in production.
117
117
  */
118
118
  export async function initDevTracing(
119
- config: import('../dev-tools/logger.js').DevLoggerConfig
119
+ config: import('../dev-tools/logger.ts').DevLoggerConfig
120
120
  ): Promise<void> {
121
121
  const globals = globalThis as Record<symbol, unknown>;
122
122
  if (globals[DEV_TRACING_INIT_KEY]) return;
@@ -124,12 +124,12 @@ export async function initDevTracing(
124
124
  const api = await getOtelApi();
125
125
  if (!api) return;
126
126
 
127
- let DevSpanProcessor: typeof import('../dev-tools/instrumentation.js').DevSpanProcessor;
127
+ let DevSpanProcessor: typeof import('../dev-tools/instrumentation.ts').DevSpanProcessor;
128
128
  let BasicTracerProvider: typeof import('@opentelemetry/sdk-trace-base').BasicTracerProvider;
129
129
  let AsyncLocalStorageContextManager: typeof import('@opentelemetry/context-async-hooks').AsyncLocalStorageContextManager;
130
130
 
131
131
  try {
132
- ({ DevSpanProcessor } = await import('../dev-tools/instrumentation.js'));
132
+ ({ DevSpanProcessor } = await import('../dev-tools/instrumentation.ts'));
133
133
  ({ BasicTracerProvider } = await import('@opentelemetry/sdk-trace-base'));
134
134
  ({ AsyncLocalStorageContextManager } = await import('@opentelemetry/context-async-hooks'));
135
135
  } catch (err) {
@@ -11,9 +11,9 @@
11
11
  */
12
12
 
13
13
  import type { ReactNode } from 'react';
14
- import type { RouteFile, SegmentNode } from '../routing/types.js';
15
- import { wrapSegmentWithErrorBoundaries } from './error-boundary-wrapper.js';
16
- import type { LoadedComponent } from './utils/element-type.js';
14
+ import type { RouteFile, SegmentNode } from '../routing/types.ts';
15
+ import { wrapSegmentWithErrorBoundaries } from './error-boundary-wrapper.ts';
16
+ import type { LoadedComponent } from './utils/element-type.ts';
17
17
 
18
18
  // ─── Types ───────────────────────────────────────────────────────────────────
19
19
 
@@ -104,7 +104,7 @@ export interface AccessGateProps {
104
104
  * Omitted for skipped segments — a deny there must hard-navigate to
105
105
  * avoid rendering the deny page inside cached layout chrome (TIM-1074).
106
106
  */
107
- denyPages?: import('./deny-boundary.js').DenyPageEntry[];
107
+ denyPages?: import('./deny-boundary.ts').DenyPageEntry[];
108
108
  /**
109
109
  * When true, this gate wraps a skipped segment. On deny, the gate
110
110
  * records the deny in ALS and rethrows so the response path can
@@ -15,7 +15,7 @@
15
15
  * See design/07-routing.md §"Request Lifecycle" and TIM-940.
16
16
  */
17
17
 
18
- import type { SegmentNode } from '../routing/types.js';
18
+ import type { SegmentNode } from '../routing/types.ts';
19
19
 
20
20
  // ─── Public API ───────────────────────────────────────────────────────────
21
21
 
@@ -1,7 +1,7 @@
1
1
  // Server-side type definitions
2
2
 
3
- import type { CoercedParams } from '../shared/param-value.js';
4
- import type { EarlyHint } from './early-hints.js';
3
+ import type { CoercedParams } from '../shared/param-value.ts';
4
+ import type { EarlyHint } from './early-hints.ts';
5
5
 
6
6
  /**
7
7
  * A value that is safe to pass through `JSON.stringify` without data loss.
@@ -9,8 +9,8 @@
9
9
  * See design/10-error-handling.md §"Status-Code File Variants".
10
10
  */
11
11
 
12
- /** MDX/markdown extensions — server components by default. */
13
- const MDX_EXTENSIONS = new Set(['.mdx', '.md']);
12
+ /** MDX/markdown extensions (dotted) — the canonical list, also used by plugins/mdx.ts. */
13
+ export const MDX_EXTENSIONS = new Set(['.mdx', '.md']);
14
14
 
15
15
  /**
16
16
  * Check if a file path ends with an MDX/markdown extension.
@@ -10,7 +10,7 @@
10
10
  * Design doc: design/11-platform.md §"waitUntil()"
11
11
  */
12
12
 
13
- import { waitUntilAls } from './als-registry.js';
13
+ import { waitUntilAls } from './als-registry.ts';
14
14
 
15
15
  /**
16
16
  * Run a function with a per-request waitUntil handler installed.
@@ -9,8 +9,8 @@
9
9
  * Design doc: design/06-caching.md, design/25-production-deployments.md
10
10
  */
11
11
 
12
- import { workersCachePurgeAls } from './als-registry.js';
13
- import type { WorkersCachePurgeCtx } from './als-registry.js';
12
+ import { workersCachePurgeAls } from './als-registry.ts';
13
+ import type { WorkersCachePurgeCtx } from './als-registry.ts';
14
14
 
15
15
  /**
16
16
  * Run a function with Workers Cache purge context available.
@@ -31,7 +31,7 @@
31
31
  * design/41-global-params.md.
32
32
  */
33
33
 
34
- import type { CoercedParams } from './param-value.js';
34
+ import type { CoercedParams } from './param-value.ts';
35
35
 
36
36
  interface AlsSlot<T> {
37
37
  /** Register the server-side getter. Called once at module-init time. */
@@ -32,8 +32,8 @@
32
32
  * helpers here — producer and consumer do not each describe the payload.
33
33
  */
34
34
 
35
- import type { CoercedParams } from './param-value.js';
36
- import type { SlotParamsRecord } from './slot-params.js';
35
+ import type { CoercedParams } from './param-value.ts';
36
+ import type { SlotParamsRecord } from './slot-params.ts';
37
37
 
38
38
  /** The params published beside a tree. */
39
39
  export interface PublishedParams {
@@ -41,3 +41,19 @@ export const RSC_CONTENT_TYPE = 'text/x-component';
41
41
  export function isRscRequest(req: Request): boolean {
42
42
  return (req.headers.get('Accept') ?? '').includes(RSC_CONTENT_TYPE);
43
43
  }
44
+
45
+ /**
46
+ * Does this Content-Type header value designate an RSC Flight payload?
47
+ *
48
+ * Case-insensitive exact media-type match per RFC 9110 §8.3.1 — media types
49
+ * are case-insensitive. Parameters (`;charset=utf-8`) are stripped before
50
+ * comparison.
51
+ *
52
+ * Contrast with `isRscRequest`, which uses substring containment because
53
+ * `Accept` is a list of types. A `Content-Type` header names exactly one
54
+ * type, so substring would over-match (e.g. `text/x-component-v2`).
55
+ */
56
+ export function isRscContentType(contentType: string | null): boolean {
57
+ if (!contentType) return false;
58
+ return contentType.split(';')[0].trim().toLowerCase() === RSC_CONTENT_TYPE;
59
+ }
@@ -18,7 +18,7 @@
18
18
  * See design/41-global-params.md §"Params in a parallel slot".
19
19
  */
20
20
 
21
- import type { CoercedParams } from './param-value.js';
21
+ import type { CoercedParams } from './param-value.ts';
22
22
 
23
23
  /** Slot tree path → that slot's own coerced params. */
24
24
  export type SlotParamsRecord = Record<string, CoercedParams>;
@@ -17,7 +17,7 @@
17
17
  * Design doc: 24-fonts.md, "Next.js Font Compatibility"
18
18
  */
19
19
 
20
- import type { GoogleFontConfig, FontResult } from '../fonts/types.js';
20
+ import type { GoogleFontConfig, FontResult } from '../fonts/types.ts';
21
21
 
22
22
  export type { GoogleFontConfig, FontResult };
23
23
 
@@ -13,7 +13,7 @@
13
13
  * Design doc: 24-fonts.md, "Next.js Font Compatibility"
14
14
  */
15
15
 
16
- import type { LocalFontConfig, FontResult } from '../fonts/types.js';
16
+ import type { LocalFontConfig, FontResult } from '../fonts/types.ts';
17
17
 
18
18
  export type { LocalFontConfig, FontResult };
19
19
 
@@ -23,13 +23,13 @@
23
23
  * See design/14-ecosystem.md §"next/navigation" for the full shim audit.
24
24
  */
25
25
 
26
- import { assertRelativeRedirectPath } from '../shared/href-validation.js';
27
- import type { RedirectTypeValue } from '../shared/redirect-type.js';
26
+ import { assertRelativeRedirectPath } from '../shared/href-validation.ts';
27
+ import type { RedirectTypeValue } from '../shared/redirect-type.ts';
28
28
 
29
29
  // Hooks — useSegmentParams and useSearchParams import from direct modules
30
30
  // since they're no longer in @timber-js/app/client public exports.
31
- export { useSegmentParams, useSegmentParams as useParams } from '../client/use-segment-params.js';
32
- export { useSearchParams } from '../client/use-search-params.js';
31
+ export { useSegmentParams, useSegmentParams as useParams } from '../client/use-segment-params.ts';
32
+ export { useSearchParams } from '../client/use-search-params.ts';
33
33
  export {
34
34
  usePathname,
35
35
  useRouter,
@@ -38,7 +38,7 @@ export {
38
38
  } from '@timber-js/app/client';
39
39
 
40
40
  // Single source of truth shared with server/primitives.ts.
41
- export { RedirectType } from '../shared/redirect-type.js';
41
+ export { RedirectType } from '../shared/redirect-type.ts';
42
42
 
43
43
  /** Throw a plain Error carrying a framework signal digest. */
44
44
  function throwSignal(message: string, digest: Record<string, unknown>): never {
@@ -10,8 +10,8 @@
10
10
  */
11
11
 
12
12
  // Hooks re-exported for next/navigation compat
13
- export { useSegmentParams, useSegmentParams as useParams } from '../client/use-segment-params.js';
14
- export { useSearchParams } from '../client/use-search-params.js';
13
+ export { useSegmentParams, useSegmentParams as useParams } from '../client/use-segment-params.ts';
14
+ export { useSearchParams } from '../client/use-search-params.ts';
15
15
  export {
16
16
  usePathname,
17
17
  useRouter,
package/LICENSE DELETED
@@ -1,8 +0,0 @@
1
- DONTFUCKINGUSE LICENSE
2
-
3
- Copyright (c) 2025 Daniel Saewitz
4
-
5
- This software may not be used, copied, modified, merged, published,
6
- distributed, sublicensed, or sold by anyone other than the copyright holder.
7
-
8
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.