@farm.js/core 0.1.50 → 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-9BMbRgg_.d.ts → agent-mcp-BBMfNpsC.d.ts} +1 -1
- package/dist/{agent-mcp-CIMH324y.d.mts → agent-mcp-D44ip11f.d.mts} +1 -1
- package/dist/agent-runtime.d.mts +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/{analyzer-DDW34OMC.mjs → analyzer-HOUCQR3K.mjs} +1 -1
- package/dist/{analyzer-CN7C74WX.cjs → analyzer-VKUDHNDF.cjs} +2 -2
- package/dist/api/route-manager.cjs +5 -5
- package/dist/api/route-manager.d.mts +3 -3
- package/dist/api/route-manager.d.ts +3 -3
- package/dist/api/route-manager.mjs +4 -4
- package/dist/api/runtime.d.mts +2 -2
- package/dist/api/runtime.d.ts +2 -2
- package/dist/api.cjs +6 -6
- package/dist/api.d.mts +3 -3
- package/dist/api.d.ts +3 -3
- package/dist/api.mjs +5 -5
- package/dist/{app-BWibTHVT.d.ts → app-CourU3rQ.d.ts} +4 -4
- package/dist/{app-DVJ13FPA.d.mts → app-aeD4s_mg.d.mts} +4 -4
- package/dist/{app-manifest-CQDJOKL2.d.mts → app-manifest-BC6mFn5A.d.mts} +1 -1
- package/dist/{app-manifest-D0kaXdwu.d.ts → app-manifest-LzjoNPeq.d.ts} +1 -1
- package/dist/app-markdown.d.mts +2 -2
- package/dist/app-markdown.d.ts +2 -2
- package/dist/base-path-BOUV5ozD.d.mts +10 -0
- package/dist/base-path-BOUV5ozD.d.ts +10 -0
- package/dist/{chunk-RWT2BTJT.cjs → chunk-2IAPKPEB.cjs} +6 -6
- package/dist/{chunk-2G63BIRL.mjs → chunk-2KVDHNQS.mjs} +8 -11
- package/dist/{chunk-76R5GJER.mjs → chunk-3HA7PP72.mjs} +2 -2
- package/dist/{chunk-NJVFPJ2Y.cjs → chunk-3OWVWZ6R.cjs} +28 -2
- package/dist/{chunk-KO2NWUKN.mjs → chunk-4GJJ65RB.mjs} +9 -1
- 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-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-WB6XES4V.mjs → chunk-ALEUMLJN.mjs} +34 -5
- package/dist/{chunk-WVBUXNBX.mjs → chunk-AMRK3P6W.mjs} +123 -47
- package/dist/{chunk-L6QDME5Z.cjs → chunk-B3GZAQSC.cjs} +3 -3
- package/dist/chunk-CKPTIEDX.cjs +12 -0
- package/dist/{chunk-B5S2JS6M.cjs → chunk-DWW3AMJX.cjs} +288 -255
- 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-WQGRD5BJ.cjs → chunk-EX6ZSN5P.cjs} +1 -16
- package/dist/{chunk-474FO3UE.cjs → chunk-F42U3R4F.cjs} +170 -163
- 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-ZLOQQ2UF.mjs → chunk-I2ZA5SXS.mjs} +60 -27
- package/dist/{chunk-X2EL3BLH.cjs → chunk-IOUOGRDX.cjs} +11 -3
- package/dist/{chunk-CBJKDB6F.mjs → chunk-IRSS4HS4.mjs} +1 -1
- package/dist/{chunk-GOOK2J2W.cjs → chunk-J22JD5YJ.cjs} +2 -2
- package/dist/{chunk-2DEPNLXK.mjs → chunk-JF5CNHHF.mjs} +4 -4
- package/dist/{chunk-VOZ5DI7D.mjs → chunk-JWI5PUO2.mjs} +6 -2
- package/dist/{chunk-YAXOEAND.cjs → chunk-KHXAJ2KA.cjs} +6 -6
- 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-E2BMCNMJ.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-LYWAGXXW.cjs → chunk-O3MMJPC2.cjs} +12 -12
- package/dist/{chunk-FACTMUPI.cjs → chunk-PDJSL7PL.cjs} +30 -19
- package/dist/{chunk-XLLVWLWO.mjs → chunk-PIHKO25G.mjs} +1 -1
- package/dist/chunk-PIUTGRDI.cjs +358 -0
- package/dist/{chunk-KGP76FSV.mjs → chunk-PPDHCRTC.mjs} +1 -1
- package/dist/{chunk-C73RIAEF.mjs → chunk-QI5AQMEE.mjs} +17 -6
- package/dist/{chunk-F5LERVY3.cjs → chunk-QK3HBOTG.cjs} +10 -10
- package/dist/{chunk-Q3UU2KXC.mjs → chunk-QMDU6QHN.mjs} +4 -1
- package/dist/{chunk-JJOWY3XD.mjs → chunk-R5P4KFPM.mjs} +1 -1
- package/dist/{chunk-IWJKJDNW.mjs → chunk-S5ZA2T2W.mjs} +35 -28
- package/dist/{chunk-PXEXOQ5R.mjs → chunk-SHS6KXOZ.mjs} +1 -1
- package/dist/{chunk-ETF5C6HR.cjs → chunk-SJ23LJ3N.cjs} +3 -3
- package/dist/{chunk-KZH6YLND.cjs → chunk-SO3T6T4I.cjs} +427 -351
- package/dist/{chunk-JHXJBNLY.cjs → chunk-SUCDVKUB.cjs} +21 -1
- package/dist/{chunk-7ONZDKVY.mjs → chunk-T4EW7AAD.mjs} +2 -2
- package/dist/{chunk-UY6HS5PF.cjs → chunk-USL2ANCB.cjs} +8 -8
- package/dist/{chunk-4T25YCZ5.cjs → chunk-VIFPE5RG.cjs} +14 -14
- package/dist/{chunk-HYN3LLG7.cjs → chunk-VO6NLTV4.cjs} +3 -3
- package/dist/{chunk-XN2MB4QZ.cjs → chunk-VQJYGZNX.cjs} +4 -4
- package/dist/{chunk-5PKDHKQP.cjs → chunk-WFVSAT7Y.cjs} +6 -4
- package/dist/{chunk-X3HOVNHI.mjs → chunk-WSY2JD7O.mjs} +6 -6
- package/dist/{chunk-SHJJM6OG.mjs → chunk-WVX3BUNJ.mjs} +1 -1
- package/dist/chunk-X3EFRVXY.mjs +12 -0
- package/dist/{chunk-UCQ52TJY.mjs → chunk-X3JNB2TB.mjs} +1 -1
- package/dist/{chunk-RHOR2J6V.cjs → chunk-X5BCMLGP.cjs} +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-HWCHIBJZ.mjs → chunk-XWC5NAHV.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-IUBDMDZZ.cjs → chunk-Y7TLL65B.cjs} +4 -4
- package/dist/{chunk-M7LKA632.mjs → chunk-YLNBWUVS.mjs} +1 -1
- package/dist/chunk-Z5A6CNV2.mjs +60 -0
- package/dist/chunk-Z64V4WZI.mjs +17 -0
- package/dist/{chunk-2VCC3GVC.mjs → chunk-ZF3GX4O7.mjs} +1 -1
- package/dist/{client-plugins-BPfltM5m.d.ts → client-plugins-CFBEfVPO.d.ts} +20 -3
- package/dist/{client-plugins-D4RO59f0.d.mts → client-plugins-cqy_dQd0.d.mts} +20 -3
- package/dist/client-plugins.d.mts +1 -1
- package/dist/client-plugins.d.ts +1 -1
- package/dist/client.cjs +5 -4
- package/dist/client.d.mts +6 -6
- package/dist/client.d.ts +6 -6
- package/dist/client.mjs +4 -3
- package/dist/config.d.mts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/cron.cjs +4 -4
- package/dist/cron.mjs +3 -3
- package/dist/desktop.d.mts +2 -2
- package/dist/desktop.d.ts +2 -2
- package/dist/{devtools-STG7HPRV.mjs → devtools-4MLL3RAL.mjs} +6 -6
- package/dist/{devtools-N5XTOECL.cjs → devtools-4ZLMD454.cjs} +8 -8
- package/dist/docs.cjs +10 -10
- package/dist/docs.d.mts +2 -2
- package/dist/docs.d.ts +2 -2
- package/dist/docs.mjs +9 -9
- package/dist/{index-k8o8eUOd.d.mts → index-BYkNbeQV.d.mts} +1 -1
- package/dist/{index-C-N3Pwg-.d.ts → index-BxjN_UDZ.d.ts} +1 -1
- package/dist/index.cjs +42 -40
- package/dist/index.d.mts +16 -16
- package/dist/index.d.ts +16 -16
- package/dist/index.mjs +41 -39
- package/dist/integrations.d.mts +1 -1
- package/dist/integrations.d.ts +1 -1
- package/dist/internal/app-markdown-runtime.d.mts +2 -2
- package/dist/internal/app-markdown-runtime.d.ts +2 -2
- package/dist/internal/build-runtime.cjs +32 -31
- package/dist/internal/build-runtime.d.mts +3 -3
- package/dist/internal/build-runtime.d.ts +3 -3
- package/dist/internal/build-runtime.mjs +31 -30
- package/dist/internal/cli-runtime.cjs +15 -15
- package/dist/internal/cli-runtime.mjs +14 -14
- 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 +5 -5
- package/dist/internal/client-runtime.d.ts +5 -5
- package/dist/internal/client-runtime.mjs +3 -1
- package/dist/internal/compression-runtime.d.mts +1 -1
- package/dist/internal/compression-runtime.d.ts +1 -1
- package/dist/internal/config-runtime.cjs +8 -8
- package/dist/internal/config-runtime.d.mts +3 -3
- package/dist/internal/config-runtime.d.ts +3 -3
- package/dist/internal/config-runtime.mjs +7 -7
- package/dist/internal/form-actions.cjs +4 -3
- 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/islands-runtime.cjs +56 -0
- package/dist/internal/islands-runtime.mjs +57 -1
- package/dist/internal/product-telemetry-runtime.cjs +2 -2
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.cjs +11 -8
- package/dist/internal/production-runtime.d.mts +24 -11
- package/dist/internal/production-runtime.d.ts +24 -11
- package/dist/internal/production-runtime.mjs +10 -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/markdown.d.mts +1 -1
- package/dist/markdown.d.ts +1 -1
- package/dist/middleware.cjs +7 -7
- package/dist/middleware.d.mts +3 -3
- package/dist/middleware.d.ts +3 -3
- package/dist/middleware.mjs +6 -6
- package/dist/mobile.d.mts +30 -3
- package/dist/mobile.d.ts +30 -3
- package/dist/{navigation-delegate-8xg3Zvp4.d.ts → navigation-delegate-BU4xqdnw.d.ts} +1 -1
- package/dist/{navigation-delegate-ji6elCKy.d.mts → navigation-delegate-DLhbfEN4.d.mts} +1 -1
- package/dist/navigation.d.mts +4 -4
- package/dist/navigation.d.ts +4 -4
- package/dist/{nitro-YPSZBYDK.cjs → nitro-CK7M4RMY.cjs} +11 -11
- package/dist/{nitro-2Q5NVY7L.mjs → nitro-R444AF3O.mjs} +7 -7
- package/dist/plugin.cjs +25 -23
- package/dist/plugin.d.mts +3 -3
- package/dist/plugin.d.ts +3 -3
- package/dist/plugin.mjs +24 -22
- package/dist/{production-runtime-TdKaYRj0.d.ts → production-runtime-C78A8YgK.d.ts} +1 -1
- package/dist/{production-runtime-DXnQQkQf.d.mts → production-runtime-DLA4J5WG.d.mts} +1 -1
- package/dist/{programmatic-routes-client-BwiTndEC.d.ts → programmatic-routes-client-CBqkNhBy.d.ts} +2 -2
- package/dist/{programmatic-routes-client-Dh1SDLSM.d.mts → programmatic-routes-client-NpqGBn-i.d.mts} +2 -2
- package/dist/{render-plan-BvCGXF6K.d.mts → render-plan-C9sWvDTv.d.mts} +1 -1
- package/dist/{render-plan-BPbwRbuN.d.ts → render-plan-CrqcBbnV.d.ts} +1 -1
- package/dist/renderer-client.cjs +8 -6
- package/dist/renderer-client.d.mts +4 -4
- package/dist/renderer-client.d.ts +4 -4
- package/dist/renderer-client.mjs +4 -2
- package/dist/{request-B8PGTZNR.d.ts → request-BizeuqD7.d.ts} +1 -1
- package/dist/{request-C_xTkJib.d.mts → request-WwB1-Uim.d.mts} +1 -1
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/{route-rendering-RNtcj607.d.ts → route-rendering-BGhJN64l.d.ts} +1 -1
- package/dist/{route-rendering-DlddURL1.d.mts → route-rendering-S6NFjnx4.d.mts} +1 -1
- package/dist/{router-B97eB0Mq.d.mts → router-BIheIy9G.d.mts} +1 -1
- package/dist/{router-qUVaoEN8.d.ts → router-BUD_j2EL.d.ts} +1 -1
- package/dist/routes.cjs +3 -2
- package/dist/routes.d.mts +2 -2
- package/dist/routes.d.ts +2 -2
- package/dist/routes.mjs +2 -1
- package/dist/{rsc-pipeline-L4XOZ2TE.cjs → rsc-pipeline-JRGUZBYM.cjs} +11 -11
- package/dist/{rsc-pipeline-T3775JUA.mjs → rsc-pipeline-OLAVIKI3.mjs} +10 -10
- package/dist/{runtime-C8GUnNeP.d.ts → runtime-CWP-21hP.d.ts} +1 -1
- package/dist/{runtime-CaDswfWi.d.mts → runtime-CgJwe6H_.d.mts} +1 -1
- package/dist/{runtime-BIBGJO7V.cjs → runtime-G23RSLEK.cjs} +14 -14
- package/dist/{runtime-HRSFC4ZC.mjs → runtime-OGCHDACZ.mjs} +12 -12
- 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.mjs +1 -1
- package/dist/server-fn.cjs +3 -3
- package/dist/server-fn.mjs +2 -2
- package/dist/server-plugins.d.mts +2 -2
- package/dist/server-plugins.d.ts +2 -2
- package/dist/server-query-client.cjs +4 -3
- package/dist/server-query-client.mjs +3 -2
- package/dist/server-query.cjs +4 -4
- package/dist/server-query.mjs +3 -3
- package/dist/server.cjs +57 -55
- package/dist/server.d.mts +9 -9
- package/dist/server.d.ts +9 -9
- package/dist/server.mjs +34 -32
- package/dist/{spa-router-Dlv5ofg0.d.mts → spa-router-CVOL0Vrq.d.mts} +2 -2
- package/dist/{spa-router-qapSboKz.d.ts → spa-router-Kytv4jSB.d.ts} +2 -2
- package/dist/testing.cjs +12 -11
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.mjs +9 -8
- package/dist/{utils-A-cYF81u.d.ts → utils-DbyXlzaj.d.ts} +1 -1
- package/dist/{utils-DyvlSxFk.d.mts → utils-Dsa1HZ7X.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +25 -23
- package/dist/vite.d.mts +4 -4
- package/dist/vite.d.ts +4 -4
- package/dist/vite.mjs +24 -22
- package/dist/workflows.cjs +4 -4
- package/dist/workflows.mjs +3 -3
- package/package.json +8 -3
- 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
|
@@ -56,13 +56,13 @@ var _chunk2HW5LWAHcjs = require('./chunk-2HW5LWAH.cjs');
|
|
|
56
56
|
var _chunkDQJ2CIH7cjs = require('./chunk-DQJ2CIH7.cjs');
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
var
|
|
59
|
+
var _chunkXB24LZWIcjs = require('./chunk-XB24LZWI.cjs');
|
|
60
60
|
|
|
61
61
|
|
|
62
|
-
var
|
|
62
|
+
var _chunkXYL4HSVCcjs = require('./chunk-XYL4HSVC.cjs');
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
var
|
|
65
|
+
var _chunkFK25QSVCcjs = require('./chunk-FK25QSVC.cjs');
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
var _chunkWT6RAN2Icjs = require('./chunk-WT6RAN2I.cjs');
|
|
@@ -80,7 +80,7 @@ var _chunk5DX3O6TTcjs = require('./chunk-5DX3O6TT.cjs');
|
|
|
80
80
|
var _chunkLNVGXUL3cjs = require('./chunk-LNVGXUL3.cjs');
|
|
81
81
|
|
|
82
82
|
|
|
83
|
-
var
|
|
83
|
+
var _chunkVQJYGZNXcjs = require('./chunk-VQJYGZNX.cjs');
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
var _chunkLIFUPCXWcjs = require('./chunk-LIFUPCXW.cjs');
|
|
@@ -370,7 +370,7 @@ function resolveDeployConfig(config, overrides = {}) {
|
|
|
370
370
|
target = detectedTarget;
|
|
371
371
|
if (!warnedPlatformMismatches.has(`select:${detectedTarget}`)) {
|
|
372
372
|
warnedPlatformMismatches.add(`select:${detectedTarget}`);
|
|
373
|
-
|
|
373
|
+
_chunkVQJYGZNXcjs.logger.info(
|
|
374
374
|
`Detected ${detectedTarget} build environment; using the ${detectedTarget} preset. Set deploy.target in farm.config.ts to override.`
|
|
375
375
|
);
|
|
376
376
|
}
|
|
@@ -384,7 +384,7 @@ function resolveDeployConfig(config, overrides = {}) {
|
|
|
384
384
|
const mismatchKey = `mismatch:${resolvedTarget}:${detectedTarget}`;
|
|
385
385
|
if (!warnedPlatformMismatches.has(mismatchKey)) {
|
|
386
386
|
warnedPlatformMismatches.add(mismatchKey);
|
|
387
|
-
|
|
387
|
+
_chunkVQJYGZNXcjs.logger.warn(
|
|
388
388
|
`The configured deploy target "${_nullishCoalesce(resolvedTarget, () => ( preset))}" cannot be served by ${detectedTarget}, but this build is running in a ${detectedTarget} build environment. Set deploy.target: "${detectedTarget}" in farm.config.ts to deploy there.`
|
|
389
389
|
);
|
|
390
390
|
}
|
|
@@ -654,12 +654,12 @@ async function resolveConfig(userConfig, mode) {
|
|
|
654
654
|
});
|
|
655
655
|
userConfig = layerResolution.config;
|
|
656
656
|
if (userConfig.typescript !== void 0) {
|
|
657
|
-
|
|
657
|
+
_chunkVQJYGZNXcjs.logger.warn(
|
|
658
658
|
'The top-level "typescript" option is not supported and has no effect. Configure TypeScript in `tsconfig.json` and run `tsc --noEmit` separately when builds must enforce project type errors.'
|
|
659
659
|
);
|
|
660
660
|
}
|
|
661
661
|
if (userConfig.output !== void 0) {
|
|
662
|
-
|
|
662
|
+
_chunkVQJYGZNXcjs.logger.warn(
|
|
663
663
|
'The top-level "output" option is not supported and has no effect. Configure `deploy.target`, `deploy.preset`, or `deploy.outputDir` for deployment output, and use route rendering configuration for static pages.'
|
|
664
664
|
);
|
|
665
665
|
}
|
|
@@ -682,7 +682,7 @@ async function resolveConfig(userConfig, mode) {
|
|
|
682
682
|
const security = _chunk6JHZPB52cjs.resolveFarmSecurityConfig.call(void 0, userConfig.security);
|
|
683
683
|
const securityHeader = _chunk6JHZPB52cjs.getFarmSecurityHeader.call(void 0, security);
|
|
684
684
|
if (_chunk6JHZPB52cjs.farmCspBlocksFrameworkInlineScripts.call(void 0, security)) {
|
|
685
|
-
|
|
685
|
+
_chunkVQJYGZNXcjs.logger.warn(
|
|
686
686
|
"security.csp blocks the inline scripts Farm injects for theming and hydration. Set security.csp.nonce to true for managed dynamic nonces and prerendered hashes, or make the governing script directive allow 'unsafe-inline' without a nonce, hash, or 'strict-dynamic' source."
|
|
687
687
|
);
|
|
688
688
|
}
|
|
@@ -747,8 +747,8 @@ async function resolveConfig(userConfig, mode) {
|
|
|
747
747
|
md,
|
|
748
748
|
mdx,
|
|
749
749
|
migrations: resolveMigrationsConfig(userConfig.migrations),
|
|
750
|
-
cron:
|
|
751
|
-
workflows:
|
|
750
|
+
cron: _chunkXYL4HSVCcjs.resolveCronConfig.call(void 0, userConfig.cron),
|
|
751
|
+
workflows: _chunkXB24LZWIcjs.resolveWorkflowsConfig.call(void 0, userConfig.workflows),
|
|
752
752
|
api,
|
|
753
753
|
observability: _nullishCoalesce(userConfig.observability, () => ( false)),
|
|
754
754
|
telemetry: userConfig.telemetry !== false,
|
|
@@ -796,7 +796,7 @@ async function resolveConfig(userConfig, mode) {
|
|
|
796
796
|
notFound: userConfig.notFound || {},
|
|
797
797
|
context: userConfig.context || (() => void 0),
|
|
798
798
|
server: _chunkLIFUPCXWcjs.resolveFarmServerConfig.call(void 0, userConfig.server),
|
|
799
|
-
serverActions:
|
|
799
|
+
serverActions: _chunkFK25QSVCcjs.resolveServerActionsConfig.call(void 0, userConfig.serverActions),
|
|
800
800
|
security,
|
|
801
801
|
deploymentId,
|
|
802
802
|
distDir: userConfig.distDir || ".farm",
|
|
@@ -9,10 +9,10 @@ var _chunkKBGZ5FD6cjs = require('./chunk-KBGZ5FD6.cjs');
|
|
|
9
9
|
var _chunkP2355C6Ecjs = require('./chunk-P2355C6E.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _chunkKHXAJ2KAcjs = require('./chunk-KHXAJ2KA.cjs');
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunkNWUHS6GVcjs = require('./chunk-NWUHS6GV.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
var _chunkSBDWCDS6cjs = require('./chunk-SBDWCDS6.cjs');
|
|
@@ -23,6 +23,7 @@ var _chunkSBDWCDS6cjs = require('./chunk-SBDWCDS6.cjs');
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
|
+
|
|
26
27
|
var _chunkOYNNA4DDcjs = require('./chunk-OYNNA4DD.cjs');
|
|
27
28
|
|
|
28
29
|
|
|
@@ -36,7 +37,7 @@ var _chunkJYNNIGQOcjs = require('./chunk-JYNNIGQO.cjs');
|
|
|
36
37
|
|
|
37
38
|
|
|
38
39
|
|
|
39
|
-
var
|
|
40
|
+
var _chunkVQJYGZNXcjs = require('./chunk-VQJYGZNX.cjs');
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
var _chunkZ5MZDFX4cjs = require('./chunk-Z5MZDFX4.cjs');
|
|
@@ -113,7 +114,7 @@ function farmApiPlugin(options = {}) {
|
|
|
113
114
|
const existing = apiRoutesCache.get(routePath);
|
|
114
115
|
const existingFile = _optionalChain([endpointSources, 'access', _ => _.get, 'call', _2 => _2(routePath), 'optionalAccess', _3 => _3.get, 'call', _4 => _4(normalizedMethod)]);
|
|
115
116
|
if (existingFile) {
|
|
116
|
-
throw new (0,
|
|
117
|
+
throw new (0, _chunkKHXAJ2KAcjs.APIRouteConflictError)(routePath, normalizedMethod, existingFile, filePath);
|
|
117
118
|
}
|
|
118
119
|
if (existing) {
|
|
119
120
|
if (!existing.methods.includes(normalizedMethod)) {
|
|
@@ -290,7 +291,7 @@ function farmApiPlugin(options = {}) {
|
|
|
290
291
|
log(`API route discovered: ${availableMethods.join(", ")} ${routePath}`);
|
|
291
292
|
}
|
|
292
293
|
} catch (e) {
|
|
293
|
-
if (e instanceof
|
|
294
|
+
if (e instanceof _chunkKHXAJ2KAcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
294
295
|
log(`API route load failed at ${filePath}: ${e.message}`);
|
|
295
296
|
}
|
|
296
297
|
}
|
|
@@ -317,7 +318,7 @@ function farmApiPlugin(options = {}) {
|
|
|
317
318
|
}
|
|
318
319
|
}
|
|
319
320
|
} catch (e) {
|
|
320
|
-
if (e instanceof
|
|
321
|
+
if (e instanceof _chunkKHXAJ2KAcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
321
322
|
log(`Root routes.ts load failed: ${e.message}`);
|
|
322
323
|
}
|
|
323
324
|
break;
|
|
@@ -327,14 +328,14 @@ function farmApiPlugin(options = {}) {
|
|
|
327
328
|
const discoverProgrammaticRoutes = async () => {
|
|
328
329
|
const path = await import("path");
|
|
329
330
|
const srcRoot = path.join(server.config.root, srcDir);
|
|
330
|
-
const routeFiles =
|
|
331
|
+
const routeFiles = _chunkNWUHS6GVcjs.findProgrammaticRouteFilesInDir.call(void 0, srcRoot);
|
|
331
332
|
if (routeFiles.length === 0) return;
|
|
332
333
|
const { getProgrammaticRouteManifest } = await import("./routes.cjs");
|
|
333
334
|
for (const routeFile of routeFiles) {
|
|
334
335
|
try {
|
|
335
336
|
const routesModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0,
|
|
336
337
|
server,
|
|
337
|
-
|
|
338
|
+
_chunkVQJYGZNXcjs.toViteModuleId.call(void 0, routeFile, server.config.root)
|
|
338
339
|
);
|
|
339
340
|
const manifest = getProgrammaticRouteManifest(routesModule);
|
|
340
341
|
if (!manifest) continue;
|
|
@@ -348,7 +349,7 @@ function farmApiPlugin(options = {}) {
|
|
|
348
349
|
}
|
|
349
350
|
}
|
|
350
351
|
} catch (e) {
|
|
351
|
-
if (e instanceof
|
|
352
|
+
if (e instanceof _chunkKHXAJ2KAcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
352
353
|
log(`Programmatic routes file load failed at ${routeFile}: ${e.message}`);
|
|
353
354
|
}
|
|
354
355
|
}
|
|
@@ -400,17 +401,27 @@ function farmApiPlugin(options = {}) {
|
|
|
400
401
|
const pathname = url.split("?")[0];
|
|
401
402
|
const method = req.method || "GET";
|
|
402
403
|
if (discoveryPromise) await waitForDiscovery();
|
|
404
|
+
const farmMiddleware = server.__farmMiddleware__;
|
|
405
|
+
let middlewareRan = false;
|
|
403
406
|
if (!_chunkOYNNA4DDcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), pathname, basePath)) {
|
|
404
|
-
|
|
407
|
+
if (!farmMiddleware || !apiRouterHandler || !_chunkOYNNA4DDcjs.isFarmAPIPathname.call(void 0, pathname, basePath)) {
|
|
408
|
+
return next();
|
|
409
|
+
}
|
|
410
|
+
await _optionalChain([farmMiddleware, 'access', _5 => _5.waitForDiscovery, 'optionalCall', _6 => _6()]);
|
|
411
|
+
if (await farmMiddleware.execute(req, res, pathname, /* @__PURE__ */ new Map())) return;
|
|
412
|
+
middlewareRan = true;
|
|
413
|
+
const rewrittenPathname = (req.url || url).split("?")[0];
|
|
414
|
+
if (rewrittenPathname === pathname || !_chunkOYNNA4DDcjs.matchAPIRouteAtBasePath.call(void 0, servedRoutes(), rewrittenPathname, basePath)) {
|
|
415
|
+
return next();
|
|
416
|
+
}
|
|
405
417
|
}
|
|
406
418
|
if (!apiRouterHandler) {
|
|
407
419
|
return next();
|
|
408
420
|
}
|
|
409
421
|
const startTime = Date.now();
|
|
410
422
|
try {
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
await _optionalChain([farmMiddleware, 'access', _5 => _5.waitForDiscovery, 'optionalCall', _6 => _6()]);
|
|
423
|
+
if (farmMiddleware && !middlewareRan) {
|
|
424
|
+
await _optionalChain([farmMiddleware, 'access', _7 => _7.waitForDiscovery, 'optionalCall', _8 => _8()]);
|
|
414
425
|
const middlewareData = /* @__PURE__ */ new Map();
|
|
415
426
|
const handled = await farmMiddleware.execute(req, res, pathname, middlewareData);
|
|
416
427
|
if (handled) {
|
|
@@ -476,7 +487,7 @@ function farmApiPlugin(options = {}) {
|
|
|
476
487
|
);
|
|
477
488
|
if (res.writableEnded) return;
|
|
478
489
|
if (res.headersSent) {
|
|
479
|
-
_optionalChain([res, 'access',
|
|
490
|
+
_optionalChain([res, 'access', _9 => _9.destroy, 'optionalCall', _10 => _10(error instanceof Error ? error : new Error(String(error)))]);
|
|
480
491
|
return;
|
|
481
492
|
}
|
|
482
493
|
res.statusCode = 500;
|
|
@@ -487,14 +498,14 @@ function farmApiPlugin(options = {}) {
|
|
|
487
498
|
};
|
|
488
499
|
},
|
|
489
500
|
async handleHotUpdate({ file, server, modules }) {
|
|
490
|
-
const normalizedFile =
|
|
501
|
+
const normalizedFile = _chunkVQJYGZNXcjs.toPosixPath.call(void 0, file);
|
|
491
502
|
const fileName = normalizedFile.split("/").pop() || "";
|
|
492
503
|
if (fileName === "routes.ts" || fileName === "routes.tsx" || fileName === "routes.js" || _chunkE7QOEV5Zcjs.isProgrammaticRoutesFileName.call(void 0, fileName)) {
|
|
493
504
|
log(`Root routes file updated: ${fileName}`);
|
|
494
505
|
for (const mod of modules) {
|
|
495
506
|
server.moduleGraph.invalidateModule(mod);
|
|
496
507
|
}
|
|
497
|
-
if (await _optionalChain([recoverFailedDiscovery, 'optionalCall',
|
|
508
|
+
if (await _optionalChain([recoverFailedDiscovery, 'optionalCall', _11 => _11()])) return [];
|
|
498
509
|
const previousState = snapshotRouteState();
|
|
499
510
|
try {
|
|
500
511
|
const routesModule = await _chunkJYNNIGQOcjs.loadFarmDevModule.call(void 0, server, file);
|
|
@@ -525,7 +536,7 @@ function farmApiPlugin(options = {}) {
|
|
|
525
536
|
log(`API router recreated`);
|
|
526
537
|
} catch (e) {
|
|
527
538
|
restoreRouteState(previousState);
|
|
528
|
-
if (e instanceof
|
|
539
|
+
if (e instanceof _chunkKHXAJ2KAcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
529
540
|
log(`Root routes.ts HMR failed: ${e.message}`);
|
|
530
541
|
}
|
|
531
542
|
return [];
|
|
@@ -536,7 +547,7 @@ function farmApiPlugin(options = {}) {
|
|
|
536
547
|
for (const mod of modules) {
|
|
537
548
|
server.moduleGraph.invalidateModule(mod);
|
|
538
549
|
}
|
|
539
|
-
if (await _optionalChain([recoverFailedDiscovery, 'optionalCall',
|
|
550
|
+
if (await _optionalChain([recoverFailedDiscovery, 'optionalCall', _12 => _12()])) return [];
|
|
540
551
|
const previousState = snapshotRouteState();
|
|
541
552
|
try {
|
|
542
553
|
const path = await import("path");
|
|
@@ -563,7 +574,7 @@ function farmApiPlugin(options = {}) {
|
|
|
563
574
|
log(`API router recreated`);
|
|
564
575
|
} catch (e) {
|
|
565
576
|
restoreRouteState(previousState);
|
|
566
|
-
if (e instanceof
|
|
577
|
+
if (e instanceof _chunkKHXAJ2KAcjs.APIRouteConflictError || e instanceof _chunkYTVSWXEZcjs.AmbiguousRouteError) throw e;
|
|
567
578
|
log(`API route HMR failed: ${e.message}`);
|
|
568
579
|
}
|
|
569
580
|
return [];
|
|
@@ -0,0 +1,358 @@
|
|
|
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; }// 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 = _nullishCoalesce(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(_nullishCoalesce(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 = _nullishCoalesce(match[1], () => ( ""));
|
|
142
|
+
const clauseEnd = (_nullishCoalesce(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 = _optionalChain([parts, 'access', _ => _[0], 'optionalAccess', _2 => _2.trim, 'call', _3 => _3()]);
|
|
147
|
+
if (!localName || !declarations.has(localName)) continue;
|
|
148
|
+
return {
|
|
149
|
+
localName,
|
|
150
|
+
exportName: _optionalChain([parts, 'access', _4 => _4[1], 'optionalAccess', _5 => _5.trim, 'call', _6 => _6()]) || 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 = (_nullishCoalesce(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(_nullishCoalesce(code[declarationEnd], () => ( "")))) declarationEnd++;
|
|
250
|
+
if (code[declarationEnd] === ";") declarationEnd++;
|
|
251
|
+
const calleeIndex = code.indexOf(calleeName, match.index);
|
|
252
|
+
replacements.push({
|
|
253
|
+
start: _nullishCoalesce(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 = (_nullishCoalesce(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(_nullishCoalesce(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: _nullishCoalesce(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
|
+
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
exports.FARM_SERVER_FN_BOUNDARY_QUERY = FARM_SERVER_FN_BOUNDARY_QUERY; exports.transformFarmServerFns = transformFarmServerFns; exports.createFarmServerFnBoundaryModule = createFarmServerFnBoundaryModule; exports.isFarmServerFnBoundaryId = isFarmServerFnBoundaryId;
|