@farming-labs/svelte 0.1.98 → 0.1.100
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/server.js +43 -1
- package/package.json +2 -2
package/dist/server.js
CHANGED
|
@@ -31,10 +31,25 @@ import fs from "node:fs";
|
|
|
31
31
|
import path from "node:path";
|
|
32
32
|
import matter from "gray-matter";
|
|
33
33
|
import { applySidebarFolderIndexBehavior, buildDocsAskAIContext, buildDocsAgentDiscoverySpec, createDocsRobotsResponse, createDocsSitemapResponse, createDocsAgentTraceContext, createDocsAgentTraceId, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, formatDocsAskAIPackageHints, findDocsMarkdownPage, getDocsLlmsTxtMaxCharsIssue, getDocsMarkdownCanonicalLinkHeader, getDocsMarkdownVaryHeader, isDocsAgentDiscoveryRequest, isDocsSkillRequest, normalizeDocsRelated, parseDocsAgentFeedbackData, performDocsSearch, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsLlmsTxt, renderDocsSkillDocument, readDocsSitemapManifestFromContentMap, stripGeneratedAgentProvenance, resolveDocsAgentMdxContent, resolveDocsAgentFeedbackConfig, resolveDocsAgentFeedbackRequest, resolvePageSidebarFolderIndexBehavior, resolveAskAISearchRequestConfig, resolveSearchRequestConfig, resolveDocsI18n, resolveDocsLlmsTxtRequest, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsPath, resolvePageReadingTime, resolveReadingTimeOptions, resolveDocsSitemapPageLastmod, resolveDocsSkillFormat, renderDocsPageStructuredDataJson, selectDocsLlmsTxtContent, validateDocsAgentFeedbackPayload, } from "@farming-labs/docs";
|
|
34
|
-
import { createDocsMcpHttpHandler, readDocsSitemapManifest, resolveDocsMcpConfig, serializeDocsIconRegistry, serializeOpenDocsProviders, } from "@farming-labs/docs/server";
|
|
34
|
+
import { buildApiReferenceOpenApiDocumentAsync, createDocsMcpHttpHandler, readDocsSitemapManifest, resolveApiReferenceConfig, resolveDocsMcpConfig, serializeDocsIconRegistry, serializeOpenDocsProviders, } from "@farming-labs/docs/server";
|
|
35
35
|
import { loadDocsNavTree, loadDocsContent, flattenNavTree } from "./content.js";
|
|
36
36
|
import { renderMarkdown } from "./markdown.js";
|
|
37
37
|
export { createSvelteApiReference } from "./api-reference.js";
|
|
38
|
+
function isApiReferenceOpenApiRequest(url) {
|
|
39
|
+
return url.searchParams.get("format")?.trim() === "openapi";
|
|
40
|
+
}
|
|
41
|
+
function resolveApiReferenceOpenApiDiscovery(value) {
|
|
42
|
+
const apiReference = resolveApiReferenceConfig(value);
|
|
43
|
+
if (!apiReference.enabled)
|
|
44
|
+
return { enabled: false };
|
|
45
|
+
return {
|
|
46
|
+
enabled: true,
|
|
47
|
+
url: "/api/docs?format=openapi",
|
|
48
|
+
source: apiReference.specUrl ? "configured" : "generated",
|
|
49
|
+
specUrl: apiReference.specUrl,
|
|
50
|
+
apiReferencePath: `/${apiReference.path}`,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
38
53
|
function resolveAIModelAndProvider(aiConfig, requestedModelId) {
|
|
39
54
|
const raw = aiConfig.model;
|
|
40
55
|
const modelList = (typeof raw === "object" && raw?.models) || [];
|
|
@@ -579,6 +594,7 @@ export function createDocsServer(config = {}) {
|
|
|
579
594
|
const llmsDesc = typeof llmsTxtConfig === "object" ? llmsTxtConfig.siteDescription : undefined;
|
|
580
595
|
const llmsEnabled = llmsTxtConfig !== false &&
|
|
581
596
|
!(llmsTxtConfig && typeof llmsTxtConfig === "object" && llmsTxtConfig.enabled === false);
|
|
597
|
+
const openapiDiscovery = resolveApiReferenceOpenApiDiscovery(config.apiReference);
|
|
582
598
|
const mcpConfig = resolveDocsMcpConfig(config.mcp, {
|
|
583
599
|
defaultName: llmsTitle,
|
|
584
600
|
});
|
|
@@ -600,6 +616,7 @@ export function createDocsServer(config = {}) {
|
|
|
600
616
|
baseUrl: llmsBaseUrl,
|
|
601
617
|
maxChars: typeof llmsTxtConfig === "object" ? llmsTxtConfig.maxChars : undefined,
|
|
602
618
|
sections: typeof llmsTxtConfig === "object" ? llmsTxtConfig.sections : undefined,
|
|
619
|
+
openapi: openapiDiscovery,
|
|
603
620
|
});
|
|
604
621
|
llmsCache.set(key, next);
|
|
605
622
|
return next;
|
|
@@ -636,6 +653,7 @@ export function createDocsServer(config = {}) {
|
|
|
636
653
|
},
|
|
637
654
|
sitemap: config.sitemap,
|
|
638
655
|
robots: config.robots,
|
|
656
|
+
openapi: openapiDiscovery,
|
|
639
657
|
markdown: {
|
|
640
658
|
acceptHeader: false,
|
|
641
659
|
},
|
|
@@ -647,6 +665,29 @@ export function createDocsServer(config = {}) {
|
|
|
647
665
|
},
|
|
648
666
|
});
|
|
649
667
|
}
|
|
668
|
+
if (isApiReferenceOpenApiRequest(event.url)) {
|
|
669
|
+
if (!openapiDiscovery.enabled) {
|
|
670
|
+
return new Response("Not Found", {
|
|
671
|
+
status: 404,
|
|
672
|
+
headers: {
|
|
673
|
+
"Content-Type": "text/plain; charset=utf-8",
|
|
674
|
+
"X-Robots-Tag": "noindex",
|
|
675
|
+
},
|
|
676
|
+
});
|
|
677
|
+
}
|
|
678
|
+
const document = await buildApiReferenceOpenApiDocumentAsync(config, {
|
|
679
|
+
framework: "sveltekit",
|
|
680
|
+
rootDir,
|
|
681
|
+
baseUrl: event.url.origin,
|
|
682
|
+
});
|
|
683
|
+
return new Response(JSON.stringify(document, null, 2), {
|
|
684
|
+
headers: {
|
|
685
|
+
"Content-Type": "application/json; charset=utf-8",
|
|
686
|
+
"Cache-Control": "public, max-age=0, s-maxage=3600",
|
|
687
|
+
"X-Robots-Tag": "noindex",
|
|
688
|
+
},
|
|
689
|
+
});
|
|
690
|
+
}
|
|
650
691
|
const agentFeedbackRequest = resolveDocsAgentFeedbackRequest(event.url, agentFeedbackConfig);
|
|
651
692
|
if (agentFeedbackRequest) {
|
|
652
693
|
if (agentFeedbackRequest.kind === "submit") {
|
|
@@ -684,6 +725,7 @@ export function createDocsServer(config = {}) {
|
|
|
684
725
|
},
|
|
685
726
|
sitemap: config.sitemap,
|
|
686
727
|
robots: config.robots,
|
|
728
|
+
openapi: openapiDiscovery,
|
|
687
729
|
markdown: {
|
|
688
730
|
acceptHeader: false,
|
|
689
731
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farming-labs/svelte",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.100",
|
|
4
4
|
"description": "SvelteKit adapter for @farming-labs/docs — content loading and navigation utilities",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"docs",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@types/node": "^22.10.0",
|
|
58
58
|
"typescript": "^5.9.3",
|
|
59
|
-
"@farming-labs/docs": "0.1.
|
|
59
|
+
"@farming-labs/docs": "0.1.100"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
62
|
"@farming-labs/docs": "*"
|