@farm.js/core 0.1.31 → 0.1.34

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 (286) hide show
  1. package/README.md +1 -1
  2. package/dist/agent-runtime.cjs +69 -14
  3. package/dist/agent-runtime.d.mts +1 -1
  4. package/dist/agent-runtime.d.ts +1 -1
  5. package/dist/agent-runtime.mjs +58 -3
  6. package/dist/api/route-manager.cjs +16 -13
  7. package/dist/api/route-manager.d.mts +1 -1
  8. package/dist/api/route-manager.d.ts +1 -1
  9. package/dist/api/route-manager.mjs +15 -12
  10. package/dist/api/runtime.cjs +9 -7
  11. package/dist/api/runtime.d.mts +1 -1
  12. package/dist/api/runtime.d.ts +1 -1
  13. package/dist/api/runtime.mjs +8 -6
  14. package/dist/api.cjs +19 -16
  15. package/dist/api.d.mts +2 -2
  16. package/dist/api.d.ts +2 -2
  17. package/dist/api.mjs +18 -15
  18. package/dist/{app-sUJ3jnTZ.d.ts → app-DgotYGbq.d.ts} +3 -3
  19. package/dist/app-markdown.cjs +8 -6
  20. package/dist/app-markdown.d.mts +3 -3
  21. package/dist/app-markdown.d.ts +3 -3
  22. package/dist/app-markdown.mjs +7 -5
  23. package/dist/{app-DAuUTIZf.d.mts → app-q4rmZlXK.d.mts} +3 -3
  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-YZTASLPQ.cjs → chunk-27ZWSI3W.cjs} +2 -2
  29. package/dist/{chunk-WBIH66JK.mjs → chunk-2ELDTQRN.mjs} +5 -2
  30. package/dist/{chunk-K7CELQLK.cjs → chunk-2F2ER724.cjs} +54 -29
  31. package/dist/{chunk-NRVGEI5I.mjs → chunk-2NNMOPDN.mjs} +4 -210
  32. package/dist/chunk-2NQQ5H5G.cjs +86 -0
  33. package/dist/{chunk-IFI5FXEZ.cjs → chunk-36MK5YCW.cjs} +334 -163
  34. package/dist/chunk-3BU22U3M.cjs +237 -0
  35. package/dist/{chunk-MM5D6VLP.mjs → chunk-3KZS4SUS.mjs} +33 -14
  36. package/dist/chunk-3SDFA7UF.cjs +701 -0
  37. package/dist/{chunk-4IEPYMHF.mjs → chunk-3UEVPCGW.mjs} +1 -1
  38. package/dist/{chunk-5LJCOSKT.mjs → chunk-3VSKDFAT.mjs} +1 -1
  39. package/dist/{chunk-5HGR3W6O.mjs → chunk-5SJWVY6R.mjs} +8 -0
  40. package/dist/{chunk-X7WVQMIB.mjs → chunk-657WJNRY.mjs} +10 -4
  41. package/dist/{chunk-MKMBQSNQ.mjs → chunk-6VVL3MHY.mjs} +3 -3
  42. package/dist/{chunk-QZRVZSPN.cjs → chunk-77GNHH2Z.cjs} +3 -3
  43. package/dist/{chunk-KZLND3D2.cjs → chunk-7BT4H4P7.cjs} +7 -5
  44. package/dist/{chunk-A777V5WU.cjs → chunk-7M52YUMY.cjs} +2 -2
  45. package/dist/{chunk-VUMAE7NC.mjs → chunk-7Y6ZNFPX.mjs} +81 -30
  46. package/dist/{chunk-MXDTKXO6.cjs → chunk-A5FGU2WU.cjs} +74 -23
  47. package/dist/{chunk-7QOCTYBS.mjs → chunk-AGC75XAE.mjs} +37 -1
  48. package/dist/{chunk-4ZQQL4IU.mjs → chunk-AHGECQEW.mjs} +1 -1
  49. package/dist/{chunk-RG3ZOTG5.cjs → chunk-AI7QMY7O.cjs} +10 -3
  50. package/dist/{chunk-O3DTUAX2.mjs → chunk-AQZFOP7S.mjs} +6 -77
  51. package/dist/{chunk-WNLBF77X.cjs → chunk-ATK2R4CH.cjs} +14 -12
  52. package/dist/{chunk-SORB3MAR.cjs → chunk-AWC4VUZL.cjs} +17 -17
  53. package/dist/{chunk-YMCXWPWK.mjs → chunk-BCMSYSN2.mjs} +4 -1
  54. package/dist/{chunk-FYRBX5IY.cjs → chunk-BTAG7LI7.cjs} +2 -2
  55. package/dist/{chunk-I6XDAKWQ.mjs → chunk-BTHHUD7Q.mjs} +14 -0
  56. package/dist/chunk-C4SPBWFM.cjs +26 -0
  57. package/dist/{chunk-JATSG2ZO.mjs → chunk-CLJYVZAD.mjs} +4 -2
  58. package/dist/{chunk-J3LOGE4T.cjs → chunk-DQQOKWYA.cjs} +5 -5
  59. package/dist/{chunk-JLRDISQL.cjs → chunk-DZ4DTRJ5.cjs} +7 -7
  60. package/dist/chunk-E5GNDG5F.mjs +701 -0
  61. package/dist/{chunk-E76XC6ZG.mjs → chunk-EZDQRNQ7.mjs} +2 -2
  62. package/dist/{chunk-TOVMYGYW.mjs → chunk-F2SE2VDO.mjs} +1 -1
  63. package/dist/{chunk-BSPQVJ4A.mjs → chunk-FDR64H6B.mjs} +13 -0
  64. package/dist/{chunk-5OVTOKGH.cjs → chunk-FFFW3OQ7.cjs} +2 -2
  65. package/dist/{chunk-D4JE5NNV.cjs → chunk-FNO7A7CM.cjs} +5 -5
  66. package/dist/chunk-FZ6YYU2W.mjs +65 -0
  67. package/dist/{chunk-PZNCMPJF.cjs → chunk-G26MUMKL.cjs} +14 -8
  68. package/dist/{chunk-IXUY2F5U.mjs → chunk-GCXWJJKH.mjs} +4 -7
  69. package/dist/{chunk-JLCQGPXE.mjs → chunk-GNSDTTWZ.mjs} +50 -61
  70. package/dist/{chunk-TEN4FIZU.mjs → chunk-GOABMOX3.mjs} +151 -3
  71. package/dist/{chunk-HBTUGXHS.cjs → chunk-HLJ6MBUZ.cjs} +7 -4
  72. package/dist/{chunk-GZYH4OER.mjs → chunk-HR5KPHC2.mjs} +1 -1
  73. package/dist/{chunk-ZCU4NZ3M.cjs → chunk-IE7XCHH3.cjs} +4 -4
  74. package/dist/{chunk-I26CZYPV.cjs → chunk-IHNIDL6H.cjs} +50 -7
  75. package/dist/{chunk-2FQHH5SC.mjs → chunk-IHNMMXHV.mjs} +49 -24
  76. package/dist/{chunk-VHJGDMCG.cjs → chunk-IWZKTWHZ.cjs} +2 -2
  77. package/dist/{chunk-DGXN3L4D.mjs → chunk-JDPAKVS4.mjs} +4 -4
  78. package/dist/chunk-JG6DJF5A.mjs +238 -0
  79. package/dist/{chunk-5TISYEQF.mjs → chunk-JM5XPKWH.mjs} +10 -3
  80. package/dist/{chunk-BJJATPEC.mjs → chunk-KN7K4VQN.mjs} +1 -1
  81. package/dist/{chunk-WPYFSQKK.cjs → chunk-KNBBQHO2.cjs} +15 -1
  82. package/dist/{chunk-XWAWFQFS.cjs → chunk-KXWRO25S.cjs} +7 -4
  83. package/dist/{chunk-QG5HNS7P.mjs → chunk-LHODW25H.mjs} +2 -2
  84. package/dist/{chunk-BXFWA23T.mjs → chunk-LMJ7VRHZ.mjs} +3 -3
  85. package/dist/{chunk-WG2KHOMN.mjs → chunk-LR5QSC2P.mjs} +380 -209
  86. package/dist/chunk-LSKZMJMP.cjs +65 -0
  87. package/dist/{chunk-2N5PX3LS.mjs → chunk-LYV44OIR.mjs} +7 -1
  88. package/dist/{chunk-5MKEDGLD.cjs → chunk-M64YUMA4.cjs} +11 -6
  89. package/dist/{chunk-EXLKRR4U.cjs → chunk-MIDIZJZC.cjs} +12 -12
  90. package/dist/{chunk-ES4B2IXW.cjs → chunk-MOKLYNHV.cjs} +2 -2
  91. package/dist/{chunk-IV6CQY7O.mjs → chunk-MSSFIQGM.mjs} +63 -13
  92. package/dist/{chunk-KH7BN726.cjs → chunk-N4UOK6ZI.cjs} +8 -2
  93. package/dist/{chunk-6VYZOPOT.mjs → chunk-NGVORZVZ.mjs} +1 -1
  94. package/dist/{chunk-JNGIWIY6.mjs → chunk-NPC7VWJE.mjs} +2 -2
  95. package/dist/{chunk-ILWLPEVO.mjs → chunk-NRSN7G7E.mjs} +2 -2
  96. package/dist/{chunk-AHAJGAYD.mjs → chunk-O27L4YAA.mjs} +1 -1
  97. package/dist/{chunk-VYZSOYR4.cjs → chunk-ODBZYBAB.cjs} +1 -1
  98. package/dist/{chunk-YVGAEAA5.cjs → chunk-P64MIF5B.cjs} +154 -6
  99. package/dist/{chunk-DFLLARUK.cjs → chunk-PQDFUSXD.cjs} +14 -14
  100. package/dist/{chunk-F6XEGFHO.mjs → chunk-PXKIEXZD.mjs} +10 -0
  101. package/dist/{chunk-S5GDHOE4.mjs → chunk-PZNL3WEG.mjs} +48 -5
  102. package/dist/{chunk-FV45CKBC.mjs → chunk-QCFBDFRS.mjs} +1 -1
  103. package/dist/{chunk-75BRBIFP.cjs → chunk-QCVE2OCI.cjs} +5 -8
  104. package/dist/{chunk-6ZCMSZ5U.mjs → chunk-QE6VAKLT.mjs} +1 -1
  105. package/dist/{chunk-75DYEVXI.cjs → chunk-QGYRXFU2.cjs} +9 -9
  106. package/dist/{chunk-CTV2TTNP.cjs → chunk-QJ3J6MZT.cjs} +16 -87
  107. package/dist/{chunk-O6XNAMBV.mjs → chunk-QLQ32WC4.mjs} +8 -3
  108. package/dist/{chunk-IMB4PIAR.cjs → chunk-SJVKK4JE.cjs} +839 -420
  109. package/dist/{chunk-3FCFQP5V.cjs → chunk-TA5G2HWD.cjs} +21 -21
  110. package/dist/{chunk-Z5HIWVDP.cjs → chunk-TDFPACVX.cjs} +62 -73
  111. package/dist/{chunk-ND224OE2.cjs → chunk-TKSCR644.cjs} +34 -15
  112. package/dist/{chunk-UAFSBWNT.mjs → chunk-U4PTAHW3.mjs} +64 -13
  113. package/dist/{chunk-ZHVYQL3H.cjs → chunk-U74I55WB.cjs} +86 -35
  114. package/dist/chunk-UBO4SGH4.mjs +86 -0
  115. package/dist/{chunk-IQXFRNY2.cjs → chunk-UFDAAQFX.cjs} +2 -2
  116. package/dist/{chunk-X7KZBF63.cjs → chunk-UX5S4JEO.cjs} +40 -4
  117. package/dist/{chunk-5ZSWG4UX.cjs → chunk-UXFQ3UDA.cjs} +14 -1
  118. package/dist/{chunk-L4DVIHOC.mjs → chunk-VCCUOMQN.mjs} +1 -1
  119. package/dist/{chunk-4V7GIE2U.mjs → chunk-VHANUNEG.mjs} +2 -2
  120. package/dist/{chunk-FXUUWYAX.cjs → chunk-VKNHTSAP.cjs} +10 -0
  121. package/dist/{chunk-2AKFKCHA.mjs → chunk-W7LF2J2S.mjs} +1 -1
  122. package/dist/{chunk-MNUGPHLN.mjs → chunk-WNNYOOIB.mjs} +5 -3
  123. package/dist/{chunk-VA62MHFV.mjs → chunk-X242HVD5.mjs} +1 -1
  124. package/dist/{chunk-UJ2C4ICS.cjs → chunk-XJXBIP67.cjs} +4 -4
  125. package/dist/{chunk-6L6DQR5W.mjs → chunk-XV5DJTBX.mjs} +539 -121
  126. package/dist/{chunk-KJ2TIHZZ.cjs → chunk-XXJU7FCC.cjs} +3 -2
  127. package/dist/{chunk-DYEJQTDN.cjs → chunk-YSCV4SJF.cjs} +4 -4
  128. package/dist/{chunk-2SDO73HK.cjs → chunk-YWN746US.cjs} +64 -14
  129. package/dist/chunk-Z2HLU4IX.cjs +238 -0
  130. package/dist/{chunk-2FXWWUE5.cjs → chunk-Z2YLTERK.cjs} +4 -4
  131. package/dist/{chunk-CUMINO7Z.cjs → chunk-ZHPHJPQP.cjs} +4 -4
  132. package/dist/{chunk-FJZ3DQLK.mjs → chunk-ZKP7C2B6.mjs} +4 -4
  133. package/dist/{chunk-JBC2FKRW.mjs → chunk-ZUSJDQ2Q.mjs} +2 -1
  134. package/dist/{client-plugins-BX2ptm4H.d.mts → client-plugins-CLObcuCq.d.mts} +26 -2
  135. package/dist/{client-plugins-BmxM5KW_.d.ts → client-plugins-DZjHC4Mi.d.ts} +26 -2
  136. package/dist/client-plugins.d.mts +1 -1
  137. package/dist/client-plugins.d.ts +1 -1
  138. package/dist/client.cjs +8 -8
  139. package/dist/client.d.mts +5 -5
  140. package/dist/client.d.ts +5 -5
  141. package/dist/client.mjs +7 -7
  142. package/dist/config.d.mts +1 -1
  143. package/dist/config.d.ts +1 -1
  144. package/dist/{devtools-EWRDHCD5.cjs → devtools-HU6Y2MNV.cjs} +11 -9
  145. package/dist/{devtools-BPBCYOU6.mjs → devtools-RNXCTS4R.mjs} +10 -8
  146. package/dist/docs.cjs +13 -11
  147. package/dist/docs.d.mts +5 -0
  148. package/dist/docs.d.ts +5 -0
  149. package/dist/docs.mjs +12 -10
  150. package/dist/environment/vite.cjs +2 -2
  151. package/dist/environment/vite.mjs +1 -1
  152. package/dist/headers.cjs +4 -4
  153. package/dist/headers.mjs +3 -3
  154. package/dist/i18n/client.cjs +14 -13
  155. package/dist/i18n/client.mjs +5 -4
  156. package/dist/i18n/index.cjs +3 -2
  157. package/dist/i18n/index.mjs +2 -1
  158. package/dist/i18n/server.cjs +6 -5
  159. package/dist/i18n/server.mjs +5 -4
  160. package/dist/image/server.cjs +2 -2
  161. package/dist/image/server.mjs +1 -1
  162. package/dist/image/sharp.cjs +9 -9
  163. package/dist/image/sharp.mjs +1 -1
  164. package/dist/index.cjs +67 -55
  165. package/dist/index.d.mts +14 -14
  166. package/dist/index.d.ts +14 -14
  167. package/dist/index.mjs +70 -58
  168. package/dist/integrations.cjs +6 -3
  169. package/dist/integrations.d.mts +1 -1
  170. package/dist/integrations.d.ts +1 -1
  171. package/dist/integrations.mjs +7 -4
  172. package/dist/internal/app-markdown-runtime.cjs +7 -5
  173. package/dist/internal/app-markdown-runtime.d.mts +14 -3
  174. package/dist/internal/app-markdown-runtime.d.ts +14 -3
  175. package/dist/internal/app-markdown-runtime.mjs +6 -4
  176. package/dist/internal/build-runtime.cjs +38 -35
  177. package/dist/internal/build-runtime.d.mts +3 -3
  178. package/dist/internal/build-runtime.d.ts +3 -3
  179. package/dist/internal/build-runtime.mjs +37 -34
  180. package/dist/internal/cli-runtime.cjs +20 -17
  181. package/dist/internal/cli-runtime.mjs +19 -16
  182. package/dist/internal/client-error-overlay.cjs +4 -4
  183. package/dist/internal/client-error-overlay.mjs +1 -1
  184. package/dist/internal/client-runtime.cjs +4 -2
  185. package/dist/internal/client-runtime.d.mts +9 -1
  186. package/dist/internal/client-runtime.d.ts +9 -1
  187. package/dist/internal/client-runtime.mjs +3 -1
  188. package/dist/internal/compression-runtime.d.mts +1 -1
  189. package/dist/internal/compression-runtime.d.ts +1 -1
  190. package/dist/internal/config-runtime.cjs +11 -9
  191. package/dist/internal/config-runtime.d.mts +2 -2
  192. package/dist/internal/config-runtime.d.ts +2 -2
  193. package/dist/internal/config-runtime.mjs +10 -8
  194. package/dist/internal/infra-analytics-runtime.cjs +4 -4
  195. package/dist/internal/infra-analytics-runtime.mjs +2 -2
  196. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  197. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  198. package/dist/internal/production-runtime.cjs +20 -14
  199. package/dist/internal/production-runtime.d.mts +115 -8
  200. package/dist/internal/production-runtime.d.ts +115 -8
  201. package/dist/internal/production-runtime.mjs +19 -13
  202. package/dist/internal/request-cookies.cjs +4 -2
  203. package/dist/internal/request-cookies.d.mts +9 -1
  204. package/dist/internal/request-cookies.d.ts +9 -1
  205. package/dist/internal/request-cookies.mjs +3 -1
  206. package/dist/markdown.cjs +4 -4
  207. package/dist/markdown.d.mts +1 -1
  208. package/dist/markdown.d.ts +1 -1
  209. package/dist/markdown.mjs +3 -3
  210. package/dist/{metadata-DsEaK7mQ.d.mts → metadata-2HSU2i_w.d.mts} +1 -1
  211. package/dist/{metadata-fwZ3gfG6.d.ts → metadata-Cjs8JMRM.d.ts} +1 -1
  212. package/dist/middleware.cjs +18 -8
  213. package/dist/middleware.d.mts +24 -5
  214. package/dist/middleware.d.ts +24 -5
  215. package/dist/middleware.mjs +18 -8
  216. package/dist/navigation.cjs +6 -6
  217. package/dist/navigation.d.mts +4 -4
  218. package/dist/navigation.d.ts +4 -4
  219. package/dist/navigation.mjs +5 -5
  220. package/dist/{nitro-NAKCRVHX.mjs → nitro-4XGPNIK4.mjs} +3 -3
  221. package/dist/{nitro-VYDZGYFY.cjs → nitro-HSAQFXSS.cjs} +4 -4
  222. package/dist/plugin.cjs +33 -30
  223. package/dist/plugin.d.mts +1 -1
  224. package/dist/plugin.d.ts +1 -1
  225. package/dist/plugin.mjs +32 -29
  226. package/dist/{production-runtime-DNkpFnmg.d.ts → production-runtime-BU5ETAK9.d.ts} +8 -1
  227. package/dist/{production-runtime-Baqgwtvc.d.mts → production-runtime-CysZl3EV.d.mts} +8 -1
  228. package/dist/query/client.cjs +7 -7
  229. package/dist/query/client.mjs +3 -3
  230. package/dist/{render-plan-DhwQnmmX.d.mts → render-plan-CKr4ltOd.d.mts} +1 -1
  231. package/dist/{render-plan-rkIK9wd9.d.ts → render-plan-D72O1qm4.d.ts} +1 -1
  232. package/dist/renderer-client.cjs +39 -19
  233. package/dist/renderer-client.d.mts +3 -3
  234. package/dist/renderer-client.d.ts +3 -3
  235. package/dist/renderer-client.mjs +28 -8
  236. package/dist/{request-CFy1BltJ.d.mts → request-Be83WafN.d.mts} +7 -2
  237. package/dist/{request-BcY4RYPC.d.ts → request-DbyOYI2j.d.ts} +7 -2
  238. package/dist/request.cjs +2 -2
  239. package/dist/request.d.mts +2 -2
  240. package/dist/request.d.ts +2 -2
  241. package/dist/request.mjs +1 -1
  242. package/dist/{route-rendering-BkS0TBlB.d.mts → route-rendering-BG56SzvJ.d.mts} +1 -1
  243. package/dist/{route-rendering-D4XpMjam.d.ts → route-rendering-CtVMpV-k.d.ts} +1 -1
  244. package/dist/{router-C4zPlC3V.d.mts → router-ALUvm8gC.d.mts} +1 -1
  245. package/dist/{router-Cq7BcZxg.d.ts → router-D94-SDlW.d.ts} +1 -1
  246. package/dist/routes.cjs +3 -3
  247. package/dist/routes.d.mts +1 -1
  248. package/dist/routes.d.ts +1 -1
  249. package/dist/routes.mjs +2 -2
  250. package/dist/server-fn.cjs +3 -3
  251. package/dist/server-fn.mjs +2 -2
  252. package/dist/server-plugins.cjs +4 -4
  253. package/dist/server-plugins.d.mts +2 -2
  254. package/dist/server-plugins.d.ts +2 -2
  255. package/dist/server-plugins.mjs +3 -3
  256. package/dist/server-query-client.cjs +3 -3
  257. package/dist/server-query-client.mjs +2 -2
  258. package/dist/server-query.cjs +4 -4
  259. package/dist/server-query.mjs +3 -3
  260. package/dist/server.cjs +60 -57
  261. package/dist/server.d.mts +7 -7
  262. package/dist/server.d.ts +7 -7
  263. package/dist/server.mjs +37 -34
  264. package/dist/{spa-router-B1HI3X9k.d.ts → spa-router-CxK3USIz.d.ts} +2 -2
  265. package/dist/{spa-router-DzPZH-AO.d.mts → spa-router-DbxNRKOB.d.mts} +2 -2
  266. package/dist/testing.cjs +19 -17
  267. package/dist/testing.d.mts +1 -1
  268. package/dist/testing.d.ts +1 -1
  269. package/dist/testing.mjs +16 -14
  270. package/dist/theme/server.cjs +4 -3
  271. package/dist/theme/server.mjs +3 -2
  272. package/dist/{utils-DMD1Hzta.d.ts → utils-311Y8eoK.d.ts} +1 -1
  273. package/dist/{utils-CEBktlBG.d.mts → utils-4wVRcpOw.d.mts} +1 -1
  274. package/dist/version.cjs +2 -2
  275. package/dist/version.mjs +1 -1
  276. package/dist/vite.cjs +33 -30
  277. package/dist/vite.d.mts +1 -1
  278. package/dist/vite.d.ts +1 -1
  279. package/dist/vite.mjs +32 -29
  280. package/package.json +2 -2
  281. package/dist/chunk-22GUSVNJ.cjs +0 -351
  282. package/dist/chunk-SWN467MP.cjs +0 -18
  283. package/dist/chunk-XGC343EY.cjs +0 -443
  284. package/dist/chunk-ZSH2Y4LN.mjs +0 -351
  285. /package/dist/{chunk-SUIBNSNO.cjs → chunk-SJNMVDDF.cjs} +0 -0
  286. /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';
