@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.
- package/README.md +1 -1
- package/dist/agent-runtime.cjs +70 -15
- package/dist/agent-runtime.d.mts +4 -5
- package/dist/agent-runtime.d.ts +4 -5
- package/dist/agent-runtime.mjs +59 -4
- package/dist/api/route-manager.cjs +17 -14
- package/dist/api/route-manager.d.mts +6 -7
- package/dist/api/route-manager.d.ts +6 -7
- package/dist/api/route-manager.mjs +16 -13
- package/dist/api/runtime.cjs +12 -8
- package/dist/api/runtime.d.mts +4 -5
- package/dist/api/runtime.d.ts +4 -5
- package/dist/api/runtime.mjs +12 -8
- package/dist/api.cjs +20 -17
- package/dist/api.d.mts +7 -8
- package/dist/api.d.ts +7 -8
- package/dist/api.mjs +19 -16
- package/dist/{app-sUJ3jnTZ.d.ts → app-BXB3JZYc.d.ts} +38 -12
- package/dist/{app-DAuUTIZf.d.mts → app-D_j9AAVL.d.mts} +38 -12
- package/dist/app-markdown.cjs +8 -6
- package/dist/app-markdown.d.mts +6 -7
- package/dist/app-markdown.d.ts +6 -7
- package/dist/app-markdown.mjs +7 -5
- package/dist/cache.cjs +2 -2
- package/dist/cache.d.mts +10 -1
- package/dist/cache.d.ts +10 -1
- package/dist/cache.mjs +1 -1
- package/dist/{chunk-BXFWA23T.mjs → chunk-22LTEMGQ.mjs} +3 -3
- package/dist/{chunk-YZTASLPQ.cjs → chunk-27ZWSI3W.cjs} +2 -2
- package/dist/{chunk-WBIH66JK.mjs → chunk-2ELDTQRN.mjs} +5 -2
- package/dist/{chunk-K7CELQLK.cjs → chunk-2F2ER724.cjs} +54 -29
- package/dist/{chunk-O3DTUAX2.mjs → chunk-2G2NNLE2.mjs} +6 -77
- package/dist/{chunk-NRVGEI5I.mjs → chunk-2NNMOPDN.mjs} +4 -210
- package/dist/{chunk-CTV2TTNP.cjs → chunk-3BHT4WMP.cjs} +16 -87
- package/dist/chunk-3BU22U3M.cjs +237 -0
- package/dist/{chunk-MM5D6VLP.mjs → chunk-3KZS4SUS.mjs} +33 -14
- package/dist/{chunk-VA62MHFV.mjs → chunk-3PXS2MHU.mjs} +1 -1
- package/dist/chunk-3SDFA7UF.cjs +701 -0
- package/dist/{chunk-4IEPYMHF.mjs → chunk-3UEVPCGW.mjs} +1 -1
- package/dist/{chunk-MXDTKXO6.cjs → chunk-3UH7MRCP.cjs} +73 -26
- package/dist/{chunk-7QOCTYBS.mjs → chunk-4JHOT46A.mjs} +37 -1
- package/dist/{chunk-6L6DQR5W.mjs → chunk-4KU5Q7C2.mjs} +917 -305
- package/dist/{chunk-3FCFQP5V.cjs → chunk-4MMGO7YW.cjs} +25 -25
- package/dist/{chunk-5HGR3W6O.mjs → chunk-5SJWVY6R.mjs} +8 -0
- package/dist/{chunk-KZLND3D2.cjs → chunk-62XKI4Z3.cjs} +7 -5
- package/dist/{chunk-FJZ3DQLK.mjs → chunk-6DU6UFUE.mjs} +13 -12
- package/dist/{chunk-TEN4FIZU.mjs → chunk-6ETPZTJI.mjs} +513 -3
- package/dist/{chunk-VUMAE7NC.mjs → chunk-6TJOML4E.mjs} +92 -31
- package/dist/{chunk-3ATMYLLJ.mjs → chunk-6WCPV6G2.mjs} +1 -1
- package/dist/{chunk-FYRBX5IY.cjs → chunk-73MC7ZL6.cjs} +2 -2
- package/dist/chunk-75RZHGLS.cjs +135 -0
- package/dist/{chunk-QZRVZSPN.cjs → chunk-77GNHH2Z.cjs} +3 -3
- package/dist/{chunk-FXUUWYAX.cjs → chunk-7GLPRTTF.cjs} +12 -2
- package/dist/{chunk-A777V5WU.cjs → chunk-7L5V3KQO.cjs} +2 -2
- package/dist/{chunk-4ZQQL4IU.mjs → chunk-AHGECQEW.mjs} +1 -1
- package/dist/{chunk-RG3ZOTG5.cjs → chunk-AI7QMY7O.cjs} +10 -3
- package/dist/{chunk-YMCXWPWK.mjs → chunk-BCMSYSN2.mjs} +4 -1
- package/dist/{chunk-I6XDAKWQ.mjs → chunk-BTHHUD7Q.mjs} +14 -0
- package/dist/{chunk-LI2LMOLR.mjs → chunk-C35ZBVRD.mjs} +12 -3
- package/dist/chunk-C4SPBWFM.cjs +26 -0
- package/dist/{chunk-YQVSHTMR.mjs → chunk-CP6X4AEU.mjs} +1 -1
- package/dist/{chunk-QZCT2CQ4.mjs → chunk-CXEN47J3.mjs} +64 -2
- package/dist/{chunk-WNLBF77X.cjs → chunk-D227TIEN.cjs} +28 -16
- package/dist/{chunk-ROUTX2E5.cjs → chunk-DBNKI4NF.cjs} +12 -3
- package/dist/{chunk-J3LOGE4T.cjs → chunk-DQQOKWYA.cjs} +5 -5
- package/dist/chunk-E5GNDG5F.mjs +701 -0
- package/dist/{chunk-X7KZBF63.cjs → chunk-EFCQPQMG.cjs} +40 -4
- package/dist/{chunk-K3F2E6GS.cjs → chunk-EJQT6KZN.cjs} +2 -2
- package/dist/{chunk-3LUF2PE2.cjs → chunk-EK4QAEFZ.cjs} +67 -5
- package/dist/{chunk-VVBO3QH7.mjs → chunk-ENLZ4R3Y.mjs} +10 -1
- package/dist/{chunk-KJ2TIHZZ.cjs → chunk-EUV4YR3V.cjs} +3 -2
- package/dist/{chunk-E76XC6ZG.mjs → chunk-EZDQRNQ7.mjs} +2 -2
- package/dist/{chunk-TOVMYGYW.mjs → chunk-F2SE2VDO.mjs} +1 -1
- package/dist/{chunk-MNUGPHLN.mjs → chunk-F6Z3Y5KL.mjs} +5 -3
- package/dist/{chunk-DFLLARUK.cjs → chunk-F7JZENPF.cjs} +35 -34
- package/dist/{chunk-BSPQVJ4A.mjs → chunk-FDR64H6B.mjs} +13 -0
- package/dist/{chunk-5OVTOKGH.cjs → chunk-FFFW3OQ7.cjs} +2 -2
- package/dist/{chunk-D4JE5NNV.cjs → chunk-FNO7A7CM.cjs} +5 -5
- package/dist/{chunk-Z5HIWVDP.cjs → chunk-FTFYRMQQ.cjs} +80 -91
- package/dist/chunk-FZ6YYU2W.mjs +65 -0
- package/dist/{chunk-X7WVQMIB.mjs → chunk-G5RT7EXW.mjs} +11 -5
- package/dist/{chunk-IXUY2F5U.mjs → chunk-GCXWJJKH.mjs} +4 -7
- package/dist/{chunk-ES4B2IXW.cjs → chunk-GFHLGIYC.cjs} +8 -8
- package/dist/{chunk-SORB3MAR.cjs → chunk-GQ3Z3IZI.cjs} +17 -17
- package/dist/{chunk-75WGQVQA.cjs → chunk-HITLGIAO.cjs} +10 -1
- package/dist/{chunk-HBTUGXHS.cjs → chunk-HLJ6MBUZ.cjs} +7 -4
- package/dist/{chunk-JLCQGPXE.mjs → chunk-HMIJDL7S.mjs} +51 -62
- package/dist/{chunk-F6XEGFHO.mjs → chunk-HUMR6LSU.mjs} +11 -1
- package/dist/{chunk-IMB4PIAR.cjs → chunk-ICUQICNC.cjs} +1441 -828
- package/dist/{chunk-ZCU4NZ3M.cjs → chunk-IE7XCHH3.cjs} +4 -4
- package/dist/{chunk-I26CZYPV.cjs → chunk-IHNIDL6H.cjs} +50 -7
- package/dist/{chunk-2FQHH5SC.mjs → chunk-IHNMMXHV.mjs} +49 -24
- package/dist/{chunk-YVGAEAA5.cjs → chunk-IPXLADVO.cjs} +522 -12
- package/dist/{chunk-VHJGDMCG.cjs → chunk-IWZKTWHZ.cjs} +2 -2
- package/dist/chunk-JG6DJF5A.mjs +238 -0
- package/dist/{chunk-KROWKCUH.cjs → chunk-JGLC4TO3.cjs} +8 -1
- package/dist/{chunk-5TISYEQF.mjs → chunk-JM5XPKWH.mjs} +10 -3
- package/dist/{chunk-BJJATPEC.mjs → chunk-KN7K4VQN.mjs} +1 -1
- package/dist/{chunk-WPYFSQKK.cjs → chunk-KNBBQHO2.cjs} +15 -1
- package/dist/{chunk-XWAWFQFS.cjs → chunk-KXWRO25S.cjs} +7 -4
- package/dist/chunk-LSKZMJMP.cjs +65 -0
- package/dist/{chunk-2N5PX3LS.mjs → chunk-LYV44OIR.mjs} +7 -1
- package/dist/chunk-M7MKQXAF.cjs +87 -0
- package/dist/{chunk-IV6CQY7O.mjs → chunk-MSSFIQGM.mjs} +63 -13
- package/dist/{chunk-KH7BN726.cjs → chunk-N4UOK6ZI.cjs} +8 -2
- package/dist/{chunk-JNGIWIY6.mjs → chunk-NPC7VWJE.mjs} +2 -2
- package/dist/chunk-NRDBW4MP.mjs +45 -0
- package/dist/{chunk-ILWLPEVO.mjs → chunk-NRSN7G7E.mjs} +2 -2
- package/dist/chunk-OFZUJMCU.mjs +601 -0
- package/dist/{chunk-L4DVIHOC.mjs → chunk-OKZUAXHF.mjs} +1 -1
- package/dist/{chunk-EM6SBQKM.cjs → chunk-OMVAU7NT.cjs} +27 -2
- package/dist/{chunk-AHAJGAYD.mjs → chunk-PDOCJ6RY.mjs} +2 -2
- package/dist/{chunk-IFI5FXEZ.cjs → chunk-PFQKNERH.cjs} +562 -251
- package/dist/{chunk-S5GDHOE4.mjs → chunk-PZNL3WEG.mjs} +48 -5
- package/dist/{chunk-GZYH4OER.mjs → chunk-Q3VLETLE.mjs} +2 -2
- package/dist/{chunk-WG2KHOMN.mjs → chunk-QAU5JD57.mjs} +571 -260
- package/dist/{chunk-FV45CKBC.mjs → chunk-QCFBDFRS.mjs} +1 -1
- package/dist/{chunk-75BRBIFP.cjs → chunk-QCVE2OCI.cjs} +5 -8
- package/dist/{chunk-6ZCMSZ5U.mjs → chunk-QE6VAKLT.mjs} +1 -1
- package/dist/{chunk-QG5HNS7P.mjs → chunk-QORUJDIV.mjs} +2 -2
- package/dist/chunk-RHAZ22ZN.mjs +87 -0
- package/dist/{chunk-CUMINO7Z.cjs → chunk-RU3M2FIK.cjs} +18 -14
- package/dist/{chunk-DGXN3L4D.mjs → chunk-SAZVVAJH.mjs} +5 -5
- package/dist/{chunk-MKMBQSNQ.mjs → chunk-SC2WYWPF.mjs} +3 -3
- package/dist/{chunk-QCFFHV5H.mjs → chunk-SMHH4VDG.mjs} +1 -1
- package/dist/{chunk-UAFSBWNT.mjs → chunk-SOMHP6GF.mjs} +63 -16
- package/dist/{chunk-ND224OE2.cjs → chunk-TKSCR644.cjs} +34 -15
- package/dist/{chunk-4V7GIE2U.mjs → chunk-UAORZ7QA.mjs} +3 -3
- package/dist/{chunk-IQXFRNY2.cjs → chunk-UFDAAQFX.cjs} +2 -2
- package/dist/{chunk-6VYZOPOT.mjs → chunk-UJD4PHYB.mjs} +15 -11
- package/dist/{chunk-ZHVYQL3H.cjs → chunk-ULAWS2PA.cjs} +97 -36
- package/dist/{chunk-5ZSWG4UX.cjs → chunk-UXFQ3UDA.cjs} +14 -1
- package/dist/{chunk-MPEYMSCF.cjs → chunk-VFQT3LAO.cjs} +5 -5
- package/dist/{chunk-2FXWWUE5.cjs → chunk-VZJR7UTG.cjs} +6 -6
- package/dist/{chunk-2AKFKCHA.mjs → chunk-W7LF2J2S.mjs} +1 -1
- package/dist/chunk-WWFTAUFG.cjs +45 -0
- package/dist/{chunk-JBC2FKRW.mjs → chunk-WWIKMBRN.mjs} +2 -1
- package/dist/{chunk-75DYEVXI.cjs → chunk-X6W5FFH6.cjs} +11 -11
- package/dist/{chunk-EXLKRR4U.cjs → chunk-XBML5KMG.cjs} +12 -12
- package/dist/{chunk-PZNCMPJF.cjs → chunk-XCACDAZZ.cjs} +18 -12
- package/dist/{chunk-JATSG2ZO.mjs → chunk-XCMCS4DA.mjs} +15 -3
- package/dist/{chunk-UJ2C4ICS.cjs → chunk-XJXBIP67.cjs} +4 -4
- package/dist/{chunk-XF7Q24PF.mjs → chunk-Y7RKTKYI.mjs} +25 -0
- package/dist/{chunk-VYZSOYR4.cjs → chunk-YC6V7PWE.cjs} +1 -1
- package/dist/{chunk-F6OHXPWR.mjs → chunk-YFILVET3.mjs} +8 -1
- package/dist/{chunk-JLRDISQL.cjs → chunk-YKX5BK66.cjs} +7 -7
- package/dist/{chunk-DYEJQTDN.cjs → chunk-YSCV4SJF.cjs} +4 -4
- package/dist/chunk-YSLWRWWP.cjs +601 -0
- package/dist/{chunk-5LJCOSKT.mjs → chunk-YULD7ICZ.mjs} +1 -1
- package/dist/{chunk-2SDO73HK.cjs → chunk-YWN746US.cjs} +64 -14
- package/dist/chunk-Z2HLU4IX.cjs +238 -0
- package/dist/chunk-ZLAT2CWY.mjs +135 -0
- package/dist/{chunk-T5CERMEH.cjs → chunk-ZXGAFZDO.cjs} +2 -2
- package/dist/{client-plugins-BX2ptm4H.d.mts → client-plugins-CvIslxWi.d.mts} +232 -8
- package/dist/{client-plugins-BmxM5KW_.d.ts → client-plugins-HIyulDym.d.ts} +232 -8
- package/dist/client-plugins.d.mts +4 -5
- package/dist/client-plugins.d.ts +4 -5
- package/dist/client.cjs +10 -10
- package/dist/client.d.mts +8 -9
- package/dist/client.d.ts +8 -9
- package/dist/client.mjs +9 -9
- package/dist/config.d.mts +4 -5
- package/dist/config.d.ts +4 -5
- package/dist/{devtools-EWRDHCD5.cjs → devtools-EAUY43BS.cjs} +14 -12
- package/dist/{devtools-BPBCYOU6.mjs → devtools-EE5RIBTH.mjs} +13 -11
- package/dist/docs.cjs +17 -15
- package/dist/docs.d.mts +46 -4
- package/dist/docs.d.ts +46 -4
- package/dist/docs.mjs +16 -14
- package/dist/environment/vite.cjs +2 -2
- package/dist/environment/vite.mjs +1 -1
- package/dist/headers.cjs +4 -4
- package/dist/headers.mjs +3 -3
- package/dist/i18n/client.cjs +14 -13
- package/dist/i18n/client.d.mts +2 -2
- package/dist/i18n/client.d.ts +2 -2
- package/dist/i18n/client.mjs +5 -4
- package/dist/i18n/index.cjs +3 -2
- package/dist/i18n/index.d.mts +3 -3
- package/dist/i18n/index.d.ts +3 -3
- package/dist/i18n/index.mjs +2 -1
- package/dist/i18n/server.cjs +6 -5
- package/dist/i18n/server.d.mts +5 -5
- package/dist/i18n/server.d.ts +5 -5
- package/dist/i18n/server.mjs +5 -4
- package/dist/image/server.cjs +3 -3
- package/dist/image/server.mjs +2 -2
- package/dist/image/sharp.cjs +10 -10
- package/dist/image/sharp.mjs +2 -2
- package/dist/{index-a-8Z5kZU.d.mts → index-BJJfLxJo.d.mts} +2 -2
- package/dist/{index-BWVfxIsO.d.ts → index-CwoOP-MW.d.ts} +2 -2
- package/dist/index.cjs +75 -60
- package/dist/index.d.mts +21 -22
- package/dist/index.d.ts +21 -22
- package/dist/index.mjs +79 -64
- package/dist/integrations.cjs +7 -4
- package/dist/integrations.d.mts +4 -5
- package/dist/integrations.d.ts +4 -5
- package/dist/integrations.mjs +8 -5
- package/dist/internal/app-markdown-runtime.cjs +7 -5
- package/dist/internal/app-markdown-runtime.d.mts +17 -7
- package/dist/internal/app-markdown-runtime.d.ts +17 -7
- package/dist/internal/app-markdown-runtime.mjs +6 -4
- package/dist/internal/build-runtime.cjs +44 -41
- package/dist/internal/build-runtime.d.mts +6 -7
- package/dist/internal/build-runtime.d.ts +6 -7
- package/dist/internal/build-runtime.mjs +43 -40
- package/dist/internal/cli-runtime.cjs +23 -20
- package/dist/internal/cli-runtime.mjs +22 -19
- package/dist/internal/client-error-overlay.cjs +6 -6
- package/dist/internal/client-error-overlay.mjs +2 -2
- package/dist/internal/client-runtime.cjs +5 -3
- package/dist/internal/client-runtime.d.mts +9 -1
- package/dist/internal/client-runtime.d.ts +9 -1
- package/dist/internal/client-runtime.mjs +4 -2
- package/dist/internal/compression-runtime.d.mts +4 -5
- package/dist/internal/compression-runtime.d.ts +4 -5
- package/dist/internal/config-runtime.cjs +14 -12
- package/dist/internal/config-runtime.d.mts +5 -6
- package/dist/internal/config-runtime.d.ts +5 -6
- package/dist/internal/config-runtime.mjs +13 -11
- package/dist/internal/infra-analytics-runtime.cjs +4 -4
- package/dist/internal/infra-analytics-runtime.mjs +2 -2
- package/dist/internal/isolated-boundary.cjs +3 -2
- package/dist/internal/isolated-boundary.d.mts +1 -0
- package/dist/internal/isolated-boundary.d.ts +1 -0
- package/dist/internal/isolated-boundary.mjs +2 -1
- package/dist/internal/metadata-image-runtime.cjs +3 -3
- package/dist/internal/metadata-image-runtime.mjs +2 -2
- package/dist/internal/product-telemetry-runtime.cjs +2 -2
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.cjs +61 -31
- package/dist/internal/production-runtime.d.mts +165 -18
- package/dist/internal/production-runtime.d.ts +165 -18
- package/dist/internal/production-runtime.mjs +57 -27
- package/dist/internal/request-cookies.cjs +4 -2
- package/dist/internal/request-cookies.d.mts +9 -1
- package/dist/internal/request-cookies.d.ts +9 -1
- package/dist/internal/request-cookies.mjs +3 -1
- package/dist/internal/server-tree.cjs +12 -0
- package/dist/internal/server-tree.d.mts +27 -0
- package/dist/internal/server-tree.d.ts +27 -0
- package/dist/internal/server-tree.mjs +12 -0
- package/dist/markdown.cjs +4 -4
- package/dist/markdown.d.mts +4 -5
- package/dist/markdown.d.ts +4 -5
- package/dist/markdown.mjs +3 -3
- package/dist/{metadata-DsEaK7mQ.d.mts → metadata-BnLDsUOS.d.ts} +16 -2
- package/dist/{metadata-fwZ3gfG6.d.ts → metadata-WGpBYcGn.d.mts} +16 -2
- package/dist/middleware.cjs +18 -8
- package/dist/middleware.d.mts +27 -9
- package/dist/middleware.d.ts +27 -9
- package/dist/middleware.mjs +18 -8
- package/dist/navigation.cjs +7 -7
- package/dist/navigation.d.mts +7 -8
- package/dist/navigation.d.ts +7 -8
- package/dist/navigation.mjs +6 -6
- package/dist/{nitro-NAKCRVHX.mjs → nitro-MXRDCXWZ.mjs} +5 -5
- package/dist/{nitro-VYDZGYFY.cjs → nitro-OVPLKPE2.cjs} +7 -7
- package/dist/{observability-BupkiN0m.d.mts → observability-CoXunYhS.d.mts} +4 -3
- package/dist/{observability-BupkiN0m.d.ts → observability-CoXunYhS.d.ts} +4 -3
- package/dist/observability.d.mts +1 -1
- package/dist/observability.d.ts +1 -1
- package/dist/plugin.cjs +39 -36
- package/dist/plugin.d.mts +4 -5
- package/dist/plugin.d.ts +4 -5
- package/dist/plugin.mjs +38 -35
- package/dist/{production-runtime-Baqgwtvc.d.mts → production-runtime-0sRnuYc-.d.mts} +11 -4
- package/dist/{production-runtime-DNkpFnmg.d.ts → production-runtime-Crq6CJ-2.d.ts} +11 -4
- package/dist/query/client.cjs +8 -8
- package/dist/query/client.mjs +4 -4
- package/dist/{render-plan-rkIK9wd9.d.ts → render-plan-8ozZh2Qv.d.ts} +1 -1
- package/dist/{render-plan-DhwQnmmX.d.mts → render-plan-gs9GGPzw.d.mts} +1 -1
- package/dist/renderer/react/server.cjs +10 -4
- package/dist/renderer/react/server.d.mts +2 -1
- package/dist/renderer/react/server.d.ts +2 -1
- package/dist/renderer/react/server.mjs +7 -1
- package/dist/renderer-client.cjs +40 -20
- package/dist/renderer-client.d.mts +6 -7
- package/dist/renderer-client.d.ts +6 -7
- package/dist/renderer-client.mjs +29 -9
- package/dist/renderer.d.mts +2 -0
- package/dist/renderer.d.ts +2 -0
- package/dist/{request-BcY4RYPC.d.ts → request-B5G8rLBH.d.ts} +7 -2
- package/dist/{request-CFy1BltJ.d.mts → request-fkhiynXe.d.mts} +7 -2
- package/dist/request.cjs +2 -2
- package/dist/request.d.mts +5 -6
- package/dist/request.d.ts +5 -6
- package/dist/request.mjs +1 -1
- package/dist/{resolver-PPEeiJ6M.d.ts → resolver-DadfRL6F.d.ts} +1 -1
- package/dist/{resolver-DhW0CqZN.d.mts → resolver-khasx3fU.d.mts} +1 -1
- package/dist/{route-rendering-BkS0TBlB.d.mts → route-rendering-CLnS7AZj.d.mts} +1 -1
- package/dist/{route-rendering-D4XpMjam.d.ts → route-rendering-lS5nUMua.d.ts} +1 -1
- package/dist/{router-Cq7BcZxg.d.ts → router-4iuiYnOW.d.ts} +1 -1
- package/dist/{router-C4zPlC3V.d.mts → router-ifU8Dui1.d.mts} +1 -1
- package/dist/routes.cjs +3 -3
- package/dist/routes.d.mts +4 -5
- package/dist/routes.d.ts +4 -5
- package/dist/routes.mjs +2 -2
- package/dist/{runtime-BirxPwbZ.d.ts → runtime-BgDQzBiu.d.ts} +2 -2
- package/dist/{runtime-AOJge4vQ.d.mts → runtime-CV2UCV-5.d.mts} +2 -2
- package/dist/server-action-security.cjs +3 -3
- package/dist/server-action-security.mjs +2 -2
- package/dist/server-fn.cjs +5 -5
- package/dist/server-fn.mjs +4 -4
- package/dist/server-plugins.cjs +4 -4
- package/dist/server-plugins.d.mts +5 -6
- package/dist/server-plugins.d.ts +5 -6
- package/dist/server-plugins.mjs +3 -3
- package/dist/server-query-client.cjs +3 -3
- package/dist/server-query-client.mjs +2 -2
- package/dist/server-query.cjs +6 -6
- package/dist/server-query.mjs +5 -5
- package/dist/server.cjs +66 -63
- package/dist/server.d.mts +13 -14
- package/dist/server.d.ts +13 -14
- package/dist/server.mjs +43 -40
- package/dist/{spa-router-DzPZH-AO.d.mts → spa-router-Bq7VCOwx.d.mts} +3 -3
- package/dist/{spa-router-B1HI3X9k.d.ts → spa-router-DaJk5Re4.d.ts} +3 -3
- package/dist/testing.cjs +22 -20
- package/dist/testing.d.mts +4 -5
- package/dist/testing.d.ts +4 -5
- package/dist/testing.mjs +18 -16
- package/dist/theme/server.cjs +4 -3
- package/dist/theme/server.mjs +3 -2
- package/dist/{types-Z0aotQ8w.d.mts → types-CnH8DOqo.d.mts} +1 -1
- package/dist/{types-Z0aotQ8w.d.ts → types-CnH8DOqo.d.ts} +1 -1
- package/dist/{utils-DMD1Hzta.d.ts → utils-BXLmFsVR.d.ts} +1 -1
- package/dist/{utils-CEBktlBG.d.mts → utils-XJn0c9bj.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +39 -36
- package/dist/vite.d.mts +4 -5
- package/dist/vite.d.ts +4 -5
- package/dist/vite.mjs +38 -35
- package/dist/{workflows-CR9ex-gz.d.ts → workflows-jZ4BcdoZ.d.mts} +1 -1
- package/dist/{workflows-CR9ex-gz.d.mts → workflows-jZ4BcdoZ.d.ts} +1 -1
- package/dist/workflows.cjs +3 -3
- package/dist/workflows.d.mts +1 -1
- package/dist/workflows.d.ts +1 -1
- package/dist/workflows.mjs +2 -2
- package/package.json +10 -2
- package/dist/chunk-22GUSVNJ.cjs +0 -351
- package/dist/chunk-5MKEDGLD.cjs +0 -53
- package/dist/chunk-O6XNAMBV.mjs +0 -53
- package/dist/chunk-SWN467MP.cjs +0 -18
- package/dist/chunk-XGC343EY.cjs +0 -443
- package/dist/chunk-ZSH2Y4LN.mjs +0 -351
- package/dist/types-DFbjpjXX.d.mts +0 -105
- package/dist/types-DFbjpjXX.d.ts +0 -105
- /package/dist/{chunk-SUIBNSNO.cjs → chunk-SJNMVDDF.cjs} +0 -0
- /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
|
-
|
|
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
|
|
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 (
|
|
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
|
|
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 =
|
|
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
|
);
|