@astryxdesign/cli 0.7.2-canary.fdd384f → 0.7.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 +119 -0
- package/README.md +169 -149
- package/api/build/_adapter.d.mts +8 -0
- package/api/build/_adapter.mjs +12 -1
- package/api/build/build.doc.mjs +4 -0
- package/api/build/kit/kit.mjs +3 -11
- package/api/component/_adapter.d.mts +31 -0
- package/api/component/_adapter.mjs +119 -11
- package/api/component/component.doc.mjs +6 -1
- package/api/component/component.mjs +60 -10
- package/api/component/doc-links.test.mjs +386 -0
- package/api/discover/_adapter.d.mts +132 -12
- package/api/discover/_adapter.mjs +488 -27
- package/api/discover/_adapter.test.mjs +599 -17
- package/api/discover/_catalog-view.d.mts +16 -5
- package/api/discover/_catalog-view.mjs +32 -8
- package/api/discover/detail/doc/doc.mjs +9 -1
- package/api/discover/discover.d.mts +11 -0
- package/api/discover/discover.doc.mjs +9 -7
- package/api/discover/discover.mjs +121 -19
- package/api/discover/discover.type.d.mts +20 -7
- package/api/discover/discover.type.mjs +17 -7
- package/api/discover/list/list.d.mts +4 -3
- package/api/discover/list/list.mjs +17 -10
- package/api/docs/_adapter.d.mts +63 -0
- package/api/docs/_adapter.mjs +312 -18
- package/api/docs/docs.doc.mjs +2 -1
- package/api/docs/docs.mjs +2 -1
- package/api/docs/docs.test.mjs +5 -2
- package/api/docs/integration-tree.test.mjs +22 -0
- package/api/docs/list/list.mjs +12 -2
- package/api/docs/reference-blocks.test.mjs +1 -3
- package/api/doctor/_adapter.d.mts +108 -0
- package/api/doctor/_adapter.mjs +223 -4
- package/api/doctor/doctor.d.mts +199 -0
- package/api/doctor/doctor.doc.mjs +3 -2
- package/api/doctor/doctor.mjs +530 -34
- package/api/doctor/doctor.test.mjs +180 -14
- package/api/doctor/release-checks.test.mjs +156 -0
- package/api/doctor/theme-checks.mjs +16 -3
- package/api/doctor/theme-checks.test.mjs +223 -7
- package/api/error.d.mts +10 -0
- package/api/error.mjs +25 -0
- package/api/gap-report/gap-report.d.mts +3 -0
- package/api/gap-report/gap-report.doc.mjs +11 -3
- package/api/gap-report/gap-report.mjs +152 -48
- package/api/gap-report/gap-report.test.mjs +233 -0
- package/api/gap-report/gap-report.type.d.mts +41 -0
- package/api/gap-report/gap-report.type.mjs +18 -0
- package/api/hook/_adapter.mjs +3 -11
- package/api/hook/hook.doc.mjs +4 -0
- package/api/hook/list/list.d.mts +1 -1
- package/api/init/_adapter.d.mts +22 -0
- package/api/init/_adapter.mjs +59 -0
- package/api/init/init.d.mts +7 -5
- package/api/init/init.doc.mjs +28 -7
- package/api/init/init.mjs +28 -4
- package/api/init/init.type.d.mts +48 -3
- package/api/init/init.type.mjs +37 -3
- package/api/init/run/run.d.mts +1 -1
- package/api/init/run/run.mjs +15 -4
- package/api/init/user/user.d.mts +14 -0
- package/api/init/user/user.mjs +87 -0
- package/api/init/user/user.test.mjs +232 -0
- package/api/integration/_adapter.d.mts +33 -0
- package/api/integration/_adapter.mjs +58 -0
- package/api/integration/authoring-checks.mjs +100 -5
- package/api/integration/authoring-checks.test.mjs +769 -0
- package/api/integration/authoring-checks.type.d.mts +134 -0
- package/api/integration/authoring-checks.type.mjs +60 -1
- package/api/integration/integrationCheck.doc.mjs +1 -1
- package/api/integration/integrationComponentConflicts.doc.mjs +11 -3
- package/api/integration/integrationDocConflicts.doc.mjs +22 -5
- package/api/integration/pack-check.mjs +303 -13
- package/api/integration/pack-check.test.mjs +371 -10
- package/api/integration/validate-integration-fixes.test.mjs +67 -0
- package/api/integration/validate-integration.d.mts +8 -0
- package/api/integration/validate-integration.mjs +55 -9
- package/api/integration/validate-integration.test.mjs +77 -8
- package/api/integration/validate-integration.type.d.mts +8 -0
- package/api/integration/validate-integration.type.mjs +3 -1
- package/api/integration/validate-unread-theme-folders.test.mjs +3 -2
- package/api/integration/validateIntegration.doc.mjs +4 -2
- package/api/search/_adapter.d.mts +11 -0
- package/api/search/_adapter.mjs +25 -0
- package/api/search/search.d.mts +73 -13
- package/api/search/search.doc.mjs +8 -3
- package/api/search/search.domain-priority.test.mjs +108 -18
- package/api/search/search.mjs +541 -52
- package/api/search/search.test.mjs +143 -1
- package/api/search/search.type.d.mts +14 -1
- package/api/search/search.type.mjs +6 -1
- package/api/swizzle/_adapter.mjs +2 -2
- package/api/swizzle/copy/copy.mjs +1 -1
- package/api/template/template-integration.test.mjs +1 -1
- package/api/theme/_adapter.d.mts +16 -0
- package/api/theme/_adapter.mjs +32 -5
- package/api/theme/build/build.d.mts +2 -1
- package/api/theme/build/build.mjs +70 -14
- package/api/theme/build/build.packed-old-core.test.mjs +20 -3
- package/api/theme/build/font-warning.mjs +5 -3
- package/api/theme/build/font-warning.test.mjs +2 -1
- package/api/theme/remove/remove.test.mjs +2 -2
- package/api/theme/targets/targets.mjs +3 -10
- package/api/theme/themeTargets.doc.mjs +4 -0
- package/api/theme/use/use.test.mjs +1 -1
- package/api/upgrade/_adapter.d.mts +40 -2
- package/api/upgrade/_adapter.mjs +118 -5
- package/api/upgrade/run/cli-behind-core.test.mjs +438 -0
- package/api/upgrade/run/run.mjs +35 -2
- package/api/upgrade/status/status.d.mts +21 -5
- package/api/upgrade/status/status.mjs +45 -8
- package/api/upgrade/upgrade.doc.mjs +6 -3
- package/api/upgrade/upgrade.mjs +5 -1
- package/api/upgrade/upgrade.type.d.mts +23 -0
- package/api/upgrade/upgrade.type.mjs +16 -1
- package/assets/codemods/__tests__/registry.test.mjs +1 -0
- package/assets/codemods/registry.mjs +1 -0
- package/assets/codemods/runner.mjs +7 -1
- package/assets/codemods/transforms/next/index.mjs +1 -11
- package/assets/codemods/transforms/v0.7.2/index.mjs +20 -0
- package/assets/discover/official-packages.json +367 -0
- package/assets/docs/author-a-theme.doc.mjs +2 -2
- package/assets/docs/browser-support.doc.mjs +1 -1
- package/assets/docs/getting-started.doc.mjs +23 -3
- package/assets/docs/styling-overview.doc.mjs +1 -1
- package/assets/docs/theme.doc.mjs +1 -1
- package/assets/docs/tree/add-a-component.doc.mjs +12 -2
- package/assets/docs/tree/add-a-theme.doc.mjs +13 -3
- package/assets/docs/tree/add-a-topic.doc.mjs +54 -9
- package/assets/docs/tree/agent-guidance.doc.mjs +19 -5
- package/assets/docs/tree/block-template.doc.mjs +6 -18
- package/assets/docs/tree/build-the-template.doc.mjs +1 -1
- package/assets/docs/tree/building-blocks.doc.mjs +4 -0
- package/assets/docs/tree/check-the-props.doc.mjs +8 -3
- package/assets/docs/tree/check-your-docs.doc.mjs +30 -13
- package/assets/docs/tree/checks.doc.mjs +17 -17
- package/assets/docs/tree/ci-and-containers.doc.mjs +88 -0
- package/assets/docs/tree/cli-command.doc.mjs +142 -0
- package/assets/docs/tree/cli.doc.mjs +6 -0
- package/assets/docs/tree/codemods.doc.mjs +17 -7
- package/assets/docs/tree/commands.doc.mjs +7 -1
- package/assets/docs/tree/component-family.doc.mjs +3 -5
- package/assets/docs/tree/component-imports.doc.mjs +13 -3
- package/assets/docs/tree/components.doc.mjs +7 -1
- package/assets/docs/tree/computer-agent-guide.doc.mjs +160 -0
- package/assets/docs/tree/computer-integrations.doc.mjs +93 -0
- package/assets/docs/tree/configuration.doc.mjs +7 -3
- package/assets/docs/tree/debug-and-gap-reports.doc.mjs +41 -22
- package/assets/docs/tree/define-the-theme.doc.mjs +6 -5
- package/assets/docs/tree/describe-the-component.doc.mjs +2 -2
- package/assets/docs/tree/docs.doc.mjs +9 -3
- package/assets/docs/tree/document-the-template.doc.mjs +1 -1
- package/assets/docs/tree/document-the-theme.doc.mjs +3 -3
- package/assets/docs/tree/export-template-assets.doc.mjs +1 -1
- package/assets/docs/tree/extend-or-replace.doc.mjs +19 -9
- package/assets/docs/tree/fonts-and-assets.doc.mjs +2 -2
- package/assets/docs/tree/generate-a-palette.doc.mjs +7 -5
- package/assets/docs/tree/global-integrations.doc.mjs +124 -0
- package/assets/docs/tree/global.doc.mjs +131 -0
- package/assets/docs/tree/grade-template-with-agent.doc.mjs +5 -5
- package/assets/docs/tree/install-once.doc.mjs +105 -0
- package/assets/docs/tree/integrations.doc.mjs +13 -1
- package/assets/docs/tree/layout-spacing.doc.mjs +2 -3
- package/assets/docs/tree/layout.doc.mjs +6 -6
- package/assets/docs/tree/links.doc.mjs +6 -5
- package/assets/docs/tree/migration-setup.doc.mjs +3 -2
- package/assets/docs/tree/migration-verification.doc.mjs +0 -1
- package/assets/docs/tree/migration.doc.mjs +0 -1
- package/assets/docs/tree/monorepos.doc.mjs +84 -0
- package/assets/docs/tree/package-and-test.doc.mjs +1 -1
- package/assets/docs/tree/page-template.doc.mjs +3 -7
- package/assets/docs/tree/problems.doc.mjs +205 -0
- package/assets/docs/tree/project-global-or-both.doc.mjs +131 -0
- package/assets/docs/tree/publishing.doc.mjs +6 -6
- package/assets/docs/tree/quick-start.doc.mjs +52 -26
- package/assets/docs/tree/reference.doc.mjs +192 -0
- package/assets/docs/tree/replace-a-core-component.doc.mjs +15 -7
- package/assets/docs/tree/replace-a-core-template.doc.mjs +9 -11
- package/assets/docs/tree/scaffold.doc.mjs +1 -1
- package/assets/docs/tree/sections-and-placement.doc.mjs +9 -11
- package/assets/docs/tree/see-it-in-an-app.doc.mjs +17 -5
- package/assets/docs/tree/short-and-findable.doc.mjs +9 -8
- package/assets/docs/tree/single-component.doc.mjs +14 -6
- package/assets/docs/tree/start-a-template.doc.mjs +18 -8
- package/assets/docs/tree/subcomponent.doc.mjs +6 -6
- package/assets/docs/tree/template-assets.doc.mjs +2 -2
- package/assets/docs/tree/template-doc-overview.doc.mjs +6 -17
- package/assets/docs/tree/template-fonts.doc.mjs +1 -1
- package/assets/docs/tree/template-icons.doc.mjs +1 -1
- package/assets/docs/tree/template-images-media.doc.mjs +1 -1
- package/assets/docs/tree/template-styles.doc.mjs +2 -2
- package/assets/docs/tree/templates.doc.mjs +7 -1
- package/assets/docs/tree/test-in-an-app.doc.mjs +7 -7
- package/assets/docs/tree/test-template-in-app.doc.mjs +5 -5
- package/assets/docs/tree/themes.doc.mjs +4 -0
- package/assets/docs/tree/tokens-and-setup.doc.mjs +19 -15
- package/assets/docs/tree/troubleshooting.doc.mjs +22 -14
- package/assets/docs/tree/uninstall.doc.mjs +109 -0
- package/assets/docs/tree/updates.doc.mjs +92 -0
- package/assets/docs/tree/upgrading.doc.mjs +6 -6
- package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +14 -2
- package/assets/docs/tree/verify-packed-template.doc.mjs +3 -3
- package/assets/docs/tree/versioning.doc.mjs +9 -9
- package/assets/docs/tree/who-answers.doc.mjs +119 -0
- package/assets/docs/tree/write-the-template-file.doc.mjs +5 -5
- package/assets/docs/working-with-ai.doc.mjs +23 -9
- package/authoring/codemod/codemod.doc.mjs +7 -3
- package/authoring/config/config.doc.mjs +9 -6
- package/authoring/config/type.ts +4 -2
- package/authoring/debug/parse.d.mts +5 -5
- package/authoring/discover/discover.doc.mjs +7 -1
- package/authoring/doctypes/_schema.d.mts +8 -3
- package/authoring/doctypes/_schema.mjs +1 -0
- package/authoring/doctypes/base/graph-fields.doc.mjs +6 -4
- package/authoring/doctypes/command/command.doc.mjs +20 -12
- package/authoring/doctypes/command/type.ts +14 -0
- package/authoring/doctypes/component/component.doc.mjs +29 -26
- package/authoring/doctypes/component/type.ts +15 -5
- package/authoring/doctypes/enum/enum.doc.mjs +7 -4
- package/authoring/doctypes/function/function.doc.mjs +9 -8
- package/authoring/doctypes/hook/hook.doc.mjs +5 -4
- package/authoring/doctypes/hook/type.ts +4 -0
- package/authoring/doctypes/namespace/namespace.doc.mjs +7 -6
- package/authoring/doctypes/reference/reference.doc.mjs +12 -11
- package/authoring/doctypes/schema/schema.doc.mjs +9 -9
- package/authoring/doctypes/template/template.doc.mjs +2 -2
- package/authoring/doctypes/theme/theme.doc.mjs +2 -2
- package/authoring/gap-report/gap-report.doc.mjs +2 -2
- package/authoring/identity/identity.doc.mjs +3 -3
- package/authoring/index.d.ts +1 -0
- package/authoring/integration/integration.doc.mjs +22 -5
- package/authoring/integration/parse.test.mjs +11 -0
- package/authoring/integration/schema.d.mts +14 -3
- package/authoring/integration/schema.mjs +33 -2
- package/authoring/integration/type.ts +8 -0
- package/clients/cli/bin/astryx.mjs +20 -3
- package/clients/cli/cli-command.test.mjs +166 -0
- package/clients/cli/commands/blog.doc.mjs +1 -0
- package/clients/cli/commands/build-theme.batch-report.test.mjs +14 -2
- package/clients/cli/commands/build-theme.font-warning.test.mjs +3 -3
- package/clients/cli/commands/build-theme.mjs +25 -12
- package/clients/cli/commands/build.doc.mjs +1 -0
- package/clients/cli/commands/build.exit-codes-doc.test.mjs +4 -0
- package/clients/cli/commands/cli-postinstall.test.mjs +49 -1
- package/clients/cli/commands/component.doc.mjs +1 -0
- package/clients/cli/commands/discover.broken-integration.test.mjs +11 -7
- package/clients/cli/commands/discover.doc.mjs +9 -1
- package/clients/cli/commands/discover.mjs +144 -93
- package/clients/cli/commands/discover.no-source.test.mjs +448 -33
- package/clients/cli/commands/discover.sources.test.mjs +20 -1
- package/clients/cli/commands/docs.doc.mjs +1 -0
- package/clients/cli/commands/docs.mjs +49 -19
- package/clients/cli/commands/docs.test.mjs +2 -2
- package/clients/cli/commands/doctor-integration-components.doc.mjs +7 -3
- package/clients/cli/commands/doctor-integration-docs.doc.mjs +20 -5
- package/clients/cli/commands/doctor-integration-templates.doc.mjs +1 -0
- package/clients/cli/commands/doctor-integration-validate.doc.mjs +13 -2
- package/clients/cli/commands/doctor-integration.test.mjs +52 -4
- package/clients/cli/commands/doctor.doc.mjs +12 -2
- package/clients/cli/commands/doctor.mjs +102 -7
- package/clients/cli/commands/doctor.test.mjs +10 -4
- package/clients/cli/commands/gap-report.doc.mjs +15 -2
- package/clients/cli/commands/gap-report.mjs +24 -2
- package/clients/cli/commands/gap-report.test.mjs +79 -0
- package/clients/cli/commands/hook.doc.mjs +1 -0
- package/clients/cli/commands/init.behavior.test.mjs +5 -0
- package/clients/cli/commands/init.doc.mjs +29 -3
- package/clients/cli/commands/integration-add.doc.mjs +7 -0
- package/clients/cli/commands/integration-authoring.test.mjs +49 -3
- package/clients/cli/commands/integration-check.doc.mjs +10 -2
- package/clients/cli/commands/integration-check.test.mjs +175 -1
- package/clients/cli/commands/integration-pack.doc.mjs +8 -1
- package/clients/cli/commands/integration-verify.doc.mjs +8 -1
- package/clients/cli/commands/integration.mjs +15 -9
- package/clients/cli/commands/json-contract.test.mjs +11 -2
- package/clients/cli/commands/manifest.doc.mjs +1 -0
- package/clients/cli/commands/outside-project.test.mjs +774 -0
- package/clients/cli/commands/search.doc.mjs +1 -0
- package/clients/cli/commands/search.mjs +16 -11
- package/clients/cli/commands/search.test.mjs +429 -296
- package/clients/cli/commands/setup-nudge.test.mjs +102 -2
- package/clients/cli/commands/swizzle.doc.mjs +7 -0
- package/clients/cli/commands/swizzle.mjs +5 -3
- package/clients/cli/commands/swizzle.routing.test.mjs +19 -2
- package/clients/cli/commands/template.doc.mjs +1 -0
- package/clients/cli/commands/theme-add-lifecycle.test.mjs +3 -3
- package/clients/cli/commands/theme-add.doc.mjs +8 -1
- package/clients/cli/commands/theme-build.doc.mjs +1 -0
- package/clients/cli/commands/theme-eject.doc.mjs +1 -0
- package/clients/cli/commands/theme-list.behavior.test.mjs +6 -0
- package/clients/cli/commands/theme-list.doc.mjs +1 -0
- package/clients/cli/commands/theme-palette-generate.doc.mjs +1 -0
- package/clients/cli/commands/theme-remove.doc.mjs +7 -0
- package/clients/cli/commands/theme-targets.doc.mjs +1 -0
- package/clients/cli/commands/theme-template.doc.mjs +1 -0
- package/clients/cli/commands/theme-use.doc.mjs +7 -0
- package/clients/cli/commands/upgrade.config-ordering.test.mjs +2 -1
- package/clients/cli/commands/upgrade.doc.mjs +22 -1
- package/clients/cli/commands/upgrade.file-protection.test.mjs +3 -2
- package/clients/cli/commands/upgrade.hook-output.test.mjs +2 -1
- package/clients/cli/commands/upgrade.older-cli.test.mjs +160 -0
- package/clients/cli/index.mjs +111 -16
- package/clients/cli/lib/cli-error.mjs +4 -1
- package/clients/cli/lib/component-format.test.mjs +1 -1
- package/clients/cli/lib/define-command.mjs +2 -2
- package/clients/cli/lib/json-shim.mjs +3 -1
- package/clients/cli/lib/manifest.d.ts +9 -0
- package/clients/cli/lib/manifest.mjs +17 -1
- package/clients/cli/lib/manifest.test.mjs +25 -0
- package/foundation/agent-docs/agent-doc-state.d.mts +35 -6
- package/foundation/agent-docs/agent-doc-state.mjs +66 -6
- package/foundation/agent-docs/agent-docs.d.mts +4 -3
- package/foundation/agent-docs/agent-docs.mjs +11 -9
- package/foundation/agent-docs/computer-agent-text.d.mts +133 -0
- package/foundation/agent-docs/computer-agent-text.mjs +623 -0
- package/foundation/agent-docs/computer-agent-text.test.mjs +602 -0
- package/foundation/config/project.d.mts +35 -3
- package/foundation/config/project.mjs +145 -8
- package/foundation/config/project.test.mjs +66 -0
- package/foundation/config/theme-state.mjs +5 -4
- package/foundation/discovery/authoring-self-docs.mjs +1 -1
- package/foundation/discovery/cli-self-docs.mjs +20 -3
- package/foundation/discovery/cli-self-docs.test.mjs +3 -2
- package/foundation/discovery/component-replacement.mjs +2 -1
- package/foundation/discovery/copied-passages.d.mts +216 -0
- package/foundation/discovery/copied-passages.mjs +720 -0
- package/foundation/discovery/copied-passages.test.mjs +124 -0
- package/foundation/discovery/doc-consistency.d.mts +34 -0
- package/foundation/discovery/doc-consistency.mjs +513 -0
- package/foundation/discovery/doc-consistency.test.mjs +347 -0
- package/foundation/discovery/doc-fluff.d.mts +112 -0
- package/foundation/discovery/doc-fluff.mjs +328 -0
- package/foundation/discovery/doc-fluff.test.mjs +142 -0
- package/foundation/discovery/doc-types.d.mts +1 -1
- package/foundation/discovery/doc-types.mjs +15 -8
- package/foundation/discovery/doc-types.test.mjs +94 -2
- package/foundation/discovery/docs-discovery.d.mts +7 -0
- package/foundation/discovery/docs-discovery.mjs +26 -2
- package/foundation/discovery/project-typescript.d.mts +11 -2
- package/foundation/discovery/project-typescript.mjs +32 -4
- package/foundation/discovery/prop-drift.d.mts +26 -7
- package/foundation/discovery/prop-drift.mjs +173 -8
- package/foundation/discovery/prop-drift.test.mjs +120 -2
- package/foundation/discovery/runner-allowlist.d.mts +40 -0
- package/foundation/discovery/runner-allowlist.mjs +53 -0
- package/foundation/discovery/stray-pointers.d.mts +52 -0
- package/foundation/discovery/stray-pointers.mjs +293 -0
- package/foundation/discovery/stray-pointers.test.mjs +86 -0
- package/foundation/discovery/template-needs.mjs +5 -2
- package/foundation/discovery/theme-imports.mjs +8 -4
- package/foundation/discovery/theme-imports.test.mjs +1 -1
- package/foundation/discovery/type-text.mjs +1 -1
- package/foundation/discovery/type-text.test.mjs +1 -1
- package/foundation/doc-compiler/doc-loads.test.mjs +42 -2
- package/foundation/doc-compiler/inputs.mjs +4 -1
- package/foundation/doc-compiler/links.d.mts +32 -0
- package/foundation/doc-compiler/links.mjs +163 -26
- package/foundation/doc-compiler/links.test.mjs +97 -4
- package/foundation/doc-compiler/read.d.mts +1 -1
- package/foundation/doc-compiler/tree.mjs +30 -1
- package/foundation/doc-compiler/tree.test.mjs +8 -1
- package/foundation/env/cli-command.d.mts +83 -0
- package/foundation/env/cli-command.mjs +152 -0
- package/foundation/env/cli-command.test.mjs +129 -0
- package/foundation/env/node-version.test.mjs +15 -3
- package/foundation/env/package-manager.d.mts +93 -9
- package/foundation/env/package-manager.global.test.mjs +66 -0
- package/foundation/env/package-manager.mjs +184 -13
- package/foundation/env/package-manager.test.mjs +341 -15
- package/foundation/env/project-scope.d.mts +9 -0
- package/foundation/env/project-scope.mjs +33 -0
- package/foundation/env/search-path.d.mts +42 -0
- package/foundation/env/search-path.mjs +205 -0
- package/foundation/env/search-path.test.mjs +122 -0
- package/foundation/env/user-dirs.d.mts +39 -0
- package/foundation/env/user-dirs.mjs +93 -0
- package/foundation/env/user-dirs.test.mjs +72 -0
- package/foundation/env/user-settings.d.mts +46 -0
- package/foundation/env/user-settings.mjs +106 -0
- package/foundation/env/user-settings.test.mjs +64 -0
- package/foundation/fs/file-protection.mjs +15 -1
- package/foundation/fs/module-loader.d.mts +2 -1
- package/foundation/fs/module-loader.mjs +60 -4
- package/foundation/fs/module-loader.stdout.test.mjs +3 -2
- package/foundation/fs/module-loader.test.mjs +194 -0
- package/foundation/fs/path-compare.d.mts +33 -0
- package/foundation/fs/path-compare.mjs +73 -0
- package/foundation/fs/paths.d.mts +57 -1
- package/foundation/fs/paths.mjs +131 -3
- package/foundation/fs/paths.test.mjs +10 -1
- package/foundation/integrations/computer-integrations.d.mts +78 -0
- package/foundation/integrations/computer-integrations.mjs +316 -0
- package/foundation/integrations/computer-integrations.test.mjs +292 -0
- package/foundation/integrations/contribution-inventory.d.mts +11 -0
- package/foundation/integrations/contribution-inventory.mjs +50 -2
- package/foundation/integrations/integration-warnings.mjs +3 -2
- package/foundation/integrations/integration-warnings.test.mjs +8 -9
- package/foundation/integrations/integrations.d.mts +25 -1
- package/foundation/integrations/integrations.mjs +46 -3
- package/foundation/integrations/issue.ts +6 -0
- package/foundation/integrations/validate-contributions.d.mts +2 -0
- package/foundation/integrations/validate-contributions.mjs +41 -1
- package/foundation/release/agent-text-worker.d.mts +4 -0
- package/foundation/release/agent-text-worker.mjs +52 -0
- package/foundation/release/cache.d.mts +310 -0
- package/foundation/release/cache.mjs +1216 -0
- package/foundation/release/cache.test.mjs +920 -0
- package/foundation/release/choose.d.mts +207 -0
- package/foundation/release/choose.mjs +677 -0
- package/foundation/release/choose.test.mjs +427 -0
- package/foundation/release/core-worker.d.mts +4 -0
- package/foundation/release/core-worker.mjs +38 -0
- package/foundation/release/global-state.d.mts +259 -0
- package/foundation/release/global-state.mjs +472 -0
- package/foundation/release/global-state.test.mjs +381 -0
- package/foundation/release/handoff.d.mts +60 -0
- package/foundation/release/handoff.e2e.test.mjs +278 -0
- package/foundation/release/handoff.mjs +357 -0
- package/foundation/release/lock-lease.d.mts +23 -0
- package/foundation/release/lock-lease.mjs +80 -0
- package/foundation/release/notices.d.mts +253 -0
- package/foundation/release/notices.mjs +596 -0
- package/foundation/release/notices.test.mjs +565 -0
- package/foundation/release/npm-guard.d.mts +4 -0
- package/foundation/release/npm-guard.mjs +126 -0
- package/foundation/release/project.d.mts +141 -0
- package/foundation/release/project.mjs +466 -0
- package/foundation/release/project.test.mjs +288 -0
- package/foundation/release/refresh-worker.d.mts +4 -0
- package/foundation/release/refresh-worker.mjs +27 -0
- package/foundation/release/run-context.d.mts +47 -0
- package/foundation/release/run-context.mjs +149 -0
- package/foundation/release/update-notice-env.d.mts +28 -0
- package/foundation/release/update-notice-env.mjs +39 -0
- package/foundation/response/base.d.ts +26 -3
- package/foundation/response/error-codes.d.mts +3 -1
- package/foundation/response/error-codes.doc.mjs +12 -0
- package/foundation/response/error-codes.mjs +17 -0
- package/foundation/response/error-codes.test.mjs +2 -0
- package/foundation/response/json-contract.test.mjs +7 -2
- package/foundation/response/json.mjs +4 -1
- package/foundation/response/response-types.doc.mjs +17 -11
- package/foundation/response/response-types.doc.test.mjs +46 -0
- package/foundation/response/response.doc.mjs +3 -3
- package/foundation/xle/browser-imports.test.mjs +74 -0
- package/package.json +11 -11
- package/scripts/postinstall.mjs +24 -5
- /package/assets/codemods/transforms/{next → v0.7.2}/__tests__/migrate-list-edge-compensation-to-edge.test.mjs +0 -0
- /package/assets/codemods/transforms/{next → v0.7.2}/migrate-list-edge-compensation-to-edge.mjs +0 -0
package/api/build/_adapter.d.mts
CHANGED
|
@@ -66,6 +66,14 @@ export function isWeightsFile(file: any): file is import("./kit/weights.mjs").We
|
|
|
66
66
|
* @returns {string[]} Setup notes (empty when the template needs nothing).
|
|
67
67
|
*/
|
|
68
68
|
export function templateSetupNotes(template: PageTemplate, cwd: string): string[];
|
|
69
|
+
/**
|
|
70
|
+
* The Core a build answers from: the project's, else the release's own,
|
|
71
|
+
* installed into the per-user cache first when needed (a network install
|
|
72
|
+
* and an npm subprocess; spec AST-081 FR3). Throws as requireCoreDir does.
|
|
73
|
+
* @param {string} cwd
|
|
74
|
+
* @returns {string}
|
|
75
|
+
*/
|
|
76
|
+
export function requireBuildCoreDir(cwd: string): string;
|
|
69
77
|
export { withListingCache } from "../../foundation/fs/listing-cache.mjs";
|
|
70
78
|
/**
|
|
71
79
|
* A page template the kit can recommend starting from.
|
package/api/build/_adapter.mjs
CHANGED
|
@@ -20,7 +20,7 @@ import fs from 'node:fs';
|
|
|
20
20
|
|
|
21
21
|
import {discoverTemplates} from '../template/template.mjs';
|
|
22
22
|
import {componentKeywords} from '../search/search.mjs';
|
|
23
|
-
import {findCoreDir} from '../../foundation/fs/paths.mjs';
|
|
23
|
+
import {findCoreDir, requireCoreDir} from '../../foundation/fs/paths.mjs';
|
|
24
24
|
import {analyzeTemplateNeeds} from '../../foundation/discovery/template-needs.mjs';
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -177,3 +177,14 @@ export function templateSetupNotes(template, cwd) {
|
|
|
177
177
|
return [];
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* The Core a build answers from: the project's, else the release's own,
|
|
183
|
+
* installed into the per-user cache first when needed (a network install
|
|
184
|
+
* and an npm subprocess; spec AST-081 FR3). Throws as requireCoreDir does.
|
|
185
|
+
* @param {string} cwd
|
|
186
|
+
* @returns {string}
|
|
187
|
+
*/
|
|
188
|
+
export function requireBuildCoreDir(cwd) {
|
|
189
|
+
return requireCoreDir(cwd);
|
|
190
|
+
}
|
package/api/build/build.doc.mjs
CHANGED
|
@@ -76,6 +76,10 @@ export const doc = {
|
|
|
76
76
|
code: 'ERR_CORE_NOT_FOUND',
|
|
77
77
|
when: 'a query is given and @astryxdesign/core cannot be found from cwd',
|
|
78
78
|
},
|
|
79
|
+
{
|
|
80
|
+
code: 'ERR_VERSIONS_UNAVAILABLE',
|
|
81
|
+
when: 'a query is given outside a project, or in a project with nothing installed, and the Core of the release that answers is not beside it or cached, and cannot be installed into the per-user cache (offline, a registry without it, or an unwritable cache)',
|
|
82
|
+
},
|
|
79
83
|
],
|
|
80
84
|
examples: [
|
|
81
85
|
{label: 'Get the playbook', code: 'const r = await build();'},
|
package/api/build/kit/kit.mjs
CHANGED
|
@@ -28,11 +28,9 @@
|
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
30
|
import {search, searchedComponents} from '../../search/search.mjs';
|
|
31
|
-
import {
|
|
32
|
-
import {AstryxError} from '../../error.mjs';
|
|
33
|
-
import {ERROR_CODES} from '../../../foundation/response/error-codes.mjs';
|
|
31
|
+
import {coreDirOrThrow} from '../../error.mjs';
|
|
34
32
|
import {getResultCoverage} from '../../search/coverage.mjs';
|
|
35
|
-
import {loadComponents, loadPageTemplates, loadWeights, templateSetupNotes} from '../_adapter.mjs';
|
|
33
|
+
import {loadComponents, loadPageTemplates, loadWeights, requireBuildCoreDir, templateSetupNotes} from '../_adapter.mjs';
|
|
36
34
|
import {
|
|
37
35
|
asksForNewPage,
|
|
38
36
|
ideaKind,
|
|
@@ -260,13 +258,7 @@ export async function buildKit(query, options = {}) {
|
|
|
260
258
|
const {cwd = process.cwd(), type, limit = 60} = options;
|
|
261
259
|
// A kit is built from Core's components, hooks, and templates. An open
|
|
262
260
|
// search without core covers the docs alone, so the kit asks for core here.
|
|
263
|
-
if (type !== 'doc'
|
|
264
|
-
throw new AstryxError(
|
|
265
|
-
'Could not find @astryxdesign/core package',
|
|
266
|
-
undefined,
|
|
267
|
-
ERROR_CODES.ERR_CORE_NOT_FOUND,
|
|
268
|
-
);
|
|
269
|
-
}
|
|
261
|
+
if (type !== 'doc') coreDirOrThrow(requireBuildCoreDir, cwd);
|
|
270
262
|
// search()'s JSDoc @returns widens results to object[]; the SearchResponse
|
|
271
263
|
// shape is the contract (api/search/search.type.mjs). Cast locally rather than
|
|
272
264
|
// tightening the search @returns (a separate follow-up).
|
|
@@ -245,6 +245,37 @@ export function scopeIntegrationMember(docs: LoadedComponentDoc, owner: Ownershi
|
|
|
245
245
|
parentDoc?: string;
|
|
246
246
|
import?: string;
|
|
247
247
|
};
|
|
248
|
+
/**
|
|
249
|
+
* A search response with every inline `{@link <target>}` in a component
|
|
250
|
+
* result's description resolved to the command that opens the doc it names,
|
|
251
|
+
* as `astryx component` prints it (spec:AST-047 FR9). The response object is
|
|
252
|
+
* kept, with its results replaced.
|
|
253
|
+
* @template {{data: {results: any[]}}} R
|
|
254
|
+
* @param {R} response
|
|
255
|
+
* @param {string} cwd
|
|
256
|
+
* @returns {Promise<R>}
|
|
257
|
+
*/
|
|
258
|
+
export function linkSearchResponse<R extends {
|
|
259
|
+
data: {
|
|
260
|
+
results: any[];
|
|
261
|
+
};
|
|
262
|
+
}>(response: R, cwd: string): Promise<R>;
|
|
263
|
+
/**
|
|
264
|
+
* A component read with every inline `{@link <target>}` in its doc text
|
|
265
|
+
* resolved to the command that opens the doc it names (spec:AST-047 FR9), in
|
|
266
|
+
* the detail, its props projection, and each list entry. A Core component's
|
|
267
|
+
* links resolve against the CLI's own docs; an integration's against that
|
|
268
|
+
* integration's. A link that names no doc prints as written.
|
|
269
|
+
* @template {{type: string, package?: string, data?: any}} R
|
|
270
|
+
* @param {R} response
|
|
271
|
+
* @param {string} cwd
|
|
272
|
+
* @returns {Promise<R>}
|
|
273
|
+
*/
|
|
274
|
+
export function linkComponentResponse<R extends {
|
|
275
|
+
type: string;
|
|
276
|
+
package?: string;
|
|
277
|
+
data?: any;
|
|
278
|
+
}>(response: R, cwd: string): Promise<R>;
|
|
248
279
|
/**
|
|
249
280
|
* Internal ambiguity marker. Single-component callers still receive the same
|
|
250
281
|
* AstryxError code, message, and suggestions; batch callers can additionally
|
|
@@ -22,7 +22,7 @@ import * as fs from 'node:fs';
|
|
|
22
22
|
import * as path from 'node:path';
|
|
23
23
|
import {ERROR_CODES} from '../../foundation/response/error-codes.mjs';
|
|
24
24
|
import {
|
|
25
|
-
|
|
25
|
+
requireCoreDir as requireAnswerCoreDir,
|
|
26
26
|
discoverExternalPackages,
|
|
27
27
|
} from '../../foundation/fs/paths.mjs';
|
|
28
28
|
import {
|
|
@@ -44,7 +44,12 @@ import {Project} from '../../foundation/config/project.mjs';
|
|
|
44
44
|
import {loadComponentDoc as loadValidatedComponentDoc} from '../../foundation/discovery/component-loader.mjs';
|
|
45
45
|
import {resolveComponentReplacements} from '../../foundation/discovery/component-replacement.mjs';
|
|
46
46
|
import {searchComponents} from '../../foundation/text/string-utils.mjs';
|
|
47
|
-
import {AstryxError} from '../error.mjs';
|
|
47
|
+
import {AstryxError, coreDirOrThrow} from '../error.mjs';
|
|
48
|
+
import {
|
|
49
|
+
componentLinkProvider,
|
|
50
|
+
linkComponentDoc,
|
|
51
|
+
loadDocsCatalog,
|
|
52
|
+
} from '../docs/_adapter.mjs';
|
|
48
53
|
|
|
49
54
|
export {CORE_PACKAGE, unscopedComponentOwners};
|
|
50
55
|
|
|
@@ -116,15 +121,7 @@ export {CORE_PACKAGE, unscopedComponentOwners};
|
|
|
116
121
|
* @returns {string}
|
|
117
122
|
*/
|
|
118
123
|
export function requireCoreDir(cwd) {
|
|
119
|
-
|
|
120
|
-
if (!coreDir) {
|
|
121
|
-
throw new AstryxError(
|
|
122
|
-
'Could not find @astryxdesign/core package',
|
|
123
|
-
undefined,
|
|
124
|
-
ERROR_CODES.ERR_CORE_NOT_FOUND,
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
return coreDir;
|
|
124
|
+
return coreDirOrThrow(requireAnswerCoreDir, cwd);
|
|
128
125
|
}
|
|
129
126
|
|
|
130
127
|
/**
|
|
@@ -669,3 +666,114 @@ export function scopeIntegrationMember(docs, owner, dirName) {
|
|
|
669
666
|
if (docs.import) scoped.import = docs.import;
|
|
670
667
|
return scoped;
|
|
671
668
|
}
|
|
669
|
+
|
|
670
|
+
/**
|
|
671
|
+
* A search response with every inline `{@link <target>}` in a component
|
|
672
|
+
* result's description resolved to the command that opens the doc it names,
|
|
673
|
+
* as `astryx component` prints it (spec:AST-047 FR9). The response object is
|
|
674
|
+
* kept, with its results replaced.
|
|
675
|
+
* @template {{data: {results: any[]}}} R
|
|
676
|
+
* @param {R} response
|
|
677
|
+
* @param {string} cwd
|
|
678
|
+
* @returns {Promise<R>}
|
|
679
|
+
*/
|
|
680
|
+
export async function linkSearchResponse(response, cwd) {
|
|
681
|
+
const results = response.data.results;
|
|
682
|
+
if (
|
|
683
|
+
!results.some(
|
|
684
|
+
result =>
|
|
685
|
+
result?.domain === 'component' &&
|
|
686
|
+
typeof result.description === 'string' &&
|
|
687
|
+
result.description.includes('{@link'),
|
|
688
|
+
)
|
|
689
|
+
) {
|
|
690
|
+
return response;
|
|
691
|
+
}
|
|
692
|
+
const linked = [];
|
|
693
|
+
for (const result of results) {
|
|
694
|
+
if (
|
|
695
|
+
result?.domain !== 'component' ||
|
|
696
|
+
typeof result.description !== 'string' ||
|
|
697
|
+
!result.description.includes('{@link')
|
|
698
|
+
) {
|
|
699
|
+
linked.push(result);
|
|
700
|
+
continue;
|
|
701
|
+
}
|
|
702
|
+
const read = await linkComponentResponse(
|
|
703
|
+
{
|
|
704
|
+
type: 'component.detail',
|
|
705
|
+
package: result.package,
|
|
706
|
+
data: {description: result.description},
|
|
707
|
+
},
|
|
708
|
+
cwd,
|
|
709
|
+
);
|
|
710
|
+
linked.push({...result, description: read.data.description});
|
|
711
|
+
}
|
|
712
|
+
response.data = {...response.data, results: linked};
|
|
713
|
+
return response;
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
/**
|
|
717
|
+
* A component read with every inline `{@link <target>}` in its doc text
|
|
718
|
+
* resolved to the command that opens the doc it names (spec:AST-047 FR9), in
|
|
719
|
+
* the detail, its props projection, and each list entry. A Core component's
|
|
720
|
+
* links resolve against the CLI's own docs; an integration's against that
|
|
721
|
+
* integration's. A link that names no doc prints as written.
|
|
722
|
+
* @template {{type: string, package?: string, data?: any}} R
|
|
723
|
+
* @param {R} response
|
|
724
|
+
* @param {string} cwd
|
|
725
|
+
* @returns {Promise<R>}
|
|
726
|
+
*/
|
|
727
|
+
export async function linkComponentResponse(response, cwd) {
|
|
728
|
+
const {type} = response;
|
|
729
|
+
if (
|
|
730
|
+
type !== 'component.detail' &&
|
|
731
|
+
type !== 'component.detail.props' &&
|
|
732
|
+
type !== 'component.list'
|
|
733
|
+
) {
|
|
734
|
+
return response;
|
|
735
|
+
}
|
|
736
|
+
if (!JSON.stringify(response.data ?? null).includes('{@link')) {
|
|
737
|
+
return response;
|
|
738
|
+
}
|
|
739
|
+
const catalog = await loadDocsCatalog(cwd);
|
|
740
|
+
/** @type {Map<string, string>} */
|
|
741
|
+
const declared = new Map();
|
|
742
|
+
for (const integration of await loadIntegrationsSafely(cwd)) {
|
|
743
|
+
const id = /** @type {any} */ (integration).providerId;
|
|
744
|
+
if (typeof id === 'string') declared.set(integration.name, id);
|
|
745
|
+
}
|
|
746
|
+
/**
|
|
747
|
+
* @param {any} doc
|
|
748
|
+
* @param {string | undefined} owner
|
|
749
|
+
*/
|
|
750
|
+
const link = async (doc, owner) => {
|
|
751
|
+
if (typeof owner !== 'string') return doc;
|
|
752
|
+
try {
|
|
753
|
+
return (
|
|
754
|
+
await linkComponentDoc(
|
|
755
|
+
catalog,
|
|
756
|
+
componentLinkProvider(owner, declared.get(owner)),
|
|
757
|
+
doc,
|
|
758
|
+
)
|
|
759
|
+
).doc;
|
|
760
|
+
} catch {
|
|
761
|
+
// An owner that is not a provider id links nothing; its text reads as
|
|
762
|
+
// written.
|
|
763
|
+
return doc;
|
|
764
|
+
}
|
|
765
|
+
};
|
|
766
|
+
if (type !== 'component.list') {
|
|
767
|
+
return {...response, data: await link(response.data, response.package)};
|
|
768
|
+
}
|
|
769
|
+
/** @type {Record<string, any[]>} */
|
|
770
|
+
const components = {};
|
|
771
|
+
for (const [group, entries] of Object.entries(
|
|
772
|
+
response.data.components ?? {},
|
|
773
|
+
)) {
|
|
774
|
+
const linked = [];
|
|
775
|
+
for (const entry of entries) linked.push(await link(entry, entry?.package));
|
|
776
|
+
components[group] = linked;
|
|
777
|
+
}
|
|
778
|
+
return {...response, data: {...response.data, components}};
|
|
779
|
+
}
|
|
@@ -24,7 +24,8 @@ export const doc = {
|
|
|
24
24
|
'showcase, or example blocks. An integration component that replaces a Core ' +
|
|
25
25
|
'component (its doc sets replaces, and its package declares the CLI range that ' +
|
|
26
26
|
'turns replacement on) answers to the Core name in detail, batch, and list ' +
|
|
27
|
-
"results; use options.package '@astryxdesign/core' for the original."
|
|
27
|
+
"results; use options.package '@astryxdesign/core' for the original." +
|
|
28
|
+
" In global mode: with `cwd` outside a project, components from integrations installed next to this CLI package globally resolve too; inside a project, only the project's own integrations count. See {@link namespace:global} and {@link generic:computer-integrations}.",
|
|
28
29
|
importPath: '@astryxdesign/cli/api',
|
|
29
30
|
signature:
|
|
30
31
|
'component(name?: string | string[], options?: ComponentOptions): Promise<ComponentListResponse | ComponentBatchResponse | ComponentDetailResponse | ComponentDetailPropsResponse | ComponentDetailSourceResponse | ComponentDetailShowcaseResponse | ComponentDetailBlocksResponse>',
|
|
@@ -164,6 +165,10 @@ export const doc = {
|
|
|
164
165
|
code: 'ERR_CORE_NOT_FOUND',
|
|
165
166
|
when: '@astryxdesign/core cannot be resolved from cwd',
|
|
166
167
|
},
|
|
168
|
+
{
|
|
169
|
+
code: 'ERR_VERSIONS_UNAVAILABLE',
|
|
170
|
+
when: 'outside a project, or in a project with nothing installed, the Core of the release that answers is not beside it or cached, and cannot be installed into the per-user cache (offline, a registry without it, or an unwritable cache)',
|
|
171
|
+
},
|
|
167
172
|
{
|
|
168
173
|
code: 'ERR_UNKNOWN_CATEGORY',
|
|
169
174
|
when: 'options.category is not a string or matches no component group',
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
installedComponentPackageVersion,
|
|
33
33
|
resolveComponentReplacement,
|
|
34
34
|
unscopedComponentOwners,
|
|
35
|
+
linkComponentResponse,
|
|
35
36
|
} from './_adapter.mjs';
|
|
36
37
|
import {componentList} from './list/list.mjs';
|
|
37
38
|
import {componentDetail} from './detail/detail.mjs';
|
|
@@ -257,6 +258,23 @@ async function componentBatch(selectors, options, coreDir) {
|
|
|
257
258
|
* )>}
|
|
258
259
|
*/
|
|
259
260
|
export async function component(name, options = {}) {
|
|
261
|
+
// Every read resolves the links in the doc text it returns (spec:AST-047
|
|
262
|
+
// FR9); a batch's results are each a read of their own.
|
|
263
|
+
return /** @type {any} */ (
|
|
264
|
+
await linkComponentResponse(
|
|
265
|
+
await componentRead(name, options),
|
|
266
|
+
options.cwd ?? process.cwd(),
|
|
267
|
+
)
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* {@link component}, with each `{@link}` in its doc text as written.
|
|
273
|
+
* @param {string|string[]} [name]
|
|
274
|
+
* @param {Parameters<typeof component>[1]} [options]
|
|
275
|
+
* @returns {ReturnType<typeof component>}
|
|
276
|
+
*/
|
|
277
|
+
async function componentRead(name, options = {}) {
|
|
260
278
|
const {
|
|
261
279
|
cwd = process.cwd(),
|
|
262
280
|
list = false,
|
|
@@ -357,7 +375,7 @@ export async function component(name, options = {}) {
|
|
|
357
375
|
requireInstalledSelectorVersion(target, coreDir, loadedIntegrations);
|
|
358
376
|
}
|
|
359
377
|
if (target.name !== name || target.package !== packageScope) {
|
|
360
|
-
return
|
|
378
|
+
return componentRead(target.name, {...options, package: target.package});
|
|
361
379
|
}
|
|
362
380
|
name = target.name;
|
|
363
381
|
}
|
|
@@ -396,7 +414,10 @@ export async function component(name, options = {}) {
|
|
|
396
414
|
dirName,
|
|
397
415
|
);
|
|
398
416
|
if (replacement?.package === packageScope) {
|
|
399
|
-
return
|
|
417
|
+
return componentRead(replacement.name, {
|
|
418
|
+
...options,
|
|
419
|
+
package: packageScope,
|
|
420
|
+
});
|
|
400
421
|
}
|
|
401
422
|
}
|
|
402
423
|
const scoped = classifyScope(packageScope, {
|
|
@@ -424,8 +445,17 @@ export async function component(name, options = {}) {
|
|
|
424
445
|
// a showcase, so skip discovery entirely.
|
|
425
446
|
if (showcase) {
|
|
426
447
|
return scoped.kind === 'core'
|
|
427
|
-
? componentDetailShowcase(dirName, {
|
|
428
|
-
|
|
448
|
+
? componentDetailShowcase(dirName, {
|
|
449
|
+
cwd,
|
|
450
|
+
name,
|
|
451
|
+
ownerPackage: owner.package,
|
|
452
|
+
})
|
|
453
|
+
: componentDetailShowcase(dirName, {
|
|
454
|
+
cwd,
|
|
455
|
+
name,
|
|
456
|
+
resolve: false,
|
|
457
|
+
ownerPackage: owner.package,
|
|
458
|
+
});
|
|
429
459
|
}
|
|
430
460
|
if (blocks) {
|
|
431
461
|
return componentDetailBlocks(dirName, cwd, owner.package);
|
|
@@ -443,7 +473,12 @@ export async function component(name, options = {}) {
|
|
|
443
473
|
|
|
444
474
|
// Legacy `pkg.astryx.docs` external package.
|
|
445
475
|
if (showcase) {
|
|
446
|
-
return componentDetailShowcase(dirName, {
|
|
476
|
+
return componentDetailShowcase(dirName, {
|
|
477
|
+
cwd,
|
|
478
|
+
name,
|
|
479
|
+
packageScope,
|
|
480
|
+
ownerPackage: packageScope,
|
|
481
|
+
});
|
|
447
482
|
}
|
|
448
483
|
const extDocPath = resolveLegacyExternalDoc(scoped.ext, dirName);
|
|
449
484
|
if (extDocPath) {
|
|
@@ -484,7 +519,7 @@ export async function component(name, options = {}) {
|
|
|
484
519
|
dirName,
|
|
485
520
|
);
|
|
486
521
|
if (replacement) {
|
|
487
|
-
return
|
|
522
|
+
return componentRead(replacement.name, {
|
|
488
523
|
...options,
|
|
489
524
|
package: replacement.package,
|
|
490
525
|
});
|
|
@@ -526,11 +561,19 @@ export async function component(name, options = {}) {
|
|
|
526
561
|
) {
|
|
527
562
|
const owner = effectiveOwners[0];
|
|
528
563
|
if (source) {
|
|
529
|
-
return componentDetailSource(dirName, owner.sourcePath, {
|
|
564
|
+
return componentDetailSource(dirName, owner.sourcePath, {
|
|
565
|
+
name,
|
|
566
|
+
ownerPackage: owner.package,
|
|
567
|
+
});
|
|
530
568
|
}
|
|
531
569
|
if (showcase) {
|
|
532
570
|
// Integration components don't carry showcases — fail without scanning.
|
|
533
|
-
return componentDetailShowcase(dirName, {
|
|
571
|
+
return componentDetailShowcase(dirName, {
|
|
572
|
+
cwd,
|
|
573
|
+
name,
|
|
574
|
+
resolve: false,
|
|
575
|
+
ownerPackage: owner.package,
|
|
576
|
+
});
|
|
534
577
|
}
|
|
535
578
|
const loaded = await loadComponentDoc(owner.docPath, docOpts);
|
|
536
579
|
const docs = scopeIntegrationMember(loaded, owner, dirName);
|
|
@@ -548,7 +591,11 @@ export async function component(name, options = {}) {
|
|
|
548
591
|
);
|
|
549
592
|
}
|
|
550
593
|
if (showcase) {
|
|
551
|
-
return componentDetailShowcase(dirName, {
|
|
594
|
+
return componentDetailShowcase(dirName, {
|
|
595
|
+
cwd,
|
|
596
|
+
name,
|
|
597
|
+
ownerPackage: CORE_PACKAGE,
|
|
598
|
+
});
|
|
552
599
|
}
|
|
553
600
|
|
|
554
601
|
const resolved = await resolveUnscopedDoc(dirName, {coreDir, cwd, name});
|
|
@@ -565,7 +612,10 @@ export async function component(name, options = {}) {
|
|
|
565
612
|
const sub = scopeSubComponent(docs, dirName, coreDir);
|
|
566
613
|
if (sub) {
|
|
567
614
|
if (props)
|
|
568
|
-
return componentDetailProps(
|
|
615
|
+
return componentDetailProps(
|
|
616
|
+
{props: sub.matchingComponent.props},
|
|
617
|
+
resolved.resolvedOwnerPackage,
|
|
618
|
+
);
|
|
569
619
|
return componentDetail(
|
|
570
620
|
sub.scoped,
|
|
571
621
|
{
|