2
+ import { aE as FarmMCPCatalogDetails, aO as APIRequestRuntime, aP as ResolvedFarmMCPConfig, J as FarmConfig, $ as FarmContextFactoryInput } from '../client-plugins-DZjHC4Mi.js';
3
+ export { aY as FarmLlmsTxtUserConfig, aZ as ResolvedFarmLlmsTxtConfig, b2 as applyFarmCspNonceToResponse, aS as collectFarmLlmsTxtPages, aR as createFarmAgentRobots, aT as createFarmDefaultLlmsTxt, aW as createFarmLlmsFullRenderer, aU as createFarmLlmsMarkdownReader, aQ as createFarmMetadataRouteResponse, g as getFarmRedirectError, i as isFarmNotFoundError, b as isFarmRedirectError, a_ as manageFarmDocumentPreloads, a$ as manageFarmHtmlPreloads, b0 as manageFarmLinkHeaderPreloads, aV as renderFarmLlmsFullTxt, b1 as reportFarmPreloadWarnings, aX as resolveFarmLlmsTxtConfig, b3 as resolveFarmSecurityConfig } from '../client-plugins-DZjHC4Mi.js';
4
+ export { m as mergeRouteRenderingDirectiveConfig } from '../route-rendering-CtVMpV-k.js';
3
5
  import { R as ResolvedFarmServerConfig } from '../workflows-CR9ex-gz.js';
