@farming-labs/docs 0.2.118 → 0.2.120

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 (84) hide show
  1. package/dist/{agent-DAjdIdoL.mjs → agent-CYk2DxY7.mjs} +3 -3
  2. package/dist/{agent-BErhm-eR.mjs → agent-DkAidqtV.mjs} +9 -3
  3. package/dist/{agent-evals-BHXe_A2m.mjs → agent-evals-BLNLvXbG.mjs} +3 -3
  4. package/dist/{agent-export-B849tzbg.mjs → agent-export-CA6IUQ7T.mjs} +16 -15
  5. package/dist/agent-skills-bundle.d.mts +1 -1
  6. package/dist/{agent-skills-progressive-disclosure-1XPV0wCN.mjs → agent-skills-progressive-disclosure-PjPtTYL-.mjs} +1 -1
  7. package/dist/{agent-skills-server-CJh3EGWC.mjs → agent-skills-server-BC7md56k.mjs} +1 -1
  8. package/dist/{agent-skills-server-DiXUcYNy.d.mts → agent-skills-server-D5IuvwM7.d.mts} +2 -2
  9. package/dist/agent-skills-vite.d.mts +3 -3
  10. package/dist/agent-skills-vite.mjs +2 -2
  11. package/dist/{agents-Dwys0Wr7.mjs → agents-BUiVmj8i.mjs} +14 -13
  12. package/dist/{analytics-BvUjK_oC.d.mts → analytics-w3FDOksr.d.mts} +1 -1
  13. package/dist/{api-reference-DafuHRtc.mjs → api-reference-BYee4zMo.mjs} +17 -4
  14. package/dist/{authoring-BqcSw2Ok.mjs → authoring-C2ymvYWl.mjs} +6 -5
  15. package/dist/{authoring-mcp-BmohXL7E.mjs → authoring-mcp-CiCUQe3o.mjs} +2 -2
  16. package/dist/browser.d.mts +4 -4
  17. package/dist/browser.mjs +6 -3
  18. package/dist/cli/index.mjs +38 -38
  19. package/dist/client/react.d.mts +1 -1
  20. package/dist/{cloud-BllEwBht.mjs → cloud-6eKrlmKd.mjs} +3 -3
  21. package/dist/{cloud-ask-ai-nlKU13he.d.mts → cloud-ask-ai-BrsTXQf6.d.mts} +1 -1
  22. package/dist/{codeblocks-Cbo7uzxr.mjs → codeblocks-CHpgAwY-.mjs} +2 -2
  23. package/dist/{content-change-hydration-Cr07LmBu.d.mts → content-change-hydration-wqXIZHp6.d.mts} +3 -3
  24. package/dist/{dev-QxIXdG0G.mjs → dev-Bnn-NUNa.mjs} +2 -2
  25. package/dist/docs-cloud-server.d.mts +2 -2
  26. package/dist/docs-cloud-server.mjs +1 -1
  27. package/dist/{doctor-Cysov9LX.mjs → doctor-Bfkrkzad.mjs} +21 -20
  28. package/dist/{downgrade-Cx3FnovE.mjs → downgrade-CHMta85e.mjs} +2 -2
  29. package/dist/{feedback-Dfgt_WD5.mjs → feedback-DL4T5oIO.mjs} +1 -1
  30. package/dist/{feedback-evals-DI_JNN5M.mjs → feedback-evals-DMilg9pY.mjs} +1 -1
  31. package/dist/{golden-evaluations-BqdWUUE7.mjs → golden-evaluations-CLUViycJ.mjs} +2 -2
  32. package/dist/index.d.mts +9 -44
  33. package/dist/index.mjs +11 -12
  34. package/dist/{init-CW922o9v.mjs → init-K0LmXDZ5.mjs} +3 -3
  35. package/dist/{mcp-CqtJYU0Y.mjs → mcp-iLCmnPJI.mjs} +15 -14
  36. package/dist/mcp.d.mts +3 -3
  37. package/dist/mcp.mjs +23 -5
  38. package/dist/{openapi-diff-Cf1dguBv.mjs → openapi-diff-HcpUNjA-.mjs} +5 -5
  39. package/dist/{openapi-mcp-gbEUXMkc.mjs → openapi-mcp-BIOTLiA7.mjs} +3 -315
  40. package/dist/{openapi-sdk-G7RtjWc5.mjs → openapi-sdk-BQKC6H-_.mjs} +5 -5
  41. package/dist/{openapi-source-1ubEyHMO.mjs → openapi-source-DK6ts_Bk.mjs} +1 -1
  42. package/dist/{package-version-CiVXOONu.mjs → package-version-HJhYeq4M.mjs} +1 -1
  43. package/dist/{prompt-references-C1nDPYdm.mjs → prompt-references-DMgbu_dz.mjs} +3 -3
  44. package/dist/{propose-B_yerUFm.mjs → propose-JmUv_BTt.mjs} +1 -1
  45. package/dist/{retrieval-digest-ueYW3S6P.d.mts → retrieval-digest-AOx2-LbC.d.mts} +1 -1
  46. package/dist/{review-Df62iFE4.mjs → review-C6EmbV0l.mjs} +12 -11
  47. package/dist/{robots-CRIXPOiX.mjs → robots-BYJAVeI6.mjs} +2 -2
  48. package/dist/{robots-vdQ4tLzZ.mjs → robots-DteZB8vl.mjs} +5 -5
  49. package/dist/runtime.d.mts +3 -3
  50. package/dist/runtime.mjs +7 -6
  51. package/dist/{search-Cso57KVB.mjs → search-Bhuv_YsL.mjs} +16 -15
  52. package/dist/server.d.mts +9 -9
  53. package/dist/server.mjs +14 -13
  54. package/dist/sidebar-CFHBj29f.mjs +421 -0
  55. package/dist/sidebar-CMPbVfGP.d.mts +63 -0
  56. package/dist/{sitemap-BEUEeKbt.d.mts → sitemap-Cl8vrixd.d.mts} +2 -2
  57. package/dist/{sitemap-Du2wWBmo.mjs → sitemap-DW5LDKDa.mjs} +14 -13
  58. package/dist/{sitemap-server-DNsVKCnP.d.mts → sitemap-server-BUdPBcGs.d.mts} +3 -2
  59. package/dist/{sitemap-server-CClBRp7_.mjs → sitemap-server-Lg3YhUx4.mjs} +1 -1
  60. package/dist/{skills-BC0GTdUM.mjs → skills-BAPQLSCm.mjs} +14 -13
  61. package/dist/{standards-discovery-C3AB6qNv.d.mts → standards-discovery-BHPc7YIX.d.mts} +1 -1
  62. package/dist/{types-Ba9Dd_fe.d.mts → types-BJFeMXWZ.d.mts} +20 -3
  63. package/dist/{upgrade-CXIQlLWx.mjs → upgrade-DlQMOFV1.mjs} +2 -2
  64. package/package.json +2 -2
  65. package/dist/audience-exposure-P69ZKRec.mjs +0 -8
  66. package/dist/sidebar-CAncgoWu.d.mts +0 -15
  67. package/dist/sidebar-mI70dH_0.mjs +0 -73
  68. /package/dist/{agent-feedback-evaluations-UhAdMoIY.mjs → agent-feedback-evaluations-CcMGlgsO.mjs} +0 -0
  69. /package/dist/{agent-feedback-loop-DpZ9ZdFB.mjs → agent-feedback-loop-CcZL_sb1.mjs} +0 -0
  70. /package/dist/{agent-maintenance-CZLly8It.mjs → agent-maintenance-CuZ7iAKq.mjs} +0 -0
  71. /package/dist/{audience-exposure-PMCEve-s.d.mts → audience-exposure-DBrFWULA.d.mts} +0 -0
  72. /package/dist/{cloud-ask-ai-Bq_njfjh.mjs → cloud-ask-ai-BqKhjpS5.mjs} +0 -0
  73. /package/dist/{code-blocks-BE3sEayp.mjs → code-blocks-GYdvS3BH.mjs} +0 -0
  74. /package/dist/{config-DDuQ4Qma.mjs → config-BZnKAj_Y.mjs} +0 -0
  75. /package/dist/{errors-CBmy95z2.mjs → errors-BtnVLhNF.mjs} +0 -0
  76. /package/dist/{i18n-DKGg_G0f.mjs → i18n-B1gJ9EW0.mjs} +0 -0
  77. /package/dist/{metadata-DoUinS1I.mjs → metadata-BOHn0Y5K.mjs} +0 -0
  78. /package/dist/{openapi-BkQGpZEg.mjs → openapi-CfCzX_a1.mjs} +0 -0
  79. /package/dist/{openapi-mcp-node-DiqMH9Ao.mjs → openapi-mcp-node-C4jUpZG6.mjs} +0 -0
  80. /package/dist/{openapi-operations-CsXLUD3Z.mjs → openapi-operations-DFpaqOqA.mjs} +0 -0
  81. /package/dist/{prompt-utils-Dj8-I3Jw.mjs → prompt-utils-B5g-bv7o.mjs} +0 -0
  82. /package/dist/{standards-discovery-BQQ3CAzz.mjs → standards-discovery-sSEojU80.mjs} +0 -0
  83. /package/dist/{templates-2nnlhcmo.mjs → templates-BuQ8YsGv.mjs} +0 -0
  84. /package/dist/{utils-8H7dkC8w.mjs → utils-C7KDrPpA.mjs} +0 -0
