@farm.js/core 0.1.50 → 0.1.51-beta.1
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-CIMH324y.d.mts → agent-mcp.d-BPzpKBHQ.d.mts} +1 -1
- package/dist/{agent-mcp-9BMbRgg_.d.ts → agent-mcp.d-ZuuNgrkQ.d.ts} +1 -1
- package/dist/agent-runtime.cjs +3 -3
- package/dist/agent-runtime.d.mts +13 -13
- package/dist/agent-runtime.d.ts +13 -13
- package/dist/agent-runtime.mjs +2 -2
- package/dist/{analyzer-CN7C74WX.cjs → analyzer-AZULAOPL.cjs} +2 -2
- package/dist/{analyzer-DDW34OMC.mjs → analyzer-V74FTD2F.mjs} +1 -1
- package/dist/api/client.d.mts +4 -4
- package/dist/api/client.d.ts +4 -4
- package/dist/api/route-manager.cjs +5 -5
- package/dist/api/route-manager.d.mts +19 -19
- package/dist/api/route-manager.d.ts +19 -19
- package/dist/api/route-manager.mjs +4 -4
- package/dist/api/runtime.d.mts +15 -15
- package/dist/api/runtime.d.ts +15 -15
- package/dist/{api-client-CvI5oOBE.d.ts → api-client.d-BWcqZciH.d.ts} +3 -3
- package/dist/{api-client-CFdv-Xgh.d.mts → api-client.d-CeA6tNA6.d.mts} +3 -3
- package/dist/api.cjs +7 -7
- package/dist/api.d.mts +21 -21
- package/dist/api.d.ts +21 -21
- package/dist/api.mjs +6 -6
- package/dist/{app-manifest-D0kaXdwu.d.ts → app-manifest.d-BJDcZn3W.d.mts} +1 -1
- package/dist/{app-manifest-CQDJOKL2.d.mts → app-manifest.d-HWhqbP2X.d.ts} +1 -1
- package/dist/app-markdown.d.mts +14 -14
- package/dist/app-markdown.d.ts +14 -14
- package/dist/{app-BWibTHVT.d.ts → app.d-B5EWdob-.d.ts} +12 -10
- package/dist/{app-DVJ13FPA.d.mts → app.d-DOGW1KI8.d.mts} +12 -10
- package/dist/base-path.d-BOUV5ozD.d.mts +10 -0
- package/dist/base-path.d-BOUV5ozD.d.ts +10 -0
- package/dist/{chunk-B5S2JS6M.cjs → chunk-2756SHCI.cjs} +372 -305
- package/dist/{chunk-RWT2BTJT.cjs → chunk-2IAPKPEB.cjs} +6 -6
- package/dist/{chunk-2G63BIRL.mjs → chunk-2KVDHNQS.mjs} +8 -11
- package/dist/{chunk-NJVFPJ2Y.cjs → chunk-3OWVWZ6R.cjs} +28 -2
- package/dist/{chunk-WVBUXNBX.mjs → chunk-5A5GAZ75.mjs} +296 -106
- package/dist/{chunk-GERUXONA.cjs → chunk-5A77OEIG.cjs} +4 -1
- package/dist/{chunk-4HBKBHVP.mjs → chunk-5ENW27SL.mjs} +1 -1
- package/dist/{chunk-FACTMUPI.cjs → chunk-5IONBVJY.cjs} +33 -22
- package/dist/{chunk-X2EL3BLH.cjs → chunk-5N7QAGEA.cjs} +36 -9
- package/dist/{chunk-DGOLAZLV.cjs → chunk-65Y5SIBH.cjs} +1 -1
- package/dist/{chunk-MTB57GOK.mjs → chunk-724WT3NI.mjs} +4 -2
- package/dist/{chunk-C73RIAEF.mjs → chunk-72NBDVWQ.mjs} +18 -7
- package/dist/{chunk-VCKGOXFI.cjs → chunk-76GHW3WI.cjs} +7 -1
- package/dist/{chunk-ZIBIE7AH.mjs → chunk-7UPCJDB5.mjs} +7 -1
- package/dist/{chunk-CPXDDWGL.mjs → chunk-AER5I65K.mjs} +1 -1
- package/dist/{chunk-RHOR2J6V.cjs → chunk-AGR7VJH2.cjs} +1 -1
- package/dist/{chunk-WB6XES4V.mjs → chunk-ALEUMLJN.mjs} +34 -5
- package/dist/{chunk-OD6WM3I7.mjs → chunk-AV26KHTG.mjs} +1 -1
- package/dist/{chunk-L6QDME5Z.cjs → chunk-B3GZAQSC.cjs} +3 -3
- package/dist/{chunk-ZLOQQ2UF.mjs → chunk-BSEKNTMS.mjs} +107 -40
- package/dist/{chunk-WAPQWAE6.cjs → chunk-CECUDGXQ.cjs} +9 -8
- package/dist/chunk-CKPTIEDX.cjs +12 -0
- package/dist/{chunk-IUQLRTTO.mjs → chunk-CO6UYM2D.mjs} +14 -1
- package/dist/{chunk-SHJJM6OG.mjs → chunk-CZ35L6PL.mjs} +9 -2
- package/dist/{chunk-EQMTJBB7.cjs → chunk-DZZHTMWM.cjs} +35 -6
- package/dist/{chunk-3ATXWZPH.cjs → chunk-E36C43IX.cjs} +13 -16
- package/dist/{chunk-J2ZEVDEK.cjs → chunk-EHB77D5U.cjs} +3 -3
- package/dist/{chunk-KO2NWUKN.mjs → chunk-EIMK7D2D.mjs} +33 -6
- package/dist/{chunk-CY7H5KS4.cjs → chunk-EKJYE4Y7.cjs} +2 -2
- package/dist/{chunk-2VCC3GVC.mjs → chunk-EOSFVNXZ.mjs} +1 -1
- package/dist/{chunk-IWJKJDNW.mjs → chunk-EWC76P5D.mjs} +53 -32
- package/dist/{chunk-WQGRD5BJ.cjs → chunk-EX6ZSN5P.cjs} +1 -16
- package/dist/{chunk-6QA2SXVH.cjs → chunk-FK25QSVC.cjs} +2 -1
- package/dist/{chunk-BW6SCVYX.mjs → chunk-FSQMN2MQ.mjs} +1 -0
- package/dist/{chunk-2H3FJYY6.mjs → chunk-FSXSQQTV.mjs} +3 -2
- package/dist/chunk-GNZIAJGB.mjs +358 -0
- package/dist/{chunk-TXK4D46O.mjs → chunk-H3ASZDT7.mjs} +21 -1
- package/dist/{chunk-B6PREBN6.cjs → chunk-HASX6DC7.cjs} +8 -8
- package/dist/{chunk-76R5GJER.mjs → chunk-I3EFXUAR.mjs} +60 -13
- package/dist/{chunk-HYN3LLG7.cjs → chunk-IFBINMI4.cjs} +3 -3
- package/dist/{chunk-CBJKDB6F.mjs → chunk-IRSS4HS4.mjs} +1 -1
- package/dist/{chunk-4T25YCZ5.cjs → chunk-JVBNKWLV.cjs} +81 -34
- package/dist/{chunk-VOZ5DI7D.mjs → chunk-JWI5PUO2.mjs} +6 -2
- package/dist/{chunk-YAXOEAND.cjs → chunk-KHXAJ2KA.cjs} +6 -6
- package/dist/{chunk-2DEPNLXK.mjs → chunk-KMB5BMFX.mjs} +122 -12
- package/dist/{chunk-M7LKA632.mjs → chunk-KU7MBLDZ.mjs} +1 -1
- package/dist/{chunk-WXHDVXJE.mjs → chunk-KY32FWK7.mjs} +2 -2
- package/dist/{chunk-EQWWOQTK.cjs → chunk-LEIXUFJN.cjs} +6 -2
- package/dist/{chunk-2GLQSIZD.mjs → chunk-LMFJCXDD.mjs} +1 -1
- package/dist/{chunk-IXSMFKZ2.cjs → chunk-LNM57D3H.cjs} +4 -4
- package/dist/{chunk-5V4KZOZO.mjs → chunk-LZ4SB57H.mjs} +2 -2
- package/dist/chunk-N4AQNEXR.cjs +17 -0
- package/dist/{chunk-J37KTQIA.cjs → chunk-NK2VWS7P.cjs} +52 -3
- package/dist/{chunk-X3HOVNHI.mjs → chunk-NN3MOPSI.mjs} +7 -7
- package/dist/{chunk-JZMZKABS.cjs → chunk-NWUHS6GV.cjs} +3 -2
- package/dist/{chunk-XLLVWLWO.mjs → chunk-PIHKO25G.mjs} +1 -1
- package/dist/chunk-PIUTGRDI.cjs +358 -0
- package/dist/{chunk-JJOWY3XD.mjs → chunk-QAIAFCRZ.mjs} +8 -6
- package/dist/{chunk-Q3UU2KXC.mjs → chunk-QMDU6QHN.mjs} +4 -1
- package/dist/{chunk-75WWOZ5C.mjs → chunk-QOSDWGKT.mjs} +1 -1
- package/dist/{chunk-GOOK2J2W.cjs → chunk-RMPNYUGT.cjs} +9 -7
- package/dist/{chunk-HWCHIBJZ.mjs → chunk-SCRC5AMM.mjs} +5 -5
- package/dist/{chunk-PXEXOQ5R.mjs → chunk-SHS6KXOZ.mjs} +1 -1
- package/dist/{chunk-ETF5C6HR.cjs → chunk-SJ23LJ3N.cjs} +3 -3
- package/dist/{chunk-JHXJBNLY.cjs → chunk-SUCDVKUB.cjs} +21 -1
- package/dist/{chunk-7ONZDKVY.mjs → chunk-T4EW7AAD.mjs} +2 -2
- package/dist/{chunk-F5LERVY3.cjs → chunk-TT66CP3P.cjs} +13 -13
- package/dist/{chunk-IUBDMDZZ.cjs → chunk-UQHIWZZ6.cjs} +15 -8
- package/dist/{chunk-LYWAGXXW.cjs → chunk-VITZRYW3.cjs} +131 -21
- package/dist/{chunk-XN2MB4QZ.cjs → chunk-VQJYGZNX.cjs} +4 -4
- package/dist/{chunk-KGP76FSV.mjs → chunk-VS7EHLLW.mjs} +1 -1
- package/dist/{chunk-5PKDHKQP.cjs → chunk-WFVSAT7Y.cjs} +6 -4
- package/dist/{chunk-UY6HS5PF.cjs → chunk-X2AMN2WV.cjs} +10 -10
- package/dist/{chunk-474FO3UE.cjs → chunk-X2M4XN4V.cjs} +213 -192
- package/dist/chunk-X3EFRVXY.mjs +12 -0
- package/dist/{chunk-UCQ52TJY.mjs → chunk-X3JNB2TB.mjs} +1 -1
- package/dist/{chunk-IQXGHGZF.cjs → chunk-XB24LZWI.cjs} +5 -5
- package/dist/{chunk-BNMHXVLL.mjs → chunk-XMHERKSE.mjs} +0 -15
- package/dist/{chunk-CGCJ2TJU.cjs → chunk-XPMC4E2G.cjs} +3 -3
- package/dist/{chunk-KZH6YLND.cjs → chunk-XY4DYGSU.cjs} +603 -413
- package/dist/{chunk-C7425KDG.cjs → chunk-XYL4HSVC.cjs} +2 -2
- package/dist/{chunk-HHFMECFO.mjs → chunk-Y2G5SJFB.mjs} +2 -1
- package/dist/{chunk-2SVJGOAX.mjs → chunk-Y3N5BFRJ.mjs} +3 -3
- package/dist/{chunk-Z5MZDFX4.cjs → chunk-YIHRZBD7.cjs} +14 -1
- package/dist/chunk-Z5A6CNV2.mjs +60 -0
- package/dist/chunk-Z64V4WZI.mjs +17 -0
- package/dist/{chunk-E2BMCNMJ.cjs → chunk-ZOWNWHK6.cjs} +2 -2
- package/dist/{chunk-C5JXCUKR.mjs → chunk-ZQ5BDNKW.mjs} +51 -2
- package/dist/client/lifecycle.d.mts +1 -1
- package/dist/client/lifecycle.d.ts +1 -1
- package/dist/{client-plugins-BPfltM5m.d.ts → client-plugins.d-C0n8Yhh-.d.ts} +60 -14
- package/dist/{client-plugins-D4RO59f0.d.mts → client-plugins.d-C_3CdALC.d.mts} +60 -14
- package/dist/client-plugins.d.mts +13 -13
- package/dist/client-plugins.d.ts +13 -13
- package/dist/client.cjs +5 -4
- package/dist/client.d.mts +24 -24
- package/dist/client.d.ts +24 -24
- package/dist/client.mjs +4 -3
- package/dist/config.d.mts +13 -13
- package/dist/config.d.ts +13 -13
- package/dist/cron.cjs +4 -4
- package/dist/cron.mjs +3 -3
- package/dist/desktop.d.mts +14 -14
- package/dist/desktop.d.ts +14 -14
- package/dist/{dev-guard-YLO5DE3H.cjs → dev-guard-2UW2KERP.cjs} +2 -2
- package/dist/{dev-guard-4PFQNXQX.mjs → dev-guard-ONNMVQUN.mjs} +1 -1
- package/dist/{devtools-STG7HPRV.mjs → devtools-BU5IT2PD.mjs} +8 -8
- package/dist/{devtools-N5XTOECL.cjs → devtools-KJFUE5FO.cjs} +10 -10
- package/dist/docs.cjs +14 -12
- package/dist/docs.d.mts +23 -15
- package/dist/docs.d.ts +23 -15
- package/dist/docs.mjs +13 -11
- package/dist/environment/vite.cjs +2 -2
- package/dist/environment/vite.d.mts +1 -1
- package/dist/environment/vite.d.ts +1 -1
- package/dist/environment/vite.mjs +1 -1
- package/dist/{generate-route-types-TF5Wwtvz.d.mts → generate-route-types.d-BL2pq6xC.d.ts} +1 -1
- package/dist/{generate-route-types-DQP0cUzk.d.ts → generate-route-types.d-BoVDU8qX.d.mts} +1 -1
- 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.d.mts +1 -1
- package/dist/image/server.d.ts +1 -1
- package/dist/image/sharp.d.mts +1 -1
- package/dist/image/sharp.d.ts +1 -1
- package/dist/image.d.mts +1 -1
- package/dist/image.d.ts +1 -1
- package/dist/index.cjs +48 -44
- package/dist/{index-C-N3Pwg-.d.ts → index.d-B6M_8kmo.d.ts} +2 -2
- package/dist/{index-D3l4tREW.d.ts → index.d-BNNDpql4.d.ts} +2 -2
- package/dist/{index-DPUAPho_.d.mts → index.d-BqcfqJvt.d.mts} +2 -2
- package/dist/{index-k8o8eUOd.d.mts → index.d-CsGxS-hZ.d.mts} +2 -2
- package/dist/index.d.mts +42 -42
- package/dist/index.d.ts +42 -42
- package/dist/index.mjs +47 -43
- package/dist/instrumentation.d.mts +2 -2
- package/dist/instrumentation.d.ts +2 -2
- package/dist/integrations.cjs +3 -3
- package/dist/integrations.d.mts +13 -13
- package/dist/integrations.d.ts +13 -13
- package/dist/integrations.mjs +2 -2
- package/dist/internal/app-markdown-runtime.d.mts +14 -14
- package/dist/internal/app-markdown-runtime.d.ts +14 -14
- package/dist/internal/build-runtime.cjs +36 -35
- package/dist/internal/build-runtime.d.mts +16 -16
- package/dist/internal/build-runtime.d.ts +16 -16
- package/dist/internal/build-runtime.mjs +35 -34
- package/dist/internal/cli-runtime.cjs +18 -18
- package/dist/internal/cli-runtime.mjs +17 -17
- package/dist/internal/client-error-overlay.cjs +4 -4
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/client-runtime.cjs +4 -2
- package/dist/internal/client-runtime.d.mts +21 -21
- package/dist/internal/client-runtime.d.ts +21 -21
- package/dist/internal/client-runtime.mjs +3 -1
- package/dist/internal/compression-runtime.d.mts +13 -13
- package/dist/internal/compression-runtime.d.ts +13 -13
- package/dist/internal/config-runtime.cjs +10 -10
- package/dist/internal/config-runtime.d.mts +18 -18
- package/dist/internal/config-runtime.d.ts +18 -18
- package/dist/internal/config-runtime.mjs +9 -9
- package/dist/internal/form-actions.cjs +4 -3
- package/dist/internal/form-actions.d.mts +1 -1
- package/dist/internal/form-actions.d.ts +1 -1
- package/dist/internal/form-actions.mjs +3 -2
- package/dist/internal/infra-analytics-runtime.cjs +5 -5
- package/dist/internal/infra-analytics-runtime.mjs +3 -3
- package/dist/internal/island-value-store.d.mts +1 -1
- package/dist/internal/island-value-store.d.ts +1 -1
- package/dist/internal/islands-runtime.cjs +56 -0
- package/dist/internal/islands-runtime.d.mts +1 -1
- package/dist/internal/islands-runtime.d.ts +1 -1
- package/dist/internal/islands-runtime.mjs +57 -1
- package/dist/internal/isolated-boundary.d.mts +2 -2
- package/dist/internal/isolated-boundary.d.ts +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 +15 -8
- package/dist/internal/production-runtime.d.mts +46 -30
- package/dist/internal/production-runtime.d.ts +46 -30
- package/dist/internal/production-runtime.mjs +14 -7
- 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/internal/server-tree.d.mts +1 -1
- package/dist/internal/server-tree.d.ts +1 -1
- package/dist/markdown.d.mts +13 -13
- package/dist/markdown.d.ts +13 -13
- package/dist/middleware.cjs +8 -8
- package/dist/middleware.d.mts +15 -15
- package/dist/middleware.d.ts +15 -15
- package/dist/middleware.mjs +7 -7
- package/dist/mobile.d.mts +37 -10
- package/dist/mobile.d.ts +37 -10
- package/dist/{navigation-delegate-8xg3Zvp4.d.ts → navigation-delegate.d-C0BbdUgN.d.mts} +1 -1
- package/dist/{navigation-delegate-ji6elCKy.d.mts → navigation-delegate.d-jArRF0ZP.d.ts} +1 -1
- package/dist/navigation.d.mts +17 -17
- package/dist/navigation.d.ts +17 -17
- package/dist/{nitro-YPSZBYDK.cjs → nitro-CK7M4RMY.cjs} +11 -11
- package/dist/{nitro-2Q5NVY7L.mjs → nitro-R444AF3O.mjs} +7 -7
- package/dist/observability.d.mts +1 -1
- package/dist/observability.d.ts +1 -1
- package/dist/plugin.cjs +29 -27
- package/dist/plugin.d.mts +17 -17
- package/dist/plugin.d.ts +17 -17
- package/dist/plugin.mjs +28 -26
- package/dist/{production-runtime-TdKaYRj0.d.ts → production-runtime.d-DFaQ1qaV.d.mts} +3 -3
- package/dist/{production-runtime-DXnQQkQf.d.mts → production-runtime.d-UnXmSS_S.d.ts} +3 -3
- package/dist/{programmatic-routes-client-Dh1SDLSM.d.mts → programmatic-routes-client.d-BIowUXQC.d.mts} +10 -2
- package/dist/{programmatic-routes-client-BwiTndEC.d.ts → programmatic-routes-client.d-VZ0qcbH4.d.ts} +10 -2
- package/dist/query/client.d.mts +1 -1
- package/dist/query/client.d.ts +1 -1
- package/dist/query/index.d.mts +1 -1
- package/dist/query/index.d.ts +1 -1
- package/dist/query/server.d.mts +1 -1
- package/dist/query/server.d.ts +1 -1
- package/dist/{render-plan-BPbwRbuN.d.ts → render-plan.d-BB6KrYjP.d.ts} +2 -2
- package/dist/{render-plan-BvCGXF6K.d.mts → render-plan.d-BNeqyPyJ.d.mts} +2 -2
- package/dist/renderer-client.cjs +8 -6
- package/dist/renderer-client.d.mts +19 -19
- package/dist/renderer-client.d.ts +19 -19
- package/dist/renderer-client.mjs +4 -2
- package/dist/{request-C_xTkJib.d.mts → request.d-BV1munmx.d.mts} +1 -1
- package/dist/{request-B8PGTZNR.d.ts → request.d-Bxhghm76.d.ts} +1 -1
- package/dist/request.d.mts +14 -14
- package/dist/request.d.ts +14 -14
- package/dist/{resolver-CJ-D9nP-.d.ts → resolver.d-BHyZgpa7.d.ts} +1 -1
- package/dist/{resolver-TDyZKgKI.d.mts → resolver.d-JnZKKsc5.d.mts} +1 -1
- package/dist/response.d-BolW0Vx_.d.mts +10 -0
- package/dist/response.d-BolW0Vx_.d.ts +10 -0
- package/dist/{route-rendering-DlddURL1.d.mts → route-rendering.d-BIf7zE9d.d.ts} +1 -1
- package/dist/{route-rendering-RNtcj607.d.ts → route-rendering.d-DShqKlgK.d.mts} +1 -1
- package/dist/{route-DFhZj6jN.d.ts → route.d-BaVH3V0w.d.mts} +1 -1
- package/dist/{route-2_yXC6gv.d.mts → route.d-DBTEqifW.d.ts} +1 -1
- package/dist/{router-B97eB0Mq.d.mts → router.d-BE7i84fb.d.mts} +1 -1
- package/dist/{router-qUVaoEN8.d.ts → router.d-Bw3K3b0a.d.ts} +1 -1
- package/dist/routes.cjs +3 -2
- package/dist/{routes-8PT9cl60.d.ts → routes.d-DVZQL0-H.d.ts} +3 -3
- package/dist/{routes-kEUsXHx3.d.mts → routes.d-_5tBQexL.d.mts} +3 -3
- package/dist/routes.d.mts +14 -14
- package/dist/routes.d.ts +14 -14
- package/dist/routes.mjs +2 -1
- package/dist/{rsc-pipeline-T3775JUA.mjs → rsc-pipeline-FBM6NFYY.mjs} +13 -13
- package/dist/{rsc-pipeline-L4XOZ2TE.cjs → rsc-pipeline-IQI5XQLS.cjs} +14 -14
- package/dist/{runtime-HRSFC4ZC.mjs → runtime-2JYIDUON.mjs} +14 -14
- package/dist/{runtime-BIBGJO7V.cjs → runtime-DXEVFYLE.cjs} +16 -16
- package/dist/{runtime-CihDZ2Rn.d.mts → runtime.d-3iJAKptR.d.mts} +2 -2
- package/dist/{runtime-C4CmlOOh.d.ts → runtime.d-BtL3PCL3.d.ts} +2 -2
- package/dist/{runtime-C8GUnNeP.d.ts → runtime.d-CQgoYR0Q.d.mts} +4 -4
- package/dist/{runtime-CaDswfWi.d.mts → runtime.d-CfhaLPl-.d.ts} +4 -4
- package/dist/{schema-dev-notice-LZ5NXGLN.mjs → schema-dev-notice-F6QYSOAI.mjs} +2 -2
- package/dist/{schema-dev-notice-XV7GZ3QJ.cjs → schema-dev-notice-UU7DMZEU.cjs} +3 -3
- 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 +2 -2
- package/dist/server-action-security.d.mts +1 -1
- package/dist/server-action-security.d.ts +1 -1
- package/dist/server-action-security.mjs +1 -1
- package/dist/server-fn-client.d.mts +5 -5
- package/dist/server-fn-client.d.ts +5 -5
- package/dist/server-fn.cjs +3 -3
- package/dist/server-fn.d.mts +3 -3
- package/dist/server-fn.d.ts +3 -3
- package/dist/server-fn.mjs +2 -2
- package/dist/server-plugins.d.mts +14 -14
- package/dist/server-plugins.d.ts +14 -14
- package/dist/server-query-client.cjs +4 -3
- package/dist/server-query-client.d.mts +5 -5
- package/dist/server-query-client.d.ts +5 -5
- package/dist/server-query-client.mjs +3 -2
- package/dist/server-query.cjs +4 -4
- package/dist/server-query.d.mts +2 -2
- package/dist/server-query.d.ts +2 -2
- package/dist/server-query.mjs +3 -3
- package/dist/server.cjs +64 -62
- package/dist/server.d.mts +28 -29
- package/dist/server.d.ts +28 -29
- package/dist/server.mjs +38 -36
- package/dist/{spa-router-Dlv5ofg0.d.mts → spa-router.d-C5opIgXg.d.ts} +5 -5
- package/dist/{spa-router-qapSboKz.d.ts → spa-router.d-D63jb6nX.d.mts} +5 -5
- package/dist/storage.d.mts +2 -2
- package/dist/storage.d.ts +2 -2
- package/dist/testing.cjs +12 -11
- package/dist/testing.d.mts +14 -14
- package/dist/testing.d.ts +14 -14
- package/dist/testing.mjs +9 -8
- package/dist/theme/client.d.mts +1 -1
- package/dist/theme/client.d.ts +1 -1
- package/dist/theme/index.d.mts +2 -2
- package/dist/theme/index.d.ts +2 -2
- package/dist/theme/runtime.d.mts +1 -1
- package/dist/theme/runtime.d.ts +1 -1
- package/dist/theme/server.d.mts +1 -1
- package/dist/theme/server.d.ts +1 -1
- package/dist/{utils-DyvlSxFk.d.mts → utils.d-CO-U4OVZ.d.mts} +1 -1
- package/dist/{utils-A-cYF81u.d.ts → utils.d-CkpTqTsC.d.ts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +29 -27
- package/dist/vite.d.mts +20 -19
- package/dist/vite.d.ts +20 -19
- package/dist/vite.mjs +28 -26
- package/dist/workflows.cjs +4 -4
- package/dist/workflows.d.mts +1 -1
- package/dist/workflows.d.ts +1 -1
- package/dist/workflows.mjs +3 -3
- package/package.json +10 -5
- package/dist/base-path-leyrqXbX.d.mts +0 -19
- package/dist/base-path-leyrqXbX.d.ts +0 -19
- package/dist/chunk-OTOOJIUB.mjs +0 -34
- package/dist/search-client-QCYAL6AY.cjs +0 -13
- /package/dist/{chunk-recovery-lnQFzcQP.d.mts → chunk-recovery.d-lnQFzcQP.d.mts} +0 -0
- /package/dist/{chunk-recovery-lnQFzcQP.d.ts → chunk-recovery.d-lnQFzcQP.d.ts} +0 -0
- /package/dist/{client-cache-Deoqq-nM.d.ts → client-cache.d-Deoqq-nM.d.ts} +0 -0
- /package/dist/{client-cache-di_Nasxa.d.mts → client-cache.d-di_Nasxa.d.mts} +0 -0
- /package/dist/{config-CnhyvvmT.d.mts → config.d-CnhyvvmT.d.mts} +0 -0
- /package/dist/{config-CnhyvvmT.d.ts → config.d-CnhyvvmT.d.ts} +0 -0
- /package/dist/{endpoint-BgHn0lhl.d.ts → endpoint.d-BgHn0lhl.d.ts} +0 -0
- /package/dist/{endpoint-BkMSCRf6.d.mts → endpoint.d-BkMSCRf6.d.mts} +0 -0
- /package/dist/{image-config-CeDgNyX4.d.mts → image-config.d-CeDgNyX4.d.mts} +0 -0
- /package/dist/{image-config-CeDgNyX4.d.ts → image-config.d-CeDgNyX4.d.ts} +0 -0
- /package/dist/{instrumentation-runtime-CX9Zh-16.d.mts → instrumentation-runtime.d-CX9Zh-16.d.mts} +0 -0
- /package/dist/{instrumentation-runtime-CX9Zh-16.d.ts → instrumentation-runtime.d-CX9Zh-16.d.ts} +0 -0
- /package/dist/{island-value-protocol-BRayRghM.d.mts → island-value-protocol.d-BRayRghM.d.mts} +0 -0
- /package/dist/{island-value-protocol-BRayRghM.d.ts → island-value-protocol.d-BRayRghM.d.ts} +0 -0
- /package/dist/{island-CfGru1MO.d.mts → island.d-CfGru1MO.d.mts} +0 -0
- /package/dist/{island-CfGru1MO.d.ts → island.d-CfGru1MO.d.ts} +0 -0
- /package/dist/{layers-CcS42OGR.d.mts → layers.d-CcS42OGR.d.mts} +0 -0
- /package/dist/{layers-CcS42OGR.d.ts → layers.d-CcS42OGR.d.ts} +0 -0
- /package/dist/{lifecycle-C2aLBOwu.d.mts → lifecycle.d-C2aLBOwu.d.mts} +0 -0
- /package/dist/{lifecycle-C2aLBOwu.d.ts → lifecycle.d-C2aLBOwu.d.ts} +0 -0
- /package/dist/{observability-B2363jB6.d.mts → observability.d-B2363jB6.d.mts} +0 -0
- /package/dist/{observability-B2363jB6.d.ts → observability.d-B2363jB6.d.ts} +0 -0
- /package/dist/{params-BALtrRim.d.ts → params.d-BALtrRim.d.ts} +0 -0
- /package/dist/{params-ry-lxqmy.d.mts → params.d-ry-lxqmy.d.mts} +0 -0
- /package/dist/{production-vite-BQFAlG7n.d.mts → production-vite.d-BQFAlG7n.d.mts} +0 -0
- /package/dist/{production-vite-BQFAlG7n.d.ts → production-vite.d-BQFAlG7n.d.ts} +0 -0
- /package/dist/{route-pattern-CVsVbq5n.d.mts → route-pattern.d-CVsVbq5n.d.mts} +0 -0
- /package/dist/{route-pattern-CVsVbq5n.d.ts → route-pattern.d-CVsVbq5n.d.ts} +0 -0
- /package/dist/{server-client-bridge-DKWDl5NB.d.mts → server-client-bridge.d-DKWDl5NB.d.mts} +0 -0
- /package/dist/{server-client-bridge-DKWDl5NB.d.ts → server-client-bridge.d-DKWDl5NB.d.ts} +0 -0
- /package/dist/{server-fn-error-DrcH9cc1.d.mts → server-fn-error.d-DrcH9cc1.d.mts} +0 -0
- /package/dist/{server-fn-error-DrcH9cc1.d.ts → server-fn-error.d-DrcH9cc1.d.ts} +0 -0
- /package/dist/{server-query-runtime-DXRNhX_3.d.ts → server-query-runtime.d-DXRNhX_3.d.ts} +0 -0
- /package/dist/{server-query-runtime-aP52iuL5.d.mts → server-query-runtime.d-aP52iuL5.d.mts} +0 -0
- /package/dist/{types-BnIqOn9w.d.mts → types.d-BnIqOn9w.d.mts} +0 -0
- /package/dist/{types-BnIqOn9w.d.ts → types.d-BnIqOn9w.d.ts} +0 -0
- /package/dist/{types-C41ePjvP.d.mts → types.d-C41ePjvP.d.mts} +0 -0
- /package/dist/{types-C41ePjvP.d.ts → types.d-C41ePjvP.d.ts} +0 -0
- /package/dist/{types-DQnyD3VD.d.mts → types.d-DQnyD3VD.d.mts} +0 -0
- /package/dist/{types-DQnyD3VD.d.ts → types.d-DQnyD3VD.d.ts} +0 -0
- /package/dist/{workflows-CRMzQZ3k.d.mts → workflows.d-CRMzQZ3k.d.mts} +0 -0
- /package/dist/{workflows-CRMzQZ3k.d.ts → workflows.d-CRMzQZ3k.d.ts} +0 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
// src/server-fn-transform.ts
|
|
2
|
+
var SERVER_FUNCTION_FACTORY_IMPORT_RE = /\bimport\s+(?:type\s+)?(?:[A-Za-z_$][\w$]*\s*,\s*)?(\{[^}]*\})\s+from\s*["']@farm.js\/core(?:\/(?:server-fn|server-query))?["']\s*;?/g;
|
|
3
|
+
var EXPORT_SERVER_FUNCTION_FACTORY_RE = /\bexport\s+(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*([A-Za-z_$][\w$]*)\s*(?:<[^<>]*(?:<[^<>]*>[^<>]*)*>)?\s*\(/g;
|
|
4
|
+
var EXPORT_DEFAULT_SERVER_FUNCTION_FACTORY_RE = /\bexport\s+default\s+([A-Za-z_$][\w$]*)\s*(?:<[^<>]*(?:<[^<>]*>[^<>]*)*>)?\s*\(/g;
|
|
5
|
+
var SERVER_FUNCTION_DECLARATION_RE = /(?<![.\w$])([A-Za-z_$][\w$]*)\s*=\s*([A-Za-z_$][\w$]*)\s*(?:<[^<>]*(?:<[^<>]*>[^<>]*)*>)?\s*\(/g;
|
|
6
|
+
var LOCAL_EXPORT_CLAUSE_RE = /\bexport\s*\{([^}]*)\}/g;
|
|
7
|
+
var EXPORT_DEFAULT_ALIAS_RE = /\bexport\s+default\s+([A-Za-z_$][\w$]*)\s*(?:;|(?=[\r\n])|$)/g;
|
|
8
|
+
var EXPORT_BINDING_ALIAS_RE = /\bexport\s+(?:const|let|var)\s+([A-Za-z_$][\w$]*)\s*=\s*([A-Za-z_$][\w$]*)\s*(?:;|(?=[,\r\n])|$)/g;
|
|
9
|
+
var MODULE_EXT_RE = /\.[cm]?[jt]sx?$/;
|
|
10
|
+
var DECLARATION_RE = /(^|\n)\s*["']([^"']+)["']\s*;?/g;
|
|
11
|
+
var FARM_SERVER_FN_BOUNDARY_QUERY = "?farm-server-fns";
|
|
12
|
+
function transformFarmServerFns(code, id, options = {}) {
|
|
13
|
+
const analysis = analyzeServerFnModule(code, id);
|
|
14
|
+
if (!analysis) return null;
|
|
15
|
+
const { replacements } = analysis;
|
|
16
|
+
const exports = replacements.map((replacement) => replacement.exportName);
|
|
17
|
+
if (hasModuleDirective(code, "use server")) {
|
|
18
|
+
return { code: applyReplacements(code, replacements, "wrapper"), exports };
|
|
19
|
+
}
|
|
20
|
+
const boundaryId = JSON.stringify(serverFnBoundaryId(id));
|
|
21
|
+
if (options.environment !== void 0 && options.environment !== "rsc") {
|
|
22
|
+
return {
|
|
23
|
+
code: `export { ${exports.join(", ")} } from ${boundaryId};
|
|
24
|
+
`,
|
|
25
|
+
exports
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const imports = replacements.map(
|
|
29
|
+
(replacement) => replacement.exportName === "default" ? "default as $$farm_server_fn_boundary_default" : replacement.exportName
|
|
30
|
+
);
|
|
31
|
+
const reExports = replacements.map(
|
|
32
|
+
(replacement) => replacement.exportName === "default" ? "$$farm_server_fn_boundary_default as default" : replacement.exportName
|
|
33
|
+
);
|
|
34
|
+
const privateNames = replacements.map((replacement) => replacement.privateName);
|
|
35
|
+
return {
|
|
36
|
+
code: applyReplacements(code, replacements, "private") + `
|
|
37
|
+
import { ${imports.join(", ")} } from ${boundaryId};
|
|
38
|
+
export { ${[...reExports, ...privateNames].join(", ")} };
|
|
39
|
+
`,
|
|
40
|
+
exports
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function createFarmServerFnBoundaryModule(code, id) {
|
|
44
|
+
if (hasModuleDirective(code, "use server")) return null;
|
|
45
|
+
const analysis = analyzeServerFnModule(code, id);
|
|
46
|
+
if (!analysis) return null;
|
|
47
|
+
const sourceId = JSON.stringify(id.split("?", 1)[0].replace(/\\/g, "/"));
|
|
48
|
+
const privateNames = analysis.replacements.map((replacement) => replacement.privateName);
|
|
49
|
+
let output = `"use server";
|
|
50
|
+
import { ${privateNames.join(", ")} } from ${sourceId};
|
|
51
|
+
`;
|
|
52
|
+
for (const replacement of analysis.replacements) {
|
|
53
|
+
const declaration = replacement.exportName === "default" ? "export default async function" : "export async function";
|
|
54
|
+
output += `${declaration} ${replacement.wrapperName}(input) {
|
|
55
|
+
return ${replacement.privateName}(input);
|
|
56
|
+
}
|
|
57
|
+
${copyServerFunctionDescriptor(replacement.wrapperName, replacement.privateName, true)}
|
|
58
|
+
`;
|
|
59
|
+
}
|
|
60
|
+
return output;
|
|
61
|
+
}
|
|
62
|
+
function isFarmServerFnBoundaryId(id) {
|
|
63
|
+
return /[?&]farm-server-fns(?:&|$)/.test(id);
|
|
64
|
+
}
|
|
65
|
+
function serverFnBoundaryId(id) {
|
|
66
|
+
return `${id.split("?", 1)[0].replace(/\\/g, "/")}${FARM_SERVER_FN_BOUNDARY_QUERY}`;
|
|
67
|
+
}
|
|
68
|
+
function applyReplacements(code, replacements, mode) {
|
|
69
|
+
let output = code;
|
|
70
|
+
for (const replacement of [...replacements].sort((a, b) => b.start - a.start)) {
|
|
71
|
+
const declaration = `const ${replacement.privateName} = ${replacement.callExpression};
|
|
72
|
+
`;
|
|
73
|
+
const wrapper = mode === "private" ? "" : `${replacement.exportName === "default" ? "export default async function" : "export async function"} ${replacement.wrapperName}(input) {
|
|
74
|
+
return ${replacement.privateName}(input);
|
|
75
|
+
}
|
|
76
|
+
${copyServerFunctionDescriptor(replacement.wrapperName, replacement.privateName, false)}`;
|
|
77
|
+
output = output.slice(0, replacement.start) + declaration + wrapper + output.slice(replacement.end);
|
|
78
|
+
}
|
|
79
|
+
return output;
|
|
80
|
+
}
|
|
81
|
+
function analyzeServerFnModule(code, id) {
|
|
82
|
+
if (!isTransformableModule(id) || !code.includes("createServerFn") && !code.includes("createServerQuery")) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
const factoryNames = findServerFunctionFactoryImportNames(code);
|
|
86
|
+
if (factoryNames.size === 0) return null;
|
|
87
|
+
const reExport = findServerFnReExport(code, factoryNames);
|
|
88
|
+
if (reExport) {
|
|
89
|
+
const factoryName = reExport.factory === "fn" ? "createServerFn" : "createServerQuery";
|
|
90
|
+
const escape = reExport.form === "clause" ? "with an export clause" : reExport.form === "default" ? "as the default export" : "through another exported binding";
|
|
91
|
+
const inlineForm = reExport.form === "default" ? `export default ${factoryName}(...)` : `export const ${reExport.exportName} = ${factoryName}(...)`;
|
|
92
|
+
throw new Error(
|
|
93
|
+
`Server function "${reExport.localName}" cannot be re-exported ${escape}. Export it inline instead: ${inlineForm}.`
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
const replacements = findServerFnExportReplacements(code, factoryNames);
|
|
97
|
+
if (replacements.length === 0) return null;
|
|
98
|
+
if (hasModuleDirective(code, "use client")) {
|
|
99
|
+
throw new Error(
|
|
100
|
+
"createServerFn and createServerQuery exports must live in a server module. Move them out of the 'use client' file."
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
return { replacements };
|
|
104
|
+
}
|
|
105
|
+
function isTransformableModule(id) {
|
|
106
|
+
const cleanId = id.split("?", 1)[0];
|
|
107
|
+
return MODULE_EXT_RE.test(cleanId) && !/\.d\.[cm]?ts$/.test(cleanId);
|
|
108
|
+
}
|
|
109
|
+
function findServerFunctionFactoryImportNames(code) {
|
|
110
|
+
const names = /* @__PURE__ */ new Map();
|
|
111
|
+
for (const match of code.matchAll(SERVER_FUNCTION_FACTORY_IMPORT_RE)) {
|
|
112
|
+
const importClause = match[1] ?? "";
|
|
113
|
+
const namedStart = importClause.indexOf("{");
|
|
114
|
+
const namedEnd = importClause.lastIndexOf("}");
|
|
115
|
+
if (namedStart === -1 || namedEnd === -1 || namedEnd <= namedStart) continue;
|
|
116
|
+
const namedImports = importClause.slice(namedStart + 1, namedEnd).split(",");
|
|
117
|
+
for (const specifier of namedImports) {
|
|
118
|
+
const normalized = specifier.trim().replace(/^type\s+/, "");
|
|
119
|
+
const specifierMatch = normalized.match(
|
|
120
|
+
/^(createServerFn|createServerQuery)(?:\s+as\s+([A-Za-z_$][\w$]*))?$/
|
|
121
|
+
);
|
|
122
|
+
if (specifierMatch) {
|
|
123
|
+
const factory = specifierMatch[1];
|
|
124
|
+
names.set(specifierMatch[2] ?? factory, factory === "createServerFn" ? "fn" : "query");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return names;
|
|
129
|
+
}
|
|
130
|
+
function findServerFnReExport(code, factoryNames) {
|
|
131
|
+
const scannable = stripCommentsAndStrings(code);
|
|
132
|
+
const declarations = /* @__PURE__ */ new Map();
|
|
133
|
+
for (const match of scannable.matchAll(SERVER_FUNCTION_DECLARATION_RE)) {
|
|
134
|
+
const localName = match[1];
|
|
135
|
+
const factoryName = match[2];
|
|
136
|
+
const factory = factoryName ? factoryNames.get(factoryName) : void 0;
|
|
137
|
+
if (localName && factory) declarations.set(localName, factory);
|
|
138
|
+
}
|
|
139
|
+
if (declarations.size === 0) return null;
|
|
140
|
+
for (const match of scannable.matchAll(LOCAL_EXPORT_CLAUSE_RE)) {
|
|
141
|
+
const clause = match[1] ?? "";
|
|
142
|
+
const clauseEnd = (match.index ?? 0) + match[0].length;
|
|
143
|
+
if (scannable.slice(clauseEnd).trimStart().startsWith("from")) continue;
|
|
144
|
+
for (const specifier of clause.split(",")) {
|
|
145
|
+
const parts = specifier.trim().split(/\s+as\s+/);
|
|
146
|
+
const localName = parts[0]?.trim();
|
|
147
|
+
if (!localName || !declarations.has(localName)) continue;
|
|
148
|
+
return {
|
|
149
|
+
localName,
|
|
150
|
+
exportName: parts[1]?.trim() || localName,
|
|
151
|
+
factory: declarations.get(localName),
|
|
152
|
+
form: "clause"
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
for (const match of scannable.matchAll(EXPORT_DEFAULT_ALIAS_RE)) {
|
|
157
|
+
const localName = match[1];
|
|
158
|
+
if (!localName || !declarations.has(localName)) continue;
|
|
159
|
+
return {
|
|
160
|
+
localName,
|
|
161
|
+
exportName: "default",
|
|
162
|
+
factory: declarations.get(localName),
|
|
163
|
+
form: "default"
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
for (const match of scannable.matchAll(EXPORT_BINDING_ALIAS_RE)) {
|
|
167
|
+
const exportName = match[1];
|
|
168
|
+
const localName = match[2];
|
|
169
|
+
if (!exportName || !localName || !declarations.has(localName)) continue;
|
|
170
|
+
return {
|
|
171
|
+
localName,
|
|
172
|
+
exportName,
|
|
173
|
+
factory: declarations.get(localName),
|
|
174
|
+
form: "binding"
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
function stripCommentsAndStrings(code) {
|
|
180
|
+
const output = code.split("");
|
|
181
|
+
let quote = null;
|
|
182
|
+
let lineComment = false;
|
|
183
|
+
let blockComment = false;
|
|
184
|
+
let escaped = false;
|
|
185
|
+
for (let index = 0; index < code.length; index++) {
|
|
186
|
+
const char = code[index];
|
|
187
|
+
const next = code[index + 1];
|
|
188
|
+
if (lineComment) {
|
|
189
|
+
if (char === "\n" || char === "\r") lineComment = false;
|
|
190
|
+
else output[index] = " ";
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
if (blockComment) {
|
|
194
|
+
if (char === "*" && next === "/") {
|
|
195
|
+
blockComment = false;
|
|
196
|
+
output[index] = " ";
|
|
197
|
+
output[index + 1] = " ";
|
|
198
|
+
index++;
|
|
199
|
+
} else if (char !== "\n") {
|
|
200
|
+
output[index] = " ";
|
|
201
|
+
}
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
if (quote) {
|
|
205
|
+
if (escaped) {
|
|
206
|
+
escaped = false;
|
|
207
|
+
output[index] = " ";
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
if (char === "\\") {
|
|
211
|
+
escaped = true;
|
|
212
|
+
output[index] = " ";
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
if (char === quote) {
|
|
216
|
+
quote = null;
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
if (char !== "\n") output[index] = " ";
|
|
220
|
+
continue;
|
|
221
|
+
}
|
|
222
|
+
if (char === "/" && next === "/") {
|
|
223
|
+
lineComment = true;
|
|
224
|
+
output[index] = " ";
|
|
225
|
+
continue;
|
|
226
|
+
}
|
|
227
|
+
if (char === "/" && next === "*") {
|
|
228
|
+
blockComment = true;
|
|
229
|
+
output[index] = " ";
|
|
230
|
+
continue;
|
|
231
|
+
}
|
|
232
|
+
if (char === "'" || char === '"' || char === "`") {
|
|
233
|
+
quote = char;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return output.join("");
|
|
237
|
+
}
|
|
238
|
+
function findServerFnExportReplacements(code, factoryNames) {
|
|
239
|
+
const replacements = [];
|
|
240
|
+
for (const match of code.matchAll(EXPORT_SERVER_FUNCTION_FACTORY_RE)) {
|
|
241
|
+
const exportName = match[1];
|
|
242
|
+
const calleeName = match[2];
|
|
243
|
+
const factory = calleeName ? factoryNames.get(calleeName) : void 0;
|
|
244
|
+
if (!exportName || !calleeName || !factory) continue;
|
|
245
|
+
const openParenIndex = (match.index ?? 0) + match[0].length - 1;
|
|
246
|
+
const callEnd = findMatchingParen(code, openParenIndex);
|
|
247
|
+
if (callEnd === -1) continue;
|
|
248
|
+
let declarationEnd = callEnd + 1;
|
|
249
|
+
while (/\s/.test(code[declarationEnd] ?? "")) declarationEnd++;
|
|
250
|
+
if (code[declarationEnd] === ";") declarationEnd++;
|
|
251
|
+
const calleeIndex = code.indexOf(calleeName, match.index);
|
|
252
|
+
replacements.push({
|
|
253
|
+
start: match.index ?? 0,
|
|
254
|
+
end: declarationEnd,
|
|
255
|
+
exportName,
|
|
256
|
+
privateName: `$$farm_server_${factory}_${exportName}`,
|
|
257
|
+
wrapperName: exportName,
|
|
258
|
+
callExpression: code.slice(calleeIndex, callEnd + 1)
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
for (const match of code.matchAll(EXPORT_DEFAULT_SERVER_FUNCTION_FACTORY_RE)) {
|
|
262
|
+
const calleeName = match[1];
|
|
263
|
+
const factory = calleeName ? factoryNames.get(calleeName) : void 0;
|
|
264
|
+
if (!calleeName || !factory) continue;
|
|
265
|
+
const openParenIndex = (match.index ?? 0) + match[0].length - 1;
|
|
266
|
+
const callEnd = findMatchingParen(code, openParenIndex);
|
|
267
|
+
if (callEnd === -1) continue;
|
|
268
|
+
let declarationEnd = callEnd + 1;
|
|
269
|
+
while (/\s/.test(code[declarationEnd] ?? "")) declarationEnd++;
|
|
270
|
+
if (code[declarationEnd] === ";") declarationEnd++;
|
|
271
|
+
const calleeIndex = code.indexOf(calleeName, match.index);
|
|
272
|
+
const privateName = `$$farm_server_${factory}_default`;
|
|
273
|
+
replacements.push({
|
|
274
|
+
start: match.index ?? 0,
|
|
275
|
+
end: declarationEnd,
|
|
276
|
+
exportName: "default",
|
|
277
|
+
privateName,
|
|
278
|
+
wrapperName: `${privateName}_export`,
|
|
279
|
+
callExpression: code.slice(calleeIndex, callEnd + 1)
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return replacements;
|
|
283
|
+
}
|
|
284
|
+
function copyServerFunctionDescriptor(target, source, lazy) {
|
|
285
|
+
const key = 'Symbol.for("farm.server-function.descriptor")';
|
|
286
|
+
return lazy ? `Object.defineProperty(${target}, ${key}, { get: () => ${source}[${key}] });` : `Object.defineProperty(${target}, ${key}, { value: ${source}[${key}] });`;
|
|
287
|
+
}
|
|
288
|
+
function hasModuleDirective(code, directive) {
|
|
289
|
+
for (const match of code.matchAll(DECLARATION_RE)) {
|
|
290
|
+
const value = match[2];
|
|
291
|
+
if (value === directive) return true;
|
|
292
|
+
if (value !== "use strict" && value !== "use client" && value !== "use server") return false;
|
|
293
|
+
}
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
function findMatchingParen(code, openParenIndex) {
|
|
297
|
+
let depth = 0;
|
|
298
|
+
let quote = null;
|
|
299
|
+
let lineComment = false;
|
|
300
|
+
let blockComment = false;
|
|
301
|
+
let escaped = false;
|
|
302
|
+
for (let index = openParenIndex; index < code.length; index++) {
|
|
303
|
+
const char = code[index];
|
|
304
|
+
const next = code[index + 1];
|
|
305
|
+
if (lineComment) {
|
|
306
|
+
if (char === "\n" || char === "\r") lineComment = false;
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
if (blockComment) {
|
|
310
|
+
if (char === "*" && next === "/") {
|
|
311
|
+
blockComment = false;
|
|
312
|
+
index++;
|
|
313
|
+
}
|
|
314
|
+
continue;
|
|
315
|
+
}
|
|
316
|
+
if (quote) {
|
|
317
|
+
if (escaped) {
|
|
318
|
+
escaped = false;
|
|
319
|
+
continue;
|
|
320
|
+
}
|
|
321
|
+
if (char === "\\") {
|
|
322
|
+
escaped = true;
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
if (char === quote) {
|
|
326
|
+
quote = null;
|
|
327
|
+
}
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
if (char === "/" && next === "/") {
|
|
331
|
+
lineComment = true;
|
|
332
|
+
index++;
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
335
|
+
if (char === "/" && next === "*") {
|
|
336
|
+
blockComment = true;
|
|
337
|
+
index++;
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
if (char === "'" || char === '"' || char === "`") {
|
|
341
|
+
quote = char;
|
|
342
|
+
continue;
|
|
343
|
+
}
|
|
344
|
+
if (char === "(") depth++;
|
|
345
|
+
if (char === ")") {
|
|
346
|
+
depth--;
|
|
347
|
+
if (depth === 0) return index;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
return -1;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
export {
|
|
354
|
+
FARM_SERVER_FN_BOUNDARY_QUERY,
|
|
355
|
+
transformFarmServerFns,
|
|
356
|
+
createFarmServerFnBoundaryModule,
|
|
357
|
+
isFarmServerFnBoundaryId
|
|
358
|
+
};
|
|
@@ -16,7 +16,27 @@ function searchParamsToObject(searchParams) {
|
|
|
16
16
|
});
|
|
17
17
|
return output;
|
|
18
18
|
}
|
|
19
|
+
var RESERVED_SEARCH_KEYS = /* @__PURE__ */ new Set([
|
|
20
|
+
"then",
|
|
21
|
+
"catch",
|
|
22
|
+
"finally",
|
|
23
|
+
"__proto__",
|
|
24
|
+
"constructor",
|
|
25
|
+
"prototype"
|
|
26
|
+
]);
|
|
27
|
+
function createFarmSearchParams(search) {
|
|
28
|
+
const promise = Promise.resolve(search);
|
|
29
|
+
for (const key of Object.keys(search)) {
|
|
30
|
+
if (RESERVED_SEARCH_KEYS.has(key)) continue;
|
|
31
|
+
Object.defineProperty(promise, key, {
|
|
32
|
+
value: search[key],
|
|
33
|
+
enumerable: true
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return promise;
|
|
37
|
+
}
|
|
19
38
|
|
|
20
39
|
export {
|
|
21
|
-
searchParamsToObject
|
|
40
|
+
searchParamsToObject,
|
|
41
|
+
createFarmSearchParams
|
|
22
42
|
};
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunk2IAPKPEBcjs = require('./chunk-2IAPKPEB.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunkMPU5DOXXcjs = require('./chunk-MPU5DOXX.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkFK25QSVCcjs = require('./chunk-FK25QSVC.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
@@ -32,7 +32,7 @@ function createServerQuery(options) {
|
|
|
32
32
|
throw new TypeError("createServerQuery requires a key function");
|
|
33
33
|
}
|
|
34
34
|
const staleTime = normalizeServerQueryStaleTime(options.staleTime);
|
|
35
|
-
const execute =
|
|
35
|
+
const execute = _chunk2IAPKPEBcjs.createServerFn.call(void 0, {
|
|
36
36
|
input: options.input,
|
|
37
37
|
middleware: options.middleware,
|
|
38
38
|
handler: async (context) => {
|
|
@@ -42,7 +42,7 @@ function createServerQuery(options) {
|
|
|
42
42
|
const cacheKey = _chunkDXUXQP2Tcjs.createFarmCacheKey.call(void 0, ["route-data", routeKey]);
|
|
43
43
|
const producer = async () => {
|
|
44
44
|
const value = await options.handler(context);
|
|
45
|
-
return
|
|
45
|
+
return _chunk2IAPKPEBcjs._parseServerFnSchema.call(void 0, options.output, value, "output", "createServerQuery");
|
|
46
46
|
};
|
|
47
47
|
let data;
|
|
48
48
|
let updatedAt;
|
|
@@ -67,7 +67,7 @@ function createServerQuery(options) {
|
|
|
67
67
|
});
|
|
68
68
|
const query = async (input) => {
|
|
69
69
|
const result = await execute(input);
|
|
70
|
-
return
|
|
70
|
+
return _chunkFK25QSVCcjs.getServerActionExecutionContext.call(void 0, ) ? result : result.data;
|
|
71
71
|
};
|
|
72
72
|
Object.defineProperties(query, {
|
|
73
73
|
[FARM_SERVER_QUERY_SYMBOL]: {
|
|
@@ -87,10 +87,10 @@ function createServerQuery(options) {
|
|
|
87
87
|
enumerable: false
|
|
88
88
|
}
|
|
89
89
|
});
|
|
90
|
-
|
|
90
|
+
_chunk2IAPKPEBcjs._attachServerFunctionDescriptor.call(void 0,
|
|
91
91
|
query,
|
|
92
|
-
|
|
93
|
-
const result = await
|
|
92
|
+
_chunk2IAPKPEBcjs.createServerFunctionDescriptor.call(void 0, "query", options, async (value) => {
|
|
93
|
+
const result = await _chunk2IAPKPEBcjs._runServerFunctionForCaller.call(void 0,
|
|
94
94
|
execute,
|
|
95
95
|
value
|
|
96
96
|
);
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
discoverFarmDocsPages,
|
|
3
3
|
getFarmDocsMarkdownPath,
|
|
4
|
+
getFarmDocsRoots,
|
|
4
5
|
loadFarmDocsPage,
|
|
5
6
|
resolveFarmDocsContentDir,
|
|
6
7
|
toFarmDocsMarkdownPage
|
|
7
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-EIMK7D2D.mjs";
|
|
8
9
|
import {
|
|
9
10
|
docsEngine,
|
|
10
11
|
loadFarmDocsEngine
|
|
11
12
|
} from "./chunk-VE3FWJBO.mjs";
|
|
12
13
|
import {
|
|
13
14
|
resolveDocsConfig
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-KMB5BMFX.mjs";
|
|
15
16
|
import {
|
|
16
17
|
getFarmDocsAdapterConfigModule,
|
|
17
18
|
isSecretDocsConfigKey
|
|
@@ -26,7 +27,7 @@ function hasFarmDocsRuntimeAdapter(docs) {
|
|
|
26
27
|
}
|
|
27
28
|
function assertFarmDocsAdapterServesNoGuardedPages(docs, options, isPathGuarded) {
|
|
28
29
|
if (!isPathGuarded || !hasFarmDocsRuntimeAdapter(docs)) return;
|
|
29
|
-
const guarded = discoverFarmDocsPages(resolveFarmDocsContentDir(
|
|
30
|
+
const guarded = getFarmDocsRoots(docs).flatMap((root) => discoverFarmDocsPages(resolveFarmDocsContentDir(root, options), root)).filter((page) => isPathGuarded(page.href) || isPathGuarded(getFarmDocsMarkdownPath(page.href))).map((page) => page.href);
|
|
30
31
|
if (guarded.length === 0) return;
|
|
31
32
|
throw new Error(
|
|
32
33
|
`Docs pages behind a path guard (${guarded.join(", ")}) would be public: the docs adapter ${JSON.stringify(docs.adapter.id)} serves their content in llms-full.txt, search, Markdown, and MCP without running the app's guards. Move those pages out of the docs content directory, or set docs.adapter = false to use Farm's built-in docs runtime, which keeps guarded pages off anonymous surfaces.`
|
|
@@ -39,9 +40,17 @@ async function loadFarmDocsConfigModule(docs, loadModule) {
|
|
|
39
40
|
const config = loaded?.default ?? loaded;
|
|
40
41
|
return config && typeof config === "object" ? config : void 0;
|
|
41
42
|
}
|
|
43
|
+
function getFarmDocsConfigModuleRoot(moduleConfig, entry) {
|
|
44
|
+
const { roots, ...shared } = moduleConfig;
|
|
45
|
+
const route = entry.replace(/^\/+|\/+$/g, "");
|
|
46
|
+
const own = Array.isArray(roots) ? roots.find(
|
|
47
|
+
(root) => Boolean(root) && typeof root === "object" && typeof root.entry === "string" && root.entry.replace(/^\/+|\/+$/g, "") === route
|
|
48
|
+
) : void 0;
|
|
49
|
+
return own ? { ...shared, ...own } : shared;
|
|
50
|
+
}
|
|
42
51
|
function createFarmDocsAdapterRuntimeConfig(docs, options, moduleConfig) {
|
|
43
52
|
return {
|
|
44
|
-
...moduleConfig ? { ...moduleConfig, ...docs.configOverrides } : docs.runtimeConfig ?? docs.config,
|
|
53
|
+
...moduleConfig ? { ...getFarmDocsConfigModuleRoot(moduleConfig, docs.entry), ...docs.configOverrides } : docs.runtimeConfig ?? docs.config,
|
|
45
54
|
entry: docs.config.entry || docs.entry.replace(/^\/+|\/+$/g, "") || "docs",
|
|
46
55
|
docsPath: docs.entry,
|
|
47
56
|
contentDir: resolveFarmDocsContentDir(docs, options)
|
|
@@ -56,6 +65,11 @@ async function compileFarmDocsAdapterEdgeManifest(docs, options) {
|
|
|
56
65
|
if (!hasFarmDocsRuntimeAdapter(docs)) {
|
|
57
66
|
throw new Error("Farm docs adapter requires server and react runtime entrypoints.");
|
|
58
67
|
}
|
|
68
|
+
if (docs.roots?.length) {
|
|
69
|
+
throw new Error(
|
|
70
|
+
"Several docs roots are not supported on edge deployments yet; they need a Node.js deployment target."
|
|
71
|
+
);
|
|
72
|
+
}
|
|
59
73
|
const compilerEntry = docs.adapter.edgeCompiler;
|
|
60
74
|
if (!compilerEntry) {
|
|
61
75
|
throw new Error(
|
|
@@ -96,6 +110,27 @@ async function compileFarmDocsAdapterEdgeManifest(docs, options) {
|
|
|
96
110
|
}
|
|
97
111
|
return manifest;
|
|
98
112
|
}
|
|
113
|
+
async function listFarmDocsAdapterPages(docs, options) {
|
|
114
|
+
if (!hasFarmDocsRuntimeAdapter(docs)) return null;
|
|
115
|
+
const requireFromApp = createRequire(path.join(options.root, "package.json"));
|
|
116
|
+
const serverModule = await import(
|
|
117
|
+
/* @vite-ignore */
|
|
118
|
+
pathToFileURL(requireFromApp.resolve(docs.adapter.server)).href
|
|
119
|
+
);
|
|
120
|
+
if (typeof serverModule.listFarmDocsPages !== "function") return null;
|
|
121
|
+
const listPages = serverModule.listFarmDocsPages;
|
|
122
|
+
const pages = (await Promise.all(
|
|
123
|
+
getFarmDocsRoots(docs).map(
|
|
124
|
+
(root) => listPages(createFarmDocsAdapterRuntimeConfig(root, options), { rootDir: options.root })
|
|
125
|
+
)
|
|
126
|
+
)).flat();
|
|
127
|
+
if (!Array.isArray(pages) || pages.some((page) => typeof page !== "string" || !page.startsWith("/"))) {
|
|
128
|
+
throw new Error(
|
|
129
|
+
`Farm docs adapter ${JSON.stringify(docs.adapter.id)} listed docs pages that are not absolute paths.`
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
return [...new Set(pages)];
|
|
133
|
+
}
|
|
99
134
|
async function createFarmDocsAdapterHandler(docs, options) {
|
|
100
135
|
if (!hasFarmDocsRuntimeAdapter(docs)) {
|
|
101
136
|
throw new Error("Farm docs adapter requires server and react runtime entrypoints.");
|
|
@@ -104,26 +139,36 @@ async function createFarmDocsAdapterHandler(docs, options) {
|
|
|
104
139
|
const serverModule = await options.loadModule(
|
|
105
140
|
docs.adapter.server
|
|
106
141
|
);
|
|
107
|
-
|
|
142
|
+
const multiRoot = Boolean(docs.roots?.length);
|
|
143
|
+
const handlerExport = multiRoot ? "createFarmDocsMultiRuntimeHandler" : "createFarmDocsRuntimeHandler";
|
|
144
|
+
if (typeof serverModule[handlerExport] !== "function") {
|
|
108
145
|
const adapterId = JSON.stringify(docs.adapter.id);
|
|
109
146
|
const serverEntry = JSON.stringify(docs.adapter.server);
|
|
110
147
|
throw new Error(
|
|
111
|
-
`Farm docs adapter ${adapterId} does not export
|
|
148
|
+
`Farm docs adapter ${adapterId} does not export ${handlerExport} from ${serverEntry}. ` + (multiRoot ? "Upgrade the adapter to a release that serves several docs roots, or remove the roots." : "Upgrade the adapter to a runtime-enabled release.")
|
|
112
149
|
);
|
|
113
150
|
}
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
options,
|
|
117
|
-
await loadFarmDocsConfigModule(docs, options.loadModule)
|
|
118
|
-
);
|
|
119
|
-
return serverModule.createFarmDocsRuntimeHandler(runtimeConfig, {
|
|
151
|
+
const moduleConfig = await loadFarmDocsConfigModule(docs, options.loadModule);
|
|
152
|
+
const handlerOptions = {
|
|
120
153
|
rootDir: options.root,
|
|
121
154
|
clientEntry: options.clientEntry,
|
|
122
155
|
stylesheets: getFarmDocsAdapterStylesheets(options),
|
|
123
156
|
resolveLayoutFonts: options.resolveLayoutFonts,
|
|
124
157
|
loadReactModule: () => options.loadModule(docs.adapter.react),
|
|
125
158
|
...options.registerMCPServer ? { registerMCPServer: options.registerMCPServer } : {}
|
|
126
|
-
}
|
|
159
|
+
};
|
|
160
|
+
if (multiRoot) {
|
|
161
|
+
return serverModule.createFarmDocsMultiRuntimeHandler(
|
|
162
|
+
getFarmDocsRoots(docs).map(
|
|
163
|
+
(root) => createFarmDocsAdapterRuntimeConfig(root, options, moduleConfig)
|
|
164
|
+
),
|
|
165
|
+
handlerOptions
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
return serverModule.createFarmDocsRuntimeHandler(
|
|
169
|
+
createFarmDocsAdapterRuntimeConfig(docs, options, moduleConfig),
|
|
170
|
+
handlerOptions
|
|
171
|
+
);
|
|
127
172
|
}
|
|
128
173
|
|
|
129
174
|
// src/docs/api.ts
|
|
@@ -658,7 +703,9 @@ function createFarmDocsAPIHandler(options = {}, cloudIntegration) {
|
|
|
658
703
|
export {
|
|
659
704
|
hasFarmDocsRuntimeAdapter,
|
|
660
705
|
assertFarmDocsAdapterServesNoGuardedPages,
|
|
706
|
+
getFarmDocsConfigModuleRoot,
|
|
661
707
|
compileFarmDocsAdapterEdgeManifest,
|
|
708
|
+
listFarmDocsAdapterPages,
|
|
662
709
|
createFarmDocsAdapterHandler,
|
|
663
710
|
isFarmDocsAPIRequest,
|
|
664
711
|
createDocsAPI,
|
|
@@ -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 _chunkRMPNYUGTcjs = require('./chunk-RMPNYUGT.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var _chunkWJFFPXCVcjs = require('./chunk-WJFFPXCV.cjs');
|
|
@@ -273,7 +273,7 @@ function requestEvent(metadata, method, status, durationMs) {
|
|
|
273
273
|
id: uuid(),
|
|
274
274
|
requestId: metadata.id,
|
|
275
275
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
276
|
-
route: routeTemplate(
|
|
276
|
+
route: routeTemplate(_chunkRMPNYUGTcjs.getFarmRouteLabel.call(void 0, metadata.route)),
|
|
277
277
|
agent: metadata.agent,
|
|
278
278
|
kind: "request",
|
|
279
279
|
method,
|
|
@@ -286,7 +286,7 @@ function toolEvent(metadata, event) {
|
|
|
286
286
|
id: uuid(),
|
|
287
287
|
requestId: metadata.id,
|
|
288
288
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
289
|
-
route: routeTemplate(
|
|
289
|
+
route: routeTemplate(_chunkRMPNYUGTcjs.getFarmRouteLabel.call(void 0, metadata.route)),
|
|
290
290
|
agent: metadata.agent,
|
|
291
291
|
kind: "mcp.tool",
|
|
292
292
|
tool: event.tool,
|