4
6
  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';
7
+ export { _ as _getRequestReadCount, a as _runWithCurrentRequest, g as getCurrentRequest, r as resolveFarmWebRequestOrigin } from '../request-DbyOYI2j.js';
8
8
  export { configureFarmCache, createFarmCacheKey, getFarmDataCache, normalizeRevalidatePath } from '../cache.js';
9
9
  import { g as FarmI18nUserConfig, R as ResolvedFarmI18nConfig } from '../types-Z0aotQ8w.js';
10
10
  export { c as createFarmLocaleCookie, g as getFarmLocaleVaryHeaders } from '../resolver-PPEeiJ6M.js';
11
11
  import { F as FarmLocalePathConfig } from '../index-BWVfxIsO.js';
12
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';
13
+ export { a as addMetadataImageReference, b as addMetadataMarkdownAlternate, m as mergeMetadata, r as renderMetadataHead, c as resolveFarmNotFoundMetadata } from '../metadata-Cjs8JMRM.js';
14
+ export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner } from '../production-runtime-BU5ETAK9.js';
15
15
  export { c as configureFarmObservability, e as emitFarmEvent, r as runWithFarmRequestSpan } from '../observability-BupkiN0m.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-311Y8eoK.js';
21
21
  import 'node:http';
22
22
  import '../lifecycle-DK06VuKP.js';