@@ -0,0 +1,63 @@
1
+ import { Cr as DocsTelemetryConfig, Dr as DocsTelemetryFeatures, Or as DocsTelemetryFramework, Sr as DocsTelemetryAgentSurface, Wt as DocsConfig, di as SidebarFolderIndexBehavior, ui as SidebarConfig, wr as DocsTelemetryEvent } from "./types-BJFeMXWZ.mjs";
2
+
3
+ //#region src/telemetry.d.ts
4
+ interface ResolvedDocsTelemetryConfig {
5
+ enabled: boolean;
6
+ endpoint?: string;
7
+ }
8
+ interface DocsTelemetryContext {
9
+ framework?: DocsTelemetryFramework;
10
+ request?: Request;
11
+ siteOrigin?: string;
12
+ properties?: Record<string, unknown>;
13
+ }
14
+ interface DocsTelemetryAgentSurfaceContext extends DocsTelemetryContext {
15
+ surface: DocsTelemetryAgentSurface;
16
+ }
17
+ interface DocsTelemetryPageViewContext {
18
+ framework?: DocsTelemetryFramework;
19
+ siteOrigin?: string;
20
+ path?: string;
21
+ locale?: string;
22
+ }
23
+ interface DocsTelemetryAgentSurfaceRequestOptions {
24
+ entry: string;
25
+ llmsTxt?: DocsConfig["llmsTxt"];
26
+ feedback?: DocsConfig["feedback"];
27
+ }
28
+ declare function resolveDocsTelemetryConfig(telemetry?: boolean | DocsTelemetryConfig): ResolvedDocsTelemetryConfig;
29
+ /** Normalize an HTTP(S) telemetry site value to its origin. */
30
+ declare function normalizeDocsTelemetryOrigin(candidate: string | undefined): string | undefined;
31
+ /** Return whether a telemetry origin points at a local development server. */
32
+ declare function isLocalDocsTelemetryOrigin(candidate: string | undefined): boolean;
33
+ declare function getDocsTelemetryFeatures(config: Partial<DocsConfig>): DocsTelemetryFeatures;
34
+ declare function emitDocsTelemetryEvent(telemetry: boolean | DocsTelemetryConfig | undefined, event: DocsTelemetryEvent): Promise<void>;
35
+ declare function emitDocsTelemetryProjectEvent(config: Partial<DocsConfig>, context?: DocsTelemetryContext): void;
36
+ /**
37
+ * Emit a privacy-preserving browser page view for the maintainer telemetry dashboard.
38
+ *
39
+ * Page views include only the public site origin, pathname, locale, framework, and package
40
+ * metadata. They never include a query string, referrer, visitor id, IP address, or user agent.
41
+ */
42
+ declare function emitDocsTelemetryPageViewEvent(telemetry: boolean | DocsTelemetryConfig | undefined, context?: DocsTelemetryPageViewContext): void;
43
+ declare function emitDocsTelemetryAgentSurfaceEvent(config: Partial<DocsConfig>, context: DocsTelemetryAgentSurfaceContext): void;
44
+ declare function emitDocsTelemetryMcpToolEvent(config: Partial<DocsConfig>, context: DocsTelemetryContext & {
45
+ tool: string;
46
+ locale?: string;
47
+ resultCount?: number;
48
+ }): void;
49
+ declare function inferDocsTelemetryAgentSurface(request: Request, options: DocsTelemetryAgentSurfaceRequestOptions): DocsTelemetryAgentSurface | undefined;
50
+ //#endregion
51
+ //#region src/sidebar.d.ts
52
+ interface SidebarFolderIndexBehaviorOptions {
53
+ sidebar: boolean | SidebarConfig | undefined;
54
+ defaultBehavior?: SidebarFolderIndexBehavior;
55
+ }
56
+ declare function resolvePageSidebarFolderIndexBehavior(sidebar: unknown): SidebarFolderIndexBehavior | undefined;
57
+ declare function resolveSidebarFolderIndexBehavior(sidebar: boolean | SidebarConfig | undefined, defaultBehavior?: SidebarFolderIndexBehavior): SidebarFolderIndexBehavior;
58
+ declare function resolveSidebarFolderIndexBehaviorForPath(sidebar: boolean | SidebarConfig | undefined, folderPath: string | undefined, defaultBehavior?: SidebarFolderIndexBehavior): SidebarFolderIndexBehavior;
59
+ declare function applySidebarFolderIndexBehavior<TTree extends {
60
+ children: unknown[];
61
+ }>(tree: TTree, behaviorOrOptions: SidebarFolderIndexBehavior | SidebarFolderIndexBehaviorOptions): TTree;
62
+ //#endregion
63
+ export { isLocalDocsTelemetryOrigin as _, DocsTelemetryAgentSurfaceContext as a, DocsTelemetryPageViewContext as c, emitDocsTelemetryEvent as d, emitDocsTelemetryMcpToolEvent as f, inferDocsTelemetryAgentSurface as g, getDocsTelemetryFeatures as h, resolveSidebarFolderIndexBehaviorForPath as i, ResolvedDocsTelemetryConfig as l, emitDocsTelemetryProjectEvent as m, resolvePageSidebarFolderIndexBehavior as n, DocsTelemetryAgentSurfaceRequestOptions as o, emitDocsTelemetryPageViewEvent as p, resolveSidebarFolderIndexBehavior as r, DocsTelemetryContext as s, applySidebarFolderIndexBehavior as t, emitDocsTelemetryAgentSurfaceEvent as u, normalizeDocsTelemetryOrigin as v, resolveDocsTelemetryConfig as y };
@@ -1,5 +1,5 @@
1
- import { oi as ResolvedDocsRelatedLink, yr as DocsSitemapConfig } from "./types-Ba9Dd_fe.mjs";
2
- import { R as DocsDiscoveryApiRouteOptions } from "./standards-discovery-C3AB6qNv.mjs";
1
+ import { ci as ResolvedDocsRelatedLink, xr as DocsSitemapConfig } from "./types-BJFeMXWZ.mjs";
2
+ import { R as DocsDiscoveryApiRouteOptions } from "./standards-discovery-BHPc7YIX.mjs";
3
3
 
