blume 2.0.3 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -0
- package/CHANGELOG.md +142 -0
- package/README.md +1 -1
- package/dist/cli/{chunk-5f86nr5m.js → chunk-073rdvgb.js} +21 -48
- package/dist/cli/{chunk-5f86nr5m.js.map → chunk-073rdvgb.js.map} +4 -5
- 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-150jk7km.js +52 -0
- package/dist/cli/chunk-150jk7km.js.map +10 -0
- package/dist/cli/{chunk-9t7a85s3.js → chunk-313vnn40.js} +30 -19
- package/dist/cli/chunk-313vnn40.js.map +10 -0
- package/dist/cli/{chunk-tkacnehg.js → chunk-3v3ffbrj.js} +2 -2
- package/dist/cli/{chunk-q58y5e6a.js → chunk-3x6x3pph.js} +46 -24
- package/dist/cli/chunk-3x6x3pph.js.map +10 -0
- package/dist/cli/{chunk-1d7ve1dm.js → chunk-42t4jxdx.js} +37 -5
- package/dist/cli/chunk-42t4jxdx.js.map +12 -0
- package/dist/cli/{chunk-8ktnccpt.js → chunk-54ztw1nj.js} +21 -2
- package/dist/cli/chunk-54ztw1nj.js.map +10 -0
- package/dist/cli/{chunk-hm3vjy5s.js → chunk-5vjtgs6e.js} +28 -10
- package/dist/cli/{chunk-hm3vjy5s.js.map → chunk-5vjtgs6e.js.map} +4 -4
- package/dist/cli/chunk-66w9j7p6.js +322 -0
- package/dist/cli/chunk-66w9j7p6.js.map +14 -0
- package/dist/cli/{chunk-2hsdwb9n.js → chunk-7ppf1rva.js} +34 -18
- package/dist/cli/chunk-7ppf1rva.js.map +10 -0
- package/dist/cli/{chunk-r9rcc4w7.js → chunk-8y2kmjv8.js} +7 -7
- package/dist/cli/{chunk-r20tn01b.js → chunk-c1y538kd.js} +8 -2
- package/dist/cli/{chunk-r20tn01b.js.map → chunk-c1y538kd.js.map} +3 -3
- package/dist/cli/{chunk-2eytanqx.js → chunk-c887fj0s.js} +2 -2
- package/dist/cli/{chunk-p3v96n38.js → chunk-cfyg47zg.js} +16 -6
- package/dist/cli/chunk-cfyg47zg.js.map +10 -0
- package/dist/cli/chunk-cm89scdv.js +443 -0
- package/dist/cli/chunk-cm89scdv.js.map +11 -0
- package/dist/cli/{chunk-akbpwfxc.js → chunk-dzwehpy7.js} +2 -2
- package/dist/cli/{chunk-wrr3j9w9.js → chunk-e6atmn4h.js} +299 -72
- package/dist/cli/chunk-e6atmn4h.js.map +36 -0
- package/dist/cli/{chunk-tzmab476.js → chunk-e8xw9qkh.js} +8 -6
- package/dist/cli/{chunk-tzmab476.js.map → chunk-e8xw9qkh.js.map} +3 -3
- package/dist/cli/{chunk-6dsbexzp.js → chunk-e9q7a2ak.js} +17 -15
- package/dist/cli/{chunk-6dsbexzp.js.map → chunk-e9q7a2ak.js.map} +2 -2
- package/dist/cli/{chunk-pv29h0wf.js → chunk-ehweg4fr.js} +5155 -1249
- package/dist/cli/chunk-ehweg4fr.js.map +218 -0
- package/dist/cli/{chunk-c8chx29p.js → chunk-ep6nd0rn.js} +390 -318
- package/dist/cli/chunk-ep6nd0rn.js.map +36 -0
- package/dist/cli/{chunk-p73c0m7w.js → chunk-fdrkhpjy.js} +18 -15
- package/dist/cli/{chunk-p73c0m7w.js.map → chunk-fdrkhpjy.js.map} +3 -3
- package/dist/cli/{chunk-2z928egk.js → chunk-ft9vfys6.js} +5 -5
- package/dist/cli/{chunk-5m5nmvyq.js → chunk-gb420vvz.js} +316 -79
- package/dist/cli/chunk-gb420vvz.js.map +17 -0
- package/dist/cli/{chunk-vg9r4eb9.js → chunk-hebn0tpx.js} +86 -13
- package/dist/cli/chunk-hebn0tpx.js.map +14 -0
- package/dist/cli/{chunk-35d4wj9f.js → chunk-htrwgabr.js} +41 -23
- package/dist/cli/chunk-htrwgabr.js.map +15 -0
- package/dist/cli/{chunk-g4hq16wv.js → chunk-hx3xqnk9.js} +16 -14
- package/dist/cli/{chunk-g4hq16wv.js.map → chunk-hx3xqnk9.js.map} +2 -2
- package/dist/cli/chunk-j134vrp2.js +65 -0
- package/dist/cli/chunk-j134vrp2.js.map +10 -0
- package/dist/cli/{chunk-a58773jm.js → chunk-kma9f6sf.js} +2 -2
- package/dist/cli/chunk-kwrg63tm.js +31 -0
- package/dist/cli/chunk-kwrg63tm.js.map +10 -0
- package/dist/cli/{chunk-ey84smr6.js → chunk-mrcccgnh.js} +6 -6
- package/dist/cli/{chunk-ey84smr6.js.map → chunk-mrcccgnh.js.map} +1 -1
- package/dist/cli/{chunk-yfyb25rh.js → chunk-n0v7m8ry.js} +24 -8
- package/dist/cli/chunk-n0v7m8ry.js.map +14 -0
- package/dist/cli/{chunk-j85vccga.js → chunk-ncj7w596.js} +576 -367
- package/dist/cli/chunk-ncj7w596.js.map +35 -0
- package/dist/cli/{chunk-5xvm6tfj.js → chunk-nq1d20w2.js} +17 -15
- package/dist/cli/{chunk-5xvm6tfj.js.map → chunk-nq1d20w2.js.map} +2 -2
- package/dist/cli/{chunk-pehfxfta.js → chunk-nrns10mj.js} +6 -98
- package/dist/cli/chunk-nrns10mj.js.map +10 -0
- package/dist/cli/{chunk-crgn1q09.js → chunk-sds923fa.js} +4 -4
- package/dist/cli/chunk-t2m5j4pr.js +104 -0
- package/dist/cli/chunk-t2m5j4pr.js.map +11 -0
- package/dist/cli/{chunk-acanzt5p.js → chunk-tdqhyxfz.js} +6 -6
- package/dist/cli/chunk-tphac74f.js +126 -0
- package/dist/cli/chunk-tphac74f.js.map +11 -0
- package/dist/cli/chunk-w1r4vase.js +18 -0
- package/dist/cli/chunk-w1r4vase.js.map +10 -0
- package/dist/cli/{chunk-3em5wd2y.js → chunk-zccbjcj0.js} +4 -3
- package/dist/cli/{chunk-3em5wd2y.js.map → chunk-zccbjcj0.js.map} +2 -2
- package/dist/cli/index.js +31 -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 +26 -0
- package/dist/types/ai/ask.d.ts +271 -58
- package/dist/types/ai/component-markdown.d.ts +2 -0
- package/dist/types/ai/index.d.ts +2 -2
- package/dist/types/ai/openapi-components.d.ts +4 -1
- package/dist/types/ai/site-skill.d.ts +26 -0
- package/dist/types/ai/skills.d.ts +16 -0
- package/dist/types/astro/integration.d.ts +9 -0
- package/dist/types/astro/markdown-negotiation.d.ts +3 -0
- package/dist/types/astro/pages.d.ts +10 -0
- 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/cli/init/scaffold.d.ts +1 -1
- package/dist/types/components/content/api-field.d.ts +62 -0
- package/dist/types/components/content/api-page.d.ts +100 -0
- package/dist/types/components/layout/nav-utils.d.ts +26 -0
- package/dist/types/components/openapi/code-samples.d.ts +29 -0
- package/dist/types/components/openapi/helpers.d.ts +158 -0
- package/dist/types/components/openapi/security.d.ts +95 -0
- package/dist/types/components/openapi/snippets.d.ts +60 -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/changelog-index.d.ts +8 -0
- package/dist/types/core/config-input.d.ts +217 -23
- package/dist/types/core/data.d.ts +53 -4
- package/dist/types/core/footer.d.ts +8 -0
- package/dist/types/core/i18n-ui.d.ts +88 -0
- package/dist/types/core/includes.d.ts +8 -2
- package/dist/types/core/links.d.ts +8 -0
- package/dist/types/core/localizable.d.ts +7 -0
- package/dist/types/core/page-modes.d.ts +29 -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 +152 -0
- package/dist/types/core/related.d.ts +40 -0
- package/dist/types/core/schema.d.ts +670 -56
- 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/normalize.d.ts +20 -1
- package/dist/types/core/sources/read.d.ts +5 -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 +18 -1
- package/dist/types/core/variables.d.ts +42 -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/node-headers.d.ts +13 -2
- package/dist/types/deploy/platforms/cloudflare.d.ts +15 -7
- package/dist/types/deploy/platforms/netlify.d.ts +7 -0
- 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 +26 -1
- package/dist/types/deploy/redirects.d.ts +55 -11
- package/dist/types/deploy/sitemap.d.ts +2 -1
- package/dist/types/deploy/vercel-negotiation.d.ts +51 -21
- package/dist/types/markdown/code-title.d.ts +17 -0
- package/dist/types/markdown/features.d.ts +3 -2
- 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/checks.d.ts +27 -0
- package/dist/types/openapi/graphql.d.ts +6 -0
- package/dist/types/openapi/model.d.ts +27 -10
- package/dist/types/openapi/overlay.d.ts +54 -0
- package/dist/types/openapi/parse.d.ts +16 -0
- package/dist/types/openapi/references.d.ts +30 -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 +119 -0
- package/dist/types/ratelimit/upstash.d.ts +46 -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 +89 -11
- package/dist/types/reference/index.d.ts +1 -1
- package/dist/types/reference/openapi.d.ts +33 -12
- package/dist/types/reference/options.d.ts +82 -6
- package/dist/types/reference/scalar.d.ts +13 -0
- package/dist/types/reference/schema.d.ts +144 -36
- 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/documents.d.ts +12 -1
- package/dist/types/search/orama-index.d.ts +13 -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/metatags.d.ts +20 -0
- package/dist/types/sources/contentful.d.ts +16 -0
- package/dist/types/sources/github-releases.d.ts +8 -1
- package/dist/types/sources/payload.d.ts +2 -0
- package/dist/types/sources/registry.d.ts +54 -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 +71 -17
- package/docs/03-upgrading.mdx +4 -4
- package/docs/04-migrating.mdx +1 -1
- package/docs/advanced/changelog.mdx +13 -2
- package/docs/advanced/skills.mdx +15 -1
- package/docs/cli/audit.mdx +51 -8
- package/docs/cli/doctor.mdx +5 -1
- package/docs/cli/evals.mdx +4 -4
- package/docs/cli/index.mdx +1 -0
- package/docs/cli/translate.mdx +1 -0
- package/docs/cli/validate.mdx +4 -3
- package/docs/configuration/analytics.mdx +3 -1
- package/docs/configuration/assistant.mdx +194 -38
- package/docs/configuration/consent.mdx +100 -0
- package/docs/configuration/customization.mdx +8 -6
- package/docs/configuration/export.mdx +5 -3
- package/docs/configuration/index.mdx +64 -5
- package/docs/configuration/meta.ts +3 -0
- package/docs/configuration/narration.mdx +119 -0
- package/docs/configuration/rate-limiting.mdx +90 -0
- package/docs/configuration/search.mdx +63 -12
- package/docs/configuration/theming.mdx +3 -1
- package/docs/content/components.mdx +108 -2
- package/docs/content/frontmatter.mdx +80 -2
- package/docs/content/i18n.mdx +39 -4
- package/docs/content/includes.mdx +16 -0
- package/docs/content/meta.mdx +1 -0
- package/docs/content/meta.ts +1 -0
- package/docs/content/navigation.mdx +32 -10
- package/docs/content/sources/contentful.mdx +35 -0
- package/docs/content/sources/custom.mdx +43 -0
- package/docs/content/sources/github-releases.mdx +39 -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 +31 -0
- package/docs/content/sources/remote-mdx.mdx +44 -0
- package/docs/content/sources/sanity.mdx +29 -0
- package/docs/content/sources/strapi.mdx +32 -0
- package/docs/content/syntax.mdx +69 -4
- package/docs/content/variables.mdx +41 -0
- package/docs/discoverability/agent-discovery.mdx +29 -2
- package/docs/discoverability/index.mdx +2 -2
- package/docs/discoverability/json-api.mdx +2 -0
- package/docs/discoverability/llms-txt.mdx +2 -2
- package/docs/discoverability/markdown.mdx +3 -1
- package/docs/discoverability/mcp.mdx +4 -0
- package/docs/discoverability/metadata.mdx +17 -0
- package/docs/discoverability/sitemap-and-robots.mdx +1 -1
- package/docs/references/api-pages.mdx +74 -0
- package/docs/references/asyncapi.mdx +4 -2
- package/docs/references/graphql.mdx +14 -2
- package/docs/references/meta.ts +1 -1
- package/docs/references/openapi.mdx +148 -7
- package/docs/references/scalar.mdx +3 -1
- package/package.json +43 -8
- package/skills/blume/SKILL.md +3 -0
- package/skills/blume-migrate/SKILL.md +6 -6
- package/skills/blume-migrate/references/docusaurus.md +7 -7
- package/skills/blume-migrate/references/fumadocs.md +17 -13
- package/skills/blume-migrate/references/mintlify.md +37 -19
- package/skills/blume-migrate/references/nextra.md +10 -7
- package/skills/blume-migrate/references/starlight.md +11 -8
- package/skills/blume-migrate/scripts/mintlify-codemod.mjs +60 -14
- package/skills/blume-write-skill/SKILL.md +82 -0
- package/src/ai/agent-readability.ts +2 -1
- package/src/ai/agent-surface.ts +9 -7
- package/src/ai/ai-catalog.ts +6 -3
- package/src/ai/ask-context.ts +103 -20
- package/src/ai/ask-data.ts +6 -0
- package/src/ai/ask-limits.ts +13 -0
- package/src/ai/ask-tools.ts +142 -0
- package/src/ai/ask.ts +354 -76
- package/src/ai/changelog-markdown.ts +11 -6
- package/src/ai/component-markdown.ts +76 -1
- package/src/ai/cors.ts +14 -3
- package/src/ai/index.ts +12 -0
- package/src/ai/llms.ts +6 -2
- package/src/ai/markdown.ts +2 -1
- package/src/ai/mcp/data.ts +6 -0
- package/src/ai/mcp/query.ts +14 -6
- package/src/ai/openapi-components.ts +36 -6
- package/src/ai/relative-links.ts +4 -38
- package/src/ai/site-skill.ts +274 -0
- package/src/ai/skills.ts +35 -2
- package/src/ai/write-skill.ts +97 -0
- package/src/astro/generate.ts +210 -66
- package/src/astro/index.ts +1 -0
- package/src/astro/integration.ts +42 -4
- package/src/astro/markdown-negotiation.ts +3 -0
- package/src/astro/module-types.ts +9 -1
- package/src/astro/pages.ts +23 -0
- package/src/astro/templates.ts +406 -108
- package/src/astro/variables.ts +31 -0
- package/src/audit/catalog.ts +38 -3
- 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 +19 -13
- 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/checks/sitemap.ts +2 -3
- package/src/audit/redirects.ts +46 -15
- package/src/audit/run.ts +5 -0
- package/src/audit/types.ts +4 -1
- package/src/audit/url.ts +14 -5
- package/src/blume-modules.d.ts +12 -1
- 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 +51 -0
- package/src/cli/build-failure.ts +23 -0
- package/src/cli/command-meta.ts +5 -0
- package/src/cli/commands/audit.ts +10 -1
- package/src/cli/commands/dev.ts +18 -2
- package/src/cli/commands/doctor.ts +67 -28
- package/src/cli/commands/eval.ts +36 -4
- package/src/cli/commands/init.ts +6 -4
- package/src/cli/commands/skill.ts +96 -0
- package/src/cli/commands/validate.ts +10 -1
- package/src/cli/index.ts +5 -0
- package/src/cli/init/scaffold.ts +3 -3
- package/src/cli/prepare.ts +6 -3
- package/src/cli/required-secrets.ts +72 -30
- package/src/components/BlumePage.astro +2 -0
- package/src/components/content/ApiEndpoint.astro +18 -0
- package/src/components/content/ApiField.astro +79 -0
- package/src/components/content/ApiPlayground.astro +66 -0
- package/src/components/content/ApiRail.astro +19 -0
- package/src/components/content/Color.astro +1 -0
- 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/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 +103 -0
- package/src/components/content/api-page.ts +248 -0
- package/src/components/content/mermaid-element.ts +15 -1
- 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 +104 -14
- package/src/components/islands/code-question.ts +62 -0
- package/src/components/islands/hooks.ts +136 -21
- package/src/components/islands/support-link.ts +68 -0
- package/src/components/layout/Analytics.astro +11 -2
- package/src/components/layout/Banner.astro +14 -10
- package/src/components/layout/Breadcrumbs.astro +6 -2
- 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/DrawerSwitchers.astro +51 -0
- package/src/components/layout/Empty.astro +2 -2
- package/src/components/layout/Header.astro +122 -80
- package/src/components/layout/LanguageSwitcher.astro +48 -15
- package/src/components/layout/NarrationPlayer.astro +1085 -0
- package/src/components/layout/NavSelector.astro +33 -7
- package/src/components/layout/PageActions.astro +139 -24
- package/src/components/layout/PageFeedback.astro +54 -49
- package/src/components/layout/PageLayout.astro +71 -3
- package/src/components/layout/ReferenceLayout.astro +17 -6
- package/src/components/layout/RelatedPages.astro +42 -0
- package/src/components/layout/RootLayout.astro +318 -47
- package/src/components/layout/Search.astro +47 -19
- package/src/components/layout/SiteFooter.astro +124 -0
- package/src/components/layout/SiteMetatags.astro +16 -0
- package/src/components/layout/TableOfContents.astro +24 -17
- 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/head-scripts.ts +6 -1
- 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/algolia.ts +10 -1
- package/src/components/layout/search/analytics.ts +126 -0
- package/src/components/layout/search/endpoint.ts +48 -5
- package/src/components/layout/search/flexsearch.ts +17 -5
- package/src/components/layout/search/orama-cloud.ts +26 -14
- package/src/components/layout/search/pagefind.ts +114 -5
- package/src/components/layout/search/types.ts +32 -0
- package/src/components/layout/search/typesense.ts +19 -3
- 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 +184 -13
- package/src/components/openapi/ParametersTable.astro +8 -4
- package/src/components/openapi/Playground.astro +7 -1
- package/src/components/openapi/RequestBody.astro +24 -5
- package/src/components/openapi/RequestPanel.astro +59 -7
- package/src/components/openapi/Responses.astro +7 -4
- package/src/components/openapi/SchemaTable.astro +15 -3
- package/src/components/openapi/async-snippets.ts +65 -9
- package/src/components/openapi/async.ts +123 -29
- package/src/components/openapi/code-samples.ts +97 -0
- 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 +24 -5
- package/src/components/openapi/playground-schema.ts +1 -1
- package/src/components/openapi/schema-tree.ts +44 -14
- package/src/components/openapi/security.ts +16 -3
- package/src/components/openapi/snippets.ts +873 -10
- package/src/components/openapi/validate-json.ts +4 -3
- 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/builtin-tags.ts +5 -0
- package/src/core/changelog-index.ts +31 -1
- package/src/core/client-address.ts +19 -0
- package/src/core/component-diagnostics.ts +53 -0
- package/src/core/component-overrides.ts +32 -0
- package/src/core/config-input.ts +225 -23
- package/src/core/data.ts +46 -4
- package/src/core/diagnostics.ts +8 -2
- package/src/core/footer.ts +26 -0
- package/src/core/graph.ts +39 -36
- package/src/core/i18n-ui.ts +84 -2
- package/src/core/includes.ts +21 -4
- package/src/core/links.ts +63 -19
- package/src/core/localizable.ts +26 -0
- package/src/core/navigation.ts +43 -12
- package/src/core/page-modes.ts +56 -0
- package/src/core/probe.ts +26 -6
- package/src/core/project-graph.ts +163 -16
- package/src/core/redirect-patterns.ts +520 -0
- package/src/core/related.ts +131 -0
- package/src/core/schema.ts +339 -66
- 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/mdx-remote.ts +62 -10
- package/src/core/sources/normalize.ts +228 -41
- package/src/core/sources/notion.ts +7 -1
- package/src/core/sources/obsidian.ts +16 -3
- package/src/core/sources/payload.ts +38 -15
- package/src/core/sources/read.ts +8 -3
- 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 +19 -1
- package/src/core/ui-packs/ar.ts +44 -0
- package/src/core/ui-packs/bg.ts +46 -0
- package/src/core/ui-packs/bn.ts +44 -0
- package/src/core/ui-packs/ca.ts +47 -0
- package/src/core/ui-packs/cs.ts +45 -0
- package/src/core/ui-packs/da.ts +46 -0
- package/src/core/ui-packs/de.ts +47 -0
- package/src/core/ui-packs/el.ts +46 -0
- package/src/core/ui-packs/es.ts +47 -0
- package/src/core/ui-packs/fa.ts +46 -0
- package/src/core/ui-packs/fi.ts +46 -0
- package/src/core/ui-packs/fr.ts +47 -0
- package/src/core/ui-packs/he.ts +44 -0
- package/src/core/ui-packs/hi.ts +45 -0
- package/src/core/ui-packs/hr.ts +46 -0
- package/src/core/ui-packs/hu.ts +45 -0
- package/src/core/ui-packs/id.ts +46 -0
- package/src/core/ui-packs/it.ts +46 -0
- package/src/core/ui-packs/ja.ts +46 -0
- package/src/core/ui-packs/ko.ts +45 -0
- package/src/core/ui-packs/nl.ts +47 -0
- package/src/core/ui-packs/no.ts +45 -0
- package/src/core/ui-packs/pl.ts +46 -0
- package/src/core/ui-packs/pt-br.ts +47 -0
- package/src/core/ui-packs/pt.ts +46 -0
- package/src/core/ui-packs/ro.ts +46 -0
- package/src/core/ui-packs/ru.ts +46 -0
- package/src/core/ui-packs/sk.ts +45 -0
- package/src/core/ui-packs/sr.ts +46 -0
- package/src/core/ui-packs/sv.ts +45 -0
- package/src/core/ui-packs/th.ts +44 -0
- package/src/core/ui-packs/tr.ts +46 -0
- package/src/core/ui-packs/uk.ts +46 -0
- package/src/core/ui-packs/vi.ts +46 -0
- package/src/core/ui-packs/zh-tw.ts +44 -0
- package/src/core/ui-packs/zh.ts +44 -0
- package/src/core/variables.ts +103 -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 +79 -9
- package/src/deploy/cloudflare-negotiation.ts +35 -5
- package/src/deploy/headers.ts +2 -1
- package/src/deploy/node-headers.ts +63 -9
- package/src/deploy/platforms/cloudflare.ts +45 -9
- package/src/deploy/platforms/netlify.ts +35 -2
- package/src/deploy/platforms/node.ts +12 -2
- package/src/deploy/platforms/types.ts +21 -7
- package/src/deploy/platforms/vercel.ts +149 -17
- package/src/deploy/redirects.ts +151 -24
- package/src/deploy/rss.ts +3 -1
- package/src/deploy/sitemap.ts +39 -5
- package/src/deploy/vercel-negotiation.ts +326 -102
- 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/api-rail.ts +259 -0
- package/src/markdown/code-title.ts +35 -9
- package/src/markdown/features.ts +3 -2
- package/src/markdown/fence-meta.ts +2 -0
- package/src/markdown/include.ts +11 -1
- package/src/markdown/index.ts +28 -5
- package/src/markdown/math.ts +4 -4
- package/src/markdown/relative-links.ts +3 -2
- 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 +7 -6
- 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 +72 -27
- package/src/openapi/overlay.ts +256 -0
- package/src/openapi/parse.ts +182 -4
- package/src/openapi/references.ts +64 -8
- package/src/openapi/render-mdx.ts +5 -1
- package/src/openapi/scalar.ts +40 -6
- package/src/openapi/source.ts +40 -15
- 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 +247 -0
- package/src/ratelimit/schema.ts +28 -0
- package/src/ratelimit/upstash.ts +60 -0
- package/src/ratelimit/wrangler.ts +70 -0
- package/src/reference/asyncapi.ts +2 -2
- package/src/reference/graphql.ts +20 -3
- package/src/reference/index.ts +1 -0
- package/src/reference/openapi.ts +21 -7
- package/src/reference/options.ts +80 -8
- package/src/reference/scalar.ts +33 -8
- package/src/registry/eject.ts +23 -5
- package/src/registry/registry.ts +7 -0
- 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/documents.ts +26 -2
- package/src/search/orama-index.ts +191 -34
- package/src/search/pagefind-ranking.ts +39 -0
- package/src/search/source-pages.ts +29 -0
- package/src/search/sync/algolia.ts +111 -10
- package/src/search/sync/index.ts +52 -13
- package/src/search/sync/orama-cloud.ts +3 -0
- package/src/search/sync/typesense.ts +76 -26
- package/src/seo/metatags.ts +67 -0
- package/src/sources/contentful.ts +12 -0
- package/src/sources/github-releases.ts +7 -1
- package/src/sources/shared.ts +3 -0
- package/src/theme/chrome-icons.ts +1 -0
- package/src/theme/color.ts +500 -0
- package/src/theme/entry.ts +85 -6
- package/src/theme/palette.ts +121 -45
- package/src/translate/prompts.ts +1 -0
- package/src/translate/validate.ts +31 -3
- package/src/upgrade/upgrade.ts +4 -171
- package/dist/cli/chunk-1d7ve1dm.js.map +0 -12
- package/dist/cli/chunk-2hsdwb9n.js.map +0 -10
- package/dist/cli/chunk-35d4wj9f.js.map +0 -15
- package/dist/cli/chunk-364znk6q.js +0 -75
- package/dist/cli/chunk-364znk6q.js.map +0 -11
- package/dist/cli/chunk-5m5nmvyq.js.map +0 -13
- package/dist/cli/chunk-8ktnccpt.js.map +0 -10
- package/dist/cli/chunk-9t7a85s3.js.map +0 -10
- package/dist/cli/chunk-b07cmahc.js +0 -145
- package/dist/cli/chunk-b07cmahc.js.map +0 -11
- package/dist/cli/chunk-c8chx29p.js.map +0 -36
- package/dist/cli/chunk-e04dxsz1.js +0 -39
- package/dist/cli/chunk-e04dxsz1.js.map +0 -10
- package/dist/cli/chunk-j85vccga.js.map +0 -36
- package/dist/cli/chunk-p3v96n38.js.map +0 -10
- package/dist/cli/chunk-pehfxfta.js.map +0 -10
- package/dist/cli/chunk-pv29h0wf.js.map +0 -190
- package/dist/cli/chunk-q58y5e6a.js.map +0 -10
- package/dist/cli/chunk-vg9r4eb9.js.map +0 -14
- package/dist/cli/chunk-wrr3j9w9.js.map +0 -35
- package/dist/cli/chunk-yfyb25rh.js.map +0 -14
- package/docs/content/sources.mdx +0 -334
- /package/dist/cli/{chunk-tkacnehg.js.map → chunk-3v3ffbrj.js.map} +0 -0
- /package/dist/cli/{chunk-r9rcc4w7.js.map → chunk-8y2kmjv8.js.map} +0 -0
- /package/dist/cli/{chunk-2eytanqx.js.map → chunk-c887fj0s.js.map} +0 -0
- /package/dist/cli/{chunk-akbpwfxc.js.map → chunk-dzwehpy7.js.map} +0 -0
- /package/dist/cli/{chunk-2z928egk.js.map → chunk-ft9vfys6.js.map} +0 -0
- /package/dist/cli/{chunk-a58773jm.js.map → chunk-kma9f6sf.js.map} +0 -0
- /package/dist/cli/{chunk-crgn1q09.js.map → chunk-sds923fa.js.map} +0 -0
- /package/dist/cli/{chunk-acanzt5p.js.map → chunk-tdqhyxfz.js.map} +0 -0
|
@@ -37,6 +37,10 @@ export interface GraphqlTypeRef {
|
|
|
37
37
|
display: string;
|
|
38
38
|
name: string;
|
|
39
39
|
}
|
|
40
|
+
/** A GraphQL input value as JSON carries it in `variables` (enums by name). */
|
|
41
|
+
export type GraphqlJsonValue = string | number | boolean | null | GraphqlJsonValue[] | {
|
|
42
|
+
[key: string]: GraphqlJsonValue;
|
|
43
|
+
};
|
|
40
44
|
/** An argument or input-object field. */
|
|
41
45
|
export interface GraphqlInputValue {
|
|
42
46
|
name: string;
|
|
@@ -44,6 +48,8 @@ export interface GraphqlInputValue {
|
|
|
44
48
|
type: GraphqlTypeRef;
|
|
45
49
|
/** Default value printed as a GraphQL literal (`10`, `"asc"`, `[1, 2]`). */
|
|
46
50
|
default?: string;
|
|
51
|
+
/** The same default as JSON, for the example variables. */
|
|
52
|
+
defaultValue?: GraphqlJsonValue;
|
|
47
53
|
deprecationReason?: string;
|
|
48
54
|
}
|
|
49
55
|
/** An output field of an object or interface type (root fields included). */
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Document, OperationObject } from "@scalar/openapi-types/3.
|
|
1
|
+
import type { Document, OperationObject } from "@scalar/openapi-types/3.2";
|
|
2
|
+
import type { GraphqlAuthOptions } from "../reference/options.ts";
|
|
2
3
|
import type { AsyncApiAction, AsyncApiDocument, AsyncApiSpecValue } from "./asyncapi.ts";
|
|
3
4
|
import type { GraphqlDocument, GraphqlMember } from "./graphql.ts";
|
|
4
5
|
import type { ReferenceKind } from "./references.ts";
|
|
@@ -12,10 +13,18 @@ export { slugify } from "./references.ts";
|
|
|
12
13
|
* Each operation is flattened into an {@link ApiOperationRef} with a real,
|
|
13
14
|
* per-operation route so it becomes a first-class Blume page.
|
|
14
15
|
*/
|
|
15
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* A normalized OpenAPI document, internal `$ref`s intact. Typed as 3.2, which
|
|
18
|
+
* is backward compatible with 3.1, so one type covers both the upgraded 3.1
|
|
19
|
+
* documents and the 3.2 ones read as written.
|
|
20
|
+
*/
|
|
16
21
|
export type ApiDocument = Document;
|
|
17
|
-
/**
|
|
18
|
-
|
|
22
|
+
/**
|
|
23
|
+
* The HTTP methods an OpenAPI path item may declare, in spec order. `query`
|
|
24
|
+
* is OpenAPI 3.2's (the QUERY method: a safe request that carries a body); a
|
|
25
|
+
* 3.1 path item can't declare it, so listing it changes nothing there.
|
|
26
|
+
*/
|
|
27
|
+
export declare const HTTP_METHODS: readonly ["get", "put", "post", "delete", "options", "head", "patch", "trace", "query"];
|
|
19
28
|
export type HttpMethod = (typeof HTTP_METHODS)[number];
|
|
20
29
|
/** A stable, URL-safe key for an operation: its `operationId`, else method+path. */
|
|
21
30
|
export declare const operationKey: (method: string, path: string, operationId?: string) => string;
|
|
@@ -45,6 +54,12 @@ export interface ApiOperationRef {
|
|
|
45
54
|
deprecated: boolean;
|
|
46
55
|
/** The channel the operation acts on (AsyncAPI only). */
|
|
47
56
|
channelId?: string;
|
|
57
|
+
/**
|
|
58
|
+
* An OpenAPI 3.1 webhook: a request the API sends to the reader's endpoint
|
|
59
|
+
* rather than one it serves. `path` then holds the webhook's name, the key
|
|
60
|
+
* it has under the document's `webhooks`.
|
|
61
|
+
*/
|
|
62
|
+
webhook?: true;
|
|
48
63
|
}
|
|
49
64
|
/**
|
|
50
65
|
* A tag/section: the spec's declared tags in their declared order, then any
|
|
@@ -73,11 +88,13 @@ export interface ApiSpecData {
|
|
|
73
88
|
* (GraphQL only; OpenAPI documents carry their servers in the document).
|
|
74
89
|
*/
|
|
75
90
|
endpoint?: string;
|
|
91
|
+
/** How the GraphQL endpoint authenticates (GraphQL only). */
|
|
92
|
+
auth?: GraphqlAuthOptions;
|
|
76
93
|
/** Operations keyed by {@link ApiOperationRef.key}. */
|
|
77
94
|
operations: Record<string, ApiOperationRef>;
|
|
78
95
|
tags: ApiTagRef[];
|
|
79
|
-
/** Code-sample languages to render per operation. */
|
|
80
|
-
codeSamples: string[];
|
|
96
|
+
/** Code-sample languages to render per operation; `false` for none. */
|
|
97
|
+
codeSamples: string[] | false;
|
|
81
98
|
/** Whether nested schema rows start expanded. */
|
|
82
99
|
expandSchemas: boolean;
|
|
83
100
|
/**
|
|
@@ -162,10 +179,10 @@ export interface ExtractedOperations extends CollectedOperations {
|
|
|
162
179
|
export declare const operationCollector: (baseRoute: string, tagMeta: ReadonlyMap<string, string>) => OperationCollector;
|
|
163
180
|
/**
|
|
164
181
|
* Flatten a 3.1 document into a route-mapped operation list and its ordered
|
|
165
|
-
* tags. Operations inherit the first tag they declare; keys
|
|
166
|
-
* a repeated `operationId` still yields distinct routes.
|
|
167
|
-
* anything skipped (a `$ref` path item
|
|
168
|
-
* aren't silent.
|
|
182
|
+
* tags, webhooks included. Operations inherit the first tag they declare; keys
|
|
183
|
+
* are de-duplicated so a repeated `operationId` still yields distinct routes.
|
|
184
|
+
* `warnings` reports anything skipped (a `$ref` path item), so missing
|
|
185
|
+
* operations aren't silent.
|
|
169
186
|
*/
|
|
170
187
|
export declare const extractOperations: (document: ApiDocument, baseRoute: string) => ExtractedOperations;
|
|
171
188
|
/** Resolve the operation object for a ref out of its (OpenAPI) document. */
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { JsonValue } from "../core/adapter.ts";
|
|
3
|
+
/**
|
|
4
|
+
* OpenAPI Overlays: the OpenAPI Initiative's format for changing an API
|
|
5
|
+
* description without editing it — an ordered list of actions, each an RFC
|
|
6
|
+
* 9535 JSONPath `target` with an `update` to merge in, a `copy` of another
|
|
7
|
+
* node to merge in, or `remove`. A spec generated by another tool or owned by
|
|
8
|
+
* another team can then carry docs-only changes (better descriptions, hidden
|
|
9
|
+
* internal operations, a public server URL) in a file of its own.
|
|
10
|
+
*
|
|
11
|
+
* Implements Overlay Specification 1.0 and 1.1 over `jsonpath-rfc9535`, which
|
|
12
|
+
* passes the JSONPath compliance suite in full, as the spec requires. The
|
|
13
|
+
* documents here are already parsed; `parse.ts` reads the files.
|
|
14
|
+
*/
|
|
15
|
+
/** An overlay document or action that doesn't follow the spec. */
|
|
16
|
+
export declare class OverlayError extends Error {
|
|
17
|
+
constructor(message: string);
|
|
18
|
+
}
|
|
19
|
+
/** An object node, the only kind that holds named properties. */
|
|
20
|
+
interface JsonObject {
|
|
21
|
+
[key: string]: JsonValue;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A parsed YAML or JSON mapping, as the document an overlay acts on: the
|
|
25
|
+
* parser's own types say nothing of JSON, but what it parses is JSON.
|
|
26
|
+
*/
|
|
27
|
+
export declare const isJsonObject: <Value>(value: Value) => value is Value & JsonObject;
|
|
28
|
+
declare const overlaySchema: z.ZodObject<{
|
|
29
|
+
actions: z.ZodArray<z.ZodObject<{
|
|
30
|
+
copy: z.ZodOptional<z.ZodString>;
|
|
31
|
+
description: z.ZodOptional<z.ZodString>;
|
|
32
|
+
remove: z.ZodDefault<z.ZodBoolean>;
|
|
33
|
+
target: z.ZodString;
|
|
34
|
+
update: z.ZodOptional<z.ZodJSONSchema>;
|
|
35
|
+
}, z.core.$loose>>;
|
|
36
|
+
extends: z.ZodOptional<z.ZodString>;
|
|
37
|
+
info: z.ZodObject<{
|
|
38
|
+
title: z.ZodString;
|
|
39
|
+
version: z.ZodString;
|
|
40
|
+
}, z.core.$loose>;
|
|
41
|
+
overlay: z.ZodString;
|
|
42
|
+
}, z.core.$loose>;
|
|
43
|
+
/** A validated overlay document. */
|
|
44
|
+
export type OverlayDocument = z.output<typeof overlaySchema>;
|
|
45
|
+
/** Validate a parsed overlay document, naming the file in any error. */
|
|
46
|
+
export declare const overlayDocument: <Value>(value: Value, name: string) => OverlayDocument;
|
|
47
|
+
/**
|
|
48
|
+
* Apply an overlay to a parsed document, in place and in action order: each
|
|
49
|
+
* action sees the result of the one before. A target that matches nothing
|
|
50
|
+
* changes nothing. Throws an {@link OverlayError} naming the overlay file and
|
|
51
|
+
* the action that failed.
|
|
52
|
+
*/
|
|
53
|
+
export declare const applyOverlay: (document: JsonValue, overlay: OverlayDocument, name: string) => void;
|
|
54
|
+
export {};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { AsyncApiDocument } from "./asyncapi.ts";
|
|
2
|
+
import type { SpecIssue } from "./checks.ts";
|
|
2
3
|
import type { GraphqlDocument } from "./graphql.ts";
|
|
3
4
|
import type { ApiDocument } from "./model.ts";
|
|
4
5
|
export interface ParsedSpec {
|
|
5
6
|
document: ApiDocument;
|
|
7
|
+
/** `x-codeSamples` entries whose `$ref` couldn't be inlined. */
|
|
8
|
+
issues: SpecIssue[];
|
|
6
9
|
warnings: string[];
|
|
7
10
|
}
|
|
8
11
|
/**
|
|
@@ -16,6 +19,11 @@ export declare class InvalidSpecError extends Error {
|
|
|
16
19
|
}
|
|
17
20
|
/** Where and whether to cache a remote spec's text between runs. */
|
|
18
21
|
export interface SpecFetchOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Overlay documents (local paths or `http(s)` URLs) applied in order to
|
|
24
|
+
* the parsed spec, before it's upgraded. See `overlay.ts`.
|
|
25
|
+
*/
|
|
26
|
+
overlays?: readonly string[];
|
|
19
27
|
/** Dir for a last-good on-disk copy of a remote spec (offline fallback). */
|
|
20
28
|
cacheDir?: string;
|
|
21
29
|
/**
|
|
@@ -24,6 +32,14 @@ export interface SpecFetchOptions {
|
|
|
24
32
|
*/
|
|
25
33
|
refresh?: boolean;
|
|
26
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* A spec with its overlays applied, as JSON text: what the Scalar embed
|
|
37
|
+
* inlines, since it can't apply overlays itself.
|
|
38
|
+
*/
|
|
39
|
+
export declare const readOverlaidSpec: (spec: string, root: string, options: SpecFetchOptions) => Promise<{
|
|
40
|
+
text: string;
|
|
41
|
+
warnings: string[];
|
|
42
|
+
}>;
|
|
27
43
|
export declare const parseSpec: (spec: string, root: string, options?: SpecFetchOptions) => Promise<ParsedSpec>;
|
|
28
44
|
export interface ParsedAsyncApiSpec {
|
|
29
45
|
document: AsyncApiDocument;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ResolvedConfig } from "../core/schema.ts";
|
|
2
|
+
import type { GraphqlAuthOptions } from "../reference/options.ts";
|
|
2
3
|
import type { ScalarOptions } from "../reference/scalar.ts";
|
|
3
4
|
import type { ResolvedReferenceAdapter } from "../reference/schema.ts";
|
|
4
5
|
export { normalizeRoute } from "../core/base-path.ts";
|
|
@@ -19,8 +20,8 @@ export type ReferenceKind = ResolvedReferenceAdapter["kind"];
|
|
|
19
20
|
export type BlumeReferenceKind = Exclude<ReferenceKind, "scalar">;
|
|
20
21
|
/** Per-adapter display options for the Blume renderer. */
|
|
21
22
|
export interface ReferenceDisplay {
|
|
22
|
-
/** Code-sample languages shown per operation. */
|
|
23
|
-
codeSamples: string[];
|
|
23
|
+
/** Code-sample languages shown per operation; `false` for none. */
|
|
24
|
+
codeSamples: string[] | false;
|
|
24
25
|
/** Whether nested schema rows start expanded. */
|
|
25
26
|
expandSchemas: boolean;
|
|
26
27
|
/**
|
|
@@ -47,6 +48,12 @@ export interface ReferenceSource {
|
|
|
47
48
|
*/
|
|
48
49
|
basePath: string;
|
|
49
50
|
label: string;
|
|
51
|
+
/**
|
|
52
|
+
* The source's own `label`, when it sets one: it names the sidebar group
|
|
53
|
+
* of the source's route. An unlabeled source's group keeps the name its
|
|
54
|
+
* route gives it.
|
|
55
|
+
*/
|
|
56
|
+
groupLabel?: string;
|
|
50
57
|
/** Whether generated pages are included in llms.txt/llms-full.txt. */
|
|
51
58
|
includeInLlms: boolean;
|
|
52
59
|
/** Whether generated pages are included in site search. */
|
|
@@ -60,11 +67,18 @@ export interface ReferenceSource {
|
|
|
60
67
|
seoDescriptionSuffix: boolean;
|
|
61
68
|
/** Local path or `http(s)` URL, verbatim from config. */
|
|
62
69
|
spec: string;
|
|
70
|
+
/**
|
|
71
|
+
* OpenAPI Overlay documents applied to `spec` in order (`openapi()` and
|
|
72
|
+
* `scalar()` only).
|
|
73
|
+
*/
|
|
74
|
+
overlays?: string[];
|
|
63
75
|
/**
|
|
64
76
|
* URL of the live GraphQL endpoint the playground and code samples target
|
|
65
77
|
* (GraphQL only — a schema, unlike an OpenAPI document, names no server).
|
|
66
78
|
*/
|
|
67
79
|
endpoint?: string;
|
|
80
|
+
/** How the GraphQL endpoint authenticates (GraphQL only). */
|
|
81
|
+
auth?: GraphqlAuthOptions;
|
|
68
82
|
/**
|
|
69
83
|
* The `scalar()` adapter's own options (`scalar` kind only): `theme` plus
|
|
70
84
|
* any Scalar config forwarded verbatim to `<ScalarComponent>`, which takes
|
|
@@ -107,6 +121,13 @@ export declare const resolveReferences: (config: ResolvedConfig) => ReferenceSou
|
|
|
107
121
|
export declare const referenceRoutes: (config: ResolvedConfig) => string[];
|
|
108
122
|
/** Blume-rendered references (every kind but Scalar), deduped by route (first wins). */
|
|
109
123
|
export declare const blumeReferences: (config: ResolvedConfig) => BlumeReferenceSource[];
|
|
124
|
+
/**
|
|
125
|
+
* The local files every reference reads, as absolute paths: each spec and
|
|
126
|
+
* overlay that isn't an `http(s)` URL, resolved from the project root the way
|
|
127
|
+
* the parser resolves them. `blume dev` watches these, so an edit to a spec
|
|
128
|
+
* regenerates its reference like an edit to a page does.
|
|
129
|
+
*/
|
|
130
|
+
export declare const referenceSpecFiles: (config: ResolvedConfig, root: string) => string[];
|
|
110
131
|
/** Whether any reference is Scalar-rendered (gates the Scalar pages). */
|
|
111
132
|
export declare const hasScalarReferences: (config: ResolvedConfig) => boolean;
|
|
112
133
|
/**
|
|
@@ -120,10 +141,15 @@ export declare const hasScalarReferences: (config: ResolvedConfig) => boolean;
|
|
|
120
141
|
* definition with {@link needsPlaygroundProxy}.
|
|
121
142
|
*/
|
|
122
143
|
export declare const builtinProxyReferences: (config: ResolvedConfig) => BlumeReferenceSource[];
|
|
144
|
+
/**
|
|
145
|
+
* Whether hand-written endpoint pages (`api` frontmatter) send their Try it
|
|
146
|
+
* requests through the built-in proxy: `api.playground.proxy: true`.
|
|
147
|
+
*/
|
|
148
|
+
export declare const apiPagesUseBuiltinProxy: (config: ResolvedConfig) => boolean;
|
|
123
149
|
/**
|
|
124
150
|
* Whether the built-in playground CORS proxy endpoint (`/_api-proxy`) must be
|
|
125
151
|
* generated: some Blume-rendered reference's playground opted into it with
|
|
126
|
-
* `proxy: true
|
|
127
|
-
* two can never disagree.
|
|
152
|
+
* `proxy: true`, or the hand-written endpoint pages' did. Shared by the server
|
|
153
|
+
* feature gate and the generator so the two can never disagree.
|
|
128
154
|
*/
|
|
129
155
|
export declare const needsPlaygroundProxy: (config: ResolvedConfig) => boolean;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
/** The Worker binding Blume declares for the rate limiter. */
|
|
4
|
+
export declare const RATE_LIMIT_BINDING = "BLUME_RATE_LIMIT";
|
|
5
|
+
/** Options for {@link cloudflare}. */
|
|
6
|
+
export interface CloudflareRateLimitOptions {
|
|
7
|
+
/**
|
|
8
|
+
* The rate limiting namespace, a positive integer unique in your
|
|
9
|
+
* Cloudflare account. Defaults to one derived from the site.
|
|
10
|
+
*/
|
|
11
|
+
namespaceId?: string;
|
|
12
|
+
/** Requests each reader may make per window, per route. Defaults to 10. */
|
|
13
|
+
requests?: number;
|
|
14
|
+
/** The window, in seconds: Cloudflare allows 10 or 60. Defaults to 60. */
|
|
15
|
+
window?: 10 | 60;
|
|
16
|
+
}
|
|
17
|
+
export declare const cloudflareRateLimitOptionsSchema: z.ZodObject<{
|
|
18
|
+
namespaceId: z.ZodOptional<z.ZodString>;
|
|
19
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
window: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<60>]>>;
|
|
21
|
+
}, z.core.$strict>;
|
|
22
|
+
export type CloudflareRateLimitAdapter = AdapterDescriptor<"cloudflare", CloudflareRateLimitOptions>;
|
|
23
|
+
export declare const cloudflareRateLimitAdapterSchema: z.ZodObject<{
|
|
24
|
+
kind: z.ZodLiteral<"cloudflare">;
|
|
25
|
+
options: z.ZodObject<{
|
|
26
|
+
namespaceId: z.ZodOptional<z.ZodString>;
|
|
27
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
28
|
+
window: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<60>]>>;
|
|
29
|
+
}, z.core.$strict>;
|
|
30
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
31
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
32
|
+
}, z.core.$strict>;
|
|
33
|
+
/**
|
|
34
|
+
* Counts with Cloudflare's Workers rate limiting, for a site deployed with
|
|
35
|
+
* `deployment: cloudflare()`: Blume declares the binding in the Worker's
|
|
36
|
+
* config, so there is nothing to set up. Cloudflare counts per location and
|
|
37
|
+
* allows a window of 10 or 60 seconds.
|
|
38
|
+
*/
|
|
39
|
+
export declare const cloudflare: (options?: CloudflareRateLimitOptions) => CloudflareRateLimitAdapter;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate limiters for `blume.config.ts`. The server routes a reader can call —
|
|
3
|
+
* the assistant, the API playground proxy, and server-side search — limit
|
|
4
|
+
* each reader (by IP address) to a number of requests per window, answering
|
|
5
|
+
* `429 Too Many Requests` past it:
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* import { defineConfig } from "blume";
|
|
9
|
+
* import { upstash } from "blume/ratelimit";
|
|
10
|
+
*
|
|
11
|
+
* export default defineConfig({
|
|
12
|
+
* rateLimit: upstash({ requests: 30, window: 600 }),
|
|
13
|
+
* });
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* `memory()` is on by default; `rateLimit: false` turns limiting off. Each
|
|
17
|
+
* factory returns a plain descriptor (see `core/adapter.ts`), and the
|
|
18
|
+
* generated routes count with `runtime.ts`.
|
|
19
|
+
*/
|
|
20
|
+
export type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
21
|
+
export { cloudflare } from "./cloudflare.ts";
|
|
22
|
+
export type { CloudflareRateLimitAdapter, CloudflareRateLimitOptions, } from "./cloudflare.ts";
|
|
23
|
+
export { memory } from "./memory.ts";
|
|
24
|
+
export type { MemoryAdapter, RateLimitOptions } from "./memory.ts";
|
|
25
|
+
export type { RateLimitAdapter } from "./schema.ts";
|
|
26
|
+
export { upstash } from "./upstash.ts";
|
|
27
|
+
export type { UpstashAdapter, UpstashOptions } from "./upstash.ts";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
/** How many requests a reader gets per window, unless set. */
|
|
4
|
+
export declare const DEFAULT_REQUESTS = 30;
|
|
5
|
+
/** The window those requests are counted over, in seconds, unless set. */
|
|
6
|
+
export declare const DEFAULT_WINDOW = 600;
|
|
7
|
+
/** The limit every rate limiter takes: a count of requests per window. */
|
|
8
|
+
export interface RateLimitOptions {
|
|
9
|
+
/** Requests each reader may make per window, per route. */
|
|
10
|
+
requests?: number;
|
|
11
|
+
/** The window, in seconds. */
|
|
12
|
+
window?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare const rateLimitOptionsSchema: z.ZodObject<{
|
|
15
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
window: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
}, z.core.$strict>;
|
|
18
|
+
export type MemoryAdapter = AdapterDescriptor<"memory", RateLimitOptions>;
|
|
19
|
+
export declare const memoryAdapterSchema: z.ZodObject<{
|
|
20
|
+
kind: z.ZodLiteral<"memory">;
|
|
21
|
+
options: z.ZodObject<{
|
|
22
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
window: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
}, z.core.$strict>;
|
|
25
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
26
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
27
|
+
}, z.core.$strict>;
|
|
28
|
+
/**
|
|
29
|
+
* Counts each reader's requests in the server's own memory, the default. On
|
|
30
|
+
* a server that runs as one process (`node()`) the count is exact; on a
|
|
31
|
+
* platform that runs many short-lived instances (Vercel, Netlify,
|
|
32
|
+
* Cloudflare) each instance keeps its own, so it stops a burst from one
|
|
33
|
+
* reader rather than enforcing the limit exactly. For that, share the count
|
|
34
|
+
* with `upstash()` or `cloudflare()`.
|
|
35
|
+
*/
|
|
36
|
+
export declare const memory: (options?: RateLimitOptions) => MemoryAdapter;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/** The configured rate limiter, as its factory returned it. */
|
|
3
|
+
export declare const rateLimitAdapterSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
4
|
+
kind: z.ZodLiteral<"cloudflare">;
|
|
5
|
+
options: z.ZodObject<{
|
|
6
|
+
namespaceId: z.ZodOptional<z.ZodString>;
|
|
7
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
window: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<60>]>>;
|
|
9
|
+
}, z.core.$strict>;
|
|
10
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
11
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
12
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
13
|
+
kind: z.ZodLiteral<"memory">;
|
|
14
|
+
options: z.ZodObject<{
|
|
15
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
window: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
}, z.core.$strict>;
|
|
18
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
19
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
20
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
21
|
+
kind: z.ZodLiteral<"upstash">;
|
|
22
|
+
options: z.ZodObject<{
|
|
23
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
window: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
tokenEnv: z.ZodOptional<z.ZodString>;
|
|
26
|
+
urlEnv: z.ZodOptional<z.ZodString>;
|
|
27
|
+
}, z.core.$strict>;
|
|
28
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
29
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
30
|
+
}, z.core.$strict>], "kind">;
|
|
31
|
+
export type RateLimitAdapter = z.output<typeof rateLimitAdapterSchema>;
|
|
32
|
+
/**
|
|
33
|
+
* `blume.config.rateLimit`: how the server routes a reader can call (the
|
|
34
|
+
* assistant, the API playground proxy, server-side search) limit requests
|
|
35
|
+
* per reader. On by default with `memory()`; `false` turns it off (`null`
|
|
36
|
+
* once resolved).
|
|
37
|
+
*/
|
|
38
|
+
export declare const rateLimitConfigSchema: z.ZodPipe<z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
39
|
+
kind: z.ZodLiteral<"cloudflare">;
|
|
40
|
+
options: z.ZodObject<{
|
|
41
|
+
namespaceId: z.ZodOptional<z.ZodString>;
|
|
42
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
43
|
+
window: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<60>]>>;
|
|
44
|
+
}, z.core.$strict>;
|
|
45
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
46
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
47
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
48
|
+
kind: z.ZodLiteral<"memory">;
|
|
49
|
+
options: z.ZodObject<{
|
|
50
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
51
|
+
window: z.ZodOptional<z.ZodNumber>;
|
|
52
|
+
}, z.core.$strict>;
|
|
53
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
54
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
55
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
56
|
+
kind: z.ZodLiteral<"upstash">;
|
|
57
|
+
options: z.ZodObject<{
|
|
58
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
window: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
tokenEnv: z.ZodOptional<z.ZodString>;
|
|
61
|
+
urlEnv: z.ZodOptional<z.ZodString>;
|
|
62
|
+
}, z.core.$strict>;
|
|
63
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
64
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
65
|
+
}, z.core.$strict>], "kind">]>>, z.ZodTransform<{
|
|
66
|
+
kind: "cloudflare";
|
|
67
|
+
options: {
|
|
68
|
+
namespaceId?: string | undefined;
|
|
69
|
+
requests?: number | undefined;
|
|
70
|
+
window?: 10 | 60 | undefined;
|
|
71
|
+
};
|
|
72
|
+
requiredSecrets: string[];
|
|
73
|
+
runtimeDeps: string[];
|
|
74
|
+
} | {
|
|
75
|
+
kind: "memory";
|
|
76
|
+
options: {
|
|
77
|
+
requests?: number | undefined;
|
|
78
|
+
window?: number | undefined;
|
|
79
|
+
};
|
|
80
|
+
requiredSecrets: string[];
|
|
81
|
+
runtimeDeps: string[];
|
|
82
|
+
} | {
|
|
83
|
+
kind: "upstash";
|
|
84
|
+
options: {
|
|
85
|
+
requests?: number | undefined;
|
|
86
|
+
window?: number | undefined;
|
|
87
|
+
tokenEnv?: string | undefined;
|
|
88
|
+
urlEnv?: string | undefined;
|
|
89
|
+
};
|
|
90
|
+
requiredSecrets: string[];
|
|
91
|
+
runtimeDeps: string[];
|
|
92
|
+
} | null, false | {
|
|
93
|
+
kind: "cloudflare";
|
|
94
|
+
options: {
|
|
95
|
+
namespaceId?: string | undefined;
|
|
96
|
+
requests?: number | undefined;
|
|
97
|
+
window?: 10 | 60 | undefined;
|
|
98
|
+
};
|
|
99
|
+
requiredSecrets: string[];
|
|
100
|
+
runtimeDeps: string[];
|
|
101
|
+
} | {
|
|
102
|
+
kind: "memory";
|
|
103
|
+
options: {
|
|
104
|
+
requests?: number | undefined;
|
|
105
|
+
window?: number | undefined;
|
|
106
|
+
};
|
|
107
|
+
requiredSecrets: string[];
|
|
108
|
+
runtimeDeps: string[];
|
|
109
|
+
} | {
|
|
110
|
+
kind: "upstash";
|
|
111
|
+
options: {
|
|
112
|
+
requests?: number | undefined;
|
|
113
|
+
window?: number | undefined;
|
|
114
|
+
tokenEnv?: string | undefined;
|
|
115
|
+
urlEnv?: string | undefined;
|
|
116
|
+
};
|
|
117
|
+
requiredSecrets: string[];
|
|
118
|
+
runtimeDeps: string[];
|
|
119
|
+
} | undefined>>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { RateLimitOptions } from "./memory.ts";
|
|
4
|
+
/** Options for {@link upstash}. */
|
|
5
|
+
export interface UpstashOptions extends RateLimitOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Name of the env var holding the REST token. Defaults to
|
|
8
|
+
* `UPSTASH_REDIS_REST_TOKEN`; a database added from Vercel's Marketplace
|
|
9
|
+
* sets `KV_REST_API_TOKEN`.
|
|
10
|
+
*/
|
|
11
|
+
tokenEnv?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Name of the env var holding the REST endpoint. Defaults to
|
|
14
|
+
* `UPSTASH_REDIS_REST_URL`; a database added from Vercel's Marketplace
|
|
15
|
+
* sets `KV_REST_API_URL`.
|
|
16
|
+
*/
|
|
17
|
+
urlEnv?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const upstashOptionsSchema: z.ZodObject<{
|
|
20
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
window: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
tokenEnv: z.ZodOptional<z.ZodString>;
|
|
23
|
+
urlEnv: z.ZodOptional<z.ZodString>;
|
|
24
|
+
}, z.core.$strict>;
|
|
25
|
+
export type UpstashAdapter = AdapterDescriptor<"upstash", UpstashOptions>;
|
|
26
|
+
export declare const upstashAdapterSchema: z.ZodObject<{
|
|
27
|
+
kind: z.ZodLiteral<"upstash">;
|
|
28
|
+
options: z.ZodObject<{
|
|
29
|
+
requests: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
window: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
tokenEnv: z.ZodOptional<z.ZodString>;
|
|
32
|
+
urlEnv: z.ZodOptional<z.ZodString>;
|
|
33
|
+
}, z.core.$strict>;
|
|
34
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
35
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
36
|
+
}, z.core.$strict>;
|
|
37
|
+
/** The env vars the endpoint and its token are read from, in that order. */
|
|
38
|
+
export declare const upstashSecrets: (options: UpstashOptions) => [string, string];
|
|
39
|
+
/**
|
|
40
|
+
* Keeps the count in Upstash Redis, which every instance on every host shares,
|
|
41
|
+
* so the limit holds exactly. It talks to Upstash's REST API, so there is
|
|
42
|
+
* nothing to install; the endpoint and token come from
|
|
43
|
+
* `UPSTASH_REDIS_REST_URL` and `UPSTASH_REDIS_REST_TOKEN`, or the env vars
|
|
44
|
+
* `urlEnv` and `tokenEnv` name.
|
|
45
|
+
*/
|
|
46
|
+
export declare const upstash: (options?: UpstashOptions) => UpstashAdapter;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CloudflareRateLimitAdapter } from "./cloudflare.ts";
|
|
2
|
+
/** The Workers rate limiting binding, as the Worker's config declares it. */
|
|
3
|
+
export interface RateLimitBindingConfig {
|
|
4
|
+
name: string;
|
|
5
|
+
namespace_id: string;
|
|
6
|
+
simple: {
|
|
7
|
+
limit: number;
|
|
8
|
+
period: 10 | 60;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A namespace id for a Worker that sets none: a positive integer derived from
|
|
13
|
+
* its name, so two Blume sites on one account don't share one.
|
|
14
|
+
*/
|
|
15
|
+
export declare const rateLimitNamespace: (workerName: string) => string;
|
|
16
|
+
/** The binding `cloudflare()` asks for, on the Worker named `workerName`. */
|
|
17
|
+
export declare const rateLimitBinding: (adapter: CloudflareRateLimitAdapter, workerName: string) => RateLimitBindingConfig;
|
|
18
|
+
/**
|
|
19
|
+
* The built Worker's config (`dist/server/wrangler.json`) with Blume's rate
|
|
20
|
+
* limiting binding in `ratelimits`, replacing an earlier one of the same name
|
|
21
|
+
* and keeping any others. `null` when the config isn't a JSON object.
|
|
22
|
+
*/
|
|
23
|
+
export declare const withRateLimitBinding: (wranglerText: string, adapter: CloudflareRateLimitAdapter) => string | null;
|
|
@@ -5,9 +5,9 @@ import type { PlaygroundOptions, ReferenceSourceOptions } from "./options.ts";
|
|
|
5
5
|
export interface AsyncApiOptions {
|
|
6
6
|
/**
|
|
7
7
|
* Code-sample tools shown per operation (Blume renderer). Defaults to every
|
|
8
|
-
* tool appropriate to the operation's protocol binding.
|
|
8
|
+
* tool appropriate to the operation's protocol binding; `false` shows none.
|
|
9
9
|
*/
|
|
10
|
-
codeSamples?: string[];
|
|
10
|
+
codeSamples?: string[] | false;
|
|
11
11
|
/** Start nested schema rows expanded rather than collapsed (Blume renderer). Defaults to `false`. */
|
|
12
12
|
expandSchemas?: boolean;
|
|
13
13
|
/**
|
|
@@ -34,7 +34,7 @@ export declare const asyncapiOptionsSchema: z.ZodPipe<z.ZodObject<{
|
|
|
34
34
|
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
35
35
|
spec: z.ZodString;
|
|
36
36
|
}, z.core.$strict>>>;
|
|
37
|
-
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
37
|
+
codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
|
|
38
38
|
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
39
39
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
40
40
|
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
@@ -58,14 +58,14 @@ export declare const asyncapiOptionsSchema: z.ZodPipe<z.ZodObject<{
|
|
|
58
58
|
label?: string | undefined;
|
|
59
59
|
route?: string | undefined;
|
|
60
60
|
}[];
|
|
61
|
-
codeSamples: string[];
|
|
61
|
+
codeSamples: false | string[];
|
|
62
62
|
playground: {
|
|
63
63
|
enabled: boolean;
|
|
64
64
|
proxy: string | boolean;
|
|
65
65
|
};
|
|
66
66
|
route: string;
|
|
67
67
|
spec?: string | undefined;
|
|
68
|
-
}, "spec">, {
|
|
68
|
+
}, "spec" | "overlays">, {
|
|
69
69
|
expandSchemas: boolean;
|
|
70
70
|
sources: {
|
|
71
71
|
includeInLlms: boolean;
|
|
@@ -76,7 +76,7 @@ export declare const asyncapiOptionsSchema: z.ZodPipe<z.ZodObject<{
|
|
|
76
76
|
label?: string | undefined;
|
|
77
77
|
route?: string | undefined;
|
|
78
78
|
}[];
|
|
79
|
-
codeSamples: string[];
|
|
79
|
+
codeSamples: false | string[];
|
|
80
80
|
playground: {
|
|
81
81
|
enabled: boolean;
|
|
82
82
|
proxy: string | boolean;
|
|
@@ -102,7 +102,7 @@ export declare const asyncapiAdapterSchema: z.ZodObject<{
|
|
|
102
102
|
seoDescriptionSuffix: z.ZodDefault<z.ZodBoolean>;
|
|
103
103
|
spec: z.ZodString;
|
|
104
104
|
}, z.core.$strict>>>;
|
|
105
|
-
codeSamples: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
105
|
+
codeSamples: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodArray<z.ZodString>]>>;
|
|
106
106
|
playground: z.ZodPipe<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
107
107
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
108
108
|
proxy: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>;
|
|
@@ -126,14 +126,14 @@ export declare const asyncapiAdapterSchema: z.ZodObject<{
|
|
|
126
126
|
label?: string | undefined;
|
|
127
127
|
route?: string | undefined;
|
|
128
128
|
}[];
|
|
129
|
-
codeSamples: string[];
|
|
129
|
+
codeSamples: false | string[];
|
|
130
130
|
playground: {
|
|
131
131
|
enabled: boolean;
|
|
132
132
|
proxy: string | boolean;
|
|
133
133
|
};
|
|
134
134
|
route: string;
|
|
135
135
|
spec?: string | undefined;
|
|
136
|
-
}, "spec">, {
|
|
136
|
+
}, "spec" | "overlays">, {
|
|
137
137
|
expandSchemas: boolean;
|
|
138
138
|
sources: {
|
|
139
139
|
includeInLlms: boolean;
|
|
@@ -144,7 +144,7 @@ export declare const asyncapiAdapterSchema: z.ZodObject<{
|
|
|
144
144
|
label?: string | undefined;
|
|
145
145
|
route?: string | undefined;
|
|
146
146
|
}[];
|
|
147
|
-
codeSamples: string[];
|
|
147
|
+
codeSamples: false | string[];
|
|
148
148
|
playground: {
|
|
149
149
|
enabled: boolean;
|
|
150
150
|
proxy: string | boolean;
|