@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.
Files changed (2) hide show
  1. package/dist/server.js +43 -1
  2. 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.98",
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.98"
59
+ "@farming-labs/docs": "0.1.100"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "@farming-labs/docs": "*"