@farm.js/core 0.1.31 → 0.1.35

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 (352) hide show
  1. package/README.md +1 -1
  2. package/dist/agent-runtime.cjs +70 -15
  3. package/dist/agent-runtime.d.mts +4 -5
  4. package/dist/agent-runtime.d.ts +4 -5
  5. package/dist/agent-runtime.mjs +59 -4
  6. package/dist/api/route-manager.cjs +17 -14
  7. package/dist/api/route-manager.d.mts +6 -7
  8. package/dist/api/route-manager.d.ts +6 -7
  9. package/dist/api/route-manager.mjs +16 -13
  10. package/dist/api/runtime.cjs +12 -8
  11. package/dist/api/runtime.d.mts +4 -5
  12. package/dist/api/runtime.d.ts +4 -5
  13. package/dist/api/runtime.mjs +12 -8
  14. package/dist/api.cjs +20 -17
  15. package/dist/api.d.mts +7 -8
  16. package/dist/api.d.ts +7 -8
  17. package/dist/api.mjs +19 -16
  18. package/dist/{app-sUJ3jnTZ.d.ts → app-BXB3JZYc.d.ts} +38 -12
  19. package/dist/{app-DAuUTIZf.d.mts → app-D_j9AAVL.d.mts} +38 -12
  20. package/dist/app-markdown.cjs +8 -6
  21. package/dist/app-markdown.d.mts +6 -7
  22. package/dist/app-markdown.d.ts +6 -7
  23. package/dist/app-markdown.mjs +7 -5
  24. package/dist/cache.cjs +2 -2
  25. package/dist/cache.d.mts +10 -1
  26. package/dist/cache.d.ts +10 -1
  27. package/dist/cache.mjs +1 -1
  28. package/dist/{chunk-BXFWA23T.mjs → chunk-22LTEMGQ.mjs} +3 -3
  29. package/dist/{chunk-YZTASLPQ.cjs → chunk-27ZWSI3W.cjs} +2 -2
  30. package/dist/{chunk-WBIH66JK.mjs → chunk-2ELDTQRN.mjs} +5 -2
  31. package/dist/{chunk-K7CELQLK.cjs → chunk-2F2ER724.cjs} +54 -29
  32. package/dist/{chunk-O3DTUAX2.mjs → chunk-2G2NNLE2.mjs} +6 -77
  33. package/dist/{chunk-NRVGEI5I.mjs → chunk-2NNMOPDN.mjs} +4 -210
  34. package/dist/{chunk-CTV2TTNP.cjs → chunk-3BHT4WMP.cjs} +16 -87
  35. package/dist/chunk-3BU22U3M.cjs +237 -0
  36. package/dist/{chunk-MM5D6VLP.mjs → chunk-3KZS4SUS.mjs} +33 -14
  37. package/dist/{chunk-VA62MHFV.mjs → chunk-3PXS2MHU.mjs} +1 -1
  38. package/dist/chunk-3SDFA7UF.cjs +701 -0
  39. package/dist/{chunk-4IEPYMHF.mjs → chunk-3UEVPCGW.mjs} +1 -1
  40. package/dist/{chunk-MXDTKXO6.cjs → chunk-3UH7MRCP.cjs} +73 -26
  41. package/dist/{chunk-7QOCTYBS.mjs → chunk-4JHOT46A.mjs} +37 -1
  42. package/dist/{chunk-6L6DQR5W.mjs → chunk-4KU5Q7C2.mjs} +917 -305
  43. package/dist/{chunk-3FCFQP5V.cjs → chunk-4MMGO7YW.cjs} +25 -25
  44. package/dist/{chunk-5HGR3W6O.mjs → chunk-5SJWVY6R.mjs} +8 -0
  45. package/dist/{chunk-KZLND3D2.cjs → chunk-62XKI4Z3.cjs} +7 -5
  46. package/dist/{chunk-FJZ3DQLK.mjs → chunk-6DU6UFUE.mjs} +13 -12
  47. package/dist/{chunk-TEN4FIZU.mjs → chunk-6ETPZTJI.mjs} +513 -3
  48. package/dist/{chunk-VUMAE7NC.mjs → chunk-6TJOML4E.mjs} +92 -31
  49. package/dist/{chunk-3ATMYLLJ.mjs → chunk-6WCPV6G2.mjs} +1 -1
  50. package/dist/{chunk-FYRBX5IY.cjs → chunk-73MC7ZL6.cjs} +2 -2
  51. package/dist/chunk-75RZHGLS.cjs +135 -0
  52. package/dist/{chunk-QZRVZSPN.cjs → chunk-77GNHH2Z.cjs} +3 -3
  53. package/dist/{chunk-FXUUWYAX.cjs → chunk-7GLPRTTF.cjs} +12 -2
  54. package/dist/{chunk-A777V5WU.cjs → chunk-7L5V3KQO.cjs} +2 -2
  55. package/dist/{chunk-4ZQQL4IU.mjs → chunk-AHGECQEW.mjs} +1 -1
  56. package/dist/{chunk-RG3ZOTG5.cjs → chunk-AI7QMY7O.cjs} +10 -3
  57. package/dist/{chunk-YMCXWPWK.mjs → chunk-BCMSYSN2.mjs} +4 -1
  58. package/dist/{chunk-I6XDAKWQ.mjs → chunk-BTHHUD7Q.mjs} +14 -0
  59. package/dist/{chunk-LI2LMOLR.mjs → chunk-C35ZBVRD.mjs} +12 -3
  60. package/dist/chunk-C4SPBWFM.cjs +26 -0
  61. package/dist/{chunk-YQVSHTMR.mjs → chunk-CP6X4AEU.mjs} +1 -1
  62. package/dist/{chunk-QZCT2CQ4.mjs → chunk-CXEN47J3.mjs} +64 -2
  63. package/dist/{chunk-WNLBF77X.cjs → chunk-D227TIEN.cjs} +28 -16
  64. package/dist/{chunk-ROUTX2E5.cjs → chunk-DBNKI4NF.cjs} +12 -3
  65. package/dist/{chunk-J3LOGE4T.cjs → chunk-DQQOKWYA.cjs} +5 -5
  66. package/dist/chunk-E5GNDG5F.mjs +701 -0
  67. package/dist/{chunk-X7KZBF63.cjs → chunk-EFCQPQMG.cjs} +40 -4
  68. package/dist/{chunk-K3F2E6GS.cjs → chunk-EJQT6KZN.cjs} +2 -2
  69. package/dist/{chunk-3LUF2PE2.cjs → chunk-EK4QAEFZ.cjs} +67 -5
  70. package/dist/{chunk-VVBO3QH7.mjs → chunk-ENLZ4R3Y.mjs} +10 -1
  71. package/dist/{chunk-KJ2TIHZZ.cjs → chunk-EUV4YR3V.cjs} +3 -2
  72. package/dist/{chunk-E76XC6ZG.mjs → chunk-EZDQRNQ7.mjs} +2 -2
  73. package/dist/{chunk-TOVMYGYW.mjs → chunk-F2SE2VDO.mjs} +1 -1
  74. package/dist/{chunk-MNUGPHLN.mjs → chunk-F6Z3Y5KL.mjs} +5 -3
  75. package/dist/{chunk-DFLLARUK.cjs → chunk-F7JZENPF.cjs} +35 -34
  76. package/dist/{chunk-BSPQVJ4A.mjs → chunk-FDR64H6B.mjs} +13 -0
  77. package/dist/{chunk-5OVTOKGH.cjs → chunk-FFFW3OQ7.cjs} +2 -2
  78. package/dist/{chunk-D4JE5NNV.cjs → chunk-FNO7A7CM.cjs} +5 -5
  79. package/dist/{chunk-Z5HIWVDP.cjs → chunk-FTFYRMQQ.cjs} +80 -91
  80. package/dist/chunk-FZ6YYU2W.mjs +65 -0
  81. package/dist/{chunk-X7WVQMIB.mjs → chunk-G5RT7EXW.mjs} +11 -5
  82. package/dist/{chunk-IXUY2F5U.mjs → chunk-GCXWJJKH.mjs} +4 -7
  83. package/dist/{chunk-ES4B2IXW.cjs → chunk-GFHLGIYC.cjs} +8 -8
  84. package/dist/{chunk-SORB3MAR.cjs → chunk-GQ3Z3IZI.cjs} +17 -17
  85. package/dist/{chunk-75WGQVQA.cjs → chunk-HITLGIAO.cjs} +10 -1
  86. package/dist/{chunk-HBTUGXHS.cjs → chunk-HLJ6MBUZ.cjs} +7 -4
  87. package/dist/{chunk-JLCQGPXE.mjs → chunk-HMIJDL7S.mjs} +51 -62
  88. package/dist/{chunk-F6XEGFHO.mjs → chunk-HUMR6LSU.mjs} +11 -1
  89. package/dist/{chunk-IMB4PIAR.cjs → chunk-ICUQICNC.cjs} +1441 -828
  90. package/dist/{chunk-ZCU4NZ3M.cjs → chunk-IE7XCHH3.cjs} +4 -4
  91. package/dist/{chunk-I26CZYPV.cjs → chunk-IHNIDL6H.cjs} +50 -7
  92. package/dist/{chunk-2FQHH5SC.mjs → chunk-IHNMMXHV.mjs} +49 -24
  93. package/dist/{chunk-YVGAEAA5.cjs → chunk-IPXLADVO.cjs} +522 -12
  94. package/dist/{chunk-VHJGDMCG.cjs → chunk-IWZKTWHZ.cjs} +2 -2
  95. package/dist/chunk-JG6DJF5A.mjs +238 -0
  96. package/dist/{chunk-KROWKCUH.cjs → chunk-JGLC4TO3.cjs} +8 -1
  97. package/dist/{chunk-5TISYEQF.mjs → chunk-JM5XPKWH.mjs} +10 -3
  98. package/dist/{chunk-BJJATPEC.mjs → chunk-KN7K4VQN.mjs} +1 -1
  99. package/dist/{chunk-WPYFSQKK.cjs → chunk-KNBBQHO2.cjs} +15 -1
  100. package/dist/{chunk-XWAWFQFS.cjs → chunk-KXWRO25S.cjs} +7 -4
  101. package/dist/chunk-LSKZMJMP.cjs +65 -0
  102. package/dist/{chunk-2N5PX3LS.mjs → chunk-LYV44OIR.mjs} +7 -1
  103. package/dist/chunk-M7MKQXAF.cjs +87 -0
  104. package/dist/{chunk-IV6CQY7O.mjs → chunk-MSSFIQGM.mjs} +63 -13
  105. package/dist/{chunk-KH7BN726.cjs → chunk-N4UOK6ZI.cjs} +8 -2
  106. package/dist/{chunk-JNGIWIY6.mjs → chunk-NPC7VWJE.mjs} +2 -2
  107. package/dist/chunk-NRDBW4MP.mjs +45 -0
  108. package/dist/{chunk-ILWLPEVO.mjs → chunk-NRSN7G7E.mjs} +2 -2
  109. package/dist/chunk-OFZUJMCU.mjs +601 -0
  110. package/dist/{chunk-L4DVIHOC.mjs → chunk-OKZUAXHF.mjs} +1 -1
  111. package/dist/{chunk-EM6SBQKM.cjs → chunk-OMVAU7NT.cjs} +27 -2
  112. package/dist/{chunk-AHAJGAYD.mjs → chunk-PDOCJ6RY.mjs} +2 -2
  113. package/dist/{chunk-IFI5FXEZ.cjs → chunk-PFQKNERH.cjs} +562 -251
  114. package/dist/{chunk-S5GDHOE4.mjs → chunk-PZNL3WEG.mjs} +48 -5
  115. package/dist/{chunk-GZYH4OER.mjs → chunk-Q3VLETLE.mjs} +2 -2
  116. package/dist/{chunk-WG2KHOMN.mjs → chunk-QAU5JD57.mjs} +571 -260
  117. package/dist/{chunk-FV45CKBC.mjs → chunk-QCFBDFRS.mjs} +1 -1
  118. package/dist/{chunk-75BRBIFP.cjs → chunk-QCVE2OCI.cjs} +5 -8
  119. package/dist/{chunk-6ZCMSZ5U.mjs → chunk-QE6VAKLT.mjs} +1 -1
  120. package/dist/{chunk-QG5HNS7P.mjs → chunk-QORUJDIV.mjs} +2 -2
  121. package/dist/chunk-RHAZ22ZN.mjs +87 -0
  122. package/dist/{chunk-CUMINO7Z.cjs → chunk-RU3M2FIK.cjs} +18 -14
  123. package/dist/{chunk-DGXN3L4D.mjs → chunk-SAZVVAJH.mjs} +5 -5
  124. package/dist/{chunk-MKMBQSNQ.mjs → chunk-SC2WYWPF.mjs} +3 -3
  125. package/dist/{chunk-QCFFHV5H.mjs → chunk-SMHH4VDG.mjs} +1 -1
  126. package/dist/{chunk-UAFSBWNT.mjs → chunk-SOMHP6GF.mjs} +63 -16
  127. package/dist/{chunk-ND224OE2.cjs → chunk-TKSCR644.cjs} +34 -15
  128. package/dist/{chunk-4V7GIE2U.mjs → chunk-UAORZ7QA.mjs} +3 -3
  129. package/dist/{chunk-IQXFRNY2.cjs → chunk-UFDAAQFX.cjs} +2 -2
  130. package/dist/{chunk-6VYZOPOT.mjs → chunk-UJD4PHYB.mjs} +15 -11
  131. package/dist/{chunk-ZHVYQL3H.cjs → chunk-ULAWS2PA.cjs} +97 -36
  132. package/dist/{chunk-5ZSWG4UX.cjs → chunk-UXFQ3UDA.cjs} +14 -1
  133. package/dist/{chunk-MPEYMSCF.cjs → chunk-VFQT3LAO.cjs} +5 -5
  134. package/dist/{chunk-2FXWWUE5.cjs → chunk-VZJR7UTG.cjs} +6 -6
  135. package/dist/{chunk-2AKFKCHA.mjs → chunk-W7LF2J2S.mjs} +1 -1
  136. package/dist/chunk-WWFTAUFG.cjs +45 -0
  137. package/dist/{chunk-JBC2FKRW.mjs → chunk-WWIKMBRN.mjs} +2 -1
  138. package/dist/{chunk-75DYEVXI.cjs → chunk-X6W5FFH6.cjs} +11 -11
  139. package/dist/{chunk-EXLKRR4U.cjs → chunk-XBML5KMG.cjs} +12 -12
  140. package/dist/{chunk-PZNCMPJF.cjs → chunk-XCACDAZZ.cjs} +18 -12
  141. package/dist/{chunk-JATSG2ZO.mjs → chunk-XCMCS4DA.mjs} +15 -3
  142. package/dist/{chunk-UJ2C4ICS.cjs → chunk-XJXBIP67.cjs} +4 -4
  143. package/dist/{chunk-XF7Q24PF.mjs → chunk-Y7RKTKYI.mjs} +25 -0
  144. package/dist/{chunk-VYZSOYR4.cjs → chunk-YC6V7PWE.cjs} +1 -1
  145. package/dist/{chunk-F6OHXPWR.mjs → chunk-YFILVET3.mjs} +8 -1
  146. package/dist/{chunk-JLRDISQL.cjs → chunk-YKX5BK66.cjs} +7 -7
  147. package/dist/{chunk-DYEJQTDN.cjs → chunk-YSCV4SJF.cjs} +4 -4
  148. package/dist/chunk-YSLWRWWP.cjs +601 -0
  149. package/dist/{chunk-5LJCOSKT.mjs → chunk-YULD7ICZ.mjs} +1 -1
  150. package/dist/{chunk-2SDO73HK.cjs → chunk-YWN746US.cjs} +64 -14
  151. package/dist/chunk-Z2HLU4IX.cjs +238 -0
  152. package/dist/chunk-ZLAT2CWY.mjs +135 -0
  153. package/dist/{chunk-T5CERMEH.cjs → chunk-ZXGAFZDO.cjs} +2 -2
  154. package/dist/{client-plugins-BX2ptm4H.d.mts → client-plugins-CvIslxWi.d.mts} +232 -8
  155. package/dist/{client-plugins-BmxM5KW_.d.ts → client-plugins-HIyulDym.d.ts} +232 -8
  156. package/dist/client-plugins.d.mts +4 -5
  157. package/dist/client-plugins.d.ts +4 -5
  158. package/dist/client.cjs +10 -10
  159. package/dist/client.d.mts +8 -9
  160. package/dist/client.d.ts +8 -9
  161. package/dist/client.mjs +9 -9
  162. package/dist/config.d.mts +4 -5
  163. package/dist/config.d.ts +4 -5
  164. package/dist/{devtools-EWRDHCD5.cjs → devtools-EAUY43BS.cjs} +14 -12
  165. package/dist/{devtools-BPBCYOU6.mjs → devtools-EE5RIBTH.mjs} +13 -11
  166. package/dist/docs.cjs +17 -15
  167. package/dist/docs.d.mts +46 -4
  168. package/dist/docs.d.ts +46 -4
  169. package/dist/docs.mjs +16 -14
  170. package/dist/environment/vite.cjs +2 -2
  171. package/dist/environment/vite.mjs +1 -1
  172. package/dist/headers.cjs +4 -4
  173. package/dist/headers.mjs +3 -3
  174. package/dist/i18n/client.cjs +14 -13
  175. package/dist/i18n/client.d.mts +2 -2
  176. package/dist/i18n/client.d.ts +2 -2
  177. package/dist/i18n/client.mjs +5 -4
  178. package/dist/i18n/index.cjs +3 -2
  179. package/dist/i18n/index.d.mts +3 -3
  180. package/dist/i18n/index.d.ts +3 -3
  181. package/dist/i18n/index.mjs +2 -1
  182. package/dist/i18n/server.cjs +6 -5
  183. package/dist/i18n/server.d.mts +5 -5
  184. package/dist/i18n/server.d.ts +5 -5
  185. package/dist/i18n/server.mjs +5 -4
  186. package/dist/image/server.cjs +3 -3
  187. package/dist/image/server.mjs +2 -2
  188. package/dist/image/sharp.cjs +10 -10
  189. package/dist/image/sharp.mjs +2 -2
  190. package/dist/{index-a-8Z5kZU.d.mts → index-BJJfLxJo.d.mts} +2 -2
  191. package/dist/{index-BWVfxIsO.d.ts → index-CwoOP-MW.d.ts} +2 -2
  192. package/dist/index.cjs +75 -60
  193. package/dist/index.d.mts +21 -22
  194. package/dist/index.d.ts +21 -22
  195. package/dist/index.mjs +79 -64
  196. package/dist/integrations.cjs +7 -4
  197. package/dist/integrations.d.mts +4 -5
  198. package/dist/integrations.d.ts +4 -5
  199. package/dist/integrations.mjs +8 -5
  200. package/dist/internal/app-markdown-runtime.cjs +7 -5
  201. package/dist/internal/app-markdown-runtime.d.mts +17 -7
  202. package/dist/internal/app-markdown-runtime.d.ts +17 -7
  203. package/dist/internal/app-markdown-runtime.mjs +6 -4
  204. package/dist/internal/build-runtime.cjs +44 -41
  205. package/dist/internal/build-runtime.d.mts +6 -7
  206. package/dist/internal/build-runtime.d.ts +6 -7
  207. package/dist/internal/build-runtime.mjs +43 -40
  208. package/dist/internal/cli-runtime.cjs +23 -20
  209. package/dist/internal/cli-runtime.mjs +22 -19
  210. package/dist/internal/client-error-overlay.cjs +6 -6
  211. package/dist/internal/client-error-overlay.mjs +2 -2
  212. package/dist/internal/client-runtime.cjs +5 -3
  213. package/dist/internal/client-runtime.d.mts +9 -1
  214. package/dist/internal/client-runtime.d.ts +9 -1
  215. package/dist/internal/client-runtime.mjs +4 -2
  216. package/dist/internal/compression-runtime.d.mts +4 -5
  217. package/dist/internal/compression-runtime.d.ts +4 -5
  218. package/dist/internal/config-runtime.cjs +14 -12
  219. package/dist/internal/config-runtime.d.mts +5 -6
  220. package/dist/internal/config-runtime.d.ts +5 -6
  221. package/dist/internal/config-runtime.mjs +13 -11
  222. package/dist/internal/infra-analytics-runtime.cjs +4 -4
  223. package/dist/internal/infra-analytics-runtime.mjs +2 -2
  224. package/dist/internal/isolated-boundary.cjs +3 -2
  225. package/dist/internal/isolated-boundary.d.mts +1 -0
  226. package/dist/internal/isolated-boundary.d.ts +1 -0
  227. package/dist/internal/isolated-boundary.mjs +2 -1
  228. package/dist/internal/metadata-image-runtime.cjs +3 -3
  229. package/dist/internal/metadata-image-runtime.mjs +2 -2
  230. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  231. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  232. package/dist/internal/production-runtime.cjs +61 -31
  233. package/dist/internal/production-runtime.d.mts +165 -18
  234. package/dist/internal/production-runtime.d.ts +165 -18
  235. package/dist/internal/production-runtime.mjs +57 -27
  236. package/dist/internal/request-cookies.cjs +4 -2
  237. package/dist/internal/request-cookies.d.mts +9 -1
  238. package/dist/internal/request-cookies.d.ts +9 -1
  239. package/dist/internal/request-cookies.mjs +3 -1
  240. package/dist/internal/server-tree.cjs +12 -0
  241. package/dist/internal/server-tree.d.mts +27 -0
  242. package/dist/internal/server-tree.d.ts +27 -0
  243. package/dist/internal/server-tree.mjs +12 -0
  244. package/dist/markdown.cjs +4 -4
  245. package/dist/markdown.d.mts +4 -5
  246. package/dist/markdown.d.ts +4 -5
  247. package/dist/markdown.mjs +3 -3
  248. package/dist/{metadata-DsEaK7mQ.d.mts → metadata-BnLDsUOS.d.ts} +16 -2
  249. package/dist/{metadata-fwZ3gfG6.d.ts → metadata-WGpBYcGn.d.mts} +16 -2
  250. package/dist/middleware.cjs +18 -8
  251. package/dist/middleware.d.mts +27 -9
  252. package/dist/middleware.d.ts +27 -9
  253. package/dist/middleware.mjs +18 -8
  254. package/dist/navigation.cjs +7 -7
  255. package/dist/navigation.d.mts +7 -8
  256. package/dist/navigation.d.ts +7 -8
  257. package/dist/navigation.mjs +6 -6
  258. package/dist/{nitro-NAKCRVHX.mjs → nitro-MXRDCXWZ.mjs} +5 -5
  259. package/dist/{nitro-VYDZGYFY.cjs → nitro-OVPLKPE2.cjs} +7 -7
  260. package/dist/{observability-BupkiN0m.d.mts → observability-CoXunYhS.d.mts} +4 -3
  261. package/dist/{observability-BupkiN0m.d.ts → observability-CoXunYhS.d.ts} +4 -3
  262. package/dist/observability.d.mts +1 -1
  263. package/dist/observability.d.ts +1 -1
  264. package/dist/plugin.cjs +39 -36
  265. package/dist/plugin.d.mts +4 -5
  266. package/dist/plugin.d.ts +4 -5
  267. package/dist/plugin.mjs +38 -35
  268. package/dist/{production-runtime-Baqgwtvc.d.mts → production-runtime-0sRnuYc-.d.mts} +11 -4
  269. package/dist/{production-runtime-DNkpFnmg.d.ts → production-runtime-Crq6CJ-2.d.ts} +11 -4
  270. package/dist/query/client.cjs +8 -8
  271. package/dist/query/client.mjs +4 -4
  272. package/dist/{render-plan-rkIK9wd9.d.ts → render-plan-8ozZh2Qv.d.ts} +1 -1
  273. package/dist/{render-plan-DhwQnmmX.d.mts → render-plan-gs9GGPzw.d.mts} +1 -1
  274. package/dist/renderer/react/server.cjs +10 -4
  275. package/dist/renderer/react/server.d.mts +2 -1
  276. package/dist/renderer/react/server.d.ts +2 -1
  277. package/dist/renderer/react/server.mjs +7 -1
  278. package/dist/renderer-client.cjs +40 -20
  279. package/dist/renderer-client.d.mts +6 -7
  280. package/dist/renderer-client.d.ts +6 -7
  281. package/dist/renderer-client.mjs +29 -9
  282. package/dist/renderer.d.mts +2 -0
  283. package/dist/renderer.d.ts +2 -0
  284. package/dist/{request-BcY4RYPC.d.ts → request-B5G8rLBH.d.ts} +7 -2
  285. package/dist/{request-CFy1BltJ.d.mts → request-fkhiynXe.d.mts} +7 -2
  286. package/dist/request.cjs +2 -2
  287. package/dist/request.d.mts +5 -6
  288. package/dist/request.d.ts +5 -6
  289. package/dist/request.mjs +1 -1
  290. package/dist/{resolver-PPEeiJ6M.d.ts → resolver-DadfRL6F.d.ts} +1 -1
  291. package/dist/{resolver-DhW0CqZN.d.mts → resolver-khasx3fU.d.mts} +1 -1
  292. package/dist/{route-rendering-BkS0TBlB.d.mts → route-rendering-CLnS7AZj.d.mts} +1 -1
  293. package/dist/{route-rendering-D4XpMjam.d.ts → route-rendering-lS5nUMua.d.ts} +1 -1
  294. package/dist/{router-Cq7BcZxg.d.ts → router-4iuiYnOW.d.ts} +1 -1
  295. package/dist/{router-C4zPlC3V.d.mts → router-ifU8Dui1.d.mts} +1 -1
  296. package/dist/routes.cjs +3 -3
  297. package/dist/routes.d.mts +4 -5
  298. package/dist/routes.d.ts +4 -5
  299. package/dist/routes.mjs +2 -2
  300. package/dist/{runtime-BirxPwbZ.d.ts → runtime-BgDQzBiu.d.ts} +2 -2
  301. package/dist/{runtime-AOJge4vQ.d.mts → runtime-CV2UCV-5.d.mts} +2 -2
  302. package/dist/server-action-security.cjs +3 -3
  303. package/dist/server-action-security.mjs +2 -2
  304. package/dist/server-fn.cjs +5 -5
  305. package/dist/server-fn.mjs +4 -4
  306. package/dist/server-plugins.cjs +4 -4
  307. package/dist/server-plugins.d.mts +5 -6
  308. package/dist/server-plugins.d.ts +5 -6
  309. package/dist/server-plugins.mjs +3 -3
  310. package/dist/server-query-client.cjs +3 -3
  311. package/dist/server-query-client.mjs +2 -2
  312. package/dist/server-query.cjs +6 -6
  313. package/dist/server-query.mjs +5 -5
  314. package/dist/server.cjs +66 -63
  315. package/dist/server.d.mts +13 -14
  316. package/dist/server.d.ts +13 -14
  317. package/dist/server.mjs +43 -40
  318. package/dist/{spa-router-DzPZH-AO.d.mts → spa-router-Bq7VCOwx.d.mts} +3 -3
  319. package/dist/{spa-router-B1HI3X9k.d.ts → spa-router-DaJk5Re4.d.ts} +3 -3
  320. package/dist/testing.cjs +22 -20
  321. package/dist/testing.d.mts +4 -5
  322. package/dist/testing.d.ts +4 -5
  323. package/dist/testing.mjs +18 -16
  324. package/dist/theme/server.cjs +4 -3
  325. package/dist/theme/server.mjs +3 -2
  326. package/dist/{types-Z0aotQ8w.d.mts → types-CnH8DOqo.d.mts} +1 -1
  327. package/dist/{types-Z0aotQ8w.d.ts → types-CnH8DOqo.d.ts} +1 -1
  328. package/dist/{utils-DMD1Hzta.d.ts → utils-BXLmFsVR.d.ts} +1 -1
  329. package/dist/{utils-CEBktlBG.d.mts → utils-XJn0c9bj.d.mts} +1 -1
  330. package/dist/version.cjs +2 -2
  331. package/dist/version.mjs +1 -1
  332. package/dist/vite.cjs +39 -36
  333. package/dist/vite.d.mts +4 -5
  334. package/dist/vite.d.ts +4 -5
  335. package/dist/vite.mjs +38 -35
  336. package/dist/{workflows-CR9ex-gz.d.ts → workflows-jZ4BcdoZ.d.mts} +1 -1
  337. package/dist/{workflows-CR9ex-gz.d.mts → workflows-jZ4BcdoZ.d.ts} +1 -1
  338. package/dist/workflows.cjs +3 -3
  339. package/dist/workflows.d.mts +1 -1
  340. package/dist/workflows.d.ts +1 -1
  341. package/dist/workflows.mjs +2 -2
  342. package/package.json +10 -2
  343. package/dist/chunk-22GUSVNJ.cjs +0 -351
  344. package/dist/chunk-5MKEDGLD.cjs +0 -53
  345. package/dist/chunk-O6XNAMBV.mjs +0 -53
  346. package/dist/chunk-SWN467MP.cjs +0 -18
  347. package/dist/chunk-XGC343EY.cjs +0 -443
  348. package/dist/chunk-ZSH2Y4LN.mjs +0 -351
  349. package/dist/types-DFbjpjXX.d.mts +0 -105
  350. package/dist/types-DFbjpjXX.d.ts +0 -105
  351. /package/dist/{chunk-SUIBNSNO.cjs → chunk-SJNMVDDF.cjs} +0 -0
  352. /package/dist/{chunk-LNZ7JZUS.mjs → chunk-UDNPLXW7.mjs} +0 -0
