blume 1.7.0 → 1.7.1
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/CHANGELOG.md +10 -0
- package/dist/cli/{chunk-s102bysw.js → chunk-12dzsn9b.js} +140 -23
- package/dist/cli/{chunk-s102bysw.js.map → chunk-12dzsn9b.js.map} +6 -5
- package/dist/cli/{chunk-agy5rzxy.js → chunk-4ae4f395.js} +78 -48
- package/dist/cli/chunk-4ae4f395.js.map +15 -0
- package/dist/cli/{chunk-tnskyrej.js → chunk-52cwcqvp.js} +4 -4
- package/dist/cli/{chunk-drke6t0h.js → chunk-5gfw0q4j.js} +9 -9
- package/dist/cli/{chunk-ckh3a410.js → chunk-6mq7qkve.js} +3 -3
- package/dist/cli/{chunk-0qhq7b8q.js → chunk-82atea4k.js} +5 -5
- package/dist/cli/{chunk-ye9zdkgv.js → chunk-8p3xe5jv.js} +2 -2
- package/dist/cli/{chunk-kwx90v78.js → chunk-90pdhkpm.js} +11 -11
- package/dist/cli/{chunk-jk1zwka1.js → chunk-aqjvpd03.js} +4 -4
- package/dist/cli/{chunk-cfw6x4rm.js → chunk-h9ekmtz7.js} +5 -5
- package/dist/cli/{chunk-jxkxjsc1.js → chunk-he2zfgah.js} +10 -10
- package/dist/cli/{chunk-zr3ygrq3.js → chunk-j5f2wrj5.js} +2 -2
- package/dist/cli/{chunk-qq9nm3qd.js → chunk-k0v1f8bb.js} +3 -3
- package/dist/cli/{chunk-ynacq3ev.js → chunk-ka5k7cz9.js} +6 -19
- package/dist/cli/{chunk-ynacq3ev.js.map → chunk-ka5k7cz9.js.map} +3 -4
- package/dist/cli/{chunk-v5mm027v.js → chunk-kmx2mydj.js} +2 -2
- package/dist/cli/{chunk-9qs6acpw.js → chunk-mfm4sjwx.js} +11 -11
- package/dist/cli/{chunk-y3g15rvv.js → chunk-np8dmfb0.js} +6 -6
- package/dist/cli/{chunk-18tjv4f7.js → chunk-pdwg3q9g.js} +11 -11
- package/dist/cli/{chunk-v2ymm99c.js → chunk-q56730e0.js} +11 -11
- package/dist/cli/{chunk-j6pxe0dt.js → chunk-qvvpnwaz.js} +2 -2
- package/dist/cli/{chunk-xv91q4nm.js → chunk-r99hynxh.js} +3 -2
- package/dist/cli/{chunk-xv91q4nm.js.map → chunk-r99hynxh.js.map} +3 -3
- package/dist/cli/{chunk-s5dsk8bj.js → chunk-vyqj481z.js} +8 -7
- package/dist/cli/{chunk-s5dsk8bj.js.map → chunk-vyqj481z.js.map} +3 -3
- package/dist/cli/{chunk-5d4q7121.js → chunk-x1wvw7a8.js} +21 -11
- package/dist/cli/{chunk-5d4q7121.js.map → chunk-x1wvw7a8.js.map} +5 -5
- package/dist/cli/{chunk-n0nyat6g.js → chunk-ywn7t0pb.js} +2 -2
- package/dist/cli/index.js +13 -13
- package/dist/types/components/layout/nav-utils.d.ts +15 -2
- package/dist/types/core/config-input.d.ts +7 -0
- package/dist/types/core/schema.d.ts +2 -0
- package/docs/08-faq.mdx +21 -0
- package/docs/configuration/ask-ai.mdx +16 -0
- package/docs/content/sources.mdx +2 -2
- package/package.json +1 -1
- package/src/ai/ask.ts +31 -4
- package/src/astro/generate.ts +1 -0
- package/src/astro/templates.ts +104 -60
- package/src/components/content/YouTube.astro +1 -1
- package/src/components/layout/Header.astro +1 -1
- package/src/components/layout/Search.astro +11 -0
- package/src/components/layout/nav-utils.ts +30 -12
- package/src/core/config-input.ts +7 -0
- package/src/core/schema.ts +5 -0
- package/src/core/sources/assets.ts +162 -26
- package/src/core/sources/notion.ts +60 -1
- package/src/registry/eject.ts +1 -0
- package/src/theme/entry.ts +9 -0
- package/dist/cli/chunk-agy5rzxy.js.map +0 -15
- /package/dist/cli/{chunk-tnskyrej.js.map → chunk-52cwcqvp.js.map} +0 -0
- /package/dist/cli/{chunk-drke6t0h.js.map → chunk-5gfw0q4j.js.map} +0 -0
- /package/dist/cli/{chunk-ckh3a410.js.map → chunk-6mq7qkve.js.map} +0 -0
- /package/dist/cli/{chunk-0qhq7b8q.js.map → chunk-82atea4k.js.map} +0 -0
- /package/dist/cli/{chunk-ye9zdkgv.js.map → chunk-8p3xe5jv.js.map} +0 -0
- /package/dist/cli/{chunk-kwx90v78.js.map → chunk-90pdhkpm.js.map} +0 -0
- /package/dist/cli/{chunk-jk1zwka1.js.map → chunk-aqjvpd03.js.map} +0 -0
- /package/dist/cli/{chunk-cfw6x4rm.js.map → chunk-h9ekmtz7.js.map} +0 -0
- /package/dist/cli/{chunk-jxkxjsc1.js.map → chunk-he2zfgah.js.map} +0 -0
- /package/dist/cli/{chunk-zr3ygrq3.js.map → chunk-j5f2wrj5.js.map} +0 -0
- /package/dist/cli/{chunk-qq9nm3qd.js.map → chunk-k0v1f8bb.js.map} +0 -0
- /package/dist/cli/{chunk-v5mm027v.js.map → chunk-kmx2mydj.js.map} +0 -0
- /package/dist/cli/{chunk-9qs6acpw.js.map → chunk-mfm4sjwx.js.map} +0 -0
- /package/dist/cli/{chunk-y3g15rvv.js.map → chunk-np8dmfb0.js.map} +0 -0
- /package/dist/cli/{chunk-18tjv4f7.js.map → chunk-pdwg3q9g.js.map} +0 -0
- /package/dist/cli/{chunk-v2ymm99c.js.map → chunk-q56730e0.js.map} +0 -0
- /package/dist/cli/{chunk-j6pxe0dt.js.map → chunk-qvvpnwaz.js.map} +0 -0
- /package/dist/cli/{chunk-n0nyat6g.js.map → chunk-ywn7t0pb.js.map} +0 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"import { existsSync, readFileSync } from \"node:fs\";\n\nimport { z } from \"zod\";\n\nimport type { BlumeConfig } from \"./config-input.ts\";\nimport { applyDeploymentEnv } from \"./deployment-env.ts\";\nimport { BlumeError, diagnosticsFromZod } from \"./diagnostics.ts\";\nimport { createModuleLoader } from \"./load-module.ts\";\nimport { findConfigFile } from \"./project.ts\";\nimport { blumeConfigSchema } from \"./schema.ts\";\nimport type { ResolvedConfig } from \"./schema.ts\";\nimport type { Diagnostic } from \"./types.ts\";\n\n/**\n * Define a Blume site's configuration with full type-checking and editor\n * autocomplete. Place the call in `blume.config.ts` at your project root and\n * `export default` the result:\n *\n * ```ts\n * import { defineConfig } from \"blume\";\n *\n * export default defineConfig({\n * title: \"Acme Docs\",\n * description: \"Everything you need to build with Acme.\",\n * });\n * ```\n *\n * Every field is optional — an empty `defineConfig({})` produces a working\n * site from the Markdown/MDX in your `docs/` directory. Configure only what you\n * want to change; sensible defaults fill in the rest.\n *\n * This is an identity helper: it returns its input unchanged and exists purely\n * for type inference (and as a stable home for future plugin hooks). The object\n * is validated against the Blume schema when the CLI loads it.\n *\n * ## Top-level fields\n *\n * **Site identity**\n * - `title` — site title, shown in the header, `<title>`, and OG images.\n * Defaults to `\"Documentation\"`.\n * - `description` — default meta description, used where a page sets none.\n * - `logo` — brand mark. A string is an image path/URL; the object form splits\n * an `image` mark from wordmark `text` and can override the brand `href`.\n * - `banner` — site-wide announcement bar; a string, or `{ content, link,\n * dismissible }`.\n *\n * **Content & navigation**\n * - `content` — where content lives (`root`, defaults to `docs`) and pluggable\n * `sources` (filesystem, remote MDX, GitHub Releases, Sanity, Notion, or a\n * custom `ContentSource`). Omit `sources` and the top-level `root` becomes one\n * implicit filesystem source.\n * - `navigation` — sidebar, header `tabs`, `selectors` (version/language/product\n * switchers), pinned `featured` links, header `actions` and the one `cta`,\n * and the `repo` link (a toggle, or a URL). Omit `sidebar` to generate it\n * from the content tree.\n * - `redirects` — `{ from, to, status }` rules (301 by default).\n * - `github` — `{ owner, repo, branch, dir, host, api }`, powering \"Edit this\n * page\" links and the header repo link; `host` points them at a GitHub\n * Enterprise instance, `api` overrides the REST base derived from it.\n *\n * **Appearance**\n * - `theme` — `accent` color, `fonts` (curated slugs, any provider family, or\n * local font files), `radius`,\n * `mode` (`system`/`light`/`dark`), and `background`.\n * - `markdown` — `code` (language icons, inline highlighting, line wrap),\n * `headingAnchors`, `imageZoom`, and opt-in KaTeX `math`.\n * - `toc` — on-page table of contents; `true`/`false` or a heading-level range.\n * - `lastModified` — \"Last updated\" stamps from `git` history or frontmatter.\n * - `feedback` — the per-page \"Was this helpful?\" widget (on by default).\n * - `export` — reader-facing PDF/EPUB export actions (off by default).\n *\n * **Reference docs**\n * - `openapi` — native OpenAPI reference: one real page per operation, woven\n * into the sidebar and search. Point `sources`/`spec` at your spec.\n * - `asyncapi` — native AsyncAPI reference with the same treatment; 2.x specs\n * are normalized to 3.x automatically.\n *\n * **Search & AI**\n * - `search` — search backend `provider` (`orama` by default; `pagefind`,\n * `algolia`, `typesense`, `orama-cloud`, `mixedbread`, or `none`) plus its\n * credential block.\n * - `ai` — `ask` (the Ask AI chat endpoint and its provider/model), `llmsTxt`\n * (emit `llms.txt`), `mcp` (expose the docs as an MCP server for connecting\n * agents), and `markdownComponents` (Markdown serializers for custom\n * components in agent-facing output).\n *\n * **SEO, feeds & analytics**\n * - `seo` — `og` images, `sitemap`, `robots`, `rss` feeds, `structuredData`\n * JSON-LD, `agentReadability`, and robots `contentSignals`.\n * - `analytics` — PostHog, Vercel, or arbitrary `scripts` (Plausible, Fathom,\n * GA, …).\n *\n * **Astro**\n * - `integrations` — Astro integrations appended after Blume's built-ins, in\n * declaration order. Install and maintain each integration in the site.\n *\n * **Deployment & i18n**\n * - `deployment` — `site` URL (needed for absolute links, sitemaps, and OG),\n * `adapter` (`vercel`/`node`/`netlify`/`cloudflare`), `output`\n * (`static`/`server`), and `base` path. Auto-detected on Vercel/Netlify/\n * Cloudflare from the platform env.\n * - `i18n` — opt-in multi-locale: `locales`, `defaultLocale`, `parser`\n * (`dir` vs filename `dot` suffix), and per-locale UI overrides.\n *\n * - `examples` — `<Component path>` previews: `source` (default `examples/`;\n * supports a glob for colocated registries) and `css`, a stylesheet injected\n * into the isolated preview frames (e.g. shadcn variables).\n *\n * @example Zero-config — just render the Markdown under `docs/`.\n * ```ts\n * export default defineConfig({});\n * ```\n *\n * @example A production docs site with theming, search, and deployment.\n * ```ts\n * export default defineConfig({\n * title: \"Acme Docs\",\n * description: \"Build faster with Acme.\",\n * logo: { image: \"/logo.svg\", text: \"Acme\" },\n * github: { owner: \"acme\", repo: \"acme\" },\n * theme: { accent: \"violet\", fonts: { body: \"inter\" }, radius: \"lg\" },\n * navigation: {\n * tabs: [\n * { label: \"Guides\", path: \"/guides\" },\n * { label: \"API\", path: \"/api\" },\n * ],\n * },\n * search: { provider: \"orama\" },\n * deployment: { site: \"https://docs.acme.com\", adapter: \"vercel\" },\n * });\n * ```\n *\n * @example An OpenAPI reference with the Ask AI assistant enabled.\n * ```ts\n * export default defineConfig({\n * title: \"Acme API\",\n * openapi: {\n * enabled: true,\n * route: \"/reference\",\n * sources: [{ label: \"Core\", spec: \"./openapi.json\" }],\n * },\n * ai: { ask: { enabled: true }, llmsTxt: true },\n * });\n * ```\n *\n * @param config - The site configuration. All fields are optional.\n * @returns The same config object, typed for inference.\n * @see https://useblume.dev/docs for the full configuration reference.\n */\nexport const defineConfig = (config: BlumeConfig): BlumeConfig => config;\n\n/** Result of loading + validating a project config. */\nexport interface ConfigLoadResult {\n config: ResolvedConfig;\n /** Absolute path of the config file used, or null when defaults were used. */\n configFile: string | null;\n diagnostics: Diagnostic[];\n /**\n * Whether the config file set `theme.fonts` itself. The schema always fills\n * the roles with defaults, so the resolved config can't tell an intentional\n * font choice from the fallback — and only intentional choices should flow\n * into derived surfaces like OG card fonts.\n */\n themeFontsConfigured: boolean;\n}\n\nconst importConfigModule = createModuleLoader();\n\n/**\n * The slice of a user config module probed before schema defaults apply:\n * whether `theme.fonts` was actually set. `looseObject` keeps every other key\n * out of scope; a non-object at either level simply fails the probe.\n */\nconst themeFontsProbeSchema = z.looseObject({\n theme: z.looseObject({ fonts: z.unknown() }).optional(),\n});\n\n/**\n * Load and validate the project config. When no config file exists, schema\n * defaults produce a fully resolved config so the zero-boilerplate path works.\n */\nexport const loadConfig = async (\n root: string,\n /**\n * Supplied only by `blume dev`: the local dev server URL, used as the\n * `deployment.site` fallback when none is configured or detected. Builds\n * never pass it, so production output can't end up pointing at localhost.\n */\n options: { devServerUrl?: string } = {}\n): Promise<ConfigLoadResult> => {\n const configFile = findConfigFile(root);\n\n let raw: unknown;\n if (configFile) {\n try {\n raw = await importConfigModule(configFile);\n } catch (error) {\n // SAFETY: the module loader rejects with the thrown load/parse failure,\n // which Node surfaces as an Error; a non-Error rejection only degrades\n // the interpolated message.\n throw new BlumeError({\n code: \"BLUME_CONFIG_LOAD_FAILED\",\n file: configFile,\n message: `Failed to load config: ${(error as Error).message}`,\n severity: \"error\",\n });\n }\n }\n\n // Read before parsing: schema defaults erase the set-vs-defaulted distinction.\n const probe = themeFontsProbeSchema.safeParse(raw);\n const themeFontsConfigured =\n probe.success && probe.data.theme?.fonts !== undefined;\n\n const parsed = blumeConfigSchema.safeParse(raw ?? {});\n if (!parsed.success) {\n // Read the raw config text (when on disk) so errors carry a line/column.\n const source =\n configFile && existsSync(configFile)\n ? readFileSync(configFile, \"utf-8\")\n : undefined;\n const diagnostics = diagnosticsFromZod(parsed.error, {\n code: \"BLUME_CONFIG_INVALID\",\n file: configFile ?? undefined,\n source,\n });\n const [first, ...rest] = diagnostics;\n const primary = first ?? {\n code: \"BLUME_CONFIG_INVALID\",\n file: configFile ?? undefined,\n message: \"Invalid Blume config.\",\n severity: \"error\" as const,\n };\n // Surface every issue in one failing run — reporting only the first turns\n // a three-mistake config into three fix-rerun-fail loops.\n const moreIssues = rest.map((d) => ` - ${d.message}`).join(\"\\n\");\n const detail =\n rest.length > 0\n ? {\n ...primary,\n message: `${primary.message}\\n${rest.length} more config issue(s):\\n${moreIssues}`,\n }\n : primary;\n throw new BlumeError(detail);\n }\n\n // Resolve the canonical site URL, then SEO defaults that depend on it.\n // Precedence: explicit config > platform env (Vercel/Netlify/Cloudflare, via\n // applyDeploymentEnv) > the local dev server URL (dev only).\n const config = applyDeploymentEnv(parsed.data);\n const site = config.deployment.site ?? options.devServerUrl;\n\n // OG images need an absolute `og:image`, so they default on once a site URL\n // is known and off otherwise. An explicit `seo.og.enabled` always wins.\n const ogEnabled = config.seo.og.enabled ?? Boolean(site);\n\n return {\n config: {\n ...config,\n deployment: { ...config.deployment, site },\n seo: { ...config.seo, og: { ...config.seo.og, enabled: ogEnabled } },\n },\n configFile,\n diagnostics: [],\n themeFontsConfigured,\n };\n};\n",
|
|
7
7
|
"import type { ResolvedConfig } from \"./schema.ts\";\n\n/** The deployment platforms Blume can infer from runtime/CI env vars. */\ntype DeploymentAdapter = NonNullable<ResolvedConfig[\"deployment\"][\"adapter\"]>;\n\ninterface Platform {\n /** Astro adapter to use when building for server output on this platform. */\n adapter: DeploymentAdapter;\n /** True when the env indicates the build is running on this platform. */\n detect: (env: NodeJS.ProcessEnv) => boolean;\n /** Resolve the canonical site URL from the platform's env vars, or null. */\n site: (env: NodeJS.ProcessEnv) => string | null;\n}\n\n/** Prefix a bare host with `https://`; pass values that are already absolute. */\nconst toUrl = (value: string | undefined): string | null => {\n const trimmed = value?.trim();\n if (!trimmed) {\n return null;\n }\n return /^https?:\\/\\//u.test(trimmed) ? trimmed : `https://${trimmed}`;\n};\n\n/**\n * Platforms checked in order; the first whose `detect` matches wins. Site URLs\n * prefer the stable production domain over per-deployment preview URLs so the\n * inferred origin (sitemap, OG, RSS) stays put across deploys.\n */\nconst PLATFORMS: Platform[] = [\n {\n adapter: \"vercel\",\n detect: (env) => Boolean(env.VERCEL),\n // Fall through per *resolved* value, not per variable — a platform can set\n // a var to the empty string, which `??` on the raw values treats as\n // present, dead-ending the chain and silently losing the site URL.\n site: (env) =>\n toUrl(env.VERCEL_PROJECT_PRODUCTION_URL) ?? toUrl(env.VERCEL_URL),\n },\n {\n adapter: \"netlify\",\n detect: (env) => Boolean(env.NETLIFY),\n site: (env) =>\n toUrl(env.URL) ?? toUrl(env.DEPLOY_PRIME_URL) ?? toUrl(env.DEPLOY_URL),\n },\n {\n adapter: \"cloudflare\",\n detect: (env) => Boolean(env.CF_PAGES),\n site: (env) => toUrl(env.CF_PAGES_URL),\n },\n];\n\n/**\n * Adapters whose `deployment.site` arrives from platform env vars at deploy\n * time. Consumers (e.g. the audit) use this to tell \"site is missing\" apart\n * from \"site is missing *here*, but the platform will set it\".\n */\nexport const SITE_INFERRING_ADAPTERS: ReadonlySet<string> = new Set(\n PLATFORMS.map((platform) => platform.adapter)\n);\n\n/**\n * Fill in `deployment.adapter` and `deployment.site` from platform env vars\n * (Vercel, Netlify, Cloudflare Pages) when the user hasn't set them. Explicit\n * config always wins, and the adapter is only inferred for server output (it\n * has no effect on static builds). Mirrors Astro's platform auto-detection so a\n * project deployed to a known host gets a working canonical origin for free.\n */\nexport const applyDeploymentEnv = (\n config: ResolvedConfig,\n env: NodeJS.ProcessEnv = process.env\n): ResolvedConfig => {\n const platform = PLATFORMS.find((candidate) => candidate.detect(env));\n if (!platform) {\n return config;\n }\n\n const { deployment } = config;\n const adapter =\n deployment.adapter ??\n (deployment.output === \"server\" ? platform.adapter : null);\n const site = deployment.site ?? platform.site(env) ?? undefined;\n\n if (adapter === deployment.adapter && site === deployment.site) {\n return config;\n }\n return { ...config, deployment: { ...deployment, adapter, site } };\n};\n",
|
|
8
8
|
"import { createJiti } from \"jiti\";\n\n/**\n * Create a loader for user-authored ESM/TS modules (`blume.config.ts`,\n * `meta.ts`). One jiti instance is reused across every file the returned loader\n * is called with. `moduleCache: false` ensures edits are picked up on each load,\n * which is what makes dev-server regeneration reflect config/meta changes.\n */\n// oxlint-disable-next-line anti-slop/no-unknown-returns -- user-authored modules can export anything; callers validate the loaded value at their own boundary\nexport const createModuleLoader = (): ((file: string) => Promise<unknown>) => {\n const jiti = createJiti(import.meta.url, { moduleCache: false });\n return async (file: string) => {\n const loaded = await jiti.import<{ default?: unknown }>(file);\n return loaded?.default ?? loaded;\n };\n};\n",
|
|
9
|
-
"import type { AstroIntegration } from \"astro\";\nimport { z } from \"zod\";\n\nimport type { ComponentMarkdown } from \"../ai/component-markdown.ts\";\nimport type { CodeTheme } from \"../markdown/themes.ts\";\nimport { normalizeRoute } from \"../openapi/references.ts\";\nimport { normalizeXHandle } from \"../seo/x-handle.ts\";\nimport { FONT_SLUGS, isFontSlug } from \"../theme/fonts.ts\";\nimport { normalizeBasePath } from \"./base-path.ts\";\nimport { PUBLIC_HOST_URL } from \"./github.ts\";\nimport { uiLocaleOverridesSchema } from \"./i18n-ui.ts\";\nimport { openInChatProviders } from \"./open-in-chat.ts\";\nimport type { ContentSource } from \"./sources/types.ts\";\nimport { isStandardSchema } from \"./standard-schema.ts\";\nimport type { StandardSchema } from \"./standard-schema.ts\";\nimport { trimEnd } from \"./trim.ts\";\n\n/**\n * An absolute HTTP(S) URL, for any field that lands verbatim in an `href` —\n * the header repo mark, the GitHub instance origin. Zod's bare `z.url()` also\n * admits `javascript:` and `data:`, which would render as a script link on\n * every page.\n */\nconst httpUrlSchema = z.url({ protocol: /^https?$/u });\n\n/**\n * Public Blume schemas.\n *\n * These are exported from `blume/schema` so migration tools, editor\n * integrations, and the runtime share a single source of validation truth.\n */\n\n// ---------------------------------------------------------------------------\n// Shared primitives\n// ---------------------------------------------------------------------------\n\n// `typeof` checks live in named predicates (the form the oxlint anti-slop\n// config sanctions); generic so each site keeps its own union narrowing.\nconst isString = <Value>(value: Value): value is Value & string =>\n typeof value === \"string\";\n\nconst isBoolean = <Value>(value: Value): value is Value & boolean =>\n typeof value === \"boolean\";\n\n/** Icon inputs in serializable contexts (frontmatter, meta files). */\nconst iconName = z.string().min(1);\n\n/** Default include glob for filesystem-backed content sources. */\nconst DEFAULT_CONTENT_GLOB = \"**/*.{md,mdx}\";\n\nconst hydrationMode = z.enum([\"load\", \"idle\", \"visible\", \"media\", \"only\"]);\nexport type HydrationMode = z.infer<typeof hydrationMode>;\n\n/**\n * A publish date in frontmatter. YAML auto-parses an unquoted `2026-01-01` into\n * a `Date`, so accept either form and normalize to an ISO string.\n */\nconst dateSchema = z\n .union([z.string(), z.date()])\n .transform((value) => (value instanceof Date ? value.toISOString() : value));\n\n/**\n * How a sidebar group renders:\n * - `flat`: a non-collapsible header with its items listed beneath (default).\n * - `group`: a collapsible `<details>` disclosure.\n * - `page`: a single row that drills into a sub-panel showing only this group's\n * items, with a back arrow at the top.\n */\nconst sidebarDisplaySchema = z.enum([\"flat\", \"group\", \"page\"]);\nexport type SidebarDisplay = z.infer<typeof sidebarDisplaySchema>;\n\n// ---------------------------------------------------------------------------\n// Page frontmatter\n// ---------------------------------------------------------------------------\n\nconst sidebarMetaSchema = z.strictObject({\n badge: z.string().optional(),\n /**\n * Render mode for this page's folder group. Only meaningful on a folder's\n * `index` page — it configures the group, not the page. Overrides the\n * folder's `meta.ts` `display` and the global `navigation.sidebar.display`.\n */\n display: sidebarDisplaySchema.optional(),\n hidden: z.boolean().default(false),\n icon: iconName.optional(),\n label: z.string().optional(),\n order: z.number().optional(),\n});\n\n/**\n * An X handle, normalized to a leading `@` — `twitter:site`/`twitter:creator`\n * require it, and a handle configured without one is the obvious typo to absorb\n * rather than reject. The layouts normalize again on the way out, since a page's\n * `seo.x.creator` reaches them straight from unvalidated frontmatter.\n */\nconst xHandleSchema = z.string().transform(normalizeXHandle).optional();\n\nconst seoMetaSchema = z.strictObject({\n canonical: z.url().optional(),\n description: z.string().optional(),\n image: z.string().optional(),\n noindex: z.boolean().default(false),\n title: z.string().optional(),\n /** Per-page X attribution — a guest post credits its own author. */\n x: z.strictObject({ creator: xHandleSchema }).optional(),\n});\n\nconst searchMetaSchema = z.strictObject({\n boost: z.number().optional(),\n exclude: z.boolean().default(false),\n tags: z.array(z.string()).optional(),\n});\n\nconst aiMetaSchema = z.strictObject({\n /** Exclude this page from llms.txt and llms-full.txt. */\n exclude: z.boolean().default(false),\n});\n\nconst changelogMetaSchema = z.strictObject({\n category: z.string().optional(),\n date: dateSchema.optional(),\n version: z.string().optional(),\n});\n\n/**\n * A post author: a bare name/handle, or an object with a name plus optional\n * avatar/URL. The object is passthrough so richer author metadata (social\n * handles, roles) survives untouched — Blume doesn't render authors yet, so\n * this exists to preserve the field (common on blog/changelog pages) rather\n * than have a strict scan reject it.\n */\nconst authorSchema = z.union([\n z.string(),\n z\n .object({\n avatar: z.string().optional(),\n image: z.string().optional(),\n name: z.string(),\n url: z.string().optional(),\n })\n .catchall(z.unknown()),\n]);\n\n// Shorthand defaults use `.prefault()`, not `.default()`, wherever the value\n// must still be parsed — Zod 4's `.default()` returns the value as-is, so a\n// `.default({})` on an object with inner defaults (or a transform) would\n// resolve to a bare `{}` instead of the fully-defaulted shape.\n\n/** Frontmatter accepted on any content page. */\nconst pageMetaBaseSchema = z.strictObject({\n ai: aiMetaSchema.prefault({}),\n /** Post author(s) for blog/changelog content; preserved, not yet rendered. */\n authors: z.union([authorSchema, z.array(authorSchema)]).optional(),\n changelog: changelogMetaSchema.optional(),\n /** Publish date for feed-backed content like blog/changelog. */\n date: dateSchema.optional(),\n deprecated: z.boolean().default(false),\n description: z.string().optional(),\n draft: z.boolean().default(false),\n hidden: z.boolean().default(false),\n icon: iconName.optional(),\n /** Overrides the git-derived last-modified date when `lastModified` is on. */\n lastModified: dateSchema.optional(),\n noindex: z.boolean().default(false),\n search: searchMetaSchema.prefault({}),\n seo: seoMetaSchema.prefault({}),\n sidebar: sidebarMetaSchema.prefault({}),\n slug: z.string().optional(),\n title: z.string().optional(),\n // No default: an absent `type` must fall through to `content.defaultType`.\n type: z.string().optional(),\n});\n\nexport const pageMetaSchema = pageMetaBaseSchema;\n\nexport type PageMeta = z.infer<typeof pageMetaBaseSchema>;\nexport type PageMetaInput = z.input<typeof pageMetaBaseSchema>;\n\n/** The fully-defaulted front matter of a page that declares nothing. */\nconst EMPTY_PAGE_META: PageMeta = pageMetaBaseSchema.parse({});\n\n/**\n * The page schema as the generated content collections declare it, so\n * `entry.data` is typed and normalized (dates as ISO strings, X handles with\n * their `@`) the same way the scan's `PageMeta` is. Two deliberate loosenings\n * over {@link pageMetaSchema}: custom keys (`frontmatter.extend`, per-type\n * maps) pass through instead of failing the strict parse, and a page the\n * strict parse rejects resolves to the empty defaults instead of throwing.\n * The scan has already dropped such a page with a `BLUME_FRONTMATTER_INVALID`\n * diagnostic — Blume continues without it unless `--strict` — so the\n * collection must not turn that dropped page into a failed content sync.\n */\nexport const pageCollectionSchema = pageMetaBaseSchema\n .loose()\n // oxlint-disable-next-line promise/prefer-await-to-then -- zod's catch, not a promise\n .catch(() => EMPTY_PAGE_META);\n\n/** Built-in page frontmatter keys; custom keys must never redeclare one. */\nconst BUILT_IN_PAGE_META_KEYS = new Set<string>(\n pageMetaBaseSchema.keyof().options\n);\n\n/**\n * A map of custom frontmatter keys to user-supplied validation schemas,\n * consumed through the Standard Schema `~standard` contract — never Zod's own\n * API — so the consumer's zod (any version), Valibot, or ArkType all work\n * (see `standard-schema.ts`). Shared by the site-wide `frontmatter.extend`\n * and the per-type `content.types.<type>.frontmatter` maps. Built-in\n * frontmatter fields can't be redeclared — they're load-bearing (routing,\n * sidebar, SEO), and shadowing one would silently change its semantics.\n */\nconst customKeySchemaRecord = (where: string) =>\n z\n .record(\n z.string(),\n z.custom<StandardSchema>(isStandardSchema, {\n message:\n \"Expected a Standard Schema (e.g. a Zod schema — any Zod version works).\",\n })\n )\n .default({})\n .superRefine((value, ctx) => {\n for (const key of Object.keys(value)) {\n if (BUILT_IN_PAGE_META_KEYS.has(key)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `\"${key}\" is a built-in frontmatter field and cannot be redeclared via ${where}.`,\n path: [key],\n });\n }\n }\n });\n\n// ---------------------------------------------------------------------------\n// Folder meta (meta.ts)\n// ---------------------------------------------------------------------------\n\nexport const folderMetaSchema = z.strictObject({\n collapsed: z.boolean().optional(),\n /** Render mode for this group; overrides `navigation.sidebar.display`. */\n display: sidebarDisplaySchema.optional(),\n icon: iconName.optional(),\n order: z.number().optional(),\n /** Explicit child ordering by slug segment (without numeric prefix). */\n pages: z.array(z.string()).optional(),\n title: z.string().optional(),\n});\n\nexport type FolderMeta = z.infer<typeof folderMetaSchema>;\n\n// ---------------------------------------------------------------------------\n// Project config (blume.config.ts)\n// ---------------------------------------------------------------------------\n\n/** The logo mark: a single image path/URL, or light/dark variants with alt text. */\nconst logoImageSchema = z.union([\n z.string(),\n z.strictObject({\n alt: z.string().optional(),\n dark: z.string().optional(),\n light: z.string().optional(),\n }),\n]);\n\n/**\n * Site logo. A bare string is the image shorthand. The object form splits the\n * brand into an optional `image` mark and optional wordmark `text` so a site can\n * show an image-only logo (a mark with the wordmark baked in), a text-only logo,\n * or both. Omit `text` to fall back to the site title; set `text: \"\"` to render\n * the mark alone. `href` overrides the brand link (defaults to `/`).\n */\nconst logoConfigSchema = z.union([\n z.string(),\n z.strictObject({\n href: z.string().optional(),\n image: logoImageSchema.optional(),\n text: z.string().optional(),\n }),\n]);\n\n/** Site-wide announcement banner: a string, or text with an optional link. */\nconst bannerConfigSchema = z.union([\n z.string(),\n z.strictObject({\n content: z.string(),\n /** Show a dismiss button; the choice is remembered per visitor. */\n dismissible: z.boolean().default(false),\n /** Stable key for remembering dismissal; defaults to the content. */\n id: z.string().optional(),\n link: z.strictObject({ href: z.string(), text: z.string() }).optional(),\n }),\n]);\n\n/** A local filesystem content source. */\nconst filesystemSourceSchema = z.strictObject({\n exclude: z.array(z.string()).default([\"**/_*\", \"**/.*\"]),\n include: z.array(z.string()).default([DEFAULT_CONTENT_GLOB]),\n /** Namespaces the source's routes under `/<prefix>/`. */\n prefix: z.string().optional(),\n root: z.string().default(\"docs\"),\n type: z.literal(\"filesystem\"),\n});\n\n/**\n * Remote Markdown/MDX fetched over HTTP. Enumerate files either explicitly\n * (`files` against a raw `url` base) or from a GitHub repo subtree (`github`).\n * The token, when needed, comes from `GITHUB_TOKEN` — never inlined here.\n */\nconst mdxRemoteSourceSchema = z.strictObject({\n /** Explicit list of source-relative file paths to fetch from `url`. */\n files: z.array(z.string()).optional(),\n /** Enumerate a GitHub repo subtree via the git-trees API. */\n github: z\n .strictObject({\n owner: z.string(),\n path: z.string().default(\"\"),\n ref: z.string().default(\"main\"),\n repo: z.string(),\n })\n .optional(),\n /** Glob patterns applied to enumerated refs. */\n include: z.array(z.string()).default([DEFAULT_CONTENT_GLOB]),\n /** Opt-in dev polling interval (seconds); omit to freeze for the session. */\n pollInterval: z.number().positive().optional(),\n /** Namespaces the source's routes under `/<prefix>/`. */\n prefix: z.string().optional(),\n type: z.literal(\"mdx-remote\"),\n /** Raw base URL, e.g. `https://raw.githubusercontent.com/acme/sdk/main/docs`. */\n url: z.string().optional(),\n});\n\n/** A Sanity dataset queried with GROQ; Portable Text bodies become Markdown. */\nconst sanitySourceSchema = z.object({\n /** Sanity API version (a date); default `2024-01-01`. */\n apiVersion: z.string().optional(),\n dataset: z.string(),\n /** Field paths mapping a document onto Blume meta + body. */\n fields: z\n .strictObject({\n body: z.string().optional(),\n description: z.string().optional(),\n lastModified: z.string().optional(),\n slug: z.string().optional(),\n title: z.string().optional(),\n })\n .optional(),\n /** Opt-in dev polling interval (seconds); omit to freeze for the session. */\n pollInterval: z.number().positive().optional(),\n prefix: z.string().optional(),\n projectId: z.string(),\n /** GROQ query selecting the documents to import. */\n query: z.string(),\n type: z.literal(\"sanity\"),\n});\n\n/** A Notion database; pages become entries, blocks become MDX. */\nconst notionSourceSchema = z.object({\n /** Max concurrent Notion API requests; default 3 (Notion's per-integration pace). */\n concurrency: z.number().positive().optional(),\n database: z.string(),\n /** Opt-in dev polling interval (seconds); omit to freeze for the session. */\n pollInterval: z.number().positive().optional(),\n prefix: z.string().optional(),\n /** Notion property names mapped onto Blume meta. */\n properties: z\n .strictObject({\n description: z.string().optional(),\n order: z.string().optional(),\n slug: z.string().optional(),\n status: z.string().optional(),\n title: z.string().optional(),\n })\n .optional(),\n /** Status value treated as published; others map to `draft`. Default `Published`. */\n publishedValue: z.string().optional(),\n type: z.literal(\"notion\"),\n});\n\n/**\n * An Obsidian vault, read in place. Wikilinks become route links and\n * `%%comments%%` are stripped at load time, so the vault stays the source of\n * truth — no export step and no generated notes in the repo.\n */\nconst obsidianSourceSchema = z.strictObject({\n /** Vault folder names to skip at any depth, in addition to dot-folders. */\n exclude: z.array(z.string()).optional(),\n /** Namespaces the source's routes under `/<prefix>/`; e.g. `vault`. */\n prefix: z.string().optional(),\n type: z.literal(\"obsidian\"),\n /** Vault directory, absolute or relative to the project root. */\n vault: z.string().min(1),\n});\n\n/**\n * A repo's GitHub Releases, materialized as `type: changelog` entries — release\n * notes become the changelog with no files to maintain. A private repo reads a\n * token from `GITHUB_TOKEN`; it is never inlined here.\n */\nconst githubReleasesSourceSchema = z.strictObject({\n /** Include draft releases (needs a token with repo write access). */\n drafts: z.boolean().optional(),\n /** Cap the number of releases materialized, newest-first. Default 100. */\n limit: z.number().positive().optional(),\n /** Repository owner (user or org). */\n owner: z.string(),\n /** Opt-in dev polling interval (seconds); omit to freeze for the session. */\n pollInterval: z.number().positive().optional(),\n /** Namespaces the source's routes under `/<prefix>/`; e.g. `changelog`. */\n prefix: z.string().optional(),\n /** Include prereleases. */\n prereleases: z.boolean().optional(),\n /** Repository name. */\n repo: z.string(),\n type: z.literal(\"github-releases\"),\n});\n\n/**\n * A user-provided `ContentSource` instance, passed straight through from\n * `blume.config.ts`. This is the extension point that lets adapters with custom\n * serializers (or any backend) ship without their SDKs touching core.\n */\nconst customSourceSchema = z.object({\n source: z.custom<ContentSource>(\n (val): val is ContentSource =>\n typeof val === \"object\" &&\n val !== null &&\n \"load\" in val &&\n typeof val.load === \"function\" &&\n \"name\" in val &&\n typeof val.name === \"string\",\n { message: \"custom source must be a ContentSource (with name + load)\" }\n ),\n type: z.literal(\"custom\"),\n});\n\n/** A single configured content source. */\nconst contentSourceSchema = z.discriminatedUnion(\"type\", [\n filesystemSourceSchema,\n mdxRemoteSourceSchema,\n githubReleasesSourceSchema,\n sanitySourceSchema,\n notionSourceSchema,\n obsidianSourceSchema,\n customSourceSchema,\n]);\n\n/** A resolved content-source config entry (post-defaults). */\nexport type ContentSourceConfig = z.infer<typeof contentSourceSchema>;\n\n/**\n * Per-type content definition. An object (rather than a bare frontmatter map)\n * so type-scoped concerns added later — search facets, templates — have a\n * home without a breaking config change.\n */\nconst contentTypeConfigSchema = z.strictObject({\n /**\n * Custom frontmatter keys whose values become filterable facets for pages\n * of this type — surfaced in search documents and filterable through the\n * MCP tools' `filters` input. Each name must be a custom key declared for\n * the type (in its `frontmatter` map or the site-wide `frontmatter.extend`),\n * checked at the config level where both maps are visible. Only string\n * (or number/boolean, stringified) values ever facet.\n */\n facets: z.array(z.string()).default([]),\n /**\n * Custom frontmatter keys for pages of this type, layered on top of the\n * site-wide `frontmatter.extend`. Every declared key is validated on every\n * page of the type — absent ones included — so a required schema enforces\n * the key type-wide while leaving other types untouched.\n */\n frontmatter: customKeySchemaRecord(\"content.types\"),\n});\n\nconst contentConfigSchema = z.strictObject({\n defaultType: z.string().default(\"doc\"),\n exclude: z.array(z.string()).default([\"**/_*\", \"**/.*\"]),\n include: z.array(z.string()).default([DEFAULT_CONTENT_GLOB]),\n pages: z.string().default(\"pages\"),\n root: z.string().default(\"docs\"),\n /**\n * Pluggable content sources. When omitted, the top-level\n * `root`/`include`/`exclude` desugar to one implicit filesystem source, so\n * existing projects are unchanged.\n */\n sources: z.array(contentSourceSchema).optional(),\n /**\n * Per-type content definitions, keyed by the frontmatter `type` they apply\n * to (including `defaultType`, for pages that set none).\n */\n types: z.record(z.string(), contentTypeConfigSchema).default({}),\n});\n\n/**\n * A header label that may localize: a plain string, or a map of locale code to\n * label (`{ en: \"Docs\", ja: \"ドキュメント\" }`). Resolved when each locale's\n * navigation is built — the active locale's entry wins, then the default\n * locale's, then the map's first entry — so a single-locale site can keep\n * plain strings and an i18n site can translate its header without forking the\n * config.\n */\nconst localizableLabelSchema = z.union([\n z.string(),\n z\n .record(z.string(), z.string())\n .refine((value) => Object.keys(value).length > 0, {\n message: \"Provide at least one locale's label.\",\n }),\n]);\n\nexport type LocalizableLabel = z.infer<typeof localizableLabelSchema>;\n\nconst navTabSchema = z.strictObject({\n // Rejected empty rather than accepted: an empty `href` would render a link to\n // nowhere, and it can't mean \"resolve it for me\" either — that's what\n // omitting the field does.\n href: z.string().min(1).optional(),\n icon: iconName.optional(),\n items: z\n .array(\n z.strictObject({\n description: z.string().optional(),\n icon: iconName.optional(),\n label: localizableLabelSchema,\n path: z.string(),\n tag: z.string().optional(),\n })\n )\n .optional(),\n label: localizableLabelSchema,\n path: z.string(),\n});\n\nconst navSelectorItemSchema = z.strictObject({\n description: z.string().optional(),\n icon: iconName.optional(),\n label: z.string(),\n path: z.string(),\n tag: z.string().optional(),\n});\n\nconst navSelectorSchema = z.strictObject({\n items: z.array(navSelectorItemSchema).default([]),\n kind: z.enum([\"dropdown\", \"language\", \"product\", \"version\"]),\n label: z.string(),\n});\n\nconst directoryModeSchema = z.enum([\"accordion\", \"card\", \"none\"]);\nexport type DirectoryMode = z.infer<typeof directoryModeSchema>;\n\n/** A node in an explicit sidebar config: a page reference or a group/link. */\nexport type SidebarItemConfig =\n | string\n | {\n label: string;\n badge?: string;\n directory?: DirectoryMode;\n display?: SidebarDisplay;\n href?: string;\n icon?: string;\n collapsed?: boolean;\n items?: SidebarItemConfig[];\n root?: string;\n };\n\n// Zod 4's `ZodType` defaults its Input parameter to `unknown` (it no longer\n// mirrors Output), so the recursive annotation names both — otherwise\n// `z.input` of anything containing this schema degrades to `unknown`.\nconst sidebarItemSchema: z.ZodType<SidebarItemConfig, SidebarItemConfig> =\n z.lazy(() =>\n z.union([\n z.string(),\n z.strictObject({\n badge: z.string().optional(),\n collapsed: z.boolean().optional(),\n directory: directoryModeSchema.optional(),\n display: sidebarDisplaySchema.optional(),\n href: z.string().optional(),\n icon: iconName.optional(),\n items: z.array(sidebarItemSchema).optional(),\n label: z.string(),\n root: z.string().optional(),\n }),\n ])\n );\n\nconst fontFallbackSchema = z.enum([\"sans\", \"serif\", \"mono\"]);\n\n/** Any family from a zero-config Astro provider, by name. */\nconst remoteFontSchema = z.strictObject({\n fallback: fontFallbackSchema.optional(),\n name: z.string().min(1),\n provider: z\n .enum([\"google\", \"fontsource\", \"bunny\", \"fontshare\"])\n .default(\"google\"),\n /** Character subsets to load; defaults to `latin` plus the locales' scripts. */\n subsets: z.array(z.string().min(1)).nonempty().optional(),\n weights: z\n .array(\n z.union([z.number().int().positive(), z.string().regex(/^\\d+\\.\\.\\d+$/u)])\n )\n .nonempty()\n .optional(),\n});\n\n/** One local `@font-face`: a file plus optional weight/style (else inferred). */\nconst localFontVariantSchema = z.strictObject({\n src: z.string().min(1),\n style: z.enum([\"normal\", \"italic\", \"oblique\"]).optional(),\n weight: z\n .union([\n z.number().int().positive(),\n z.string().regex(/^\\d+(?:\\.\\.\\d+)?$/u),\n ])\n .optional(),\n});\n\n/** A self-hosted family loaded from font files in the project. */\nconst localFontSchema = z.strictObject({\n fallback: fontFallbackSchema.optional(),\n name: z.string().min(1),\n variants: z.array(localFontVariantSchema).nonempty(),\n});\n\n/**\n * A role's font: a curated Google Font slug (see `theme/fonts.ts`), a\n * remote-provider family, or local font files. Bare strings must be curated\n * slugs so a typo fails with the supported list instead of a provider error.\n */\nconst fontValueSchema = z\n .union([z.string(), remoteFontSchema, localFontSchema])\n .superRefine((value, ctx) => {\n if (isString(value) && !isFontSlug(value)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Unknown font \"${value}\". Supported fonts: ${FONT_SLUGS.join(\", \")}. For any other family, use the object form: { name: \"...\" } (remote provider) or { name: \"...\", variants: [...] } (local files).`,\n });\n }\n });\n\n/**\n * An optional per-mode theme value: a string applies to both color modes; a\n * `{ light, dark }` object sets each mode individually (either may be\n * omitted to override a single mode).\n */\nconst perModeValueSchema = z\n .union([\n z.string(),\n z.strictObject({\n dark: z.string().optional(),\n light: z.string().optional(),\n }),\n ])\n .optional()\n .transform((value) =>\n isString(value) ? { dark: value, light: value } : value\n );\n\nconst themeConfigSchema = z.strictObject({\n accent: z\n .union([\n z.string(),\n z.strictObject({ dark: z.string(), light: z.string() }),\n ])\n .default(\"blue\")\n .transform((value) =>\n isString(value) ? { dark: value, light: value } : value\n ),\n action: z.string().optional(),\n background: perModeValueSchema,\n backgroundImage: perModeValueSchema,\n fonts: z\n .strictObject({\n body: fontValueSchema.default(\"inter\"),\n display: fontValueSchema.default(\"inter\"),\n mono: fontValueSchema.default(\"ibm-plex-mono\"),\n })\n .prefault({}),\n layout: z.enum([\"sidebar\"]).default(\"sidebar\"),\n mode: z.enum([\"system\", \"light\", \"dark\"]).default(\"system\"),\n radius: z.enum([\"none\", \"sm\", \"md\", \"lg\"]).default(\"md\"),\n});\n\n/** Public credentials for the Algolia search backend (sync key is an env var). */\nconst algoliaSearchSchema = z.strictObject({\n appId: z.string(),\n indexName: z.string(),\n searchApiKey: z.string(),\n});\n\n/** Public credentials for the Orama Cloud search backend. */\nconst oramaCloudSearchSchema = z.strictObject({\n apiKey: z.string(),\n endpoint: z.string(),\n /** Index id used by the build-time sync (with `ORAMA_PRIVATE_API_KEY`). */\n indexId: z.string().optional(),\n});\n\n/** Public credentials for a (self-hosted or cloud) Typesense backend. */\nconst typesenseSearchSchema = z.strictObject({\n collection: z.string(),\n host: z.string(),\n port: z.number().int().positive().optional(),\n protocol: z.enum([\"http\", \"https\"]).optional(),\n searchApiKey: z.string(),\n});\n\n/** Mixedbread semantic search: the store the server endpoint queries. */\nconst mixedbreadSearchSchema = z.strictObject({\n storeId: z.string(),\n});\n\nexport const searchProviders = [\n \"orama\",\n \"pagefind\",\n \"flexsearch\",\n \"algolia\",\n \"orama-cloud\",\n \"typesense\",\n \"mixedbread\",\n \"none\",\n] as const;\n\n/** Providers that need a config block, mapped to its `search.*` key. */\nconst PROVIDER_CONFIG_KEY = {\n algolia: \"algolia\",\n mixedbread: \"mixedbread\",\n \"orama-cloud\": \"oramaCloud\",\n typesense: \"typesense\",\n} as const;\n\n/** Curated link for the search dialog empty state (internal route or external URL). */\nconst searchPopularLinkSchema = z.strictObject({\n href: z.string(),\n icon: iconName.optional(),\n label: z.string(),\n});\n\nconst searchConfigSchema = z\n .strictObject({\n algolia: algoliaSearchSchema.optional(),\n indexing: z\n .strictObject({\n includeCodeBlocks: z.boolean().default(false),\n includeHiddenPages: z.boolean().default(false),\n })\n .prefault({}),\n mixedbread: mixedbreadSearchSchema.optional(),\n oramaCloud: oramaCloudSearchSchema.optional(),\n /** Curated links for the Cmd+K empty state; defaults to the first sidebar pages. */\n popular: z.array(searchPopularLinkSchema).default([]),\n provider: z.enum(searchProviders).default(\"orama\"),\n typesense: typesenseSearchSchema.optional(),\n })\n .superRefine((value, ctx) => {\n // Hosted providers can't work without their credentials; flag a missing\n // block with a path so the diagnostic points at `search.<provider>`.\n // SAFETY: providers without a config block (orama, pagefind, …) miss the\n // map and read undefined, which the `field &&` guard below absorbs.\n const field =\n PROVIDER_CONFIG_KEY[value.provider as keyof typeof PROVIDER_CONFIG_KEY];\n if (field && !value[field]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `search.${field} is required when provider is \"${value.provider}\".`,\n path: [field],\n });\n }\n });\n\n/** Ask AI backends. `gateway` (default) routes through the Vercel AI Gateway. */\nexport const askAiProviders = [\n \"gateway\",\n \"openrouter\",\n \"llmgateway\",\n \"inkeep\",\n \"openai-compatible\",\n] as const;\n\n/**\n * JWK parameters that carry private or secret key material (RFC 7518): the\n * private exponent/scalar, the RSA CRT parameters, and the symmetric key.\n * A directory is public by definition, so any of these in a configured key is\n * a leaked credential, not a config style choice — reject loudly.\n */\nconst PRIVATE_JWK_PARAMS = [\"d\", \"p\", \"q\", \"dp\", \"dq\", \"qi\", \"oth\", \"k\"];\n\n/**\n * A public JWK for the Web Bot Auth signature directory. Shape is left to the\n * signing setup (Ed25519 `OKP` keys in current deployments) — validation only\n * requires the mandatory `kty` and refuses private key material.\n */\nconst publicJwkSchema = z\n .record(z.string(), z.unknown())\n .superRefine((jwk, ctx) => {\n if (!isString(jwk.kty) || jwk.kty.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'A JWK must declare its key type (\"kty\").',\n });\n }\n const leaked = PRIVATE_JWK_PARAMS.filter((param) => param in jwk);\n if (leaked.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The JWK contains private key material (\"${leaked.join('\", \"')}\") — the signatures directory is public, so list only public keys and keep the private key where the signing agent runs.`,\n });\n }\n });\n\nconst mcpConfigSchema = z.strictObject({\n enabled: z.boolean().default(false),\n /** Optional system hint passed to connecting agents. */\n instructions: z.string().optional(),\n /** Server name shown to clients; defaults to the site title. */\n name: z.string().optional(),\n /**\n * Normalized like `openapi.route`: a slash-less value would otherwise be\n * string-concatenated onto the site origin (`https://acme.comdocs-mcp`).\n */\n route: z.string().default(\"/mcp\").transform(normalizeRoute),\n});\n\nconst askEndpointSchema = z\n .string()\n .trim()\n .min(1)\n .refine(\n (value) => {\n if (value.startsWith(\"/\") && !value.startsWith(\"//\")) {\n return true;\n }\n try {\n const url = new URL(value);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n },\n {\n message:\n \"ai.ask.endpoint must be an HTTP(S) URL or a root-relative path.\",\n }\n );\n\n/** The object form of `ai.llmsTxt`; a bare boolean normalizes onto it. */\nconst llmsTxtObjectSchema = z.strictObject({\n /**\n * Markdown inserted after the title and summary, before the page sections:\n * the llms.txt spec's \"details\" slot. The place to tell agents when to use\n * the product and how to call it; trimmed, and dropped when blank.\n */\n details: z.string().trim().min(1).optional(),\n enabled: z.boolean().default(true),\n openapi: z.boolean().default(true),\n});\n\ntype LlmsTxtResolved = z.output<typeof llmsTxtObjectSchema>;\n\nconst aiConfigSchema = z.strictObject({\n /**\n * The JSON docs API: the page index, per-page JSON, and navigation under\n * `/api/docs/` (prerendered, so a static site serves them from files), the\n * live search endpoint on server output, and the OpenAPI description of\n * the whole machine-readable surface at `/openapi.json`. On by default.\n */\n api: z.boolean().default(true),\n ask: z\n .strictObject({\n // Name of the env var holding the provider's API key; each provider has\n // a sensible default, so this only needs setting to override it.\n apiKeyEnv: z.string().optional(),\n // Base URL of the backend. Required for `openai-compatible` only when no\n // external endpoint is supplied; for named providers it overrides the preset.\n baseUrl: z.url().optional(),\n enabled: z.boolean().default(false),\n // Optional external endpoint for projects that keep their docs static\n // and host Ask AI in an existing backend. Absolute URLs and root-relative\n // paths are both valid; the built-in request/stream contract is unchanged.\n endpoint: askEndpointSchema.optional(),\n // Extra system-prompt text (identity, language, tone) appended to the\n // built-in instructions, so the grounding contract — answer from the\n // retrieved excerpts, cite pages as Markdown links — stays intact.\n instructions: z.string().trim().min(1).optional(),\n model: z.string().default(\"openai/gpt-5.5\"),\n provider: z.enum(askAiProviders).default(\"gateway\"),\n // How much documentation each question carries. Injected characters are\n // the dominant term in time-to-first-token on a self-hosted backend, so\n // these trade recall for latency. No zod defaults here: only what the\n // user set reaches the generated (and ejected) endpoint, so omitted\n // fields keep tracking the installed package's built-in defaults in\n // `ai/ask-context.ts` instead of pinning today's numbers as literals.\n retrieval: z\n .strictObject({\n contextBudget: z.number().int().positive().optional(),\n excerptChars: z.number().int().positive().optional(),\n maxResults: z.number().int().positive().optional(),\n })\n .optional(),\n // Empty-state prompts shown before the first question. Each renders as a\n // clickable suggestion; `icon` is an optional Lucide name beside it.\n suggestions: z\n .array(\n z.strictObject({\n icon: iconName.optional(),\n label: z.string().min(1),\n })\n )\n .default([]),\n })\n .superRefine((value, ctx) => {\n // A generic OpenAI-compatible backend has no preset URL, so the user\n // must supply one; the named providers fall back to their preset.\n if (\n value.provider === \"openai-compatible\" &&\n !(value.baseUrl || value.endpoint)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'ai.ask.baseUrl is required when provider is \"openai-compatible\".',\n path: [\"baseUrl\"],\n });\n }\n })\n .optional(),\n /**\n * `llms.txt`/`llms-full.txt` emission. A bare boolean toggles it; the object\n * form adds `openapi: false` to keep generated API reference pages out of\n * both files (e.g. when the configured spec is example content) and\n * `details`, free-form Markdown placed after the summary — the llms.txt\n * spec's details block, where a site tells agents when to reach for it.\n */\n llmsTxt: z\n .union([z.boolean(), llmsTxtObjectSchema])\n .default(true)\n .transform((value): LlmsTxtResolved =>\n isBoolean(value) ? { enabled: value, openapi: true } : value\n ),\n // Serializers for the agent-facing Markdown downlevel (the `.md` mirror,\n // llms-full.txt, MCP get_page), keyed by JSX name. Functions live here —\n // not in components.tsx — because the config file is executed at build\n // time while the components file is only statically analyzed. A same-name\n // entry replaces the built-in serializer.\n // Two-argument `z.record` — the single-argument form throws at\n // schema-construction time under Zod 4 (see uiStringsOverrideSchema).\n markdownComponents: z\n .record(\n z.string(),\n z.custom<ComponentMarkdown>(\n (value): value is ComponentMarkdown => typeof value === \"function\",\n {\n message: \"Expected a serializer function.\",\n }\n )\n )\n .default({}),\n /** Expose the docs as an MCP server for connecting agents. */\n mcp: mcpConfigSchema.prefault({}),\n /**\n * The \"Open in chat\" page action. `true` (the default) lists every\n * provider, `false` hides the action entirely, and an array of provider\n * keys shows just that subset, in the given order. Normalized to the\n * provider list so consumers read a plain array.\n */\n openInChat: z\n .union([\n z.boolean(),\n z\n .array(z.enum(openInChatProviders))\n .refine((value) => new Set(value).size === value.length, {\n message: \"ai.openInChat must not repeat a provider.\",\n }),\n ])\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return value ? [...openInChatProviders] : [];\n }\n return value;\n }),\n /**\n * Publish Agent Skills for discovery: a directory (resolved against the\n * project root) whose subdirectories each hold a `SKILL.md`. The build\n * copies each skill under `/.well-known/agent-skills/` — a lone `SKILL.md`\n * verbatim, a skill with supporting files as a `.tar.gz` — and emits the\n * discovery index (`index.json`) with SHA-256 digests per the Agent Skills\n * Discovery RFC.\n */\n skills: z.string().min(1).optional(),\n /**\n * Web Bot Auth (IETF `webbotauth`): publish the org's HTTP Message\n * Signature public keys at `/.well-known/http-message-signatures-directory`\n * so sites receiving requests from the org's agents can verify them.\n * Opt-in and public-keys-only — the private keys live wherever the signing\n * agents run, never in the site.\n */\n webBotAuth: z\n .strictObject({\n keys: z.array(publicJwkSchema).default([]),\n })\n .prefault({}),\n /**\n * WebMCP: register in-page tools (search, page Markdown, the docs index)\n * on the browser's model context so agentic browsers can drive the docs\n * without a separate MCP connection. A tiny script that no-ops in browsers\n * without the API; on by default.\n */\n webmcp: z.boolean().default(true),\n});\n\n/**\n * A pinned link rendered above the sidebar sections — a blog, changelog, or\n * contact page that should always be reachable, regardless of the active tab.\n * `href` may be an external URL or an internal route.\n */\nconst featuredLinkSchema = z.strictObject({\n href: z.string(),\n icon: iconName.optional(),\n label: z.string(),\n});\n\n/**\n * A header link: a plain one (`Log in`, `Status`), or the single call to\n * action. Same shape as a featured link minus the icon — the header row is\n * text, not iconography.\n */\nconst headerActionSchema = z.strictObject({\n href: z.string(),\n label: z.string(),\n});\n\nconst navigationConfigSchema = z.strictObject({\n /** Plain links in the header, left of the icon buttons. */\n actions: z.array(headerActionSchema).default([]),\n /**\n * The one primary call to action in the header, as a filled button.\n *\n * Singular on purpose: a docs header has room for exactly one thing a\n * reader is being asked to do, a row of buttons asks for nothing, and\n * `featured` already takes the secondary links.\n */\n cta: headerActionSchema.optional(),\n /** Pinned links shown above the generated sidebar sections. */\n featured: z.array(featuredLinkSchema).default([]),\n /**\n * The GitHub link in the header. `true` derives it from `github`, `false`\n * hides it, and an absolute URL points it anywhere on GitHub — an\n * organization, say, when the docs repo itself is private and `github` has\n * to stay unset. The mark stays the GitHub one, so a URL elsewhere belongs in\n * `actions`.\n */\n repo: z.union([z.boolean(), httpUrlSchema]).default(true),\n selectors: z.array(navSelectorSchema).default([]),\n /**\n * Sidebar behavior. `display` sets how every group renders (a group in an\n * explicit `items` config may still override it); `items` is an explicit\n * sidebar — when omitted the sidebar is generated from the content tree.\n * A bare array is shorthand for `{ items }`.\n */\n sidebar: z\n .union([\n z.array(sidebarItemSchema),\n z.strictObject({\n display: sidebarDisplaySchema.default(\"flat\"),\n items: z.array(sidebarItemSchema).optional(),\n }),\n ])\n .prefault({})\n .transform((value) =>\n Array.isArray(value) ? { display: \"flat\" as const, items: value } : value\n ),\n tabs: z.array(navTabSchema).default([]),\n});\n\nexport type AskAiProvider = (typeof askAiProviders)[number];\nexport type AskAiConfig = NonNullable<z.infer<typeof aiConfigSchema>[\"ask\"]>;\nexport { openInChatProviders } from \"./open-in-chat.ts\";\nexport type { OpenInChatProvider } from \"./open-in-chat.ts\";\n\n// Reader-facing \"Export\" page action (PDF via print, EPUB via client-side\n// generation). Off by default. Accepts a shorthand boolean to toggle both\n// formats, or an object to enable them individually; both normalize to\n// `{ epub, pdf }` so consumers read plain booleans.\nconst exportConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n epub: z.boolean().default(false),\n pdf: z.boolean().default(false),\n }),\n ])\n .transform((value) =>\n isBoolean(value) ? { epub: value, pdf: value } : value\n );\n\n/** A configured locale: ISO-ish code plus display metadata for the switcher. */\nconst localeSchema = z.strictObject({\n code: z.string().min(1),\n /** Text direction; drives `<html dir>` and a future RTL pass. */\n dir: z.enum([\"ltr\", \"rtl\"]).default(\"ltr\"),\n label: z.string(),\n /**\n * Freeform style guidance for `blume translate`, e.g. \"Brazilian\n * Portuguese, informal você\". Pins register and dialect from the first\n * translation and wins over an existing translation's style on reruns.\n */\n style: z.string().optional(),\n});\n\n/**\n * Internationalization. Opt-in: when absent, Blume is single-locale and behaves\n * exactly as before. The default locale lives at the content root; other locales\n * are top-level directories named by `code` (the `dir` parser).\n */\nconst i18nConfigSchema = z\n .strictObject({\n defaultLocale: z.string().default(\"en\"),\n /** Locale rendered for a missing translation; `null` disables fallback. */\n fallbackLocale: z.string().nullable().optional(),\n /** Drop the URL prefix for the default locale (`/`, `/fr/…`). Static-safe. */\n hideDefaultLocalePrefix: z.boolean().default(true),\n locales: z.array(localeSchema).min(1),\n /** `\"dir\"`: locale directories (`fr/page.mdx`). `\"dot\"`: filename suffix (`page.fr.mdx`). */\n parser: z.enum([\"dir\", \"dot\"]).default(\"dir\"),\n /** Per-locale UI string overrides: `{ fr: { search: { button: \"…\" } } }`. */\n ui: uiLocaleOverridesSchema.optional(),\n })\n .superRefine((value, ctx) => {\n const codes = new Set(value.locales.map((locale) => locale.code));\n if (!codes.has(value.defaultLocale)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `i18n.defaultLocale \"${value.defaultLocale}\" must match one of i18n.locales.`,\n path: [\"defaultLocale\"],\n });\n }\n if (\n value.fallbackLocale !== null &&\n value.fallbackLocale !== undefined &&\n !codes.has(value.fallbackLocale)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `i18n.fallbackLocale \"${value.fallbackLocale}\" must match one of i18n.locales.`,\n path: [\"fallbackLocale\"],\n });\n }\n });\n\n/**\n * Version ids must start with a letter (`v1.0`, not `1.0`): the id doubles as\n * the snapshot directory name, and a leading digit would collide with the\n * numeric-prefix ordering convention (`01-intro.mdx`), which strips `1.0/` to\n * `0/`. The rest allows word characters, dots, and hyphens — URL-safe as-is.\n */\nexport const VERSION_ID = /^[A-Za-z][\\w.-]*$/u;\n\n/** A frozen documentation snapshot: a directory under the content root. */\nconst archivedVersionSchema = z.strictObject({\n /**\n * The \"you're viewing an old version\" notice: `true` for the built-in\n * message, a string for custom copy, `false` to hide it.\n */\n banner: z.union([z.boolean(), z.string()]).default(true),\n /**\n * Where this version's pages point their canonical URL: `latest` targets the\n * same page in the current docs when it still exists (self otherwise), so\n * search engines treat the live page as authoritative without deindexing\n * version-only content. `self` keeps every page authoritative.\n */\n canonical: z.enum([\"latest\", \"self\"]).default(\"latest\"),\n /** Directory name under the content root, and the URL segment. */\n id: z\n .string()\n .regex(\n VERSION_ID,\n 'Version ids must start with a letter (e.g. \"v1.0\") and contain only letters, digits, dots, hyphens, and underscores.'\n ),\n /** Switcher label; defaults to the id. */\n label: z.string().optional(),\n /** Emit `noindex` on every page of this version. */\n noindex: z.boolean().default(false),\n});\n\n/**\n * Docs versioning. Opt-in: the latest docs live at the content root with\n * unprefixed URLs, and each archived version is a frozen snapshot directory\n * (`content/docs/<id>/`) cut with `blume version <id>`. Archived means frozen:\n * snapshots carry their own translations and are never retranslated.\n */\nconst versionsConfigSchema = z\n .strictObject({\n /** Frozen snapshots, newest first — this order is the switcher order. */\n archived: z.array(archivedVersionSchema).default([]),\n /** Labels the unprefixed tree (the latest docs) in the switcher. */\n current: z.strictObject({\n /** Small tag rendered next to the label (e.g. `Latest`). */\n badge: z.string().optional(),\n label: z.string(),\n }),\n switcher: z\n .strictObject({\n /**\n * Where switching lands when the page has no equivalent in the target\n * version: `same-page` goes to the equivalent when it exists (version\n * root otherwise); `root` always goes to the version root.\n */\n redirect: z.enum([\"same-page\", \"root\"]).default(\"same-page\"),\n })\n .prefault({}),\n })\n .superRefine((value, ctx) => {\n const seen = new Set<string>();\n for (const [position, version] of value.archived.entries()) {\n if (seen.has(version.id)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `versions.archived declares \"${version.id}\" more than once.`,\n path: [\"archived\", position, \"id\"],\n });\n }\n seen.add(version.id);\n }\n });\n\nconst analyticsScriptSchema = z\n .strictObject({\n // Extra attributes (e.g. `data-domain`, `id`) spread onto the <script>.\n attributes: z.record(z.string(), z.string()).optional(),\n // Inline script body, mutually exclusive with `src`.\n content: z.string().optional(),\n // External script URL, mutually exclusive with `content`.\n src: z.string().optional(),\n // Load strategy for an external script.\n strategy: z.enum([\"async\", \"defer\"]).optional(),\n })\n .refine((value) => Boolean(value.src) !== Boolean(value.content), {\n message: \"An analytics script must set exactly one of `src` or `content`.\",\n });\n\nconst analyticsConfigSchema = z.strictObject({\n // Cloudflare Web Analytics in manual (JS snippet) mode; the token comes from\n // the site's snippet in the dashboard. A zone Cloudflare proxies with\n // automatic RUM injection on needs no config at all.\n cloudflare: z\n .strictObject({\n token: z.string().min(1),\n })\n .optional(),\n posthog: z\n .strictObject({\n host: z.string().optional(),\n key: z.string(),\n })\n .optional(),\n // Escape hatch for any other provider (Plausible, Fathom, GA, Umami, …).\n scripts: z.array(analyticsScriptSchema).optional(),\n vercel: z.boolean().optional(),\n});\n\nconst deploymentConfigSchema = z.strictObject({\n adapter: z\n .enum([\"vercel\", \"node\", \"netlify\", \"cloudflare\"])\n .nullable()\n .default(null),\n base: z.string().optional(),\n output: z.enum([\"static\", \"server\"]).default(\"static\"),\n site: z.url().optional(),\n});\n\nconst redirectSchema = z.strictObject({\n from: z.string(),\n status: z\n .union([z.literal(301), z.literal(302), z.literal(307), z.literal(308)])\n .default(301),\n to: z.string(),\n});\n\n/**\n * One authorized remote image source, passed through to Astro's\n * `image.remotePatterns`. Wildcards follow Astro's rules: `hostname` accepts\n * `**.example.com` (any depth) or `*.example.com` (one level), `pathname`\n * accepts `/dir/**` or `/dir/*` the same way.\n */\nconst imageRemotePatternSchema = z.strictObject({\n hostname: z.string().optional(),\n pathname: z.string().optional(),\n port: z.string().optional(),\n protocol: z.string().optional(),\n});\n\n/**\n * Image optimization (`image`). Local images referenced by relative path\n * (``) are optimized at build time automatically —\n * compressed, converted to WebP, and stamped with intrinsic dimensions.\n * Remote images are only optimized when their host is authorized here;\n * both fields map directly onto Astro's `image` config.\n */\nconst imageConfigSchema = z.strictObject({\n /** Hosts whose remote images may be optimized, e.g. `[\"cdn.example.com\"]`. */\n domains: z.array(z.string()).default([]),\n /** Pattern-based host authorization, for wildcards `domains` can't express. */\n remotePatterns: z.array(imageRemotePatternSchema).default([]),\n});\n\n/**\n * X (Twitter) attribution. The account fields feed `twitter:site` (the site's\n * account) and `twitter:creator` (the author's), which is the one piece of X\n * card metadata with no Open Graph equivalent to fall back to — everything else\n * on the card is read from `og:*`.\n */\nconst xConfigSchema = z.strictObject({\n /** The author's account, overridable per page via `seo.x.creator`. */\n creator: xHandleSchema,\n /** The site's own account, e.g. `@blume`. */\n handle: xHandleSchema,\n});\n\n/**\n * Any CSS color. Takumi parses the full grammar, so this stays unvalidated\n * here and a bad value fails the OG prerender with a parse error naming it —\n * the same fail-fast the card's accent relies on. Validating hex-only here\n * would reject `oklch(…)`, which `theme.accent` (the card's default accent)\n * already accepts.\n */\nconst ogColorSchema = z.string();\n\nconst ogPaletteSchema = z.strictObject({\n accent: ogColorSchema.optional(),\n background: ogColorSchema.optional(),\n border: ogColorSchema.optional(),\n foreground: ogColorSchema.optional(),\n muted: ogColorSchema.optional(),\n});\n\n/**\n * A font to load into the OG card renderer. A bare string is a Google Fonts\n * family name; the name-only object form pins the weight (a number, a list, or\n * a variable range like `\"100..900\"`) and style, fetched from Google Fonts at\n * build. The `src` form reads a local font file from the project instead.\n * Either way Takumi does per-glyph fallback, so a family covering a script\n * (e.g. Noto Sans JP for CJK) fixes tofu without touching how Latin renders.\n */\nconst ogFontWeightSchema = z.union([\n z.number().int().positive(),\n z.array(z.number().int().positive()),\n z.string().regex(/^\\d+\\.\\.\\d+$/u),\n]);\nconst ogFontStyleSchema = z.enum([\"normal\", \"italic\"]);\nconst ogFontSchema = z.union([\n z.string(),\n z.strictObject({\n name: z.string(),\n style: z.union([ogFontStyleSchema, z.array(ogFontStyleSchema)]).optional(),\n weight: ogFontWeightSchema.optional(),\n }),\n /** A local font file, read from the project at build. */\n z.strictObject({\n name: z.string(),\n src: z.string().min(1),\n style: ogFontStyleSchema.optional(),\n weight: z.number().int().positive().optional(),\n }),\n]);\n\nconst ogConfigSchema = z.strictObject({\n /**\n * Site-wide card subtitle, shown on pages without their own description.\n * Defaults to the site description; a string overrides it, `false` renders\n * every card without a subtitle (page descriptions included).\n */\n description: z.union([z.string(), z.literal(false)]).optional(),\n /**\n * Generate a per-page Open Graph image. Defaults to on once a deployment\n * site URL is known (set or auto-detected) and off otherwise, since\n * `og:image` must be absolute to be useful to crawlers — resolved in\n * `loadConfig`. An explicit value here always wins.\n */\n enabled: z.boolean().optional(),\n /**\n * Google Font families for the generated card, extending Takumi's Latin-only\n * default so non-Latin titles (CJK, and so on) render instead of tofu.\n * Fetched from Google Fonts at build.\n */\n fonts: z.array(ogFontSchema).optional(),\n /**\n * Local SVG used in the generated card instead of the site logo; `false`\n * renders the card without any brand mark.\n */\n logo: z.union([z.string(), z.literal(false)]).optional(),\n /** Optional generated-card colors. */\n palette: ogPaletteSchema.optional(),\n /**\n * Footer site text. Defaults to the deployment site's host plus\n * `deployment.base` (`docs.acme.com`, `user.github.io/repo`); a string\n * overrides it, `false` hides it.\n */\n site: z.union([z.string(), z.literal(false)]).optional(),\n /**\n * Card headlines for custom `.astro` pages, keyed by route (`\"/\"`, `\"/cli\"`).\n * A custom page has no frontmatter to read, so its card is otherwise titled\n * by humanizing its last URL segment (`/cli` → \"Cli\"); an entry here wins.\n * Content pages always take their card headline from the page title.\n */\n titles: z.record(z.string(), z.string()).optional(),\n});\n\nconst rssConfigSchema = z.strictObject({\n enabled: z.boolean().default(true),\n /** Max items per feed, newest first. */\n limit: z.number().int().positive().default(50),\n /** Content types that each get a feed at `/<type>/rss.xml`. */\n types: z.array(z.string()).default([\"blog\", \"changelog\"]),\n});\n\n/**\n * robots.txt `Content-Signal` preferences — the emerging content-usage\n * declaration for how crawlers may reuse the site. Each field maps to one\n * signal:\n * - `search` → `search` (traditional and AI search indexing)\n * - `aiInput` → `ai-input` (grounding / RAG use at answer time)\n * - `aiTrain` → `ai-train` (model training)\n */\nconst contentSignalsObjectSchema = z.strictObject({\n aiInput: z.boolean().default(true),\n aiTrain: z.boolean().default(true),\n search: z.boolean().default(true),\n});\n\n/**\n * Content signals accept a boolean shorthand or a per-signal object, and\n * normalize to `{ search, aiInput, aiTrain }` — or `null` when disabled, so\n * robots.txt omits the declaration entirely. On by default (`true`): Blume\n * declares the docs open to search and agents. `false` opts out; an object\n * restricts individual signals (unset signals stay `yes`).\n */\nconst contentSignalsSchema = z\n .union([z.boolean(), contentSignalsObjectSchema])\n .transform((value) => {\n if (value === true) {\n return contentSignalsObjectSchema.parse({});\n }\n if (value === false) {\n return null;\n }\n return value;\n });\n\n/** A schema.org `PostalAddress`, any part of which may be given. */\nconst postalAddressSchema = z.strictObject({\n addressCountry: z.string().optional(),\n addressLocality: z.string().optional(),\n addressRegion: z.string().optional(),\n postalCode: z.string().optional(),\n streetAddress: z.string().optional(),\n});\n\n/**\n * `seo.organization`: the organization behind the site, emitted on every page\n * as a schema.org `Organization` node (see `seo/jsonld.ts`). Name and URL\n * default to the site's; contact details become a `ContactPoint`, the address\n * a `PostalAddress` — what agents check to verify a business.\n */\nconst organizationConfigSchema = z.strictObject({\n address: postalAddressSchema.optional(),\n contactType: z.string().default(\"customer support\"),\n email: z.email().optional(),\n logo: z.string().optional(),\n name: z.string().optional(),\n sameAs: z.array(z.url()).default([]),\n telephone: z.string().optional(),\n url: z.url().optional(),\n});\n\n/**\n * `seo.software`: the product the site documents, emitted on the homepage as\n * a schema.org `SoftwareApplication` node. `true` takes every default (name\n * and description from the site, category `DeveloperApplication`).\n */\nconst softwareConfigSchema = z.strictObject({\n applicationCategory: z.string().default(\"DeveloperApplication\"),\n description: z.string().optional(),\n license: z.string().optional(),\n name: z.string().optional(),\n operatingSystem: z.string().optional(),\n price: z.union([z.number().nonnegative(), z.string()]).optional(),\n priceCurrency: z.string().default(\"USD\"),\n sameAs: z.array(z.url()).default([]),\n});\n\ntype SoftwareResolved = z.output<typeof softwareConfigSchema>;\n\n/** Discoverability features: OG images, feeds, sitemap, structured data. */\nconst seoConfigSchema = z.strictObject({\n /**\n * Emit `agent-readability.json` at the site root: a manifest that indexes\n * the agent-facing surface (llms.txt, Markdown mirrors, MCP server, feeds)\n * so agents can discover it without scraping HTML.\n */\n agentReadability: z.boolean().default(true),\n /** robots.txt `Content-Signal` usage declaration (on by default). */\n contentSignals: contentSignalsSchema.prefault(true),\n og: ogConfigSchema.default({}),\n /** The organization behind the site, as an `Organization` JSON-LD node. */\n organization: organizationConfigSchema.optional(),\n /** Generate robots.txt (with a Sitemap reference when available). */\n robots: z.boolean().default(true),\n rss: rssConfigSchema.prefault({}),\n /** Generate sitemap.xml (requires deployment.site). */\n sitemap: z.boolean().default(true),\n /** The documented product, as a homepage `SoftwareApplication` node. */\n software: z\n .union([z.boolean(), softwareConfigSchema])\n .optional()\n .transform((value): SoftwareResolved | undefined => {\n if (value === true) {\n return softwareConfigSchema.parse({});\n }\n return value === false ? undefined : value;\n }),\n /** Emit schema.org JSON-LD in each page's <head>. */\n structuredData: z.boolean().default(true),\n /** X (Twitter) account attribution for share cards. */\n x: xConfigSchema.default({}),\n});\n\n/**\n * The GitHub instance's origin, normalized. Repo, edit, and API URLs are all\n * built by appending to this, so it is reduced to a bare origin: a trailing\n * slash would double the separator, and a path, query, fragment, or embedded\n * credentials would land in the middle of every generated link.\n */\nconst githubOriginSchema = httpUrlSchema.transform(\n (value) => new URL(value).origin\n);\n\n/**\n * A REST API base: an origin plus an optional path, since Enterprise Server\n * serves the API from `/api/v3`. Anything past the path is dropped for the same\n * reason the host is reduced — `/repos/{owner}/{repo}` is appended as a string,\n * so a query would swallow the route and a fragment would strip it from the\n * request entirely, leaving a lookup that silently returns the wrong thing.\n */\nconst githubApiSchema = httpUrlSchema.transform((value) => {\n const { origin, pathname } = new URL(value);\n return trimEnd(`${origin}${pathname}`, \"/\");\n});\n\nconst githubConfigSchema = z.strictObject({\n /** REST API base. Derived from `host` when unset. */\n api: githubApiSchema.optional(),\n branch: z.string().default(\"main\"),\n /** Path from the repo root to the project root (for monorepos). */\n dir: z.string().optional(),\n /** Origin of the GitHub instance, for Enterprise installations. */\n host: githubOriginSchema.default(PUBLIC_HOST_URL),\n owner: z.string(),\n repo: z.string(),\n});\n\n/** The theme fields the structural code-theme check inspects. */\ninterface CodeThemeFields {\n colors?: unknown;\n settings?: unknown;\n tokenColors?: unknown;\n}\n\n/** A non-null, non-array object — the floor for a theme and its `colors` map. */\nconst isThemeObject = <Value>(value: Value): value is Value & CodeThemeFields =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst codeThemeSchema = z.custom<CodeTheme>((value) => {\n if (isString(value)) {\n return true;\n }\n if (!isThemeObject(value)) {\n return false;\n }\n // Token rules live in `settings` (Shiki's canonical field, also the TextMate\n // form themes like createCssVariablesTheme() produce) or `tokenColors` (the\n // VS Code spelling Shiki falls back to). A colors-only theme (editor fg/bg,\n // no token rules) is also valid — Shiki renders it from `colors` alone. Each\n // field present must have the right shape, and at least one must be present.\n const settingsValid =\n value.settings === undefined || Array.isArray(value.settings);\n const tokenColorsValid =\n value.tokenColors === undefined || Array.isArray(value.tokenColors);\n const colorsValid = value.colors === undefined || isThemeObject(value.colors);\n const hasContent =\n value.settings !== undefined ||\n value.tokenColors !== undefined ||\n value.colors !== undefined;\n return settingsValid && tokenColorsValid && colorsValid && hasContent;\n}, \"Expected a Shiki theme name or custom theme object\");\n\nconst codeBlockThemeSchema = z.strictObject({\n dark: codeThemeSchema.default(\"github-dark\"),\n light: codeThemeSchema.default(\"github-light\"),\n});\n\nconst codeBlocksConfigSchema = z.strictObject({\n theme: codeBlockThemeSchema.prefault({}),\n});\n\n/**\n * `<Component />` example previews. A string is shorthand for `{ source }`:\n * where examples live, relative to the project root (default `examples`).\n * `source` may be a glob (anything with `*`/`?`/`[]`/`{}`/`!`), in which case\n * only matching files are discovered and each `<Component path>` key is\n * relative to the glob's static prefix — use this for a registry layout that\n * colocates component sources with their examples\n * (`registry/<pkg>/**\\/examples/*`), leaving the sources (which have no\n * default export to wrap) out.\n *\n * `css` names a stylesheet (relative to the project root) injected into every\n * preview frame after Blume's default tokens. Previews render in an isolated\n * iframe that the site's docs styles never reach, so this is where design\n * tokens for the previewed components live — e.g. shadcn variables and\n * `@theme` mappings. Tailwind itself is already provided; the file should\n * hold tokens and custom styles, not another `@import \"tailwindcss\"`.\n */\nconst examplesConfigSchema = z\n .union([\n z.string(),\n z.strictObject({\n css: z.string().optional(),\n source: z.string().default(\"examples\"),\n }),\n ])\n .transform((value): { css?: string; source: string } =>\n isString(value) ? { source: value } : value\n );\n\n/**\n * \"Last updated\" timestamps for content pages. `false` (default) disables the\n * feature; `true` derives each page's date from git history; an object selects\n * the source explicitly. A page's `lastModified` frontmatter always wins.\n */\nconst lastModifiedConfigSchema = z.union([\n z.boolean(),\n z.strictObject({ type: z.enum([\"git\", \"frontmatter\"]).default(\"git\") }),\n]);\n\n/**\n * How the \"last updated\" stamp and the changelog timeline render their dates —\n * a curated pass-through to `Intl.DateTimeFormat`, shared by both surfaces so\n * they read alike. Defaults to `{ dateStyle: \"long\" }`. Both stamps format in\n * UTC unless a `timeZone` is given, so a date reads the same regardless of the\n * build machine's zone. `dateStyle` is a preset that can't be combined with the\n * individual component fields (`year`, `month`, …), matching `Intl`'s own rule.\n */\nconst dateFormatConfigSchema = z\n .strictObject({\n /** Calendar system (e.g. `japanese`, `buddhist`). */\n calendar: z.string().optional(),\n /** Preset date length; mutually exclusive with the component fields. */\n dateStyle: z.enum([\"full\", \"long\", \"medium\", \"short\"]).optional(),\n /** Day representation. */\n day: z.enum([\"numeric\", \"2-digit\"]).optional(),\n /** Era representation (e.g. the Japanese imperial era). */\n era: z.enum([\"long\", \"short\", \"narrow\"]).optional(),\n /** Month representation. */\n month: z.enum([\"numeric\", \"2-digit\", \"long\", \"short\", \"narrow\"]).optional(),\n /** Numbering system (e.g. `latn`, `arab`). */\n numberingSystem: z.string().optional(),\n /** IANA time zone (e.g. `Asia/Tokyo`). Defaults to `UTC`. */\n timeZone: z.string().optional(),\n /** Weekday representation. */\n weekday: z.enum([\"long\", \"short\", \"narrow\"]).optional(),\n /** Year representation. */\n year: z.enum([\"numeric\", \"2-digit\"]).optional(),\n })\n .refine(\n (value) =>\n value.dateStyle === undefined ||\n (value.weekday === undefined &&\n value.era === undefined &&\n value.year === undefined &&\n value.month === undefined &&\n value.day === undefined),\n {\n message:\n \"dateFormat.dateStyle can't be combined with weekday/era/year/month/day; use one or the other.\",\n }\n );\n\n/** Code-block rendering options (`markdown.code`). */\nconst codeConfigSchema = z.strictObject({\n /**\n * Show a brand language icon in the code-block header (TypeScript, Python,\n * …). On by default; recognized languages only.\n */\n icons: z.boolean().default(true),\n /**\n * Wrap long lines instead of scrolling horizontally. Off by default, so\n * code keeps its original line breaks and overflows into a scroll area.\n */\n wrap: z.boolean().default(false),\n});\n\nconst markdownConfigSchema = z.strictObject({\n /** Code-block rendering: language icons and line wrapping. */\n code: codeConfigSchema.prefault({}),\n codeBlocks: codeBlocksConfigSchema.prefault({}),\n /**\n * Wrap each `##`–`######` heading in a link to its own anchor so readers can\n * click to copy, bookmark, or share a permalink to that section. On by\n * default; set to `false` to render plain headings.\n */\n headingAnchors: z.boolean().default(true),\n /**\n * Make content images click-to-zoom (open in a lightbox). On by default;\n * opt a single image out with `data-no-zoom`.\n */\n imageZoom: z.boolean().default(true),\n});\n\n/** React island behavior (`react`). */\nconst reactConfigSchema = z.strictObject({\n /**\n * Auto-memoize React components/hooks with the React Compiler\n * (`babel-plugin-react-compiler`). On by default whenever React is enabled\n * (a project `.tsx`/`.jsx`, a React island/example/override, or Ask AI); set\n * to `false` to skip the compiler's babel pass.\n */\n compiler: z.boolean().default(true),\n});\n\n/**\n * A single spec rendered by the API reference. `spec` is a local path or an\n * `http(s)` URL (an OpenAPI document under `openapi`, an AsyncAPI document\n * under `asyncapi`).\n */\nconst openapiSourceSchema = z.strictObject({\n /** Include generated pages from this spec in llms.txt/llms-full.txt. */\n includeInLlms: z.boolean().default(true),\n /** Include generated pages from this spec in site search. */\n includeInSearch: z.boolean().default(true),\n /** Nav/section label for this source. */\n label: z.string().optional(),\n /** Emit noindex metadata and omit generated pages from the sitemap. */\n noindex: z.boolean().default(false),\n /** Per-source route; defaults to the block's `route` (or a derived path). */\n route: z.string().optional(),\n /**\n * Append the English \"Reference for the … endpoint in the … API.\" sentence\n * to every generated operation page's meta description. On by default, so\n * terse specs still ship distinct, snippet-length descriptions; set to\n * `false` on a non-English site to describe pages with the spec's own prose\n * alone (falling back to the page title when an operation has none).\n */\n seoDescriptionSuffix: z.boolean().default(true),\n /** Local path or `http(s)` URL to the spec. */\n spec: z.string(),\n});\n\nexport type OpenApiSource = z.input<typeof openapiSourceSchema>;\n\n/**\n * Arbitrary Scalar API-reference options forwarded verbatim to the generated\n * `<ScalarComponent>` (Scalar renderer only). A passthrough map — Blume doesn't\n * mirror Scalar's full config surface — so keys like `localization`, `agent`,\n * `hideTestRequestButton`, or `orderSchemaPropertiesBy` all flow through. These\n * take precedence over Blume's own derived config (spec, theme), so this is a\n * full escape hatch; the dedicated `theme` field is the ergonomic shorthand.\n */\nconst scalarConfigSchema = z.record(z.string(), z.unknown()).optional();\n\n/**\n * The interactive \"Try it\" panel on operation pages (Blume renderer). On by\n * default; `false` hides it. The object form keeps it on and sets `proxy`,\n * the CORS escape hatch the Send button routes requests through: a proxy URL,\n * or `true` for the built-in `/_api-proxy` endpoint (which requires\n * `deployment.output: \"server\"`). Booleans normalize to the object shape so\n * consumers read `{ enabled, proxy }` directly. `proxy` applies to the\n * HTTP-posting playgrounds (OpenAPI, GraphQL) — an event composer's WebSocket\n * connect is direct. One schema for every reference block, so the\n * normalization can never drift between them.\n */\nconst playgroundConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n enabled: z.boolean().default(true),\n proxy: z.union([z.boolean(), z.string()]).default(false),\n }),\n ])\n .default(true)\n .transform((value) =>\n isBoolean(value) ? { enabled: value, proxy: false } : value\n );\n\n/**\n * The shared shape of the API-reference blocks — only the mount route and\n * code-sample defaults differ per spec kind, so each block declares just\n * those (the GraphQL block derives from this via omit/extend below).\n */\nconst referenceConfigSchema = (defaults: {\n codeSamples: string[];\n route: string;\n}) =>\n z.strictObject({\n /** Code-sample languages/tools shown per operation (Blume renderer). */\n codeSamples: z.array(z.string()).default(defaults.codeSamples),\n enabled: z.boolean().default(false),\n /** Start nested schema rows expanded rather than collapsed (Blume renderer). */\n expandSchemas: z.boolean().default(false),\n /** The \"Try it\" panel; see {@link playgroundConfigSchema}. */\n playground: playgroundConfigSchema,\n /** Who renders the reference: Blume's own UI, or the embedded Scalar SPA. */\n renderer: z.enum([\"blume\", \"scalar\"]).default(\"blume\"),\n /** Where the reference mounts. */\n route: z.string().default(defaults.route),\n /** Extra Scalar config forwarded to `<ScalarComponent>` (Scalar renderer only). */\n scalar: scalarConfigSchema,\n /** One or more specs; each renders on its own route by default. */\n sources: z.array(openapiSourceSchema).default([]),\n /** Shorthand for a single source: `sources: [{ spec }]`. */\n spec: z.string().optional(),\n /** Scalar theme name (Scalar renderer only). */\n theme: z.string().optional(),\n });\n\n/**\n * OpenAPI reference. By default (`renderer: \"blume\"`) Blume parses the spec with\n * Scalar's parser and renders its own UI: one real page per operation, grouped\n * by tag in the sidebar and included in site search, llms.txt, and OG. Set\n * `renderer: \"scalar\"` to fall back to the embedded Scalar SPA (a single\n * self-contained route that doesn't weave into the sidebar or search).\n */\nconst openapiConfigSchema = referenceConfigSchema({\n codeSamples: [\"curl\", \"js\", \"python\"],\n route: \"/reference\",\n});\n\n/**\n * AsyncAPI reference. Same shape as {@link openapiConfigSchema}: by default\n * (`renderer: \"blume\"`) Blume normalizes the spec to AsyncAPI 3.x and renders\n * its own UI — one real page per operation — with `renderer: \"scalar\"` as the\n * embedded-SPA opt-out. Only the defaults differ: the reference mounts at\n * `/events`, and empty `codeSamples` means every tool the operation's protocol\n * binding suggests.\n */\nconst asyncapiConfigSchema = referenceConfigSchema({\n codeSamples: [],\n route: \"/events\",\n});\n\n/**\n * A single GraphQL schema rendered by the reference. `spec` is a local path or\n * an `http(s)` URL to SDL text or an introspection JSON result; `endpoint` is\n * the live GraphQL API URL the playground and code samples target (a schema,\n * unlike an OpenAPI document, names no server).\n */\nconst graphqlSourceSchema = openapiSourceSchema.extend({\n /** URL of the live GraphQL endpoint (playground + code samples). */\n endpoint: z.string().optional(),\n});\n\nexport type GraphqlSource = z.input<typeof graphqlSourceSchema>;\n\n/**\n * GraphQL reference. Blume lowers the schema (SDL or introspection JSON) to\n * one real page per root field — grouped as Queries/Mutations/Subscriptions —\n * plus one page per named type (Objects, Input Objects, Enums, Interfaces,\n * Unions, Scalars), all included in the sidebar, search, llms.txt, and OG.\n * Always Blume-rendered: the Scalar SPA reads OpenAPI documents only, so the\n * block declares no `renderer`/`scalar`/`theme` escape hatches.\n */\nconst graphqlConfigSchema = referenceConfigSchema({\n codeSamples: [\"curl\", \"js\", \"python\"],\n route: \"/graphql\",\n})\n // No `renderer`/`scalar`/`theme` escape hatches (the Scalar SPA reads\n // OpenAPI documents only) and no `expandSchemas` (GraphQL field tables have\n // no nesting) — everything else, the playground normalization included, is\n // the shared reference shape.\n .omit({ expandSchemas: true, renderer: true, scalar: true, theme: true })\n .extend({\n /** Default live endpoint URL for every source (per-source `endpoint` wins). */\n endpoint: z.string().optional(),\n /** One or more schemas; each renders on its own route by default. */\n sources: z.array(graphqlSourceSchema).default([]),\n });\n\n/**\n * Opt-in custom frontmatter keys. `extend` maps each extra key a project's\n * pages may carry (e.g. `owner`, `reviewedAt`) to a validation schema; the\n * page schema stays strict for everything else, so typo-catching is preserved.\n * Schemas are consumed through the Standard Schema `~standard` contract —\n * never Zod's own API — so the consumer's zod (any version), Valibot, or\n * ArkType all work (see `standard-schema.ts`). Every declared key is validated\n * on every page, absent ones included, so a required schema enforces the key\n * site-wide; mark it `.optional()` to validate only when present. Built-in\n * frontmatter fields can't be redeclared — they're load-bearing (routing,\n * sidebar, SEO), and shadowing one would silently change its semantics.\n */\nconst frontmatterConfigSchema = z.strictObject({\n extend: customKeySchemaRecord(\"frontmatter.extend\"),\n});\n\n/** Full user-facing config schema. All fields optional with defaults. */\n/**\n * Table-of-contents config. `true`/`false` toggles it; an object narrows the\n * heading range. Normalized to `{ enabled, minLevel, maxLevel }` (default: on,\n * H2–H3, matching the historical hardcoded range).\n */\nconst tocConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n maxHeadingLevel: z.number().int().min(1).max(6).optional(),\n minHeadingLevel: z.number().int().min(1).max(6).optional(),\n }),\n ])\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return { enabled: value, maxLevel: 3, minLevel: 2 };\n }\n return {\n enabled: true,\n maxLevel: value.maxHeadingLevel ?? 3,\n minLevel: value.minHeadingLevel ?? 2,\n };\n })\n // Checked after defaults apply, so `{ minHeadingLevel: 5 }` (default max 3)\n // is caught too — an inverted range would silently render an empty TOC.\n .refine((value) => value.minLevel <= value.maxLevel, {\n message:\n \"toc.minHeadingLevel must be less than or equal to toc.maxHeadingLevel.\",\n });\n\nexport const blumeConfigSchema = z\n .strictObject({\n ai: aiConfigSchema.prefault({}),\n analytics: analyticsConfigSchema.optional(),\n asyncapi: asyncapiConfigSchema.prefault({}),\n banner: bannerConfigSchema.optional(),\n /**\n * Site-wide mount point prepended to every generated route (e.g. `/docs`),\n * while staying invisible to the sidebar/nav tree. Distinct from a per-source\n * `prefix` (which creates a group) and from `deployment.base` (Astro's\n * host-subdirectory base); the two compose. Normalized to `\"\"` or `/seg`.\n */\n basePath: z\n .string()\n .optional()\n .transform((value) => normalizeBasePath(value)),\n content: contentConfigSchema.prefault({}),\n /**\n * Date presentation for the \"last updated\" stamp and the changelog timeline.\n * Pass-through `Intl.DateTimeFormat` options; defaults to `{ dateStyle: \"long\" }`.\n */\n dateFormat: dateFormatConfigSchema.default({ dateStyle: \"long\" }),\n deployment: deploymentConfigSchema.prefault({}),\n description: z.string().optional(),\n /**\n * Where `<Component path>` resolves live previews and their source from.\n * A string is shorthand for `{ source }` — the directory (or glob, for\n * colocated registry layouts) under the project root that holds example\n * files. The object form adds `css`: a stylesheet injected into every\n * preview frame (design tokens, shadcn variables, `@theme` mappings).\n */\n examples: examplesConfigSchema.prefault(\"examples\"),\n export: exportConfigSchema.prefault(false),\n feedback: z.boolean().default(true),\n /** Opt-in custom frontmatter keys, validated by user-supplied schemas. */\n frontmatter: frontmatterConfigSchema.prefault({}),\n github: githubConfigSchema.optional(),\n graphql: graphqlConfigSchema.prefault({}),\n i18n: i18nConfigSchema.optional(),\n image: imageConfigSchema.prefault({}),\n integrations: z.array(z.custom<AstroIntegration>()).default([]),\n lastModified: lastModifiedConfigSchema.default(false),\n logo: logoConfigSchema.optional(),\n markdown: markdownConfigSchema.prefault({}),\n navigation: navigationConfigSchema.prefault({}),\n openapi: openapiConfigSchema.prefault({}),\n react: reactConfigSchema.prefault({}),\n redirects: z.array(redirectSchema).default([]),\n search: searchConfigSchema.prefault({}),\n seo: seoConfigSchema.prefault({}),\n theme: themeConfigSchema.prefault({}),\n title: z.string().default(\"Documentation\"),\n toc: tocConfigSchema,\n versions: versionsConfigSchema.optional(),\n })\n .superRefine((config, ctx) => {\n // A version id that is also a configured locale code would make a leading\n // `<id>/` directory ambiguous between the two axes — refuse it outright so\n // detection order (version first, then locale) never has to guess.\n if (config.versions && config.i18n) {\n const localeCodes = new Set(\n config.i18n.locales.map((locale) => locale.code.toLowerCase())\n );\n for (const [position, version] of config.versions.archived.entries()) {\n if (localeCodes.has(version.id.toLowerCase())) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Version id \"${version.id}\" is also a configured locale code — rename the version (e.g. \"v${version.id}\").`,\n path: [\"versions\", \"archived\", position, \"id\"],\n });\n }\n }\n }\n // A custom key is declared site-wide (`frontmatter.extend`) or per-type\n // (`content.types`), never both — two schemas for one key would make\n // precedence on pages of that type ambiguous.\n for (const [typeName, typeConfig] of Object.entries(config.content.types)) {\n for (const key of Object.keys(typeConfig.frontmatter)) {\n if (Object.hasOwn(config.frontmatter.extend, key)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `\"${key}\" is already declared in frontmatter.extend and cannot be redeclared for type \"${typeName}\".`,\n path: [\"content\", \"types\", typeName, \"frontmatter\", key],\n });\n }\n }\n // A facet with no declared key could never carry a value — pages can't\n // even set the key — so it's a config mistake, caught here where both\n // the per-type map and the site-wide extend are visible.\n for (const [position, facet] of typeConfig.facets.entries()) {\n if (\n !(\n Object.hasOwn(typeConfig.frontmatter, facet) ||\n Object.hasOwn(config.frontmatter.extend, facet)\n )\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Facet \"${facet}\" for type \"${typeName}\" is not a declared custom frontmatter key — add it to the type's frontmatter map or frontmatter.extend.`,\n path: [\"content\", \"types\", typeName, \"facets\", position],\n });\n }\n }\n }\n });\n\n/** Resolved config: every field present after defaults are applied. */\nexport type ResolvedConfig = z.infer<typeof blumeConfigSchema>;\n/** Resolved `dateFormat`: the `Intl.DateTimeFormat` options both date stamps share. */\nexport type ResolvedDateFormat = z.infer<typeof dateFormatConfigSchema>;\n/** Resolved `frontmatter.extend`: custom key → user-supplied schema. */\nexport type FrontmatterExtend = Record<string, StandardSchema>;\n/** Resolved i18n block (present only when the project opts into i18n). */\nexport type ResolvedI18nConfig = z.infer<typeof i18nConfigSchema>;\n/** A configured locale with display metadata. */\nexport type LocaleConfig = z.infer<typeof localeSchema>;\n/** Resolved versions block (present only when the project opts into versioning). */\nexport type ResolvedVersionsConfig = z.infer<typeof versionsConfigSchema>;\n/** A configured archived (frozen) version. */\nexport type ArchivedVersionConfig = z.infer<typeof archivedVersionSchema>;\n/**\n * User-authored config, straight off the schema. The public, hand-documented\n * authoring type is `BlumeConfig` in `./config-input.ts`, which a compile-time\n * guard keeps structurally identical to this.\n */\nexport type BlumeConfigInput = z.input<typeof blumeConfigSchema>;\n/** A configured search backend. */\nexport type SearchProvider = (typeof searchProviders)[number];\n/** Resolved robots.txt `Content-Signal` preferences (`null` when disabled). */\nexport type ContentSignals = z.infer<typeof contentSignalsSchema>;\n/** The resolved per-signal policy object (present when signals are enabled). */\nexport type ContentSignalPolicy = NonNullable<ContentSignals>;\n",
|
|
9
|
+
"import type { AstroIntegration } from \"astro\";\nimport { z } from \"zod\";\n\nimport type { ComponentMarkdown } from \"../ai/component-markdown.ts\";\nimport type { CodeTheme } from \"../markdown/themes.ts\";\nimport { normalizeRoute } from \"../openapi/references.ts\";\nimport { normalizeXHandle } from \"../seo/x-handle.ts\";\nimport { FONT_SLUGS, isFontSlug } from \"../theme/fonts.ts\";\nimport { normalizeBasePath } from \"./base-path.ts\";\nimport { PUBLIC_HOST_URL } from \"./github.ts\";\nimport { uiLocaleOverridesSchema } from \"./i18n-ui.ts\";\nimport { openInChatProviders } from \"./open-in-chat.ts\";\nimport type { ContentSource } from \"./sources/types.ts\";\nimport { isStandardSchema } from \"./standard-schema.ts\";\nimport type { StandardSchema } from \"./standard-schema.ts\";\nimport { trimEnd } from \"./trim.ts\";\n\n/**\n * An absolute HTTP(S) URL, for any field that lands verbatim in an `href` —\n * the header repo mark, the GitHub instance origin. Zod's bare `z.url()` also\n * admits `javascript:` and `data:`, which would render as a script link on\n * every page.\n */\nconst httpUrlSchema = z.url({ protocol: /^https?$/u });\n\n/**\n * Public Blume schemas.\n *\n * These are exported from `blume/schema` so migration tools, editor\n * integrations, and the runtime share a single source of validation truth.\n */\n\n// ---------------------------------------------------------------------------\n// Shared primitives\n// ---------------------------------------------------------------------------\n\n// `typeof` checks live in named predicates (the form the oxlint anti-slop\n// config sanctions); generic so each site keeps its own union narrowing.\nconst isString = <Value>(value: Value): value is Value & string =>\n typeof value === \"string\";\n\nconst isBoolean = <Value>(value: Value): value is Value & boolean =>\n typeof value === \"boolean\";\n\n/** Icon inputs in serializable contexts (frontmatter, meta files). */\nconst iconName = z.string().min(1);\n\n/** Default include glob for filesystem-backed content sources. */\nconst DEFAULT_CONTENT_GLOB = \"**/*.{md,mdx}\";\n\nconst hydrationMode = z.enum([\"load\", \"idle\", \"visible\", \"media\", \"only\"]);\nexport type HydrationMode = z.infer<typeof hydrationMode>;\n\n/**\n * A publish date in frontmatter. YAML auto-parses an unquoted `2026-01-01` into\n * a `Date`, so accept either form and normalize to an ISO string.\n */\nconst dateSchema = z\n .union([z.string(), z.date()])\n .transform((value) => (value instanceof Date ? value.toISOString() : value));\n\n/**\n * How a sidebar group renders:\n * - `flat`: a non-collapsible header with its items listed beneath (default).\n * - `group`: a collapsible `<details>` disclosure.\n * - `page`: a single row that drills into a sub-panel showing only this group's\n * items, with a back arrow at the top.\n */\nconst sidebarDisplaySchema = z.enum([\"flat\", \"group\", \"page\"]);\nexport type SidebarDisplay = z.infer<typeof sidebarDisplaySchema>;\n\n// ---------------------------------------------------------------------------\n// Page frontmatter\n// ---------------------------------------------------------------------------\n\nconst sidebarMetaSchema = z.strictObject({\n badge: z.string().optional(),\n /**\n * Render mode for this page's folder group. Only meaningful on a folder's\n * `index` page — it configures the group, not the page. Overrides the\n * folder's `meta.ts` `display` and the global `navigation.sidebar.display`.\n */\n display: sidebarDisplaySchema.optional(),\n hidden: z.boolean().default(false),\n icon: iconName.optional(),\n label: z.string().optional(),\n order: z.number().optional(),\n});\n\n/**\n * An X handle, normalized to a leading `@` — `twitter:site`/`twitter:creator`\n * require it, and a handle configured without one is the obvious typo to absorb\n * rather than reject. The layouts normalize again on the way out, since a page's\n * `seo.x.creator` reaches them straight from unvalidated frontmatter.\n */\nconst xHandleSchema = z.string().transform(normalizeXHandle).optional();\n\nconst seoMetaSchema = z.strictObject({\n canonical: z.url().optional(),\n description: z.string().optional(),\n image: z.string().optional(),\n noindex: z.boolean().default(false),\n title: z.string().optional(),\n /** Per-page X attribution — a guest post credits its own author. */\n x: z.strictObject({ creator: xHandleSchema }).optional(),\n});\n\nconst searchMetaSchema = z.strictObject({\n boost: z.number().optional(),\n exclude: z.boolean().default(false),\n tags: z.array(z.string()).optional(),\n});\n\nconst aiMetaSchema = z.strictObject({\n /** Exclude this page from llms.txt and llms-full.txt. */\n exclude: z.boolean().default(false),\n});\n\nconst changelogMetaSchema = z.strictObject({\n category: z.string().optional(),\n date: dateSchema.optional(),\n version: z.string().optional(),\n});\n\n/**\n * A post author: a bare name/handle, or an object with a name plus optional\n * avatar/URL. The object is passthrough so richer author metadata (social\n * handles, roles) survives untouched — Blume doesn't render authors yet, so\n * this exists to preserve the field (common on blog/changelog pages) rather\n * than have a strict scan reject it.\n */\nconst authorSchema = z.union([\n z.string(),\n z\n .object({\n avatar: z.string().optional(),\n image: z.string().optional(),\n name: z.string(),\n url: z.string().optional(),\n })\n .catchall(z.unknown()),\n]);\n\n// Shorthand defaults use `.prefault()`, not `.default()`, wherever the value\n// must still be parsed — Zod 4's `.default()` returns the value as-is, so a\n// `.default({})` on an object with inner defaults (or a transform) would\n// resolve to a bare `{}` instead of the fully-defaulted shape.\n\n/** Frontmatter accepted on any content page. */\nconst pageMetaBaseSchema = z.strictObject({\n ai: aiMetaSchema.prefault({}),\n /** Post author(s) for blog/changelog content; preserved, not yet rendered. */\n authors: z.union([authorSchema, z.array(authorSchema)]).optional(),\n changelog: changelogMetaSchema.optional(),\n /** Publish date for feed-backed content like blog/changelog. */\n date: dateSchema.optional(),\n deprecated: z.boolean().default(false),\n description: z.string().optional(),\n draft: z.boolean().default(false),\n hidden: z.boolean().default(false),\n icon: iconName.optional(),\n /** Overrides the git-derived last-modified date when `lastModified` is on. */\n lastModified: dateSchema.optional(),\n noindex: z.boolean().default(false),\n search: searchMetaSchema.prefault({}),\n seo: seoMetaSchema.prefault({}),\n sidebar: sidebarMetaSchema.prefault({}),\n slug: z.string().optional(),\n title: z.string().optional(),\n // No default: an absent `type` must fall through to `content.defaultType`.\n type: z.string().optional(),\n});\n\nexport const pageMetaSchema = pageMetaBaseSchema;\n\nexport type PageMeta = z.infer<typeof pageMetaBaseSchema>;\nexport type PageMetaInput = z.input<typeof pageMetaBaseSchema>;\n\n/** The fully-defaulted front matter of a page that declares nothing. */\nconst EMPTY_PAGE_META: PageMeta = pageMetaBaseSchema.parse({});\n\n/**\n * The page schema as the generated content collections declare it, so\n * `entry.data` is typed and normalized (dates as ISO strings, X handles with\n * their `@`) the same way the scan's `PageMeta` is. Two deliberate loosenings\n * over {@link pageMetaSchema}: custom keys (`frontmatter.extend`, per-type\n * maps) pass through instead of failing the strict parse, and a page the\n * strict parse rejects resolves to the empty defaults instead of throwing.\n * The scan has already dropped such a page with a `BLUME_FRONTMATTER_INVALID`\n * diagnostic — Blume continues without it unless `--strict` — so the\n * collection must not turn that dropped page into a failed content sync.\n */\nexport const pageCollectionSchema = pageMetaBaseSchema\n .loose()\n // oxlint-disable-next-line promise/prefer-await-to-then -- zod's catch, not a promise\n .catch(() => EMPTY_PAGE_META);\n\n/** Built-in page frontmatter keys; custom keys must never redeclare one. */\nconst BUILT_IN_PAGE_META_KEYS = new Set<string>(\n pageMetaBaseSchema.keyof().options\n);\n\n/**\n * A map of custom frontmatter keys to user-supplied validation schemas,\n * consumed through the Standard Schema `~standard` contract — never Zod's own\n * API — so the consumer's zod (any version), Valibot, or ArkType all work\n * (see `standard-schema.ts`). Shared by the site-wide `frontmatter.extend`\n * and the per-type `content.types.<type>.frontmatter` maps. Built-in\n * frontmatter fields can't be redeclared — they're load-bearing (routing,\n * sidebar, SEO), and shadowing one would silently change its semantics.\n */\nconst customKeySchemaRecord = (where: string) =>\n z\n .record(\n z.string(),\n z.custom<StandardSchema>(isStandardSchema, {\n message:\n \"Expected a Standard Schema (e.g. a Zod schema — any Zod version works).\",\n })\n )\n .default({})\n .superRefine((value, ctx) => {\n for (const key of Object.keys(value)) {\n if (BUILT_IN_PAGE_META_KEYS.has(key)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `\"${key}\" is a built-in frontmatter field and cannot be redeclared via ${where}.`,\n path: [key],\n });\n }\n }\n });\n\n// ---------------------------------------------------------------------------\n// Folder meta (meta.ts)\n// ---------------------------------------------------------------------------\n\nexport const folderMetaSchema = z.strictObject({\n collapsed: z.boolean().optional(),\n /** Render mode for this group; overrides `navigation.sidebar.display`. */\n display: sidebarDisplaySchema.optional(),\n icon: iconName.optional(),\n order: z.number().optional(),\n /** Explicit child ordering by slug segment (without numeric prefix). */\n pages: z.array(z.string()).optional(),\n title: z.string().optional(),\n});\n\nexport type FolderMeta = z.infer<typeof folderMetaSchema>;\n\n// ---------------------------------------------------------------------------\n// Project config (blume.config.ts)\n// ---------------------------------------------------------------------------\n\n/** The logo mark: a single image path/URL, or light/dark variants with alt text. */\nconst logoImageSchema = z.union([\n z.string(),\n z.strictObject({\n alt: z.string().optional(),\n dark: z.string().optional(),\n light: z.string().optional(),\n }),\n]);\n\n/**\n * Site logo. A bare string is the image shorthand. The object form splits the\n * brand into an optional `image` mark and optional wordmark `text` so a site can\n * show an image-only logo (a mark with the wordmark baked in), a text-only logo,\n * or both. Omit `text` to fall back to the site title; set `text: \"\"` to render\n * the mark alone. `href` overrides the brand link (defaults to `/`).\n */\nconst logoConfigSchema = z.union([\n z.string(),\n z.strictObject({\n href: z.string().optional(),\n image: logoImageSchema.optional(),\n text: z.string().optional(),\n }),\n]);\n\n/** Site-wide announcement banner: a string, or text with an optional link. */\nconst bannerConfigSchema = z.union([\n z.string(),\n z.strictObject({\n content: z.string(),\n /** Show a dismiss button; the choice is remembered per visitor. */\n dismissible: z.boolean().default(false),\n /** Stable key for remembering dismissal; defaults to the content. */\n id: z.string().optional(),\n link: z.strictObject({ href: z.string(), text: z.string() }).optional(),\n }),\n]);\n\n/** A local filesystem content source. */\nconst filesystemSourceSchema = z.strictObject({\n exclude: z.array(z.string()).default([\"**/_*\", \"**/.*\"]),\n include: z.array(z.string()).default([DEFAULT_CONTENT_GLOB]),\n /** Namespaces the source's routes under `/<prefix>/`. */\n prefix: z.string().optional(),\n root: z.string().default(\"docs\"),\n type: z.literal(\"filesystem\"),\n});\n\n/**\n * Remote Markdown/MDX fetched over HTTP. Enumerate files either explicitly\n * (`files` against a raw `url` base) or from a GitHub repo subtree (`github`).\n * The token, when needed, comes from `GITHUB_TOKEN` — never inlined here.\n */\nconst mdxRemoteSourceSchema = z.strictObject({\n /** Explicit list of source-relative file paths to fetch from `url`. */\n files: z.array(z.string()).optional(),\n /** Enumerate a GitHub repo subtree via the git-trees API. */\n github: z\n .strictObject({\n owner: z.string(),\n path: z.string().default(\"\"),\n ref: z.string().default(\"main\"),\n repo: z.string(),\n })\n .optional(),\n /** Glob patterns applied to enumerated refs. */\n include: z.array(z.string()).default([DEFAULT_CONTENT_GLOB]),\n /** Opt-in dev polling interval (seconds); omit to freeze for the session. */\n pollInterval: z.number().positive().optional(),\n /** Namespaces the source's routes under `/<prefix>/`. */\n prefix: z.string().optional(),\n type: z.literal(\"mdx-remote\"),\n /** Raw base URL, e.g. `https://raw.githubusercontent.com/acme/sdk/main/docs`. */\n url: z.string().optional(),\n});\n\n/** A Sanity dataset queried with GROQ; Portable Text bodies become Markdown. */\nconst sanitySourceSchema = z.object({\n /** Sanity API version (a date); default `2024-01-01`. */\n apiVersion: z.string().optional(),\n dataset: z.string(),\n /** Field paths mapping a document onto Blume meta + body. */\n fields: z\n .strictObject({\n body: z.string().optional(),\n description: z.string().optional(),\n lastModified: z.string().optional(),\n slug: z.string().optional(),\n title: z.string().optional(),\n })\n .optional(),\n /** Opt-in dev polling interval (seconds); omit to freeze for the session. */\n pollInterval: z.number().positive().optional(),\n prefix: z.string().optional(),\n projectId: z.string(),\n /** GROQ query selecting the documents to import. */\n query: z.string(),\n type: z.literal(\"sanity\"),\n});\n\n/** A Notion database; pages become entries, blocks become MDX. */\nconst notionSourceSchema = z.object({\n /** Max concurrent Notion API requests; default 3 (Notion's per-integration pace). */\n concurrency: z.number().positive().optional(),\n database: z.string(),\n /** Opt-in dev polling interval (seconds); omit to freeze for the session. */\n pollInterval: z.number().positive().optional(),\n prefix: z.string().optional(),\n /** Notion property names mapped onto Blume meta. */\n properties: z\n .strictObject({\n description: z.string().optional(),\n order: z.string().optional(),\n slug: z.string().optional(),\n status: z.string().optional(),\n title: z.string().optional(),\n })\n .optional(),\n /** Status value treated as published; others map to `draft`. Default `Published`. */\n publishedValue: z.string().optional(),\n type: z.literal(\"notion\"),\n});\n\n/**\n * An Obsidian vault, read in place. Wikilinks become route links and\n * `%%comments%%` are stripped at load time, so the vault stays the source of\n * truth — no export step and no generated notes in the repo.\n */\nconst obsidianSourceSchema = z.strictObject({\n /** Vault folder names to skip at any depth, in addition to dot-folders. */\n exclude: z.array(z.string()).optional(),\n /** Namespaces the source's routes under `/<prefix>/`; e.g. `vault`. */\n prefix: z.string().optional(),\n type: z.literal(\"obsidian\"),\n /** Vault directory, absolute or relative to the project root. */\n vault: z.string().min(1),\n});\n\n/**\n * A repo's GitHub Releases, materialized as `type: changelog` entries — release\n * notes become the changelog with no files to maintain. A private repo reads a\n * token from `GITHUB_TOKEN`; it is never inlined here.\n */\nconst githubReleasesSourceSchema = z.strictObject({\n /** Include draft releases (needs a token with repo write access). */\n drafts: z.boolean().optional(),\n /** Cap the number of releases materialized, newest-first. Default 100. */\n limit: z.number().positive().optional(),\n /** Repository owner (user or org). */\n owner: z.string(),\n /** Opt-in dev polling interval (seconds); omit to freeze for the session. */\n pollInterval: z.number().positive().optional(),\n /** Namespaces the source's routes under `/<prefix>/`; e.g. `changelog`. */\n prefix: z.string().optional(),\n /** Include prereleases. */\n prereleases: z.boolean().optional(),\n /** Repository name. */\n repo: z.string(),\n type: z.literal(\"github-releases\"),\n});\n\n/**\n * A user-provided `ContentSource` instance, passed straight through from\n * `blume.config.ts`. This is the extension point that lets adapters with custom\n * serializers (or any backend) ship without their SDKs touching core.\n */\nconst customSourceSchema = z.object({\n source: z.custom<ContentSource>(\n (val): val is ContentSource =>\n typeof val === \"object\" &&\n val !== null &&\n \"load\" in val &&\n typeof val.load === \"function\" &&\n \"name\" in val &&\n typeof val.name === \"string\",\n { message: \"custom source must be a ContentSource (with name + load)\" }\n ),\n type: z.literal(\"custom\"),\n});\n\n/** A single configured content source. */\nconst contentSourceSchema = z.discriminatedUnion(\"type\", [\n filesystemSourceSchema,\n mdxRemoteSourceSchema,\n githubReleasesSourceSchema,\n sanitySourceSchema,\n notionSourceSchema,\n obsidianSourceSchema,\n customSourceSchema,\n]);\n\n/** A resolved content-source config entry (post-defaults). */\nexport type ContentSourceConfig = z.infer<typeof contentSourceSchema>;\n\n/**\n * Per-type content definition. An object (rather than a bare frontmatter map)\n * so type-scoped concerns added later — search facets, templates — have a\n * home without a breaking config change.\n */\nconst contentTypeConfigSchema = z.strictObject({\n /**\n * Custom frontmatter keys whose values become filterable facets for pages\n * of this type — surfaced in search documents and filterable through the\n * MCP tools' `filters` input. Each name must be a custom key declared for\n * the type (in its `frontmatter` map or the site-wide `frontmatter.extend`),\n * checked at the config level where both maps are visible. Only string\n * (or number/boolean, stringified) values ever facet.\n */\n facets: z.array(z.string()).default([]),\n /**\n * Custom frontmatter keys for pages of this type, layered on top of the\n * site-wide `frontmatter.extend`. Every declared key is validated on every\n * page of the type — absent ones included — so a required schema enforces\n * the key type-wide while leaving other types untouched.\n */\n frontmatter: customKeySchemaRecord(\"content.types\"),\n});\n\nconst contentConfigSchema = z.strictObject({\n defaultType: z.string().default(\"doc\"),\n exclude: z.array(z.string()).default([\"**/_*\", \"**/.*\"]),\n include: z.array(z.string()).default([DEFAULT_CONTENT_GLOB]),\n pages: z.string().default(\"pages\"),\n root: z.string().default(\"docs\"),\n /**\n * Pluggable content sources. When omitted, the top-level\n * `root`/`include`/`exclude` desugar to one implicit filesystem source, so\n * existing projects are unchanged.\n */\n sources: z.array(contentSourceSchema).optional(),\n /**\n * Per-type content definitions, keyed by the frontmatter `type` they apply\n * to (including `defaultType`, for pages that set none).\n */\n types: z.record(z.string(), contentTypeConfigSchema).default({}),\n});\n\n/**\n * A header label that may localize: a plain string, or a map of locale code to\n * label (`{ en: \"Docs\", ja: \"ドキュメント\" }`). Resolved when each locale's\n * navigation is built — the active locale's entry wins, then the default\n * locale's, then the map's first entry — so a single-locale site can keep\n * plain strings and an i18n site can translate its header without forking the\n * config.\n */\nconst localizableLabelSchema = z.union([\n z.string(),\n z\n .record(z.string(), z.string())\n .refine((value) => Object.keys(value).length > 0, {\n message: \"Provide at least one locale's label.\",\n }),\n]);\n\nexport type LocalizableLabel = z.infer<typeof localizableLabelSchema>;\n\nconst navTabSchema = z.strictObject({\n // Rejected empty rather than accepted: an empty `href` would render a link to\n // nowhere, and it can't mean \"resolve it for me\" either — that's what\n // omitting the field does.\n href: z.string().min(1).optional(),\n icon: iconName.optional(),\n items: z\n .array(\n z.strictObject({\n description: z.string().optional(),\n icon: iconName.optional(),\n label: localizableLabelSchema,\n path: z.string(),\n tag: z.string().optional(),\n })\n )\n .optional(),\n label: localizableLabelSchema,\n path: z.string(),\n});\n\nconst navSelectorItemSchema = z.strictObject({\n description: z.string().optional(),\n icon: iconName.optional(),\n label: z.string(),\n path: z.string(),\n tag: z.string().optional(),\n});\n\nconst navSelectorSchema = z.strictObject({\n items: z.array(navSelectorItemSchema).default([]),\n kind: z.enum([\"dropdown\", \"language\", \"product\", \"version\"]),\n label: z.string(),\n});\n\nconst directoryModeSchema = z.enum([\"accordion\", \"card\", \"none\"]);\nexport type DirectoryMode = z.infer<typeof directoryModeSchema>;\n\n/** A node in an explicit sidebar config: a page reference or a group/link. */\nexport type SidebarItemConfig =\n | string\n | {\n label: string;\n badge?: string;\n directory?: DirectoryMode;\n display?: SidebarDisplay;\n href?: string;\n icon?: string;\n collapsed?: boolean;\n items?: SidebarItemConfig[];\n root?: string;\n };\n\n// Zod 4's `ZodType` defaults its Input parameter to `unknown` (it no longer\n// mirrors Output), so the recursive annotation names both — otherwise\n// `z.input` of anything containing this schema degrades to `unknown`.\nconst sidebarItemSchema: z.ZodType<SidebarItemConfig, SidebarItemConfig> =\n z.lazy(() =>\n z.union([\n z.string(),\n z.strictObject({\n badge: z.string().optional(),\n collapsed: z.boolean().optional(),\n directory: directoryModeSchema.optional(),\n display: sidebarDisplaySchema.optional(),\n href: z.string().optional(),\n icon: iconName.optional(),\n items: z.array(sidebarItemSchema).optional(),\n label: z.string(),\n root: z.string().optional(),\n }),\n ])\n );\n\nconst fontFallbackSchema = z.enum([\"sans\", \"serif\", \"mono\"]);\n\n/** Any family from a zero-config Astro provider, by name. */\nconst remoteFontSchema = z.strictObject({\n fallback: fontFallbackSchema.optional(),\n name: z.string().min(1),\n provider: z\n .enum([\"google\", \"fontsource\", \"bunny\", \"fontshare\"])\n .default(\"google\"),\n /** Character subsets to load; defaults to `latin` plus the locales' scripts. */\n subsets: z.array(z.string().min(1)).nonempty().optional(),\n weights: z\n .array(\n z.union([z.number().int().positive(), z.string().regex(/^\\d+\\.\\.\\d+$/u)])\n )\n .nonempty()\n .optional(),\n});\n\n/** One local `@font-face`: a file plus optional weight/style (else inferred). */\nconst localFontVariantSchema = z.strictObject({\n src: z.string().min(1),\n style: z.enum([\"normal\", \"italic\", \"oblique\"]).optional(),\n weight: z\n .union([\n z.number().int().positive(),\n z.string().regex(/^\\d+(?:\\.\\.\\d+)?$/u),\n ])\n .optional(),\n});\n\n/** A self-hosted family loaded from font files in the project. */\nconst localFontSchema = z.strictObject({\n fallback: fontFallbackSchema.optional(),\n name: z.string().min(1),\n variants: z.array(localFontVariantSchema).nonempty(),\n});\n\n/**\n * A role's font: a curated Google Font slug (see `theme/fonts.ts`), a\n * remote-provider family, or local font files. Bare strings must be curated\n * slugs so a typo fails with the supported list instead of a provider error.\n */\nconst fontValueSchema = z\n .union([z.string(), remoteFontSchema, localFontSchema])\n .superRefine((value, ctx) => {\n if (isString(value) && !isFontSlug(value)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Unknown font \"${value}\". Supported fonts: ${FONT_SLUGS.join(\", \")}. For any other family, use the object form: { name: \"...\" } (remote provider) or { name: \"...\", variants: [...] } (local files).`,\n });\n }\n });\n\n/**\n * An optional per-mode theme value: a string applies to both color modes; a\n * `{ light, dark }` object sets each mode individually (either may be\n * omitted to override a single mode).\n */\nconst perModeValueSchema = z\n .union([\n z.string(),\n z.strictObject({\n dark: z.string().optional(),\n light: z.string().optional(),\n }),\n ])\n .optional()\n .transform((value) =>\n isString(value) ? { dark: value, light: value } : value\n );\n\nconst themeConfigSchema = z.strictObject({\n accent: z\n .union([\n z.string(),\n z.strictObject({ dark: z.string(), light: z.string() }),\n ])\n .default(\"blue\")\n .transform((value) =>\n isString(value) ? { dark: value, light: value } : value\n ),\n action: z.string().optional(),\n background: perModeValueSchema,\n backgroundImage: perModeValueSchema,\n fonts: z\n .strictObject({\n body: fontValueSchema.default(\"inter\"),\n display: fontValueSchema.default(\"inter\"),\n mono: fontValueSchema.default(\"ibm-plex-mono\"),\n })\n .prefault({}),\n layout: z.enum([\"sidebar\"]).default(\"sidebar\"),\n mode: z.enum([\"system\", \"light\", \"dark\"]).default(\"system\"),\n radius: z.enum([\"none\", \"sm\", \"md\", \"lg\"]).default(\"md\"),\n});\n\n/** Public credentials for the Algolia search backend (sync key is an env var). */\nconst algoliaSearchSchema = z.strictObject({\n appId: z.string(),\n indexName: z.string(),\n searchApiKey: z.string(),\n});\n\n/** Public credentials for the Orama Cloud search backend. */\nconst oramaCloudSearchSchema = z.strictObject({\n apiKey: z.string(),\n endpoint: z.string(),\n /** Index id used by the build-time sync (with `ORAMA_PRIVATE_API_KEY`). */\n indexId: z.string().optional(),\n});\n\n/** Public credentials for a (self-hosted or cloud) Typesense backend. */\nconst typesenseSearchSchema = z.strictObject({\n collection: z.string(),\n host: z.string(),\n port: z.number().int().positive().optional(),\n protocol: z.enum([\"http\", \"https\"]).optional(),\n searchApiKey: z.string(),\n});\n\n/** Mixedbread semantic search: the store the server endpoint queries. */\nconst mixedbreadSearchSchema = z.strictObject({\n storeId: z.string(),\n});\n\nexport const searchProviders = [\n \"orama\",\n \"pagefind\",\n \"flexsearch\",\n \"algolia\",\n \"orama-cloud\",\n \"typesense\",\n \"mixedbread\",\n \"none\",\n] as const;\n\n/** Providers that need a config block, mapped to its `search.*` key. */\nconst PROVIDER_CONFIG_KEY = {\n algolia: \"algolia\",\n mixedbread: \"mixedbread\",\n \"orama-cloud\": \"oramaCloud\",\n typesense: \"typesense\",\n} as const;\n\n/** Curated link for the search dialog empty state (internal route or external URL). */\nconst searchPopularLinkSchema = z.strictObject({\n href: z.string(),\n icon: iconName.optional(),\n label: z.string(),\n});\n\nconst searchConfigSchema = z\n .strictObject({\n algolia: algoliaSearchSchema.optional(),\n indexing: z\n .strictObject({\n includeCodeBlocks: z.boolean().default(false),\n includeHiddenPages: z.boolean().default(false),\n })\n .prefault({}),\n mixedbread: mixedbreadSearchSchema.optional(),\n oramaCloud: oramaCloudSearchSchema.optional(),\n /** Curated links for the Cmd+K empty state; defaults to the first sidebar pages. */\n popular: z.array(searchPopularLinkSchema).default([]),\n provider: z.enum(searchProviders).default(\"orama\"),\n typesense: typesenseSearchSchema.optional(),\n })\n .superRefine((value, ctx) => {\n // Hosted providers can't work without their credentials; flag a missing\n // block with a path so the diagnostic points at `search.<provider>`.\n // SAFETY: providers without a config block (orama, pagefind, …) miss the\n // map and read undefined, which the `field &&` guard below absorbs.\n const field =\n PROVIDER_CONFIG_KEY[value.provider as keyof typeof PROVIDER_CONFIG_KEY];\n if (field && !value[field]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `search.${field} is required when provider is \"${value.provider}\".`,\n path: [field],\n });\n }\n });\n\n/** Ask AI backends. `gateway` (default) routes through the Vercel AI Gateway. */\nexport const askAiProviders = [\n \"gateway\",\n \"openrouter\",\n \"llmgateway\",\n \"inkeep\",\n \"openai-compatible\",\n] as const;\n\n/**\n * JWK parameters that carry private or secret key material (RFC 7518): the\n * private exponent/scalar, the RSA CRT parameters, and the symmetric key.\n * A directory is public by definition, so any of these in a configured key is\n * a leaked credential, not a config style choice — reject loudly.\n */\nconst PRIVATE_JWK_PARAMS = [\"d\", \"p\", \"q\", \"dp\", \"dq\", \"qi\", \"oth\", \"k\"];\n\n/**\n * A public JWK for the Web Bot Auth signature directory. Shape is left to the\n * signing setup (Ed25519 `OKP` keys in current deployments) — validation only\n * requires the mandatory `kty` and refuses private key material.\n */\nconst publicJwkSchema = z\n .record(z.string(), z.unknown())\n .superRefine((jwk, ctx) => {\n if (!isString(jwk.kty) || jwk.kty.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'A JWK must declare its key type (\"kty\").',\n });\n }\n const leaked = PRIVATE_JWK_PARAMS.filter((param) => param in jwk);\n if (leaked.length > 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `The JWK contains private key material (\"${leaked.join('\", \"')}\") — the signatures directory is public, so list only public keys and keep the private key where the signing agent runs.`,\n });\n }\n });\n\nconst mcpConfigSchema = z.strictObject({\n enabled: z.boolean().default(false),\n /** Optional system hint passed to connecting agents. */\n instructions: z.string().optional(),\n /** Server name shown to clients; defaults to the site title. */\n name: z.string().optional(),\n /**\n * Normalized like `openapi.route`: a slash-less value would otherwise be\n * string-concatenated onto the site origin (`https://acme.comdocs-mcp`).\n */\n route: z.string().default(\"/mcp\").transform(normalizeRoute),\n});\n\nconst askEndpointSchema = z\n .string()\n .trim()\n .min(1)\n .refine(\n (value) => {\n if (value.startsWith(\"/\") && !value.startsWith(\"//\")) {\n return true;\n }\n try {\n const url = new URL(value);\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n } catch {\n return false;\n }\n },\n {\n message:\n \"ai.ask.endpoint must be an HTTP(S) URL or a root-relative path.\",\n }\n );\n\n/** The object form of `ai.llmsTxt`; a bare boolean normalizes onto it. */\nconst llmsTxtObjectSchema = z.strictObject({\n /**\n * Markdown inserted after the title and summary, before the page sections:\n * the llms.txt spec's \"details\" slot. The place to tell agents when to use\n * the product and how to call it; trimmed, and dropped when blank.\n */\n details: z.string().trim().min(1).optional(),\n enabled: z.boolean().default(true),\n openapi: z.boolean().default(true),\n});\n\ntype LlmsTxtResolved = z.output<typeof llmsTxtObjectSchema>;\n\nconst aiConfigSchema = z.strictObject({\n /**\n * The JSON docs API: the page index, per-page JSON, and navigation under\n * `/api/docs/` (prerendered, so a static site serves them from files), the\n * live search endpoint on server output, and the OpenAPI description of\n * the whole machine-readable surface at `/openapi.json`. On by default.\n */\n api: z.boolean().default(true),\n ask: z\n .strictObject({\n // Name of the env var holding the provider's API key; each provider has\n // a sensible default, so this only needs setting to override it.\n apiKeyEnv: z.string().optional(),\n // Base URL of the backend. Required for `openai-compatible` only when no\n // external endpoint is supplied; for named providers it overrides the preset.\n baseUrl: z.url().optional(),\n enabled: z.boolean().default(false),\n // Optional external endpoint for projects that keep their docs static\n // and host Ask AI in an existing backend. Absolute URLs and root-relative\n // paths are both valid; the built-in request/stream contract is unchanged.\n endpoint: askEndpointSchema.optional(),\n // Static request headers the generated endpoint sends the provider on\n // every call (a caller-identifying header for a shared backend, say).\n // Values are inlined into the generated route as literals, so the API\n // key stays in `apiKeyEnv`; these are for non-secret metadata.\n headers: z.record(z.string(), z.string()).optional(),\n // Extra system-prompt text (identity, language, tone) appended to the\n // built-in instructions, so the grounding contract — answer from the\n // retrieved excerpts, cite pages as Markdown links — stays intact.\n instructions: z.string().trim().min(1).optional(),\n model: z.string().default(\"openai/gpt-5.5\"),\n provider: z.enum(askAiProviders).default(\"gateway\"),\n // How much documentation each question carries. Injected characters are\n // the dominant term in time-to-first-token on a self-hosted backend, so\n // these trade recall for latency. No zod defaults here: only what the\n // user set reaches the generated (and ejected) endpoint, so omitted\n // fields keep tracking the installed package's built-in defaults in\n // `ai/ask-context.ts` instead of pinning today's numbers as literals.\n retrieval: z\n .strictObject({\n contextBudget: z.number().int().positive().optional(),\n excerptChars: z.number().int().positive().optional(),\n maxResults: z.number().int().positive().optional(),\n })\n .optional(),\n // Empty-state prompts shown before the first question. Each renders as a\n // clickable suggestion; `icon` is an optional Lucide name beside it.\n suggestions: z\n .array(\n z.strictObject({\n icon: iconName.optional(),\n label: z.string().min(1),\n })\n )\n .default([]),\n })\n .superRefine((value, ctx) => {\n // A generic OpenAI-compatible backend has no preset URL, so the user\n // must supply one; the named providers fall back to their preset.\n if (\n value.provider === \"openai-compatible\" &&\n !(value.baseUrl || value.endpoint)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message:\n 'ai.ask.baseUrl is required when provider is \"openai-compatible\".',\n path: [\"baseUrl\"],\n });\n }\n })\n .optional(),\n /**\n * `llms.txt`/`llms-full.txt` emission. A bare boolean toggles it; the object\n * form adds `openapi: false` to keep generated API reference pages out of\n * both files (e.g. when the configured spec is example content) and\n * `details`, free-form Markdown placed after the summary — the llms.txt\n * spec's details block, where a site tells agents when to reach for it.\n */\n llmsTxt: z\n .union([z.boolean(), llmsTxtObjectSchema])\n .default(true)\n .transform((value): LlmsTxtResolved =>\n isBoolean(value) ? { enabled: value, openapi: true } : value\n ),\n // Serializers for the agent-facing Markdown downlevel (the `.md` mirror,\n // llms-full.txt, MCP get_page), keyed by JSX name. Functions live here —\n // not in components.tsx — because the config file is executed at build\n // time while the components file is only statically analyzed. A same-name\n // entry replaces the built-in serializer.\n // Two-argument `z.record` — the single-argument form throws at\n // schema-construction time under Zod 4 (see uiStringsOverrideSchema).\n markdownComponents: z\n .record(\n z.string(),\n z.custom<ComponentMarkdown>(\n (value): value is ComponentMarkdown => typeof value === \"function\",\n {\n message: \"Expected a serializer function.\",\n }\n )\n )\n .default({}),\n /** Expose the docs as an MCP server for connecting agents. */\n mcp: mcpConfigSchema.prefault({}),\n /**\n * The \"Open in chat\" page action. `true` (the default) lists every\n * provider, `false` hides the action entirely, and an array of provider\n * keys shows just that subset, in the given order. Normalized to the\n * provider list so consumers read a plain array.\n */\n openInChat: z\n .union([\n z.boolean(),\n z\n .array(z.enum(openInChatProviders))\n .refine((value) => new Set(value).size === value.length, {\n message: \"ai.openInChat must not repeat a provider.\",\n }),\n ])\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return value ? [...openInChatProviders] : [];\n }\n return value;\n }),\n /**\n * Publish Agent Skills for discovery: a directory (resolved against the\n * project root) whose subdirectories each hold a `SKILL.md`. The build\n * copies each skill under `/.well-known/agent-skills/` — a lone `SKILL.md`\n * verbatim, a skill with supporting files as a `.tar.gz` — and emits the\n * discovery index (`index.json`) with SHA-256 digests per the Agent Skills\n * Discovery RFC.\n */\n skills: z.string().min(1).optional(),\n /**\n * Web Bot Auth (IETF `webbotauth`): publish the org's HTTP Message\n * Signature public keys at `/.well-known/http-message-signatures-directory`\n * so sites receiving requests from the org's agents can verify them.\n * Opt-in and public-keys-only — the private keys live wherever the signing\n * agents run, never in the site.\n */\n webBotAuth: z\n .strictObject({\n keys: z.array(publicJwkSchema).default([]),\n })\n .prefault({}),\n /**\n * WebMCP: register in-page tools (search, page Markdown, the docs index)\n * on the browser's model context so agentic browsers can drive the docs\n * without a separate MCP connection. A tiny script that no-ops in browsers\n * without the API; on by default.\n */\n webmcp: z.boolean().default(true),\n});\n\n/**\n * A pinned link rendered above the sidebar sections — a blog, changelog, or\n * contact page that should always be reachable, regardless of the active tab.\n * `href` may be an external URL or an internal route.\n */\nconst featuredLinkSchema = z.strictObject({\n href: z.string(),\n icon: iconName.optional(),\n label: z.string(),\n});\n\n/**\n * A header link: a plain one (`Log in`, `Status`), or the single call to\n * action. Same shape as a featured link minus the icon — the header row is\n * text, not iconography.\n */\nconst headerActionSchema = z.strictObject({\n href: z.string(),\n label: z.string(),\n});\n\nconst navigationConfigSchema = z.strictObject({\n /** Plain links in the header, left of the icon buttons. */\n actions: z.array(headerActionSchema).default([]),\n /**\n * The one primary call to action in the header, as a filled button.\n *\n * Singular on purpose: a docs header has room for exactly one thing a\n * reader is being asked to do, a row of buttons asks for nothing, and\n * `featured` already takes the secondary links.\n */\n cta: headerActionSchema.optional(),\n /** Pinned links shown above the generated sidebar sections. */\n featured: z.array(featuredLinkSchema).default([]),\n /**\n * The GitHub link in the header. `true` derives it from `github`, `false`\n * hides it, and an absolute URL points it anywhere on GitHub — an\n * organization, say, when the docs repo itself is private and `github` has\n * to stay unset. The mark stays the GitHub one, so a URL elsewhere belongs in\n * `actions`.\n */\n repo: z.union([z.boolean(), httpUrlSchema]).default(true),\n selectors: z.array(navSelectorSchema).default([]),\n /**\n * Sidebar behavior. `display` sets how every group renders (a group in an\n * explicit `items` config may still override it); `items` is an explicit\n * sidebar — when omitted the sidebar is generated from the content tree.\n * A bare array is shorthand for `{ items }`.\n */\n sidebar: z\n .union([\n z.array(sidebarItemSchema),\n z.strictObject({\n display: sidebarDisplaySchema.default(\"flat\"),\n items: z.array(sidebarItemSchema).optional(),\n }),\n ])\n .prefault({})\n .transform((value) =>\n Array.isArray(value) ? { display: \"flat\" as const, items: value } : value\n ),\n tabs: z.array(navTabSchema).default([]),\n});\n\nexport type AskAiProvider = (typeof askAiProviders)[number];\nexport type AskAiConfig = NonNullable<z.infer<typeof aiConfigSchema>[\"ask\"]>;\nexport { openInChatProviders } from \"./open-in-chat.ts\";\nexport type { OpenInChatProvider } from \"./open-in-chat.ts\";\n\n// Reader-facing \"Export\" page action (PDF via print, EPUB via client-side\n// generation). Off by default. Accepts a shorthand boolean to toggle both\n// formats, or an object to enable them individually; both normalize to\n// `{ epub, pdf }` so consumers read plain booleans.\nconst exportConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n epub: z.boolean().default(false),\n pdf: z.boolean().default(false),\n }),\n ])\n .transform((value) =>\n isBoolean(value) ? { epub: value, pdf: value } : value\n );\n\n/** A configured locale: ISO-ish code plus display metadata for the switcher. */\nconst localeSchema = z.strictObject({\n code: z.string().min(1),\n /** Text direction; drives `<html dir>` and a future RTL pass. */\n dir: z.enum([\"ltr\", \"rtl\"]).default(\"ltr\"),\n label: z.string(),\n /**\n * Freeform style guidance for `blume translate`, e.g. \"Brazilian\n * Portuguese, informal você\". Pins register and dialect from the first\n * translation and wins over an existing translation's style on reruns.\n */\n style: z.string().optional(),\n});\n\n/**\n * Internationalization. Opt-in: when absent, Blume is single-locale and behaves\n * exactly as before. The default locale lives at the content root; other locales\n * are top-level directories named by `code` (the `dir` parser).\n */\nconst i18nConfigSchema = z\n .strictObject({\n defaultLocale: z.string().default(\"en\"),\n /** Locale rendered for a missing translation; `null` disables fallback. */\n fallbackLocale: z.string().nullable().optional(),\n /** Drop the URL prefix for the default locale (`/`, `/fr/…`). Static-safe. */\n hideDefaultLocalePrefix: z.boolean().default(true),\n locales: z.array(localeSchema).min(1),\n /** `\"dir\"`: locale directories (`fr/page.mdx`). `\"dot\"`: filename suffix (`page.fr.mdx`). */\n parser: z.enum([\"dir\", \"dot\"]).default(\"dir\"),\n /** Per-locale UI string overrides: `{ fr: { search: { button: \"…\" } } }`. */\n ui: uiLocaleOverridesSchema.optional(),\n })\n .superRefine((value, ctx) => {\n const codes = new Set(value.locales.map((locale) => locale.code));\n if (!codes.has(value.defaultLocale)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `i18n.defaultLocale \"${value.defaultLocale}\" must match one of i18n.locales.`,\n path: [\"defaultLocale\"],\n });\n }\n if (\n value.fallbackLocale !== null &&\n value.fallbackLocale !== undefined &&\n !codes.has(value.fallbackLocale)\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `i18n.fallbackLocale \"${value.fallbackLocale}\" must match one of i18n.locales.`,\n path: [\"fallbackLocale\"],\n });\n }\n });\n\n/**\n * Version ids must start with a letter (`v1.0`, not `1.0`): the id doubles as\n * the snapshot directory name, and a leading digit would collide with the\n * numeric-prefix ordering convention (`01-intro.mdx`), which strips `1.0/` to\n * `0/`. The rest allows word characters, dots, and hyphens — URL-safe as-is.\n */\nexport const VERSION_ID = /^[A-Za-z][\\w.-]*$/u;\n\n/** A frozen documentation snapshot: a directory under the content root. */\nconst archivedVersionSchema = z.strictObject({\n /**\n * The \"you're viewing an old version\" notice: `true` for the built-in\n * message, a string for custom copy, `false` to hide it.\n */\n banner: z.union([z.boolean(), z.string()]).default(true),\n /**\n * Where this version's pages point their canonical URL: `latest` targets the\n * same page in the current docs when it still exists (self otherwise), so\n * search engines treat the live page as authoritative without deindexing\n * version-only content. `self` keeps every page authoritative.\n */\n canonical: z.enum([\"latest\", \"self\"]).default(\"latest\"),\n /** Directory name under the content root, and the URL segment. */\n id: z\n .string()\n .regex(\n VERSION_ID,\n 'Version ids must start with a letter (e.g. \"v1.0\") and contain only letters, digits, dots, hyphens, and underscores.'\n ),\n /** Switcher label; defaults to the id. */\n label: z.string().optional(),\n /** Emit `noindex` on every page of this version. */\n noindex: z.boolean().default(false),\n});\n\n/**\n * Docs versioning. Opt-in: the latest docs live at the content root with\n * unprefixed URLs, and each archived version is a frozen snapshot directory\n * (`content/docs/<id>/`) cut with `blume version <id>`. Archived means frozen:\n * snapshots carry their own translations and are never retranslated.\n */\nconst versionsConfigSchema = z\n .strictObject({\n /** Frozen snapshots, newest first — this order is the switcher order. */\n archived: z.array(archivedVersionSchema).default([]),\n /** Labels the unprefixed tree (the latest docs) in the switcher. */\n current: z.strictObject({\n /** Small tag rendered next to the label (e.g. `Latest`). */\n badge: z.string().optional(),\n label: z.string(),\n }),\n switcher: z\n .strictObject({\n /**\n * Where switching lands when the page has no equivalent in the target\n * version: `same-page` goes to the equivalent when it exists (version\n * root otherwise); `root` always goes to the version root.\n */\n redirect: z.enum([\"same-page\", \"root\"]).default(\"same-page\"),\n })\n .prefault({}),\n })\n .superRefine((value, ctx) => {\n const seen = new Set<string>();\n for (const [position, version] of value.archived.entries()) {\n if (seen.has(version.id)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `versions.archived declares \"${version.id}\" more than once.`,\n path: [\"archived\", position, \"id\"],\n });\n }\n seen.add(version.id);\n }\n });\n\nconst analyticsScriptSchema = z\n .strictObject({\n // Extra attributes (e.g. `data-domain`, `id`) spread onto the <script>.\n attributes: z.record(z.string(), z.string()).optional(),\n // Inline script body, mutually exclusive with `src`.\n content: z.string().optional(),\n // External script URL, mutually exclusive with `content`.\n src: z.string().optional(),\n // Load strategy for an external script.\n strategy: z.enum([\"async\", \"defer\"]).optional(),\n })\n .refine((value) => Boolean(value.src) !== Boolean(value.content), {\n message: \"An analytics script must set exactly one of `src` or `content`.\",\n });\n\nconst analyticsConfigSchema = z.strictObject({\n // Cloudflare Web Analytics in manual (JS snippet) mode; the token comes from\n // the site's snippet in the dashboard. A zone Cloudflare proxies with\n // automatic RUM injection on needs no config at all.\n cloudflare: z\n .strictObject({\n token: z.string().min(1),\n })\n .optional(),\n posthog: z\n .strictObject({\n host: z.string().optional(),\n key: z.string(),\n })\n .optional(),\n // Escape hatch for any other provider (Plausible, Fathom, GA, Umami, …).\n scripts: z.array(analyticsScriptSchema).optional(),\n vercel: z.boolean().optional(),\n});\n\nconst deploymentConfigSchema = z.strictObject({\n adapter: z\n .enum([\"vercel\", \"node\", \"netlify\", \"cloudflare\"])\n .nullable()\n .default(null),\n base: z.string().optional(),\n output: z.enum([\"static\", \"server\"]).default(\"static\"),\n site: z.url().optional(),\n});\n\nconst redirectSchema = z.strictObject({\n from: z.string(),\n status: z\n .union([z.literal(301), z.literal(302), z.literal(307), z.literal(308)])\n .default(301),\n to: z.string(),\n});\n\n/**\n * One authorized remote image source, passed through to Astro's\n * `image.remotePatterns`. Wildcards follow Astro's rules: `hostname` accepts\n * `**.example.com` (any depth) or `*.example.com` (one level), `pathname`\n * accepts `/dir/**` or `/dir/*` the same way.\n */\nconst imageRemotePatternSchema = z.strictObject({\n hostname: z.string().optional(),\n pathname: z.string().optional(),\n port: z.string().optional(),\n protocol: z.string().optional(),\n});\n\n/**\n * Image optimization (`image`). Local images referenced by relative path\n * (``) are optimized at build time automatically —\n * compressed, converted to WebP, and stamped with intrinsic dimensions.\n * Remote images are only optimized when their host is authorized here;\n * both fields map directly onto Astro's `image` config.\n */\nconst imageConfigSchema = z.strictObject({\n /** Hosts whose remote images may be optimized, e.g. `[\"cdn.example.com\"]`. */\n domains: z.array(z.string()).default([]),\n /** Pattern-based host authorization, for wildcards `domains` can't express. */\n remotePatterns: z.array(imageRemotePatternSchema).default([]),\n});\n\n/**\n * X (Twitter) attribution. The account fields feed `twitter:site` (the site's\n * account) and `twitter:creator` (the author's), which is the one piece of X\n * card metadata with no Open Graph equivalent to fall back to — everything else\n * on the card is read from `og:*`.\n */\nconst xConfigSchema = z.strictObject({\n /** The author's account, overridable per page via `seo.x.creator`. */\n creator: xHandleSchema,\n /** The site's own account, e.g. `@blume`. */\n handle: xHandleSchema,\n});\n\n/**\n * Any CSS color. Takumi parses the full grammar, so this stays unvalidated\n * here and a bad value fails the OG prerender with a parse error naming it —\n * the same fail-fast the card's accent relies on. Validating hex-only here\n * would reject `oklch(…)`, which `theme.accent` (the card's default accent)\n * already accepts.\n */\nconst ogColorSchema = z.string();\n\nconst ogPaletteSchema = z.strictObject({\n accent: ogColorSchema.optional(),\n background: ogColorSchema.optional(),\n border: ogColorSchema.optional(),\n foreground: ogColorSchema.optional(),\n muted: ogColorSchema.optional(),\n});\n\n/**\n * A font to load into the OG card renderer. A bare string is a Google Fonts\n * family name; the name-only object form pins the weight (a number, a list, or\n * a variable range like `\"100..900\"`) and style, fetched from Google Fonts at\n * build. The `src` form reads a local font file from the project instead.\n * Either way Takumi does per-glyph fallback, so a family covering a script\n * (e.g. Noto Sans JP for CJK) fixes tofu without touching how Latin renders.\n */\nconst ogFontWeightSchema = z.union([\n z.number().int().positive(),\n z.array(z.number().int().positive()),\n z.string().regex(/^\\d+\\.\\.\\d+$/u),\n]);\nconst ogFontStyleSchema = z.enum([\"normal\", \"italic\"]);\nconst ogFontSchema = z.union([\n z.string(),\n z.strictObject({\n name: z.string(),\n style: z.union([ogFontStyleSchema, z.array(ogFontStyleSchema)]).optional(),\n weight: ogFontWeightSchema.optional(),\n }),\n /** A local font file, read from the project at build. */\n z.strictObject({\n name: z.string(),\n src: z.string().min(1),\n style: ogFontStyleSchema.optional(),\n weight: z.number().int().positive().optional(),\n }),\n]);\n\nconst ogConfigSchema = z.strictObject({\n /**\n * Site-wide card subtitle, shown on pages without their own description.\n * Defaults to the site description; a string overrides it, `false` renders\n * every card without a subtitle (page descriptions included).\n */\n description: z.union([z.string(), z.literal(false)]).optional(),\n /**\n * Generate a per-page Open Graph image. Defaults to on once a deployment\n * site URL is known (set or auto-detected) and off otherwise, since\n * `og:image` must be absolute to be useful to crawlers — resolved in\n * `loadConfig`. An explicit value here always wins.\n */\n enabled: z.boolean().optional(),\n /**\n * Google Font families for the generated card, extending Takumi's Latin-only\n * default so non-Latin titles (CJK, and so on) render instead of tofu.\n * Fetched from Google Fonts at build.\n */\n fonts: z.array(ogFontSchema).optional(),\n /**\n * Local SVG used in the generated card instead of the site logo; `false`\n * renders the card without any brand mark.\n */\n logo: z.union([z.string(), z.literal(false)]).optional(),\n /** Optional generated-card colors. */\n palette: ogPaletteSchema.optional(),\n /**\n * Footer site text. Defaults to the deployment site's host plus\n * `deployment.base` (`docs.acme.com`, `user.github.io/repo`); a string\n * overrides it, `false` hides it.\n */\n site: z.union([z.string(), z.literal(false)]).optional(),\n /**\n * Card headlines for custom `.astro` pages, keyed by route (`\"/\"`, `\"/cli\"`).\n * A custom page has no frontmatter to read, so its card is otherwise titled\n * by humanizing its last URL segment (`/cli` → \"Cli\"); an entry here wins.\n * Content pages always take their card headline from the page title.\n */\n titles: z.record(z.string(), z.string()).optional(),\n});\n\nconst rssConfigSchema = z.strictObject({\n enabled: z.boolean().default(true),\n /** Max items per feed, newest first. */\n limit: z.number().int().positive().default(50),\n /** Content types that each get a feed at `/<type>/rss.xml`. */\n types: z.array(z.string()).default([\"blog\", \"changelog\"]),\n});\n\n/**\n * robots.txt `Content-Signal` preferences — the emerging content-usage\n * declaration for how crawlers may reuse the site. Each field maps to one\n * signal:\n * - `search` → `search` (traditional and AI search indexing)\n * - `aiInput` → `ai-input` (grounding / RAG use at answer time)\n * - `aiTrain` → `ai-train` (model training)\n */\nconst contentSignalsObjectSchema = z.strictObject({\n aiInput: z.boolean().default(true),\n aiTrain: z.boolean().default(true),\n search: z.boolean().default(true),\n});\n\n/**\n * Content signals accept a boolean shorthand or a per-signal object, and\n * normalize to `{ search, aiInput, aiTrain }` — or `null` when disabled, so\n * robots.txt omits the declaration entirely. On by default (`true`): Blume\n * declares the docs open to search and agents. `false` opts out; an object\n * restricts individual signals (unset signals stay `yes`).\n */\nconst contentSignalsSchema = z\n .union([z.boolean(), contentSignalsObjectSchema])\n .transform((value) => {\n if (value === true) {\n return contentSignalsObjectSchema.parse({});\n }\n if (value === false) {\n return null;\n }\n return value;\n });\n\n/** A schema.org `PostalAddress`, any part of which may be given. */\nconst postalAddressSchema = z.strictObject({\n addressCountry: z.string().optional(),\n addressLocality: z.string().optional(),\n addressRegion: z.string().optional(),\n postalCode: z.string().optional(),\n streetAddress: z.string().optional(),\n});\n\n/**\n * `seo.organization`: the organization behind the site, emitted on every page\n * as a schema.org `Organization` node (see `seo/jsonld.ts`). Name and URL\n * default to the site's; contact details become a `ContactPoint`, the address\n * a `PostalAddress` — what agents check to verify a business.\n */\nconst organizationConfigSchema = z.strictObject({\n address: postalAddressSchema.optional(),\n contactType: z.string().default(\"customer support\"),\n email: z.email().optional(),\n logo: z.string().optional(),\n name: z.string().optional(),\n sameAs: z.array(z.url()).default([]),\n telephone: z.string().optional(),\n url: z.url().optional(),\n});\n\n/**\n * `seo.software`: the product the site documents, emitted on the homepage as\n * a schema.org `SoftwareApplication` node. `true` takes every default (name\n * and description from the site, category `DeveloperApplication`).\n */\nconst softwareConfigSchema = z.strictObject({\n applicationCategory: z.string().default(\"DeveloperApplication\"),\n description: z.string().optional(),\n license: z.string().optional(),\n name: z.string().optional(),\n operatingSystem: z.string().optional(),\n price: z.union([z.number().nonnegative(), z.string()]).optional(),\n priceCurrency: z.string().default(\"USD\"),\n sameAs: z.array(z.url()).default([]),\n});\n\ntype SoftwareResolved = z.output<typeof softwareConfigSchema>;\n\n/** Discoverability features: OG images, feeds, sitemap, structured data. */\nconst seoConfigSchema = z.strictObject({\n /**\n * Emit `agent-readability.json` at the site root: a manifest that indexes\n * the agent-facing surface (llms.txt, Markdown mirrors, MCP server, feeds)\n * so agents can discover it without scraping HTML.\n */\n agentReadability: z.boolean().default(true),\n /** robots.txt `Content-Signal` usage declaration (on by default). */\n contentSignals: contentSignalsSchema.prefault(true),\n og: ogConfigSchema.default({}),\n /** The organization behind the site, as an `Organization` JSON-LD node. */\n organization: organizationConfigSchema.optional(),\n /** Generate robots.txt (with a Sitemap reference when available). */\n robots: z.boolean().default(true),\n rss: rssConfigSchema.prefault({}),\n /** Generate sitemap.xml (requires deployment.site). */\n sitemap: z.boolean().default(true),\n /** The documented product, as a homepage `SoftwareApplication` node. */\n software: z\n .union([z.boolean(), softwareConfigSchema])\n .optional()\n .transform((value): SoftwareResolved | undefined => {\n if (value === true) {\n return softwareConfigSchema.parse({});\n }\n return value === false ? undefined : value;\n }),\n /** Emit schema.org JSON-LD in each page's <head>. */\n structuredData: z.boolean().default(true),\n /** X (Twitter) account attribution for share cards. */\n x: xConfigSchema.default({}),\n});\n\n/**\n * The GitHub instance's origin, normalized. Repo, edit, and API URLs are all\n * built by appending to this, so it is reduced to a bare origin: a trailing\n * slash would double the separator, and a path, query, fragment, or embedded\n * credentials would land in the middle of every generated link.\n */\nconst githubOriginSchema = httpUrlSchema.transform(\n (value) => new URL(value).origin\n);\n\n/**\n * A REST API base: an origin plus an optional path, since Enterprise Server\n * serves the API from `/api/v3`. Anything past the path is dropped for the same\n * reason the host is reduced — `/repos/{owner}/{repo}` is appended as a string,\n * so a query would swallow the route and a fragment would strip it from the\n * request entirely, leaving a lookup that silently returns the wrong thing.\n */\nconst githubApiSchema = httpUrlSchema.transform((value) => {\n const { origin, pathname } = new URL(value);\n return trimEnd(`${origin}${pathname}`, \"/\");\n});\n\nconst githubConfigSchema = z.strictObject({\n /** REST API base. Derived from `host` when unset. */\n api: githubApiSchema.optional(),\n branch: z.string().default(\"main\"),\n /** Path from the repo root to the project root (for monorepos). */\n dir: z.string().optional(),\n /** Origin of the GitHub instance, for Enterprise installations. */\n host: githubOriginSchema.default(PUBLIC_HOST_URL),\n owner: z.string(),\n repo: z.string(),\n});\n\n/** The theme fields the structural code-theme check inspects. */\ninterface CodeThemeFields {\n colors?: unknown;\n settings?: unknown;\n tokenColors?: unknown;\n}\n\n/** A non-null, non-array object — the floor for a theme and its `colors` map. */\nconst isThemeObject = <Value>(value: Value): value is Value & CodeThemeFields =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst codeThemeSchema = z.custom<CodeTheme>((value) => {\n if (isString(value)) {\n return true;\n }\n if (!isThemeObject(value)) {\n return false;\n }\n // Token rules live in `settings` (Shiki's canonical field, also the TextMate\n // form themes like createCssVariablesTheme() produce) or `tokenColors` (the\n // VS Code spelling Shiki falls back to). A colors-only theme (editor fg/bg,\n // no token rules) is also valid — Shiki renders it from `colors` alone. Each\n // field present must have the right shape, and at least one must be present.\n const settingsValid =\n value.settings === undefined || Array.isArray(value.settings);\n const tokenColorsValid =\n value.tokenColors === undefined || Array.isArray(value.tokenColors);\n const colorsValid = value.colors === undefined || isThemeObject(value.colors);\n const hasContent =\n value.settings !== undefined ||\n value.tokenColors !== undefined ||\n value.colors !== undefined;\n return settingsValid && tokenColorsValid && colorsValid && hasContent;\n}, \"Expected a Shiki theme name or custom theme object\");\n\nconst codeBlockThemeSchema = z.strictObject({\n dark: codeThemeSchema.default(\"github-dark\"),\n light: codeThemeSchema.default(\"github-light\"),\n});\n\nconst codeBlocksConfigSchema = z.strictObject({\n theme: codeBlockThemeSchema.prefault({}),\n});\n\n/**\n * `<Component />` example previews. A string is shorthand for `{ source }`:\n * where examples live, relative to the project root (default `examples`).\n * `source` may be a glob (anything with `*`/`?`/`[]`/`{}`/`!`), in which case\n * only matching files are discovered and each `<Component path>` key is\n * relative to the glob's static prefix — use this for a registry layout that\n * colocates component sources with their examples\n * (`registry/<pkg>/**\\/examples/*`), leaving the sources (which have no\n * default export to wrap) out.\n *\n * `css` names a stylesheet (relative to the project root) injected into every\n * preview frame after Blume's default tokens. Previews render in an isolated\n * iframe that the site's docs styles never reach, so this is where design\n * tokens for the previewed components live — e.g. shadcn variables and\n * `@theme` mappings. Tailwind itself is already provided; the file should\n * hold tokens and custom styles, not another `@import \"tailwindcss\"`.\n */\nconst examplesConfigSchema = z\n .union([\n z.string(),\n z.strictObject({\n css: z.string().optional(),\n source: z.string().default(\"examples\"),\n }),\n ])\n .transform((value): { css?: string; source: string } =>\n isString(value) ? { source: value } : value\n );\n\n/**\n * \"Last updated\" timestamps for content pages. `false` (default) disables the\n * feature; `true` derives each page's date from git history; an object selects\n * the source explicitly. A page's `lastModified` frontmatter always wins.\n */\nconst lastModifiedConfigSchema = z.union([\n z.boolean(),\n z.strictObject({ type: z.enum([\"git\", \"frontmatter\"]).default(\"git\") }),\n]);\n\n/**\n * How the \"last updated\" stamp and the changelog timeline render their dates —\n * a curated pass-through to `Intl.DateTimeFormat`, shared by both surfaces so\n * they read alike. Defaults to `{ dateStyle: \"long\" }`. Both stamps format in\n * UTC unless a `timeZone` is given, so a date reads the same regardless of the\n * build machine's zone. `dateStyle` is a preset that can't be combined with the\n * individual component fields (`year`, `month`, …), matching `Intl`'s own rule.\n */\nconst dateFormatConfigSchema = z\n .strictObject({\n /** Calendar system (e.g. `japanese`, `buddhist`). */\n calendar: z.string().optional(),\n /** Preset date length; mutually exclusive with the component fields. */\n dateStyle: z.enum([\"full\", \"long\", \"medium\", \"short\"]).optional(),\n /** Day representation. */\n day: z.enum([\"numeric\", \"2-digit\"]).optional(),\n /** Era representation (e.g. the Japanese imperial era). */\n era: z.enum([\"long\", \"short\", \"narrow\"]).optional(),\n /** Month representation. */\n month: z.enum([\"numeric\", \"2-digit\", \"long\", \"short\", \"narrow\"]).optional(),\n /** Numbering system (e.g. `latn`, `arab`). */\n numberingSystem: z.string().optional(),\n /** IANA time zone (e.g. `Asia/Tokyo`). Defaults to `UTC`. */\n timeZone: z.string().optional(),\n /** Weekday representation. */\n weekday: z.enum([\"long\", \"short\", \"narrow\"]).optional(),\n /** Year representation. */\n year: z.enum([\"numeric\", \"2-digit\"]).optional(),\n })\n .refine(\n (value) =>\n value.dateStyle === undefined ||\n (value.weekday === undefined &&\n value.era === undefined &&\n value.year === undefined &&\n value.month === undefined &&\n value.day === undefined),\n {\n message:\n \"dateFormat.dateStyle can't be combined with weekday/era/year/month/day; use one or the other.\",\n }\n );\n\n/** Code-block rendering options (`markdown.code`). */\nconst codeConfigSchema = z.strictObject({\n /**\n * Show a brand language icon in the code-block header (TypeScript, Python,\n * …). On by default; recognized languages only.\n */\n icons: z.boolean().default(true),\n /**\n * Wrap long lines instead of scrolling horizontally. Off by default, so\n * code keeps its original line breaks and overflows into a scroll area.\n */\n wrap: z.boolean().default(false),\n});\n\nconst markdownConfigSchema = z.strictObject({\n /** Code-block rendering: language icons and line wrapping. */\n code: codeConfigSchema.prefault({}),\n codeBlocks: codeBlocksConfigSchema.prefault({}),\n /**\n * Wrap each `##`–`######` heading in a link to its own anchor so readers can\n * click to copy, bookmark, or share a permalink to that section. On by\n * default; set to `false` to render plain headings.\n */\n headingAnchors: z.boolean().default(true),\n /**\n * Make content images click-to-zoom (open in a lightbox). On by default;\n * opt a single image out with `data-no-zoom`.\n */\n imageZoom: z.boolean().default(true),\n});\n\n/** React island behavior (`react`). */\nconst reactConfigSchema = z.strictObject({\n /**\n * Auto-memoize React components/hooks with the React Compiler\n * (`babel-plugin-react-compiler`). On by default whenever React is enabled\n * (a project `.tsx`/`.jsx`, a React island/example/override, or Ask AI); set\n * to `false` to skip the compiler's babel pass.\n */\n compiler: z.boolean().default(true),\n});\n\n/**\n * A single spec rendered by the API reference. `spec` is a local path or an\n * `http(s)` URL (an OpenAPI document under `openapi`, an AsyncAPI document\n * under `asyncapi`).\n */\nconst openapiSourceSchema = z.strictObject({\n /** Include generated pages from this spec in llms.txt/llms-full.txt. */\n includeInLlms: z.boolean().default(true),\n /** Include generated pages from this spec in site search. */\n includeInSearch: z.boolean().default(true),\n /** Nav/section label for this source. */\n label: z.string().optional(),\n /** Emit noindex metadata and omit generated pages from the sitemap. */\n noindex: z.boolean().default(false),\n /** Per-source route; defaults to the block's `route` (or a derived path). */\n route: z.string().optional(),\n /**\n * Append the English \"Reference for the … endpoint in the … API.\" sentence\n * to every generated operation page's meta description. On by default, so\n * terse specs still ship distinct, snippet-length descriptions; set to\n * `false` on a non-English site to describe pages with the spec's own prose\n * alone (falling back to the page title when an operation has none).\n */\n seoDescriptionSuffix: z.boolean().default(true),\n /** Local path or `http(s)` URL to the spec. */\n spec: z.string(),\n});\n\nexport type OpenApiSource = z.input<typeof openapiSourceSchema>;\n\n/**\n * Arbitrary Scalar API-reference options forwarded verbatim to the generated\n * `<ScalarComponent>` (Scalar renderer only). A passthrough map — Blume doesn't\n * mirror Scalar's full config surface — so keys like `localization`, `agent`,\n * `hideTestRequestButton`, or `orderSchemaPropertiesBy` all flow through. These\n * take precedence over Blume's own derived config (spec, theme), so this is a\n * full escape hatch; the dedicated `theme` field is the ergonomic shorthand.\n */\nconst scalarConfigSchema = z.record(z.string(), z.unknown()).optional();\n\n/**\n * The interactive \"Try it\" panel on operation pages (Blume renderer). On by\n * default; `false` hides it. The object form keeps it on and sets `proxy`,\n * the CORS escape hatch the Send button routes requests through: a proxy URL,\n * or `true` for the built-in `/_api-proxy` endpoint (which requires\n * `deployment.output: \"server\"`). Booleans normalize to the object shape so\n * consumers read `{ enabled, proxy }` directly. `proxy` applies to the\n * HTTP-posting playgrounds (OpenAPI, GraphQL) — an event composer's WebSocket\n * connect is direct. One schema for every reference block, so the\n * normalization can never drift between them.\n */\nconst playgroundConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n enabled: z.boolean().default(true),\n proxy: z.union([z.boolean(), z.string()]).default(false),\n }),\n ])\n .default(true)\n .transform((value) =>\n isBoolean(value) ? { enabled: value, proxy: false } : value\n );\n\n/**\n * The shared shape of the API-reference blocks — only the mount route and\n * code-sample defaults differ per spec kind, so each block declares just\n * those (the GraphQL block derives from this via omit/extend below).\n */\nconst referenceConfigSchema = (defaults: {\n codeSamples: string[];\n route: string;\n}) =>\n z.strictObject({\n /** Code-sample languages/tools shown per operation (Blume renderer). */\n codeSamples: z.array(z.string()).default(defaults.codeSamples),\n enabled: z.boolean().default(false),\n /** Start nested schema rows expanded rather than collapsed (Blume renderer). */\n expandSchemas: z.boolean().default(false),\n /** The \"Try it\" panel; see {@link playgroundConfigSchema}. */\n playground: playgroundConfigSchema,\n /** Who renders the reference: Blume's own UI, or the embedded Scalar SPA. */\n renderer: z.enum([\"blume\", \"scalar\"]).default(\"blume\"),\n /** Where the reference mounts. */\n route: z.string().default(defaults.route),\n /** Extra Scalar config forwarded to `<ScalarComponent>` (Scalar renderer only). */\n scalar: scalarConfigSchema,\n /** One or more specs; each renders on its own route by default. */\n sources: z.array(openapiSourceSchema).default([]),\n /** Shorthand for a single source: `sources: [{ spec }]`. */\n spec: z.string().optional(),\n /** Scalar theme name (Scalar renderer only). */\n theme: z.string().optional(),\n });\n\n/**\n * OpenAPI reference. By default (`renderer: \"blume\"`) Blume parses the spec with\n * Scalar's parser and renders its own UI: one real page per operation, grouped\n * by tag in the sidebar and included in site search, llms.txt, and OG. Set\n * `renderer: \"scalar\"` to fall back to the embedded Scalar SPA (a single\n * self-contained route that doesn't weave into the sidebar or search).\n */\nconst openapiConfigSchema = referenceConfigSchema({\n codeSamples: [\"curl\", \"js\", \"python\"],\n route: \"/reference\",\n});\n\n/**\n * AsyncAPI reference. Same shape as {@link openapiConfigSchema}: by default\n * (`renderer: \"blume\"`) Blume normalizes the spec to AsyncAPI 3.x and renders\n * its own UI — one real page per operation — with `renderer: \"scalar\"` as the\n * embedded-SPA opt-out. Only the defaults differ: the reference mounts at\n * `/events`, and empty `codeSamples` means every tool the operation's protocol\n * binding suggests.\n */\nconst asyncapiConfigSchema = referenceConfigSchema({\n codeSamples: [],\n route: \"/events\",\n});\n\n/**\n * A single GraphQL schema rendered by the reference. `spec` is a local path or\n * an `http(s)` URL to SDL text or an introspection JSON result; `endpoint` is\n * the live GraphQL API URL the playground and code samples target (a schema,\n * unlike an OpenAPI document, names no server).\n */\nconst graphqlSourceSchema = openapiSourceSchema.extend({\n /** URL of the live GraphQL endpoint (playground + code samples). */\n endpoint: z.string().optional(),\n});\n\nexport type GraphqlSource = z.input<typeof graphqlSourceSchema>;\n\n/**\n * GraphQL reference. Blume lowers the schema (SDL or introspection JSON) to\n * one real page per root field — grouped as Queries/Mutations/Subscriptions —\n * plus one page per named type (Objects, Input Objects, Enums, Interfaces,\n * Unions, Scalars), all included in the sidebar, search, llms.txt, and OG.\n * Always Blume-rendered: the Scalar SPA reads OpenAPI documents only, so the\n * block declares no `renderer`/`scalar`/`theme` escape hatches.\n */\nconst graphqlConfigSchema = referenceConfigSchema({\n codeSamples: [\"curl\", \"js\", \"python\"],\n route: \"/graphql\",\n})\n // No `renderer`/`scalar`/`theme` escape hatches (the Scalar SPA reads\n // OpenAPI documents only) and no `expandSchemas` (GraphQL field tables have\n // no nesting) — everything else, the playground normalization included, is\n // the shared reference shape.\n .omit({ expandSchemas: true, renderer: true, scalar: true, theme: true })\n .extend({\n /** Default live endpoint URL for every source (per-source `endpoint` wins). */\n endpoint: z.string().optional(),\n /** One or more schemas; each renders on its own route by default. */\n sources: z.array(graphqlSourceSchema).default([]),\n });\n\n/**\n * Opt-in custom frontmatter keys. `extend` maps each extra key a project's\n * pages may carry (e.g. `owner`, `reviewedAt`) to a validation schema; the\n * page schema stays strict for everything else, so typo-catching is preserved.\n * Schemas are consumed through the Standard Schema `~standard` contract —\n * never Zod's own API — so the consumer's zod (any version), Valibot, or\n * ArkType all work (see `standard-schema.ts`). Every declared key is validated\n * on every page, absent ones included, so a required schema enforces the key\n * site-wide; mark it `.optional()` to validate only when present. Built-in\n * frontmatter fields can't be redeclared — they're load-bearing (routing,\n * sidebar, SEO), and shadowing one would silently change its semantics.\n */\nconst frontmatterConfigSchema = z.strictObject({\n extend: customKeySchemaRecord(\"frontmatter.extend\"),\n});\n\n/** Full user-facing config schema. All fields optional with defaults. */\n/**\n * Table-of-contents config. `true`/`false` toggles it; an object narrows the\n * heading range. Normalized to `{ enabled, minLevel, maxLevel }` (default: on,\n * H2–H3, matching the historical hardcoded range).\n */\nconst tocConfigSchema = z\n .union([\n z.boolean(),\n z.strictObject({\n maxHeadingLevel: z.number().int().min(1).max(6).optional(),\n minHeadingLevel: z.number().int().min(1).max(6).optional(),\n }),\n ])\n .default(true)\n .transform((value) => {\n if (isBoolean(value)) {\n return { enabled: value, maxLevel: 3, minLevel: 2 };\n }\n return {\n enabled: true,\n maxLevel: value.maxHeadingLevel ?? 3,\n minLevel: value.minHeadingLevel ?? 2,\n };\n })\n // Checked after defaults apply, so `{ minHeadingLevel: 5 }` (default max 3)\n // is caught too — an inverted range would silently render an empty TOC.\n .refine((value) => value.minLevel <= value.maxLevel, {\n message:\n \"toc.minHeadingLevel must be less than or equal to toc.maxHeadingLevel.\",\n });\n\nexport const blumeConfigSchema = z\n .strictObject({\n ai: aiConfigSchema.prefault({}),\n analytics: analyticsConfigSchema.optional(),\n asyncapi: asyncapiConfigSchema.prefault({}),\n banner: bannerConfigSchema.optional(),\n /**\n * Site-wide mount point prepended to every generated route (e.g. `/docs`),\n * while staying invisible to the sidebar/nav tree. Distinct from a per-source\n * `prefix` (which creates a group) and from `deployment.base` (Astro's\n * host-subdirectory base); the two compose. Normalized to `\"\"` or `/seg`.\n */\n basePath: z\n .string()\n .optional()\n .transform((value) => normalizeBasePath(value)),\n content: contentConfigSchema.prefault({}),\n /**\n * Date presentation for the \"last updated\" stamp and the changelog timeline.\n * Pass-through `Intl.DateTimeFormat` options; defaults to `{ dateStyle: \"long\" }`.\n */\n dateFormat: dateFormatConfigSchema.default({ dateStyle: \"long\" }),\n deployment: deploymentConfigSchema.prefault({}),\n description: z.string().optional(),\n /**\n * Where `<Component path>` resolves live previews and their source from.\n * A string is shorthand for `{ source }` — the directory (or glob, for\n * colocated registry layouts) under the project root that holds example\n * files. The object form adds `css`: a stylesheet injected into every\n * preview frame (design tokens, shadcn variables, `@theme` mappings).\n */\n examples: examplesConfigSchema.prefault(\"examples\"),\n export: exportConfigSchema.prefault(false),\n feedback: z.boolean().default(true),\n /** Opt-in custom frontmatter keys, validated by user-supplied schemas. */\n frontmatter: frontmatterConfigSchema.prefault({}),\n github: githubConfigSchema.optional(),\n graphql: graphqlConfigSchema.prefault({}),\n i18n: i18nConfigSchema.optional(),\n image: imageConfigSchema.prefault({}),\n integrations: z.array(z.custom<AstroIntegration>()).default([]),\n lastModified: lastModifiedConfigSchema.default(false),\n logo: logoConfigSchema.optional(),\n markdown: markdownConfigSchema.prefault({}),\n navigation: navigationConfigSchema.prefault({}),\n openapi: openapiConfigSchema.prefault({}),\n react: reactConfigSchema.prefault({}),\n redirects: z.array(redirectSchema).default([]),\n search: searchConfigSchema.prefault({}),\n seo: seoConfigSchema.prefault({}),\n theme: themeConfigSchema.prefault({}),\n title: z.string().default(\"Documentation\"),\n toc: tocConfigSchema,\n versions: versionsConfigSchema.optional(),\n })\n .superRefine((config, ctx) => {\n // A version id that is also a configured locale code would make a leading\n // `<id>/` directory ambiguous between the two axes — refuse it outright so\n // detection order (version first, then locale) never has to guess.\n if (config.versions && config.i18n) {\n const localeCodes = new Set(\n config.i18n.locales.map((locale) => locale.code.toLowerCase())\n );\n for (const [position, version] of config.versions.archived.entries()) {\n if (localeCodes.has(version.id.toLowerCase())) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Version id \"${version.id}\" is also a configured locale code — rename the version (e.g. \"v${version.id}\").`,\n path: [\"versions\", \"archived\", position, \"id\"],\n });\n }\n }\n }\n // A custom key is declared site-wide (`frontmatter.extend`) or per-type\n // (`content.types`), never both — two schemas for one key would make\n // precedence on pages of that type ambiguous.\n for (const [typeName, typeConfig] of Object.entries(config.content.types)) {\n for (const key of Object.keys(typeConfig.frontmatter)) {\n if (Object.hasOwn(config.frontmatter.extend, key)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `\"${key}\" is already declared in frontmatter.extend and cannot be redeclared for type \"${typeName}\".`,\n path: [\"content\", \"types\", typeName, \"frontmatter\", key],\n });\n }\n }\n // A facet with no declared key could never carry a value — pages can't\n // even set the key — so it's a config mistake, caught here where both\n // the per-type map and the site-wide extend are visible.\n for (const [position, facet] of typeConfig.facets.entries()) {\n if (\n !(\n Object.hasOwn(typeConfig.frontmatter, facet) ||\n Object.hasOwn(config.frontmatter.extend, facet)\n )\n ) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: `Facet \"${facet}\" for type \"${typeName}\" is not a declared custom frontmatter key — add it to the type's frontmatter map or frontmatter.extend.`,\n path: [\"content\", \"types\", typeName, \"facets\", position],\n });\n }\n }\n }\n });\n\n/** Resolved config: every field present after defaults are applied. */\nexport type ResolvedConfig = z.infer<typeof blumeConfigSchema>;\n/** Resolved `dateFormat`: the `Intl.DateTimeFormat` options both date stamps share. */\nexport type ResolvedDateFormat = z.infer<typeof dateFormatConfigSchema>;\n/** Resolved `frontmatter.extend`: custom key → user-supplied schema. */\nexport type FrontmatterExtend = Record<string, StandardSchema>;\n/** Resolved i18n block (present only when the project opts into i18n). */\nexport type ResolvedI18nConfig = z.infer<typeof i18nConfigSchema>;\n/** A configured locale with display metadata. */\nexport type LocaleConfig = z.infer<typeof localeSchema>;\n/** Resolved versions block (present only when the project opts into versioning). */\nexport type ResolvedVersionsConfig = z.infer<typeof versionsConfigSchema>;\n/** A configured archived (frozen) version. */\nexport type ArchivedVersionConfig = z.infer<typeof archivedVersionSchema>;\n/**\n * User-authored config, straight off the schema. The public, hand-documented\n * authoring type is `BlumeConfig` in `./config-input.ts`, which a compile-time\n * guard keeps structurally identical to this.\n */\nexport type BlumeConfigInput = z.input<typeof blumeConfigSchema>;\n/** A configured search backend. */\nexport type SearchProvider = (typeof searchProviders)[number];\n/** Resolved robots.txt `Content-Signal` preferences (`null` when disabled). */\nexport type ContentSignals = z.infer<typeof contentSignalsSchema>;\n/** The resolved per-signal policy object (present when signals are enabled). */\nexport type ContentSignalPolicy = NonNullable<ContentSignals>;\n",
|
|
10
10
|
"import { normalizeRoute, withBasePath } from \"../core/base-path.ts\";\nimport type { ResolvedConfig } from \"../core/schema.ts\";\nimport { trimChar } from \"../core/trim.ts\";\n\n// Re-exported from its home next to the other path helpers; `core/schema.ts`\n// and downstream consumers historically imported it from here.\nexport { normalizeRoute } from \"../core/base-path.ts\";\n\n/**\n * Pure resolution of the configured API reference blocks into concrete routes,\n * labels, and a renderer choice — no file IO, so the content source, the\n * nav-target validation, the Scalar page generator, and the `blume:openapi`\n * data module all share one source of truth. Kept free of any Astro/template\n * imports so `core` can depend on it without a cycle.\n */\n\nexport type ReferenceKind = \"openapi\" | \"asyncapi\" | \"graphql\";\n\n/** Who renders a reference: Blume's own UI, or the embedded Scalar SPA. */\nexport type ReferenceRenderer = \"blume\" | \"scalar\";\n\n/** Per-block display options for the Blume renderer. */\nexport interface ReferenceDisplay {\n /** Code-sample languages shown per operation. */\n codeSamples: string[];\n /** Whether nested schema rows start expanded. */\n expandSchemas: boolean;\n /**\n * The \"Try it\" playground: whether operation pages render it, and the CORS\n * proxy the Send button routes through (`false` off, a URL string, or\n * `true` for the built-in `/_api-proxy` endpoint).\n */\n playground: { enabled: boolean; proxy: string | boolean };\n}\n\n/** A spec source resolved to a concrete route, label, and renderer. */\nexport interface ReferenceSource {\n kind: ReferenceKind;\n renderer: ReferenceRenderer;\n /** Unique token derived from the route; the `<Operation source>` / data key. */\n slug: string;\n /** Normalized route the reference mounts at, e.g. `/reference`. */\n route: string;\n /**\n * Site-wide `basePath` the rendered pages are mounted under (`\"\"` when\n * none). Kept separate from `route` — the content pipeline applies it to\n * staged entries itself — so consumers prefix only the URLs they emit.\n */\n basePath: string;\n label: string;\n /** Whether generated pages are included in llms.txt/llms-full.txt. */\n includeInLlms: boolean;\n /** Whether generated pages are included in site search. */\n includeInSearch: boolean;\n /** Whether generated pages emit noindex metadata and stay out of the sitemap. */\n noindex: boolean;\n /**\n * Whether operation meta descriptions end with the generated English\n * \"Reference for …\" sentence, or carry the spec's own prose alone.\n */\n seoDescriptionSuffix: boolean;\n /** Local path or `http(s)` URL, verbatim from config. */\n spec: string;\n /**\n * URL of the live GraphQL endpoint the playground and code samples target\n * (GraphQL only — a schema, unlike an OpenAPI document, names no server).\n */\n endpoint?: string;\n /** Per-block Scalar theme name override, if any (Scalar renderer only). */\n theme?: string;\n /**\n * Arbitrary Scalar config forwarded to `<ScalarComponent>` (Scalar renderer\n * only). Takes precedence over Blume's derived spec/theme config. Typed off\n * the config schema so the two can never drift.\n */\n scalar?: ResolvedConfig[\"openapi\"][\"scalar\"];\n /** Display options carried through to the Blume renderer. */\n display: ReferenceDisplay;\n /**\n * Warnings recorded while deduping — another source's route collided with\n * this one and was dropped. Surfaced as diagnostics when the source loads.\n */\n collisions?: string[];\n}\n\n// Keep Unicode letters/marks/numbers so diacritics stay in the slug (ASCII-only\n// stripping turned `Größe` into `gr-e`, which the nav humanizer rendered as\n// `Gr E`); `\\p{M}` keeps combining marks attached to their base letter, which\n// NFC cannot always compose away (Devanagari vowel signs, Turkish `İ`'s\n// lowercased combining dot).\nconst NON_SLUG = /[^\\p{L}\\p{M}\\p{N}]+/gu;\n// Format characters (ZWNJ, ZWJ, bidi controls) separate no words — hyphenating\n// them would split Persian/Indic compounds the way ASCII stripping split\n// `Größe` — so they are dropped, not replaced.\nconst FORMAT_CHARS = /\\p{Cf}/gu;\n// A combining mark at the start of the slug has no base letter to attach to\n// (it would glue onto the preceding `/` in a URL), and a marks-only slug must\n// come out empty so callers' fallbacks (`operations`, `reference`) fire.\nconst LEADING_MARKS = /^\\p{M}+/u;\n\n/**\n * Lowercase, hyphen-separated slug: `Add a Pet!` -> `add-a-pet`. Unicode\n * letters are kept (`Größe` -> `größe`), NFC-normalized so canonically\n * equivalent spellings (NFD input from macOS tooling) land on one slug.\n * Non-ASCII slugs rely on the emitter percent-encoding the URL where a raw\n * URI is required (sitemap, canonical).\n */\nexport const slugify = (text: string): string =>\n trimChar(\n text\n .normalize(\"NFC\")\n .toLowerCase()\n .replace(FORMAT_CHARS, \"\")\n .replace(NON_SLUG, \"-\"),\n \"-\"\n ).replace(LEADING_MARKS, \"\");\n\n/** A stable per-reference token from its route: `/api/events` -> `api-events`. */\nconst routeSlug = (route: string): string =>\n slugify(trimChar(route, \"/\")) || \"reference\";\n\n/**\n * The structural shape all three reference blocks (`openapi`, `asyncapi`,\n * `graphql`) share. `endpoint` exists only on the GraphQL block and its\n * sources; `scalar`/`theme` only on the Scalar-capable kinds — optional here\n * so one resolver serves every block.\n */\ninterface Block {\n enabled: boolean;\n endpoint?: string;\n route: string;\n scalar?: ResolvedConfig[\"openapi\"][\"scalar\"];\n sources: {\n endpoint?: string;\n includeInLlms: boolean;\n includeInSearch: boolean;\n label?: string;\n noindex: boolean;\n route?: string;\n seoDescriptionSuffix: boolean;\n spec: string;\n }[];\n spec?: string;\n theme?: string;\n}\n\n/** A spec is a single source (`spec` shorthand prepended to any `sources`). */\nconst sourcesOf = (block: Block): Block[\"sources\"] => {\n const sources = [...block.sources];\n if (block.spec) {\n sources.unshift({\n includeInLlms: true,\n includeInSearch: true,\n noindex: false,\n seoDescriptionSuffix: true,\n spec: block.spec,\n });\n }\n return sources;\n};\n\nconst referencesFor = (\n kind: ReferenceKind,\n block: Block,\n defaultLabel: string,\n renderer: ReferenceRenderer,\n display: ReferenceDisplay,\n basePath: string\n): ReferenceSource[] => {\n if (!block.enabled) {\n return [];\n }\n const sources = sourcesOf(block);\n const base = normalizeRoute(block.route);\n\n return sources.map((source, index) => {\n const label =\n source.label ??\n (sources.length > 1 ? `${defaultLabel} ${index + 1}` : defaultLabel);\n\n let route: string;\n if (source.route) {\n route = normalizeRoute(source.route);\n } else if (sources.length === 1) {\n route = base;\n } else {\n const suffix = source.label ? slugify(source.label) : \"\";\n route = normalizeRoute(`${base}/${suffix || index + 1}`);\n }\n\n const reference: ReferenceSource = {\n basePath,\n display,\n includeInLlms: source.includeInLlms,\n includeInSearch: source.includeInSearch,\n kind,\n label,\n noindex: source.noindex,\n renderer,\n route,\n scalar: block.scalar,\n seoDescriptionSuffix: source.seoDescriptionSuffix,\n slug: routeSlug(route),\n spec: source.spec,\n theme: block.theme,\n };\n // Per-source endpoint wins; the block-level one is the shared default\n // (the common single-schema case pairs it with the `spec` shorthand).\n const endpoint = source.endpoint ?? block.endpoint;\n if (endpoint !== undefined) {\n reference.endpoint = endpoint;\n }\n return reference;\n });\n};\n\n/**\n * Resolve every enabled reference. Both blocks honor their `renderer` —\n * Blume's own UI by default, with the embedded Scalar SPA as the opt-out.\n */\nexport const resolveReferences = (\n config: ResolvedConfig\n): ReferenceSource[] => [\n ...referencesFor(\n \"openapi\",\n config.openapi,\n \"API Reference\",\n config.openapi.renderer,\n {\n codeSamples: config.openapi.codeSamples,\n expandSchemas: config.openapi.expandSchemas,\n playground: config.openapi.playground,\n },\n config.basePath\n ),\n ...referencesFor(\n \"asyncapi\",\n config.asyncapi,\n \"Events\",\n config.asyncapi.renderer,\n {\n codeSamples: config.asyncapi.codeSamples,\n expandSchemas: config.asyncapi.expandSchemas,\n playground: config.asyncapi.playground,\n },\n config.basePath\n ),\n // GraphQL is always Blume-rendered — Scalar's embedded SPA reads OpenAPI\n // documents only, so the block declares no `renderer` opt-out (nor the\n // schema-row `expandSchemas` toggle; GraphQL field tables have no nesting).\n ...referencesFor(\n \"graphql\",\n config.graphql,\n \"GraphQL\",\n \"blume\",\n {\n codeSamples: config.graphql.codeSamples,\n expandSchemas: false,\n playground: config.graphql.playground,\n },\n config.basePath\n ),\n];\n\n/**\n * Mounted route for every reference, regardless of renderer. References no\n * longer add a header tab automatically — authors point a `navigation.tabs`\n * entry at one of these routes to surface it (and, for Blume-rendered specs, to\n * scope its operations sidebar). These routes are whitelisted as valid nav\n * targets so such a tab doesn't read as a broken link.\n */\nexport const referenceRoutes = (config: ResolvedConfig): string[] =>\n resolveReferences(config).map((ref) =>\n // Blume-rendered operation pages flow through the content pipeline and are\n // mounted under `basePath`. Scalar references are a single embedded page\n // injected at the raw `route`, left root-anchored.\n ref.renderer === \"blume\"\n ? withBasePath(config.basePath, ref.route)\n : ref.route\n );\n\n/**\n * Accept one resolved reference into the deduped Blume-rendered set, or return\n * null to skip it. Mutates `seen`/`usedSlugs` so repeated routes/slugs collapse.\n * A dropped route collision is recorded on the kept reference (mirroring the\n * Scalar path's warning) — losing a whole spec's pages must not be silent.\n */\nconst blumeReferenceOf = (\n ref: ReferenceSource,\n seen: Map<string, ReferenceSource>,\n usedSlugs: Set<string>\n): ReferenceSource | null => {\n if (ref.renderer !== \"blume\") {\n return null;\n }\n const kept = seen.get(ref.route);\n if (kept) {\n (kept.collisions ??= []).push(\n `Two API reference sources resolve to ${ref.route}; keeping the first.`\n );\n return null;\n }\n // Distinct routes can slugify identically (`/api/v1` and `/api-v1` both\n // yield `api-v1`). The slug keys the `blume:openapi` data module, so a\n // collision would let one spec silently overwrite the other while the\n // loser's pages still point at the shared key — disambiguate.\n let { slug } = ref;\n let n = 2;\n while (usedSlugs.has(slug)) {\n slug = `${ref.slug}-${n}`;\n n += 1;\n }\n usedSlugs.add(slug);\n const accepted = slug === ref.slug ? ref : { ...ref, slug };\n // Keep the accepted object (not the original) so a later collision's warning\n // lands on the reference the caller actually receives.\n seen.set(ref.route, accepted);\n return accepted;\n};\n\n/** Blume-rendered references (both kinds), deduped by route (first wins). */\nexport const blumeReferences = (config: ResolvedConfig): ReferenceSource[] => {\n const seen = new Map<string, ReferenceSource>();\n const usedSlugs = new Set<string>();\n const result: ReferenceSource[] = [];\n for (const ref of resolveReferences(config)) {\n const accepted = blumeReferenceOf(ref, seen, usedSlugs);\n if (accepted) {\n result.push(accepted);\n }\n }\n return result;\n};\n\n/** Whether any reference is Scalar-rendered (gates the `@scalar/astro` dep + pages). */\nexport const hasScalarReferences = (config: ResolvedConfig): boolean =>\n resolveReferences(config).some((ref) => ref.renderer === \"scalar\");\n\n/**\n * The reference kinds whose enabled, Blume-rendered playground opted into the\n * built-in CORS proxy with `proxy: true`. A proxy URL string points at an\n * external service, and `false` sends requests directly — neither routes\n * through the endpoint. The generator's per-spec allowlist diagnostics key on\n * this, so it shares one definition with {@link needsPlaygroundProxy}.\n */\nexport const builtinProxyKinds = (config: ResolvedConfig): ReferenceKind[] => {\n const kinds: ReferenceKind[] = [];\n if (\n config.openapi.enabled &&\n config.openapi.renderer === \"blume\" &&\n config.openapi.playground.enabled &&\n config.openapi.playground.proxy === true\n ) {\n kinds.push(\"openapi\");\n }\n if (\n config.graphql.enabled &&\n config.graphql.playground.enabled &&\n config.graphql.playground.proxy === true\n ) {\n kinds.push(\"graphql\");\n }\n return kinds;\n};\n\n/**\n * Whether the built-in playground CORS proxy endpoint (`/_api-proxy`) must be\n * generated: some enabled Blume-rendered block's playground opted into it with\n * `proxy: true`. Shared by the server feature gate and the generator so the\n * two can never disagree.\n */\nexport const needsPlaygroundProxy = (config: ResolvedConfig): boolean =>\n builtinProxyKinds(config).length > 0;\n",
|
|
11
11
|
"/** Frontmatter defense in depth: only a real string can carry a handle. */\nconst isString = <Value>(value: Value): value is Value & string =>\n typeof value === \"string\";\n\n/**\n * Normalize an X account to the leading `@` that `twitter:site`/`twitter:creator`\n * require, so `acme`, `@acme`, and ` @acme ` all land on `@acme`. Empty or\n * blank input yields undefined, which renders no tag at all.\n *\n * The layouts call this on values that never passed through the config schema:\n * Astro's collections carry no schema here, so a page's `seo.x.creator` reaches\n * them as raw frontmatter, and the schema's own transform never runs on it.\n * (Blume's page pipeline does reject a non-string `creator` before the page is\n * built, so the string guard is defense in depth rather than the expected\n * path.)\n */\nexport const normalizeXHandle = <Value>(value: Value): string | undefined => {\n if (!isString(value)) {\n return;\n }\n const handle = value.trim().replace(/^@+/u, \"\");\n return handle ? `@${handle}` : undefined;\n};\n",
|
|
12
12
|
"/**\n * Fonts exposed through `theme.fonts`.\n *\n * Each role accepts a curated Google Font slug, a remote-provider family (any\n * Google/Fontsource/Bunny/Fontshare family by name), or local font files. All\n * forms resolve to entries for Astro's built-in Fonts API, which self-hosts\n * and optimizes them; this module only resolves config values into the data\n * that drives it.\n */\n\nexport type FontCategory = \"sans\" | \"serif\" | \"mono\";\n\n/** The three configurable roles in `theme.fonts`. */\nexport type FontSlot = \"display\" | \"body\" | \"mono\";\n\n/** Zero-config Astro font providers usable from `theme.fonts`. */\nexport type RemoteFontProvider =\n | \"google\"\n | \"fontsource\"\n | \"bunny\"\n | \"fontshare\";\n\n/** A remote-provider family: any family name the provider knows. */\nexport interface RemoteFontConfig {\n /** Family name as the provider lists it, e.g. `\"Noto Sans JP\"`. */\n name: string;\n /** Which provider serves the family. Defaults to `\"google\"`. */\n provider?: RemoteFontProvider;\n /** Weights (or variable ranges like `\"100..900\"`) to load. Defaults to `[400, 500, 600, 700]`. */\n weights?: (number | string)[];\n /**\n * Character subsets to load (`\"latin\"`, `\"vietnamese\"`, `\"cyrillic\"`, …).\n * Defaults to `latin` plus whatever the site's configured locales need.\n */\n subsets?: string[];\n /** Fallback stack category. Defaults to `\"mono\"` for the mono role, `\"sans\"` otherwise. */\n fallback?: FontCategory;\n}\n\n/** One `@font-face` declaration for a local font. */\nexport interface LocalFontVariant {\n /** Font file path, relative to the project root. */\n src: string;\n /** Face weight; inferred from the file when omitted. */\n weight?: number | string;\n /** Face style; inferred from the file when omitted. */\n style?: \"normal\" | \"italic\" | \"oblique\";\n}\n\n/** A self-hosted family loaded from files in the project. */\nexport interface LocalFontConfig {\n /** Family name used in CSS and the OG card. */\n name: string;\n /** The faces to declare (at least one). */\n variants: LocalFontVariant[];\n /** Fallback stack category. Defaults to `\"mono\"` for the mono role, `\"sans\"` otherwise. */\n fallback?: FontCategory;\n}\n\n/** A role's font: curated slug, remote family, or local files. */\nexport type FontValue = string | RemoteFontConfig | LocalFontConfig;\n\ninterface FontDef {\n category: FontCategory;\n family: string;\n /**\n * Discrete weights, or one `\"min..max\"` range for a family Google Fonts\n * serves as a variable font: the range loads the same variable file the\n * discrete weights did, declared as one `@font-face` per style instead of\n * one per weight (16 rules down to 4 for Inter on every page). The three\n * static families in the table keep discrete weights.\n */\n weights: (number | string)[];\n}\n\n/** Resolved theme fonts (a validated value per role, all optional). */\nexport type FontsConfig = Partial<Record<FontSlot, FontValue>> | undefined;\n\n/** A single Astro `fonts:` entry (sans the literal `fontProviders.*()` call). */\nexport type FontEntry =\n | {\n kind: \"remote\";\n provider: RemoteFontProvider;\n cssVariable: string;\n fallbacks: string[];\n name: string;\n subsets: string[];\n weights: (number | string)[];\n }\n | {\n kind: \"local\";\n cssVariable: string;\n fallbacks: string[];\n name: string;\n variants: LocalFontVariant[];\n };\n\nconst FALLBACKS = {\n mono: [\"ui-monospace\", \"SF Mono\", \"Menlo\", \"monospace\"],\n sans: [\"ui-sans-serif\", \"system-ui\", \"sans-serif\"],\n serif: [\"ui-serif\", \"Georgia\", \"serif\"],\n} satisfies Record<FontCategory, string[]>;\n\n/** Slug -> Google family + weights + fallback category. Keep keys alphabetical. */\nexport const GOOGLE_FONTS = {\n \"dm-sans\": { category: \"sans\", family: \"DM Sans\", weights: [\"400..700\"] },\n figtree: {\n category: \"sans\",\n family: \"Figtree\",\n weights: [\"400..700\"],\n },\n \"fira-code\": {\n category: \"mono\",\n family: \"Fira Code\",\n weights: [\"400..700\"],\n },\n geist: { category: \"sans\", family: \"Geist\", weights: [\"400..700\"] },\n \"geist-mono\": {\n category: \"mono\",\n family: \"Geist Mono\",\n weights: [\"400..600\"],\n },\n \"ibm-plex-mono\": {\n category: \"mono\",\n family: \"IBM Plex Mono\",\n weights: [400, 500, 600],\n },\n \"ibm-plex-sans\": {\n category: \"sans\",\n family: \"IBM Plex Sans\",\n weights: [\"400..700\"],\n },\n \"ibm-plex-serif\": {\n category: \"serif\",\n family: \"IBM Plex Serif\",\n weights: [400, 500, 600],\n },\n inter: { category: \"sans\", family: \"Inter\", weights: [\"400..700\"] },\n \"inter-tight\": {\n category: \"sans\",\n family: \"Inter Tight\",\n weights: [\"400..700\"],\n },\n \"jetbrains-mono\": {\n category: \"mono\",\n family: \"JetBrains Mono\",\n weights: [\"400..700\"],\n },\n lora: { category: \"serif\", family: \"Lora\", weights: [\"400..700\"] },\n manrope: {\n category: \"sans\",\n family: \"Manrope\",\n weights: [\"400..700\"],\n },\n merriweather: {\n category: \"serif\",\n family: \"Merriweather\",\n weights: [\"400..700\"],\n },\n \"open-sans\": {\n category: \"sans\",\n family: \"Open Sans\",\n weights: [\"400..700\"],\n },\n \"playfair-display\": {\n category: \"serif\",\n family: \"Playfair Display\",\n weights: [\"400..700\"],\n },\n \"plus-jakarta-sans\": {\n category: \"sans\",\n family: \"Plus Jakarta Sans\",\n weights: [\"400..700\"],\n },\n roboto: { category: \"sans\", family: \"Roboto\", weights: [\"400..700\"] },\n \"roboto-mono\": {\n category: \"mono\",\n family: \"Roboto Mono\",\n weights: [\"400..700\"],\n },\n \"source-code-pro\": {\n category: \"mono\",\n family: \"Source Code Pro\",\n weights: [\"400..600\"],\n },\n \"source-sans-3\": {\n category: \"sans\",\n family: \"Source Sans 3\",\n weights: [\"400..700\"],\n },\n \"source-serif-4\": {\n category: \"serif\",\n family: \"Source Serif 4\",\n weights: [\"400..700\"],\n },\n \"space-grotesk\": {\n category: \"sans\",\n family: \"Space Grotesk\",\n weights: [\"400..700\"],\n },\n \"space-mono\": { category: \"mono\", family: \"Space Mono\", weights: [400, 700] },\n \"work-sans\": {\n category: \"sans\",\n family: \"Work Sans\",\n weights: [\"400..600\"],\n },\n} satisfies Record<string, FontDef>;\n\nexport type FontSlug = keyof typeof GOOGLE_FONTS;\n\n/** All supported slugs, for schema validation and error messages. */\nexport const FONT_SLUGS = Object.keys(GOOGLE_FONTS);\n\n/** Type guard: is `value` a supported font slug? */\nexport const isFontSlug = (value: string): value is FontSlug =>\n Object.hasOwn(GOOGLE_FONTS, value);\n\n/** Weights loaded for a remote family when the config does not pin them. */\nconst DEFAULT_REMOTE_WEIGHTS: (number | string)[] = [400, 500, 600, 700];\n\n/**\n * The subsets a language needs beyond `latin`, keyed by BCP 47 language\n * subtag. Names are Google Fonts subsets (Bunny and Fontsource use the same\n * ones). Languages whose alphabet fits Latin-1 — English, French, German,\n * Spanish, … — need only `latin` and are absent. Keep keys alphabetical.\n */\nconst LOCALE_SUBSETS = {\n az: [\"latin-ext\"],\n ba: [\"cyrillic\", \"cyrillic-ext\"],\n be: [\"cyrillic\"],\n bg: [\"cyrillic\"],\n bs: [\"latin-ext\"],\n cs: [\"latin-ext\"],\n cv: [\"cyrillic\", \"cyrillic-ext\"],\n cy: [\"latin-ext\"],\n el: [\"greek\"],\n eo: [\"latin-ext\"],\n et: [\"latin-ext\"],\n ha: [\"latin-ext\"],\n hr: [\"latin-ext\"],\n hu: [\"latin-ext\"],\n ig: [\"latin-ext\"],\n kk: [\"cyrillic\", \"cyrillic-ext\"],\n ku: [\"latin-ext\"],\n ky: [\"cyrillic\", \"cyrillic-ext\"],\n lt: [\"latin-ext\"],\n lv: [\"latin-ext\"],\n mk: [\"cyrillic\"],\n mn: [\"cyrillic\", \"cyrillic-ext\"],\n mt: [\"latin-ext\"],\n pl: [\"latin-ext\"],\n ro: [\"latin-ext\"],\n ru: [\"cyrillic\"],\n sk: [\"latin-ext\"],\n sl: [\"latin-ext\"],\n sr: [\"cyrillic\", \"latin-ext\"],\n tg: [\"cyrillic\", \"cyrillic-ext\"],\n tk: [\"latin-ext\"],\n tr: [\"latin-ext\"],\n tt: [\"cyrillic\", \"cyrillic-ext\"],\n uk: [\"cyrillic\"],\n uz: [\"cyrillic\", \"latin-ext\"],\n vi: [\"vietnamese\"],\n yo: [\"latin-ext\"],\n} satisfies Record<string, string[]>;\n\n/** Type guard: does `language` have an entry in the subset table? */\nconst isSubsetLanguage = (\n language: string\n): language is keyof typeof LOCALE_SUBSETS =>\n Object.hasOwn(LOCALE_SUBSETS, language);\n\n/**\n * Subsets a script subtag (`sr-Latn`, `az-Cyrl`) asks for on its own, so a\n * locale written in a script its language doesn't default to still loads it.\n */\nconst SCRIPT_SUBSETS = {\n cyrl: [\"cyrillic\"],\n latn: [\"latin-ext\"],\n} satisfies Record<string, string[]>;\n\n/** Type guard: does `script` have an entry in the script table? */\nconst isSubsetScript = (\n script: string\n): script is keyof typeof SCRIPT_SUBSETS =>\n Object.hasOwn(SCRIPT_SUBSETS, script);\n\n/** Google's listing order; keeps generated configs stable across runs. */\nconst SUBSET_ORDER = [\n \"latin\",\n \"latin-ext\",\n \"vietnamese\",\n \"cyrillic\",\n \"cyrillic-ext\",\n \"greek\",\n \"greek-ext\",\n];\n\n/** The shape of a config's `i18n` block the font builders read. */\nexport interface FontLocaleSource {\n locales: { code: string }[];\n}\n\n/** The locale codes an optional `i18n` block declares (none when absent). */\nexport const fontLocaleCodes = (i18n: FontLocaleSource | undefined): string[] =>\n i18n?.locales.map((locale) => locale.code) ?? [];\n\n/**\n * The subsets the site's locales need: `latin` always, plus each locale's\n * script. A site with no `i18n` block (or only Latin-1 languages) gets just\n * `latin` — Astro's own default — so its CSS and preloads don't change.\n */\nexport const localeFontSubsets = (locales: string[]): string[] => {\n const wanted = new Set([\"latin\"]);\n for (const locale of locales) {\n const [language = \"\", ...subtags] = locale.toLowerCase().split(\"-\");\n if (isSubsetLanguage(language)) {\n for (const subset of LOCALE_SUBSETS[language]) {\n wanted.add(subset);\n }\n }\n for (const subtag of subtags) {\n if (isSubsetScript(subtag)) {\n for (const subset of SCRIPT_SUBSETS[subtag]) {\n wanted.add(subset);\n }\n }\n }\n }\n return SUBSET_ORDER.filter((subset) => wanted.has(subset));\n};\n\n/**\n * Providers whose faces carry subset metadata, so `<Font preload>` can be\n * filtered by subset. Fontshare serves whole files with no subset split; a\n * subset filter there would match nothing and drop every preload.\n */\nconst SUBSET_PROVIDERS = new Set<RemoteFontProvider>([\n \"google\",\n \"bunny\",\n \"fontsource\",\n]);\n\n/** Kebab-case a family name into a slug (`\"Noto Sans JP\"` -> `\"noto-sans-jp\"`). */\nexport const slugifyFontName = (name: string): string =>\n name\n .toLowerCase()\n .replaceAll(/[^a-z0-9]+/gu, \"-\")\n // The collapse above leaves only single dashes, so no quantifiers needed\n // (an unanchored `-+$` backtracks quadratically on long dash runs).\n .replaceAll(/^-|-$/gu, \"\");\n\n/** The CSS variable Astro populates for a given font (shared across roles). */\nconst fontVar = (slug: string): string => `--blume-ff-${slug}`;\n\nconst SLOTS: FontSlot[] = [\"display\", \"body\", \"mono\"];\n\n/** The fallback category a role uses when a custom font does not pick one. */\nconst slotCategory = (slot: FontSlot): FontCategory =>\n slot === \"mono\" ? \"mono\" : \"sans\";\n\n/** Whether a slot value is the slug-string form (vs a custom font object). */\nconst isSlugValue = (value: FontValue): value is string =>\n typeof value === \"string\";\n\n/**\n * A slot value normalized into an entry, or null for an unknown slug string.\n * `subsets` is the locale-derived default a remote family loads when the\n * config does not pin its own.\n */\nconst resolveFontValue = (\n slot: FontSlot,\n value: FontValue,\n subsets: string[]\n): FontEntry | null => {\n if (isSlugValue(value)) {\n if (!isFontSlug(value)) {\n return null;\n }\n const def = GOOGLE_FONTS[value];\n return {\n cssVariable: fontVar(value),\n fallbacks: FALLBACKS[def.category],\n kind: \"remote\",\n name: def.family,\n provider: \"google\",\n subsets,\n weights: def.weights,\n };\n }\n const slug = slugifyFontName(value.name);\n const fallbacks = FALLBACKS[value.fallback ?? slotCategory(slot)];\n if (\"variants\" in value) {\n return {\n cssVariable: fontVar(slug),\n fallbacks,\n kind: \"local\",\n name: value.name,\n variants: value.variants,\n };\n }\n return {\n cssVariable: fontVar(slug),\n fallbacks,\n kind: \"remote\",\n name: value.name,\n provider: value.provider ?? \"google\",\n subsets: value.subsets ?? subsets,\n weights: value.weights ?? DEFAULT_REMOTE_WEIGHTS,\n };\n};\n\n/**\n * Merge two entries that resolved to the same CSS variable. The same remote\n * family configured twice unions its weights (so a custom `{ name: \"Inter\" }`\n * coexists with the curated `inter` default in another role); identical local\n * definitions collapse. Anything else is a config conflict worth failing on.\n */\nconst mergeFontEntries = (current: FontEntry, next: FontEntry): FontEntry => {\n if (\n current.kind === \"remote\" &&\n next.kind === \"remote\" &&\n current.provider === next.provider &&\n current.name === next.name\n ) {\n return {\n ...current,\n subsets: [...new Set([...current.subsets, ...next.subsets])],\n weights: [...new Set([...current.weights, ...next.weights])],\n };\n }\n if (\n current.kind === \"local\" &&\n next.kind === \"local\" &&\n current.name === next.name &&\n JSON.stringify(current.variants) === JSON.stringify(next.variants)\n ) {\n return current;\n }\n throw new Error(\n `theme.fonts: \"${next.name}\" conflicts with \"${current.name}\" — both resolve to the CSS variable \"${current.cssVariable}\" with different definitions. Rename one family or align their definitions.`\n );\n};\n\n/**\n * The unique Astro `fonts:` entries for the configured roles (deduped).\n * `locales` are the site's configured locale codes; they pick the subsets a\n * remote family loads unless its config pins `subsets` itself.\n */\nexport const buildFontEntries = (\n fonts: FontsConfig,\n locales: string[] = []\n): FontEntry[] => {\n if (!fonts) {\n return [];\n }\n const subsets = localeFontSubsets(locales);\n const entries = new Map<string, FontEntry>();\n for (const slot of SLOTS) {\n const value = fonts[slot];\n if (value === undefined) {\n continue;\n }\n const entry = resolveFontValue(slot, value, subsets);\n if (!entry) {\n continue;\n }\n const current = entries.get(entry.cssVariable);\n entries.set(\n entry.cssVariable,\n current ? mergeFontEntries(current, entry) : entry\n );\n }\n return [...entries.values()];\n};\n\n/** The slug backing a slot's CSS variable, or null for an unknown slug string. */\nconst slotSlug = (value: FontValue): string | null => {\n if (isSlugValue(value)) {\n return isFontSlug(value) ? value : null;\n }\n return slugifyFontName(value.name);\n};\n\n/**\n * The config-token CSS that points each role's `--blume-font-<role>-src` at the\n * Astro-populated family variable. Concatenated into the generated entry's\n * config tokens; empty when no fonts are set so defaults stay the system stacks.\n */\nexport const buildFontsCss = (fonts: FontsConfig): string => {\n if (!fonts) {\n return \"\";\n }\n const lines = SLOTS.flatMap((slot) => {\n const value = fonts[slot];\n if (value === undefined) {\n return [];\n }\n const slug = slotSlug(value);\n return slug ? [` --blume-font-${slot}-src: var(${fontVar(slug)});`] : [];\n });\n return lines.length > 0\n ? `/* Generated by Blume from theme.fonts. */\\n:root {\\n${lines.join(\"\\n\")}\\n}\\n`\n : \"\";\n};\n\n/**\n * Weights worth preloading per role — the faces above-the-fold text actually\n * renders in: body copy and UI chrome at 400/500, headings at 500/600, code at\n * 400. Every other face still loads on demand through its `@font-face` rule\n * (and `font-display: swap` never blocks text on it), so preloading the long\n * tail only competes with the critical CSS for bandwidth and pushes LCP out.\n */\nconst PRELOAD_WEIGHTS = {\n body: [400, 500],\n display: [500, 600],\n mono: [400],\n} satisfies Record<FontSlot, number[]>;\n\n/**\n * One `<Font>` render in the head: its CSS variable + the weights (and, for\n * providers that split faces by subset, the subsets) to preload. Local and\n * Fontshare faces carry no subset, so those entries leave `preloadSubsets`\n * unset and preload by weight alone.\n */\nexport interface FontHead {\n cssVariable: string;\n preloadSubsets?: string[];\n preloadWeights: number[];\n}\n\n/** The weights an entry's faces declare (`undefined` = inferred from files). */\nconst entryWeights = (entry: FontEntry): (number | string | undefined)[] =>\n entry.kind === \"remote\"\n ? entry.weights\n : entry.variants.map((variant) => variant.weight);\n\n/**\n * The role's preferred preload weights, narrowed to faces the family loads.\n * Variable ranges (`\"100..900\"`) and weight-inferred local files can serve any\n * weight, so they keep the preferred list; a family whose numeric weights miss\n * the preferred ones entirely preloads all of its faces instead — those are\n * what its text renders in.\n */\nconst preloadWeightsFor = (slot: FontSlot, entry: FontEntry): number[] => {\n const preferred = PRELOAD_WEIGHTS[slot];\n const weights = entryWeights(entry);\n const numeric = weights.filter(\n (weight): weight is number => typeof weight === \"number\"\n );\n const hits = preferred.filter((weight) => numeric.includes(weight));\n if (hits.length > 0) {\n return hits;\n }\n return numeric.length === weights.length ? numeric : preferred;\n};\n\n/**\n * The fonts to feed Astro's `<Font>` component in the document head, deduped\n * by CSS variable with preload weights unioned across the roles that share a\n * family (so `display` and `body` both set to Inter preload 400/500/600 once).\n */\nexport const configuredFonts = (\n fonts: FontsConfig,\n locales: string[] = []\n): FontHead[] => {\n if (!fonts) {\n return [];\n }\n const defaultSubsets = localeFontSubsets(locales);\n const heads = new Map<\n string,\n { subsets: Set<string> | null; weights: Set<number> }\n >();\n for (const slot of SLOTS) {\n const value = fonts[slot];\n if (value === undefined) {\n continue;\n }\n const entry = resolveFontValue(slot, value, defaultSubsets);\n if (!entry) {\n continue;\n }\n const head = heads.get(entry.cssVariable) ?? {\n subsets: null,\n weights: new Set<number>(),\n };\n for (const weight of preloadWeightsFor(slot, entry)) {\n head.weights.add(weight);\n }\n if (entry.kind === \"remote\" && SUBSET_PROVIDERS.has(entry.provider)) {\n head.subsets ??= new Set();\n for (const subset of entry.subsets) {\n head.subsets.add(subset);\n }\n }\n heads.set(entry.cssVariable, head);\n }\n return [...heads].map(([cssVariable, head]) => {\n const font: FontHead = {\n cssVariable,\n preloadWeights: [...head.weights].toSorted((a, b) => a - b),\n };\n if (head.subsets) {\n font.preloadSubsets = [...head.subsets];\n }\n return font;\n });\n};\n",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"/**\n * Providers for the \"Open in chat\" page action, in display order. Shared by\n * the config schema (`ai.openInChat` subsets validate against this list) and\n * the PageActions menu (which renders the full list when the config is `true`).\n * Lives outside `schema.ts` so the component can import the list without\n * pulling the whole config schema into the layout module graph.\n */\nexport const openInChatProviders = [\n \"v0\",\n \"chatgpt\",\n \"claude\",\n \"t3\",\n \"scira\",\n \"cursor\",\n] as const;\n\nexport type OpenInChatProvider = (typeof openInChatProviders)[number];\n",
|
|
53
53
|
"/**\n * The Standard Schema interface (https://standardschema.dev), the minimal\n * `~standard` surface shared by Zod 3.24+, Zod 4, Valibot, ArkType, and\n * friends. Blume accepts user-supplied validation schemas (e.g.\n * `frontmatter.extend`) through this interface instead of Zod's own types:\n * `blume.config.ts` imports zod from the *consumer's* node_modules, which may\n * be a different major version than the zod Blume bundles, and calling Zod\n * methods (`.extend()`, `.safeParse()`) across instances is unsupported. The\n * `~standard.validate` contract is version- and library-agnostic.\n */\n\n/** One validation failure, with an optional path into the checked value. */\nexport interface StandardSchemaIssue {\n readonly message: string;\n readonly path?:\n | readonly (PropertyKey | { readonly key: PropertyKey })[]\n | undefined;\n}\n\n/** A passing validation: the (possibly transformed) output value. */\nexport interface StandardSchemaSuccess<Output> {\n readonly value: Output;\n readonly issues?: undefined;\n}\n\n/** A failing validation: one or more issues. */\nexport interface StandardSchemaFailure {\n readonly issues: readonly StandardSchemaIssue[];\n}\n\nexport type StandardSchemaResult<Output> =\n | StandardSchemaSuccess<Output>\n | StandardSchemaFailure;\n\n/** A validation schema exposing the Standard Schema `~standard` contract. */\nexport interface StandardSchema<Input = unknown, Output = Input> {\n readonly \"~standard\": {\n readonly version: 1;\n readonly vendor: string;\n readonly validate: (\n value: Input\n ) => StandardSchemaResult<Output> | Promise<StandardSchemaResult<Output>>;\n readonly types?:\n | { readonly input: Input; readonly output: Output }\n | undefined;\n };\n}\n\n/**\n * Whether a config-supplied value implements the `~standard` contract. Generic\n * so it can decode any input at the config boundary (`z.custom` hands it the\n * raw config value) while narrowing whatever type the caller holds.\n */\nexport const isStandardSchema = <T>(value: T): value is T & StandardSchema =>\n typeof value === \"object\" &&\n value !== null &&\n // SAFETY: the assertion only widens the checked object for property probing;\n // the trailing typeof check is what verifies `~standard.validate` exists.\n typeof (value as { \"~standard\"?: { validate?: unknown } })[\"~standard\"]\n ?.validate === \"function\";\n"
|
|
54
54
|
],
|
|
55
|
-
"mappings": "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",
|
|
56
|
-
"debugId": "
|
|
55
|
+
"mappings": "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",
|
|
56
|
+
"debugId": "4721E148103931CF64756E2164756E21",
|
|
57
57
|
"names": []
|
|
58
58
|
}
|