blume 1.7.3 → 2.0.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 +19 -0
- package/CHANGELOG.md +245 -0
- package/README.md +34 -21
- package/dist/cli/{chunk-vacwm2hv.js → chunk-27g6wdth.js} +2 -2
- package/dist/cli/{chunk-ps4m1xh4.js → chunk-2hn4b8z7.js} +513 -550
- package/dist/cli/chunk-2hn4b8z7.js.map +12 -0
- package/dist/cli/chunk-5shv93fd.js +39 -0
- package/dist/cli/chunk-5shv93fd.js.map +10 -0
- package/dist/cli/chunk-6crbhc3x.js +361 -0
- package/dist/cli/chunk-6crbhc3x.js.map +14 -0
- package/dist/cli/{chunk-8cjtbafj.js → chunk-6hsn950k.js} +109 -383
- package/dist/cli/chunk-6hsn950k.js.map +10 -0
- package/dist/cli/chunk-6vm74dry.js +148 -0
- package/dist/cli/chunk-6vm74dry.js.map +10 -0
- package/dist/cli/{chunk-yg63d42r.js → chunk-79jhk4py.js} +87 -58
- package/dist/cli/chunk-79jhk4py.js.map +35 -0
- package/dist/cli/chunk-82bbrxdn.js +51 -0
- package/dist/cli/chunk-82bbrxdn.js.map +10 -0
- package/dist/cli/chunk-abh8yjkn.js +31 -0
- package/dist/cli/chunk-abh8yjkn.js.map +10 -0
- package/dist/cli/chunk-ah61y8py.js +75 -0
- package/dist/cli/chunk-ah61y8py.js.map +11 -0
- package/dist/cli/{chunk-dwgcp5sm.js → chunk-ce574jw2.js} +1 -1
- package/dist/cli/chunk-ch6g3ar0.js +102 -0
- package/dist/cli/chunk-ch6g3ar0.js.map +10 -0
- package/dist/cli/chunk-dh8cwk36.js +279 -0
- package/dist/cli/chunk-dh8cwk36.js.map +10 -0
- package/dist/cli/{chunk-rqy0s5wh.js → chunk-epjnccmv.js} +17 -16
- package/dist/cli/{chunk-rqy0s5wh.js.map → chunk-epjnccmv.js.map} +3 -3
- package/dist/cli/chunk-f2z5v128.js +97 -0
- package/dist/cli/chunk-f2z5v128.js.map +10 -0
- package/dist/cli/{chunk-2z47ypj8.js → chunk-fa25z98p.js} +16 -3
- package/dist/cli/chunk-fa25z98p.js.map +11 -0
- package/dist/cli/{chunk-1jefwnfs.js → chunk-fs23ddbb.js} +1076 -2592
- package/dist/cli/chunk-fs23ddbb.js.map +35 -0
- package/dist/cli/{chunk-e7f42gdj.js → chunk-fxypxtvm.js} +2 -2
- package/dist/cli/{chunk-bvwwhd84.js → chunk-fz5wtpmh.js} +15 -15
- package/dist/cli/{chunk-bvwwhd84.js.map → chunk-fz5wtpmh.js.map} +1 -1
- package/dist/cli/chunk-hdpx1tax.js +91 -0
- package/dist/cli/chunk-hdpx1tax.js.map +10 -0
- package/dist/cli/{chunk-ct47dqpx.js → chunk-jts8mvcz.js} +67 -7
- package/dist/cli/{chunk-2mzebbbz.js.map → chunk-jts8mvcz.js.map} +6 -4
- package/dist/cli/{chunk-ahnw3kxw.js → chunk-jwyddg7y.js} +27 -22
- package/dist/cli/chunk-jwyddg7y.js.map +15 -0
- package/dist/cli/{chunk-cjtn640a.js → chunk-kdp5q7ke.js} +43 -20
- package/dist/cli/chunk-kdp5q7ke.js.map +10 -0
- package/dist/cli/{chunk-5g0w1e2c.js → chunk-kpf8rrjc.js} +28 -16
- package/dist/cli/{chunk-5g0w1e2c.js.map → chunk-kpf8rrjc.js.map} +4 -4
- package/dist/cli/chunk-m3vmjgmq.js +133 -0
- package/dist/cli/chunk-m3vmjgmq.js.map +10 -0
- package/dist/cli/{chunk-b27xqwn9.js → chunk-mb2919y2.js} +9 -5
- package/dist/cli/chunk-mb2919y2.js.map +10 -0
- package/dist/cli/{chunk-5qk08vmp.js → chunk-q5163e60.js} +133 -54
- package/dist/cli/chunk-q5163e60.js.map +11 -0
- package/dist/cli/chunk-qkqwkpte.js +12437 -0
- package/dist/cli/chunk-qkqwkpte.js.map +182 -0
- package/dist/cli/{chunk-4x36ddpw.js → chunk-qs4q5p4e.js} +81 -87
- package/dist/cli/chunk-qs4q5p4e.js.map +10 -0
- package/dist/cli/{chunk-0xjyb285.js → chunk-qwsrynx5.js} +15 -5
- package/dist/cli/{chunk-0xjyb285.js.map → chunk-qwsrynx5.js.map} +4 -4
- package/dist/cli/chunk-s1p84fyh.js +261 -0
- package/dist/cli/chunk-s1p84fyh.js.map +10 -0
- package/dist/cli/chunk-s6jhgk0q.js +176 -0
- package/dist/cli/chunk-s6jhgk0q.js.map +11 -0
- package/dist/cli/chunk-vtk4a6dg.js +374 -0
- package/dist/cli/chunk-vtk4a6dg.js.map +10 -0
- package/dist/cli/{chunk-k79xp7av.js → chunk-wgm7m9qk.js} +230 -700
- package/dist/cli/chunk-wgm7m9qk.js.map +36 -0
- package/dist/cli/chunk-wm7js3j9.js +145 -0
- package/dist/cli/chunk-wm7js3j9.js.map +11 -0
- package/dist/cli/chunk-yt5n7ppj.js +79 -0
- package/dist/cli/chunk-yt5n7ppj.js.map +10 -0
- package/dist/cli/{chunk-3r45185y.js → chunk-yw7dm696.js} +9 -11
- package/dist/cli/{chunk-3r45185y.js.map → chunk-yw7dm696.js.map} +3 -3
- package/dist/cli/{chunk-nn13znc2.js → chunk-zxcczpyx.js} +1 -1
- package/dist/cli/chunk-zxh4d9vy.js +122 -0
- package/dist/cli/chunk-zxh4d9vy.js.map +11 -0
- package/dist/cli/index.js +214 -57
- package/dist/cli/index.js.map +8 -7
- package/dist/types/ai/agent-readability.d.ts +52 -0
- package/dist/types/ai/ai-catalog.d.ts +42 -0
- package/dist/types/ai/api/paths.d.ts +17 -0
- package/dist/types/ai/api-catalog.d.ts +18 -0
- package/dist/types/ai/ask-context.d.ts +7 -7
- package/dist/types/ai/ask.d.ts +368 -0
- package/dist/types/ai/changelog-markdown.d.ts +2 -0
- package/dist/types/ai/component-markdown.d.ts +2 -2
- package/dist/types/ai/index.d.ts +24 -0
- package/dist/types/ai/link-headers.d.ts +24 -0
- package/dist/types/ai/llms.d.ts +25 -0
- package/dist/types/ai/markdown.d.ts +45 -0
- package/dist/types/ai/mcp/discovery.d.ts +68 -0
- package/dist/types/ai/mcp/tools.d.ts +16 -0
- package/dist/types/ai/openapi-components.d.ts +43 -0
- package/dist/types/ai/relative-links.d.ts +26 -0
- package/dist/types/ai/serializers.d.ts +15 -0
- package/dist/types/ai/skills.d.ts +42 -0
- package/dist/types/ai/tar.d.ts +25 -0
- package/dist/types/ai/visibility.d.ts +17 -0
- package/dist/types/ai/web-bot-auth.d.ts +16 -0
- package/dist/types/analytics/adobe.d.ts +35 -0
- package/dist/types/analytics/amplitude.d.ts +50 -0
- package/dist/types/analytics/clarity.d.ts +31 -0
- package/dist/types/analytics/clearbit.d.ts +29 -0
- package/dist/types/analytics/cloudflare.d.ts +41 -0
- package/dist/types/analytics/fathom.d.ts +41 -0
- package/dist/types/analytics/google-analytics.d.ts +44 -0
- package/dist/types/analytics/google-tag-manager.d.ts +40 -0
- package/dist/types/analytics/head.d.ts +30 -0
- package/dist/types/analytics/heap.d.ts +40 -0
- package/dist/types/analytics/hightouch.d.ts +44 -0
- package/dist/types/analytics/hotjar.d.ts +33 -0
- package/dist/types/analytics/index.d.ts +61 -0
- package/dist/types/analytics/inline.d.ts +17 -0
- package/dist/types/analytics/logrocket.d.ts +44 -0
- package/dist/types/analytics/mixpanel.d.ts +67 -0
- package/dist/types/analytics/pirsch.d.ts +42 -0
- package/dist/types/analytics/plausible.d.ts +56 -0
- package/dist/types/analytics/posthog.d.ts +45 -0
- package/dist/types/analytics/schema.d.ts +320 -0
- package/dist/types/analytics/script.d.ts +46 -0
- package/dist/types/analytics/segment.d.ts +50 -0
- package/dist/types/analytics/vercel.d.ts +48 -0
- package/dist/types/astro/integration.d.ts +76 -0
- package/dist/types/astro/markdown-negotiation.d.ts +23 -0
- package/dist/types/astro/module-types.d.ts +14 -0
- package/dist/types/astro/pages.d.ts +44 -0
- package/dist/types/cli/env.d.ts +12 -0
- package/dist/types/cli/init/scaffold.d.ts +154 -0
- package/dist/types/components/layout/nav-utils.d.ts +11 -0
- package/dist/types/core/adapter.d.ts +47 -0
- package/dist/types/core/api-name.d.ts +7 -0
- package/dist/types/core/changelog-index.d.ts +13 -0
- package/dist/types/core/config-input.d.ts +197 -526
- package/dist/types/core/config.d.ts +61 -35
- package/dist/types/core/content-assets.d.ts +76 -0
- package/dist/types/core/custom-pages.d.ts +33 -0
- package/dist/types/core/data.d.ts +30 -15
- package/dist/types/core/define-components.d.ts +12 -9
- package/dist/types/core/deployment-env.d.ts +6 -11
- package/dist/types/core/frontmatter.d.ts +10 -0
- package/dist/types/core/graph.d.ts +18 -0
- package/dist/types/core/heading-markers.d.ts +54 -0
- package/dist/types/core/i18n-ui.d.ts +12 -10
- package/dist/types/core/i18n.d.ts +87 -0
- package/dist/types/core/includes.d.ts +138 -0
- package/dist/types/core/last-modified.d.ts +47 -0
- package/dist/types/core/links.d.ts +95 -0
- package/dist/types/core/locale-links.d.ts +60 -0
- package/dist/types/core/manifest.d.ts +17 -0
- package/dist/types/core/meta.d.ts +38 -0
- package/dist/types/core/nav-diagnostics.d.ts +26 -0
- package/dist/types/core/navigation.d.ts +6 -0
- package/dist/types/core/node-require.d.ts +19 -0
- package/dist/types/core/package-json.d.ts +13 -0
- package/dist/types/core/probe.d.ts +42 -0
- package/dist/types/core/project-graph.d.ts +51 -0
- package/dist/types/core/project.d.ts +2 -0
- package/dist/types/core/safe-href.d.ts +2 -0
- package/dist/types/core/safe-links.d.ts +26 -0
- package/dist/types/core/schema.d.ts +2284 -454
- package/dist/types/core/site-url.d.ts +16 -0
- package/dist/types/core/sources/assets.d.ts +36 -0
- package/dist/types/core/sources/cache.d.ts +37 -0
- package/dist/types/core/sources/collection.d.ts +28 -0
- package/dist/types/core/sources/contentful-rich-text.d.ts +31 -0
- package/dist/types/core/sources/contentful.d.ts +40 -0
- package/dist/types/core/sources/filesystem.d.ts +24 -0
- package/dist/types/core/sources/github-releases.d.ts +31 -0
- package/dist/types/core/sources/json.d.ts +30 -0
- package/dist/types/core/sources/lexical.d.ts +19 -0
- package/dist/types/core/sources/lower.d.ts +75 -0
- package/dist/types/core/sources/mdx-remote.d.ts +28 -0
- package/dist/types/core/sources/normalize.d.ts +147 -0
- package/dist/types/core/sources/notion.d.ts +131 -0
- package/dist/types/core/sources/obsidian.d.ts +46 -0
- package/dist/types/core/sources/payload.d.ts +39 -0
- package/dist/types/core/sources/portable-text.d.ts +42 -0
- package/dist/types/core/sources/read.d.ts +23 -0
- package/dist/types/core/sources/remote.d.ts +74 -0
- package/dist/types/core/sources/resolve.d.ts +19 -0
- package/dist/types/core/sources/sanity.d.ts +43 -0
- package/dist/types/core/sources/strapi-blocks.d.ts +12 -0
- package/dist/types/core/sources/strapi.d.ts +33 -0
- package/dist/types/core/sources/types.d.ts +7 -0
- package/dist/types/core/sources/watch.d.ts +45 -0
- package/dist/types/core/text-width.d.ts +11 -0
- package/dist/types/core/types.d.ts +15 -1
- package/dist/types/core/unrecognized-keys.d.ts +7 -0
- package/dist/types/core/versions.d.ts +72 -0
- package/dist/types/core/yaml.d.ts +9 -0
- package/dist/types/deploy/adapter-output.d.ts +45 -0
- package/dist/types/deploy/adapters/cloudflare.d.ts +40 -0
- package/dist/types/deploy/adapters/index.d.ts +29 -0
- package/dist/types/deploy/adapters/netlify.d.ts +37 -0
- package/dist/types/deploy/adapters/node.d.ts +37 -0
- package/dist/types/deploy/adapters/registry.d.ts +133 -0
- package/dist/types/deploy/adapters/types.d.ts +71 -0
- package/dist/types/deploy/adapters/vercel.d.ts +38 -0
- package/dist/types/deploy/artifacts.d.ts +65 -0
- package/dist/types/deploy/cloudflare-negotiation.d.ts +196 -0
- package/dist/types/deploy/function-bundle.d.ts +80 -0
- package/dist/types/deploy/headers.d.ts +50 -0
- package/dist/types/deploy/node-headers.d.ts +42 -0
- package/dist/types/deploy/platforms/cloudflare.d.ts +40 -0
- package/dist/types/deploy/platforms/index.d.ts +18 -0
- package/dist/types/deploy/platforms/netlify.d.ts +13 -0
- package/dist/types/deploy/platforms/node.d.ts +11 -0
- package/dist/types/deploy/platforms/paths.d.ts +27 -0
- package/dist/types/deploy/platforms/static.d.ts +10 -0
- package/dist/types/deploy/platforms/types.d.ts +104 -0
- package/dist/types/deploy/platforms/vercel.d.ts +32 -0
- package/dist/types/deploy/redirects.d.ts +53 -0
- package/dist/types/deploy/robots.d.ts +8 -0
- package/dist/types/deploy/rss.d.ts +31 -0
- package/dist/types/deploy/sitemap.d.ts +21 -0
- package/dist/types/deploy/vercel-negotiation.d.ts +109 -0
- package/dist/types/markdown/code-title.d.ts +32 -0
- package/dist/types/markdown/fence-meta.d.ts +23 -0
- package/dist/types/markdown/themes.d.ts +3 -3
- package/dist/types/openapi/asyncapi.d.ts +129 -0
- package/dist/types/openapi/graphql-build.d.ts +8 -0
- package/dist/types/openapi/graphql.d.ts +122 -0
- package/dist/types/openapi/model.d.ts +158 -0
- package/dist/types/openapi/parse.d.ts +57 -0
- package/dist/types/openapi/references.d.ts +37 -25
- package/dist/types/openapi/render-mdx.d.ts +33 -0
- package/dist/types/openapi/sentence.d.ts +7 -0
- package/dist/types/openapi/signature.d.ts +10 -0
- package/dist/types/openapi/source.d.ts +22 -0
- package/dist/types/openapi/spec-dependency-error.d.ts +10 -0
- package/dist/types/reference/asyncapi.d.ts +166 -0
- package/dist/types/reference/graphql.d.ts +181 -0
- package/dist/types/reference/index.d.ts +32 -0
- package/dist/types/reference/openapi.d.ts +165 -0
- package/dist/types/reference/options.d.ts +157 -0
- package/dist/types/reference/scalar.d.ts +136 -0
- package/dist/types/reference/schema.d.ts +630 -0
- package/dist/types/search/adapters/algolia.d.ts +32 -0
- package/dist/types/search/adapters/flexsearch.d.ts +12 -0
- package/dist/types/search/adapters/index.d.ts +31 -0
- package/dist/types/search/adapters/mixedbread.d.ts +22 -0
- package/dist/types/search/adapters/orama-cloud.d.ts +33 -0
- package/dist/types/search/adapters/orama.d.ts +13 -0
- package/dist/types/search/adapters/pagefind.d.ts +12 -0
- package/dist/types/search/adapters/registry.d.ts +228 -0
- package/dist/types/search/adapters/types.d.ts +34 -0
- package/dist/types/search/adapters/typesense.d.ts +42 -0
- package/dist/types/search/build.d.ts +23 -0
- package/dist/types/search/documents.d.ts +90 -0
- package/dist/types/search/facets.d.ts +3 -0
- package/dist/types/search/orama-index.d.ts +1 -1
- package/dist/types/search/sync/algolia.d.ts +14 -0
- package/dist/types/search/sync/index.d.ts +14 -0
- package/dist/types/search/sync/orama-cloud.d.ts +10 -0
- package/dist/types/search/sync/typesense.d.ts +14 -0
- package/dist/types/sources/contentful.d.ts +68 -0
- package/dist/types/sources/custom.d.ts +20 -0
- package/dist/types/sources/filesystem.d.ts +42 -0
- package/dist/types/sources/github-releases.d.ts +46 -0
- package/dist/types/sources/index.d.ts +48 -0
- package/dist/types/sources/mdx-remote.d.ts +63 -0
- package/dist/types/sources/notion.d.ts +65 -0
- package/dist/types/sources/obsidian.d.ts +34 -0
- package/dist/types/sources/payload.d.ts +68 -0
- package/dist/types/sources/registry.d.ts +1414 -0
- package/dist/types/sources/sanity.d.ts +69 -0
- package/dist/types/sources/shared.d.ts +46 -0
- package/dist/types/sources/strapi.d.ts +66 -0
- package/dist/types/theme/icon-kind.d.ts +11 -0
- package/dist/types/theme/icons.d.ts +20 -0
- package/docs/01-quickstart.mdx +18 -18
- package/docs/02-deployment.mdx +52 -28
- package/docs/03-upgrading.mdx +364 -0
- package/docs/04-migrating.mdx +58 -0
- package/docs/08-faq.mdx +5 -5
- package/docs/advanced/blog.mdx +13 -6
- package/docs/advanced/changelog.mdx +23 -35
- package/docs/advanced/custom-pages.mdx +22 -10
- package/docs/advanced/meta.ts +1 -8
- package/docs/advanced/skills.mdx +8 -0
- package/docs/cli/audit.mdx +646 -0
- package/docs/cli/doctor.mdx +29 -0
- package/docs/{reference/eval.mdx → cli/evals.mdx} +12 -11
- package/docs/cli/index.mdx +105 -0
- package/docs/cli/meta.ts +7 -0
- package/docs/{reference → cli}/translate.mdx +9 -9
- package/docs/cli/validate.mdx +41 -0
- package/docs/cli/version.mdx +40 -0
- package/docs/configuration/analytics.mdx +350 -59
- package/docs/configuration/assistant.mdx +357 -0
- package/docs/configuration/customization.mdx +16 -10
- package/docs/configuration/index.mdx +50 -31
- package/docs/configuration/meta.ts +1 -1
- package/docs/configuration/search.mdx +76 -55
- package/docs/configuration/theming.mdx +24 -15
- package/docs/content/components.mdx +21 -5
- package/docs/{reference → content}/frontmatter.mdx +35 -1
- package/docs/content/i18n.mdx +9 -7
- package/docs/content/includes.mdx +2 -4
- package/docs/content/index.mdx +1 -1
- package/docs/content/islands.mdx +11 -6
- package/docs/content/meta.mdx +1 -1
- package/docs/content/meta.ts +1 -0
- package/docs/content/navigation.mdx +9 -7
- package/docs/content/sources.mdx +145 -50
- package/docs/content/syntax.mdx +16 -12
- package/docs/content/versioning.mdx +3 -3
- package/docs/discoverability/agent-discovery.mdx +12 -12
- package/docs/discoverability/index.mdx +4 -4
- package/docs/discoverability/json-api.mdx +4 -4
- package/docs/discoverability/llms-txt.mdx +6 -6
- package/docs/discoverability/markdown.mdx +4 -4
- package/docs/discoverability/mcp.mdx +11 -11
- package/docs/discoverability/sitemap-and-robots.mdx +3 -3
- package/docs/index.mdx +4 -4
- package/docs/references/asyncapi.mdx +59 -0
- package/docs/{advanced → references}/graphql.mdx +45 -32
- package/docs/{reference → references}/meta.ts +2 -2
- package/docs/references/openapi.mdx +171 -0
- package/docs/references/scalar.mdx +64 -0
- package/package.json +42 -8
- package/skills/blume/SKILL.md +23 -10
- package/skills/blume-migrate/SKILL.md +22 -21
- package/skills/blume-migrate/assets/oxfmt@0.67.0.patch +49 -0
- package/skills/blume-migrate/references/docusaurus.md +5 -4
- package/skills/blume-migrate/references/fumadocs.md +4 -4
- package/skills/blume-migrate/references/mintlify.md +23 -8
- package/skills/blume-migrate/references/monorepo.md +6 -6
- package/skills/blume-migrate/references/starlight.md +4 -4
- package/src/ai/agent-readability.ts +25 -26
- package/src/ai/ai-catalog.ts +50 -32
- package/src/ai/api/handlers.ts +46 -11
- package/src/ai/api/paths.ts +1 -1
- package/src/ai/api-catalog.ts +8 -8
- package/src/ai/ask-context.ts +7 -7
- package/src/ai/ask-data.ts +3 -3
- package/src/ai/ask.ts +637 -100
- package/src/ai/changelog-markdown.ts +91 -0
- package/src/ai/component-markdown.ts +328 -12
- package/src/ai/cors.ts +3 -3
- package/src/ai/index.ts +45 -0
- package/src/ai/link-headers.ts +7 -6
- package/src/ai/llms.ts +20 -15
- package/src/ai/markdown.ts +35 -5
- package/src/ai/mcp/data.ts +9 -5
- package/src/ai/openapi-components.ts +5 -2
- package/src/ai/relative-links.ts +170 -0
- package/src/ai/serializers.ts +3 -3
- package/src/ai/skills.ts +1 -1
- package/src/ai/visibility.ts +1 -1
- package/src/ai/web-bot-auth.ts +2 -2
- package/src/analytics/adobe.ts +46 -0
- package/src/analytics/amplitude.ts +79 -0
- package/src/analytics/clarity.ts +46 -0
- package/src/analytics/clearbit.ts +47 -0
- package/src/analytics/cloudflare.ts +67 -0
- package/src/analytics/fathom.ts +64 -0
- package/src/analytics/google-analytics.ts +84 -0
- package/src/analytics/google-tag-manager.ts +61 -0
- package/src/analytics/head.ts +130 -0
- package/src/analytics/heap.ts +65 -0
- package/src/analytics/hightouch.ts +77 -0
- package/src/analytics/hotjar.ts +47 -0
- package/src/analytics/index.ts +71 -0
- package/src/analytics/inline.ts +21 -0
- package/src/analytics/logrocket.ts +71 -0
- package/src/analytics/mixpanel.ts +92 -0
- package/src/analytics/pirsch.ts +66 -0
- package/src/analytics/plausible.ts +83 -0
- package/src/analytics/posthog.ts +78 -0
- package/src/analytics/schema.ts +60 -0
- package/src/analytics/script.ts +60 -0
- package/src/analytics/segment.ts +85 -0
- package/src/analytics/vercel.ts +50 -0
- package/src/astro/adapter-root.ts +7 -9
- package/src/astro/component-slots.ts +131 -91
- package/src/astro/generate.ts +129 -361
- package/src/astro/integration.ts +2 -6
- package/src/astro/module-types.ts +1 -1
- package/src/astro/pages.ts +13 -101
- package/src/astro/render-deps.ts +379 -0
- package/src/astro/runtime-deps.ts +201 -0
- package/src/astro/templates.ts +575 -562
- package/src/audit/agent.ts +24 -0
- package/src/audit/catalog.ts +2 -2
- package/src/audit/checks/assets.ts +2 -2
- package/src/audit/checks/dns-aid.ts +1 -1
- package/src/audit/checks/duplicates.ts +3 -1
- package/src/audit/checks/i18n.ts +1 -1
- package/src/audit/checks/indexability.ts +7 -7
- package/src/audit/checks/links.ts +2 -2
- package/src/audit/checks/llms.ts +6 -6
- package/src/audit/checks/network.ts +3 -3
- package/src/audit/checks/og-image.ts +2 -2
- package/src/audit/checks/robots.ts +1 -1
- package/src/audit/checks/sitemap.ts +2 -2
- package/src/audit/checks/social.ts +1 -1
- package/src/audit/run.ts +4 -3
- package/src/audit/terms.ts +31 -0
- package/src/audit/url.ts +13 -13
- package/src/blume-modules.d.ts +2 -2
- package/src/cli/command-meta.ts +10 -0
- package/src/cli/commands/audit.ts +40 -21
- package/src/cli/commands/build.ts +71 -316
- package/src/cli/commands/check.ts +1 -0
- package/src/cli/commands/dev.ts +40 -1
- package/src/cli/commands/doctor.ts +92 -14
- package/src/cli/commands/eject.ts +44 -7
- package/src/cli/commands/eval.ts +5 -5
- package/src/cli/commands/init.ts +161 -41
- package/src/cli/commands/migrate.ts +121 -0
- package/src/cli/commands/preview.ts +7 -1
- package/src/cli/commands/translate.ts +5 -5
- package/src/cli/commands/upgrade.ts +141 -0
- package/src/cli/commands/version.ts +57 -44
- package/src/cli/eject-scripts.ts +121 -6
- package/src/cli/index.ts +11 -1
- package/src/cli/init/install.ts +70 -0
- package/src/cli/init/questions.ts +7 -0
- package/src/cli/init/scaffold.ts +459 -75
- package/src/cli/lazy-command.ts +37 -1
- package/src/cli/prepare.ts +40 -6
- package/src/cli/required-secrets.ts +39 -12
- package/src/cli/unknown-flags.ts +266 -0
- package/src/cli/yarn-pnp.ts +52 -0
- package/src/components/content/AccordionItem.astro +7 -1
- package/src/components/content/Card.astro +4 -3
- package/src/components/content/ColorItem.astro +22 -4
- package/src/components/content/GithubInfo.astro +2 -2
- package/src/components/content/Prompt.astro +25 -25
- package/src/components/content/Tabs.astro +3 -1
- package/src/components/content/Tile.astro +2 -3
- package/src/components/content/Tooltip.astro +57 -9
- package/src/components/content/content-strings.ts +34 -0
- package/src/components/content/diff.ts +1 -1
- package/src/components/content/mermaid-element.ts +13 -2
- package/src/components/content/prompt-markdown.ts +292 -0
- package/src/components/content/tooltip-id.ts +41 -0
- package/src/components/copy-feedback.ts +1 -1
- package/src/components/islands/{AskAI.astro → Assistant.astro} +10 -10
- package/src/components/islands/{ask-ai.tsx → assistant.tsx} +23 -23
- package/src/components/islands/hooks.ts +36 -11
- package/src/components/layout/Analytics.astro +21 -79
- package/src/components/layout/Banner.astro +3 -1
- package/src/components/layout/DiscoveryLinks.astro +69 -0
- package/src/components/layout/Header.astro +93 -30
- package/src/components/layout/LanguageSwitcher.astro +4 -1
- package/src/components/layout/Logo.astro +23 -2
- package/src/components/layout/NavSelector.astro +13 -2
- package/src/components/layout/NavTree.astro +12 -3
- package/src/components/layout/NavTreeScript.astro +17 -3
- package/src/components/layout/PageActions.astro +3 -3
- package/src/components/layout/PageFeedback.astro +11 -1
- package/src/components/layout/PageLayout.astro +58 -11
- package/src/components/layout/Pagination.astro +7 -7
- package/src/components/layout/ReferenceLayout.astro +22 -13
- package/src/components/layout/RootLayout.astro +75 -72
- package/src/components/layout/Search.astro +43 -19
- package/src/components/layout/WebMcp.astro +1 -1
- package/src/components/layout/analytics-client.ts +73 -16
- package/src/components/layout/drawer-inert.ts +113 -15
- package/src/components/layout/dropdown-clamp.ts +105 -0
- package/src/components/layout/head-scripts.ts +15 -6
- package/src/components/layout/nav-utils.ts +17 -0
- package/src/components/layout/search/algolia.ts +8 -8
- package/src/components/layout/search/orama-cloud.ts +9 -7
- package/src/components/layout/search/typesense.ts +11 -17
- package/src/components/openapi/MessageComposer.astro +2 -2
- package/src/components/openapi/Playground.astro +2 -2
- package/src/components/openapi/description.ts +2 -2
- package/src/components/openapi/playground-client.ts +79 -10
- package/src/core/changelog-index.ts +24 -0
- package/src/core/code-fences.ts +1 -1
- package/src/core/component-overrides.ts +399 -154
- package/src/core/config-input.ts +201 -566
- package/src/core/config.ts +131 -42
- package/src/core/custom-pages.ts +105 -0
- package/src/core/data.ts +34 -15
- package/src/core/define-components.ts +12 -9
- package/src/core/deployment-env.ts +18 -74
- package/src/core/diagnostics.ts +14 -7
- package/src/core/graph.ts +69 -25
- package/src/core/i18n-ui.ts +41 -11
- package/src/core/i18n.ts +17 -0
- package/src/core/includes.ts +156 -38
- package/src/core/last-modified.ts +6 -11
- package/src/core/links.ts +166 -2
- package/src/core/manifest.ts +10 -3
- package/src/core/navigation.ts +115 -16
- package/src/core/new-tab.ts +35 -0
- package/src/core/node-require.ts +21 -0
- package/src/core/project-graph.ts +42 -26
- package/src/core/project.ts +9 -4
- package/src/core/request-body.ts +61 -0
- package/src/core/safe-href.ts +28 -0
- package/src/core/safe-links.ts +68 -0
- package/src/core/schema.ts +528 -745
- package/src/core/server-features.ts +10 -11
- package/src/core/sources/assets.ts +47 -11
- package/src/core/sources/collection.ts +67 -0
- package/src/core/sources/contentful-rich-text.ts +285 -0
- package/src/core/sources/contentful.ts +173 -0
- package/src/core/sources/github-releases.ts +51 -1
- package/src/core/sources/json.ts +71 -0
- package/src/core/sources/lexical.ts +195 -0
- package/src/core/sources/lower.ts +226 -0
- package/src/core/sources/normalize.ts +52 -2
- package/src/core/sources/notion.ts +39 -28
- package/src/core/sources/payload.ts +135 -0
- package/src/core/sources/portable-text.ts +11 -16
- package/src/core/sources/remote.ts +226 -0
- package/src/core/sources/resolve.ts +104 -166
- package/src/core/sources/sanity.ts +16 -49
- package/src/core/sources/strapi-blocks.ts +124 -0
- package/src/core/sources/strapi.ts +191 -0
- package/src/core/sources/types.ts +12 -1
- package/src/core/types.ts +15 -1
- package/src/core/ui-packs/ar.ts +10 -7
- package/src/core/ui-packs/bg.ts +10 -7
- package/src/core/ui-packs/bn.ts +10 -7
- package/src/core/ui-packs/ca.ts +7 -6
- package/src/core/ui-packs/cs.ts +10 -7
- package/src/core/ui-packs/da.ts +10 -7
- package/src/core/ui-packs/de.ts +10 -7
- package/src/core/ui-packs/el.ts +7 -6
- package/src/core/ui-packs/es.ts +7 -6
- package/src/core/ui-packs/fa.ts +10 -7
- package/src/core/ui-packs/fi.ts +10 -7
- package/src/core/ui-packs/fr.ts +7 -6
- package/src/core/ui-packs/he.ts +10 -7
- package/src/core/ui-packs/hi.ts +10 -7
- package/src/core/ui-packs/hr.ts +10 -7
- package/src/core/ui-packs/hu.ts +10 -7
- package/src/core/ui-packs/id.ts +10 -7
- package/src/core/ui-packs/it.ts +7 -6
- package/src/core/ui-packs/ja.ts +7 -6
- package/src/core/ui-packs/ko.ts +7 -6
- package/src/core/ui-packs/nl.ts +10 -7
- package/src/core/ui-packs/no.ts +10 -7
- package/src/core/ui-packs/pl.ts +10 -7
- package/src/core/ui-packs/pt-br.ts +7 -6
- package/src/core/ui-packs/pt.ts +7 -6
- package/src/core/ui-packs/ro.ts +10 -7
- package/src/core/ui-packs/ru.ts +10 -7
- package/src/core/ui-packs/sk.ts +10 -7
- package/src/core/ui-packs/sr.ts +10 -7
- package/src/core/ui-packs/sv.ts +10 -7
- package/src/core/ui-packs/th.ts +7 -6
- package/src/core/ui-packs/tr.ts +10 -7
- package/src/core/ui-packs/uk.ts +10 -7
- package/src/core/ui-packs/vi.ts +7 -6
- package/src/core/ui-packs/zh-tw.ts +7 -6
- package/src/core/ui-packs/zh.ts +7 -6
- package/src/core/unrecognized-keys.ts +10 -0
- package/src/core/version-cut.ts +116 -8
- package/src/deploy/adapter-output.ts +57 -97
- package/src/deploy/adapters/cloudflare.ts +39 -0
- package/src/deploy/adapters/index.ts +41 -0
- package/src/deploy/adapters/netlify.ts +34 -0
- package/src/deploy/adapters/node.ts +34 -0
- package/src/deploy/adapters/registry.ts +127 -0
- package/src/deploy/adapters/types.ts +92 -0
- package/src/deploy/adapters/vercel.ts +35 -0
- package/src/deploy/artifacts.ts +55 -27
- package/src/deploy/cloudflare-negotiation.ts +179 -100
- package/src/deploy/function-bundle.ts +18 -3
- package/src/deploy/headers.ts +124 -23
- package/src/deploy/node-headers.ts +198 -0
- package/src/deploy/platforms/cloudflare.ts +312 -0
- package/src/deploy/platforms/index.ts +67 -0
- package/src/deploy/platforms/netlify.ts +52 -0
- package/src/deploy/platforms/node.ts +40 -0
- package/src/deploy/platforms/paths.ts +42 -0
- package/src/deploy/platforms/static.ts +29 -0
- package/src/deploy/platforms/types.ts +112 -0
- package/src/deploy/platforms/vercel.ts +193 -0
- package/src/deploy/redirects.ts +30 -18
- package/src/deploy/robots.ts +3 -3
- package/src/deploy/rss.ts +2 -2
- package/src/deploy/sitemap.ts +2 -2
- package/src/deploy/vercel-negotiation.ts +2 -2
- package/src/eval/agents.ts +32 -1
- package/src/eval/findings.ts +19 -11
- package/src/eval/report.ts +10 -2
- package/src/markdown/external-links.ts +65 -0
- package/src/markdown/include.ts +45 -27
- package/src/markdown/index.ts +34 -9
- package/src/markdown/inline-code.ts +12 -6
- package/src/markdown/relative-links.ts +324 -0
- package/src/markdown/themes.ts +3 -3
- package/src/migrate/migrate.ts +149 -0
- package/src/openapi/parse.ts +64 -16
- package/src/openapi/proxy.ts +62 -10
- package/src/openapi/references.ts +147 -147
- package/src/openapi/render-mdx.ts +32 -10
- package/src/openapi/scalar.ts +15 -13
- package/src/openapi/sentence.ts +14 -0
- package/src/openapi/source.ts +37 -21
- package/src/openapi/spec-dependency-error.ts +15 -0
- package/src/reference/asyncapi.ts +83 -0
- package/src/reference/graphql.ts +89 -0
- package/src/reference/index.ts +40 -0
- package/src/reference/openapi.ts +83 -0
- package/src/reference/options.ts +201 -0
- package/src/reference/scalar.ts +136 -0
- package/src/reference/schema.ts +88 -0
- package/src/registry/eject.ts +109 -53
- package/src/search/adapters/algolia.ts +46 -0
- package/src/search/adapters/flexsearch.ts +29 -0
- package/src/search/adapters/index.ts +39 -0
- package/src/search/adapters/mixedbread.ts +39 -0
- package/src/search/adapters/orama-cloud.ts +51 -0
- package/src/search/adapters/orama.ts +24 -0
- package/src/search/adapters/pagefind.ts +27 -0
- package/src/search/adapters/registry.ts +131 -0
- package/src/search/adapters/types.ts +46 -0
- package/src/search/adapters/typesense.ts +57 -0
- package/src/search/build.ts +8 -4
- package/src/search/documents.ts +8 -2
- package/src/search/orama-index.ts +1 -1
- package/src/search/sync/algolia.ts +12 -11
- package/src/search/sync/index.ts +35 -20
- package/src/search/sync/orama-cloud.ts +12 -9
- package/src/search/sync/typesense.ts +15 -13
- package/src/sources/contentful.ts +63 -0
- package/src/sources/custom.ts +38 -0
- package/src/sources/filesystem.ts +51 -0
- package/src/sources/github-releases.ts +52 -0
- package/src/sources/index.ts +60 -0
- package/src/sources/mdx-remote.ts +76 -0
- package/src/sources/notion.ts +63 -0
- package/src/sources/obsidian.ts +38 -0
- package/src/sources/payload.ts +60 -0
- package/src/sources/registry.ts +182 -0
- package/src/sources/sanity.ts +66 -0
- package/src/sources/shared.ts +52 -0
- package/src/sources/strapi.ts +58 -0
- package/src/theme/entry.ts +24 -2
- package/src/translate/report.ts +40 -7
- package/src/upgrade/upgrade.ts +499 -0
- package/dist/cli/chunk-0qymqwzz.js +0 -164
- package/dist/cli/chunk-0qymqwzz.js.map +0 -15
- package/dist/cli/chunk-1jefwnfs.js.map +0 -48
- package/dist/cli/chunk-2mzebbbz.js +0 -69
- package/dist/cli/chunk-2z47ypj8.js.map +0 -11
- package/dist/cli/chunk-4x36ddpw.js.map +0 -11
- package/dist/cli/chunk-5093q3n7.js +0 -68
- package/dist/cli/chunk-5093q3n7.js.map +0 -10
- package/dist/cli/chunk-5qk08vmp.js.map +0 -11
- package/dist/cli/chunk-7s8hm3b6.js +0 -5347
- package/dist/cli/chunk-7s8hm3b6.js.map +0 -58
- package/dist/cli/chunk-8cjtbafj.js.map +0 -13
- package/dist/cli/chunk-97r59kpr.js +0 -381
- package/dist/cli/chunk-97r59kpr.js.map +0 -12
- package/dist/cli/chunk-ahnw3kxw.js.map +0 -15
- package/dist/cli/chunk-b27xqwn9.js.map +0 -10
- package/dist/cli/chunk-bf6bt1xt.js +0 -185
- package/dist/cli/chunk-bf6bt1xt.js.map +0 -11
- package/dist/cli/chunk-cjtn640a.js.map +0 -10
- package/dist/cli/chunk-ct47dqpx.js.map +0 -11
- package/dist/cli/chunk-esphfr8p.js +0 -107
- package/dist/cli/chunk-esphfr8p.js.map +0 -11
- package/dist/cli/chunk-ex56aa81.js +0 -1016
- package/dist/cli/chunk-ex56aa81.js.map +0 -13
- package/dist/cli/chunk-garjf5z9.js +0 -30
- package/dist/cli/chunk-garjf5z9.js.map +0 -10
- package/dist/cli/chunk-js7saxwm.js +0 -1045
- package/dist/cli/chunk-js7saxwm.js.map +0 -22
- package/dist/cli/chunk-k79xp7av.js.map +0 -39
- package/dist/cli/chunk-ps4m1xh4.js.map +0 -15
- package/dist/cli/chunk-q4rae3bg.js +0 -60
- package/dist/cli/chunk-q4rae3bg.js.map +0 -10
- package/dist/cli/chunk-rz9jmfhz.js +0 -108
- package/dist/cli/chunk-rz9jmfhz.js.map +0 -10
- package/dist/cli/chunk-vh9w1sgp.js +0 -73
- package/dist/cli/chunk-vh9w1sgp.js.map +0 -10
- package/dist/cli/chunk-vrfp10qk.js +0 -81
- package/dist/cli/chunk-vrfp10qk.js.map +0 -10
- package/dist/cli/chunk-yg63d42r.js.map +0 -34
- package/docs/advanced/api-reference.mdx +0 -240
- package/docs/configuration/ask-ai.mdx +0 -256
- package/docs/reference/cli.mdx +0 -197
- package/skills/blume-migrate/assets/oxfmt@0.55.0.patch +0 -20
- package/src/components/content/changelog-element.ts +0 -69
- package/src/search/providers.ts +0 -91
- /package/dist/cli/{chunk-vacwm2hv.js.map → chunk-27g6wdth.js.map} +0 -0
- /package/dist/cli/{chunk-dwgcp5sm.js.map → chunk-ce574jw2.js.map} +0 -0
- /package/dist/cli/{chunk-e7f42gdj.js.map → chunk-fxypxtvm.js.map} +0 -0
- /package/dist/cli/{chunk-nn13znc2.js.map → chunk-zxcczpyx.js.map} +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { BlumeProject } from "../core/project-graph.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Every serializer a project brings to a downlevel pass, layered once for all
|
|
4
|
+
* the agent surfaces (`<route>.md`, llms-full.txt, the search and assistant
|
|
5
|
+
* corpora): the built-in families that read project data — examples, then the
|
|
6
|
+
* API reference — under the user's `agents.markdownComponents`, which is spread
|
|
7
|
+
* last so an entry of the same name still wins. One layering, so a new family
|
|
8
|
+
* or a new surface cannot leave one consumer printing raw JSX.
|
|
9
|
+
*/
|
|
10
|
+
export declare const projectComponentSerializers: (project: Pick<BlumeProject, "config" | "examples" | "sources">) => {
|
|
11
|
+
ApiOverview: ({ props }: import("./component-markdown.ts").ComponentMarkdownContext) => string | null;
|
|
12
|
+
ApiTagOperations: ({ props }: import("./component-markdown.ts").ComponentMarkdownContext) => string | null;
|
|
13
|
+
Operation: ({ props }: import("./component-markdown.ts").ComponentMarkdownContext) => string | null;
|
|
14
|
+
Component: ({ props }: import("./component-markdown.ts").ComponentMarkdownContext) => string | null;
|
|
15
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "../core/schema.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Agent Skills discovery (Cloudflare's Agent Skills Discovery RFC v0.2.0):
|
|
4
|
+
* the skills a site publishes are enumerated in an index at
|
|
5
|
+
* `/.well-known/agent-skills/index.json`, each entry pointing at its artifact
|
|
6
|
+
* with a SHA-256 digest. A skill that is only a `SKILL.md` publishes the file
|
|
7
|
+
* verbatim (`type: "skill-md"`); a skill with supporting resources (scripts,
|
|
8
|
+
* references, assets) is bundled into a deterministic `.tar.gz`
|
|
9
|
+
* (`type: "archive"`) so its relative references resolve after unpacking.
|
|
10
|
+
*/
|
|
11
|
+
export declare const AGENT_SKILLS_DIR = "/.well-known/agent-skills";
|
|
12
|
+
export declare const AGENT_SKILLS_INDEX_PATH = "/.well-known/agent-skills/index.json";
|
|
13
|
+
/** One publishable skill artifact plus its index entry. */
|
|
14
|
+
export interface SkillArtifact {
|
|
15
|
+
/** Raw bytes to publish (the digest is computed over exactly these). */
|
|
16
|
+
content: Uint8Array;
|
|
17
|
+
description: string;
|
|
18
|
+
/** `sha256:{hex}` digest of `content`. */
|
|
19
|
+
digest: string;
|
|
20
|
+
name: string;
|
|
21
|
+
/** Path under the agent-skills dir: `{name}/SKILL.md` or `{name}.tar.gz`. */
|
|
22
|
+
path: string;
|
|
23
|
+
type: "archive" | "skill-md";
|
|
24
|
+
}
|
|
25
|
+
export interface CollectedSkills {
|
|
26
|
+
skills: SkillArtifact[];
|
|
27
|
+
/** Human-readable reasons for anything skipped. */
|
|
28
|
+
warnings: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Collect the publishable skills from a directory whose subdirectories each
|
|
32
|
+
* hold a `SKILL.md` (the layout `npx skills add` consumes). Subdirectories
|
|
33
|
+
* without one are ignored silently — the directory may hold other assets —
|
|
34
|
+
* while a present-but-invalid skill earns a warning so it isn't dropped
|
|
35
|
+
* behind the publisher's back.
|
|
36
|
+
*/
|
|
37
|
+
export declare const collectSkills: (dir: string) => Promise<CollectedSkills>;
|
|
38
|
+
/**
|
|
39
|
+
* The discovery index (v0.2.0 schema). Artifact URLs are path-absolute under
|
|
40
|
+
* `deployment.base` — the RFC resolves them against the index origin.
|
|
41
|
+
*/
|
|
42
|
+
export declare const buildSkillsIndex: (skills: readonly SkillArtifact[], config: ResolvedConfig) => string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `.tar.gz` writer for agent-skill archives, on nanotar's ustar writer.
|
|
3
|
+
* Deterministic by construction — fixed mtime/uid/gid/owner attrs,
|
|
4
|
+
* caller-ordered entries, and Node's gzip header carries no timestamp — so a
|
|
5
|
+
* skill's archive digest only changes when its content does. That holds per
|
|
6
|
+
* machine: the tar bytes are portable, but zlib's compressed stream differs
|
|
7
|
+
* across architectures, so gzip-layer digests are not comparable across
|
|
8
|
+
* platforms.
|
|
9
|
+
*/
|
|
10
|
+
/** One regular file to archive. Paths are `/`-separated, relative, no `..`. */
|
|
11
|
+
export interface TarEntry {
|
|
12
|
+
/** Raw file bytes. */
|
|
13
|
+
content: Uint8Array;
|
|
14
|
+
/** Preserve the owner-execute bit (e.g. a skill's scripts). */
|
|
15
|
+
executable?: boolean;
|
|
16
|
+
/** Archive-relative path, e.g. `SKILL.md` or `references/FORMS.md`. */
|
|
17
|
+
path: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build a gzipped ustar archive of the given files, in the given order. Paths
|
|
21
|
+
* longer than the ustar `name` field or escaping the archive root throw to
|
|
22
|
+
* surface a programming error — nanotar would silently truncate an oversized
|
|
23
|
+
* name into a corrupt archive, so the validation stays here.
|
|
24
|
+
*/
|
|
25
|
+
export declare const buildTarGz: (entries: readonly TarEntry[]) => Uint8Array;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** The audience an output surface serves — the component's two `for` values. */
|
|
2
|
+
export type VisibilityAudience = "agents" | "web";
|
|
3
|
+
/**
|
|
4
|
+
* Resolve `<Visibility>` blocks for one audience: blocks addressed to the
|
|
5
|
+
* other audience are removed entirely and blocks addressed to `audience` are
|
|
6
|
+
* unwrapped (tags dropped, body kept), matching what the Astro component
|
|
7
|
+
* renders on the web. Other `for` values (the component's default) are left
|
|
8
|
+
* untouched, and markdown with no matching blocks is returned byte-identical,
|
|
9
|
+
* so raw sources stay raw.
|
|
10
|
+
*/
|
|
11
|
+
export declare const applyAudienceVisibility: (markdown: string, audience: VisibilityAudience) => string;
|
|
12
|
+
/**
|
|
13
|
+
* Resolve `<Visibility>` blocks for agent-facing Markdown (llms-full.txt, the
|
|
14
|
+
* `.md`/`.mdx` mirrors, MCP tools, assistant grounding): `for="web"` content is
|
|
15
|
+
* removed and `for="agents"` content is unwrapped.
|
|
16
|
+
*/
|
|
17
|
+
export declare const applyAgentVisibility: (markdown: string) => string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ResolvedConfig } from "../core/schema.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Web Bot Auth (IETF `webbotauth` WG): an org that runs agents publishes the
|
|
4
|
+
* agents' HTTP Message Signature public keys in a JWKS at a well-known path
|
|
5
|
+
* on its domain; sites receiving the signed requests fetch it to verify them.
|
|
6
|
+
* Blume publishes the directory from `agents.webBotAuth.keys` — the schema admits
|
|
7
|
+
* public keys only, so the site can never leak signing credentials.
|
|
8
|
+
*/
|
|
9
|
+
/** Well-known path (draft-meunier-http-message-signatures-directory). */
|
|
10
|
+
export declare const SIGNATURES_DIRECTORY_PATH = "/.well-known/http-message-signatures-directory";
|
|
11
|
+
/** The directory's registered media type — extensionless, so static hosts
|
|
12
|
+
* need an explicit Content-Type rule (see `deploy/headers.ts` and the Vercel
|
|
13
|
+
* `overrides` injection) to serve anything better than octet-stream. */
|
|
14
|
+
export declare const SIGNATURES_DIRECTORY_TYPE = "application/http-message-signatures-directory+json";
|
|
15
|
+
/** The JWKS document to publish, or null when no keys are configured. */
|
|
16
|
+
export declare const buildSignaturesDirectory: (config: ResolvedConfig) => string | null;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** Options for {@link adobe}. */
|
|
5
|
+
export interface AdobeOptions {
|
|
6
|
+
/**
|
|
7
|
+
* The Launch (Adobe Experience Platform Tags) embed script URL for the
|
|
8
|
+
* environment to load, e.g. `https://assets.adobedtm.com/…/launch-….min.js`.
|
|
9
|
+
*/
|
|
10
|
+
url: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const adobeOptionsSchema: z.ZodObject<{
|
|
13
|
+
url: z.ZodString;
|
|
14
|
+
}, z.core.$strict>;
|
|
15
|
+
export type AdobeAdapter = AdapterDescriptor<"adobe", AdobeOptions>;
|
|
16
|
+
export declare const adobeAdapterSchema: z.ZodObject<{
|
|
17
|
+
kind: z.ZodLiteral<"adobe">;
|
|
18
|
+
options: z.ZodObject<{
|
|
19
|
+
url: z.ZodString;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
22
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
23
|
+
}, z.core.$strict>;
|
|
24
|
+
/**
|
|
25
|
+
* Adobe Analytics through a Launch property: Blume loads the environment's
|
|
26
|
+
* embed script, and the property's own rules decide what to track. Copy the
|
|
27
|
+
* URL from the environment's install instructions in Data Collection.
|
|
28
|
+
*/
|
|
29
|
+
export declare const adobe: (options: AdobeOptions) => AdobeAdapter;
|
|
30
|
+
/**
|
|
31
|
+
* The async embed tag, as Launch's install instructions render it. Pageviews
|
|
32
|
+
* on client-router navigations are the property's business: give it a rule on
|
|
33
|
+
* history changes (or `_satellite.track` from a `script()` adapter).
|
|
34
|
+
*/
|
|
35
|
+
export declare const adobeHead: (options: AdobeOptions) => HeadScript[];
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** The options {@link amplitude} maps itself. */
|
|
5
|
+
export interface AmplitudeNamedOptions {
|
|
6
|
+
/** Project API key. */
|
|
7
|
+
key: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Options for {@link amplitude}: the key plus any other Browser SDK
|
|
11
|
+
* `amplitude.init` option, forwarded verbatim (`serverZone`, `autocapture`,
|
|
12
|
+
* `defaultTracking`, …). JSON values only.
|
|
13
|
+
*/
|
|
14
|
+
export type AmplitudeOptions = AmplitudeNamedOptions & {
|
|
15
|
+
[option: string]: JsonValue;
|
|
16
|
+
};
|
|
17
|
+
export declare const amplitudeOptionsSchema: z.ZodObject<{
|
|
18
|
+
key: z.ZodString;
|
|
19
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
20
|
+
export type AmplitudeAdapter = AdapterDescriptor<"amplitude", AmplitudeOptions>;
|
|
21
|
+
export declare const amplitudeAdapterSchema: z.ZodObject<{
|
|
22
|
+
kind: z.ZodLiteral<"amplitude">;
|
|
23
|
+
options: z.ZodObject<{
|
|
24
|
+
key: z.ZodString;
|
|
25
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
26
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
27
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
/**
|
|
30
|
+
* Amplitude product analytics through the Browser SDK's script loader. The
|
|
31
|
+
* project API key is public — it's what every browser event carries.
|
|
32
|
+
*/
|
|
33
|
+
export declare const amplitude: (options: AmplitudeOptions) => AmplitudeAdapter;
|
|
34
|
+
/** The script loader's CDN; the key picks the bundle. */
|
|
35
|
+
export declare const AMPLITUDE_SCRIPT_ORIGIN = "https://cdn.amplitude.com/script/";
|
|
36
|
+
/**
|
|
37
|
+
* The init options the dashboard snippet ships with. `autocapture` covers page
|
|
38
|
+
* views, sessions, and history changes, so client-router navigations count
|
|
39
|
+
* without any extra hook; a passthrough option overrides either.
|
|
40
|
+
*/
|
|
41
|
+
export declare const AMPLITUDE_DEFAULT_INIT: {
|
|
42
|
+
autocapture: boolean;
|
|
43
|
+
fetchRemoteConfig: boolean;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* The two tags from the dashboard's install snippet: the keyed SDK bundle
|
|
47
|
+
* (synchronous, so `window.amplitude` exists for the next tag) and the init
|
|
48
|
+
* call, with `key` mapped and everything else forwarded to `init` verbatim.
|
|
49
|
+
*/
|
|
50
|
+
export declare const amplitudeHead: (options: AmplitudeOptions) => HeadScript[];
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** Options for {@link clarity}. */
|
|
5
|
+
export interface ClarityOptions {
|
|
6
|
+
/** Project ID, from the project's tracking code in the Clarity dashboard. */
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const clarityOptionsSchema: z.ZodObject<{
|
|
10
|
+
id: z.ZodString;
|
|
11
|
+
}, z.core.$strict>;
|
|
12
|
+
export type ClarityAdapter = AdapterDescriptor<"clarity", ClarityOptions>;
|
|
13
|
+
export declare const clarityAdapterSchema: z.ZodObject<{
|
|
14
|
+
kind: z.ZodLiteral<"clarity">;
|
|
15
|
+
options: z.ZodObject<{
|
|
16
|
+
id: z.ZodString;
|
|
17
|
+
}, z.core.$strict>;
|
|
18
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
19
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
/**
|
|
22
|
+
* Microsoft Clarity session recordings and heatmaps. The project ID is public;
|
|
23
|
+
* it only picks the project the tag reports to.
|
|
24
|
+
*/
|
|
25
|
+
export declare const clarity: (options: ClarityOptions) => ClarityAdapter;
|
|
26
|
+
/**
|
|
27
|
+
* The dashboard's tracking code: a `window.clarity` queue and the async tag
|
|
28
|
+
* load. Clarity follows history changes itself, so client-router navigations
|
|
29
|
+
* need no extra hook.
|
|
30
|
+
*/
|
|
31
|
+
export declare const clarityHead: (options: ClarityOptions) => HeadScript[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** Options for {@link clearbit}. */
|
|
5
|
+
export interface ClearbitOptions {
|
|
6
|
+
/** Publishable API key (`pk_…`). */
|
|
7
|
+
key: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const clearbitOptionsSchema: z.ZodObject<{
|
|
10
|
+
key: z.ZodString;
|
|
11
|
+
}, z.core.$strict>;
|
|
12
|
+
export type ClearbitAdapter = AdapterDescriptor<"clearbit", ClearbitOptions>;
|
|
13
|
+
export declare const clearbitAdapterSchema: z.ZodObject<{
|
|
14
|
+
kind: z.ZodLiteral<"clearbit">;
|
|
15
|
+
options: z.ZodObject<{
|
|
16
|
+
key: z.ZodString;
|
|
17
|
+
}, z.core.$strict>;
|
|
18
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
19
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
20
|
+
}, z.core.$strict>;
|
|
21
|
+
/**
|
|
22
|
+
* Clearbit's website tag (Reveal and the Clearbit tags it manages). The
|
|
23
|
+
* publishable key is meant for the browser.
|
|
24
|
+
*/
|
|
25
|
+
export declare const clearbit: (options: ClearbitOptions) => ClearbitAdapter;
|
|
26
|
+
/** The tag origin; the key picks the tags bundle. */
|
|
27
|
+
export declare const CLEARBIT_TAG_ORIGIN = "https://tag.clearbitscripts.com/v1/";
|
|
28
|
+
/** The tag as Clearbit's install snippet renders it. */
|
|
29
|
+
export declare const clearbitHead: (options: ClearbitOptions) => HeadScript[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** The beacon script Cloudflare's dashboard snippet loads. */
|
|
5
|
+
export declare const CLOUDFLARE_BEACON_SRC = "https://static.cloudflareinsights.com/beacon.min.js";
|
|
6
|
+
/** The options {@link cloudflare} maps itself. */
|
|
7
|
+
export interface CloudflareNamedOptions {
|
|
8
|
+
/** Site token from the Web Analytics JS snippet (`data-cf-beacon`). */
|
|
9
|
+
token: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Options for {@link cloudflare}: the token plus any other `data-cf-beacon`
|
|
13
|
+
* setting, forwarded verbatim (`spa`, …). JSON values only.
|
|
14
|
+
*/
|
|
15
|
+
export type CloudflareOptions = CloudflareNamedOptions & {
|
|
16
|
+
[option: string]: JsonValue;
|
|
17
|
+
};
|
|
18
|
+
export declare const cloudflareOptionsSchema: z.ZodObject<{
|
|
19
|
+
token: z.ZodString;
|
|
20
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
21
|
+
export type CloudflareAdapter = AdapterDescriptor<"cloudflare", CloudflareOptions>;
|
|
22
|
+
export declare const cloudflareAdapterSchema: z.ZodObject<{
|
|
23
|
+
kind: z.ZodLiteral<"cloudflare">;
|
|
24
|
+
options: z.ZodObject<{
|
|
25
|
+
token: z.ZodString;
|
|
26
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
27
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
28
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
29
|
+
}, z.core.$strict>;
|
|
30
|
+
/**
|
|
31
|
+
* Cloudflare Web Analytics in manual (JS snippet) mode, for a site Cloudflare
|
|
32
|
+
* doesn't proxy. A proxied zone with automatic RUM injection on needs no
|
|
33
|
+
* adapter at all — listing one there would count every pageview twice.
|
|
34
|
+
*/
|
|
35
|
+
export declare const cloudflare: (options: CloudflareOptions) => CloudflareAdapter;
|
|
36
|
+
/**
|
|
37
|
+
* The beacon tag exactly as the dashboard's snippet renders it, with the whole
|
|
38
|
+
* option object as its `data-cf-beacon` JSON. The beacon tracks history
|
|
39
|
+
* changes itself, so client-router navigations need no extra hook.
|
|
40
|
+
*/
|
|
41
|
+
export declare const cloudflareHead: (options: CloudflareOptions) => HeadScript[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** The script Fathom's dashboard snippet loads. */
|
|
5
|
+
export declare const FATHOM_SCRIPT_SRC = "https://cdn.usefathom.com/script.js";
|
|
6
|
+
/** The options {@link fathom} maps itself. */
|
|
7
|
+
export interface FathomNamedOptions {
|
|
8
|
+
/** Site ID, from the site's script settings. */
|
|
9
|
+
site: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Options for {@link fathom}: the site ID plus any other script setting,
|
|
13
|
+
* forwarded as a `data-` attribute on the tag (`spa` → `data-spa`,
|
|
14
|
+
* `"honor-dnt"` → `data-honor-dnt`, `"excluded-domains"`, `canonical`, …).
|
|
15
|
+
*/
|
|
16
|
+
export type FathomOptions = FathomNamedOptions & {
|
|
17
|
+
[setting: string]: string;
|
|
18
|
+
};
|
|
19
|
+
export declare const fathomOptionsSchema: z.ZodObject<{
|
|
20
|
+
site: z.ZodString;
|
|
21
|
+
}, z.core.$catchall<z.ZodString>>;
|
|
22
|
+
export type FathomAdapter = AdapterDescriptor<"fathom", FathomOptions>;
|
|
23
|
+
export declare const fathomAdapterSchema: z.ZodObject<{
|
|
24
|
+
kind: z.ZodLiteral<"fathom">;
|
|
25
|
+
options: z.ZodObject<{
|
|
26
|
+
site: z.ZodString;
|
|
27
|
+
}, z.core.$catchall<z.ZodString>>;
|
|
28
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
29
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
30
|
+
}, z.core.$strict>;
|
|
31
|
+
/**
|
|
32
|
+
* Fathom Analytics. The site ID is public — it's in the tag on every page.
|
|
33
|
+
*/
|
|
34
|
+
export declare const fathom: (options: FathomOptions) => FathomAdapter;
|
|
35
|
+
/**
|
|
36
|
+
* The deferred tag from the dashboard, with `site` as `data-site` and every
|
|
37
|
+
* other option as its own `data-` attribute. Fathom only tracks history
|
|
38
|
+
* changes when the tag opts in, so `spa` defaults to `"auto"` — Blume's
|
|
39
|
+
* client router navigates without full loads — and an explicit `spa` wins.
|
|
40
|
+
*/
|
|
41
|
+
export declare const fathomHead: (options: FathomOptions) => HeadScript[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** The options {@link googleAnalytics} maps itself. */
|
|
5
|
+
export interface GoogleAnalyticsNamedOptions {
|
|
6
|
+
/** Measurement ID of the GA4 web data stream (`G-…`). */
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Options for {@link googleAnalytics}: the measurement ID plus any other
|
|
11
|
+
* `gtag('config', …)` parameter, forwarded verbatim (`send_page_view`,
|
|
12
|
+
* `anonymize_ip`, `cookie_domain`, `debug_mode`, …). JSON values only.
|
|
13
|
+
*/
|
|
14
|
+
export type GoogleAnalyticsOptions = GoogleAnalyticsNamedOptions & {
|
|
15
|
+
[parameter: string]: JsonValue;
|
|
16
|
+
};
|
|
17
|
+
export declare const googleAnalyticsOptionsSchema: z.ZodObject<{
|
|
18
|
+
id: z.ZodString;
|
|
19
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
20
|
+
export type GoogleAnalyticsAdapter = AdapterDescriptor<"google-analytics", GoogleAnalyticsOptions>;
|
|
21
|
+
export declare const googleAnalyticsAdapterSchema: z.ZodObject<{
|
|
22
|
+
kind: z.ZodLiteral<"google-analytics">;
|
|
23
|
+
options: z.ZodObject<{
|
|
24
|
+
id: z.ZodString;
|
|
25
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
26
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
27
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
/**
|
|
30
|
+
* Google Analytics 4 through the Google tag (`gtag.js`). The measurement ID is
|
|
31
|
+
* public; it names the data stream the tag reports to.
|
|
32
|
+
*/
|
|
33
|
+
export declare const googleAnalytics: (options: GoogleAnalyticsOptions) => GoogleAnalyticsAdapter;
|
|
34
|
+
/** The Google tag loader; the measurement ID travels in its query string. */
|
|
35
|
+
export declare const GOOGLE_TAG_SRC = "https://www.googletagmanager.com/gtag/js";
|
|
36
|
+
/**
|
|
37
|
+
* The two tags from the data stream's install instructions: the async loader
|
|
38
|
+
* and the `dataLayer` bootstrap with the `config` call. Extra options ride on
|
|
39
|
+
* the `config` call, and it is emitted bare when there are none, exactly as
|
|
40
|
+
* the instructions print it. GA4's enhanced measurement counts history
|
|
41
|
+
* changes as page views by default, so client-router navigations need no
|
|
42
|
+
* extra hook here.
|
|
43
|
+
*/
|
|
44
|
+
export declare const googleAnalyticsHead: (options: GoogleAnalyticsOptions) => HeadScript[];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** Options for {@link googleTagManager}. */
|
|
5
|
+
export interface GoogleTagManagerOptions {
|
|
6
|
+
/** Name of the data layer global the container reads. Defaults to `dataLayer`. */
|
|
7
|
+
dataLayer?: string;
|
|
8
|
+
/** Container ID (`GTM-…`). */
|
|
9
|
+
id: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const googleTagManagerOptionsSchema: z.ZodObject<{
|
|
12
|
+
dataLayer: z.ZodOptional<z.ZodString>;
|
|
13
|
+
id: z.ZodString;
|
|
14
|
+
}, z.core.$strict>;
|
|
15
|
+
export type GoogleTagManagerAdapter = AdapterDescriptor<"google-tag-manager", GoogleTagManagerOptions>;
|
|
16
|
+
export declare const googleTagManagerAdapterSchema: z.ZodObject<{
|
|
17
|
+
kind: z.ZodLiteral<"google-tag-manager">;
|
|
18
|
+
options: z.ZodObject<{
|
|
19
|
+
dataLayer: z.ZodOptional<z.ZodString>;
|
|
20
|
+
id: z.ZodString;
|
|
21
|
+
}, z.core.$strict>;
|
|
22
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
23
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
24
|
+
}, z.core.$strict>;
|
|
25
|
+
/**
|
|
26
|
+
* Google Tag Manager. Blume loads the container; which tags fire, and on what,
|
|
27
|
+
* is the container's configuration. The container ID is public.
|
|
28
|
+
*/
|
|
29
|
+
export declare const googleTagManager: (options: GoogleTagManagerOptions) => GoogleTagManagerAdapter;
|
|
30
|
+
/**
|
|
31
|
+
* The container snippet from the workspace's install instructions (the
|
|
32
|
+
* `<head>` half; the `<noscript>` iframe is for browsers without JavaScript,
|
|
33
|
+
* which never run analytics anyway). Client-router navigations reach the
|
|
34
|
+
* container as history changes — fire pageview tags from a History Change
|
|
35
|
+
* trigger rather than the page-load one. The snippet also keeps a reference
|
|
36
|
+
* to its data layer on `window.__blumeGtmLayer`, so `track()` pushes custom
|
|
37
|
+
* events into the layer this container reads rather than the default
|
|
38
|
+
* `dataLayer`.
|
|
39
|
+
*/
|
|
40
|
+
export declare const googleTagManagerHead: (options: GoogleTagManagerOptions) => HeadScript[];
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { AnalyticsAdapter } from "./schema.ts";
|
|
2
|
+
import type { VercelOptions } from "./vercel.ts";
|
|
3
|
+
/** One `<script>` tag an adapter emits into `<head>`. */
|
|
4
|
+
export interface HeadScript {
|
|
5
|
+
/**
|
|
6
|
+
* Attributes on the tag, including `src` for an external script. `true`
|
|
7
|
+
* renders a bare boolean attribute (`async`, `defer`).
|
|
8
|
+
*/
|
|
9
|
+
attributes: Record<string, string | boolean>;
|
|
10
|
+
/** Inline body, or `null` for an external script. */
|
|
11
|
+
content: string | null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* One thing `Analytics.astro` renders, in the adapters' declared order. Vercel
|
|
15
|
+
* is the one adapter that renders a component rather than a tag: the official
|
|
16
|
+
* component injects the first-party script and resolves the deployment's base
|
|
17
|
+
* path itself, so it travels as its props.
|
|
18
|
+
*/
|
|
19
|
+
export type HeadNode = (HeadScript & {
|
|
20
|
+
type: "script";
|
|
21
|
+
}) | {
|
|
22
|
+
props: VercelOptions;
|
|
23
|
+
type: "vercel";
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Map the configured adapters to what `Analytics.astro` renders, in declared
|
|
27
|
+
* order. A second `vercel()` is dropped — two copies of the component would
|
|
28
|
+
* count every pageview twice — so the first one keeps its position.
|
|
29
|
+
*/
|
|
30
|
+
export declare const analyticsHead: (adapters: AnalyticsAdapter[]) => HeadNode[];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** The options {@link heap} maps itself. */
|
|
5
|
+
export interface HeapNamedOptions {
|
|
6
|
+
/** App ID (the environment ID), from the project's install settings. */
|
|
7
|
+
id: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Options for {@link heap}: the app ID plus any other `heap.load` config
|
|
11
|
+
* option, forwarded verbatim (`disableTextCapture`, `secureCookie`, …). JSON
|
|
12
|
+
* values only.
|
|
13
|
+
*/
|
|
14
|
+
export type HeapOptions = HeapNamedOptions & {
|
|
15
|
+
[option: string]: JsonValue;
|
|
16
|
+
};
|
|
17
|
+
export declare const heapOptionsSchema: z.ZodObject<{
|
|
18
|
+
id: z.ZodString;
|
|
19
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
20
|
+
export type HeapAdapter = AdapterDescriptor<"heap", HeapOptions>;
|
|
21
|
+
export declare const heapAdapterSchema: z.ZodObject<{
|
|
22
|
+
kind: z.ZodLiteral<"heap">;
|
|
23
|
+
options: z.ZodObject<{
|
|
24
|
+
id: z.ZodString;
|
|
25
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
26
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
27
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
28
|
+
}, z.core.$strict>;
|
|
29
|
+
/**
|
|
30
|
+
* Heap autocapture analytics. The app ID is public — the tag carries it on
|
|
31
|
+
* every page.
|
|
32
|
+
*/
|
|
33
|
+
export declare const heap: (options: HeapOptions) => HeapAdapter;
|
|
34
|
+
/**
|
|
35
|
+
* The loader plus `heap.load` with `id` mapped and everything else forwarded
|
|
36
|
+
* as the config object; the object is left off when there is nothing to pass,
|
|
37
|
+
* as the install snippet prints it. Heap autocaptures history changes as
|
|
38
|
+
* pageviews, so client-router navigations need no extra hook.
|
|
39
|
+
*/
|
|
40
|
+
export declare const heapHead: (options: HeapOptions) => HeadScript[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** The events API host `hightouch()` uses when `host` is unset. */
|
|
5
|
+
export declare const HIGHTOUCH_DEFAULT_HOST = "us-east-1.hightouch-events.com";
|
|
6
|
+
/** The options {@link hightouch} maps itself. */
|
|
7
|
+
export interface HightouchNamedOptions {
|
|
8
|
+
/** Events API host, without a scheme. Defaults to the US East region. */
|
|
9
|
+
host?: string;
|
|
10
|
+
/** Write key of the event source. */
|
|
11
|
+
key: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Options for {@link hightouch}: the named options plus any other
|
|
15
|
+
* `htevents.load` option, forwarded verbatim. JSON values only.
|
|
16
|
+
*/
|
|
17
|
+
export type HightouchOptions = HightouchNamedOptions & {
|
|
18
|
+
[option: string]: JsonValue;
|
|
19
|
+
};
|
|
20
|
+
export declare const hightouchOptionsSchema: z.ZodObject<{
|
|
21
|
+
host: z.ZodOptional<z.ZodString>;
|
|
22
|
+
key: z.ZodString;
|
|
23
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
24
|
+
export type HightouchAdapter = AdapterDescriptor<"hightouch", HightouchOptions>;
|
|
25
|
+
export declare const hightouchAdapterSchema: z.ZodObject<{
|
|
26
|
+
kind: z.ZodLiteral<"hightouch">;
|
|
27
|
+
options: z.ZodObject<{
|
|
28
|
+
host: z.ZodOptional<z.ZodString>;
|
|
29
|
+
key: z.ZodString;
|
|
30
|
+
}, z.core.$catchall<z.ZodJSONSchema>>;
|
|
31
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
32
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
33
|
+
}, z.core.$strict>;
|
|
34
|
+
/**
|
|
35
|
+
* Hightouch Events. The write key is meant for the browser — it identifies
|
|
36
|
+
* the event source the SDK reports to.
|
|
37
|
+
*/
|
|
38
|
+
export declare const hightouch: (options: HightouchOptions) => HightouchAdapter;
|
|
39
|
+
/**
|
|
40
|
+
* The loader with `key` mapped to the write key and `host` to `apiHost`;
|
|
41
|
+
* everything else lands in the load options verbatim, after the mapped host
|
|
42
|
+
* so a raw `apiHost` still wins.
|
|
43
|
+
*/
|
|
44
|
+
export declare const hightouchHead: (options: HightouchOptions) => HeadScript[];
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
3
|
+
import type { HeadScript } from "./head.ts";
|
|
4
|
+
/** The tracking-code version (`hjsv`) `hotjar()` uses when `version` is unset. */
|
|
5
|
+
export declare const HOTJAR_DEFAULT_VERSION = 6;
|
|
6
|
+
/** Options for {@link hotjar}. */
|
|
7
|
+
export interface HotjarOptions {
|
|
8
|
+
/** Site ID (`hjid`), from the site's tracking code. */
|
|
9
|
+
id: number;
|
|
10
|
+
/** Tracking-code version (`hjsv`). Defaults to the current one. */
|
|
11
|
+
version?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare const hotjarOptionsSchema: z.ZodObject<{
|
|
14
|
+
id: z.ZodNumber;
|
|
15
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
}, z.core.$strict>;
|
|
17
|
+
export type HotjarAdapter = AdapterDescriptor<"hotjar", HotjarOptions>;
|
|
18
|
+
export declare const hotjarAdapterSchema: z.ZodObject<{
|
|
19
|
+
kind: z.ZodLiteral<"hotjar">;
|
|
20
|
+
options: z.ZodObject<{
|
|
21
|
+
id: z.ZodNumber;
|
|
22
|
+
version: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
}, z.core.$strict>;
|
|
24
|
+
requiredSecrets: z.ZodArray<z.ZodString>;
|
|
25
|
+
runtimeDeps: z.ZodArray<z.ZodString>;
|
|
26
|
+
}, z.core.$strict>;
|
|
27
|
+
/**
|
|
28
|
+
* Hotjar heatmaps and recordings. The site ID is public — it's in the tracking
|
|
29
|
+
* code on every page.
|
|
30
|
+
*/
|
|
31
|
+
export declare const hotjar: (options: HotjarOptions) => HotjarAdapter;
|
|
32
|
+
/** The tracking code as the site's install instructions render it. */
|
|
33
|
+
export declare const hotjarHead: (options: HotjarOptions) => HeadScript[];
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analytics adapters for `blume.config.ts`:
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import { defineConfig } from "blume";
|
|
6
|
+
* import { plausible, posthog, script, vercel } from "blume/analytics";
|
|
7
|
+
*
|
|
8
|
+
* export default defineConfig({
|
|
9
|
+
* analytics: [
|
|
10
|
+
* posthog({ key: "phc_…" }),
|
|
11
|
+
* vercel(),
|
|
12
|
+
* plausible({ domain: "docs.example.com" }),
|
|
13
|
+
* script({ src: "…" }),
|
|
14
|
+
* ],
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Each factory returns a plain descriptor (see `core/adapter.ts`) that the
|
|
19
|
+
* schema validates and the generated site inlines as a literal; nothing here
|
|
20
|
+
* runs in the browser.
|
|
21
|
+
*/
|
|
22
|
+
export type { AdapterDescriptor, JsonValue } from "../core/adapter.ts";
|
|
23
|
+
export { adobe } from "./adobe.ts";
|
|
24
|
+
export type { AdobeAdapter, AdobeOptions } from "./adobe.ts";
|
|
25
|
+
export { amplitude } from "./amplitude.ts";
|
|
26
|
+
export type { AmplitudeAdapter, AmplitudeOptions } from "./amplitude.ts";
|
|
27
|
+
export { clarity } from "./clarity.ts";
|
|
28
|
+
export type { ClarityAdapter, ClarityOptions } from "./clarity.ts";
|
|
29
|
+
export { clearbit } from "./clearbit.ts";
|
|
30
|
+
export type { ClearbitAdapter, ClearbitOptions } from "./clearbit.ts";
|
|
31
|
+
export { cloudflare } from "./cloudflare.ts";
|
|
32
|
+
export type { CloudflareAdapter, CloudflareOptions } from "./cloudflare.ts";
|
|
33
|
+
export { fathom } from "./fathom.ts";
|
|
34
|
+
export type { FathomAdapter, FathomOptions } from "./fathom.ts";
|
|
35
|
+
export { googleAnalytics } from "./google-analytics.ts";
|
|
36
|
+
export type { GoogleAnalyticsAdapter, GoogleAnalyticsOptions, } from "./google-analytics.ts";
|
|
37
|
+
export { googleTagManager } from "./google-tag-manager.ts";
|
|
38
|
+
export type { GoogleTagManagerAdapter, GoogleTagManagerOptions, } from "./google-tag-manager.ts";
|
|
39
|
+
export { heap } from "./heap.ts";
|
|
40
|
+
export type { HeapAdapter, HeapOptions } from "./heap.ts";
|
|
41
|
+
export { hightouch } from "./hightouch.ts";
|
|
42
|
+
export type { HightouchAdapter, HightouchOptions } from "./hightouch.ts";
|
|
43
|
+
export { hotjar } from "./hotjar.ts";
|
|
44
|
+
export type { HotjarAdapter, HotjarOptions } from "./hotjar.ts";
|
|
45
|
+
export { logrocket } from "./logrocket.ts";
|
|
46
|
+
export type { LogrocketAdapter, LogrocketOptions } from "./logrocket.ts";
|
|
47
|
+
export { mixpanel } from "./mixpanel.ts";
|
|
48
|
+
export type { MixpanelAdapter, MixpanelOptions, MixpanelRegion, } from "./mixpanel.ts";
|
|
49
|
+
export { pirsch } from "./pirsch.ts";
|
|
50
|
+
export type { PirschAdapter, PirschOptions } from "./pirsch.ts";
|
|
51
|
+
export { plausible } from "./plausible.ts";
|
|
52
|
+
export type { PlausibleAdapter, PlausibleOptions } from "./plausible.ts";
|
|
53
|
+
export { posthog } from "./posthog.ts";
|
|
54
|
+
export type { PosthogAdapter, PosthogOptions } from "./posthog.ts";
|
|
55
|
+
export type { AnalyticsAdapter } from "./schema.ts";
|
|
56
|
+
export { script } from "./script.ts";
|
|
57
|
+
export type { ScriptAdapter, ScriptOptions } from "./script.ts";
|
|
58
|
+
export { segment } from "./segment.ts";
|
|
59
|
+
export type { SegmentAdapter, SegmentOptions } from "./segment.ts";
|
|
60
|
+
export { vercel } from "./vercel.ts";
|
|
61
|
+
export type { VercelAdapter, VercelOptions } from "./vercel.ts";
|