@astryxdesign/cli 0.7.2-canary.fe2c655 → 0.7.3-canary.02f5fe4
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 +216 -162
- package/api/build/_adapter.d.mts +66 -0
- package/api/build/_adapter.mjs +139 -4
- package/api/build/blocks/blocks.d.mts +92 -0
- package/api/build/blocks/blocks.mjs +528 -0
- package/api/build/blocks/blocks.test.mjs +238 -0
- package/api/build/blocks/blocks.weights.json +1 -0
- package/api/build/build.doc.mjs +4 -0
- package/api/build/build.mjs +25 -6
- package/api/build/build.type.mjs +1 -1
- package/api/build/help/help.mjs +1 -1
- package/api/build/kit/answer.d.mts +18 -0
- package/api/build/kit/answer.mjs +195 -0
- package/api/build/kit/answer.test.mjs +108 -0
- package/api/build/kit/kind.d.mts +25 -0
- package/api/build/kit/kind.mjs +170 -0
- package/api/build/kit/kit.d.mts +2 -4
- package/api/build/kit/kit.mjs +8 -406
- package/api/build/kit/rank.d.mts +3 -32
- package/api/build/kit/rank.mjs +25 -342
- package/api/build/kit/rank.test.mjs +2 -1
- package/api/build/kit/signals.d.mts +79 -0
- package/api/build/kit/signals.mjs +295 -0
- package/api/build/kit/start.d.mts +32 -0
- package/api/build/kit/start.mjs +163 -0
- package/api/build/kit/words.d.mts +72 -0
- package/api/build/kit/words.mjs +202 -0
- package/api/build/tree.d.mts +20 -0
- package/api/build/tree.mjs +53 -0
- package/api/build/tree.test.mjs +185 -0
- package/api/build/tree.weights.json +1 -0
- package/api/component/_adapter.d.mts +72 -1
- package/api/component/_adapter.mjs +251 -23
- package/api/component/component-replacement.test.mjs +1 -0
- package/api/component/component.doc.mjs +6 -1
- package/api/component/component.mjs +97 -16
- package/api/component/component.test.mjs +95 -0
- package/api/component/doc-links.test.mjs +386 -0
- package/api/component/integration-export-name.test.mjs +644 -0
- package/api/component/list/list.mjs +42 -4
- package/api/discover/_adapter.d.mts +131 -12
- package/api/discover/_adapter.mjs +520 -34
- package/api/discover/_adapter.test.mjs +641 -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 +120 -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 +76 -2
- package/api/docs/_adapter.mjs +630 -34
- package/api/docs/docs-homes.test.mjs +127 -0
- package/api/docs/docs.doc.mjs +5 -4
- package/api/docs/docs.mjs +2 -1
- package/api/docs/docs.test.mjs +39 -20
- package/api/docs/integration-tree.test.mjs +42 -20
- package/api/docs/integrationDocs.test.mjs +125 -1
- package/api/docs/list/list.mjs +12 -2
- package/api/docs/namespace-section.test.mjs +6 -6
- package/api/docs/reference-blocks.test.mjs +3 -5
- package/api/doctor/_adapter.d.mts +128 -0
- package/api/doctor/_adapter.mjs +253 -4
- package/api/doctor/doctor.d.mts +217 -0
- package/api/doctor/doctor.doc.mjs +3 -2
- package/api/doctor/doctor.mjs +691 -52
- package/api/doctor/doctor.test.mjs +267 -18
- package/api/doctor/release-checks.test.mjs +156 -0
- package/api/doctor/theme-checks.mjs +17 -4
- 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 +219 -52
- 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/hook.mjs +1 -1
- package/api/hook/list/list.d.mts +1 -1
- package/api/index.d.mts +2 -0
- package/api/index.mjs +2 -0
- 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 +45 -10
- package/api/init/init.mjs +28 -4
- package/api/init/init.test.mjs +18 -2
- package/api/init/init.type.d.mts +50 -5
- package/api/init/init.type.mjs +39 -5
- package/api/init/remove/remove.mjs +17 -4
- package/api/init/remove/remove.test.mjs +114 -2
- package/api/init/run/run.d.mts +1 -1
- package/api/init/run/run.mjs +86 -12
- 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 +53 -0
- package/api/integration/_adapter.mjs +132 -0
- package/api/integration/add-contribution.component-names.test.mjs +66 -0
- package/api/integration/add-contribution.mjs +8 -4
- package/api/integration/add-contribution.test.mjs +4 -2
- package/api/integration/authoring-checks.mjs +192 -14
- package/api/integration/authoring-checks.test.mjs +1028 -0
- package/api/integration/authoring-checks.type.d.mts +143 -0
- package/api/integration/authoring-checks.type.mjs +74 -2
- package/api/integration/check/check.d.mts +96 -0
- package/api/integration/check/check.mjs +357 -0
- package/api/integration/check/check.test.mjs +489 -0
- package/api/integration/integration-check.type.d.mts +118 -0
- package/api/integration/integration-check.type.mjs +84 -0
- package/api/integration/integrationCheck.doc.d.mts +10 -0
- package/api/integration/integrationCheck.doc.mjs +73 -0
- package/api/integration/integrationComponentConflicts.doc.mjs +45 -6
- package/api/integration/integrationDocConflicts.doc.mjs +22 -5
- package/api/integration/pack-check.mjs +486 -123
- package/api/integration/pack-check.test.mjs +817 -10
- package/api/integration/validate-integration-case-disk.test.mjs +111 -0
- package/api/integration/validate-integration-fixes.test.mjs +73 -5
- package/api/integration/validate-integration-gaps.test.mjs +1975 -0
- package/api/integration/validate-integration.d.mts +23 -2
- package/api/integration/validate-integration.mjs +358 -45
- package/api/integration/validate-integration.test.mjs +88 -8
- package/api/integration/validate-integration.type.d.mts +105 -0
- package/api/integration/validate-integration.type.mjs +79 -1
- package/api/integration/validate-unread-theme-folders.test.mjs +3 -2
- package/api/integration/validateIntegration.doc.mjs +19 -3
- package/api/search/ORDERING.md +28 -0
- package/api/search/_adapter.d.mts +91 -0
- package/api/search/_adapter.mjs +172 -0
- package/api/search/_adapter.test.mjs +173 -0
- package/api/search/_candidate-score.d.mts +40 -0
- package/api/search/_candidate-score.mjs +238 -0
- package/api/search/_cards.json +6098 -0
- package/api/search/_compound.d.mts +50 -0
- package/api/search/_compound.mjs +170 -0
- package/api/search/_doc-searcher.d.mts +4 -0
- package/api/search/_doc-searcher.mjs +23 -0
- package/api/search/_doc-searcher.test.mjs +36 -0
- package/api/search/_doc-searcher.weights.json +1 -0
- package/api/search/_doc-text.d.mts +30 -0
- package/api/search/_doc-text.mjs +87 -0
- package/api/search/_entries.d.mts +63 -0
- package/api/search/_entries.mjs +232 -0
- package/api/search/_entries.test.mjs +48 -0
- package/api/search/_features.d.mts +35 -0
- package/api/search/_features.mjs +155 -0
- package/api/search/_gather-components.d.mts +26 -0
- package/api/search/_gather-components.mjs +284 -0
- package/api/search/_gather-docs.d.mts +20 -0
- package/api/search/_gather-docs.mjs +254 -0
- package/api/search/_gather-hooks.d.mts +12 -0
- package/api/search/_gather-hooks.mjs +52 -0
- package/api/search/_gather-templates.d.mts +25 -0
- package/api/search/_gather-templates.mjs +107 -0
- package/api/search/_lexical.d.mts +135 -0
- package/api/search/_lexical.mjs +351 -0
- package/api/search/_main-searcher.d.mts +19 -0
- package/api/search/_main-searcher.mjs +115 -0
- package/api/search/_main-searcher.test.mjs +106 -0
- package/api/search/_main-searcher.weights.json +1 -0
- package/api/search/_module-doc.d.mts +32 -0
- package/api/search/_module-doc.mjs +78 -0
- package/api/search/_order.d.mts +32 -0
- package/api/search/_order.mjs +162 -0
- package/api/search/_order.test.mjs +72 -0
- package/api/search/_priority.d.mts +50 -0
- package/api/search/_priority.mjs +139 -0
- package/api/search/_query-words.d.mts +25 -0
- package/api/search/_query-words.mjs +92 -0
- package/api/search/_query.d.mts +65 -0
- package/api/search/_query.mjs +176 -0
- package/api/search/_result.d.mts +97 -0
- package/api/search/_result.mjs +150 -0
- package/api/search/_score.d.mts +60 -0
- package/api/search/_score.mjs +283 -0
- package/api/search/_synonyms.d.mts +21 -0
- package/api/search/_synonyms.mjs +67 -0
- package/api/search/_template-searcher.d.mts +4 -0
- package/api/search/_template-searcher.mjs +23 -0
- package/api/search/_template-searcher.test.mjs +40 -0
- package/api/search/_template-searcher.weights.json +1 -0
- package/api/search/_titles.d.mts +33 -0
- package/api/search/_titles.mjs +65 -0
- package/api/search/_words.d.mts +64 -0
- package/api/search/_words.mjs +157 -0
- package/api/search/search.d.mts +22 -236
- package/api/search/search.doc.mjs +14 -7
- package/api/search/search.domain-priority.test.mjs +108 -18
- package/api/search/search.integration-check.test.mjs +24 -0
- package/api/search/search.mjs +59 -1904
- package/api/search/search.test.mjs +193 -15
- package/api/search/search.type.d.mts +20 -2
- package/api/search/search.type.mjs +12 -2
- package/api/search/tree.d.mts +15 -0
- package/api/search/tree.mjs +40 -0
- package/api/search/tree.test.mjs +66 -0
- package/api/search/tree.weights.json +1 -0
- package/api/swizzle/_adapter.mjs +2 -2
- package/api/swizzle/copy/copy.mjs +29 -15
- package/api/template/template-integration.test.mjs +1 -1
- package/api/template/template.mjs +5 -1
- package/api/template/template.test.mjs +120 -3
- 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.family.test.mjs +64 -0
- package/api/theme/build/build.mjs +250 -38
- package/api/theme/build/build.packed-old-core.test.mjs +21 -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/themeBuild.doc.mjs +4 -4
- package/api/theme/themeTargets.doc.mjs +4 -0
- package/api/theme/use/use.test.mjs +1 -1
- package/api/upgrade/_adapter.d.mts +97 -11
- package/api/upgrade/_adapter.mjs +315 -32
- package/api/upgrade/registry/registry.d.mts +10 -4
- package/api/upgrade/registry/registry.mjs +33 -16
- package/api/upgrade/registry/registry.test.mjs +85 -0
- package/api/upgrade/run/cli-behind-core.test.mjs +438 -0
- package/api/upgrade/run/run.d.mts +4 -2
- package/api/upgrade/run/run.mjs +48 -4
- package/api/upgrade/run/run.test.mjs +417 -3
- package/api/upgrade/status/status.d.mts +21 -5
- package/api/upgrade/status/status.mjs +45 -8
- package/api/upgrade/upgrade.doc.mjs +16 -8
- package/api/upgrade/upgrade.mjs +18 -3
- package/api/upgrade/upgrade.test.mjs +194 -0
- package/api/upgrade/upgrade.type.d.mts +28 -3
- package/api/upgrade/upgrade.type.mjs +24 -7
- 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/v0.7.0/__tests__/validate-data-token-ownership.test.mjs +11 -0
- package/assets/codemods/transforms/v0.7.0/validate-data-token-ownership.mjs +3 -3
- package/assets/codemods/transforms/v0.7.2/__tests__/migrate-list-edge-compensation-to-edge.test.mjs +120 -0
- package/assets/codemods/transforms/v0.7.2/index.mjs +20 -0
- package/assets/codemods/transforms/v0.7.2/migrate-list-edge-compensation-to-edge.mjs +198 -0
- package/assets/discover/official-packages.json +367 -0
- package/assets/docs/README.md +10 -0
- package/assets/docs/author-a-theme.doc.mjs +5 -5
- package/assets/docs/browser-support.doc.mjs +1 -1
- package/assets/docs/getting-started.doc.mjs +26 -6
- package/assets/docs/is-my-code-good.doc.mjs +287 -0
- package/assets/docs/styling-overview.doc.mjs +1 -1
- package/assets/docs/theme.doc.dense.mjs +1 -1
- package/assets/docs/theme.doc.mjs +2 -2
- package/assets/docs/theme.doc.zh.mjs +1 -1
- package/assets/docs/tree/add-a-component.doc.mjs +22 -2
- package/assets/docs/tree/add-a-theme.doc.mjs +14 -4
- 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/api.doc.mjs +6 -0
- package/assets/docs/tree/authoring.doc.mjs +61 -0
- package/assets/docs/tree/block-template.doc.mjs +8 -20
- package/assets/docs/tree/build-the-template.doc.mjs +1 -1
- package/assets/docs/tree/building-blocks.doc.mjs +6 -2
- package/assets/docs/tree/check-the-props.doc.mjs +201 -0
- package/assets/docs/tree/check-your-docs.doc.mjs +69 -11
- package/assets/docs/tree/checks.doc.mjs +32 -24
- package/assets/docs/tree/ci-and-containers.doc.mjs +101 -0
- package/assets/docs/tree/cli-command.doc.mjs +142 -0
- package/assets/docs/tree/cli.doc.mjs +7 -1
- 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 +8 -6
- package/assets/docs/tree/component-imports.doc.mjs +21 -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 +8 -4
- package/assets/docs/tree/debug-and-gap-reports.doc.mjs +41 -22
- package/assets/docs/tree/define-the-theme.doc.mjs +7 -6
- package/assets/docs/tree/describe-the-component.doc.mjs +3 -3
- 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 +4 -4
- 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/{authoring.doc.mjs → tree/field-reference.doc.mjs} +4 -3
- package/assets/docs/tree/fonts-and-assets.doc.mjs +3 -3
- package/assets/docs/tree/generate-a-palette.doc.mjs +8 -6
- 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/help.doc.mjs +2 -2
- package/assets/docs/tree/host-entry.doc.mjs +128 -0
- package/assets/docs/tree/install-once.doc.mjs +105 -0
- 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 +7 -6
- 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 +4 -8
- 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 +54 -28
- 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 +10 -12
- 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/ship.doc.mjs +2 -2
- package/assets/docs/tree/short-and-findable.doc.mjs +9 -8
- package/assets/docs/tree/single-component.doc.mjs +15 -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-grading-rubric.doc.mjs +17 -38
- 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 +5 -1
- package/assets/docs/tree/tokens-and-setup.doc.mjs +19 -15
- package/assets/docs/tree/tokens-data.doc.mjs +2 -2
- package/assets/docs/tree/troubleshooting.doc.mjs +29 -13
- package/assets/docs/tree/type-scale.doc.mjs +3 -3
- 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 +15 -3
- package/assets/docs/tree/verify-packed-template.doc.mjs +3 -3
- package/assets/docs/tree/versioning.doc.mjs +14 -9
- package/assets/docs/tree/who-answers.doc.mjs +119 -0
- package/assets/docs/tree/write-good-templates.doc.mjs +1 -1
- package/assets/docs/tree/write-the-template-file.doc.mjs +7 -6
- package/assets/docs/use-a-theme.doc.mjs +2 -2
- package/assets/docs/use-integrations.doc.mjs +120 -0
- package/assets/docs/working-with-ai.doc.mjs +70 -13
- package/assets/templates/themes/butter/butterTheme.ts +4 -2
- package/assets/templates/themes/stone/stoneTheme.ts +4 -2
- package/assets/templates/themes/y2k/y2kTheme.ts +4 -2
- package/assets/theme.template.ts +1 -1
- 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 +30 -27
- package/authoring/doctypes/component/type.ts +21 -8
- 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 +10 -10
- package/authoring/doctypes/template/integration-template.doc.d.mts +11 -0
- package/authoring/doctypes/template/integration-template.doc.mjs +49 -0
- package/authoring/doctypes/template/parse.d.mts +6 -2
- package/authoring/doctypes/template/parse.mjs +3 -1
- package/authoring/doctypes/template/template.doc.mjs +3 -3
- package/authoring/doctypes/template/type.ts +22 -0
- 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 +2 -0
- package/authoring/integration/integration.doc.mjs +30 -6
- package/authoring/integration/parse.test.mjs +21 -0
- package/authoring/integration/schema.d.mts +16 -3
- package/authoring/integration/schema.mjs +34 -2
- package/authoring/integration/type.ts +13 -1
- package/clients/cli/bin/astryx.mjs +11 -65
- package/clients/cli/cli-command.test.mjs +166 -0
- package/clients/cli/command-result-coverage.test.mjs +6 -5
- package/clients/cli/commands/blog.doc.mjs +1 -0
- package/clients/cli/commands/build-theme.batch-report.test.mjs +17 -3
- package/clients/cli/commands/build-theme.color-scheme.test.mjs +1 -1
- package/clients/cli/commands/build-theme.font-warning.test.mjs +3 -3
- package/clients/cli/commands/build-theme.path-safety.test.mjs +224 -6
- package/clients/cli/commands/build-theme.registry.test.mjs +5 -2
- 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/{component/index.mjs → component.mjs} +37 -37
- package/clients/cli/commands/component.test.mjs +6 -6
- 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 +3 -2
- package/clients/cli/commands/docs.mjs +50 -20
- package/clients/cli/commands/docs.test.mjs +16 -16
- package/clients/cli/commands/doctor-integration-components.doc.mjs +19 -4
- 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 +22 -2
- package/clients/cli/commands/doctor-integration.test.mjs +936 -3
- package/clients/cli/commands/doctor.doc.mjs +12 -2
- package/clients/cli/commands/doctor.mjs +332 -7
- package/clients/cli/commands/doctor.test.mjs +75 -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/{hook/index.mjs → hook.mjs} +22 -22
- package/clients/cli/commands/import-hint-correctness.test.mjs +1 -1
- package/clients/cli/commands/init.behavior.test.mjs +235 -1
- package/clients/cli/commands/init.doc.mjs +55 -10
- package/clients/cli/commands/init.flag-help.test.mjs +1 -0
- package/clients/cli/commands/init.mjs +2 -2
- 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 +93 -0
- package/clients/cli/commands/integration-check.test.mjs +489 -0
- 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.doc.mjs +6 -2
- package/clients/cli/commands/integration.mjs +119 -7
- package/clients/cli/commands/json-contract.test.mjs +11 -2
- package/clients/cli/commands/manifest.doc.mjs +2 -1
- package/clients/cli/commands/manifest.mjs +67 -0
- package/clients/cli/commands/outside-project.test.mjs +874 -0
- package/clients/cli/commands/postinstall.doc.mjs +23 -0
- package/clients/cli/commands/postinstall.mjs +31 -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 +180 -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/text-json-parity.test.mjs +5 -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 +3 -2
- 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/{build-theme.mjs → theme.mjs} +27 -14
- package/clients/cli/commands/upgrade.config-ordering.test.mjs +2 -1
- package/clients/cli/commands/upgrade.doc.mjs +26 -3
- 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.mjs +9 -2
- package/clients/cli/commands/upgrade.older-cli.test.mjs +160 -0
- package/clients/cli/commands/upgrade.subfolder-path.test.mjs +97 -0
- package/clients/cli/index.mjs +156 -100
- package/clients/cli/lib/cli-error.mjs +4 -1
- package/clients/cli/lib/component-format.mjs +1 -1
- package/clients/cli/lib/component-format.test.mjs +1 -1
- package/clients/cli/lib/define-command.mjs +14 -9
- package/clients/cli/lib/exit-codes.test.mjs +5 -0
- 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 +37 -0
- package/clients/cli/lib/welcome-box.mjs +50 -0
- package/clients/cli/run.mjs +108 -0
- package/foundation/agent-docs/agent-doc-state.d.mts +67 -13
- package/foundation/agent-docs/agent-doc-state.mjs +123 -14
- package/foundation/agent-docs/agent-docs.d.mts +104 -15
- package/foundation/agent-docs/agent-docs.mjs +1028 -114
- package/foundation/agent-docs/agent-docs.path-safety.test.mjs +1239 -17
- package/foundation/agent-docs/agent-docs.test.mjs +683 -39
- package/foundation/agent-docs/computer-agent-text.d.mts +170 -0
- package/foundation/agent-docs/computer-agent-text.mjs +750 -0
- package/foundation/agent-docs/computer-agent-text.test.mjs +699 -0
- package/foundation/config/project.d.mts +35 -3
- package/foundation/config/project.mjs +243 -26
- package/foundation/config/project.test.mjs +122 -0
- package/foundation/config/theme-state.mjs +5 -4
- package/foundation/discovery/authoring-self-docs.d.mts +7 -0
- package/foundation/discovery/authoring-self-docs.mjs +17 -4
- package/foundation/discovery/authoring-self-docs.test.mjs +15 -3
- package/foundation/discovery/authoring-surface.d.mts +1 -1
- package/foundation/discovery/authoring-surface.mjs +2 -2
- package/foundation/discovery/authoring-surface.test.mjs +1 -1
- package/foundation/discovery/cli-self-docs.d.mts +2 -1
- package/foundation/discovery/cli-self-docs.mjs +22 -4
- package/foundation/discovery/cli-self-docs.test.mjs +3 -2
- package/foundation/discovery/component-discovery.d.mts +227 -10
- package/foundation/discovery/component-discovery.export-names.test.mjs +760 -0
- package/foundation/discovery/component-discovery.mjs +940 -57
- package/foundation/discovery/component-discovery.test.mjs +96 -0
- package/foundation/discovery/component-loader.d.mts +1 -1
- package/foundation/discovery/component-replacement.mjs +20 -1
- package/foundation/discovery/component-replacement.test.mjs +40 -0
- 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 +157 -0
- package/foundation/discovery/doc-types.mjs +1231 -0
- package/foundation/discovery/doc-types.test.mjs +744 -0
- package/foundation/discovery/docs-discovery.d.mts +88 -0
- package/foundation/discovery/docs-discovery.mjs +97 -3
- package/foundation/discovery/integration-doc-files.d.mts +22 -0
- package/foundation/discovery/integration-doc-files.mjs +231 -0
- package/foundation/discovery/integration-doc-files.test.mjs +246 -0
- package/foundation/discovery/module-exports.d.mts +68 -0
- package/foundation/discovery/module-exports.mjs +609 -31
- package/foundation/discovery/module-exports.test.mjs +172 -0
- package/foundation/discovery/package-tsconfig.d.mts +14 -0
- package/foundation/discovery/package-tsconfig.mjs +228 -0
- package/foundation/discovery/package-tsconfig.test.mjs +210 -0
- package/foundation/discovery/project-typescript.d.mts +32 -0
- package/foundation/discovery/project-typescript.mjs +89 -0
- package/foundation/discovery/prop-drift.d.mts +297 -0
- package/foundation/discovery/prop-drift.mjs +2428 -0
- package/foundation/discovery/prop-drift.test.mjs +2337 -0
- package/foundation/discovery/runner-allowlist.d.mts +38 -0
- package/foundation/discovery/runner-allowlist.mjs +51 -0
- package/foundation/discovery/runner-commands.d.mts +77 -0
- package/foundation/discovery/runner-commands.mjs +294 -0
- package/foundation/discovery/runner-commands.test.mjs +128 -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-adapter.mjs +92 -6
- package/foundation/discovery/template-needs.mjs +6 -46
- package/foundation/discovery/theme-discovery.mjs +147 -3
- package/foundation/discovery/theme-imports.mjs +8 -4
- package/foundation/discovery/theme-imports.test.mjs +1 -1
- package/foundation/discovery/type-match.d.mts +53 -0
- package/foundation/discovery/type-match.mjs +660 -0
- package/foundation/discovery/type-match.test.mjs +169 -0
- package/foundation/discovery/type-text.d.mts +68 -0
- package/foundation/discovery/type-text.mjs +658 -0
- package/foundation/discovery/type-text.test.mjs +196 -0
- package/foundation/discovery/unresolved-references.d.mts +62 -0
- package/foundation/discovery/unresolved-references.mjs +790 -0
- package/foundation/discovery/unresolved-references.test.mjs +567 -0
- package/foundation/doc-compiler/doc-loads.test.mjs +84 -10
- package/foundation/doc-compiler/inputs.mjs +27 -1
- package/foundation/doc-compiler/inputs.test.mjs +0 -1
- package/foundation/doc-compiler/links.d.mts +41 -5
- package/foundation/doc-compiler/links.mjs +167 -28
- package/foundation/doc-compiler/links.test.mjs +97 -4
- package/foundation/doc-compiler/read.d.mts +1 -1
- package/foundation/doc-compiler/read.mjs +59 -1
- package/foundation/doc-compiler/read.test.mjs +11 -2
- package/foundation/doc-compiler/split-topic-keywords.test.mjs +3 -2
- package/foundation/doc-compiler/tree.d.mts +32 -6
- package/foundation/doc-compiler/tree.mjs +107 -44
- package/foundation/doc-compiler/tree.test.mjs +14 -7
- 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 +122 -4
- package/foundation/fs/paths.mjs +675 -29
- package/foundation/fs/paths.test.mjs +439 -54
- package/foundation/fs/read-record.d.mts +18 -0
- package/foundation/fs/read-record.mjs +131 -0
- package/foundation/fs/read-record.test.mjs +77 -0
- package/foundation/integrations/autolink.d.mts +2 -1
- package/foundation/integrations/autolink.mjs +4 -13
- package/foundation/integrations/cli-peer-version.d.mts +36 -0
- package/foundation/integrations/cli-peer-version.mjs +132 -0
- package/foundation/integrations/cli-peer-version.test.mjs +354 -0
- package/foundation/integrations/computer-integrations.d.mts +81 -0
- package/foundation/integrations/computer-integrations.mjs +345 -0
- package/foundation/integrations/computer-integrations.test.mjs +292 -0
- package/foundation/integrations/contribution-inventory.d.mts +26 -20
- package/foundation/integrations/contribution-inventory.mjs +97 -8
- package/foundation/integrations/exports-subpaths.d.mts +57 -0
- package/foundation/integrations/exports-subpaths.mjs +113 -0
- package/foundation/integrations/integration-warnings.mjs +3 -2
- package/foundation/integrations/integration-warnings.test.mjs +8 -9
- package/foundation/integrations/integrations.d.mts +51 -1
- package/foundation/integrations/integrations.mjs +106 -4
- package/foundation/integrations/issue.ts +6 -0
- package/foundation/integrations/public-imports.d.mts +118 -0
- package/foundation/integrations/public-imports.mjs +1769 -0
- package/foundation/integrations/public-imports.test.mjs +1793 -0
- package/foundation/integrations/validate-contributions.d.mts +117 -0
- package/foundation/integrations/validate-contributions.mjs +1209 -14
- 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 +923 -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 +263 -0
- package/foundation/release/global-state.mjs +474 -0
- package/foundation/release/global-state.test.mjs +381 -0
- package/foundation/release/handoff.d.mts +79 -0
- package/foundation/release/handoff.e2e.test.mjs +278 -0
- package/foundation/release/handoff.mjs +524 -0
- package/foundation/release/lock-lease.d.mts +23 -0
- package/foundation/release/lock-lease.mjs +80 -0
- package/foundation/release/notices.d.mts +307 -0
- package/foundation/release/notices.mjs +707 -0
- package/foundation/release/notices.test.mjs +586 -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 +163 -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 +22 -11
- package/foundation/response/response-types.doc.test.mjs +46 -0
- package/foundation/response/response.doc.mjs +3 -3
- package/foundation/route/route.d.mts +285 -0
- package/foundation/route/route.mjs +324 -0
- package/foundation/route/route.test.mjs +153 -0
- package/foundation/runtime/hosted-runtime.test.mjs +403 -0
- package/foundation/runtime/locked-versions.d.mts +32 -0
- package/foundation/runtime/locked-versions.mjs +65 -0
- package/foundation/runtime/package-root.d.mts +91 -0
- package/foundation/runtime/package-root.mjs +174 -0
- package/foundation/runtime/package-set.d.mts +62 -0
- package/foundation/runtime/package-set.mjs +130 -0
- package/foundation/runtime/package-set.test.mjs +432 -0
- package/foundation/text/string-utils.d.mts +2 -1
- package/foundation/text/string-utils.mjs +16 -5
- package/foundation/text/suggest-order.d.mts +72 -0
- package/foundation/text/suggest-order.mjs +363 -0
- package/foundation/text/suggest-order.test.mjs +259 -0
- package/foundation/xle/browser-imports.test.mjs +74 -0
- package/foundation/xle/registry.mjs +4 -0
- package/foundation/xle/registry.test.mjs +28 -0
- package/host/door-conformance.test.mjs +274 -0
- package/host/index.d.ts +116 -0
- package/host/index.mjs +295 -0
- package/host/index.test.mjs +302 -0
- package/package.json +16 -11
- package/scripts/postinstall.mjs +24 -5
- package/assets/docs/tree/integrations.doc.mjs +0 -40
|
@@ -22,27 +22,62 @@ 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 {
|
|
29
29
|
CORE_PACKAGE,
|
|
30
30
|
discoverComponents,
|
|
31
|
+
docStem,
|
|
31
32
|
findComponentReadme,
|
|
32
33
|
findComponentSource,
|
|
33
34
|
findExternalComponentDoc,
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
findIntegrationComponent,
|
|
36
|
+
integrationMemberEntry,
|
|
37
|
+
isIntegrationMember,
|
|
38
|
+
recordedDocName,
|
|
36
39
|
resolveImportPath,
|
|
37
40
|
resolveIntegrationImportPath as resolveIntegrationImport,
|
|
41
|
+
unscopedComponentOwners,
|
|
38
42
|
} from '../../foundation/discovery/component-discovery.mjs';
|
|
39
43
|
import {Project} from '../../foundation/config/project.mjs';
|
|
40
44
|
import {loadComponentDoc as loadValidatedComponentDoc} from '../../foundation/discovery/component-loader.mjs';
|
|
41
45
|
import {resolveComponentReplacements} from '../../foundation/discovery/component-replacement.mjs';
|
|
42
46
|
import {searchComponents} from '../../foundation/text/string-utils.mjs';
|
|
43
|
-
import {
|
|
47
|
+
import {
|
|
48
|
+
rankComponentSuggestions,
|
|
49
|
+
synonymMatches,
|
|
50
|
+
} from '../../foundation/text/suggest-order.mjs';
|
|
51
|
+
import {AstryxError, coreDirOrThrow} from '../error.mjs';
|
|
52
|
+
import {
|
|
53
|
+
componentLinkProvider,
|
|
54
|
+
linkComponentDoc,
|
|
55
|
+
loadDocsCatalog,
|
|
56
|
+
} from '../docs/_adapter.mjs';
|
|
44
57
|
|
|
45
|
-
|
|
58
|
+
/** @type {Record<string, {synonyms?: string[]}> | undefined} */
|
|
59
|
+
let cards;
|
|
60
|
+
/**
|
|
61
|
+
* Search's component cards (each component's other names), read once.
|
|
62
|
+
* @returns {Record<string, {synonyms?: string[]}>}
|
|
63
|
+
*/
|
|
64
|
+
function searchCards() {
|
|
65
|
+
if (!cards) {
|
|
66
|
+
try {
|
|
67
|
+
cards = JSON.parse(
|
|
68
|
+
fs.readFileSync(
|
|
69
|
+
new URL('../search/_cards.json', import.meta.url),
|
|
70
|
+
'utf8',
|
|
71
|
+
),
|
|
72
|
+
);
|
|
73
|
+
} catch {
|
|
74
|
+
cards = {};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return /** @type {Record<string, {synonyms?: string[]}>} */ (cards);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export {CORE_PACKAGE, unscopedComponentOwners};
|
|
46
81
|
|
|
47
82
|
/**
|
|
48
83
|
* A loaded component doc. The shared validated loader accepts stamped and legacy
|
|
@@ -71,6 +106,8 @@ export {CORE_PACKAGE};
|
|
|
71
106
|
* @property {string|null} sourcePath
|
|
72
107
|
* @property {string|undefined} issuesUrl
|
|
73
108
|
* @property {import('../../foundation/integrations/integrations.mjs').LoadedIntegration|null} integration
|
|
109
|
+
* @property {import('../../foundation/discovery/component-discovery.mjs').NameHold} hold
|
|
110
|
+
* how the owner holds the name, for the owner rule
|
|
74
111
|
*/
|
|
75
112
|
|
|
76
113
|
/**
|
|
@@ -110,15 +147,7 @@ export {CORE_PACKAGE};
|
|
|
110
147
|
* @returns {string}
|
|
111
148
|
*/
|
|
112
149
|
export function requireCoreDir(cwd) {
|
|
113
|
-
|
|
114
|
-
if (!coreDir) {
|
|
115
|
-
throw new AstryxError(
|
|
116
|
-
'Could not find @astryxdesign/core package',
|
|
117
|
-
undefined,
|
|
118
|
-
ERROR_CODES.ERR_CORE_NOT_FOUND,
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
return coreDir;
|
|
150
|
+
return coreDirOrThrow(requireAnswerCoreDir, cwd);
|
|
122
151
|
}
|
|
123
152
|
|
|
124
153
|
/**
|
|
@@ -240,17 +269,19 @@ export function resolveOwners(coreDir, dirName, loadedIntegrations) {
|
|
|
240
269
|
sourcePath: findComponentSource(coreDir, dirName),
|
|
241
270
|
issuesUrl: undefined,
|
|
242
271
|
integration: null,
|
|
272
|
+
hold: 'core',
|
|
243
273
|
});
|
|
244
274
|
}
|
|
245
275
|
for (const integration of loadedIntegrations) {
|
|
246
|
-
const
|
|
247
|
-
if (!
|
|
276
|
+
const found = findIntegrationComponent(integration, dirName);
|
|
277
|
+
if (!found) continue;
|
|
248
278
|
owners.push({
|
|
249
279
|
package: integration.name,
|
|
250
|
-
docPath,
|
|
251
|
-
sourcePath:
|
|
280
|
+
docPath: found.docPath,
|
|
281
|
+
sourcePath: found.sourcePath,
|
|
252
282
|
issuesUrl: integration.issuesUrl,
|
|
253
283
|
integration,
|
|
284
|
+
hold: found.hold,
|
|
254
285
|
});
|
|
255
286
|
}
|
|
256
287
|
return owners;
|
|
@@ -361,6 +392,39 @@ export function resolveLegacyExternalDoc(ext, dirName) {
|
|
|
361
392
|
return extDocPath && extDocPath.endsWith('.doc.mjs') ? extDocPath : null;
|
|
362
393
|
}
|
|
363
394
|
|
|
395
|
+
/**
|
|
396
|
+
* Whether a legacy external package documents `dirName`.
|
|
397
|
+
* @param {string} cwd
|
|
398
|
+
* @param {string} dirName
|
|
399
|
+
* @returns {boolean}
|
|
400
|
+
*/
|
|
401
|
+
export function legacyExternalDocuments(cwd, dirName) {
|
|
402
|
+
return discoverExternalPackages(cwd).some(
|
|
403
|
+
ext => resolveLegacyExternalDoc(ext, dirName) != null,
|
|
404
|
+
);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/**
|
|
408
|
+
* Whether a legacy docs package keeps `dirName` over these owners, each of which
|
|
409
|
+
* holds it only as an export a doc records.
|
|
410
|
+
* @param {string} cwd
|
|
411
|
+
* @param {string} dirName
|
|
412
|
+
* @param {Array<{hold?: string, docPath?: string | null}>} owners
|
|
413
|
+
* @returns {boolean}
|
|
414
|
+
*/
|
|
415
|
+
export function legacyExternalKeeps(cwd, dirName, owners) {
|
|
416
|
+
return (
|
|
417
|
+
owners.length > 0 &&
|
|
418
|
+
owners.every(
|
|
419
|
+
owner =>
|
|
420
|
+
owner.hold === 'doc' &&
|
|
421
|
+
owner.docPath != null &&
|
|
422
|
+
docStem(owner.docPath).toLowerCase() !== dirName.toLowerCase(),
|
|
423
|
+
) &&
|
|
424
|
+
legacyExternalDocuments(cwd, dirName)
|
|
425
|
+
);
|
|
426
|
+
}
|
|
427
|
+
|
|
364
428
|
/**
|
|
365
429
|
* The core source file for `dirName` (the no-scope `--source` path reads core
|
|
366
430
|
* directly — it does NOT fall back to externals or fuzzy search).
|
|
@@ -425,12 +489,20 @@ export async function resolveUnscopedDoc(dirName, {coreDir, cwd, name}) {
|
|
|
425
489
|
resolvedOwnerPackage = CORE_PACKAGE;
|
|
426
490
|
resolvedSourcePath = findComponentSource(coreDir, resolvedName);
|
|
427
491
|
} else {
|
|
492
|
+
// How many to suggest: the near-top results, at most five and at
|
|
493
|
+
// least two. Which ones, and in what order, is the suggestion
|
|
494
|
+
// ranking's call.
|
|
428
495
|
const threshold = Math.max(topScore - 20, 1);
|
|
429
|
-
const
|
|
430
|
-
.filter(r => r.score >= threshold)
|
|
431
|
-
.
|
|
432
|
-
|
|
433
|
-
|
|
496
|
+
const count = Math.max(
|
|
497
|
+
results.filter(r => r.score >= threshold).slice(0, 5).length,
|
|
498
|
+
Math.min(2, results.length),
|
|
499
|
+
);
|
|
500
|
+
const candidates = rankComponentSuggestions(
|
|
501
|
+
dirName,
|
|
502
|
+
results,
|
|
503
|
+
Object.values(components).flat(),
|
|
504
|
+
synonymMatches(dirName, searchCards()),
|
|
505
|
+
).slice(0, count);
|
|
434
506
|
throw new AstryxError(
|
|
435
507
|
`No component named "${name}"`,
|
|
436
508
|
candidates.map(c => ({name: c.name, reason: c.reason})),
|
|
@@ -583,3 +655,159 @@ export function scopeSubComponent(docs, dirName, coreDir) {
|
|
|
583
655
|
|
|
584
656
|
return {scoped, matchingComponent};
|
|
585
657
|
}
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* The doc an integration owner shows for `dirName`: when `dirName` is a member
|
|
661
|
+
* its family doc lists under its own name (`AcmeSlide` in an `AcmeCarousel`
|
|
662
|
+
* doc), the doc scoped to that member as {@link scopeSubComponent} scopes
|
|
663
|
+
* Core's, keeping the import the family doc states; otherwise `docs` itself.
|
|
664
|
+
* @param {LoadedComponentDoc} docs
|
|
665
|
+
* @param {OwnershipSubject} owner
|
|
666
|
+
* @param {string} dirName
|
|
667
|
+
* @returns {LoadedComponentDoc & {parentDoc?: string, import?: string}}
|
|
668
|
+
*/
|
|
669
|
+
export function scopeIntegrationMember(docs, owner, dirName) {
|
|
670
|
+
const record = {name: dirName, docPath: owner.docPath ?? null};
|
|
671
|
+
if (!isIntegrationMember(record)) return docs;
|
|
672
|
+
const entry = integrationMemberEntry(docs, record);
|
|
673
|
+
// The files list the member but the doc this process loaded has no entry
|
|
674
|
+
// for it (the doc changed after it loaded): never answer with the family.
|
|
675
|
+
if (entry == null) {
|
|
676
|
+
throw new AstryxError(
|
|
677
|
+
`No component named "${dirName}": its family doc changed after this process loaded it.`,
|
|
678
|
+
undefined,
|
|
679
|
+
ERROR_CODES.ERR_UNKNOWN_COMPONENT,
|
|
680
|
+
);
|
|
681
|
+
}
|
|
682
|
+
// Built from the entry, as scopeSubComponent scopes Core's, so a member that
|
|
683
|
+
// shares the doc's own `name` is scoped too.
|
|
684
|
+
/** @type {LoadedComponentDoc & {parentDoc?: string, import?: string}} */
|
|
685
|
+
const scoped = {
|
|
686
|
+
name: dirName,
|
|
687
|
+
description: entry.description,
|
|
688
|
+
props: entry.props,
|
|
689
|
+
components: [entry],
|
|
690
|
+
// The name the family doc opens under, for every member.
|
|
691
|
+
parentDoc:
|
|
692
|
+
owner.integration && record.docPath
|
|
693
|
+
? recordedDocName(owner.integration, record.docPath)
|
|
694
|
+
: docs.name === dirName && record.docPath
|
|
695
|
+
? docStem(record.docPath)
|
|
696
|
+
: docs.name,
|
|
697
|
+
};
|
|
698
|
+
if (docs.usage) scoped.usage = docs.usage;
|
|
699
|
+
if (docs.theming) scoped.theming = docs.theming;
|
|
700
|
+
if (docs.import) scoped.import = docs.import;
|
|
701
|
+
return scoped;
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
/**
|
|
705
|
+
* A search response with every inline `{@link <target>}` in a component
|
|
706
|
+
* result's description resolved to the command that opens the doc it names,
|
|
707
|
+
* as `astryx component` prints it (spec:AST-047 FR9). The response object is
|
|
708
|
+
* kept, with its results replaced.
|
|
709
|
+
* @template {{data: {results: any[]}}} R
|
|
710
|
+
* @param {R} response
|
|
711
|
+
* @param {string} cwd
|
|
712
|
+
* @returns {Promise<R>}
|
|
713
|
+
*/
|
|
714
|
+
export async function linkSearchResponse(response, cwd) {
|
|
715
|
+
const results = response.data.results;
|
|
716
|
+
if (
|
|
717
|
+
!results.some(
|
|
718
|
+
result =>
|
|
719
|
+
result?.domain === 'component' &&
|
|
720
|
+
typeof result.description === 'string' &&
|
|
721
|
+
result.description.includes('{@link'),
|
|
722
|
+
)
|
|
723
|
+
) {
|
|
724
|
+
return response;
|
|
725
|
+
}
|
|
726
|
+
const linked = [];
|
|
727
|
+
for (const result of results) {
|
|
728
|
+
if (
|
|
729
|
+
result?.domain !== 'component' ||
|
|
730
|
+
typeof result.description !== 'string' ||
|
|
731
|
+
!result.description.includes('{@link')
|
|
732
|
+
) {
|
|
733
|
+
linked.push(result);
|
|
734
|
+
continue;
|
|
735
|
+
}
|
|
736
|
+
const read = await linkComponentResponse(
|
|
737
|
+
{
|
|
738
|
+
type: 'component.detail',
|
|
739
|
+
package: result.package,
|
|
740
|
+
data: {description: result.description},
|
|
741
|
+
},
|
|
742
|
+
cwd,
|
|
743
|
+
);
|
|
744
|
+
linked.push({...result, description: read.data.description});
|
|
745
|
+
}
|
|
746
|
+
response.data = {...response.data, results: linked};
|
|
747
|
+
return response;
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* A component read with every inline `{@link <target>}` in its doc text
|
|
752
|
+
* resolved to the command that opens the doc it names (spec:AST-047 FR9), in
|
|
753
|
+
* the detail, its props projection, and each list entry. A Core component's
|
|
754
|
+
* links resolve against the CLI's own docs; an integration's against that
|
|
755
|
+
* integration's. A link that names no doc prints as written.
|
|
756
|
+
* @template {{type: string, package?: string, data?: any}} R
|
|
757
|
+
* @param {R} response
|
|
758
|
+
* @param {string} cwd
|
|
759
|
+
* @returns {Promise<R>}
|
|
760
|
+
*/
|
|
761
|
+
export async function linkComponentResponse(response, cwd) {
|
|
762
|
+
const {type} = response;
|
|
763
|
+
if (
|
|
764
|
+
type !== 'component.detail' &&
|
|
765
|
+
type !== 'component.detail.props' &&
|
|
766
|
+
type !== 'component.list'
|
|
767
|
+
) {
|
|
768
|
+
return response;
|
|
769
|
+
}
|
|
770
|
+
if (!JSON.stringify(response.data ?? null).includes('{@link')) {
|
|
771
|
+
return response;
|
|
772
|
+
}
|
|
773
|
+
const catalog = await loadDocsCatalog(cwd);
|
|
774
|
+
/** @type {Map<string, string>} */
|
|
775
|
+
const declared = new Map();
|
|
776
|
+
for (const integration of await loadIntegrationsSafely(cwd)) {
|
|
777
|
+
const id = /** @type {any} */ (integration).providerId;
|
|
778
|
+
if (typeof id === 'string') declared.set(integration.name, id);
|
|
779
|
+
}
|
|
780
|
+
/**
|
|
781
|
+
* @param {any} doc
|
|
782
|
+
* @param {string | undefined} owner
|
|
783
|
+
*/
|
|
784
|
+
const link = async (doc, owner) => {
|
|
785
|
+
if (typeof owner !== 'string') return doc;
|
|
786
|
+
try {
|
|
787
|
+
return (
|
|
788
|
+
await linkComponentDoc(
|
|
789
|
+
catalog,
|
|
790
|
+
componentLinkProvider(owner, declared.get(owner)),
|
|
791
|
+
doc,
|
|
792
|
+
)
|
|
793
|
+
).doc;
|
|
794
|
+
} catch {
|
|
795
|
+
// An owner that is not a provider id links nothing; its text reads as
|
|
796
|
+
// written.
|
|
797
|
+
return doc;
|
|
798
|
+
}
|
|
799
|
+
};
|
|
800
|
+
if (type !== 'component.list') {
|
|
801
|
+
return {...response, data: await link(response.data, response.package)};
|
|
802
|
+
}
|
|
803
|
+
/** @type {Record<string, any[]>} */
|
|
804
|
+
const components = {};
|
|
805
|
+
for (const [group, entries] of Object.entries(
|
|
806
|
+
response.data.components ?? {},
|
|
807
|
+
)) {
|
|
808
|
+
const linked = [];
|
|
809
|
+
for (const entry of entries) linked.push(await link(entry, entry?.package));
|
|
810
|
+
components[group] = linked;
|
|
811
|
+
}
|
|
812
|
+
return {...response, data: {...response.data, components}};
|
|
813
|
+
}
|
|
@@ -64,6 +64,7 @@ function writeIntegration(name, components, peers) {
|
|
|
64
64
|
type: 'component',
|
|
65
65
|
name: componentName,
|
|
66
66
|
displayName: componentName,
|
|
67
|
+
import: `${name}/components/${componentName}`,
|
|
67
68
|
...(replaces ? {replaces} : {}),
|
|
68
69
|
keywords: ['acme'],
|
|
69
70
|
usage: {description: `${componentName} for Acme apps.`},
|
|
@@ -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',
|
|
@@ -19,9 +19,11 @@ import {
|
|
|
19
19
|
requireCoreDir,
|
|
20
20
|
loadIntegrationsSafely,
|
|
21
21
|
resolveOwners,
|
|
22
|
+
scopeIntegrationMember,
|
|
22
23
|
classifyScope,
|
|
23
24
|
assertUnambiguousOwners,
|
|
24
25
|
resolveLegacyExternalDoc,
|
|
26
|
+
legacyExternalKeeps,
|
|
25
27
|
resolveCoreSourcePath,
|
|
26
28
|
resolveUnscopedDoc,
|
|
27
29
|
loadComponentDoc,
|
|
@@ -29,6 +31,8 @@ import {
|
|
|
29
31
|
ComponentAmbiguityError,
|
|
30
32
|
installedComponentPackageVersion,
|
|
31
33
|
resolveComponentReplacement,
|
|
34
|
+
unscopedComponentOwners,
|
|
35
|
+
linkComponentResponse,
|
|
32
36
|
} from './_adapter.mjs';
|
|
33
37
|
import {componentList} from './list/list.mjs';
|
|
34
38
|
import {componentDetail} from './detail/detail.mjs';
|
|
@@ -254,6 +258,23 @@ async function componentBatch(selectors, options, coreDir) {
|
|
|
254
258
|
* )>}
|
|
255
259
|
*/
|
|
256
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 = {}) {
|
|
257
278
|
const {
|
|
258
279
|
cwd = process.cwd(),
|
|
259
280
|
list = false,
|
|
@@ -272,7 +293,7 @@ export async function component(name, options = {}) {
|
|
|
272
293
|
const selectorList = Array.isArray(name) ? name : null;
|
|
273
294
|
const noName = selectorList == null && !name;
|
|
274
295
|
|
|
275
|
-
// Default detail level mirrors the CLI (see commands/component
|
|
296
|
+
// Default detail level mirrors the CLI (see commands/component.mjs):
|
|
276
297
|
// single-component views default to 'full', list-style views (--list,
|
|
277
298
|
// --category, or no name) default to 'brief' (scannable name lists).
|
|
278
299
|
// An explicit array remains a batch even when it is empty or a caller also
|
|
@@ -354,7 +375,7 @@ export async function component(name, options = {}) {
|
|
|
354
375
|
requireInstalledSelectorVersion(target, coreDir, loadedIntegrations);
|
|
355
376
|
}
|
|
356
377
|
if (target.name !== name || target.package !== packageScope) {
|
|
357
|
-
return
|
|
378
|
+
return componentRead(target.name, {...options, package: target.package});
|
|
358
379
|
}
|
|
359
380
|
name = target.name;
|
|
360
381
|
}
|
|
@@ -393,7 +414,10 @@ export async function component(name, options = {}) {
|
|
|
393
414
|
dirName,
|
|
394
415
|
);
|
|
395
416
|
if (replacement?.package === packageScope) {
|
|
396
|
-
return
|
|
417
|
+
return componentRead(replacement.name, {
|
|
418
|
+
...options,
|
|
419
|
+
package: packageScope,
|
|
420
|
+
});
|
|
397
421
|
}
|
|
398
422
|
}
|
|
399
423
|
const scoped = classifyScope(packageScope, {
|
|
@@ -421,20 +445,54 @@ export async function component(name, options = {}) {
|
|
|
421
445
|
// a showcase, so skip discovery entirely.
|
|
422
446
|
if (showcase) {
|
|
423
447
|
return scoped.kind === 'core'
|
|
424
|
-
? componentDetailShowcase(dirName, {
|
|
425
|
-
|
|
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
|
+
});
|
|
426
459
|
}
|
|
427
460
|
if (blocks) {
|
|
428
461
|
return componentDetailBlocks(dirName, cwd, owner.package);
|
|
429
462
|
}
|
|
430
|
-
const
|
|
463
|
+
const loaded = await loadComponentDoc(owner.docPath, docOpts);
|
|
464
|
+
// A family member reads as that member, scoped the way the unscoped
|
|
465
|
+
// lookup scopes it: an integration member by its own entry, a Core
|
|
466
|
+
// sub-component (HStack in the Stack doc) by scopeSubComponent.
|
|
467
|
+
const sub =
|
|
468
|
+
scoped.kind === 'core'
|
|
469
|
+
? scopeSubComponent(loaded, dirName, coreDir)
|
|
470
|
+
: null;
|
|
471
|
+
if (sub) {
|
|
472
|
+
if (props) {
|
|
473
|
+
return componentDetailProps(
|
|
474
|
+
{props: sub.matchingComponent.props},
|
|
475
|
+
owner.package,
|
|
476
|
+
);
|
|
477
|
+
}
|
|
478
|
+
return componentDetail(sub.scoped, owner, dirName, coreDir);
|
|
479
|
+
}
|
|
480
|
+
const docs =
|
|
481
|
+
scoped.kind === 'integration'
|
|
482
|
+
? scopeIntegrationMember(loaded, owner, dirName)
|
|
483
|
+
: loaded;
|
|
431
484
|
if (props) return componentDetailProps(docs, owner.package);
|
|
432
485
|
return componentDetail(docs, owner, dirName, coreDir);
|
|
433
486
|
}
|
|
434
487
|
|
|
435
488
|
// Legacy `pkg.astryx.docs` external package.
|
|
436
489
|
if (showcase) {
|
|
437
|
-
return componentDetailShowcase(dirName, {
|
|
490
|
+
return componentDetailShowcase(dirName, {
|
|
491
|
+
cwd,
|
|
492
|
+
name,
|
|
493
|
+
packageScope,
|
|
494
|
+
ownerPackage: packageScope,
|
|
495
|
+
});
|
|
438
496
|
}
|
|
439
497
|
const extDocPath = resolveLegacyExternalDoc(scoped.ext, dirName);
|
|
440
498
|
if (extDocPath) {
|
|
@@ -475,18 +533,20 @@ export async function component(name, options = {}) {
|
|
|
475
533
|
dirName,
|
|
476
534
|
);
|
|
477
535
|
if (replacement) {
|
|
478
|
-
return
|
|
536
|
+
return componentRead(replacement.name, {
|
|
479
537
|
...options,
|
|
480
538
|
package: replacement.package,
|
|
481
539
|
});
|
|
482
540
|
}
|
|
483
541
|
|
|
542
|
+
// The owner rule runs first, over valid and invalid owners alike.
|
|
543
|
+
const ruled = unscopedComponentOwners(owners);
|
|
484
544
|
// Invalid integration metadata does not create ambiguity against a valid
|
|
485
|
-
// owner. Keep
|
|
545
|
+
// owner. Keep ruled owners only when no doc owner is valid, so an integration-
|
|
486
546
|
// only component still exposes its source and returns ERR_INVALID_DOC for
|
|
487
547
|
// detail instead of degrading to an unrelated unknown-component error.
|
|
488
548
|
const validOwners = [];
|
|
489
|
-
for (const owner of
|
|
549
|
+
for (const owner of ruled) {
|
|
490
550
|
if (owner.package === CORE_PACKAGE) {
|
|
491
551
|
validOwners.push(owner);
|
|
492
552
|
continue;
|
|
@@ -498,7 +558,12 @@ export async function component(name, options = {}) {
|
|
|
498
558
|
// Project/Doctor report invalid metadata; it is not an effective owner.
|
|
499
559
|
}
|
|
500
560
|
}
|
|
501
|
-
const
|
|
561
|
+
const loadable = validOwners.length > 0 ? validOwners : ruled;
|
|
562
|
+
// A legacy docs package's exact doc keeps its name over an export name a doc
|
|
563
|
+
// records, as Core and file-named owners do.
|
|
564
|
+
const effectiveOwners = legacyExternalKeeps(cwd, dirName, loadable)
|
|
565
|
+
? []
|
|
566
|
+
: loadable;
|
|
502
567
|
|
|
503
568
|
// ── Ambiguity: owned by MORE THAN ONE valid package, no --package ──
|
|
504
569
|
assertUnambiguousOwners(effectiveOwners, dirName);
|
|
@@ -510,13 +575,22 @@ export async function component(name, options = {}) {
|
|
|
510
575
|
) {
|
|
511
576
|
const owner = effectiveOwners[0];
|
|
512
577
|
if (source) {
|
|
513
|
-
return componentDetailSource(dirName, owner.sourcePath, {
|
|
578
|
+
return componentDetailSource(dirName, owner.sourcePath, {
|
|
579
|
+
name,
|
|
580
|
+
ownerPackage: owner.package,
|
|
581
|
+
});
|
|
514
582
|
}
|
|
515
583
|
if (showcase) {
|
|
516
584
|
// Integration components don't carry showcases — fail without scanning.
|
|
517
|
-
return componentDetailShowcase(dirName, {
|
|
585
|
+
return componentDetailShowcase(dirName, {
|
|
586
|
+
cwd,
|
|
587
|
+
name,
|
|
588
|
+
resolve: false,
|
|
589
|
+
ownerPackage: owner.package,
|
|
590
|
+
});
|
|
518
591
|
}
|
|
519
|
-
const
|
|
592
|
+
const loaded = await loadComponentDoc(owner.docPath, docOpts);
|
|
593
|
+
const docs = scopeIntegrationMember(loaded, owner, dirName);
|
|
520
594
|
if (props) return componentDetailProps(docs, owner.package);
|
|
521
595
|
return componentDetail(docs, owner, dirName, coreDir);
|
|
522
596
|
}
|
|
@@ -531,7 +605,11 @@ export async function component(name, options = {}) {
|
|
|
531
605
|
);
|
|
532
606
|
}
|
|
533
607
|
if (showcase) {
|
|
534
|
-
return componentDetailShowcase(dirName, {
|
|
608
|
+
return componentDetailShowcase(dirName, {
|
|
609
|
+
cwd,
|
|
610
|
+
name,
|
|
611
|
+
ownerPackage: CORE_PACKAGE,
|
|
612
|
+
});
|
|
535
613
|
}
|
|
536
614
|
|
|
537
615
|
const resolved = await resolveUnscopedDoc(dirName, {coreDir, cwd, name});
|
|
@@ -548,7 +626,10 @@ export async function component(name, options = {}) {
|
|
|
548
626
|
const sub = scopeSubComponent(docs, dirName, coreDir);
|
|
549
627
|
if (sub) {
|
|
550
628
|
if (props)
|
|
551
|
-
return componentDetailProps(
|
|
629
|
+
return componentDetailProps(
|
|
630
|
+
{props: sub.matchingComponent.props},
|
|
631
|
+
resolved.resolvedOwnerPackage,
|
|
632
|
+
);
|
|
552
633
|
return componentDetail(
|
|
553
634
|
sub.scoped,
|
|
554
635
|
{
|