23
23
  import '../integration-api-BPJo5oXb.js';
@@ -48,6 +48,113 @@ import '../font.js';
48
48
  import '../island-CfGru1MO.js';
49
49
  import '@opentelemetry/api';
50
50
 
51
+ interface FarmAppManifestWebMCPTool {
52
+ name: string;
53
+ title?: string;
54
+ description?: string;
55
+ readOnlyHint?: boolean;
56
+ destructiveHint?: boolean;
57
+ idempotentHint?: boolean;
58
+ openWorldHint?: boolean;
59
+ /** The input JSON Schema when the source writes it out; omitted when it's computed. */
60
+ inputSchema?: Record<string, unknown>;
61
+ /** `"computed"` when the schema is built at runtime, so it can't be read from source. */
62
+ inputSchemaSource: "literal" | "computed" | "none";
63
+ }
64
+
65
+ /**
66
+ * `/.well-known/farmjs`: one document describing a Farm app, so tools can discover it
67
+ * instead of each rebuilding the picture: Farm's version, renderer and packages, the app's
68
+ * MCP servers with every tool (however it was defined) and its schemas, their resources and
69
+ * prompts, its WebMCP browser tools, its integrations, its agent surfaces and its plugins.
70
+ * Never environment values, settings or secrets.
71
+ *
72
+ * Development serves it to anyone on the dev server. Production answers only a request
73
+ * signed for the app's Farm Infra key, so the public never reads the app's internals; any
74
+ * other request gets a 404. Kept free of Node built-ins: Web Crypto only.
75
+ */
76
+
77
+ type FarmAppManifestToolSource = "endpoint" | "defineTool" | "serverFunction";
78
+ interface FarmAppManifestTool {
79
+ name: string;
80
+ title?: string;
81
+ description?: string;
82
+ /** How the app defined it: an API endpoint, `defineTool`, or a server function. */
83
+ source: FarmAppManifestToolSource;
84
+ /** The endpoint's method and route, for `source: "endpoint"`. */
85
+ method?: string;
86
+ path?: string;
87
+ readOnlyHint?: boolean;
88
+ destructiveHint?: boolean;
89
+ idempotentHint?: boolean;
90
+ openWorldHint?: boolean;
91
+ /** JSON Schemas, when the server published them (`@farm.js/mcp` does). */
92
+ inputSchema?: Readonly<Record<string, unknown>>;
93
+ outputSchema?: Readonly<Record<string, unknown>>;
94
+ }
95
+ type ServerDetails = NonNullable<FarmMCPCatalogDetails>;
96
+ interface FarmAppManifest {
97
+ schemaVersion: 1;
98
+ app: {
99
+ farm: string;
100
+ renderer: string;
101
+ basePath: string;
102
+ build: string;
103
+ };
104
+ /** Installed versions of the app's `@farm.js/*` and `@farming-labs/*` packages. */
105
+ packages: Record<string, string>;
106
+ mcp: {
107
+ servers: {
108
+ name: string;
109
+ version: string;
110
+ path: string;
111
+ tools: FarmAppManifestTool[];
112
+ resources: NonNullable<ServerDetails["resources"]>;
113
+ prompts: NonNullable<ServerDetails["prompts"]>;
114
+ }[];
115
+ };
116
+ /** Browser tools from `@farm.js/webmcp`, read from the app's source. */
117
+ webmcp: {
118
+ enabled: boolean;
119
+ tools: FarmAppManifestWebMCPTool[];
120
+ };
121
+ /** The app's integrations: which slot each fills and which provider, never their config. */
122
+ integrations: {
123
+ key: string;
124
+ category: string;
125
+ type: string;
126
+ }[];
127
+ agent: {
128
+ apiCatalog: string | null;
129
+ llmsTxt: boolean;
130
+ openapi: string | null;
131
+ };
132
+ plugins: string[];
133
+ }
134
+ /** What the manifest reads from config; serializable, so a production build embeds it. */
135
+ interface FarmAppManifestInput {
136
+ renderer: string;
137
+ basePath: string;
138
+ /** The build's ID, or "development". */
139
+ build: string;
140
+ packages: Record<string, string>;
141
+ webmcp: FarmAppManifest["webmcp"];
142
+ integrations: FarmAppManifest["integrations"];
143
+ agent: FarmAppManifest["agent"];
144
+ plugins: string[];
145
+ /** `analytics: false` keeps the production manifest off: the app talks to no Farm Infra. */
146
+ analytics: boolean;
147
+ }
148
+ type Env = Record<string, string | undefined>;
149
+ /**
150
+ * Answers `/.well-known/farmjs`, or `null` to let the request go on as if Farm served nothing
151
+ * there: methods other than GET and HEAD, and production apps not linked to Farm Infra.
152
+ */
153
+ declare function createFarmAppManifestResponse(request: Request, input: FarmAppManifestInput, options: {
154
+ development: boolean;
155
+ env?: Env;
156
+ }): Promise<Response | null>;
157
+
51
158
  /**
52
159
  * Compare a caller-supplied secret against the configured one without leaking
53
160
  * how much of it matched.
@@ -277,4 +384,4 @@ declare function appendFarmRedirectQuery(destination: string, search: string): s
277
384
 
278
385
  declare function appendFarmLinkHeader(headers: Headers, value: string): void;
279
386
 
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 };
387
+ export { _isFarmOwnedResponse, _markFarmOwnedResponse, _runWithAPIRequestRuntime, _withFarmResponseHeaders, appendFarmLinkHeader, appendFarmRedirectQuery, applyFarmPreviewRobotsTag, applyFarmThemeDocument, compareRouteSpecificity, createDefaultErrorMarkup, createFarmApiCatalogResponse, createFarmAppManifestResponse, createFarmLayoutSelector, createFarmLegacyRequest, createFarmProductionLifecycle, createFarmThemeDocumentParts, createLateNotFoundRecovery, createLateRedirectRecovery, farmSecretsMatch, generateNativeMCPPluginSource, getDefaultErrorStatusText, getRoutePatternSpecificity, 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
@@ -19,6 +19,7 @@ import {
19
19
  applyFarmThemeDocument,
20
20
  createDefaultErrorMarkup,
21
21
  createFarmApiCatalogResponse,
22
+ createFarmAppManifestResponse,
22
23
  createFarmMetadataRouteResponse,
23
24
  createFarmThemeDocumentParts,
24
25
  createLateNotFoundRecovery,
@@ -26,7 +27,7 @@ import {
26
27
  getDefaultErrorStatusText,
27
28
  renderFarmLocaleAlternateLinks,
28
29
  resolveDefaultErrorStatus
29
- } from "../chunk-TEN4FIZU.mjs";
30
+ } from "../chunk-GOABMOX3.mjs";
30
31
  import {
31
32
  mergeRouteRenderingDirectiveConfig
32
33
  } from "../chunk-DAO7JGTS.mjs";
@@ -37,7 +38,7 @@ import "../chunk-XAXTTBUT.mjs";
37
38
  import {
38
39
  _setDefaultFarmThemeConfig,
39
40
  getTheme
40
- } from "../chunk-WBIH66JK.mjs";
41
+ } from "../chunk-2ELDTQRN.mjs";
41
42
  import {
42
43
  applyFarmCspNonceToResponse,
43
44
  applyFarmPreviewRobotsTag,
@@ -53,8 +54,8 @@ import {
53
54
  reportFarmPreloadWarnings,
54
55
  resolveFarmLlmsTxtConfig,
55
56
  resolveFarmSecurityConfig
56
- } from "../chunk-6VYZOPOT.mjs";
57
- import "../chunk-JBC2FKRW.mjs";
57
+ } from "../chunk-NGVORZVZ.mjs";
58
+ import "../chunk-ZUSJDQ2Q.mjs";
58
59
  import "../chunk-MVL2RAJW.mjs";
59
60
  import {
60
61
  farmSecretsMatch
@@ -67,8 +68,8 @@ import {
67
68
  import {
68
69
  _runWithMiddlewareContext,
69
70
  _runWithMiddlewareData
70
- } from "../chunk-NRVGEI5I.mjs";
71
- import "../chunk-5TISYEQF.mjs";
71
+ } from "../chunk-2NNMOPDN.mjs";
72
+ import "../chunk-JG6DJF5A.mjs";
72
73
  import {
73
74
  _runWithAPIRequestRuntime
74
75
  } from "../chunk-R3DS7A2T.mjs";
@@ -76,13 +77,12 @@ import {
76
77
  _runWithAfterRequest
77
78
  } from "../chunk-IOEH4VWN.mjs";
78
79
  import "../chunk-5WI2S4CO.mjs";
79
- import "../chunk-O6XNAMBV.mjs";
80
- import "../chunk-I6XDAKWQ.mjs";
80
+ import "../chunk-QLQ32WC4.mjs";
81
81
  import {
82
82
  configureFarmCache,
83
83
  getFarmDataCache,
84
84
  normalizeRevalidatePath
85
- } from "../chunk-IV6CQY7O.mjs";
85
+ } from "../chunk-MSSFIQGM.mjs";
86
86
  import {
87
87
  bufferFarmRequestBody,
88
88
  cloneFarmRequestWithContext,
@@ -95,7 +95,7 @@ import {
95
95
  } from "../chunk-XF7Q24PF.mjs";
96
96
  import {
97
97
  resolveFarmI18nConfig
98
- } from "../chunk-YMCXWPWK.mjs";
98
+ } from "../chunk-BCMSYSN2.mjs";
99
99
  import {
100
100
  matchRoute,
101
101
  parseRoutePath
@@ -103,11 +103,13 @@ import {
103
103
  import {
104
104
  searchParamsToObject
105
105
  } from "../chunk-QVKYGNVM.mjs";
106
+ import "../chunk-BTHHUD7Q.mjs";
106
107
  import {
107
108
  configureFarmObservability,
108
109
  emitFarmEvent,
109
110
  runWithFarmRequestSpan
110
111
  } from "../chunk-FUZEBRP3.mjs";
112
+ import "../chunk-X242HVD5.mjs";
111
113
  import {
112
114
  resolveFarmTrailingSlashRedirect,
113
115
  setFarmTrailingSlashPreference
@@ -119,7 +121,8 @@ import "../chunk-7LTCDQRS.mjs";
119
121
  import {
120
122
  createFarmLocaleCookie,
121
123
  getFarmLocaleVaryHeaders
122
- } from "../chunk-IXUY2F5U.mjs";
124
+ } from "../chunk-GCXWJJKH.mjs";
125
+ import "../chunk-JM5XPKWH.mjs";
123
126
  import {
124
127
  addMetadataImageReference,
125
128
  addMetadataMarkdownAlternate,
@@ -147,10 +150,11 @@ import {
147
150
  isFarmRedirectError
148
151
  } from "../chunk-CBBLJMR5.mjs";
149
152
  import {
153
+ _getRequestReadCount,
150
154
  _runWithCurrentRequest,
151
155
  getCurrentRequest,
152
156
  resolveFarmWebRequestOrigin
153
- } from "../chunk-BSPQVJ4A.mjs";
157
+ } from "../chunk-FDR64H6B.mjs";
154
158
  import "../chunk-CQ6OSQ3K.mjs";
155
159
  import "../chunk-IZY3V5XW.mjs";
156
160
  import {
@@ -492,6 +496,7 @@ function appendFarmLinkHeader(headers, value) {
492
496
  }
493
497
  __name(appendFarmLinkHeader, "appendFarmLinkHeader");
494
498
  export {
499
+ _getRequestReadCount,
495
500
  _isFarmOwnedResponse,
496
501
  _markFarmOwnedResponse,
497
502
  _runWithAPIRequestRuntime,
@@ -519,6 +524,7 @@ export {
519
524
  createDefaultErrorMarkup,
520
525
  createFarmAgentRobots,
521
526
  createFarmApiCatalogResponse,
527
+ createFarmAppManifestResponse,
522
528
  createFarmCacheKey,
523
529
  createFarmDefaultLlmsTxt,
524
530
  createFarmInstrumentationLifecycle,
@@ -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
  };
package/dist/markdown.cjs CHANGED
@@ -14,10 +14,10 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkKJ2TIHZZcjs = require('./chunk-KJ2TIHZZ.cjs');
17
+ var _chunkXXJU7FCCcjs = require('./chunk-XXJU7FCC.cjs');
18
18
  require('./chunk-J63ZH5OQ.cjs');
19
- require('./chunk-5MKEDGLD.cjs');
20
- require('./chunk-WPYFSQKK.cjs');
19
+ require('./chunk-M64YUMA4.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 = _chunkXXJU7FCCcjs.FARM_MARKDOWN_CONTENT_TYPE; exports.applyMarkdownNegotiationHeaders = _chunkXXJU7FCCcjs.applyMarkdownNegotiationHeaders; exports.createFarmMarkdownErrorBody = _chunkXXJU7FCCcjs.createFarmMarkdownErrorBody; exports.createMarkdownMirrorResponse = _chunkXXJU7FCCcjs.createMarkdownMirrorResponse; exports.extractFarmPageActions = _chunkXXJU7FCCcjs.extractFarmPageActions; exports.farmAcceptQuality = _chunkXXJU7FCCcjs.farmAcceptQuality; exports.farmRequestWantsMarkdown = _chunkXXJU7FCCcjs.farmRequestWantsMarkdown; exports.getFarmMarkdownAlternatePath = _chunkXXJU7FCCcjs.getFarmMarkdownAlternatePath; exports.getFarmMarkdownMirrorPath = _chunkXXJU7FCCcjs.getFarmMarkdownMirrorPath; exports.htmlToMarkdown = _chunkXXJU7FCCcjs.htmlToMarkdown; exports.isFarmMarkdownMirrorExposed = _chunkXXJU7FCCcjs.isFarmMarkdownMirrorExposed; exports.matchesFarmMarkdownRoutePattern = _chunkXXJU7FCCcjs.matchesFarmMarkdownRoutePattern; exports.requestAcceptsMarkdown = _chunkXXJU7FCCcjs.requestAcceptsMarkdown; exports.resolveMarkdownConfig = _chunkXXJU7FCCcjs.resolveMarkdownConfig; exports.resolveMarkdownMirrorTarget = _chunkXXJU7FCCcjs.resolveMarkdownMirrorTarget;
@@ -1,4 +1,4 @@
1
- export { fq as ApplyMarkdownNegotiationHeadersOptions, fp as CreateMarkdownMirrorResponseOptions, z as FARM_MARKDOWN_CONTENT_TYPE, fn as FarmMarkdownMirrorTarget, aH as FarmMarkdownResolvedConfig, fm as FarmMarkdownResolvedRoute, fl as FarmMarkdownRouteInput, cS as FarmMarkdownUserConfig, fF as FarmPageFormAction, fD as FarmPageFormField, fC as FarmPageFormOption, fE as FarmPageFormSubmit, fo as ResolveMarkdownMirrorTargetOptions, fu as applyMarkdownNegotiationHeaders, A as createFarmMarkdownErrorBody, ft as createMarkdownMirrorResponse, fG as extractFarmPageActions, fw as farmAcceptQuality, B as farmRequestWantsMarkdown, fz as getFarmMarkdownAlternatePath, fy as getFarmMarkdownMirrorPath, fv as htmlToMarkdown, fA as isFarmMarkdownMirrorExposed, fB as matchesFarmMarkdownRoutePattern, fx as requestAcceptsMarkdown, fr as resolveMarkdownConfig, fs as resolveMarkdownMirrorTarget } from './client-plugins-BX2ptm4H.mjs';
1
+ export { fr as ApplyMarkdownNegotiationHeadersOptions, fq as CreateMarkdownMirrorResponseOptions, z as FARM_MARKDOWN_CONTENT_TYPE, fo as FarmMarkdownMirrorTarget, aI as FarmMarkdownResolvedConfig, fn as FarmMarkdownResolvedRoute, fm as FarmMarkdownRouteInput, cT as FarmMarkdownUserConfig, fG as FarmPageFormAction, fE as FarmPageFormField, fD as FarmPageFormOption, fF as FarmPageFormSubmit, fp as ResolveMarkdownMirrorTargetOptions, fv as applyMarkdownNegotiationHeaders, A as createFarmMarkdownErrorBody, fu as createMarkdownMirrorResponse, fH as extractFarmPageActions, fx as farmAcceptQuality, B as farmRequestWantsMarkdown, fA as getFarmMarkdownAlternatePath, fz as getFarmMarkdownMirrorPath, fw as htmlToMarkdown, fB as isFarmMarkdownMirrorExposed, fC as matchesFarmMarkdownRoutePattern, fy as requestAcceptsMarkdown, fs as resolveMarkdownConfig, ft as resolveMarkdownMirrorTarget } from './client-plugins-CLObcuCq.mjs';
2
2
  import './lifecycle-DK06VuKP.mjs';
3
3
  import './integration-api-0y4FXJpC.mjs';
4
4
  import './endpoint-CCHFqyTE.mjs';
@@ -1,4 +1,4 @@
1
- export { fq as ApplyMarkdownNegotiationHeadersOptions, fp as CreateMarkdownMirrorResponseOptions, z as FARM_MARKDOWN_CONTENT_TYPE, fn as FarmMarkdownMirrorTarget, aH as FarmMarkdownResolvedConfig, fm as FarmMarkdownResolvedRoute, fl as FarmMarkdownRouteInput, cS as FarmMarkdownUserConfig, fF as FarmPageFormAction, fD as FarmPageFormField, fC as FarmPageFormOption, fE as FarmPageFormSubmit, fo as ResolveMarkdownMirrorTargetOptions, fu as applyMarkdownNegotiationHeaders, A as createFarmMarkdownErrorBody, ft as createMarkdownMirrorResponse, fG as extractFarmPageActions, fw as farmAcceptQuality, B as farmRequestWantsMarkdown, fz as getFarmMarkdownAlternatePath, fy as getFarmMarkdownMirrorPath, fv as htmlToMarkdown, fA as isFarmMarkdownMirrorExposed, fB as matchesFarmMarkdownRoutePattern, fx as requestAcceptsMarkdown, fr as resolveMarkdownConfig, fs as resolveMarkdownMirrorTarget } from './client-plugins-BmxM5KW_.js';
1
+ export { fr as ApplyMarkdownNegotiationHeadersOptions, fq as CreateMarkdownMirrorResponseOptions, z as FARM_MARKDOWN_CONTENT_TYPE, fo as FarmMarkdownMirrorTarget, aI as FarmMarkdownResolvedConfig, fn as FarmMarkdownResolvedRoute, fm as FarmMarkdownRouteInput, cT as FarmMarkdownUserConfig, fG as FarmPageFormAction, fE as FarmPageFormField, fD as FarmPageFormOption, fF as FarmPageFormSubmit, fp as ResolveMarkdownMirrorTargetOptions, fv as applyMarkdownNegotiationHeaders, A as createFarmMarkdownErrorBody, fu as createMarkdownMirrorResponse, fH as extractFarmPageActions, fx as farmAcceptQuality, B as farmRequestWantsMarkdown, fA as getFarmMarkdownAlternatePath, fz as getFarmMarkdownMirrorPath, fw as htmlToMarkdown, fB as isFarmMarkdownMirrorExposed, fC as matchesFarmMarkdownRoutePattern, fy as requestAcceptsMarkdown, fs as resolveMarkdownConfig, ft as resolveMarkdownMirrorTarget } from './client-plugins-DZjHC4Mi.js';
2
2
  import './lifecycle-DK06VuKP.js';
3
3
  import './integration-api-BPJo5oXb.js';
4
4
  import './endpoint-CA-TNX60.js';
package/dist/markdown.mjs CHANGED
@@ -14,10 +14,10 @@ import {
14
14
  requestAcceptsMarkdown,
15
15
  resolveMarkdownConfig,
16
16
  resolveMarkdownMirrorTarget
17
- } from "./chunk-JBC2FKRW.mjs";
17
+ } from "./chunk-ZUSJDQ2Q.mjs";
18
18
  import "./chunk-MVL2RAJW.mjs";
19
- import "./chunk-O6XNAMBV.mjs";
20
- import "./chunk-I6XDAKWQ.mjs";
19
+ import "./chunk-QLQ32WC4.mjs";
20
+ import "./chunk-BTHHUD7Q.mjs";
21
21
  import "./chunk-FUZEBRP3.mjs";
22
22
  import "./chunk-O7BH5O46.mjs";
23
23
  import "./chunk-7LTCDQRS.mjs";
@@ -1,4 +1,4 @@
1
- import { M as Metadata, D as FarmAgentJsonLd } from './client-plugins-BX2ptm4H.mjs';
1
+ import { M as Metadata, D as FarmAgentJsonLd } from './client-plugins-CLObcuCq.mjs';
2
2
 
3
3
  type MetadataImageKind = "opengraph" | "twitter";
4
4
  interface FarmMetadataImageReference {
@@ -1,4 +1,4 @@
1
- import { M as Metadata, D as FarmAgentJsonLd } from './client-plugins-BmxM5KW_.js';
1
+ import { M as Metadata, D as FarmAgentJsonLd } from './client-plugins-DZjHC4Mi.js';
2
2
 
3
3
  type MetadataImageKind = "opengraph" | "twitter";
4
4
  interface FarmMetadataImageReference {
@@ -7,34 +7,41 @@
7
7
 
8
8
 
9
9
 
10
- var _chunkKZLND3D2cjs = require('./chunk-KZLND3D2.cjs');
10
+ var _chunk7BT4H4P7cjs = require('./chunk-7BT4H4P7.cjs');
11
11
 
12
12
 
13
13
 
14
14
 
15
- var _chunkK7CELQLKcjs = require('./chunk-K7CELQLK.cjs');
15
+ var _chunk2F2ER724cjs = require('./chunk-2F2ER724.cjs');
16
16
 
17
17
 
18
18
 
19
- var _chunkZHVYQL3Hcjs = require('./chunk-ZHVYQL3H.cjs');
19
+ var _chunkU74I55WBcjs = require('./chunk-U74I55WB.cjs');
20
+ require('./chunk-2NQQ5H5G.cjs');
20
21
 
21
22
 
22
23
 
23
24
 
24
25
 
25
26
 
26
- var _chunkXGC343EYcjs = require('./chunk-XGC343EY.cjs');
27
- require('./chunk-RG3ZOTG5.cjs');
27
+
28
+
29
+
30
+ var _chunk3BU22U3Mcjs = require('./chunk-3BU22U3M.cjs');
31
+ require('./chunk-Z2HLU4IX.cjs');
28
32
  require('./chunk-M2L4MYDQ.cjs');
29
33
  require('./chunk-BMWDEBXO.cjs');
30
- require('./chunk-HBTUGXHS.cjs');
34
+ require('./chunk-HLJ6MBUZ.cjs');
31
35
  require('./chunk-5QIKR7RR.cjs');
32
36
  require('./chunk-QNPEUFHQ.cjs');
37
+ require('./chunk-KNBBQHO2.cjs');
33
38
  require('./chunk-E3UK5IIB.cjs');
34
39
  require('./chunk-UQZ4AYTH.cjs');
40
+ require('./chunk-S3A45T7F.cjs');
41
+ require('./chunk-AI7QMY7O.cjs');
35
42
  require('./chunk-FJ3M4CUX.cjs');
36
43
  require('./chunk-OX6O6WVA.cjs');
37
- require('./chunk-5ZSWG4UX.cjs');
44
+ require('./chunk-UXFQ3UDA.cjs');
38
45
 
39
46
 
40
47
  var _chunkUS2QVW3Ecjs = require('./chunk-US2QVW3E.cjs');
@@ -63,4 +70,7 @@ require('./chunk-S3JO3N4H.cjs');
63
70
 
64
71
 
65
72
 
66
- exports.MiddlewareManager = _chunkZHVYQL3Hcjs.MiddlewareManager; exports.UnsupportedRateLimitStorageError = _chunkKZLND3D2cjs.UnsupportedRateLimitStorageError; exports._runWithMiddlewareContext = _chunkXGC343EYcjs._runWithMiddlewareContext; exports._runWithMiddlewareData = _chunkXGC343EYcjs._runWithMiddlewareData; exports.applyProductionMiddlewareHeaders = _chunkK7CELQLKcjs.applyProductionMiddlewareHeaders; exports.canonicalizeRequestPathSegments = _chunkUS2QVW3Ecjs.canonicalizeRequestPathSegments; exports.createContext = _chunkZHVYQL3Hcjs.createContext; exports.createProductionMiddlewareRunner = _chunkK7CELQLKcjs.createProductionMiddlewareRunner; exports.farmMiddlewarePlugin = _chunkKZLND3D2cjs.farmMiddlewarePlugin; exports.getFromMiddleware = _chunkKZLND3D2cjs.getFromMiddleware; exports.getMiddlewareContext = _chunkXGC343EYcjs.getMiddlewareContext; exports.getMiddlewareData = _chunkXGC343EYcjs.getMiddlewareData; exports.getMiddlewareValue = _chunkXGC343EYcjs.getMiddlewareValue; exports.getRateLimitStatus = _chunkKZLND3D2cjs.getRateLimitStatus; exports.hasMiddlewareData = _chunkKZLND3D2cjs.hasMiddlewareData; exports.matchesMiddlewareConfig = _chunkK7CELQLKcjs.matchesMiddlewareConfig; exports.memoryRateLimitStorage = _chunkKZLND3D2cjs.memoryRateLimitStorage; exports.middleware = _chunkKZLND3D2cjs.middleware; exports.unwrapMiddleware = _chunkKZLND3D2cjs.unwrapMiddleware;
73
+
74
+
75
+
76
+ exports.MiddlewareManager = _chunkU74I55WBcjs.MiddlewareManager; exports.UnsupportedRateLimitStorageError = _chunk7BT4H4P7cjs.UnsupportedRateLimitStorageError; exports._runWithMiddlewareContext = _chunk3BU22U3Mcjs._runWithMiddlewareContext; exports._runWithMiddlewareData = _chunk3BU22U3Mcjs._runWithMiddlewareData; exports.applyProductionMiddlewareHeaders = _chunk2F2ER724cjs.applyProductionMiddlewareHeaders; exports.canonicalizeRequestPathSegments = _chunkUS2QVW3Ecjs.canonicalizeRequestPathSegments; exports.createContext = _chunkU74I55WBcjs.createContext; exports.createProductionMiddlewareRunner = _chunk2F2ER724cjs.createProductionMiddlewareRunner; exports.farmMiddlewarePlugin = _chunk7BT4H4P7cjs.farmMiddlewarePlugin; exports.getFromMiddleware = _chunk7BT4H4P7cjs.getFromMiddleware; exports.getMiddlewareContext = _chunk3BU22U3Mcjs.getMiddlewareContext; exports.getMiddlewareData = _chunk3BU22U3Mcjs.getMiddlewareData; exports.getMiddlewareValue = _chunk3BU22U3Mcjs.getMiddlewareValue; exports.getRateLimitStatus = _chunk7BT4H4P7cjs.getRateLimitStatus; exports.hasMiddlewareData = _chunk7BT4H4P7cjs.hasMiddlewareData; exports.matchesMiddlewareConfig = _chunk2F2ER724cjs.matchesMiddlewareConfig; exports.memoryRateLimitStorage = _chunk7BT4H4P7cjs.memoryRateLimitStorage; exports.middleware = _chunk7BT4H4P7cjs.middleware; exports.parseMiddlewareCookieHeader = _chunk3BU22U3Mcjs.parseMiddlewareCookieHeader; exports.serializeMiddlewareCookie = _chunk3BU22U3Mcjs.serializeMiddlewareCookie; exports.serializeMiddlewareCookieDeletion = _chunk3BU22U3Mcjs.serializeMiddlewareCookieDeletion; exports.unwrapMiddleware = _chunk7BT4H4P7cjs.unwrapMiddleware;
@@ -1,10 +1,10 @@
1
- import { eS as MiddlewareChain, eX as RateLimitStorage, eY as RateLimitStatus, eZ as MemoryRateLimitStorageOptions, aB as MiddlewareContext, ay as FarmMiddlewareConfig, eO as MiddlewareFunction, aA as MiddlewareConfig, G as MiddlewareProps } from './client-plugins-BX2ptm4H.mjs';
2
- export { eT as CookieJar, eU as CookieOptions, e$ as MiddlewareResult, eR as MiddlewareStore, e_ as NextFunction, eV as RateLimitConfig, eW as RateLimitIncrementResult, ax as ReadonlyMiddlewareStore, eP as RequestMiddleware, eQ as RequestMiddlewareContext } from './client-plugins-BX2ptm4H.mjs';
1
+ import { eT as MiddlewareChain, eY as RateLimitStorage, eZ as RateLimitStatus, e_ as MemoryRateLimitStorageOptions, aB as MiddlewareContext, ay as FarmMiddlewareConfig, eP as MiddlewareFunction, aA as MiddlewareConfig, G as MiddlewareProps, eV as CookieOptions } from './client-plugins-CLObcuCq.mjs';
2
+ export { eU as CookieJar, f0 as MiddlewareResult, eS as MiddlewareStore, e$ as NextFunction, eW as RateLimitConfig, eX as RateLimitIncrementResult, ax as ReadonlyMiddlewareStore, eQ as RequestMiddleware, eR as RequestMiddlewareContext } from './client-plugins-CLObcuCq.mjs';
3
3
  import { IncomingMessage, ServerResponse } from 'http';
4
4
  import { ViteDevServer, Plugin } from 'vite';
5
5
  import { a as FarmServerConfig, R as ResolvedFarmServerConfig } from './workflows-CR9ex-gz.mjs';
6
6
  import { R as ResolvedFarmI18nConfig } from './types-Z0aotQ8w.mjs';
7
- export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue, m as matchesMiddlewareConfig } from './production-runtime-Baqgwtvc.mjs';
7
+ export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue, m as matchesMiddlewareConfig } from './production-runtime-CysZl3EV.mjs';
8
8
  import './lifecycle-DK06VuKP.mjs';
9
9
  import './integration-api-0y4FXJpC.mjs';
10
10
  import './endpoint-CCHFqyTE.mjs';
@@ -81,7 +81,10 @@ declare class MiddlewareManager {
81
81
  private appDirs;
82
82
  private i18n?;
83
83
  private server?;
84
- constructor(appDir: string | readonly string[], viteServer?: ViteDevServer, config?: FarmMiddlewareConfig, i18n?: ResolvedFarmI18nConfig, server?: FarmServerConfig | ResolvedFarmServerConfig);
84
+ private toMiddlewarePathnames;
85
+ constructor(appDir: string | readonly string[], viteServer?: ViteDevServer, config?: FarmMiddlewareConfig, i18n?: ResolvedFarmI18nConfig, server?: FarmServerConfig | ResolvedFarmServerConfig,
86
+ /** The app's public API path (`api.basePath`); `/api` middleware guards it too. */
87
+ apiBasePath?: string);
85
88
  configure(config?: FarmMiddlewareConfig): void;