@@ -1,23 +1,23 @@
1
1
  export { _runWithAfterRequest } from '../after.js';
2
- export { m as mergeRouteRenderingDirectiveConfig } from '../route-rendering-D4XpMjam.js';
3
- import { R as ResolvedFarmServerConfig } from '../workflows-CR9ex-gz.js';
4
- export { a as FarmServerConfig, b as bufferFarmRequestBody, c as cloneFarmRequestWithContext, d as createFarmNodeRequestAbortSignal, e as createFarmRequestBodyErrorResponse, m as matchesFarmIfNoneMatch, r as readFarmRequestBody, f as readNodeRequestBody, g as resolveFarmServerConfig } from '../workflows-CR9ex-gz.js';
5
- export { _ as _runWithCurrentRequest, g as getCurrentRequest, r as resolveFarmWebRequestOrigin } from '../request-BcY4RYPC.js';
6
- import { aN as APIRequestRuntime, aO as ResolvedFarmMCPConfig, J as FarmConfig, $ as FarmContextFactoryInput } from '../client-plugins-BmxM5KW_.js';
7
- export { aX as FarmLlmsTxtUserConfig, aY as ResolvedFarmLlmsTxtConfig, b1 as applyFarmCspNonceToResponse, aR as collectFarmLlmsTxtPages, aQ as createFarmAgentRobots, aS as createFarmDefaultLlmsTxt, aV as createFarmLlmsFullRenderer, aT as createFarmLlmsMarkdownReader, aP as createFarmMetadataRouteResponse, g as getFarmRedirectError, i as isFarmNotFoundError, b as isFarmRedirectError, aZ as manageFarmDocumentPreloads, a_ as manageFarmHtmlPreloads, a$ as manageFarmLinkHeaderPreloads, aU as renderFarmLlmsFullTxt, b0 as reportFarmPreloadWarnings, aW as resolveFarmLlmsTxtConfig, b2 as resolveFarmSecurityConfig } from '../client-plugins-BmxM5KW_.js';
2
+ import { aH as FarmMCPCatalogDetails, fM as APIRequestRuntime, bT as ResolvedFarmMCPConfig, fN as FarmLlmsTxtLink, J as FarmConfig, $ as FarmContextFactoryInput } from '../client-plugins-HIyulDym.js';
3
+ export { fW as FarmLlmsTxtUserConfig, fX as ResolvedFarmLlmsTxtConfig, g0 as applyFarmCspNonceToResponse, fQ as collectFarmLlmsTxtPages, fP as createFarmAgentRobots, fR as createFarmDefaultLlmsTxt, fU as createFarmLlmsFullRenderer, fS as createFarmLlmsMarkdownReader, fO as createFarmMetadataRouteResponse, g as getFarmRedirectError, i as isFarmNotFoundError, b as isFarmRedirectError, fY as manageFarmDocumentPreloads, fZ as manageFarmHtmlPreloads, f_ as manageFarmLinkHeaderPreloads, aG as registerFarmMCPServer, fT as renderFarmLlmsFullTxt, f$ as reportFarmPreloadWarnings, fV as resolveFarmLlmsTxtConfig, g1 as resolveFarmSecurityConfig } from '../client-plugins-HIyulDym.js';
4
+ export { m as mergeRouteRenderingDirectiveConfig } from '../route-rendering-lS5nUMua.js';
5
+ import { R as ResolvedFarmServerConfig } from '../workflows-jZ4BcdoZ.js';
6
+ export { a as FarmServerConfig, y as bufferFarmRequestBody, z as cloneFarmRequestWithContext, A as createFarmNodeRequestAbortSignal, B as createFarmRequestBodyErrorResponse, C as matchesFarmIfNoneMatch, E as readFarmRequestBody, G as readNodeRequestBody, H as resolveFarmServerConfig } from '../workflows-jZ4BcdoZ.js';
7
+ export { _ as _getRequestReadCount, a as _runWithCurrentRequest, g as getCurrentRequest, r as resolveFarmWebRequestOrigin } from '../request-B5G8rLBH.js';
8
8
  export { configureFarmCache, createFarmCacheKey, getFarmDataCache, normalizeRevalidatePath } from '../cache.js';