4
4
  //#region src/sitemap.d.ts
5
5
  declare const DEFAULT_SITEMAP_XML_ROUTE = "/sitemap.xml";
@@ -1,20 +1,21 @@
1
1
  import "./http-body-DkAPk6D5.mjs";
2
2
  import "./markdown-sections-9Oxr33b-.mjs";
3
- import { It as renderDocsSitemapMarkdown, Lt as renderDocsSitemapXml, Nt as buildDocsSitemapManifest, Rt as resolveDocsSitemapConfig } from "./agent-BErhm-eR.mjs";
4
- import "./standards-discovery-BQQ3CAzz.mjs";
5
- import "./openapi-mcp-gbEUXMkc.mjs";
6
- import "./prompt-utils-Dj8-I3Jw.mjs";
7
- import "./api-reference-DafuHRtc.mjs";
8
- import "./agent-skills-server-CJh3EGWC.mjs";
9
- import "./agent-evals-BHXe_A2m.mjs";
3
+ import { It as renderDocsSitemapMarkdown, Lt as renderDocsSitemapXml, Nt as buildDocsSitemapManifest, Rt as resolveDocsSitemapConfig } from "./agent-DkAidqtV.mjs";
4
+ import "./standards-discovery-sSEojU80.mjs";
5
+ import "./sidebar-CFHBj29f.mjs";
6
+ import "./openapi-mcp-BIOTLiA7.mjs";
7
+ import "./prompt-utils-B5g-bv7o.mjs";
8
+ import "./api-reference-BYee4zMo.mjs";
9
+ import "./agent-skills-server-BC7md56k.mjs";
10
+ import "./agent-evals-BLNLvXbG.mjs";
10
11
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
11
- import "./authoring-mcp-BmohXL7E.mjs";
12
- import "./cloud-ask-ai-Bq_njfjh.mjs";
13
- import "./code-blocks-BE3sEayp.mjs";
14
- import "./sitemap-server-CClBRp7_.mjs";
12
+ import "./authoring-mcp-CiCUQe3o.mjs";
13
+ import "./cloud-ask-ai-BqKhjpS5.mjs";
14
+ import "./code-blocks-GYdvS3BH.mjs";
15
+ import "./sitemap-server-Lg3YhUx4.mjs";
15
16
  import "./server.mjs";
