blume 2.0.2 → 2.1.0
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/AGENTS.md +1 -0
- package/CHANGELOG.md +113 -0
- package/README.md +1 -1
- package/dist/cli/{chunk-6k4ftwze.js → chunk-0gz36akr.js} +18 -2
- package/dist/cli/{chunk-6k4ftwze.js.map → chunk-0gz36akr.js.map} +3 -3
- package/dist/cli/{chunk-zp79m0ts.js → chunk-1n228xqb.js} +2 -2
- package/dist/cli/{chunk-ddndchfr.js → chunk-2f3ndkpw.js} +57 -29
- package/dist/cli/chunk-2f3ndkpw.js.map +14 -0
- package/dist/cli/{chunk-fsmrqk8a.js → chunk-2f7n4qzt.js} +8 -2
- package/dist/cli/{chunk-fsmrqk8a.js.map → chunk-2f7n4qzt.js.map} +3 -3
- package/dist/cli/{chunk-ppzjqwx2.js → chunk-2n4ps1b3.js} +17 -18
- package/dist/cli/{chunk-ppzjqwx2.js.map → chunk-2n4ps1b3.js.map} +3 -3
- package/dist/cli/{chunk-5r8g91qn.js → chunk-43zcf4gz.js} +398 -159
- package/dist/cli/chunk-43zcf4gz.js.map +36 -0
- package/dist/cli/chunk-4ejxbzee.js +39 -0
- package/dist/cli/chunk-4ejxbzee.js.map +10 -0
- package/dist/cli/{chunk-hr8ne106.js → chunk-4h8z9vv5.js} +296 -77
- package/dist/cli/chunk-4h8z9vv5.js.map +16 -0
- package/dist/cli/{chunk-k7pj68a8.js → chunk-5cg2rzgf.js} +18 -16
- package/dist/cli/{chunk-k7pj68a8.js.map → chunk-5cg2rzgf.js.map} +2 -2
- package/dist/cli/{chunk-h2ez8dzb.js → chunk-5ffywsmb.js} +4 -4
- package/dist/cli/{chunk-g698a744.js → chunk-5wj2qwn2.js} +5 -5
- package/dist/cli/chunk-6bm0xpgd.js +18 -0
- package/dist/cli/chunk-6bm0xpgd.js.map +10 -0
- package/dist/cli/{chunk-3yce002v.js → chunk-713mngdq.js} +15 -8
- package/dist/cli/chunk-713mngdq.js.map +14 -0
- package/dist/cli/{chunk-91ws1n6j.js → chunk-9geymqns.js} +17 -15
- package/dist/cli/{chunk-91ws1n6j.js.map → chunk-9geymqns.js.map} +2 -2
- package/dist/cli/{chunk-6dtt0zfn.js → chunk-9xr4dgee.js} +27 -18
- package/dist/cli/chunk-9xr4dgee.js.map +10 -0
- package/dist/cli/{chunk-sqw4ekg1.js → chunk-amrb6hgh.js} +2 -2
- package/dist/cli/chunk-cm89scdv.js +443 -0
- package/dist/cli/chunk-cm89scdv.js.map +11 -0
- package/dist/cli/{chunk-wdrt2k2v.js → chunk-cmtcnh9f.js} +90 -26
- package/dist/cli/chunk-cmtcnh9f.js.map +10 -0
- package/dist/cli/chunk-cy5bm0j0.js +104 -0
- package/dist/cli/chunk-cy5bm0j0.js.map +11 -0
- package/dist/cli/{chunk-7mbqtmgb.js → chunk-e7vvk5ya.js} +21 -12
- package/dist/cli/chunk-e7vvk5ya.js.map +10 -0
- package/dist/cli/{chunk-qkb5a8sa.js → chunk-g2z9x01v.js} +6 -98
- package/dist/cli/chunk-g2z9x01v.js.map +10 -0
- package/dist/cli/{chunk-273ygyr4.js → chunk-ga0pf4aj.js} +7 -7
- package/dist/cli/{chunk-273ygyr4.js.map → chunk-ga0pf4aj.js.map} +3 -3
- package/dist/cli/{chunk-h7k3nq3v.js → chunk-gp84za0h.js} +2 -2
- package/dist/cli/{chunk-hqp2ajnh.js → chunk-h2a48yhd.js} +195 -73
- package/dist/cli/chunk-h2a48yhd.js.map +36 -0
- package/dist/cli/{chunk-pbg5a4s3.js → chunk-jnwj5kjj.js} +71 -47
- package/dist/cli/chunk-jnwj5kjj.js.map +19 -0
- package/dist/cli/chunk-kwrg63tm.js +31 -0
- package/dist/cli/chunk-kwrg63tm.js.map +10 -0
- package/dist/cli/{chunk-8g8ytmgx.js → chunk-nd1821sk.js} +21 -19
- package/dist/cli/{chunk-8g8ytmgx.js.map → chunk-nd1821sk.js.map} +2 -2
- package/dist/cli/{chunk-w4bxdvsa.js → chunk-ntv4qrt7.js} +17 -15
- package/dist/cli/{chunk-w4bxdvsa.js.map → chunk-ntv4qrt7.js.map} +2 -2
- package/dist/cli/{chunk-bfwp9vp6.js → chunk-p804f3pe.js} +7 -7
- package/dist/cli/{chunk-4e9b9ra6.js → chunk-py62fewh.js} +6 -6
- package/dist/cli/{chunk-4e9b9ra6.js.map → chunk-py62fewh.js.map} +1 -1
- package/dist/cli/chunk-q3wxxq39.js +126 -0
- package/dist/cli/chunk-q3wxxq39.js.map +11 -0
- package/dist/cli/{chunk-j85scx15.js → chunk-rekqz4qg.js} +142 -46
- package/dist/cli/chunk-rekqz4qg.js.map +10 -0
- package/dist/cli/{chunk-00gs3wqs.js → chunk-ta27feev.js} +1 -1
- package/dist/cli/{chunk-v6ya5kcb.js → chunk-xkz5xbtv.js} +4031 -1132
- package/dist/cli/chunk-xkz5xbtv.js.map +213 -0
- package/dist/cli/{chunk-bbnwccaz.js → chunk-y4ykbark.js} +2 -2
- package/dist/cli/{chunk-n1yg3tj3.js → chunk-y5h4r2y0.js} +6 -6
- package/dist/cli/{chunk-n1yg3tj3.js.map → chunk-y5h4r2y0.js.map} +3 -3
- package/dist/cli/{chunk-nfcyttvj.js → chunk-yj17vs39.js} +9 -9
- package/dist/cli/{chunk-nfcyttvj.js.map → chunk-yj17vs39.js.map} +1 -1
- package/dist/cli/{chunk-7vtckvaw.js → chunk-yxmk4pec.js} +16 -14
- package/dist/cli/{chunk-7vtckvaw.js.map → chunk-yxmk4pec.js.map} +2 -2
- package/dist/cli/{chunk-gs7r695n.js → chunk-zccbjcj0.js} +22 -8
- package/dist/cli/{chunk-gs7r695n.js.map → chunk-zccbjcj0.js.map} +3 -3
- package/dist/cli/{chunk-xh43dwgw.js → chunk-zf748avv.js} +415 -225
- package/dist/cli/chunk-zf748avv.js.map +37 -0
- package/dist/cli/{chunk-d1v5rhy0.js → chunk-zhvd6adm.js} +16 -14
- package/dist/cli/{chunk-d1v5rhy0.js.map → chunk-zhvd6adm.js.map} +2 -2
- package/dist/cli/index.js +28 -20
- package/dist/cli/index.js.map +5 -5
- package/dist/types/ai/agent-surface.d.ts +8 -7
- package/dist/types/ai/ai-catalog.d.ts +7 -0
- package/dist/types/ai/ask-context.d.ts +22 -0
- package/dist/types/ai/ask.d.ts +271 -58
- package/dist/types/ai/index.d.ts +2 -2
- package/dist/types/ai/link-headers.d.ts +8 -1
- package/dist/types/ai/openapi-components.d.ts +5 -2
- package/dist/types/ai/relative-links.d.ts +9 -7
- package/dist/types/ai/site-skill.d.ts +26 -0
- package/dist/types/ai/skills.d.ts +20 -1
- package/dist/types/ai/tar.d.ts +1 -3
- package/dist/types/analytics/index.d.ts +2 -0
- package/dist/types/analytics/one-dollar-stats.d.ts +48 -0
- package/dist/types/analytics/schema.d.ts +14 -0
- package/dist/types/astro/integration.d.ts +11 -2
- package/dist/types/captcha/hcaptcha.d.ts +27 -0
- package/dist/types/captcha/index.d.ts +28 -0
- package/dist/types/captcha/schema.d.ts +29 -0
- package/dist/types/captcha/turnstile.d.ts +28 -0
- package/dist/types/components/content/api-field.d.ts +59 -0
- package/dist/types/components/content/api-page.d.ts +95 -0
- package/dist/types/components/layout/nav-utils.d.ts +26 -0
- package/dist/types/components/openapi/helpers.d.ts +137 -0
- package/dist/types/components/openapi/security.d.ts +85 -0
- package/dist/types/consent/ethyca.d.ts +48 -0
- package/dist/types/consent/index.d.ts +37 -0
- package/dist/types/consent/native.d.ts +28 -0
- package/dist/types/consent/osano.d.ts +42 -0
- package/dist/types/consent/schema.d.ts +110 -0
- package/dist/types/core/base-path.d.ts +21 -7
- package/dist/types/core/config-input.d.ts +196 -27
- package/dist/types/core/data.d.ts +49 -4
- package/dist/types/core/directive-diagnostics.d.ts +12 -0
- package/dist/types/core/footer.d.ts +8 -0
- package/dist/types/core/heading-markers.d.ts +5 -7
- package/dist/types/core/i18n-ui.d.ts +86 -0
- package/dist/types/core/i18n.d.ts +2 -0
- package/dist/types/core/includes.d.ts +8 -2
- package/dist/types/core/last-modified.d.ts +10 -0
- package/dist/types/core/localizable.d.ts +7 -0
- package/dist/types/core/meta.d.ts +8 -0
- package/dist/types/core/page-modes.d.ts +29 -0
- package/dist/types/core/redirect-patterns.d.ts +144 -0
- package/dist/types/core/related.d.ts +40 -0
- package/dist/types/core/schema.d.ts +558 -56
- package/dist/types/core/sources/lower.d.ts +29 -16
- package/dist/types/core/sources/normalize.d.ts +13 -1
- package/dist/types/core/sources/read.d.ts +5 -0
- package/dist/types/core/sources/watch.d.ts +12 -5
- package/dist/types/core/standard-schema.d.ts +5 -0
- package/dist/types/core/types.d.ts +1 -1
- package/dist/types/core/variables.d.ts +42 -0
- package/dist/types/deploy/artifacts.d.ts +6 -4
- package/dist/types/deploy/headers.d.ts +5 -0
- package/dist/types/deploy/node-headers.d.ts +13 -2
- package/dist/types/deploy/platforms/cloudflare.d.ts +5 -0
- package/dist/types/deploy/platforms/netlify.d.ts +7 -0
- package/dist/types/deploy/platforms/types.d.ts +8 -0
- package/dist/types/deploy/platforms/vercel.d.ts +6 -0
- package/dist/types/deploy/redirects.d.ts +61 -22
- package/dist/types/deploy/vercel-negotiation.d.ts +9 -0
- package/dist/types/markdown/code-title.d.ts +17 -0
- package/dist/types/markdown/directives.d.ts +62 -0
- package/dist/types/markdown/features.d.ts +24 -2
- package/dist/types/markdown/mdast.d.ts +63 -0
- package/dist/types/narration/build.d.ts +70 -0
- package/dist/types/narration/provider.d.ts +26 -0
- package/dist/types/narration/script.d.ts +154 -0
- package/dist/types/openapi/asyncapi.d.ts +4 -2
- package/dist/types/openapi/model.d.ts +12 -6
- package/dist/types/openapi/overlay.d.ts +54 -0
- package/dist/types/openapi/parse.d.ts +13 -0
- package/dist/types/openapi/references.d.ts +14 -4
- package/dist/types/ratelimit/cloudflare.d.ts +39 -0
- package/dist/types/ratelimit/index.d.ts +27 -0
- package/dist/types/ratelimit/memory.d.ts +36 -0
- package/dist/types/ratelimit/schema.d.ts +111 -0
- package/dist/types/ratelimit/upstash.d.ts +21 -0
- package/dist/types/ratelimit/wrangler.d.ts +23 -0
- package/dist/types/reference/asyncapi.d.ts +10 -10
- package/dist/types/reference/graphql.d.ts +13 -10
- package/dist/types/reference/openapi.d.ts +33 -12
- package/dist/types/reference/options.d.ts +45 -5
- package/dist/types/reference/scalar.d.ts +13 -0
- package/dist/types/reference/schema.d.ts +60 -36
- package/dist/types/search/documents.d.ts +12 -1
- package/dist/types/search/orama-index.d.ts +4 -0
- package/dist/types/seo/metatags.d.ts +20 -0
- package/docs/02-deployment.mdx +44 -6
- package/docs/03-upgrading.mdx +4 -4
- package/docs/04-migrating.mdx +1 -1
- package/docs/08-faq.mdx +1 -1
- package/docs/advanced/changelog.mdx +2 -2
- package/docs/advanced/custom-pages.mdx +3 -3
- package/docs/advanced/skills.mdx +14 -0
- package/docs/cli/audit.mdx +38 -2
- package/docs/cli/evals.mdx +3 -3
- package/docs/cli/index.mdx +1 -0
- package/docs/cli/translate.mdx +3 -3
- package/docs/cli/version.mdx +1 -1
- package/docs/configuration/analytics.mdx +22 -1
- package/docs/configuration/assistant.mdx +188 -36
- package/docs/configuration/consent.mdx +100 -0
- package/docs/configuration/customization.mdx +6 -4
- package/docs/configuration/index.mdx +63 -5
- package/docs/configuration/meta.ts +3 -0
- package/docs/configuration/narration.mdx +119 -0
- package/docs/configuration/rate-limiting.mdx +69 -0
- package/docs/configuration/search.mdx +30 -2
- package/docs/configuration/theming.mdx +3 -1
- package/docs/content/components.mdx +107 -1
- package/docs/content/frontmatter.mdx +77 -1
- package/docs/content/i18n.mdx +40 -3
- package/docs/content/includes.mdx +16 -0
- package/docs/content/index.mdx +4 -2
- package/docs/content/islands.mdx +1 -1
- package/docs/content/meta.mdx +4 -1
- package/docs/content/meta.ts +1 -0
- package/docs/content/navigation.mdx +28 -6
- package/docs/content/sources/contentful.mdx +32 -0
- package/docs/content/sources/custom.mdx +39 -0
- package/docs/content/sources/github-releases.mdx +31 -0
- package/docs/content/sources/index.mdx +91 -0
- package/docs/content/sources/meta.ts +16 -0
- package/docs/content/sources/notion.mdx +32 -0
- package/docs/content/sources/obsidian.mdx +37 -0
- package/docs/content/sources/payload.mdx +30 -0
- package/docs/content/sources/remote-mdx.mdx +40 -0
- package/docs/content/sources/sanity.mdx +29 -0
- package/docs/content/sources/strapi.mdx +31 -0
- package/docs/content/syntax.mdx +81 -2
- package/docs/content/variables.mdx +41 -0
- package/docs/content/versioning.mdx +1 -1
- package/docs/discoverability/agent-discovery.mdx +30 -3
- package/docs/discoverability/index.mdx +3 -2
- package/docs/discoverability/llms-txt.mdx +1 -1
- package/docs/discoverability/markdown.mdx +2 -2
- package/docs/discoverability/metadata.mdx +17 -0
- package/docs/discoverability/open-graph.mdx +5 -3
- package/docs/discoverability/rss.mdx +1 -1
- package/docs/references/api-pages.mdx +74 -0
- package/docs/references/asyncapi.mdx +2 -2
- package/docs/references/graphql.mdx +3 -3
- package/docs/references/meta.ts +1 -1
- package/docs/references/openapi.mdx +106 -5
- package/docs/references/scalar.mdx +3 -1
- package/package.json +36 -1
- package/skills/blume/SKILL.md +3 -0
- package/skills/blume-migrate/SKILL.md +5 -5
- package/skills/blume-migrate/references/docusaurus.md +3 -3
- package/skills/blume-migrate/references/fumadocs.md +1 -1
- package/skills/blume-migrate/references/mintlify.md +37 -19
- package/skills/blume-migrate/references/nextra.md +3 -3
- package/skills/blume-migrate/references/starlight.md +2 -1
- package/skills/blume-migrate/scripts/mintlify-codemod.mjs +67 -16
- package/skills/blume-write-skill/SKILL.md +82 -0
- package/src/ai/agent-readability.ts +4 -3
- package/src/ai/agent-surface.ts +9 -7
- package/src/ai/ai-catalog.ts +12 -5
- package/src/ai/api/handlers.ts +2 -2
- package/src/ai/api/spec.ts +2 -2
- package/src/ai/api-catalog.ts +6 -2
- package/src/ai/ask-context.ts +73 -20
- package/src/ai/ask-data.ts +6 -0
- package/src/ai/ask-tools.ts +142 -0
- package/src/ai/ask.ts +354 -76
- package/src/ai/changelog-markdown.ts +2 -2
- package/src/ai/component-markdown.ts +75 -0
- package/src/ai/cors.ts +2 -0
- package/src/ai/index.ts +12 -0
- package/src/ai/link-headers.ts +14 -5
- package/src/ai/llms.ts +24 -9
- package/src/ai/markdown.ts +2 -1
- package/src/ai/mcp/data.ts +6 -0
- package/src/ai/mcp/discovery.ts +2 -2
- package/src/ai/mcp/query.ts +2 -2
- package/src/ai/mcp/server.ts +2 -2
- package/src/ai/openapi-components.ts +31 -9
- package/src/ai/relative-links.ts +42 -26
- package/src/ai/serializers.ts +2 -1
- package/src/ai/site-skill.ts +274 -0
- package/src/ai/skills.ts +49 -3
- package/src/ai/tar.ts +139 -12
- package/src/ai/write-skill.ts +97 -0
- package/src/analytics/head.ts +4 -0
- package/src/analytics/index.ts +5 -0
- package/src/analytics/one-dollar-stats.ts +86 -0
- package/src/analytics/schema.ts +2 -0
- package/src/astro/generate.ts +133 -19
- package/src/astro/include-hmr.ts +31 -12
- package/src/astro/include-refresh.ts +19 -8
- package/src/astro/index.ts +1 -0
- package/src/astro/integration.ts +143 -14
- package/src/astro/module-types.ts +6 -0
- package/src/astro/runtime-modules.ts +28 -13
- package/src/astro/templates.ts +364 -67
- package/src/astro/variables.ts +31 -0
- package/src/audit/catalog.ts +19 -0
- package/src/audit/checks/contrast.ts +183 -0
- package/src/audit/checks/i18n.ts +2 -3
- package/src/audit/checks/indexability.ts +2 -3
- package/src/audit/checks/links.ts +13 -13
- package/src/audit/checks/sitemap.ts +2 -3
- package/src/audit/graph.ts +3 -1
- package/src/audit/redirects.ts +46 -15
- package/src/audit/run.ts +14 -9
- package/src/audit/snapshot.ts +5 -0
- package/src/audit/types.ts +2 -1
- package/src/blume-modules.d.ts +7 -0
- package/src/captcha/client.ts +152 -0
- package/src/captcha/hcaptcha.ts +36 -0
- package/src/captcha/index.ts +28 -0
- package/src/captcha/schema.ts +32 -0
- package/src/captcha/turnstile.ts +38 -0
- package/src/captcha/verify.ts +71 -0
- package/src/cli/args.ts +32 -0
- package/src/cli/command-meta.ts +5 -0
- package/src/cli/commands/audit.ts +4 -1
- package/src/cli/commands/doctor.ts +25 -17
- package/src/cli/commands/eval.ts +19 -11
- package/src/cli/commands/skill.ts +96 -0
- package/src/cli/commands/translate.ts +9 -12
- package/src/cli/commands/validate.ts +3 -1
- package/src/cli/dev-lock.ts +157 -37
- package/src/cli/index.ts +5 -0
- package/src/cli/report-format.ts +11 -6
- package/src/cli/required-secrets.ts +71 -29
- package/src/components/BlumePage.astro +2 -0
- package/src/components/colors.ts +19 -0
- package/src/components/content/ApiEndpoint.astro +18 -0
- package/src/components/content/ApiField.astro +79 -0
- package/src/components/content/ApiPlayground.astro +62 -0
- package/src/components/content/ApiRail.astro +19 -0
- package/src/components/content/Badge.astro +5 -3
- package/src/components/content/Color.astro +1 -0
- package/src/components/content/Component.astro +2 -2
- package/src/components/content/FileTree.astro +1 -0
- package/src/components/content/GithubInfo.astro +1 -0
- package/src/components/content/Panel.astro +1 -0
- package/src/components/content/ParamField.astro +25 -0
- package/src/components/content/RequestExample.astro +17 -0
- package/src/components/content/ResponseExample.astro +17 -0
- package/src/components/content/ResponseField.astro +32 -0
- package/src/components/content/Step.astro +1 -0
- package/src/components/content/Tab.astro +0 -1
- package/src/components/content/Tabs.astro +4 -0
- package/src/components/content/Tile.astro +1 -0
- package/src/components/content/Tooltip.astro +1 -0
- package/src/components/content/Tree.astro +1 -0
- package/src/components/content/TypeTable.astro +4 -1
- package/src/components/content/View.astro +21 -0
- package/src/components/content/ViewSwitcher.astro +168 -0
- package/src/components/content/api-field.ts +100 -0
- package/src/components/content/api-page.ts +224 -0
- package/src/components/content/badge-color.ts +5 -2
- package/src/components/content/base-href.ts +13 -36
- package/src/components/content/view-switcher.ts +71 -0
- package/src/components/index.ts +2 -0
- package/src/components/islands/Assistant.astro +10 -1
- package/src/components/islands/assistant.tsx +125 -18
- package/src/components/islands/base-path.ts +47 -10
- package/src/components/islands/code-question.ts +62 -0
- package/src/components/islands/hooks.ts +145 -40
- package/src/components/islands/support-link.ts +68 -0
- package/src/components/islands/webmcp.ts +4 -2
- package/src/components/layout/Analytics.astro +11 -2
- package/src/components/layout/Banner.astro +14 -10
- package/src/components/layout/Breadcrumbs.astro +11 -4
- package/src/components/layout/ConsentBanner.astro +62 -0
- package/src/components/layout/ConsentHead.astro +38 -0
- package/src/components/layout/Directory.astro +94 -0
- package/src/components/layout/DiscoveryLinks.astro +9 -5
- package/src/components/layout/DrawerSwitchers.astro +51 -0
- package/src/components/layout/Empty.astro +2 -2
- package/src/components/layout/Header.astro +124 -82
- package/src/components/layout/LanguageSwitcher.astro +50 -17
- package/src/components/layout/NarrationPlayer.astro +1085 -0
- package/src/components/layout/NavSelector.astro +35 -9
- package/src/components/layout/NavTabMenu.astro +3 -3
- package/src/components/layout/NavTree.astro +16 -6
- package/src/components/layout/PageActions.astro +4 -3
- package/src/components/layout/PageFeedback.astro +54 -49
- package/src/components/layout/PageLayout.astro +78 -9
- package/src/components/layout/Pagination.astro +3 -3
- package/src/components/layout/ReferenceLayout.astro +17 -6
- package/src/components/layout/RelatedPages.astro +42 -0
- package/src/components/layout/RootLayout.astro +313 -50
- package/src/components/layout/Search.astro +64 -30
- package/src/components/layout/SiteFooter.astro +124 -0
- package/src/components/layout/SiteMetatags.astro +16 -0
- package/src/components/layout/VersionBanner.astro +2 -2
- package/src/components/layout/analytics-client.ts +12 -0
- package/src/components/layout/consent/native.ts +79 -0
- package/src/components/layout/consent/types.ts +37 -0
- package/src/components/layout/footer-links.ts +53 -0
- package/src/components/layout/footer-socials.ts +87 -0
- package/src/components/layout/locale-redirect.ts +107 -0
- package/src/components/layout/nav-utils.ts +83 -0
- package/src/components/layout/page-feedback.ts +96 -0
- package/src/components/layout/search/analytics.ts +98 -0
- package/src/components/layout/search/flexsearch.ts +17 -5
- package/src/components/layout/search/orama-cloud.ts +26 -14
- package/src/components/layout/search/types.ts +20 -0
- package/src/components/layout/search/typesense.ts +5 -1
- package/src/components/layout/toc-active.ts +41 -0
- package/src/components/layout/toc-element.ts +8 -14
- package/src/components/openapi/ApiTagOperations.astro +2 -2
- package/src/components/openapi/AsyncApiOperation.astro +7 -4
- package/src/components/openapi/GraphqlChip.astro +2 -2
- package/src/components/openapi/Operation.astro +163 -13
- package/src/components/openapi/Playground.astro +4 -4
- package/src/components/openapi/RequestBody.astro +6 -4
- package/src/components/openapi/RequestPanel.astro +63 -8
- package/src/components/openapi/Responses.astro +6 -4
- package/src/components/openapi/SchemaTable.astro +7 -0
- package/src/components/openapi/async-snippets.ts +4 -4
- package/src/components/openapi/async.ts +38 -6
- package/src/components/openapi/code-samples.ts +97 -0
- package/src/components/openapi/helpers.ts +19 -9
- package/src/components/openapi/message-composer.ts +6 -1
- package/src/components/openapi/message.ts +17 -2
- package/src/components/openapi/operation-model.ts +81 -11
- package/src/components/openapi/panel.ts +4 -2
- package/src/components/openapi/param-style.ts +181 -0
- package/src/components/openapi/playground-client.ts +73 -16
- package/src/components/openapi/request.ts +190 -26
- package/src/components/openapi/schema-tree.ts +30 -24
- package/src/components/openapi/security.ts +6 -3
- package/src/components/openapi/snippets.ts +953 -13
- package/src/components/openapi/ws-client.ts +18 -2
- package/src/components/props.ts +6 -0
- package/src/consent/client.ts +95 -0
- package/src/consent/clients.ts +19 -0
- package/src/consent/ethyca.ts +71 -0
- package/src/consent/head.ts +24 -0
- package/src/consent/index.ts +37 -0
- package/src/consent/init.ts +29 -0
- package/src/consent/native.ts +36 -0
- package/src/consent/osano.ts +59 -0
- package/src/consent/schema.ts +30 -0
- package/src/core/base-path.ts +62 -16
- package/src/core/builtin-tags.ts +5 -0
- package/src/core/client-address.ts +19 -0
- package/src/core/config-input.ts +203 -27
- package/src/core/data.ts +44 -4
- package/src/core/diagnostics.ts +5 -2
- package/src/core/directive-diagnostics.ts +99 -0
- package/src/core/footer.ts +26 -0
- package/src/core/frontmatter.ts +21 -18
- package/src/core/graph.ts +39 -36
- package/src/core/heading-markers.ts +5 -18
- package/src/core/i18n-ui.ts +82 -2
- package/src/core/i18n.ts +31 -3
- package/src/core/includes.ts +20 -3
- package/src/core/last-modified.ts +25 -3
- package/src/core/links.ts +16 -2
- package/src/core/locale-links.ts +5 -1
- package/src/core/localizable.ts +26 -0
- package/src/core/meta.ts +33 -19
- package/src/core/navigation.ts +71 -20
- package/src/core/page-modes.ts +56 -0
- package/src/core/project-graph.ts +138 -10
- package/src/core/redirect-patterns.ts +491 -0
- package/src/core/related.ts +131 -0
- package/src/core/schema.ts +342 -68
- package/src/core/sources/contentful-rich-text.ts +27 -20
- package/src/core/sources/filesystem.ts +20 -2
- package/src/core/sources/github-releases.ts +25 -6
- package/src/core/sources/lexical.ts +23 -18
- package/src/core/sources/lower.ts +201 -34
- package/src/core/sources/mdx-remote.ts +51 -16
- package/src/core/sources/normalize.ts +327 -91
- package/src/core/sources/notion.ts +52 -25
- package/src/core/sources/obsidian.ts +23 -6
- package/src/core/sources/portable-text.ts +38 -21
- package/src/core/sources/read.ts +8 -3
- package/src/core/sources/strapi-blocks.ts +20 -16
- package/src/core/sources/watch.ts +20 -7
- package/src/core/standard-schema.ts +10 -6
- package/src/core/types.ts +1 -1
- package/src/core/ui-packs/ar.ts +43 -0
- package/src/core/ui-packs/bg.ts +45 -0
- package/src/core/ui-packs/bn.ts +43 -0
- package/src/core/ui-packs/ca.ts +46 -0
- package/src/core/ui-packs/cs.ts +44 -0
- package/src/core/ui-packs/da.ts +45 -0
- package/src/core/ui-packs/de.ts +46 -0
- package/src/core/ui-packs/el.ts +45 -0
- package/src/core/ui-packs/es.ts +46 -0
- package/src/core/ui-packs/fa.ts +45 -0
- package/src/core/ui-packs/fi.ts +45 -0
- package/src/core/ui-packs/fr.ts +46 -0
- package/src/core/ui-packs/he.ts +43 -0
- package/src/core/ui-packs/hi.ts +44 -0
- package/src/core/ui-packs/hr.ts +45 -0
- package/src/core/ui-packs/hu.ts +44 -0
- package/src/core/ui-packs/id.ts +45 -0
- package/src/core/ui-packs/it.ts +45 -0
- package/src/core/ui-packs/ja.ts +45 -0
- package/src/core/ui-packs/ko.ts +44 -0
- package/src/core/ui-packs/nl.ts +46 -0
- package/src/core/ui-packs/no.ts +44 -0
- package/src/core/ui-packs/pl.ts +45 -0
- package/src/core/ui-packs/pt-br.ts +46 -0
- package/src/core/ui-packs/pt.ts +45 -0
- package/src/core/ui-packs/ro.ts +45 -0
- package/src/core/ui-packs/ru.ts +45 -0
- package/src/core/ui-packs/sk.ts +44 -0
- package/src/core/ui-packs/sr.ts +45 -0
- package/src/core/ui-packs/sv.ts +44 -0
- package/src/core/ui-packs/th.ts +43 -0
- package/src/core/ui-packs/tr.ts +45 -0
- package/src/core/ui-packs/uk.ts +45 -0
- package/src/core/ui-packs/vi.ts +45 -0
- package/src/core/ui-packs/zh-tw.ts +43 -0
- package/src/core/ui-packs/zh.ts +43 -0
- package/src/core/variables.ts +103 -0
- package/src/core/version-cut.ts +52 -15
- package/src/deploy/artifacts.ts +104 -14
- package/src/deploy/cloudflare-negotiation.ts +39 -17
- package/src/deploy/headers.ts +10 -5
- package/src/deploy/node-headers.ts +64 -10
- package/src/deploy/platforms/cloudflare.ts +44 -3
- package/src/deploy/platforms/netlify.ts +34 -1
- package/src/deploy/platforms/node.ts +1 -0
- package/src/deploy/platforms/static.ts +1 -0
- package/src/deploy/platforms/types.ts +8 -0
- package/src/deploy/platforms/vercel.ts +38 -2
- package/src/deploy/redirects.ts +139 -36
- package/src/deploy/robots.ts +2 -2
- package/src/deploy/rss.ts +4 -3
- package/src/deploy/sitemap.ts +7 -5
- package/src/deploy/vercel-negotiation.ts +36 -0
- package/src/markdown/api-rail.ts +259 -0
- package/src/markdown/base-links.ts +34 -36
- package/src/markdown/code-title.ts +35 -9
- package/src/markdown/directives.ts +242 -36
- package/src/markdown/features.ts +20 -2
- package/src/markdown/fence-meta.ts +2 -0
- package/src/markdown/include.ts +11 -1
- package/src/markdown/index.ts +35 -11
- package/src/markdown/math.ts +4 -4
- package/src/markdown/mdast.ts +5 -2
- package/src/markdown/relative-links.ts +12 -4
- package/src/markdown/variables.ts +56 -0
- package/src/markdown/views.ts +82 -0
- package/src/narration/build.ts +412 -0
- package/src/narration/player.ts +249 -0
- package/src/narration/provider.ts +29 -0
- package/src/narration/script.ts +592 -0
- package/src/og/card.ts +136 -11
- package/src/og/derive.ts +41 -31
- package/src/og/index.ts +1 -0
- package/src/openapi/asyncapi.ts +4 -2
- package/src/openapi/model.ts +77 -36
- package/src/openapi/overlay.ts +256 -0
- package/src/openapi/parse.ts +55 -2
- package/src/openapi/proxy.ts +63 -10
- package/src/openapi/references.ts +21 -5
- package/src/openapi/render-mdx.ts +46 -3
- package/src/openapi/scalar.ts +40 -6
- package/src/openapi/source.ts +1 -1
- package/src/ratelimit/cloudflare.ts +54 -0
- package/src/ratelimit/index.ts +30 -0
- package/src/ratelimit/memory.ts +45 -0
- package/src/ratelimit/runtime.ts +229 -0
- package/src/ratelimit/schema.ts +28 -0
- package/src/ratelimit/upstash.ts +30 -0
- package/src/ratelimit/wrangler.ts +70 -0
- package/src/reference/asyncapi.ts +2 -2
- package/src/reference/graphql.ts +5 -2
- package/src/reference/openapi.ts +21 -7
- package/src/reference/options.ts +51 -7
- package/src/reference/scalar.ts +33 -8
- package/src/registry/eject.ts +201 -28
- package/src/registry/registry.ts +7 -0
- package/src/search/adapters/version-scope.ts +30 -0
- package/src/search/documents.ts +93 -28
- package/src/search/orama-index.ts +28 -3
- package/src/search/pagefind-ranking.ts +39 -0
- package/src/search/popular.ts +2 -1
- package/src/search/sync/algolia.ts +15 -4
- package/src/search/sync/orama-cloud.ts +3 -0
- package/src/search/sync/typesense.ts +5 -0
- package/src/seo/jsonld.ts +7 -3
- package/src/seo/metatags.ts +67 -0
- package/src/theme/chrome-icons.ts +1 -0
- package/src/theme/color.ts +500 -0
- package/src/theme/entry.ts +56 -3
- package/src/theme/palette.ts +121 -45
- package/src/translate/meta.ts +68 -24
- package/src/translate/prompts.ts +1 -0
- package/src/translate/run.ts +3 -3
- package/src/translate/validate.ts +12 -3
- package/src/translate/work-list.ts +56 -17
- package/src/upgrade/upgrade.ts +4 -171
- package/dist/cli/chunk-3yce002v.js.map +0 -14
- package/dist/cli/chunk-5r8g91qn.js.map +0 -34
- package/dist/cli/chunk-6dtt0zfn.js.map +0 -10
- package/dist/cli/chunk-7mbqtmgb.js.map +0 -10
- package/dist/cli/chunk-ddndchfr.js.map +0 -14
- package/dist/cli/chunk-esh98wmb.js +0 -23
- package/dist/cli/chunk-esh98wmb.js.map +0 -10
- package/dist/cli/chunk-hqp2ajnh.js.map +0 -35
- package/dist/cli/chunk-hr8ne106.js.map +0 -13
- package/dist/cli/chunk-j85scx15.js.map +0 -10
- package/dist/cli/chunk-mqc662a6.js +0 -75
- package/dist/cli/chunk-mqc662a6.js.map +0 -11
- package/dist/cli/chunk-pbg5a4s3.js.map +0 -19
- package/dist/cli/chunk-qkb5a8sa.js.map +0 -10
- package/dist/cli/chunk-v6ya5kcb.js.map +0 -189
- package/dist/cli/chunk-wdrt2k2v.js.map +0 -10
- package/dist/cli/chunk-xh43dwgw.js.map +0 -36
- package/docs/content/sources.mdx +0 -338
- /package/dist/cli/{chunk-zp79m0ts.js.map → chunk-1n228xqb.js.map} +0 -0
- /package/dist/cli/{chunk-h2ez8dzb.js.map → chunk-5ffywsmb.js.map} +0 -0
- /package/dist/cli/{chunk-g698a744.js.map → chunk-5wj2qwn2.js.map} +0 -0
- /package/dist/cli/{chunk-sqw4ekg1.js.map → chunk-amrb6hgh.js.map} +0 -0
- /package/dist/cli/{chunk-h7k3nq3v.js.map → chunk-gp84za0h.js.map} +0 -0
- /package/dist/cli/{chunk-bfwp9vp6.js.map → chunk-p804f3pe.js.map} +0 -0
- /package/dist/cli/{chunk-00gs3wqs.js.map → chunk-ta27feev.js.map} +0 -0
- /package/dist/cli/{chunk-bbnwccaz.js.map → chunk-y4ykbark.js.map} +0 -0
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { CaptchaSettings } from "../captcha/schema.ts";
|
|
2
|
+
import type { EndpointAuth } from "../components/content/api-page.ts";
|
|
1
3
|
import type { SearchAdapterKind } from "../search/adapters/registry.ts";
|
|
2
4
|
import type { StructuredDataIdentity } from "../seo/jsonld.ts";
|
|
3
5
|
import type { FontHead } from "../theme/fonts.ts";
|
|
4
6
|
import type { UIStrings } from "./i18n-ui.ts";
|
|
5
|
-
import type { ResolvedConfig } from "./schema.ts";
|
|
7
|
+
import type { LocalizableLabel, ResolvedConfig } from "./schema.ts";
|
|
6
8
|
import type { Navigation, RouteAlternate, VersionAlternate } from "./types.ts";
|
|
7
9
|
/**
|
|
8
10
|
* The shape of the `blume:data` virtual module — the resolved, serializable
|
|
@@ -47,12 +49,16 @@ export interface BlumeFavicon {
|
|
|
47
49
|
type?: string;
|
|
48
50
|
};
|
|
49
51
|
}
|
|
50
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Announcement banner, normalized from its config (string shorthand or
|
|
54
|
+
* object). `content` and the link's `text` may be per-locale maps, resolved
|
|
55
|
+
* when the banner renders (see `core/localizable.ts`).
|
|
56
|
+
*/
|
|
51
57
|
export interface BlumeBanner {
|
|
52
|
-
content:
|
|
58
|
+
content: LocalizableLabel;
|
|
53
59
|
link?: {
|
|
54
60
|
href: string;
|
|
55
|
-
text:
|
|
61
|
+
text: LocalizableLabel;
|
|
56
62
|
};
|
|
57
63
|
dismissible: boolean;
|
|
58
64
|
/** Dismissal key: the configured id, else the content itself. */
|
|
@@ -76,6 +82,8 @@ export interface BlumeDataI18n {
|
|
|
76
82
|
fallbackLocale: string | null;
|
|
77
83
|
hideDefaultLocalePrefix: boolean;
|
|
78
84
|
locales: BlumeDataLocale[];
|
|
85
|
+
/** Send visitors from the default home page to their browser's language. */
|
|
86
|
+
routeByBrowserLanguage: boolean;
|
|
79
87
|
}
|
|
80
88
|
/** A single content route, with the metadata custom pages can read. */
|
|
81
89
|
export interface BlumeRoute {
|
|
@@ -127,9 +135,26 @@ export interface BlumeDataConfig {
|
|
|
127
135
|
appleIcon: BlumeFavicon | null;
|
|
128
136
|
/** The assistant's empty-state suggestions, or `null` when the assistant is off. */
|
|
129
137
|
assistant: {
|
|
138
|
+
/** The bot check's public settings, or `null` without one. */
|
|
139
|
+
captcha: CaptchaSettings | null;
|
|
130
140
|
endpoint: string | null;
|
|
131
141
|
suggestions: NonNullable<ResolvedConfig["ai"]["assistant"]>["suggestions"];
|
|
142
|
+
/** The Contact support link (`ai.assistant.support`), or `null`. */
|
|
143
|
+
support: string | null;
|
|
132
144
|
} | null;
|
|
145
|
+
/**
|
|
146
|
+
* Defaults for hand-written endpoint pages (`api` frontmatter): the server a
|
|
147
|
+
* path joins, the default auth, and the playground, its `proxy` resolved to
|
|
148
|
+
* the URL sends go through (the built-in route under `basePath`) or `false`.
|
|
149
|
+
*/
|
|
150
|
+
api: {
|
|
151
|
+
auth?: EndpointAuth;
|
|
152
|
+
playground: {
|
|
153
|
+
enabled: boolean;
|
|
154
|
+
proxy: string | false;
|
|
155
|
+
};
|
|
156
|
+
server?: string;
|
|
157
|
+
};
|
|
133
158
|
banner: BlumeBanner | null;
|
|
134
159
|
/** Site-wide route mount point, normalized to `""` or `/seg` (see config). */
|
|
135
160
|
basePath: string;
|
|
@@ -137,6 +162,11 @@ export interface BlumeDataConfig {
|
|
|
137
162
|
codeThemes: ResolvedConfig["markdown"]["code"]["theme"];
|
|
138
163
|
/** `markdown.code.wrap`: wrap long code lines instead of scrolling. */
|
|
139
164
|
codeWrap: boolean;
|
|
165
|
+
/**
|
|
166
|
+
* The consent adapter's descriptor, or `null` without one. When set, the
|
|
167
|
+
* layouts hold analytics until the reader allows it.
|
|
168
|
+
*/
|
|
169
|
+
consent: ResolvedConfig["consent"];
|
|
140
170
|
/** `dateFormat`: `Intl.DateTimeFormat` options for the date stamps. */
|
|
141
171
|
dateFormat: ResolvedConfig["dateFormat"];
|
|
142
172
|
description: string | undefined;
|
|
@@ -159,7 +189,12 @@ export interface BlumeDataConfig {
|
|
|
159
189
|
sitemap: boolean;
|
|
160
190
|
};
|
|
161
191
|
favicon: BlumeFavicon;
|
|
192
|
+
/** Whether pages end with the "Was this page helpful?" rating. */
|
|
162
193
|
feedback: boolean;
|
|
194
|
+
/** Whether the rating asks for a written comment after it (`feedback.comments`). */
|
|
195
|
+
feedbackComments: boolean;
|
|
196
|
+
/** `footer`: social profile icons and link columns, or `null` when unset. */
|
|
197
|
+
footer: ResolvedConfig["footer"] | null;
|
|
163
198
|
/**
|
|
164
199
|
* Repo coordinates for content components that address the API or build
|
|
165
200
|
* their own repo links (`<GithubInfo>`, the OG card's footer slug), carrying
|
|
@@ -187,6 +222,16 @@ export interface BlumeDataConfig {
|
|
|
187
222
|
name: string;
|
|
188
223
|
route: string;
|
|
189
224
|
} | null;
|
|
225
|
+
/** `seo.metatags`: the site's own tags for every page's head, or `null`. */
|
|
226
|
+
metatags: Record<string, string> | null;
|
|
227
|
+
/**
|
|
228
|
+
* "Listen to this page": `generated` when a `narration.provider` makes
|
|
229
|
+
* `blume build` write audio clips the player should look for, else the
|
|
230
|
+
* player reads with browser voices. `null` when narration is off.
|
|
231
|
+
*/
|
|
232
|
+
narration: {
|
|
233
|
+
generated: boolean;
|
|
234
|
+
} | null;
|
|
190
235
|
/**
|
|
191
236
|
* Open Graph image generation. Card fonts are baked into the generated OG
|
|
192
237
|
* endpoint (they can carry absolute build-machine paths) and deliberately
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SourceEntry } from "./sources/types.ts";
|
|
2
|
+
import type { Diagnostic } from "./types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* Warn about each `:::name` container in an `.mdx` entry that isn't a callout.
|
|
5
|
+
* The page keeps its content — the body renders between the literal `:::`
|
|
6
|
+
* lines (see `markdown/directives.ts`) — but a typo like `:::warnig`, or a
|
|
7
|
+
* `:::details` carried over from another docs tool, should read as the
|
|
8
|
+
* mistake it is rather than as a finished page. Lines point into the file
|
|
9
|
+
* the author wrote, a partial's own file for a container an `<include>`
|
|
10
|
+
* brought in.
|
|
11
|
+
*/
|
|
12
|
+
export declare const unknownDirectiveDiagnostics: (entry: SourceEntry, sourceName: string) => Diagnostic[];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The social platforms `footer.socials` links to, each shown by its brand
|
|
3
|
+
* icon: Mintlify's set, without its aliases (`twitter` and `x-twitter` are
|
|
4
|
+
* `x`, `earth-americas` is `website`).
|
|
5
|
+
*/
|
|
6
|
+
export declare const FOOTER_SOCIALS: readonly ["bluesky", "discord", "facebook", "github", "hacker-news", "instagram", "linkedin", "medium", "podcast", "reddit", "slack", "telegram", "threads", "website", "x", "youtube"];
|
|
7
|
+
/** A platform `footer.socials` links to. */
|
|
8
|
+
export type FooterSocial = (typeof FOOTER_SOCIALS)[number];
|
|
@@ -44,11 +44,9 @@ export interface HeadingMarkers {
|
|
|
44
44
|
* the heading count (mid-text brackets are ordinary prose); when a marker kind
|
|
45
45
|
* repeats, the last one written wins.
|
|
46
46
|
*
|
|
47
|
-
*
|
|
48
|
-
* bracket
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* The render-time hast plugin never passes it (resolved links are already
|
|
52
|
-
* elements by the time it runs); the raw-source scanner does.
|
|
47
|
+
* Callers pass the heading's trailing text node after a Markdown parse, so a
|
|
48
|
+
* bracket that a link-reference definition turns into a CommonMark shortcut
|
|
49
|
+
* link (`[toc]` with a `[toc]: …` definition) is already an element there and
|
|
50
|
+
* never reaches this parse.
|
|
53
51
|
*/
|
|
54
|
-
export declare const parseHeadingMarkers: (text: string
|
|
52
|
+
export declare const parseHeadingMarkers: (text: string) => HeadingMarkers;
|
|
@@ -11,6 +11,7 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
11
11
|
actions: z.ZodPrefault<z.ZodObject<{
|
|
12
12
|
addToCursor: z.ZodDefault<z.ZodString>;
|
|
13
13
|
addToVscode: z.ZodDefault<z.ZodString>;
|
|
14
|
+
askAboutCode: z.ZodDefault<z.ZodString>;
|
|
14
15
|
connectMcp: z.ZodDefault<z.ZodString>;
|
|
15
16
|
copied: z.ZodDefault<z.ZodString>;
|
|
16
17
|
copyClaudeCode: z.ZodDefault<z.ZodString>;
|
|
@@ -36,11 +37,18 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
36
37
|
copy: z.ZodDefault<z.ZodString>;
|
|
37
38
|
empty: z.ZodDefault<z.ZodString>;
|
|
38
39
|
error: z.ZodDefault<z.ZodString>;
|
|
40
|
+
explainCode: z.ZodDefault<z.ZodString>;
|
|
39
41
|
label: z.ZodDefault<z.ZodString>;
|
|
42
|
+
open: z.ZodDefault<z.ZodString>;
|
|
40
43
|
placeholder: z.ZodDefault<z.ZodString>;
|
|
44
|
+
rateLimited: z.ZodDefault<z.ZodString>;
|
|
45
|
+
removeCode: z.ZodDefault<z.ZodString>;
|
|
41
46
|
send: z.ZodDefault<z.ZodString>;
|
|
47
|
+
support: z.ZodDefault<z.ZodString>;
|
|
48
|
+
supportSubject: z.ZodDefault<z.ZodString>;
|
|
42
49
|
tip: z.ZodDefault<z.ZodString>;
|
|
43
50
|
title: z.ZodDefault<z.ZodString>;
|
|
51
|
+
verifyFailed: z.ZodDefault<z.ZodString>;
|
|
44
52
|
you: z.ZodDefault<z.ZodString>;
|
|
45
53
|
}, z.core.$strip>>;
|
|
46
54
|
banner: z.ZodPrefault<z.ZodObject<{
|
|
@@ -50,6 +58,14 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
50
58
|
description: z.ZodDefault<z.ZodString>;
|
|
51
59
|
title: z.ZodDefault<z.ZodString>;
|
|
52
60
|
}, z.core.$strip>>;
|
|
61
|
+
consent: z.ZodPrefault<z.ZodObject<{
|
|
62
|
+
accept: z.ZodDefault<z.ZodString>;
|
|
63
|
+
decline: z.ZodDefault<z.ZodString>;
|
|
64
|
+
label: z.ZodDefault<z.ZodString>;
|
|
65
|
+
message: z.ZodDefault<z.ZodString>;
|
|
66
|
+
policy: z.ZodDefault<z.ZodString>;
|
|
67
|
+
settings: z.ZodDefault<z.ZodString>;
|
|
68
|
+
}, z.core.$strip>>;
|
|
53
69
|
content: z.ZodPrefault<z.ZodObject<{
|
|
54
70
|
code: z.ZodDefault<z.ZodString>;
|
|
55
71
|
copyColor: z.ZodDefault<z.ZodString>;
|
|
@@ -60,6 +76,8 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
60
76
|
preview: z.ZodDefault<z.ZodString>;
|
|
61
77
|
prop: z.ZodDefault<z.ZodString>;
|
|
62
78
|
selectTab: z.ZodDefault<z.ZodString>;
|
|
79
|
+
selectView: z.ZodDefault<z.ZodString>;
|
|
80
|
+
showLess: z.ZodDefault<z.ZodString>;
|
|
63
81
|
showMore: z.ZodDefault<z.ZodString>;
|
|
64
82
|
stars: z.ZodDefault<z.ZodString>;
|
|
65
83
|
tab: z.ZodDefault<z.ZodString>;
|
|
@@ -67,8 +85,10 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
67
85
|
update: z.ZodDefault<z.ZodString>;
|
|
68
86
|
}, z.core.$strip>>;
|
|
69
87
|
feedback: z.ZodPrefault<z.ZodObject<{
|
|
88
|
+
comment: z.ZodDefault<z.ZodString>;
|
|
70
89
|
no: z.ZodDefault<z.ZodString>;
|
|
71
90
|
question: z.ZodDefault<z.ZodString>;
|
|
91
|
+
send: z.ZodDefault<z.ZodString>;
|
|
72
92
|
thanks: z.ZodDefault<z.ZodString>;
|
|
73
93
|
yes: z.ZodDefault<z.ZodString>;
|
|
74
94
|
}, z.core.$strip>>;
|
|
@@ -76,6 +96,28 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
76
96
|
label: z.ZodDefault<z.ZodString>;
|
|
77
97
|
untranslated: z.ZodDefault<z.ZodString>;
|
|
78
98
|
}, z.core.$strip>>;
|
|
99
|
+
narration: z.ZodPrefault<z.ZodObject<{
|
|
100
|
+
cueDanger: z.ZodDefault<z.ZodString>;
|
|
101
|
+
cueInfo: z.ZodDefault<z.ZodString>;
|
|
102
|
+
cueNote: z.ZodDefault<z.ZodString>;
|
|
103
|
+
cueSection: z.ZodDefault<z.ZodString>;
|
|
104
|
+
cueStep: z.ZodDefault<z.ZodString>;
|
|
105
|
+
cueSuccess: z.ZodDefault<z.ZodString>;
|
|
106
|
+
cueTab: z.ZodDefault<z.ZodString>;
|
|
107
|
+
cueTip: z.ZodDefault<z.ZodString>;
|
|
108
|
+
cueWarning: z.ZodDefault<z.ZodString>;
|
|
109
|
+
error: z.ZodDefault<z.ZodString>;
|
|
110
|
+
follow: z.ZodDefault<z.ZodString>;
|
|
111
|
+
label: z.ZodDefault<z.ZodString>;
|
|
112
|
+
minutes: z.ZodDefault<z.ZodString>;
|
|
113
|
+
next: z.ZodDefault<z.ZodString>;
|
|
114
|
+
pause: z.ZodDefault<z.ZodString>;
|
|
115
|
+
play: z.ZodDefault<z.ZodString>;
|
|
116
|
+
previous: z.ZodDefault<z.ZodString>;
|
|
117
|
+
progress: z.ZodDefault<z.ZodString>;
|
|
118
|
+
speed: z.ZodDefault<z.ZodString>;
|
|
119
|
+
stop: z.ZodDefault<z.ZodString>;
|
|
120
|
+
}, z.core.$strip>>;
|
|
79
121
|
nav: z.ZodPrefault<z.ZodObject<{
|
|
80
122
|
back: z.ZodDefault<z.ZodString>;
|
|
81
123
|
breadcrumb: z.ZodDefault<z.ZodString>;
|
|
@@ -104,6 +146,7 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
104
146
|
next: z.ZodDefault<z.ZodString>;
|
|
105
147
|
pagination: z.ZodDefault<z.ZodString>;
|
|
106
148
|
previous: z.ZodDefault<z.ZodString>;
|
|
149
|
+
related: z.ZodDefault<z.ZodString>;
|
|
107
150
|
skipToContent: z.ZodDefault<z.ZodString>;
|
|
108
151
|
}, z.core.$strip>>;
|
|
109
152
|
search: z.ZodPrefault<z.ZodObject<{
|
|
@@ -139,6 +182,7 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
139
182
|
actions: z.ZodPrefault<z.ZodObject<{
|
|
140
183
|
addToCursor: z.ZodDefault<z.ZodString>;
|
|
141
184
|
addToVscode: z.ZodDefault<z.ZodString>;
|
|
185
|
+
askAboutCode: z.ZodDefault<z.ZodString>;
|
|
142
186
|
connectMcp: z.ZodDefault<z.ZodString>;
|
|
143
187
|
copied: z.ZodDefault<z.ZodString>;
|
|
144
188
|
copyClaudeCode: z.ZodDefault<z.ZodString>;
|
|
@@ -164,11 +208,18 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
164
208
|
copy: z.ZodDefault<z.ZodString>;
|
|
165
209
|
empty: z.ZodDefault<z.ZodString>;
|
|
166
210
|
error: z.ZodDefault<z.ZodString>;
|
|
211
|
+
explainCode: z.ZodDefault<z.ZodString>;
|
|
167
212
|
label: z.ZodDefault<z.ZodString>;
|
|
213
|
+
open: z.ZodDefault<z.ZodString>;
|
|
168
214
|
placeholder: z.ZodDefault<z.ZodString>;
|
|
215
|
+
rateLimited: z.ZodDefault<z.ZodString>;
|
|
216
|
+
removeCode: z.ZodDefault<z.ZodString>;
|
|
169
217
|
send: z.ZodDefault<z.ZodString>;
|
|
218
|
+
support: z.ZodDefault<z.ZodString>;
|
|
219
|
+
supportSubject: z.ZodDefault<z.ZodString>;
|
|
170
220
|
tip: z.ZodDefault<z.ZodString>;
|
|
171
221
|
title: z.ZodDefault<z.ZodString>;
|
|
222
|
+
verifyFailed: z.ZodDefault<z.ZodString>;
|
|
172
223
|
you: z.ZodDefault<z.ZodString>;
|
|
173
224
|
}, z.core.$strip>>;
|
|
174
225
|
banner: z.ZodPrefault<z.ZodObject<{
|
|
@@ -178,6 +229,14 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
178
229
|
description: z.ZodDefault<z.ZodString>;
|
|
179
230
|
title: z.ZodDefault<z.ZodString>;
|
|
180
231
|
}, z.core.$strip>>;
|
|
232
|
+
consent: z.ZodPrefault<z.ZodObject<{
|
|
233
|
+
accept: z.ZodDefault<z.ZodString>;
|
|
234
|
+
decline: z.ZodDefault<z.ZodString>;
|
|
235
|
+
label: z.ZodDefault<z.ZodString>;
|
|
236
|
+
message: z.ZodDefault<z.ZodString>;
|
|
237
|
+
policy: z.ZodDefault<z.ZodString>;
|
|
238
|
+
settings: z.ZodDefault<z.ZodString>;
|
|
239
|
+
}, z.core.$strip>>;
|
|
181
240
|
content: z.ZodPrefault<z.ZodObject<{
|
|
182
241
|
code: z.ZodDefault<z.ZodString>;
|
|
183
242
|
copyColor: z.ZodDefault<z.ZodString>;
|
|
@@ -188,6 +247,8 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
188
247
|
preview: z.ZodDefault<z.ZodString>;
|
|
189
248
|
prop: z.ZodDefault<z.ZodString>;
|
|
190
249
|
selectTab: z.ZodDefault<z.ZodString>;
|
|
250
|
+
selectView: z.ZodDefault<z.ZodString>;
|
|
251
|
+
showLess: z.ZodDefault<z.ZodString>;
|
|
191
252
|
showMore: z.ZodDefault<z.ZodString>;
|
|
192
253
|
stars: z.ZodDefault<z.ZodString>;
|
|
193
254
|
tab: z.ZodDefault<z.ZodString>;
|
|
@@ -195,8 +256,10 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
195
256
|
update: z.ZodDefault<z.ZodString>;
|
|
196
257
|
}, z.core.$strip>>;
|
|
197
258
|
feedback: z.ZodPrefault<z.ZodObject<{
|
|
259
|
+
comment: z.ZodDefault<z.ZodString>;
|
|
198
260
|
no: z.ZodDefault<z.ZodString>;
|
|
199
261
|
question: z.ZodDefault<z.ZodString>;
|
|
262
|
+
send: z.ZodDefault<z.ZodString>;
|
|
200
263
|
thanks: z.ZodDefault<z.ZodString>;
|
|
201
264
|
yes: z.ZodDefault<z.ZodString>;
|
|
202
265
|
}, z.core.$strip>>;
|
|
@@ -204,6 +267,28 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
204
267
|
label: z.ZodDefault<z.ZodString>;
|
|
205
268
|
untranslated: z.ZodDefault<z.ZodString>;
|
|
206
269
|
}, z.core.$strip>>;
|
|
270
|
+
narration: z.ZodPrefault<z.ZodObject<{
|
|
271
|
+
cueDanger: z.ZodDefault<z.ZodString>;
|
|
272
|
+
cueInfo: z.ZodDefault<z.ZodString>;
|
|
273
|
+
cueNote: z.ZodDefault<z.ZodString>;
|
|
274
|
+
cueSection: z.ZodDefault<z.ZodString>;
|
|
275
|
+
cueStep: z.ZodDefault<z.ZodString>;
|
|
276
|
+
cueSuccess: z.ZodDefault<z.ZodString>;
|
|
277
|
+
cueTab: z.ZodDefault<z.ZodString>;
|
|
278
|
+
cueTip: z.ZodDefault<z.ZodString>;
|
|
279
|
+
cueWarning: z.ZodDefault<z.ZodString>;
|
|
280
|
+
error: z.ZodDefault<z.ZodString>;
|
|
281
|
+
follow: z.ZodDefault<z.ZodString>;
|
|
282
|
+
label: z.ZodDefault<z.ZodString>;
|
|
283
|
+
minutes: z.ZodDefault<z.ZodString>;
|
|
284
|
+
next: z.ZodDefault<z.ZodString>;
|
|
285
|
+
pause: z.ZodDefault<z.ZodString>;
|
|
286
|
+
play: z.ZodDefault<z.ZodString>;
|
|
287
|
+
previous: z.ZodDefault<z.ZodString>;
|
|
288
|
+
progress: z.ZodDefault<z.ZodString>;
|
|
289
|
+
speed: z.ZodDefault<z.ZodString>;
|
|
290
|
+
stop: z.ZodDefault<z.ZodString>;
|
|
291
|
+
}, z.core.$strip>>;
|
|
207
292
|
nav: z.ZodPrefault<z.ZodObject<{
|
|
208
293
|
back: z.ZodDefault<z.ZodString>;
|
|
209
294
|
breadcrumb: z.ZodDefault<z.ZodString>;
|
|
@@ -232,6 +317,7 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
232
317
|
next: z.ZodDefault<z.ZodString>;
|
|
233
318
|
pagination: z.ZodDefault<z.ZodString>;
|
|
234
319
|
previous: z.ZodDefault<z.ZodString>;
|
|
320
|
+
related: z.ZodDefault<z.ZodString>;
|
|
235
321
|
skipToContent: z.ZodDefault<z.ZodString>;
|
|
236
322
|
}, z.core.$strip>>;
|
|
237
323
|
search: z.ZodPrefault<z.ZodObject<{
|
|
@@ -89,5 +89,7 @@ export declare const localeTargetPath: (rel: string, ext: string, locale: string
|
|
|
89
89
|
* recognizes) but aren't declared in `i18n.locales`. Without this they're
|
|
90
90
|
* silently treated as default-locale content under a `/<code>/…` route, which
|
|
91
91
|
* is almost never intended — usually a translation that wasn't registered.
|
|
92
|
+
* A folder named after the default locale gets the same treatment (see
|
|
93
|
+
* {@link defaultLocaleFolderDiagnostic}).
|
|
92
94
|
*/
|
|
93
95
|
export declare const i18nDiagnostics: (pages: PageRecord[], i18n: ResolvedI18nConfig, versions?: ResolvedVersionsConfig) => Diagnostic[];
|
|
@@ -10,6 +10,12 @@ export interface IncludeAttributes {
|
|
|
10
10
|
lang?: string;
|
|
11
11
|
/** Fence meta string in code-block mode (e.g. `title="lib.ts"`). */
|
|
12
12
|
meta?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Every other attribute with a value: the snippet's own variables.
|
|
15
|
+
* `<include plan="Pro">` makes `{{plan}}` in the included file read `Pro`,
|
|
16
|
+
* ahead of any site-wide variable of the same name.
|
|
17
|
+
*/
|
|
18
|
+
props?: Record<string, string>;
|
|
13
19
|
}
|
|
14
20
|
/** A parsed include statement. */
|
|
15
21
|
export interface IncludeStatement {
|
|
@@ -18,8 +24,8 @@ export interface IncludeStatement {
|
|
|
18
24
|
}
|
|
19
25
|
/**
|
|
20
26
|
* Parse one trimmed line as an include statement, or `null` when it isn't
|
|
21
|
-
* one.
|
|
22
|
-
*
|
|
27
|
+
* one. `lang` and `meta` shape a code include; every other attribute with a
|
|
28
|
+
* value becomes a prop, a variable scoped to the included file.
|
|
23
29
|
*/
|
|
24
30
|
export declare const parseIncludeStatement: (line: string) => IncludeStatement | null;
|
|
25
31
|
/**
|
|
@@ -13,6 +13,16 @@ export declare const resolveLastModifiedConfig: (value: false | "git" | "frontma
|
|
|
13
13
|
* newest-first, the first date seen for a path wins. Blank lines are ignored.
|
|
14
14
|
*/
|
|
15
15
|
export declare const parseGitLog: (output: string) => Map<string, string>;
|
|
16
|
+
/**
|
|
17
|
+
* `path` with every symlink resolved, the spelling git prints paths in: a
|
|
18
|
+
* project opened through a link (`/tmp/site` on macOS, where `/tmp` links to
|
|
19
|
+
* `/private/tmp`) gets `/private/tmp/site` from `rev-parse --show-toplevel`,
|
|
20
|
+
* so the project's own spelling would compare as outside the repository and
|
|
21
|
+
* every page would go undated. The native realpath also expands a Windows
|
|
22
|
+
* 8.3 short name (`RUNNER~1`), which git does too. A path that doesn't exist
|
|
23
|
+
* stays as written.
|
|
24
|
+
*/
|
|
25
|
+
export declare const realPath: (path: string) => string;
|
|
16
26
|
/**
|
|
17
27
|
* The toplevel of the repository containing `root`, or null when git is
|
|
18
28
|
* unavailable or the project isn't a repo. Callers use it to decide which
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LocalizableLabel } from "./schema.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a possibly-per-locale label to the string a locale renders: the
|
|
4
|
+
* active locale's entry, else the default locale's, else the map's first
|
|
5
|
+
* entry (which is also what a single-locale site gets).
|
|
6
|
+
*/
|
|
7
|
+
export declare const resolveLocalizable: (label: LocalizableLabel, locale?: string, defaultLocale?: string) => string;
|
|
@@ -11,6 +11,14 @@ export interface FolderMetaSource {
|
|
|
11
11
|
include?: readonly string[];
|
|
12
12
|
exclude?: readonly string[];
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* The folder-meta files a filesystem source contributes: `patterns` (every
|
|
16
|
+
* meta module name, shared `meta.$.*` included, by default) under the source's
|
|
17
|
+
* root, minus its `exclude` globs, dependencies, and build output, and only in
|
|
18
|
+
* folders its `include` globs reach. `blume translate` finds the meta files it
|
|
19
|
+
* translates through this too, so it covers exactly the ones the scan reads.
|
|
20
|
+
*/
|
|
21
|
+
export declare const findFolderMetaFiles: (source: FolderMetaSource, patterns?: readonly string[]) => Promise<string[]>;
|
|
14
22
|
/**
|
|
15
23
|
* Discover `meta.{ts,js,mjs}` files across the given filesystem sources. Keys are
|
|
16
24
|
* the source's route prefix joined with the directory relative to that source's
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Page layout modes (`mode` frontmatter), Mintlify's names for what a page
|
|
3
|
+
* shows around its content:
|
|
4
|
+
*
|
|
5
|
+
* - `default`: the sidebar, the page's title and table of contents, and the
|
|
6
|
+
* page-end links, around the prose column.
|
|
7
|
+
* - `wide`: no table of contents; the content takes its width.
|
|
8
|
+
* - `center`: no sidebar or table of contents; a wider column, centered.
|
|
9
|
+
* For changelogs and other pages read top to bottom.
|
|
10
|
+
* - `custom`: only the header. No sidebar, title, breadcrumbs, table of
|
|
11
|
+
* contents, page-end links, or site footer, and the content spans the
|
|
12
|
+
* page, for a landing page written in MDX.
|
|
13
|
+
* - `frame`: `custom`, keeping the sidebar.
|
|
14
|
+
*
|
|
15
|
+
* Mintlify's `assistant` mode, a full-page chat, has no equivalent.
|
|
16
|
+
*/
|
|
17
|
+
export declare const PAGE_MODES: readonly ["default", "wide", "center", "custom", "frame"];
|
|
18
|
+
export type PageMode = (typeof PAGE_MODES)[number];
|
|
19
|
+
/** What a page shows around its content, and how wide the content runs. */
|
|
20
|
+
export interface PageModeLayout {
|
|
21
|
+
/** The page's own chrome: title, description, breadcrumbs, page-end links, and the site footer. */
|
|
22
|
+
chrome: boolean;
|
|
23
|
+
sidebar: boolean;
|
|
24
|
+
toc: boolean;
|
|
25
|
+
/** `content` is the prose measure, `center` a wider centered column, `full` the whole column. */
|
|
26
|
+
width: "content" | "center" | "full";
|
|
27
|
+
}
|
|
28
|
+
/** The layout a mode gives a page. */
|
|
29
|
+
export declare const pageModeLayout: (mode?: PageMode) => PageModeLayout;
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern redirects: a `from` that covers many paths, written the way
|
|
3
|
+
* Mintlify and `vercel.json` write them.
|
|
4
|
+
*
|
|
5
|
+
* - `:name` matches one whole segment: `/blog/:slug` → `/articles/:slug`.
|
|
6
|
+
* - `:name*` as the last segment matches the rest of the path, any number of
|
|
7
|
+
* segments: `/beta/:slug*` → `/v2/:slug*` sends `/beta/a/b` to `/v2/a/b`
|
|
8
|
+
* and `/beta` itself to `/v2`. A last segment of `*` does the same.
|
|
9
|
+
* - `*` ending a segment matches the rest of the path from there:
|
|
10
|
+
* `/articles/concepts-*` → `/overview`, or `/old/article-*` →
|
|
11
|
+
* `/new/article-*` to carry what it matched (`/new/article-:splat`, as
|
|
12
|
+
* `_redirects` spells it, reads the same capture).
|
|
13
|
+
*
|
|
14
|
+
* `to` reads a capture as a whole segment (`/:name`, `/:name*`, `/*`) or, for
|
|
15
|
+
* `*`, wherever it stands. Hosts disagree on the rest of the syntax, so each
|
|
16
|
+
* gets its own translation from {@link expandRedirect}: `_redirects` splats,
|
|
17
|
+
* `vercel.json` sources, and the regular expressions Vercel's routing config,
|
|
18
|
+
* the Node and Cloudflare wrappers, and the dev server match with. A capture
|
|
19
|
+
* that may be empty is expanded into two rules first, so `/beta` lands on
|
|
20
|
+
* `/v2` rather than `/v2/` on every host.
|
|
21
|
+
*/
|
|
22
|
+
/** The name `*` captures under, which `_redirects` reads as `:splat`. */
|
|
23
|
+
export declare const SPLAT = "splat";
|
|
24
|
+
/** A piece of a parsed `from`, or of a rule it expands to. */
|
|
25
|
+
type Part = {
|
|
26
|
+
kind: "text";
|
|
27
|
+
text: string;
|
|
28
|
+
}
|
|
29
|
+
/** `:name`: one whole segment. */
|
|
30
|
+
| {
|
|
31
|
+
kind: "param";
|
|
32
|
+
name: string;
|
|
33
|
+
}
|
|
34
|
+
/** `/:name*` or `/*` ending the path: zero or more segments. */
|
|
35
|
+
| {
|
|
36
|
+
kind: "rest";
|
|
37
|
+
name: string;
|
|
38
|
+
}
|
|
39
|
+
/** A rest in an expanded rule: one or more characters after its `/`. */
|
|
40
|
+
| {
|
|
41
|
+
kind: "tail";
|
|
42
|
+
name: string;
|
|
43
|
+
}
|
|
44
|
+
/** `*` ending a segment: any characters, none included. */
|
|
45
|
+
| {
|
|
46
|
+
kind: "splat";
|
|
47
|
+
};
|
|
48
|
+
/** A piece of an expanded rule, where a rest has become a tail. */
|
|
49
|
+
type RulePart = Exclude<Part, {
|
|
50
|
+
kind: "rest";
|
|
51
|
+
}>;
|
|
52
|
+
/** A redirect's two ends, as configured or based. */
|
|
53
|
+
interface RedirectEnds {
|
|
54
|
+
from: string;
|
|
55
|
+
status: number;
|
|
56
|
+
to: string;
|
|
57
|
+
}
|
|
58
|
+
/** One rule a redirect expands to. */
|
|
59
|
+
export interface RedirectRule {
|
|
60
|
+
parts: RulePart[];
|
|
61
|
+
status: number;
|
|
62
|
+
to: string;
|
|
63
|
+
}
|
|
64
|
+
/** Whether a path is a pattern, rather than one exact path. */
|
|
65
|
+
export declare const isPatternPath: (path: string) => boolean;
|
|
66
|
+
/** Why a redirect's ends can't work, and which end to fix. */
|
|
67
|
+
export interface RedirectPatternError {
|
|
68
|
+
end: "from" | "to";
|
|
69
|
+
message: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Why a redirect's ends can't work as a pattern, or `null` when they can:
|
|
73
|
+
* `from` has a malformed capture, or `to` reads one `from` doesn't make.
|
|
74
|
+
*/
|
|
75
|
+
export declare const redirectPatternError: (from: string, to: string) => RedirectPatternError | null;
|
|
76
|
+
/**
|
|
77
|
+
* The rules a redirect expands to, in the order to try them. A `from` ending
|
|
78
|
+
* in a rest (`/:name*`, `/*`) becomes two: the bare path, its references
|
|
79
|
+
* dropped, and the path with at least one more segment. Only a pattern has
|
|
80
|
+
* rules; an exact redirect gets none.
|
|
81
|
+
*/
|
|
82
|
+
export declare const expandRedirect: (redirect: RedirectEnds) => RedirectRule[];
|
|
83
|
+
/** Put exact redirects ahead of patterns, which hosts try in order. */
|
|
84
|
+
export declare const exactFirst: <Redirect extends {
|
|
85
|
+
from: string;
|
|
86
|
+
}>(redirects: readonly Redirect[]) => Redirect[];
|
|
87
|
+
/** A rule as a `_redirects` `from` and `to`: rests and `*` are its splat. */
|
|
88
|
+
export declare const underscoreRedirect: (rule: RedirectRule) => {
|
|
89
|
+
from: string;
|
|
90
|
+
to: string;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* A rule as a `vercel.json` `source` and `destination` (`path-to-regexp`),
|
|
94
|
+
* each literal run escaped by `escape` so it matches only itself.
|
|
95
|
+
*/
|
|
96
|
+
export declare const vercelRedirect: (rule: RedirectRule, escape: (path: string) => string) => {
|
|
97
|
+
destination: string;
|
|
98
|
+
source: string;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* A rule as a regular expression source over the decoded path (JavaScript
|
|
102
|
+
* and PCRE alike), a trailing slash optional, and its `to` with each capture
|
|
103
|
+
* a numbered `$n`. What Vercel's routing config and the server wrappers
|
|
104
|
+
* match with.
|
|
105
|
+
*/
|
|
106
|
+
export declare const regexRedirect: (rule: RedirectRule) => {
|
|
107
|
+
location: string;
|
|
108
|
+
source: string;
|
|
109
|
+
};
|
|
110
|
+
/** A pattern redirect as the server wrappers carry it: regex source, `Location` template, status. */
|
|
111
|
+
export type CompiledRedirect = [
|
|
112
|
+
source: string,
|
|
113
|
+
location: string,
|
|
114
|
+
status: number
|
|
115
|
+
];
|
|
116
|
+
/**
|
|
117
|
+
* The pattern redirects among `redirects`, compiled for the server wrappers
|
|
118
|
+
* and the dev server, in the order to try them. The `Location` template is
|
|
119
|
+
* percent-encoded as the header needs; a capture is encoded when it's filled
|
|
120
|
+
* (see {@link fillLocation}).
|
|
121
|
+
*/
|
|
122
|
+
export declare const compileRedirects: (redirects: readonly RedirectEnds[]) => CompiledRedirect[];
|
|
123
|
+
/** A captured value, encoded for a `Location` header that must not grow a query or fragment. */
|
|
124
|
+
export declare const encodeCapture: (value: string) => string;
|
|
125
|
+
/** A `Location` template with its `$n` references filled from `match`. */
|
|
126
|
+
export declare const fillLocation: (location: string, match: RegExpExecArray) => string;
|
|
127
|
+
/**
|
|
128
|
+
* The `Location` and status the first compiled redirect matching a decoded
|
|
129
|
+
* path answers with, or `null` when none does.
|
|
130
|
+
*/
|
|
131
|
+
export declare const matchCompiledRedirect: (compiled: readonly CompiledRedirect[], path: string) => [location: string, status: number] | null;
|
|
132
|
+
/** A request URL's path, decoded; a malformed escape leaves it as sent. */
|
|
133
|
+
export declare const requestPath: (url: string) => string;
|
|
134
|
+
/**
|
|
135
|
+
* Where a pattern redirect sends a decoded path, unencoded, or `undefined`
|
|
136
|
+
* when none matches: what the link checks follow.
|
|
137
|
+
*/
|
|
138
|
+
export declare const patternDestination: (redirects: readonly RedirectEnds[], path: string) => string | undefined;
|
|
139
|
+
/**
|
|
140
|
+
* The paths a pattern `from` matches, of those given; none for an exact
|
|
141
|
+
* `from`. Only the match matters here, so the rules' destinations are moot.
|
|
142
|
+
*/
|
|
143
|
+
export declare const pathsUnderPattern: (from: string, paths: readonly string[]) => string[];
|
|
144
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { LocaleRouting } from "./i18n.ts";
|
|
2
|
+
import type { PageLink } from "./types.ts";
|
|
3
|
+
/** The most entries a page lists, as on Mintlify. */
|
|
4
|
+
export declare const MAX_RELATED = 10;
|
|
5
|
+
/** A `{ Title: link }` entry: the one key is the title, its value the link. */
|
|
6
|
+
export interface TitledRelatedEntry {
|
|
7
|
+
[title: string]: string;
|
|
8
|
+
}
|
|
9
|
+
/** One `related` frontmatter entry. */
|
|
10
|
+
export type RelatedEntry = string | TitledRelatedEntry;
|
|
11
|
+
/** A resolved entry, ready to render. */
|
|
12
|
+
export interface RelatedLink {
|
|
13
|
+
description?: string;
|
|
14
|
+
external: boolean;
|
|
15
|
+
/** A page's route (`basePath` included, deployment base not), or a URL. */
|
|
16
|
+
href: string;
|
|
17
|
+
title: string;
|
|
18
|
+
}
|
|
19
|
+
/** A served route, as the data snapshot lists it. */
|
|
20
|
+
export interface RelatedRoute {
|
|
21
|
+
description: string | null;
|
|
22
|
+
path: string;
|
|
23
|
+
title: string;
|
|
24
|
+
}
|
|
25
|
+
/** What resolving needs from the site. */
|
|
26
|
+
export interface RelatedContext {
|
|
27
|
+
basePath: string;
|
|
28
|
+
/** The site's locales, when it has more than one. */
|
|
29
|
+
i18n?: LocaleRouting | null;
|
|
30
|
+
/** The locale of the page being rendered. */
|
|
31
|
+
locale: string;
|
|
32
|
+
routes: readonly RelatedRoute[];
|
|
33
|
+
}
|
|
34
|
+
/** The links a page's `related` entries name, in the order written. */
|
|
35
|
+
export declare const relatedLinks: (entries: readonly RelatedEntry[] | false | undefined, context: RelatedContext) => RelatedLink[];
|
|
36
|
+
/**
|
|
37
|
+
* A page's `related` page links, as links the checker validates like any in
|
|
38
|
+
* its body. Front matter has no line map, so they point at its first line.
|
|
39
|
+
*/
|
|
40
|
+
export declare const relatedPageLinks: (entries?: readonly RelatedEntry[] | false) => PageLink[];
|