9
- import { g as FarmI18nUserConfig, R as ResolvedFarmI18nConfig } from '../types-Z0aotQ8w.js';
10
- export { c as createFarmLocaleCookie, g as getFarmLocaleVaryHeaders } from '../resolver-PPEeiJ6M.js';
11
- import { F as FarmLocalePathConfig } from '../index-BWVfxIsO.js';
12
- export { l as localizeFarmHref, a as localizeFarmPathname, s as stripFarmLocaleFromPathname } from '../index-BWVfxIsO.js';
13
- export { a as addMetadataImageReference, b as addMetadataMarkdownAlternate, m as mergeMetadata, r as renderMetadataHead, c as resolveFarmNotFoundMetadata } from '../metadata-fwZ3gfG6.js';
14
- export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime-DNkpFnmg.js';
15
- export { c as configureFarmObservability, e as emitFarmEvent, r as runWithFarmRequestSpan } from '../observability-BupkiN0m.js';
9
+ import { k as FarmI18nUserConfig, R as ResolvedFarmI18nConfig } from '../types-CnH8DOqo.js';
10
+ export { c as createFarmLocaleCookie, g as getFarmLocaleVaryHeaders } from '../resolver-DadfRL6F.js';
11
+ import { F as FarmLocalePathConfig } from '../index-CwoOP-MW.js';
12
+ export { l as localizeFarmHref, a as localizeFarmPathname, s as stripFarmLocaleFromPathname } from '../index-CwoOP-MW.js';
13
+ export { a as addMetadataImageReference, b as addMetadataMarkdownAlternate, m as mergeMetadata, c as mergeModuleViewport, r as renderMetadataHead, d as renderViewportHead, e as resolveFarmNotFoundMetadata } from '../metadata-BnLDsUOS.js';
14
+ export { _ as _runWithMiddlewareContext, c as _runWithMiddlewareData, e as applyProductionMiddlewareHeaders, d as createProductionMiddlewareRunner } from '../production-runtime-Crq6CJ-2.js';
15
+ export { L as configureFarmObservability, P as emitFarmEvent, Q as runWithFarmRequestSpan } from '../observability-CoXunYhS.js';
16
16
  export { f as createFarmInstrumentationLifecycle, r as resolveFarmInstrumentationRuntime } from '../instrumentation-runtime-CE06JLHZ.js';
