blume 2.0.1 → 2.0.2
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 +82 -0
- package/dist/cli/{chunk-vtk4a6dg.js → chunk-00gs3wqs.js} +1 -1
- package/dist/cli/{chunk-fa25z98p.js → chunk-273ygyr4.js} +4 -3
- package/dist/cli/chunk-273ygyr4.js.map +11 -0
- package/dist/cli/{chunk-yw7dm696.js → chunk-3yce002v.js} +21 -8
- package/dist/cli/{chunk-yw7dm696.js.map → chunk-3yce002v.js.map} +3 -3
- package/dist/cli/{chunk-yt5n7ppj.js → chunk-4e9b9ra6.js} +17 -7
- package/dist/cli/chunk-4e9b9ra6.js.map +10 -0
- package/dist/cli/{chunk-fs23ddbb.js → chunk-5r8g91qn.js} +352 -676
- package/dist/cli/chunk-5r8g91qn.js.map +34 -0
- package/dist/cli/{chunk-6vm74dry.js → chunk-6dtt0zfn.js} +8 -8
- package/dist/cli/{chunk-qwsrynx5.js → chunk-6k4ftwze.js} +38 -19
- package/dist/cli/{chunk-qwsrynx5.js.map → chunk-6k4ftwze.js.map} +4 -4
- package/dist/cli/{chunk-qs4q5p4e.js → chunk-7mbqtmgb.js} +16 -7
- package/dist/cli/chunk-7mbqtmgb.js.map +10 -0
- package/dist/cli/{chunk-q5163e60.js → chunk-7vtckvaw.js} +21 -19
- package/dist/cli/chunk-7vtckvaw.js.map +11 -0
- package/dist/cli/{chunk-kdp5q7ke.js → chunk-8g8ytmgx.js} +17 -18
- package/dist/cli/{chunk-kdp5q7ke.js.map → chunk-8g8ytmgx.js.map} +2 -2
- package/dist/cli/{chunk-epjnccmv.js → chunk-91ws1n6j.js} +18 -15
- package/dist/cli/chunk-91ws1n6j.js.map +10 -0
- package/dist/cli/{chunk-fxypxtvm.js → chunk-bbnwccaz.js} +2 -2
- package/dist/cli/{chunk-m3vmjgmq.js → chunk-bfwp9vp6.js} +16 -8
- package/dist/cli/chunk-bfwp9vp6.js.map +10 -0
- package/dist/cli/{chunk-f2z5v128.js → chunk-d1v5rhy0.js} +14 -15
- package/dist/cli/{chunk-f2z5v128.js.map → chunk-d1v5rhy0.js.map} +2 -2
- package/dist/cli/{chunk-6crbhc3x.js → chunk-ddndchfr.js} +21 -6
- package/dist/cli/chunk-ddndchfr.js.map +14 -0
- package/dist/cli/{chunk-ce574jw2.js → chunk-esh98wmb.js} +1 -1
- package/dist/cli/{chunk-zxcczpyx.js → chunk-fsmrqk8a.js} +1 -1
- package/dist/cli/{chunk-hdpx1tax.js → chunk-g698a744.js} +5 -5
- package/dist/cli/{chunk-jts8mvcz.js → chunk-gs7r695n.js} +9 -3
- package/dist/cli/{chunk-jts8mvcz.js.map → chunk-gs7r695n.js.map} +3 -3
- package/dist/cli/{chunk-zxh4d9vy.js → chunk-h2ez8dzb.js} +4 -4
- package/dist/cli/{chunk-5shv93fd.js → chunk-h7k3nq3v.js} +2 -2
- package/dist/cli/{chunk-79jhk4py.js → chunk-hqp2ajnh.js} +251 -122
- package/dist/cli/chunk-hqp2ajnh.js.map +35 -0
- package/dist/cli/{chunk-2hn4b8z7.js → chunk-hr8ne106.js} +109 -40
- package/dist/cli/chunk-hr8ne106.js.map +13 -0
- package/dist/cli/{chunk-6hsn950k.js → chunk-j85scx15.js} +62 -18
- package/dist/cli/chunk-j85scx15.js.map +10 -0
- package/dist/cli/{chunk-s1p84fyh.js → chunk-k7pj68a8.js} +63 -22
- package/dist/cli/chunk-k7pj68a8.js.map +11 -0
- package/dist/cli/{chunk-ah61y8py.js → chunk-mqc662a6.js} +2 -2
- package/dist/cli/{chunk-ch6g3ar0.js → chunk-n1yg3tj3.js} +4 -4
- package/dist/cli/{chunk-mb2919y2.js → chunk-nfcyttvj.js} +17 -6
- package/dist/cli/chunk-nfcyttvj.js.map +10 -0
- package/dist/cli/{chunk-kpf8rrjc.js → chunk-pbg5a4s3.js} +56 -24
- package/dist/cli/chunk-pbg5a4s3.js.map +19 -0
- package/dist/cli/{chunk-jwyddg7y.js → chunk-ppzjqwx2.js} +21 -14
- package/dist/cli/{chunk-jwyddg7y.js.map → chunk-ppzjqwx2.js.map} +4 -4
- package/dist/cli/{chunk-dh8cwk36.js → chunk-qkb5a8sa.js} +24 -9
- package/dist/cli/chunk-qkb5a8sa.js.map +10 -0
- package/dist/cli/{chunk-wm7js3j9.js → chunk-sqw4ekg1.js} +2 -2
- package/dist/cli/{chunk-qkqwkpte.js → chunk-v6ya5kcb.js} +3083 -953
- package/dist/cli/chunk-v6ya5kcb.js.map +189 -0
- package/dist/cli/{chunk-fz5wtpmh.js → chunk-w4bxdvsa.js} +18 -15
- package/dist/cli/chunk-w4bxdvsa.js.map +10 -0
- package/dist/cli/{chunk-27g6wdth.js → chunk-wdrt2k2v.js} +2 -2
- package/dist/cli/{chunk-wgm7m9qk.js → chunk-xh43dwgw.js} +158 -43
- package/dist/cli/chunk-xh43dwgw.js.map +36 -0
- package/dist/cli/{chunk-s6jhgk0q.js → chunk-zp79m0ts.js} +2 -2
- package/dist/cli/index.js +160 -35
- package/dist/cli/index.js.map +4 -4
- package/dist/types/ai/agent-surface.d.ts +32 -0
- package/dist/types/ai/api-catalog.d.ts +7 -1
- package/dist/types/ai/ask-context.d.ts +7 -0
- package/dist/types/ai/component-markdown.d.ts +4 -4
- package/dist/types/ai/relative-links.d.ts +9 -4
- package/dist/types/ai/static-expression.d.ts +28 -0
- package/dist/types/analytics/databuddy.d.ts +43 -0
- package/dist/types/analytics/index.d.ts +2 -0
- package/dist/types/analytics/schema.d.ts +14 -0
- package/dist/types/cli/env.d.ts +5 -0
- package/dist/types/cli/init/scaffold.d.ts +19 -3
- package/dist/types/cli/init/starter-spec.d.ts +11 -0
- package/dist/types/core/base-path.d.ts +9 -0
- package/dist/types/core/config-input.d.ts +4 -4
- package/dist/types/core/config.d.ts +2 -2
- package/dist/types/core/graph.d.ts +2 -0
- package/dist/types/core/i18n-ui.d.ts +31 -0
- package/dist/types/core/i18n.d.ts +7 -1
- package/dist/types/core/links.d.ts +3 -1
- package/dist/types/core/load-module.d.ts +10 -0
- package/dist/types/core/locale-links.d.ts +12 -2
- package/dist/types/core/meta.d.ts +5 -1
- package/dist/types/core/nav-diagnostics.d.ts +10 -0
- package/dist/types/core/navigation.d.ts +38 -0
- package/dist/types/core/ordering-prefix.d.ts +4 -0
- package/dist/types/core/safe-links.d.ts +3 -1
- package/dist/types/core/schema.d.ts +52 -13
- package/dist/types/core/sources/github-releases.d.ts +5 -0
- package/dist/types/core/sources/lower.d.ts +14 -2
- package/dist/types/core/sources/normalize.d.ts +10 -1
- package/dist/types/core/sources/remote.d.ts +11 -1
- package/dist/types/core/sources/resolve.d.ts +12 -0
- package/dist/types/core/sources/types.d.ts +31 -0
- package/dist/types/core/types.d.ts +9 -0
- package/dist/types/deploy/adapters/node.d.ts +5 -2
- package/dist/types/deploy/adapters/types.d.ts +7 -0
- package/dist/types/deploy/cloudflare-negotiation.d.ts +3 -2
- package/dist/types/deploy/headers.d.ts +31 -7
- package/dist/types/deploy/node-headers.d.ts +43 -8
- package/dist/types/deploy/platforms/netlify.d.ts +27 -2
- package/dist/types/deploy/platforms/node.d.ts +6 -5
- package/dist/types/deploy/platforms/types.d.ts +7 -0
- package/dist/types/deploy/platforms/vercel.d.ts +3 -2
- package/dist/types/deploy/redirects.d.ts +7 -2
- package/dist/types/deploy/vercel-negotiation.d.ts +3 -2
- package/dist/types/openapi/model.d.ts +20 -6
- package/dist/types/search/sync/algolia.d.ts +3 -1
- package/docs/01-quickstart.mdx +3 -2
- package/docs/02-deployment.mdx +17 -8
- package/docs/08-faq.mdx +9 -2
- package/docs/advanced/changelog.mdx +1 -1
- package/docs/advanced/custom-pages.mdx +4 -2
- package/docs/cli/audit.mdx +2 -2
- package/docs/cli/doctor.mdx +2 -2
- package/docs/cli/evals.mdx +2 -2
- package/docs/cli/index.mdx +4 -1
- package/docs/cli/translate.mdx +1 -1
- package/docs/configuration/analytics.mdx +23 -2
- package/docs/configuration/assistant.mdx +1 -1
- package/docs/configuration/customization.mdx +4 -3
- package/docs/configuration/index.mdx +5 -3
- package/docs/configuration/search.mdx +1 -1
- package/docs/content/components.mdx +1 -1
- package/docs/content/frontmatter.mdx +5 -1
- package/docs/content/i18n.mdx +1 -1
- package/docs/content/index.mdx +4 -2
- package/docs/content/meta.mdx +5 -3
- package/docs/content/navigation.mdx +29 -4
- package/docs/content/sources.mdx +18 -12
- package/docs/content/versioning.mdx +1 -0
- package/docs/discoverability/agent-discovery.mdx +21 -7
- package/docs/discoverability/index.mdx +2 -2
- package/docs/discoverability/llms-txt.mdx +2 -5
- package/docs/discoverability/markdown.mdx +5 -3
- package/docs/discoverability/mcp.mdx +4 -0
- package/docs/discoverability/metadata.mdx +3 -2
- package/docs/discoverability/open-graph.mdx +6 -4
- package/docs/discoverability/rss.mdx +3 -1
- package/docs/references/asyncapi.mdx +1 -1
- package/docs/references/graphql.mdx +2 -2
- package/docs/references/openapi.mdx +3 -3
- package/package.json +1 -1
- package/skills/blume-migrate/SKILL.md +6 -6
- package/skills/blume-migrate/references/docusaurus.md +6 -6
- package/skills/blume-migrate/references/mintlify.md +3 -3
- package/skills/blume-migrate/references/monorepo.md +1 -1
- package/skills/blume-migrate/references/nextra.md +1 -1
- package/skills/blume-migrate/references/starlight.md +5 -5
- package/skills/blume-migrate/scripts/mintlify-codemod.mjs +2 -2
- package/skills/blume-update-docs/references/audit-checklist.md +1 -1
- package/src/ai/agent-surface.ts +56 -0
- package/src/ai/api/spec.ts +15 -2
- package/src/ai/api-catalog.ts +7 -1
- package/src/ai/ask-context.ts +14 -2
- package/src/ai/ask-data.ts +26 -12
- package/src/ai/component-markdown.ts +43 -37
- package/src/ai/link-headers.ts +8 -3
- package/src/ai/llms.ts +4 -3
- package/src/ai/markdown.ts +23 -11
- package/src/ai/mcp/server.ts +78 -7
- package/src/ai/relative-links.ts +78 -10
- package/src/ai/static-expression.ts +416 -0
- package/src/ai/visibility.ts +45 -14
- package/src/analytics/databuddy.ts +67 -0
- package/src/analytics/head.ts +4 -0
- package/src/analytics/index.ts +2 -0
- package/src/analytics/posthog.ts +21 -3
- package/src/analytics/schema.ts +2 -0
- package/src/astro/generate.ts +71 -27
- package/src/astro/templates.ts +61 -23
- package/src/audit/catalog.ts +2 -2
- package/src/audit/checks/assets.ts +25 -5
- package/src/audit/checks/content.ts +20 -2
- package/src/audit/checks/i18n.ts +46 -8
- package/src/audit/checks/indexability.ts +39 -19
- package/src/audit/checks/links.ts +14 -0
- package/src/audit/checks/llms.ts +6 -3
- package/src/audit/checks/network.ts +3 -1
- package/src/audit/checks/og-image.ts +10 -0
- package/src/audit/checks/robots.ts +6 -1
- package/src/audit/checks/sitemap.ts +56 -31
- package/src/audit/checks/social.ts +21 -2
- package/src/audit/crawl.ts +88 -15
- package/src/audit/report.ts +54 -17
- package/src/audit/run.ts +1 -0
- package/src/audit/types.ts +18 -0
- package/src/audit/url.ts +37 -6
- package/src/cli/build-failure.ts +50 -0
- package/src/cli/commands/audit.ts +7 -0
- package/src/cli/commands/build.ts +19 -5
- package/src/cli/commands/check.ts +2 -0
- package/src/cli/commands/eval.ts +1 -7
- package/src/cli/commands/init.ts +15 -5
- package/src/cli/commands/preview.ts +15 -0
- package/src/cli/commands/sync.ts +2 -0
- package/src/cli/commands/translate.ts +9 -6
- package/src/cli/commands/upgrade.ts +11 -0
- package/src/cli/eject-scripts.ts +32 -7
- package/src/cli/env.ts +12 -1
- package/src/cli/init/scaffold.ts +117 -11
- package/src/cli/init/starter-spec.ts +235 -0
- package/src/components/content/AccordionItem.astro +26 -22
- package/src/components/content/Badge.astro +2 -9
- package/src/components/content/Card.astro +2 -2
- package/src/components/content/Component.astro +9 -3
- package/src/components/content/Expandable.astro +5 -1
- package/src/components/content/Frame.astro +2 -7
- package/src/components/content/GithubInfo.astro +12 -2
- package/src/components/content/Prompt.astro +2 -7
- package/src/components/content/Tabs.astro +54 -5
- package/src/components/content/Tile.astro +1 -1
- package/src/components/content/Tooltip.astro +69 -7
- package/src/components/content/Tree.astro +7 -2
- package/src/components/content/TypeTable.astro +10 -5
- package/src/components/content/Update.astro +8 -2
- package/src/components/content/auto-type-table.ts +4 -1
- package/src/components/content/badge-color.ts +17 -0
- package/src/components/content/base-href.ts +18 -3
- package/src/components/content/inline-markdown.ts +27 -7
- package/src/components/copy-feedback.ts +35 -8
- package/src/components/islands/assistant.tsx +16 -2
- package/src/components/islands/hooks.ts +7 -2
- package/src/components/islands/webmcp.ts +12 -8
- package/src/components/layout/Banner.astro +23 -4
- package/src/components/layout/Header.astro +22 -9
- package/src/components/layout/Logo.astro +5 -0
- package/src/components/layout/NavSelector.astro +6 -1
- package/src/components/layout/NavTabMenu.astro +133 -0
- package/src/components/layout/NavTree.astro +15 -6
- package/src/components/layout/NavTreeCache.astro +5 -2
- package/src/components/layout/NavTreeScript.astro +45 -5
- package/src/components/layout/PageLayout.astro +22 -8
- package/src/components/layout/ReferenceLayout.astro +4 -1
- package/src/components/layout/RootLayout.astro +21 -8
- package/src/components/layout/Search.astro +5 -1
- package/src/components/layout/analytics-client.ts +2 -0
- package/src/components/openapi/GraphqlType.astro +11 -3
- package/src/components/openapi/MessageComposer.astro +1 -1
- package/src/components/openapi/Operation.astro +21 -5
- package/src/components/openapi/PanelTabs.astro +4 -1
- package/src/components/openapi/Playground.astro +8 -2
- package/src/components/openapi/RequestPanel.astro +9 -5
- package/src/components/openapi/SchemaProperty.astro +11 -33
- package/src/components/openapi/SchemaTable.astro +27 -52
- package/src/components/openapi/helpers.ts +90 -12
- package/src/components/openapi/message-composer.ts +8 -0
- package/src/components/openapi/message-model.ts +12 -2
- package/src/components/openapi/message.ts +4 -1
- package/src/components/openapi/operation-model.ts +40 -8
- package/src/components/openapi/panel.ts +29 -5
- package/src/components/openapi/playground-client.ts +37 -7
- package/src/components/openapi/playground-schema.ts +25 -6
- package/src/components/openapi/request.ts +2 -0
- package/src/components/openapi/schema-tree.ts +203 -0
- package/src/components/openapi/snippets.ts +30 -15
- package/src/components/openapi/validate-json.ts +1 -1
- package/src/core/base-path.ts +15 -0
- package/src/core/config-input.ts +4 -4
- package/src/core/config.ts +18 -4
- package/src/core/diagnostics.ts +217 -30
- package/src/core/graph.ts +120 -11
- package/src/core/i18n-ui.ts +39 -2
- package/src/core/i18n.ts +13 -2
- package/src/core/links.ts +7 -4
- package/src/core/load-module.ts +20 -0
- package/src/core/locale-links.ts +17 -17
- package/src/core/manifest.ts +3 -2
- package/src/core/meta.ts +69 -6
- package/src/core/nav-diagnostics.ts +56 -1
- package/src/core/navigation.ts +245 -76
- package/src/core/ordering-prefix.ts +27 -0
- package/src/core/project-graph.ts +23 -1
- package/src/core/safe-href.ts +53 -1
- package/src/core/safe-links.ts +11 -2
- package/src/core/schema.ts +70 -14
- package/src/core/sources/assets.ts +83 -41
- package/src/core/sources/contentful-rich-text.ts +3 -2
- package/src/core/sources/contentful.ts +25 -12
- package/src/core/sources/filesystem.ts +5 -1
- package/src/core/sources/github-releases.ts +106 -5
- package/src/core/sources/lexical.ts +9 -4
- package/src/core/sources/lower.ts +79 -26
- package/src/core/sources/mdx-remote.ts +1 -0
- package/src/core/sources/normalize.ts +132 -30
- package/src/core/sources/notion.ts +26 -10
- package/src/core/sources/obsidian.ts +17 -3
- package/src/core/sources/payload.ts +1 -0
- package/src/core/sources/portable-text.ts +63 -44
- package/src/core/sources/remote.ts +18 -2
- package/src/core/sources/resolve.ts +52 -33
- package/src/core/sources/sanity.ts +1 -0
- package/src/core/sources/strapi-blocks.ts +9 -4
- package/src/core/sources/strapi.ts +1 -0
- package/src/core/sources/types.ts +31 -0
- package/src/core/types.ts +9 -0
- package/src/core/ui-packs/ar.ts +13 -0
- package/src/core/ui-packs/bg.ts +13 -0
- package/src/core/ui-packs/bn.ts +13 -0
- package/src/core/ui-packs/ca.ts +13 -0
- package/src/core/ui-packs/cs.ts +13 -0
- package/src/core/ui-packs/da.ts +13 -0
- package/src/core/ui-packs/de.ts +13 -0
- package/src/core/ui-packs/el.ts +13 -0
- package/src/core/ui-packs/es.ts +13 -0
- package/src/core/ui-packs/fa.ts +13 -0
- package/src/core/ui-packs/fi.ts +13 -0
- package/src/core/ui-packs/fr.ts +13 -0
- package/src/core/ui-packs/he.ts +13 -0
- package/src/core/ui-packs/hi.ts +13 -0
- package/src/core/ui-packs/hr.ts +13 -0
- package/src/core/ui-packs/hu.ts +13 -0
- package/src/core/ui-packs/id.ts +13 -0
- package/src/core/ui-packs/it.ts +13 -0
- package/src/core/ui-packs/ja.ts +13 -0
- package/src/core/ui-packs/ko.ts +13 -0
- package/src/core/ui-packs/nl.ts +13 -0
- package/src/core/ui-packs/no.ts +13 -0
- package/src/core/ui-packs/pl.ts +13 -0
- package/src/core/ui-packs/pt-br.ts +13 -0
- package/src/core/ui-packs/pt.ts +13 -0
- package/src/core/ui-packs/ro.ts +13 -0
- package/src/core/ui-packs/ru.ts +13 -0
- package/src/core/ui-packs/sk.ts +13 -0
- package/src/core/ui-packs/sr.ts +13 -0
- package/src/core/ui-packs/sv.ts +13 -0
- package/src/core/ui-packs/th.ts +13 -0
- package/src/core/ui-packs/tr.ts +13 -0
- package/src/core/ui-packs/uk.ts +13 -0
- package/src/core/ui-packs/vi.ts +13 -0
- package/src/core/ui-packs/zh-tw.ts +13 -0
- package/src/core/ui-packs/zh.ts +13 -0
- package/src/core/version-cut.ts +17 -2
- package/src/core/versions.ts +4 -1
- package/src/deploy/adapters/node.ts +5 -2
- package/src/deploy/adapters/registry.ts +2 -1
- package/src/deploy/adapters/types.ts +13 -1
- package/src/deploy/artifacts.ts +25 -5
- package/src/deploy/cloudflare-negotiation.ts +23 -4
- package/src/deploy/headers.ts +67 -51
- package/src/deploy/node-headers.ts +148 -27
- package/src/deploy/platforms/cloudflare.ts +1 -0
- package/src/deploy/platforms/netlify.ts +82 -5
- package/src/deploy/platforms/node.ts +7 -5
- package/src/deploy/platforms/static.ts +1 -0
- package/src/deploy/platforms/types.ts +7 -0
- package/src/deploy/platforms/vercel.ts +9 -3
- package/src/deploy/redirects.ts +14 -3
- package/src/deploy/vercel-negotiation.ts +35 -3
- package/src/eval/agents.ts +10 -2
- package/src/eval/run.ts +25 -0
- package/src/markdown/base-links.ts +55 -8
- package/src/markdown/index.ts +6 -3
- package/src/markdown/relative-links.ts +3 -23
- package/src/markdown/route-snapshot.ts +37 -0
- package/src/og/card.ts +20 -4
- package/src/og/derive.ts +145 -4
- package/src/openapi/graphql-build.ts +28 -2
- package/src/openapi/model.ts +77 -13
- package/src/openapi/render-mdx.ts +10 -1
- package/src/registry/eject.ts +119 -22
- package/src/search/documents.ts +22 -1
- package/src/search/sync/algolia.ts +36 -2
- package/src/sources/registry.ts +5 -0
- package/src/theme/entry.ts +11 -4
- package/src/translate/agents.ts +6 -1
- package/src/translate/ledger.ts +26 -3
- package/src/translate/meta.ts +11 -3
- package/src/translate/run.ts +11 -5
- package/src/translate/validate.ts +10 -1
- package/src/translate/work-list.ts +36 -3
- package/src/upgrade/upgrade.ts +36 -4
- package/dist/cli/chunk-2hn4b8z7.js.map +0 -12
- package/dist/cli/chunk-6crbhc3x.js.map +0 -14
- package/dist/cli/chunk-6hsn950k.js.map +0 -10
- package/dist/cli/chunk-79jhk4py.js.map +0 -35
- package/dist/cli/chunk-82bbrxdn.js +0 -51
- package/dist/cli/chunk-82bbrxdn.js.map +0 -10
- package/dist/cli/chunk-abh8yjkn.js +0 -31
- package/dist/cli/chunk-abh8yjkn.js.map +0 -10
- package/dist/cli/chunk-dh8cwk36.js.map +0 -10
- package/dist/cli/chunk-epjnccmv.js.map +0 -10
- package/dist/cli/chunk-fa25z98p.js.map +0 -11
- package/dist/cli/chunk-fs23ddbb.js.map +0 -35
- package/dist/cli/chunk-fz5wtpmh.js.map +0 -10
- package/dist/cli/chunk-kpf8rrjc.js.map +0 -19
- package/dist/cli/chunk-m3vmjgmq.js.map +0 -10
- package/dist/cli/chunk-mb2919y2.js.map +0 -10
- package/dist/cli/chunk-q5163e60.js.map +0 -11
- package/dist/cli/chunk-qkqwkpte.js.map +0 -182
- package/dist/cli/chunk-qs4q5p4e.js.map +0 -10
- package/dist/cli/chunk-s1p84fyh.js.map +0 -10
- package/dist/cli/chunk-wgm7m9qk.js.map +0 -36
- package/dist/cli/chunk-yt5n7ppj.js.map +0 -10
- /package/dist/cli/{chunk-vtk4a6dg.js.map → chunk-00gs3wqs.js.map} +0 -0
- /package/dist/cli/{chunk-6vm74dry.js.map → chunk-6dtt0zfn.js.map} +0 -0
- /package/dist/cli/{chunk-fxypxtvm.js.map → chunk-bbnwccaz.js.map} +0 -0
- /package/dist/cli/{chunk-ce574jw2.js.map → chunk-esh98wmb.js.map} +0 -0
- /package/dist/cli/{chunk-zxcczpyx.js.map → chunk-fsmrqk8a.js.map} +0 -0
- /package/dist/cli/{chunk-hdpx1tax.js.map → chunk-g698a744.js.map} +0 -0
- /package/dist/cli/{chunk-zxh4d9vy.js.map → chunk-h2ez8dzb.js.map} +0 -0
- /package/dist/cli/{chunk-5shv93fd.js.map → chunk-h7k3nq3v.js.map} +0 -0
- /package/dist/cli/{chunk-ah61y8py.js.map → chunk-mqc662a6.js.map} +0 -0
- /package/dist/cli/{chunk-ch6g3ar0.js.map → chunk-n1yg3tj3.js.map} +0 -0
- /package/dist/cli/{chunk-wm7js3j9.js.map → chunk-sqw4ekg1.js.map} +0 -0
- /package/dist/cli/{chunk-27g6wdth.js.map → chunk-wdrt2k2v.js.map} +0 -0
- /package/dist/cli/{chunk-s6jhgk0q.js.map → chunk-zp79m0ts.js.map} +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** The script Databuddy's install snippet loads. */
|
|
5
|
+
export declare const DATABUDDY_SCRIPT_SRC = "https://cdn.databuddy.cc/databuddy.js";
|
|
6
|
+
/** The options {@link databuddy} maps itself. */
|
|
7
|
+
export interface DatabuddyNamedOptions {
|
|
8
|
+
/** Client ID, from the website's settings in the Databuddy dashboard. */
|
|
9
|
+
clientId: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Options for {@link databuddy}: the client ID plus any other tracker setting,
|
|
13
|
+
* forwarded as a `data-` attribute on the tag (`"track-web-vitals"` →
|
|
14
|
+
* `data-track-web-vitals`, `"track-errors"`, `"track-outgoing-links"`,
|
|
15
|
+
* `"api-url"`, …).
|
|
16
|
+
*/
|
|
17
|
+
export type DatabuddyOptions = DatabuddyNamedOptions & {
|
|
18
|
+
[setting: string]: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const databuddyOptionsSchema: z.ZodObject<{
|
|
21
|
+
clientId: z.ZodString;
|
|
22
|
+
}, z.core.$catchall<z.ZodString>>;
|
|
23
|
+
export type DatabuddyAdapter = AdapterDescriptor<"databuddy", DatabuddyOptions>;
|
|
24
|
+
export declare const databuddyAdapterSchema: z.ZodObject<{
|
|
25
|
+
kind: z.ZodLiteral<"databuddy">;
|
|
26
|
+
options: z.ZodObject<{
|
|
27
|
+
clientId: z.ZodString;
|
|
28
|
+
}, z.core.$catchall<z.ZodString>>;
|
|
29
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
30
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
31
|
+
}, z.core.$strict>;
|
|
32
|
+
/**
|
|
33
|
+
* Databuddy. The client ID is public — it's in the tag on every page.
|
|
34
|
+
*/
|
|
35
|
+
export declare const databuddy: (options: DatabuddyOptions) => DatabuddyAdapter;
|
|
36
|
+
/**
|
|
37
|
+
* The async tag from the install instructions, with `clientId` as
|
|
38
|
+
* `data-client-id` and every other option as its own `data-` attribute. The
|
|
39
|
+
* tracker skips setup when `window.databuddy` already exists, so there is no
|
|
40
|
+
* queue stub. Databuddy's script tracks history changes on its own, so
|
|
41
|
+
* client-router navigations need no extra hook.
|
|
42
|
+
*/
|
|
43
|
+
export declare const databuddyHead: (options: DatabuddyOptions) => HeadScript[];
|
|
@@ -30,6 +30,8 @@ export { clearbit } from "./clearbit.ts";
|
|
|
30
30
|
export type { ClearbitAdapter, ClearbitOptions } from "./clearbit.ts";
|
|
31
31
|
export { cloudflare } from "./cloudflare.ts";
|
|
32
32
|
export type { CloudflareAdapter, CloudflareOptions } from "./cloudflare.ts";
|
|
33
|
+
export { databuddy } from "./databuddy.ts";
|
|
34
|
+
export type { DatabuddyAdapter, DatabuddyOptions } from "./databuddy.ts";
|
|
33
35
|
export { fathom } from "./fathom.ts";
|
|
34
36
|
export type { FathomAdapter, FathomOptions } from "./fathom.ts";
|
|
35
37
|
export { googleAnalytics } from "./google-analytics.ts";
|
|
@@ -35,6 +35,13 @@ export declare const analyticsAdapterSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
35
35
|
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
36
36
|
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
37
37
|
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
38
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
39
|
+
kind: z.ZodLiteral<"databuddy">;
|
|
40
|
+
options: z.ZodObject<{
|
|
41
|
+
clientId: z.ZodString;
|
|
42
|
+
}, z.core.$catchall<z.ZodString>>;
|
|
43
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
44
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
38
45
|
}, z.core.$strict>, z.ZodObject<{
|
|
39
46
|
kind: z.ZodLiteral<"fathom">;
|
|
40
47
|
options: z.ZodObject<{
|
|
@@ -197,6 +204,13 @@ export declare const analyticsConfigSchema: z.ZodDefault<z.ZodArray<z.ZodDiscrim
|
|
|
197
204
|
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
198
205
|
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
199
206
|
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
207
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
208
|
+
kind: z.ZodLiteral<"databuddy">;
|
|
209
|
+
options: z.ZodObject<{
|
|
210
|
+
clientId: z.ZodString;
|
|
211
|
+
}, z.core.$catchall<z.ZodString>>;
|
|
212
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
213
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
200
214
|
}, z.core.$strict>, z.ZodObject<{
|
|
201
215
|
kind: z.ZodLiteral<"fathom">;
|
|
202
216
|
options: z.ZodObject<{
|
package/dist/types/cli/env.d.ts
CHANGED
|
@@ -8,5 +8,10 @@
|
|
|
8
8
|
* these files at build time, so a value means the same thing to the pre-boot
|
|
9
9
|
* content scan and the built site — including multi-line double-quoted values
|
|
10
10
|
* (PEM keys), which a line-based parser silently truncates.
|
|
11
|
+
*
|
|
12
|
+
* `NODE_ENV` is never taken from these files: it picks the mode Vite and Astro
|
|
13
|
+
* run in, so a monorepo root `.env` that sets it for another app would turn
|
|
14
|
+
* every `blume build` into a development build (or `blume dev` into a
|
|
15
|
+
* production one).
|
|
11
16
|
*/
|
|
12
17
|
export declare const loadEnvFiles: (startDir: string) => void;
|
|
@@ -33,6 +33,10 @@ export declare const STARTERS: {
|
|
|
33
33
|
content: string;
|
|
34
34
|
path: string;
|
|
35
35
|
}[];
|
|
36
|
+
projectFiles: {
|
|
37
|
+
content: string;
|
|
38
|
+
path: string;
|
|
39
|
+
}[];
|
|
36
40
|
};
|
|
37
41
|
changelog: {
|
|
38
42
|
configExtra: string;
|
|
@@ -71,6 +75,11 @@ export declare const commandsFor: (pm: PackageManager) => {
|
|
|
71
75
|
exec: string;
|
|
72
76
|
install: string;
|
|
73
77
|
};
|
|
78
|
+
/**
|
|
79
|
+
* The `cd` into the new project, quoting a directory a shell would split or
|
|
80
|
+
* expand: `blume init "my docs"` prints `cd "my docs"`, not `cd my docs`.
|
|
81
|
+
*/
|
|
82
|
+
export declare const cdCommand: (directory: string) => string;
|
|
74
83
|
/**
|
|
75
84
|
* Derive the package manager from an npm user-agent string (the first
|
|
76
85
|
* `name/version` token of `npm_config_user_agent`), falling back to npm.
|
|
@@ -97,6 +106,12 @@ export declare const validateContentDir: (root: string, dir: string) => string |
|
|
|
97
106
|
export declare const titleize: (raw: string) => string;
|
|
98
107
|
/** The full `blume.config.ts` text for the chosen answers. */
|
|
99
108
|
export declare const buildConfig: (answers: InitAnswers) => string;
|
|
109
|
+
/**
|
|
110
|
+
* Whether `init` installs with pnpm into a folder that sits inside a pnpm
|
|
111
|
+
* workspace without being one of its packages. pnpm would install that
|
|
112
|
+
* workspace's own packages from there and exit 0, leaving `blume` uninstalled.
|
|
113
|
+
*/
|
|
114
|
+
export declare const outsidePnpmWorkspace: (root: string, answers: InitAnswers) => boolean;
|
|
100
115
|
/**
|
|
101
116
|
* The major version of the Yarn that ran `init`, read off the npm user agent
|
|
102
117
|
* (`yarn/4.5.1 npm/? node/v22…`), or undefined when something else ran it.
|
|
@@ -108,9 +123,10 @@ export interface PlanEnvironment {
|
|
|
108
123
|
userAgent?: string;
|
|
109
124
|
}
|
|
110
125
|
/**
|
|
111
|
-
* What the project still needs from a workspace it
|
|
112
|
-
* that workspace's config alone:
|
|
113
|
-
* (pnpm
|
|
126
|
+
* What the project still needs from a workspace it sits in, when `init` left
|
|
127
|
+
* that workspace's config alone: a place in a pnpm workspace's `packages`
|
|
128
|
+
* (pnpm skips a folder it doesn't list), pnpm's approval for esbuild's build
|
|
129
|
+
* script (pnpm 10 and later fail the install without it), or Yarn Berry's
|
|
114
130
|
* `node_modules` linker. Undefined when the workspace already has it, or the
|
|
115
131
|
* project doesn't sit in one.
|
|
116
132
|
*/
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The OpenAPI document the `api` starter writes beside `blume.config.ts`, so a
|
|
3
|
+
* new project's first build reads a local file instead of depending on a
|
|
4
|
+
* third-party server. Small, but it exercises what a real reference renders:
|
|
5
|
+
* path and query parameters, request bodies, shared schemas, error responses,
|
|
6
|
+
* and bearer auth. Each operation's description is sized so its page's meta
|
|
7
|
+
* description, with the endpoint sentence Blume appends, fits the range
|
|
8
|
+
* `blume audit` checks.
|
|
9
|
+
*/
|
|
10
|
+
/** The starter spec as the `openapi.json` text `init` writes. */
|
|
11
|
+
export declare const STARTER_OPENAPI_JSON: string;
|
|
@@ -51,6 +51,15 @@ export declare const isExternalUrl: (target: string) => boolean;
|
|
|
51
51
|
* the base by hand (`/docs/x`) aren't double-prefixed to `/docs/docs/x`.
|
|
52
52
|
*/
|
|
53
53
|
export declare const withBasePath: (basePath: string, route: string) => string;
|
|
54
|
+
/**
|
|
55
|
+
* Mount a route Blume generates from content under `basePath`,
|
|
56
|
+
* unconditionally. {@link withBasePath} leaves a route that already starts
|
|
57
|
+
* with the base alone, which is right for a link an author based by hand but
|
|
58
|
+
* wrong for a content route: with `basePath: "/docs"`, `docs/guide.md` routes
|
|
59
|
+
* to `/docs/guide` before the base and publishes at `/docs/docs/guide`, not on
|
|
60
|
+
* top of the root `guide.md`.
|
|
61
|
+
*/
|
|
62
|
+
export declare const mountBasePath: (basePath: string, route: string) => string;
|
|
54
63
|
/**
|
|
55
64
|
* {@link withBasePath} for the composed `deployment.base` + `basePath` stack
|
|
56
65
|
* (`/base` + `/docs` serves pages at `/base/docs/x`). The hand-written-base
|
|
@@ -524,14 +524,14 @@ export interface LlmsTxtConfig {
|
|
|
524
524
|
/**
|
|
525
525
|
* Markdown placed after the title and summary in `llms.txt`, before the
|
|
526
526
|
* page sections — the llms.txt spec's "details" block. Use it to tell
|
|
527
|
-
* agents when to reach for the product and how to call it (
|
|
528
|
-
*
|
|
529
|
-
* dropped.
|
|
527
|
+
* agents when to reach for the product and how to call it (the install
|
|
528
|
+
* command, the package name). The spec allows any Markdown there but
|
|
529
|
+
* headings. Blank values are dropped.
|
|
530
530
|
*
|
|
531
531
|
* ```ts
|
|
532
532
|
* agents: {
|
|
533
533
|
* llmsTxt: {
|
|
534
|
-
* details: "
|
|
534
|
+
* details: "Use Acme when…",
|
|
535
535
|
* },
|
|
536
536
|
* }
|
|
537
537
|
* ```
|
|
@@ -55,8 +55,8 @@ import type { Diagnostic } from "./types.ts";
|
|
|
55
55
|
* - `theme` — `accent` color, `fonts` (curated slugs, any provider family, or
|
|
56
56
|
* local font files), `radius`,
|
|
57
57
|
* `mode` (`system`/`light`/`dark`), and `background`.
|
|
58
|
-
* - `markdown` — `code` (language icons,
|
|
59
|
-
* `
|
|
58
|
+
* - `markdown` — `code` (language icons, light/dark Shiki `theme`, line
|
|
59
|
+
* `wrap`), `externalLinks`, `headingAnchors`, and `imageZoom`.
|
|
60
60
|
* - `toc` — on-page table of contents; `true`/`false` or a heading-level range.
|
|
61
61
|
* - `lastModified` — "Last updated" stamps from `git` history or frontmatter.
|
|
62
62
|
* - `feedback` — the per-page "Was this helpful?" widget (on by default).
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { FolderMeta, ResolvedConfig, ResolvedI18nConfig, ResolvedVersionsConfig } from "./schema.ts";
|
|
2
2
|
import type { ContentGraph, PageRecord } from "./types.ts";
|
|
3
3
|
interface BuildContentGraphOptions {
|
|
4
|
+
/** The banner's link target as configured (`banner.link.href`), if any. */
|
|
5
|
+
bannerHref?: string;
|
|
4
6
|
/** Site-wide route mount point (`""` or `/seg`); invisible to the nav tree. */
|
|
5
7
|
basePath?: string;
|
|
6
8
|
/** The header brand link as configured (`logo.href`, default `/`). */
|
|
@@ -51,9 +51,20 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
51
51
|
title: z.ZodDefault<z.ZodString>;
|
|
52
52
|
}, z.core.$strip>>;
|
|
53
53
|
content: z.ZodPrefault<z.ZodObject<{
|
|
54
|
+
code: z.ZodDefault<z.ZodString>;
|
|
54
55
|
copyColor: z.ZodDefault<z.ZodString>;
|
|
55
56
|
copyPrompt: z.ZodDefault<z.ZodString>;
|
|
57
|
+
default: z.ZodDefault<z.ZodString>;
|
|
56
58
|
diagramError: z.ZodDefault<z.ZodString>;
|
|
59
|
+
forks: z.ZodDefault<z.ZodString>;
|
|
60
|
+
preview: z.ZodDefault<z.ZodString>;
|
|
61
|
+
prop: z.ZodDefault<z.ZodString>;
|
|
62
|
+
selectTab: z.ZodDefault<z.ZodString>;
|
|
63
|
+
showMore: z.ZodDefault<z.ZodString>;
|
|
64
|
+
stars: z.ZodDefault<z.ZodString>;
|
|
65
|
+
tab: z.ZodDefault<z.ZodString>;
|
|
66
|
+
type: z.ZodDefault<z.ZodString>;
|
|
67
|
+
update: z.ZodDefault<z.ZodString>;
|
|
57
68
|
}, z.core.$strip>>;
|
|
58
69
|
feedback: z.ZodPrefault<z.ZodObject<{
|
|
59
70
|
no: z.ZodDefault<z.ZodString>;
|
|
@@ -103,8 +114,10 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
103
114
|
assistantHint: z.ZodDefault<z.ZodString>;
|
|
104
115
|
button: z.ZodDefault<z.ZodString>;
|
|
105
116
|
devOnly: z.ZodDefault<z.ZodString>;
|
|
117
|
+
docs: z.ZodDefault<z.ZodString>;
|
|
106
118
|
error: z.ZodDefault<z.ZodString>;
|
|
107
119
|
label: z.ZodDefault<z.ZodString>;
|
|
120
|
+
latest: z.ZodDefault<z.ZodString>;
|
|
108
121
|
navigate: z.ZodDefault<z.ZodString>;
|
|
109
122
|
noResults: z.ZodDefault<z.ZodString>;
|
|
110
123
|
open: z.ZodDefault<z.ZodString>;
|
|
@@ -166,9 +179,20 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
166
179
|
title: z.ZodDefault<z.ZodString>;
|
|
167
180
|
}, z.core.$strip>>;
|
|
168
181
|
content: z.ZodPrefault<z.ZodObject<{
|
|
182
|
+
code: z.ZodDefault<z.ZodString>;
|
|
169
183
|
copyColor: z.ZodDefault<z.ZodString>;
|
|
170
184
|
copyPrompt: z.ZodDefault<z.ZodString>;
|
|
185
|
+
default: z.ZodDefault<z.ZodString>;
|
|
171
186
|
diagramError: z.ZodDefault<z.ZodString>;
|
|
187
|
+
forks: z.ZodDefault<z.ZodString>;
|
|
188
|
+
preview: z.ZodDefault<z.ZodString>;
|
|
189
|
+
prop: z.ZodDefault<z.ZodString>;
|
|
190
|
+
selectTab: z.ZodDefault<z.ZodString>;
|
|
191
|
+
showMore: z.ZodDefault<z.ZodString>;
|
|
192
|
+
stars: z.ZodDefault<z.ZodString>;
|
|
193
|
+
tab: z.ZodDefault<z.ZodString>;
|
|
194
|
+
type: z.ZodDefault<z.ZodString>;
|
|
195
|
+
update: z.ZodDefault<z.ZodString>;
|
|
172
196
|
}, z.core.$strip>>;
|
|
173
197
|
feedback: z.ZodPrefault<z.ZodObject<{
|
|
174
198
|
no: z.ZodDefault<z.ZodString>;
|
|
@@ -218,8 +242,10 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
218
242
|
assistantHint: z.ZodDefault<z.ZodString>;
|
|
219
243
|
button: z.ZodDefault<z.ZodString>;
|
|
220
244
|
devOnly: z.ZodDefault<z.ZodString>;
|
|
245
|
+
docs: z.ZodDefault<z.ZodString>;
|
|
221
246
|
error: z.ZodDefault<z.ZodString>;
|
|
222
247
|
label: z.ZodDefault<z.ZodString>;
|
|
248
|
+
latest: z.ZodDefault<z.ZodString>;
|
|
223
249
|
navigate: z.ZodDefault<z.ZodString>;
|
|
224
250
|
noResults: z.ZodDefault<z.ZodString>;
|
|
225
251
|
open: z.ZodDefault<z.ZodString>;
|
|
@@ -268,6 +294,11 @@ export { UI_PACKS } from "./ui-packs/index.ts";
|
|
|
268
294
|
* English baseline ← default-locale pack ← default-locale override ←
|
|
269
295
|
* locale pack ← locale override. So a missing key falls back to the default
|
|
270
296
|
* locale's translation, then to English.
|
|
297
|
+
*
|
|
298
|
+
* English has no pack because the baseline is its complete translation, so an
|
|
299
|
+
* English locale (`en`, `en-GB`) skips the default-locale layers: on a site
|
|
300
|
+
* whose default is German, English pages keep English chrome instead of
|
|
301
|
+
* inheriting the German strings.
|
|
271
302
|
*/
|
|
272
303
|
export declare const resolveUIStrings: (locale: string, options: {
|
|
273
304
|
defaultLocale: string;
|
|
@@ -76,8 +76,14 @@ export declare const localePlacement: (rel: string, ext: string, i18n: ResolvedI
|
|
|
76
76
|
* (`x.en.mdx`) swaps it for the target's (`x.fr.mdx`) — same case-insensitive
|
|
77
77
|
* last-dot-inside-filename logic as `localePlacement`, so both spellings of a
|
|
78
78
|
* default-locale file resolve to one canonical target.
|
|
79
|
+
*
|
|
80
|
+
* Under `dir`, `folders` are the content root's existing top-level folders: one
|
|
81
|
+
* that names the locale in another casing (`pt-br/` for a configured `pt-BR`)
|
|
82
|
+
* is the locale's folder already, since {@link detectLocale} matches it case-
|
|
83
|
+
* insensitively. Writing beside it into a second `pt-BR/` would, on a case-
|
|
84
|
+
* sensitive filesystem, publish the page twice.
|
|
79
85
|
*/
|
|
80
|
-
export declare const localeTargetPath: (rel: string, ext: string, locale: string, i18n: ResolvedI18nConfig) => string;
|
|
86
|
+
export declare const localeTargetPath: (rel: string, ext: string, locale: string, i18n: ResolvedI18nConfig, folders?: readonly string[]) => string;
|
|
81
87
|
/**
|
|
82
88
|
* Warn about top-level content folders that look like a locale (a code Blume
|
|
83
89
|
* recognizes) but aren't declared in `i18n.locales`. Without this they're
|
|
@@ -35,7 +35,9 @@ export declare const resolveRelativeHref: (href: string, from: RelativeLinkBase,
|
|
|
35
35
|
* Whether a content file is its folder's index, from its name as written on
|
|
36
36
|
* disk: `index.md(x)` after an ordering prefix, optionally carrying one of
|
|
37
37
|
* `localeTokens` before the extension (`index.fr.mdx` under the `dot` locale
|
|
38
|
-
* parser, `index.$.mdx` for a file shared by every locale).
|
|
38
|
+
* parser, `index.$.mdx` for a file shared by every locale). The `index` itself
|
|
39
|
+
* is case-sensitive, as route mapping reads it: `Index.md` is a page named
|
|
40
|
+
* `Index`, not its folder's index.
|
|
39
41
|
*/
|
|
40
42
|
export declare const isIndexFileName: (name: string, localeTokens?: readonly string[]) => boolean;
|
|
41
43
|
/** Where content files publish, for resolving file links (`./setup.mdx`). */
|
|
@@ -5,3 +5,13 @@
|
|
|
5
5
|
* which is what makes dev-server regeneration reflect config/meta changes.
|
|
6
6
|
*/
|
|
7
7
|
export declare const createModuleLoader: () => ((file: string) => Promise<unknown>);
|
|
8
|
+
/**
|
|
9
|
+
* Create a loader for a module whose default export is its whole value
|
|
10
|
+
* (`blume.config.ts`). Unlike {@link createModuleLoader}, it never falls back
|
|
11
|
+
* to the module's namespace: a module with no default export, or one that
|
|
12
|
+
* exports `null`/`undefined`, resolves to `undefined` so the caller can say
|
|
13
|
+
* so, instead of validating `{}` (a bare `defineConfig({…})` call) or
|
|
14
|
+
* `{ config }` (a named export). jiti's default interop is off because it
|
|
15
|
+
* throws on `export default null`.
|
|
16
|
+
*/
|
|
17
|
+
export declare const createDefaultExportLoader: typeof createModuleLoader;
|
|
@@ -33,6 +33,11 @@ export interface LocalizeLinkOptions {
|
|
|
33
33
|
/** Every served route, base-prefixed like `path` (no `deployment.base`). */
|
|
34
34
|
routes: RouteSet;
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Whether `routes` serves `route` (base-prefixed, fragment-less). Routes are
|
|
38
|
+
* stored decoded, so a browser-copied `/caf%C3%A9` still finds its page.
|
|
39
|
+
*/
|
|
40
|
+
export declare const servesRoute: (routes: RouteSet, route: string) => boolean;
|
|
36
41
|
/**
|
|
37
42
|
* Move a base-prefixed, fragment-less internal path into `locale` when that
|
|
38
43
|
* route is served, else return it unchanged. Idempotent: a path already under
|
|
@@ -44,9 +49,14 @@ export interface LocalizeHrefOptions extends LocalizeLinkOptions {
|
|
|
44
49
|
deployBase: string;
|
|
45
50
|
}
|
|
46
51
|
/**
|
|
47
|
-
* Localize a rendered `href`: external URLs, relative paths, bare
|
|
48
|
-
*
|
|
52
|
+
* Localize a rendered `href`: external URLs, relative paths, and bare
|
|
53
|
+
* fragments pass through; a root-relative page link keeps its `?query` and
|
|
49
54
|
* `#fragment` and its `deployment.base` layer around the localized path.
|
|
55
|
+
*
|
|
56
|
+
* Asset links (`/logo.png`, a raw `.md` twin) pass through too, because no
|
|
57
|
+
* page is served at their localized path — the same served-route test the
|
|
58
|
+
* link checker applies. A file extension alone doesn't mark an asset: a
|
|
59
|
+
* dotted page route (`/releases/v1.2`) is localized like any other page.
|
|
50
60
|
*/
|
|
51
61
|
export declare const localizeHref: (href: string, options: LocalizeHrefOptions) => string;
|
|
52
62
|
/**
|
|
@@ -2,10 +2,14 @@ import type { FolderMeta } from "./schema.ts";
|
|
|
2
2
|
import type { Diagnostic } from "./types.ts";
|
|
3
3
|
/** A filesystem content source to scan for folder meta: its on-disk root and
|
|
4
4
|
* optional route prefix. The prefix is folded into every key so meta lines up
|
|
5
|
-
* with the sidebar group path, which carries the same prefix.
|
|
5
|
+
* with the sidebar group path, which carries the same prefix. `include` and
|
|
6
|
+
* `exclude` are the source's content globs, which scope the scan to the
|
|
7
|
+
* folders the source reads. */
|
|
6
8
|
export interface FolderMetaSource {
|
|
7
9
|
root: string;
|
|
8
10
|
prefix?: string;
|
|
11
|
+
include?: readonly string[];
|
|
12
|
+
exclude?: readonly string[];
|
|
9
13
|
}
|
|
10
14
|
/**
|
|
11
15
|
* Discover `meta.{ts,js,mjs}` files across the given filesystem sources. Keys are
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SidebarItemConfig } from "./schema.ts";
|
|
1
2
|
import type { Diagnostic, Navigation, PageRecord } from "./types.ts";
|
|
2
3
|
/** Warn about icon names that aren't in Blume's set (skipping image/SVG icons). */
|
|
3
4
|
export declare const validateNavIcons: (navigation: Navigation) => Diagnostic[];
|
|
@@ -16,6 +17,15 @@ export declare const validateSearchPopularIcons: (popular: {
|
|
|
16
17
|
* not in the content-only graph build.
|
|
17
18
|
*/
|
|
18
19
|
export declare const validateNavTargets: (navigation: Navigation, routes: Set<string>) => Diagnostic[];
|
|
20
|
+
/**
|
|
21
|
+
* Warn about explicit `navigation.sidebar` items that can't render as written,
|
|
22
|
+
* instead of dropping them without a word: a page ref that matches no page
|
|
23
|
+
* (left out of the sidebar), a `root` that matches no page (its link leads
|
|
24
|
+
* nowhere), and an item with no page, `href`, `root`, or `items` (left out).
|
|
25
|
+
* `resolves` answers whether a normalized ref (`/guides`) names a page — in
|
|
26
|
+
* any locale — or a route served outside the content tree.
|
|
27
|
+
*/
|
|
28
|
+
export declare const validateSidebarItems: (items: SidebarItemConfig[], resolves: (route: string) => boolean) => Diagnostic[];
|
|
19
29
|
/**
|
|
20
30
|
* Structural navigation diagnostics that need only the built navigation +
|
|
21
31
|
* content pages: duplicate sidebar labels at a level, and hidden pages that
|
|
@@ -18,6 +18,29 @@ export declare const isUnderPath: (route: string, base: string) => boolean;
|
|
|
18
18
|
* sidebar or highlight the wrong tab over it.
|
|
19
19
|
*/
|
|
20
20
|
export declare const isRootTab: (tab: NavTab, root: string) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Capitalize one word of a slug-like name for display, spelling the acronyms
|
|
23
|
+
* and brand casings in {@link WORD_FORMS} their own way (`api` → "API").
|
|
24
|
+
* Shared with page titles derived from file names, so a page and a folder
|
|
25
|
+
* named alike read alike.
|
|
26
|
+
*/
|
|
27
|
+
export declare const titleWord: (word: string) => string;
|
|
28
|
+
/**
|
|
29
|
+
* An explicit-sidebar ref (`"guides/"`, `"/guides/index"`, `"index"`) in the
|
|
30
|
+
* slashless route form pages are keyed by (`/guides`, `/`).
|
|
31
|
+
*/
|
|
32
|
+
export declare const normalizeRef: (ref: string) => string;
|
|
33
|
+
/** An explicit-config sidebar item written as a bare page-ref string. */
|
|
34
|
+
export declare const isPageRef: (item: SidebarItemConfig) => item is string;
|
|
35
|
+
/**
|
|
36
|
+
* Pages keyed the way explicit-sidebar refs look them up: by the
|
|
37
|
+
* locale-agnostic `translationKey` under i18n (`byLogical`), so one authored
|
|
38
|
+
* sidebar maps onto every locale's pages, else by route. Refs are authored as
|
|
39
|
+
* if mounted at root while `page.route` carries the base, so each page is also
|
|
40
|
+
* aliased under its base-less route (the `translationKey` is base-less
|
|
41
|
+
* already).
|
|
42
|
+
*/
|
|
43
|
+
export declare const pagesByRef: (pages: PageRecord[], basePath: string, byLogical: boolean) => Map<string, PageRecord>;
|
|
21
44
|
/** Build the complete navigation model from pages, meta, and config. */
|
|
22
45
|
export declare const buildNavigation: (pages: PageRecord[], options: {
|
|
23
46
|
/** Plain links in the header, left of the icon buttons. */
|
|
@@ -39,6 +62,13 @@ export declare const buildNavigation: (pages: PageRecord[], options: {
|
|
|
39
62
|
* group path, e.g. `fr`, `v1.0`, or `v1.0/fr`.
|
|
40
63
|
*/
|
|
41
64
|
metaPrefix?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Folder-meta lookup prefix of the i18n fallback locale, whose untranslated
|
|
67
|
+
* pages pad this tree (`""` for the default locale of the current
|
|
68
|
+
* version). A group with no meta of this locale's mirrors the fallback
|
|
69
|
+
* locale's. Unset for the fallback locale itself, and without i18n.
|
|
70
|
+
*/
|
|
71
|
+
fallbackMetaPrefix?: string;
|
|
42
72
|
/**
|
|
43
73
|
* Prefix for shared `meta.$.*` lookups — the version dir inside a
|
|
44
74
|
* snapshot (`v1.0`), since shared meta is locale-agnostic but still
|
|
@@ -60,6 +90,14 @@ export declare const buildNavigation: (pages: PageRecord[], options: {
|
|
|
60
90
|
* scoping.
|
|
61
91
|
*/
|
|
62
92
|
localizedRoot?: string;
|
|
93
|
+
/**
|
|
94
|
+
* The root of the space tab paths are written in, before `basePath`: the
|
|
95
|
+
* current docs' localized root (`"/"`, `/fr`). Defaults to
|
|
96
|
+
* `localizedRoot`; an archived version tree passes it because its own
|
|
97
|
+
* root is versionized (`/fr/v1.0`) while tab paths are not, so a tab's
|
|
98
|
+
* section can be found under the version.
|
|
99
|
+
*/
|
|
100
|
+
tabRoot?: string;
|
|
63
101
|
/**
|
|
64
102
|
* Sink for diagnostics produced while building the tree (duplicate sidebar
|
|
65
103
|
* `order` values, index-page title/folder-meta-title mismatches). Pushed
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** The digits of `name`'s ordering prefix (`01` of `01-intro`), if it has one. */
|
|
2
|
+
export declare const orderingPrefix: (name: string) => string | undefined;
|
|
3
|
+
/** `name` without its ordering prefix (`01-intro` -> `intro`). */
|
|
4
|
+
export declare const stripOrderingPrefix: (name: string) => string;
|
|
@@ -21,6 +21,8 @@ export declare const unsafeLinkSpans: (tree: Root) => UnsafeLinkSpan[];
|
|
|
21
21
|
/**
|
|
22
22
|
* Markdown with every unsafe link reduced to its label text and every unsafe
|
|
23
23
|
* link definition removed. Everything else — safe links, raw HTML, code —
|
|
24
|
-
* passes through as written.
|
|
24
|
+
* passes through as written. The Markdown is read as GitHub-flavored, the way
|
|
25
|
+
* the site renders it: a link inside a footnote definition or a table cell is
|
|
26
|
+
* only a link to a GFM parser.
|
|
25
27
|
*/
|
|
26
28
|
export declare const neutralizeUnsafeLinks: (markdown: string) => string;
|
|
@@ -687,15 +687,7 @@ declare const contentSignalsSchema: z.ZodPipe<z.ZodUnion<readonly [z.ZodBoolean,
|
|
|
687
687
|
aiTrain: boolean;
|
|
688
688
|
search: boolean;
|
|
689
689
|
}>>;
|
|
690
|
-
|
|
691
|
-
* How the "last updated" stamp and the changelog timeline render their dates —
|
|
692
|
-
* a curated pass-through to `Intl.DateTimeFormat`, shared by both surfaces so
|
|
693
|
-
* they read alike. Defaults to `{ dateStyle: "long" }`. Both stamps format in
|
|
694
|
-
* UTC unless a `timeZone` is given, so a date reads the same regardless of the
|
|
695
|
-
* build machine's zone. `dateStyle` is a preset that can't be combined with the
|
|
696
|
-
* individual component fields (`year`, `month`, …), matching `Intl`'s own rule.
|
|
697
|
-
*/
|
|
698
|
-
declare const dateFormatConfigSchema: z.ZodObject<{
|
|
690
|
+
declare const dateFormatConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
699
691
|
calendar: z.ZodOptional<z.ZodString>;
|
|
700
692
|
dateStyle: z.ZodOptional<z.ZodEnum<{
|
|
701
693
|
medium: "medium";
|
|
@@ -730,7 +722,27 @@ declare const dateFormatConfigSchema: z.ZodObject<{
|
|
|
730
722
|
numeric: "numeric";
|
|
731
723
|
"2-digit": "2-digit";
|
|
732
724
|
}>>;
|
|
733
|
-
}, z.core.$strict
|
|
725
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
726
|
+
calendar?: string | undefined;
|
|
727
|
+
dateStyle?: "medium" | "full" | "long" | "short" | undefined;
|
|
728
|
+
day?: "numeric" | "2-digit" | undefined;
|
|
729
|
+
era?: "long" | "short" | "narrow" | undefined;
|
|
730
|
+
month?: "long" | "short" | "numeric" | "2-digit" | "narrow" | undefined;
|
|
731
|
+
numberingSystem?: string | undefined;
|
|
732
|
+
timeZone?: string | undefined;
|
|
733
|
+
weekday?: "long" | "short" | "narrow" | undefined;
|
|
734
|
+
year?: "numeric" | "2-digit" | undefined;
|
|
735
|
+
}, {
|
|
736
|
+
calendar?: string | undefined;
|
|
737
|
+
dateStyle?: "medium" | "full" | "long" | "short" | undefined;
|
|
738
|
+
day?: "numeric" | "2-digit" | undefined;
|
|
739
|
+
era?: "long" | "short" | "narrow" | undefined;
|
|
740
|
+
month?: "long" | "short" | "numeric" | "2-digit" | "narrow" | undefined;
|
|
741
|
+
numberingSystem?: string | undefined;
|
|
742
|
+
timeZone?: string | undefined;
|
|
743
|
+
weekday?: "long" | "short" | "narrow" | undefined;
|
|
744
|
+
year?: "numeric" | "2-digit" | undefined;
|
|
745
|
+
}>>;
|
|
734
746
|
export declare const blumeConfigSchema: z.ZodObject<{
|
|
735
747
|
agents: z.ZodPrefault<z.ZodObject<{
|
|
736
748
|
agentReadability: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -931,6 +943,13 @@ export declare const blumeConfigSchema: z.ZodObject<{
|
|
|
931
943
|
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
932
944
|
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
933
945
|
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
946
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
947
|
+
kind: z.ZodLiteral<"databuddy">;
|
|
948
|
+
options: z.ZodObject<{
|
|
949
|
+
clientId: z.ZodString;
|
|
950
|
+
}, z.core.$catchall<z.ZodString>>;
|
|
951
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
952
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
934
953
|
}, z.core.$strict>, z.ZodObject<{
|
|
935
954
|
kind: z.ZodLiteral<"fathom">;
|
|
936
955
|
options: z.ZodObject<{
|
|
@@ -2164,7 +2183,7 @@ export declare const blumeConfigSchema: z.ZodObject<{
|
|
|
2164
2183
|
runtimeDeps: string[];
|
|
2165
2184
|
})[] | undefined;
|
|
2166
2185
|
}>>>;
|
|
2167
|
-
dateFormat: z.ZodDefault<z.ZodObject<{
|
|
2186
|
+
dateFormat: z.ZodDefault<z.ZodPipe<z.ZodObject<{
|
|
2168
2187
|
calendar: z.ZodOptional<z.ZodString>;
|
|
2169
2188
|
dateStyle: z.ZodOptional<z.ZodEnum<{
|
|
2170
2189
|
medium: "medium";
|
|
@@ -2199,7 +2218,27 @@ export declare const blumeConfigSchema: z.ZodObject<{
|
|
|
2199
2218
|
numeric: "numeric";
|
|
2200
2219
|
"2-digit": "2-digit";
|
|
2201
2220
|
}>>;
|
|
2202
|
-
}, z.core.$strict
|
|
2221
|
+
}, z.core.$strict>, z.ZodTransform<{
|
|
2222
|
+
calendar?: string | undefined;
|
|
2223
|
+
dateStyle?: "medium" | "full" | "long" | "short" | undefined;
|
|
2224
|
+
day?: "numeric" | "2-digit" | undefined;
|
|
2225
|
+
era?: "long" | "short" | "narrow" | undefined;
|
|
2226
|
+
month?: "long" | "short" | "numeric" | "2-digit" | "narrow" | undefined;
|
|
2227
|
+
numberingSystem?: string | undefined;
|
|
2228
|
+
timeZone?: string | undefined;
|
|
2229
|
+
weekday?: "long" | "short" | "narrow" | undefined;
|
|
2230
|
+
year?: "numeric" | "2-digit" | undefined;
|
|
2231
|
+
}, {
|
|
2232
|
+
calendar?: string | undefined;
|
|
2233
|
+
dateStyle?: "medium" | "full" | "long" | "short" | undefined;
|
|
2234
|
+
day?: "numeric" | "2-digit" | undefined;
|
|
2235
|
+
era?: "long" | "short" | "narrow" | undefined;
|
|
2236
|
+
month?: "long" | "short" | "numeric" | "2-digit" | "narrow" | undefined;
|
|
2237
|
+
numberingSystem?: string | undefined;
|
|
2238
|
+
timeZone?: string | undefined;
|
|
2239
|
+
weekday?: "long" | "short" | "narrow" | undefined;
|
|
2240
|
+
year?: "numeric" | "2-digit" | undefined;
|
|
2241
|
+
}>>>;
|
|
2203
2242
|
deployment: z.ZodPrefault<z.ZodPipe<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
2204
2243
|
kind: z.ZodLiteral<"cloudflare">;
|
|
2205
2244
|
options: z.ZodObject<{
|
|
@@ -2441,7 +2480,7 @@ export declare const blumeConfigSchema: z.ZodObject<{
|
|
|
2441
2480
|
tag: z.ZodOptional<z.ZodString>;
|
|
2442
2481
|
}, z.core.$strict>>>;
|
|
2443
2482
|
label: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
|
|
2444
|
-
path: z.ZodString
|
|
2483
|
+
path: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
2445
2484
|
}, z.core.$strict>>>;
|
|
2446
2485
|
}, z.core.$strict>>;
|
|
2447
2486
|
react: z.ZodPrefault<z.ZodObject<{
|
|
@@ -20,6 +20,11 @@ export interface GithubReleasesSourceOptions {
|
|
|
20
20
|
prereleases?: boolean;
|
|
21
21
|
/** Repository name. */
|
|
22
22
|
repo: string;
|
|
23
|
+
/**
|
|
24
|
+
* The site's own URL (`deployment.site`). A link in the notes back to it
|
|
25
|
+
* becomes root-relative, the way a page links to another page.
|
|
26
|
+
*/
|
|
27
|
+
site?: string;
|
|
23
28
|
}
|
|
24
29
|
/**
|
|
25
30
|
* GitHub Releases content source. Pulls a repo's releases from the REST API and
|
|
@@ -18,6 +18,15 @@ export interface InlineMarks {
|
|
|
18
18
|
* CommonMark rule that keeps the padding out of the rendered code).
|
|
19
19
|
*/
|
|
20
20
|
export declare const codeSpan: (code: string) => string;
|
|
21
|
+
/**
|
|
22
|
+
* A block's inline text, guarded where only the whole block can tell. Runs
|
|
23
|
+
* are escaped one at a time, but "import" ending one run and a space or code
|
|
24
|
+
* span opening the next form an MDX `import` statement only once they are
|
|
25
|
+
* joined, and whitespace the first runs put in front of a block turns it into
|
|
26
|
+
* an indented code block. Apply it to the joined text of a paragraph,
|
|
27
|
+
* heading, quote, or list item — never to code.
|
|
28
|
+
*/
|
|
29
|
+
export declare const guardBlockStart: (text: string) => string;
|
|
21
30
|
/**
|
|
22
31
|
* Wrap a text run in the Markdown for its marks. Code stays verbatim inside
|
|
23
32
|
* the backticks (an escape would render as a backslash); everything else is
|
|
@@ -26,7 +35,7 @@ export declare const codeSpan: (code: string) => string;
|
|
|
26
35
|
* routinely bold a word together with the space after it.
|
|
27
36
|
*/
|
|
28
37
|
export declare const renderInline: (text: string, marks: InlineMarks) => string;
|
|
29
|
-
/** A link or image destination as Markdown
|
|
38
|
+
/** A link or image destination as Markdown carries it verbatim. */
|
|
30
39
|
export declare const destination: (url: string) => string;
|
|
31
40
|
/**
|
|
32
41
|
* A Markdown link, or the label alone when the target is missing — or unsafe:
|
|
@@ -46,7 +55,10 @@ export declare const blockquote: (text: string) => string;
|
|
|
46
55
|
export declare const listItem: (marker: string, body: string) => string;
|
|
47
56
|
/** Indent every non-empty line, for a nested list hanging off an item. */
|
|
48
57
|
export declare const indent: (text: string, width: number) => string;
|
|
49
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* A fenced code block whose fence outruns any backtick run in the code,
|
|
60
|
+
* labeled with its language when that is one word a fence can carry.
|
|
61
|
+
*/
|
|
50
62
|
export declare const codeFence: (code: string, language?: string) => string;
|
|
51
63
|
/** A Markdown image; the alt is escaped so a `]` in a caption can't close it. */
|
|
52
64
|
export declare const image: (alt: string, url: string) => string;
|