@tenphi/docs 0.28.0 → 0.30.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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/project/index.ts","../src/agent-markdown.ts","../src/validation/assets.ts","../src/validation/build.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, resolve } from \"node:path\";\nimport { createJiti } from \"jiti\";\nimport { normalizeDocsConfig } from \"../config/index.js\";\nimport type { DocsConfig } from \"../types.js\";\n\nexport interface DocsProjectOptions {\n /** Directory to search for configuration; defaults to the current directory. */\n root?: string;\n /** Explicit configuration path, relative to root. False disables discovery. */\n configFile?: string | false;\n /** Inline configuration takes precedence over discovery. */\n config?: DocsConfig;\n}\n\nexport interface DocsProject {\n root: string;\n config: DocsConfig;\n configFile?: string;\n}\n\n/** Resolve the same configuration and content root for the CLI and renderer. */\nexport async function resolveDocsProject(\n options: DocsProjectOptions = {},\n): Promise<DocsProject> {\n const directory = resolve(options.root ?? process.cwd());\n let config = options.config;\n let configFile: string | undefined;\n if (config === undefined && options.configFile !== false) {\n configFile = options.configFile\n ? resolve(directory, options.configFile)\n : [\n \"docs.config.ts\",\n \"docs.config.mts\",\n \"docs.config.js\",\n \"docs.config.mjs\",\n ]\n .map((name) => resolve(directory, name))\n .find(existsSync);\n if (configFile) {\n if (!existsSync(configFile)) {\n throw new Error(\n `Documentation configuration does not exist: ${configFile}.`,\n );\n }\n const jiti = createJiti(import.meta.url, {\n interopDefault: true,\n moduleCache: false,\n });\n // Native ESM imports remain cached even with moduleCache disabled.\n // Transpile the entry so configuration restarts see edits in every format.\n const loaded = (await jiti.evalModule(\n await readFile(configFile, \"utf8\"),\n {\n filename: configFile,\n async: true,\n forceTranspile: true,\n },\n )) as { default?: DocsConfig };\n config = loaded.default ?? (loaded as DocsConfig);\n }\n }\n config ??= {};\n normalizeDocsConfig(config);\n return {\n root: resolve(\n configFile ? dirname(configFile) : directory,\n config.root ?? \".\",\n ),\n config,\n ...(configFile ? { configFile } : {}),\n };\n}\n","import type { DocsEntry } from \"./types.js\";\nimport { pagePublishing, type PublishingConfig } from \"./publishing.js\";\nimport { serializeMarkdown } from \"./markdown/index.js\";\n\ntype Node = { type: string; value?: string; name?: string; children?: Node[] };\n/** A reading representation: retain prose/code/links, omit executable MDX and raw HTML. */\nexport function renderAgentMarkdown(\n entry: DocsEntry,\n config: PublishingConfig,\n): string {\n const tree = structuredClone(entry.ast) as Node;\n function clean(node: Node): Node[] {\n if (\n [\"mdxjsEsm\", \"mdxFlowExpression\", \"mdxTextExpression\", \"html\"].includes(\n node.type,\n )\n )\n return [];\n const children = node.children?.flatMap(clean);\n if (\n node.type === \"mdxJsxFlowElement\" ||\n node.type === \"mdxJsxTextElement\"\n ) {\n if (node.name && [\"script\", \"style\", \"Preview\"].includes(node.name))\n return [];\n return children ?? [];\n }\n return [{ ...node, ...(children ? { children } : {}) }];\n }\n const body = serializeMarkdown(clean(tree)[0] as typeof entry.ast, {\n mdx: false,\n });\n const pub = pagePublishing(entry, config);\n const prefix = entry.route.split(\"/\")[1];\n const locale =\n prefix && config.locales?.[prefix]\n ? prefix\n : (config.defaultLocale ?? \"root\");\n const language =\n config.locales?.[locale]?.lang ?? (locale === \"root\" ? \"en\" : locale);\n const metadata = {\n language,\n title: entry.title,\n canonical: pub.canonical,\n source: entry.sourcePath,\n version: pub.version?.label ?? config.site?.version,\n index: pub.index,\n };\n const lines = Object.entries(metadata)\n .filter(([, v]) => v !== undefined)\n .map(([key, value]) => `${key}: ${JSON.stringify(value)}`);\n return `---\\n${lines.join(\"\\n\")}\\n---\\n\\n# ${entry.title.replace(/\\s+/g, \" \")}\\n\\n${body}`;\n}\n","import { stat } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport { isAbsolute, resolve } from \"node:path\";\nimport type { DocsProject } from \"../project/index.js\";\nimport type { DocsDiagnostic, DocsGraph } from \"../types.js\";\n\n/** Local preflight only: no remote font requests or MDX/component compilation. */\nexport async function validateProjectAssets(\n project: DocsProject,\n graph: DocsGraph,\n publicDirectory = resolve(project.root, \"public\"),\n): Promise<DocsDiagnostic[]> {\n const diagnostics: DocsDiagnostic[] = [];\n const check = async (path: string, label: string) => {\n try {\n if (!(await stat(path)).isFile()) throw Error(\"not a file\");\n } catch {\n diagnostics.push({\n code: \"DOCS_CONFIG_ASSET_MISSING\",\n severity: \"error\",\n file: path,\n message: `${label} references a missing local file.`,\n hint: \"Correct the configured path or add the file before building.\",\n });\n }\n };\n const publicFile = async (src: string, label: string) => {\n if (!src.startsWith(\"/\") || src.startsWith(\"//\")) return;\n await check(\n resolve(publicDirectory, `.${decodeURIComponent(src.split(/[?#]/)[0]!)}`),\n label,\n );\n };\n for (const [role, font] of Object.entries(project.config.theme?.fonts ?? {}))\n if (font && typeof font === \"object\" && \"files\" in font)\n for (const file of font.files)\n await publicFile(file.src, `theme.fonts.${role}`);\n const { logo, favicon, seo } = project.config.site ?? {};\n if (logo) {\n const images = typeof logo === \"string\" ? { src: logo } : logo;\n for (const key of [\"src\", \"light\", \"dark\"] as const)\n if (images[key])\n await check(resolve(project.root, images[key]), `site.logo.${key}`);\n }\n if (favicon)\n await check(\n resolve(\n project.root,\n typeof favicon === \"string\" ? favicon : favicon.source,\n ),\n \"site.favicon\",\n );\n if (seo?.image) await publicFile(seo.image.src, \"site.seo.image\");\n for (const entry of graph.entries) {\n if (entry.frontmatter.seo?.image)\n await publicFile(\n entry.frontmatter.seo.image.src,\n `${entry.sourcePath}: seo.image`,\n );\n const hero = entry.frontmatter.hero?.image;\n if (hero && !(\"html\" in hero)) {\n for (const src of \"file\" in hero ? [hero.file] : [hero.light, hero.dark])\n if (\n !entry.assets.some(\n (asset) => asset.resolved === src || asset.publicPath === src,\n )\n )\n await publicFile(src, `${entry.sourcePath}: hero.image`);\n }\n }\n const require = createRequire(resolve(project.root, \"package.json\"));\n for (const [name, component] of Object.entries(\n project.config.components?.overrides ?? {},\n )) {\n if (typeof component !== \"string\") continue;\n if (\n isAbsolute(component) ||\n component.startsWith(\".\") ||\n component.startsWith(\"src/\")\n )\n await check(\n resolve(project.root, component),\n `components.overrides.${name}`,\n );\n else {\n try {\n require.resolve(component);\n } catch {\n diagnostics.push({\n code: \"DOCS_COMPONENT_UNRESOLVED\",\n severity: \"error\",\n message: `components.overrides.${name} cannot resolve ${component}.`,\n hint: \"Install the component package or use a path relative to the project root.\",\n });\n }\n }\n }\n return diagnostics;\n}\n","import { readFile, readdir } from \"node:fs/promises\";\nimport { resolve, sep } from \"node:path\";\nimport { fromHtml } from \"hast-util-from-html\";\nimport type { Element, Root } from \"hast\";\nimport { routePath } from \"../publishing.js\";\nimport type { DocsDiagnostic, DocsGraph } from \"../types.js\";\n\nexport interface BuiltDocsOptions {\n directory: string;\n graph?: DocsGraph;\n /** Deployed base URL, including a path prefix when present. */\n deployedUrl?: string;\n}\nexport interface BuiltDocsReport {\n ok: boolean;\n scope: \"built-output\" | \"deployment\";\n pages: number;\n assets: number;\n checkedUrls: number;\n diagnostics: DocsDiagnostic[];\n}\ntype PublishedPage = {\n route: string;\n url: string;\n canonical?: string;\n index: boolean;\n sitemap: boolean;\n markdown?: string;\n};\ntype Manifest = { base: string; site?: string; pages: PublishedPage[] };\n\n/** Inspect actual output, then optionally fetch the same pages/assets from a host. */\nexport async function validateBuiltDocs(\n options: BuiltDocsOptions,\n): Promise<BuiltDocsReport> {\n const directory = resolve(options.directory);\n const diagnostics: DocsDiagnostic[] = [];\n const error = (code: string, message: string, file?: string) =>\n diagnostics.push({\n code,\n severity: \"error\",\n message,\n ...(file ? { file } : {}),\n });\n let files: string[];\n let manifest: Manifest;\n try {\n files = (await readdir(directory, { recursive: true, withFileTypes: true }))\n .filter((entry) => entry.isFile())\n .map((entry) =>\n resolve(entry.parentPath, entry.name)\n .slice(directory.length + 1)\n .split(sep)\n .join(\"/\"),\n );\n manifest = JSON.parse(\n await readFile(resolve(directory, \"_cookbook/publishing.json\"), \"utf8\"),\n );\n if (!manifest.base?.startsWith(\"/\") || !Array.isArray(manifest.pages))\n throw Error(\"invalid publishing manifest\");\n } catch (cause) {\n error(\n \"DOCS_BUILD_MISSING\",\n `Cannot read Cookbook output in ${directory}. Run astro build first. ${String(cause)}`,\n );\n return {\n ok: false,\n scope: options.deployedUrl ? \"deployment\" : \"built-output\",\n pages: 0,\n assets: 0,\n checkedUrls: 0,\n diagnostics,\n };\n }\n const base = manifest.base.replace(/\\/$/, \"\");\n const origin =\n manifest.site ??\n manifest.pages.find((page) => /^https?:/.test(page.url))?.url ??\n \"https://cookbook.invalid\";\n const hasSite = new URL(origin).hostname !== \"cookbook.invalid\";\n if (!hasSite)\n diagnostics.push({\n code: \"DOCS_SITE_URL_MISSING\",\n severity: \"warning\",\n message:\n \"No site.url (or Astro site) is configured; absolute canonicals and sitemap coverage cannot be verified.\",\n });\n const fileSet = new Set(files);\n const pagePaths = new Map<string, string>();\n const documents = new Map<\n string,\n { ids: Set<string>; elements: Element[] }\n >();\n const urlForFile = (file: string) =>\n `${base}/${file.replace(/(^|\\/)index\\.html$/, \"$1\")}`;\n const normalizePath = (path: string) => path.replace(/\\/$/, \"\") || \"/\";\n for (const file of files.filter((file) => file.endsWith(\".html\"))) {\n pagePaths.set(normalizePath(urlForFile(file)), file);\n pagePaths.set(normalizePath(`${base}/${file}`), file);\n // Astro's file build format serves guide.html as /guide.\n pagePaths.set(\n normalizePath(`${base}/${file.replace(/\\.html$/, \"\")}`),\n file,\n );\n const tree = fromHtml(await readFile(resolve(directory, file), \"utf8\"));\n const elements: Element[] = [];\n const visit = (node: Root | Element | Root[\"children\"][number]) => {\n if (node.type === \"element\") elements.push(node);\n if (\"children\" in node) node.children.forEach(visit);\n };\n visit(tree);\n documents.set(file, {\n elements,\n ids: new Set(\n elements.flatMap((node) =>\n typeof node.properties.id === \"string\"\n ? [node.properties.id]\n : node.tagName === \"a\" && typeof node.properties.name === \"string\"\n ? [node.properties.name]\n : [],\n ),\n ),\n });\n }\n const requests = new Map<string, string>();\n const resolveLocal = (\n raw: string,\n owner: string,\n ): { file: string; url: URL } | undefined => {\n if (!raw || /^(?:data|mailto|tel|javascript|blob):/i.test(raw)) return;\n let url: URL;\n try {\n url = new URL(raw, new URL(owner, origin));\n } catch {\n error(\"DOCS_OUTPUT_URL_INVALID\", `Invalid URL ${raw}.`, owner);\n return;\n }\n if (\n url.origin !== new URL(origin).origin ||\n (base && url.pathname !== base && !url.pathname.startsWith(`${base}/`))\n )\n return;\n let path: string;\n try {\n path = decodeURIComponent(url.pathname);\n } catch {\n error(\"DOCS_OUTPUT_URL_INVALID\", `Invalid encoded URL ${raw}.`, owner);\n return;\n }\n const file =\n pagePaths.get(normalizePath(path)) ??\n path.slice(base.length).replace(/^\\//, \"\");\n if (!fileSet.has(file)) {\n error(\n \"DOCS_OUTPUT_LINK_MISSING\",\n `${raw} points to a missing page or asset.`,\n owner,\n );\n return;\n }\n if (url.hash && documents.has(file)) {\n let id: string;\n try {\n id = decodeURIComponent(url.hash.slice(1));\n } catch {\n id = url.hash.slice(1);\n }\n if (!documents.get(file)!.ids.has(id))\n error(\n \"DOCS_OUTPUT_FRAGMENT_MISSING\",\n `${raw} points to a missing heading or anchor.`,\n owner,\n );\n }\n requests.set(url.pathname, file);\n return { file, url };\n };\n for (const [file, { elements }] of documents) {\n const owner = urlForFile(file);\n requests.set(owner, file);\n for (const node of elements) {\n const p = node.properties;\n if (\n [\"a\", \"link\", \"use\"].includes(node.tagName) &&\n typeof p.href === \"string\" &&\n !(\n node.tagName === \"link\" &&\n Array.isArray(p.rel) &&\n p.rel.includes(\"canonical\")\n )\n )\n resolveLocal(p.href, owner);\n if (typeof p.src === \"string\") resolveLocal(p.src, owner);\n if (typeof p.poster === \"string\") resolveLocal(p.poster, owner);\n if (typeof p.srcSet === \"string\" && !p.srcSet.startsWith(\"data:\"))\n for (const candidate of p.srcSet.split(\",\"))\n resolveLocal(candidate.trim().split(/\\s+/)[0]!, owner);\n if (\n node.tagName === \"meta\" &&\n [\"og:image\", \"twitter:image\"].includes(String(p.property ?? p.name)) &&\n typeof p.content === \"string\"\n )\n resolveLocal(p.content, owner);\n }\n }\n for (const file of files.filter((file) => file.endsWith(\".css\"))) {\n const css = await readFile(resolve(directory, file), \"utf8\");\n for (const match of css.matchAll(/url\\(\\s*[\"']?([^\"'()\\s]+)[\"']?\\s*\\)/g))\n resolveLocal(match[1]!, `${base}/${file}`);\n }\n const expected = [...manifest.pages];\n if (options.graph)\n for (const route of options.graph.routes) {\n const url = routePath(\n route.route,\n base,\n options.graph.config.build.trailingSlash,\n );\n if (!resolveLocal(url, `${base}/`)) continue;\n if (!manifest.pages.some((page) => page.route === route.route)) {\n const entry = options.graph.entryByRoute(route.route);\n if (!entry?.frontmatter.draft)\n error(\n \"DOCS_PUBLISHING_PAGE_MISSING\",\n `Publishing manifest omits ${route.route}.`,\n );\n else\n expected.push({\n route: route.route,\n url,\n index: false,\n sitemap: false,\n });\n }\n }\n for (const page of expected) {\n const resolved = resolveLocal(page.url, `${base}/`);\n if (!resolved) continue;\n const nodes = documents.get(resolved.file)?.elements ?? [];\n const canonicals = nodes.filter(\n (n) =>\n n.tagName === \"link\" &&\n Array.isArray(n.properties.rel) &&\n n.properties.rel.includes(\"canonical\"),\n );\n if (\n (hasSite && canonicals.length !== 1) ||\n (page.canonical?.startsWith(\"http\") &&\n canonicals[0]?.properties.href !== page.canonical)\n )\n error(\n \"DOCS_CANONICAL_INVALID\",\n `Expected one canonical${page.canonical ? ` pointing to ${page.canonical}` : \"\"}.`,\n resolved.file,\n );\n const noindex = nodes.some(\n (n) =>\n n.tagName === \"meta\" &&\n n.properties.name === \"robots\" &&\n /\\bnoindex\\b/i.test(String(n.properties.content)),\n );\n if (page.index === noindex)\n error(\n \"DOCS_INDEX_POLICY_MISMATCH\",\n `Expected ${page.index ? \"indexable\" : \"noindex\"} metadata.`,\n resolved.file,\n );\n if (page.markdown) resolveLocal(page.markdown, page.url);\n }\n const sitemapUrls = new Set<string>();\n for (const file of files.filter((file) =>\n /(?:^|\\/)sitemap[^/]*\\.xml$/.test(file),\n )) {\n const xml = await readFile(resolve(directory, file), \"utf8\");\n for (const match of xml.matchAll(/<loc>([^<]+)<\\/loc>/g)) {\n const url = match[1]!.replace(/&amp;/g, \"&\");\n resolveLocal(url, `${base}/${file}`);\n if (!url.endsWith(\".xml\")) sitemapUrls.add(url);\n }\n }\n if (new URL(origin).hostname !== \"cookbook.invalid\")\n for (const page of expected) {\n if (page.sitemap && !sitemapUrls.has(page.url))\n error(\"DOCS_SITEMAP_PAGE_MISSING\", `Sitemap omits ${page.url}.`);\n if (!page.sitemap && sitemapUrls.has(page.url))\n error(\n \"DOCS_SITEMAP_UNLISTED_PAGE\",\n `Sitemap includes unlisted ${page.url}.`,\n );\n }\n resolveLocal(`${base}/llms.txt`, `${base}/`);\n if (fileSet.has(\"llms.txt\")) {\n const llms = await readFile(resolve(directory, \"llms.txt\"), \"utf8\");\n for (const match of llms.matchAll(/\\]\\(([^\\s)]+)\\)/g))\n resolveLocal(match[1]!, `${base}/llms.txt`);\n for (const page of expected.filter((page) => !page.sitemap)) {\n if (llms.includes(`](${page.url})`))\n error(\n \"DOCS_AGENT_UNLISTED_PAGE\",\n `llms.txt lists excluded ${page.url}.`,\n );\n }\n }\n if (!base && hasSite) resolveLocal(\"/robots.txt\", \"/\");\n if (fileSet.has(\"robots.txt\")) {\n const robots = await readFile(resolve(directory, \"robots.txt\"), \"utf8\");\n for (const match of robots.matchAll(/^Sitemap:\\s*(\\S+)/gim))\n resolveLocal(match[1]!, `${base}/robots.txt`);\n }\n let checkedUrls = 0;\n if (options.deployedUrl) {\n const deployed = new URL(\n options.deployedUrl.endsWith(\"/\")\n ? options.deployedUrl\n : `${options.deployedUrl}/`,\n );\n if (![\"http:\", \"https:\"].includes(deployed.protocol))\n throw Error(\"Deployment URL must use HTTP or HTTPS.\");\n const pending = [...requests.entries()];\n const worker = async () => {\n for (;;) {\n const next = pending.shift();\n if (!next) return;\n const [path, file] = next;\n const url = new URL(\n path.slice(base.length).replace(/^\\//, \"\"),\n deployed,\n );\n try {\n const response = await fetch(url, {\n signal: AbortSignal.timeout(15000),\n });\n const body = new Uint8Array(await response.arrayBuffer());\n checkedUrls++;\n if (!response.ok && !(file === \"404.html\" && response.status === 404))\n error(\n \"DOCS_DEPLOYMENT_HTTP\",\n `${url.href} returned ${response.status}.`,\n );\n else if (file.endsWith(\".html\")) {\n const live = new TextDecoder().decode(body);\n const local = await readFile(resolve(directory, file), \"utf8\");\n if (publishingSignature(live) !== publishingSignature(local))\n error(\n \"DOCS_DEPLOYMENT_PAGE_MISMATCH\",\n `${url.href} serves different title, canonical, or indexing metadata.`,\n );\n if (\n /noindex/i.test(response.headers.get(\"x-robots-tag\") ?? \"\") &&\n manifest.pages.some(\n (page) =>\n normalizePath(new URL(page.url, origin).pathname) ===\n normalizePath(path) && page.index,\n )\n )\n error(\n \"DOCS_DEPLOYMENT_NOINDEX\",\n `${url.href} has an unexpected X-Robots-Tag noindex header.`,\n );\n } else if (\n !body.length ||\n /text\\/html/i.test(response.headers.get(\"content-type\") ?? \"\")\n )\n error(\n \"DOCS_DEPLOYMENT_ASSET_INVALID\",\n `${url.href} did not return the expected asset.`,\n );\n } catch (cause) {\n error(\"DOCS_DEPLOYMENT_FETCH\", `${url.href}: ${String(cause)}`);\n }\n }\n };\n await Promise.all(Array.from({ length: 6 }, worker));\n }\n return {\n ok: !diagnostics.some((d) => d.severity === \"error\"),\n scope: options.deployedUrl ? \"deployment\" : \"built-output\",\n pages: documents.size,\n assets: new Set(\n [...requests.values()].filter((file) => !documents.has(file)),\n ).size,\n checkedUrls,\n diagnostics,\n };\n}\n\nfunction publishingSignature(html: string): string {\n const values: string[] = [];\n const walk = (node: Root | Root[\"children\"][number]) => {\n if (node.type === \"element\") {\n const p = node.properties;\n if (\n node.tagName === \"link\" &&\n Array.isArray(p.rel) &&\n p.rel.includes(\"canonical\")\n )\n values.push(`canonical:${p.href}`);\n if (node.tagName === \"meta\" && p.name === \"robots\")\n values.push(`robots:${p.content}`);\n if (node.tagName === \"title\")\n values.push(\n `title:${node.children.map((child) => (child.type === \"text\" ? child.value : \"\")).join(\"\")}`,\n );\n }\n if (\"children\" in node) node.children.forEach(walk);\n };\n walk(fromHtml(html));\n return JSON.stringify(values.sort());\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/project/index.ts","../src/agent-markdown.ts","../src/validation/assets.ts","../src/validation/build.ts"],"sourcesContent":["import { existsSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, resolve } from \"node:path\";\nimport { createJiti } from \"jiti\";\nimport { normalizeDocsConfig } from \"../config/index.js\";\nimport type { DocsConfig } from \"../types.js\";\n\nexport interface DocsProjectOptions {\n /** Directory to search for configuration; defaults to the current directory. */\n root?: string;\n /** Explicit configuration path, relative to root. False disables discovery. */\n configFile?: string | false;\n /** Inline configuration takes precedence over discovery. */\n config?: DocsConfig;\n}\n\nexport interface DocsProject {\n /** Content root: the configuration's directory joined with `config.root`. */\n root: string;\n /** Directory searched for configuration, normally the Astro project directory. */\n directory?: string;\n config: DocsConfig;\n configFile?: string;\n}\n\n/** Resolve the same configuration and content root for the CLI and renderer. */\nexport async function resolveDocsProject(\n options: DocsProjectOptions = {},\n): Promise<DocsProject> {\n const directory = resolve(options.root ?? process.cwd());\n let config = options.config;\n let configFile: string | undefined;\n if (config === undefined && options.configFile !== false) {\n configFile = options.configFile\n ? resolve(directory, options.configFile)\n : [\n \"docs.config.ts\",\n \"docs.config.mts\",\n \"docs.config.js\",\n \"docs.config.mjs\",\n ]\n .map((name) => resolve(directory, name))\n .find(existsSync);\n if (configFile) {\n if (!existsSync(configFile)) {\n throw new Error(\n `Documentation configuration does not exist: ${configFile}.`,\n );\n }\n const jiti = createJiti(import.meta.url, {\n interopDefault: true,\n moduleCache: false,\n });\n // Native ESM imports remain cached even with moduleCache disabled.\n // Transpile the entry so configuration restarts see edits in every format.\n const loaded = (await jiti.evalModule(\n await readFile(configFile, \"utf8\"),\n {\n filename: configFile,\n async: true,\n forceTranspile: true,\n },\n )) as { default?: DocsConfig };\n config = loaded.default ?? (loaded as DocsConfig);\n }\n }\n config ??= {};\n normalizeDocsConfig(config);\n return {\n root: resolve(\n configFile ? dirname(configFile) : directory,\n config.root ?? \".\",\n ),\n directory,\n config,\n ...(configFile ? { configFile } : {}),\n };\n}\n","import type { DocsEntry } from \"./types.js\";\nimport { pagePublishing, type PublishingConfig } from \"./publishing.js\";\nimport { serializeMarkdown } from \"./markdown/index.js\";\n\ntype Node = { type: string; value?: string; name?: string; children?: Node[] };\n/** A reading representation: retain prose/code/links, omit executable MDX and raw HTML. */\nexport function renderAgentMarkdown(\n entry: DocsEntry,\n config: PublishingConfig,\n): string {\n const tree = structuredClone(entry.ast) as Node;\n function clean(node: Node): Node[] {\n if (\n [\"mdxjsEsm\", \"mdxFlowExpression\", \"mdxTextExpression\", \"html\"].includes(\n node.type,\n )\n )\n return [];\n const children = node.children?.flatMap(clean);\n if (\n node.type === \"mdxJsxFlowElement\" ||\n node.type === \"mdxJsxTextElement\"\n ) {\n if (node.name && [\"script\", \"style\", \"Preview\"].includes(node.name))\n return [];\n return children ?? [];\n }\n return [{ ...node, ...(children ? { children } : {}) }];\n }\n const body = serializeMarkdown(clean(tree)[0] as typeof entry.ast, {\n mdx: false,\n });\n const pub = pagePublishing(entry, config);\n const prefix = entry.route.split(\"/\")[1];\n const locale =\n prefix && config.locales?.[prefix]\n ? prefix\n : (config.defaultLocale ?? \"root\");\n const language =\n config.locales?.[locale]?.lang ?? (locale === \"root\" ? \"en\" : locale);\n const metadata = {\n language,\n title: entry.title,\n canonical: pub.canonical,\n source: entry.sourcePath,\n version: pub.version?.label ?? config.site?.version,\n index: pub.index,\n };\n const lines = Object.entries(metadata)\n .filter(([, v]) => v !== undefined)\n .map(([key, value]) => `${key}: ${JSON.stringify(value)}`);\n return `---\\n${lines.join(\"\\n\")}\\n---\\n\\n# ${entry.title.replace(/\\s+/g, \" \")}\\n\\n${body}`;\n}\n","import { stat } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport { isAbsolute, resolve } from \"node:path\";\nimport type { DocsProject } from \"../project/index.js\";\nimport type { DocsDiagnostic, DocsGraph } from \"../types.js\";\n\n/** Local preflight only: no remote font requests or MDX/component compilation. */\nexport async function validateProjectAssets(\n project: DocsProject,\n graph: DocsGraph,\n publicDirectory = resolve(project.root, \"public\"),\n): Promise<DocsDiagnostic[]> {\n const diagnostics: DocsDiagnostic[] = [];\n const check = async (path: string, label: string) => {\n try {\n if (!(await stat(path)).isFile()) throw Error(\"not a file\");\n } catch {\n diagnostics.push({\n code: \"DOCS_CONFIG_ASSET_MISSING\",\n severity: \"error\",\n file: path,\n message: `${label} references a missing local file.`,\n hint: \"Correct the configured path or add the file before building.\",\n });\n }\n };\n const publicFile = async (src: string, label: string) => {\n if (!src.startsWith(\"/\") || src.startsWith(\"//\")) return;\n await check(\n resolve(publicDirectory, `.${decodeURIComponent(src.split(/[?#]/)[0]!)}`),\n label,\n );\n };\n for (const [role, font] of Object.entries(project.config.theme?.fonts ?? {}))\n if (font && typeof font === \"object\" && \"files\" in font)\n for (const file of font.files)\n await publicFile(file.src, `theme.fonts.${role}`);\n const { logo, favicon, seo } = project.config.site ?? {};\n if (logo) {\n const images = typeof logo === \"string\" ? { src: logo } : logo;\n for (const key of [\"src\", \"light\", \"dark\"] as const)\n if (images[key])\n await check(resolve(project.root, images[key]), `site.logo.${key}`);\n }\n if (favicon)\n await check(\n resolve(\n project.root,\n typeof favicon === \"string\" ? favicon : favicon.source,\n ),\n \"site.favicon\",\n );\n if (seo?.image) await publicFile(seo.image.src, \"site.seo.image\");\n for (const entry of graph.entries) {\n if (entry.frontmatter.seo?.image)\n await publicFile(\n entry.frontmatter.seo.image.src,\n `${entry.sourcePath}: seo.image`,\n );\n const hero = entry.frontmatter.hero?.image;\n if (hero && !(\"html\" in hero)) {\n for (const src of \"file\" in hero ? [hero.file] : [hero.light, hero.dark])\n if (\n !entry.assets.some(\n (asset) => asset.resolved === src || asset.publicPath === src,\n )\n )\n await publicFile(src, `${entry.sourcePath}: hero.image`);\n }\n }\n // Match the build: relative paths and dependencies resolve from the Astro project.\n const directory = project.directory ?? project.root;\n const require = createRequire(resolve(directory, \"package.json\"));\n for (const [name, component] of Object.entries(\n project.config.components?.overrides ?? {},\n )) {\n if (typeof component !== \"string\") continue;\n if (isAbsolute(component) || component.startsWith(\".\"))\n await check(\n resolve(directory, component),\n `components.overrides.${name}`,\n );\n else {\n try {\n require.resolve(component);\n } catch {\n diagnostics.push({\n code: \"DOCS_COMPONENT_UNRESOLVED\",\n severity: \"error\",\n message: `components.overrides.${name} cannot resolve ${component}.`,\n hint: \"Install the component package, or start a local path with ./ to resolve it from the Astro project directory.\",\n });\n }\n }\n }\n return diagnostics;\n}\n","import { readFile, readdir } from \"node:fs/promises\";\nimport { resolve, sep } from \"node:path\";\nimport { fromHtml } from \"hast-util-from-html\";\nimport type { Element, Root } from \"hast\";\nimport { routePath } from \"../publishing.js\";\nimport type { DocsDiagnostic, DocsGraph } from \"../types.js\";\n\nexport interface BuiltDocsOptions {\n directory: string;\n graph?: DocsGraph;\n /** Deployed base URL, including a path prefix when present. */\n deployedUrl?: string;\n}\nexport interface BuiltDocsReport {\n ok: boolean;\n scope: \"built-output\" | \"deployment\";\n pages: number;\n assets: number;\n checkedUrls: number;\n diagnostics: DocsDiagnostic[];\n}\ntype PublishedPage = {\n route: string;\n url: string;\n canonical?: string;\n index: boolean;\n sitemap: boolean;\n markdown?: string;\n};\ntype Manifest = { base: string; site?: string; pages: PublishedPage[] };\n\n/** Inspect actual output, then optionally fetch the same pages/assets from a host. */\nexport async function validateBuiltDocs(\n options: BuiltDocsOptions,\n): Promise<BuiltDocsReport> {\n const directory = resolve(options.directory);\n const diagnostics: DocsDiagnostic[] = [];\n const error = (code: string, message: string, file?: string) =>\n diagnostics.push({\n code,\n severity: \"error\",\n message,\n ...(file ? { file } : {}),\n });\n let files: string[];\n let manifest: Manifest;\n try {\n files = (await readdir(directory, { recursive: true, withFileTypes: true }))\n .filter((entry) => entry.isFile())\n .map((entry) =>\n resolve(entry.parentPath, entry.name)\n .slice(directory.length + 1)\n .split(sep)\n .join(\"/\"),\n );\n manifest = JSON.parse(\n await readFile(resolve(directory, \"_cookbook/publishing.json\"), \"utf8\"),\n );\n if (!manifest.base?.startsWith(\"/\") || !Array.isArray(manifest.pages))\n throw Error(\"invalid publishing manifest\");\n } catch (cause) {\n error(\n \"DOCS_BUILD_MISSING\",\n `Cannot read Cookbook output in ${directory}. Run astro build first. ${String(cause)}`,\n );\n return {\n ok: false,\n scope: options.deployedUrl ? \"deployment\" : \"built-output\",\n pages: 0,\n assets: 0,\n checkedUrls: 0,\n diagnostics,\n };\n }\n const base = manifest.base.replace(/\\/$/, \"\");\n const origin =\n manifest.site ??\n manifest.pages.find((page) => /^https?:/.test(page.url))?.url ??\n \"https://cookbook.invalid\";\n const hasSite = new URL(origin).hostname !== \"cookbook.invalid\";\n if (!hasSite)\n diagnostics.push({\n code: \"DOCS_SITE_URL_MISSING\",\n severity: \"warning\",\n message:\n \"No site.url (or Astro site) is configured; absolute canonicals and sitemap coverage cannot be verified.\",\n });\n const fileSet = new Set(files);\n const pagePaths = new Map<string, string>();\n const documents = new Map<\n string,\n { ids: Set<string>; elements: Element[] }\n >();\n const urlForFile = (file: string) =>\n `${base}/${file.replace(/(^|\\/)index\\.html$/, \"$1\")}`;\n const normalizePath = (path: string) => path.replace(/\\/$/, \"\") || \"/\";\n for (const file of files.filter((file) => file.endsWith(\".html\"))) {\n pagePaths.set(normalizePath(urlForFile(file)), file);\n pagePaths.set(normalizePath(`${base}/${file}`), file);\n // Astro's file build format serves guide.html as /guide.\n pagePaths.set(\n normalizePath(`${base}/${file.replace(/\\.html$/, \"\")}`),\n file,\n );\n const tree = fromHtml(await readFile(resolve(directory, file), \"utf8\"));\n const elements: Element[] = [];\n const visit = (node: Root | Element | Root[\"children\"][number]) => {\n if (node.type === \"element\") elements.push(node);\n if (\"children\" in node) node.children.forEach(visit);\n };\n visit(tree);\n documents.set(file, {\n elements,\n ids: new Set(\n elements.flatMap((node) =>\n typeof node.properties.id === \"string\"\n ? [node.properties.id]\n : node.tagName === \"a\" && typeof node.properties.name === \"string\"\n ? [node.properties.name]\n : [],\n ),\n ),\n });\n }\n const requests = new Map<string, string>();\n const resolveLocal = (\n raw: string,\n owner: string,\n ): { file: string; url: URL } | undefined => {\n if (!raw || /^(?:data|mailto|tel|javascript|blob):/i.test(raw)) return;\n let url: URL;\n try {\n url = new URL(raw, new URL(owner, origin));\n } catch {\n error(\"DOCS_OUTPUT_URL_INVALID\", `Invalid URL ${raw}.`, owner);\n return;\n }\n if (\n url.origin !== new URL(origin).origin ||\n (base && url.pathname !== base && !url.pathname.startsWith(`${base}/`))\n )\n return;\n let path: string;\n try {\n path = decodeURIComponent(url.pathname);\n } catch {\n error(\"DOCS_OUTPUT_URL_INVALID\", `Invalid encoded URL ${raw}.`, owner);\n return;\n }\n const file =\n pagePaths.get(normalizePath(path)) ??\n path.slice(base.length).replace(/^\\//, \"\");\n if (!fileSet.has(file)) {\n error(\n \"DOCS_OUTPUT_LINK_MISSING\",\n `${raw} points to a missing page or asset.`,\n owner,\n );\n return;\n }\n if (url.hash && documents.has(file)) {\n let id: string;\n try {\n id = decodeURIComponent(url.hash.slice(1));\n } catch {\n id = url.hash.slice(1);\n }\n if (!documents.get(file)!.ids.has(id))\n error(\n \"DOCS_OUTPUT_FRAGMENT_MISSING\",\n `${raw} points to a missing heading or anchor.`,\n owner,\n );\n }\n requests.set(url.pathname, file);\n return { file, url };\n };\n for (const [file, { elements }] of documents) {\n const owner = urlForFile(file);\n requests.set(owner, file);\n for (const node of elements) {\n const p = node.properties;\n if (\n [\"a\", \"link\", \"use\"].includes(node.tagName) &&\n typeof p.href === \"string\" &&\n !(\n node.tagName === \"link\" &&\n Array.isArray(p.rel) &&\n p.rel.includes(\"canonical\")\n )\n )\n resolveLocal(p.href, owner);\n if (typeof p.src === \"string\") resolveLocal(p.src, owner);\n if (typeof p.poster === \"string\") resolveLocal(p.poster, owner);\n if (typeof p.srcSet === \"string\" && !p.srcSet.startsWith(\"data:\"))\n for (const candidate of p.srcSet.split(\",\"))\n resolveLocal(candidate.trim().split(/\\s+/)[0]!, owner);\n if (\n node.tagName === \"meta\" &&\n [\"og:image\", \"twitter:image\"].includes(String(p.property ?? p.name)) &&\n typeof p.content === \"string\"\n )\n resolveLocal(p.content, owner);\n }\n }\n for (const file of files.filter((file) => file.endsWith(\".css\"))) {\n const css = await readFile(resolve(directory, file), \"utf8\");\n for (const match of css.matchAll(/url\\(\\s*[\"']?([^\"'()\\s]+)[\"']?\\s*\\)/g))\n resolveLocal(match[1]!, `${base}/${file}`);\n }\n const expected = [...manifest.pages];\n if (options.graph)\n for (const route of options.graph.routes) {\n const url = routePath(\n route.route,\n base,\n options.graph.config.build.trailingSlash,\n );\n if (!resolveLocal(url, `${base}/`)) continue;\n if (!manifest.pages.some((page) => page.route === route.route)) {\n const entry = options.graph.entryByRoute(route.route);\n if (!entry?.frontmatter.draft)\n error(\n \"DOCS_PUBLISHING_PAGE_MISSING\",\n `Publishing manifest omits ${route.route}.`,\n );\n else\n expected.push({\n route: route.route,\n url,\n index: false,\n sitemap: false,\n });\n }\n }\n for (const page of expected) {\n const resolved = resolveLocal(page.url, `${base}/`);\n if (!resolved) continue;\n const nodes = documents.get(resolved.file)?.elements ?? [];\n const canonicals = nodes.filter(\n (n) =>\n n.tagName === \"link\" &&\n Array.isArray(n.properties.rel) &&\n n.properties.rel.includes(\"canonical\"),\n );\n if (\n (hasSite && canonicals.length !== 1) ||\n (page.canonical?.startsWith(\"http\") &&\n canonicals[0]?.properties.href !== page.canonical)\n )\n error(\n \"DOCS_CANONICAL_INVALID\",\n `Expected one canonical${page.canonical ? ` pointing to ${page.canonical}` : \"\"}.`,\n resolved.file,\n );\n const noindex = nodes.some(\n (n) =>\n n.tagName === \"meta\" &&\n n.properties.name === \"robots\" &&\n /\\bnoindex\\b/i.test(String(n.properties.content)),\n );\n if (page.index === noindex)\n error(\n \"DOCS_INDEX_POLICY_MISMATCH\",\n `Expected ${page.index ? \"indexable\" : \"noindex\"} metadata.`,\n resolved.file,\n );\n if (page.markdown) resolveLocal(page.markdown, page.url);\n }\n const sitemapUrls = new Set<string>();\n for (const file of files.filter((file) =>\n /(?:^|\\/)sitemap[^/]*\\.xml$/.test(file),\n )) {\n const xml = await readFile(resolve(directory, file), \"utf8\");\n for (const match of xml.matchAll(/<loc>([^<]+)<\\/loc>/g)) {\n const url = match[1]!.replace(/&amp;/g, \"&\");\n resolveLocal(url, `${base}/${file}`);\n if (!url.endsWith(\".xml\")) sitemapUrls.add(url);\n }\n }\n if (new URL(origin).hostname !== \"cookbook.invalid\")\n for (const page of expected) {\n if (page.sitemap && !sitemapUrls.has(page.url))\n error(\"DOCS_SITEMAP_PAGE_MISSING\", `Sitemap omits ${page.url}.`);\n if (!page.sitemap && sitemapUrls.has(page.url))\n error(\n \"DOCS_SITEMAP_UNLISTED_PAGE\",\n `Sitemap includes unlisted ${page.url}.`,\n );\n }\n resolveLocal(`${base}/llms.txt`, `${base}/`);\n if (fileSet.has(\"llms.txt\")) {\n const llms = await readFile(resolve(directory, \"llms.txt\"), \"utf8\");\n for (const match of llms.matchAll(/\\]\\(([^\\s)]+)\\)/g))\n resolveLocal(match[1]!, `${base}/llms.txt`);\n for (const page of expected.filter((page) => !page.sitemap)) {\n if (llms.includes(`](${page.url})`))\n error(\n \"DOCS_AGENT_UNLISTED_PAGE\",\n `llms.txt lists excluded ${page.url}.`,\n );\n }\n }\n if (!base && hasSite) resolveLocal(\"/robots.txt\", \"/\");\n if (fileSet.has(\"robots.txt\")) {\n const robots = await readFile(resolve(directory, \"robots.txt\"), \"utf8\");\n for (const match of robots.matchAll(/^Sitemap:\\s*(\\S+)/gim))\n resolveLocal(match[1]!, `${base}/robots.txt`);\n }\n let checkedUrls = 0;\n if (options.deployedUrl) {\n const deployed = new URL(\n options.deployedUrl.endsWith(\"/\")\n ? options.deployedUrl\n : `${options.deployedUrl}/`,\n );\n if (![\"http:\", \"https:\"].includes(deployed.protocol))\n throw Error(\"Deployment URL must use HTTP or HTTPS.\");\n const pending = [...requests.entries()];\n const worker = async () => {\n for (;;) {\n const next = pending.shift();\n if (!next) return;\n const [path, file] = next;\n const url = new URL(\n path.slice(base.length).replace(/^\\//, \"\"),\n deployed,\n );\n try {\n const response = await fetch(url, {\n signal: AbortSignal.timeout(15000),\n });\n const body = new Uint8Array(await response.arrayBuffer());\n checkedUrls++;\n if (!response.ok && !(file === \"404.html\" && response.status === 404))\n error(\n \"DOCS_DEPLOYMENT_HTTP\",\n `${url.href} returned ${response.status}.`,\n );\n else if (file.endsWith(\".html\")) {\n const live = new TextDecoder().decode(body);\n const local = await readFile(resolve(directory, file), \"utf8\");\n if (publishingSignature(live) !== publishingSignature(local))\n error(\n \"DOCS_DEPLOYMENT_PAGE_MISMATCH\",\n `${url.href} serves different title, canonical, or indexing metadata.`,\n );\n if (\n /noindex/i.test(response.headers.get(\"x-robots-tag\") ?? \"\") &&\n manifest.pages.some(\n (page) =>\n normalizePath(new URL(page.url, origin).pathname) ===\n normalizePath(path) && page.index,\n )\n )\n error(\n \"DOCS_DEPLOYMENT_NOINDEX\",\n `${url.href} has an unexpected X-Robots-Tag noindex header.`,\n );\n } else if (\n !body.length ||\n /text\\/html/i.test(response.headers.get(\"content-type\") ?? \"\")\n )\n error(\n \"DOCS_DEPLOYMENT_ASSET_INVALID\",\n `${url.href} did not return the expected asset.`,\n );\n } catch (cause) {\n error(\"DOCS_DEPLOYMENT_FETCH\", `${url.href}: ${String(cause)}`);\n }\n }\n };\n await Promise.all(Array.from({ length: 6 }, worker));\n }\n return {\n ok: !diagnostics.some((d) => d.severity === \"error\"),\n scope: options.deployedUrl ? \"deployment\" : \"built-output\",\n pages: documents.size,\n assets: new Set(\n [...requests.values()].filter((file) => !documents.has(file)),\n ).size,\n checkedUrls,\n diagnostics,\n };\n}\n\nfunction publishingSignature(html: string): string {\n const values: string[] = [];\n const walk = (node: Root | Root[\"children\"][number]) => {\n if (node.type === \"element\") {\n const p = node.properties;\n if (\n node.tagName === \"link\" &&\n Array.isArray(p.rel) &&\n p.rel.includes(\"canonical\")\n )\n values.push(`canonical:${p.href}`);\n if (node.tagName === \"meta\" && p.name === \"robots\")\n values.push(`robots:${p.content}`);\n if (node.tagName === \"title\")\n values.push(\n `title:${node.children.map((child) => (child.type === \"text\" ? child.value : \"\")).join(\"\")}`,\n );\n }\n if (\"children\" in node) node.children.forEach(walk);\n };\n walk(fromHtml(html));\n return JSON.stringify(values.sort());\n}\n"],"mappings":";;;;;;;;;;;AA0BA,eAAsB,mBACpB,UAA8B,CAAC,GACT;CACtB,MAAM,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,IAAI,CAAC;CACvD,IAAI,SAAS,QAAQ;CACrB,IAAI;CACJ,IAAI,WAAW,KAAA,KAAa,QAAQ,eAAe,OAAO;EACxD,aAAa,QAAQ,aACjB,QAAQ,WAAW,QAAQ,UAAU,IACrC;GACE;GACA;GACA;GACA;EACF,CAAC,CACE,KAAK,SAAS,QAAQ,WAAW,IAAI,CAAC,CAAC,CACvC,KAAK,UAAU;EACtB,IAAI,YAAY;GACd,IAAI,CAAC,WAAW,UAAU,GACxB,MAAM,IAAI,MACR,+CAA+C,WAAW,EAC5D;GAQF,MAAM,SAAU,MANH,WAAW,YAAY,KAAK;IACvC,gBAAgB;IAChB,aAAa;GACf,CAGyB,CAAC,CAAC,WACzB,MAAM,SAAS,YAAY,MAAM,GACjC;IACE,UAAU;IACV,OAAO;IACP,gBAAgB;GAClB,CACF;GACA,SAAS,OAAO,WAAY;EAC9B;CACF;CACA,WAAW,CAAC;CACZ,oBAAoB,MAAM;CAC1B,OAAO;EACL,MAAM,QACJ,aAAa,QAAQ,UAAU,IAAI,WACnC,OAAO,QAAQ,GACjB;EACA;EACA;EACA,GAAI,aAAa,EAAE,WAAW,IAAI,CAAC;CACrC;AACF;;;;ACvEA,SAAgB,oBACd,OACA,QACQ;CACR,MAAM,OAAO,gBAAgB,MAAM,GAAG;CACtC,SAAS,MAAM,MAAoB;EACjC,IACE;GAAC;GAAY;GAAqB;GAAqB;EAAM,CAAC,CAAC,SAC7D,KAAK,IACP,GAEA,OAAO,CAAC;EACV,MAAM,WAAW,KAAK,UAAU,QAAQ,KAAK;EAC7C,IACE,KAAK,SAAS,uBACd,KAAK,SAAS,qBACd;GACA,IAAI,KAAK,QAAQ;IAAC;IAAU;IAAS;GAAS,CAAC,CAAC,SAAS,KAAK,IAAI,GAChE,OAAO,CAAC;GACV,OAAO,YAAY,CAAC;EACtB;EACA,OAAO,CAAC;GAAE,GAAG;GAAM,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;EAAG,CAAC;CACxD;CACA,MAAM,OAAO,kBAAkB,MAAM,IAAI,CAAC,CAAC,IAAwB,EACjE,KAAK,MACP,CAAC;CACD,MAAM,MAAM,eAAe,OAAO,MAAM;CACxC,MAAM,SAAS,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC;CACtC,MAAM,SACJ,UAAU,OAAO,UAAU,UACvB,SACC,OAAO,iBAAiB;CAG/B,MAAM,WAAW;EACf,UAFA,OAAO,UAAU,OAAO,EAAE,SAAS,WAAW,SAAS,OAAO;EAG9D,OAAO,MAAM;EACb,WAAW,IAAI;EACf,QAAQ,MAAM;EACd,SAAS,IAAI,SAAS,SAAS,OAAO,MAAM;EAC5C,OAAO,IAAI;CACb;CAIA,OAAO,QAHO,OAAO,QAAQ,QAAQ,CAAC,CACnC,QAAQ,GAAG,OAAO,MAAM,KAAA,CAAS,CAAC,CAClC,KAAK,CAAC,KAAK,WAAW,GAAG,IAAI,IAAI,KAAK,UAAU,KAAK,GACrC,CAAC,CAAC,KAAK,IAAI,EAAE,aAAa,MAAM,MAAM,QAAQ,QAAQ,GAAG,EAAE,MAAM;AACtF;;;;AC7CA,eAAsB,sBACpB,SACA,OACA,kBAAkB,QAAQ,QAAQ,MAAM,QAAQ,GACrB;CAC3B,MAAM,cAAgC,CAAC;CACvC,MAAM,QAAQ,OAAO,MAAc,UAAkB;EACnD,IAAI;GACF,IAAI,EAAE,MAAM,KAAK,IAAI,EAAA,CAAG,OAAO,GAAG,MAAM,MAAM,YAAY;EAC5D,QAAQ;GACN,YAAY,KAAK;IACf,MAAM;IACN,UAAU;IACV,MAAM;IACN,SAAS,GAAG,MAAM;IAClB,MAAM;GACR,CAAC;EACH;CACF;CACA,MAAM,aAAa,OAAO,KAAa,UAAkB;EACvD,IAAI,CAAC,IAAI,WAAW,GAAG,KAAK,IAAI,WAAW,IAAI,GAAG;EAClD,MAAM,MACJ,QAAQ,iBAAiB,IAAI,mBAAmB,IAAI,MAAM,MAAM,CAAC,CAAC,EAAG,GAAG,GACxE,KACF;CACF;CACA,KAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,QAAQ,OAAO,OAAO,SAAS,CAAC,CAAC,GACzE,IAAI,QAAQ,OAAO,SAAS,YAAY,WAAW,MACjD,KAAK,MAAM,QAAQ,KAAK,OACtB,MAAM,WAAW,KAAK,KAAK,eAAe,MAAM;CACtD,MAAM,EAAE,MAAM,SAAS,QAAQ,QAAQ,OAAO,QAAQ,CAAC;CACvD,IAAI,MAAM;EACR,MAAM,SAAS,OAAO,SAAS,WAAW,EAAE,KAAK,KAAK,IAAI;EAC1D,KAAK,MAAM,OAAO;GAAC;GAAO;GAAS;EAAM,GACvC,IAAI,OAAO,MACT,MAAM,MAAM,QAAQ,QAAQ,MAAM,OAAO,IAAI,GAAG,aAAa,KAAK;CACxE;CACA,IAAI,SACF,MAAM,MACJ,QACE,QAAQ,MACR,OAAO,YAAY,WAAW,UAAU,QAAQ,MAClD,GACA,cACF;CACF,IAAI,KAAK,OAAO,MAAM,WAAW,IAAI,MAAM,KAAK,gBAAgB;CAChE,KAAK,MAAM,SAAS,MAAM,SAAS;EACjC,IAAI,MAAM,YAAY,KAAK,OACzB,MAAM,WACJ,MAAM,YAAY,IAAI,MAAM,KAC5B,GAAG,MAAM,WAAW,YACtB;EACF,MAAM,OAAO,MAAM,YAAY,MAAM;EACrC,IAAI,QAAQ,EAAE,UAAU,OACjB;QAAA,MAAM,OAAO,UAAU,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,OAAO,KAAK,IAAI,GACrE,IACE,CAAC,MAAM,OAAO,MACX,UAAU,MAAM,aAAa,OAAO,MAAM,eAAe,GAC5D,GAEA,MAAM,WAAW,KAAK,GAAG,MAAM,WAAW,aAAa;EAAA;CAE/D;CAEA,MAAM,YAAY,QAAQ,aAAa,QAAQ;CAC/C,MAAM,UAAU,cAAc,QAAQ,WAAW,cAAc,CAAC;CAChE,KAAK,MAAM,CAAC,MAAM,cAAc,OAAO,QACrC,QAAQ,OAAO,YAAY,aAAa,CAAC,CAC3C,GAAG;EACD,IAAI,OAAO,cAAc,UAAU;EACnC,IAAI,WAAW,SAAS,KAAK,UAAU,WAAW,GAAG,GACnD,MAAM,MACJ,QAAQ,WAAW,SAAS,GAC5B,wBAAwB,MAC1B;OAEA,IAAI;GACF,QAAQ,QAAQ,SAAS;EAC3B,QAAQ;GACN,YAAY,KAAK;IACf,MAAM;IACN,UAAU;IACV,SAAS,wBAAwB,KAAK,kBAAkB,UAAU;IAClE,MAAM;GACR,CAAC;EACH;CAEJ;CACA,OAAO;AACT;;;;AChEA,eAAsB,kBACpB,SAC0B;CAC1B,MAAM,YAAY,QAAQ,QAAQ,SAAS;CAC3C,MAAM,cAAgC,CAAC;CACvC,MAAM,SAAS,MAAc,SAAiB,SAC5C,YAAY,KAAK;EACf;EACA,UAAU;EACV;EACA,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC;CACzB,CAAC;CACH,IAAI;CACJ,IAAI;CACJ,IAAI;EACF,SAAS,MAAM,QAAQ,WAAW;GAAE,WAAW;GAAM,eAAe;EAAK,CAAC,EAAA,CACvE,QAAQ,UAAU,MAAM,OAAO,CAAC,CAAC,CACjC,KAAK,UACJ,QAAQ,MAAM,YAAY,MAAM,IAAI,CAAC,CAClC,MAAM,UAAU,SAAS,CAAC,CAAC,CAC3B,MAAM,GAAG,CAAC,CACV,KAAK,GAAG,CACb;EACF,WAAW,KAAK,MACd,MAAM,SAAS,QAAQ,WAAW,2BAA2B,GAAG,MAAM,CACxE;EACA,IAAI,CAAC,SAAS,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,QAAQ,SAAS,KAAK,GAClE,MAAM,MAAM,6BAA6B;CAC7C,SAAS,OAAO;EACd,MACE,sBACA,kCAAkC,UAAU,2BAA2B,OAAO,KAAK,GACrF;EACA,OAAO;GACL,IAAI;GACJ,OAAO,QAAQ,cAAc,eAAe;GAC5C,OAAO;GACP,QAAQ;GACR,aAAa;GACb;EACF;CACF;CACA,MAAM,OAAO,SAAS,KAAK,QAAQ,OAAO,EAAE;CAC5C,MAAM,SACJ,SAAS,QACT,SAAS,MAAM,MAAM,SAAS,WAAW,KAAK,KAAK,GAAG,CAAC,CAAC,EAAE,OAC1D;CACF,MAAM,UAAU,IAAI,IAAI,MAAM,CAAC,CAAC,aAAa;CAC7C,IAAI,CAAC,SACH,YAAY,KAAK;EACf,MAAM;EACN,UAAU;EACV,SACE;CACJ,CAAC;CACH,MAAM,UAAU,IAAI,IAAI,KAAK;CAC7B,MAAM,4BAAY,IAAI,IAAoB;CAC1C,MAAM,4BAAY,IAAI,IAGpB;CACF,MAAM,cAAc,SAClB,GAAG,KAAK,GAAG,KAAK,QAAQ,sBAAsB,IAAI;CACpD,MAAM,iBAAiB,SAAiB,KAAK,QAAQ,OAAO,EAAE,KAAK;CACnE,KAAK,MAAM,QAAQ,MAAM,QAAQ,SAAS,KAAK,SAAS,OAAO,CAAC,GAAG;EACjE,UAAU,IAAI,cAAc,WAAW,IAAI,CAAC,GAAG,IAAI;EACnD,UAAU,IAAI,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI;EAEpD,UAAU,IACR,cAAc,GAAG,KAAK,GAAG,KAAK,QAAQ,WAAW,EAAE,GAAG,GACtD,IACF;EACA,MAAM,OAAO,SAAS,MAAM,SAAS,QAAQ,WAAW,IAAI,GAAG,MAAM,CAAC;EACtE,MAAM,WAAsB,CAAC;EAC7B,MAAM,SAAS,SAAoD;GACjE,IAAI,KAAK,SAAS,WAAW,SAAS,KAAK,IAAI;GAC/C,IAAI,cAAc,MAAM,KAAK,SAAS,QAAQ,KAAK;EACrD;EACA,MAAM,IAAI;EACV,UAAU,IAAI,MAAM;GAClB;GACA,KAAK,IAAI,IACP,SAAS,SAAS,SAChB,OAAO,KAAK,WAAW,OAAO,WAC1B,CAAC,KAAK,WAAW,EAAE,IACnB,KAAK,YAAY,OAAO,OAAO,KAAK,WAAW,SAAS,WACtD,CAAC,KAAK,WAAW,IAAI,IACrB,CAAC,CACT,CACF;EACF,CAAC;CACH;CACA,MAAM,2BAAW,IAAI,IAAoB;CACzC,MAAM,gBACJ,KACA,UAC2C;EAC3C,IAAI,CAAC,OAAO,yCAAyC,KAAK,GAAG,GAAG;EAChE,IAAI;EACJ,IAAI;GACF,MAAM,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC;EAC3C,QAAQ;GACN,MAAM,2BAA2B,eAAe,IAAI,IAAI,KAAK;GAC7D;EACF;EACA,IACE,IAAI,WAAW,IAAI,IAAI,MAAM,CAAC,CAAC,UAC9B,QAAQ,IAAI,aAAa,QAAQ,CAAC,IAAI,SAAS,WAAW,GAAG,KAAK,EAAE,GAErE;EACF,IAAI;EACJ,IAAI;GACF,OAAO,mBAAmB,IAAI,QAAQ;EACxC,QAAQ;GACN,MAAM,2BAA2B,uBAAuB,IAAI,IAAI,KAAK;GACrE;EACF;EACA,MAAM,OACJ,UAAU,IAAI,cAAc,IAAI,CAAC,KACjC,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,QAAQ,OAAO,EAAE;EAC3C,IAAI,CAAC,QAAQ,IAAI,IAAI,GAAG;GACtB,MACE,4BACA,GAAG,IAAI,sCACP,KACF;GACA;EACF;EACA,IAAI,IAAI,QAAQ,UAAU,IAAI,IAAI,GAAG;GACnC,IAAI;GACJ,IAAI;IACF,KAAK,mBAAmB,IAAI,KAAK,MAAM,CAAC,CAAC;GAC3C,QAAQ;IACN,KAAK,IAAI,KAAK,MAAM,CAAC;GACvB;GACA,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAE,IAAI,IAAI,EAAE,GAClC,MACE,gCACA,GAAG,IAAI,0CACP,KACF;EACJ;EACA,SAAS,IAAI,IAAI,UAAU,IAAI;EAC/B,OAAO;GAAE;GAAM;EAAI;CACrB;CACA,KAAK,MAAM,CAAC,MAAM,EAAE,eAAe,WAAW;EAC5C,MAAM,QAAQ,WAAW,IAAI;EAC7B,SAAS,IAAI,OAAO,IAAI;EACxB,KAAK,MAAM,QAAQ,UAAU;GAC3B,MAAM,IAAI,KAAK;GACf,IACE;IAAC;IAAK;IAAQ;GAAK,CAAC,CAAC,SAAS,KAAK,OAAO,KAC1C,OAAO,EAAE,SAAS,YAClB,EACE,KAAK,YAAY,UACjB,MAAM,QAAQ,EAAE,GAAG,KACnB,EAAE,IAAI,SAAS,WAAW,IAG5B,aAAa,EAAE,MAAM,KAAK;GAC5B,IAAI,OAAO,EAAE,QAAQ,UAAU,aAAa,EAAE,KAAK,KAAK;GACxD,IAAI,OAAO,EAAE,WAAW,UAAU,aAAa,EAAE,QAAQ,KAAK;GAC9D,IAAI,OAAO,EAAE,WAAW,YAAY,CAAC,EAAE,OAAO,WAAW,OAAO,GAC9D,KAAK,MAAM,aAAa,EAAE,OAAO,MAAM,GAAG,GACxC,aAAa,UAAU,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAK,KAAK;GACzD,IACE,KAAK,YAAY,UACjB,CAAC,YAAY,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,KACnE,OAAO,EAAE,YAAY,UAErB,aAAa,EAAE,SAAS,KAAK;EACjC;CACF;CACA,KAAK,MAAM,QAAQ,MAAM,QAAQ,SAAS,KAAK,SAAS,MAAM,CAAC,GAAG;EAChE,MAAM,MAAM,MAAM,SAAS,QAAQ,WAAW,IAAI,GAAG,MAAM;EAC3D,KAAK,MAAM,SAAS,IAAI,SAAS,sCAAsC,GACrE,aAAa,MAAM,IAAK,GAAG,KAAK,GAAG,MAAM;CAC7C;CACA,MAAM,WAAW,CAAC,GAAG,SAAS,KAAK;CACnC,IAAI,QAAQ,OACV,KAAK,MAAM,SAAS,QAAQ,MAAM,QAAQ;EACxC,MAAM,MAAM,UACV,MAAM,OACN,MACA,QAAQ,MAAM,OAAO,MAAM,aAC7B;EACA,IAAI,CAAC,aAAa,KAAK,GAAG,KAAK,EAAE,GAAG;EACpC,IAAI,CAAC,SAAS,MAAM,MAAM,SAAS,KAAK,UAAU,MAAM,KAAK,GAAG;GAE9D,IAAI,CADU,QAAQ,MAAM,aAAa,MAAM,KACtC,CAAC,EAAE,YAAY,OACtB,MACE,gCACA,6BAA6B,MAAM,MAAM,EAC3C;QAEA,SAAS,KAAK;IACZ,OAAO,MAAM;IACb;IACA,OAAO;IACP,SAAS;GACX,CAAC;EACL;CACF;CACF,KAAK,MAAM,QAAQ,UAAU;EAC3B,MAAM,WAAW,aAAa,KAAK,KAAK,GAAG,KAAK,EAAE;EAClD,IAAI,CAAC,UAAU;EACf,MAAM,QAAQ,UAAU,IAAI,SAAS,IAAI,CAAC,EAAE,YAAY,CAAC;EACzD,MAAM,aAAa,MAAM,QACtB,MACC,EAAE,YAAY,UACd,MAAM,QAAQ,EAAE,WAAW,GAAG,KAC9B,EAAE,WAAW,IAAI,SAAS,WAAW,CACzC;EACA,IACG,WAAW,WAAW,WAAW,KACjC,KAAK,WAAW,WAAW,MAAM,KAChC,WAAW,EAAE,EAAE,WAAW,SAAS,KAAK,WAE1C,MACE,0BACA,yBAAyB,KAAK,YAAY,gBAAgB,KAAK,cAAc,GAAG,IAChF,SAAS,IACX;EACF,MAAM,UAAU,MAAM,MACnB,MACC,EAAE,YAAY,UACd,EAAE,WAAW,SAAS,YACtB,eAAe,KAAK,OAAO,EAAE,WAAW,OAAO,CAAC,CACpD;EACA,IAAI,KAAK,UAAU,SACjB,MACE,8BACA,YAAY,KAAK,QAAQ,cAAc,UAAU,aACjD,SAAS,IACX;EACF,IAAI,KAAK,UAAU,aAAa,KAAK,UAAU,KAAK,GAAG;CACzD;CACA,MAAM,8BAAc,IAAI,IAAY;CACpC,KAAK,MAAM,QAAQ,MAAM,QAAQ,SAC/B,6BAA6B,KAAK,IAAI,CACxC,GAAG;EACD,MAAM,MAAM,MAAM,SAAS,QAAQ,WAAW,IAAI,GAAG,MAAM;EAC3D,KAAK,MAAM,SAAS,IAAI,SAAS,sBAAsB,GAAG;GACxD,MAAM,MAAM,MAAM,EAAE,CAAE,QAAQ,UAAU,GAAG;GAC3C,aAAa,KAAK,GAAG,KAAK,GAAG,MAAM;GACnC,IAAI,CAAC,IAAI,SAAS,MAAM,GAAG,YAAY,IAAI,GAAG;EAChD;CACF;CACA,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,aAAa,oBAC/B,KAAK,MAAM,QAAQ,UAAU;EAC3B,IAAI,KAAK,WAAW,CAAC,YAAY,IAAI,KAAK,GAAG,GAC3C,MAAM,6BAA6B,iBAAiB,KAAK,IAAI,EAAE;EACjE,IAAI,CAAC,KAAK,WAAW,YAAY,IAAI,KAAK,GAAG,GAC3C,MACE,8BACA,6BAA6B,KAAK,IAAI,EACxC;CACJ;CACF,aAAa,GAAG,KAAK,YAAY,GAAG,KAAK,EAAE;CAC3C,IAAI,QAAQ,IAAI,UAAU,GAAG;EAC3B,MAAM,OAAO,MAAM,SAAS,QAAQ,WAAW,UAAU,GAAG,MAAM;EAClE,KAAK,MAAM,SAAS,KAAK,SAAS,kBAAkB,GAClD,aAAa,MAAM,IAAK,GAAG,KAAK,UAAU;EAC5C,KAAK,MAAM,QAAQ,SAAS,QAAQ,SAAS,CAAC,KAAK,OAAO,GACxD,IAAI,KAAK,SAAS,KAAK,KAAK,IAAI,EAAE,GAChC,MACE,4BACA,2BAA2B,KAAK,IAAI,EACtC;CAEN;CACA,IAAI,CAAC,QAAQ,SAAS,aAAa,eAAe,GAAG;CACrD,IAAI,QAAQ,IAAI,YAAY,GAAG;EAC7B,MAAM,SAAS,MAAM,SAAS,QAAQ,WAAW,YAAY,GAAG,MAAM;EACtE,KAAK,MAAM,SAAS,OAAO,SAAS,sBAAsB,GACxD,aAAa,MAAM,IAAK,GAAG,KAAK,YAAY;CAChD;CACA,IAAI,cAAc;CAClB,IAAI,QAAQ,aAAa;EACvB,MAAM,WAAW,IAAI,IACnB,QAAQ,YAAY,SAAS,GAAG,IAC5B,QAAQ,cACR,GAAG,QAAQ,YAAY,EAC7B;EACA,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,SAAS,SAAS,QAAQ,GACjD,MAAM,MAAM,wCAAwC;EACtD,MAAM,UAAU,CAAC,GAAG,SAAS,QAAQ,CAAC;EACtC,MAAM,SAAS,YAAY;GACzB,SAAS;IACP,MAAM,OAAO,QAAQ,MAAM;IAC3B,IAAI,CAAC,MAAM;IACX,MAAM,CAAC,MAAM,QAAQ;IACrB,MAAM,MAAM,IAAI,IACd,KAAK,MAAM,KAAK,MAAM,CAAC,CAAC,QAAQ,OAAO,EAAE,GACzC,QACF;IACA,IAAI;KACF,MAAM,WAAW,MAAM,MAAM,KAAK,EAChC,QAAQ,YAAY,QAAQ,IAAK,EACnC,CAAC;KACD,MAAM,OAAO,IAAI,WAAW,MAAM,SAAS,YAAY,CAAC;KACxD;KACA,IAAI,CAAC,SAAS,MAAM,EAAE,SAAS,cAAc,SAAS,WAAW,MAC/D,MACE,wBACA,GAAG,IAAI,KAAK,YAAY,SAAS,OAAO,EAC1C;UACG,IAAI,KAAK,SAAS,OAAO,GAAG;MAC/B,MAAM,OAAO,IAAI,YAAY,CAAC,CAAC,OAAO,IAAI;MAC1C,MAAM,QAAQ,MAAM,SAAS,QAAQ,WAAW,IAAI,GAAG,MAAM;MAC7D,IAAI,oBAAoB,IAAI,MAAM,oBAAoB,KAAK,GACzD,MACE,iCACA,GAAG,IAAI,KAAK,0DACd;MACF,IACE,WAAW,KAAK,SAAS,QAAQ,IAAI,cAAc,KAAK,EAAE,KAC1D,SAAS,MAAM,MACZ,SACC,cAAc,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,QAAQ,MAC9C,cAAc,IAAI,KAAK,KAAK,KAClC,GAEA,MACE,2BACA,GAAG,IAAI,KAAK,gDACd;KACJ,OAAO,IACL,CAAC,KAAK,UACN,cAAc,KAAK,SAAS,QAAQ,IAAI,cAAc,KAAK,EAAE,GAE7D,MACE,iCACA,GAAG,IAAI,KAAK,oCACd;IACJ,SAAS,OAAO;KACd,MAAM,yBAAyB,GAAG,IAAI,KAAK,IAAI,OAAO,KAAK,GAAG;IAChE;GACF;EACF;EACA,MAAM,QAAQ,IAAI,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;CACrD;CACA,OAAO;EACL,IAAI,CAAC,YAAY,MAAM,MAAM,EAAE,aAAa,OAAO;EACnD,OAAO,QAAQ,cAAc,eAAe;EAC5C,OAAO,UAAU;EACjB,QAAQ,IAAI,IACV,CAAC,GAAG,SAAS,OAAO,CAAC,CAAC,CAAC,QAAQ,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,CAC9D,CAAC,CAAC;EACF;EACA;CACF;AACF;AAEA,SAAS,oBAAoB,MAAsB;CACjD,MAAM,SAAmB,CAAC;CAC1B,MAAM,QAAQ,SAA0C;EACtD,IAAI,KAAK,SAAS,WAAW;GAC3B,MAAM,IAAI,KAAK;GACf,IACE,KAAK,YAAY,UACjB,MAAM,QAAQ,EAAE,GAAG,KACnB,EAAE,IAAI,SAAS,WAAW,GAE1B,OAAO,KAAK,aAAa,EAAE,MAAM;GACnC,IAAI,KAAK,YAAY,UAAU,EAAE,SAAS,UACxC,OAAO,KAAK,UAAU,EAAE,SAAS;GACnC,IAAI,KAAK,YAAY,SACnB,OAAO,KACL,SAAS,KAAK,SAAS,KAAK,UAAW,MAAM,SAAS,SAAS,MAAM,QAAQ,EAAG,CAAC,CAAC,KAAK,EAAE,GAC3F;EACJ;EACA,IAAI,cAAc,MAAM,KAAK,SAAS,QAAQ,IAAI;CACpD;CACA,KAAK,SAAS,IAAI,CAAC;CACnB,OAAO,KAAK,UAAU,OAAO,KAAK,CAAC;AACrC"}
@@ -1,4 +1,4 @@
1
- import { E as DocsHeading, dt as Heading, ft as Link, ht as Root, mt as PhrasingContent, pt as Paragraph, ut as Content } from "../types-yhxzgOIF.js";
1
+ import { O as DocsHeading, _t as Root, ft as Content, gt as PhrasingContent, ht as Paragraph, mt as Link, pt as Heading } from "../types-ivmuV83x.js";
2
2
  //#region src/markdown/index.d.ts