17
17
  export { _setDefaultFarmThemeConfig, getTheme } from '../theme/server.js';
18
18
  import { c as FarmThemeRuntime, d as FarmThemeConfig, R as ResolvedFarmThemeConfig, a as FarmThemePreference } from '../types-DQnyD3VD.js';
19
19
  export { d as applyFarmBasePath, r as resolveFarmTrailingSlashRedirect, s as searchParamsToObject, b as setFarmBasePath, a as setFarmTrailingSlashPreference, c as stripFarmBasePath } from '../base-path-BU16ETmo.js';
20
- export { m as matchFarmPageRoute, p as parseRoutePath } from '../utils-DMD1Hzta.js';
20
+ export { m as matchFarmPageRoute, p as parseRoutePath } from '../utils-BXLmFsVR.js';
21
21
  import 'node:http';
22
22
  import '../lifecycle-DK06VuKP.js';
23
23
  import '../integration-api-BPJo5oXb.js';
@@ -35,7 +35,6 @@ import 'unstorage';
35
35
  import '../schema.js';
36
36
  import 'react';
37
37
  import '@farming-labs/orm';
38
- import '../types-DFbjpjXX.js';
39
38
  import '@farming-labs/docs';
40
39
  import 'vite';
41
40
  import '../cron.js';
