blume 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +110 -0
- package/dist/cli/{chunk-ga0pf4aj.js → chunk-0n9xkp3d.js} +12 -3
- package/dist/cli/{chunk-ga0pf4aj.js.map → chunk-0n9xkp3d.js.map} +3 -3
- package/dist/cli/{chunk-43zcf4gz.js → chunk-0pmb4tr4.js} +541 -368
- package/dist/cli/chunk-0pmb4tr4.js.map +35 -0
- package/dist/cli/{chunk-9geymqns.js → chunk-0w6hs479.js} +15 -15
- package/dist/cli/{chunk-xkz5xbtv.js → chunk-124fvmzq.js} +2802 -1422
- package/dist/cli/chunk-124fvmzq.js.map +220 -0
- package/dist/cli/chunk-150jk7km.js +52 -0
- package/dist/cli/chunk-150jk7km.js.map +10 -0
- package/dist/cli/{chunk-y4ykbark.js → chunk-1f882900.js} +2 -2
- package/dist/cli/{chunk-5ffywsmb.js → chunk-297ajdcv.js} +8 -6
- package/dist/cli/{chunk-5ffywsmb.js.map → chunk-297ajdcv.js.map} +3 -3
- package/dist/cli/{chunk-h2a48yhd.js → chunk-32khwcb6.js} +120 -16
- package/dist/cli/{chunk-h2a48yhd.js.map → chunk-32khwcb6.js.map} +10 -10
- package/dist/cli/{chunk-5cg2rzgf.js → chunk-36bxs9c7.js} +20 -49
- package/dist/cli/{chunk-5cg2rzgf.js.map → chunk-36bxs9c7.js.map} +4 -5
- package/dist/cli/{chunk-py62fewh.js → chunk-53jqw8z0.js} +3 -3
- package/dist/cli/{chunk-5wj2qwn2.js → chunk-58bt3hag.js} +4 -4
- package/dist/cli/{chunk-e7vvk5ya.js → chunk-5cmts6dv.js} +3 -3
- package/dist/cli/{chunk-y5h4r2y0.js → chunk-60hz265r.js} +15 -5
- package/dist/cli/chunk-60hz265r.js.map +10 -0
- package/dist/cli/chunk-74wfhv79.js +65 -0
- package/dist/cli/chunk-74wfhv79.js.map +10 -0
- package/dist/cli/{chunk-g2z9x01v.js → chunk-9qzgg6mj.js} +3 -3
- package/dist/cli/{chunk-q3wxxq39.js → chunk-a57yh0h9.js} +5 -5
- package/dist/cli/{chunk-713mngdq.js → chunk-ave1wcbr.js} +76 -10
- package/dist/cli/chunk-ave1wcbr.js.map +14 -0
- package/dist/cli/{chunk-2n4ps1b3.js → chunk-bqxaqn5p.js} +40 -22
- package/dist/cli/chunk-bqxaqn5p.js.map +15 -0
- package/dist/cli/{chunk-jnwj5kjj.js → chunk-bxwhtvw8.js} +20 -7
- package/dist/cli/{chunk-jnwj5kjj.js.map → chunk-bxwhtvw8.js.map} +3 -3
- package/dist/cli/chunk-ckrcm08h.js +324 -0
- package/dist/cli/chunk-ckrcm08h.js.map +14 -0
- package/dist/cli/{chunk-2f3ndkpw.js → chunk-desvm72z.js} +3 -3
- package/dist/cli/{chunk-gp84za0h.js → chunk-dhwtqnnd.js} +2 -2
- package/dist/cli/{chunk-4h8z9vv5.js → chunk-dpy8qdjf.js} +93 -47
- package/dist/cli/chunk-dpy8qdjf.js.map +17 -0
- package/dist/cli/{chunk-2f7n4qzt.js → chunk-dqhg54mr.js} +1 -1
- package/dist/cli/{chunk-0gz36akr.js → chunk-dv2z0rzf.js} +21 -5
- package/dist/cli/chunk-dv2z0rzf.js.map +12 -0
- package/dist/cli/{chunk-cm89scdv.js → chunk-es8h0v3j.js} +9 -11
- package/dist/cli/{chunk-cm89scdv.js.map → chunk-es8h0v3j.js.map} +3 -3
- package/dist/cli/{chunk-zhvd6adm.js → chunk-gfc5fqvf.js} +14 -14
- package/dist/cli/{chunk-nd1821sk.js → chunk-gxtg6ed2.js} +33 -19
- package/dist/cli/chunk-gxtg6ed2.js.map +10 -0
- package/dist/cli/{chunk-p804f3pe.js → chunk-hvcxng5f.js} +6 -6
- package/dist/cli/{chunk-ta27feev.js → chunk-j1x92mx9.js} +21 -2
- package/dist/cli/chunk-j1x92mx9.js.map +10 -0
- package/dist/cli/{chunk-rekqz4qg.js → chunk-k3gr1nm9.js} +19 -16
- package/dist/cli/chunk-k3gr1nm9.js.map +10 -0
- package/dist/cli/{chunk-1n228xqb.js → chunk-kdpzw38a.js} +2 -2
- package/dist/cli/{chunk-cy5bm0j0.js → chunk-ms9z66nz.js} +2 -2
- package/dist/cli/{chunk-cy5bm0j0.js.map → chunk-ms9z66nz.js.map} +2 -2
- package/dist/cli/{chunk-zf748avv.js → chunk-nbyvgnnm.js} +193 -286
- package/dist/cli/chunk-nbyvgnnm.js.map +36 -0
- package/dist/cli/{chunk-6bm0xpgd.js → chunk-s0bdnc7v.js} +2 -2
- package/dist/cli/{chunk-yxmk4pec.js → chunk-sc93apfs.js} +17 -16
- package/dist/cli/{chunk-yxmk4pec.js.map → chunk-sc93apfs.js.map} +3 -3
- package/dist/cli/{chunk-cmtcnh9f.js → chunk-tfycddbt.js} +2 -2
- package/dist/cli/{chunk-9xr4dgee.js → chunk-twy7psdz.js} +29 -16
- package/dist/cli/chunk-twy7psdz.js.map +10 -0
- package/dist/cli/{chunk-ntv4qrt7.js → chunk-y4msrwm9.js} +15 -15
- package/dist/cli/{chunk-yj17vs39.js → chunk-ydp3065p.js} +5 -5
- package/dist/cli/index.js +24 -19
- package/dist/cli/index.js.map +3 -3
- package/dist/types/ai/ask-context.d.ts +6 -2
- package/dist/types/ai/ask.d.ts +24 -5
- package/dist/types/ai/component-markdown.d.ts +2 -0
- package/dist/types/ai/openapi-components.d.ts +4 -1
- package/dist/types/analytics/clics.d.ts +37 -0
- package/dist/types/analytics/index.d.ts +2 -0
- package/dist/types/analytics/schema.d.ts +18 -0
- package/dist/types/astro/integration.d.ts +11 -4
- package/dist/types/astro/markdown-negotiation.d.ts +3 -0
- package/dist/types/astro/pages.d.ts +10 -0
- package/dist/types/cli/init/scaffold.d.ts +1 -1
- package/dist/types/components/content/api-field.d.ts +4 -1
- package/dist/types/components/content/api-page.d.ts +6 -1
- package/dist/types/components/openapi/code-samples.d.ts +29 -0
- package/dist/types/components/openapi/helpers.d.ts +22 -1
- package/dist/types/components/openapi/security.d.ts +10 -0
- package/dist/types/components/openapi/snippets.d.ts +60 -0
- package/dist/types/core/changelog-index.d.ts +8 -0
- package/dist/types/core/config-input.d.ts +37 -6
- package/dist/types/core/data.d.ts +4 -0
- package/dist/types/core/i18n-ui.d.ts +2 -0
- package/dist/types/core/links.d.ts +8 -0
- package/dist/types/core/powered-by.d.ts +12 -0
- package/dist/types/core/probe.d.ts +2 -0
- package/dist/types/core/project-graph.d.ts +6 -0
- package/dist/types/core/redirect-patterns.d.ts +11 -3
- package/dist/types/core/schema.d.ts +228 -3
- package/dist/types/core/sources/cache.d.ts +3 -0
- package/dist/types/core/sources/contentful-rich-text.d.ts +11 -2
- package/dist/types/core/sources/contentful.d.ts +17 -1
- package/dist/types/core/sources/lexical.d.ts +5 -0
- package/dist/types/core/sources/lower.d.ts +10 -2
- package/dist/types/core/sources/normalize.d.ts +20 -1
- package/dist/types/core/sources/notion.d.ts +8 -0
- package/dist/types/core/sources/remote.d.ts +37 -10
- package/dist/types/core/sources/sanity.d.ts +1 -1
- package/dist/types/core/types.d.ts +17 -0
- package/dist/types/deploy/adapter-output.d.ts +2 -1
- package/dist/types/deploy/adapters/cloudflare.d.ts +7 -5
- package/dist/types/deploy/adapters/node.d.ts +58 -23
- package/dist/types/deploy/adapters/registry.d.ts +10 -0
- package/dist/types/deploy/adapters/types.d.ts +3 -2
- package/dist/types/deploy/cloudflare-negotiation.d.ts +5 -2
- package/dist/types/deploy/node-headers.d.ts +12 -4
- package/dist/types/deploy/platforms/cloudflare.d.ts +10 -7
- package/dist/types/deploy/platforms/node.d.ts +3 -1
- package/dist/types/deploy/platforms/types.d.ts +18 -7
- package/dist/types/deploy/platforms/vercel.d.ts +21 -2
- package/dist/types/deploy/redirects.d.ts +17 -1
- package/dist/types/deploy/sitemap.d.ts +2 -1
- package/dist/types/deploy/vercel-negotiation.d.ts +44 -21
- package/dist/types/narration/build.d.ts +34 -12
- package/dist/types/narration/provider.d.ts +96 -8
- package/dist/types/openapi/checks.d.ts +27 -0
- package/dist/types/openapi/graphql.d.ts +6 -0
- package/dist/types/openapi/model.d.ts +15 -4
- package/dist/types/openapi/parse.d.ts +3 -0
- package/dist/types/openapi/references.d.ts +16 -0
- package/dist/types/openapi/sentence.d.ts +11 -1
- package/dist/types/ratelimit/index.d.ts +1 -1
- package/dist/types/ratelimit/schema.d.ts +8 -0
- package/dist/types/ratelimit/upstash.d.ts +39 -14
- package/dist/types/reference/graphql.d.ts +76 -1
- package/dist/types/reference/index.d.ts +1 -1
- package/dist/types/reference/openapi.d.ts +2 -2
- package/dist/types/reference/options.d.ts +37 -1
- package/dist/types/reference/schema.d.ts +84 -0
- package/dist/types/search/adapters/registry.d.ts +3 -0
- package/dist/types/search/adapters/typesense.d.ts +14 -4
- package/dist/types/search/build.d.ts +3 -1
- package/dist/types/search/orama-index.d.ts +9 -9
- package/dist/types/search/sync/algolia.d.ts +5 -2
- package/dist/types/search/sync/index.d.ts +3 -1
- package/dist/types/search/sync/typesense.d.ts +11 -7
- package/dist/types/seo/jsonld.d.ts +11 -6
- package/dist/types/sources/contentful.d.ts +16 -0
- package/dist/types/sources/github-releases.d.ts +8 -1
- package/dist/types/sources/notion.d.ts +8 -0
- package/dist/types/sources/payload.d.ts +2 -0
- package/dist/types/sources/registry.d.ts +63 -0
- package/dist/types/sources/shared.d.ts +3 -0
- package/dist/types/sources/strapi.d.ts +2 -0
- package/docs/01-quickstart.mdx +4 -2
- package/docs/02-deployment.mdx +59 -13
- package/docs/03-upgrading.mdx +2 -1
- package/docs/04-migrating.mdx +9 -9
- package/docs/08-faq.mdx +12 -12
- package/docs/advanced/changelog.mdx +30 -2
- package/docs/advanced/custom-pages.mdx +1 -1
- package/docs/advanced/skills.mdx +1 -1
- package/docs/cli/audit.mdx +30 -7
- package/docs/cli/doctor.mdx +6 -2
- package/docs/cli/evals.mdx +4 -4
- package/docs/cli/translate.mdx +1 -0
- package/docs/cli/validate.mdx +4 -3
- package/docs/configuration/analytics.mdx +19 -1
- package/docs/configuration/assistant.mdx +6 -2
- package/docs/configuration/customization.mdx +4 -2
- package/docs/configuration/export.mdx +5 -3
- package/docs/configuration/index.mdx +4 -2
- package/docs/configuration/narration.mdx +43 -6
- package/docs/configuration/rate-limiting.mdx +23 -2
- package/docs/configuration/search.mdx +37 -14
- package/docs/content/components.mdx +2 -2
- package/docs/content/frontmatter.mdx +5 -3
- package/docs/content/i18n.mdx +2 -2
- package/docs/content/includes.mdx +1 -1
- package/docs/content/navigation.mdx +8 -6
- package/docs/content/sources/contentful.mdx +9 -4
- package/docs/content/sources/custom.mdx +7 -3
- package/docs/content/sources/github-releases.mdx +12 -2
- package/docs/content/sources/index.mdx +3 -3
- package/docs/content/sources/notion.mdx +17 -2
- package/docs/content/sources/obsidian.mdx +3 -1
- package/docs/content/sources/payload.mdx +5 -2
- package/docs/content/sources/remote-mdx.mdx +6 -0
- package/docs/content/sources/sanity.mdx +4 -2
- package/docs/content/sources/strapi.mdx +5 -2
- package/docs/content/syntax.mdx +2 -2
- package/docs/discoverability/agent-discovery.mdx +1 -1
- package/docs/discoverability/index.mdx +1 -1
- package/docs/discoverability/json-api.mdx +2 -0
- package/docs/discoverability/llms-txt.mdx +1 -1
- package/docs/discoverability/markdown.mdx +3 -1
- package/docs/discoverability/mcp.mdx +6 -0
- package/docs/discoverability/sitemap-and-robots.mdx +1 -1
- package/docs/discoverability/structured-data.mdx +8 -6
- package/docs/references/api-pages.mdx +1 -1
- package/docs/references/asyncapi.mdx +5 -1
- package/docs/references/graphql.mdx +15 -1
- package/docs/references/openapi.mdx +64 -8
- package/package.json +9 -9
- package/skills/blume/SKILL.md +1 -1
- package/skills/blume-migrate/SKILL.md +2 -2
- package/skills/blume-migrate/assets/{oxfmt@0.67.0.patch → oxfmt@0.71.0.patch} +7 -7
- package/skills/blume-migrate/references/docusaurus.md +4 -4
- package/skills/blume-migrate/references/fumadocs.md +17 -13
- package/skills/blume-migrate/references/monorepo.md +5 -5
- package/skills/blume-migrate/references/nextra.md +8 -5
- package/skills/blume-migrate/references/starlight.md +9 -7
- package/src/ai/ask-context.ts +33 -3
- package/src/ai/ask-limits.ts +13 -0
- package/src/ai/ask.ts +24 -6
- package/src/ai/changelog-markdown.ts +11 -6
- package/src/ai/component-markdown.ts +1 -1
- package/src/ai/cors.ts +12 -3
- package/src/ai/mcp/query.ts +14 -6
- package/src/ai/openapi-components.ts +28 -4
- package/src/ai/relative-links.ts +4 -38
- package/src/analytics/clics.ts +58 -0
- package/src/analytics/head.ts +5 -0
- package/src/analytics/index.ts +2 -0
- package/src/analytics/schema.ts +2 -0
- package/src/astro/generate.ts +91 -56
- package/src/astro/integration.ts +72 -22
- package/src/astro/markdown-negotiation.ts +3 -0
- package/src/astro/module-types.ts +3 -1
- package/src/astro/pages.ts +23 -0
- package/src/astro/render-deps.ts +10 -5
- package/src/astro/runtime-deps.ts +23 -2
- package/src/astro/templates.ts +129 -81
- package/src/audit/catalog.ts +19 -3
- package/src/audit/checks/links.ts +14 -1
- package/src/audit/checks/network.ts +110 -6
- package/src/audit/checks/redirects.ts +6 -4
- package/src/audit/checks/robots.ts +58 -2
- package/src/audit/run.ts +3 -0
- package/src/audit/types.ts +2 -0
- package/src/audit/url.ts +14 -5
- package/src/blume-modules.d.ts +5 -1
- package/src/cli/args.ts +51 -0
- package/src/cli/build-failure.ts +23 -0
- package/src/cli/commands/audit.ts +10 -1
- package/src/cli/commands/dev.ts +18 -2
- package/src/cli/commands/doctor.ts +45 -12
- package/src/cli/commands/eval.ts +36 -4
- package/src/cli/commands/init.ts +6 -4
- package/src/cli/commands/validate.ts +10 -1
- package/src/cli/init/scaffold.ts +9 -6
- package/src/cli/prepare.ts +6 -3
- package/src/cli/required-secrets.ts +3 -2
- package/src/components/content/ApiPlayground.astro +6 -2
- package/src/components/content/api-field.ts +4 -1
- package/src/components/content/api-page.ts +31 -7
- package/src/components/content/mermaid-element.ts +15 -1
- package/src/components/content/view-switcher.ts +7 -4
- package/src/components/islands/hooks.ts +27 -1
- package/src/components/layout/NavTree.astro +49 -5
- package/src/components/layout/NavTreeScript.astro +18 -0
- package/src/components/layout/PageActions.astro +139 -24
- package/src/components/layout/PageLayout.astro +13 -3
- package/src/components/layout/RootLayout.astro +27 -14
- package/src/components/layout/Search.astro +17 -3
- package/src/components/layout/TableOfContents.astro +24 -17
- package/src/components/layout/analytics-client.ts +8 -8
- package/src/components/layout/head-scripts.ts +6 -1
- package/src/components/layout/search/algolia.ts +10 -1
- package/src/components/layout/search/analytics.ts +42 -14
- package/src/components/layout/search/endpoint.ts +48 -5
- package/src/components/layout/search/pagefind.ts +114 -5
- package/src/components/layout/search/types.ts +12 -0
- package/src/components/layout/search/typesense.ts +18 -6
- package/src/components/openapi/AsyncApiOperation.astro +14 -7
- package/src/components/openapi/Authorization.astro +10 -0
- package/src/components/openapi/GraphqlOperation.astro +5 -0
- package/src/components/openapi/Operation.astro +24 -1
- package/src/components/openapi/ParametersTable.astro +8 -4
- package/src/components/openapi/Playground.astro +7 -1
- package/src/components/openapi/RequestBody.astro +19 -2
- package/src/components/openapi/Responses.astro +1 -0
- package/src/components/openapi/SchemaTable.astro +15 -3
- package/src/components/openapi/async-snippets.ts +61 -5
- package/src/components/openapi/async.ts +123 -29
- package/src/components/openapi/graphql-helpers.ts +35 -12
- package/src/components/openapi/helpers.ts +36 -2
- package/src/components/openapi/message-model.ts +54 -11
- package/src/components/openapi/message.ts +14 -4
- package/src/components/openapi/operation-model.ts +16 -7
- package/src/components/openapi/playground-client.ts +77 -58
- package/src/components/openapi/playground-schema.ts +1 -1
- package/src/components/openapi/schema-tree.ts +44 -14
- package/src/components/openapi/security.ts +10 -0
- package/src/components/openapi/snippets.ts +5 -3
- package/src/components/openapi/validate-json.ts +4 -3
- package/src/components/powered-by-middleware.ts +33 -0
- package/src/core/changelog-index.ts +31 -1
- package/src/core/component-diagnostics.ts +53 -0
- package/src/core/component-overrides.ts +32 -0
- package/src/core/config-input.ts +42 -6
- package/src/core/data.ts +2 -0
- package/src/core/diagnostics.ts +5 -0
- package/src/core/i18n-ui.ts +2 -0
- package/src/core/includes.ts +1 -1
- package/src/core/links.ts +47 -17
- package/src/core/powered-by.ts +12 -0
- package/src/core/probe.ts +26 -6
- package/src/core/project-graph.ts +59 -18
- package/src/core/redirect-patterns.ts +36 -7
- package/src/core/schema.ts +26 -6
- package/src/core/sources/cache.ts +6 -0
- package/src/core/sources/contentful-rich-text.ts +29 -6
- package/src/core/sources/contentful.ts +135 -25
- package/src/core/sources/filesystem.ts +26 -4
- package/src/core/sources/github-releases.ts +12 -1
- package/src/core/sources/lexical.ts +15 -10
- package/src/core/sources/lower.ts +19 -3
- package/src/core/sources/mdx-remote.ts +62 -10
- package/src/core/sources/normalize.ts +227 -41
- package/src/core/sources/notion.ts +34 -10
- package/src/core/sources/obsidian.ts +16 -3
- package/src/core/sources/payload.ts +38 -15
- package/src/core/sources/remote.ts +72 -15
- package/src/core/sources/resolve.ts +11 -1
- package/src/core/sources/sanity.ts +43 -25
- package/src/core/sources/strapi.ts +2 -2
- package/src/core/types.ts +18 -0
- package/src/core/ui-packs/ar.ts +1 -0
- package/src/core/ui-packs/bg.ts +1 -0
- package/src/core/ui-packs/bn.ts +1 -0
- package/src/core/ui-packs/ca.ts +1 -0
- package/src/core/ui-packs/cs.ts +1 -0
- package/src/core/ui-packs/da.ts +1 -0
- package/src/core/ui-packs/de.ts +1 -0
- package/src/core/ui-packs/el.ts +1 -0
- package/src/core/ui-packs/es.ts +1 -0
- package/src/core/ui-packs/fa.ts +1 -0
- package/src/core/ui-packs/fi.ts +1 -0
- package/src/core/ui-packs/fr.ts +1 -0
- package/src/core/ui-packs/he.ts +1 -0
- package/src/core/ui-packs/hi.ts +1 -0
- package/src/core/ui-packs/hr.ts +1 -0
- package/src/core/ui-packs/hu.ts +1 -0
- package/src/core/ui-packs/id.ts +1 -0
- package/src/core/ui-packs/it.ts +1 -0
- package/src/core/ui-packs/ja.ts +1 -0
- package/src/core/ui-packs/ko.ts +1 -0
- package/src/core/ui-packs/nl.ts +1 -0
- package/src/core/ui-packs/no.ts +1 -0
- package/src/core/ui-packs/pl.ts +1 -0
- package/src/core/ui-packs/pt-br.ts +1 -0
- package/src/core/ui-packs/pt.ts +1 -0
- package/src/core/ui-packs/ro.ts +1 -0
- package/src/core/ui-packs/ru.ts +1 -0
- package/src/core/ui-packs/sk.ts +1 -0
- package/src/core/ui-packs/sr.ts +1 -0
- package/src/core/ui-packs/sv.ts +1 -0
- package/src/core/ui-packs/th.ts +1 -0
- package/src/core/ui-packs/tr.ts +1 -0
- package/src/core/ui-packs/uk.ts +1 -0
- package/src/core/ui-packs/vi.ts +1 -0
- package/src/core/ui-packs/zh-tw.ts +1 -0
- package/src/core/ui-packs/zh.ts +1 -0
- package/src/deploy/adapter-output.ts +7 -2
- package/src/deploy/adapters/cloudflare.ts +7 -5
- package/src/deploy/adapters/node.ts +47 -9
- package/src/deploy/adapters/types.ts +7 -3
- package/src/deploy/artifacts.ts +2 -1
- package/src/deploy/cloudflare-negotiation.ts +36 -7
- package/src/deploy/headers.ts +15 -1
- package/src/deploy/node-headers.ts +32 -20
- package/src/deploy/platforms/cloudflare.ts +14 -9
- package/src/deploy/platforms/netlify.ts +2 -1
- package/src/deploy/platforms/node.ts +12 -2
- package/src/deploy/platforms/types.ts +21 -7
- package/src/deploy/platforms/vercel.ts +115 -17
- package/src/deploy/redirects.ts +66 -6
- package/src/deploy/rss.ts +3 -1
- package/src/deploy/sitemap.ts +39 -5
- package/src/deploy/vercel-negotiation.ts +325 -103
- package/src/eval/agents.ts +18 -1
- package/src/eval/prompts.ts +6 -3
- package/src/eval/report.ts +34 -13
- package/src/eval/run.ts +5 -0
- package/src/markdown/base-links.ts +15 -14
- package/src/markdown/package-commands.ts +9 -8
- package/src/markdown/relative-links.ts +3 -2
- package/src/narration/build.ts +218 -40
- package/src/narration/provider.ts +89 -9
- package/src/openapi/checks.ts +273 -0
- package/src/openapi/graphql-build.ts +21 -0
- package/src/openapi/graphql.ts +11 -0
- package/src/openapi/model.ts +15 -3
- package/src/openapi/parse.ts +127 -2
- package/src/openapi/references.ts +43 -3
- package/src/openapi/render-mdx.ts +68 -8
- package/src/openapi/sentence.ts +29 -2
- package/src/openapi/source.ts +39 -14
- package/src/ratelimit/index.ts +1 -1
- package/src/ratelimit/runtime.ts +37 -19
- package/src/ratelimit/upstash.ts +40 -10
- package/src/reference/graphql.ts +15 -1
- package/src/reference/index.ts +1 -0
- package/src/reference/openapi.ts +2 -2
- package/src/reference/options.ts +29 -1
- package/src/registry/eject.ts +8 -2
- package/src/search/adapters/locale-scope.ts +30 -0
- package/src/search/adapters/typesense.ts +14 -4
- package/src/search/build.ts +21 -3
- package/src/search/orama-index.ts +163 -31
- package/src/search/source-pages.ts +29 -0
- package/src/search/sync/algolia.ts +99 -9
- package/src/search/sync/index.ts +52 -13
- package/src/search/sync/typesense.ts +72 -27
- package/src/seo/jsonld.ts +38 -20
- package/src/sources/contentful.ts +12 -0
- package/src/sources/github-releases.ts +7 -1
- package/src/sources/notion.ts +7 -0
- package/src/sources/shared.ts +3 -0
- package/src/theme/color.ts +9 -10
- package/src/theme/entry.ts +43 -6
- package/src/translate/validate.ts +23 -1
- package/dist/cli/chunk-0gz36akr.js.map +0 -12
- package/dist/cli/chunk-2n4ps1b3.js.map +0 -15
- package/dist/cli/chunk-43zcf4gz.js.map +0 -36
- package/dist/cli/chunk-4ejxbzee.js +0 -39
- package/dist/cli/chunk-4ejxbzee.js.map +0 -10
- package/dist/cli/chunk-4h8z9vv5.js.map +0 -16
- package/dist/cli/chunk-713mngdq.js.map +0 -14
- package/dist/cli/chunk-9xr4dgee.js.map +0 -10
- package/dist/cli/chunk-amrb6hgh.js +0 -145
- package/dist/cli/chunk-amrb6hgh.js.map +0 -11
- package/dist/cli/chunk-nd1821sk.js.map +0 -10
- package/dist/cli/chunk-rekqz4qg.js.map +0 -10
- package/dist/cli/chunk-ta27feev.js.map +0 -10
- package/dist/cli/chunk-xkz5xbtv.js.map +0 -213
- package/dist/cli/chunk-y5h4r2y0.js.map +0 -10
- package/dist/cli/chunk-zf748avv.js.map +0 -37
- /package/dist/cli/{chunk-9geymqns.js.map → chunk-0w6hs479.js.map} +0 -0
- /package/dist/cli/{chunk-y4ykbark.js.map → chunk-1f882900.js.map} +0 -0
- /package/dist/cli/{chunk-py62fewh.js.map → chunk-53jqw8z0.js.map} +0 -0
- /package/dist/cli/{chunk-5wj2qwn2.js.map → chunk-58bt3hag.js.map} +0 -0
- /package/dist/cli/{chunk-e7vvk5ya.js.map → chunk-5cmts6dv.js.map} +0 -0
- /package/dist/cli/{chunk-g2z9x01v.js.map → chunk-9qzgg6mj.js.map} +0 -0
- /package/dist/cli/{chunk-q3wxxq39.js.map → chunk-a57yh0h9.js.map} +0 -0
- /package/dist/cli/{chunk-2f3ndkpw.js.map → chunk-desvm72z.js.map} +0 -0
- /package/dist/cli/{chunk-gp84za0h.js.map → chunk-dhwtqnnd.js.map} +0 -0
- /package/dist/cli/{chunk-2f7n4qzt.js.map → chunk-dqhg54mr.js.map} +0 -0
- /package/dist/cli/{chunk-zhvd6adm.js.map → chunk-gfc5fqvf.js.map} +0 -0
- /package/dist/cli/{chunk-p804f3pe.js.map → chunk-hvcxng5f.js.map} +0 -0
- /package/dist/cli/{chunk-1n228xqb.js.map → chunk-kdpzw38a.js.map} +0 -0
- /package/dist/cli/{chunk-6bm0xpgd.js.map → chunk-s0bdnc7v.js.map} +0 -0
- /package/dist/cli/{chunk-cmtcnh9f.js.map → chunk-tfycddbt.js.map} +0 -0
- /package/dist/cli/{chunk-ntv4qrt7.js.map → chunk-y4msrwm9.js.map} +0 -0
- /package/dist/cli/{chunk-yj17vs39.js.map → chunk-ydp3065p.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
asciiSlugify
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-124fvmzq.js";
|
|
5
5
|
|
|
6
6
|
// src/ai/site-skill.ts
|
|
7
7
|
var NAME_MAX = 64;
|
|
@@ -15,4 +15,4 @@ var siteSkillName = (project) => {
|
|
|
15
15
|
export { siteSkillName };
|
|
16
16
|
|
|
17
17
|
//# debugId=D5EE89A8D7931D3164756E2164756E21
|
|
18
|
-
//# sourceMappingURL=chunk-
|
|
18
|
+
//# sourceMappingURL=chunk-s0bdnc7v.js.map
|
|
@@ -16,31 +16,31 @@ import {
|
|
|
16
16
|
applyPlan,
|
|
17
17
|
readExistingPackage,
|
|
18
18
|
nextSteps
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-124fvmzq.js";
|
|
20
20
|
import"./chunk-zccbjcj0.js";
|
|
21
|
-
import"./chunk-
|
|
21
|
+
import"./chunk-nbyvgnnm.js";
|
|
22
22
|
import {
|
|
23
23
|
commandMeta,
|
|
24
24
|
logger
|
|
25
25
|
} from "./index.js";
|
|
26
|
-
import"./chunk-
|
|
27
|
-
import"./chunk-
|
|
28
|
-
import"./chunk-
|
|
29
|
-
import"./chunk-
|
|
30
|
-
import"./chunk-
|
|
26
|
+
import"./chunk-desvm72z.js";
|
|
27
|
+
import"./chunk-0pmb4tr4.js";
|
|
28
|
+
import"./chunk-dpy8qdjf.js";
|
|
29
|
+
import"./chunk-ckrcm08h.js";
|
|
30
|
+
import"./chunk-j1x92mx9.js";
|
|
31
31
|
import"./chunk-jq5n4avg.js";
|
|
32
|
-
import"./chunk-
|
|
33
|
-
import"./chunk-
|
|
32
|
+
import"./chunk-es8h0v3j.js";
|
|
33
|
+
import"./chunk-dqhg54mr.js";
|
|
34
34
|
import {
|
|
35
35
|
eject
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-k3gr1nm9.js";
|
|
37
37
|
import {
|
|
38
38
|
updatePackageScripts
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-53jqw8z0.js";
|
|
40
40
|
import {
|
|
41
41
|
installDependencies
|
|
42
|
-
} from "./chunk-
|
|
43
|
-
import"./chunk-
|
|
42
|
+
} from "./chunk-dhwtqnnd.js";
|
|
43
|
+
import"./chunk-s0bdnc7v.js";
|
|
44
44
|
|
|
45
45
|
// src/cli/commands/init.ts
|
|
46
46
|
import * as clack from "@clack/prompts";
|
|
@@ -301,7 +301,8 @@ var initCommand = defineCommand({
|
|
|
301
301
|
const ignored = await ensureGitignore(root, [
|
|
302
302
|
"node_modules/",
|
|
303
303
|
".blume/",
|
|
304
|
-
"dist/"
|
|
304
|
+
"dist/",
|
|
305
|
+
".env.local"
|
|
305
306
|
]);
|
|
306
307
|
if (ignored.length > 0) {
|
|
307
308
|
sink.success(`Added ${ignored.join(", ")} to .gitignore`);
|
|
@@ -330,5 +331,5 @@ export {
|
|
|
330
331
|
initCommand
|
|
331
332
|
};
|
|
332
333
|
|
|
333
|
-
//# debugId=
|
|
334
|
-
//# sourceMappingURL=chunk-
|
|
334
|
+
//# debugId=937A77D93EDC0DE164756E2164756E21
|
|
335
|
+
//# sourceMappingURL=chunk-sc93apfs.js.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/cli/commands/init.ts", "../src/cli/init/questions.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import * as clack from \"@clack/prompts\";\nimport { defineCommand } from \"citty\";\nimport { resolve } from \"pathe\";\n\nimport { ensureGitignore } from \"../../core/gitignore.ts\";\nimport { eject } from \"../../registry/eject.ts\";\nimport { commandMeta } from \"../command-meta.ts\";\nimport { updatePackageScripts } from \"../eject-scripts.ts\";\nimport { installDependencies } from \"../init/install.ts\";\nimport { collectAnswers } from \"../init/questions.ts\";\nimport {\n applyPlan,\n buildPlan,\n cdCommand,\n commandsFor,\n detectPackageManager,\n nextSteps,\n outsidePnpmWorkspace,\n PACKAGE_MANAGERS,\n readExistingPackage,\n TEMPLATES,\n validateContentDir,\n workspaceNote,\n} from \"../init/scaffold.ts\";\nimport type { InitAnswers } from \"../init/scaffold.ts\";\nimport { logger } from \"../log.ts\";\n\n/** The `cd` line that opens every next-steps hint, when one is needed. */\nconst cdStep = (answers: InitAnswers): string[] =>\n answers.directory === \".\" ? [] : [cdCommand(answers.directory)];\n\n/**\n * Install the scaffolded project's dependencies. Interactive runs hide the\n * package manager's output behind a spinner; `--yes`/CI runs stream it. On\n * failure the scaffold is left intact and the exact retry command is printed\n * before exiting non-zero, so a CI wrapper can tell the two outcomes apart.\n */\nconst installScaffold = async (\n root: string,\n answers: InitAnswers,\n interactive: boolean\n): Promise<void> => {\n const command = commandsFor(answers.packageManager).install;\n const spinner = interactive ? clack.spinner() : undefined;\n if (spinner) {\n spinner.start(`Installing dependencies (${command})`);\n } else {\n logger.info(`Installing dependencies (${command})…`);\n }\n const outcome = await installDependencies(root, answers.packageManager, {\n quiet: interactive,\n });\n if (outcome.failure === undefined) {\n if (spinner) {\n spinner.stop(\"Installed dependencies\");\n } else {\n logger.success(\"Installed dependencies\");\n }\n return;\n }\n const retry = [...cdStep(answers), command];\n const hint = `Project created successfully, but dependency installation failed.\\n\\nRetry with:\\n\\n ${retry.join(\"\\n \")}\\n`;\n if (spinner) {\n spinner.stop(\"Dependency installation failed\");\n clack.log.error(outcome.failure);\n clack.note(hint.trimEnd());\n clack.outro(\"Scaffolded without dependencies.\");\n } else {\n logger.error(outcome.failure);\n logger.box(hint.trimEnd());\n }\n process.exit(1);\n};\n\n/**\n * Eject the freshly scaffolded project, or print the install-then-eject path.\n * Eject jiti-loads the scaffolded blume.config.ts, whose `import { defineConfig }\n * from \"blume\"` only resolves once dependencies are installed (or blume is\n * hoisted from an ancestor node_modules, as in a monorepo) — so the fallback\n * below is the common path when the install step was skipped.\n */\nconst ejectScaffold = async (\n root: string,\n answers: InitAnswers,\n needsInstall: boolean\n): Promise<void> => {\n const commands = commandsFor(answers.packageManager);\n const cd = cdStep(answers);\n const install = needsInstall ? [commands.install] : [];\n try {\n const { dependencies } = await eject(root);\n // The scaffolded scripts point at the Blume CLI; the ejected app runs\n // Astro directly (mirroring the standalone `blume eject` command).\n const added = await updatePackageScripts(root, dependencies);\n logger.success(\"Ejected to a standalone Astro project.\");\n // The packages eject added aren't installed yet, even when the scaffold's\n // own install already ran, so install comes first either way.\n const ejectInstall = added.length > 0 ? [commands.install] : install;\n const steps = [...cd, ...ejectInstall, commands.dev];\n logger.box(`Next steps:\\n\\n ${steps.join(\"\\n \")}`);\n } catch (error) {\n // SAFETY: eject and the script rewrite throw Error instances; only the\n // message is surfaced in the fallback hint.\n const { message } = error as Error;\n // Only a skipped install explains the failure; after an install that ran,\n // the error itself is the reason.\n logger.warn(\n needsInstall\n ? `Scaffolded, but eject needs the project's dependencies installed to load blume.config.ts: ${message}`\n : `Scaffolded, but eject failed: ${message}`\n );\n const steps = [...cd, ...install, `${commands.exec} blume eject --yes`];\n logger.box(`Next steps:\\n\\n ${steps.join(\"\\n \")}`);\n }\n};\n\n/**\n * Print the closing next steps. An existing package.json was left alone, so\n * the steps add what it lacks; a workspace `note` already printed ahead of an\n * install that ran, so it closes the steps only when the install is still the\n * user's to run.\n */\nconst printNextSteps = async (\n root: string,\n answers: InitAnswers,\n outcome: {\n createdPackage: boolean;\n interactive: boolean;\n needsInstall: boolean;\n note: string | undefined;\n }\n): Promise<void> => {\n const existing = outcome.createdPackage\n ? undefined\n : await readExistingPackage(root);\n const steps = nextSteps(\n answers,\n outcome.needsInstall,\n existing,\n outcome.needsInstall ? outcome.note : undefined\n );\n if (outcome.interactive) {\n clack.note(steps.trimEnd());\n clack.outro(\"You're all set.\");\n } else {\n // consola's box pads its content itself; a trailing newline would add\n // blank rows at the bottom.\n logger.box(steps.trimEnd());\n }\n};\n\n/**\n * Validate the enum-valued flags up front, exiting with the accepted values\n * on a typo so a bad flag never reaches the prompts.\n */\nconst resolveFlags = (args: {\n \"package-manager\"?: string;\n template?: string;\n}) => {\n const template = TEMPLATES.find((candidate) => candidate === args.template);\n if (args.template !== undefined && template === undefined) {\n logger.error(\n `Unknown template \"${args.template}\" (use ${TEMPLATES.join(\" | \")}).`\n );\n process.exit(1);\n }\n const pm = PACKAGE_MANAGERS.find(\n (candidate) => candidate === args[\"package-manager\"]\n );\n if (args[\"package-manager\"] !== undefined && pm === undefined) {\n logger.error(\n `Unknown package manager \"${args[\"package-manager\"]}\" (use ${PACKAGE_MANAGERS.join(\" | \")}).`\n );\n process.exit(1);\n }\n return { pm, template };\n};\n\nexport const initCommand = defineCommand({\n args: {\n \"content-dir\": {\n description: \"Content directory.\",\n type: \"string\",\n },\n dir: {\n description: \"Directory to scaffold into (default: current directory).\",\n required: false,\n type: \"positional\",\n },\n eject: {\n description: \"Eject to a standalone Astro project after scaffolding.\",\n type: \"boolean\",\n },\n install: {\n default: true,\n description: \"Install dependencies after scaffolding.\",\n negativeDescription: \"Skip installing dependencies after scaffolding.\",\n type: \"boolean\",\n },\n \"package-manager\": {\n description:\n \"Package manager to install with and print in the next steps (npm|pnpm|yarn|bun).\",\n type: \"string\",\n },\n template: {\n description: \"Starter template: docs | api | sdk | changelog.\",\n type: \"string\",\n },\n yes: {\n description: \"Skip prompts and scaffold with defaults.\",\n type: \"boolean\",\n },\n },\n meta: commandMeta.init,\n async run({ args }) {\n const cwd = process.cwd();\n const { pm, template } = resolveFlags(args);\n\n const interactive =\n !args.yes &&\n process.stdin.isTTY === true &&\n clack.isTTY(process.stdout) &&\n !clack.isCI();\n\n let answers: InitAnswers;\n if (interactive) {\n clack.intro(\"blume init\");\n const collected = await collectAnswers(\n clack,\n {\n contentDir: args[\"content-dir\"],\n directory: args.dir,\n packageManager: pm,\n template,\n },\n { cwd, userAgent: process.env.npm_config_user_agent }\n );\n if (collected === null) {\n clack.cancel(\"Canceled — nothing was written.\");\n process.exit(0);\n }\n answers = collected;\n } else {\n answers = {\n contentDir: args[\"content-dir\"] ?? \"docs\",\n directory: args.dir ?? \".\",\n packageManager:\n pm ?? detectPackageManager(process.env.npm_config_user_agent),\n sources: [\"filesystem\"],\n template: template ?? \"docs\",\n title: \"My Docs\",\n };\n }\n\n const root = resolve(cwd, answers.directory);\n // Interactive runs validate this inline, but an explicit --content-dir\n // flag skips that prompt, so guard here in both modes.\n if (validateContentDir(root, answers.contentDir) !== undefined) {\n logger.error(\n `Invalid --content-dir \"${answers.contentDir}\" (must be a path inside the project).`\n );\n process.exit(1);\n }\n\n const sink = interactive ? clack.log : logger;\n const env = { userAgent: process.env.npm_config_user_agent };\n const { createdPackage } = await applyPlan(\n buildPlan(root, answers, env),\n sink\n );\n // A workspace the project joins keeps its own package-manager config,\n // which `init` leaves alone; say what it still needs before installing.\n const note = workspaceNote(root, answers, env);\n\n // Keep installed dependencies, Blume's generated runtime (`.blume/`), and\n // build output (`dist/`) out of version control. Idempotent: creates\n // `.gitignore` when absent and skips entries already present\n // (trailing-slash agnostic).\n const ignored = await ensureGitignore(root, [\n \"node_modules/\",\n \".blume/\",\n \"dist/\",\n ]);\n if (ignored.length > 0) {\n sink.success(`Added ${ignored.join(\", \")} to .gitignore`);\n }\n\n // A newly written package.json is the only one `init` knows lists blume;\n // an existing one is left alone, and so are its dependencies. In a pnpm\n // workspace that doesn't list the folder, an install would exit 0 without\n // installing it, so that one waits until the note's change is made.\n const shouldInstall =\n createdPackage && args.install && !outsidePnpmWorkspace(root, answers);\n if (note) {\n (interactive ? clack.log : logger).warn(note);\n }\n if (shouldInstall) {\n await installScaffold(root, answers, interactive);\n }\n const needsInstall = createdPackage && !shouldInstall;\n\n if (args.eject) {\n await ejectScaffold(root, answers, needsInstall);\n return;\n }\n\n await printNextSteps(root, answers, {\n createdPackage,\n interactive,\n needsInstall,\n note,\n });\n },\n});\n",
|
|
5
|
+
"import * as clack from \"@clack/prompts\";\nimport { defineCommand } from \"citty\";\nimport { resolve } from \"pathe\";\n\nimport { ensureGitignore } from \"../../core/gitignore.ts\";\nimport { eject } from \"../../registry/eject.ts\";\nimport { commandMeta } from \"../command-meta.ts\";\nimport { updatePackageScripts } from \"../eject-scripts.ts\";\nimport { installDependencies } from \"../init/install.ts\";\nimport { collectAnswers } from \"../init/questions.ts\";\nimport {\n applyPlan,\n buildPlan,\n cdCommand,\n commandsFor,\n detectPackageManager,\n nextSteps,\n outsidePnpmWorkspace,\n PACKAGE_MANAGERS,\n readExistingPackage,\n TEMPLATES,\n validateContentDir,\n workspaceNote,\n} from \"../init/scaffold.ts\";\nimport type { InitAnswers } from \"../init/scaffold.ts\";\nimport { logger } from \"../log.ts\";\n\n/** The `cd` line that opens every next-steps hint, when one is needed. */\nconst cdStep = (answers: InitAnswers): string[] =>\n answers.directory === \".\" ? [] : [cdCommand(answers.directory)];\n\n/**\n * Install the scaffolded project's dependencies. Interactive runs hide the\n * package manager's output behind a spinner; `--yes`/CI runs stream it. On\n * failure the scaffold is left intact and the exact retry command is printed\n * before exiting non-zero, so a CI wrapper can tell the two outcomes apart.\n */\nconst installScaffold = async (\n root: string,\n answers: InitAnswers,\n interactive: boolean\n): Promise<void> => {\n const command = commandsFor(answers.packageManager).install;\n const spinner = interactive ? clack.spinner() : undefined;\n if (spinner) {\n spinner.start(`Installing dependencies (${command})`);\n } else {\n logger.info(`Installing dependencies (${command})…`);\n }\n const outcome = await installDependencies(root, answers.packageManager, {\n quiet: interactive,\n });\n if (outcome.failure === undefined) {\n if (spinner) {\n spinner.stop(\"Installed dependencies\");\n } else {\n logger.success(\"Installed dependencies\");\n }\n return;\n }\n const retry = [...cdStep(answers), command];\n const hint = `Project created successfully, but dependency installation failed.\\n\\nRetry with:\\n\\n ${retry.join(\"\\n \")}\\n`;\n if (spinner) {\n spinner.stop(\"Dependency installation failed\");\n clack.log.error(outcome.failure);\n clack.note(hint.trimEnd());\n clack.outro(\"Scaffolded without dependencies.\");\n } else {\n logger.error(outcome.failure);\n logger.box(hint.trimEnd());\n }\n process.exit(1);\n};\n\n/**\n * Eject the freshly scaffolded project, or print the install-then-eject path.\n * Eject jiti-loads the scaffolded blume.config.ts, whose `import { defineConfig }\n * from \"blume\"` only resolves once dependencies are installed (or blume is\n * hoisted from an ancestor node_modules, as in a monorepo) — so the fallback\n * below is the common path when the install step was skipped.\n */\nconst ejectScaffold = async (\n root: string,\n answers: InitAnswers,\n needsInstall: boolean\n): Promise<void> => {\n const commands = commandsFor(answers.packageManager);\n const cd = cdStep(answers);\n const install = needsInstall ? [commands.install] : [];\n try {\n const { dependencies } = await eject(root);\n // The scaffolded scripts point at the Blume CLI; the ejected app runs\n // Astro directly (mirroring the standalone `blume eject` command).\n const added = await updatePackageScripts(root, dependencies);\n logger.success(\"Ejected to a standalone Astro project.\");\n // The packages eject added aren't installed yet, even when the scaffold's\n // own install already ran, so install comes first either way.\n const ejectInstall = added.length > 0 ? [commands.install] : install;\n const steps = [...cd, ...ejectInstall, commands.dev];\n logger.box(`Next steps:\\n\\n ${steps.join(\"\\n \")}`);\n } catch (error) {\n // SAFETY: eject and the script rewrite throw Error instances; only the\n // message is surfaced in the fallback hint.\n const { message } = error as Error;\n // Only a skipped install explains the failure; after an install that ran,\n // the error itself is the reason.\n logger.warn(\n needsInstall\n ? `Scaffolded, but eject needs the project's dependencies installed to load blume.config.ts: ${message}`\n : `Scaffolded, but eject failed: ${message}`\n );\n const steps = [...cd, ...install, `${commands.exec} blume eject --yes`];\n logger.box(`Next steps:\\n\\n ${steps.join(\"\\n \")}`);\n }\n};\n\n/**\n * Print the closing next steps. An existing package.json was left alone, so\n * the steps add what it lacks; a workspace `note` already printed ahead of an\n * install that ran, so it closes the steps only when the install is still the\n * user's to run.\n */\nconst printNextSteps = async (\n root: string,\n answers: InitAnswers,\n outcome: {\n createdPackage: boolean;\n interactive: boolean;\n needsInstall: boolean;\n note: string | undefined;\n }\n): Promise<void> => {\n const existing = outcome.createdPackage\n ? undefined\n : await readExistingPackage(root);\n const steps = nextSteps(\n answers,\n outcome.needsInstall,\n existing,\n outcome.needsInstall ? outcome.note : undefined\n );\n if (outcome.interactive) {\n clack.note(steps.trimEnd());\n clack.outro(\"You're all set.\");\n } else {\n // consola's box pads its content itself; a trailing newline would add\n // blank rows at the bottom.\n logger.box(steps.trimEnd());\n }\n};\n\n/**\n * Validate the enum-valued flags up front, exiting with the accepted values\n * on a typo so a bad flag never reaches the prompts.\n */\nconst resolveFlags = (args: {\n \"package-manager\"?: string;\n template?: string;\n}) => {\n const template = TEMPLATES.find((candidate) => candidate === args.template);\n if (args.template !== undefined && template === undefined) {\n logger.error(\n `Unknown template \"${args.template}\" (use ${TEMPLATES.join(\" | \")}).`\n );\n process.exit(1);\n }\n const pm = PACKAGE_MANAGERS.find(\n (candidate) => candidate === args[\"package-manager\"]\n );\n if (args[\"package-manager\"] !== undefined && pm === undefined) {\n logger.error(\n `Unknown package manager \"${args[\"package-manager\"]}\" (use ${PACKAGE_MANAGERS.join(\" | \")}).`\n );\n process.exit(1);\n }\n return { pm, template };\n};\n\nexport const initCommand = defineCommand({\n args: {\n \"content-dir\": {\n description: \"Content directory.\",\n type: \"string\",\n },\n dir: {\n description: \"Directory to scaffold into (default: current directory).\",\n required: false,\n type: \"positional\",\n },\n eject: {\n description: \"Eject to a standalone Astro project after scaffolding.\",\n type: \"boolean\",\n },\n install: {\n default: true,\n description: \"Install dependencies after scaffolding.\",\n negativeDescription: \"Skip installing dependencies after scaffolding.\",\n type: \"boolean\",\n },\n \"package-manager\": {\n description:\n \"Package manager to install with and print in the next steps (npm|pnpm|yarn|bun).\",\n type: \"string\",\n },\n template: {\n description: \"Starter template: docs | api | sdk | changelog.\",\n type: \"string\",\n },\n yes: {\n description: \"Skip prompts and scaffold with defaults.\",\n type: \"boolean\",\n },\n },\n meta: commandMeta.init,\n async run({ args }) {\n const cwd = process.cwd();\n const { pm, template } = resolveFlags(args);\n\n const interactive =\n !args.yes &&\n process.stdin.isTTY === true &&\n clack.isTTY(process.stdout) &&\n !clack.isCI();\n\n let answers: InitAnswers;\n if (interactive) {\n clack.intro(\"blume init\");\n const collected = await collectAnswers(\n clack,\n {\n contentDir: args[\"content-dir\"],\n directory: args.dir,\n packageManager: pm,\n template,\n },\n { cwd, userAgent: process.env.npm_config_user_agent }\n );\n if (collected === null) {\n clack.cancel(\"Canceled — nothing was written.\");\n process.exit(0);\n }\n answers = collected;\n } else {\n answers = {\n contentDir: args[\"content-dir\"] ?? \"docs\",\n directory: args.dir ?? \".\",\n packageManager:\n pm ?? detectPackageManager(process.env.npm_config_user_agent),\n sources: [\"filesystem\"],\n template: template ?? \"docs\",\n title: \"My Docs\",\n };\n }\n\n const root = resolve(cwd, answers.directory);\n // Interactive runs validate this inline, but an explicit --content-dir\n // flag skips that prompt, so guard here in both modes.\n if (validateContentDir(root, answers.contentDir) !== undefined) {\n logger.error(\n `Invalid --content-dir \"${answers.contentDir}\" (must be a path inside the project).`\n );\n process.exit(1);\n }\n\n const sink = interactive ? clack.log : logger;\n const env = { userAgent: process.env.npm_config_user_agent };\n const { createdPackage } = await applyPlan(\n buildPlan(root, answers, env),\n sink\n );\n // A workspace the project joins keeps its own package-manager config,\n // which `init` leaves alone; say what it still needs before installing.\n const note = workspaceNote(root, answers, env);\n\n // Keep installed dependencies, Blume's generated runtime (`.blume/`),\n // build output (`dist/`), and local secrets (`.env.local`, where every\n // missing-secret warning says to put them) out of version control.\n // Idempotent: creates `.gitignore` when absent and skips entries already\n // present (trailing-slash agnostic).\n const ignored = await ensureGitignore(root, [\n \"node_modules/\",\n \".blume/\",\n \"dist/\",\n \".env.local\",\n ]);\n if (ignored.length > 0) {\n sink.success(`Added ${ignored.join(\", \")} to .gitignore`);\n }\n\n // A newly written package.json is the only one `init` knows lists blume;\n // an existing one is left alone, and so are its dependencies. In a pnpm\n // workspace that doesn't list the folder, an install would exit 0 without\n // installing it, so that one waits until the note's change is made.\n const shouldInstall =\n createdPackage && args.install && !outsidePnpmWorkspace(root, answers);\n if (note) {\n (interactive ? clack.log : logger).warn(note);\n }\n if (shouldInstall) {\n await installScaffold(root, answers, interactive);\n }\n const needsInstall = createdPackage && !shouldInstall;\n\n if (args.eject) {\n await ejectScaffold(root, answers, needsInstall);\n return;\n }\n\n await printNextSteps(root, answers, {\n createdPackage,\n interactive,\n needsInstall,\n note,\n });\n },\n});\n",
|
|
6
6
|
"import { basename, resolve } from \"pathe\";\n\nimport {\n detectPackageManager,\n titleize,\n validateContentDir,\n} from \"./scaffold.ts\";\nimport type {\n InitAnswers,\n PackageManager,\n SourceKind,\n Template,\n} from \"./scaffold.ts\";\n\n/** One prompt option: value plus display label and optional hint. */\ninterface PromptOption<Value> {\n hint?: string;\n label: string;\n value: Value;\n}\n\n/**\n * The prompt surface `collectAnswers` needs — structurally satisfied by the\n * `@clack/prompts` module itself, and by plain fakes in tests. Every prompt\n * resolves to a cancel symbol when the user aborts.\n */\nexport interface Prompter {\n multiselect: (opts: {\n initialValues?: SourceKind[];\n message: string;\n options: PromptOption<SourceKind>[];\n required?: boolean;\n }) => Promise<SourceKind[] | symbol>;\n select: (opts: {\n message: string;\n options: PromptOption<Template>[];\n }) => Promise<Template | symbol>;\n text: (opts: {\n defaultValue?: string;\n initialValue?: string;\n message: string;\n placeholder?: string;\n validate?: (value: string | undefined) => string | undefined;\n }) => Promise<string | symbol>;\n}\n\n/** Flag values the user passed explicitly; each one skips its question. */\nexport interface InitFlags {\n contentDir?: string;\n directory?: string;\n packageManager?: PackageManager;\n template?: Template;\n}\n\nconst cancelled = (value: string | string[] | symbol): value is symbol =>\n typeof value === \"symbol\";\n\n/**\n * Run the interactive init flow, returning the collected answers or `null`\n * when the user cancels. All questions run before anything is written, so a\n * cancel never leaves a partial scaffold behind.\n */\nexport const collectAnswers = async (\n prompter: Prompter,\n flags: InitFlags,\n defaults: { cwd: string; userAgent?: string }\n): Promise<InitAnswers | null> => {\n const directory =\n flags.directory ??\n (await prompter.text({\n defaultValue: \".\",\n message: \"Where should we create your project?\",\n placeholder: \"./my-docs\",\n }));\n if (cancelled(directory)) {\n return null;\n }\n\n const root = resolve(defaults.cwd, directory);\n const title = await prompter.text({\n initialValue: titleize(basename(root)),\n message: \"What's your docs site called?\",\n validate: (value) =>\n value?.trim() ? undefined : \"Give your docs site a name.\",\n });\n if (cancelled(title)) {\n return null;\n }\n\n const template =\n flags.template ??\n (await prompter.select({\n message: \"Which template?\",\n options: [\n { hint: \"Markdown docs site\", label: \"docs\", value: \"docs\" },\n { hint: \"OpenAPI reference at /api\", label: \"api\", value: \"api\" },\n { hint: \"SDK docs with an install page\", label: \"sdk\", value: \"sdk\" },\n {\n hint: \"Docs plus a changelog tab\",\n label: \"changelog\",\n value: \"changelog\",\n },\n ],\n }));\n if (cancelled(template)) {\n return null;\n }\n\n const picked = await prompter.multiselect({\n initialValues: [\"filesystem\"],\n message: \"Where does your content live?\",\n options: [\n { hint: \"Local .mdx files\", label: \"filesystem\", value: \"filesystem\" },\n { hint: \"An Obsidian vault\", label: \"obsidian\", value: \"obsidian\" },\n {\n hint: \"Changelog from GitHub Releases\",\n label: \"github-releases\",\n value: \"github-releases\",\n },\n { hint: \"A Notion database\", label: \"notion\", value: \"notion\" },\n { hint: \"A Sanity dataset\", label: \"sanity\", value: \"sanity\" },\n {\n hint: \"A Contentful content type\",\n label: \"contentful\",\n value: \"contentful\",\n },\n { hint: \"A Payload collection\", label: \"payload\", value: \"payload\" },\n { hint: \"A Strapi content type\", label: \"strapi\", value: \"strapi\" },\n {\n hint: \"MDX fetched from a GitHub repo\",\n label: \"mdx-remote\",\n value: \"mdx-remote\",\n },\n ],\n required: false,\n });\n if (cancelled(picked)) {\n return null;\n }\n // No selection desugars to the implicit local source, same as the schema.\n const sources: SourceKind[] = picked.length === 0 ? [\"filesystem\"] : picked;\n\n let contentDir = flags.contentDir ?? \"docs\";\n if (flags.contentDir === undefined && sources.includes(\"filesystem\")) {\n const answer = await prompter.text({\n defaultValue: \"docs\",\n message: \"Content directory?\",\n placeholder: \"docs\",\n validate: (value) => validateContentDir(root, value || \"docs\"),\n });\n if (cancelled(answer)) {\n return null;\n }\n contentDir = answer;\n }\n\n return {\n contentDir,\n directory,\n packageManager:\n flags.packageManager ?? detectPackageManager(defaults.userAgent),\n sources,\n template,\n title,\n };\n};\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "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
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "937A77D93EDC0DE164756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
resolveRuntimeDir
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-124fvmzq.js";
|
|
5
5
|
import {
|
|
6
6
|
logger
|
|
7
7
|
} from "./index.js";
|
|
@@ -197,4 +197,4 @@ var refuseIfDevRunning = (root, action, options = {}) => {
|
|
|
197
197
|
export { readDevLock, DevLockHeldError, acquireDevLock, updateDevLockPort, describeDevLock, refuseIfDevRunning };
|
|
198
198
|
|
|
199
199
|
//# debugId=BA0F0BBCC7BD124F64756E2164756E21
|
|
200
|
-
//# sourceMappingURL=chunk-
|
|
200
|
+
//# sourceMappingURL=chunk-tfycddbt.js.map
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
|
+
missingExampleDiagnostics,
|
|
3
4
|
discoverIslands,
|
|
5
|
+
discoverExamples,
|
|
4
6
|
missingDependencyDiagnostic
|
|
5
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ckrcm08h.js";
|
|
8
|
+
import {
|
|
9
|
+
discoverPages,
|
|
10
|
+
navTargetRoutes
|
|
11
|
+
} from "./chunk-124fvmzq.js";
|
|
6
12
|
import {
|
|
7
13
|
packageRoot,
|
|
8
14
|
commandMeta,
|
|
@@ -14,23 +20,23 @@ import {
|
|
|
14
20
|
reportDiagnosticsJson,
|
|
15
21
|
reportDiagnostics
|
|
16
22
|
} from "./index.js";
|
|
17
|
-
import"./chunk-xkz5xbtv.js";
|
|
18
23
|
import {
|
|
19
24
|
ComponentOverridesError,
|
|
20
25
|
analyzeComponentOverrides
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import"./chunk-zccbjcj0.js";
|
|
26
|
+
} from "./chunk-j1x92mx9.js";
|
|
23
27
|
import {
|
|
28
|
+
validateNavTargets,
|
|
24
29
|
scanProject
|
|
25
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-0pmb4tr4.js";
|
|
31
|
+
import"./chunk-zccbjcj0.js";
|
|
26
32
|
import"./chunk-jq5n4avg.js";
|
|
27
33
|
import {
|
|
28
34
|
unregisteredSnapshotDiagnostics
|
|
29
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-5cmts6dv.js";
|
|
30
36
|
import {
|
|
31
37
|
serverFeatures,
|
|
32
38
|
checkRequiredSecrets
|
|
33
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-ms9z66nz.js";
|
|
34
40
|
|
|
35
41
|
// src/cli/commands/doctor.ts
|
|
36
42
|
import { readFileSync } from "node:fs";
|
|
@@ -41,14 +47,14 @@ import { satisfies } from "semver";
|
|
|
41
47
|
var FALLBACK_NODE_RANGE = ">=22.12.0";
|
|
42
48
|
var componentsDiagnostics = async (componentsFile) => {
|
|
43
49
|
if (!componentsFile) {
|
|
44
|
-
return [];
|
|
50
|
+
return { issues: [], mdx: [] };
|
|
45
51
|
}
|
|
46
52
|
try {
|
|
47
|
-
analyzeComponentOverrides(await readFile(componentsFile, "utf-8"), componentsFile);
|
|
48
|
-
return [];
|
|
53
|
+
const { mdx } = analyzeComponentOverrides(await readFile(componentsFile, "utf-8"), componentsFile);
|
|
54
|
+
return { issues: [], mdx: mdx.map((entry) => entry.key) };
|
|
49
55
|
} catch (error) {
|
|
50
56
|
if (error instanceof ComponentOverridesError) {
|
|
51
|
-
return error.issues;
|
|
57
|
+
return { issues: error.issues, mdx: [] };
|
|
52
58
|
}
|
|
53
59
|
throw error;
|
|
54
60
|
}
|
|
@@ -97,15 +103,22 @@ var doctorCommand = defineCommand({
|
|
|
97
103
|
}
|
|
98
104
|
loadEnvFiles(root);
|
|
99
105
|
try {
|
|
100
|
-
const project = await scanProject(root, {
|
|
101
|
-
|
|
106
|
+
const project = await scanProject(root, {
|
|
107
|
+
beforeSources: (config) => {
|
|
108
|
+
diagnostics.push(...checkRequiredSecrets(config));
|
|
109
|
+
},
|
|
110
|
+
mode: "build"
|
|
111
|
+
});
|
|
112
|
+
const userPages = project.context.pagesRoot ? await discoverPages(project.context.pagesRoot) : [];
|
|
113
|
+
diagnostics.push(...project.diagnostics, ...unregisteredSnapshotDiagnostics(project), ...validateNavTargets(project.graph.navigation, navTargetRoutes(project, userPages)));
|
|
102
114
|
const { config } = project;
|
|
103
115
|
const { islands } = await discoverIslands(root);
|
|
104
116
|
const dependencies = await missingDependencyDiagnostic(config, root, "error", islands.map((island) => island.framework));
|
|
105
117
|
if (dependencies) {
|
|
106
118
|
diagnostics.push(dependencies);
|
|
107
119
|
}
|
|
108
|
-
|
|
120
|
+
const overrides = await componentsDiagnostics(project.context.componentsFile);
|
|
121
|
+
diagnostics.push(...overrides.issues, ...missingExampleDiagnostics(project.graph.pages, await discoverExamples(root, config.examples.source), root, new Set([...islands.map((island) => island.name), ...overrides.mdx])));
|
|
109
122
|
const features = serverFeatures(config);
|
|
110
123
|
if (features.length > 0 && config.deployment.options.output === "static") {
|
|
111
124
|
const { kind } = config.deployment;
|
|
@@ -153,5 +166,5 @@ export {
|
|
|
153
166
|
doctorCommand
|
|
154
167
|
};
|
|
155
168
|
|
|
156
|
-
//# debugId=
|
|
157
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# debugId=A6107CD821E0AA4B64756E2164756E21
|
|
170
|
+
//# sourceMappingURL=chunk-twy7psdz.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/cli/commands/doctor.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import { readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\n\nimport { defineCommand } from \"citty\";\nimport { join } from \"pathe\";\nimport { satisfies } from \"semver\";\n\nimport { discoverExamples } from \"../../astro/examples.ts\";\nimport { discoverIslands } from \"../../astro/islands.ts\";\nimport { discoverPages, navTargetRoutes } from \"../../astro/pages.ts\";\nimport { missingDependencyDiagnostic } from \"../../astro/runtime-deps.ts\";\nimport { missingExampleDiagnostics } from \"../../core/component-diagnostics.ts\";\nimport {\n analyzeComponentOverrides,\n ComponentOverridesError,\n} from \"../../core/component-overrides.ts\";\nimport { BlumeError } from \"../../core/diagnostics.ts\";\nimport { validateNavTargets } from \"../../core/nav-diagnostics.ts\";\nimport { packageRoot } from \"../../core/package-root.ts\";\nimport { scanProject } from \"../../core/project-graph.ts\";\nimport type { ResolvedConfig } from \"../../core/schema.ts\";\nimport { serverFeatures } from \"../../core/server-features.ts\";\nimport type { Diagnostic } from \"../../core/types.ts\";\nimport { unregisteredSnapshotDiagnostics } from \"../../core/version-cut.ts\";\nimport { commandMeta } from \"../command-meta.ts\";\nimport { loadEnvFiles } from \"../env.ts\";\nimport { reportInternalError } from \"../internal-error.ts\";\nimport {\n flushStdout,\n logger,\n reportDiagnostics,\n reportDiagnosticsJson,\n} from \"../log.ts\";\nimport { checkRequiredSecrets } from \"../required-secrets.ts\";\n\nconst FALLBACK_NODE_RANGE = \">=22.12.0\";\n\n/**\n * Plan `components.ts` the way `blume dev`/`build` do, reporting each override\n * that can't be planned — a non-static form, or an import of a file that\n * doesn't exist — with its own line. The scan alone never reads the file, so\n * without this doctor would pass a project whose build fails. Also returns\n * the MDX tags the file overrides.\n */\nconst componentsDiagnostics = async (\n componentsFile: string | null\n): Promise<{ issues: Diagnostic[]; mdx: string[] }> => {\n if (!componentsFile) {\n return { issues: [], mdx: [] };\n }\n try {\n const { mdx } = analyzeComponentOverrides(\n await readFile(componentsFile, \"utf-8\"),\n componentsFile\n );\n return { issues: [], mdx: mdx.map((entry) => entry.key) };\n } catch (error) {\n if (error instanceof ComponentOverridesError) {\n return { issues: error.issues, mdx: [] };\n }\n throw error;\n }\n};\n\n/** The supported Node range, read from the package's own `engines` field so\n * doctor can never drift from what the package actually declares. */\nconst supportedNodeRange = (): string => {\n try {\n // SAFETY: this parses blume's own package.json; the optional fields cover\n // an `engines` block going missing, and a bad read falls to the catch.\n const pkg = JSON.parse(\n readFileSync(join(packageRoot(), \"package.json\"), \"utf-8\")\n ) as { engines?: { node?: string } };\n return pkg.engines?.node || FALLBACK_NODE_RANGE;\n } catch {\n return FALLBACK_NODE_RANGE;\n }\n};\n\n/** The adapters a project runs, one line per kind, for the doctor summary. */\nconst integrationSummary = (config: ResolvedConfig): string[] => {\n const { assistant } = config.ai;\n let assistantSummary = \"off\";\n if (assistant?.enabled) {\n assistantSummary = assistant.endpoint\n ? \"external endpoint\"\n : assistant.provider.kind;\n }\n return [\n `References: ${config.reference.map((adapter) => adapter.kind).join(\", \") || \"none\"}`,\n `Analytics: ${config.analytics.map((adapter) => adapter.kind).join(\", \") || \"none\"}`,\n `Consent: ${config.consent?.kind ?? \"none\"}`,\n `Rate limiting: ${config.rateLimit?.kind ?? \"off\"}`,\n `Sources: ${config.content.sources.map((source) => source.kind).join(\", \")}`,\n `Assistant: ${assistantSummary}`,\n ];\n};\n\nexport const doctorCommand = defineCommand({\n args: {\n json: {\n description: \"Emit diagnostics as JSON on stdout (for CI/editors).\",\n type: \"boolean\",\n },\n },\n meta: commandMeta.doctor,\n async run({ args }) {\n const root = process.cwd();\n const diagnostics: Diagnostic[] = [];\n\n const nodeRange = supportedNodeRange();\n if (!satisfies(process.versions.node, nodeRange)) {\n diagnostics.push({\n code: \"BLUME_NODE_VERSION\",\n message: `Node ${process.versions.node} is outside the supported range (${nodeRange}).`,\n severity: \"warning\",\n });\n }\n\n // Read `.env` files first, as `blume dev`/`build` do: remote sources read\n // their tokens during the scan, and the secrets check below reads them too.\n loadEnvFiles(root);\n\n try {\n const project = await scanProject(root, {\n // A missing secret fails at the first request. Checked before the\n // sources fetch, so it's still reported when one of them fails the\n // scan for want of it.\n beforeSources: (config) => {\n diagnostics.push(...checkRequiredSecrets(config));\n },\n mode: \"build\",\n });\n // Tabs, selector items, and featured links can point at custom pages\n // and generated routes too, so they're checked against every route\n // the site serves, as `blume dev`/`build` check them.\n const userPages = project.context.pagesRoot\n ? await discoverPages(project.context.pagesRoot)\n : [];\n diagnostics.push(\n ...project.diagnostics,\n ...unregisteredSnapshotDiagnostics(project),\n ...validateNavTargets(\n project.graph.navigation,\n navTargetRoutes(project, userPages)\n )\n );\n\n const { config } = project;\n // The packages a build would need: an adapter's missing SDK fails the\n // build.\n const { islands } = await discoverIslands(root);\n const dependencies = await missingDependencyDiagnostic(\n config,\n root,\n \"error\",\n islands.map((island) => island.framework)\n );\n if (dependencies) {\n diagnostics.push(dependencies);\n }\n const overrides = await componentsDiagnostics(\n project.context.componentsFile\n );\n diagnostics.push(\n ...overrides.issues,\n // A `<Component path>` naming no example renders a \"No example\n // found\" box, which dev and build warn about too.\n ...missingExampleDiagnostics(\n project.graph.pages,\n await discoverExamples(root, config.examples.source),\n root,\n new Set([...islands.map((island) => island.name), ...overrides.mdx])\n )\n );\n const features = serverFeatures(config);\n if (\n features.length > 0 &&\n config.deployment.options.output === \"static\"\n ) {\n // A host adapter already names the target, so only its\n // `output: \"static\"` stands in the way; otherwise name one.\n const { kind } = config.deployment;\n diagnostics.push({\n code: \"BLUME_SERVER_FEATURE_REQUIRED\",\n message: `${features.join(\", \")} ${features.length === 1 ? \"requires\" : \"require\"} server output.`,\n severity: \"error\",\n suggestion:\n kind === \"static\"\n ? 'Set deployment to a host adapter from \"blume/deploy\" (e.g. `deployment: vercel()`).'\n : `Drop \\`output: \"static\"\\` from \\`deployment: ${kind}()\\` to build for the server.`,\n });\n }\n\n if (!args.json) {\n logger.info(`Pages: ${project.graph.pages.length}`);\n logger.info(`Output: ${config.deployment.options.output}`);\n logger.info(`Adapter: ${config.deployment.kind}`);\n logger.info(`Search: ${config.search.provider.kind}`);\n for (const line of integrationSummary(config)) {\n logger.info(line);\n }\n }\n } catch (error) {\n if (error instanceof BlumeError) {\n diagnostics.push(error.diagnostic);\n } else {\n reportInternalError(error);\n process.exit(1);\n }\n }\n\n if (args.json) {\n // Drain stdout before exiting non-zero: `process.exit` would otherwise\n // truncate the JSON payload mid-write when stdout is a pipe — exactly how\n // `--json` is consumed in CI/editors.\n if (reportDiagnosticsJson(diagnostics, root)) {\n await flushStdout();\n process.exit(1);\n }\n return;\n }\n\n const hadErrors = reportDiagnostics(diagnostics, root);\n if (diagnostics.length === 0) {\n logger.success(\"No problems found.\");\n }\n if (hadErrors) {\n // Set the code and return rather than `process.exit`, which doesn't wait\n // for a piped stderr: a long diagnostic list would be cut off.\n process.exitCode = 1;\n }\n },\n});\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AA8BA,IAAM,sBAAsB;AAS5B,IAAM,wBAAwB,OAC5B,mBACqD;AAAA,EACrD,IAAI,CAAC,gBAAgB;AAAA,IACnB,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,EAAE;AAAA,EAC/B;AAAA,EACA,IAAI;AAAA,IACF,QAAQ,QAAQ,0BACd,MAAM,SAAS,gBAAgB,OAAO,GACtC,cACF;AAAA,IACA,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,UAAU,MAAM,GAAG,EAAE;AAAA,IACxD,OAAO,OAAO;AAAA,IACd,IAAI,iBAAiB,yBAAyB;AAAA,MAC5C,OAAO,EAAE,QAAQ,MAAM,QAAQ,KAAK,CAAC,EAAE;AAAA,IACzC;AAAA,IACA,MAAM;AAAA;AAAA;AAMV,IAAM,qBAAqB,MAAc;AAAA,EACvC,IAAI;AAAA,IAGF,MAAM,MAAM,KAAK,MACf,aAAa,KAAK,YAAY,GAAG,cAAc,GAAG,OAAO,CAC3D;AAAA,IACA,OAAO,IAAI,SAAS,QAAQ;AAAA,IAC5B,MAAM;AAAA,IACN,OAAO;AAAA;AAAA;AAKX,IAAM,qBAAqB,CAAC,WAAqC;AAAA,EAC/D,QAAQ,cAAc,OAAO;AAAA,EAC7B,IAAI,mBAAmB;AAAA,EACvB,IAAI,WAAW,SAAS;AAAA,IACtB,mBAAmB,UAAU,WACzB,sBACA,UAAU,SAAS;AAAA,EACzB;AAAA,EACA,OAAO;AAAA,IACL,eAAe,OAAO,UAAU,IAAI,CAAC,YAAY,QAAQ,IAAI,EAAE,KAAK,IAAI,KAAK;AAAA,IAC7E,cAAc,OAAO,UAAU,IAAI,CAAC,YAAY,QAAQ,IAAI,EAAE,KAAK,IAAI,KAAK;AAAA,IAC5E,YAAY,OAAO,SAAS,QAAQ;AAAA,IACpC,kBAAkB,OAAO,WAAW,QAAQ;AAAA,IAC5C,YAAY,OAAO,QAAQ,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,EAAE,KAAK,IAAI;AAAA,IACzE,cAAc;AAAA,EAChB;AAAA;AAGK,IAAM,gBAAgB,cAAc;AAAA,EACzC,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,aAAa;AAAA,MACb,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,MAAM,YAAY;AAAA,OACZ,IAAG,GAAG,QAAQ;AAAA,IAClB,MAAM,OAAO,QAAQ,IAAI;AAAA,IACzB,MAAM,cAA4B,CAAC;AAAA,IAEnC,MAAM,YAAY,mBAAmB;AAAA,IACrC,IAAI,CAAC,UAAU,QAAQ,SAAS,MAAM,SAAS,GAAG;AAAA,MAChD,YAAY,KAAK;AAAA,QACf,MAAM;AAAA,QACN,SAAS,QAAQ,QAAQ,SAAS,wCAAwC;AAAA,QAC1E,UAAU;AAAA,MACZ,CAAC;AAAA,IACH;AAAA,IAIA,aAAa,IAAI;AAAA,IAEjB,IAAI;AAAA,MACF,MAAM,UAAU,MAAM,YAAY,MAAM;AAAA,QAItC,eAAe,CAAC,WAAW;AAAA,UACzB,YAAY,KAAK,GAAG,qBAAqB,MAAM,CAAC;AAAA;AAAA,QAElD,MAAM;AAAA,MACR,CAAC;AAAA,MAID,MAAM,YAAY,QAAQ,QAAQ,YAC9B,MAAM,cAAc,QAAQ,QAAQ,SAAS,IAC7C,CAAC;AAAA,MACL,YAAY,KACV,GAAG,QAAQ,aACX,GAAG,gCAAgC,OAAO,GAC1C,GAAG,mBACD,QAAQ,MAAM,YACd,gBAAgB,SAAS,SAAS,CACpC,CACF;AAAA,MAEA,QAAQ,WAAW;AAAA,MAGnB,QAAQ,YAAY,MAAM,gBAAgB,IAAI;AAAA,MAC9C,MAAM,eAAe,MAAM,4BACzB,QACA,MACA,SACA,QAAQ,IAAI,CAAC,WAAW,OAAO,SAAS,CAC1C;AAAA,MACA,IAAI,cAAc;AAAA,QAChB,YAAY,KAAK,YAAY;AAAA,MAC/B;AAAA,MACA,MAAM,YAAY,MAAM,sBACtB,QAAQ,QAAQ,cAClB;AAAA,MACA,YAAY,KACV,GAAG,UAAU,QAGb,GAAG,0BACD,QAAQ,MAAM,OACd,MAAM,iBAAiB,MAAM,OAAO,SAAS,MAAM,GACnD,MACA,IAAI,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,GAAG,GAAG,UAAU,GAAG,CAAC,CACrE,CACF;AAAA,MACA,MAAM,WAAW,eAAe,MAAM;AAAA,MACtC,IACE,SAAS,SAAS,KAClB,OAAO,WAAW,QAAQ,WAAW,UACrC;AAAA,QAGA,QAAQ,SAAS,OAAO;AAAA,QACxB,YAAY,KAAK;AAAA,UACf,MAAM;AAAA,UACN,SAAS,GAAG,SAAS,KAAK,IAAI,KAAK,SAAS,WAAW,IAAI,aAAa;AAAA,UACxE,UAAU;AAAA,UACV,YACE,SAAS,WACL,wFACA,gDAAgD;AAAA,QACxD,CAAC;AAAA,MACH;AAAA,MAEA,IAAI,CAAC,KAAK,MAAM;AAAA,QACd,OAAO,KAAK,UAAU,QAAQ,MAAM,MAAM,QAAQ;AAAA,QAClD,OAAO,KAAK,WAAW,OAAO,WAAW,QAAQ,QAAQ;AAAA,QACzD,OAAO,KAAK,YAAY,OAAO,WAAW,MAAM;AAAA,QAChD,OAAO,KAAK,WAAW,OAAO,OAAO,SAAS,MAAM;AAAA,QACpD,WAAW,QAAQ,mBAAmB,MAAM,GAAG;AAAA,UAC7C,OAAO,KAAK,IAAI;AAAA,QAClB;AAAA,MACF;AAAA,MACA,OAAO,OAAO;AAAA,MACd,IAAI,iBAAiB,YAAY;AAAA,QAC/B,YAAY,KAAK,MAAM,UAAU;AAAA,MACnC,EAAO;AAAA,QACL,oBAAoB,KAAK;AAAA,QACzB,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA,IAIlB,IAAI,KAAK,MAAM;AAAA,MAIb,IAAI,sBAAsB,aAAa,IAAI,GAAG;AAAA,QAC5C,MAAM,YAAY;AAAA,QAClB,QAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,MACA;AAAA,IACF;AAAA,IAEA,MAAM,YAAY,kBAAkB,aAAa,IAAI;AAAA,IACrD,IAAI,YAAY,WAAW,GAAG;AAAA,MAC5B,OAAO,QAAQ,oBAAoB;AAAA,IACrC;AAAA,IACA,IAAI,WAAW;AAAA,MAGb,QAAQ,WAAW;AAAA,IACrB;AAAA;AAEJ,CAAC;",
|
|
8
|
+
"debugId": "A6107CD821E0AA4B64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
resolveRuntimeDir,
|
|
4
4
|
resolveProjectContext,
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-124fvmzq.js";
|
|
7
7
|
import"./chunk-zccbjcj0.js";
|
|
8
8
|
import {
|
|
9
9
|
commandMeta,
|
|
@@ -11,24 +11,24 @@ import {
|
|
|
11
11
|
} from "./index.js";
|
|
12
12
|
import {
|
|
13
13
|
readDevLock
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import"./chunk-
|
|
14
|
+
} from "./chunk-tfycddbt.js";
|
|
15
|
+
import"./chunk-dpy8qdjf.js";
|
|
16
16
|
import {
|
|
17
17
|
refuseIfEjected
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import"./chunk-
|
|
20
|
-
import"./chunk-
|
|
21
|
-
import"./chunk-
|
|
22
|
-
import"./chunk-
|
|
18
|
+
} from "./chunk-53jqw8z0.js";
|
|
19
|
+
import"./chunk-nbyvgnnm.js";
|
|
20
|
+
import"./chunk-desvm72z.js";
|
|
21
|
+
import"./chunk-0pmb4tr4.js";
|
|
22
|
+
import"./chunk-ckrcm08h.js";
|
|
23
|
+
import"./chunk-j1x92mx9.js";
|
|
23
24
|
import"./chunk-jq5n4avg.js";
|
|
24
|
-
import"./chunk-
|
|
25
|
-
import"./chunk-
|
|
26
|
-
import"./chunk-amrb6hgh.js";
|
|
25
|
+
import"./chunk-es8h0v3j.js";
|
|
26
|
+
import"./chunk-dqhg54mr.js";
|
|
27
27
|
import {
|
|
28
28
|
prepareProject
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import"./chunk-
|
|
31
|
-
import"./chunk-
|
|
29
|
+
} from "./chunk-297ajdcv.js";
|
|
30
|
+
import"./chunk-ms9z66nz.js";
|
|
31
|
+
import"./chunk-s0bdnc7v.js";
|
|
32
32
|
|
|
33
33
|
// src/cli/commands/sync.ts
|
|
34
34
|
import { rm } from "node:fs/promises";
|
|
@@ -74,4 +74,4 @@ export {
|
|
|
74
74
|
};
|
|
75
75
|
|
|
76
76
|
//# debugId=67B7B6A961A6206764756E2164756E21
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-y4msrwm9.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
deployPlatform,
|
|
4
4
|
resolveProjectContext,
|
|
5
5
|
loadConfig
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-124fvmzq.js";
|
|
7
7
|
import"./chunk-zccbjcj0.js";
|
|
8
8
|
import {
|
|
9
9
|
commandMeta,
|
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
} from "./index.js";
|
|
13
13
|
import {
|
|
14
14
|
deployOutputDir
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-dpy8qdjf.js";
|
|
16
16
|
import {
|
|
17
17
|
parsePort
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-74wfhv79.js";
|
|
19
19
|
import {
|
|
20
20
|
refuseIfEjected
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-53jqw8z0.js";
|
|
22
22
|
|
|
23
23
|
// src/cli/commands/preview.ts
|
|
24
24
|
import { existsSync } from "node:fs";
|
|
@@ -61,4 +61,4 @@ export {
|
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
//# debugId=062E50A4A26E603564756E2164756E21
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
64
|
+
//# sourceMappingURL=chunk-ydp3065p.js.map
|
package/dist/cli/index.js
CHANGED
|
@@ -212,6 +212,7 @@ var DOCS_PATHS = new Map(Object.entries({
|
|
|
212
212
|
BLUME_DEPENDENCY_MISSING: "/docs/cli/doctor",
|
|
213
213
|
BLUME_DUPLICATE_ROUTE: DOCS_CONTENT_NAVIGATION,
|
|
214
214
|
BLUME_DUPLICATE_SIDEBAR_ORDER: DOCS_CONTENT_NAVIGATION,
|
|
215
|
+
BLUME_EXAMPLE_NOT_FOUND: "/docs/content/components#component",
|
|
215
216
|
BLUME_FRONTMATTER_INVALID: "/docs/content/frontmatter",
|
|
216
217
|
BLUME_INCLUDE_CYCLE: DOCS_CONTENT_INCLUDES,
|
|
217
218
|
BLUME_INCLUDE_MALFORMED: DOCS_CONTENT_INCLUDES,
|
|
@@ -226,13 +227,17 @@ var DOCS_PATHS = new Map(Object.entries({
|
|
|
226
227
|
BLUME_NAV_INDEX_TITLE_MISMATCH: DOCS_CONTENT_NAVIGATION,
|
|
227
228
|
BLUME_NAV_MISSING_PAGE: DOCS_CONTENT_NAVIGATION,
|
|
228
229
|
BLUME_NODE_VERSION: "/docs/quickstart",
|
|
230
|
+
BLUME_SEARCH_SYNC_FAILED: "/docs/configuration/search",
|
|
229
231
|
BLUME_SERVER_FEATURE_REQUIRED: DOCS_DEPLOYMENT,
|
|
230
232
|
BLUME_SIDEBAR_DISPLAY_IGNORED: DOCS_CONTENT_NAVIGATION,
|
|
231
233
|
BLUME_SOURCE_FETCH_FAILED: DOCS_CONTENT_SOURCES,
|
|
232
234
|
BLUME_SOURCE_MISCONFIGURED: DOCS_CONTENT_SOURCES,
|
|
233
235
|
BLUME_SOURCE_OFFLINE: DOCS_CONTENT_SOURCES,
|
|
236
|
+
BLUME_SOURCE_PATH_MISSING: "/docs/content/sources/remote-mdx",
|
|
234
237
|
BLUME_SOURCE_SDK_MISSING: DOCS_CONTENT_SOURCES,
|
|
235
238
|
BLUME_SOURCE_UNAVAILABLE: DOCS_CONTENT_SOURCES,
|
|
239
|
+
BLUME_SOURCE_UNRESOLVED_LINK: "/docs/content/sources/contentful",
|
|
240
|
+
BLUME_SOURCE_UNSUPPORTED_NODE: "/docs/content/sources/payload",
|
|
236
241
|
BLUME_TRANSLATE_MISSING: "/docs/cli/translate",
|
|
237
242
|
BLUME_TRANSLATE_STALE: "/docs/cli/translate",
|
|
238
243
|
BLUME_UNKNOWN_COMPONENT: "/docs/configuration/customization",
|
|
@@ -685,24 +690,24 @@ var main = defineCommand({
|
|
|
685
690
|
version: getBlumeVersion()
|
|
686
691
|
},
|
|
687
692
|
subCommands: {
|
|
688
|
-
add: lazyCommand(commandMeta.add, () => import("./chunk-
|
|
689
|
-
audit: lazyCommand(commandMeta.audit, () => import("./chunk-
|
|
690
|
-
build: lazyCommand(commandMeta.build, () => import("./chunk-
|
|
691
|
-
check: lazyCommand(commandMeta.check, () => import("./chunk-
|
|
692
|
-
dev: lazyCommand(commandMeta.dev, () => import("./chunk-
|
|
693
|
-
doctor: lazyCommand(commandMeta.doctor, () => import("./chunk-
|
|
694
|
-
eject: lazyCommand(commandMeta.eject, () => import("./chunk-
|
|
695
|
-
eval: lazyCommand(commandMeta.eval, () => import("./chunk-
|
|
696
|
-
init: lazyCommand(commandMeta.init, () => import("./chunk-
|
|
697
|
-
"mcp-stdio": lazyCommand(commandMeta["mcp-stdio"], () => import("./chunk-
|
|
698
|
-
migrate: lazyCommand(commandMeta.migrate, () => import("./chunk-
|
|
699
|
-
preview: lazyCommand(commandMeta.preview, () => import("./chunk-
|
|
700
|
-
skill: lazyCommand(commandMeta.skill, () => import("./chunk-
|
|
701
|
-
sync: lazyCommand(commandMeta.sync, () => import("./chunk-
|
|
702
|
-
translate: lazyCommand(commandMeta.translate, () => import("./chunk-
|
|
703
|
-
upgrade: lazyCommand(commandMeta.upgrade, () => import("./chunk-
|
|
704
|
-
validate: lazyCommand(commandMeta.validate, () => import("./chunk-
|
|
705
|
-
version: lazyCommand(commandMeta.version, () => import("./chunk-
|
|
693
|
+
add: lazyCommand(commandMeta.add, () => import("./chunk-1f882900.js"), "addCommand"),
|
|
694
|
+
audit: lazyCommand(commandMeta.audit, () => import("./chunk-32khwcb6.js"), "auditCommand"),
|
|
695
|
+
build: lazyCommand(commandMeta.build, () => import("./chunk-36bxs9c7.js"), "buildCommand"),
|
|
696
|
+
check: lazyCommand(commandMeta.check, () => import("./chunk-0w6hs479.js"), "checkCommand"),
|
|
697
|
+
dev: lazyCommand(commandMeta.dev, () => import("./chunk-gxtg6ed2.js"), "devCommand"),
|
|
698
|
+
doctor: lazyCommand(commandMeta.doctor, () => import("./chunk-twy7psdz.js"), "doctorCommand"),
|
|
699
|
+
eject: lazyCommand(commandMeta.eject, () => import("./chunk-gfc5fqvf.js"), "ejectCommand"),
|
|
700
|
+
eval: lazyCommand(commandMeta.eval, () => import("./chunk-bqxaqn5p.js"), "evalCommand"),
|
|
701
|
+
init: lazyCommand(commandMeta.init, () => import("./chunk-sc93apfs.js"), "initCommand"),
|
|
702
|
+
"mcp-stdio": lazyCommand(commandMeta["mcp-stdio"], () => import("./chunk-ave1wcbr.js"), "mcpStdioCommand"),
|
|
703
|
+
migrate: lazyCommand(commandMeta.migrate, () => import("./chunk-kdpzw38a.js"), "migrateCommand"),
|
|
704
|
+
preview: lazyCommand(commandMeta.preview, () => import("./chunk-ydp3065p.js"), "previewCommand"),
|
|
705
|
+
skill: lazyCommand(commandMeta.skill, () => import("./chunk-a57yh0h9.js"), "skillCommand"),
|
|
706
|
+
sync: lazyCommand(commandMeta.sync, () => import("./chunk-y4msrwm9.js"), "syncCommand"),
|
|
707
|
+
translate: lazyCommand(commandMeta.translate, () => import("./chunk-bxwhtvw8.js"), "translateCommand"),
|
|
708
|
+
upgrade: lazyCommand(commandMeta.upgrade, () => import("./chunk-hvcxng5f.js"), "upgradeCommand"),
|
|
709
|
+
validate: lazyCommand(commandMeta.validate, () => import("./chunk-60hz265r.js"), "validateCommand"),
|
|
710
|
+
version: lazyCommand(commandMeta.version, () => import("./chunk-58bt3hag.js"), "versionCommand")
|
|
706
711
|
}
|
|
707
712
|
});
|
|
708
713
|
loadEnvFiles(process.cwd());
|
|
@@ -737,5 +742,5 @@ export {
|
|
|
737
742
|
closestMatch
|
|
738
743
|
};
|
|
739
744
|
|
|
740
|
-
//# debugId=
|
|
745
|
+
//# debugId=D285C7A054BEC2C764756E2164756E21
|
|
741
746
|
//# sourceMappingURL=index.js.map
|