@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
@@ -150,16 +150,21 @@ function storageCacheAdapter(storage, options = {}) {
150
150
  throw new TypeError("storageCacheAdapter expects a compatible storage client.");
151
151
  }
152
152
  const base = normalizeCacheNamespace(options.base || "farm-cache");
153
- const entryKey = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (key) => `${base}:entry:${key}`, "entryKey");
154
- const tagKey = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (tag) => `${base}:tag:${tag}`, "tagKey");
153
+ const entryKey = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (key) => `${base}:entry:${await encodeStorageKeySegment(key)}`, "entryKey");
154
+ const tagKey = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (tag) => `${base}:tag:${await encodeStorageKeySegment(tag)}`, "tagKey");
155
155
  return {
156
156
  name: "storage",
157
- get: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (key) => storage.getItem(entryKey(key)), "get"),
157
+ get: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (key) => storage.getItem(await entryKey(key)), "get"),
158
158
  set: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (key, entry) => {
159
- await storage.setItem(entryKey(key), entry);
159
+ const ttlMs = getFarmCacheEntryTtlMs(entry);
160
+ if (ttlMs === void 0) {
161
+ await storage.setItem(await entryKey(key), entry);
162
+ } else {
163
+ await storage.setItem(await entryKey(key), entry, { ttl: Math.ceil(ttlMs / 1e3) });
164
+ }
160
165
  }, "set"),
161
166
  delete: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (key) => {
162
- await storage.removeItem(entryKey(key));
167
+ await storage.removeItem(await entryKey(key));
163
168
  }, "delete"),