16
- import { _ as resolveDocsContentDir, a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-DDuQ4Qma.mjs";
17
- import { t as detectFramework } from "./utils-8H7dkC8w.mjs";
17
+ import { _ as resolveDocsContentDir, a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, l as readBooleanProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-BZnKAj_Y.mjs";
18
+ import { t as detectFramework } from "./utils-C7KDrPpA.mjs";
18
19
  import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "node:fs";
19
20
  import path from "node:path";
20
21
  import { execFileSync } from "node:child_process";
@@ -1,5 +1,5 @@
1
- import { Ht as DocsConfig, a as ApiReferenceRenderer, gr as DocsSearchSourcePage, vn as DocsOkfConfig, wn as DocsOpenApiMcpConfig, yr as DocsSitemapConfig } from "./types-Ba9Dd_fe.mjs";
2
- import { s as DocsSitemapManifest } from "./sitemap-BEUEeKbt.mjs";
1
+ import { En as DocsOpenApiMcpConfig, Wt as DocsConfig, a as ApiReferenceRenderer, bn as DocsOkfConfig, vr as DocsSearchSourcePage, xr as DocsSitemapConfig } from "./types-BJFeMXWZ.mjs";
2
+ import { s as DocsSitemapManifest } from "./sitemap-Cl8vrixd.mjs";
3
3
 
4
4
  //#region src/api-reference.d.ts
5
5
  type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "OPTIONS" | "HEAD";
@@ -23,6 +23,7 @@ interface ResolvedApiReferenceConfig {
23
23
  defaultVersion?: string;
24
24
  catalogTargets?: string[];
25
25
  renderer?: ApiReferenceRenderer;
26
+ rendererOptions?: Readonly<Record<string, unknown>>;
26
27
  mcp?: DocsOpenApiMcpConfig;
27
28
  routeRoot: string;
28
29
  exclude: string[];
@@ -1,4 +1,4 @@
1
- import { Rt as resolveDocsSitemapConfig } from "./agent-BErhm-eR.mjs";
1
+ import { Rt as resolveDocsSitemapConfig } from "./agent-DkAidqtV.mjs";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  import path from "node:path";
4
4
 
@@ -1,21 +1,22 @@
1
1
  import "./http-body-DkAPk6D5.mjs";
2
2
  import { _ as hasStructuredPageAgentContract, v as normalizePageAgentFrontmatter } from "./markdown-sections-9Oxr33b-.mjs";
3
- import "./agent-BErhm-eR.mjs";
4
- import "./standards-discovery-BQQ3CAzz.mjs";
3
+ import "./agent-DkAidqtV.mjs";
4
+ import "./standards-discovery-sSEojU80.mjs";
5
5
  import { isDocsAgentSkillName, validateDocsAgentSkillFrontmatter } from "./agent-skills-spec.mjs";
6
- import "./openapi-mcp-gbEUXMkc.mjs";
7
- import "./prompt-utils-Dj8-I3Jw.mjs";
8
- import "./api-reference-DafuHRtc.mjs";
9
- import "./agent-skills-server-CJh3EGWC.mjs";
10
- import "./agent-evals-BHXe_A2m.mjs";
6
+ import "./sidebar-CFHBj29f.mjs";
7
+ import "./openapi-mcp-BIOTLiA7.mjs";
8
+ import "./prompt-utils-B5g-bv7o.mjs";
9
+ import "./api-reference-BYee4zMo.mjs";
10
+ import "./agent-skills-server-BC7md56k.mjs";
11
+ import "./agent-evals-BLNLvXbG.mjs";
11
12
  import { createFilesystemDocsMcpSource } from "./mcp.mjs";
12
- import "./authoring-mcp-BmohXL7E.mjs";
13
- import "./cloud-ask-ai-Bq_njfjh.mjs";
14
- import "./code-blocks-BE3sEayp.mjs";
15
- import "./sitemap-server-CClBRp7_.mjs";
13
+ import "./authoring-mcp-CiCUQe3o.mjs";
14
+ import "./cloud-ask-ai-BqKhjpS5.mjs";
15
+ import "./code-blocks-GYdvS3BH.mjs";
16
+ import "./sitemap-server-Lg3YhUx4.mjs";
16
17
  import "./server.mjs";
17
- import { _ as resolveDocsContentDir, a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-DDuQ4Qma.mjs";
18
- import { n as estimateAgentSkillInstructionTokens, r as resolveDocsAgentSkillsProgressiveDisclosureConfig } from "./agent-skills-progressive-disclosure-1XPV0wCN.mjs";
18
+ import { _ as resolveDocsContentDir, a as loadDocsConfigModule, d as readNavTitle, g as resolveDocsConfigPath, h as readTopLevelStringProperty, p as readStringProperty, t as extractNestedObjectLiteral } from "./config-BZnKAj_Y.mjs";
19
+ import { n as estimateAgentSkillInstructionTokens, r as resolveDocsAgentSkillsProgressiveDisclosureConfig } from "./agent-skills-progressive-disclosure-PjPtTYL-.mjs";
19
20
  import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
20
21
  import path from "node:path";
21
22
  import { createHash } from "node:crypto";
@@ -1,4 +1,4 @@
1
- import { F as DocsAgentA2ASkill, M as DocsAgentA2ASecurityRequirement, N as DocsAgentA2ASecurityScheme, _ as DocsAgentA2ACapabilities, j as DocsAgentA2AProtocolBinding, v as DocsAgentA2AConfig } from "./types-Ba9Dd_fe.mjs";
1
+ import { F as DocsAgentA2ASecurityScheme, L as DocsAgentA2ASkill, N as DocsAgentA2AProtocolBinding, P as DocsAgentA2ASecurityRequirement, b as DocsAgentA2AConfig, y as DocsAgentA2ACapabilities } from "./types-BJFeMXWZ.mjs";
2
2
 
3
3
  //#region src/standards-discovery.d.ts
4
4
  declare const DEFAULT_API_CATALOG_ROUTE = "/.well-known/api-catalog";
@@ -904,7 +904,7 @@ interface DocsAnalyticsConfig {
904
904
  cloud?: boolean;
905
905
  }
906
906
  type DocsTelemetryFramework = "next" | "tanstack-start" | "farmjs" | "sveltekit" | "astro" | "nuxt" | "mcp" | (string & {});
907
- type DocsTelemetryEventType = "project_detected" | "agent_surface_used" | "mcp_request" | "mcp_tool_used" | (string & {});
907
+ type DocsTelemetryEventType = "project_detected" | "page_view" | "agent_surface_used" | "mcp_request" | "mcp_tool_used" | (string & {});
908
908
  type DocsTelemetryAgentSurface = "agent_spec" | "agents" | "skill" | "markdown" | "llms" | "agent_feedback_schema" | "agent_feedback_submit" | "content_changes" | "ask_ai" | "mcp";
909
909
  interface DocsTelemetryConfig {
910
910
  /** Enable Farming Labs maintainer telemetry. Defaults to production-only enabled. */
@@ -2739,6 +2739,19 @@ interface ChangelogConfig {
2739
2739
  actionsComponent?: unknown;
2740
2740
  }
2741
2741
  type ApiReferenceRenderer = "farming-labs" | "fumadocs" | "scalar";
2742
+ /** Renderer selection with renderer-specific options supplied by a framework adapter. */
2743
+ interface ApiReferenceRendererConfig {
2744
+ /** Renderer implementation to use. */
2745
+ name: ApiReferenceRenderer;
2746
+ /**
2747
+ * Options forwarded to the selected renderer.
2748
+ *
2749
+ * Use the framework adapter's typed renderer helper when available. For example,
2750
+ * Next.js exports `fumadocsRenderer()` from `@farming-labs/next/fumadocs-renderer`.
2751
+ */
2752
+ options?: Readonly<Record<string, unknown>>;
2753
+ }
2754
+ type ApiReferenceRendererInput = ApiReferenceRenderer | ApiReferenceRendererConfig;
2742
2755
  interface ApiReferenceVersionConfig {
2743
2756
  /** OpenAPI JSON or YAML source for this stable version identifier. */
2744
2757
  specUrl: string;
@@ -2860,10 +2873,14 @@ interface ApiReferenceConfig {
2860
2873
  * - `"farming-labs"` uses the framework-neutral renderer backed by the normalized operation model
2861
2874
  * - `"fumadocs"` uses the Fumadocs OpenAPI renderer bundled by `@farming-labs/next`
2862
2875
  * - `"scalar"` uses the Scalar renderer bundled by `@farming-labs/docs` and the adapters
2876
+ * - `{ name, options }` selects a renderer and forwards adapter-specific options
2877
+ *
2878
+ * Next.js provides `fumadocsRenderer()` from `@farming-labs/next/fumadocs-renderer` for typed
2879
+ * Fumadocs playground and runtime options.
2863
2880
  *
2864
2881
  * @default "farming-labs"
2865
2882
  */
2866
- renderer?: ApiReferenceRenderer;
2883
+ renderer?: ApiReferenceRendererInput;
2867
2884
  /**
2868
2885
  * Explicitly expose selected OpenAPI operations as MCP tools. This is deny-by-default:
2869
2886
  * set `operations`, or mark an operation with `x-farming-labs-mcp.enabled: true`.
@@ -4175,4 +4192,4 @@ interface DocsConfig {
4175
4192
  og?: OGConfig;
4176
4193
  }
4177
4194
  //#endregion
4178
- export { DocsAgentGoldenExampleVerification as $, DocsSearchFacetValue as $n, PageAgentVerification as $r, DocsI18nConfig as $t, DocsAgentA2AOpenIdConnectSecurityScheme as A, DocsRetrievalSourceProvenance as An, GithubConfig as Ar, DocsCloudConfig as At, DocsAgentEvaluationAnswerProvider as B, DocsSearchAdapter as Bn, OpenDocsProviderConfig as Br, DocsCodeBlocksValidationMode as Bt, DocsAgentA2AOAuth2SecurityScheme as C, DocsOkfTrustTier as Cn, DocsTelemetryEventInput as Cr, DocsAskAIActionType as Ct, DocsAgentA2AOAuthFlows as D, DocsPageAccessPolicy as Dn, DocsTheme as Dr, DocsAskAIFeedbackValue as Dt, DocsAgentA2AOAuthDeviceCodeFlow as E, DocsOpenApiMcpHeaders as En, DocsTelemetryFramework as Er, DocsAskAIFeedbackMessage as Et, DocsAgentA2ASkill as F, DocsReviewRulesConfig as Fn, LlmsTxtSectionConfig as Fr, DocsCodeBlocksPlannerConfig as Ft, DocsAgentEvaluationSurface as G, DocsSearchAmbiguityDecisionStatus as Gn, PageActionConnectMcpConfig as Gr, DocsContentChangeSnapshotLoader as Gt, DocsAgentEvaluationAnswerResult as H, DocsSearchAdapterFactory as Hn, OpenDocsTarget as Hr, DocsConfig as Ht, DocsAgentCompactConfig as I, DocsReviewScoreConfig as In, McpDocsSearchConfig as Ir, DocsCodeBlocksPlannerProvider as It, DocsAgentFeedbackContext as J, DocsSearchConfig as Jn, PageActionsConfig as Jr, DocsContentChangesResponse as Jt, DocsAgentEvaluationTaskInput as K, DocsSearchAmbiguityResolution as Kn, PageActionInstallSkillsConfig as Kr, DocsContentChangeSnapshotSaver as Kt, DocsAgentConfig as L, DocsReviewSeverity as Ln, OGConfig as Lr, DocsCodeBlocksRunnerConfig as Lt, DocsAgentA2ASecurityRequirement as M, DocsReviewCiConfig as Mn, LlmsTxtConfig as Mr, DocsCloudPreviewConfig as Mt, DocsAgentA2ASecurityScheme as N, DocsReviewCiMode as Nn, LlmsTxtMaxCharsConfig as Nr, DocsCloudPublishConfig as Nt, DocsAgentA2AOAuthImplicitFlow as O, DocsPaginatedSearchResponse as On, FeedbackConfig as Or, DocsAskAIMcpConfig as Ot, DocsAgentA2ASecurityScopeList as P, DocsReviewConfig as Pn, LlmsTxtMaxCharsMode as Pr, DocsCodeBlocksConfig as Pt, DocsAgentGoldenCoverageApplicability as Q, DocsSearchFacet as Qn, PageAgentFrontmatter as Qr, DocsFeedbackValue as Qt, DocsAgentContentChangesConfig as R, DocsRobotsConfig as Rn, OpenDocsConfig as Rr, DocsCodeBlocksRunnerProvider as Rt, DocsAgentA2AMutualTlsSecurityScheme as S, DocsOkfTrustMetadataInput as Sn, DocsTelemetryEvent as Sr, DocsAskAIActionData as St, DocsAgentA2AOAuthClientCredentialsFlow as T, DocsOpenApiMcpCredentialContext as Tn, DocsTelemetryFeatures as Tr, DocsAskAIFeedbackData as Tt, DocsAgentEvaluationAnswerRunner as U, DocsSearchAdapterPage as Un, OpenGraphImage as Ur, DocsContentChangeDocument as Ut, DocsAgentEvaluationAnswerRequest as V, DocsSearchAdapterContext as Vn, OpenDocsProviderId as Vr, DocsCodeBlocksValidationPolicy as Vt, DocsAgentEvaluationSourceReference as W, DocsSearchAmbiguityDecision as Wn, OrderingItem as Wr, DocsContentChangeSnapshotContext as Wt, DocsAgentGoldenAnswerExpectation as X, DocsSearchEmbeddingsConfig as Xn, PageAgentCommand as Xr, DocsContentSnapshotDocument as Xt, DocsAgentFeedbackData as Y, DocsSearchDocument as Yn, PageAgentAppliesTo as Yr, DocsContentSnapshot as Yt, DocsAgentGoldenAuthenticatedContentExpectation as Z, DocsSearchExplanation as Zn, PageAgentFailureMode as Zr, DocsFeedbackData as Zt, DocsAgentA2ACapabilities as _, TypographyConfig as _i, DocsOkfActorTimestamp as _n, DocsSearchWarning as _r, DocsAnalyticsEvent as _t, ApiReferenceRenderer as a, ReadingTimeFormat as ai, DocsMcpConfig as an, DocsSearchFilters as ar, DocsAgentGoldenSafetyExpectation as at, DocsAgentA2AHttpAuthSecurityScheme as b, DocsOkfStatus as bn, DocsTelemetryAgentSurface as br, DocsAnalyticsInput as bt, ChangelogConfig as c, SidebarConfig as ci, DocsMcpPromptsConfig as cn, DocsSearchQuery as cr, DocsAgentGoldenTaskFilters as ct, CopyMarkdownConfig as d, SidebarNode as di, DocsMcpToolsConfig as dn, DocsSearchRankingStrategy as dr, DocsAgentSkillsInput as dt, PageFrontmatter as ei, DocsMcpAllowedOrigins as en, DocsSearchFacetsResponse as er, DocsAgentGoldenExpectedExample as et, CopyMarkdownFormat as f, SidebarPageNode as fi, DocsMetadata as fn, DocsSearchRequest as fr, DocsAgentSkillsProgressiveDisclosureConfig as ft, DocsAgentA2AApiKeySecurityScheme as g, TypesenseDocsSearchConfig as gi, DocsObservabilityEventInput as gn, DocsSearchSourcePage as gr, DocsAnalyticsConfig as gt, DocsAccessPrincipal as h, ThemeToggleConfig as hi, DocsObservabilityEvent as hn, DocsSearchResultType as hr, DocsAgentTraceStatus as ht, ApiReferenceConfig as i, ReadingTimeConfig as ii, DocsMcpAuthenticateResult as in, DocsSearchFilterInput as ir, DocsAgentGoldenQueryVariantKind as it, DocsAgentA2AProtocolBinding as j, DocsRetrievalSourceScope as jn, LastUpdatedConfig as jr, DocsCloudFeatureConfig as jt, DocsAgentA2AOAuthPasswordFlow as k, DocsRelatedItem as kn, FontStyle as kr, DocsCloudApiKeyConfig as kt, ChangelogFrontmatter as l, SidebarFolderIndexBehavior as li, DocsMcpProtectedResourceConfig as ln, DocsSearchRankingReason as lr, DocsAgentSkillsCompatibilityPolicy as lt, DocsAccessClaimValue as m, SimpleDocsSearchConfig as mi, DocsObservabilityConfig as mn, DocsSearchResult as mr, DocsAgentTraceEventType as mt, AgentFeedbackConfig as n, PageSidebarFrontmatter as ni, DocsMcpAuthenticate as nn, DocsSearchFilterDecisionOutcome as nr, DocsAgentGoldenPromptInjectionExpectation as nt, ApiReferenceVersionConfig as o, ResolvedDocsRelatedLink as oi, DocsMcpCorsConfig as on, DocsSearchMatchField as or, DocsAgentGoldenTask as ot, CustomDocsSearchConfig as p, SidebarTree as pi, DocsNav as pn, DocsSearchResponse as pr, DocsAgentTraceEventInput as pt, DocsAgentEvaluationsConfig as q, DocsSearchChunkingConfig as qn, PageActionMcpProvider as qr, DocsContentChangedDocument as qt, AlgoliaDocsSearchConfig as r, PageTwitter as ri, DocsMcpAuthenticateContext as rn, DocsSearchFilterField as rr, DocsAgentGoldenQueryVariant as rt, BreadcrumbConfig as s, SidebarComponentProps as si, DocsMcpOriginContext as sn, DocsSearchMatchedTerm as sr, DocsAgentGoldenTaskExpectation as st, AIConfig as t, PageOpenGraph as ti, DocsMcpAuthPrincipal as tn, DocsSearchFilterDecision as tr, DocsAgentGoldenFreshnessExpectation as tt, CodeBlockCopyData as u, SidebarFolderNode as ui, DocsMcpSecurityConfig as un, DocsSearchRankingReasonCode as ur, DocsAgentSkillsConfig as ut, DocsAgentA2AConfig as v, UIConfig as vi, DocsOkfConfig as vn, DocsSearchWarningCode as vr, DocsAnalyticsEventInput as vt, DocsAgentA2AOAuthAuthorizationCodeFlow as w, DocsOpenApiMcpConfig as wn, DocsTelemetryEventType as wr, DocsAskAIFeedbackConfig as wt, DocsAgentA2AInterfaceConfig as x, DocsOkfTrustMetadata as xn, DocsTelemetryConfig as xr, DocsAnalyticsSource as xt, DocsAgentA2AExtension as y, DocsOkfSource as yn, DocsSitemapConfig as yr, DocsAnalyticsEventType as yt, DocsAgentEvaluationAnswerInput as z, DocsRobotsRule as zn, OpenDocsProvider as zr, DocsCodeBlocksValidateConfig as zt };
4195
+ export { DocsAgentGoldenAuthenticatedContentExpectation as $, DocsSearchExplanation as $n, PageAgentFailureMode as $r, DocsFeedbackData as $t, DocsAgentA2AOAuthImplicitFlow as A, DocsPaginatedSearchResponse as An, FeedbackConfig as Ar, DocsAskAIMcpConfig as At, DocsAgentContentChangesConfig as B, DocsRobotsConfig as Bn, OpenDocsConfig as Br, DocsCodeBlocksRunnerProvider as Bt, DocsAgentA2AInterfaceConfig as C, DocsOkfTrustMetadata as Cn, DocsTelemetryConfig as Cr, DocsAnalyticsSource as Ct, DocsAgentA2AOAuthClientCredentialsFlow as D, DocsOpenApiMcpCredentialContext as Dn, DocsTelemetryFeatures as Dr, DocsAskAIFeedbackData as Dt, DocsAgentA2AOAuthAuthorizationCodeFlow as E, DocsOpenApiMcpConfig as En, DocsTelemetryEventType as Er, DocsAskAIFeedbackConfig as Et, DocsAgentA2ASecurityScheme as F, DocsReviewCiMode as Fn, LlmsTxtMaxCharsConfig as Fr, DocsCloudPublishConfig as Ft, DocsAgentEvaluationAnswerRunner as G, DocsSearchAdapterPage as Gn, OpenGraphImage as Gr, DocsContentChangeDocument as Gt, DocsAgentEvaluationAnswerProvider as H, DocsSearchAdapter as Hn, OpenDocsProviderConfig as Hr, DocsCodeBlocksValidationMode as Ht, DocsAgentA2ASecurityScopeList as I, DocsReviewConfig as In, LlmsTxtMaxCharsMode as Ir, DocsCodeBlocksConfig as It, DocsAgentEvaluationTaskInput as J, DocsSearchAmbiguityResolution as Jn, PageActionInstallSkillsConfig as Jr, DocsContentChangeSnapshotSaver as Jt, DocsAgentEvaluationSourceReference as K, DocsSearchAmbiguityDecision as Kn, OrderingItem as Kr, DocsContentChangeSnapshotContext as Kt, DocsAgentA2ASkill as L, DocsReviewRulesConfig as Ln, LlmsTxtSectionConfig as Lr, DocsCodeBlocksPlannerConfig as Lt, DocsAgentA2AOpenIdConnectSecurityScheme as M, DocsRetrievalSourceProvenance as Mn, GithubConfig as Mr, DocsCloudConfig as Mt, DocsAgentA2AProtocolBinding as N, DocsRetrievalSourceScope as Nn, LastUpdatedConfig as Nr, DocsCloudFeatureConfig as Nt, DocsAgentA2AOAuthDeviceCodeFlow as O, DocsOpenApiMcpHeaders as On, DocsTelemetryFramework as Or, DocsAskAIFeedbackMessage as Ot, DocsAgentA2ASecurityRequirement as P, DocsReviewCiConfig as Pn, LlmsTxtConfig as Pr, DocsCloudPreviewConfig as Pt, DocsAgentGoldenAnswerExpectation as Q, DocsSearchEmbeddingsConfig as Qn, PageAgentCommand as Qr, DocsContentSnapshotDocument as Qt, DocsAgentCompactConfig as R, DocsReviewScoreConfig as Rn, McpDocsSearchConfig as Rr, DocsCodeBlocksPlannerProvider as Rt, DocsAgentA2AHttpAuthSecurityScheme as S, DocsOkfStatus as Sn, DocsTelemetryAgentSurface as Sr, DocsAnalyticsInput as St, DocsAgentA2AOAuth2SecurityScheme as T, DocsOkfTrustTier as Tn, DocsTelemetryEventInput as Tr, DocsAskAIActionType as Tt, DocsAgentEvaluationAnswerRequest as U, DocsSearchAdapterContext as Un, OpenDocsProviderId as Ur, DocsCodeBlocksValidationPolicy as Ut, DocsAgentEvaluationAnswerInput as V, DocsRobotsRule as Vn, OpenDocsProvider as Vr, DocsCodeBlocksValidateConfig as Vt, DocsAgentEvaluationAnswerResult as W, DocsSearchAdapterFactory as Wn, OpenDocsTarget as Wr, DocsConfig as Wt, DocsAgentFeedbackContext as X, DocsSearchConfig as Xn, PageActionsConfig as Xr, DocsContentChangesResponse as Xt, DocsAgentEvaluationsConfig as Y, DocsSearchChunkingConfig as Yn, PageActionMcpProvider as Yr, DocsContentChangedDocument as Yt, DocsAgentFeedbackData as Z, DocsSearchDocument as Zn, PageAgentAppliesTo as Zr, DocsContentSnapshot as Zt, DocsAccessPrincipal as _, ThemeToggleConfig as _i, DocsObservabilityEvent as _n, DocsSearchResultType as _r, DocsAgentTraceStatus as _t, ApiReferenceRenderer as a, PageTwitter as ai, DocsMcpAuthenticateContext as an, DocsSearchFilterField as ar, DocsAgentGoldenQueryVariant as at, DocsAgentA2AConfig as b, UIConfig as bi, DocsOkfConfig as bn, DocsSearchWarningCode as br, DocsAnalyticsEventInput as bt, ApiReferenceVersionConfig as c, ResolvedDocsRelatedLink as ci, DocsMcpCorsConfig as cn, DocsSearchMatchField as cr, DocsAgentGoldenTask as ct, ChangelogFrontmatter as d, SidebarFolderIndexBehavior as di, DocsMcpProtectedResourceConfig as dn, DocsSearchRankingReason as dr, DocsAgentSkillsCompatibilityPolicy as dt, PageAgentFrontmatter as ei, DocsFeedbackValue as en, DocsSearchFacet as er, DocsAgentGoldenCoverageApplicability as et, CodeBlockCopyData as f, SidebarFolderNode as fi, DocsMcpSecurityConfig as fn, DocsSearchRankingReasonCode as fr, DocsAgentSkillsConfig as ft, DocsAccessClaimValue as g, SimpleDocsSearchConfig as gi, DocsObservabilityConfig as gn, DocsSearchResult as gr, DocsAgentTraceEventType as gt, CustomDocsSearchConfig as h, SidebarTree as hi, DocsNav as hn, DocsSearchResponse as hr, DocsAgentTraceEventInput as ht, ApiReferenceConfig as i, PageSidebarFrontmatter as ii, DocsMcpAuthenticate as in, DocsSearchFilterDecisionOutcome as ir, DocsAgentGoldenPromptInjectionExpectation as it, DocsAgentA2AOAuthPasswordFlow as j, DocsRelatedItem as jn, FontStyle as jr, DocsCloudApiKeyConfig as jt, DocsAgentA2AOAuthFlows as k, DocsPageAccessPolicy as kn, DocsTheme as kr, DocsAskAIFeedbackValue as kt, BreadcrumbConfig as l, SidebarComponentProps as li, DocsMcpOriginContext as ln, DocsSearchMatchedTerm as lr, DocsAgentGoldenTaskExpectation as lt, CopyMarkdownFormat as m, SidebarPageNode as mi, DocsMetadata as mn, DocsSearchRequest as mr, DocsAgentSkillsProgressiveDisclosureConfig as mt, AgentFeedbackConfig as n, PageFrontmatter as ni, DocsMcpAllowedOrigins as nn, DocsSearchFacetsResponse as nr, DocsAgentGoldenExpectedExample as nt, ApiReferenceRendererConfig as o, ReadingTimeConfig as oi, DocsMcpAuthenticateResult as on, DocsSearchFilterInput as or, DocsAgentGoldenQueryVariantKind as ot, CopyMarkdownConfig as p, SidebarNode as pi, DocsMcpToolsConfig as pn, DocsSearchRankingStrategy as pr, DocsAgentSkillsInput as pt, DocsAgentEvaluationSurface as q, DocsSearchAmbiguityDecisionStatus as qn, PageActionConnectMcpConfig as qr, DocsContentChangeSnapshotLoader as qt, AlgoliaDocsSearchConfig as r, PageOpenGraph as ri, DocsMcpAuthPrincipal as rn, DocsSearchFilterDecision as rr, DocsAgentGoldenFreshnessExpectation as rt, ApiReferenceRendererInput as s, ReadingTimeFormat as si, DocsMcpConfig as sn, DocsSearchFilters as sr, DocsAgentGoldenSafetyExpectation as st, AIConfig as t, PageAgentVerification as ti, DocsI18nConfig as tn, DocsSearchFacetValue as tr, DocsAgentGoldenExampleVerification as tt, ChangelogConfig as u, SidebarConfig as ui, DocsMcpPromptsConfig as un, DocsSearchQuery as ur, DocsAgentGoldenTaskFilters as ut, DocsAgentA2AApiKeySecurityScheme as v, TypesenseDocsSearchConfig as vi, DocsObservabilityEventInput as vn, DocsSearchSourcePage as vr, DocsAnalyticsConfig as vt, DocsAgentA2AMutualTlsSecurityScheme as w, DocsOkfTrustMetadataInput as wn, DocsTelemetryEvent as wr, DocsAskAIActionData as wt, DocsAgentA2AExtension as x, DocsOkfSource as xn, DocsSitemapConfig as xr, DocsAnalyticsEventType as xt, DocsAgentA2ACapabilities as y, TypographyConfig as yi, DocsOkfActorTimestamp as yn, DocsSearchWarning as yr, DocsAnalyticsEvent as yt, DocsAgentConfig as z, DocsReviewSeverity as zn, OGConfig as zr, DocsCodeBlocksRunnerConfig as zt };
@@ -1,5 +1,5 @@
1
- import { c as fileExists, o as exec } from "./utils-8H7dkC8w.mjs";
2
- import { a as getPackagesForFramework, c as resolveDocsPackageManager, i as frameworkFromPreset, l as validateUpgradeVersion, n as PRESETS, o as presetFromFramework, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework, t as PACKAGES_BY_FRAMEWORK } from "./package-version-CiVXOONu.mjs";
1
+ import { c as fileExists, o as exec } from "./utils-C7KDrPpA.mjs";
2
+ import { a as getPackagesForFramework, c as resolveDocsPackageManager, i as frameworkFromPreset, l as validateUpgradeVersion, n as PRESETS, o as presetFromFramework, r as buildDocsPackageInstallCommand, s as resolveDocsPackageFramework, t as PACKAGES_BY_FRAMEWORK } from "./package-version-HJhYeq4M.mjs";
3
3
  import path from "node:path";
4
4
  import pc from "picocolors";
5
5
  import * as p from "@clack/prompts";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@farming-labs/docs",
3
- "version": "0.2.118",
3
+ "version": "0.2.120",
4
4
  "description": "Modern, flexible MDX-based docs framework — core types, config, and CLI",
5
5
  "keywords": [
6
6
  "docs",
@@ -106,7 +106,7 @@
106
106
  }
107
107
  },
108
108
  "devDependencies": {
109
- "@modelcontextprotocol/client": "2.0.0",
109
+ "@modelcontextprotocol/client": "2.2.0",
110
110
  "@types/node": "^22.10.0",
111
111
  "@types/react": "^19.2.2",
112
112
  "ajv": "^8.18.0",
@@ -1,8 +0,0 @@
1
- //#region src/audience-exposure.ts
2
- /** Resolve whether content with an optional audience restriction is visible. */
3
- function resolveDocsAudienceExposure(only, audience) {
4
- return only !== "human" && only !== "agent" || only === audience;
5
- }
6
-
7
- //#endregion
8
- export { resolveDocsAudienceExposure as t };
@@ -1,15 +0,0 @@
1
- import { ci as SidebarConfig, li as SidebarFolderIndexBehavior } from "./types-Ba9Dd_fe.mjs";
2
-
3
- //#region src/sidebar.d.ts
4
- interface SidebarFolderIndexBehaviorOptions {
5
- sidebar: boolean | SidebarConfig | undefined;
6
- defaultBehavior?: SidebarFolderIndexBehavior;
7
- }
8
- declare function resolvePageSidebarFolderIndexBehavior(sidebar: unknown): SidebarFolderIndexBehavior | undefined;
9
- declare function resolveSidebarFolderIndexBehavior(sidebar: boolean | SidebarConfig | undefined, defaultBehavior?: SidebarFolderIndexBehavior): SidebarFolderIndexBehavior;
10
- declare function resolveSidebarFolderIndexBehaviorForPath(sidebar: boolean | SidebarConfig | undefined, folderPath: string | undefined, defaultBehavior?: SidebarFolderIndexBehavior): SidebarFolderIndexBehavior;
11
- declare function applySidebarFolderIndexBehavior<TTree extends {
12
- children: unknown[];
13
- }>(tree: TTree, behaviorOrOptions: SidebarFolderIndexBehavior | SidebarFolderIndexBehaviorOptions): TTree;
14
- //#endregion
15
- export { resolveSidebarFolderIndexBehaviorForPath as i, resolvePageSidebarFolderIndexBehavior as n, resolveSidebarFolderIndexBehavior as r, applySidebarFolderIndexBehavior as t };
@@ -1,73 +0,0 @@
1
- //#region src/sidebar.ts
2
- function resolvePageSidebarFolderIndexBehavior(sidebar) {
3
- if (!sidebar || typeof sidebar !== "object") return void 0;
4
- const value = sidebar.folderIndexBehavior;
5
- return value === "link" || value === "toggle" || value === "hidden" ? value : void 0;
6
- }
7
- function normalizeSidebarFolderBehaviorPath(path) {
8
- if (!path) return void 0;
9
- let value = path.trim();
10
- if (!value) return void 0;
11
- if (/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(value)) try {
12
- value = new URL(value).pathname;
13
- } catch {
14
- return;
15
- }
16
- else value = value.split("#", 1)[0]?.split("?", 1)[0] ?? value;
17
- if (!value.startsWith("/")) value = `/${value}`;
18
- return value.replace(/\/$/, "") || "/";
19
- }
20
- function resolveSidebarFolderIndexBehavior(sidebar, defaultBehavior = "link") {
21
- if (sidebar === void 0 || sidebar === true || sidebar === false) return defaultBehavior;
22
- if (sidebar.folderIndexBehavior === "toggle") return "toggle";
23
- if (sidebar.folderIndexBehavior === "hidden") return "hidden";
24
- if (sidebar.folderIndexBehavior === "link") return "link";
25
- return defaultBehavior;
26
- }
27
- function resolveSidebarFolderIndexBehaviorForPath(sidebar, folderPath, defaultBehavior = "link") {
28
- const fallback = resolveSidebarFolderIndexBehavior(sidebar, defaultBehavior);
29
- if (!sidebar || typeof sidebar !== "object") return fallback;
30
- const normalizedPath = normalizeSidebarFolderBehaviorPath(folderPath);
31
- if (!normalizedPath) return fallback;
32
- for (const [rawPath, override] of Object.entries(sidebar.folderIndexBehaviorOverrides ?? {})) if (normalizeSidebarFolderBehaviorPath(rawPath) === normalizedPath) return override === "link" || override === "toggle" || override === "hidden" ? override : fallback;
33
- return fallback;
34
- }
35
- function applySidebarFolderIndexBehavior(tree, behaviorOrOptions) {
36
- const resolveBehavior = typeof behaviorOrOptions === "string" ? () => behaviorOrOptions : (folderPath) => resolveSidebarFolderIndexBehaviorForPath(behaviorOrOptions.sidebar, folderPath, behaviorOrOptions.defaultBehavior);
37
- function mapNode(node) {
38
- if (!node || typeof node !== "object") return node;
39
- const candidate = node;
40
- if (candidate.type !== "folder" || !Array.isArray(candidate.children)) return node;
41
- const children = candidate.children.map(mapNode);
42
- const index = candidate.index ? mapNode(candidate.index) : void 0;
43
- const folderPath = (typeof candidate.url === "string" ? candidate.url : void 0) || (candidate.index && typeof candidate.index === "object" && "url" in candidate.index && typeof candidate.index.url === "string" ? candidate.index.url ?? void 0 : void 0);
44
- const behavior = (candidate.folderIndexBehavior === "link" || candidate.folderIndexBehavior === "toggle" || candidate.folderIndexBehavior === "hidden" ? candidate.folderIndexBehavior : void 0) ?? resolveBehavior(folderPath);
45
- if (behavior === "link") return {
46
- ...candidate,
47
- folderIndexBehavior: void 0,
48
- index,
49
- children
50
- };
51
- if (behavior === "hidden") return {
52
- ...candidate,
53
- folderIndexBehavior: void 0,
54
- index: void 0,
55
- url: void 0,
56
- children
57
- };
58
- return {
59
- ...candidate,
60
- folderIndexBehavior: void 0,
61
- index: void 0,
62
- url: void 0,
63
- children: index ? [index, ...children] : children
64
- };
65
- }
66
- return {
67
- ...tree,
68
- children: tree.children.map(mapNode)
69
- };
70
- }
71
-
72
- //#endregion
73
- export { resolveSidebarFolderIndexBehaviorForPath as i, resolvePageSidebarFolderIndexBehavior as n, resolveSidebarFolderIndexBehavior as r, applySidebarFolderIndexBehavior as t };
File without changes
File without changes