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
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
import type * as TypesenseSdk from "typesense";
|
|
2
|
+
|
|
3
|
+
import { nodeRequire } from "../../core/node-require.ts";
|
|
4
|
+
import type { TypesenseOptions } from "../adapters/typesense.ts";
|
|
1
5
|
import type { SearchRecord } from "../documents.ts";
|
|
2
6
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
port
|
|
7
|
-
|
|
8
|
-
}
|
|
7
|
+
/** The adapter options the sync reads (the public `apiKey` is never used). */
|
|
8
|
+
export type TypesenseSyncConfig = Pick<
|
|
9
|
+
TypesenseOptions,
|
|
10
|
+
"collection" | "host" | "port" | "protocol"
|
|
11
|
+
>;
|
|
9
12
|
|
|
10
13
|
/**
|
|
11
14
|
* Import the search records into a Typesense collection. Uses the admin key
|
|
12
|
-
* from `TYPESENSE_ADMIN_API_KEY`. Throws on a missing key
|
|
13
|
-
*
|
|
15
|
+
* from `TYPESENSE_ADMIN_API_KEY`. Throws on a missing key so the caller can
|
|
16
|
+
* warn.
|
|
14
17
|
*
|
|
15
18
|
* The collection is dropped and recreated on each sync so that pages deleted or
|
|
16
19
|
* renamed since the last sync don't linger as stale search hits that 404 when
|
|
@@ -18,16 +21,15 @@ export interface TypesenseSyncConfig {
|
|
|
18
21
|
*/
|
|
19
22
|
export const syncTypesense = async (
|
|
20
23
|
records: SearchRecord[],
|
|
21
|
-
config: TypesenseSyncConfig
|
|
24
|
+
config: TypesenseSyncConfig
|
|
22
25
|
): Promise<void> => {
|
|
23
|
-
if (!config) {
|
|
24
|
-
throw new Error("search.typesense config is missing.");
|
|
25
|
-
}
|
|
26
26
|
const adminKey = process.env.TYPESENSE_ADMIN_API_KEY;
|
|
27
27
|
if (!adminKey) {
|
|
28
28
|
throw new Error("TYPESENSE_ADMIN_API_KEY is not set.");
|
|
29
29
|
}
|
|
30
|
-
|
|
30
|
+
// `require`, not `import()`: this runs in `astro:build:done` (see
|
|
31
|
+
// `core/node-require.ts`).
|
|
32
|
+
const { Client }: typeof TypesenseSdk = nodeRequire("typesense");
|
|
31
33
|
const client = new Client({
|
|
32
34
|
apiKey: adminKey,
|
|
33
35
|
nodes: [
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
4
|
+
import { adapterDescriptorSchema } from "../core/adapter.ts";
|
|
5
|
+
import type { SharedSourceOptions, SourceFieldMap } from "./shared.ts";
|
|
6
|
+
import {
|
|
7
|
+
queryParamsSchema,
|
|
8
|
+
sharedSourceOptionsSchema,
|
|
9
|
+
sourceFieldMapSchema,
|
|
10
|
+
} from "./shared.ts";
|
|
11
|
+
|
|
12
|
+
/** Options for {@link contentful}. */
|
|
13
|
+
export interface ContentfulOptions extends SharedSourceOptions {
|
|
14
|
+
/** The content type id whose entries become pages. */
|
|
15
|
+
contentType: string;
|
|
16
|
+
/** Environment id. Defaults to `master`. */
|
|
17
|
+
environment?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Field ids mapping an entry onto Blume meta + body; `sys.<key>` reaches
|
|
20
|
+
* the entry's `sys`. Defaults to `title` / `description` / `slug` / `body`
|
|
21
|
+
* / `sys.updatedAt`.
|
|
22
|
+
*/
|
|
23
|
+
fields?: SourceFieldMap;
|
|
24
|
+
/** Locale code to fetch; omit for the space's default locale. */
|
|
25
|
+
locale?: string;
|
|
26
|
+
/** Extra query parameters for the entries request (`"fields.section": "sdk"`). */
|
|
27
|
+
params?: Record<string, string>;
|
|
28
|
+
/** Space id. */
|
|
29
|
+
space: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const contentfulOptionsSchema = sharedSourceOptionsSchema.extend({
|
|
33
|
+
contentType: z.string(),
|
|
34
|
+
environment: z.string().optional(),
|
|
35
|
+
fields: sourceFieldMapSchema.optional(),
|
|
36
|
+
locale: z.string().optional(),
|
|
37
|
+
params: queryParamsSchema.optional(),
|
|
38
|
+
space: z.string(),
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
export type ContentfulAdapter = AdapterDescriptor<
|
|
42
|
+
"contentful",
|
|
43
|
+
ContentfulOptions
|
|
44
|
+
>;
|
|
45
|
+
|
|
46
|
+
export const contentfulAdapterSchema = adapterDescriptorSchema(
|
|
47
|
+
"contentful",
|
|
48
|
+
contentfulOptionsSchema
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* A Contentful content type read through the Delivery API; rich text bodies
|
|
53
|
+
* become Markdown. The Delivery token comes from `CONTENTFUL_ACCESS_TOKEN`,
|
|
54
|
+
* and `--preview` reads drafts through the Preview API with
|
|
55
|
+
* `CONTENTFUL_PREVIEW_TOKEN`. Nothing to install: the adapter speaks the
|
|
56
|
+
* REST API directly.
|
|
57
|
+
*/
|
|
58
|
+
export const contentful = (options: ContentfulOptions): ContentfulAdapter => ({
|
|
59
|
+
kind: "contentful",
|
|
60
|
+
options,
|
|
61
|
+
requiredSecrets: ["CONTENTFUL_ACCESS_TOKEN"],
|
|
62
|
+
runtimeDeps: [],
|
|
63
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
4
|
+
import { adapterDescriptorSchema } from "../core/adapter.ts";
|
|
5
|
+
import type { ContentSource } from "../core/sources/types.ts";
|
|
6
|
+
|
|
7
|
+
/** A user-provided {@link ContentSource} instance, validated for `name` + `load`. */
|
|
8
|
+
export const customOptionsSchema = z.custom<ContentSource>(
|
|
9
|
+
(value): value is ContentSource =>
|
|
10
|
+
typeof value === "object" &&
|
|
11
|
+
value !== null &&
|
|
12
|
+
"load" in value &&
|
|
13
|
+
typeof value.load === "function" &&
|
|
14
|
+
"name" in value &&
|
|
15
|
+
typeof value.name === "string",
|
|
16
|
+
{ message: "custom() takes a ContentSource (an object with name + load)" }
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export type CustomAdapter = AdapterDescriptor<"custom", ContentSource>;
|
|
20
|
+
|
|
21
|
+
export const customAdapterSchema = adapterDescriptorSchema(
|
|
22
|
+
"custom",
|
|
23
|
+
customOptionsSchema
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Any object implementing the {@link ContentSource} interface, passed straight
|
|
28
|
+
* through. This is the extension point for adapters with custom serializers or
|
|
29
|
+
* any other backend, without their SDKs touching core. Unlike the built-in
|
|
30
|
+
* adapters the descriptor carries a live instance, so it never travels through
|
|
31
|
+
* the generated project's data snapshot — the CLI consumes it at scan time.
|
|
32
|
+
*/
|
|
33
|
+
export const custom = (source: ContentSource): CustomAdapter => ({
|
|
34
|
+
kind: "custom",
|
|
35
|
+
options: source,
|
|
36
|
+
requiredSecrets: [],
|
|
37
|
+
runtimeDeps: [],
|
|
38
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
4
|
+
import { adapterDescriptorSchema } from "../core/adapter.ts";
|
|
5
|
+
import type { SharedSourceOptions } from "./shared.ts";
|
|
6
|
+
import { DEFAULT_CONTENT_GLOB, sharedSourceOptionsSchema } from "./shared.ts";
|
|
7
|
+
|
|
8
|
+
/** What `include` defaults to: every Markdown/MDX file under the root. */
|
|
9
|
+
export const DEFAULT_CONTENT_INCLUDE = [DEFAULT_CONTENT_GLOB];
|
|
10
|
+
/** What `exclude` defaults to: underscore- and dot-prefixed paths. */
|
|
11
|
+
export const DEFAULT_CONTENT_EXCLUDE = ["**/_*", "**/.*"];
|
|
12
|
+
|
|
13
|
+
/** Options for {@link filesystem}. */
|
|
14
|
+
export interface FilesystemOptions extends SharedSourceOptions {
|
|
15
|
+
/** Glob patterns to ignore. Defaults to `["**\/_*", "**\/.*"]`. */
|
|
16
|
+
exclude?: string[];
|
|
17
|
+
/** Glob patterns to include. Defaults to `["**\/*.{md,mdx}"]`. */
|
|
18
|
+
include?: string[];
|
|
19
|
+
/** Directory to read from, relative to the project root. Defaults to `docs`. */
|
|
20
|
+
root?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const filesystemOptionsSchema = sharedSourceOptionsSchema.extend({
|
|
24
|
+
exclude: z.array(z.string()).default(DEFAULT_CONTENT_EXCLUDE),
|
|
25
|
+
include: z.array(z.string()).default(DEFAULT_CONTENT_INCLUDE),
|
|
26
|
+
root: z.string().default("docs"),
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export type FilesystemAdapter = AdapterDescriptor<
|
|
30
|
+
"filesystem",
|
|
31
|
+
FilesystemOptions
|
|
32
|
+
>;
|
|
33
|
+
|
|
34
|
+
export const filesystemAdapterSchema = adapterDescriptorSchema(
|
|
35
|
+
"filesystem",
|
|
36
|
+
filesystemOptionsSchema
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Local Markdown/MDX read from a directory. The zero-config default: with no
|
|
41
|
+
* `content.sources`, the top-level `content.root`/`include`/`exclude` desugar
|
|
42
|
+
* to exactly one of these.
|
|
43
|
+
*/
|
|
44
|
+
export const filesystem = (
|
|
45
|
+
options: FilesystemOptions = {}
|
|
46
|
+
): FilesystemAdapter => ({
|
|
47
|
+
kind: "filesystem",
|
|
48
|
+
options,
|
|
49
|
+
requiredSecrets: [],
|
|
50
|
+
runtimeDeps: [],
|
|
51
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
4
|
+
import { adapterDescriptorSchema } from "../core/adapter.ts";
|
|
5
|
+
import type { SharedSourceOptions } from "./shared.ts";
|
|
6
|
+
import { sharedSourceOptionsSchema } from "./shared.ts";
|
|
7
|
+
|
|
8
|
+
/** Options for {@link githubReleases}. */
|
|
9
|
+
export interface GithubReleasesOptions extends SharedSourceOptions {
|
|
10
|
+
/** Include draft releases (needs a token with repo write access). */
|
|
11
|
+
drafts?: boolean;
|
|
12
|
+
/** Cap the number of releases materialized, newest-first. Defaults to 100. */
|
|
13
|
+
limit?: number;
|
|
14
|
+
/** Repository owner (user or org). */
|
|
15
|
+
owner: string;
|
|
16
|
+
/** Include prereleases. */
|
|
17
|
+
prereleases?: boolean;
|
|
18
|
+
/** Repository name. */
|
|
19
|
+
repo: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const githubReleasesOptionsSchema = sharedSourceOptionsSchema.extend({
|
|
23
|
+
drafts: z.boolean().optional(),
|
|
24
|
+
limit: z.number().positive().optional(),
|
|
25
|
+
owner: z.string(),
|
|
26
|
+
prereleases: z.boolean().optional(),
|
|
27
|
+
repo: z.string(),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export type GithubReleasesAdapter = AdapterDescriptor<
|
|
31
|
+
"github-releases",
|
|
32
|
+
GithubReleasesOptions
|
|
33
|
+
>;
|
|
34
|
+
|
|
35
|
+
export const githubReleasesAdapterSchema = adapterDescriptorSchema(
|
|
36
|
+
"github-releases",
|
|
37
|
+
githubReleasesOptionsSchema
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* A repo's GitHub Releases, materialized as `type: changelog` entries — release
|
|
42
|
+
* notes become the changelog with no files to maintain. A private repo reads a
|
|
43
|
+
* token from `GITHUB_TOKEN`; it is never inlined here.
|
|
44
|
+
*/
|
|
45
|
+
export const githubReleases = (
|
|
46
|
+
options: GithubReleasesOptions
|
|
47
|
+
): GithubReleasesAdapter => ({
|
|
48
|
+
kind: "github-releases",
|
|
49
|
+
options,
|
|
50
|
+
requiredSecrets: ["GITHUB_TOKEN"],
|
|
51
|
+
runtimeDeps: [],
|
|
52
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Content source adapters for `blume.config.ts`:
|
|
3
|
+
*
|
|
4
|
+
* ```ts
|
|
5
|
+
* import { defineConfig } from "blume";
|
|
6
|
+
* import { filesystem, githubReleases } from "blume/sources";
|
|
7
|
+
*
|
|
8
|
+
* export default defineConfig({
|
|
9
|
+
* content: {
|
|
10
|
+
* sources: [
|
|
11
|
+
* filesystem({ root: "docs" }),
|
|
12
|
+
* githubReleases({ owner: "acme", repo: "sdk", prefix: "changelog" }),
|
|
13
|
+
* ],
|
|
14
|
+
* },
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Each factory returns a plain descriptor (see `core/adapter.ts`) that the
|
|
19
|
+
* schema validates and the CLI reads at scan time; every consumer — the
|
|
20
|
+
* generated `.blume/package.json`, the secrets check, `blume doctor` — reads
|
|
21
|
+
* the descriptor's `runtimeDeps` and `requiredSecrets` instead of switching
|
|
22
|
+
* on a source name. `custom()` is the exception that carries a live
|
|
23
|
+
* {@link ContentSource} instance rather than JSON.
|
|
24
|
+
*/
|
|
25
|
+
export type { AdapterDescriptor } from "../core/adapter.ts";
|
|
26
|
+
export type {
|
|
27
|
+
ContentSource,
|
|
28
|
+
SourceContext,
|
|
29
|
+
SourceEntry,
|
|
30
|
+
SourceLoadResult,
|
|
31
|
+
} from "../core/sources/types.ts";
|
|
32
|
+
export { contentful } from "./contentful.ts";
|
|
33
|
+
export type { ContentfulAdapter, ContentfulOptions } from "./contentful.ts";
|
|
34
|
+
export { custom } from "./custom.ts";
|
|
35
|
+
export type { CustomAdapter } from "./custom.ts";
|
|
36
|
+
export { filesystem } from "./filesystem.ts";
|
|
37
|
+
export type { FilesystemAdapter, FilesystemOptions } from "./filesystem.ts";
|
|
38
|
+
export { githubReleases } from "./github-releases.ts";
|
|
39
|
+
export type {
|
|
40
|
+
GithubReleasesAdapter,
|
|
41
|
+
GithubReleasesOptions,
|
|
42
|
+
} from "./github-releases.ts";
|
|
43
|
+
export { mdxRemote } from "./mdx-remote.ts";
|
|
44
|
+
export type { MdxRemoteAdapter, MdxRemoteOptions } from "./mdx-remote.ts";
|
|
45
|
+
export { notion } from "./notion.ts";
|
|
46
|
+
export type { NotionAdapter, NotionOptions } from "./notion.ts";
|
|
47
|
+
export { obsidian } from "./obsidian.ts";
|
|
48
|
+
export type { ObsidianAdapter, ObsidianOptions } from "./obsidian.ts";
|
|
49
|
+
export { payload } from "./payload.ts";
|
|
50
|
+
export type { PayloadAdapter, PayloadOptions } from "./payload.ts";
|
|
51
|
+
export type {
|
|
52
|
+
AnySourceAdapter,
|
|
53
|
+
ContentSourceAdapter,
|
|
54
|
+
SourceAdapterKind,
|
|
55
|
+
} from "./registry.ts";
|
|
56
|
+
export { sanity } from "./sanity.ts";
|
|
57
|
+
export type { SanityAdapter, SanityOptions } from "./sanity.ts";
|
|
58
|
+
export type { SharedSourceOptions, SourceFieldMap } from "./shared.ts";
|
|
59
|
+
export { strapi } from "./strapi.ts";
|
|
60
|
+
export type { StrapiAdapter, StrapiOptions } from "./strapi.ts";
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
4
|
+
import { adapterDescriptorSchema } from "../core/adapter.ts";
|
|
5
|
+
import type { SharedSourceOptions } from "./shared.ts";
|
|
6
|
+
import { DEFAULT_CONTENT_GLOB, sharedSourceOptionsSchema } from "./shared.ts";
|
|
7
|
+
|
|
8
|
+
/** Options for {@link mdxRemote}. */
|
|
9
|
+
export interface MdxRemoteOptions extends SharedSourceOptions {
|
|
10
|
+
/** Explicit list of source-relative file paths to fetch from `url`. */
|
|
11
|
+
files?: string[];
|
|
12
|
+
/** Enumerate a GitHub repo subtree via the git-trees API. */
|
|
13
|
+
github?: {
|
|
14
|
+
/** Repository owner (user or org). */
|
|
15
|
+
owner: string;
|
|
16
|
+
/** Subpath within the repo. Defaults to the repo root. */
|
|
17
|
+
path?: string;
|
|
18
|
+
/** Git ref (branch, tag, or SHA). Defaults to `main`. */
|
|
19
|
+
ref?: string;
|
|
20
|
+
/** Repository name. */
|
|
21
|
+
repo: string;
|
|
22
|
+
};
|
|
23
|
+
/** Glob patterns applied to enumerated refs. Defaults to `["**\/*.{md,mdx}"]`. */
|
|
24
|
+
include?: string[];
|
|
25
|
+
/** Raw base URL, e.g. `https://raw.githubusercontent.com/acme/sdk/main/docs`. */
|
|
26
|
+
url?: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const mdxRemoteOptionsSchema = sharedSourceOptionsSchema.extend({
|
|
30
|
+
files: z.array(z.string()).optional(),
|
|
31
|
+
github: z
|
|
32
|
+
.strictObject({
|
|
33
|
+
owner: z.string(),
|
|
34
|
+
path: z.string().default(""),
|
|
35
|
+
ref: z.string().default("main"),
|
|
36
|
+
repo: z.string(),
|
|
37
|
+
})
|
|
38
|
+
.optional(),
|
|
39
|
+
include: z.array(z.string()).default([DEFAULT_CONTENT_GLOB]),
|
|
40
|
+
url: z.string().optional(),
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export type MdxRemoteAdapter = AdapterDescriptor<
|
|
44
|
+
"mdx-remote",
|
|
45
|
+
MdxRemoteOptions
|
|
46
|
+
>;
|
|
47
|
+
|
|
48
|
+
export const mdxRemoteAdapterSchema = adapterDescriptorSchema(
|
|
49
|
+
"mdx-remote",
|
|
50
|
+
mdxRemoteOptionsSchema
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
// The hosts the source ever sends `GITHUB_TOKEN` to (the same set the fetch
|
|
54
|
+
// in core/sources/mdx-remote.ts checks), so only an adapter reading from
|
|
55
|
+
// GitHub declares the variable.
|
|
56
|
+
const GITHUB_HOSTS = new Set(["api.github.com", "raw.githubusercontent.com"]);
|
|
57
|
+
|
|
58
|
+
const readsFromGithub = (options: MdxRemoteOptions): boolean =>
|
|
59
|
+
options.github !== undefined ||
|
|
60
|
+
(options.url !== undefined &&
|
|
61
|
+
URL.canParse(options.url) &&
|
|
62
|
+
GITHUB_HOSTS.has(new URL(options.url).hostname));
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Remote Markdown/MDX fetched over HTTP. Enumerate files explicitly against a
|
|
66
|
+
* raw `url` base, or from a GitHub repo subtree via `github`. A private repo's
|
|
67
|
+
* token comes from `GITHUB_TOKEN` — never inline it here. The adapter declares
|
|
68
|
+
* the variable only when it reads from GitHub, since a `url` on any other host
|
|
69
|
+
* is never sent the token.
|
|
70
|
+
*/
|
|
71
|
+
export const mdxRemote = (options: MdxRemoteOptions): MdxRemoteAdapter => ({
|
|
72
|
+
kind: "mdx-remote",
|
|
73
|
+
options,
|
|
74
|
+
requiredSecrets: readsFromGithub(options) ? ["GITHUB_TOKEN"] : [],
|
|
75
|
+
runtimeDeps: [],
|
|
76
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
4
|
+
import { adapterDescriptorSchema } from "../core/adapter.ts";
|
|
5
|
+
import type { SharedSourceOptions } from "./shared.ts";
|
|
6
|
+
import { sharedSourceOptionsSchema } from "./shared.ts";
|
|
7
|
+
|
|
8
|
+
/** Options for {@link notion}. */
|
|
9
|
+
export interface NotionOptions extends SharedSourceOptions {
|
|
10
|
+
/** Max concurrent Notion API requests; default 3 (Notion's per-integration pace). */
|
|
11
|
+
concurrency?: number;
|
|
12
|
+
/** Notion database id. */
|
|
13
|
+
database: string;
|
|
14
|
+
/** Notion property names mapped onto Blume meta. */
|
|
15
|
+
properties?: {
|
|
16
|
+
/** Property holding the page description. */
|
|
17
|
+
description?: string;
|
|
18
|
+
/** Property holding the sort order. */
|
|
19
|
+
order?: string;
|
|
20
|
+
/** Property holding the page slug. */
|
|
21
|
+
slug?: string;
|
|
22
|
+
/** Property holding the publish status. */
|
|
23
|
+
status?: string;
|
|
24
|
+
/** Property holding the page title. */
|
|
25
|
+
title?: string;
|
|
26
|
+
};
|
|
27
|
+
/** Status value treated as published; others map to `draft`. Defaults to `Published`. */
|
|
28
|
+
publishedValue?: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const notionOptionsSchema = sharedSourceOptionsSchema.extend({
|
|
32
|
+
concurrency: z.number().positive().optional(),
|
|
33
|
+
database: z.string(),
|
|
34
|
+
properties: z
|
|
35
|
+
.strictObject({
|
|
36
|
+
description: z.string().optional(),
|
|
37
|
+
order: z.string().optional(),
|
|
38
|
+
slug: z.string().optional(),
|
|
39
|
+
status: z.string().optional(),
|
|
40
|
+
title: z.string().optional(),
|
|
41
|
+
})
|
|
42
|
+
.optional(),
|
|
43
|
+
publishedValue: z.string().optional(),
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
export type NotionAdapter = AdapterDescriptor<"notion", NotionOptions>;
|
|
47
|
+
|
|
48
|
+
export const notionAdapterSchema = adapterDescriptorSchema(
|
|
49
|
+
"notion",
|
|
50
|
+
notionOptionsSchema
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* A Notion database; pages become entries, blocks become MDX. `@notionhq/client`
|
|
55
|
+
* is the declared runtime dependency, and the integration token comes from
|
|
56
|
+
* `NOTION_TOKEN`.
|
|
57
|
+
*/
|
|
58
|
+
export const notion = (options: NotionOptions): NotionAdapter => ({
|
|
59
|
+
kind: "notion",
|
|
60
|
+
options,
|
|
61
|
+
requiredSecrets: ["NOTION_TOKEN"],
|
|
62
|
+
runtimeDeps: ["@notionhq/client"],
|
|
63
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
4
|
+
import { adapterDescriptorSchema } from "../core/adapter.ts";
|
|
5
|
+
import type { SharedSourceOptions } from "./shared.ts";
|
|
6
|
+
import { sharedSourceOptionsSchema } from "./shared.ts";
|
|
7
|
+
|
|
8
|
+
/** Options for {@link obsidian}. */
|
|
9
|
+
export interface ObsidianOptions extends SharedSourceOptions {
|
|
10
|
+
/** Vault folder names to skip at any depth, in addition to dot-folders. */
|
|
11
|
+
exclude?: string[];
|
|
12
|
+
/** Vault directory, absolute or relative to the project root. */
|
|
13
|
+
vault: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const obsidianOptionsSchema = sharedSourceOptionsSchema.extend({
|
|
17
|
+
exclude: z.array(z.string()).optional(),
|
|
18
|
+
vault: z.string().min(1),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export type ObsidianAdapter = AdapterDescriptor<"obsidian", ObsidianOptions>;
|
|
22
|
+
|
|
23
|
+
export const obsidianAdapterSchema = adapterDescriptorSchema(
|
|
24
|
+
"obsidian",
|
|
25
|
+
obsidianOptionsSchema
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* An Obsidian vault, read in place. Wikilinks become route links and
|
|
30
|
+
* `%%comments%%` are stripped at load time, so the vault stays the source of
|
|
31
|
+
* truth — no export step and no generated notes in the repo.
|
|
32
|
+
*/
|
|
33
|
+
export const obsidian = (options: ObsidianOptions): ObsidianAdapter => ({
|
|
34
|
+
kind: "obsidian",
|
|
35
|
+
options,
|
|
36
|
+
requiredSecrets: [],
|
|
37
|
+
runtimeDeps: [],
|
|
38
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
import type { AdapterDescriptor } from "../core/adapter.ts";
|
|
4
|
+
import { adapterDescriptorSchema } from "../core/adapter.ts";
|
|
5
|
+
import type { SharedSourceOptions, SourceFieldMap } from "./shared.ts";
|
|
6
|
+
import {
|
|
7
|
+
queryParamsSchema,
|
|
8
|
+
sharedSourceOptionsSchema,
|
|
9
|
+
sourceFieldMapSchema,
|
|
10
|
+
} from "./shared.ts";
|
|
11
|
+
|
|
12
|
+
/** Options for {@link payload}. */
|
|
13
|
+
export interface PayloadOptions extends SharedSourceOptions {
|
|
14
|
+
/**
|
|
15
|
+
* The auth-enabled collection the API key belongs to. Defaults to `users`;
|
|
16
|
+
* it names the scheme in the `Authorization` header (`users API-Key <key>`).
|
|
17
|
+
*/
|
|
18
|
+
authCollection?: string;
|
|
19
|
+
/** The collection slug whose documents become pages. */
|
|
20
|
+
collection: string;
|
|
21
|
+
/** Relationship depth to populate. Defaults to `1`, enough for upload URLs. */
|
|
22
|
+
depth?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Field paths mapping a document onto Blume meta + body. Defaults to
|
|
25
|
+
* `title` / `description` / `slug` / `content` / `updatedAt`.
|
|
26
|
+
*/
|
|
27
|
+
fields?: SourceFieldMap;
|
|
28
|
+
/** Extra query parameters for the collection request (`"where[status][equals]": "live"`). */
|
|
29
|
+
params?: Record<string, string>;
|
|
30
|
+
/** The Payload app's origin (`https://cms.acme.dev`); its REST API is at `/api`. */
|
|
31
|
+
url: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export const payloadOptionsSchema = sharedSourceOptionsSchema.extend({
|
|
35
|
+
authCollection: z.string().optional(),
|
|
36
|
+
collection: z.string(),
|
|
37
|
+
depth: z.number().int().nonnegative().optional(),
|
|
38
|
+
fields: sourceFieldMapSchema.optional(),
|
|
39
|
+
params: queryParamsSchema.optional(),
|
|
40
|
+
url: z.string(),
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export type PayloadAdapter = AdapterDescriptor<"payload", PayloadOptions>;
|
|
44
|
+
|
|
45
|
+
export const payloadAdapterSchema = adapterDescriptorSchema(
|
|
46
|
+
"payload",
|
|
47
|
+
payloadOptionsSchema
|
|
48
|
+
);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* A Payload collection read through its REST API; Lexical bodies become
|
|
52
|
+
* Markdown. The API key comes from `PAYLOAD_API_KEY`, and `--preview` reads
|
|
53
|
+
* drafts. Nothing to install: the adapter speaks the REST API directly.
|
|
54
|
+
*/
|
|
55
|
+
export const payload = (options: PayloadOptions): PayloadAdapter => ({
|
|
56
|
+
kind: "payload",
|
|
57
|
+
options,
|
|
58
|
+
requiredSecrets: ["PAYLOAD_API_KEY"],
|
|
59
|
+
runtimeDeps: [],
|
|
60
|
+
});
|