@@ -48,6 +47,113 @@ import '../font.js';
48
47
  import '../island-CfGru1MO.js';
49
48
  import '@opentelemetry/api';
50
49
 
50
+ interface FarmAppManifestWebMCPTool {
51
+ name: string;
52
+ title?: string;
53
+ description?: string;
54
+ readOnlyHint?: boolean;
55
+ destructiveHint?: boolean;
56
+ idempotentHint?: boolean;
57
+ openWorldHint?: boolean;
58
+ /** The input JSON Schema when the source writes it out; omitted when it's computed. */
59
+ inputSchema?: Record<string, unknown>;
60
+ /** `"computed"` when the schema is built at runtime, so it can't be read from source. */
61
+ inputSchemaSource: "literal" | "computed" | "none";
62
+ }
63
+
64
+ /**
65
+ * `/.well-known/farmjs`: one document describing a Farm app, so tools can discover it
66
+ * instead of each rebuilding the picture: Farm's version, renderer and packages, the app's
67
+ * MCP servers with every tool (however it was defined) and its schemas, their resources and
68
+ * prompts, its WebMCP browser tools, its integrations, its agent surfaces and its plugins.
69
+ * Never environment values, settings or secrets.
70
+ *
71
+ * Development serves it to anyone on the dev server. Production answers only a request
72
+ * signed for the app's Farm Infra key, so the public never reads the app's internals; any
73
+ * other request gets a 404. Kept free of Node built-ins: Web Crypto only.
74
+ */
75
+
76
+ type FarmAppManifestToolSource = "endpoint" | "defineTool" | "serverFunction";
77
+ interface FarmAppManifestTool {
78
+ name: string;
79
+ title?: string;
80
+ description?: string;
81
+ /** How the app defined it: an API endpoint, `defineTool`, or a server function. */
82
+ source: FarmAppManifestToolSource;
83
+ /** The endpoint's method and route, for `source: "endpoint"`. */
84
+ method?: string;
85
+ path?: string;
86
+ readOnlyHint?: boolean;
87
+ destructiveHint?: boolean;
88
+ idempotentHint?: boolean;
89
+ openWorldHint?: boolean;
90
+ /** JSON Schemas, when the server published them (`@farm.js/mcp` does). */
91
+ inputSchema?: Readonly<Record<string, unknown>>;
92
+ outputSchema?: Readonly<Record<string, unknown>>;
93
+ }
94
+ type ServerDetails = NonNullable<FarmMCPCatalogDetails>;
95
+ interface FarmAppManifest {
96
+ schemaVersion: 1;
97
+ app: {
98
+ farm: string;
99
+ renderer: string;
100
+ basePath: string;
101
+ build: string;
102
+ };
103
+ /** Installed versions of the app's `@farm.js/*` and `@farming-labs/*` packages. */
104
+ packages: Record<string, string>;
105
+ mcp: {
106
+ servers: {
107
+ name: string;
108
+ version: string;
109
+ path: string;
110
+ tools: FarmAppManifestTool[];
111
+ resources: NonNullable<ServerDetails["resources"]>;
112
+ prompts: NonNullable<ServerDetails["prompts"]>;
113
+ }[];
114
+ };
115
+ /** Browser tools from `@farm.js/webmcp`, read from the app's source. */
116
+ webmcp: {
117
+ enabled: boolean;
118
+ tools: FarmAppManifestWebMCPTool[];
119
+ };
120
+ /** The app's integrations: which slot each fills and which provider, never their config. */
121
+ integrations: {
122
+ key: string;
123
+ category: string;
124
+ type: string;
125
+ }[];
126
+ agent: {
127
+ apiCatalog: string | null;
128
+ llmsTxt: boolean;
129
+ openapi: string | null;
130
+ };
131
+ plugins: string[];
132
+ }
133
+ /** What the manifest reads from config; serializable, so a production build embeds it. */
134
+ interface FarmAppManifestInput {
135
+ renderer: string;
136
+ basePath: string;
137
+ /** The build's ID, or "development". */
138
+ build: string;
139
+ packages: Record<string, string>;
140
+ webmcp: FarmAppManifest["webmcp"];
141
+ integrations: FarmAppManifest["integrations"];
142
+ agent: FarmAppManifest["agent"];
143
+ plugins: string[];
144
+ /** `analytics: false` keeps the production manifest off: the app talks to no Farm Infra. */
145
+ analytics: boolean;
146
+ }
147
+ type Env = Record<string, string | undefined>;
148
+ /**
149
+ * Answers `/.well-known/farmjs`, or `null` to let the request go on as if Farm served nothing
150
+ * there: methods other than GET and HEAD, and production apps not linked to Farm Infra.
151
+ */
152
+ declare function createFarmAppManifestResponse(request: Request, input: FarmAppManifestInput, options: {
153
+ development: boolean;
154
+ env?: Env;
155
+ }): Promise<Response | null>;
156
+
51
157
  /**
52
158
  * Compare a caller-supplied secret against the configured one without leaking
53
159
  * how much of it matched.
@@ -63,10 +169,23 @@ import '@opentelemetry/api';
63
169
  */
64
170
  declare function farmSecretsMatch(provided: string, expected: string): boolean;
65
171
 
66
- /** Internal: the production builder owns these immutable, depth-ordered descriptors. */
172
+ /**
173
+ * Internal: the production builder owns these immutable, depth-ordered descriptors.
174
+ *
175
+ * A layout's pattern is its directory, so a route group stays in it (`/(auth)`).
176
+ * The URL decides whether a layout covers a pathname; a layout inside a group also
177
+ * needs the selected page to sit in that group. `resolveRouteDirectory` finds that
178
+ * page's directory, and runs only when such a layout's URL matches.
179
+ */
67
180
  declare function createFarmLayoutSelector<T extends {
68
181
  pattern: string;
69
- }>(layouts: readonly T[]): (pathname: string) => T[];
182
+ }>(layouts: readonly T[], resolveRouteDirectory?: (pathname: string) => string | null | undefined): (pathname: string, routeDirectory?: string | null) => T[];
183
+
184
+ /**
185
+ * Whether a page directory sits inside a group scope. A null scope covers every page;
186
+ * a missing directory (no page matched) is inside no group.
187
+ */
188
+ declare function isInRouteGroupScope(directory: string | null | undefined, scope: string | null): boolean;
70
189
 
71
190
  type FarmProductionLifecycleState = "starting" | "ready" | "draining" | "failed" | "closed";
