@farming-labs/svelte 0.1.130 → 0.1.132

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 +24 -5
  2. package/package.json +2 -2
package/dist/server.js CHANGED
@@ -30,7 +30,7 @@
30
30
  import fs from "node:fs";
31
31
  import path from "node:path";
32
32
  import matter from "gray-matter";
33
- import { applySidebarFolderIndexBehavior, buildDocsAskAIContext, buildDocsAgentDiscoverySpec, createDocsRobotsResponse, createDocsSitemapResponse, createDocsAgentTraceContext, createDocsAgentTraceId, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, formatDocsAskAIPackageHints, findDocsMarkdownPage, getDocsLlmsTxtMaxCharsIssue, getDocsMarkdownCanonicalLinkHeader, getDocsMarkdownVaryHeader, isDocsAgentDiscoveryRequest, isDocsAgentsRequest, isDocsSkillRequest, normalizeDocsRelated, parseDocsAgentFeedbackData, performDocsSearch, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, renderDocsLlmsTxt, renderDocsAgentsDocument, renderDocsSkillDocument, readDocsSitemapManifestFromContentMap, stripGeneratedAgentProvenance, resolveDocsAgentMdxContent, resolveDocsAgentFeedbackConfig, resolveDocsAgentFeedbackRequest, resolvePageSidebarFolderIndexBehavior, resolveAskAISearchRequestConfig, resolveSearchRequestConfig, resolveDocsI18n, resolveDocsLlmsTxtRequest, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsPath, resolvePageReadingTime, resolveReadingTimeOptions, resolveDocsSitemapPageLastmod, resolveDocsAgentsFormat, resolveDocsSkillFormat, renderDocsPageStructuredDataJson, selectDocsLlmsTxtContent, validateDocsAgentFeedbackPayload, } from "@farming-labs/docs";
33
+ import { applySidebarFolderIndexBehavior, buildDocsAskAIContext, buildDocsAgentDiscoverySpec, createDocsRobotsResponse, createDocsSitemapResponse, createDocsAgentTraceContext, createDocsAgentTraceId, emitDocsAgentTraceEvent, emitDocsAnalyticsEvent, formatDocsAskAIPackageHints, findDocsMarkdownPage, getDocsLlmsTxtMaxCharsIssue, getDocsMarkdownCanonicalLinkHeader, getDocsMarkdownVaryHeader, isDocsAgentDiscoveryRequest, isDocsAgentsRequest, isDocsSkillRequest, normalizeDocsRelated, parseDocsAgentFeedbackData, performDocsSearch, renderDocsMarkdownDocument, renderDocsMarkdownNotFound, resolveDocsMarkdownRecovery, renderDocsLlmsTxt, renderDocsAgentsDocument, renderDocsSkillDocument, readDocsSitemapManifestFromContentMap, stripGeneratedAgentProvenance, resolveDocsAgentMdxContent, resolveDocsAgentFeedbackConfig, resolveDocsAgentFeedbackRequest, resolvePageSidebarFolderIndexBehavior, resolveAskAISearchRequestConfig, resolveSearchRequestConfig, resolveDocsI18n, resolveDocsLlmsTxtRequest, resolveDocsLocale, resolveDocsMarkdownRequest, resolveDocsMetadataBaseUrl, resolveDocsPath, resolvePageReadingTime, resolveReadingTimeOptions, resolveDocsSitemapPageLastmod, resolveDocsAgentsFormat, resolveDocsSkillFormat, renderDocsPageStructuredDataJson, selectDocsLlmsTxtContent, validateDocsAgentFeedbackPayload, } from "@farming-labs/docs";
34
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";
@@ -661,9 +661,9 @@ export function createDocsServer(config = {}) {
661
661
  return locale;
662
662
  return i18n.defaultLocale;
663
663
  }
664
- function getMarkdownDocument(ctx, requestedPath) {
664
+ function getMarkdownDocument(ctx, requestedPath, origin) {
665
665
  const page = findDocsMarkdownPage(entry, getSearchIndex(ctx), requestedPath);
666
- return page ? renderDocsMarkdownDocument(page) : null;
666
+ return page ? renderDocsMarkdownDocument(page, { origin, sitemap: config.sitemap }) : null;
667
667
  }
668
668
  // ─── GET /api/docs?query=… | ?format=llms | ?format=llms-full ──
669
669
  async function GET(event) {
@@ -822,7 +822,8 @@ export function createDocsServer(config = {}) {
822
822
  return robotsResponse;
823
823
  const markdownRequest = resolveDocsMarkdownRequest(entry, event.url, event.request);
824
824
  if (markdownRequest) {
825
- const document = getMarkdownDocument(ctx, markdownRequest.requestedPath);
825
+ const markdownOrigin = llmsBaseUrl || event.url.origin;
826
+ const document = getMarkdownDocument(ctx, markdownRequest.requestedPath, markdownOrigin);
826
827
  const varyHeader = getDocsMarkdownVaryHeader(event.request);
827
828
  const canonicalLinkHeader = getDocsMarkdownCanonicalLinkHeader({
828
829
  origin: event.url.origin,
@@ -831,12 +832,30 @@ export function createDocsServer(config = {}) {
831
832
  locale: ctx.locale,
832
833
  });
833
834
  if (!document) {
835
+ const recovery = resolveDocsMarkdownRecovery({
836
+ entry,
837
+ requestedPath: markdownRequest.requestedPath,
838
+ pages: getSearchIndex(ctx),
839
+ sitemap: config.sitemap,
840
+ });
841
+ if (recovery.redirect) {
842
+ return new Response(null, {
843
+ status: 307,
844
+ headers: {
845
+ Location: new URL(recovery.redirect.markdownUrl, event.url.origin).toString(),
846
+ ...(varyHeader ? { Vary: varyHeader } : {}),
847
+ "X-Robots-Tag": "noindex",
848
+ },
849
+ });
850
+ }
834
851
  return new Response(renderDocsMarkdownNotFound({
835
852
  entry,
836
853
  requestedPath: markdownRequest.requestedPath,
854
+ origin: markdownOrigin,
855
+ pages: getSearchIndex(ctx),
837
856
  sitemap: config.sitemap,
838
857
  }), {
839
- status: 404,
858
+ status: 200,
840
859
  headers: {
841
860
  "Content-Type": "text/markdown; charset=utf-8",
842
861
  ...(varyHeader ? { Vary: varyHeader } : {}),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/svelte",
3
- "version": "0.1.130",
3
+ "version": "0.1.132",
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.130"
59
+ "@farming-labs/docs": "0.1.132"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "@farming-labs/docs": "*"