@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
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
getFarmMarkdownMirrorPath,
|
|
3
3
|
isFarmMarkdownMirrorExposed,
|
|
4
4
|
matchesFarmMarkdownRoutePattern
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-U4MP7XTD.mjs";
|
|
6
6
|
import {
|
|
7
7
|
applyFarmBasePath
|
|
8
8
|
} from "./chunk-4RB44K6Z.mjs";
|
|
@@ -67,6 +67,7 @@ function collectFarmLlmsTxtPages(sources, options) {
|
|
|
67
67
|
continue;
|
|
68
68
|
}
|
|
69
69
|
if (exclude.some((pattern) => matchesFarmMarkdownRoutePattern(pattern, path))) continue;
|
|
70
|
+
if (isMetadataNoIndex(source.metadata)) continue;
|
|
70
71
|
const target = isFarmMarkdownMirrorExposed(options.markdown, path) ? getFarmMarkdownMirrorPath(path) : path;
|
|
71
72
|
const description = readMetadataString(source.metadata, "description");
|
|
72
73
|
pages.set(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
|
__name(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
|
+
__name(isMetadataNoIndex, "isMetadataNoIndex");
|
|
82
94
|
function createFarmDefaultLlmsTxt(options) {
|
|
83
95
|
const { config, pages } = options;
|
|
84
96
|
const summary = config.summary ?? readMetadataString(options.rootMetadata, "description");
|
|
@@ -193,6 +205,36 @@ async function renderFarmLlmsFullTxt(value, options) {
|
|
|
193
205
|
`;
|
|
194
206
|
}
|
|
195
207
|
__name(renderFarmLlmsFullTxt, "renderFarmLlmsFullTxt");
|
|
208
|
+
function createFarmLlmsFullRenderer(options = {}) {
|
|
209
|
+
const now = options.now ?? Date.now;
|
|
210
|
+
const ttl = (options.revalidate ?? 0) * 1e3;
|
|
211
|
+
const maxEntries = 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
|
+
__name(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;
|
|
@@ -1336,6 +1378,7 @@ export {
|
|
|
1336
1378
|
serializeFarmLlmsTxt,
|
|
1337
1379
|
createFarmLlmsMarkdownReader,
|
|
1338
1380
|
renderFarmLlmsFullTxt,
|
|
1381
|
+
createFarmLlmsFullRenderer,
|
|
1339
1382
|
resolveFarmAgentCrawlers,
|
|
1340
1383
|
createFarmAgentRobots,
|
|
1341
1384
|
resolveFarmSecurityConfig,
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkAXYTGLF3cjs = require('./chunk-AXYTGLF3.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
var _chunkIK6LVLKCcjs = require('./chunk-IK6LVLKC.cjs');
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkO5DVPF3Rcjs = require('./chunk-O5DVPF3R.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: _chunkAXYTGLF3cjs.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 _chunkAXYTGLF3cjs.discoverFarmDocsPages.call(void 0, context.contentDir, context.docs).map((page) => _chunkAXYTGLF3cjs.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
|
+
..._chunkAXYTGLF3cjs.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
|
+
..._chunkAXYTGLF3cjs.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 _chunkAXYTGLF3cjs.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 = _chunkAXYTGLF3cjs.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 = _chunkAXYTGLF3cjs.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 _chunkO5DVPF3Rcjs.resolveDocsConfig.call(void 0, docsInput, { root, srcDir });
|
|
504
504
|
return {
|
|
505
505
|
root,
|
|
506
506
|
srcDir,
|
|
507
507
|
docs,
|
|
508
|
-
contentDir:
|
|
508
|
+
contentDir: _chunkAXYTGLF3cjs.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 = _chunkAXYTGLF3cjs.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(_chunkAXYTGLF3cjs.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
|
|
@@ -3,16 +3,23 @@ import {
|
|
|
3
3
|
} from "./chunk-XAXTTBUT.mjs";
|
|
4
4
|
import {
|
|
5
5
|
serializeFarmLlmsTxt
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RR6UGYUT.mjs";
|
|
7
7
|
import {
|
|
8
8
|
resolveFarmThemeConfig
|
|
9
9
|
} from "./chunk-AELACLOB.mjs";
|
|
10
|
+
import {
|
|
11
|
+
resolveFarmAPIServerBasePath,
|
|
12
|
+
resolveFarmAPIServerRoutePath
|
|
13
|
+
} from "./chunk-I6XDAKWQ.mjs";
|
|
10
14
|
import {
|
|
11
15
|
omitFarmResponseBody
|
|
12
16
|
} from "./chunk-5WI2S4CO.mjs";
|
|
13
17
|
import {
|
|
14
18
|
localizeFarmPathname
|
|
15
19
|
} from "./chunk-L3KT7IXV.mjs";
|
|
20
|
+
import {
|
|
21
|
+
applyFarmBasePath
|
|
22
|
+
} from "./chunk-4RB44K6Z.mjs";
|
|
16
23
|
import {
|
|
17
24
|
__name
|
|
18
25
|
} from "./chunk-LPEX4YW6.mjs";
|
|
@@ -440,6 +447,66 @@ function serializeInlineValue(value) {
|
|
|
440
447
|
}
|
|
441
448
|
__name(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: config.openapi?.servers?.[0]?.url ?? config.api.baseURL,
|
|
458
|
+
openapi: config.openapi?.enabled ? { specRoute: config.openapi.specRoute, route: config.openapi.route } : void 0,
|
|
459
|
+
mcpPath: mcp ? resolveFarmAPIServerRoutePath(
|
|
460
|
+
mcp.path ?? "/api/mcp",
|
|
461
|
+
resolveFarmAPIServerBasePath(config.api)
|
|
462
|
+
) : void 0
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
__name(resolveFarmApiCatalogInput, "resolveFarmApiCatalogInput");
|
|
466
|
+
function createFarmApiCatalog(input) {
|
|
467
|
+
const appPath = /* @__PURE__ */ __name((path) => applyFarmBasePath(path, input.basePath), "appPath");
|
|
468
|
+
const items = [];
|
|
469
|
+
const contexts = [];
|
|
470
|
+
const specRoute = input.openapi?.specRoute;
|
|
471
|
+
const reference = input.openapi?.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
|
+
__name(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
|
+
__name(createFarmApiCatalogResponse, "createFarmApiCatalogResponse");
|
|
509
|
+
|
|
443
510
|
export {
|
|
444
511
|
renderFarmLocaleAlternateLinks,
|
|
445
512
|
createLateRedirectRecovery,
|
|
@@ -449,5 +516,8 @@ export {
|
|
|
449
516
|
getDefaultErrorStatusText,
|
|
450
517
|
createDefaultErrorMarkup,
|
|
451
518
|
createFarmThemeDocumentParts,
|
|
452
|
-
applyFarmThemeDocument
|
|
519
|
+
applyFarmThemeDocument,
|
|
520
|
+
FARM_API_CATALOG_PATH,
|
|
521
|
+
resolveFarmApiCatalogInput,
|
|
522
|
+
createFarmApiCatalogResponse
|
|
453
523
|
};
|