@farm.js/core 0.1.23 → 0.1.25
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 +1 -1
- package/dist/agent-runtime.d.ts +1 -1
- package/dist/api/route-manager.cjs +4 -4
- package/dist/api/route-manager.d.mts +1 -1
- package/dist/api/route-manager.d.ts +1 -1
- 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 +2 -2
- package/dist/api.d.ts +2 -2
- package/dist/api.mjs +6 -6
- package/dist/{app-BV-7wV5q.d.ts → app-BF-ctoxh.d.ts} +3 -3
- package/dist/{app-BZDWwwFa.d.mts → app-ZuWrAMc_.d.mts} +3 -3
- package/dist/app-markdown.cjs +4 -4
- package/dist/app-markdown.d.mts +2 -2
- package/dist/app-markdown.d.ts +2 -2
- package/dist/app-markdown.mjs +3 -3
- package/dist/{chunk-MVUREHPN.mjs → chunk-2BIJGZR3.mjs} +1 -1
- package/dist/chunk-2ITKVAIF.cjs +1077 -0
- package/dist/{chunk-47H7VENP.mjs → chunk-2KI3CL3N.mjs} +1 -1
- package/dist/{chunk-KNPRCKXK.cjs → chunk-3TQWUUNP.cjs} +9 -7
- package/dist/{chunk-GZ3ZPTQV.mjs → chunk-52SH7TKB.mjs} +2 -2
- package/dist/{chunk-BDJNP7AQ.mjs → chunk-5YYJ6Q2L.mjs} +10 -3
- package/dist/{chunk-OYDRPBBV.cjs → chunk-65P6OGYN.cjs} +73 -3
- package/dist/{chunk-JIKGGIOL.mjs → chunk-6D242YGO.mjs} +1 -1
- package/dist/{chunk-AH7HOAQ3.cjs → chunk-6K4SPQWL.cjs} +9 -4
- package/dist/{chunk-LYM7HY34.cjs → chunk-AXYTGLF3.cjs} +4 -4
- 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-I5YBCWQ6.cjs → chunk-CFNOGDUS.cjs} +2 -2
- package/dist/{chunk-XI3GWPUS.cjs → chunk-CRQPYWLK.cjs} +14 -14
- package/dist/{chunk-ISTFC3MZ.cjs → chunk-E3RDL2DA.cjs} +48 -5
- package/dist/{chunk-QTBEAKCJ.cjs → chunk-H7CJRJ4L.cjs} +16 -16
- package/dist/{chunk-VPY755R2.mjs → chunk-N2Z4ZFDE.mjs} +25 -11
- package/dist/{chunk-DNLQMFER.cjs → chunk-O5DVPF3R.cjs} +26 -19
- package/dist/{chunk-WNUBR4CA.mjs → chunk-QGG336NI.mjs} +1 -1
- package/dist/{chunk-4DKZ6JR3.cjs → chunk-QYMRIVG6.cjs} +184 -130
- package/dist/{chunk-III667SJ.cjs → chunk-R7LCG3BT.cjs} +189 -175
- package/dist/{chunk-7BC6GAL7.mjs → chunk-RR6UGYUT.mjs} +44 -1
- package/dist/{chunk-LQIRVSBY.cjs → chunk-RYDW7GPR.cjs} +13 -13
- package/dist/{chunk-PGQBL5DN.mjs → chunk-T2OPSH6S.mjs} +72 -2
- package/dist/{chunk-5UX4C5QI.mjs → chunk-TKDY6AJP.mjs} +1 -1
- package/dist/{chunk-VXCA7RZP.cjs → chunk-TTVHACQV.cjs} +1 -1
- package/dist/{chunk-OFEY6KHO.mjs → chunk-U4MP7XTD.mjs} +504 -27
- package/dist/{chunk-YJJLXIIS.cjs → chunk-U74A3P2P.cjs} +7 -7
- package/dist/{chunk-72VJRKJD.mjs → chunk-VZWO3XVL.mjs} +2 -2
- package/dist/{chunk-7LU4IOXQ.mjs → chunk-WJYCI56T.mjs} +87 -33
- package/dist/{chunk-EHUZ2MKO.mjs → chunk-WOI2HOGA.mjs} +1 -1
- package/dist/{chunk-N255VYFP.mjs → chunk-XM4ZDVD7.mjs} +8 -3
- package/dist/{chunk-YGMK6ESJ.mjs → chunk-XME4TCLB.mjs} +2 -2
- package/dist/{client-plugins-B_XzCegf.d.mts → client-plugins-DPG0NeZN.d.mts} +41 -3
- package/dist/{client-plugins-CKsXQfXY.d.ts → client-plugins-Fgni-_25.d.ts} +41 -3
- package/dist/client-plugins.d.mts +1 -1
- package/dist/client-plugins.d.ts +1 -1
- package/dist/client.cjs +4 -4
- package/dist/client.d.mts +5 -5
- package/dist/client.d.ts +5 -5
- package/dist/client.mjs +3 -3
- package/dist/config.d.mts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/{devtools-UHRSZ7VA.cjs → devtools-6OA7FEF6.cjs} +4 -4
- package/dist/{devtools-OY4SNU3P.mjs → devtools-I7TBFOKD.mjs} +3 -3
- package/dist/docs.cjs +6 -6
- package/dist/docs.mjs +5 -5
- package/dist/index.cjs +24 -22
- package/dist/index.d.mts +13 -13
- package/dist/index.d.ts +13 -13
- package/dist/index.mjs +23 -21
- package/dist/integrations.d.mts +1 -1
- package/dist/integrations.d.ts +1 -1
- package/dist/internal/app-markdown-runtime.cjs +3 -3
- package/dist/internal/app-markdown-runtime.d.mts +1 -1
- package/dist/internal/app-markdown-runtime.d.ts +1 -1
- package/dist/internal/app-markdown-runtime.mjs +2 -2
- package/dist/internal/build-runtime.cjs +16 -16
- package/dist/internal/build-runtime.d.mts +3 -3
- package/dist/internal/build-runtime.d.ts +3 -3
- package/dist/internal/build-runtime.mjs +15 -15
- package/dist/internal/cli-runtime.cjs +5 -5
- package/dist/internal/cli-runtime.mjs +4 -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 +1 -1
- package/dist/internal/compression-runtime.d.ts +1 -1
- package/dist/internal/config-runtime.cjs +4 -4
- package/dist/internal/config-runtime.d.mts +2 -2
- package/dist/internal/config-runtime.d.ts +2 -2
- package/dist/internal/config-runtime.mjs +3 -3
- 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 -5
- package/dist/internal/production-runtime.d.mts +30 -8
- package/dist/internal/production-runtime.d.ts +30 -8
- package/dist/internal/production-runtime.mjs +10 -4
- package/dist/markdown.cjs +4 -2
- package/dist/markdown.d.mts +63 -1
- package/dist/markdown.d.ts +63 -1
- package/dist/markdown.mjs +3 -1
- package/dist/{metadata-IQEblkZp.d.ts → metadata-CDnRHKVq.d.ts} +1 -1
- package/dist/{metadata-B08w4EYV.d.mts → metadata-D0EF7esB.d.mts} +1 -1
- package/dist/middleware.d.mts +3 -3
- package/dist/middleware.d.ts +3 -3
- package/dist/navigation.cjs +5 -5
- package/dist/navigation.d.mts +4 -4
- package/dist/navigation.d.ts +4 -4
- package/dist/navigation.mjs +4 -4
- package/dist/plugin.cjs +12 -12
- package/dist/plugin.d.mts +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.mjs +11 -11
- package/dist/{production-runtime-DRSOkc-d.d.ts → production-runtime-DpCt0opU.d.ts} +1 -1
- package/dist/{production-runtime-C3bGFEaM.d.mts → production-runtime-x3W4wVqx.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-D5oFRVBV.d.ts} +1 -1
- package/dist/{render-plan-B6CKNl4e.d.mts → render-plan-tazUJalK.d.mts} +1 -1
- package/dist/renderer-client.cjs +5 -5
- package/dist/renderer-client.d.mts +3 -3
- package/dist/renderer-client.d.ts +3 -3
- package/dist/renderer-client.mjs +2 -2
- package/dist/{request-DgD1XsTx.d.mts → request-CXmQy5ks.d.mts} +1 -1
- package/dist/{request-Dn6VURbE.d.ts → request-CzZX0Aew.d.ts} +1 -1
- package/dist/request.d.mts +2 -2
- package/dist/request.d.ts +2 -2
- package/dist/{route-rendering-76A5I_kE.d.mts → route-rendering-B-qpe32B.d.mts} +1 -1
- package/dist/{route-rendering-LAmQEdyG.d.ts → route-rendering-Dw3C362T.d.ts} +1 -1
- package/dist/{router-BSOOGya2.d.ts → router-CLl3xHwl.d.ts} +1 -1
- package/dist/{router-CnrRSa9d.d.mts → router-CafM2jlw.d.mts} +1 -1
- package/dist/routes.d.mts +1 -1
- package/dist/routes.d.ts +1 -1
- package/dist/server-plugins.d.mts +2 -2
- package/dist/server-plugins.d.ts +2 -2
- package/dist/server.cjs +27 -27
- package/dist/server.d.mts +7 -7
- package/dist/server.d.ts +7 -7
- package/dist/server.mjs +12 -12
- package/dist/{spa-router-DnYhWCvI.d.mts → spa-router-6sJfsMlQ.d.mts} +2 -2
- package/dist/{spa-router-BMrSsG5b.d.ts → spa-router-DePr2aZ6.d.ts} +2 -2
- package/dist/testing.cjs +4 -4
- package/dist/testing.d.mts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.mjs +3 -3
- package/dist/{utils-C3GguS-Q.d.ts → utils-BBKC3cf3.d.ts} +1 -1
- package/dist/{utils-ABkktwku.d.mts → utils-BPHr-1mP.d.mts} +1 -1
- package/dist/version.cjs +2 -2
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +12 -12
- package/dist/vite.d.mts +1 -1
- package/dist/vite.d.ts +1 -1
- package/dist/vite.mjs +11 -11
- package/package.json +1 -1
- package/dist/chunk-BBVSJVBZ.cjs +0 -600
- package/dist/{chunk-XP777LRD.mjs → chunk-GDUYXFIS.mjs} +3 -3
- package/dist/{chunk-4PNUXIVU.cjs → chunk-YAOX43YI.cjs} +3 -3
|
@@ -19,16 +19,18 @@ async function resolveFarmNotFoundMetadata(layoutModules, notFoundModule) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
let own = {};
|
|
22
|
+
let latestTitle;
|
|
22
23
|
if (notFoundModule) {
|
|
23
24
|
own = mergeMetadata(own, notFoundModule.metadata);
|
|
25
|
+
latestTitle = _optionalChain([notFoundModule, 'access', _ => _.metadata, 'optionalAccess', _2 => _2.title]);
|
|
24
26
|
if (typeof notFoundModule.generateMetadata === "function") {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
);
|
|
27
|
+
const generated = await notFoundModule.generateMetadata({ params: {}, searchParams: {} });
|
|
28
|
+
own = mergeMetadata(own, generated);
|
|
29
|
+
if (_optionalChain([generated, 'optionalAccess', _3 => _3.title]) !== void 0) latestTitle = generated.title;
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
+
const title = isRecord(latestTitle) && normalizeContent(latestTitle.absolute) ? latestTitle : own.title;
|
|
33
|
+
return mergeMetadata(metadata, { ...own, title: _nullishCoalesce(title, () => ( FARM_NOT_FOUND_TITLE)) });
|
|
32
34
|
}
|
|
33
35
|
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmNotFoundMetadata, "resolveFarmNotFoundMetadata");
|
|
34
36
|
function mergeMetadata(base, next) {
|
|
@@ -135,8 +137,8 @@ function renderMetadataHead(metadata, options = {}) {
|
|
|
135
137
|
appendMetaName(tags, "author", resolvedMetadata.author);
|
|
136
138
|
if (Array.isArray(resolvedMetadata.authors)) {
|
|
137
139
|
for (const author of resolvedMetadata.authors) {
|
|
138
|
-
appendMetaName(tags, "author", _optionalChain([author, 'optionalAccess',
|
|
139
|
-
if (_optionalChain([author, 'optionalAccess',
|
|
140
|
+
appendMetaName(tags, "author", _optionalChain([author, 'optionalAccess', _4 => _4.name]));
|
|
141
|
+
if (_optionalChain([author, 'optionalAccess', _5 => _5.url])) {
|
|
140
142
|
appendLink(tags, "author", resolveMetadataUrl(author.url, metadataBase));
|
|
141
143
|
}
|
|
142
144
|
}
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
resolveFarmNoindexPreviews,
|
|
29
29
|
resolveFarmPerformanceConfig,
|
|
30
30
|
resolveFarmSecurityConfig
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-RR6UGYUT.mjs";
|
|
32
32
|
import {
|
|
33
33
|
resolveFarmImageConfig
|
|
34
34
|
} from "./chunk-G2KY33I6.mjs";
|
|
@@ -47,7 +47,7 @@ import {
|
|
|
47
47
|
} from "./chunk-FA2W42OV.mjs";
|
|
48
48
|
import {
|
|
49
49
|
resolveMarkdownConfig
|
|
50
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-U4MP7XTD.mjs";
|
|
51
51
|
import {
|
|
52
52
|
bundleNodeModule
|
|
53
53
|
} from "./chunk-SFGWNC43.mjs";
|
|
@@ -135,10 +135,17 @@ function resolveFarmAgentConfig(input) {
|
|
|
135
135
|
jsonLd: !jsonLd ? false : jsonLd === true ? {} : jsonLd,
|
|
136
136
|
noindexPreviews: resolveFarmNoindexPreviews(input?.noindexPreviews),
|
|
137
137
|
llmsTxt: resolveFarmLlmsTxtConfig(input?.llmsTxt),
|
|
138
|
-
crawlers: resolveFarmAgentCrawlers(input?.crawlers)
|
|
138
|
+
crawlers: resolveFarmAgentCrawlers(input?.crawlers),
|
|
139
|
+
apiCatalog: resolveFarmApiCatalogEnabled(input?.apiCatalog)
|
|
139
140
|
};
|
|
140
141
|
}
|
|
141
142
|
__name(resolveFarmAgentConfig, "resolveFarmAgentConfig");
|
|
143
|
+
function resolveFarmApiCatalogEnabled(input) {
|
|
144
|
+
if (input === void 0) return false;
|
|
145
|
+
if (typeof input !== "boolean") throw new TypeError("agent.apiCatalog must be a boolean.");
|
|
146
|
+
return input;
|
|
147
|
+
}
|
|
148
|
+
__name(resolveFarmApiCatalogEnabled, "resolveFarmApiCatalogEnabled");
|
|
142
149
|
|
|
143
150
|
// src/docs/framework-detect.ts
|
|
144
151
|
import { readFile } from "fs/promises";
|
|
@@ -3,18 +3,25 @@
|
|
|
3
3
|
var _chunkOWOUTKIJcjs = require('./chunk-OWOUTKIJ.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkE3RDL2DAcjs = require('./chunk-E3RDL2DA.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
var _chunkOI6CMLWXcjs = require('./chunk-OI6CMLWX.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
|
|
13
|
+
var _chunkWPYFSQKKcjs = require('./chunk-WPYFSQKK.cjs');
|
|
14
|
+
|
|
15
|
+
|
|
12
16
|
var _chunkTKJZFIMLcjs = require('./chunk-TKJZFIML.cjs');
|
|
13
17
|
|
|
14
18
|
|
|
15
19
|
var _chunkBIDYX3SLcjs = require('./chunk-BIDYX3SL.cjs');
|
|
16
20
|
|
|
17
21
|
|
|
22
|
+
var _chunkI57LW5VZcjs = require('./chunk-I57LW5VZ.cjs');
|
|
23
|
+
|
|
24
|
+
|
|
18
25
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
19
26
|
|
|
20
27
|
// src/i18n/alternates.ts
|
|
@@ -197,7 +204,7 @@ function createFarmMetadataRouteResponse(kind, value, routeModule = {}, options
|
|
|
197
204
|
if (isResponse(value)) {
|
|
198
205
|
return method === "HEAD" ? _chunkTKJZFIMLcjs.omitFarmResponseBody.call(void 0, value) : value;
|
|
199
206
|
}
|
|
200
|
-
const body = kind === "sitemap" ? serializeSitemap(value) : kind === "robots" ? serializeRobots(value) : kind === "llms" || kind === "llms-full" ?
|
|
207
|
+
const body = kind === "sitemap" ? serializeSitemap(value) : kind === "robots" ? serializeRobots(value) : kind === "llms" || kind === "llms-full" ? _chunkE3RDL2DAcjs.serializeFarmLlmsTxt.call(void 0, value) : serializeManifest(value);
|
|
201
208
|
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
209
|
return new Response(method === "HEAD" ? null : body, {
|
|
203
210
|
headers: {
|
|
@@ -440,6 +447,69 @@ function serializeInlineValue(value) {
|
|
|
440
447
|
}
|
|
441
448
|
_chunkS3JO3N4Hcjs.__name.call(void 0, serializeInlineValue, "serializeInlineValue");
|
|
442
449
|
|
|
450
|
+
// src/api-catalog.ts
|
|
451
|
+
var FARM_API_CATALOG_PATH = "/.well-known/api-catalog";
|
|
452
|
+
var API_CATALOG_CONTENT_TYPE = 'application/linkset+json; profile="https://www.rfc-editor.org/info/rfc9727"';
|
|
453
|
+
function resolveFarmApiCatalogInput(config) {
|
|
454
|
+
const mcp = config.mcp && config.mcp.enabled !== false ? config.mcp : void 0;
|
|
455
|
+
return {
|
|
456
|
+
basePath: config.basePath,
|
|
457
|
+
apiBaseURL: _nullishCoalesce(_optionalChain([config, 'access', _5 => _5.openapi, 'optionalAccess', _6 => _6.servers, 'optionalAccess', _7 => _7[0], 'optionalAccess', _8 => _8.url]), () => ( config.api.baseURL)),
|
|
458
|
+
openapi: _optionalChain([config, 'access', _9 => _9.openapi, 'optionalAccess', _10 => _10.enabled]) ? { specRoute: config.openapi.specRoute, route: config.openapi.route } : void 0,
|
|
459
|
+
mcpPath: mcp ? _chunkWPYFSQKKcjs.resolveFarmAPIServerRoutePath.call(void 0,
|
|
460
|
+
_nullishCoalesce(mcp.path, () => ( "/api/mcp")),
|
|
461
|
+
_chunkWPYFSQKKcjs.resolveFarmAPIServerBasePath.call(void 0, config.api)
|
|
462
|
+
) : void 0
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, resolveFarmApiCatalogInput, "resolveFarmApiCatalogInput");
|
|
466
|
+
function createFarmApiCatalog(input) {
|
|
467
|
+
const appPath = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (path) => _chunkI57LW5VZcjs.applyFarmBasePath.call(void 0, path, input.basePath), "appPath");
|
|
468
|
+
const items = [];
|
|
469
|
+
const contexts = [];
|
|
470
|
+
const specRoute = _optionalChain([input, 'access', _11 => _11.openapi, 'optionalAccess', _12 => _12.specRoute]);
|
|
471
|
+
const reference = _optionalChain([input, 'access', _13 => _13.openapi, 'optionalAccess', _14 => _14.route]);
|
|
472
|
+
if (specRoute || reference) {
|
|
473
|
+
const api = { anchor: input.apiBaseURL };
|
|
474
|
+
if (specRoute) {
|
|
475
|
+
api["service-desc"] = [
|
|
476
|
+
{ href: appPath(specRoute), type: "application/vnd.oai.openapi+json" }
|
|
477
|
+
];
|
|
478
|
+
}
|
|
479
|
+
if (reference) api["service-doc"] = [{ href: appPath(reference), type: "text/html" }];
|
|
480
|
+
items.push({ href: input.apiBaseURL });
|
|
481
|
+
contexts.push(api);
|
|
482
|
+
}
|
|
483
|
+
if (input.mcpPath) items.push({ href: input.mcpPath });
|
|
484
|
+
return {
|
|
485
|
+
linkset: [{ anchor: appPath(FARM_API_CATALOG_PATH), item: items }, ...contexts]
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmApiCatalog, "createFarmApiCatalog");
|
|
489
|
+
function createFarmApiCatalogResponse(method, input) {
|
|
490
|
+
const upperMethod = method.toUpperCase();
|
|
491
|
+
if (upperMethod !== "GET" && upperMethod !== "HEAD") {
|
|
492
|
+
return new Response("Method Not Allowed", {
|
|
493
|
+
status: 405,
|
|
494
|
+
headers: { Allow: "GET, HEAD", "Content-Type": "text/plain; charset=utf-8" }
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
const catalog = createFarmApiCatalog(input);
|
|
498
|
+
return new Response(upperMethod === "HEAD" ? null : JSON.stringify(catalog), {
|
|
499
|
+
status: 200,
|
|
500
|
+
headers: {
|
|
501
|
+
"Content-Type": API_CATALOG_CONTENT_TYPE,
|
|
502
|
+
"Cache-Control": "public, max-age=0, must-revalidate",
|
|
503
|
+
Link: `<${catalog.linkset[0].anchor}>; rel="api-catalog"`,
|
|
504
|
+
"X-Content-Type-Options": "nosniff"
|
|
505
|
+
}
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmApiCatalogResponse, "createFarmApiCatalogResponse");
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
|
|
443
513
|
|
|
444
514
|
|
|
445
515
|
|
|
@@ -450,4 +520,4 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, serializeInlineValue, "serializeInlineValu
|
|
|
450
520
|
|
|
451
521
|
|
|
452
522
|
|
|
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;
|
|
523
|
+
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;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
var _chunk2ITKVAIFcjs = require('./chunk-2ITKVAIF.cjs');
|
|
4
5
|
|
|
5
6
|
|
|
6
7
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
@@ -115,7 +116,7 @@ async function createFarmMarkdownSourceResponse(options) {
|
|
|
115
116
|
}
|
|
116
117
|
const url = new URL(options.request.url);
|
|
117
118
|
const hasMarkdownExtension = url.pathname.toLowerCase().endsWith(".md");
|
|
118
|
-
if (!hasMarkdownExtension && !
|
|
119
|
+
if (!hasMarkdownExtension && !_chunk2ITKVAIFcjs.requestAcceptsMarkdown.call(void 0, options.request.headers.get("accept"))) {
|
|
119
120
|
return null;
|
|
120
121
|
}
|
|
121
122
|
const targetPathname = normalizeFarmMarkdownRoutePath(url.pathname);
|
|
@@ -133,9 +134,13 @@ async function createFarmMarkdownSourceResponse(options) {
|
|
|
133
134
|
if (!hasMarkdownExtension) {
|
|
134
135
|
headers.set("Vary", "Accept");
|
|
135
136
|
}
|
|
136
|
-
return
|
|
137
|
+
return _chunk2ITKVAIFcjs.createFarmMarkdownViewResponse.call(void 0, {
|
|
138
|
+
request: options.request,
|
|
139
|
+
requestUrl: url,
|
|
140
|
+
markdown: source.source,
|
|
137
141
|
status: 200,
|
|
138
|
-
headers
|
|
142
|
+
headers,
|
|
143
|
+
markdownPath: headers.get("Content-Location")
|
|
139
144
|
});
|
|
140
145
|
}
|
|
141
146
|
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmMarkdownSourceResponse, "createFarmMarkdownSourceResponse");
|
|
@@ -15,7 +15,7 @@ var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
|
|
|
15
15
|
var _chunkHREOKQWTcjs = require('./chunk-HREOKQWT.cjs');
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _chunk2ITKVAIFcjs = require('./chunk-2ITKVAIF.cjs');
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
var _chunkEM6SBQKMcjs = require('./chunk-EM6SBQKM.cjs');
|
|
@@ -1181,11 +1181,11 @@ function shouldReturnMarkdown(request) {
|
|
|
1181
1181
|
if (url.pathname.endsWith(".md")) return true;
|
|
1182
1182
|
const accept = request.headers.get("accept");
|
|
1183
1183
|
const markdown = Math.max(
|
|
1184
|
-
|
|
1185
|
-
|
|
1184
|
+
_chunk2ITKVAIFcjs.farmAcceptQuality.call(void 0, accept, "text/markdown"),
|
|
1185
|
+
_chunk2ITKVAIFcjs.farmAcceptQuality.call(void 0, accept, "text/plain")
|
|
1186
1186
|
);
|
|
1187
1187
|
if (markdown <= 0) return false;
|
|
1188
|
-
return markdown >=
|
|
1188
|
+
return markdown >= _chunk2ITKVAIFcjs.farmAcceptQuality.call(void 0, accept, "text/html", { wildcards: true });
|
|
1189
1189
|
}
|
|
1190
1190
|
_chunkS3JO3N4Hcjs.__name.call(void 0, shouldReturnMarkdown, "shouldReturnMarkdown");
|
|
1191
1191
|
function escapeAttribute(value) {
|
|
@@ -16,7 +16,7 @@ var _chunkJ7FSKED3cjs = require('./chunk-J7FSKED3.cjs');
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunk3TQWUUNPcjs = require('./chunk-3TQWUUNP.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
@@ -30,7 +30,7 @@ var _chunkQBK2AA4Ucjs = require('./chunk-QBK2AA4U.cjs');
|
|
|
30
30
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
31
31
|
|
|
32
32
|
// src/client/metadata-reconciler.ts
|
|
33
|
-
var MANAGED_ATTRIBUTE =
|
|
33
|
+
var MANAGED_ATTRIBUTE = _chunk3TQWUUNPcjs.FARM_METADATA_ATTRIBUTE;
|
|
34
34
|
var OWNED_SELECTORS = [
|
|
35
35
|
'meta[name="description"]',
|
|
36
36
|
'meta[name="keywords"]',
|
|
@@ -65,8 +65,8 @@ function removeAll(selector) {
|
|
|
65
65
|
}
|
|
66
66
|
_chunkS3JO3N4Hcjs.__name.call(void 0, removeAll, "removeAll");
|
|
67
67
|
function applyFarmMetadataToDocument(metadata, pathname) {
|
|
68
|
-
document.title =
|
|
69
|
-
const rendered =
|
|
68
|
+
document.title = _chunk3TQWUUNPcjs.resolveMetadataTitle.call(void 0, _optionalChain([metadata, 'optionalAccess', _ => _.title])) || "Farm.js App";
|
|
69
|
+
const rendered = _chunk3TQWUUNPcjs.renderMetadataHead.call(void 0, metadata, { pathname });
|
|
70
70
|
const template = document.createElement("template");
|
|
71
71
|
template.innerHTML = rendered.tags;
|
|
72
72
|
removeAll(OWNED_SELECTORS);
|
|
@@ -17,7 +17,7 @@ var _chunkLYLEZIG3cjs = require('./chunk-LYLEZIG3.cjs');
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkYAOX43YIcjs = require('./chunk-YAOX43YI.cjs');
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
var _chunkWMAPPDMMcjs = require('./chunk-WMAPPDMM.cjs');
|
|
@@ -93,7 +93,7 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
93
93
|
await this.loadProgrammaticApiRoutes(appDir);
|
|
94
94
|
}
|
|
95
95
|
this.routes = new Map(
|
|
96
|
-
|
|
96
|
+
_chunkYAOX43YIcjs.mergePluginAPIRoutes.call(void 0, [...this.routes.values()], this.plugins, void 0, {
|
|
97
97
|
bodySizeLimit: this.bodySizeLimit
|
|
98
98
|
}).map((route) => [route.path, route])
|
|
99
99
|
);
|
|
@@ -140,7 +140,7 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
140
140
|
const routeModule = await this.loadModule(filePath);
|
|
141
141
|
const endpoints = {};
|
|
142
142
|
const availableMethods = [];
|
|
143
|
-
for (const method of
|
|
143
|
+
for (const method of _chunkYAOX43YIcjs.API_ROUTE_METHODS) {
|
|
144
144
|
if (routeModule[method]) {
|
|
145
145
|
endpoints[method] = routeModule[method];
|
|
146
146
|
availableMethods.push(method);
|
|
@@ -322,7 +322,7 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
322
322
|
const url = new URL(request.url);
|
|
323
323
|
const pathname = url.pathname;
|
|
324
324
|
const method = request.method.toUpperCase();
|
|
325
|
-
const match =
|
|
325
|
+
const match = _chunkYAOX43YIcjs.matchAPIRouteAtBasePath.call(void 0, this.routes, pathname, this.basePath);
|
|
326
326
|
if (!match) {
|
|
327
327
|
return new Response(JSON.stringify({ error: "Not Found" }), {
|
|
328
328
|
status: 404,
|
|
@@ -330,19 +330,19 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
330
330
|
});
|
|
331
331
|
}
|
|
332
332
|
const { route, params } = match;
|
|
333
|
-
const endpoint =
|
|
333
|
+
const endpoint = _chunkYAOX43YIcjs.resolveAPIRouteEndpoint.call(void 0, route, method);
|
|
334
334
|
if (!endpoint) {
|
|
335
335
|
return new Response(JSON.stringify({ error: "Method Not Allowed" }), {
|
|
336
336
|
status: 405,
|
|
337
337
|
headers: {
|
|
338
|
-
Allow:
|
|
338
|
+
Allow: _chunkYAOX43YIcjs.getAllowedAPIRouteMethods.call(void 0, route).join(", "),
|
|
339
339
|
"Content-Type": "application/json"
|
|
340
340
|
}
|
|
341
341
|
});
|
|
342
342
|
}
|
|
343
343
|
const invoke = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async () => {
|
|
344
344
|
try {
|
|
345
|
-
return await
|
|
345
|
+
return await _chunkYAOX43YIcjs.invokeAPIRouteEndpoint.call(void 0, endpoint, request, params, this.bodySizeLimit);
|
|
346
346
|
} catch (error) {
|
|
347
347
|
if (options.throwOnError) throw error;
|
|
348
348
|
console.error(`[API Error] ${pathname}:`, error);
|
|
@@ -364,7 +364,7 @@ var _APIRouteManager = class _APIRouteManager {
|
|
|
364
364
|
return Boolean(this.matchRoute(pathname));
|
|
365
365
|
}
|
|
366
366
|
matchRoute(pathname) {
|
|
367
|
-
return
|
|
367
|
+
return _chunkYAOX43YIcjs.matchAPIRouteAtBasePath.call(void 0, this.routes, pathname, this.basePath);
|
|
368
368
|
}
|
|
369
369
|
/**
|
|
370
370
|
* Get all routes for client type generation
|
|
@@ -19,16 +19,18 @@ async function resolveFarmNotFoundMetadata(layoutModules, notFoundModule) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
let own = {};
|
|
22
|
+
let latestTitle;
|
|
22
23
|
if (notFoundModule) {
|
|
23
24
|
own = mergeMetadata(own, notFoundModule.metadata);
|
|
25
|
+
latestTitle = notFoundModule.metadata?.title;
|
|
24
26
|
if (typeof notFoundModule.generateMetadata === "function") {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
);
|
|
27
|
+
const generated = await notFoundModule.generateMetadata({ params: {}, searchParams: {} });
|
|
28
|
+
own = mergeMetadata(own, generated);
|
|
29
|
+
if (generated?.title !== void 0) latestTitle = generated.title;
|
|
29
30
|
}
|
|
30
31
|
}
|
|
31
|
-
|
|
32
|
+
const title = isRecord(latestTitle) && normalizeContent(latestTitle.absolute) ? latestTitle : own.title;
|
|
33
|
+
return mergeMetadata(metadata, { ...own, title: title ?? FARM_NOT_FOUND_TITLE });
|
|
32
34
|
}
|
|
33
35
|
__name(resolveFarmNotFoundMetadata, "resolveFarmNotFoundMetadata");
|
|
34
36
|
function mergeMetadata(base, next) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunk6K4SPQWLcjs = require('./chunk-6K4SPQWL.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
|
|
@@ -11,7 +11,7 @@ var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
|
11
11
|
var _url = require('url');
|
|
12
12
|
async function createFarmMarkdownRouteModuleFromFile(filePath, options = {}) {
|
|
13
13
|
const source = await _promises.readFile.call(void 0, filePath, "utf8");
|
|
14
|
-
return
|
|
14
|
+
return _chunk6K4SPQWLcjs.createFarmMarkdownRouteModule.call(void 0, {
|
|
15
15
|
source,
|
|
16
16
|
filePath,
|
|
17
17
|
components: options.components,
|
|
@@ -7,7 +7,7 @@ var _chunkSU7MH53Pcjs = require('./chunk-SU7MH53P.cjs');
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkB6ZCT36Xcjs = require('./chunk-B6ZCT36X.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
var _chunk5OVTOKGHcjs = require('./chunk-5OVTOKGH.cjs');
|
|
@@ -52,7 +52,7 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, shouldBlockUnload, "shouldBlockUnload");
|
|
|
52
52
|
function navigateViaRouter(href, basePath, replace, options = {}) {
|
|
53
53
|
if (typeof window === "undefined") return;
|
|
54
54
|
const url = _chunkI57LW5VZcjs.applyFarmBasePath.call(void 0, href, basePath);
|
|
55
|
-
const spaRouter =
|
|
55
|
+
const spaRouter = _chunkB6ZCT36Xcjs.getInstalledFarmSPARouter.call(void 0, );
|
|
56
56
|
if (spaRouter) {
|
|
57
57
|
void spaRouter.navigate(url, {
|
|
58
58
|
replace,
|
|
@@ -65,7 +65,7 @@ function navigateViaRouter(href, basePath, replace, options = {}) {
|
|
|
65
65
|
} else {
|
|
66
66
|
window.history.pushState(null, "", url);
|
|
67
67
|
}
|
|
68
|
-
|
|
68
|
+
_chunkB6ZCT36Xcjs.notifyHistoryChange.call(void 0, "url-search");
|
|
69
69
|
}
|
|
70
70
|
_chunkS3JO3N4Hcjs.__name.call(void 0, navigateViaRouter, "navigateViaRouter");
|
|
71
71
|
function useRouter(options = {}) {
|
|
@@ -85,7 +85,7 @@ function useRouter(options = {}) {
|
|
|
85
85
|
setState(readRouterState(basePath, routeMatcher));
|
|
86
86
|
}, "handlePopState");
|
|
87
87
|
handlePopState();
|
|
88
|
-
const unsubscribe =
|
|
88
|
+
const unsubscribe = _chunkB6ZCT36Xcjs.subscribeHistoryChange.call(void 0, handlePopState);
|
|
89
89
|
return unsubscribe;
|
|
90
90
|
}, [basePath, routeMatcher]);
|
|
91
91
|
const push = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (href, navigateOptions) => {
|
|
@@ -96,11 +96,11 @@ function useRouter(options = {}) {
|
|
|
96
96
|
}, "replace");
|
|
97
97
|
const pushState = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (pageState, href) => {
|
|
98
98
|
if (typeof window === "undefined") return;
|
|
99
|
-
|
|
99
|
+
_chunkB6ZCT36Xcjs.getRouter.call(void 0, ).pushState(pageState, resolveClientHref(href, basePath));
|
|
100
100
|
}, "pushState");
|
|
101
101
|
const replaceState = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (pageState, href) => {
|
|
102
102
|
if (typeof window === "undefined") return;
|
|
103
|
-
|
|
103
|
+
_chunkB6ZCT36Xcjs.getRouter.call(void 0, ).replaceState(pageState, resolveClientHref(href, basePath));
|
|
104
104
|
}, "replaceState");
|
|
105
105
|
const back = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => {
|
|
106
106
|
if (typeof window !== "undefined") {
|
|
@@ -124,25 +124,25 @@ function useRouter(options = {}) {
|
|
|
124
124
|
}
|
|
125
125
|
_chunkS3JO3N4Hcjs.__name.call(void 0, useRouter, "useRouter");
|
|
126
126
|
function usePageState() {
|
|
127
|
-
const [state, setState] = _react.useState.call(void 0, () =>
|
|
127
|
+
const [state, setState] = _react.useState.call(void 0, () => _chunkB6ZCT36Xcjs.readPageState.call(void 0, ));
|
|
128
128
|
_react.useEffect.call(void 0, () => {
|
|
129
129
|
if (typeof window === "undefined") return;
|
|
130
130
|
const handlePopState = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, () => {
|
|
131
|
-
setState(
|
|
131
|
+
setState(_chunkB6ZCT36Xcjs.readPageState.call(void 0, ));
|
|
132
132
|
}, "handlePopState");
|
|
133
133
|
handlePopState();
|
|
134
|
-
return
|
|
134
|
+
return _chunkB6ZCT36Xcjs.subscribeHistoryChange.call(void 0, handlePopState);
|
|
135
135
|
}, []);
|
|
136
136
|
return state;
|
|
137
137
|
}
|
|
138
138
|
_chunkS3JO3N4Hcjs.__name.call(void 0, usePageState, "usePageState");
|
|
139
139
|
function useNavigation() {
|
|
140
140
|
const [state, setState] = _react.useState.call(void 0,
|
|
141
|
-
() =>
|
|
141
|
+
() => _chunkB6ZCT36Xcjs.getRouter.call(void 0, ).getNavigationState()
|
|
142
142
|
);
|
|
143
143
|
_react.useEffect.call(void 0, () => {
|
|
144
144
|
if (typeof window === "undefined") return;
|
|
145
|
-
return
|
|
145
|
+
return _chunkB6ZCT36Xcjs.getRouter.call(void 0, ).subscribeNavigation(setState);
|
|
146
146
|
}, []);
|
|
147
147
|
return state;
|
|
148
148
|
}
|
|
@@ -155,7 +155,7 @@ function useBlocker(options) {
|
|
|
155
155
|
if (typeof window === "undefined" || !active) {
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
|
-
return
|
|
158
|
+
return _chunkB6ZCT36Xcjs.getRouter.call(void 0, ).addBlocker(
|
|
159
159
|
async (context) => {
|
|
160
160
|
const current = optionsRef.current;
|
|
161
161
|
const when = typeof current.when === "function" ? current.when(context) : current.when;
|
|
@@ -179,7 +179,7 @@ function useScrollRestoration(key) {
|
|
|
179
179
|
_react.useEffect.call(void 0, () => {
|
|
180
180
|
const element = ref.current;
|
|
181
181
|
if (!element) return;
|
|
182
|
-
return
|
|
182
|
+
return _chunkB6ZCT36Xcjs.getRouter.call(void 0, ).registerScrollElement(key, element);
|
|
183
183
|
}, [key]);
|
|
184
184
|
return ref;
|
|
185
185
|
}
|
|
@@ -201,7 +201,7 @@ function readRouterState(basePath, routeMatcher) {
|
|
|
201
201
|
pathname,
|
|
202
202
|
searchParams: url.searchParams,
|
|
203
203
|
params: _optionalChain([routeMatcher, 'optionalAccess', _5 => _5.match, 'call', _6 => _6(routePathname), 'optionalAccess', _7 => _7.params]) || {},
|
|
204
|
-
pageState: typeof window === "undefined" ? null :
|
|
204
|
+
pageState: typeof window === "undefined" ? null : _chunkB6ZCT36Xcjs.readPageState.call(void 0, )
|
|
205
205
|
};
|
|
206
206
|
}
|
|
207
207
|
_chunkS3JO3N4Hcjs.__name.call(void 0, readRouterState, "readRouterState");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunk2ITKVAIFcjs = require('./chunk-2ITKVAIF.cjs');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
var _chunkI57LW5VZcjs = require('./chunk-I57LW5VZ.cjs');
|
|
@@ -63,11 +63,12 @@ function collectFarmLlmsTxtPages(sources, options) {
|
|
|
63
63
|
for (const source of sources) {
|
|
64
64
|
const path = source.pattern;
|
|
65
65
|
if (path.includes("[") || pages.has(path)) continue;
|
|
66
|
-
if (include.length && !include.some((pattern) =>
|
|
66
|
+
if (include.length && !include.some((pattern) => _chunk2ITKVAIFcjs.matchesFarmMarkdownRoutePattern.call(void 0, pattern, path))) {
|
|
67
67
|
continue;
|
|
68
68
|
}
|
|
69
|
-
if (exclude.some((pattern) =>
|
|
70
|
-
|
|
69
|
+
if (exclude.some((pattern) => _chunk2ITKVAIFcjs.matchesFarmMarkdownRoutePattern.call(void 0, pattern, path))) continue;
|
|
70
|
+
if (isMetadataNoIndex(source.metadata)) continue;
|
|
71
|
+
const target = _chunk2ITKVAIFcjs.isFarmMarkdownMirrorExposed.call(void 0, options.markdown, path) ? _chunk2ITKVAIFcjs.getFarmMarkdownMirrorPath.call(void 0, path) : path;
|
|
71
72
|
const description = readMetadataString(source.metadata, "description");
|
|
72
73
|
pages.set(path, {
|
|
73
74
|
path,
|
|
@@ -79,6 +80,17 @@ function collectFarmLlmsTxtPages(sources, options) {
|
|
|
79
80
|
return [...pages.values()].sort((left, right) => left.path.localeCompare(right.path));
|
|
80
81
|
}
|
|
81
82
|
_chunkS3JO3N4Hcjs.__name.call(void 0, collectFarmLlmsTxtPages, "collectFarmLlmsTxtPages");
|
|
83
|
+
function isMetadataNoIndex(metadata) {
|
|
84
|
+
if (!metadata || typeof metadata !== "object") return false;
|
|
85
|
+
const robots = metadata.robots;
|
|
86
|
+
if (typeof robots === "string") {
|
|
87
|
+
return robots.split(",").map((directive) => directive.trim().toLowerCase()).some((directive) => directive === "noindex" || directive === "none");
|
|
88
|
+
}
|
|
89
|
+
return Boolean(
|
|
90
|
+
robots && typeof robots === "object" && robots.index === false
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, isMetadataNoIndex, "isMetadataNoIndex");
|
|
82
94
|
function createFarmDefaultLlmsTxt(options) {
|
|
83
95
|
const { config, pages } = options;
|
|
84
96
|
const summary = _nullishCoalesce(config.summary, () => ( readMetadataString(options.rootMetadata, "description")));
|
|
@@ -193,6 +205,36 @@ async function renderFarmLlmsFullTxt(value, options) {
|
|
|
193
205
|
`;
|
|
194
206
|
}
|
|
195
207
|
_chunkS3JO3N4Hcjs.__name.call(void 0, renderFarmLlmsFullTxt, "renderFarmLlmsFullTxt");
|
|
208
|
+
function createFarmLlmsFullRenderer(options = {}) {
|
|
209
|
+
const now = _nullishCoalesce(options.now, () => ( Date.now));
|
|
210
|
+
const ttl = (_nullishCoalesce(options.revalidate, () => ( 0))) * 1e3;
|
|
211
|
+
const maxEntries = _nullishCoalesce(options.maxEntries, () => ( 16));
|
|
212
|
+
const entries = /* @__PURE__ */ new Map();
|
|
213
|
+
let queue = Promise.resolve();
|
|
214
|
+
return (origin, render) => {
|
|
215
|
+
const entry = entries.get(origin);
|
|
216
|
+
if (entry && entry.expires > now()) return entry.body;
|
|
217
|
+
entries.delete(origin);
|
|
218
|
+
const body = queue.then(render);
|
|
219
|
+
queue = body.catch(() => {
|
|
220
|
+
});
|
|
221
|
+
const pending = { body, expires: Number.POSITIVE_INFINITY };
|
|
222
|
+
entries.set(origin, pending);
|
|
223
|
+
if (entries.size > maxEntries) entries.delete(entries.keys().next().value);
|
|
224
|
+
body.then(
|
|
225
|
+
() => {
|
|
226
|
+
if (entries.get(origin) !== pending) return;
|
|
227
|
+
if (ttl > 0) pending.expires = now() + ttl;
|
|
228
|
+
else entries.delete(origin);
|
|
229
|
+
},
|
|
230
|
+
() => {
|
|
231
|
+
if (entries.get(origin) === pending) entries.delete(origin);
|
|
232
|
+
}
|
|
233
|
+
);
|
|
234
|
+
return body;
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
_chunkS3JO3N4Hcjs.__name.call(void 0, createFarmLlmsFullRenderer, "createFarmLlmsFullRenderer");
|
|
196
238
|
function stripFrontmatter(markdown) {
|
|
197
239
|
const match = /^\uFEFF?---\r?\n[\s\S]*?\r?\n---[ \t]*(?:\r?\n|$)/.exec(markdown);
|
|
198
240
|
return match ? markdown.slice(match[0].length) : markdown;
|
|
@@ -1354,4 +1396,5 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, applyFarmPreviewRobotsTag, "applyFarmPrevi
|
|
|
1354
1396
|
|
|
1355
1397
|
|
|
1356
1398
|
|
|
1357
|
-
|
|
1399
|
+
|
|
1400
|
+
exports.resolveFarmLlmsTxtConfig = resolveFarmLlmsTxtConfig; exports.collectFarmLlmsTxtPages = collectFarmLlmsTxtPages; exports.createFarmDefaultLlmsTxt = createFarmDefaultLlmsTxt; exports.serializeFarmLlmsTxt = serializeFarmLlmsTxt; exports.createFarmLlmsMarkdownReader = createFarmLlmsMarkdownReader; exports.renderFarmLlmsFullTxt = renderFarmLlmsFullTxt; exports.createFarmLlmsFullRenderer = createFarmLlmsFullRenderer; exports.resolveFarmAgentCrawlers = resolveFarmAgentCrawlers; exports.createFarmAgentRobots = createFarmAgentRobots; exports.resolveFarmSecurityConfig = resolveFarmSecurityConfig; exports.getFarmSecurityHeader = getFarmSecurityHeader; exports.createFarmCspNonce = createFarmCspNonce; exports.addFarmCspNonceToScriptTags = addFarmCspNonceToScriptTags; exports.applyFarmCspHashesToHtml = applyFarmCspHashesToHtml; exports.applyFarmCspNonceToResponse = applyFarmCspNonceToResponse; exports.farmCspBlocksFrameworkInlineScripts = farmCspBlocksFrameworkInlineScripts; exports.createFarmCspNonceRewriter = createFarmCspNonceRewriter; exports.resolveFarmPerformanceConfig = resolveFarmPerformanceConfig; exports.manageFarmHtmlPreloads = manageFarmHtmlPreloads; exports.manageFarmLinkHeaderPreloads = manageFarmLinkHeaderPreloads; exports.manageFarmDocumentPreloads = manageFarmDocumentPreloads; exports.reportFarmPreloadWarnings = reportFarmPreloadWarnings; exports.FARM_PREVIEW_ROBOTS_TAG = FARM_PREVIEW_ROBOTS_TAG; exports.resolveFarmNoindexPreviews = resolveFarmNoindexPreviews; exports.applyFarmPreviewRobotsTag = applyFarmPreviewRobotsTag;
|