@farm.js/core 0.1.24 → 0.1.26
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 +2 -2
- package/dist/agent-runtime.d.ts +2 -2
- package/dist/api/route-manager.cjs +4 -4
- package/dist/api/route-manager.d.mts +2 -2
- package/dist/api/route-manager.d.ts +2 -2
- package/dist/api/route-manager.mjs +3 -3
- package/dist/api/runtime.cjs +3 -3
- package/dist/api/runtime.mjs +2 -2
- package/dist/api.cjs +7 -7
- package/dist/api.d.mts +3 -3
- package/dist/api.d.ts +3 -3
- package/dist/api.mjs +6 -6
- package/dist/{app-BZDWwwFa.d.mts → app-29vG5tmY.d.mts} +3 -3
- package/dist/{app-BV-7wV5q.d.ts → app-Cx71s_PT.d.ts} +3 -3
- package/dist/app-markdown.cjs +6 -4
- package/dist/app-markdown.d.mts +3 -3
- package/dist/app-markdown.d.ts +3 -3
- package/dist/app-markdown.mjs +5 -3
- package/dist/{chunk-ISTFC3MZ.cjs → chunk-2CT6XUNO.cjs} +99 -26
- package/dist/{chunk-G6GNNB44.cjs → chunk-3TQG7CGC.cjs} +201 -180
- package/dist/{chunk-KNPRCKXK.cjs → chunk-3TQWUUNP.cjs} +9 -7
- package/dist/{chunk-LYM7HY34.cjs → chunk-3WSWXPYM.cjs} +4 -4
- package/dist/{chunk-GZ3ZPTQV.mjs → chunk-52SH7TKB.mjs} +2 -2
- package/dist/{chunk-JIKGGIOL.mjs → chunk-6D242YGO.mjs} +1 -1
- package/dist/{chunk-MVUREHPN.mjs → chunk-74RZNRY6.mjs} +1 -1
- package/dist/{chunk-BD7FZ63M.cjs → chunk-ALIFMS4A.cjs} +1 -1
- package/dist/{chunk-PGQBL5DN.mjs → chunk-ARXCHQLX.mjs} +79 -2
- package/dist/{chunk-2QLBIPFT.cjs → chunk-B6ZCT36X.cjs} +4 -4
- package/dist/{chunk-IMBMOEWT.cjs → chunk-BD2U4ZL6.cjs} +8 -8
- package/dist/{chunk-2M435BUE.mjs → chunk-CEYUWDWA.mjs} +7 -5
- package/dist/{chunk-XI3GWPUS.cjs → chunk-CRQPYWLK.cjs} +14 -14
- package/dist/{chunk-47H7VENP.mjs → chunk-DU2CASV6.mjs} +1 -1
- package/dist/{chunk-QTBEAKCJ.cjs → chunk-H7CJRJ4L.cjs} +16 -16
- package/dist/chunk-J63ZH5OQ.cjs +62 -0
- package/dist/{chunk-N255VYFP.mjs → chunk-JM5GQL4H.mjs} +8 -3
- package/dist/{chunk-6VEHUKZ2.mjs → chunk-MM5D6VLP.mjs} +4 -20
- package/dist/chunk-MVL2RAJW.mjs +62 -0
- package/dist/{chunk-YA6LLTIJ.cjs → chunk-ND224OE2.cjs} +4 -20
- package/dist/{chunk-YGMK6ESJ.mjs → chunk-OFKG57MZ.mjs} +2 -2
- package/dist/chunk-OOIL3BWR.mjs +1229 -0
- package/dist/{chunk-BNSD3VDY.mjs → chunk-PPIW3MH6.mjs} +1 -1
- package/dist/{chunk-WNUBR4CA.mjs → chunk-QGG336NI.mjs} +1 -1
- package/dist/chunk-QIH2HD6H.cjs +1229 -0
- package/dist/{chunk-OYDRPBBV.cjs → chunk-QJ4D3UKJ.cjs} +80 -3
- package/dist/{chunk-LQIRVSBY.cjs → chunk-QLXEYIAW.cjs} +13 -13
- package/dist/{chunk-ARHWIOUZ.mjs → chunk-QPPQHB6X.mjs} +111 -40
- package/dist/{chunk-7BC6GAL7.mjs → chunk-RAI7NULA.mjs} +76 -3
- package/dist/{chunk-AH7HOAQ3.cjs → chunk-RCYINC4A.cjs} +9 -4
- package/dist/{chunk-SIQMTHCZ.cjs → chunk-SZ4LYNUX.cjs} +212 -141
- package/dist/{chunk-5UX4C5QI.mjs → chunk-TKDY6AJP.mjs} +1 -1
- package/dist/{chunk-YJJLXIIS.cjs → chunk-U74A3P2P.cjs} +7 -7
- package/dist/{chunk-6YSEHN46.mjs → chunk-UXQXGB5A.mjs} +36 -15
- package/dist/{chunk-72VJRKJD.mjs → chunk-VZWO3XVL.mjs} +2 -2
- package/dist/{chunk-I5YBCWQ6.cjs → chunk-W2HZKYES.cjs} +2 -2
- package/dist/{chunk-DNLQMFER.cjs → chunk-WFPRVVF2.cjs} +26 -19
- package/dist/{chunk-BDJNP7AQ.mjs → chunk-YMUH2BLR.mjs} +10 -3
- package/dist/{client-plugins-B_XzCegf.d.mts → client-plugins-B8RPJnot.d.mts} +129 -4
- package/dist/{client-plugins-CKsXQfXY.d.ts → client-plugins-bPBf4haK.d.ts} +129 -4
- package/dist/client-plugins.d.mts +2 -2
- package/dist/client-plugins.d.ts +2 -2
- package/dist/client.cjs +4 -4
- package/dist/client.d.mts +6 -6
- package/dist/client.d.ts +6 -6
- package/dist/client.mjs +3 -3
- package/dist/config.d.mts +2 -2
- package/dist/config.d.ts +2 -2
- package/dist/{devtools-OY4SNU3P.mjs → devtools-5D4ZDRPR.mjs} +5 -3
- package/dist/{devtools-UHRSZ7VA.cjs → devtools-QZJEUOJW.cjs} +6 -4
- package/dist/docs.cjs +8 -6
- package/dist/docs.mjs +7 -5
- package/dist/index.cjs +29 -23
- package/dist/index.d.mts +14 -14
- package/dist/index.d.ts +14 -14
- package/dist/index.mjs +28 -22
- package/dist/integrations.d.mts +2 -2
- package/dist/integrations.d.ts +2 -2
- package/dist/internal/app-markdown-runtime.cjs +5 -3
- package/dist/internal/app-markdown-runtime.d.mts +2 -2
- package/dist/internal/app-markdown-runtime.d.ts +2 -2
- package/dist/internal/app-markdown-runtime.mjs +4 -2
- package/dist/internal/build-runtime.cjs +18 -17
- package/dist/internal/build-runtime.d.mts +4 -4
- package/dist/internal/build-runtime.d.ts +4 -4
- package/dist/internal/build-runtime.mjs +17 -16
- package/dist/internal/cli-runtime.cjs +6 -5
- package/dist/internal/cli-runtime.mjs +5 -4
- 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 +2 -2
- package/dist/internal/compression-runtime.d.ts +2 -2
- package/dist/internal/config-runtime.cjs +6 -4
- package/dist/internal/config-runtime.d.mts +3 -3
- package/dist/internal/config-runtime.d.ts +3 -3
- package/dist/internal/config-runtime.mjs +5 -3
- package/dist/internal/infra-analytics-runtime.cjs +4 -3
- package/dist/internal/infra-analytics-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.cjs +12 -5
- package/dist/internal/production-runtime.d.mts +33 -9
- package/dist/internal/production-runtime.d.ts +33 -9
- package/dist/internal/production-runtime.mjs +11 -4
- package/dist/markdown.cjs +6 -2
- package/dist/markdown.d.mts +63 -1
- package/dist/markdown.d.ts +63 -1
- package/dist/markdown.mjs +5 -1
- package/dist/{metadata-B08w4EYV.d.mts → metadata-C3na4CBj.d.mts} +1 -1
- package/dist/{metadata-IQEblkZp.d.ts → metadata-CzBP4Mfp.d.ts} +1 -1
- package/dist/middleware.d.mts +4 -4
- package/dist/middleware.d.ts +4 -4
- package/dist/navigation.cjs +5 -5
- package/dist/navigation.d.mts +5 -5
- package/dist/navigation.d.ts +5 -5
- package/dist/navigation.mjs +4 -4
- package/dist/observability-BupkiN0m.d.mts +447 -0
- package/dist/observability-BupkiN0m.d.ts +447 -0
- package/dist/observability.d.mts +2 -417
- package/dist/observability.d.ts +2 -417
- package/dist/plugin.cjs +13 -12
- package/dist/plugin.d.mts +2 -2
- package/dist/plugin.d.ts +2 -2
- package/dist/plugin.mjs +12 -11
- package/dist/{production-runtime-DRSOkc-d.d.ts → production-runtime-CYg4wM4E.d.ts} +1 -1
- package/dist/{production-runtime-C3bGFEaM.d.mts → production-runtime-DP94hPGe.d.mts} +1 -1
- package/dist/query/client.cjs +6 -6
- package/dist/query/client.mjs +2 -2
- package/dist/{render-plan-CCFuMLNS.d.ts → render-plan-Bl6Fzg5z.d.ts} +1 -1
- package/dist/{render-plan-B6CKNl4e.d.mts → render-plan-CKAJg0jC.d.mts} +1 -1
- package/dist/renderer-client.cjs +5 -5
- package/dist/renderer-client.d.mts +4 -4
- package/dist/renderer-client.d.ts +4 -4
- package/dist/renderer-client.mjs +2 -2
- package/dist/{request-Dn6VURbE.d.ts → request-CR-Bp1Px.d.ts} +1 -1
- package/dist/{request-DgD1XsTx.d.mts → request-CrBCcPZZ.d.mts} +1 -1
- package/dist/request.d.mts +3 -3
- package/dist/request.d.ts +3 -3
- package/dist/{route-rendering-76A5I_kE.d.mts → route-rendering-C1NAHo-C.d.mts} +1 -1
- package/dist/{route-rendering-LAmQEdyG.d.ts → route-rendering-CZH5FegB.d.ts} +1 -1
- package/dist/{router-CnrRSa9d.d.mts → router-B57eDJ3u.d.mts} +1 -1
- package/dist/{router-BSOOGya2.d.ts → router-Cg_kD3Bd.d.ts} +1 -1
- package/dist/routes.d.mts +2 -2
- package/dist/routes.d.ts +2 -2
- package/dist/server-plugins.d.mts +3 -3
- package/dist/server-plugins.d.ts +3 -3
- package/dist/server.cjs +163 -106
- package/dist/server.d.mts +8 -8
- package/dist/server.d.ts +8 -8
- package/dist/server.mjs +144 -87
- package/dist/{spa-router-BMrSsG5b.d.ts → spa-router-BstQUO6Q.d.ts} +2 -2
- package/dist/{spa-router-DnYhWCvI.d.mts → spa-router-DTdbuinx.d.mts} +2 -2
- package/dist/testing.cjs +4 -4
- package/dist/testing.d.mts +2 -2
- package/dist/testing.d.ts +2 -2
- package/dist/testing.mjs +3 -3
- package/dist/{utils-ABkktwku.d.mts → utils-CS3ZLnEJ.d.mts} +1 -1
- package/dist/{utils-C3GguS-Q.d.ts → utils-D3rdsIvM.d.ts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +13 -12
- package/dist/vite.d.mts +2 -2
- package/dist/vite.d.ts +2 -2
- package/dist/vite.mjs +12 -11
- package/package.json +1 -1
- package/dist/chunk-BBVSJVBZ.cjs +0 -600
- package/dist/chunk-OFEY6KHO.mjs +0 -600
- package/dist/{chunk-XP777LRD.mjs → chunk-GDUYXFIS.mjs} +3 -3
- package/dist/{chunk-4PNUXIVU.cjs → chunk-YAOX43YI.cjs} +3 -3
|
@@ -3,18 +3,28 @@
|
|
|
3
3
|
var _chunkOWOUTKIJcjs = require('./chunk-OWOUTKIJ.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunk2CT6XUNOcjs = require('./chunk-2CT6XUNO.cjs');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var _chunkJ63ZH5OQcjs = require('./chunk-J63ZH5OQ.cjs');
|
|
7
10
|
|
|
8
11
|
|
|
9
12
|
var _chunkOI6CMLWXcjs = require('./chunk-OI6CMLWX.cjs');
|
|
10
13
|
|
|
11
14
|
|
|
15
|
+
|
|
16
|
+
var _chunkWPYFSQKKcjs = require('./chunk-WPYFSQKK.cjs');
|
|
17
|
+
|
|
18
|
+
|
|
12
19
|
var _chunkTKJZFIMLcjs = require('./chunk-TKJZFIML.cjs');
|
|
13
20
|
|
|
14
21
|
|
|
15
22
|
var _chunkBIDYX3SLcjs = require('./chunk-BIDYX3SL.cjs');
|
|
16
23
|
|
|
17
24
|
|
|
25
|
+
var _chunkI57LW5VZcjs = require('./chunk-I57LW5VZ.cjs');
|
|
26
|
+
|
|
27
|
+
|
|
18
28
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
19
29
|
|
|
20
30
|
// src/i18n/alternates.ts
|
|
@@ -194,10 +204,13 @@ function createFarmMetadataRouteResponse(kind, value, routeModule = {}, options
|
|
|
194
204
|
if (method !== "GET" && method !== "HEAD") {
|
|
195
205
|
return new Response(null, { status: 405, headers: { Allow: "GET, HEAD" } });
|
|
196
206
|
}
|
|
207
|
+
if ((kind === "llms" || kind === "llms-full") && options.request) {
|
|
208
|
+
_chunkJ63ZH5OQcjs.emitFarmAgentRead.call(void 0, options.request, kind, isResponse(value) ? value.status : 200);
|
|
209
|
+
}
|
|
197
210
|
if (isResponse(value)) {
|
|
198
211
|
return method === "HEAD" ? _chunkTKJZFIMLcjs.omitFarmResponseBody.call(void 0, value) : value;
|
|
199
212
|
}
|
|
200
|
-
const body = kind === "sitemap" ? serializeSitemap(value) : kind === "robots" ? serializeRobots(value) : kind === "llms" || kind === "llms-full" ?
|
|
213
|
+
const body = kind === "sitemap" ? serializeSitemap(value) : kind === "robots" ? serializeRobots(value) : kind === "llms" || kind === "llms-full" ? _chunk2CT6XUNOcjs.serializeFarmLlmsTxt.call(void 0, value) : serializeManifest(value);
|
|
201
214
|
const contentType = kind === "sitemap" ? "application/xml; charset=utf-8" : kind === "robots" || kind === "llms" || kind === "llms-full" ? "text/plain; charset=utf-8" : "application/manifest+json; charset=utf-8";
|
|
202
215
|
return new Response(method === "HEAD" ? null : body, {
|
|
203
216
|
headers: {
|
|
@@ -440,6 +453,70 @@ function serializeInlineValue(value) {
|
|
|
440
453
|
}
|
|
441
454
|
_chunkS3JO3N4Hcjs.__name.call(void 0, serializeInlineValue, "serializeInlineValue");
|
|
442
455
|
|
|
456
|
+
// src/api-catalog.ts
|
|
457
|
+
var FARM_API_CATALOG_PATH = "/.well-known/api-catalog";
|
|
458
|
+
var API_CATALOG_CONTENT_TYPE = 'application/linkset+json; profile="https://www.rfc-editor.org/info/rfc9727"';
|
|
459
|
+
function resolveFarmApiCatalogInput(config) {
|
|
460
|
+
const mcp = config.mcp && config.mcp.enabled !== false ? config.mcp : void 0;
|
|
461
|
+
return {
|
|
462
|
+
basePath: config.basePath,
|
|
463
|
+
apiBaseURL: _nullishCoalesce(_optionalChain([config, 'access', _5 => _5.openapi, 'optionalAccess', _6 => _6.servers, 'optionalAccess', _7 => _7[0], 'optionalAccess', _8 => _8.url]), () => ( config.api.baseURL)),
|
|
464
|
+
openapi: _optionalChain([config, 'access', _9 => _9.openapi, 'optionalAccess', _10 => _10.enabled]) ? { specRoute: config.openapi.specRoute, route: config.openapi.route } : void 0,
|
|
465
|
+
mcpPath: mcp ? _chunkWPYFSQKKcjs.resolveFarmAPIServerRoutePath.call(void 0,
|
|
466
|
+
_nullishCoalesce(mcp.path, () => ( "/api/mcp")),
|
|
467
|
+
_chunkWPYFSQKKcjs.resolveFarmAPIServerBasePath.call(void 0, config.api)
|
|
468
|
+
) : void 0
|
|
469
|
+
};
|
|
470
|
+
}
|
|
471
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmApiCatalogInput, "resolveFarmApiCatalogInput");
|
|
472
|
+
function createFarmApiCatalog(input) {
|
|
473
|
+
const appPath = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (path) => _chunkI57LW5VZcjs.applyFarmBasePath.call(void 0, path, input.basePath), "appPath");
|
|
474
|
+
const items = [];
|
|
475
|
+
const contexts = [];
|
|
476
|
+
const specRoute = _optionalChain([input, 'access', _11 => _11.openapi, 'optionalAccess', _12 => _12.specRoute]);
|
|
477
|
+
const reference = _optionalChain([input, 'access', _13 => _13.openapi, 'optionalAccess', _14 => _14.route]);
|
|
478
|
+
if (specRoute || reference) {
|
|
479
|
+
const api = { anchor: input.apiBaseURL };
|
|
480
|
+
if (specRoute) {
|
|
481
|
+
api["service-desc"] = [
|
|
482
|
+
{ href: appPath(specRoute), type: "application/vnd.oai.openapi+json" }
|
|
483
|
+
];
|
|
484
|
+
}
|
|
485
|
+
if (reference) api["service-doc"] = [{ href: appPath(reference), type: "text/html" }];
|
|
486
|
+
items.push({ href: input.apiBaseURL });
|
|
487
|
+
contexts.push(api);
|
|
488
|
+
}
|
|
489
|
+
if (input.mcpPath) items.push({ href: input.mcpPath });
|
|
490
|
+
return {
|
|
491
|
+
linkset: [{ anchor: appPath(FARM_API_CATALOG_PATH), item: items }, ...contexts]
|
|
492
|
+
};
|
|
493
|
+
}
|
|
494
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmApiCatalog, "createFarmApiCatalog");
|
|
495
|
+
function createFarmApiCatalogResponse(method, input, request) {
|
|
496
|
+
const upperMethod = method.toUpperCase();
|
|
497
|
+
if (upperMethod !== "GET" && upperMethod !== "HEAD") {
|
|
498
|
+
return new Response("Method Not Allowed", {
|
|
499
|
+
status: 405,
|
|
500
|
+
headers: { Allow: "GET, HEAD", "Content-Type": "text/plain; charset=utf-8" }
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
if (request) _chunkJ63ZH5OQcjs.emitFarmAgentRead.call(void 0, request, "api-catalog", 200);
|
|
504
|
+
const catalog = createFarmApiCatalog(input);
|
|
505
|
+
return new Response(upperMethod === "HEAD" ? null : JSON.stringify(catalog), {
|
|
506
|
+
status: 200,
|
|
507
|
+
headers: {
|
|
508
|
+
"Content-Type": API_CATALOG_CONTENT_TYPE,
|
|
509
|
+
"Cache-Control": "public, max-age=0, must-revalidate",
|
|
510
|
+
Link: `<${catalog.linkset[0].anchor}>; rel="api-catalog"`,
|
|
511
|
+
"X-Content-Type-Options": "nosniff"
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmApiCatalogResponse, "createFarmApiCatalogResponse");
|
|
516
|
+
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
|
|
443
520
|
|
|
444
521
|
|
|
445
522
|
|
|
@@ -450,4 +527,4 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, serializeInlineValue, "serializeInlineValu
|
|
|
450
527
|
|
|
451
528
|
|
|
452
529
|
|
|
453
|
-
exports.renderFarmLocaleAlternateLinks = renderFarmLocaleAlternateLinks; exports.createLateRedirectRecovery = createLateRedirectRecovery; exports.createLateNotFoundRecovery = createLateNotFoundRecovery; exports.createFarmMetadataRouteResponse = createFarmMetadataRouteResponse; exports.resolveDefaultErrorStatus = resolveDefaultErrorStatus; exports.getDefaultErrorStatusText = getDefaultErrorStatusText; exports.createDefaultErrorMarkup = createDefaultErrorMarkup; exports.createFarmThemeDocumentParts = createFarmThemeDocumentParts; exports.applyFarmThemeDocument = applyFarmThemeDocument;
|
|
530
|
+
exports.renderFarmLocaleAlternateLinks = renderFarmLocaleAlternateLinks; exports.createLateRedirectRecovery = createLateRedirectRecovery; exports.createLateNotFoundRecovery = createLateNotFoundRecovery; exports.createFarmMetadataRouteResponse = createFarmMetadataRouteResponse; exports.resolveDefaultErrorStatus = resolveDefaultErrorStatus; exports.getDefaultErrorStatusText = getDefaultErrorStatusText; exports.createDefaultErrorMarkup = createDefaultErrorMarkup; exports.createFarmThemeDocumentParts = createFarmThemeDocumentParts; exports.applyFarmThemeDocument = applyFarmThemeDocument; exports.FARM_API_CATALOG_PATH = FARM_API_CATALOG_PATH; exports.resolveFarmApiCatalogInput = resolveFarmApiCatalogInput; exports.createFarmApiCatalogResponse = createFarmApiCatalogResponse;
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunk3WSWXPYMcjs = require('./chunk-3WSWXPYM.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkWFPRVVF2cjs = require('./chunk-WFPRVVF2.cjs');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
var _chunk75WGQVQAcjs = require('./chunk-75WGQVQA.cjs');
|
|
@@ -39,7 +39,7 @@ function createFarmDocsAdapterRuntimeConfig(docs, options, moduleConfig) {
|
|
|
39
39
|
...moduleConfig ? { ...moduleConfig, ...docs.configOverrides } : _nullishCoalesce(docs.runtimeConfig, () => ( docs.config)),
|
|
40
40
|
entry: docs.config.entry || docs.entry.replace(/^\/+|\/+$/g, "") || "docs",
|
|
41
41
|
docsPath: docs.entry,
|
|
42
|
-
contentDir:
|
|
42
|
+
contentDir: _chunk3WSWXPYMcjs.resolveFarmDocsContentDir.call(void 0, docs, options)
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmDocsAdapterRuntimeConfig, "createFarmDocsAdapterRuntimeConfig");
|
|
@@ -274,25 +274,25 @@ function getDocsDescription(docs) {
|
|
|
274
274
|
}
|
|
275
275
|
_chunkS3JO3N4Hcjs.__name.call(void 0, getDocsDescription, "getDocsDescription");
|
|
276
276
|
function getLoadedDocsPages(context) {
|
|
277
|
-
return
|
|
277
|
+
return _chunk3WSWXPYMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs).map((page) => _chunk3WSWXPYMcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, page.slug)).filter((page) => Boolean(page));
|
|
278
278
|
}
|
|
279
279
|
_chunkS3JO3N4Hcjs.__name.call(void 0, getLoadedDocsPages, "getLoadedDocsPages");
|
|
280
280
|
function toDocsSourcePage(page) {
|
|
281
281
|
return {
|
|
282
|
-
...
|
|
282
|
+
..._chunk3WSWXPYMcjs.toFarmDocsMarkdownPage.call(void 0, page),
|
|
283
283
|
sourcePath: page.sourcePath
|
|
284
284
|
};
|
|
285
285
|
}
|
|
286
286
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsSourcePage, "toDocsSourcePage");
|
|
287
287
|
function toDocsSitemapPage(page) {
|
|
288
288
|
return {
|
|
289
|
-
...
|
|
289
|
+
..._chunk3WSWXPYMcjs.toFarmDocsMarkdownPage.call(void 0, page),
|
|
290
290
|
sourcePath: page.sourcePath
|
|
291
291
|
};
|
|
292
292
|
}
|
|
293
293
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsSitemapPage, "toDocsSitemapPage");
|
|
294
294
|
function toDocsLlmsPage(page) {
|
|
295
|
-
return
|
|
295
|
+
return _chunk3WSWXPYMcjs.toFarmDocsMarkdownPage.call(void 0, page);
|
|
296
296
|
}
|
|
297
297
|
_chunkS3JO3N4Hcjs.__name.call(void 0, toDocsLlmsPage, "toDocsLlmsPage");
|
|
298
298
|
function getDocsLlmsOptions(context, request) {
|
|
@@ -386,7 +386,7 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, renderAgentsDocument, "renderAgentsDocumen
|
|
|
386
386
|
function buildAgentSpec(context, request) {
|
|
387
387
|
const url = new URL(request.url);
|
|
388
388
|
const origin = url.origin;
|
|
389
|
-
const pages =
|
|
389
|
+
const pages = _chunk3WSWXPYMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs);
|
|
390
390
|
const spec = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsAgentDiscoverySpec(getDocsDiscoveryOptions(context, request));
|
|
391
391
|
const title = getDocsTitle(context.docs);
|
|
392
392
|
return {
|
|
@@ -428,7 +428,7 @@ function buildAgentSpec(context, request) {
|
|
|
428
428
|
}
|
|
429
429
|
_chunkS3JO3N4Hcjs.__name.call(void 0, buildAgentSpec, "buildAgentSpec");
|
|
430
430
|
function buildDiagnostics(context) {
|
|
431
|
-
const pages =
|
|
431
|
+
const pages = _chunk3WSWXPYMcjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs);
|
|
432
432
|
const diagnostics = _chunkIK6LVLKCcjs.docsEngine.call(void 0, ).buildDocsDiagnostics(context.docs.config, {
|
|
433
433
|
entry: context.docs.entry,
|
|
434
434
|
mcp: {
|
|
@@ -500,12 +500,12 @@ async function resolveAPIContext(options) {
|
|
|
500
500
|
config: options.config,
|
|
501
501
|
configPath: options.configPath
|
|
502
502
|
}));
|
|
503
|
-
const docs = isResolvedDocsConfig(docsInput) ? docsInput : await
|
|
503
|
+
const docs = isResolvedDocsConfig(docsInput) ? docsInput : await _chunkWFPRVVF2cjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
|
|
504
504
|
return {
|
|
505
505
|
root,
|
|
506
506
|
srcDir,
|
|
507
507
|
docs,
|
|
508
|
-
contentDir:
|
|
508
|
+
contentDir: _chunk3WSWXPYMcjs.resolveFarmDocsContentDir.call(void 0, docs, { root, srcDir })
|
|
509
509
|
};
|
|
510
510
|
}
|
|
511
511
|
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveAPIContext, "resolveAPIContext");
|
|
@@ -568,10 +568,10 @@ async function handleDocsAPIGet(request, context) {
|
|
|
568
568
|
if (format === "markdown" || url.pathname.endsWith(".md")) {
|
|
569
569
|
const pathParam = url.searchParams.get("path") || url.searchParams.get("slug");
|
|
570
570
|
const slug = normalizeDocsApiSlug(_nullishCoalesce(_nullishCoalesce(pathParam, () => ( pathTarget.slug)), () => ( "")), context.docs);
|
|
571
|
-
const page =
|
|
571
|
+
const page = _chunk3WSWXPYMcjs.loadFarmDocsPage.call(void 0, context.contentDir, context.docs, slug);
|
|
572
572
|
if (!page) return text("Docs page not found\n", "text/plain; charset=utf-8", { status: 404 });
|
|
573
573
|
return text(
|
|
574
|
-
_chunkIK6LVLKCcjs.docsEngine.call(void 0, ).renderDocsMarkdownDocument(
|
|
574
|
+
_chunkIK6LVLKCcjs.docsEngine.call(void 0, ).renderDocsMarkdownDocument(_chunk3WSWXPYMcjs.toFarmDocsMarkdownPage.call(void 0, page), {
|
|
575
575
|
origin: new URL(request.url).origin,
|
|
576
576
|
llms: getDocsLlmsOptions(context, request),
|
|
577
577
|
sitemap: context.docs.config.sitemap
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
compileFarmDocsAdapterEdgeManifest,
|
|
9
9
|
createFarmDocsAPIHandler
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-OFKG57MZ.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-DU2CASV6.mjs";
|
|
21
21
|
import {
|
|
22
22
|
generateFarmDocsSearchClientRuntime,
|
|
23
23
|
isFarmDocsSearchEnabled,
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
} from "./chunk-UP4CW6WP.mjs";
|
|
26
26
|
import {
|
|
27
27
|
FARM_PRERENDER_ENV
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-MM5D6VLP.mjs";
|
|
29
29
|
import {
|
|
30
30
|
loadFarmDocsEngine
|
|
31
31
|
} from "./chunk-2VQKKQ6D.mjs";
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
getDeployTargetForPreset,
|
|
35
35
|
hasCustomFarmRouteContext,
|
|
36
36
|
resolveDeployOutputPath
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-YMUH2BLR.mjs";
|
|
38
38
|
import {
|
|
39
39
|
resolveFarmInstrumentationFile
|
|
40
40
|
} from "./chunk-ZZSRYEYU.mjs";
|
|
@@ -44,6 +44,7 @@ import {
|
|
|
44
44
|
import {
|
|
45
45
|
DEFAULT_NOT_FOUND_STYLES,
|
|
46
46
|
FARM_LAYOUT_ELEMENT_CLIENT_SOURCE,
|
|
47
|
+
HOISTED_HEAD_ELEMENT,
|
|
47
48
|
PluginManager,
|
|
48
49
|
SHARP_INSTALL_HINT,
|
|
49
50
|
createFarmApp,
|
|
@@ -69,13 +70,17 @@ import {
|
|
|
69
70
|
resolveFarmImageProviderForRuntime,
|
|
70
71
|
resolveFarmIsolatedClientHydrationMode,
|
|
71
72
|
resolveFarmNotFoundComponentPath
|
|
72
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-UXQXGB5A.mjs";
|
|
73
74
|
import {
|
|
74
75
|
findRequestBoundSourceBlockers,
|
|
75
76
|
generateFarmTypeArtifacts,
|
|
76
77
|
parseRouteRenderingDirective,
|
|
77
78
|
resolveRouteRenderingConfigFromFile
|
|
78
79
|
} from "./chunk-VVJCWBIE.mjs";
|
|
80
|
+
import {
|
|
81
|
+
FARM_API_CATALOG_PATH,
|
|
82
|
+
resolveFarmApiCatalogInput
|
|
83
|
+
} from "./chunk-ARXCHQLX.mjs";
|
|
79
84
|
import {
|
|
80
85
|
isFarmPreviewDeploymentEnvironment
|
|
81
86
|
} from "./chunk-BOYNDCZL.mjs";
|
|
@@ -107,7 +112,7 @@ import {
|
|
|
107
112
|
} from "./chunk-DAATZTKJ.mjs";
|
|
108
113
|
import {
|
|
109
114
|
applyFarmCspHashesToHtml
|
|
110
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-RAI7NULA.mjs";
|
|
111
116
|
import {
|
|
112
117
|
applyFarmCronVercelCrons,
|
|
113
118
|
createFarmCronCloudflareConfig,
|
|
@@ -119,11 +124,14 @@ import {
|
|
|
119
124
|
} from "./chunk-4OOBRCJX.mjs";
|
|
120
125
|
import {
|
|
121
126
|
isFarmMarkdownPageFile
|
|
122
|
-
} from "./chunk-
|
|
127
|
+
} from "./chunk-JM5GQL4H.mjs";
|
|
123
128
|
import {
|
|
124
129
|
resolveFarmMdxComponentsModulePath,
|
|
125
130
|
resolveMdxConfig
|
|
126
131
|
} from "./chunk-FA2W42OV.mjs";
|
|
132
|
+
import {
|
|
133
|
+
getFarmMarkdownAlternatePath
|
|
134
|
+
} from "./chunk-OOIL3BWR.mjs";
|
|
127
135
|
import {
|
|
128
136
|
applyFarmWorkflowVercelCrons,
|
|
129
137
|
prepareFarmWorkflowsForNitro
|
|
@@ -137,7 +145,7 @@ import {
|
|
|
137
145
|
} from "./chunk-TIKNUAU7.mjs";
|
|
138
146
|
import {
|
|
139
147
|
APIRouteManager
|
|
140
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-QGG336NI.mjs";
|
|
141
149
|
import {
|
|
142
150
|
readFarmI18nCatalogs
|
|
143
151
|
} from "./chunk-FV45CKBC.mjs";
|
|
@@ -5413,10 +5421,12 @@ function isolateFarmRouteServerPage(element) { return element; }`;
|
|
|
5413
5421
|
createFarmCacheKey,
|
|
5414
5422
|
createFarmMetadataRouteResponse,
|
|
5415
5423
|
createFarmAgentRobots,
|
|
5424
|
+
createFarmApiCatalogResponse,
|
|
5416
5425
|
collectFarmLlmsTxtPages,
|
|
5417
5426
|
createFarmDefaultLlmsTxt,
|
|
5418
5427
|
createFarmLlmsMarkdownReader,
|
|
5419
5428
|
renderFarmLlmsFullTxt,
|
|
5429
|
+
createFarmLlmsFullRenderer,
|
|
5420
5430
|
createFarmThemeDocumentParts,
|
|
5421
5431
|
createFarmLocaleCookie,
|
|
5422
5432
|
createFarmProductionLifecycle,
|
|
@@ -5815,7 +5825,7 @@ const farmImageHandler = ${imageRuntime === "none" ? "null" : imageRuntime === "
|
|
|
5815
5825
|
})`};
|
|
5816
5826
|
const farmMarkdownConfig = ${JSON.stringify(config.md)};
|
|
5817
5827
|
const farmLlmsTxtConfig = ${JSON.stringify(config.agent?.llmsTxt ?? { enabled: false, include: [], exclude: [] })};
|
|
5818
|
-
${servesAgentRobotsTxt ? `const farmAgentCrawlers = ${JSON.stringify(config.agent.crawlers)};` : ""}
|
|
5828
|
+
${config.agent?.llmsTxt?.enabled ? "const farmLlmsFullRenderer = createFarmLlmsFullRenderer({ revalidate: farmLlmsTxtConfig.revalidate });\n" : ""}${servesAgentRobotsTxt ? `const farmAgentCrawlers = ${JSON.stringify(config.agent.crawlers)};` : ""}
|
|
5819
5829
|
const farmMdxConfig = ${JSON.stringify({
|
|
5820
5830
|
...config.mdx,
|
|
5821
5831
|
components: typeof config.mdx?.components === "string" ? config.mdx.components : void 0
|
|
@@ -5925,7 +5935,8 @@ const apiRoutes = ${apiRoutes.length > 0 ? "mergePluginAPIRoutes(" : ""}[${apiRe
|
|
|
5925
5935
|
]${apiRoutes.length > 0 ? `, configuredPlugins, ${JSON.stringify(apiRoutes.map(({ path: path7, methods }) => ({ path: path7, methods })))}, { bodySizeLimit: ${JSON.stringify(config.server.bodySizeLimit)} })` : ""};
|
|
5926
5936
|
const farmLocalAPIBasePath = ${JSON.stringify(resolveFarmAPIServerBasePath(config.api))};
|
|
5927
5937
|
const farmOpenAPIReference = ${JSON.stringify(openAPIReference)};
|
|
5928
|
-
|
|
5938
|
+
${config.agent?.apiCatalog ? `const farmApiCatalogInput = ${JSON.stringify(resolveFarmApiCatalogInput(config))};
|
|
5939
|
+
` : ""}
|
|
5929
5940
|
function isFarmLocalAPIPathname(pathname) {
|
|
5930
5941
|
return farmLocalAPIBasePath !== "/" &&
|
|
5931
5942
|
(pathname === farmLocalAPIBasePath ||
|
|
@@ -6315,12 +6326,13 @@ function stripFarmDocumentWrappers(markup) {
|
|
|
6315
6326
|
}
|
|
6316
6327
|
|
|
6317
6328
|
// Farm's display:contents wrappers, and the head elements React 19 hoists in front of them
|
|
6318
|
-
// (charset, viewport, preloads, titles) when the layout's
|
|
6329
|
+
// (charset, viewport, preloads, titles, async scripts, precedence styles) when the layout's
|
|
6330
|
+
// <html> is not the render root. The hoistable pattern is shared with the dev renderer.
|
|
6319
6331
|
function peelFarmDocumentPrefix(markup) {
|
|
6320
6332
|
let inner = markup.replace(/^\\s+/, "");
|
|
6321
6333
|
let hoisted = "";
|
|
6322
6334
|
const wrapper = /^<div\\b[^>]*style=["']display\\s*:\\s*contents["'][^>]*>/i;
|
|
6323
|
-
const hoistable =
|
|
6335
|
+
const hoistable = /${HOISTED_HEAD_ELEMENT.source}/i;
|
|
6324
6336
|
let match;
|
|
6325
6337
|
while ((match = wrapper.exec(inner) || hoistable.exec(inner))) {
|
|
6326
6338
|
if (!/^<div/i.test(match[0])) hoisted += match[0];
|
|
@@ -6832,7 +6844,7 @@ async function handleApplicationMetadataRouteRequest(request, routePathname) {
|
|
|
6832
6844
|
const body = isLlmsFull && !(value instanceof Response)
|
|
6833
6845
|
? await renderFarmLlmsFullTxt(value, { origin: url.origin, readMarkdown: llmsContext.markdown })
|
|
6834
6846
|
: value;
|
|
6835
|
-
return createFarmMetadataRouteResponse(match.metadata.kind, body, routeModule, { method });
|
|
6847
|
+
return createFarmMetadataRouteResponse(match.metadata.kind, body, routeModule, { method, request });
|
|
6836
6848
|
} catch (error) {
|
|
6837
6849
|
console.error("Metadata route render failed:", error);
|
|
6838
6850
|
return new Response("Internal Server Error", {
|
|
@@ -7633,6 +7645,15 @@ async function handleFarmRequestInContext(
|
|
|
7633
7645
|
return applyProductionMiddlewareHeaders(applicationMetadataResponse, middlewareHeaders);
|
|
7634
7646
|
}
|
|
7635
7647
|
` : ""}
|
|
7648
|
+
${config.agent?.apiCatalog ? `
|
|
7649
|
+
// agent.apiCatalog: list the OpenAPI and MCP surfaces at the RFC 9727 path.
|
|
7650
|
+
if (normalizeRuntimePath(routePathname) === ${JSON.stringify(FARM_API_CATALOG_PATH)}) {
|
|
7651
|
+
return applyProductionMiddlewareHeaders(
|
|
7652
|
+
createFarmApiCatalogResponse(request.method, farmApiCatalogInput, request),
|
|
7653
|
+
middlewareHeaders,
|
|
7654
|
+
);
|
|
7655
|
+
}
|
|
7656
|
+
` : ""}
|
|
7636
7657
|
${servesAgentRobotsTxt ? `
|
|
7637
7658
|
// agent.crawlers with no robots.ts: serve the generated file.
|
|
7638
7659
|
if (normalizeRuntimePath(routePathname) === "/robots.txt") {
|
|
@@ -7649,21 +7670,35 @@ async function handleFarmRequestInContext(
|
|
|
7649
7670
|
: ${config.agent?.llmsTxt?.full ? `normalizeRuntimePath(routePathname) === "/llms-full.txt" ? "llms-full" : ` : ""}null;
|
|
7650
7671
|
if (farmGeneratedLlmsKind) {
|
|
7651
7672
|
const llmsContext = createFarmLlmsTxtContext(request, farmGeneratedLlmsKind === "llms-full");
|
|
7652
|
-
const
|
|
7653
|
-
|
|
7654
|
-
|
|
7655
|
-
|
|
7656
|
-
|
|
7657
|
-
|
|
7658
|
-
|
|
7659
|
-
|
|
7660
|
-
|
|
7661
|
-
|
|
7662
|
-
|
|
7663
|
-
|
|
7664
|
-
)
|
|
7665
|
-
|
|
7673
|
+
const llmsOrigin = new URL(request.url).origin;
|
|
7674
|
+
// A page that times out is left out, the shared render is not reused, and
|
|
7675
|
+
// the partial response is not cacheable.
|
|
7676
|
+
let llmsComplete = true;
|
|
7677
|
+
const renderLlmsFull = (shared) =>
|
|
7678
|
+
renderFarmLlmsFullTxt(llmsContext.defaults, {
|
|
7679
|
+
origin: llmsOrigin,
|
|
7680
|
+
readMarkdown: llmsContext.markdown,
|
|
7681
|
+
onIncomplete: () => {
|
|
7682
|
+
llmsComplete = false;
|
|
7683
|
+
if (shared) shared.incomplete();
|
|
7684
|
+
},
|
|
7685
|
+
});
|
|
7686
|
+
// HEAD reads no pages, so it neither waits for nor fills the shared render.
|
|
7687
|
+
const llmsBody = farmGeneratedLlmsKind !== "llms-full"
|
|
7688
|
+
? llmsContext.defaults
|
|
7689
|
+
: request.method.toUpperCase() === "HEAD"
|
|
7690
|
+
? await renderLlmsFull()
|
|
7691
|
+
: await farmLlmsFullRenderer(llmsOrigin, renderLlmsFull, (complete) => {
|
|
7692
|
+
llmsComplete = complete;
|
|
7693
|
+
});
|
|
7694
|
+
const llmsResponse = createFarmMetadataRouteResponse(
|
|
7695
|
+
farmGeneratedLlmsKind,
|
|
7696
|
+
llmsBody,
|
|
7697
|
+
{ revalidate: llmsComplete ? farmLlmsTxtConfig.revalidate : 0 },
|
|
7698
|
+
{ method: request.method, request },
|
|
7666
7699
|
);
|
|
7700
|
+
if (!llmsComplete) llmsResponse.headers.set("cache-control", "no-store");
|
|
7701
|
+
return applyProductionMiddlewareHeaders(llmsResponse, middlewareHeaders);
|
|
7667
7702
|
}
|
|
7668
7703
|
` : ""}
|
|
7669
7704
|
|
|
@@ -9309,6 +9344,27 @@ export default async function farmNitroEventHandler(event) {
|
|
|
9309
9344
|
}
|
|
9310
9345
|
nitroConfig.minify = useFarmServerMinifier ? false : shouldMinify;
|
|
9311
9346
|
const nitroInstance = await nitroBuilder.createNitro(nitroConfig);
|
|
9347
|
+
if (config.md?.enabled) {
|
|
9348
|
+
nitroInstance.hooks.hook("prerender:generate", (route) => {
|
|
9349
|
+
if (!route.contents || !route.contentType?.toLowerCase().includes("html")) return;
|
|
9350
|
+
const alternatePath = getFarmMarkdownAlternatePath(config.md, route.route);
|
|
9351
|
+
if (!alternatePath) return;
|
|
9352
|
+
const routeRule = nitroInstance.options.routeRules[route.route] || {};
|
|
9353
|
+
const alternate = `<${alternatePath}>; rel="alternate"; type="text/markdown"`;
|
|
9354
|
+
const headers = { ...routeRule.headers };
|
|
9355
|
+
let link;
|
|
9356
|
+
for (const key of Object.keys(headers)) {
|
|
9357
|
+
if (key.toLowerCase() !== "link") continue;
|
|
9358
|
+
link = link ? `${link}, ${headers[key]}` : headers[key];
|
|
9359
|
+
delete headers[key];
|
|
9360
|
+
}
|
|
9361
|
+
headers.Link = !link ? alternate : link.includes(alternate) ? link : `${link}, ${alternate}`;
|
|
9362
|
+
nitroInstance.options.routeRules[route.route] = { ...routeRule, headers };
|
|
9363
|
+
});
|
|
9364
|
+
nitroInstance.hooks.hook("prerender:done", () => {
|
|
9365
|
+
nitroInstance.routing.sync();
|
|
9366
|
+
});
|
|
9367
|
+
}
|
|
9312
9368
|
if (config.security.csp && config.security.csp.nonce) {
|
|
9313
9369
|
nitroInstance.hooks.hook("prerender:generate", async (route) => {
|
|
9314
9370
|
if (!route.contents || !route.contentType?.toLowerCase().includes("html")) return;
|
|
@@ -9392,9 +9448,14 @@ export default async function farmNitroEventHandler(event) {
|
|
|
9392
9448
|
}
|
|
9393
9449
|
}
|
|
9394
9450
|
const sharpRuntimeStagePromise = imageRuntime === "node" ? stageSharpRuntime(config, root, distDir, fs, preset) : Promise.resolve(null);
|
|
9395
|
-
const
|
|
9451
|
+
const prebuiltSSRFilesPromise = canReusePrebuiltSSR ? prepareSSRBundleFiles(
|
|
9452
|
+
ssrBundle,
|
|
9453
|
+
shouldMinify ? { keepNames: keepServerNames, target: "node18" } : null
|
|
9454
|
+
) : Promise.resolve(null);
|
|
9455
|
+
const [nitroBuildResult, sharpRuntimeStageResult, prebuiltSSRFilesResult] = await Promise.allSettled([
|
|
9396
9456
|
nitroBuilder.build(nitroInstance),
|
|
9397
|
-
sharpRuntimeStagePromise
|
|
9457
|
+
sharpRuntimeStagePromise,
|
|
9458
|
+
prebuiltSSRFilesPromise
|
|
9398
9459
|
]);
|
|
9399
9460
|
await nitroInstance.close();
|
|
9400
9461
|
if (nitroBuildResult.status === "rejected") {
|
|
@@ -9409,6 +9470,9 @@ export default async function farmNitroEventHandler(event) {
|
|
|
9409
9470
|
if (sharpRuntimeStageResult.status === "rejected") {
|
|
9410
9471
|
throw sharpRuntimeStageResult.reason;
|
|
9411
9472
|
}
|
|
9473
|
+
if (prebuiltSSRFilesResult.status === "rejected") {
|
|
9474
|
+
throw prebuiltSSRFilesResult.reason;
|
|
9475
|
+
}
|
|
9412
9476
|
const stagedSharpRuntime = sharpRuntimeStageResult.value ?? (imageRuntime === "node" ? await stageSharpRuntime(config, root, distDir, fs, preset) : null);
|
|
9413
9477
|
const runtimeCopyPromise = (async () => {
|
|
9414
9478
|
if (stagedSharpRuntime) {
|
|
@@ -9419,10 +9483,9 @@ export default async function farmNitroEventHandler(event) {
|
|
|
9419
9483
|
}
|
|
9420
9484
|
})();
|
|
9421
9485
|
const copyResults = await Promise.allSettled([
|
|
9422
|
-
|
|
9423
|
-
|
|
9486
|
+
prebuiltSSRFilesResult.value ? writeSSRBundleFiles(
|
|
9487
|
+
prebuiltSSRFilesResult.value,
|
|
9424
9488
|
path5.join(outputDir, "server", FARM_SSR_OUTPUT_DIR),
|
|
9425
|
-
shouldMinify ? { keepNames: keepServerNames, target: "node18" } : null,
|
|
9426
9489
|
fs
|
|
9427
9490
|
) : Promise.resolve(),
|
|
9428
9491
|
runtimeCopyPromise
|
|
@@ -9466,21 +9529,29 @@ function resolveFarmNitroOutputConfig(preset, outputDir) {
|
|
|
9466
9529
|
};
|
|
9467
9530
|
}
|
|
9468
9531
|
__name(resolveFarmNitroOutputConfig, "resolveFarmNitroOutputConfig");
|
|
9469
|
-
|
|
9532
|
+
function prepareSSRBundleFiles(ssrBundle, minifyOptions) {
|
|
9533
|
+
return Promise.all(
|
|
9534
|
+
Object.entries(ssrBundle).map(async ([fileName, output]) => ({
|
|
9535
|
+
fileName,
|
|
9536
|
+
contents: output.type === "asset" ? output.source : minifyOptions ? await minifyFarmServerChunk(output.code, fileName, minifyOptions) : output.code
|
|
9537
|
+
}))
|
|
9538
|
+
);
|
|
9539
|
+
}
|
|
9540
|
+
__name(prepareSSRBundleFiles, "prepareSSRBundleFiles");
|
|
9541
|
+
async function writeSSRBundleFiles(files, targetDir, fs) {
|
|
9470
9542
|
await fs.rm(targetDir, { recursive: true, force: true });
|
|
9471
9543
|
await Promise.all(
|
|
9472
|
-
|
|
9544
|
+
files.map(async ({ fileName, contents }) => {
|
|
9473
9545
|
const targetPath = path5.join(targetDir, fileName);
|
|
9474
9546
|
await fs.mkdir(path5.dirname(targetPath), { recursive: true });
|
|
9475
|
-
|
|
9476
|
-
await fs.writeFile(targetPath, output.source);
|
|
9477
|
-
return;
|
|
9478
|
-
}
|
|
9479
|
-
const code = minifyOptions ? await minifyFarmServerChunk(output.code, fileName, minifyOptions) : output.code;
|
|
9480
|
-
await fs.writeFile(targetPath, code);
|
|
9547
|
+
await fs.writeFile(targetPath, contents);
|
|
9481
9548
|
})
|
|
9482
9549
|
);
|
|
9483
9550
|
}
|
|
9551
|
+
__name(writeSSRBundleFiles, "writeSSRBundleFiles");
|
|
9552
|
+
async function copyPrebuiltSSRBundle(ssrBundle, targetDir, minifyOptions, fs) {
|
|
9553
|
+
await writeSSRBundleFiles(await prepareSSRBundleFiles(ssrBundle, minifyOptions), targetDir, fs);
|
|
9554
|
+
}
|
|
9484
9555
|
__name(copyPrebuiltSSRBundle, "copyPrebuiltSSRBundle");
|
|
9485
9556
|
async function registerPrebuiltSSRPackageImport(serverDir, ssrEntryFile, fs) {
|
|
9486
9557
|
const packagePath = path5.join(serverDir, "package.json");
|