72
191
  interface FarmProductionLifecycleOptions {
@@ -152,6 +271,14 @@ interface FarmLocaleAlternateLinkOptions {
152
271
  */
153
272
  declare function renderFarmLocaleAlternateLinks(pathname: string, config: FarmLocalePathConfig, options?: FarmLocaleAlternateLinkOptions): string;
154
273
 
274
+ /**
275
+ * Start the head with `<meta charset>` and the viewport tags, as Next.js always renders both,
276
+ * skipping each one the layout's document already writes (a viewport, theme-color, or
277
+ * color-scheme tag of its own). The charset comes first because browsers only look for it in the
278
+ * document's first 1024 bytes. The production server uses this same function.
279
+ */
280
+ declare function ensureFarmDocumentMeta(markup: string, viewport?: string): string;
281
+
155
282
  /**
156
283
  * Runtime source that remounts the top-level `mcp` configuration in a built server.
157
284
  *
@@ -179,6 +306,26 @@ declare function _isFarmOwnedResponse(response: Response): boolean;
179
306
  */
180
307
  declare function _withFarmResponseHeaders(response: Response, edit: (headers: Headers) => void): Response;
181
308
 
309
+ interface FarmAiCatalogInput {
310
+ /** The app's basePath; the catalog lives beneath it, like the API catalog. */
311
+ basePath?: string;
312
+ /** The app's public API path, which maps to Farm's canonical `/api`. */
313
+ apiServerBasePath?: string;
314
+ }
315
+ /**
316
+ * The llms.txt links for the app's MCP servers: each endpoint, then the catalog
317
+ * that lists their cards. Empty when the app mounts no MCP server.
318
+ */
319
+ declare function listFarmMCPLlmsTxtLinks(origin: string, input?: FarmAiCatalogInput): FarmLlmsTxtLink[];
320
+ /**
321
+ * Answers `/.well-known/ai-catalog.json`, `/.well-known/ard.json`, and each
322
+ * `<endpoint>/server-card`, or returns `null` for any other request and when
323
+ * the app mounts no MCP server, so the request goes on as if Farm served nothing.
324
+ * Every request passes through here; `requestUrl`, the caller's parse of
325
+ * `request.url`, saves parsing it again.
326
+ */
327
+ declare function createFarmAiCatalogResponse(request: Request, input?: FarmAiCatalogInput, requestUrl?: URL): Response | null;
328
+
182
329
  /**
183
330
  * `/.well-known/api-catalog` (RFC 9727): a Linkset listing the APIs an app
184
331
  * publishes, so an agent that knows only the origin can find the OpenAPI
@@ -277,4 +424,4 @@ declare function appendFarmRedirectQuery(destination: string, search: string): s
277
424
 
278
425
  declare function appendFarmLinkHeader(headers: Headers, value: string): void;
279
426
 
280
- export { _isFarmOwnedResponse, _markFarmOwnedResponse, _runWithAPIRequestRuntime, _withFarmResponseHeaders, appendFarmLinkHeader, appendFarmRedirectQuery, applyFarmPreviewRobotsTag, applyFarmThemeDocument, compareRouteSpecificity, createDefaultErrorMarkup, createFarmApiCatalogResponse, createFarmLayoutSelector, createFarmLegacyRequest, createFarmProductionLifecycle, createFarmThemeDocumentParts, createLateNotFoundRecovery, createLateRedirectRecovery, farmSecretsMatch, generateNativeMCPPluginSource, getDefaultErrorStatusText, getRoutePatternSpecificity, renderFarmLegacyErrorHtml, renderFarmLegacyHtml, renderFarmLocaleAlternateLinks, resolveDefaultErrorStatus, resolveFarmI18nConfig, resolveFarmPreviewDeployment, resolveFarmRouteContext, serializeFarmInlineValue, withFarmRouteContext };
427
+ export { _isFarmOwnedResponse, _markFarmOwnedResponse, _runWithAPIRequestRuntime, _withFarmResponseHeaders, appendFarmLinkHeader, appendFarmRedirectQuery, applyFarmPreviewRobotsTag, applyFarmThemeDocument, compareRouteSpecificity, createDefaultErrorMarkup, createFarmAiCatalogResponse, createFarmApiCatalogResponse, createFarmAppManifestResponse, createFarmLayoutSelector, createFarmLegacyRequest, createFarmProductionLifecycle, createFarmThemeDocumentParts, createLateNotFoundRecovery, createLateRedirectRecovery, ensureFarmDocumentMeta, farmSecretsMatch, generateNativeMCPPluginSource, getDefaultErrorStatusText, getRoutePatternSpecificity, isInRouteGroupScope as isInFarmRouteGroupScope, listFarmMCPLlmsTxtLinks, renderFarmLegacyErrorHtml, renderFarmLegacyHtml, renderFarmLocaleAlternateLinks, resolveDefaultErrorStatus, resolveFarmI18nConfig, resolveFarmPreviewDeployment, resolveFarmRouteContext, serializeFarmInlineValue, withFarmRouteContext };
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  applyProductionMiddlewareHeaders,
6
6
  createProductionMiddlewareRunner
7
- } from "../chunk-2FQHH5SC.mjs";
7
+ } from "../chunk-IHNMMXHV.mjs";
8
8
  import {
9
9
  createFarmInstrumentationLifecycle,
10
10
  resolveFarmInstrumentationRuntime
@@ -18,15 +18,21 @@ import {
18
18
  import {
19
19
  applyFarmThemeDocument,
20
20
  createDefaultErrorMarkup,
21
+ createFarmAiCatalogResponse,
21
22
  createFarmApiCatalogResponse,
23
+ createFarmAppManifestResponse,
22
24
  createFarmMetadataRouteResponse,
23
25
  createFarmThemeDocumentParts,
24
26
  createLateNotFoundRecovery,
25
27
  createLateRedirectRecovery,
28
+ ensureFarmDocumentMeta,
26
29
  getDefaultErrorStatusText,
30
+ getRouteGroupScope,
31
+ isInRouteGroupScope,
32
+ listFarmMCPLlmsTxtLinks,
27
33
  renderFarmLocaleAlternateLinks,
28
34
  resolveDefaultErrorStatus
29
- } from "../chunk-TEN4FIZU.mjs";
35
+ } from "../chunk-6ETPZTJI.mjs";
30
36
  import {
31
37
  mergeRouteRenderingDirectiveConfig
32
38
  } from "../chunk-DAO7JGTS.mjs";
@@ -37,7 +43,7 @@ import "../chunk-XAXTTBUT.mjs";
37
43
  import {
38
44
  _setDefaultFarmThemeConfig,
39
45
  getTheme
40
- } from "../chunk-WBIH66JK.mjs";
46
+ } from "../chunk-2ELDTQRN.mjs";
41
47
  import {
42
48
  applyFarmCspNonceToResponse,
43
49
  applyFarmPreviewRobotsTag,
@@ -53,8 +59,8 @@ import {
53
59
  reportFarmPreloadWarnings,
54
60
  resolveFarmLlmsTxtConfig,
55
61
  resolveFarmSecurityConfig
56
- } from "../chunk-6VYZOPOT.mjs";
57
- import "../chunk-JBC2FKRW.mjs";
62
+ } from "../chunk-UJD4PHYB.mjs";
63
+ import "../chunk-WWIKMBRN.mjs";
58
64
  import "../chunk-MVL2RAJW.mjs";
59
65
  import {
60
66
  farmSecretsMatch
@@ -67,8 +73,8 @@ import {
67
73
  import {
68
74
  _runWithMiddlewareContext,
69
75
  _runWithMiddlewareData
70
- } from "../chunk-NRVGEI5I.mjs";
71
- import "../chunk-5TISYEQF.mjs";
76
+ } from "../chunk-2NNMOPDN.mjs";
77
+ import "../chunk-JG6DJF5A.mjs";
72
78
  import {
73
79
  _runWithAPIRequestRuntime
74
80
  } from "../chunk-R3DS7A2T.mjs";
@@ -76,13 +82,14 @@ import {
76
82
  _runWithAfterRequest
77
83
  } from "../chunk-IOEH4VWN.mjs";
78
84
  import "../chunk-5WI2S4CO.mjs";
79
- import "../chunk-O6XNAMBV.mjs";
80
- import "../chunk-I6XDAKWQ.mjs";
85
+ import {
86
+ registerFarmMCPServer
87
+ } from "../chunk-ZLAT2CWY.mjs";
81
88
  import {
82
89
  configureFarmCache,
83
90
  getFarmDataCache,
84
91
  normalizeRevalidatePath
85
- } from "../chunk-IV6CQY7O.mjs";
92
+ } from "../chunk-MSSFIQGM.mjs";
86
93
  import {
87
94
  bufferFarmRequestBody,
88
95
  cloneFarmRequestWithContext,
@@ -92,10 +99,10 @@ import {
92
99
  readFarmRequestBody,
93
100
  readNodeRequestBody,
94
101
  resolveFarmServerConfig
95
- } from "../chunk-XF7Q24PF.mjs";
102
+ } from "../chunk-Y7RKTKYI.mjs";
96
103
  import {
97
104
  resolveFarmI18nConfig
98
- } from "../chunk-YMCXWPWK.mjs";
105
+ } from "../chunk-BCMSYSN2.mjs";
99
106
  import {
100
107
  matchRoute,
101
108
  parseRoutePath
@@ -103,11 +110,13 @@ import {
103
110
  import {
104
111
  searchParamsToObject
105
112
  } from "../chunk-QVKYGNVM.mjs";
113
+ import "../chunk-BTHHUD7Q.mjs";
106
114
  import {
107
115
  configureFarmObservability,
108
116
  emitFarmEvent,
109
117
  runWithFarmRequestSpan
110
118
  } from "../chunk-FUZEBRP3.mjs";
119
+ import "../chunk-3PXS2MHU.mjs";
111
120
  import {
112
121
  resolveFarmTrailingSlashRedirect,
113
122
  setFarmTrailingSlashPreference
@@ -119,14 +128,17 @@ import "../chunk-7LTCDQRS.mjs";
119
128
  import {
120
129
  createFarmLocaleCookie,
121
130
  getFarmLocaleVaryHeaders
122
- } from "../chunk-IXUY2F5U.mjs";
131
+ } from "../chunk-GCXWJJKH.mjs";
132
+ import "../chunk-JM5XPKWH.mjs";
123
133
  import {
124
134
  addMetadataImageReference,
125
135
  addMetadataMarkdownAlternate,
126
136
  mergeMetadata,
137
+ mergeModuleViewport,
127
138
  renderMetadataHead,
139
+ renderViewportHead,
128
140
  resolveFarmNotFoundMetadata
129
- } from "../chunk-QZCT2CQ4.mjs";
141
+ } from "../chunk-CXEN47J3.mjs";
130
142
  import "../chunk-SKNL7VA2.mjs";
131
143
  import "../chunk-C4NCTZLM.mjs";
132
144
  import {
@@ -147,10 +159,11 @@ import {
147
159
  isFarmRedirectError
148
160
  } from "../chunk-CBBLJMR5.mjs";
149
161
  import {
162
+ _getRequestReadCount,
150
163
  _runWithCurrentRequest,
151
164
  getCurrentRequest,
152
165
  resolveFarmWebRequestOrigin
153
- } from "../chunk-BSPQVJ4A.mjs";
166
+ } from "../chunk-FDR64H6B.mjs";
154
167
  import "../chunk-CQ6OSQ3K.mjs";
155
168
  import "../chunk-IZY3V5XW.mjs";
156
169
  import {
@@ -172,21 +185,29 @@ import {
172
185
  } from "../chunk-LPEX4YW6.mjs";
173
186
 
174
187
  // src/routing/layout-selector.ts
175
- function createFarmLayoutSelector(layouts) {
176
- const prepared = layouts.map((layout) => ({
177
- layout,
178
- segments: layout.pattern === "/" ? null : parseRoutePattern(layout.pattern)
179
- }));
180
- return (pathname) => {
188
+ function createFarmLayoutSelector(layouts, resolveRouteDirectory) {
189
+ const prepared = layouts.map((layout) => {
190
+ const segments = layout.pattern === "/" ? [] : parseRoutePattern(layout.pattern);
191
+ return {
192
+ layout,
193
+ segments: segments.length === 0 ? null : segments,
194
+ groupScope: getRouteGroupScope(layout.pattern)
195
+ };
196
+ });
197
+ return (pathname, routeDirectory) => {
181
198
  const applicable = [];
182
199
  let parts;
183
- for (const { layout, segments } of prepared) {
184
- if (segments === null) {
185
- applicable.push(layout);
186
- continue;
200
+ let directory = routeDirectory;
201
+ for (const { layout, segments, groupScope } of prepared) {
202
+ if (segments !== null) {
203
+ parts ?? (parts = splitNormalizedPathname(normalizePathname(pathname.replace(/\/$/, "") || "/")));
204
+ if (matchSegmentParts(segments, parts, true) === null) continue;
205
+ }
206
+ if (groupScope !== null) {
207
+ if (directory === void 0) directory = resolveRouteDirectory?.(pathname) ?? null;
208
+ if (!isInRouteGroupScope(directory, groupScope)) continue;
187
209
  }
188
- parts ?? (parts = splitNormalizedPathname(normalizePathname(pathname.replace(/\/$/, "") || "/")));
189
- if (matchSegmentParts(segments, parts, true) !== null) applicable.push(layout);
210
+ applicable.push(layout);
190
211
  }
191
212
  return applicable;
192
213
  };
@@ -492,6 +513,7 @@ function appendFarmLinkHeader(headers, value) {
492
513
  }
493
514
  __name(appendFarmLinkHeader, "appendFarmLinkHeader");
494
515
  export {
516
+ _getRequestReadCount,
495
517
  _isFarmOwnedResponse,
496
518
  _markFarmOwnedResponse,
497
519
  _runWithAPIRequestRuntime,
@@ -518,7 +540,9 @@ export {
518
540
  configureFarmObservability,
519
541
  createDefaultErrorMarkup,
520
542
  createFarmAgentRobots,
543
+ createFarmAiCatalogResponse,
521
544
  createFarmApiCatalogResponse,
545
+ createFarmAppManifestResponse,
522
546
  createFarmCacheKey,
523
547
  createFarmDefaultLlmsTxt,
524
548
  createFarmInstrumentationLifecycle,
@@ -536,6 +560,7 @@ export {
536
560
  createLateRedirectRecovery,
537
561
  createProductionMiddlewareRunner,
538
562
  emitFarmEvent,
563
+ ensureFarmDocumentMeta,
539
564
  farmSecretsMatch,
540
565
  generateNativeMCPPluginSource,
541
566
  getCurrentRequest,
@@ -547,6 +572,8 @@ export {
547
572
  getTheme,
548
573
  isFarmNotFoundError,
549
574
  isFarmRedirectError,
575
+ isInRouteGroupScope as isInFarmRouteGroupScope,
576
+ listFarmMCPLlmsTxtLinks,
550
577
  localizeFarmHref,
551
578
  localizeFarmPathname,
552
579
  manageFarmDocumentPreloads,
@@ -555,16 +582,19 @@ export {
555
582
  matchRoute as matchFarmPageRoute,
556
583
  matchesFarmIfNoneMatch,
557
584
  mergeMetadata,
585
+ mergeModuleViewport,
558
586
  mergeRouteRenderingDirectiveConfig,
559
587
  normalizeRevalidatePath,
560
588
  parseRoutePath,
561
589
  readFarmRequestBody,
562
590
  readNodeRequestBody,
591
+ registerFarmMCPServer,
563
592
  renderFarmLegacyErrorHtml,
564
593
  renderFarmLegacyHtml,
565
594
  renderFarmLlmsFullTxt,
566
595
  renderFarmLocaleAlternateLinks,
567
596
  renderMetadataHead,
597
+ renderViewportHead,
568
598
  reportFarmPreloadWarnings,
569
599
  resolveDefaultErrorStatus,
570
600
  resolveFarmI18nConfig,
@@ -1,7 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkRG3ZOTG5cjs = require('../chunk-RG3ZOTG5.cjs');
3
+
4
+ var _chunkAI7QMY7Ocjs = require('../chunk-AI7QMY7O.cjs');
4
5
  require('../chunk-S3JO3N4H.cjs');
5
6
 
6
7
 
7
- exports.parseRequestCookieHeader = _chunkRG3ZOTG5cjs.parseRequestCookieHeader;
8
+
9
+ exports.decodeCookieName = _chunkAI7QMY7Ocjs.decodeCookieName; exports.parseRequestCookieHeader = _chunkAI7QMY7Ocjs.parseRequestCookieHeader;
@@ -4,5 +4,13 @@ interface ParsedRequestCookie {
4
4
  }
5
5
  /** Parse request cookies in wire order without collapsing duplicate names. */
6
6
  declare function parseRequestCookieHeader(header: string | null | undefined): ParsedRequestCookie[];
7
+ /**
8
+ * A cookie name as Farm wrote it: names are percent-encoded when set, so they are decoded when read.
9
+ * A browser enforces the `__Host-` / `__Secure-` prefixes on the raw name only, so an encoded name
10
+ * like `__Host%2Dsid` reaches the server without the guarantees. Decoded, it would read as the
11
+ * protected `__Host-sid`: a sibling subdomain could set it with a longer Path, which browsers send
12
+ * first, and shadow the real one. A name keeps its raw form when decoding would add the prefix.
13
+ */
14
+ declare function decodeCookieName(raw: string): string;
7
15
 
8
- export { type ParsedRequestCookie, parseRequestCookieHeader };
16
+ export { type ParsedRequestCookie, decodeCookieName, parseRequestCookieHeader };
@@ -4,5 +4,13 @@ interface ParsedRequestCookie {
4
4
  }
5
5
  /** Parse request cookies in wire order without collapsing duplicate names. */
6
6
  declare function parseRequestCookieHeader(header: string | null | undefined): ParsedRequestCookie[];
7
+ /**
8
+ * A cookie name as Farm wrote it: names are percent-encoded when set, so they are decoded when read.
9
+ * A browser enforces the `__Host-` / `__Secure-` prefixes on the raw name only, so an encoded name
10
+ * like `__Host%2Dsid` reaches the server without the guarantees. Decoded, it would read as the
11
+ * protected `__Host-sid`: a sibling subdomain could set it with a longer Path, which browsers send
12
+ * first, and shadow the real one. A name keeps its raw form when decoding would add the prefix.
13
+ */
14
+ declare function decodeCookieName(raw: string): string;
7
15
 
8
- export { type ParsedRequestCookie, parseRequestCookieHeader };
16
+ export { type ParsedRequestCookie, decodeCookieName, parseRequestCookieHeader };
@@ -1,7 +1,9 @@
1
1
  import {
2
+ decodeCookieName,
2
3
  parseRequestCookieHeader
3
- } from "../chunk-5TISYEQF.mjs";
4
+ } from "../chunk-JM5XPKWH.mjs";
4
5
  import "../chunk-LPEX4YW6.mjs";
5
6
  export {
7
+ decodeCookieName,
6
8
  parseRequestCookieHeader
7
9
  };
@@ -0,0 +1,12 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+ var _chunkYSLWRWWPcjs = require('../chunk-YSLWRWWP.cjs');
6
+ require('../chunk-WWFTAUFG.cjs');
7
+ require('../chunk-S3JO3N4H.cjs');
8
+
9
+
10
+
11
+
12
+ exports.FARM_SERVER_TREE_ATTRIBUTE = _chunkYSLWRWWPcjs.FARM_SERVER_TREE_ATTRIBUTE; exports.createFarmServerTreeElement = _chunkYSLWRWWPcjs.createFarmServerTreeElement; exports.renderFarmServerTreePage = _chunkYSLWRWWPcjs.renderFarmServerTreePage;
@@ -0,0 +1,27 @@
1
+ import React__default from 'react';
2
+
3
+ declare const FARM_SERVER_TREE_ATTRIBUTE = "data-farm-server-tree";
4
+ interface FarmServerTreeRenderOptions {
5
+ /** Renders a subtree the resolver could not represent with its client components as islands. */
6
+ isolate(element: React__default.ReactNode): React__default.ReactNode;
7
+ }
8
+ /**
9
+ * @internal Resolves a server page and returns the page boundary's children: the resolved tree
10
+ * and its payload. Errors from the page's own code, including redirect and notFound controls,
11
+ * propagate unchanged. Suspense children resolve concurrently and stream as React renders them.
12
+ */
13
+ declare function renderFarmServerTreePage(ReactRuntime: typeof React__default, element: React__default.ReactNode, options: FarmServerTreeRenderOptions): Promise<React__default.ReactElement>;
14
+ interface FarmServerTreeElementOptions {
15
+ load(reference: string): Promise<Record<string, unknown>>;
16
+ /** Renders a `<farm-server-html>` subtree from its server HTML and hydrates its islands. */
17
+ ServerHtml: React__default.ComponentType<any>;
18
+ /** Remounts the page's client components when it changes, as a navigation does. */
19
+ key?: string;
20
+ }
21
+ /**
22
+ * @internal Rebuilds a server-tree page in the browser from its server HTML, an element or the
23
+ * HTML of a navigation, after loading its client modules. Returns null for a page without a tree.
24
+ */
25
+ declare function createFarmServerTreeElement(ReactRuntime: typeof React__default, source: ParentNode | string, options: FarmServerTreeElementOptions): Promise<React__default.ReactElement | null>;
26
+
27
+ export { FARM_SERVER_TREE_ATTRIBUTE, type FarmServerTreeElementOptions, type FarmServerTreeRenderOptions, createFarmServerTreeElement, renderFarmServerTreePage };
@@ -0,0 +1,27 @@
1
+ import React__default from 'react';
2
+
3
+ declare const FARM_SERVER_TREE_ATTRIBUTE = "data-farm-server-tree";
4
+ interface FarmServerTreeRenderOptions {
5
+ /** Renders a subtree the resolver could not represent with its client components as islands. */
6
+ isolate(element: React__default.ReactNode): React__default.ReactNode;
7
+ }
8
+ /**
9
+ * @internal Resolves a server page and returns the page boundary's children: the resolved tree
10
+ * and its payload. Errors from the page's own code, including redirect and notFound controls,
11
+ * propagate unchanged. Suspense children resolve concurrently and stream as React renders them.
12
+ */
13
+ declare function renderFarmServerTreePage(ReactRuntime: typeof React__default, element: React__default.ReactNode, options: FarmServerTreeRenderOptions): Promise<React__default.ReactElement>;
14
+ interface FarmServerTreeElementOptions {
15
+ load(reference: string): Promise<Record<string, unknown>>;
16
+ /** Renders a `<farm-server-html>` subtree from its server HTML and hydrates its islands. */
17
+ ServerHtml: React__default.ComponentType<any>;
18
+ /** Remounts the page's client components when it changes, as a navigation does. */
19
+ key?: string;
20
+ }
21
+ /**
22
+ * @internal Rebuilds a server-tree page in the browser from its server HTML, an element or the
23
+ * HTML of a navigation, after loading its client modules. Returns null for a page without a tree.
24
+ */
25
+ declare function createFarmServerTreeElement(ReactRuntime: typeof React__default, source: ParentNode | string, options: FarmServerTreeElementOptions): Promise<React__default.ReactElement | null>;
26
+
27
+ export { FARM_SERVER_TREE_ATTRIBUTE, type FarmServerTreeElementOptions, type FarmServerTreeRenderOptions, createFarmServerTreeElement, renderFarmServerTreePage };
@@ -0,0 +1,12 @@
1
+ import {
2
+ FARM_SERVER_TREE_ATTRIBUTE,
3
+ createFarmServerTreeElement,
4
+ renderFarmServerTreePage
5
+ } from "../chunk-OFZUJMCU.mjs";
6
+ import "../chunk-NRDBW4MP.mjs";
7
+ import "../chunk-LPEX4YW6.mjs";
8
+ export {
9
+ FARM_SERVER_TREE_ATTRIBUTE,
10
+ createFarmServerTreeElement,
11
+ renderFarmServerTreePage
12
+ };
package/dist/markdown.cjs CHANGED
@@ -14,10 +14,10 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkKJ2TIHZZcjs = require('./chunk-KJ2TIHZZ.cjs');
17
+ var _chunkEUV4YR3Vcjs = require('./chunk-EUV4YR3V.cjs');
18
18
  require('./chunk-J63ZH5OQ.cjs');
19
- require('./chunk-5MKEDGLD.cjs');
20
- require('./chunk-WPYFSQKK.cjs');
19
+ require('./chunk-75RZHGLS.cjs');
20
+ require('./chunk-KNBBQHO2.cjs');
21
21
  require('./chunk-E3UK5IIB.cjs');
22
22
  require('./chunk-G7HXGLEC.cjs');
23
23
  require('./chunk-S3A45T7F.cjs');
@@ -41,4 +41,4 @@ require('./chunk-S3JO3N4H.cjs');
41
41
 
42
42
 
43
43
 
44
- exports.FARM_MARKDOWN_CONTENT_TYPE = _chunkKJ2TIHZZcjs.FARM_MARKDOWN_CONTENT_TYPE; exports.applyMarkdownNegotiationHeaders = _chunkKJ2TIHZZcjs.applyMarkdownNegotiationHeaders; exports.createFarmMarkdownErrorBody = _chunkKJ2TIHZZcjs.createFarmMarkdownErrorBody; exports.createMarkdownMirrorResponse = _chunkKJ2TIHZZcjs.createMarkdownMirrorResponse; exports.extractFarmPageActions = _chunkKJ2TIHZZcjs.extractFarmPageActions; exports.farmAcceptQuality = _chunkKJ2TIHZZcjs.farmAcceptQuality; exports.farmRequestWantsMarkdown = _chunkKJ2TIHZZcjs.farmRequestWantsMarkdown; exports.getFarmMarkdownAlternatePath = _chunkKJ2TIHZZcjs.getFarmMarkdownAlternatePath; exports.getFarmMarkdownMirrorPath = _chunkKJ2TIHZZcjs.getFarmMarkdownMirrorPath; exports.htmlToMarkdown = _chunkKJ2TIHZZcjs.htmlToMarkdown; exports.isFarmMarkdownMirrorExposed = _chunkKJ2TIHZZcjs.isFarmMarkdownMirrorExposed; exports.matchesFarmMarkdownRoutePattern = _chunkKJ2TIHZZcjs.matchesFarmMarkdownRoutePattern; exports.requestAcceptsMarkdown = _chunkKJ2TIHZZcjs.requestAcceptsMarkdown; exports.resolveMarkdownConfig = _chunkKJ2TIHZZcjs.resolveMarkdownConfig; exports.resolveMarkdownMirrorTarget = _chunkKJ2TIHZZcjs.resolveMarkdownMirrorTarget;
44
+ exports.FARM_MARKDOWN_CONTENT_TYPE = _chunkEUV4YR3Vcjs.FARM_MARKDOWN_CONTENT_TYPE; exports.applyMarkdownNegotiationHeaders = _chunkEUV4YR3Vcjs.applyMarkdownNegotiationHeaders; exports.createFarmMarkdownErrorBody = _chunkEUV4YR3Vcjs.createFarmMarkdownErrorBody; exports.createMarkdownMirrorResponse = _chunkEUV4YR3Vcjs.createMarkdownMirrorResponse; exports.extractFarmPageActions = _chunkEUV4YR3Vcjs.extractFarmPageActions; exports.farmAcceptQuality = _chunkEUV4YR3Vcjs.farmAcceptQuality; exports.farmRequestWantsMarkdown = _chunkEUV4YR3Vcjs.farmRequestWantsMarkdown; exports.getFarmMarkdownAlternatePath = _chunkEUV4YR3Vcjs.getFarmMarkdownAlternatePath; exports.getFarmMarkdownMirrorPath = _chunkEUV4YR3Vcjs.getFarmMarkdownMirrorPath; exports.htmlToMarkdown = _chunkEUV4YR3Vcjs.htmlToMarkdown; exports.isFarmMarkdownMirrorExposed = _chunkEUV4YR3Vcjs.isFarmMarkdownMirrorExposed; exports.matchesFarmMarkdownRoutePattern = _chunkEUV4YR3Vcjs.matchesFarmMarkdownRoutePattern; exports.requestAcceptsMarkdown = _chunkEUV4YR3Vcjs.requestAcceptsMarkdown; exports.resolveMarkdownConfig = _chunkEUV4YR3Vcjs.resolveMarkdownConfig; exports.resolveMarkdownMirrorTarget = _chunkEUV4YR3Vcjs.resolveMarkdownMirrorTarget;