86
89
  /**
87
90
  * Discover all middleware.ts files
@@ -170,6 +173,15 @@ declare function hasMiddlewareData(middleware: MiddlewareProps | undefined): boo
170
173
  */
171
174
  declare function canonicalizeRequestPathSegments(pathname: string): string[];
172
175
 
176
+ declare function parseMiddlewareCookieHeader(cookieHeader?: string | null): Record<string, string>;
177
+ declare function serializeMiddlewareCookie(name: string, value: string, options?: CookieOptions): string;
178
+ /**
179
+ * Serialize the tombstone that removes a cookie. A deletion only matches the
180
+ * stored cookie when its `Path` and `Domain` match the ones it was set with,
181
+ * so callers must be able to pass them through.
182
+ */
183
+ declare function serializeMiddlewareCookieDeletion(name: string, options?: CookieOptions): string;
184
+
173
185
  /**
174
186
  * Standalone Vite middleware support used by Farm's RSC and API plugins.
175
187
  */
@@ -179,9 +191,16 @@ interface FarmMiddlewarePluginOptions {
179
191
  srcDir?: string;
180
192
  /** Application base path (default: `/`). */
181
193
  basePath?: string;
194
+ /**
195
+ * Public API path served by `farmApiPlugin({ basePath })` (default: `/api`). Pass the same
196
+ * value so `src/app/api/**` middleware guards it.
197
+ */
198
+ apiBasePath?: string;
199
+ /** Config middleware (`defineConfig({ middleware })`), run before `middleware.ts` files. */
200
+ middleware?: FarmMiddlewareConfig;
182
201
  /** Enable debug logging. */
183
202
  debug?: boolean;
184
203
  }
