@farm.js/core 0.1.48 → 0.1.50
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/dist/{agent-mcp-DAjB8Eyu.d.ts → agent-mcp-9BMbRgg_.d.ts} +1 -1
- package/dist/{agent-mcp-CXN3g0eX.d.mts → agent-mcp-CIMH324y.d.mts} +1 -1
- package/dist/agent-runtime.cjs +3 -3
- package/dist/agent-runtime.d.mts +6 -6
- package/dist/agent-runtime.d.ts +6 -6
- package/dist/agent-runtime.mjs +2 -2
- package/dist/analyzer-CN7C74WX.cjs +1066 -0
- package/dist/analyzer-DDW34OMC.mjs +1066 -0
- package/dist/api/client.d.mts +0 -1
- package/dist/api/client.d.ts +0 -1
- package/dist/api/route-manager.cjs +5 -5
- package/dist/api/route-manager.d.mts +10 -10
- package/dist/api/route-manager.d.ts +10 -10
- package/dist/api/route-manager.mjs +4 -4
- package/dist/api/runtime.cjs +3 -3
- package/dist/api/runtime.d.mts +7 -7
- package/dist/api/runtime.d.ts +7 -7
- package/dist/api/runtime.mjs +2 -2
- package/dist/api.cjs +6 -6
- package/dist/api.d.mts +10 -10
- package/dist/api.d.ts +10 -10
- package/dist/api.mjs +5 -5
- package/dist/{app-VK9sHDn5.d.ts → app-BWibTHVT.d.ts} +7 -7
- package/dist/{app-DytgRPjJ.d.mts → app-DVJ13FPA.d.mts} +7 -7
- package/dist/{app-manifest-DPgW5ke5.d.mts → app-manifest-CQDJOKL2.d.mts} +1 -1
- package/dist/{app-manifest-BUu7YGAx.d.ts → app-manifest-D0kaXdwu.d.ts} +1 -1
- package/dist/app-markdown.d.mts +7 -7
- package/dist/app-markdown.d.ts +7 -7
- package/dist/cache.d.mts +4 -3
- package/dist/cache.d.ts +4 -3
- package/dist/{chunk-VJXLUTBM.mjs → chunk-2DEPNLXK.mjs} +7 -7
- package/dist/chunk-2G63BIRL.mjs +227 -0
- package/dist/chunk-2GLQSIZD.mjs +55 -0
- package/dist/{chunk-HRLYO2XJ.mjs → chunk-2VCC3GVC.mjs} +1 -1
- package/dist/chunk-3ATXWZPH.cjs +227 -0
- package/dist/{chunk-YSPMY4B7.cjs → chunk-474FO3UE.cjs} +233 -157
- package/dist/{chunk-QNQEK3OF.cjs → chunk-4T25YCZ5.cjs} +14 -14
- package/dist/{chunk-ATHPRVP2.mjs → chunk-5V4KZOZO.mjs} +1 -1
- package/dist/{chunk-FGJQS4EC.cjs → chunk-6QA2SXVH.cjs} +2 -2
- package/dist/{chunk-XLYXG73A.mjs → chunk-75WWOZ5C.mjs} +22 -0
- package/dist/{chunk-QFQDRJKJ.mjs → chunk-76R5GJER.mjs} +2 -2
- package/dist/{chunk-NG44F7AH.mjs → chunk-7ONZDKVY.mjs} +2 -2
- package/dist/{chunk-MZZA6ZQV.mjs → chunk-7PZVXMWG.mjs} +4 -4
- package/dist/{chunk-4IICUBQX.cjs → chunk-A5BJKSZE.cjs} +2 -2
- package/dist/{chunk-TTYXOAB7.mjs → chunk-ANHZ6SUL.mjs} +1 -1
- package/dist/{chunk-ZBS3GOQZ.cjs → chunk-AQLHD6HZ.cjs} +35 -61
- package/dist/{chunk-Q2ZKQ6GD.cjs → chunk-B5S2JS6M.cjs} +127 -125
- package/dist/{chunk-AXRNEVCS.cjs → chunk-B6PREBN6.cjs} +8 -8
- package/dist/{chunk-JOHXK4BB.mjs → chunk-BW6SCVYX.mjs} +1 -1
- package/dist/{chunk-LZBM35DH.mjs → chunk-C73RIAEF.mjs} +4 -4
- package/dist/chunk-CGCJ2TJU.cjs +55 -0
- package/dist/{chunk-UYQOIPXE.mjs → chunk-CPXDDWGL.mjs} +1 -1
- package/dist/{chunk-JPAVNDZH.cjs → chunk-CY7H5KS4.cjs} +25 -25
- package/dist/{chunk-4S7M63WX.cjs → chunk-DGOLAZLV.cjs} +22 -1
- package/dist/{chunk-73XBJRZW.cjs → chunk-E2BMCNMJ.cjs} +2 -2
- package/dist/{chunk-WUEDTW6E.cjs → chunk-F5LERVY3.cjs} +23 -5
- package/dist/{chunk-A7DK663W.cjs → chunk-FACTMUPI.cjs} +27 -27
- package/dist/chunk-G2KTRMWA.mjs +40 -0
- package/dist/{chunk-C6U66WWF.mjs → chunk-GFT5AHAT.mjs} +13 -0
- package/dist/{chunk-ZGS3ZDF7.cjs → chunk-GOOK2J2W.cjs} +7 -7
- package/dist/{chunk-NW2BKDVT.mjs → chunk-HHFMECFO.mjs} +1 -1
- package/dist/{chunk-6M3HXUBQ.mjs → chunk-HWCHIBJZ.mjs} +21 -3
- package/dist/{chunk-HUL4LTC6.cjs → chunk-HYN3LLG7.cjs} +63 -20
- package/dist/{chunk-HELQXYVI.cjs → chunk-I2DQGS56.cjs} +11 -9
- package/dist/{chunk-SSNN55Q6.cjs → chunk-IQXGHGZF.cjs} +5 -5
- package/dist/{chunk-ZSIGEHSE.cjs → chunk-IUBDMDZZ.cjs} +21 -180
- package/dist/{chunk-TQWGOQ7O.mjs → chunk-IWJKJDNW.mjs} +116 -40
- package/dist/{chunk-NRFUVDTH.mjs → chunk-JJOWY3XD.mjs} +2 -2
- package/dist/{chunk-6XFGJBYX.cjs → chunk-JYNNIGQO.cjs} +16 -7
- package/dist/{chunk-XO6WL6NL.mjs → chunk-KGP76FSV.mjs} +1 -1
- package/dist/{chunk-GXSMF7UR.mjs → chunk-KO2NWUKN.mjs} +1 -1
- package/dist/{chunk-VDLF2DJA.cjs → chunk-KZH6YLND.cjs} +375 -162
- package/dist/{chunk-5566GNEG.cjs → chunk-LIFUPCXW.cjs} +13 -0
- package/dist/{chunk-I2SWKWO7.mjs → chunk-LJDIFIJ2.mjs} +1 -1
- package/dist/{chunk-KZT2VHRQ.cjs → chunk-LYWAGXXW.cjs} +11 -11
- package/dist/{chunk-N6SIQJEJ.mjs → chunk-M7LKA632.mjs} +54 -11
- package/dist/{chunk-6LH33DLL.cjs → chunk-NJVFPJ2Y.cjs} +2 -2
- package/dist/{chunk-JWP56HCP.mjs → chunk-OD6WM3I7.mjs} +2 -2
- package/dist/{chunk-MJ6IC4K2.mjs → chunk-OTOOJIUB.mjs} +1 -1
- package/dist/{chunk-TFA6BUAE.cjs → chunk-OY5XDG24.cjs} +4 -4
- package/dist/{chunk-R2SEZEBC.cjs → chunk-OYNNA4DD.cjs} +4 -4
- package/dist/{chunk-GBPDSUFE.mjs → chunk-OZK2DS44.mjs} +1 -1
- package/dist/chunk-QXJADAQB.cjs +40 -0
- package/dist/{chunk-JLS6ZLFM.cjs → chunk-RHOR2J6V.cjs} +1 -1
- package/dist/{chunk-YQGZLCT4.cjs → chunk-RWT2BTJT.cjs} +6 -6
- package/dist/{chunk-3HBFI373.cjs → chunk-S5AQ7CAC.cjs} +14 -14
- package/dist/{chunk-HNAUK3SC.mjs → chunk-SHJJM6OG.mjs} +40 -199
- package/dist/{chunk-LL7TDMOM.mjs → chunk-SMUW7UST.mjs} +33 -59
- package/dist/{chunk-VCFBQFOV.mjs → chunk-SN5VSO3Q.mjs} +9 -7
- package/dist/{chunk-DM3TFCC2.cjs → chunk-SUV6YO4Q.cjs} +5 -5
- package/dist/{chunk-JUMPFVMK.mjs → chunk-TUOO6IK3.mjs} +9 -0
- package/dist/chunk-UB7RVEMX.mjs +73 -0
- package/dist/{chunk-CDTIXBKN.mjs → chunk-UN6N623E.mjs} +2 -2
- package/dist/{chunk-BEXYFR2R.cjs → chunk-UY6HS5PF.cjs} +2 -2
- package/dist/{chunk-HAH4FBTA.mjs → chunk-VAHBCI6X.mjs} +1 -1
- package/dist/{chunk-C2R5RVLA.cjs → chunk-VCKGOXFI.cjs} +73 -1
- package/dist/{chunk-N25RPPO5.cjs → chunk-WAPQWAE6.cjs} +10 -10
- package/dist/{chunk-NE33FRQ5.mjs → chunk-WVBUXNBX.mjs} +274 -61
- package/dist/{chunk-ALD2WMLA.mjs → chunk-WXHDVXJE.mjs} +2 -2
- package/dist/{chunk-EVCQX243.cjs → chunk-X2EL3BLH.cjs} +2 -2
- package/dist/{chunk-EA5PMJDU.mjs → chunk-X3HOVNHI.mjs} +1 -1
- package/dist/{chunk-XXB37YET.cjs → chunk-XLRLSTJ6.cjs} +7 -7
- package/dist/{chunk-DRFADSKY.mjs → chunk-XXXRRVY6.mjs} +4 -4
- package/dist/{chunk-EXHEPWFJ.cjs → chunk-YAXOEAND.cjs} +10 -10
- package/dist/{chunk-PEHL3IZL.cjs → chunk-YB44NKC2.cjs} +2 -2
- package/dist/chunk-YKHRCY4T.cjs +73 -0
- package/dist/{chunk-NIPKC4DA.mjs → chunk-ZIBIE7AH.mjs} +72 -0
- package/dist/{chunk-N7SPZJLY.mjs → chunk-ZLOQQ2UF.mjs} +33 -31
- package/dist/client/lifecycle.d.mts +1 -1
- package/dist/client/lifecycle.d.ts +1 -1
- package/dist/{client-plugins-DqjCsKMN.d.ts → client-plugins-BPfltM5m.d.ts} +19 -10
- package/dist/{client-plugins-BlEzV5FO.d.mts → client-plugins-D4RO59f0.d.mts} +19 -10
- package/dist/client-plugins.d.mts +6 -6
- package/dist/client-plugins.d.ts +6 -6
- package/dist/client.cjs +11 -8
- package/dist/client.d.mts +11 -10
- package/dist/client.d.ts +11 -10
- package/dist/client.mjs +12 -9
- package/dist/client.react-server.mjs +1 -1
- package/dist/config-CnhyvvmT.d.mts +188 -0
- package/dist/config-CnhyvvmT.d.ts +188 -0
- package/dist/config.d.mts +6 -6
- package/dist/config.d.ts +6 -6
- package/dist/desktop.d.mts +7 -7
- package/dist/desktop.d.ts +7 -7
- package/dist/{dev-guard-MPZUJFIV.mjs → dev-guard-4PFQNXQX.mjs} +4 -2
- package/dist/{dev-guard-4NQ3LFO5.cjs → dev-guard-YLO5DE3H.cjs} +7 -5
- package/dist/{devtools-A37WWJZL.cjs → devtools-N5XTOECL.cjs} +8 -8
- package/dist/{devtools-BLKHPY3C.mjs → devtools-STG7HPRV.mjs} +7 -7
- package/dist/docs.cjs +10 -10
- package/dist/docs.d.mts +7 -7
- package/dist/docs.d.ts +7 -7
- package/dist/docs.mjs +9 -9
- package/dist/environment/vite.d.mts +1 -1
- package/dist/environment/vite.d.ts +1 -1
- package/dist/generate-route-types-DQP0cUzk.d.ts +33 -0
- package/dist/generate-route-types-TF5Wwtvz.d.mts +33 -0
- package/dist/i18n/client.d.mts +2 -2
- package/dist/i18n/client.d.ts +2 -2
- package/dist/i18n/index.d.mts +3 -3
- package/dist/i18n/index.d.ts +3 -3
- package/dist/i18n/server.d.mts +5 -5
- package/dist/i18n/server.d.ts +5 -5
- 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-CMigAr9f.d.mts → index-C-N3Pwg-.d.ts} +2 -2
- package/dist/{index-MocnSP3a.d.ts → index-D3l4tREW.d.ts} +2 -2
- package/dist/{index-Cl3akY5U.d.mts → index-DPUAPho_.d.mts} +2 -2
- package/dist/{index-n3hjOvVC.d.ts → index-k8o8eUOd.d.mts} +2 -2
- package/dist/index.cjs +73 -66
- package/dist/index.d.mts +29 -45
- package/dist/index.d.ts +29 -45
- package/dist/index.mjs +78 -71
- package/dist/integrations.cjs +3 -3
- package/dist/integrations.d.mts +6 -6
- package/dist/integrations.d.ts +6 -6
- package/dist/integrations.mjs +2 -2
- package/dist/internal/app-markdown-runtime.d.mts +7 -7
- package/dist/internal/app-markdown-runtime.d.ts +7 -7
- package/dist/internal/build-runtime.cjs +36 -32
- package/dist/internal/build-runtime.d.mts +9 -9
- package/dist/internal/build-runtime.d.ts +9 -9
- package/dist/internal/build-runtime.mjs +35 -31
- package/dist/internal/cli-runtime.cjs +16 -15
- package/dist/internal/cli-runtime.mjs +16 -15
- package/dist/internal/client-error-overlay.cjs +4 -4
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/client-runtime.cjs +19 -2
- package/dist/internal/client-runtime.d.mts +45 -3
- package/dist/internal/client-runtime.d.ts +45 -3
- package/dist/internal/client-runtime.mjs +19 -2
- package/dist/internal/compression-runtime.d.mts +6 -6
- package/dist/internal/compression-runtime.d.ts +6 -6
- package/dist/internal/config-runtime.cjs +17 -10
- package/dist/internal/config-runtime.d.mts +259 -18
- package/dist/internal/config-runtime.d.ts +259 -18
- package/dist/internal/config-runtime.mjs +15 -8
- package/dist/internal/desktop-guard.cjs +2 -2
- package/dist/internal/desktop-guard.d.mts +7 -0
- package/dist/internal/desktop-guard.d.ts +7 -0
- package/dist/internal/desktop-guard.mjs +1 -1
- package/dist/internal/form-actions.cjs +4 -4
- package/dist/internal/form-actions.mjs +3 -3
- package/dist/internal/infra-analytics-runtime.cjs +6 -6
- package/dist/internal/infra-analytics-runtime.mjs +4 -4
- package/dist/internal/islands-runtime.cjs +4 -1
- package/dist/internal/islands-runtime.d.mts +9 -12
- package/dist/internal/islands-runtime.d.ts +9 -12
- package/dist/internal/islands-runtime.mjs +5 -2
- 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 +13 -13
- package/dist/internal/production-runtime.d.mts +19 -19
- package/dist/internal/production-runtime.d.ts +19 -19
- package/dist/internal/production-runtime.mjs +15 -15
- package/dist/{layers-D9fbe-rz.d.ts → layers-CcS42OGR.d.mts} +1 -1
- package/dist/{layers-D9fbe-rz.d.mts → layers-CcS42OGR.d.ts} +1 -1
- package/dist/{lifecycle-DK06VuKP.d.ts → lifecycle-C2aLBOwu.d.mts} +1 -1
- package/dist/{lifecycle-DK06VuKP.d.mts → lifecycle-C2aLBOwu.d.ts} +1 -1
- package/dist/markdown.d.mts +6 -6
- package/dist/markdown.d.ts +6 -6
- package/dist/middleware.cjs +7 -7
- package/dist/middleware.d.mts +8 -8
- package/dist/middleware.d.ts +8 -8
- package/dist/middleware.mjs +6 -6
- package/dist/mobile.cjs +9 -0
- package/dist/mobile.d.mts +67 -0
- package/dist/mobile.d.ts +67 -0
- package/dist/mobile.mjs +9 -0
- package/dist/navigation-delegate-8xg3Zvp4.d.ts +29 -0
- package/dist/navigation-delegate-ji6elCKy.d.mts +29 -0
- package/dist/navigation.cjs +5 -5
- package/dist/navigation.d.mts +9 -9
- package/dist/navigation.d.ts +9 -9
- package/dist/navigation.mjs +4 -4
- package/dist/{nitro-UT2J5A5D.mjs → nitro-2Q5NVY7L.mjs} +2 -2
- package/dist/{nitro-BIXIKJZS.cjs → nitro-YPSZBYDK.cjs} +3 -3
- package/dist/platform.cjs +2 -1
- package/dist/platform.d.mts +4 -3
- package/dist/platform.d.ts +4 -3
- package/dist/platform.mjs +2 -1
- package/dist/{plugin-4KYXV7BB.mjs → plugin-53SY5YBS.mjs} +1 -1
- package/dist/{plugin-WBANOZQM.cjs → plugin-HZIBL3DW.cjs} +2 -2
- package/dist/plugin.cjs +31 -29
- package/dist/plugin.d.mts +13 -8
- package/dist/plugin.d.ts +13 -8
- package/dist/plugin.mjs +30 -28
- package/dist/{production-runtime-bWZJMcQb.d.mts → production-runtime-DXnQQkQf.d.mts} +3 -3
- package/dist/{production-runtime-YVDGYWBG.d.ts → production-runtime-TdKaYRj0.d.ts} +3 -3
- package/dist/production-vite-BQFAlG7n.d.mts +13 -0
- package/dist/production-vite-BQFAlG7n.d.ts +13 -0
- package/dist/{programmatic-routes-client-DviwGeAv.d.ts → programmatic-routes-client-BwiTndEC.d.ts} +2 -2
- package/dist/{programmatic-routes-client-BFKOTEXN.d.mts → programmatic-routes-client-Dh1SDLSM.d.mts} +2 -2
- package/dist/query/client.cjs +6 -6
- package/dist/query/client.mjs +2 -2
- package/dist/{render-plan-DqWXo3-B.d.ts → render-plan-BPbwRbuN.d.ts} +1 -1
- package/dist/{render-plan-CS8l0zaK.d.mts → render-plan-BvCGXF6K.d.mts} +1 -1
- package/dist/renderer-client.cjs +9 -6
- package/dist/renderer-client.d.mts +9 -8
- package/dist/renderer-client.d.ts +9 -8
- package/dist/renderer-client.mjs +6 -3
- package/dist/{request-CBrHpaCC.d.ts → request-B8PGTZNR.d.ts} +1 -1
- package/dist/{request-D4XqmnJF.d.mts → request-C_xTkJib.d.mts} +1 -1
- package/dist/request.d.mts +7 -7
- package/dist/request.d.ts +7 -7
- package/dist/{resolver-DC57A4vz.d.ts → resolver-CJ-D9nP-.d.ts} +1 -1
- package/dist/{resolver-C2G-3Tm6.d.mts → resolver-TDyZKgKI.d.mts} +1 -1
- package/dist/{route-rendering-3pRPtyO2.d.mts → route-rendering-DlddURL1.d.mts} +1 -1
- package/dist/{route-rendering-Bltnu8a3.d.ts → route-rendering-RNtcj607.d.ts} +1 -1
- package/dist/{router-BFSmKGtI.d.mts → router-B97eB0Mq.d.mts} +1 -1
- package/dist/{router-DDT7bkg7.d.ts → router-qUVaoEN8.d.ts} +1 -1
- package/dist/routes-8PT9cl60.d.ts +121 -0
- package/dist/routes-kEUsXHx3.d.mts +121 -0
- package/dist/routes.d.mts +6 -6
- package/dist/routes.d.ts +6 -6
- package/dist/{rsc-pipeline-4KOITP64.cjs → rsc-pipeline-L4XOZ2TE.cjs} +13 -10
- package/dist/{rsc-pipeline-ULFIB3UT.mjs → rsc-pipeline-T3775JUA.mjs} +12 -9
- package/dist/runtime-BIBGJO7V.cjs +1005 -0
- package/dist/{runtime-B9HmxiZc.d.ts → runtime-C4CmlOOh.d.ts} +2 -2
- package/dist/{runtime-C6yG64je.d.ts → runtime-C8GUnNeP.d.ts} +1 -1
- package/dist/{runtime-Cpylaypt.d.mts → runtime-CaDswfWi.d.mts} +1 -1
- package/dist/{runtime-CCxTmGuf.d.mts → runtime-CihDZ2Rn.d.mts} +2 -2
- package/dist/runtime-HRSFC4ZC.mjs +1005 -0
- package/dist/{schema-dev-notice-O3I5HLXK.mjs → schema-dev-notice-LZ5NXGLN.mjs} +2 -2
- package/dist/{schema-dev-notice-Z73J3NJ6.cjs → schema-dev-notice-XV7GZ3QJ.cjs} +4 -4
- package/dist/server-action-security.cjs +3 -3
- package/dist/server-action-security.mjs +2 -2
- package/dist/server-fn-client.d.mts +0 -1
- package/dist/server-fn-client.d.ts +0 -1
- package/dist/server-fn.cjs +4 -4
- package/dist/server-fn.d.mts +0 -1
- package/dist/server-fn.d.ts +0 -1
- package/dist/server-fn.mjs +3 -3
- package/dist/server-plugins.cjs +1 -1
- package/dist/server-plugins.d.mts +7 -7
- package/dist/server-plugins.d.ts +7 -7
- package/dist/server-plugins.mjs +1 -1
- package/dist/server-query-client.d.mts +0 -1
- package/dist/server-query-client.d.ts +0 -1
- package/dist/server-query.cjs +5 -5
- package/dist/server-query.d.mts +0 -1
- package/dist/server-query.d.ts +0 -1
- package/dist/server-query.mjs +4 -4
- package/dist/server.cjs +89 -66
- package/dist/server.d.mts +22 -17
- package/dist/server.d.ts +22 -17
- package/dist/server.mjs +64 -41
- package/dist/{spa-router-CkTPnA4L.d.mts → spa-router-Dlv5ofg0.d.mts} +4 -4
- package/dist/{spa-router-CKuS81mi.d.ts → spa-router-qapSboKz.d.ts} +4 -4
- package/dist/testing.cjs +7 -7
- package/dist/testing.d.mts +6 -6
- package/dist/testing.d.ts +6 -6
- package/dist/testing.mjs +5 -5
- package/dist/{types--Wh02r5_.d.mts → types-C41ePjvP.d.mts} +1 -1
- package/dist/{types--Wh02r5_.d.ts → types-C41ePjvP.d.ts} +1 -1
- package/dist/{utils-C0ORLYXc.d.ts → utils-A-cYF81u.d.ts} +1 -1
- package/dist/{utils-IA9wVkef.d.mts → utils-DyvlSxFk.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +31 -29
- package/dist/vite.d.mts +9 -9
- package/dist/vite.d.ts +9 -9
- package/dist/vite.mjs +30 -28
- package/dist/{workflows-Df1C_7OG.d.mts → workflows-CRMzQZ3k.d.mts} +2 -1
- package/dist/{workflows-Df1C_7OG.d.ts → workflows-CRMzQZ3k.d.ts} +2 -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/cache-invalidation-BD0z_lfu.d.mts +0 -4
- package/dist/cache-invalidation-BD0z_lfu.d.ts +0 -4
- package/dist/chunk-45EUIICW.mjs +0 -15
- package/dist/chunk-V7KTQR4C.cjs +0 -15
- package/dist/{chunk-BR5FSKZ5.cjs → chunk-EQWWOQTK.cjs} +0 -0
- package/dist/{chunk-5OJVKXFV.cjs → chunk-N7JQXQAV.cjs} +2 -2
- package/dist/{chunk-VR4SEDEM.mjs → chunk-VOZ5DI7D.mjs} +0 -0
- package/dist/{chunk-72KABRWN.mjs → chunk-WSDKXV4E.mjs} +4 -4
|
@@ -9,7 +9,7 @@ var _chunkKBGZ5FD6cjs = require('./chunk-KBGZ5FD6.cjs');
|
|
|
9
9
|
var _chunkP2355C6Ecjs = require('./chunk-P2355C6E.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkYAXOEANDcjs = require('./chunk-YAXOEAND.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
var _chunkJZMZKABScjs = require('./chunk-JZMZKABS.cjs');
|
|
@@ -23,7 +23,7 @@ var _chunkSBDWCDS6cjs = require('./chunk-SBDWCDS6.cjs');
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _chunkOYNNA4DDcjs = require('./chunk-OYNNA4DD.cjs');
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
var _chunkE7QOEV5Zcjs = require('./chunk-E7QOEV5Z.cjs');
|
|
@@ -32,7 +32,7 @@ var _chunkE7QOEV5Zcjs = require('./chunk-E7QOEV5Z.cjs');
|
|
|
32
32
|
var _chunkY3WG64CPcjs = require('./chunk-Y3WG64CP.cjs');
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
var
|
|
35
|
+
var _chunkJYNNIGQOcjs = require('./chunk-JYNNIGQO.cjs');
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,7 +44,7 @@ var _chunkZ5MZDFX4cjs = require('./chunk-Z5MZDFX4.cjs');
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
|
|
47
|
-
var
|
|
47
|
+
var _chunkLIFUPCXWcjs = require('./chunk-LIFUPCXW.cjs');
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
var _chunkHNAISJFDcjs = require('./chunk-HNAISJFD.cjs');
|
|
@@ -60,7 +60,7 @@ function farmApiPlugin(options = {}) {
|
|
|
60
60
|
const srcDir = _nullishCoalesce(options.srcDir, () => ( "src"));
|
|
61
61
|
const apiDirFromRoot = _nullishCoalesce(options.apiDir, () => ( _path2.default.join(srcDir, "api")));
|
|
62
62
|
const debug = _nullishCoalesce(options.debug, () => ( false));
|
|
63
|
-
const bodySizeLimit =
|
|
63
|
+
const bodySizeLimit = _chunkLIFUPCXWcjs.resolveFarmServerConfig.call(void 0, {
|
|
64
64
|
bodySizeLimit: options.bodySizeLimit
|
|
65
65
|
}).bodySizeLimit;
|
|
66
66
|
const basePath = options.basePath;
|
|
@@ -113,7 +113,7 @@ function farmApiPlugin(options = {}) {
|
|
|
113
113
|
const existing = apiRoutesCache.get(routePath);
|
|
114
114
|
const existingFile = _optionalChain([endpointSources, 'access', _ => _.get, 'call', _2 => _2(routePath), 'optionalAccess', _3 => _3.get, 'call', _4 => _4(normalizedMethod)]);
|
|
115
115
|
if (existingFile) {
|
|
116
|
-
throw new (0,
|
|
116
|
+
throw new (0, _chunkYAXOEANDcjs.APIRouteConflictError)(routePath, normalizedMethod, existingFile, filePath);
|
|
117
117
|
}
|
|
118
118
|
if (existing) {
|
|
119
119
|
if (!existing.methods.includes(normalizedMethod)) {
|
|
@@ -189,7 +189,7 @@ function farmApiPlugin(options = {}) {
|
|
|
189
189
|
const createRouter = async () => {
|
|
190
190
|
const plugins = options.plugins ? await (_nullishCoalesce(routePlugins, () => ( (routePlugins = Promise.resolve(options.plugins({ root: projectRoot })))))) : [];
|
|
191
191
|
pluginMergedRoutes = plugins.length ? new Map(
|
|
192
|
-
|
|
192
|
+
_chunkOYNNA4DDcjs.mergePluginAPIRoutes.call(void 0, [...apiRoutesCache.values()], plugins, void 0, {
|
|
193
193
|
bodySizeLimit,
|
|
194
194
|
// A plugin calling an app endpoint (an MCP tool, say) goes back through this server,
|
|
195
195
|
// so the middleware that guards the endpoint's path runs for it.
|
|
@@ -209,7 +209,7 @@ function farmApiPlugin(options = {}) {
|
|
|
209
209
|
const url = new URL(request.url);
|
|
210
210
|
const method = request.method.toUpperCase();
|
|
211
211
|
const pathname = url.pathname;
|
|
212
|
-
const match =
|
|
212
|
+
const match = _chunkOYNNA4DDcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath);
|
|
213
213
|
if (!match) {
|
|
214
214
|
return new Response(JSON.stringify({ error: "Not Found" }), {
|
|
215
215
|
status: 404,
|
|
@@ -217,18 +217,18 @@ function farmApiPlugin(options = {}) {
|
|
|
217
217
|
});
|
|
218
218
|
}
|
|
219
219
|
const { route, params } = match;
|
|
220
|
-
const endpoint =
|
|
220
|
+
const endpoint = _chunkOYNNA4DDcjs.resolveAPIRouteEndpoint.call(void 0, route, method);
|
|
221
221
|
if (!endpoint) {
|
|
222
222
|
return new Response(JSON.stringify({ error: "Method Not Allowed" }), {
|
|
223
223
|
status: 405,
|
|
224
224
|
headers: {
|
|
225
|
-
Allow:
|
|
225
|
+
Allow: _chunkOYNNA4DDcjs.getAllowedAPIRouteMethods.call(void 0, route).join(", "),
|
|
226
226
|
"Content-Type": "application/json"
|
|
227
227
|
}
|
|
228
228
|
});
|
|
229
229
|
}
|
|
230
230
|
try {
|
|
231
|
-
return await
|
|
231
|
+
return await _chunkOYNNA4DDcjs.invokeAPIRouteEndpoint.call(void 0, endpoint, request, params, bodySizeLimit);
|
|
232
232
|
} catch (error) {
|
|
233
233
|
return new Response(JSON.stringify({ error: error.message || "Internal Server Error" }), {
|
|
234
234
|
status: 500,
|
|
@@ -274,10 +274,10 @@ function farmApiPlugin(options = {}) {
|
|
|
274
274
|
try {
|
|
275
275
|
const relativePath = path.relative(apiDir, path.dirname(filePath));
|
|
276
276
|
const routePath = "/api/" + (relativePath === "." ? "" : relativePath.replace(/\\/g, "/"));
|
|
277
|
-
const routeModule = await
|
|
277
|
+
const routeModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, filePath);
|
|
278
278
|
const endpoints = {};
|
|
279
279
|
const availableMethods = [];
|
|
280
|
-
for (const method of
|
|
280
|
+
for (const method of _chunkOYNNA4DDcjs.API_ROUTE_METHODS) {
|
|
281
281
|
if (routeModule[method]) {
|
|
282
282
|
availableMethods.push(method);
|
|
283
283
|
endpoints[method] = routeModule[method];
|
|
@@ -290,7 +290,7 @@ function farmApiPlugin(options = {}) {
|
|
|
290
290
|
log(`API route discovered: ${availableMethods.join(", ")} ${routePath}`);
|
|
291
291
|
}
|
|
292
292
|
} catch (e) {
|
|
293
|
-
if (e instanceof
|
|
293
|
+
if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
294
294
|
log(`API route load failed at ${filePath}: ${e.message}`);
|
|
295
295
|
}
|
|
296
296
|
}
|
|
@@ -306,7 +306,7 @@ function farmApiPlugin(options = {}) {
|
|
|
306
306
|
for (const routesFile of routesFiles) {
|
|
307
307
|
if (fs.existsSync(routesFile)) {
|
|
308
308
|
try {
|
|
309
|
-
const routesModule = await
|
|
309
|
+
const routesModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, routesFile);
|
|
310
310
|
for (const [exportName, exportValue] of Object.entries(routesModule)) {
|
|
311
311
|
const endpoint = exportValue;
|
|
312
312
|
if (endpoint && endpoint.__path) {
|
|
@@ -317,7 +317,7 @@ function farmApiPlugin(options = {}) {
|
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
319
|
} catch (e) {
|
|
320
|
-
if (e instanceof
|
|
320
|
+
if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
321
321
|
log(`Root routes.ts load failed: ${e.message}`);
|
|
322
322
|
}
|
|
323
323
|
break;
|
|
@@ -332,7 +332,7 @@ function farmApiPlugin(options = {}) {
|
|
|
332
332
|
const { getProgrammaticRouteManifest } = await import("./routes.cjs");
|
|
333
333
|
for (const routeFile of routeFiles) {
|
|
334
334
|
try {
|
|
335
|
-
const routesModule = await
|
|
335
|
+
const routesModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0,
|
|
336
336
|
server,
|
|
337
337
|
_chunkXN2MB4QZcjs.toViteModuleId.call(void 0, routeFile, server.config.root)
|
|
338
338
|
);
|
|
@@ -348,7 +348,7 @@ function farmApiPlugin(options = {}) {
|
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
350
|
} catch (e) {
|
|
351
|
-
if (e instanceof
|
|
351
|
+
if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
352
352
|
log(`Programmatic routes file load failed at ${routeFile}: ${e.message}`);
|
|
353
353
|
}
|
|
354
354
|
}
|
|
@@ -400,7 +400,7 @@ function farmApiPlugin(options = {}) {
|
|
|
400
400
|
const pathname = url.split("?")[0];
|
|
401
401
|
const method = req.method || "GET";
|
|
402
402
|
if (discoveryPromise) await waitForDiscovery();
|
|
403
|
-
if (!
|
|
403
|
+
if (!_chunkOYNNA4DDcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath)) {
|
|
404
404
|
return next();
|
|
405
405
|
}
|
|
406
406
|
if (!apiRouterHandler) {
|
|
@@ -421,7 +421,7 @@ function farmApiPlugin(options = {}) {
|
|
|
421
421
|
}
|
|
422
422
|
const currentUrl = req.url || url;
|
|
423
423
|
const currentPathname = currentUrl.split("?")[0];
|
|
424
|
-
if (currentPathname !== pathname && !
|
|
424
|
+
if (currentPathname !== pathname && !_chunkOYNNA4DDcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), currentPathname, basePath)) {
|
|
425
425
|
return next();
|
|
426
426
|
}
|
|
427
427
|
const fullUrl = _chunkHNAISJFDcjs.resolveFarmRequestURL.call(void 0, req);
|
|
@@ -433,7 +433,7 @@ function farmApiPlugin(options = {}) {
|
|
|
433
433
|
}
|
|
434
434
|
let body;
|
|
435
435
|
if (method !== "GET" && method !== "HEAD") {
|
|
436
|
-
body = await
|
|
436
|
+
body = await _chunkLIFUPCXWcjs.readNodeRequestBody.call(void 0, req, bodySizeLimit);
|
|
437
437
|
}
|
|
438
438
|
const request = new Request(fullUrl, {
|
|
439
439
|
method,
|
|
@@ -448,7 +448,7 @@ function farmApiPlugin(options = {}) {
|
|
|
448
448
|
logResponse(method, currentPathname, response.status, duration);
|
|
449
449
|
await _chunkZ5MZDFX4cjs.sendWebResponse.call(void 0, res, response);
|
|
450
450
|
} catch (error) {
|
|
451
|
-
const bodyErrorResponse =
|
|
451
|
+
const bodyErrorResponse = _chunkLIFUPCXWcjs.createFarmRequestBodyErrorResponse.call(void 0, error);
|
|
452
452
|
if (bodyErrorResponse) {
|
|
453
453
|
await _chunkZ5MZDFX4cjs.sendWebResponse.call(void 0, res, bodyErrorResponse);
|
|
454
454
|
return;
|
|
@@ -497,7 +497,7 @@ function farmApiPlugin(options = {}) {
|
|
|
497
497
|
if (await _optionalChain([recoverFailedDiscovery, 'optionalCall', _9 => _9()])) return [];
|
|
498
498
|
const previousState = snapshotRouteState();
|
|
499
499
|
try {
|
|
500
|
-
const routesModule = await
|
|
500
|
+
const routesModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, file);
|
|
501
501
|
removeEndpointsFromFile(file);
|
|
502
502
|
for (const [exportName, exportValue] of Object.entries(routesModule)) {
|
|
503
503
|
const endpoint = exportValue;
|
|
@@ -525,7 +525,7 @@ function farmApiPlugin(options = {}) {
|
|
|
525
525
|
log(`API router recreated`);
|
|
526
526
|
} catch (e) {
|
|
527
527
|
restoreRouteState(previousState);
|
|
528
|
-
if (e instanceof
|
|
528
|
+
if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
529
529
|
log(`Root routes.ts HMR failed: ${e.message}`);
|
|
530
530
|
}
|
|
531
531
|
return [];
|
|
@@ -550,10 +550,10 @@ function farmApiPlugin(options = {}) {
|
|
|
550
550
|
log(`API route file removed: ${routePath}`);
|
|
551
551
|
return [];
|
|
552
552
|
}
|
|
553
|
-
const routeModule = await
|
|
553
|
+
const routeModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, file);
|
|
554
554
|
removeEndpointsFromFile(file);
|
|
555
555
|
const availableMethods = [];
|
|
556
|
-
for (const method of
|
|
556
|
+
for (const method of _chunkOYNNA4DDcjs.API_ROUTE_METHODS) {
|
|
557
557
|
if (!routeModule[method]) continue;
|
|
558
558
|
availableMethods.push(method);
|
|
559
559
|
addEndpoint(routePath, file, method, routeModule[method]);
|
|
@@ -563,7 +563,7 @@ function farmApiPlugin(options = {}) {
|
|
|
563
563
|
log(`API router recreated`);
|
|
564
564
|
} catch (e) {
|
|
565
565
|
restoreRouteState(previousState);
|
|
566
|
-
if (e instanceof
|
|
566
|
+
if (e instanceof _chunkYAXOEANDcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
567
567
|
log(`API route HMR failed: ${e.message}`);
|
|
568
568
|
}
|
|
569
569
|
return [];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// src/client/hash-target.ts
|
|
2
|
+
function getHashTargetElement(hash) {
|
|
3
|
+
const fragment = hash.startsWith("#") ? hash.slice(1) : hash;
|
|
4
|
+
if (!fragment) return null;
|
|
5
|
+
let decoded = fragment;
|
|
6
|
+
try {
|
|
7
|
+
decoded = decodeURIComponent(fragment);
|
|
8
|
+
} catch {
|
|
9
|
+
}
|
|
10
|
+
return document.getElementById(decoded) || document.getElementById(fragment) || document.getElementsByName(decoded)[0] || null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// src/client/navigation-delegate.ts
|
|
14
|
+
var DELEGATES = /* @__PURE__ */ Symbol.for("farm.navigation.delegates");
|
|
15
|
+
function delegateNavigation(delegate) {
|
|
16
|
+
const host = globalThis;
|
|
17
|
+
const delegates = host[DELEGATES] ?? (host[DELEGATES] = /* @__PURE__ */ new Set());
|
|
18
|
+
delegates.add(delegate);
|
|
19
|
+
return () => {
|
|
20
|
+
delegates.delete(delegate);
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async function runFarmNavigationDelegates(context) {
|
|
24
|
+
const delegates = globalThis[DELEGATES];
|
|
25
|
+
if (!delegates?.size) return false;
|
|
26
|
+
for (const delegate of delegates) {
|
|
27
|
+
try {
|
|
28
|
+
if (await delegate(context) === true) return true;
|
|
29
|
+
} catch (error) {
|
|
30
|
+
console.error("[Farm.js] A navigation delegate failed; navigating in place.", error);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
getHashTargetElement,
|
|
38
|
+
delegateNavigation,
|
|
39
|
+
runFarmNavigationDelegates
|
|
40
|
+
};
|
|
@@ -297,7 +297,20 @@ async function readFarmRequestBody(request, limit) {
|
|
|
297
297
|
}
|
|
298
298
|
return body;
|
|
299
299
|
}
|
|
300
|
+
var nodeRequestBodies = /* @__PURE__ */ new WeakMap();
|
|
300
301
|
async function readNodeRequestBody(request, limit) {
|
|
302
|
+
let body = nodeRequestBodies.get(request);
|
|
303
|
+
if (!body) {
|
|
304
|
+
body = readNodeRequestBodyOnce(request, limit);
|
|
305
|
+
nodeRequestBodies.set(request, body);
|
|
306
|
+
}
|
|
307
|
+
const bytes = await body;
|
|
308
|
+
if (bytes.byteLength > limit) {
|
|
309
|
+
throw new FarmRequestBodyError("BODY_TOO_LARGE", 413, "Request body is too large");
|
|
310
|
+
}
|
|
311
|
+
return bytes;
|
|
312
|
+
}
|
|
313
|
+
async function readNodeRequestBodyOnce(request, limit) {
|
|
301
314
|
const rawContentLength = request.headers["content-length"];
|
|
302
315
|
const contentLength = Array.isArray(rawContentLength) ? rawContentLength[0] : rawContentLength;
|
|
303
316
|
try {
|
|
@@ -16,14 +16,14 @@ var _chunk6ONBZGVHcjs = require('./chunk-6ONBZGVH.cjs');
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunkLIFUPCXWcjs = require('./chunk-LIFUPCXW.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
var _chunkB5BBTPJQcjs = require('./chunk-B5BBTPJQ.cjs');
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _chunkRHOR2J6Vcjs = require('./chunk-RHOR2J6V.cjs');
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
var _chunkD22BUQKWcjs = require('./chunk-D22BUQKW.cjs');
|
|
@@ -147,7 +147,7 @@ function createFarmAiCatalogResponse(request, input = {}, requestUrl) {
|
|
|
147
147
|
const body = JSON.stringify(
|
|
148
148
|
card ? card.card : { specVersion: "1.0", entries: servers.map(({ entry }) => entry) }
|
|
149
149
|
);
|
|
150
|
-
const etag =
|
|
150
|
+
const etag = _chunkLIFUPCXWcjs.createFarmWeakETag.call(void 0, body);
|
|
151
151
|
const headers = {
|
|
152
152
|
...corsHeaders(),
|
|
153
153
|
"Content-Type": card ? `${SERVER_CARD_TYPE}; charset=utf-8` : ard ? "application/json; charset=utf-8" : `${AI_CATALOG_TYPE}; charset=utf-8`,
|
|
@@ -156,7 +156,7 @@ function createFarmAiCatalogResponse(request, input = {}, requestUrl) {
|
|
|
156
156
|
ETag: etag,
|
|
157
157
|
"X-Content-Type-Options": "nosniff"
|
|
158
158
|
};
|
|
159
|
-
if (
|
|
159
|
+
if (_chunkLIFUPCXWcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), etag)) {
|
|
160
160
|
return new Response(null, { status: 304, headers });
|
|
161
161
|
}
|
|
162
162
|
_chunkWJFFPXCVcjs.emitFarmAgentRead.call(void 0, request, card ? "mcp-server-card" : "ai-catalog", 200);
|
|
@@ -282,7 +282,7 @@ function createFarmAppManifest(input) {
|
|
|
282
282
|
return {
|
|
283
283
|
schemaVersion: 1,
|
|
284
284
|
app: app ? {
|
|
285
|
-
...app.version ? { farm:
|
|
285
|
+
...app.version ? { farm: _chunkRHOR2J6Vcjs.FARM_VERSION } : {},
|
|
286
286
|
...app.renderer ? { renderer: input.renderer } : {},
|
|
287
287
|
basePath: input.basePath,
|
|
288
288
|
...app.build ? { build: input.build } : {}
|
|
@@ -377,7 +377,7 @@ async function createFarmAppManifestResponse(request, input) {
|
|
|
377
377
|
});
|
|
378
378
|
}
|
|
379
379
|
const body = JSON.stringify(createFarmAppManifest(input));
|
|
380
|
-
const etag =
|
|
380
|
+
const etag = _chunkLIFUPCXWcjs.createFarmWeakETag.call(void 0, body);
|
|
381
381
|
const headers = {
|
|
382
382
|
...CORS_HEADERS,
|
|
383
383
|
"content-type": "application/json; charset=utf-8",
|
|
@@ -385,7 +385,7 @@ async function createFarmAppManifestResponse(request, input) {
|
|
|
385
385
|
etag,
|
|
386
386
|
"x-content-type-options": "nosniff"
|
|
387
387
|
};
|
|
388
|
-
if (
|
|
388
|
+
if (_chunkLIFUPCXWcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), etag)) {
|
|
389
389
|
return new Response(null, { status: 304, headers });
|
|
390
390
|
}
|
|
391
391
|
return new Response(method === "HEAD" ? null : body, { status: 200, headers });
|
|
@@ -2,15 +2,22 @@ import {
|
|
|
2
2
|
FARM_RSC_INSTALL_HINT,
|
|
3
3
|
findFarmAppPackageDir
|
|
4
4
|
} from "./chunk-PXEXOQ5R.mjs";
|
|
5
|
+
import {
|
|
6
|
+
createFarmDevLoopbackPlugin
|
|
7
|
+
} from "./chunk-2GLQSIZD.mjs";
|
|
5
8
|
import {
|
|
6
9
|
resolveDeployOutputPath
|
|
7
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-2DEPNLXK.mjs";
|
|
8
11
|
import {
|
|
12
|
+
farmDesktopDevGuardPlugin,
|
|
9
13
|
loadFarmReactPlugin
|
|
10
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-75WWOZ5C.mjs";
|
|
11
15
|
import {
|
|
12
16
|
loadTailwindVitePlugin
|
|
13
17
|
} from "./chunk-XLLVWLWO.mjs";
|
|
18
|
+
import {
|
|
19
|
+
resolveFarmPlatform
|
|
20
|
+
} from "./chunk-SMUW7UST.mjs";
|
|
14
21
|
|
|
15
22
|
// src/rsc-pipeline.ts
|
|
16
23
|
import { readFileSync } from "fs";
|
|
@@ -91,6 +98,11 @@ async function createFarmRscViteConfig(userConfig, options) {
|
|
|
91
98
|
experimental: { ...userConfig.experimental, serverComponents: true },
|
|
92
99
|
port: options.port ?? userConfig.server?.port,
|
|
93
100
|
plugins: [
|
|
101
|
+
...options.command === "serve" && resolveFarmPlatform() === "desktop" ? [
|
|
102
|
+
farmDesktopDevGuardPlugin(
|
|
103
|
+
typeof userConfig.basePath === "string" ? userConfig.basePath : void 0
|
|
104
|
+
)
|
|
105
|
+
] : [],
|
|
94
106
|
...tailwind ? [tailwind] : [],
|
|
95
107
|
...vitePlugins,
|
|
96
108
|
viteRsc.default({ serverHandler: false, entries: FARM_RSC_ENTRIES }),
|
|
@@ -118,7 +130,13 @@ async function createFarmRscViteConfig(userConfig, options) {
|
|
|
118
130
|
}
|
|
119
131
|
async function createFarmRscDevServer(userConfig, options) {
|
|
120
132
|
const { createServer } = await import("vite");
|
|
121
|
-
|
|
133
|
+
const { host, ...configOptions } = options;
|
|
134
|
+
const config = await createFarmRscViteConfig(userConfig, { ...configOptions, command: "serve" });
|
|
135
|
+
return createServer({
|
|
136
|
+
...config,
|
|
137
|
+
plugins: [...config.plugins ?? [], createFarmDevLoopbackPlugin()],
|
|
138
|
+
...host === void 0 ? {} : { server: { ...config.server, host } }
|
|
139
|
+
});
|
|
122
140
|
}
|
|
123
141
|
async function buildFarmRsc(userConfig, options) {
|
|
124
142
|
const { createBuilder } = await import("vite");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
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
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkGOOK2J2Wcjs = require('./chunk-GOOK2J2W.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var _chunkWJFFPXCVcjs = require('./chunk-WJFFPXCV.cjs');
|
|
@@ -45,13 +45,12 @@ function resolveFarmInfraAnalytics(env = processEnv()) {
|
|
|
45
45
|
if (!key || env[FARM_PRERENDER_ENV] === "1") return { off: null };
|
|
46
46
|
const ingestionKey = INGESTION_KEY.test(key);
|
|
47
47
|
const projectId = _optionalChain([env, 'access', _6 => _6.FARMJS_PROJECT_ID, 'optionalAccess', _7 => _7.trim, 'call', _8 => _8()]) || void 0;
|
|
48
|
-
if (!ingestionKey && !projectId) return { off: null };
|
|
49
48
|
if (!ingestionKey && !API_KEY.test(key)) {
|
|
50
49
|
return {
|
|
51
50
|
off: "FARMJS_API_KEY isn't a Farm Infra API key (farmjs_\u2026) or write-only key (fti_\u2026)"
|
|
52
51
|
};
|
|
53
52
|
}
|
|
54
|
-
if (!ingestionKey && !PROJECT.test(projectId)) {
|
|
53
|
+
if (!ingestionKey && projectId && !PROJECT.test(projectId)) {
|
|
55
54
|
return { off: "FARMJS_PROJECT_ID isn't a Farm Infra project ID (proj_\u2026)" };
|
|
56
55
|
}
|
|
57
56
|
if (env.FARMJS_ENVIRONMENT && !ENVIRONMENTS.includes(env.FARMJS_ENVIRONMENT)) {
|
|
@@ -71,7 +70,7 @@ function resolveFarmInfraAnalytics(env = processEnv()) {
|
|
|
71
70
|
options: {
|
|
72
71
|
endpoint: endpoint.href,
|
|
73
72
|
key,
|
|
74
|
-
...ingestionKey ? {} : { projectId, environment: defaultFarmInfraEnvironment(env) }
|
|
73
|
+
...ingestionKey ? {} : { ...projectId ? { projectId } : {}, environment: defaultFarmInfraEnvironment(env) }
|
|
75
74
|
}
|
|
76
75
|
};
|
|
77
76
|
}
|
|
@@ -95,13 +94,45 @@ function retryAt(value, now) {
|
|
|
95
94
|
const date = Date.parse(value);
|
|
96
95
|
return Number.isFinite(date) ? Math.max(now, Math.min(date, now + 864e5)) : now;
|
|
97
96
|
}
|
|
97
|
+
var REFUSALS = {
|
|
98
|
+
project: "project",
|
|
99
|
+
api_key_permission: "permission",
|
|
100
|
+
api_key_environment: "environment"
|
|
101
|
+
};
|
|
102
|
+
async function refusal(response) {
|
|
103
|
+
const reader = _optionalChain([response, 'access', _12 => _12.body, 'optionalAccess', _13 => _13.getReader, 'call', _14 => _14()]);
|
|
104
|
+
if (!reader) return void 0;
|
|
105
|
+
let text = "";
|
|
106
|
+
const decoder = new TextDecoder();
|
|
107
|
+
const deadline = Date.now() + 500;
|
|
108
|
+
try {
|
|
109
|
+
while (text.length < 1024 && Date.now() < deadline) {
|
|
110
|
+
let timer;
|
|
111
|
+
const chunk = await Promise.race([
|
|
112
|
+
reader.read(),
|
|
113
|
+
new Promise((resolve) => {
|
|
114
|
+
timer = setTimeout(() => resolve({ done: true }), deadline - Date.now());
|
|
115
|
+
})
|
|
116
|
+
]).finally(() => clearTimeout(timer));
|
|
117
|
+
if (chunk.done) break;
|
|
118
|
+
text += decoder.decode(chunk.value, { stream: true });
|
|
119
|
+
}
|
|
120
|
+
const code = JSON.parse(text).error;
|
|
121
|
+
return typeof code === "string" && Object.prototype.hasOwnProperty.call(REFUSALS, code) ? REFUSALS[code] : void 0;
|
|
122
|
+
} catch (e2) {
|
|
123
|
+
return void 0;
|
|
124
|
+
} finally {
|
|
125
|
+
void reader.cancel().catch(() => {
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
98
129
|
function createFarmInfraAnalyticsExporter(options, send = (input, init) => fetch(input, init)) {
|
|
99
130
|
const requestHeaders = {
|
|
100
131
|
"content-type": "application/json",
|
|
101
132
|
authorization: `Bearer ${options.key}`
|
|
102
133
|
};
|
|
103
134
|
if (!INGESTION_KEY.test(options.key)) {
|
|
104
|
-
requestHeaders["x-farm-project"] = options.projectId;
|
|
135
|
+
if (options.projectId) requestHeaders["x-farm-project"] = options.projectId;
|
|
105
136
|
requestHeaders["x-farm-environment"] = _nullishCoalesce(options.environment, () => ( defaultFarmInfraEnvironment()));
|
|
106
137
|
}
|
|
107
138
|
const queue = [];
|
|
@@ -113,9 +144,9 @@ function createFarmInfraAnalyticsExporter(options, send = (input, init) => fetch
|
|
|
113
144
|
let inFlight = /* @__PURE__ */ new Set();
|
|
114
145
|
const diagnostic = (event) => {
|
|
115
146
|
try {
|
|
116
|
-
void Promise.resolve(_optionalChain([options, 'access',
|
|
147
|
+
void Promise.resolve(_optionalChain([options, 'access', _15 => _15.onDiagnostic, 'optionalCall', _16 => _16(event)])).catch(() => {
|
|
117
148
|
});
|
|
118
|
-
} catch (
|
|
149
|
+
} catch (e3) {
|
|
119
150
|
}
|
|
120
151
|
};
|
|
121
152
|
const expired = (item, now) => !inFlight.has(item) && (now - item.enqueuedAt >= MAX_AGE || item.attempts >= MAX_ATTEMPTS);
|
|
@@ -161,7 +192,7 @@ function createFarmInfraAnalyticsExporter(options, send = (input, init) => fetch
|
|
|
161
192
|
for (const item of batch) item.attempts++;
|
|
162
193
|
inFlight = new Set(batch);
|
|
163
194
|
active = new AbortController();
|
|
164
|
-
const timeout = setTimeout(() => _optionalChain([active, 'optionalAccess',
|
|
195
|
+
const timeout = setTimeout(() => _optionalChain([active, 'optionalAccess', _17 => _17.abort, 'call', _18 => _18()]), Math.min(TIMEOUT, deadline - Date.now()));
|
|
165
196
|
let status;
|
|
166
197
|
try {
|
|
167
198
|
const response = await send(options.endpoint, {
|
|
@@ -172,7 +203,8 @@ function createFarmInfraAnalyticsExporter(options, send = (input, init) => fetch
|
|
|
172
203
|
body
|
|
173
204
|
});
|
|
174
205
|
status = response.status;
|
|
175
|
-
|
|
206
|
+
const reason = status === 400 || status === 403 ? await refusal(response) : void 0;
|
|
207
|
+
void _optionalChain([response, 'access', _19 => _19.body, 'optionalAccess', _20 => _20.cancel, 'call', _21 => _21(), 'access', _22 => _22.catch, 'call', _23 => _23(() => {
|
|
176
208
|
})]);
|
|
177
209
|
if (response.ok) {
|
|
178
210
|
remove(batch);
|
|
@@ -181,7 +213,7 @@ function createFarmInfraAnalyticsExporter(options, send = (input, init) => fetch
|
|
|
181
213
|
if ([400, 401, 403, 404, 413, 415].includes(status) || status >= 300 && status < 400) {
|
|
182
214
|
stopped = true;
|
|
183
215
|
queue.length = 0;
|
|
184
|
-
diagnostic({ code: "disabled", status });
|
|
216
|
+
diagnostic({ code: "disabled", status, ...reason ? { reason } : {} });
|
|
185
217
|
break;
|
|
186
218
|
}
|
|
187
219
|
if (status !== 408 && status !== 429 && status < 500) {
|
|
@@ -190,7 +222,7 @@ function createFarmInfraAnalyticsExporter(options, send = (input, init) => fetch
|
|
|
190
222
|
continue;
|
|
191
223
|
}
|
|
192
224
|
notBefore = Math.max(notBefore, retryAt(response.headers.get("retry-after"), Date.now()));
|
|
193
|
-
} catch (
|
|
225
|
+
} catch (e4) {
|
|
194
226
|
} finally {
|
|
195
227
|
clearTimeout(timeout);
|
|
196
228
|
active = void 0;
|
|
@@ -220,7 +252,7 @@ function createFarmInfraAnalyticsExporter(options, send = (input, init) => fetch
|
|
|
220
252
|
closing = true;
|
|
221
253
|
await flush();
|
|
222
254
|
stopped = true;
|
|
223
|
-
_optionalChain([active, 'optionalAccess',
|
|
255
|
+
_optionalChain([active, 'optionalAccess', _24 => _24.abort, 'call', _25 => _25()]);
|
|
224
256
|
if (queue.length) diagnostic({ code: "dropped", count: queue.length });
|
|
225
257
|
queue.length = 0;
|
|
226
258
|
}
|
|
@@ -241,7 +273,7 @@ function requestEvent(metadata, method, status, durationMs) {
|
|
|
241
273
|
id: uuid(),
|
|
242
274
|
requestId: metadata.id,
|
|
243
275
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
244
|
-
route: routeTemplate(
|
|
276
|
+
route: routeTemplate(_chunkGOOK2J2Wcjs.getFarmRouteLabel.call(void 0, metadata.route)),
|
|
245
277
|
agent: metadata.agent,
|
|
246
278
|
kind: "request",
|
|
247
279
|
method,
|
|
@@ -254,7 +286,7 @@ function toolEvent(metadata, event) {
|
|
|
254
286
|
id: uuid(),
|
|
255
287
|
requestId: metadata.id,
|
|
256
288
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
257
|
-
route: routeTemplate(
|
|
289
|
+
route: routeTemplate(_chunkGOOK2J2Wcjs.getFarmRouteLabel.call(void 0, metadata.route)),
|
|
258
290
|
agent: metadata.agent,
|
|
259
291
|
kind: "mcp.tool",
|
|
260
292
|
tool: event.tool,
|
|
@@ -270,7 +302,7 @@ function farmInfraAnalyticsPlugin(options, send) {
|
|
|
270
302
|
setup(context) {
|
|
271
303
|
const state = { exporter: createFarmInfraAnalyticsExporter(options, send) };
|
|
272
304
|
context.lifecycle.onShutdown(async () => {
|
|
273
|
-
_optionalChain([state, 'access',
|
|
305
|
+
_optionalChain([state, 'access', _26 => _26.unsubscribe, 'optionalCall', _27 => _27()]);
|
|
274
306
|
await state.exporter.close();
|
|
275
307
|
});
|
|
276
308
|
return state;
|
|
@@ -366,14 +398,25 @@ function linkedOptions(env, warn) {
|
|
|
366
398
|
return {
|
|
367
399
|
...resolved.options,
|
|
368
400
|
onDiagnostic(event) {
|
|
369
|
-
if (event.code
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
);
|
|
373
|
-
}
|
|
401
|
+
if (event.code !== "disabled") return;
|
|
402
|
+
if (event.reason === "environment") return;
|
|
403
|
+
warn(`[Farm] Farm Infra analytics stopped: ${stopReason(event)}`);
|
|
374
404
|
}
|
|
375
405
|
};
|
|
376
406
|
}
|
|
407
|
+
var KEYS_PAGE = "the API keys page (https://app.farmjs.dev/dashboard/settings)";
|
|
408
|
+
function stopReason(event) {
|
|
409
|
+
if (event.reason === "project") {
|
|
410
|
+
return "FARMJS_API_KEY reaches more than one project. Set FARMJS_PROJECT_ID or use a key scoped to one project, then restart the server.";
|
|
411
|
+
}
|
|
412
|
+
if (event.reason === "permission") {
|
|
413
|
+
return `this key can't send analytics. Create a Site analytics key on ${KEYS_PAGE}, set it as FARMJS_API_KEY, then restart the server.`;
|
|
414
|
+
}
|
|
415
|
+
if (event.status === 401) {
|
|
416
|
+
return `Farm Infra answered 401: FARMJS_API_KEY was revoked or has expired. Create a new Site analytics key on ${KEYS_PAGE}, then restart the server.`;
|
|
417
|
+
}
|
|
418
|
+
return `Farm Infra answered ${event.status}. Check FARMJS_API_KEY and FARMJS_PROJECT_ID, then restart the server.`;
|
|
419
|
+
}
|
|
377
420
|
function createFarmInfraAnalyticsPlugin(env = processEnv(), warn = console.warn) {
|
|
378
421
|
const options = linkedOptions(env, warn);
|
|
379
422
|
return options ? farmInfraAnalyticsPlugin(options) : null;
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
var _chunkRI3EVPKDcjs = require('./chunk-RI3EVPKD.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
var _chunkQXJADAQBcjs = require('./chunk-QXJADAQB.cjs');
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
|
|
@@ -244,7 +245,7 @@ var SPARouter = class {
|
|
|
244
245
|
);
|
|
245
246
|
if (scroll) {
|
|
246
247
|
if (url.hash) {
|
|
247
|
-
_optionalChain([
|
|
248
|
+
_optionalChain([_chunkQXJADAQBcjs.getHashTargetElement.call(void 0, url.hash), 'optionalAccess', _10 => _10.scrollIntoView, 'call', _11 => _11()]);
|
|
248
249
|
} else {
|
|
249
250
|
window.scrollTo(0, 0);
|
|
250
251
|
}
|
|
@@ -252,11 +253,12 @@ var SPARouter = class {
|
|
|
252
253
|
return;
|
|
253
254
|
}
|
|
254
255
|
const from = window.location.pathname + window.location.search;
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
})) {
|
|
256
|
+
const action = replace ? "replace" : "push";
|
|
257
|
+
if (await this.shouldBlockNavigation({ from, to: fullPath, action })) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
if (!(refresh && fullPath === from) && await _chunkQXJADAQBcjs.runFarmNavigationDelegates.call(void 0, { url: url.href, from, to: fullPath, action })) {
|
|
261
|
+
this.cancelActiveNavigation();
|
|
260
262
|
return;
|
|
261
263
|
}
|
|
262
264
|
if (this.options.scrollRestoration) {
|
|
@@ -528,7 +530,7 @@ var SPARouter = class {
|
|
|
528
530
|
}
|
|
529
531
|
if (options.scroll) {
|
|
530
532
|
if (options.url.hash) {
|
|
531
|
-
const element =
|
|
533
|
+
const element = _chunkQXJADAQBcjs.getHashTargetElement.call(void 0, options.url.hash);
|
|
532
534
|
if (element) {
|
|
533
535
|
element.scrollIntoView();
|
|
534
536
|
}
|
|
@@ -762,7 +764,7 @@ var SPARouter = class {
|
|
|
762
764
|
}
|
|
763
765
|
const destinationPath = window.location.pathname + window.location.search;
|
|
764
766
|
if (window.location.hash) {
|
|
765
|
-
const target =
|
|
767
|
+
const target = _chunkQXJADAQBcjs.getHashTargetElement.call(void 0, window.location.hash);
|
|
766
768
|
if (target) {
|
|
767
769
|
target.scrollIntoView();
|
|
768
770
|
} else if (this.options.scrollRestoration) {
|