@farm.js/core 0.1.49 → 0.1.51-beta.0
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 +163 -3
- package/dist/{agent-mcp-Bb8hnnqd.d.ts → agent-mcp-BBMfNpsC.d.ts} +1 -1
- package/dist/{agent-mcp-ir3v4fHf.d.mts → agent-mcp-D44ip11f.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-HOUCQR3K.mjs +1066 -0
- package/dist/analyzer-VKUDHNDF.cjs +1066 -0
- package/dist/api/client.d.mts +0 -1
- package/dist/api/client.d.ts +0 -1
- package/dist/api/route-manager.cjs +8 -8
- package/dist/api/route-manager.d.mts +10 -10
- package/dist/api/route-manager.d.ts +10 -10
- package/dist/api/route-manager.mjs +7 -7
- 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 +9 -9
- package/dist/api.d.mts +10 -10
- package/dist/api.d.ts +10 -10
- package/dist/api.mjs +8 -8
- package/dist/{app-y649szYm.d.ts → app-CourU3rQ.d.ts} +7 -7
- package/dist/{app-DLzz02du.d.mts → app-aeD4s_mg.d.mts} +7 -7
- package/dist/{app-manifest-Crn8Qd3U.d.mts → app-manifest-BC6mFn5A.d.mts} +1 -1
- package/dist/{app-manifest-DNeTKMRL.d.ts → app-manifest-LzjoNPeq.d.ts} +1 -1
- package/dist/app-markdown.d.mts +7 -7
- package/dist/app-markdown.d.ts +7 -7
- package/dist/base-path-BOUV5ozD.d.mts +10 -0
- package/dist/base-path-BOUV5ozD.d.ts +10 -0
- package/dist/cache.d.mts +4 -3
- package/dist/cache.d.ts +4 -3
- package/dist/{chunk-YQGZLCT4.cjs → chunk-2IAPKPEB.cjs} +6 -6
- package/dist/chunk-2KVDHNQS.mjs +224 -0
- package/dist/{chunk-QFQDRJKJ.mjs → chunk-3HA7PP72.mjs} +2 -2
- package/dist/{chunk-6LH33DLL.cjs → chunk-3OWVWZ6R.cjs} +28 -2
- package/dist/{chunk-GXSMF7UR.mjs → chunk-4GJJ65RB.mjs} +10 -2
- package/dist/{chunk-GERUXONA.cjs → chunk-5A77OEIG.cjs} +4 -1
- package/dist/{chunk-4HBKBHVP.mjs → chunk-5ENW27SL.mjs} +1 -1
- package/dist/{chunk-MTB57GOK.mjs → chunk-724WT3NI.mjs} +4 -2
- package/dist/{chunk-XLYXG73A.mjs → chunk-75WWOZ5C.mjs} +22 -0
- package/dist/{chunk-VCKGOXFI.cjs → chunk-76GHW3WI.cjs} +7 -1
- package/dist/{chunk-ZIBIE7AH.mjs → chunk-7UPCJDB5.mjs} +7 -1
- package/dist/{chunk-4IICUBQX.cjs → chunk-A5BJKSZE.cjs} +2 -2
- package/dist/{chunk-UYQOIPXE.mjs → chunk-AER5I65K.mjs} +1 -1
- package/dist/{chunk-WB6XES4V.mjs → chunk-ALEUMLJN.mjs} +34 -5
- package/dist/{chunk-Z4LTSH7D.mjs → chunk-AMRK3P6W.mjs} +175 -71
- package/dist/{chunk-TTYXOAB7.mjs → chunk-ANHZ6SUL.mjs} +1 -1
- package/dist/{chunk-ZBS3GOQZ.cjs → chunk-AQLHD6HZ.cjs} +35 -61
- package/dist/{chunk-L6QDME5Z.cjs → chunk-B3GZAQSC.cjs} +3 -3
- package/dist/chunk-CKPTIEDX.cjs +12 -0
- package/dist/{chunk-JPAVNDZH.cjs → chunk-CY7H5KS4.cjs} +25 -25
- package/dist/{chunk-4S7M63WX.cjs → chunk-DGOLAZLV.cjs} +22 -1
- package/dist/{chunk-4HM5B5RR.cjs → chunk-DWW3AMJX.cjs} +343 -308
- package/dist/{chunk-EQMTJBB7.cjs → chunk-DZZHTMWM.cjs} +35 -6
- package/dist/chunk-E36C43IX.cjs +224 -0
- package/dist/{chunk-J2ZEVDEK.cjs → chunk-EHB77D5U.cjs} +3 -3
- package/dist/{chunk-WQGRD5BJ.cjs → chunk-EX6ZSN5P.cjs} +1 -16
- package/dist/{chunk-C5S457CK.cjs → chunk-F42U3R4F.cjs} +214 -193
- package/dist/{chunk-FGJQS4EC.cjs → chunk-FK25QSVC.cjs} +4 -3
- package/dist/{chunk-JOHXK4BB.mjs → chunk-FSQMN2MQ.mjs} +2 -1
- package/dist/{chunk-2H3FJYY6.mjs → chunk-FSXSQQTV.mjs} +3 -2
- package/dist/chunk-G2KTRMWA.mjs +40 -0
- package/dist/{chunk-C6U66WWF.mjs → chunk-GFT5AHAT.mjs} +13 -0
- package/dist/chunk-GNZIAJGB.mjs +358 -0
- package/dist/{chunk-TXK4D46O.mjs → chunk-H3ASZDT7.mjs} +21 -1
- package/dist/{chunk-AXRNEVCS.cjs → chunk-HASX6DC7.cjs} +8 -8
- package/dist/{chunk-NW2BKDVT.mjs → chunk-HHFMECFO.mjs} +1 -1
- package/dist/{chunk-HELQXYVI.cjs → chunk-I2DQGS56.cjs} +11 -9
- package/dist/{chunk-IVHPRF4W.mjs → chunk-I2ZA5SXS.mjs} +81 -46
- package/dist/{chunk-EVCQX243.cjs → chunk-IOUOGRDX.cjs} +13 -5
- package/dist/{chunk-CBJKDB6F.mjs → chunk-IRSS4HS4.mjs} +1 -1
- package/dist/{chunk-NPPT4RWF.cjs → chunk-J22JD5YJ.cjs} +7 -7
- package/dist/{chunk-VJXLUTBM.mjs → chunk-JF5CNHHF.mjs} +9 -9
- package/dist/{chunk-VR4SEDEM.mjs → chunk-JWI5PUO2.mjs} +6 -2
- package/dist/{chunk-6XFGJBYX.cjs → chunk-JYNNIGQO.cjs} +16 -7
- package/dist/{chunk-EXHEPWFJ.cjs → chunk-KHXAJ2KA.cjs} +16 -16
- package/dist/{chunk-ALD2WMLA.mjs → chunk-KY32FWK7.mjs} +4 -4
- package/dist/{chunk-BR5FSKZ5.cjs → chunk-LEIXUFJN.cjs} +6 -2
- package/dist/{chunk-5566GNEG.cjs → chunk-LIFUPCXW.cjs} +13 -0
- package/dist/{chunk-I2SWKWO7.mjs → chunk-LJDIFIJ2.mjs} +1 -1
- package/dist/chunk-LMFJCXDD.mjs +55 -0
- package/dist/{chunk-IXSMFKZ2.cjs → chunk-LNM57D3H.cjs} +4 -4
- package/dist/{chunk-ATHPRVP2.mjs → chunk-LZ4SB57H.mjs} +3 -3
- package/dist/{chunk-73XBJRZW.cjs → chunk-MMEEXMUQ.cjs} +2 -2
- package/dist/chunk-N4AQNEXR.cjs +17 -0
- package/dist/{chunk-JZMZKABS.cjs → chunk-NWUHS6GV.cjs} +3 -2
- package/dist/{chunk-KZT2VHRQ.cjs → chunk-O3MMJPC2.cjs} +19 -19
- package/dist/{chunk-JWP56HCP.mjs → chunk-OD6WM3I7.mjs} +2 -2
- package/dist/{chunk-R2SEZEBC.cjs → chunk-OYNNA4DD.cjs} +4 -4
- package/dist/{chunk-GBPDSUFE.mjs → chunk-OZK2DS44.mjs} +1 -1
- package/dist/{chunk-A7DK663W.cjs → chunk-PDJSL7PL.cjs} +50 -39
- package/dist/{chunk-XLLVWLWO.mjs → chunk-PIHKO25G.mjs} +1 -1
- package/dist/chunk-PIUTGRDI.cjs +358 -0
- package/dist/{chunk-XO6WL6NL.mjs → chunk-PPDHCRTC.mjs} +1 -1
- package/dist/{chunk-LZBM35DH.mjs → chunk-QI5AQMEE.mjs} +20 -9
- package/dist/{chunk-FR4HJDI6.cjs → chunk-QK3HBOTG.cjs} +27 -30
- package/dist/{chunk-Q3UU2KXC.mjs → chunk-QMDU6QHN.mjs} +4 -1
- package/dist/chunk-QXJADAQB.cjs +40 -0
- package/dist/{chunk-DGVVVYKD.mjs → chunk-R5P4KFPM.mjs} +2 -2
- package/dist/{chunk-3HBFI373.cjs → chunk-S5AQ7CAC.cjs} +14 -14
- package/dist/{chunk-Z3BXMMFF.mjs → chunk-S5ZA2T2W.mjs} +63 -42
- package/dist/{chunk-PXEXOQ5R.mjs → chunk-SHS6KXOZ.mjs} +1 -1
- package/dist/{chunk-ETF5C6HR.cjs → chunk-SJ23LJ3N.cjs} +3 -3
- package/dist/{chunk-LL7TDMOM.mjs → chunk-SMUW7UST.mjs} +33 -59
- package/dist/{chunk-VCFBQFOV.mjs → chunk-SN5VSO3Q.mjs} +9 -7
- package/dist/{chunk-AIHD6VME.cjs → chunk-SO3T6T4I.cjs} +482 -378
- package/dist/{chunk-JHXJBNLY.cjs → chunk-SUCDVKUB.cjs} +21 -1
- package/dist/{chunk-DM3TFCC2.cjs → chunk-SUV6YO4Q.cjs} +5 -5
- package/dist/{chunk-NG44F7AH.mjs → chunk-T4EW7AAD.mjs} +2 -2
- 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-USL2ANCB.cjs} +10 -10
- package/dist/{chunk-HAH4FBTA.mjs → chunk-VAHBCI6X.mjs} +1 -1
- package/dist/{chunk-QNQEK3OF.cjs → chunk-VIFPE5RG.cjs} +14 -14
- package/dist/{chunk-HTLCLOXQ.cjs → chunk-VO6NLTV4.cjs} +3 -3
- package/dist/{chunk-XN2MB4QZ.cjs → chunk-VQJYGZNX.cjs} +4 -4
- package/dist/{chunk-N25RPPO5.cjs → chunk-WAPQWAE6.cjs} +10 -10
- package/dist/{chunk-5PKDHKQP.cjs → chunk-WFVSAT7Y.cjs} +6 -4
- package/dist/{chunk-EA5PMJDU.mjs → chunk-WSY2JD7O.mjs} +7 -7
- package/dist/{chunk-HNAUK3SC.mjs → chunk-WVX3BUNJ.mjs} +40 -199
- package/dist/chunk-X3EFRVXY.mjs +12 -0
- package/dist/{chunk-UCQ52TJY.mjs → chunk-X3JNB2TB.mjs} +1 -1
- package/dist/{chunk-J5VCA45K.cjs → chunk-X5BCMLGP.cjs} +1 -1
- package/dist/{chunk-SSNN55Q6.cjs → chunk-XB24LZWI.cjs} +10 -10
- package/dist/{chunk-XXB37YET.cjs → chunk-XLRLSTJ6.cjs} +7 -7
- package/dist/{chunk-BNMHXVLL.mjs → chunk-XMHERKSE.mjs} +0 -15
- package/dist/chunk-XPMC4E2G.cjs +55 -0
- package/dist/{chunk-J27BZO67.mjs → chunk-XWC5NAHV.mjs} +23 -26
- package/dist/{chunk-DRFADSKY.mjs → chunk-XXXRRVY6.mjs} +4 -4
- package/dist/{chunk-C7425KDG.cjs → chunk-XYL4HSVC.cjs} +2 -2
- package/dist/{chunk-2SVJGOAX.mjs → chunk-Y3N5BFRJ.mjs} +3 -3
- package/dist/{chunk-ZSIGEHSE.cjs → chunk-Y7TLL65B.cjs} +21 -180
- package/dist/{chunk-PEHL3IZL.cjs → chunk-YB44NKC2.cjs} +2 -2
- package/dist/chunk-YKHRCY4T.cjs +73 -0
- package/dist/{chunk-RYDDUCNJ.mjs → chunk-YLNBWUVS.mjs} +1 -1
- package/dist/chunk-Z5A6CNV2.mjs +60 -0
- package/dist/chunk-Z64V4WZI.mjs +17 -0
- package/dist/{chunk-ACI52TCN.mjs → chunk-ZF3GX4O7.mjs} +1 -1
- package/dist/client/lifecycle.d.mts +1 -1
- package/dist/client/lifecycle.d.ts +1 -1
- package/dist/{client-plugins-DFDQUI9Q.d.ts → client-plugins-CFBEfVPO.d.ts} +34 -10
- package/dist/{client-plugins-BNBeyLMi.d.mts → client-plugins-cqy_dQd0.d.mts} +34 -10
- package/dist/client-plugins.d.mts +6 -6
- package/dist/client-plugins.d.ts +6 -6
- package/dist/client.cjs +13 -9
- package/dist/client.d.mts +11 -10
- package/dist/client.d.ts +11 -10
- package/dist/client.mjs +15 -11
- 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/cron.cjs +4 -4
- package/dist/cron.mjs +3 -3
- package/dist/desktop.d.mts +7 -7
- package/dist/desktop.d.ts +7 -7
- package/dist/{dev-guard-YO6KPIOQ.mjs → dev-guard-4PFQNXQX.mjs} +2 -1
- package/dist/{dev-guard-PLHL6OTJ.cjs → dev-guard-YLO5DE3H.cjs} +4 -3
- package/dist/{devtools-BLKHPY3C.mjs → devtools-4MLL3RAL.mjs} +10 -10
- package/dist/{devtools-A37WWJZL.cjs → devtools-4ZLMD454.cjs} +12 -12
- package/dist/docs.cjs +14 -14
- package/dist/docs.d.mts +7 -7
- package/dist/docs.d.ts +7 -7
- package/dist/docs.mjs +13 -13
- 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-DBdiTkNc.d.ts → index-BYkNbeQV.d.mts} +2 -2
- package/dist/{index-CeJ9_s9p.d.mts → index-BxjN_UDZ.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.cjs +88 -79
- package/dist/index.d.mts +29 -45
- package/dist/index.d.ts +29 -45
- package/dist/index.mjs +92 -83
- 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 +47 -43
- package/dist/internal/build-runtime.d.mts +9 -9
- package/dist/internal/build-runtime.d.ts +9 -9
- package/dist/internal/build-runtime.mjs +46 -42
- package/dist/internal/cli-runtime.cjs +24 -23
- package/dist/internal/cli-runtime.mjs +24 -23
- package/dist/internal/client-error-overlay.cjs +4 -4
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/client-runtime.cjs +22 -3
- package/dist/internal/client-runtime.d.mts +46 -4
- package/dist/internal/client-runtime.d.ts +46 -4
- package/dist/internal/client-runtime.mjs +22 -3
- package/dist/internal/compression-runtime.d.mts +6 -6
- package/dist/internal/compression-runtime.d.ts +6 -6
- package/dist/internal/config-runtime.cjs +20 -13
- package/dist/internal/config-runtime.d.mts +259 -18
- package/dist/internal/config-runtime.d.ts +259 -18
- package/dist/internal/config-runtime.mjs +18 -11
- package/dist/internal/form-actions.cjs +5 -4
- package/dist/internal/form-actions.mjs +4 -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 +56 -0
- package/dist/internal/islands-runtime.mjs +57 -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 +18 -15
- package/dist/internal/production-runtime.d.mts +33 -20
- package/dist/internal/production-runtime.d.ts +33 -20
- package/dist/internal/production-runtime.mjs +20 -17
- package/dist/internal/server-fn-transform.cjs +13 -0
- package/dist/internal/server-fn-transform.d.mts +24 -0
- package/dist/internal/server-fn-transform.d.ts +24 -0
- package/dist/internal/server-fn-transform.mjs +13 -0
- 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 +11 -11
- package/dist/middleware.d.mts +8 -8
- package/dist/middleware.d.ts +8 -8
- package/dist/middleware.mjs +10 -10
- package/dist/mobile.cjs +9 -0
- package/dist/mobile.d.mts +94 -0
- package/dist/mobile.d.ts +94 -0
- package/dist/mobile.mjs +9 -0
- package/dist/navigation-delegate-BU4xqdnw.d.ts +29 -0
- package/dist/navigation-delegate-DLhbfEN4.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-BIXIKJZS.cjs → nitro-CK7M4RMY.cjs} +12 -12
- package/dist/{nitro-UT2J5A5D.mjs → nitro-R444AF3O.mjs} +8 -8
- 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 +40 -36
- package/dist/plugin.d.mts +13 -8
- package/dist/plugin.d.ts +13 -8
- package/dist/plugin.mjs +39 -35
- package/dist/{production-runtime-B3qFFtKF.d.ts → production-runtime-C78A8YgK.d.ts} +3 -3
- package/dist/{production-runtime-DcD-GRAv.d.mts → production-runtime-DLA4J5WG.d.mts} +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-fD9f4XqU.d.ts → programmatic-routes-client-CBqkNhBy.d.ts} +2 -2
- package/dist/{programmatic-routes-client-DzbYGiZQ.d.mts → programmatic-routes-client-NpqGBn-i.d.mts} +2 -2
- package/dist/query/client.cjs +6 -6
- package/dist/query/client.mjs +2 -2
- package/dist/{render-plan-DqJ51ufr.d.mts → render-plan-C9sWvDTv.d.mts} +1 -1
- package/dist/{render-plan-B6cfssrr.d.ts → render-plan-CrqcBbnV.d.ts} +1 -1
- package/dist/renderer-client.cjs +17 -12
- package/dist/renderer-client.d.mts +9 -8
- package/dist/renderer-client.d.ts +9 -8
- package/dist/renderer-client.mjs +10 -5
- package/dist/{request-jhvUMXRx.d.ts → request-BizeuqD7.d.ts} +1 -1
- package/dist/{request-UuAxHn8h.d.mts → request-WwB1-Uim.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-Sn50cYZf.d.ts → route-rendering-BGhJN64l.d.ts} +1 -1
- package/dist/{route-rendering-Cou00t1X.d.mts → route-rendering-S6NFjnx4.d.mts} +1 -1
- package/dist/{router-0X9DCTcm.d.mts → router-BIheIy9G.d.mts} +1 -1
- package/dist/{router-xwLvi48p.d.ts → router-BUD_j2EL.d.ts} +1 -1
- package/dist/routes-8PT9cl60.d.ts +121 -0
- package/dist/routes-kEUsXHx3.d.mts +121 -0
- package/dist/routes.cjs +3 -2
- package/dist/routes.d.mts +7 -7
- package/dist/routes.d.ts +7 -7
- package/dist/routes.mjs +2 -1
- package/dist/{rsc-pipeline-VKHMABDJ.cjs → rsc-pipeline-JRGUZBYM.cjs} +18 -16
- package/dist/{rsc-pipeline-F6ZPH5MU.mjs → rsc-pipeline-OLAVIKI3.mjs} +17 -15
- package/dist/{runtime-B9HmxiZc.d.ts → runtime-C4CmlOOh.d.ts} +2 -2
- package/dist/{runtime-tkSXZiqO.d.ts → runtime-CWP-21hP.d.ts} +1 -1
- package/dist/{runtime-CMrsyChI.d.mts → runtime-CgJwe6H_.d.mts} +1 -1
- package/dist/{runtime-CCxTmGuf.d.mts → runtime-CihDZ2Rn.d.mts} +2 -2
- package/dist/runtime-G23RSLEK.cjs +1005 -0
- package/dist/runtime-OGCHDACZ.mjs +1005 -0
- package/dist/{schema-dev-notice-O3I5HLXK.mjs → schema-dev-notice-F6QYSOAI.mjs} +4 -4
- package/dist/{schema-dev-notice-Z73J3NJ6.cjs → schema-dev-notice-UU7DMZEU.cjs} +7 -7
- package/dist/{search-client-BTXL5XWD.mjs → search-client-OXH6GBNO.mjs} +5 -3
- package/dist/search-client-ZZLKVO5R.cjs +15 -0
- 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.cjs +4 -3
- package/dist/server-query-client.d.mts +0 -1
- package/dist/server-query-client.d.ts +0 -1
- package/dist/server-query-client.mjs +3 -2
- 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 +104 -79
- package/dist/server.d.mts +22 -17
- package/dist/server.d.ts +22 -17
- package/dist/server.mjs +73 -48
- package/dist/{spa-router-B48EjsS1.d.mts → spa-router-CVOL0Vrq.d.mts} +4 -4
- package/dist/{spa-router-B06APnGK.d.ts → spa-router-Kytv4jSB.d.ts} +4 -4
- package/dist/testing.cjs +16 -15
- package/dist/testing.d.mts +6 -6
- package/dist/testing.d.ts +6 -6
- package/dist/testing.mjs +12 -11
- 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-C5fyK2tE.d.ts → utils-DbyXlzaj.d.ts} +1 -1
- package/dist/{utils-hyAwmcN6.d.mts → utils-Dsa1HZ7X.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +40 -36
- package/dist/vite.d.mts +9 -9
- package/dist/vite.d.ts +9 -9
- package/dist/vite.mjs +39 -35
- 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 +5 -5
- package/dist/workflows.d.mts +1 -1
- package/dist/workflows.d.ts +1 -1
- package/dist/workflows.mjs +4 -4
- package/package.json +16 -3
- package/dist/base-path-leyrqXbX.d.mts +0 -19
- package/dist/base-path-leyrqXbX.d.ts +0 -19
- 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-MJ6IC4K2.mjs +0 -34
- package/dist/chunk-V7KTQR4C.cjs +0 -15
- package/dist/search-client-QCYAL6AY.cjs +0 -13
- package/dist/{chunk-5OJVKXFV.cjs → chunk-N7JQXQAV.cjs} +2 -2
- package/dist/{chunk-72KABRWN.mjs → chunk-WSDKXV4E.mjs} +4 -4
package/dist/app-markdown.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { g as FarmMdxComponents, h as FarmMdxResolvedConfig, i as RouteModule } from './client-plugins-
|
|
2
|
-
export { j as FARM_MARKDOWN_CONTENT_TYPE, m as FarmMdxComponent, n as FarmMdxUserConfig, k as createFarmMarkdownErrorBody, l as farmRequestWantsMarkdown, r as resolveFarmMdxComponentsModulePath, o as resolveMdxConfig } from './client-plugins-
|
|
1
|
+
import { g as FarmMdxComponents, h as FarmMdxResolvedConfig, i as RouteModule } from './client-plugins-CFBEfVPO.js';
|
|
2
|
+
export { j as FARM_MARKDOWN_CONTENT_TYPE, m as FarmMdxComponent, n as FarmMdxUserConfig, k as createFarmMarkdownErrorBody, l as farmRequestWantsMarkdown, r as resolveFarmMdxComponentsModulePath, o as resolveMdxConfig } from './client-plugins-CFBEfVPO.js';
|
|
3
3
|
export { FARM_MARKDOWN_ANONYMOUS_CLIENT_ADDRESS, FarmMarkdownPageModuleInput, FarmMarkdownPageSource, createFarmMarkdownRouteModule, createFarmMarkdownSourceResponse, createMarkdownMetadata, isFarmMarkdownPageFile, isFarmMarkdownPublicSourceResponse, normalizeFarmMarkdownRoutePath, parseMarkdownFrontmatter, titleFromMarkdown } from './internal/app-markdown-runtime.js';
|
|
4
|
-
import './lifecycle-
|
|
4
|
+
import './lifecycle-C2aLBOwu.js';
|
|
5
5
|
import './route-DFhZj6jN.js';
|
|
6
6
|
import './endpoint-BgHn0lhl.js';
|
|
7
7
|
import './cache.js';
|
|
8
|
-
import './cache-invalidation-BD0z_lfu.js';
|
|
9
8
|
import './renderer.js';
|
|
10
9
|
import './deployment.js';
|
|
11
10
|
import 'http';
|
|
@@ -22,15 +21,16 @@ import '@farming-labs/docs';
|
|
|
22
21
|
import './observability-B2363jB6.js';
|
|
23
22
|
import '@opentelemetry/api';
|
|
24
23
|
import 'vite';
|
|
25
|
-
import './workflows-
|
|
24
|
+
import './workflows-CRMzQZ3k.js';
|
|
26
25
|
import './cron.js';
|
|
27
26
|
import './env.js';
|
|
28
27
|
import './server-action-security.js';
|
|
29
|
-
import './layers-
|
|
28
|
+
import './layers-CcS42OGR.js';
|
|
30
29
|
import 'rolldown/utils';
|
|
31
30
|
import 'rolldown';
|
|
32
31
|
import './image-config-CeDgNyX4.js';
|
|
33
|
-
import './types
|
|
32
|
+
import './types-C41ePjvP.js';
|
|
33
|
+
import './config-CnhyvvmT.js';
|
|
34
34
|
import './types-DQnyD3VD.js';
|
|
35
35
|
import './font.js';
|
|
36
36
|
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @internal Configure the app-wide URL preference for framework link rendering. */
|
|
2
|
+
declare function setFarmTrailingSlashPreference(enabled: boolean | undefined): void;
|
|
3
|
+
declare function resolveFarmTrailingSlashRedirect(url: URL, enabled: boolean): string | null;
|
|
4
|
+
|
|
5
|
+
/** @internal Configure the app-wide base path for framework link rendering. */
|
|
6
|
+
declare function setFarmBasePath(basePath: string | undefined): void;
|
|
7
|
+
declare function applyFarmBasePath(href: string, basePath?: string): string;
|
|
8
|
+
declare function stripFarmBasePath(pathname: string, basePath?: string): string;
|
|
9
|
+
|
|
10
|
+
export { setFarmTrailingSlashPreference as a, stripFarmBasePath as b, applyFarmBasePath as c, resolveFarmTrailingSlashRedirect as r, setFarmBasePath as s };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @internal Configure the app-wide URL preference for framework link rendering. */
|
|
2
|
+
declare function setFarmTrailingSlashPreference(enabled: boolean | undefined): void;
|
|
3
|
+
declare function resolveFarmTrailingSlashRedirect(url: URL, enabled: boolean): string | null;
|
|
4
|
+
|
|
5
|
+
/** @internal Configure the app-wide base path for framework link rendering. */
|
|
6
|
+
declare function setFarmBasePath(basePath: string | undefined): void;
|
|
7
|
+
declare function applyFarmBasePath(href: string, basePath?: string): string;
|
|
8
|
+
declare function stripFarmBasePath(pathname: string, basePath?: string): string;
|
|
9
|
+
|
|
10
|
+
export { setFarmTrailingSlashPreference as a, stripFarmBasePath as b, applyFarmBasePath as c, resolveFarmTrailingSlashRedirect as r, setFarmBasePath as s };
|
package/dist/cache.d.mts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export { a as applyFarmCacheInvalidations } from './cache-invalidation-BD0z_lfu.mjs';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Cache key serialization, kept free of server imports: browser code such as
|
|
5
3
|
* the client data cache builds the same keys, and importing `./cache` would
|
|
@@ -9,6 +7,9 @@ type RouteDataCacheKey = string | readonly unknown[];
|
|
|
9
7
|
declare function createRouteDataCacheKey(key: RouteDataCacheKey): string;
|
|
10
8
|
declare function createFarmCacheKey(parts: readonly unknown[]): string;
|
|
11
9
|
|
|
10
|
+
type FarmCacheInvalidationSource = "local" | "broadcast" | "live";
|
|
11
|
+
declare function applyFarmCacheInvalidations(keys: unknown, source?: FarmCacheInvalidationSource): void;
|
|
12
|
+
|
|
12
13
|
interface FarmCacheInvalidationStreamOptions {
|
|
13
14
|
/** Stop the stream when the owning request is aborted. */
|
|
14
15
|
signal?: AbortSignal;
|
|
@@ -329,4 +330,4 @@ declare function createPathCacheTag(routePath: string): string;
|
|
|
329
330
|
declare function createRouteDataCacheTag(key: RouteDataCacheKey): string;
|
|
330
331
|
declare function normalizeRevalidatePath(routePath: string): string;
|
|
331
332
|
|
|
332
|
-
export { type CacheKeyFactory, type DefinedCacheKey, type FarmCacheAdapter, type FarmCacheEntry, type FarmCacheInvalidationStreamOptions, type FarmCacheInvalidationTarget, type FarmCacheOptions, type FarmCacheSetOptions, type FarmCacheStorage, type FarmCacheUserConfig, type FarmClientCacheUserConfig, FarmDataCache, type GetFarmCacheEntryOptions, type InferCacheKeyData, PPR_SHELL_ADAPTER_TTL_SECONDS, type RevalidateTagProfile, type RouteDataCacheKey, type StorageFarmCacheAdapterOptions, applyFarmCacheInvalidationTargets, configureFarmCache, createFarmCacheInvalidationStream, createFarmCacheKey, createPathCacheTag, createRouteDataCacheKey, createRouteDataCacheTag, defineCacheKey, getFarmDataCache, invalidate, invalidateRouteData, normalizeRevalidatePath, revalidatePath, revalidateTag, storageCacheAdapter, unstable_cache, updateTag };
|
|
333
|
+
export { type CacheKeyFactory, type DefinedCacheKey, type FarmCacheAdapter, type FarmCacheEntry, type FarmCacheInvalidationStreamOptions, type FarmCacheInvalidationTarget, type FarmCacheOptions, type FarmCacheSetOptions, type FarmCacheStorage, type FarmCacheUserConfig, type FarmClientCacheUserConfig, FarmDataCache, type GetFarmCacheEntryOptions, type InferCacheKeyData, PPR_SHELL_ADAPTER_TTL_SECONDS, type RevalidateTagProfile, type RouteDataCacheKey, type StorageFarmCacheAdapterOptions, applyFarmCacheInvalidationTargets, applyFarmCacheInvalidations, configureFarmCache, createFarmCacheInvalidationStream, createFarmCacheKey, createPathCacheTag, createRouteDataCacheKey, createRouteDataCacheTag, defineCacheKey, getFarmDataCache, invalidate, invalidateRouteData, normalizeRevalidatePath, revalidatePath, revalidateTag, storageCacheAdapter, unstable_cache, updateTag };
|
package/dist/cache.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export { a as applyFarmCacheInvalidations } from './cache-invalidation-BD0z_lfu.js';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Cache key serialization, kept free of server imports: browser code such as
|
|
5
3
|
* the client data cache builds the same keys, and importing `./cache` would
|
|
@@ -9,6 +7,9 @@ type RouteDataCacheKey = string | readonly unknown[];
|
|
|
9
7
|
declare function createRouteDataCacheKey(key: RouteDataCacheKey): string;
|
|
10
8
|
declare function createFarmCacheKey(parts: readonly unknown[]): string;
|
|
11
9
|
|
|
10
|
+
type FarmCacheInvalidationSource = "local" | "broadcast" | "live";
|
|
11
|
+
declare function applyFarmCacheInvalidations(keys: unknown, source?: FarmCacheInvalidationSource): void;
|
|
12
|
+
|
|
12
13
|
interface FarmCacheInvalidationStreamOptions {
|
|
13
14
|
/** Stop the stream when the owning request is aborted. */
|
|
14
15
|
signal?: AbortSignal;
|
|
@@ -329,4 +330,4 @@ declare function createPathCacheTag(routePath: string): string;
|
|
|
329
330
|
declare function createRouteDataCacheTag(key: RouteDataCacheKey): string;
|
|
330
331
|
declare function normalizeRevalidatePath(routePath: string): string;
|
|
331
332
|
|
|
332
|
-
export { type CacheKeyFactory, type DefinedCacheKey, type FarmCacheAdapter, type FarmCacheEntry, type FarmCacheInvalidationStreamOptions, type FarmCacheInvalidationTarget, type FarmCacheOptions, type FarmCacheSetOptions, type FarmCacheStorage, type FarmCacheUserConfig, type FarmClientCacheUserConfig, FarmDataCache, type GetFarmCacheEntryOptions, type InferCacheKeyData, PPR_SHELL_ADAPTER_TTL_SECONDS, type RevalidateTagProfile, type RouteDataCacheKey, type StorageFarmCacheAdapterOptions, applyFarmCacheInvalidationTargets, configureFarmCache, createFarmCacheInvalidationStream, createFarmCacheKey, createPathCacheTag, createRouteDataCacheKey, createRouteDataCacheTag, defineCacheKey, getFarmDataCache, invalidate, invalidateRouteData, normalizeRevalidatePath, revalidatePath, revalidateTag, storageCacheAdapter, unstable_cache, updateTag };
|
|
333
|
+
export { type CacheKeyFactory, type DefinedCacheKey, type FarmCacheAdapter, type FarmCacheEntry, type FarmCacheInvalidationStreamOptions, type FarmCacheInvalidationTarget, type FarmCacheOptions, type FarmCacheSetOptions, type FarmCacheStorage, type FarmCacheUserConfig, type FarmClientCacheUserConfig, FarmDataCache, type GetFarmCacheEntryOptions, type InferCacheKeyData, PPR_SHELL_ADAPTER_TTL_SECONDS, type RevalidateTagProfile, type RouteDataCacheKey, type StorageFarmCacheAdapterOptions, applyFarmCacheInvalidationTargets, applyFarmCacheInvalidations, configureFarmCache, createFarmCacheInvalidationStream, createFarmCacheKey, createPathCacheTag, createRouteDataCacheKey, createRouteDataCacheTag, defineCacheKey, getFarmDataCache, invalidate, invalidateRouteData, normalizeRevalidatePath, revalidatePath, revalidateTag, storageCacheAdapter, unstable_cache, updateTag };
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkFK25QSVCcjs = require('./chunk-FK25QSVC.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunkDMAP4RNDcjs = require('./chunk-DMAP4RND.cjs');
|
|
@@ -61,13 +61,13 @@ async function _invokeServerFunction(value, input, request) {
|
|
|
61
61
|
throw new TypeError("Expected a function created with createServerFn or createServerQuery");
|
|
62
62
|
}
|
|
63
63
|
try {
|
|
64
|
-
const data = await
|
|
64
|
+
const data = await _chunkFK25QSVCcjs.runWithServerActionRequest.call(void 0, request, () => runner.run(input));
|
|
65
65
|
return { ok: true, data };
|
|
66
66
|
} catch (error) {
|
|
67
67
|
if (error instanceof ServerFnInputError) {
|
|
68
68
|
return { ok: false, reason: "input", error: error.cause };
|
|
69
69
|
}
|
|
70
|
-
if (
|
|
70
|
+
if (_chunkFK25QSVCcjs.isServerFnFailure.call(void 0, error)) return { ok: false, reason: "failure", failure: error };
|
|
71
71
|
const redirect = _chunk7JUIK547cjs.getFarmRedirectError.call(void 0, error);
|
|
72
72
|
if (redirect) {
|
|
73
73
|
return { ok: false, reason: "redirect", url: redirect.url, status: redirect.status };
|
|
@@ -106,9 +106,9 @@ function createServerFn(options) {
|
|
|
106
106
|
} catch (cause) {
|
|
107
107
|
throw labelInputErrors && isSchemaValidationFailure(cause) ? new ServerFnInputError(cause) : cause;
|
|
108
108
|
}
|
|
109
|
-
const executionContext =
|
|
109
|
+
const executionContext = _chunkFK25QSVCcjs.getServerActionExecutionContext.call(void 0, );
|
|
110
110
|
const request = executionContext ? _chunk3BIASUGRcjs._toAppRequestView.call(void 0, executionContext.request) : _chunk3BIASUGRcjs._resolveCurrentRequestForApp.call(void 0, );
|
|
111
|
-
const signal = _nullishCoalesce(_nullishCoalesce(_optionalChain([executionContext, 'optionalAccess', _ => _.signal]), () => ( _optionalChain([request, 'optionalAccess', _2 => _2.signal]))), () => (
|
|
111
|
+
const signal = _nullishCoalesce(_nullishCoalesce(_optionalChain([executionContext, 'optionalAccess', _ => _.signal]), () => ( _optionalChain([request, 'optionalAccess', _2 => _2.signal]))), () => ( _chunkFK25QSVCcjs.getServerActionSignal.call(void 0, )));
|
|
112
112
|
const handlerContext = {
|
|
113
113
|
input,
|
|
114
114
|
rawInput,
|
|
@@ -231,7 +231,7 @@ function createServerFnErrorHandler(definitions) {
|
|
|
231
231
|
throw new TypeError(`Server function error "${code}" is not declared`);
|
|
232
232
|
}
|
|
233
233
|
const parsed = parseServerFnFailureData(code, definition.data, data);
|
|
234
|
-
throw new (0,
|
|
234
|
+
throw new (0, _chunkFK25QSVCcjs.ServerFnFailure)(code, parsed, {
|
|
235
235
|
status: definition.status,
|
|
236
236
|
message: _nullishCoalesce(definition.message, () => ( "Server function failed"))
|
|
237
237
|
});
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import {
|
|
2
|
+
writeFileIfChanged
|
|
3
|
+
} from "./chunk-Q5B4LNON.mjs";
|
|
4
|
+
import {
|
|
5
|
+
resolveFarmComponentExtensions
|
|
6
|
+
} from "./chunk-ES2LD2YD.mjs";
|
|
7
|
+
import {
|
|
8
|
+
parseRouteSlotFile
|
|
9
|
+
} from "./chunk-IRSS4HS4.mjs";
|
|
10
|
+
import {
|
|
11
|
+
discoverProgrammaticRoutePaths
|
|
12
|
+
} from "./chunk-FSXSQQTV.mjs";
|
|
13
|
+
import {
|
|
14
|
+
parseRoutePath
|
|
15
|
+
} from "./chunk-Y3N5BFRJ.mjs";
|
|
16
|
+
|
|
17
|
+
// src/routing/generate-route-types.ts
|
|
18
|
+
import * as path from "path";
|
|
19
|
+
import * as fs from "fs";
|
|
20
|
+
function routeSegmentsToTsTypeLiteral(segments) {
|
|
21
|
+
if (segments.length === 0) return '"/"';
|
|
22
|
+
const hasDynamic = segments.some((s) => s.startsWith("["));
|
|
23
|
+
if (!hasDynamic) return JSON.stringify("/" + segments.join("/"));
|
|
24
|
+
const parts = segments.map((s) => {
|
|
25
|
+
if (s.startsWith("[[...") || s.startsWith("[...")) return "${string}";
|
|
26
|
+
if (s.startsWith("[")) return "${string}";
|
|
27
|
+
return s;
|
|
28
|
+
});
|
|
29
|
+
return "`/" + parts.join("/") + "`";
|
|
30
|
+
}
|
|
31
|
+
function routePatternToTsTypeLiterals(pattern) {
|
|
32
|
+
if (pattern === "/") return ['"/"'];
|
|
33
|
+
let variants = [[]];
|
|
34
|
+
for (const segment of pattern.slice(1).split("/").filter(Boolean)) {
|
|
35
|
+
if (segment.startsWith("[[...") && segment.endsWith("]]")) {
|
|
36
|
+
variants = variants.flatMap((parts) => [parts, [...parts, segment]]);
|
|
37
|
+
} else {
|
|
38
|
+
variants = variants.map((parts) => [...parts, segment]);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return variants.map(routeSegmentsToTsTypeLiteral);
|
|
42
|
+
}
|
|
43
|
+
function routePatternToRouteLiteral(pattern) {
|
|
44
|
+
return JSON.stringify(pattern);
|
|
45
|
+
}
|
|
46
|
+
function renderTypeUnion(values) {
|
|
47
|
+
return values.length <= 1 ? values[0] || "never" : `
|
|
48
|
+
| ${values.join("\n | ")}`;
|
|
49
|
+
}
|
|
50
|
+
function renderTypeAlias(name, value) {
|
|
51
|
+
return `export type ${name} =${value.startsWith("\n") ? "" : " "}${value};`;
|
|
52
|
+
}
|
|
53
|
+
function createRoutePattern(route) {
|
|
54
|
+
if (route.segments.length === 0) return "/";
|
|
55
|
+
return "/" + route.segments.map((seg) => {
|
|
56
|
+
if (!seg.isDynamic) return seg.segment;
|
|
57
|
+
if (seg.isCatchAll) return seg.isOptional ? `[[...${seg.segment}]]` : `[...${seg.segment}]`;
|
|
58
|
+
return `[${seg.segment}]`;
|
|
59
|
+
}).join("/");
|
|
60
|
+
}
|
|
61
|
+
var DEFAULT_OUT_FILE = "farm-routes.d.ts";
|
|
62
|
+
async function generateRouteTypes(options) {
|
|
63
|
+
const root = path.resolve(options.root);
|
|
64
|
+
const srcDir = options.srcDir || "src";
|
|
65
|
+
const outFile = options.outFile || DEFAULT_OUT_FILE;
|
|
66
|
+
const outPath = path.isAbsolute(outFile) ? outFile : path.join(root, srcDir, outFile);
|
|
67
|
+
const content = await createRouteTypeDeclarations(options, outPath);
|
|
68
|
+
fs.mkdirSync(path.dirname(outPath), { recursive: true });
|
|
69
|
+
writeFileIfChanged(outPath, content);
|
|
70
|
+
return outPath;
|
|
71
|
+
}
|
|
72
|
+
async function createRouteTypeDeclarations(options, outPath) {
|
|
73
|
+
const { extraRoutes = [], suppressLintOnLink = false } = options;
|
|
74
|
+
const { pages: patterns, modules: routeModulePatterns } = await scanRoutePatterns(options);
|
|
75
|
+
for (const route of extraRoutes) {
|
|
76
|
+
if (route.startsWith("/")) {
|
|
77
|
+
patterns.add(route);
|
|
78
|
+
routeModulePatterns.add(route);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
const sortedPatterns = Array.from(patterns).sort();
|
|
82
|
+
const typeLiterals = Array.from(new Set(sortedPatterns.flatMap(routePatternToTsTypeLiterals)));
|
|
83
|
+
const patternLiterals = sortedPatterns.map(routePatternToRouteLiteral);
|
|
84
|
+
const routeModulePatternLiterals = Array.from(routeModulePatterns).sort().map(routePatternToRouteLiteral);
|
|
85
|
+
const routePathType = suppressLintOnLink ? "string" : renderTypeUnion(typeLiterals);
|
|
86
|
+
const routePatternType = suppressLintOnLink ? "string" : renderTypeUnion(patternLiterals);
|
|
87
|
+
const routeModulePatternType = renderTypeUnion(routeModulePatternLiterals);
|
|
88
|
+
const routeTypesImportPath = `./${path.basename(outPath).replace(/\.d\.ts$/, "")}`;
|
|
89
|
+
const linkAugmentationBlock = suppressLintOnLink ? "" : `
|
|
90
|
+
declare module "@farm.js/core/client" {
|
|
91
|
+
interface LinkDefaultRoute {
|
|
92
|
+
_: import(${JSON.stringify(routeTypesImportPath)}).RoutePath;
|
|
93
|
+
pattern: import(${JSON.stringify(routeTypesImportPath)}).RoutePattern;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
declare module "@farm.js/core" {
|
|
98
|
+
interface LinkDefaultRoute {
|
|
99
|
+
_: import(${JSON.stringify(routeTypesImportPath)}).RoutePath;
|
|
100
|
+
pattern: import(${JSON.stringify(routeTypesImportPath)}).RoutePattern;
|
|
101
|
+
}
|
|
102
|
+
// Ensure root import ("@farm.js/core") uses the same typed Link signature as client entry.
|
|
103
|
+
const Link: typeof import("@farm.js/core/client").Link;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Internal declaration path used by @farm.js/core root type re-exports.
|
|
107
|
+
declare module "@farm.js/core/dist/client.js" {
|
|
108
|
+
interface LinkDefaultRoute {
|
|
109
|
+
_: import(${JSON.stringify(routeTypesImportPath)}).RoutePath;
|
|
110
|
+
pattern: import(${JSON.stringify(routeTypesImportPath)}).RoutePattern;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
`;
|
|
114
|
+
const routeModuleAugmentationBlock = `
|
|
115
|
+
declare global {
|
|
116
|
+
namespace FarmJS {
|
|
117
|
+
interface RouteRegistry {
|
|
118
|
+
pattern: import(${JSON.stringify(routeTypesImportPath)}).RouteModulePattern;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
`;
|
|
123
|
+
const content = `/**
|
|
124
|
+
* Auto-generated route types from src/app.
|
|
125
|
+
* Link href and route component props are typed automatically from generated declarations.
|
|
126
|
+
* Regenerated on dev start and when routes change.
|
|
127
|
+
* Set suppressLintOnLink: true in farm.config.ts to accept any string on Link href.
|
|
128
|
+
*/
|
|
129
|
+
${renderTypeAlias("RoutePath", routePathType)}
|
|
130
|
+
${renderTypeAlias("RoutePattern", routePatternType)}
|
|
131
|
+
${renderTypeAlias("RouteModulePattern", routeModulePatternType)}${linkAugmentationBlock}${routeModuleAugmentationBlock}
|
|
132
|
+
`;
|
|
133
|
+
return content;
|
|
134
|
+
}
|
|
135
|
+
var PLATFORM_FILE = /^(?:(page|layout)\.(native|ios|android)\.(?:tsx|ts|jsx|js)|page\.(kt|swift))$/;
|
|
136
|
+
async function scanRoutePatterns(options) {
|
|
137
|
+
const { root, srcDir = "src" } = options;
|
|
138
|
+
const sourceRoots = options.sourceRoots ?? [{ name: "project", root, srcDir, layer: false }];
|
|
139
|
+
const componentExtensions = resolveFarmComponentExtensions(options.componentExtensions).map(
|
|
140
|
+
(extension) => extension.slice(1)
|
|
141
|
+
);
|
|
142
|
+
const pages = /* @__PURE__ */ new Set();
|
|
143
|
+
const modules = /* @__PURE__ */ new Set();
|
|
144
|
+
const pageFiles = /* @__PURE__ */ new Map();
|
|
145
|
+
const nativePages = /* @__PURE__ */ new Map();
|
|
146
|
+
const nativeLayouts = /* @__PURE__ */ new Map();
|
|
147
|
+
const { glob } = await import("tinyglobby");
|
|
148
|
+
for (const source of sourceRoots) {
|
|
149
|
+
const appDir = path.join(source.root, source.srcDir, "app");
|
|
150
|
+
if (fs.existsSync(appDir)) {
|
|
151
|
+
const routeModuleFiles = await glob(
|
|
152
|
+
`**/{page,layout,loading,error}.{${componentExtensions.join(",")},md,mdx}`,
|
|
153
|
+
{ cwd: appDir, expandDirectories: false }
|
|
154
|
+
);
|
|
155
|
+
for (const file of routeModuleFiles) {
|
|
156
|
+
if (parseRouteSlotFile(file)) continue;
|
|
157
|
+
const route = parseRoutePath(file);
|
|
158
|
+
const pattern = createRoutePattern(route);
|
|
159
|
+
modules.add(pattern);
|
|
160
|
+
if (route.type === "page") {
|
|
161
|
+
pages.add(pattern);
|
|
162
|
+
if (options.platformFiles) pageFiles.set(pattern, path.join(appDir, file));
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (options.platformFiles) {
|
|
166
|
+
scanPlatformRouteFiles(
|
|
167
|
+
appDir,
|
|
168
|
+
await glob(
|
|
169
|
+
["**/{page,layout}.{native,ios,android}.{tsx,ts,jsx,js}", "**/page.{kt,swift}"],
|
|
170
|
+
{ cwd: appDir, expandDirectories: false }
|
|
171
|
+
),
|
|
172
|
+
nativePages,
|
|
173
|
+
nativeLayouts
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
for (const route of await discoverProgrammaticRoutePaths(source.root, source.srcDir)) {
|
|
178
|
+
pages.add(route);
|
|
179
|
+
modules.add(route);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
if (!options.platformFiles) return { pages, modules };
|
|
183
|
+
for (const [pattern, files] of nativePages) {
|
|
184
|
+
if (!pages.has(pattern)) {
|
|
185
|
+
const file = path.relative(root, Object.values(files)[0]);
|
|
186
|
+
throw new Error(
|
|
187
|
+
`${file.replace(/\\/g, "/")} has no web page next to it. Add ${path.join(path.dirname(file), "page.tsx").replace(/\\/g, "/")}: it is the route's web screen and the fallback on every platform.`
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return { pages, modules, pageFiles, nativePages, nativeLayouts };
|
|
192
|
+
}
|
|
193
|
+
function scanPlatformRouteFiles(appDir, files, nativePages, nativeLayouts) {
|
|
194
|
+
const seen = /* @__PURE__ */ new Map();
|
|
195
|
+
for (const file of [...files].sort()) {
|
|
196
|
+
const normalized = file.replace(/\\/g, "/");
|
|
197
|
+
const match = PLATFORM_FILE.exec(path.posix.basename(normalized));
|
|
198
|
+
if (!match) continue;
|
|
199
|
+
const kind = match[1] ?? "page";
|
|
200
|
+
const platform = match[2] ?? match[3];
|
|
201
|
+
const twin = path.posix.join(path.posix.dirname(normalized), `${kind}.tsx`);
|
|
202
|
+
if (kind === "page" && parseRouteSlotFile(twin)) continue;
|
|
203
|
+
const dir = path.posix.dirname(normalized);
|
|
204
|
+
const pattern = kind === "page" ? createRoutePattern(parseRoutePath(twin)) : dir === "." ? "/" : `/${dir}`;
|
|
205
|
+
const key = `${kind}\0${pattern}\0${platform}`;
|
|
206
|
+
const previous = seen.get(key);
|
|
207
|
+
if (previous) {
|
|
208
|
+
throw new Error(
|
|
209
|
+
`Duplicate ${platform} ${kind} for "${pattern}": found ${previous} and ${normalized} in ${appDir}. Keep one.`
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
seen.set(key, normalized);
|
|
213
|
+
const target = kind === "page" ? nativePages : nativeLayouts;
|
|
214
|
+
const entry = { ...target.get(pattern) };
|
|
215
|
+
entry[platform] = path.join(appDir, normalized);
|
|
216
|
+
target.set(pattern, entry);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export {
|
|
221
|
+
generateRouteTypes,
|
|
222
|
+
createRouteTypeDeclarations,
|
|
223
|
+
scanRoutePatterns
|
|
224
|
+
};
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
loadFarmDocsPage,
|
|
5
5
|
resolveFarmDocsContentDir,
|
|
6
6
|
toFarmDocsMarkdownPage
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-4GJJ65RB.mjs";
|
|
8
8
|
import {
|
|
9
9
|
docsEngine,
|
|
10
10
|
loadFarmDocsEngine
|
|
11
11
|
} from "./chunk-VE3FWJBO.mjs";
|
|
12
12
|
import {
|
|
13
13
|
resolveDocsConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-JF5CNHHF.mjs";
|
|
15
15
|
import {
|
|
16
16
|
getFarmDocsAdapterConfigModule,
|
|
17
17
|
isSecretDocsConfigKey
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkCKPTIEDXcjs = require('./chunk-CKPTIEDX.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkFK25QSVCcjs = require('./chunk-FK25QSVC.cjs');
|
|
4
10
|
|
|
5
11
|
|
|
6
12
|
|
|
@@ -16,7 +22,8 @@ function handleFarmFormActionRequest(request, config) {
|
|
|
16
22
|
return _server.handleAction.call(void 0, request, {
|
|
17
23
|
allowedOrigins: config.allowedOrigins,
|
|
18
24
|
bodySizeLimit: config.bodySizeLimit,
|
|
19
|
-
|
|
25
|
+
// The result islx sends is the envelope, not the action's own type.
|
|
26
|
+
run: (actionRequest, action) => runFarmFormAction(actionRequest, action),
|
|
20
27
|
mapError(error) {
|
|
21
28
|
const redirect = _chunk7JUIK547cjs.getFarmRedirectError.call(void 0, error);
|
|
22
29
|
if (redirect) return { redirect: redirect.url };
|
|
@@ -26,6 +33,25 @@ function handleFarmFormActionRequest(request, config) {
|
|
|
26
33
|
onError: (error) => console.error("[Farm.js] Server action failed:", error)
|
|
27
34
|
});
|
|
28
35
|
}
|
|
36
|
+
async function runFarmFormAction(request, action) {
|
|
37
|
+
if (!request.headers.has(FARM_FORM_ACTION_HEADER)) {
|
|
38
|
+
return _chunkFK25QSVCcjs.runWithServerActionRequest.call(void 0, request, action);
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
return await _chunkFK25QSVCcjs.runWithServerActionRequest.call(void 0, request, async () => {
|
|
42
|
+
const value = await action();
|
|
43
|
+
return {
|
|
44
|
+
[_chunkCKPTIEDXcjs.FARM_ACTION_RESULT_KEY]: { invalidations: [..._chunkFK25QSVCcjs.getServerActionInvalidations.call(void 0, )] },
|
|
45
|
+
value
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
} catch (error) {
|
|
49
|
+
if (!_chunkFK25QSVCcjs.serializeServerFnFailure.call(void 0, error)) throw error;
|
|
50
|
+
return {
|
|
51
|
+
[_chunkCKPTIEDXcjs.FARM_ACTION_RESULT_KEY]: { invalidations: [], error: _chunkFK25QSVCcjs.sanitizeServerActionError.call(void 0, error) }
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
29
55
|
|
|
30
56
|
|
|
31
57
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateFarmDocsSearchBootstrapRuntime,
|
|
3
3
|
isFarmDocsSearchEnabled
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-ALEUMLJN.mjs";
|
|
5
5
|
import {
|
|
6
6
|
FARM_NAVIGATION_HEAD_SELECTOR
|
|
7
7
|
} from "./chunk-WYL4ODZ4.mjs";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from "./chunk-N77JBPLC.mjs";
|
|
22
22
|
import {
|
|
23
23
|
matchesFarmIfNoneMatch
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-GFT5AHAT.mjs";
|
|
25
25
|
|
|
26
26
|
// src/docs/handler.ts
|
|
27
27
|
import {
|
|
@@ -1307,6 +1307,13 @@ function highlightCodeBlock(code) {
|
|
|
1307
1307
|
function renderCodeCopyButton(className = "code-copy") {
|
|
1308
1308
|
return `<button class="${className}" type="button" data-code-copy data-copied="false" aria-label="Copy code" title="Copy code"><svg class="code-copy-icon" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg><svg class="code-copy-check" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M20 6 9 17l-5-5"></path></svg></button>`;
|
|
1309
1309
|
}
|
|
1310
|
+
var SCRIPT_URL_SCHEME = /^(?:javascript|vbscript|data):/i;
|
|
1311
|
+
function isScriptUrl(href) {
|
|
1312
|
+
const url = href.replace(/[\t\n\r]/g, "");
|
|
1313
|
+
let start = 0;
|
|
1314
|
+
while (start < url.length && url.charCodeAt(start) <= 32) start++;
|
|
1315
|
+
return SCRIPT_URL_SCHEME.test(url.slice(start));
|
|
1316
|
+
}
|
|
1310
1317
|
function renderMarkdownDocument(body, depth) {
|
|
1311
1318
|
const slug = createSlugger();
|
|
1312
1319
|
const renderer = new Renderer();
|
|
@@ -1342,6 +1349,7 @@ function renderMarkdownDocument(body, depth) {
|
|
|
1342
1349
|
`;
|
|
1343
1350
|
renderer.codespan = (code) => `<code>${escapeHtml(code)}</code>`;
|
|
1344
1351
|
renderer.link = (href, title, text) => {
|
|
1352
|
+
if (href && isScriptUrl(href)) return text;
|
|
1345
1353
|
const safeHref = href || "";
|
|
1346
1354
|
const titleAttribute = title ? ` title="${escapeAttribute(title)}"` : "";
|
|
1347
1355
|
return `<a href="${escapeAttribute(safeHref)}"${titleAttribute}>${text}</a>`;
|
|
@@ -17,6 +17,9 @@ var _chunkOYZXVBZPcjs = require('./chunk-OYZXVBZP.cjs');
|
|
|
17
17
|
var _chunkDMAP4RNDcjs = require('./chunk-DMAP4RND.cjs');
|
|
18
18
|
|
|
19
19
|
|
|
20
|
+
var _chunkSUCDVKUBcjs = require('./chunk-SUCDVKUB.cjs');
|
|
21
|
+
|
|
22
|
+
|
|
20
23
|
var _chunkDXUXQP2Tcjs = require('./chunk-DXUXQP2T.cjs');
|
|
21
24
|
|
|
22
25
|
// src/routes.ts
|
|
@@ -535,7 +538,7 @@ async function resolveProgrammaticRouteProps(route, props) {
|
|
|
535
538
|
...props,
|
|
536
539
|
params,
|
|
537
540
|
search,
|
|
538
|
-
searchParams:
|
|
541
|
+
searchParams: _chunkSUCDVKUBcjs.createFarmSearchParams.call(void 0, search)
|
|
539
542
|
};
|
|
540
543
|
const routeContextProps = {
|
|
541
544
|
...baseProps,
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
|
-
attachRevalidationListeners
|
|
2
|
+
attachRevalidationListeners
|
|
3
|
+
} from "./chunk-Z64V4WZI.mjs";
|
|
4
|
+
import {
|
|
3
5
|
createServerQueryCallKey,
|
|
4
6
|
fetchServerQuery
|
|
5
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XMHERKSE.mjs";
|
|
6
8
|
import {
|
|
7
9
|
getFarmClientDataCache
|
|
8
10
|
} from "./chunk-C64XOPBZ.mjs";
|
|
@@ -1,3 +1,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveFarmPlatform
|
|
3
|
+
} from "./chunk-SMUW7UST.mjs";
|
|
4
|
+
|
|
5
|
+
// src/desktop/dev-guard-plugin.ts
|
|
6
|
+
function farmDesktopDevGuardPlugin(basePath) {
|
|
7
|
+
return {
|
|
8
|
+
name: "farm:desktop-dev-guard",
|
|
9
|
+
enforce: "pre",
|
|
10
|
+
apply: "serve",
|
|
11
|
+
configureServer: {
|
|
12
|
+
order: "pre",
|
|
13
|
+
async handler(server) {
|
|
14
|
+
if (resolveFarmPlatform() !== "desktop") return;
|
|
15
|
+
const { createFarmDesktopDevGuard } = await import("./dev-guard-4PFQNXQX.mjs");
|
|
16
|
+
server.middlewares.use(createFarmDesktopDevGuard(server, { basePath: basePath || "" }));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
|
|
1
22
|
// src/react-refresh.ts
|
|
2
23
|
import { createRequire } from "module";
|
|
3
24
|
import { pathToFileURL } from "url";
|
|
@@ -81,6 +102,7 @@ async function createFarmReactRefreshPlugins() {
|
|
|
81
102
|
}
|
|
82
103
|
|
|
83
104
|
export {
|
|
105
|
+
farmDesktopDevGuardPlugin,
|
|
84
106
|
isFarmReactRefreshActive,
|
|
85
107
|
loadFarmReactPlugin,
|
|
86
108
|
createFarmReactRefreshPlugins
|
|
@@ -396,7 +396,13 @@ function configMiddlewareMayHandlePath(config, pathname) {
|
|
|
396
396
|
});
|
|
397
397
|
}
|
|
398
398
|
function appMiddlewareMayHandlePath(middlewareRoutes, pathname) {
|
|
399
|
-
return middlewareRoutes.some((route) =>
|
|
399
|
+
return middlewareRoutes.some((route) => {
|
|
400
|
+
if (!_chunk5DX3O6TTcjs.matchesMiddlewareRoute.call(void 0, pathname, route).matched) return false;
|
|
401
|
+
if (!route.config || route.config === "unknown") return true;
|
|
402
|
+
if (!route.config.matcher && !route.config.exclude) return true;
|
|
403
|
+
const compiled = _chunk5DX3O6TTcjs.compileMiddlewareConfig.call(void 0, route.config);
|
|
404
|
+
return _chunk5DX3O6TTcjs.matchesCompiledMiddlewareConfig.call(void 0, pathname, compiled, {}).matched;
|
|
405
|
+
});
|
|
400
406
|
}
|
|
401
407
|
var CATCH_ALL_PROBE = "/__farm-listing-probe__/0";
|
|
402
408
|
function isPathSpecificMatcher(matcher) {
|
|
@@ -396,7 +396,13 @@ function configMiddlewareMayHandlePath(config, pathname) {
|
|
|
396
396
|
});
|
|
397
397
|
}
|
|
398
398
|
function appMiddlewareMayHandlePath(middlewareRoutes, pathname) {
|
|
399
|
-
return middlewareRoutes.some((route) =>
|
|
399
|
+
return middlewareRoutes.some((route) => {
|
|
400
|
+
if (!matchesMiddlewareRoute(pathname, route).matched) return false;
|
|
401
|
+
if (!route.config || route.config === "unknown") return true;
|
|
402
|
+
if (!route.config.matcher && !route.config.exclude) return true;
|
|
403
|
+
const compiled = compileMiddlewareConfig(route.config);
|
|
404
|
+
return matchesCompiledMiddlewareConfig(pathname, compiled, {}).matched;
|
|
405
|
+
});
|
|
400
406
|
}
|
|
401
407
|
var CATCH_ALL_PROBE = "/__farm-listing-probe__/0";
|
|
402
408
|
function isPathSpecificMatcher(matcher) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _chunkUNJZGVPUcjs = require('./chunk-UNJZGVPU.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkLIFUPCXWcjs = require('./chunk-LIFUPCXW.cjs');
|
|
7
7
|
|
|
8
8
|
// src/image-pattern.ts
|
|
9
9
|
var compiledPatterns = /* @__PURE__ */ new WeakMap();
|
|
@@ -582,7 +582,7 @@ function createOptimizedImageResponse(request, image) {
|
|
|
582
582
|
// document, it still cannot run script or load anything.
|
|
583
583
|
"content-security-policy": "default-src 'none'; sandbox"
|
|
584
584
|
});
|
|
585
|
-
if (
|
|
585
|
+
if (_chunkLIFUPCXWcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), image.etag)) {
|
|
586
586
|
headers.delete("content-length");
|
|
587
587
|
return new Response(null, { status: 304, headers });
|
|
588
588
|
}
|