185
204
  declare function farmMiddlewarePlugin(options?: FarmMiddlewarePluginOptions): Plugin;
186
205
 
187
- export { FarmMiddlewareConfig, type FarmMiddlewarePluginOptions, MemoryRateLimitStorageOptions, MiddlewareChain, MiddlewareConfig, MiddlewareContext, MiddlewareFunction, MiddlewareManager, RateLimitStatus, RateLimitStorage, UnsupportedRateLimitStorageError, canonicalizeRequestPathSegments, createContext, farmMiddlewarePlugin, getFromMiddleware, getRateLimitStatus, hasMiddlewareData, memoryRateLimitStorage, middleware, unwrapMiddleware };
206
+ export { CookieOptions, FarmMiddlewareConfig, type FarmMiddlewarePluginOptions, MemoryRateLimitStorageOptions, MiddlewareChain, MiddlewareConfig, MiddlewareContext, MiddlewareFunction, MiddlewareManager, RateLimitStatus, RateLimitStorage, UnsupportedRateLimitStorageError, canonicalizeRequestPathSegments, createContext, farmMiddlewarePlugin, getFromMiddleware, getRateLimitStatus, hasMiddlewareData, memoryRateLimitStorage, middleware, parseMiddlewareCookieHeader, serializeMiddlewareCookie, serializeMiddlewareCookieDeletion, unwrapMiddleware };
@@ -1,10 +1,10 @@
1
- import { eS as MiddlewareChain, eX as RateLimitStorage, eY as RateLimitStatus, eZ as MemoryRateLimitStorageOptions, aB as MiddlewareContext, ay as FarmMiddlewareConfig, eO as MiddlewareFunction, aA as MiddlewareConfig, G as MiddlewareProps } from './client-plugins-BmxM5KW_.js';
2
- export { eT as CookieJar, eU as CookieOptions, e$ as MiddlewareResult, eR as MiddlewareStore, e_ as NextFunction, eV as RateLimitConfig, eW as RateLimitIncrementResult, ax as ReadonlyMiddlewareStore, eP as RequestMiddleware, eQ as RequestMiddlewareContext } from './client-plugins-BmxM5KW_.js';
1
+ import { eT as MiddlewareChain, eY as RateLimitStorage, eZ as RateLimitStatus, e_ as MemoryRateLimitStorageOptions, aB as MiddlewareContext, ay as FarmMiddlewareConfig, eP as MiddlewareFunction, aA as MiddlewareConfig, G as MiddlewareProps, eV as CookieOptions } from './client-plugins-DZjHC4Mi.js';
2
+ export { eU as CookieJar, f0 as MiddlewareResult, eS as MiddlewareStore, e$ as NextFunction, eW as RateLimitConfig, eX as RateLimitIncrementResult, ax as ReadonlyMiddlewareStore, eQ as RequestMiddleware, eR as RequestMiddlewareContext } from './client-plugins-DZjHC4Mi.js';
3
3
  import { IncomingMessage, ServerResponse } from 'http';
