blume 2.1.0 → 2.1.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 +110 -0
- package/dist/cli/{chunk-ga0pf4aj.js → chunk-0n9xkp3d.js} +12 -3
- package/dist/cli/{chunk-ga0pf4aj.js.map → chunk-0n9xkp3d.js.map} +3 -3
- package/dist/cli/{chunk-43zcf4gz.js → chunk-0pmb4tr4.js} +541 -368
- package/dist/cli/chunk-0pmb4tr4.js.map +35 -0
- package/dist/cli/{chunk-9geymqns.js → chunk-0w6hs479.js} +15 -15
- package/dist/cli/{chunk-xkz5xbtv.js → chunk-124fvmzq.js} +2802 -1422
- package/dist/cli/chunk-124fvmzq.js.map +220 -0
- package/dist/cli/chunk-150jk7km.js +52 -0
- package/dist/cli/chunk-150jk7km.js.map +10 -0
- package/dist/cli/{chunk-y4ykbark.js → chunk-1f882900.js} +2 -2
- package/dist/cli/{chunk-5ffywsmb.js → chunk-297ajdcv.js} +8 -6
- package/dist/cli/{chunk-5ffywsmb.js.map → chunk-297ajdcv.js.map} +3 -3
- package/dist/cli/{chunk-h2a48yhd.js → chunk-32khwcb6.js} +120 -16
- package/dist/cli/{chunk-h2a48yhd.js.map → chunk-32khwcb6.js.map} +10 -10
- package/dist/cli/{chunk-5cg2rzgf.js → chunk-36bxs9c7.js} +20 -49
- package/dist/cli/{chunk-5cg2rzgf.js.map → chunk-36bxs9c7.js.map} +4 -5
- package/dist/cli/{chunk-py62fewh.js → chunk-53jqw8z0.js} +3 -3
- package/dist/cli/{chunk-5wj2qwn2.js → chunk-58bt3hag.js} +4 -4
- package/dist/cli/{chunk-e7vvk5ya.js → chunk-5cmts6dv.js} +3 -3
- package/dist/cli/{chunk-y5h4r2y0.js → chunk-60hz265r.js} +15 -5
- package/dist/cli/chunk-60hz265r.js.map +10 -0
- package/dist/cli/chunk-74wfhv79.js +65 -0
- package/dist/cli/chunk-74wfhv79.js.map +10 -0
- package/dist/cli/{chunk-g2z9x01v.js → chunk-9qzgg6mj.js} +3 -3
- package/dist/cli/{chunk-q3wxxq39.js → chunk-a57yh0h9.js} +5 -5
- package/dist/cli/{chunk-713mngdq.js → chunk-ave1wcbr.js} +76 -10
- package/dist/cli/chunk-ave1wcbr.js.map +14 -0
- package/dist/cli/{chunk-2n4ps1b3.js → chunk-bqxaqn5p.js} +40 -22
- package/dist/cli/chunk-bqxaqn5p.js.map +15 -0
- package/dist/cli/{chunk-jnwj5kjj.js → chunk-bxwhtvw8.js} +20 -7
- package/dist/cli/{chunk-jnwj5kjj.js.map → chunk-bxwhtvw8.js.map} +3 -3
- package/dist/cli/chunk-ckrcm08h.js +324 -0
- package/dist/cli/chunk-ckrcm08h.js.map +14 -0
- package/dist/cli/{chunk-2f3ndkpw.js → chunk-desvm72z.js} +3 -3
- package/dist/cli/{chunk-gp84za0h.js → chunk-dhwtqnnd.js} +2 -2
- package/dist/cli/{chunk-4h8z9vv5.js → chunk-dpy8qdjf.js} +93 -47
- package/dist/cli/chunk-dpy8qdjf.js.map +17 -0
- package/dist/cli/{chunk-2f7n4qzt.js → chunk-dqhg54mr.js} +1 -1
- package/dist/cli/{chunk-0gz36akr.js → chunk-dv2z0rzf.js} +21 -5
- package/dist/cli/chunk-dv2z0rzf.js.map +12 -0
- package/dist/cli/{chunk-cm89scdv.js → chunk-es8h0v3j.js} +9 -11
- package/dist/cli/{chunk-cm89scdv.js.map → chunk-es8h0v3j.js.map} +3 -3
- package/dist/cli/{chunk-zhvd6adm.js → chunk-gfc5fqvf.js} +14 -14
- package/dist/cli/{chunk-nd1821sk.js → chunk-gxtg6ed2.js} +33 -19
- package/dist/cli/chunk-gxtg6ed2.js.map +10 -0
- package/dist/cli/{chunk-p804f3pe.js → chunk-hvcxng5f.js} +6 -6
- package/dist/cli/{chunk-ta27feev.js → chunk-j1x92mx9.js} +21 -2
- package/dist/cli/chunk-j1x92mx9.js.map +10 -0
- package/dist/cli/{chunk-rekqz4qg.js → chunk-k3gr1nm9.js} +19 -16
- package/dist/cli/chunk-k3gr1nm9.js.map +10 -0
- package/dist/cli/{chunk-1n228xqb.js → chunk-kdpzw38a.js} +2 -2
- package/dist/cli/{chunk-cy5bm0j0.js → chunk-ms9z66nz.js} +2 -2
- package/dist/cli/{chunk-cy5bm0j0.js.map → chunk-ms9z66nz.js.map} +2 -2
- package/dist/cli/{chunk-zf748avv.js → chunk-nbyvgnnm.js} +193 -286
- package/dist/cli/chunk-nbyvgnnm.js.map +36 -0
- package/dist/cli/{chunk-6bm0xpgd.js → chunk-s0bdnc7v.js} +2 -2
- package/dist/cli/{chunk-yxmk4pec.js → chunk-sc93apfs.js} +17 -16
- package/dist/cli/{chunk-yxmk4pec.js.map → chunk-sc93apfs.js.map} +3 -3
- package/dist/cli/{chunk-cmtcnh9f.js → chunk-tfycddbt.js} +2 -2
- package/dist/cli/{chunk-9xr4dgee.js → chunk-twy7psdz.js} +29 -16
- package/dist/cli/chunk-twy7psdz.js.map +10 -0
- package/dist/cli/{chunk-ntv4qrt7.js → chunk-y4msrwm9.js} +15 -15
- package/dist/cli/{chunk-yj17vs39.js → chunk-ydp3065p.js} +5 -5
- package/dist/cli/index.js +24 -19
- package/dist/cli/index.js.map +3 -3
- package/dist/types/ai/ask-context.d.ts +6 -2
- package/dist/types/ai/ask.d.ts +24 -5
- package/dist/types/ai/component-markdown.d.ts +2 -0
- package/dist/types/ai/openapi-components.d.ts +4 -1
- package/dist/types/analytics/clics.d.ts +37 -0
- package/dist/types/analytics/index.d.ts +2 -0
- package/dist/types/analytics/schema.d.ts +18 -0
- package/dist/types/astro/integration.d.ts +11 -4
- package/dist/types/astro/markdown-negotiation.d.ts +3 -0
- package/dist/types/astro/pages.d.ts +10 -0
- package/dist/types/cli/init/scaffold.d.ts +1 -1
- package/dist/types/components/content/api-field.d.ts +4 -1
- package/dist/types/components/content/api-page.d.ts +6 -1
- package/dist/types/components/openapi/code-samples.d.ts +29 -0
- package/dist/types/components/openapi/helpers.d.ts +22 -1
- package/dist/types/components/openapi/security.d.ts +10 -0
- package/dist/types/components/openapi/snippets.d.ts +60 -0
- package/dist/types/core/changelog-index.d.ts +8 -0
- package/dist/types/core/config-input.d.ts +37 -6
- package/dist/types/core/data.d.ts +4 -0
- package/dist/types/core/i18n-ui.d.ts +2 -0
- package/dist/types/core/links.d.ts +8 -0
- package/dist/types/core/powered-by.d.ts +12 -0
- package/dist/types/core/probe.d.ts +2 -0
- package/dist/types/core/project-graph.d.ts +6 -0
- package/dist/types/core/redirect-patterns.d.ts +11 -3
- package/dist/types/core/schema.d.ts +228 -3
- package/dist/types/core/sources/cache.d.ts +3 -0
- package/dist/types/core/sources/contentful-rich-text.d.ts +11 -2
- package/dist/types/core/sources/contentful.d.ts +17 -1
- package/dist/types/core/sources/lexical.d.ts +5 -0
- package/dist/types/core/sources/lower.d.ts +10 -2
- package/dist/types/core/sources/normalize.d.ts +20 -1
- package/dist/types/core/sources/notion.d.ts +8 -0
- package/dist/types/core/sources/remote.d.ts +37 -10
- package/dist/types/core/sources/sanity.d.ts +1 -1
- package/dist/types/core/types.d.ts +17 -0
- package/dist/types/deploy/adapter-output.d.ts +2 -1
- package/dist/types/deploy/adapters/cloudflare.d.ts +7 -5
- package/dist/types/deploy/adapters/node.d.ts +58 -23
- package/dist/types/deploy/adapters/registry.d.ts +10 -0
- package/dist/types/deploy/adapters/types.d.ts +3 -2
- package/dist/types/deploy/cloudflare-negotiation.d.ts +5 -2
- package/dist/types/deploy/node-headers.d.ts +12 -4
- package/dist/types/deploy/platforms/cloudflare.d.ts +10 -7
- package/dist/types/deploy/platforms/node.d.ts +3 -1
- package/dist/types/deploy/platforms/types.d.ts +18 -7
- package/dist/types/deploy/platforms/vercel.d.ts +21 -2
- package/dist/types/deploy/redirects.d.ts +17 -1
- package/dist/types/deploy/sitemap.d.ts +2 -1
- package/dist/types/deploy/vercel-negotiation.d.ts +44 -21
- package/dist/types/narration/build.d.ts +34 -12
- package/dist/types/narration/provider.d.ts +96 -8
- package/dist/types/openapi/checks.d.ts +27 -0
- package/dist/types/openapi/graphql.d.ts +6 -0
- package/dist/types/openapi/model.d.ts +15 -4
- package/dist/types/openapi/parse.d.ts +3 -0
- package/dist/types/openapi/references.d.ts +16 -0
- package/dist/types/openapi/sentence.d.ts +11 -1
- package/dist/types/ratelimit/index.d.ts +1 -1
- package/dist/types/ratelimit/schema.d.ts +8 -0
- package/dist/types/ratelimit/upstash.d.ts +39 -14
- package/dist/types/reference/graphql.d.ts +76 -1
- package/dist/types/reference/index.d.ts +1 -1
- package/dist/types/reference/openapi.d.ts +2 -2
- package/dist/types/reference/options.d.ts +37 -1
- package/dist/types/reference/schema.d.ts +84 -0
- package/dist/types/search/adapters/registry.d.ts +3 -0
- package/dist/types/search/adapters/typesense.d.ts +14 -4
- package/dist/types/search/build.d.ts +3 -1
- package/dist/types/search/orama-index.d.ts +9 -9
- package/dist/types/search/sync/algolia.d.ts +5 -2
- package/dist/types/search/sync/index.d.ts +3 -1
- package/dist/types/search/sync/typesense.d.ts +11 -7
- package/dist/types/seo/jsonld.d.ts +11 -6
- package/dist/types/sources/contentful.d.ts +16 -0
- package/dist/types/sources/github-releases.d.ts +8 -1
- package/dist/types/sources/notion.d.ts +8 -0
- package/dist/types/sources/payload.d.ts +2 -0
- package/dist/types/sources/registry.d.ts +63 -0
- package/dist/types/sources/shared.d.ts +3 -0
- package/dist/types/sources/strapi.d.ts +2 -0
- package/docs/01-quickstart.mdx +4 -2
- package/docs/02-deployment.mdx +59 -13
- package/docs/03-upgrading.mdx +2 -1
- package/docs/04-migrating.mdx +9 -9
- package/docs/08-faq.mdx +12 -12
- package/docs/advanced/changelog.mdx +30 -2
- package/docs/advanced/custom-pages.mdx +1 -1
- package/docs/advanced/skills.mdx +1 -1
- package/docs/cli/audit.mdx +30 -7
- package/docs/cli/doctor.mdx +6 -2
- package/docs/cli/evals.mdx +4 -4
- package/docs/cli/translate.mdx +1 -0
- package/docs/cli/validate.mdx +4 -3
- package/docs/configuration/analytics.mdx +19 -1
- package/docs/configuration/assistant.mdx +6 -2
- package/docs/configuration/customization.mdx +4 -2
- package/docs/configuration/export.mdx +5 -3
- package/docs/configuration/index.mdx +4 -2
- package/docs/configuration/narration.mdx +43 -6
- package/docs/configuration/rate-limiting.mdx +23 -2
- package/docs/configuration/search.mdx +37 -14
- package/docs/content/components.mdx +2 -2
- package/docs/content/frontmatter.mdx +5 -3
- package/docs/content/i18n.mdx +2 -2
- package/docs/content/includes.mdx +1 -1
- package/docs/content/navigation.mdx +8 -6
- package/docs/content/sources/contentful.mdx +9 -4
- package/docs/content/sources/custom.mdx +7 -3
- package/docs/content/sources/github-releases.mdx +12 -2
- package/docs/content/sources/index.mdx +3 -3
- package/docs/content/sources/notion.mdx +17 -2
- package/docs/content/sources/obsidian.mdx +3 -1
- package/docs/content/sources/payload.mdx +5 -2
- package/docs/content/sources/remote-mdx.mdx +6 -0
- package/docs/content/sources/sanity.mdx +4 -2
- package/docs/content/sources/strapi.mdx +5 -2
- package/docs/content/syntax.mdx +2 -2
- package/docs/discoverability/agent-discovery.mdx +1 -1
- package/docs/discoverability/index.mdx +1 -1
- package/docs/discoverability/json-api.mdx +2 -0
- package/docs/discoverability/llms-txt.mdx +1 -1
- package/docs/discoverability/markdown.mdx +3 -1
- package/docs/discoverability/mcp.mdx +6 -0
- package/docs/discoverability/sitemap-and-robots.mdx +1 -1
- package/docs/discoverability/structured-data.mdx +8 -6
- package/docs/references/api-pages.mdx +1 -1
- package/docs/references/asyncapi.mdx +5 -1
- package/docs/references/graphql.mdx +15 -1
- package/docs/references/openapi.mdx +64 -8
- package/package.json +9 -9
- package/skills/blume/SKILL.md +1 -1
- package/skills/blume-migrate/SKILL.md +2 -2
- package/skills/blume-migrate/assets/{oxfmt@0.67.0.patch → oxfmt@0.71.0.patch} +7 -7
- package/skills/blume-migrate/references/docusaurus.md +4 -4
- package/skills/blume-migrate/references/fumadocs.md +17 -13
- package/skills/blume-migrate/references/monorepo.md +5 -5
- package/skills/blume-migrate/references/nextra.md +8 -5
- package/skills/blume-migrate/references/starlight.md +9 -7
- package/src/ai/ask-context.ts +33 -3
- package/src/ai/ask-limits.ts +13 -0
- package/src/ai/ask.ts +24 -6
- package/src/ai/changelog-markdown.ts +11 -6
- package/src/ai/component-markdown.ts +1 -1
- package/src/ai/cors.ts +12 -3
- package/src/ai/mcp/query.ts +14 -6
- package/src/ai/openapi-components.ts +28 -4
- package/src/ai/relative-links.ts +4 -38
- package/src/analytics/clics.ts +58 -0
- package/src/analytics/head.ts +5 -0
- package/src/analytics/index.ts +2 -0
- package/src/analytics/schema.ts +2 -0
- package/src/astro/generate.ts +91 -56
- package/src/astro/integration.ts +72 -22
- package/src/astro/markdown-negotiation.ts +3 -0
- package/src/astro/module-types.ts +3 -1
- package/src/astro/pages.ts +23 -0
- package/src/astro/render-deps.ts +10 -5
- package/src/astro/runtime-deps.ts +23 -2
- package/src/astro/templates.ts +129 -81
- package/src/audit/catalog.ts +19 -3
- package/src/audit/checks/links.ts +14 -1
- package/src/audit/checks/network.ts +110 -6
- package/src/audit/checks/redirects.ts +6 -4
- package/src/audit/checks/robots.ts +58 -2
- package/src/audit/run.ts +3 -0
- package/src/audit/types.ts +2 -0
- package/src/audit/url.ts +14 -5
- package/src/blume-modules.d.ts +5 -1
- package/src/cli/args.ts +51 -0
- package/src/cli/build-failure.ts +23 -0
- package/src/cli/commands/audit.ts +10 -1
- package/src/cli/commands/dev.ts +18 -2
- package/src/cli/commands/doctor.ts +45 -12
- package/src/cli/commands/eval.ts +36 -4
- package/src/cli/commands/init.ts +6 -4
- package/src/cli/commands/validate.ts +10 -1
- package/src/cli/init/scaffold.ts +9 -6
- package/src/cli/prepare.ts +6 -3
- package/src/cli/required-secrets.ts +3 -2
- package/src/components/content/ApiPlayground.astro +6 -2
- package/src/components/content/api-field.ts +4 -1
- package/src/components/content/api-page.ts +31 -7
- package/src/components/content/mermaid-element.ts +15 -1
- package/src/components/content/view-switcher.ts +7 -4
- package/src/components/islands/hooks.ts +27 -1
- package/src/components/layout/NavTree.astro +49 -5
- package/src/components/layout/NavTreeScript.astro +18 -0
- package/src/components/layout/PageActions.astro +139 -24
- package/src/components/layout/PageLayout.astro +13 -3
- package/src/components/layout/RootLayout.astro +27 -14
- package/src/components/layout/Search.astro +17 -3
- package/src/components/layout/TableOfContents.astro +24 -17
- package/src/components/layout/analytics-client.ts +8 -8
- package/src/components/layout/head-scripts.ts +6 -1
- package/src/components/layout/search/algolia.ts +10 -1
- package/src/components/layout/search/analytics.ts +42 -14
- package/src/components/layout/search/endpoint.ts +48 -5
- package/src/components/layout/search/pagefind.ts +114 -5
- package/src/components/layout/search/types.ts +12 -0
- package/src/components/layout/search/typesense.ts +18 -6
- package/src/components/openapi/AsyncApiOperation.astro +14 -7
- package/src/components/openapi/Authorization.astro +10 -0
- package/src/components/openapi/GraphqlOperation.astro +5 -0
- package/src/components/openapi/Operation.astro +24 -1
- package/src/components/openapi/ParametersTable.astro +8 -4
- package/src/components/openapi/Playground.astro +7 -1
- package/src/components/openapi/RequestBody.astro +19 -2
- package/src/components/openapi/Responses.astro +1 -0
- package/src/components/openapi/SchemaTable.astro +15 -3
- package/src/components/openapi/async-snippets.ts +61 -5
- package/src/components/openapi/async.ts +123 -29
- package/src/components/openapi/graphql-helpers.ts +35 -12
- package/src/components/openapi/helpers.ts +36 -2
- package/src/components/openapi/message-model.ts +54 -11
- package/src/components/openapi/message.ts +14 -4
- package/src/components/openapi/operation-model.ts +16 -7
- package/src/components/openapi/playground-client.ts +77 -58
- package/src/components/openapi/playground-schema.ts +1 -1
- package/src/components/openapi/schema-tree.ts +44 -14
- package/src/components/openapi/security.ts +10 -0
- package/src/components/openapi/snippets.ts +5 -3
- package/src/components/openapi/validate-json.ts +4 -3
- package/src/components/powered-by-middleware.ts +33 -0
- package/src/core/changelog-index.ts +31 -1
- package/src/core/component-diagnostics.ts +53 -0
- package/src/core/component-overrides.ts +32 -0
- package/src/core/config-input.ts +42 -6
- package/src/core/data.ts +2 -0
- package/src/core/diagnostics.ts +5 -0
- package/src/core/i18n-ui.ts +2 -0
- package/src/core/includes.ts +1 -1
- package/src/core/links.ts +47 -17
- package/src/core/powered-by.ts +12 -0
- package/src/core/probe.ts +26 -6
- package/src/core/project-graph.ts +59 -18
- package/src/core/redirect-patterns.ts +36 -7
- package/src/core/schema.ts +26 -6
- package/src/core/sources/cache.ts +6 -0
- package/src/core/sources/contentful-rich-text.ts +29 -6
- package/src/core/sources/contentful.ts +135 -25
- package/src/core/sources/filesystem.ts +26 -4
- package/src/core/sources/github-releases.ts +12 -1
- package/src/core/sources/lexical.ts +15 -10
- package/src/core/sources/lower.ts +19 -3
- package/src/core/sources/mdx-remote.ts +62 -10
- package/src/core/sources/normalize.ts +227 -41
- package/src/core/sources/notion.ts +34 -10
- package/src/core/sources/obsidian.ts +16 -3
- package/src/core/sources/payload.ts +38 -15
- package/src/core/sources/remote.ts +72 -15
- package/src/core/sources/resolve.ts +11 -1
- package/src/core/sources/sanity.ts +43 -25
- package/src/core/sources/strapi.ts +2 -2
- package/src/core/types.ts +18 -0
- package/src/core/ui-packs/ar.ts +1 -0
- package/src/core/ui-packs/bg.ts +1 -0
- package/src/core/ui-packs/bn.ts +1 -0
- package/src/core/ui-packs/ca.ts +1 -0
- package/src/core/ui-packs/cs.ts +1 -0
- package/src/core/ui-packs/da.ts +1 -0
- package/src/core/ui-packs/de.ts +1 -0
- package/src/core/ui-packs/el.ts +1 -0
- package/src/core/ui-packs/es.ts +1 -0
- package/src/core/ui-packs/fa.ts +1 -0
- package/src/core/ui-packs/fi.ts +1 -0
- package/src/core/ui-packs/fr.ts +1 -0
- package/src/core/ui-packs/he.ts +1 -0
- package/src/core/ui-packs/hi.ts +1 -0
- package/src/core/ui-packs/hr.ts +1 -0
- package/src/core/ui-packs/hu.ts +1 -0
- package/src/core/ui-packs/id.ts +1 -0
- package/src/core/ui-packs/it.ts +1 -0
- package/src/core/ui-packs/ja.ts +1 -0
- package/src/core/ui-packs/ko.ts +1 -0
- package/src/core/ui-packs/nl.ts +1 -0
- package/src/core/ui-packs/no.ts +1 -0
- package/src/core/ui-packs/pl.ts +1 -0
- package/src/core/ui-packs/pt-br.ts +1 -0
- package/src/core/ui-packs/pt.ts +1 -0
- package/src/core/ui-packs/ro.ts +1 -0
- package/src/core/ui-packs/ru.ts +1 -0
- package/src/core/ui-packs/sk.ts +1 -0
- package/src/core/ui-packs/sr.ts +1 -0
- package/src/core/ui-packs/sv.ts +1 -0
- package/src/core/ui-packs/th.ts +1 -0
- package/src/core/ui-packs/tr.ts +1 -0
- package/src/core/ui-packs/uk.ts +1 -0
- package/src/core/ui-packs/vi.ts +1 -0
- package/src/core/ui-packs/zh-tw.ts +1 -0
- package/src/core/ui-packs/zh.ts +1 -0
- package/src/deploy/adapter-output.ts +7 -2
- package/src/deploy/adapters/cloudflare.ts +7 -5
- package/src/deploy/adapters/node.ts +47 -9
- package/src/deploy/adapters/types.ts +7 -3
- package/src/deploy/artifacts.ts +2 -1
- package/src/deploy/cloudflare-negotiation.ts +36 -7
- package/src/deploy/headers.ts +15 -1
- package/src/deploy/node-headers.ts +32 -20
- package/src/deploy/platforms/cloudflare.ts +14 -9
- package/src/deploy/platforms/netlify.ts +2 -1
- package/src/deploy/platforms/node.ts +12 -2
- package/src/deploy/platforms/types.ts +21 -7
- package/src/deploy/platforms/vercel.ts +115 -17
- package/src/deploy/redirects.ts +66 -6
- package/src/deploy/rss.ts +3 -1
- package/src/deploy/sitemap.ts +39 -5
- package/src/deploy/vercel-negotiation.ts +325 -103
- package/src/eval/agents.ts +18 -1
- package/src/eval/prompts.ts +6 -3
- package/src/eval/report.ts +34 -13
- package/src/eval/run.ts +5 -0
- package/src/markdown/base-links.ts +15 -14
- package/src/markdown/package-commands.ts +9 -8
- package/src/markdown/relative-links.ts +3 -2
- package/src/narration/build.ts +218 -40
- package/src/narration/provider.ts +89 -9
- package/src/openapi/checks.ts +273 -0
- package/src/openapi/graphql-build.ts +21 -0
- package/src/openapi/graphql.ts +11 -0
- package/src/openapi/model.ts +15 -3
- package/src/openapi/parse.ts +127 -2
- package/src/openapi/references.ts +43 -3
- package/src/openapi/render-mdx.ts +68 -8
- package/src/openapi/sentence.ts +29 -2
- package/src/openapi/source.ts +39 -14
- package/src/ratelimit/index.ts +1 -1
- package/src/ratelimit/runtime.ts +37 -19
- package/src/ratelimit/upstash.ts +40 -10
- package/src/reference/graphql.ts +15 -1
- package/src/reference/index.ts +1 -0
- package/src/reference/openapi.ts +2 -2
- package/src/reference/options.ts +29 -1
- package/src/registry/eject.ts +8 -2
- package/src/search/adapters/locale-scope.ts +30 -0
- package/src/search/adapters/typesense.ts +14 -4
- package/src/search/build.ts +21 -3
- package/src/search/orama-index.ts +163 -31
- package/src/search/source-pages.ts +29 -0
- package/src/search/sync/algolia.ts +99 -9
- package/src/search/sync/index.ts +52 -13
- package/src/search/sync/typesense.ts +72 -27
- package/src/seo/jsonld.ts +38 -20
- package/src/sources/contentful.ts +12 -0
- package/src/sources/github-releases.ts +7 -1
- package/src/sources/notion.ts +7 -0
- package/src/sources/shared.ts +3 -0
- package/src/theme/color.ts +9 -10
- package/src/theme/entry.ts +43 -6
- package/src/translate/validate.ts +23 -1
- package/dist/cli/chunk-0gz36akr.js.map +0 -12
- package/dist/cli/chunk-2n4ps1b3.js.map +0 -15
- package/dist/cli/chunk-43zcf4gz.js.map +0 -36
- package/dist/cli/chunk-4ejxbzee.js +0 -39
- package/dist/cli/chunk-4ejxbzee.js.map +0 -10
- package/dist/cli/chunk-4h8z9vv5.js.map +0 -16
- package/dist/cli/chunk-713mngdq.js.map +0 -14
- package/dist/cli/chunk-9xr4dgee.js.map +0 -10
- package/dist/cli/chunk-amrb6hgh.js +0 -145
- package/dist/cli/chunk-amrb6hgh.js.map +0 -11
- package/dist/cli/chunk-nd1821sk.js.map +0 -10
- package/dist/cli/chunk-rekqz4qg.js.map +0 -10
- package/dist/cli/chunk-ta27feev.js.map +0 -10
- package/dist/cli/chunk-xkz5xbtv.js.map +0 -213
- package/dist/cli/chunk-y5h4r2y0.js.map +0 -10
- package/dist/cli/chunk-zf748avv.js.map +0 -37
- /package/dist/cli/{chunk-9geymqns.js.map → chunk-0w6hs479.js.map} +0 -0
- /package/dist/cli/{chunk-y4ykbark.js.map → chunk-1f882900.js.map} +0 -0
- /package/dist/cli/{chunk-py62fewh.js.map → chunk-53jqw8z0.js.map} +0 -0
- /package/dist/cli/{chunk-5wj2qwn2.js.map → chunk-58bt3hag.js.map} +0 -0
- /package/dist/cli/{chunk-e7vvk5ya.js.map → chunk-5cmts6dv.js.map} +0 -0
- /package/dist/cli/{chunk-g2z9x01v.js.map → chunk-9qzgg6mj.js.map} +0 -0
- /package/dist/cli/{chunk-q3wxxq39.js.map → chunk-a57yh0h9.js.map} +0 -0
- /package/dist/cli/{chunk-2f3ndkpw.js.map → chunk-desvm72z.js.map} +0 -0
- /package/dist/cli/{chunk-gp84za0h.js.map → chunk-dhwtqnnd.js.map} +0 -0
- /package/dist/cli/{chunk-2f7n4qzt.js.map → chunk-dqhg54mr.js.map} +0 -0
- /package/dist/cli/{chunk-zhvd6adm.js.map → chunk-gfc5fqvf.js.map} +0 -0
- /package/dist/cli/{chunk-p804f3pe.js.map → chunk-hvcxng5f.js.map} +0 -0
- /package/dist/cli/{chunk-1n228xqb.js.map → chunk-kdpzw38a.js.map} +0 -0
- /package/dist/cli/{chunk-6bm0xpgd.js.map → chunk-s0bdnc7v.js.map} +0 -0
- /package/dist/cli/{chunk-cmtcnh9f.js.map → chunk-tfycddbt.js.map} +0 -0
- /package/dist/cli/{chunk-ntv4qrt7.js.map → chunk-y4msrwm9.js.map} +0 -0
- /package/dist/cli/{chunk-yj17vs39.js.map → chunk-ydp3065p.js.map} +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code-sample generation for an operation. Deliberately dependency-free: the
|
|
3
|
+
* playground client renders samples live in the browser, so this module must
|
|
4
|
+
* stay out of the server-only dependency graph (no helpers.ts, no
|
|
5
|
+
* openapi-sampler). Requests are assembled once by `buildRequest` in
|
|
6
|
+
* `request.ts`; the builders here only render a finished `RequestSample` as
|
|
7
|
+
* simple, copy-pasteable starter code — not an exhaustive SDK.
|
|
8
|
+
*/
|
|
9
|
+
export interface RequestSample {
|
|
10
|
+
method: string;
|
|
11
|
+
url: string;
|
|
12
|
+
headers: Record<string, string>;
|
|
13
|
+
/**
|
|
14
|
+
* The request body as sent, when the operation takes one: JSON text,
|
|
15
|
+
* form-urlencoded pairs, or a raw media type's text.
|
|
16
|
+
*/
|
|
17
|
+
body?: string;
|
|
18
|
+
bodyValue?: unknown;
|
|
19
|
+
/**
|
|
20
|
+
* A `multipart/form-data` body's parts as `[name, value]` pairs, set
|
|
21
|
+
* instead of `body`. The request carries no Content-Type of its own for
|
|
22
|
+
* them: the client writes one with the parts' boundary.
|
|
23
|
+
*/
|
|
24
|
+
formData?: [string, string][];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Whether fetch refuses to send `method` (an upper-case HTTP method). TRACE is
|
|
28
|
+
* one of the Fetch standard's forbidden methods, and the only one an OpenAPI
|
|
29
|
+
* spec can declare: browsers and Node's fetch alike throw a TypeError before
|
|
30
|
+
* any request goes out.
|
|
31
|
+
*/
|
|
32
|
+
export declare const fetchRefusesMethod: (method: string) => boolean;
|
|
33
|
+
/** A code-sample language: config id -> label, Shiki lang, and builder. */
|
|
34
|
+
export interface SampleLanguage {
|
|
35
|
+
id: string;
|
|
36
|
+
label: string;
|
|
37
|
+
lang: string;
|
|
38
|
+
build: (sample: RequestSample) => string;
|
|
39
|
+
}
|
|
40
|
+
/** Every id `codeSamples` accepts for a generated sample. */
|
|
41
|
+
export declare const SAMPLE_LANGUAGE_IDS: string[];
|
|
42
|
+
/** A configured id or alias, as the id it names (lowercased). */
|
|
43
|
+
export declare const sampleLanguageId: (raw: string) => string;
|
|
44
|
+
/** A language's display name and the Shiki language that highlights it. */
|
|
45
|
+
export interface SampleLanguageInfo {
|
|
46
|
+
label: string;
|
|
47
|
+
lang: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The display name and Shiki language of a language id or alias, or `null`
|
|
51
|
+
* when Blume doesn't generate that language.
|
|
52
|
+
*/
|
|
53
|
+
export declare const sampleLanguageInfo: (raw: string) => SampleLanguageInfo | null;
|
|
54
|
+
/** `openapi()`'s default `codeSamples`, which hand-written endpoint pages always use. */
|
|
55
|
+
export declare const DEFAULT_SAMPLE_LANGUAGES: string[];
|
|
56
|
+
/**
|
|
57
|
+
* The sample languages to render, resolved from config ids (unknown ids
|
|
58
|
+
* dropped), in order. `false` and an empty list both render none.
|
|
59
|
+
*/
|
|
60
|
+
export declare const sampleLanguages: (ids: string[] | false) => SampleLanguage[];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { UIStrings } from "./i18n-ui.ts";
|
|
1
2
|
import type { ResolvedConfig } from "./schema.ts";
|
|
2
3
|
import type { PageRecord } from "./types.ts";
|
|
3
4
|
/** Where the changelog timeline index is served. */
|
|
@@ -11,3 +12,10 @@ export declare const CHANGELOG_INDEX_ROUTE = "/changelog";
|
|
|
11
12
|
* `/changelog` tab at the index rather than its newest entry.
|
|
12
13
|
*/
|
|
13
14
|
export declare const hasChangelogIndex: (pages: Pick<PageRecord, "contentType" | "meta">[], config: ResolvedConfig) => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* A locale's UI strings with the index's title and description taken from
|
|
17
|
+
* the `changelog` config where it sets them (a string, or a per-locale map
|
|
18
|
+
* resolved like a header label), so every surface that reads the
|
|
19
|
+
* `changelog` strings (the page, its OG card, its Markdown mirror) agrees.
|
|
20
|
+
*/
|
|
21
|
+
export declare const withChangelogIndexText: (config: ResolvedConfig, ui: UIStrings, locale?: string) => UIStrings;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AstroIntegration } from "astro";
|
|
2
|
-
import type { AssistantAdapter, AssistantGatewayAdapter } from "../ai/ask.ts";
|
|
2
|
+
import type { AssistantAdapter, AssistantGatewayAdapter, AssistantOpenAIAdapter } from "../ai/ask.ts";
|
|
3
3
|
import type { ComponentMarkdown } from "../ai/component-markdown.ts";
|
|
4
4
|
import type { AnalyticsAdapter } from "../analytics/schema.ts";
|
|
5
5
|
import type { CaptchaAdapter } from "../captcha/schema.ts";
|
|
@@ -126,6 +126,18 @@ export interface FooterConfig {
|
|
|
126
126
|
*/
|
|
127
127
|
socials?: Partial<Record<FooterSocial, string>>;
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* The generated `/changelog` index's heading and description. Each is a
|
|
131
|
+
* string, or a map of locale code to text; the index renders in the default
|
|
132
|
+
* locale. Unset, they're the `changelog` UI strings (`Changelog` in English),
|
|
133
|
+
* which `i18n.ui` translates.
|
|
134
|
+
*/
|
|
135
|
+
export interface ChangelogConfig {
|
|
136
|
+
/** The index's description, below its heading and in its meta description. */
|
|
137
|
+
description?: LocalizableLabel;
|
|
138
|
+
/** The index's heading, page title, and OG card title. */
|
|
139
|
+
title?: LocalizableLabel;
|
|
140
|
+
}
|
|
129
141
|
/**
|
|
130
142
|
* Where content lives and how it's discovered. `root`/`include`/`exclude` are
|
|
131
143
|
* zero-config shorthand for a single `filesystem()` source; set `sources` to
|
|
@@ -441,6 +453,16 @@ export interface SearchPopularLink {
|
|
|
441
453
|
export type SearchProviderConfig = AnySearchAdapter | false;
|
|
442
454
|
/** The object form of `search`: the adapter plus adapter-independent settings. */
|
|
443
455
|
export interface SearchOptions {
|
|
456
|
+
/** What search reports to the configured analytics providers. */
|
|
457
|
+
analytics?: {
|
|
458
|
+
/**
|
|
459
|
+
* Send each query's text with the `search` and `search_select` events.
|
|
460
|
+
* Defaults to `true`. `false` sends the query's length (`queryChars`)
|
|
461
|
+
* instead, and the text rides only the `blume:track` DOM event, for a
|
|
462
|
+
* site to forward on its own terms.
|
|
463
|
+
*/
|
|
464
|
+
queries?: boolean;
|
|
465
|
+
};
|
|
444
466
|
/** Indexing behavior. */
|
|
445
467
|
indexing?: {
|
|
446
468
|
/**
|
|
@@ -463,7 +485,7 @@ export interface SearchOptions {
|
|
|
463
485
|
/**
|
|
464
486
|
* Search configuration. Pass an adapter directly (`search: algolia({…})`, or
|
|
465
487
|
* `false`) as shorthand for the object form, which also carries `popular`
|
|
466
|
-
* links and `indexing` settings.
|
|
488
|
+
* links and `indexing` and `analytics` settings.
|
|
467
489
|
*/
|
|
468
490
|
export type SearchConfig = SearchProviderConfig | SearchOptions;
|
|
469
491
|
/** An empty-state prompt shown before the first question to the assistant. */
|
|
@@ -1177,8 +1199,8 @@ export interface MarkdownConfig {
|
|
|
1177
1199
|
export interface ReactConfig {
|
|
1178
1200
|
/**
|
|
1179
1201
|
* Auto-memoize React components/hooks with the React Compiler
|
|
1180
|
-
* (`
|
|
1181
|
-
* set to `false` to skip the compiler
|
|
1202
|
+
* (`oxc-transform-react`). On by default whenever React is enabled;
|
|
1203
|
+
* set to `false` to skip the compiler pass. Defaults to `true`.
|
|
1182
1204
|
*/
|
|
1183
1205
|
compiler?: boolean;
|
|
1184
1206
|
}
|
|
@@ -1233,9 +1255,11 @@ export type NarrationConfig = boolean | {
|
|
|
1233
1255
|
/**
|
|
1234
1256
|
* Generate audio at build with a speech model:
|
|
1235
1257
|
* `gateway({ model: "openai/tts-1-hd", voice: "alloy" })` from
|
|
1236
|
-
* `blume/ai
|
|
1258
|
+
* `blume/ai`, or `openai({ model, voice })` for OpenAI or, with a
|
|
1259
|
+
* `baseUrl`, any OpenAI-compatible speech endpoint. Without it, pages
|
|
1260
|
+
* are read with browser voices.
|
|
1237
1261
|
*/
|
|
1238
|
-
provider?: AssistantGatewayAdapter;
|
|
1262
|
+
provider?: AssistantGatewayAdapter | AssistantOpenAIAdapter;
|
|
1239
1263
|
};
|
|
1240
1264
|
/**
|
|
1241
1265
|
* Opt-in custom frontmatter keys. Page frontmatter is strictly validated —
|
|
@@ -1341,6 +1365,11 @@ export interface BlumeConfig {
|
|
|
1341
1365
|
* compose: with both set, a page lands at `{deployment.base}/{basePath}/page`.
|
|
1342
1366
|
*/
|
|
1343
1367
|
basePath?: string;
|
|
1368
|
+
/**
|
|
1369
|
+
* The generated `/changelog` index's title and description, each a string
|
|
1370
|
+
* or a per-locale map. Unset, they're the `changelog` UI strings.
|
|
1371
|
+
*/
|
|
1372
|
+
changelog?: ChangelogConfig;
|
|
1344
1373
|
/**
|
|
1345
1374
|
* Ask readers before analytics runs, with an adapter from `blume/consent`:
|
|
1346
1375
|
* `native()` for Blume's own banner, or a hosted consent manager
|
|
@@ -1403,6 +1432,8 @@ export interface BlumeConfig {
|
|
|
1403
1432
|
narration?: NarrationConfig;
|
|
1404
1433
|
/** Header, sidebar, tabs, and switchers. */
|
|
1405
1434
|
navigation?: NavigationConfig;
|
|
1435
|
+
/** Send `X-Powered-By: Blume` with responses. Defaults to `true`. */
|
|
1436
|
+
poweredBy?: boolean;
|
|
1406
1437
|
/**
|
|
1407
1438
|
* Limit how often one reader (by IP address) can call the server routes —
|
|
1408
1439
|
* the assistant, the API playground proxy, server-side search — with an
|
|
@@ -264,6 +264,10 @@ export interface BlumeDataConfig {
|
|
|
264
264
|
/** Repository URL for header/edit links, or `null`. */
|
|
265
265
|
repoUrl: string | null;
|
|
266
266
|
search: {
|
|
267
|
+
/** `search.analytics`: whether the dialog's events carry each query's text. */
|
|
268
|
+
analytics: {
|
|
269
|
+
queries: boolean;
|
|
270
|
+
};
|
|
267
271
|
enabled: boolean;
|
|
268
272
|
/** Resolved empty-state links; empty when unset (Search falls back to sidebar). */
|
|
269
273
|
popular: {
|
|
@@ -56,6 +56,7 @@ declare const uiStringsObject: z.ZodObject<{
|
|
|
56
56
|
}, z.core.$strip>>;
|
|
57
57
|
changelog: z.ZodPrefault<z.ZodObject<{
|
|
58
58
|
description: z.ZodDefault<z.ZodString>;
|
|
59
|
+
empty: z.ZodDefault<z.ZodString>;
|
|
59
60
|
title: z.ZodDefault<z.ZodString>;
|
|
60
61
|
}, z.core.$strip>>;
|
|
61
62
|
consent: z.ZodPrefault<z.ZodObject<{
|
|
@@ -227,6 +228,7 @@ export declare const uiStringsSchema: z.ZodPrefault<z.ZodObject<{
|
|
|
227
228
|
}, z.core.$strip>>;
|
|
228
229
|
changelog: z.ZodPrefault<z.ZodObject<{
|
|
229
230
|
description: z.ZodDefault<z.ZodString>;
|
|
231
|
+
empty: z.ZodDefault<z.ZodString>;
|
|
230
232
|
title: z.ZodDefault<z.ZodString>;
|
|
231
233
|
}, z.core.$strip>>;
|
|
232
234
|
consent: z.ZodPrefault<z.ZodObject<{
|
|
@@ -58,6 +58,12 @@ export interface FileRouteIndex {
|
|
|
58
58
|
* into the reader's locale onto the fallback copy.
|
|
59
59
|
*/
|
|
60
60
|
byDefaultNavPath: Map<string, string>;
|
|
61
|
+
/**
|
|
62
|
+
* A staged page's entry id (`<source>/<ref>`) → its route. A remote
|
|
63
|
+
* source's files have no path on disk, so a file link between two of them
|
|
64
|
+
* (`./02-errors.mdx`) resolves by entry id, as the rendered link does.
|
|
65
|
+
*/
|
|
66
|
+
byEntryId: Map<string, string>;
|
|
61
67
|
}
|
|
62
68
|
/** The linking side of a file link: where the page's source lives. */
|
|
63
69
|
export interface FileLinkBase {
|
|
@@ -90,6 +96,8 @@ export declare const validateLinks: (graph: ContentGraph, options: {
|
|
|
90
96
|
i18n?: LocaleRouting | null;
|
|
91
97
|
publicDir: string | null;
|
|
92
98
|
checkExternal?: boolean;
|
|
99
|
+
/** External URLs not to request (`--ignore`). Internal links are always checked. */
|
|
100
|
+
ignore?: (url: string) => boolean;
|
|
93
101
|
/** Configured redirects; their `from` paths count as valid link targets. */
|
|
94
102
|
redirects?: {
|
|
95
103
|
from: string;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The header that names Blume as the framework behind a response, sent unless
|
|
3
|
+
* `poweredBy` is `false`. The dev server and Blume's runtime middleware
|
|
4
|
+
* (`components/powered-by-middleware.ts`) send it, and so does every host
|
|
5
|
+
* for the built site: static hosts through `deploy/headers.ts`'s rules,
|
|
6
|
+
* server builds through each platform's own mechanism (`deploy/platforms`).
|
|
7
|
+
* It lives apart from those modules so the runtime middleware can import it
|
|
8
|
+
* without pulling in the deploy code.
|
|
9
|
+
*/
|
|
10
|
+
export declare const POWERED_BY_HEADERS: {
|
|
11
|
+
"X-Powered-By": string;
|
|
12
|
+
};
|
|
@@ -7,6 +7,8 @@ export interface ProbeResult {
|
|
|
7
7
|
status?: number;
|
|
8
8
|
timedOut?: boolean;
|
|
9
9
|
error?: string;
|
|
10
|
+
/** The system error code behind a request that got no response (`ENOTFOUND`). */
|
|
11
|
+
code?: string;
|
|
10
12
|
/** Whether the request was redirected before landing on `status`. */
|
|
11
13
|
redirected?: boolean;
|
|
12
14
|
/** The URL finally landed on, after following redirects. */
|
|
@@ -48,4 +48,10 @@ export declare const scanProject: (root: string, options?: {
|
|
|
48
48
|
overrides?: ConfigOverrides;
|
|
49
49
|
/** Relocate the generated runtime (e.g. `.blume-verify` for isolation). */
|
|
50
50
|
runtimeDir?: string;
|
|
51
|
+
/**
|
|
52
|
+
* Called with the resolved config before any source loads, so a command
|
|
53
|
+
* can report an unset secret ahead of a fetch that fails without it: a
|
|
54
|
+
* source that can't load fails the scan, and nothing after it runs.
|
|
55
|
+
*/
|
|
56
|
+
beforeSources?: (config: ResolvedConfig) => void;
|
|
51
57
|
}) => Promise<BlumeProject>;
|
|
@@ -115,11 +115,19 @@ export type CompiledRedirect = [
|
|
|
115
115
|
];
|
|
116
116
|
/**
|
|
117
117
|
* The pattern redirects among `redirects`, compiled for the server wrappers
|
|
118
|
-
* and
|
|
119
|
-
* percent-encoded as the header needs; a capture is encoded when
|
|
120
|
-
* (see {@link fillLocation}).
|
|
118
|
+
* and Vercel's routing config, in the order to try them. The `Location`
|
|
119
|
+
* template is percent-encoded as the header needs; a capture is encoded when
|
|
120
|
+
* it's filled (see {@link fillLocation}).
|
|
121
121
|
*/
|
|
122
122
|
export declare const compileRedirects: (redirects: readonly RedirectEnds[]) => CompiledRedirect[];
|
|
123
|
+
/**
|
|
124
|
+
* Every redirect among `redirects` compiled, exact paths first: a pattern as
|
|
125
|
+
* {@link compileRedirects} compiles it, an exact path as a rule matching
|
|
126
|
+
* just that path, a trailing slash optional. What the dev server answers
|
|
127
|
+
* with, where Astro's own handler would send an exact redirect to a page
|
|
128
|
+
* served by `[...slug]` as a `301` whatever its status.
|
|
129
|
+
*/
|
|
130
|
+
export declare const compileEveryRedirect: (redirects: readonly RedirectEnds[]) => CompiledRedirect[];
|
|
123
131
|
/** A captured value, encoded for a `Location` header that must not grow a query or fragment. */
|
|
124
132
|
export declare const encodeCapture: (value: string) => string;
|
|
125
133
|
/** A `Location` template with its `$n` references filled from `match`. */
|