@farm.js/core 0.1.22 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-runtime.d.mts +3 -2
- package/dist/agent-runtime.d.ts +3 -2
- package/dist/api/route-manager.cjs +3 -2
- package/dist/api/route-manager.d.mts +3 -2
- package/dist/api/route-manager.d.ts +3 -2
- package/dist/api/route-manager.mjs +2 -1
- package/dist/api.cjs +4 -3
- package/dist/api.d.mts +4 -3
- package/dist/api.d.ts +4 -3
- package/dist/api.mjs +3 -2
- package/dist/{app-B7qKw8Ny.d.ts → app-BV-7wV5q.d.ts} +3 -3
- package/dist/{app-0e-oTC_R.d.mts → app-BZDWwwFa.d.mts} +3 -3
- package/dist/app-markdown.d.mts +4 -3
- package/dist/app-markdown.d.ts +4 -3
- package/dist/chunk-2VQKKQ6D.mjs +51 -0
- package/dist/{chunk-EGJDUF4Q.mjs → chunk-3ATMYLLJ.mjs} +6 -12
- package/dist/{chunk-HSDL2AUR.mjs → chunk-47H7VENP.mjs} +20 -32
- package/dist/{chunk-AAWTJW2G.mjs → chunk-6YSEHN46.mjs} +58 -27
- package/dist/{chunk-PUCUVI7K.mjs → chunk-72VJRKJD.mjs} +1 -1
- package/dist/{chunk-PC33YKTC.mjs → chunk-ARHWIOUZ.mjs} +128 -130
- package/dist/{chunk-2HCEC2YO.cjs → chunk-BD7FZ63M.cjs} +1 -1
- package/dist/{chunk-SPSQFO3Z.mjs → chunk-BDJNP7AQ.mjs} +9 -13
- package/dist/{chunk-X2ZUD4GI.mjs → chunk-BNSD3VDY.mjs} +1 -1
- package/dist/{chunk-GXXONIAR.cjs → chunk-DNLQMFER.cjs} +12 -16
- package/dist/{chunk-SO7CRMP6.cjs → chunk-DW34V5SM.cjs} +5 -5
- package/dist/{chunk-3NM6SRI6.mjs → chunk-F3VB7ONA.mjs} +10 -8
- package/dist/{chunk-P5HSJCXI.cjs → chunk-G6GNNB44.cjs} +291 -260
- package/dist/chunk-IK6LVLKC.cjs +51 -0
- package/dist/{chunk-B3WK4DTX.cjs → chunk-IMBMOEWT.cjs} +5 -1
- package/dist/{chunk-IILNZK5G.mjs → chunk-JHWOVJ3M.mjs} +46 -62
- package/dist/{chunk-TKNSDBBN.cjs → chunk-K3F2E6GS.cjs} +20 -1
- package/dist/{chunk-RTHIVJ2G.cjs → chunk-KCMTCM6I.cjs} +7 -8
- package/dist/{chunk-Q3PX2TGL.cjs → chunk-LQIRVSBY.cjs} +30 -40
- package/dist/chunk-LYLEZIG3.cjs +73 -0
- package/dist/{chunk-NBAHDVOJ.cjs → chunk-LYM7HY34.cjs} +20 -32
- package/dist/{chunk-K6FNHVDR.cjs → chunk-MPEYMSCF.cjs} +6 -12
- package/dist/{chunk-BHJUZ64B.cjs → chunk-QTBEAKCJ.cjs} +7 -7
- package/dist/{chunk-J6JRB2ER.mjs → chunk-S67OYZU7.mjs} +1 -1
- package/dist/chunk-SFGWNC43.mjs +97 -0
- package/dist/{chunk-EXUMQVY3.cjs → chunk-SIQMTHCZ.cjs} +258 -260
- package/dist/{chunk-AYJR42WX.cjs → chunk-UFDV5N3C.cjs} +2 -2
- package/dist/chunk-UYIHRDE4.cjs +97 -0
- package/dist/{chunk-Y4YMF2NQ.cjs → chunk-VPTDD5XF.cjs} +46 -62
- package/dist/{chunk-GKT4ONKN.mjs → chunk-VVJCWBIE.mjs} +2 -2
- package/dist/{chunk-CQHFU55R.mjs → chunk-WNUBR4CA.mjs} +5 -1
- package/dist/{chunk-CIAGU2X4.cjs → chunk-XSIRSMAS.cjs} +10 -8
- package/dist/{chunk-ONMW3EVV.mjs → chunk-YGMK6ESJ.mjs} +20 -30
- package/dist/chunk-YOZYCI6Z.mjs +73 -0
- package/dist/{chunk-HLCDYJY7.mjs → chunk-YQVSHTMR.mjs} +20 -1
- package/dist/{chunk-F5D4XEAS.mjs → chunk-ZZSRYEYU.mjs} +7 -8
- package/dist/{client-plugins-CWrhb1ir.d.mts → client-plugins-B_XzCegf.d.mts} +11 -9
- package/dist/{client-plugins-DPf0qZey.d.ts → client-plugins-CKsXQfXY.d.ts} +11 -9
- package/dist/client-plugins.d.mts +3 -2
- package/dist/client-plugins.d.ts +3 -2
- package/dist/client.d.mts +7 -6
- package/dist/client.d.ts +7 -6
- package/dist/config.d.mts +3 -2
- package/dist/config.d.ts +3 -2
- package/dist/{devtools-EZ5ORGAK.mjs → devtools-OY4SNU3P.mjs} +4 -3
- package/dist/{devtools-6DQHO7EK.cjs → devtools-UHRSZ7VA.cjs} +5 -4
- package/dist/docs.cjs +9 -6
- package/dist/docs.mjs +8 -5
- package/dist/index.cjs +23 -20
- package/dist/index.d.mts +14 -13
- package/dist/index.d.ts +14 -13
- package/dist/index.mjs +18 -15
- package/dist/instrumentation.cjs +3 -2
- package/dist/instrumentation.mjs +2 -1
- package/dist/integrations.d.mts +3 -2
- package/dist/integrations.d.ts +3 -2
- package/dist/internal/app-markdown-runtime.d.mts +3 -2
- package/dist/internal/app-markdown-runtime.d.ts +3 -2
- package/dist/internal/build-runtime.cjs +17 -14
- package/dist/internal/build-runtime.d.mts +5 -4
- package/dist/internal/build-runtime.d.ts +5 -4
- package/dist/internal/build-runtime.mjs +16 -13
- package/dist/internal/cli-runtime.cjs +10 -7
- package/dist/internal/cli-runtime.mjs +9 -6
- package/dist/internal/client-error-overlay.cjs +4 -4
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/compression-runtime.d.mts +3 -2
- package/dist/internal/compression-runtime.d.ts +3 -2
- package/dist/internal/config-runtime.cjs +5 -4
- package/dist/internal/config-runtime.d.mts +4 -3
- package/dist/internal/config-runtime.d.ts +4 -3
- package/dist/internal/config-runtime.mjs +4 -3
- package/dist/internal/metadata-image-runtime.cjs +3 -2
- package/dist/internal/metadata-image-runtime.mjs +2 -1
- package/dist/internal/product-telemetry-runtime.cjs +2 -2
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-runtime.d.mts +9 -8
- package/dist/internal/production-runtime.d.ts +9 -8
- package/dist/layers-4PNE2HOY.cjs +18 -0
- package/dist/{layers-CJKSJGLN.mjs → layers-BRQF5ETU.mjs} +2 -1
- package/dist/{manager-NPG43N46.mjs → manager-RT733VRK.mjs} +2 -2
- package/dist/{manager-G4B2IPYE.cjs → manager-XZ5TX7AO.cjs} +3 -3
- package/dist/{metadata-CO9fRyyJ.d.mts → metadata-B08w4EYV.d.mts} +1 -1
- package/dist/{metadata-zY9wltwH.d.ts → metadata-IQEblkZp.d.ts} +1 -1
- package/dist/middleware.d.mts +5 -4
- package/dist/middleware.d.ts +5 -4
- package/dist/navigation.d.mts +6 -5
- package/dist/navigation.d.ts +6 -5
- package/dist/{nitro-TSGDUJMN.cjs → nitro-KQDU7CFE.cjs} +2 -2
- package/dist/{nitro-4LFVTT24.mjs → nitro-ZKLGOTVY.mjs} +1 -1
- package/dist/node-module-bundle-L5L7JCZ4.mjs +11 -0
- package/dist/node-module-bundle-VAFZOXMJ.cjs +11 -0
- package/dist/plugin.cjs +11 -9
- package/dist/plugin.d.mts +3 -2
- package/dist/plugin.d.ts +3 -2
- package/dist/plugin.mjs +10 -8
- package/dist/{production-runtime-CywsHwnG.d.mts → production-runtime-C3bGFEaM.d.mts} +1 -1
- package/dist/{production-runtime-lkfwujwK.d.ts → production-runtime-DRSOkc-d.d.ts} +1 -1
- package/dist/{render-plan-LVy6sGQe.d.mts → render-plan-B6CKNl4e.d.mts} +1 -1
- package/dist/{render-plan-DHF0GeWo.d.ts → render-plan-CCFuMLNS.d.ts} +1 -1
- package/dist/renderer-client.d.mts +5 -4
- package/dist/renderer-client.d.ts +5 -4
- package/dist/{request-6AkmhEYE.d.mts → request-DgD1XsTx.d.mts} +1 -1
- package/dist/{request-BYxlRqA9.d.ts → request-Dn6VURbE.d.ts} +1 -1
- package/dist/request.d.mts +4 -3
- package/dist/request.d.ts +4 -3
- package/dist/{route-rendering-Dd8Jmml7.d.mts → route-rendering-76A5I_kE.d.mts} +1 -1
- package/dist/{route-rendering-CWaKiUbS.d.ts → route-rendering-LAmQEdyG.d.ts} +1 -1
- package/dist/{router-B2m4fvve.d.ts → router-BSOOGya2.d.ts} +1 -1
- package/dist/{router-xwEE112q.d.mts → router-CnrRSa9d.d.mts} +1 -1
- package/dist/routes.d.mts +3 -2
- package/dist/routes.d.ts +3 -2
- package/dist/server-plugins.d.mts +4 -3
- package/dist/server-plugins.d.ts +4 -3
- package/dist/server.cjs +39 -26
- package/dist/server.d.mts +9 -8
- package/dist/server.d.ts +9 -8
- package/dist/server.mjs +24 -11
- package/dist/{spa-router-Y8rrXTVK.d.ts → spa-router-BMrSsG5b.d.ts} +2 -2
- package/dist/{spa-router-DVEHQnWo.d.mts → spa-router-DnYhWCvI.d.mts} +2 -2
- package/dist/testing.cjs +2 -1
- package/dist/testing.d.mts +3 -2
- package/dist/testing.d.ts +3 -2
- package/dist/testing.mjs +2 -1
- package/dist/{utils-DSPx34-A.d.mts → utils-ABkktwku.d.mts} +1 -1
- package/dist/{utils-Dvuny_08.d.ts → utils-C3GguS-Q.d.ts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +11 -9
- package/dist/vite.d.mts +3 -2
- package/dist/vite.d.ts +3 -2
- package/dist/vite.mjs +10 -8
- package/dist/workflows.cjs +2 -2
- package/dist/workflows.mjs +1 -1
- package/package.json +21 -11
- package/dist/layers-E4WPJNY5.cjs +0 -17
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
parseRouteSlotFile,
|
|
7
7
|
resolveRouteRenderingConfig,
|
|
8
8
|
resolveRouteRenderingConfigFromFile
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VVJCWBIE.mjs";
|
|
10
10
|
import {
|
|
11
11
|
collectSchemaExtensions,
|
|
12
12
|
declareSchemaTables,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
} from "./chunk-BOYNDCZL.mjs";
|
|
31
31
|
import {
|
|
32
32
|
createFarmMetadataImageResponse
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-YQVSHTMR.mjs";
|
|
34
34
|
import {
|
|
35
35
|
createFarmImageHandler
|
|
36
36
|
} from "./chunk-F6XEGFHO.mjs";
|
|
@@ -74,7 +74,7 @@ import {
|
|
|
74
74
|
getFarmAppDirectories,
|
|
75
75
|
getFarmLayerAliases,
|
|
76
76
|
getFarmSourceRoots
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-JHWOVJ3M.mjs";
|
|
78
78
|
import {
|
|
79
79
|
REACT_RENDERER,
|
|
80
80
|
assertFarmRendererStreamingRuntime,
|
|
@@ -144,7 +144,7 @@ import {
|
|
|
144
144
|
} from "./chunk-OFEY6KHO.mjs";
|
|
145
145
|
import {
|
|
146
146
|
resolveWorkflowsConfig
|
|
147
|
-
} from "./chunk-
|
|
147
|
+
} from "./chunk-3ATMYLLJ.mjs";
|
|
148
148
|
import {
|
|
149
149
|
initStorage
|
|
150
150
|
} from "./chunk-UWPLULNK.mjs";
|
|
@@ -182,7 +182,7 @@ import {
|
|
|
182
182
|
} from "./chunk-IOEH4VWN.mjs";
|
|
183
183
|
import {
|
|
184
184
|
APIRouteManager
|
|
185
|
-
} from "./chunk-
|
|
185
|
+
} from "./chunk-WNUBR4CA.mjs";
|
|
186
186
|
import {
|
|
187
187
|
findProgrammaticRouteFiles,
|
|
188
188
|
loadProgrammaticRouteManifests
|
|
@@ -193,6 +193,12 @@ import {
|
|
|
193
193
|
createFarmI18nRuntime,
|
|
194
194
|
getFarmI18nClientSnapshot
|
|
195
195
|
} from "./chunk-JNGIWIY6.mjs";
|
|
196
|
+
import {
|
|
197
|
+
VERCEL_OG_INSTALL_HINT,
|
|
198
|
+
formatOptionalPeerInstallHint,
|
|
199
|
+
isMissingPackageError,
|
|
200
|
+
isOptionalPeerInstalled
|
|
201
|
+
} from "./chunk-YOZYCI6Z.mjs";
|
|
196
202
|
import {
|
|
197
203
|
isFarmAPIPathname
|
|
198
204
|
} from "./chunk-XP777LRD.mjs";
|
|
@@ -265,7 +271,7 @@ import {
|
|
|
265
271
|
} from "./chunk-Z2RZJZIZ.mjs";
|
|
266
272
|
import {
|
|
267
273
|
FARM_VERSION
|
|
268
|
-
} from "./chunk-
|
|
274
|
+
} from "./chunk-BNSD3VDY.mjs";
|
|
269
275
|
import {
|
|
270
276
|
resolveFarmTrailingSlashRedirect,
|
|
271
277
|
setFarmTrailingSlashPreference
|
|
@@ -7419,20 +7425,6 @@ __name(createFarmApp, "createFarmApp");
|
|
|
7419
7425
|
// src/build/tailwind.ts
|
|
7420
7426
|
import path11 from "path";
|
|
7421
7427
|
|
|
7422
|
-
// src/optional-peer.ts
|
|
7423
|
-
function isMissingPackageError(error, packageName) {
|
|
7424
|
-
if (!error || typeof error !== "object") return false;
|
|
7425
|
-
const { code, message } = error;
|
|
7426
|
-
if (code !== "ERR_MODULE_NOT_FOUND" && code !== "MODULE_NOT_FOUND") return false;
|
|
7427
|
-
if (typeof message !== "string") return false;
|
|
7428
|
-
return message.includes(`'${packageName}'`) || message.includes(`"${packageName}"`);
|
|
7429
|
-
}
|
|
7430
|
-
__name(isMissingPackageError, "isMissingPackageError");
|
|
7431
|
-
function formatOptionalPeerInstallHint(packageName, purpose, options = {}) {
|
|
7432
|
-
return `Install "${packageName}" to ${purpose}: pnpm add ${options.dev ? "-D " : ""}${packageName}`;
|
|
7433
|
-
}
|
|
7434
|
-
__name(formatOptionalPeerInstallHint, "formatOptionalPeerInstallHint");
|
|
7435
|
-
|
|
7436
7428
|
// src/build/vite-plugin-compat.ts
|
|
7437
7429
|
function adaptTailwindVitePlugin(pluginOption, builder) {
|
|
7438
7430
|
if (builder !== "rolldown") return pluginOption;
|
|
@@ -7525,6 +7517,26 @@ function createMissingTailwindPlugin() {
|
|
|
7525
7517
|
}
|
|
7526
7518
|
__name(createMissingTailwindPlugin, "createMissingTailwindPlugin");
|
|
7527
7519
|
|
|
7520
|
+
// src/image-runtime.ts
|
|
7521
|
+
var SHARP_INSTALL_HINT = formatOptionalPeerInstallHint("sharp", "optimize images");
|
|
7522
|
+
var CLOUDFLARE_IMAGE_PRESETS = /* @__PURE__ */ new Set(["cloudflare", "cloudflare-pages", "cloudflare-module"]);
|
|
7523
|
+
function resolveFarmImageProviderForRuntime(images, options) {
|
|
7524
|
+
const provider = images?.provider ?? "auto";
|
|
7525
|
+
if (provider === "none") return images;
|
|
7526
|
+
const usesSharp = options.dev ? true : provider === "node" || provider === "auto" && !CLOUDFLARE_IMAGE_PRESETS.has(options.preset || "");
|
|
7527
|
+
if (!usesSharp || isOptionalPeerInstalled(options.root, "sharp")) return images;
|
|
7528
|
+
if (provider === "node") {
|
|
7529
|
+
throw new Error(
|
|
7530
|
+
`images.provider "node" optimizes images with sharp, which is not installed. ${SHARP_INSTALL_HINT}`
|
|
7531
|
+
);
|
|
7532
|
+
}
|
|
7533
|
+
logger.info(
|
|
7534
|
+
`Image optimization is off because sharp is not installed; images use their original URLs. ${SHARP_INSTALL_HINT}, or set images.provider to "none".`
|
|
7535
|
+
);
|
|
7536
|
+
return Object.freeze({ ...images, provider: "none" });
|
|
7537
|
+
}
|
|
7538
|
+
__name(resolveFarmImageProviderForRuntime, "resolveFarmImageProviderForRuntime");
|
|
7539
|
+
|
|
7528
7540
|
// src/schema-step-types.ts
|
|
7529
7541
|
function validateSchemaSteps(owner, schema, steps) {
|
|
7530
7542
|
if (steps === void 0) return;
|
|
@@ -9494,7 +9506,7 @@ function loadFarmDocsSearchDevRuntime() {
|
|
|
9494
9506
|
}
|
|
9495
9507
|
__name(loadFarmDocsSearchDevRuntime, "loadFarmDocsSearchDevRuntime");
|
|
9496
9508
|
function loadFarmOpenAPIDevRuntime() {
|
|
9497
|
-
return import("./manager-
|
|
9509
|
+
return import("./manager-RT733VRK.mjs");
|
|
9498
9510
|
}
|
|
9499
9511
|
__name(loadFarmOpenAPIDevRuntime, "loadFarmOpenAPIDevRuntime");
|
|
9500
9512
|
function loadFarmWorkflowsDevRuntime() {
|
|
@@ -9502,7 +9514,7 @@ function loadFarmWorkflowsDevRuntime() {
|
|
|
9502
9514
|
}
|
|
9503
9515
|
__name(loadFarmWorkflowsDevRuntime, "loadFarmWorkflowsDevRuntime");
|
|
9504
9516
|
function loadFarmDevtoolsSnapshotRuntime() {
|
|
9505
|
-
return import("./devtools-
|
|
9517
|
+
return import("./devtools-OY4SNU3P.mjs");
|
|
9506
9518
|
}
|
|
9507
9519
|
__name(loadFarmDevtoolsSnapshotRuntime, "loadFarmDevtoolsSnapshotRuntime");
|
|
9508
9520
|
function loadFarmDevtoolsUIRuntime() {
|
|
@@ -9532,14 +9544,29 @@ function farmI18nClientBridgePlugin() {
|
|
|
9532
9544
|
__name(farmI18nClientBridgePlugin, "farmI18nClientBridgePlugin");
|
|
9533
9545
|
var FARM_SERVER_ONLY_ENTRIES = /* @__PURE__ */ new Set(["@farm.js/core/og"]);
|
|
9534
9546
|
function farmServerOnlyEntriesPlugin() {
|
|
9547
|
+
let root = process.cwd();
|
|
9548
|
+
let vercelOgInstalled = false;
|
|
9535
9549
|
return {
|
|
9536
9550
|
name: "farm:server-only-entries",
|
|
9537
9551
|
enforce: "pre",
|
|
9552
|
+
configResolved(config) {
|
|
9553
|
+
root = config.root;
|
|
9554
|
+
},
|
|
9538
9555
|
resolveId(id, importer, options) {
|
|
9539
|
-
if (
|
|
9540
|
-
|
|
9541
|
-
|
|
9542
|
-
|
|
9556
|
+
if (!FARM_SERVER_ONLY_ENTRIES.has(id)) return null;
|
|
9557
|
+
const importedBy = importer ? ` (imported by ${importer})` : "";
|
|
9558
|
+
if (!options?.ssr) {
|
|
9559
|
+
this.error(
|
|
9560
|
+
`${id} is server-only and cannot be imported into client code${importedBy}. Use it from an API route or another server module.`
|
|
9561
|
+
);
|
|
9562
|
+
}
|
|
9563
|
+
vercelOgInstalled || (vercelOgInstalled = isOptionalPeerInstalled(root, "@vercel/og"));
|
|
9564
|
+
if (!vercelOgInstalled) {
|
|
9565
|
+
this.error(
|
|
9566
|
+
`${id} needs @vercel/og, which is not installed${importedBy}. ${VERCEL_OG_INSTALL_HINT}`
|
|
9567
|
+
);
|
|
9568
|
+
}
|
|
9569
|
+
return null;
|
|
9543
9570
|
}
|
|
9544
9571
|
};
|
|
9545
9572
|
}
|
|
@@ -10180,6 +10207,7 @@ function farmPlugin(options = {}, initialPluginManager) {
|
|
|
10180
10207
|
}
|
|
10181
10208
|
const apiServerBasePath = resolveFarmAPIServerBasePath(farmConfig.api);
|
|
10182
10209
|
const serverConfig = resolveFarmServerConfig(farmConfig.server);
|
|
10210
|
+
globalThis.__FARM_IMAGE_CONFIG__ = getPublicFarmImageConfig(farmConfig.images);
|
|
10183
10211
|
let imageHandler = null;
|
|
10184
10212
|
if (farmConfig.images.provider !== "none") {
|
|
10185
10213
|
const { createNodeImageFetcher, createNodeImageUrlValidator, createSharpImageTransformer } = await import("./image/sharp.mjs");
|
|
@@ -14158,7 +14186,7 @@ async function defineConfig(config = {}) {
|
|
|
14158
14186
|
const tailwindVitePlugin = await loadTailwindVitePlugin();
|
|
14159
14187
|
const appRoot = path17.resolve(config.root || process.cwd());
|
|
14160
14188
|
if (config.extends?.length) {
|
|
14161
|
-
const { config: layeredConfig } = await import("./layers-
|
|
14189
|
+
const { config: layeredConfig } = await import("./layers-BRQF5ETU.mjs").then(
|
|
14162
14190
|
({ resolveFarmLayers }) => resolveFarmLayers(config, {
|
|
14163
14191
|
root: appRoot,
|
|
14164
14192
|
mode: process.env.NODE_ENV === "production" ? "production" : "development"
|
|
@@ -14167,6 +14195,7 @@ async function defineConfig(config = {}) {
|
|
|
14167
14195
|
config = layeredConfig;
|
|
14168
14196
|
}
|
|
14169
14197
|
config.renderer = resolveFarmRenderer(config.renderer);
|
|
14198
|
+
config.images = resolveFarmImageProviderForRuntime(config.images, { root: appRoot, dev: true });
|
|
14170
14199
|
const rendererVitePlugins = await loadFarmRendererVitePlugins(config.renderer, appRoot, {
|
|
14171
14200
|
ssr: true
|
|
14172
14201
|
});
|
|
@@ -14393,6 +14422,8 @@ export {
|
|
|
14393
14422
|
FarmPluginOptionsError,
|
|
14394
14423
|
farmPluginMayAffectRuntimePath,
|
|
14395
14424
|
loadTailwindVitePlugin,
|
|
14425
|
+
SHARP_INSTALL_HINT,
|
|
14426
|
+
resolveFarmImageProviderForRuntime,
|
|
14396
14427
|
generateFarmClientPluginEntryCode,
|
|
14397
14428
|
resolveFarmClientCacheAdapterEntry,
|
|
14398
14429
|
generateClientCachePersistenceCode,
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
compileFarmDocsAdapterEdgeManifest,
|
|
9
9
|
createFarmDocsAPIHandler
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YGMK6ESJ.mjs";
|
|
11
11
|
import {
|
|
12
12
|
FARM_DOCS_LAST_MODIFIED_MANIFEST,
|
|
13
13
|
createFarmDocsHandler,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
loadFarmDocsPage,
|
|
18
18
|
resolveFarmDocsContentDir,
|
|
19
19
|
toFarmDocsMarkdownPage
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-47H7VENP.mjs";
|
|
21
21
|
import {
|
|
22
22
|
generateFarmDocsSearchClientRuntime,
|
|
23
23
|
isFarmDocsSearchEnabled,
|
|
@@ -26,15 +26,18 @@ import {
|
|
|
26
26
|
import {
|
|
27
27
|
FARM_PRERENDER_ENV
|
|
28
28
|
} from "./chunk-6VEHUKZ2.mjs";
|
|
29
|
+
import {
|
|
30
|
+
loadFarmDocsEngine
|
|
31
|
+
} from "./chunk-2VQKKQ6D.mjs";
|
|
29
32
|
import {
|
|
30
33
|
getDefaultDeployOutputDir,
|
|
31
34
|
getDeployTargetForPreset,
|
|
32
35
|
hasCustomFarmRouteContext,
|
|
33
36
|
resolveDeployOutputPath
|
|
34
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-BDJNP7AQ.mjs";
|
|
35
38
|
import {
|
|
36
39
|
resolveFarmInstrumentationFile
|
|
37
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-ZZSRYEYU.mjs";
|
|
38
41
|
import {
|
|
39
42
|
resolveFarmInstrumentationRuntime
|
|
40
43
|
} from "./chunk-H77NVNJ2.mjs";
|
|
@@ -42,6 +45,7 @@ import {
|
|
|
42
45
|
DEFAULT_NOT_FOUND_STYLES,
|
|
43
46
|
FARM_LAYOUT_ELEMENT_CLIENT_SOURCE,
|
|
44
47
|
PluginManager,
|
|
48
|
+
SHARP_INSTALL_HINT,
|
|
45
49
|
createFarmApp,
|
|
46
50
|
createFarmSourceAlias,
|
|
47
51
|
createFarmThemeCssPlugin,
|
|
@@ -62,15 +66,16 @@ import {
|
|
|
62
66
|
mergeFarmProductionViteConfig,
|
|
63
67
|
mergeFarmViteConfig,
|
|
64
68
|
resolveFarmClientCacheAdapterEntry,
|
|
69
|
+
resolveFarmImageProviderForRuntime,
|
|
65
70
|
resolveFarmIsolatedClientHydrationMode,
|
|
66
71
|
resolveFarmNotFoundComponentPath
|
|
67
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-6YSEHN46.mjs";
|
|
68
73
|
import {
|
|
69
74
|
findRequestBoundSourceBlockers,
|
|
70
75
|
generateFarmTypeArtifacts,
|
|
71
76
|
parseRouteRenderingDirective,
|
|
72
77
|
resolveRouteRenderingConfigFromFile
|
|
73
|
-
} from "./chunk-
|
|
78
|
+
} from "./chunk-VVJCWBIE.mjs";
|
|
74
79
|
import {
|
|
75
80
|
isFarmPreviewDeploymentEnvironment
|
|
76
81
|
} from "./chunk-BOYNDCZL.mjs";
|
|
@@ -90,7 +95,7 @@ import {
|
|
|
90
95
|
} from "./chunk-GHFS7RUB.mjs";
|
|
91
96
|
import {
|
|
92
97
|
getFarmAppDirectories
|
|
93
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-JHWOVJ3M.mjs";
|
|
94
99
|
import {
|
|
95
100
|
REACT_RENDERER,
|
|
96
101
|
getFarmRendererCapabilities,
|
|
@@ -122,7 +127,7 @@ import {
|
|
|
122
127
|
import {
|
|
123
128
|
applyFarmWorkflowVercelCrons,
|
|
124
129
|
prepareFarmWorkflowsForNitro
|
|
125
|
-
} from "./chunk-
|
|
130
|
+
} from "./chunk-3ATMYLLJ.mjs";
|
|
126
131
|
import {
|
|
127
132
|
getFarmIntegrationPluginServerRuntime,
|
|
128
133
|
getIntegrationProviders
|
|
@@ -132,10 +137,13 @@ import {
|
|
|
132
137
|
} from "./chunk-TIKNUAU7.mjs";
|
|
133
138
|
import {
|
|
134
139
|
APIRouteManager
|
|
135
|
-
} from "./chunk-
|
|
140
|
+
} from "./chunk-WNUBR4CA.mjs";
|
|
136
141
|
import {
|
|
137
142
|
readFarmI18nCatalogs
|
|
138
143
|
} from "./chunk-FV45CKBC.mjs";
|
|
144
|
+
import {
|
|
145
|
+
VERCEL_OG_INSTALL_HINT
|
|
146
|
+
} from "./chunk-YOZYCI6Z.mjs";
|
|
139
147
|
import {
|
|
140
148
|
resolveFarmAPIServerBasePath,
|
|
141
149
|
resolveFarmAPIServerRoutePath
|
|
@@ -1073,6 +1081,9 @@ var NITRO_EXTERNAL_MODULES = /* @__PURE__ */ new Set([
|
|
|
1073
1081
|
"fsevents",
|
|
1074
1082
|
"esbuild",
|
|
1075
1083
|
"lightningcss",
|
|
1084
|
+
"rolldown",
|
|
1085
|
+
"rolldown/experimental",
|
|
1086
|
+
"rolldown/utils",
|
|
1076
1087
|
"rollup",
|
|
1077
1088
|
"vite",
|
|
1078
1089
|
"nitro",
|
|
@@ -1313,69 +1324,70 @@ function hasFarmRuntimeConfigModule(config, configModulePath) {
|
|
|
1313
1324
|
return Boolean(configModulePath || (config.layers || []).some((layer) => layer.configFile));
|
|
1314
1325
|
}
|
|
1315
1326
|
__name(hasFarmRuntimeConfigModule, "hasFarmRuntimeConfigModule");
|
|
1316
|
-
function
|
|
1317
|
-
const
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
)
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
return
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1327
|
+
async function minifyFarmServerChunk(code, fileName, options) {
|
|
1328
|
+
const rolldownUtils = await import("rolldown/utils");
|
|
1329
|
+
const keepNames = { function: options.keepNames, class: options.keepNames };
|
|
1330
|
+
const result = await rolldownUtils.minify(fileName, code, {
|
|
1331
|
+
module: true,
|
|
1332
|
+
compress: { target: options.target, keepNames },
|
|
1333
|
+
mangle: { keepNames },
|
|
1334
|
+
codegen: { legalComments: "none", asciiOnly: true },
|
|
1335
|
+
sourcemap: false
|
|
1336
|
+
});
|
|
1337
|
+
if (result.errors.length > 0) {
|
|
1338
|
+
throw new Error(`Failed to minify ${fileName}: ${result.errors[0].message}`);
|
|
1339
|
+
}
|
|
1340
|
+
return restoreLiteralModuleSpecifiers(result.code, fileName, rolldownUtils);
|
|
1341
|
+
}
|
|
1342
|
+
__name(minifyFarmServerChunk, "minifyFarmServerChunk");
|
|
1343
|
+
function restoreLiteralModuleSpecifiers(code, fileName, { parseSync, Visitor }) {
|
|
1344
|
+
if (!code.includes("import(`") && !code.includes("require(`")) return code;
|
|
1345
|
+
const parsed = parseSync(fileName, code, { lang: "js", sourceType: "module" });
|
|
1346
|
+
if (parsed.errors.length > 0) {
|
|
1347
|
+
throw new Error(`Failed to minify ${fileName}: ${parsed.errors[0].message}`);
|
|
1348
|
+
}
|
|
1349
|
+
const replacements = [];
|
|
1350
|
+
const restore = /* @__PURE__ */ __name((node) => {
|
|
1351
|
+
if (node?.type !== "TemplateLiteral") return;
|
|
1352
|
+
const template = node;
|
|
1353
|
+
const value = template.quasis[0]?.value.cooked;
|
|
1354
|
+
if (template.expressions.length > 0 || typeof value !== "string") return;
|
|
1355
|
+
const text = JSON.stringify(value).replace(
|
|
1356
|
+
/[\u007f-]/g,
|
|
1357
|
+
(character) => `\\u${character.charCodeAt(0).toString(16).padStart(4, "0")}`
|
|
1358
|
+
);
|
|
1359
|
+
replacements.push({ start: template.start, end: template.end, text });
|
|
1360
|
+
}, "restore");
|
|
1361
|
+
new Visitor({
|
|
1362
|
+
ImportExpression(node) {
|
|
1363
|
+
restore(node.source);
|
|
1364
|
+
},
|
|
1365
|
+
CallExpression(node) {
|
|
1366
|
+
if (node.callee.type === "Identifier" && node.callee.name === "require" && node.arguments.length === 1) {
|
|
1367
|
+
restore(node.arguments[0]);
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
}).visit(parsed.program);
|
|
1371
|
+
let restored = "";
|
|
1372
|
+
let offset = 0;
|
|
1373
|
+
for (const { start, end, text } of replacements.sort((a, b) => a.start - b.start)) {
|
|
1374
|
+
restored += code.slice(offset, start) + text;
|
|
1375
|
+
offset = end;
|
|
1376
|
+
}
|
|
1377
|
+
return restored + code.slice(offset);
|
|
1344
1378
|
}
|
|
1345
|
-
__name(
|
|
1346
|
-
function
|
|
1347
|
-
const configuredTransformOptions = createEsbuildTransformOptions(
|
|
1348
|
-
configuredEsbuildOptions,
|
|
1349
|
-
true,
|
|
1350
|
-
"esnext"
|
|
1351
|
-
);
|
|
1352
|
-
const transformOptions = {
|
|
1353
|
-
format: "esm",
|
|
1354
|
-
target: configuredTransformOptions.target,
|
|
1355
|
-
loader: "js",
|
|
1356
|
-
sourcemap: false,
|
|
1357
|
-
minify: true,
|
|
1358
|
-
keepNames: configuredTransformOptions.keepNames,
|
|
1359
|
-
legalComments: configuredTransformOptions.legalComments,
|
|
1360
|
-
charset: configuredTransformOptions.charset
|
|
1361
|
-
};
|
|
1379
|
+
__name(restoreLiteralModuleSpecifiers, "restoreLiteralModuleSpecifiers");
|
|
1380
|
+
function createServerChunkMinifyPlugin(options) {
|
|
1362
1381
|
return {
|
|
1363
|
-
name: "farm-
|
|
1382
|
+
name: "farm-server-chunk-minify",
|
|
1364
1383
|
async renderChunk(code, chunk) {
|
|
1365
|
-
const
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
sourcefile: chunk.fileName
|
|
1369
|
-
});
|
|
1370
|
-
if (!result.code) return null;
|
|
1371
|
-
return {
|
|
1372
|
-
code: result.code,
|
|
1373
|
-
map: result.map || null
|
|
1374
|
-
};
|
|
1384
|
+
const minified = await minifyFarmServerChunk(code, chunk.fileName, options);
|
|
1385
|
+
if (!minified) return null;
|
|
1386
|
+
return { code: minified, map: null };
|
|
1375
1387
|
}
|
|
1376
1388
|
};
|
|
1377
1389
|
}
|
|
1378
|
-
__name(
|
|
1390
|
+
__name(createServerChunkMinifyPlugin, "createServerChunkMinifyPlugin");
|
|
1379
1391
|
function trimSlashes(value) {
|
|
1380
1392
|
return value.replace(/^\/+|\/+$/g, "");
|
|
1381
1393
|
}
|
|
@@ -2188,7 +2200,7 @@ async function buildClient(productionVite, config, root, srcDir, outputDir, page
|
|
|
2188
2200
|
if (id.includes("/api/") && id.includes("/route")) {
|
|
2189
2201
|
return { id: "\0empty-api-route", external: false };
|
|
2190
2202
|
}
|
|
2191
|
-
if (id === "fsevents" || id.includes("fsevents") || id.endsWith(".node") || id === "nitro" || id === "vite" || id === "esbuild" || id === "rollup" || id.startsWith("nitro/") || id.includes("node-pre-gyp") || id.includes("nf3")) {
|
|
2203
|
+
if (id === "fsevents" || id.includes("fsevents") || id.endsWith(".node") || id === "nitro" || id === "vite" || id === "esbuild" || id === "rolldown" || id.startsWith("rolldown/") || id === "rollup" || id.startsWith("nitro/") || id.includes("node-pre-gyp") || id.includes("nf3")) {
|
|
2192
2204
|
return { id: "\0empty-module", external: false };
|
|
2193
2205
|
}
|
|
2194
2206
|
return null;
|
|
@@ -4388,7 +4400,7 @@ void hydrate();
|
|
|
4388
4400
|
__name(generateClientHydrationEntry, "generateClientHydrationEntry");
|
|
4389
4401
|
async function buildSSRInMemory(productionVite, config, root, routeManager, apiRouteManager, serverRenderer, preset, collectedPageRoutes, collectedLayoutRoutes, collectedRouteSlots, isolatedClientBoundaryModules, hydrationPlanCache, rendererBuildLifetime) {
|
|
4390
4402
|
const viteBuild = productionVite.build;
|
|
4391
|
-
const { farmPlugin } = await import("./vite.mjs");
|
|
4403
|
+
const { farmPlugin, farmServerOnlyEntriesPlugin } = await import("./vite.mjs");
|
|
4392
4404
|
const { PluginManager: PluginManager2 } = await import("./plugin.mjs");
|
|
4393
4405
|
const fs = await import("fs/promises");
|
|
4394
4406
|
const pluginManager = new PluginManager2({
|
|
@@ -4444,6 +4456,7 @@ async function buildSSRInMemory(productionVite, config, root, routeManager, apiR
|
|
|
4444
4456
|
modulePath: entry.modulePath
|
|
4445
4457
|
});
|
|
4446
4458
|
}
|
|
4459
|
+
assertMetadataImageRuntimeInstalled(root, metadataImageRoutes);
|
|
4447
4460
|
const applicationMetadataRoutes = Array.from(
|
|
4448
4461
|
routeManager.getMetadataRoutes().values(),
|
|
4449
4462
|
(entry) => ({
|
|
@@ -4487,7 +4500,7 @@ async function buildSSRInMemory(productionVite, config, root, routeManager, apiR
|
|
|
4487
4500
|
const appDirs = getFarmAppDirectories(config);
|
|
4488
4501
|
let openAPIReference = null;
|
|
4489
4502
|
if (config.openapi.enabled && config.openapi.route) {
|
|
4490
|
-
const { OpenAPIManager, renderOpenAPIReferenceHTML } = await import("./manager-
|
|
4503
|
+
const { OpenAPIManager, renderOpenAPIReferenceHTML } = await import("./manager-RT733VRK.mjs");
|
|
4491
4504
|
const openAPIManager = new OpenAPIManager(appDirs, config.openapi, {
|
|
4492
4505
|
mode: "production",
|
|
4493
4506
|
apiBaseURL: config.api.baseURL
|
|
@@ -4648,6 +4661,9 @@ async function buildSSRInMemory(productionVite, config, root, routeManager, apiR
|
|
|
4648
4661
|
...useExternalMetadataImageRuntime ? ["@vercel/og"] : [],
|
|
4649
4662
|
"esbuild",
|
|
4650
4663
|
"lightningcss",
|
|
4664
|
+
"rolldown",
|
|
4665
|
+
"rolldown/experimental",
|
|
4666
|
+
"rolldown/utils",
|
|
4651
4667
|
"rollup",
|
|
4652
4668
|
"@rollup/rollup-darwin-arm64",
|
|
4653
4669
|
"@rollup/rollup-darwin-x64",
|
|
@@ -4703,6 +4719,7 @@ async function buildSSRInMemory(productionVite, config, root, routeManager, apiR
|
|
|
4703
4719
|
};
|
|
4704
4720
|
}
|
|
4705
4721
|
},
|
|
4722
|
+
farmServerOnlyEntriesPlugin(),
|
|
4706
4723
|
farmPlugin({ ...config, isolatedClientBoundaryModules }, pluginManager),
|
|
4707
4724
|
farmEnvironmentFunctionsPlugin(),
|
|
4708
4725
|
{
|
|
@@ -9277,16 +9294,9 @@ export default async function farmNitroEventHandler(event) {
|
|
|
9277
9294
|
if (selectRolldownBuilder) nitroConfig.builder = "rolldown";
|
|
9278
9295
|
const useRolldownBuilder = canReusePrebuiltSSR && (nitroConfig.builder ?? process.env.NITRO_BUILDER) === "rolldown";
|
|
9279
9296
|
const shouldMinify = nitroConfig.minify !== false;
|
|
9280
|
-
const
|
|
9281
|
-
const
|
|
9282
|
-
|
|
9283
|
-
// function with toString(); the helper is outside the emitted script scope.
|
|
9284
|
-
keepNames: !(config.docs?.enabled && config.docs.adapter?.server),
|
|
9285
|
-
legalComments: "none"
|
|
9286
|
-
};
|
|
9287
|
-
const prebuiltSSREsbuildOptions = config.docs?.enabled && config.docs.adapter?.server ? resolvedEsbuildOptions : configuredEsbuildOptions;
|
|
9288
|
-
const useFarmEsbuildMinifier = shouldMinify && nitroConfig.sourcemap === false && !hasCustomOxcOptions && !hasLateBuildMutationConfig;
|
|
9289
|
-
const esbuildChunkMinifier = useFarmEsbuildMinifier ? createEsbuildChunkMinifyPlugin(resolvedEsbuildOptions) : null;
|
|
9297
|
+
const keepServerNames = !(config.docs?.enabled && config.docs.adapter?.server);
|
|
9298
|
+
const useFarmServerMinifier = shouldMinify && nitroConfig.sourcemap === false && !hasCustomOxcOptions && !hasLateBuildMutationConfig;
|
|
9299
|
+
const serverChunkMinifier = useFarmServerMinifier ? createServerChunkMinifyPlugin({ keepNames: keepServerNames, target: "esnext" }) : null;
|
|
9290
9300
|
if (canReusePrebuiltSSR) {
|
|
9291
9301
|
const configuredRollupPlugins = nitroConfig.rollupConfig?.plugins;
|
|
9292
9302
|
nitroConfig.rollupConfig = {
|
|
@@ -9297,7 +9307,7 @@ export default async function farmNitroEventHandler(event) {
|
|
|
9297
9307
|
]
|
|
9298
9308
|
};
|
|
9299
9309
|
}
|
|
9300
|
-
nitroConfig.minify =
|
|
9310
|
+
nitroConfig.minify = useFarmServerMinifier ? false : shouldMinify;
|
|
9301
9311
|
const nitroInstance = await nitroBuilder.createNitro(nitroConfig);
|
|
9302
9312
|
if (config.security.csp && config.security.csp.nonce) {
|
|
9303
9313
|
nitroInstance.hooks.hook("prerender:generate", async (route) => {
|
|
@@ -9347,26 +9357,25 @@ export default async function farmNitroEventHandler(event) {
|
|
|
9347
9357
|
await copyPrebuiltSSRBundle(
|
|
9348
9358
|
ssrBundle,
|
|
9349
9359
|
path5.join(prerenderServerDir, FARM_SSR_OUTPUT_DIR),
|
|
9350
|
-
|
|
9351
|
-
false,
|
|
9360
|
+
null,
|
|
9352
9361
|
fs
|
|
9353
9362
|
);
|
|
9354
9363
|
await registerPrebuiltSSRPackageImport(prerenderServerDir, ssrEntryFile, fs);
|
|
9355
9364
|
});
|
|
9356
9365
|
});
|
|
9357
9366
|
}
|
|
9358
|
-
if (
|
|
9367
|
+
if (serverChunkMinifier || useRolldownBuilder) {
|
|
9359
9368
|
nitroInstance.hooks.hook("rollup:before", (_nitro, rollupConfig) => {
|
|
9360
9369
|
if (useRolldownBuilder) {
|
|
9361
9370
|
const rolldownConfig = rollupConfig;
|
|
9362
9371
|
delete rolldownConfig.inject;
|
|
9363
9372
|
delete rolldownConfig.jsx;
|
|
9364
9373
|
}
|
|
9365
|
-
if (
|
|
9374
|
+
if (serverChunkMinifier) {
|
|
9366
9375
|
const configuredPlugins = rollupConfig.plugins;
|
|
9367
9376
|
rollupConfig.plugins = [
|
|
9368
9377
|
...Array.isArray(configuredPlugins) ? configuredPlugins : configuredPlugins ? [configuredPlugins] : [],
|
|
9369
|
-
|
|
9378
|
+
serverChunkMinifier
|
|
9370
9379
|
];
|
|
9371
9380
|
}
|
|
9372
9381
|
});
|
|
@@ -9413,8 +9422,7 @@ export default async function farmNitroEventHandler(event) {
|
|
|
9413
9422
|
canReusePrebuiltSSR ? copyPrebuiltSSRBundle(
|
|
9414
9423
|
ssrBundle,
|
|
9415
9424
|
path5.join(outputDir, "server", FARM_SSR_OUTPUT_DIR),
|
|
9416
|
-
|
|
9417
|
-
shouldMinify,
|
|
9425
|
+
shouldMinify ? { keepNames: keepServerNames, target: "node18" } : null,
|
|
9418
9426
|
fs
|
|
9419
9427
|
) : Promise.resolve(),
|
|
9420
9428
|
runtimeCopyPromise
|
|
@@ -9458,23 +9466,7 @@ function resolveFarmNitroOutputConfig(preset, outputDir) {
|
|
|
9458
9466
|
};
|
|
9459
9467
|
}
|
|
9460
9468
|
__name(resolveFarmNitroOutputConfig, "resolveFarmNitroOutputConfig");
|
|
9461
|
-
async function copyPrebuiltSSRBundle(ssrBundle, targetDir,
|
|
9462
|
-
const {
|
|
9463
|
-
include: _include,
|
|
9464
|
-
exclude: _exclude,
|
|
9465
|
-
sourceMap: _sourceMap,
|
|
9466
|
-
loaders: _loaders,
|
|
9467
|
-
...configuredTransformOptions
|
|
9468
|
-
} = configuredEsbuildOptions;
|
|
9469
|
-
const hasConfiguredTransforms = Object.keys(configuredTransformOptions).some(
|
|
9470
|
-
(option) => option !== "minify"
|
|
9471
|
-
);
|
|
9472
|
-
const transformOptions = createEsbuildTransformOptions(
|
|
9473
|
-
configuredEsbuildOptions,
|
|
9474
|
-
minify,
|
|
9475
|
-
"node18"
|
|
9476
|
-
);
|
|
9477
|
-
const transform = minify || hasConfiguredTransforms ? (await import("esbuild")).transform : null;
|
|
9469
|
+
async function copyPrebuiltSSRBundle(ssrBundle, targetDir, minifyOptions, fs) {
|
|
9478
9470
|
await fs.rm(targetDir, { recursive: true, force: true });
|
|
9479
9471
|
await Promise.all(
|
|
9480
9472
|
Object.entries(ssrBundle).map(async ([fileName, output]) => {
|
|
@@ -9484,14 +9476,7 @@ async function copyPrebuiltSSRBundle(ssrBundle, targetDir, configuredEsbuildOpti
|
|
|
9484
9476
|
await fs.writeFile(targetPath, output.source);
|
|
9485
9477
|
return;
|
|
9486
9478
|
}
|
|
9487
|
-
|
|
9488
|
-
if (transform) {
|
|
9489
|
-
const result = await transform(code, {
|
|
9490
|
-
...transformOptions,
|
|
9491
|
-
sourcefile: fileName
|
|
9492
|
-
});
|
|
9493
|
-
code = result.code;
|
|
9494
|
-
}
|
|
9479
|
+
const code = minifyOptions ? await minifyFarmServerChunk(output.code, fileName, minifyOptions) : output.code;
|
|
9495
9480
|
await fs.writeFile(targetPath, code);
|
|
9496
9481
|
})
|
|
9497
9482
|
);
|
|
@@ -9666,9 +9651,7 @@ async function stageSharpRuntime(config, root, distDir, fs, preset) {
|
|
|
9666
9651
|
try {
|
|
9667
9652
|
await copyPackage("sharp", sharpRequire);
|
|
9668
9653
|
if (!copiedPackages.has("sharp")) {
|
|
9669
|
-
throw new Error(
|
|
9670
|
-
"Farm image optimization requires sharp. Reinstall dependencies without omitting optional packages."
|
|
9671
|
-
);
|
|
9654
|
+
throw new Error(`Farm image optimization requires sharp. ${SHARP_INSTALL_HINT}`);
|
|
9672
9655
|
}
|
|
9673
9656
|
} catch (error) {
|
|
9674
9657
|
await fs.rm(stageDir, { recursive: true, force: true });
|
|
@@ -9740,22 +9723,29 @@ async function mergeStagedDirectory(sourceDir, targetDir, fs) {
|
|
|
9740
9723
|
);
|
|
9741
9724
|
}
|
|
9742
9725
|
__name(mergeStagedDirectory, "mergeStagedDirectory");
|
|
9743
|
-
|
|
9726
|
+
function assertMetadataImageRuntimeInstalled(root, metadataImageRoutes) {
|
|
9727
|
+
const generated = metadataImageRoutes.find((image) => image.sourceType === "module");
|
|
9728
|
+
if (!generated || resolveMetadataImageRuntimePackageJson(root)) return;
|
|
9729
|
+
const file = generated.modulePath ? toPosixPath(path5.relative(root, generated.modulePath)) : "";
|
|
9730
|
+
throw new Error(
|
|
9731
|
+
`${file || "A generated metadata image"} renders with @vercel/og, which is not installed. ${VERCEL_OG_INSTALL_HINT}`
|
|
9732
|
+
);
|
|
9733
|
+
}
|
|
9734
|
+
__name(assertMetadataImageRuntimeInstalled, "assertMetadataImageRuntimeInstalled");
|
|
9735
|
+
function resolveMetadataImageRuntimePackageJson(root) {
|
|
9744
9736
|
const projectRequire = createRequire(path5.join(root, "package.json"));
|
|
9745
|
-
|
|
9746
|
-
|
|
9747
|
-
|
|
9748
|
-
|
|
9749
|
-
|
|
9750
|
-
|
|
9751
|
-
} catch {
|
|
9752
|
-
}
|
|
9753
|
-
}
|
|
9754
|
-
if (!packageJsonPath) {
|
|
9755
|
-
throw new Error(
|
|
9756
|
-
"Generated metadata images require @vercel/og. Reinstall @farm.js/core with production dependencies."
|
|
9757
|
-
);
|
|
9737
|
+
const packageJsonPath = resolvePackageJson(projectRequire, "@vercel/og");
|
|
9738
|
+
if (packageJsonPath) return packageJsonPath;
|
|
9739
|
+
try {
|
|
9740
|
+
return resolvePackageJson(createRequire(projectRequire.resolve("@farm.js/core")), "@vercel/og");
|
|
9741
|
+
} catch {
|
|
9742
|
+
return null;
|
|
9758
9743
|
}
|
|
9744
|
+
}
|
|
9745
|
+
__name(resolveMetadataImageRuntimePackageJson, "resolveMetadataImageRuntimePackageJson");
|
|
9746
|
+
async function copyMetadataImageRuntime(root, nitroFuncDir, fs) {
|
|
9747
|
+
const packageJsonPath = resolveMetadataImageRuntimePackageJson(root);
|
|
9748
|
+
if (!packageJsonPath) return;
|
|
9759
9749
|
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, "utf8"));
|
|
9760
9750
|
const packageDir = path5.dirname(packageJsonPath);
|
|
9761
9751
|
const targetDir = path5.join(nitroFuncDir, "node_modules", "@vercel", "og");
|
|
@@ -9930,6 +9920,14 @@ async function buildWithProductionNodeEnv(inputConfig, options) {
|
|
|
9930
9920
|
outputDir: targets.outputDir
|
|
9931
9921
|
}
|
|
9932
9922
|
};
|
|
9923
|
+
config = {
|
|
9924
|
+
...config,
|
|
9925
|
+
images: resolveFarmImageProviderForRuntime(config.images, {
|
|
9926
|
+
root: targets.root,
|
|
9927
|
+
preset: targets.preset
|
|
9928
|
+
})
|
|
9929
|
+
};
|
|
9930
|
+
if (config.docs?.enabled) await loadFarmDocsEngine();
|
|
9933
9931
|
pluginManager.updateContext({ config });
|
|
9934
9932
|
const { root, preset, srcDir, distDir, deployOutputDir } = targets;
|
|
9935
9933
|
logger.info(`\u{1F69C} Building Farm.js application with preset: ${preset}...`);
|
|
@@ -10191,7 +10189,7 @@ function resolveLegacyPageEntry(config, root, srcDir) {
|
|
|
10191
10189
|
__name(resolveLegacyPageEntry, "resolveLegacyPageEntry");
|
|
10192
10190
|
async function buildNitro(config, routeManager, apiRouteManager, serverRenderer, preset, root, distDir, pluginManager) {
|
|
10193
10191
|
const [{ createNitroConfig }, { createNitro, build: nitroBuild }] = await Promise.all([
|
|
10194
|
-
import("./nitro-
|
|
10192
|
+
import("./nitro-ZKLGOTVY.mjs"),
|
|
10195
10193
|
import("nitro/builder")
|
|
10196
10194
|
]);
|
|
10197
10195
|
let nitroConfig = await createNitroConfig(
|