164
169
  clear: storage.clear ? async () => {
165
170
  await storage.clear(base);
@@ -167,7 +172,7 @@ function storageCacheAdapter(storage, options = {}) {
167
172
  getTagVersions: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (tags) => {
168
173
  const versions = await Promise.all(
169
174
  tags.map(async (tag) => {
170
- const value = await storage.getItem(tagKey(tag));
175
+ const value = await storage.getItem(await tagKey(tag));
171
176
  return [tag, normalizeAdapterVersion(value)];
172
177
  })
173
178
  );
@@ -176,7 +181,7 @@ function storageCacheAdapter(storage, options = {}) {
176
181
  invalidateTags: /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (tags) => {
177
182
  await Promise.all(
178
183
  tags.map(async (tag) => {
179
- const key = tagKey(tag);
184
+ const key = await tagKey(tag);
180
185
  const current = normalizeAdapterVersion(await storage.getItem(key));
181
186
  await storage.setItem(key, Math.max(Date.now(), current + 1));
182
187
  })
@@ -185,6 +190,35 @@ function storageCacheAdapter(storage, options = {}) {
185
190
  };
186
191
  }
187
192
  _chunkS3JO3N4Hcjs.__name.call(void 0, storageCacheAdapter, "storageCacheAdapter");
193
+ var MAX_STORAGE_KEY_SEGMENT_LENGTH = 200;
194
+ async function encodeStorageKeySegment(value) {
195
+ let encoded;
196
+ try {
197
+ encoded = encodeURIComponent(value);
198
+ } catch (e) {
199
+ }
200
+ if (encoded !== void 0 && encoded.length <= MAX_STORAGE_KEY_SEGMENT_LENGTH) return encoded;
201
+ const digest = await crypto.subtle.digest(
202
+ "SHA-256",
203
+ new TextEncoder().encode(JSON.stringify(value))
204
+ );
205
+ let hex = "";
206
+ for (const byte of new Uint8Array(digest)) hex += byte.toString(16).padStart(2, "0");
207
+ return `sha256:${hex}`;
208
+ }
209
+ _chunkS3JO3N4Hcjs.__name.call(void 0, encodeStorageKeySegment, "encodeStorageKeySegment");
210
+ var MIN_STALE_RETENTION_MS = 6e4;
211
+ function getFarmCacheEntryExpiresAt(createdAt, revalidate, now = Date.now()) {
212
+ if (typeof revalidate !== "number") return void 0;
213
+ const revalidateMs = revalidate * 1e3;
214
+ return Math.max(createdAt + revalidateMs, now) + Math.max(revalidateMs, MIN_STALE_RETENTION_MS);
215
+ }
216
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmCacheEntryExpiresAt, "getFarmCacheEntryExpiresAt");
217
+ function getFarmCacheEntryTtlMs(entry, now = Date.now()) {
218
+ if (typeof entry.expiresAt !== "number" || !Number.isFinite(entry.expiresAt)) return void 0;
219
+ return Math.max(1, Math.ceil(entry.expiresAt - now));
220
+ }
221
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmCacheEntryTtlMs, "getFarmCacheEntryTtlMs");
188
222
  var _FarmDataCache = class _FarmDataCache {
189
223
  constructor(config = {}) {
190
224
  this.entries = /* @__PURE__ */ new Map();
@@ -287,11 +321,20 @@ var _FarmDataCache = class _FarmDataCache {
287
321
  const namespace = this.namespace;
288
322
  const entry = await adapter.get(`${namespace}:entry:${key}`);
289
323
  if (generation !== this.generation) return void 0;
290
- if (!entry) {
291
- _chunkE3UK5IIBcjs.emitFarmEvent.call(void 0, { type: "cache.miss", key });
324
+ if (!entry || isForeignAdapterEntry(entry, key)) {
325
+ _chunkE3UK5IIBcjs.emitFarmEvent.call(void 0, { type: "cache.miss", key, ...entry ? { reason: "key-mismatch" } : {} });
292
326
  return void 0;
293
327
  }
294
328
  assertFarmCacheEntry(entry, key);
329
+ if (typeof entry.expiresAt === "number" && entry.expiresAt <= (_nullishCoalesce(options.now, () => ( Date.now())))) {
330
+ _chunkE3UK5IIBcjs.emitFarmEvent.call(void 0, { type: "cache.miss", key, reason: "expired" });
331
+ try {
332
+ await adapter.delete(`${namespace}:entry:${key}`);
333
+ } catch (error) {
334
+ _chunkE3UK5IIBcjs.emitFarmEvent.call(void 0, { type: "cache.error", key, operation: "delete", error });
335
+ }
336
+ return void 0;
337
+ }
295
338
  const stale = await this.isAdapterEntryStale(entry, options.now, adapter, namespace);
296
339
  if (generation !== this.generation) return void 0;
297
340
  if (stale) {
@@ -352,14 +395,17 @@ var _FarmDataCache = class _FarmDataCache {
352
395
  const revalidate = normalizeRevalidate(options.revalidate);
353
396
  const tags = normalizeCacheOptionsTags(options);
354
397
  const capturedVersions = await _asyncNullishCoalesce(tagVersions, async () => ( await this.getAdapterTagVersions(Array.from(tags.values()))));
398
+ const createdAt = _nullishCoalesce(options.createdAt, () => ( Date.now()));
399
+ const expiresAt = getFarmCacheEntryExpiresAt(createdAt, revalidate);
355
400
  const entry = {
356
401
  key,
357
402
  value,
358
403
  tags: Array.from(tags),
359
404
  tagVersions: capturedVersions,
360
- createdAt: _nullishCoalesce(options.createdAt, () => ( Date.now())),
405
+ createdAt,
361
406
  createdVersion: _nullishCoalesce(createdVersion, () => ( ++this.version)),
362
- revalidate
407
+ revalidate,
408
+ ...expiresAt === void 0 ? {} : { expiresAt }
363
409
  };
364
410
  if (this.local) {
365
411
  this.hydrateLocalEntry(entry);
@@ -561,8 +607,8 @@ var _FarmDataCache = class _FarmDataCache {
561
607
  if (generation !== this.generation) return void 0;
562
608
  const entry = await adapter.get(`${namespace}:entry:${key}`);
563
609
  if (generation !== this.generation) return void 0;
564
- if (!entry) {
565
- _chunkE3UK5IIBcjs.emitFarmEvent.call(void 0, { type: "cache.miss", key });
610
+ if (!entry || isForeignAdapterEntry(entry, key)) {
611
+ _chunkE3UK5IIBcjs.emitFarmEvent.call(void 0, { type: "cache.miss", key, ...entry ? { reason: "key-mismatch" } : {} });
566
612
  continue;
567
613
  }
568
614
  assertFarmCacheEntry(entry, key);
@@ -829,7 +875,7 @@ function normalizeRevalidatePath(routePath) {
829
875
  if (/^https?:\/\//i.test(normalized)) {
830
876
  normalized = new URL(normalized).pathname;
831
877
  }
832
- } catch (e) {
878
+ } catch (e2) {
833
879
  }
834
880
  normalized = _nullishCoalesce(normalized.split(/[?#]/, 1)[0], () => ( normalized));
835
881
  normalized = normalized.startsWith("/") ? normalized : `/${normalized}`;
@@ -908,6 +954,10 @@ function normalizeCacheOptionsTags(options) {
908
954
  return tags;
909
955
  }
910
956
  _chunkS3JO3N4Hcjs.__name.call(void 0, normalizeCacheOptionsTags, "normalizeCacheOptionsTags");
957
+ function isForeignAdapterEntry(entry, expectedKey) {
958
+ return typeof entry === "object" && entry !== null && typeof entry.key === "string" && entry.key !== expectedKey;
959
+ }
960
+ _chunkS3JO3N4Hcjs.__name.call(void 0, isForeignAdapterEntry, "isForeignAdapterEntry");
911
961
  function assertFarmCacheEntry(entry, expectedKey) {
912
962
  if (!entry || typeof entry !== "object" || entry.key !== expectedKey || !Array.isArray(entry.tags) || typeof entry.createdAt !== "number") {
913
963
  throw new TypeError(
@@ -0,0 +1,238 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _chunkUS2QVW3Ecjs = require('./chunk-US2QVW3E.cjs');
4
+
5
+
6
+ var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
7
+
8
+ // src/middleware/matcher.ts
9
+ var compiledConfigCache = /* @__PURE__ */ new WeakMap();
10
+ var compiledRouteCache = /* @__PURE__ */ new WeakMap();
11
+ function compileMiddlewareRoute(entry) {
12
+ const path = entry.path;
13
+ if (path === "/") return void 0;
14
+ const cached = compiledRouteCache.get(entry);
15
+ if (_optionalChain([cached, 'optionalAccess', _ => _.path]) === path) return cached;
16
+ const compiled = {
17
+ path,
18
+ exact: compilePattern(path),
19
+ nested: compilePattern(`${path}/:__farmRest*`)
20
+ };
21
+ compiledRouteCache.set(entry, compiled);
22
+ return compiled;
23
+ }
24
+ _chunkS3JO3N4Hcjs.__name.call(void 0, compileMiddlewareRoute, "compileMiddlewareRoute");
25
+ function matchesMiddlewareRoute(pathname, entry) {
26
+ const compiled = compileMiddlewareRoute(entry);
27
+ if (!compiled) return { matched: true };
28
+ const canonicalPathname = _chunkUS2QVW3Ecjs.canonicalizeRequestPathname.call(void 0, pathname);
29
+ const exactMatch = matchPattern(compiled.exact, canonicalPathname);
30
+ if (exactMatch.matched) return exactMatch;
31
+ const nestedMatch = matchPattern(compiled.nested, canonicalPathname);
32
+ if (!nestedMatch.matched) return { matched: false };
33
+ const params = { ...nestedMatch.params };
34
+ delete params.__farmRest;
35
+ return { matched: true, params: Object.keys(params).length > 0 ? params : void 0 };
36
+ }
37
+ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewareRoute, "matchesMiddlewareRoute");
38
+ function matchesMiddlewareRouteAt(pathnames, entry) {
39
+ for (const pathname of pathnames) {
40
+ const match = matchesMiddlewareRoute(pathname, entry);
41
+ if (match.matched) return match;
42
+ }
43
+ return { matched: false };
44
+ }
45
+ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewareRouteAt, "matchesMiddlewareRouteAt");
46
+ function sameEntries(current, previous) {
47
+ return current === void 0 || previous === void 0 ? current === previous : current.length === previous.length && current.every((entry, index) => entry === previous[index]);
48
+ }
49
+ _chunkS3JO3N4Hcjs.__name.call(void 0, sameEntries, "sameEntries");
50
+ function toMatcherList(matcher) {
51
+ if (!matcher) return [];
52
+ return Array.isArray(matcher) ? matcher : [matcher];
53
+ }
54
+ _chunkS3JO3N4Hcjs.__name.call(void 0, toMatcherList, "toMatcherList");
55
+ function escapeRegex(value) {
56
+ return value.replace(/[|\\{}()[\]^$*+?.]/g, "\\$&");
57
+ }
58
+ _chunkS3JO3N4Hcjs.__name.call(void 0, escapeRegex, "escapeRegex");
59
+ function parseColonParam(segment) {
60
+ const raw = segment.slice(1);
61
+ const last = raw[raw.length - 1];
62
+ const modifier = last === "*" || last === "+" || last === "?" ? last : void 0;
63
+ return {
64
+ name: modifier ? raw.slice(0, -1) : raw,
65
+ modifier
66
+ };
67
+ }
68
+ _chunkS3JO3N4Hcjs.__name.call(void 0, parseColonParam, "parseColonParam");
69
+ function compilePathPattern(pattern, trailingSlash = false) {
70
+ const params = [];
71
+ const segments = pattern.split("/").filter(Boolean);
72
+ if (segments.length === 0) {
73
+ return { kind: "path", regex: /^\/$/, params };
74
+ }
75
+ const parts = segments.map((segment) => {
76
+ if (segment === "**") {
77
+ return "(?:/.*)?";
78
+ }
79
+ if (segment === "*") {
80
+ return "/[^/]+";
81
+ }
82
+ if (segment.startsWith(":")) {
83
+ const { name, modifier } = parseColonParam(segment);
84
+ params.push(name);
85
+ if (modifier === "*") {
86
+ return "(?:/(.*))?";
87
+ }
88
+ if (modifier === "+") {
89
+ return "/(.+)";
90
+ }
91
+ if (modifier === "?") {
92
+ return "(?:/([^/]+))?";
93
+ }
94
+ return "/([^/]+)";
95
+ }
96
+ if (segment.startsWith("[[...") && segment.endsWith("]]")) {
97
+ params.push(segment.slice(5, -2));
98
+ return "(?:/(.*))?";
99
+ }
100
+ if (segment.startsWith("[...") && segment.endsWith("]")) {
101
+ params.push(segment.slice(4, -1));
102
+ return "(?:/(.*))?";
103
+ }
104
+ if (segment.startsWith("[") && segment.endsWith("]")) {
105
+ params.push(segment.slice(1, -1));
106
+ return "/([^/]+)";
107
+ }
108
+ return `/${escapeRegex(segment).replace(/\\\*/g, "[^/]*")}`;
109
+ });
110
+ return {
111
+ kind: "path",
112
+ regex: new RegExp(`^${parts.join("")}${trailingSlash ? "/?" : ""}$`),
113
+ params
114
+ };
115
+ }
116
+ _chunkS3JO3N4Hcjs.__name.call(void 0, compilePathPattern, "compilePathPattern");
117
+ function compileMatcherPattern(pattern) {
118
+ if (typeof pattern === "string" && pattern !== "*" && !pattern.endsWith("(.*)")) {
119
+ return compilePathPattern(pattern, true);
120
+ }
121
+ return compilePattern(pattern);
122
+ }
123
+ _chunkS3JO3N4Hcjs.__name.call(void 0, compileMatcherPattern, "compileMatcherPattern");
124
+ function compilePattern(pattern) {
125
+ if (pattern instanceof RegExp) {
126
+ return { kind: "regexp", regex: pattern };
127
+ }
128
+ if (pattern === "*" || pattern === "/(.*)") {
129
+ return { kind: "all" };
130
+ }
131
+ if (pattern.endsWith("(.*)")) {
132
+ return {
133
+ kind: "subtree",
134
+ prefix: pattern.slice(0, -4).replace(/\/$/, "")
135
+ };
136
+ }
137
+ return compilePathPattern(pattern);
138
+ }
139
+ _chunkS3JO3N4Hcjs.__name.call(void 0, compilePattern, "compilePattern");
140
+ function compileMiddlewareConfig(config) {
141
+ const compiled = {
142
+ matcher: config.matcher ? toMatcherList(config.matcher).map(
143
+ (matcher) => typeof matcher === "function" ? matcher : compileMatcherPattern(matcher)
144
+ ) : void 0,
145
+ exclude: _optionalChain([config, 'access', _2 => _2.exclude, 'optionalAccess', _3 => _3.map, 'call', _4 => _4(compilePattern)])
146
+ };
147
+ compiledConfigCache.set(config, {
148
+ compiled,
149
+ matcher: config.matcher,
150
+ matcherEntries: Array.isArray(config.matcher) ? config.matcher.slice() : void 0,
151
+ excludeEntries: _optionalChain([config, 'access', _5 => _5.exclude, 'optionalAccess', _6 => _6.slice, 'call', _7 => _7()])
152
+ });
153
+ return compiled;
154
+ }
155
+ _chunkS3JO3N4Hcjs.__name.call(void 0, compileMiddlewareConfig, "compileMiddlewareConfig");
156
+ function matchPattern(pattern, pathname) {
157
+ if (pattern.kind === "all") {
158
+ return { matched: true };
159
+ }
160
+ if (pattern.kind === "subtree") {
161
+ return {
162
+ matched: pathname === pattern.prefix || pathname.startsWith(`${pattern.prefix}/`)
163
+ };
164
+ }
165
+ pattern.regex.lastIndex = 0;
166
+ const match = pattern.regex.exec(pathname);
167
+ if (!match) {
168
+ return { matched: false };
169
+ }
170
+ if (pattern.kind === "regexp") {
171
+ return {
172
+ matched: true,
173
+ params: match.groups ? { ...match.groups } : void 0
174
+ };
175
+ }
176
+ const values = {};
177
+ pattern.params.forEach((param, index) => {
178
+ values[param] = match[index + 1] || "";
179
+ });
180
+ return {
181
+ matched: true,
182
+ params: Object.keys(values).length > 0 ? values : void 0
183
+ };
184
+ }
185
+ _chunkS3JO3N4Hcjs.__name.call(void 0, matchPattern, "matchPattern");
186
+ function matchesCompiledMiddlewareConfig(pathname, config, ctx) {
187
+ let canonicalPathname;
188
+ const getCanonicalPathname = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => _nullishCoalesce(canonicalPathname, () => ( (canonicalPathname = _chunkUS2QVW3Ecjs.canonicalizeRequestPathname.call(void 0, pathname)))), "getCanonicalPathname");
189
+ if (config.exclude) {
190
+ for (const pattern of config.exclude) {
191
+ if (matchPattern(pattern, getCanonicalPathname()).matched) {
192
+ return { matched: false };
193
+ }
194
+ }
195
+ }
196
+ if (config.matcher) {
197
+ for (const matcher of config.matcher) {
198
+ if (typeof matcher === "function") {
199
+ if (matcher(ctx)) {
200
+ return { matched: true };
201
+ }
202
+ continue;
203
+ }
204
+ const result = matchPattern(matcher, getCanonicalPathname());
205
+ if (result.matched) {
206
+ return result;
207
+ }
208
+ }
209
+ return { matched: false };
210
+ }
211
+ return { matched: true };
212
+ }
213
+ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesCompiledMiddlewareConfig, "matchesCompiledMiddlewareConfig");
214
+ function matchesMiddlewareConfig(pathname, config, ctx) {
215
+ const cached = compiledConfigCache.get(config);
216
+ const unchanged = cached && (Array.isArray(config.matcher) ? sameEntries(config.matcher, cached.matcherEntries) : config.matcher === cached.matcher) && sameEntries(config.exclude, cached.excludeEntries);
217
+ const compiled = unchanged ? cached.compiled : compileMiddlewareConfig(config);
218
+ return matchesCompiledMiddlewareConfig(pathname, compiled, ctx);
219
+ }
220
+ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewareConfig, "matchesMiddlewareConfig");
221
+ function matchesMiddlewareConfigAt(pathnames, config, ctx) {
222
+ for (const pathname of pathnames) {
223
+ const match = matchesMiddlewareConfig(pathname, config, ctx);
224
+ if (match.matched) return match;
225
+ }
226
+ return { matched: false };
227
+ }
228
+ _chunkS3JO3N4Hcjs.__name.call(void 0, matchesMiddlewareConfigAt, "matchesMiddlewareConfigAt");
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+ exports.compileMiddlewareRoute = compileMiddlewareRoute; exports.matchesMiddlewareRoute = matchesMiddlewareRoute; exports.matchesMiddlewareRouteAt = matchesMiddlewareRouteAt; exports.compileMiddlewareConfig = compileMiddlewareConfig; exports.matchesCompiledMiddlewareConfig = matchesCompiledMiddlewareConfig; exports.matchesMiddlewareConfig = matchesMiddlewareConfig; exports.matchesMiddlewareConfigAt = matchesMiddlewareConfigAt;
@@ -0,0 +1,135 @@
1
+ import {
2
+ resolveFarmAPICanonicalPathname,
3
+ resolveFarmAPIServerRoutePath
4
+ } from "./chunk-BTHHUD7Q.mjs";
5
+ import {
6
+ matchAPIRoute
7
+ } from "./chunk-O7BH5O46.mjs";
8
+ import {
9
+ __name
10
+ } from "./chunk-LPEX4YW6.mjs";
11
+
12
+ // src/mcp-catalog.ts
13
+ var CATALOGS = /* @__PURE__ */ Symbol.for("farm.mcp.catalogs");
14
+ function catalogs() {
15
+ const state = globalThis;
16
+ return state[CATALOGS] ?? (state[CATALOGS] = /* @__PURE__ */ new Map());
17
+ }
18
+ __name(catalogs, "catalogs");
19
+ function _listFarmMCPCatalogs() {
20
+ return [...catalogs().values()];
21
+ }
22
+ __name(_listFarmMCPCatalogs, "_listFarmMCPCatalogs");
23
+ function _publishFarmMCPCatalog(server, tools, details) {
24
+ const entry = { server, tools, ...details ? { details } : {} };
25
+ catalogs().set(server.path, entry);
26
+ return () => {
27
+ if (catalogs().get(server.path) === entry) catalogs().delete(server.path);
28
+ };
29
+ }
30
+ __name(_publishFarmMCPCatalog, "_publishFarmMCPCatalog");
31
+ var SERVERS = /* @__PURE__ */ Symbol.for("farm.mcp.servers");
32
+ function registeredServers() {
33
+ const state = globalThis;
34
+ return state[SERVERS] ?? (state[SERVERS] = /* @__PURE__ */ new Map());
35
+ }
36
+ __name(registeredServers, "registeredServers");
37
+ function _listFarmRegisteredMCPServers() {
38
+ return [...registeredServers().values()];
39
+ }
40
+ __name(_listFarmRegisteredMCPServers, "_listFarmRegisteredMCPServers");
41
+ function registerFarmMCPServer(server) {
42
+ const entry = validateFarmMCPServerRegistration(server);
43
+ const key = entry.path ?? entry.url;
44
+ registeredServers().set(key, entry);
45
+ return () => {
46
+ if (registeredServers().get(key) === entry) registeredServers().delete(key);
47
+ };
48
+ }
49
+ __name(registerFarmMCPServer, "registerFarmMCPServer");
50
+ function validateFarmMCPServerRegistration(server) {
51
+ if (!server || typeof server !== "object") {
52
+ throw new TypeError("registerFarmMCPServer expects a server object.");
53
+ }
54
+ const text = /* @__PURE__ */ __name((key, required) => {
55
+ const value = server[key];
56
+ if (value === void 0 && !required) return void 0;
57
+ if (typeof value !== "string" || !value.trim()) {
58
+ throw new TypeError(`registerFarmMCPServer ${key} must be a non-empty string.`);
59
+ }
60
+ return value.trim();
61
+ }, "text");
62
+ const name = text("name", true);
63
+ const version = text("version", true);
64
+ const title = text("title", false);
65
+ const description = text("description", false);
66
+ const { path, url } = server;
67
+ if (path === void 0 === (url === void 0)) {
68
+ throw new TypeError("registerFarmMCPServer takes exactly one of path and url.");
69
+ }
70
+ let endpoint;
71
+ if (path !== void 0) {
72
+ if (typeof path !== "string" || !/^\/(?!\/)[^?#\\\s]*$/.test(path) || path.split("/").some((segment) => segment === "." || segment === "..")) {
73
+ throw new TypeError(
74
+ "registerFarmMCPServer path must be an absolute app path without a query, hash, or dot segments."
75
+ );
76
+ }
77
+ endpoint = { path: path.length > 1 ? path.replace(/\/+$/, "") : path };
78
+ } else {
79
+ let parsed;
80
+ try {
81
+ parsed = typeof url === "string" ? new URL(url) : void 0;
82
+ } catch {
83
+ parsed = void 0;
84
+ }
85
+ if (!parsed || parsed.protocol !== "https:" && parsed.protocol !== "http:" || parsed.username || parsed.password || parsed.search || parsed.hash) {
86
+ throw new TypeError(
87
+ "registerFarmMCPServer url must be an absolute http(s) URL without credentials, a query, or a hash."
88
+ );
89
+ }
90
+ endpoint = { url: `${parsed.origin}${parsed.pathname.replace(/\/+$/, "")}` };
91
+ }
92
+ const { protocolVersions } = server;
93
+ if (protocolVersions !== void 0 && (!Array.isArray(protocolVersions) || protocolVersions.some((version2) => typeof version2 !== "string" || !version2.trim()))) {
94
+ throw new TypeError("registerFarmMCPServer protocolVersions must be non-empty strings.");
95
+ }
96
+ return Object.freeze({
97
+ name,
98
+ version,
99
+ ...title ? { title } : {},
100
+ ...description ? { description } : {},
101
+ ...protocolVersions?.length ? { protocolVersions: Object.freeze([...protocolVersions]) } : {},
102
+ ...endpoint
103
+ });
104
+ }
105
+ __name(validateFarmMCPServerRegistration, "validateFarmMCPServerRegistration");
106
+ function _findFarmMCPEndpointTool(method, pathname, serverBasePath) {
107
+ const upperMethod = method.toUpperCase();
108
+ for (const { server, tools } of catalogs().values()) {
109
+ const routes = /* @__PURE__ */ new Map();
110
+ for (const tool of tools) {
111
+ if (tool.kind === "endpoint" && tool.method === upperMethod) {
112
+ routes.set(tool.path, { path: tool.path, name: tool.name });
113
+ }
114
+ }
115
+ if (routes.size === 0) continue;
116
+ const canonical = serverBasePath ? resolveFarmAPICanonicalPathname(pathname, serverBasePath) : pathname;
117
+ const match = matchAPIRoute(routes, canonical);
118
+ if (match) {
119
+ return {
120
+ name: match.route.name,
121
+ endpoint: resolveFarmAPIServerRoutePath(server.path, serverBasePath)
122
+ };
123
+ }
124
+ }
125
+ return void 0;
126
+ }
127
+ __name(_findFarmMCPEndpointTool, "_findFarmMCPEndpointTool");
128
+
129
+ export {
130
+ _listFarmMCPCatalogs,
131
+ _publishFarmMCPCatalog,
132
+ _listFarmRegisteredMCPServers,
133
+ registerFarmMCPServer,
134
+ _findFarmMCPEndpointTool
135
+ };
@@ -6,7 +6,7 @@
6
6
  var _chunkSVRTJOUFcjs = require('./chunk-SVRTJOUF.cjs');
7
7
 
8
8
 
9
- var _chunkEM6SBQKMcjs = require('./chunk-EM6SBQKM.cjs');
9
+ var _chunkOMVAU7NTcjs = require('./chunk-OMVAU7NT.cjs');
10
10
 
11
11
 
12
12
 
@@ -107,7 +107,7 @@ function resolveServerActionsConfig(config) {
107
107
  const allowedOrigins = (_nullishCoalesce(_optionalChain([config, 'optionalAccess', _ => _.allowedOrigins]), () => ( []))).map(
108
108
  (value) => _chunkSVRTJOUFcjs.normalizeAllowedOriginPattern.call(void 0, value, SERVER_ACTION_ALLOWED_ORIGINS_LABEL)
109
109
  );
110
- const bodySizeLimit = _chunkEM6SBQKMcjs.parseBodySizeLimit.call(void 0,
110
+ const bodySizeLimit = _chunkOMVAU7NTcjs.parseBodySizeLimit.call(void 0,
111
111
  _nullishCoalesce(_optionalChain([config, 'optionalAccess', _2 => _2.bodySizeLimit]), () => ( DEFAULT_SERVER_ACTION_BODY_SIZE_LIMIT)),
112
112
  "serverActions.bodySizeLimit"
113
113
  );