3
3
  interface ParsedMarkdown {
4
4
  ast: Root;
@@ -1321,7 +1321,7 @@ interface ThemeFonts {
1321
1321
  }
1322
1322
  /** A Glaze declaration, or a literal color retained as a convenient seed shorthand. */
1323
1323
  type ThemePaletteColor = GlazeColorValue | ColorDef;
1324
- declare const COOKBOOK_PALETTE_NAMES: readonly ["surface", "header", "surface-2", "surface-3", "text", "heading", "text-soft", "text-muted", "sidebar-text", "surface-2-hover", "surface-2-pressed", "surface-3-hover", "surface-3-pressed", "accent-text", "focus", "accent-surface", "accent-surface-text", "logo-surface", "logo-mark", "accent-surface-subtle", "accent-surface-2-subtle", "shadow", "clear", "info", "info-text", "info-surface", "success", "success-text", "success-surface", "warning", "warning-text", "warning-surface", "danger", "danger-text", "danger-surface", "orange", "orange-text", "orange-surface", "green", "green-text", "green-surface", "blue", "blue-text", "blue-surface", "purple", "purple-text", "purple-surface", "red", "red-text", "red-surface", "overlay", "border", "border-strong", "syntax-bg", "syntax-text", "syntax-comment", "syntax-punctuation", "syntax-keyword", "syntax-string", "syntax-token", "syntax-property", "syntax-number", "syntax-function", "syntax-value", "syntax-operator"];
1324
+ declare const COOKBOOK_PALETTE_NAMES: readonly ["surface", "header", "surface-2", "surface-3", "text", "heading", "text-soft", "text-muted", "sidebar-text", "surface-2-hover", "surface-2-pressed", "surface-3-hover", "surface-3-pressed", "accent-text", "focus", "accent-surface", "accent-surface-text", "logo-surface", "logo-mark", "accent-surface-subtle", "accent-surface-2-subtle", "shadow", "info", "info-text", "info-surface", "success", "success-text", "success-surface", "warning", "warning-text", "warning-surface", "danger", "danger-text", "danger-surface", "orange", "orange-text", "orange-surface", "green", "green-text", "green-surface", "blue", "blue-text", "blue-surface", "purple", "purple-text", "purple-surface", "red", "red-text", "red-surface", "overlay", "border", "border-strong", "syntax-bg", "syntax-text", "syntax-comment", "syntax-punctuation", "syntax-keyword", "syntax-string", "syntax-token", "syntax-property", "syntax-number", "syntax-function", "syntax-value", "syntax-operator"];
1325
1325
  type CookbookPaletteName = (typeof COOKBOOK_PALETTE_NAMES)[number];
1326
1326
  /** Semantic palette declarations resolved for every appearance mode. */
1327
1327
  interface ThemePaletteConfig extends Partial<Record<CookbookPaletteName, ThemePaletteColor>> {
@@ -1443,9 +1443,12 @@ interface MarkdownConfig {
1443
1443
  interface SearchConfig {
1444
1444
  enabled?: boolean;
1445
1445
  }
1446
+ /** Astro component slots that `components.overrides` can replace. */
1447
+ declare const COOKBOOK_COMPONENT_OVERRIDE_NAMES: readonly ["Head", "PageFrame", "Header", "Footer", "Sidebar", "Hero", "SiteTitle", "Search", "LanguageSelect", "ThemeSelect", "SocialIcons", "MobileMenuToggle", "MobileMenuFooter", "MobileTableOfContents", "TableOfContents", "Pagination", "MarkdownContent", "DraftContentNotice", "EditLink", "LastUpdated"];
1448
+ type CookbookComponentOverrideName = (typeof COOKBOOK_COMPONENT_OVERRIDE_NAMES)[number];
1446
1449
  interface ComponentsConfig {
1447
- /** Astro component paths keyed by Cookbook component name. `Footer` also accepts `false`. */
1448
- overrides?: Record<string, string | false>;
1450
+ /** Astro component paths keyed by Cookbook slot name. `Footer` also accepts `false`. */
1451
+ overrides?: { [Name in CookbookComponentOverrideName]?: Name extends "Footer" ? string | false : string; };
1449
1452
  }
1450
1453
  /**
1451
1454
  * Which page URLs end with a slash, derived from Astro's `trailingSlash` and
@@ -1685,5 +1688,5 @@ interface CreateDocsGraphOptions {
1685
1688
  trailingSlash?: TrailingSlash;
1686
1689
  }
1687
1690
  //#endregion
1688
- export { ThemeConfig as $, EditLinkConfig as A, NormalizedDocsConfig as B, DocsEntry as C, DocsReference as D, DocsHeading as E, MarkdownConfig as F, SearchConfig as G, PackageLockSource as H, NavigationConfig as I, SiteLogoConfig as J, SiteConfig as K, NavigationItem as L, HeadConfig as M, HeaderLink as N, DocsRoute as O, LocaleConfig as P, TableOfContentsConfig as Q, NavigationPlacement as R, DocsDiagnostic as S, DocsGraph as T, PackageManifest as U, PackageDiscovery as V, PageSeoConfig as W, SiteVersion as X, SiteSeoConfig as Y, SocialImage as Z, CookbookPaletteName as _, COOKBOOK_COMPONENT_NAMES as a, ThemeTokenValue as at, DocsAsset as b, ComponentStyleConfig as c, TypographyPreset as ct, ComponentsConfig as d, Heading as dt, ThemeFont as et, ContentConfig as f, Link as ft, CookbookLock as g, CookbookComponentSubElementName as h, Root as ht, BuildConfig as i, ThemePaletteConfig as it, FontLoadingConfig as j, DocsSource as k, ComponentStyles as l, TypographyPresets as lt, CookbookComponentStyles as m, PhrasingContent as mt, BrandDeclaration as n, ThemeFonts as nt, COOKBOOK_COMPONENT_SUB_ELEMENTS as o, ThemeTokens as ot, CookbookComponentName as p, Paragraph as pt, SiteIconConfig as q, BreadcrumbItem as r, ThemePaletteColor as rt, COOKBOOK_PALETTE_NAMES as s, TrailingSlash as st, BrandConfig as t, ThemeFontFile as tt, ComponentStylesConfig as u, Content as ut, CreateDocsGraphOptions as v, DocsFrontmatter as w, DocsConfig as x, DiagnosticSeverity as y, NavigationTab as z };
1689
- //# sourceMappingURL=types-yhxzgOIF.d.ts.map
1691
+ export { SocialImage as $, DocsRoute as A, NavigationPlacement as B, DocsConfig as C, DocsGraph as D, DocsFrontmatter as E, HeaderLink as F, PackageManifest as G, NormalizedDocsConfig as H, LocaleConfig as I, SiteConfig as J, PageSeoConfig as K, MarkdownConfig as L, EditLinkConfig as M, FontLoadingConfig as N, DocsHeading as O, HeadConfig as P, SiteVersion as Q, NavigationConfig as R, DocsAsset as S, DocsEntry as T, PackageDiscovery as U, NavigationTab as V, PackageLockSource as W, SiteLogoConfig as X, SiteIconConfig as Y, SiteSeoConfig as Z, CookbookComponentSubElementName as _, Root as _t, COOKBOOK_COMPONENT_NAMES as a, ThemePaletteColor as at, CreateDocsGraphOptions as b, COOKBOOK_PALETTE_NAMES as c, ThemeTokens as ct, ComponentStylesConfig as d, TypographyPresets as dt, TableOfContentsConfig as et, ComponentsConfig as f, Content as ft, CookbookComponentStyles as g, PhrasingContent as gt, CookbookComponentOverrideName as h, Paragraph as ht, BuildConfig as i, ThemeFonts as it, DocsSource as j, DocsReference as k, ComponentStyleConfig as l, TrailingSlash as lt, CookbookComponentName as m, Link as mt, BrandDeclaration as n, ThemeFont as nt, COOKBOOK_COMPONENT_OVERRIDE_NAMES as o, ThemePaletteConfig as ot, ContentConfig as p, Heading as pt, SearchConfig as q, BreadcrumbItem as r, ThemeFontFile as rt, COOKBOOK_COMPONENT_SUB_ELEMENTS as s, ThemeTokenValue as st, BrandConfig as t, ThemeConfig as tt, ComponentStyles as u, TypographyPreset as ut, CookbookLock as v, DocsDiagnostic as w, DiagnosticSeverity as x, CookbookPaletteName as y, NavigationItem as z };
1692
+ //# sourceMappingURL=types-ivmuV83x.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-yhxzgOIF.d.ts","names":[],"sources":["../../../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../../node_modules/.pnpm/@types+mdast@4.0.4/node_modules/@types/mdast/index.d.ts","../src/types.ts"],"x_google_ignoreList":[0,1],"mappings":"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ACA;EACA;EACA;;UAGe,kBAAkB;EACjC;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;EACb,UAAU;EACV;EACA;EACA,KAAK;EACL,OAAO;EACP,QAAQ;EACR;EACA;IAAY;IAAmB;;;UAGhB;EACf;EACA;EACA;EACA;;EAEA;;EAEA;;EAEA;EACA;EACA,kBAAkB;;UAGH;EACf,WAAW;EACX;EACA,QAAQ;EACR,SAAS;EACT,QAAQ;EACR,QAAQ;EACR,aAAa;EACb,aAAa,gBAAgB;EAC7B,cAAc,oBAAoB,oBAAoB;;UAGvC;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA,SAAS;;UAGM;EACf;EACA;EACA;EACA;EACA;IAAwB;IAAe;IAAc;;EACrD;IACE;IACA;IACA;IACA;MAAU,QAAQ;;;EAEpB;EACA;;UAGe;EACf;EACA,UAAU;EACV;EACA;EACA;;UAGe;EACf;EACA,SAAS;EACT,OAAO;;EAEP;;EAEA,gBAAgB"}
1
+ {"version":3,"file":"types-ivmuV83x.d.ts","names":[],"sources":["../../../node_modules/.pnpm/@types+unist@3.0.3/node_modules/@types/unist/index.d.ts","../../../node_modules/.pnpm/@types+mdast@4.0.4/node_modules/@types/mdast/index.d.ts","../src/types.ts"],"x_google_ignoreList":[0,1],"mappings":"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ACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;;UAGe,kBAAkB;EACjC;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA,aAAa;EACb,UAAU;EACV;EACA;EACA,KAAK;EACL,OAAO;EACP,QAAQ;EACR;EACA;IAAY;IAAmB;;;UAGhB;EACf;EACA;EACA;EACA;;EAEA;;EAEA;;EAEA;EACA;EACA,kBAAkB;;UAGH;EACf,WAAW;EACX;EACA,QAAQ;EACR,SAAS;EACT,QAAQ;EACR,QAAQ;EACR,aAAa;EACb,aAAa,gBAAgB;EAC7B,cAAc,oBAAoB,oBAAoB;;UAGvC;EACf;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA,SAAS;;UAGM;EACf;EACA;EACA;EACA;EACA;IAAwB;IAAe;IAAc;;EACrD;IACE;IACA;IACA;IACA;MAAU,QAAQ;;;EAEpB;EACA;;UAGe;EACf;EACA,UAAU;EACV;EACA;EACA;;UAGe;EACf;EACA,SAAS;EACT,OAAO;;EAEP;;EAEA,gBAAgB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tenphi/docs",
3
- "version": "0.28.0",
3
+ "version": "0.30.1",
4
4
  "description": "Repository-native content and configuration engine for Cookbook",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -51,7 +51,7 @@
51
51
  "license": "MIT",
52
52
  "dependencies": {
53
53
  "@tenphi/glaze": "2.0.1",
54
- "@tenphi/tasty": "3.9.10",
54
+ "@tenphi/tasty": "3.14.0",
55
55
  "github-slugger": "^2.0.0",
56
56
  "hast-util-from-html": "^2.0.3",
57
57
  "hast-util-sanitize": "^5.0.2",