4
4
  import { ViteDevServer, Plugin } from 'vite';
5
5
  import { a as FarmServerConfig, R as ResolvedFarmServerConfig } from './workflows-CR9ex-gz.js';
6
6
  import { R as ResolvedFarmI18nConfig } from './types-Z0aotQ8w.js';
7
- export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue, m as matchesMiddlewareConfig } from './production-runtime-DNkpFnmg.js';
7
+ export { _ as _runWithMiddlewareContext, b as _runWithMiddlewareData, a as applyProductionMiddlewareHeaders, c as createProductionMiddlewareRunner, g as getMiddlewareContext, d as getMiddlewareData, e as getMiddlewareValue, m as matchesMiddlewareConfig } from './production-runtime-BU5ETAK9.js';
8
8
  import './lifecycle-DK06VuKP.js';
9
9
  import './integration-api-BPJo5oXb.js';
10
10
  import './endpoint-CA-TNX60.js';
@@ -81,7 +81,10 @@ declare class MiddlewareManager {
81
81
  private appDirs;
82
82
  private i18n?;
83
83
  private server?;
84
- constructor(appDir: string | readonly string[], viteServer?: ViteDevServer, config?: FarmMiddlewareConfig, i18n?: ResolvedFarmI18nConfig, server?: FarmServerConfig | ResolvedFarmServerConfig);
84
+ private toMiddlewarePathnames;
85
+ constructor(appDir: string | readonly string[], viteServer?: ViteDevServer, config?: FarmMiddlewareConfig, i18n?: ResolvedFarmI18nConfig, server?: FarmServerConfig | ResolvedFarmServerConfig,
86
+ /** The app's public API path (`api.basePath`); `/api` middleware guards it too. */
87
+ apiBasePath?: string);
85
88
  configure(config?: FarmMiddlewareConfig): void;
86
89
  /**
87
90
  * Discover all middleware.ts files
@@ -170,6 +173,15 @@ declare function hasMiddlewareData(middleware: MiddlewareProps | undefined): boo
170
173
  */
171
174
  declare function canonicalizeRequestPathSegments(pathname: string): string[];
172
175
 
176
+ declare function parseMiddlewareCookieHeader(cookieHeader?: string | null): Record<string, string>;
177
+ declare function serializeMiddlewareCookie(name: string, value: string, options?: CookieOptions): string;
178
+ /**
179
+ * Serialize the tombstone that removes a cookie. A deletion only matches the
180
+ * stored cookie when its `Path` and `Domain` match the ones it was set with,
181
+ * so callers must be able to pass them through.
182
+ */
183
+ declare function serializeMiddlewareCookieDeletion(name: string, options?: CookieOptions): string;
184
+
173
185
  /**
174
186
  * Standalone Vite middleware support used by Farm's RSC and API plugins.
175
187
  */
@@ -179,9 +191,16 @@ interface FarmMiddlewarePluginOptions {
179
191
  srcDir?: string;
180
192
  /** Application base path (default: `/`). */
181
193
  basePath?: string;
194
+ /**
195
+ * Public API path served by `farmApiPlugin({ basePath })` (default: `/api`). Pass the same
196
+ * value so `src/app/api/**` middleware guards it.
197
+ */
198
+ apiBasePath?: string;
199
+ /** Config middleware (`defineConfig({ middleware })`), run before `middleware.ts` files. */
200
+ middleware?: FarmMiddlewareConfig;
182
201
  /** Enable debug logging. */
183
202
  debug?: boolean;
184
203
  }
185
204
  declare function farmMiddlewarePlugin(options?: FarmMiddlewarePluginOptions): Plugin;
186
205
 
187
- export { FarmMiddlewareConfig, type FarmMiddlewarePluginOptions, MemoryRateLimitStorageOptions, MiddlewareChain, MiddlewareConfig, MiddlewareContext, MiddlewareFunction, MiddlewareManager, RateLimitStatus, RateLimitStorage, UnsupportedRateLimitStorageError, canonicalizeRequestPathSegments, createContext, farmMiddlewarePlugin, getFromMiddleware, getRateLimitStatus, hasMiddlewareData, memoryRateLimitStorage, middleware, unwrapMiddleware };
206
+ export { CookieOptions, FarmMiddlewareConfig, type FarmMiddlewarePluginOptions, MemoryRateLimitStorageOptions, MiddlewareChain, MiddlewareConfig, MiddlewareContext, MiddlewareFunction, MiddlewareManager, RateLimitStatus, RateLimitStorage, UnsupportedRateLimitStorageError, canonicalizeRequestPathSegments, createContext, farmMiddlewarePlugin, getFromMiddleware, getRateLimitStatus, hasMiddlewareData, memoryRateLimitStorage, middleware, parseMiddlewareCookieHeader, serializeMiddlewareCookie, serializeMiddlewareCookieDeletion, unwrapMiddleware };