@astryxdesign/cli 0.6.3-canary.db4e378 → 0.6.3-canary.db52d98
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/README.md +38 -15
- package/api/blog/blog.doc.mjs +1 -0
- package/api/build/_adapter.d.mts +50 -0
- package/api/build/_adapter.mjs +60 -0
- package/api/build/build.doc.mjs +14 -7
- package/api/build/build.test.mjs +184 -6
- package/api/build/build.type.d.mts +57 -2
- package/api/build/build.type.mjs +30 -7
- package/api/build/help/help.d.mts +4 -0
- package/api/build/help/help.mjs +24 -11
- package/api/build/kit/kit.d.mts +4 -1
- package/api/build/kit/kit.mjs +165 -49
- package/api/build/kit/rank.d.mts +44 -0
- package/api/build/kit/rank.mjs +432 -0
- package/api/build/kit/rank.test.mjs +196 -0
- package/api/component/_adapter.d.mts +6 -12
- package/api/component/_adapter.mjs +20 -10
- package/api/component/component.doc.mjs +1 -0
- package/api/component/component.mjs +60 -12
- package/api/component/list/list.mjs +3 -2
- package/api/discover/discover.doc.mjs +1 -0
- package/api/docs/_adapter.d.mts +252 -34
- package/api/docs/_adapter.mjs +923 -132
- package/api/docs/detail/detail.mjs +11 -3
- package/api/docs/detail/section/section.mjs +24 -13
- package/api/docs/detail/section/section.test.mjs +15 -6
- package/api/docs/docs.d.mts +5 -3
- package/api/docs/docs.doc.mjs +39 -17
- package/api/docs/docs.mjs +44 -8
- package/api/docs/docs.test.mjs +158 -4
- package/api/docs/docs.type.d.mts +181 -2
- package/api/docs/docs.type.mjs +117 -3
- package/api/docs/index/index.mjs +11 -3
- package/api/docs/index/index.test.mjs +1 -1
- package/api/docs/integration-tree.test.mjs +555 -0
- package/api/docs/integrationDocs.test.mjs +14 -14
- package/api/docs/list/list.mjs +28 -12
- package/api/docs/node/node.d.mts +43 -0
- package/api/docs/node/node.mjs +192 -0
- package/api/docs/reference-blocks.test.mjs +406 -0
- package/api/doctor/doctor.d.mts +54 -4
- package/api/doctor/doctor.doc.mjs +1 -0
- package/api/doctor/doctor.mjs +331 -16
- package/api/doctor/doctor.test.mjs +420 -7
- package/api/gap-report/gap-report.doc.mjs +1 -0
- package/api/hook/_adapter.mjs +19 -5
- package/api/hook/hook.doc.mjs +1 -0
- package/api/hook/list/list.d.mts +1 -1
- package/api/hook/list/list.mjs +69 -17
- package/api/index.d.mts +1 -1
- package/api/index.mjs +1 -0
- package/api/init/init.doc.mjs +2 -1
- package/api/integration/add-contribution.d.mts +2 -1
- package/api/integration/add-contribution.mjs +114 -12
- package/api/integration/add-contribution.test.mjs +174 -3
- package/api/integration/add-theme.mjs +34 -64
- package/api/integration/add-theme.test.mjs +105 -21
- package/api/integration/authoring-checks.mjs +138 -28
- package/api/integration/authoring-checks.test.mjs +179 -7
- package/api/integration/authoring-checks.type.mjs +6 -1
- package/api/integration/integration-authoring.type.d.mts +2 -0
- package/api/integration/integration-authoring.type.mjs +2 -0
- package/api/integration/integration-block-exports.test.mjs +10 -6
- package/api/integration/integrationAdd.doc.mjs +7 -0
- package/api/integration/integrationAddAgentDoc.doc.mjs +1 -0
- package/api/integration/integrationAddCodemod.doc.mjs +1 -0
- package/api/integration/integrationAddComponent.doc.mjs +1 -0
- package/api/integration/integrationAddDoc.doc.mjs +8 -1
- package/api/integration/integrationAddTemplate.doc.mjs +1 -0
- package/api/integration/integrationAddTheme.doc.mjs +6 -5
- package/api/integration/integrationComponentConflicts.doc.mjs +1 -0
- package/api/integration/integrationDocConflicts.doc.mjs +2 -1
- package/api/integration/integrationPackCheck.doc.mjs +2 -1
- package/api/integration/integrationTemplateConflicts.doc.d.mts +3 -0
- package/api/integration/integrationTemplateConflicts.doc.mjs +4 -0
- package/api/integration/pack-check.mjs +34 -0
- package/api/integration/pack-check.test.mjs +138 -47
- package/api/integration/pack-check.type.d.mts +26 -2
- package/api/integration/pack-check.type.mjs +14 -1
- package/api/integration/summarizeIssues.doc.mjs +1 -0
- package/api/integration/template-conflict-compatibility.test.mjs +73 -0
- package/api/integration/validate-integration-fixes.test.mjs +1389 -0
- package/api/integration/validate-integration.mjs +50 -102
- package/api/integration/validate-integration.test.mjs +88 -26
- package/api/integration/validate-unread-theme-folders.test.mjs +110 -0
- package/api/integration/validateIntegration.doc.mjs +2 -1
- package/api/json/assertResponse.doc.mjs +1 -0
- package/api/json/index.ts +2 -0
- package/api/json/isError.doc.mjs +1 -0
- package/api/json/parseResponse.doc.mjs +1 -0
- package/api/layout/_adapter.mjs +20 -5
- package/api/layout/layoutCheck.doc.mjs +1 -0
- package/api/layout/layoutExpand.doc.mjs +1 -0
- package/api/layout/layoutGrammar.doc.mjs +1 -0
- package/api/search/search.d.mts +59 -1
- package/api/search/search.doc.mjs +5 -3
- package/api/search/search.mjs +458 -77
- package/api/search/search.test.mjs +91 -2
- package/api/search/search.type.d.mts +13 -1
- package/api/search/search.type.mjs +4 -1
- package/api/swizzle/swizzle.doc.mjs +1 -0
- package/api/template/list/list.mjs +1 -0
- package/api/template/table-floating-bulk-actions.test.mjs +66 -0
- package/api/template/template-integration.test.mjs +1072 -3
- package/api/template/template-suffix.test.mjs +41 -21
- package/api/template/template.doc.mjs +28 -7
- package/api/template/template.mjs +45 -8
- package/api/template/template.type.d.mts +6 -8
- package/api/template/template.type.mjs +3 -2
- package/api/theme/_adapter.d.mts +2 -3
- package/api/theme/_adapter.mjs +4 -5
- package/api/theme/add/add.binary.test.mjs +10 -17
- package/api/theme/add/add.test.mjs +14 -1
- package/api/theme/generateTonalPalette.doc.mjs +1 -0
- package/api/theme/integration-themes.test.mjs +39 -28
- package/api/theme/list/list.test.mjs +19 -20
- package/api/theme/listThemes.doc.mjs +6 -5
- package/api/theme/template/template.test.mjs +5 -0
- package/api/theme/themeAdd.doc.mjs +4 -3
- package/api/theme/themeBuild.doc.mjs +1 -0
- package/api/theme/themeList.doc.mjs +6 -3
- package/api/theme/themeListAvailable.doc.mjs +5 -3
- package/api/theme/themePaletteGenerate.doc.mjs +1 -0
- package/api/theme/themeTargets.doc.mjs +1 -0
- package/api/theme/themeTemplate.doc.mjs +2 -1
- package/api/upgrade/_adapter.d.mts +32 -5
- package/api/upgrade/_adapter.mjs +97 -69
- package/api/upgrade/provider-agreement.test.mjs +152 -0
- package/api/upgrade/run/run.mjs +356 -59
- package/api/upgrade/upgrade.doc.mjs +6 -1
- package/api/upgrade/upgrade.type.d.mts +34 -0
- package/api/upgrade/upgrade.type.mjs +15 -0
- package/assets/codemods/__tests__/runner.test.mjs +330 -8
- package/assets/codemods/integration-discovery.mjs +8 -2
- package/assets/codemods/integration-discovery.test.mjs +15 -0
- package/assets/codemods/integration-runner.mjs +56 -4
- package/assets/codemods/integration-runner.protection.test.mjs +153 -0
- package/assets/codemods/run-codemod.mjs +177 -34
- package/assets/codemods/runner.mjs +350 -102
- package/assets/codemods/transforms/next/__tests__/migrate-native-picker-to-presentation.test.mjs +63 -0
- package/assets/codemods/transforms/next/__tests__/migrate-theme-catalog-to-descriptors.test.mjs +220 -0
- package/assets/codemods/transforms/next/index.mjs +19 -1
- package/assets/codemods/transforms/next/migrate-native-picker-to-presentation.mjs +148 -0
- package/assets/codemods/transforms/next/migrate-theme-catalog-to-descriptors.mjs +141 -0
- package/assets/docs/getting-started.doc.mjs +2 -2
- package/assets/docs/layout.doc.dense.mjs +2 -2
- package/assets/docs/layout.doc.mjs +1 -1
- package/assets/docs/principles.doc.mjs +6 -6
- package/assets/docs/styling-libraries.doc.mjs +3 -3
- package/assets/docs/styling.doc.mjs +4 -4
- package/assets/docs/theme.doc.mjs +5 -5
- package/assets/docs/tokens.doc.mjs +1 -1
- package/assets/docs/tree/api.doc.mjs +30 -0
- package/assets/docs/tree/cli.doc.mjs +23 -0
- package/assets/docs/tree/commands.doc.mjs +25 -0
- package/assets/docs/{cli-integrations.doc.mjs → tree/integrations.doc.mjs} +66 -38
- package/assets/docs/tree/integrations.test.mjs +62 -0
- package/assets/docs/tree/writing-docs.doc.mjs +286 -0
- package/assets/docs/working-with-ai.doc.mjs +3 -3
- package/assets/templates/blocks/components/CheckboxList/CheckboxListSelectAllPattern.doc.mjs +1 -1
- package/assets/templates/blocks/components/CheckboxList/CheckboxListSelectAllPattern.tsx +1 -3
- package/assets/templates/blocks/components/DateInput/DateInputDateRange.tsx +1 -1
- package/assets/templates/blocks/components/Item/ItemDocumentTabs.doc.mjs +14 -0
- package/assets/templates/blocks/components/Item/ItemDocumentTabs.tsx +100 -0
- package/assets/templates/blocks/components/Table/TableBulkActionsTable.doc.mjs +14 -0
- package/assets/templates/blocks/components/Table/TableBulkActionsTable.tsx +71 -0
- package/assets/templates/blocks/components/Table/TableFloatingBulkActionsTable.doc.mjs +19 -0
- package/assets/templates/blocks/components/Table/TableFloatingBulkActionsTable.tsx +139 -0
- package/assets/templates/blocks/components/TimeInput/TimeInputConstrained.tsx +1 -0
- package/assets/templates/themes/butter/butterTheme.doc.mjs +11 -0
- package/assets/templates/themes/chocolate/chocolateTheme.doc.mjs +11 -0
- package/assets/templates/themes/gothic/gothicTheme.doc.mjs +11 -0
- package/assets/templates/themes/matcha/matchaTheme.doc.mjs +11 -0
- package/assets/templates/themes/neutral/neutralTheme.doc.mjs +11 -0
- package/assets/templates/themes/stone/stoneTheme.doc.mjs +11 -0
- package/assets/templates/themes/y2k/y2kTheme.doc.mjs +11 -0
- package/authoring/codemod/codemod.doc.mjs +1 -1
- package/authoring/codemod/type.ts +12 -0
- package/authoring/config/config.doc.mjs +1 -1
- package/authoring/debug/debug.doc.d.mts +11 -0
- package/authoring/debug/debug.doc.mjs +182 -0
- package/authoring/debug/parse.d.mts +3 -3
- package/authoring/doctypes/_schema.d.mts +119 -117
- package/authoring/doctypes/_schema.mjs +54 -3
- package/authoring/doctypes/base/graph-fields.doc.mjs +8 -6
- package/authoring/doctypes/base/type.ts +6 -5
- package/authoring/doctypes/command/command.doc.mjs +1 -1
- package/authoring/doctypes/command/type.ts +2 -2
- package/authoring/doctypes/component/type.ts +2 -2
- package/authoring/doctypes/doctypes-new.test.mjs +48 -6
- package/authoring/doctypes/enum/enum.doc.mjs +1 -1
- package/authoring/doctypes/enum/type.ts +1 -1
- package/authoring/doctypes/function/function.doc.mjs +3 -2
- package/authoring/doctypes/function/type.ts +3 -2
- package/authoring/doctypes/hook/type.ts +2 -2
- package/authoring/doctypes/load-contract.test.mjs +28 -2
- package/authoring/doctypes/namespace/namespace.doc.mjs +6 -10
- package/authoring/doctypes/namespace/parse.test.mjs +23 -25
- package/authoring/doctypes/namespace/type.ts +5 -2
- package/authoring/doctypes/parse.d.mts +4 -2
- package/authoring/doctypes/parse.mjs +10 -5
- package/authoring/doctypes/reference/reference.doc.mjs +35 -6
- package/authoring/doctypes/reference/type.ts +30 -13
- package/authoring/doctypes/schema/schema.doc.mjs +1 -1
- package/authoring/doctypes/schema/type.ts +1 -2
- package/authoring/doctypes/template/parse.d.mts +2 -0
- package/authoring/doctypes/template/parse.mjs +4 -0
- package/authoring/doctypes/template/parse.test.mjs +18 -0
- package/authoring/doctypes/template/template.doc.mjs +9 -3
- package/authoring/doctypes/template/type.ts +8 -0
- package/authoring/doctypes/theme/parse.d.mts +35 -0
- package/authoring/doctypes/theme/parse.mjs +76 -0
- package/authoring/doctypes/theme/theme.doc.d.mts +9 -0
- package/authoring/doctypes/theme/theme.doc.mjs +79 -0
- package/authoring/doctypes/theme/type.ts +42 -0
- package/authoring/doctypes/types.ts +2 -1
- package/authoring/gap-report/gap-report.doc.d.mts +12 -0
- package/authoring/gap-report/gap-report.doc.mjs +183 -0
- package/authoring/identity/identity.doc.mjs +2 -2
- package/authoring/index.d.mts +1 -0
- package/authoring/index.d.ts +7 -4
- package/authoring/index.mjs +2 -1
- package/authoring/integration/integration.doc.mjs +2 -2
- package/authoring/integration/type.ts +4 -10
- package/clients/cli/__tests__/cliManifest.test.ts +27 -29
- package/clients/cli/commands/blog.doc.mjs +1 -1
- package/clients/cli/commands/build-theme.adaptations.test.mjs +100 -1
- package/clients/cli/commands/build-theme.mjs +11 -45
- package/clients/cli/commands/build.doc.mjs +12 -7
- package/clients/cli/commands/build.mjs +105 -67
- package/clients/cli/commands/build.text-fields.test.mjs +41 -0
- package/clients/cli/commands/component/index.mjs +1 -1
- package/clients/cli/commands/component-ownership.test.mjs +3 -3
- package/clients/cli/commands/component.doc.mjs +1 -1
- package/clients/cli/commands/discover.broken-integration.test.mjs +7 -8
- package/clients/cli/commands/discover.doc.mjs +1 -1
- package/clients/cli/commands/discover.mjs +1 -1
- package/clients/cli/commands/docs.doc.mjs +21 -9
- package/clients/cli/commands/docs.mjs +184 -70
- package/clients/cli/commands/docs.test.mjs +120 -16
- package/clients/cli/commands/doctor-integration-components.doc.mjs +1 -1
- package/clients/cli/commands/doctor-integration-docs.doc.mjs +3 -3
- package/clients/cli/commands/doctor-integration-templates.doc.mjs +15 -8
- package/clients/cli/commands/doctor-integration-validate.doc.mjs +1 -1
- package/clients/cli/commands/doctor-integration.doc.mjs +1 -1
- package/clients/cli/commands/doctor-integration.test.mjs +90 -8
- package/clients/cli/commands/doctor.doc.mjs +1 -1
- package/clients/cli/commands/doctor.mjs +53 -16
- package/clients/cli/commands/gap-report.doc.mjs +1 -1
- package/clients/cli/commands/hook.doc.mjs +1 -1
- package/clients/cli/commands/init.doc.mjs +1 -1
- package/clients/cli/commands/integration-add.controls.test.mjs +1 -1
- package/clients/cli/commands/integration-add.doc.mjs +11 -1
- package/clients/cli/commands/integration-pack.doc.mjs +1 -1
- package/clients/cli/commands/integration-real-world.test.mjs +3 -9
- package/clients/cli/commands/integration.doc.mjs +1 -1
- package/clients/cli/commands/integration.mjs +1 -0
- package/clients/cli/commands/layout-check.doc.mjs +1 -1
- package/clients/cli/commands/layout-expand.doc.mjs +1 -1
- package/clients/cli/commands/layout-grammar.doc.mjs +1 -1
- package/clients/cli/commands/layout.doc.mjs +1 -1
- package/clients/cli/commands/manifest.doc.mjs +1 -1
- package/clients/cli/commands/search.doc.mjs +1 -1
- package/clients/cli/commands/search.mjs +11 -2
- package/clients/cli/commands/setup-nudge.test.mjs +6 -0
- package/clients/cli/commands/swizzle.doc.mjs +1 -1
- package/clients/cli/commands/template.doc.mjs +24 -7
- package/clients/cli/commands/template.mjs +4 -91
- package/clients/cli/commands/text-json-parity.test.mjs +719 -0
- package/clients/cli/commands/theme-add.doc.mjs +2 -2
- package/clients/cli/commands/theme-build.doc.mjs +1 -1
- package/clients/cli/commands/theme-list.doc.mjs +2 -2
- package/clients/cli/commands/theme-palette-generate.doc.mjs +3 -3
- package/clients/cli/commands/theme-palette.doc.mjs +1 -1
- package/clients/cli/commands/theme-targets.behavior.test.mjs +4 -3
- package/clients/cli/commands/theme-targets.doc.mjs +1 -1
- package/clients/cli/commands/theme-template.doc.mjs +1 -1
- package/clients/cli/commands/theme.doc.mjs +1 -1
- package/clients/cli/commands/upgrade.doc.mjs +3 -2
- package/clients/cli/commands/upgrade.file-protection.test.mjs +228 -0
- package/clients/cli/commands/upgrade.mjs +29 -7
- package/clients/cli/formatters/index.mjs +2 -0
- package/clients/cli/formatters/index.test.mjs +6 -0
- package/clients/cli/index.mjs +8 -0
- package/clients/cli/lib/hook-format.mjs +14 -5
- package/clients/cli/lib/manifest.mjs +9 -2
- package/foundation/agent-docs/agent-docs.d.mts +3 -2
- package/foundation/agent-docs/agent-docs.mjs +13 -9
- package/foundation/agent-docs/agent-docs.test.mjs +19 -1
- package/foundation/config/project-themes.test.mjs +11 -19
- package/foundation/config/project.d.mts +20 -11
- package/foundation/config/project.mjs +123 -80
- package/foundation/config/project.test.mjs +144 -21
- package/foundation/discovery/authoring-self-docs.d.mts +18 -0
- package/foundation/discovery/authoring-self-docs.mjs +37 -15
- package/foundation/discovery/authoring-self-docs.test.mjs +25 -9
- package/foundation/discovery/authoring-surface.d.mts +74 -0
- package/foundation/discovery/authoring-surface.mjs +525 -0
- package/foundation/discovery/authoring-surface.test.mjs +392 -0
- package/foundation/discovery/cli-self-docs.d.mts +119 -0
- package/foundation/discovery/cli-self-docs.mjs +490 -0
- package/foundation/discovery/cli-self-docs.test.mjs +375 -0
- package/foundation/discovery/component-discovery.d.mts +38 -0
- package/foundation/discovery/component-discovery.mjs +48 -0
- package/foundation/discovery/component-loader.d.mts +35 -38
- package/foundation/discovery/component-loader.mjs +53 -222
- package/foundation/discovery/docs-discovery.d.mts +112 -11
- package/foundation/discovery/docs-discovery.mjs +231 -36
- package/foundation/discovery/docs-discovery.test.mjs +111 -32
- package/foundation/discovery/docs-output-budget.d.mts +2 -2
- package/foundation/discovery/docs-output-budget.mjs +1 -1
- package/foundation/discovery/docs-section-key.d.mts +28 -10
- package/foundation/discovery/docs-section-key.mjs +134 -33
- package/foundation/discovery/docs-section-key.test.mjs +41 -19
- package/foundation/discovery/template-adapter.d.mts +99 -6
- package/foundation/discovery/template-adapter.mjs +480 -57
- package/foundation/discovery/template-adapter.test.mjs +57 -0
- package/foundation/discovery/template-conflict-release.d.mts +13 -0
- package/foundation/discovery/template-conflict-release.mjs +40 -0
- package/foundation/discovery/template-conflict-release.test.mjs +40 -0
- package/foundation/discovery/theme-discovery.d.mts +67 -7
- package/foundation/discovery/theme-discovery.mjs +916 -186
- package/foundation/discovery/theme-discovery.test.mjs +613 -219
- package/foundation/doc-compiler/bundle.d.mts +47 -0
- package/foundation/doc-compiler/bundle.mjs +278 -0
- package/foundation/doc-compiler/bundle.test.mjs +266 -0
- package/foundation/doc-compiler/compile.d.mts +220 -39
- package/foundation/doc-compiler/compile.mjs +311 -15
- package/foundation/doc-compiler/diagnostics.d.mts +126 -0
- package/foundation/doc-compiler/diagnostics.mjs +305 -0
- package/foundation/doc-compiler/doc-compiler.test.mjs +28 -1
- package/foundation/doc-compiler/doc-loads.test.mjs +1642 -0
- package/foundation/doc-compiler/import.d.mts +24 -0
- package/foundation/doc-compiler/import.mjs +59 -0
- package/foundation/doc-compiler/inputs.d.mts +102 -0
- package/foundation/doc-compiler/inputs.mjs +291 -0
- package/foundation/doc-compiler/inputs.test.mjs +299 -0
- package/foundation/doc-compiler/ir.d.mts +13 -0
- package/foundation/doc-compiler/ir.mjs +196 -12
- package/foundation/doc-compiler/lenses.d.mts +8 -5
- package/foundation/doc-compiler/lenses.mjs +50 -4
- package/foundation/doc-compiler/links.d.mts +162 -0
- package/foundation/doc-compiler/links.mjs +294 -0
- package/foundation/doc-compiler/links.test.mjs +192 -0
- package/foundation/doc-compiler/lower-doc.test.mjs +495 -0
- package/foundation/doc-compiler/overlays.d.mts +37 -0
- package/foundation/doc-compiler/overlays.mjs +206 -0
- package/foundation/doc-compiler/parse-readable.d.mts +9 -0
- package/foundation/doc-compiler/parse-readable.mjs +29 -0
- package/foundation/doc-compiler/read.d.mts +127 -0
- package/foundation/doc-compiler/read.mjs +325 -0
- package/foundation/doc-compiler/read.test.mjs +313 -0
- package/foundation/doc-compiler/source.d.mts +33 -0
- package/foundation/doc-compiler/source.mjs +128 -0
- package/foundation/doc-compiler/tree.d.mts +288 -0
- package/foundation/doc-compiler/tree.mjs +876 -0
- package/foundation/doc-compiler/tree.test.mjs +598 -0
- package/foundation/fs/file-protection.d.mts +33 -0
- package/foundation/fs/file-protection.mjs +825 -0
- package/foundation/fs/file-protection.test.mjs +250 -0
- package/foundation/integrations/autolink.d.mts +58 -1
- package/foundation/integrations/autolink.mjs +143 -57
- package/foundation/integrations/autolink.test.mjs +1 -1
- package/foundation/integrations/cli-requirement.d.mts +45 -0
- package/foundation/integrations/cli-requirement.mjs +154 -0
- package/foundation/integrations/cli-requirement.test.mjs +84 -0
- package/foundation/integrations/contribution-fixes.d.mts +145 -0
- package/foundation/integrations/contribution-fixes.mjs +1284 -0
- package/foundation/integrations/contribution-inventory.d.mts +3 -2
- package/foundation/integrations/contribution-inventory.mjs +27 -24
- package/foundation/integrations/contribution-inventory.test.mjs +86 -27
- package/foundation/integrations/integration-warnings.d.mts +9 -2
- package/foundation/integrations/integration-warnings.mjs +51 -26
- package/foundation/integrations/integration-warnings.test.mjs +74 -1
- package/foundation/integrations/integrations.d.mts +3 -0
- package/foundation/integrations/integrations.mjs +11 -97
- package/foundation/integrations/provider-ledger.test.mjs +275 -0
- package/foundation/integrations/provider-resolution.d.mts +152 -0
- package/foundation/integrations/provider-resolution.mjs +576 -0
- package/foundation/integrations/provider-resolution.test.mjs +369 -0
- package/foundation/integrations/theme-descriptor.d.mts +8 -0
- package/foundation/integrations/theme-descriptor.mjs +44 -0
- package/foundation/integrations/validate-contributions.mjs +121 -29
- package/foundation/response/error-codes.d.mts +3 -1
- package/foundation/response/error-codes.d.ts +2 -0
- package/foundation/response/error-codes.doc.mjs +12 -2
- package/foundation/response/error-codes.mjs +7 -1
- package/foundation/response/error-codes.test.mjs +55 -11
- package/foundation/response/response-types.doc.d.mts +5 -1
- package/foundation/response/response-types.doc.mjs +20 -11
- package/foundation/response/response.doc.mjs +1 -1
- package/foundation/text/string-utils.d.mts +8 -0
- package/foundation/text/string-utils.mjs +40 -10
- package/foundation/xle/expand.mjs +1 -1
- package/foundation/xle/xle.test.mjs +13 -0
- package/package.json +10 -9
- package/assets/templates/themes/manifest.json +0 -95
|
@@ -35,16 +35,15 @@ import {
|
|
|
35
35
|
resolveIntegrationImportPath as resolveIntegrationImport,
|
|
36
36
|
} from '../../foundation/discovery/component-discovery.mjs';
|
|
37
37
|
import {Project} from '../../foundation/config/project.mjs';
|
|
38
|
-
import {
|
|
38
|
+
import {loadComponentDoc as loadValidatedComponentDoc} from '../../foundation/discovery/component-loader.mjs';
|
|
39
39
|
import {searchComponents} from '../../foundation/text/string-utils.mjs';
|
|
40
40
|
import {AstryxError} from '../error.mjs';
|
|
41
41
|
|
|
42
42
|
export {CORE_PACKAGE};
|
|
43
43
|
|
|
44
44
|
/**
|
|
45
|
-
* A loaded component doc.
|
|
46
|
-
*
|
|
47
|
-
* captures the fields the API reads across both forms.
|
|
45
|
+
* A loaded component doc. The shared validated loader accepts stamped and legacy
|
|
46
|
+
* component docs; this loose view captures the fields the API reads across both.
|
|
48
47
|
* @typedef {object} LoadedComponentDoc
|
|
49
48
|
* @property {string} [name]
|
|
50
49
|
* @property {string} [description]
|
|
@@ -56,9 +55,7 @@ export {CORE_PACKAGE};
|
|
|
56
55
|
*/
|
|
57
56
|
|
|
58
57
|
/**
|
|
59
|
-
* Options object for
|
|
60
|
-
* as a cast target so `lang` (which the API may hold as `string|null`) type
|
|
61
|
-
* checks against `loadDocs`'s `lang?: string`).
|
|
58
|
+
* Options object for the shared component-doc loader.
|
|
62
59
|
* @typedef {{zh?: boolean, dense?: boolean, lang?: string}} LoadDocsOpts
|
|
63
60
|
*/
|
|
64
61
|
|
|
@@ -381,9 +378,22 @@ export async function resolveUnscopedDoc(dirName, {coreDir, cwd, name}) {
|
|
|
381
378
|
*/
|
|
382
379
|
export async function loadComponentDoc(docPath, opts = {}) {
|
|
383
380
|
const {zh = false, dense = false, lang = null} = opts;
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
381
|
+
try {
|
|
382
|
+
return /** @type {LoadedComponentDoc} */ (
|
|
383
|
+
await loadValidatedComponentDoc(
|
|
384
|
+
docPath,
|
|
385
|
+
/** @type {LoadDocsOpts} */ ({zh, dense, lang}),
|
|
386
|
+
)
|
|
387
|
+
);
|
|
388
|
+
} catch (err) {
|
|
389
|
+
throw new AstryxError(
|
|
390
|
+
`Cannot load component metadata: ${
|
|
391
|
+
err instanceof Error ? err.message : String(err)
|
|
392
|
+
}`,
|
|
393
|
+
undefined,
|
|
394
|
+
ERROR_CODES.ERR_INVALID_DOC,
|
|
395
|
+
);
|
|
396
|
+
}
|
|
387
397
|
}
|
|
388
398
|
|
|
389
399
|
/**
|
|
@@ -12,6 +12,7 @@ export const doc = {
|
|
|
12
12
|
type: 'function',
|
|
13
13
|
kind: 'api',
|
|
14
14
|
name: 'component',
|
|
15
|
+
namespace: 'cli/api',
|
|
15
16
|
displayName: 'component()',
|
|
16
17
|
summary:
|
|
17
18
|
'Resolve a component by name, or list the catalog, with optional focused slices (props, source, showcase, blocks).',
|
|
@@ -143,14 +143,20 @@ export async function component(name, options = {}) {
|
|
|
143
143
|
// Searches that package first — critical for names that exist in both core
|
|
144
144
|
// and an external package (AppShell, Button, SideNav).
|
|
145
145
|
if (packageScope) {
|
|
146
|
-
const scoped = classifyScope(packageScope, {
|
|
146
|
+
const scoped = classifyScope(packageScope, {
|
|
147
|
+
owners,
|
|
148
|
+
loadedIntegrations,
|
|
149
|
+
cwd,
|
|
150
|
+
name,
|
|
151
|
+
});
|
|
147
152
|
|
|
148
153
|
if (scoped.kind === 'core' || scoped.kind === 'integration') {
|
|
149
154
|
const owner = scoped.owner;
|
|
150
155
|
if (source) {
|
|
151
156
|
return componentDetailSource(dirName, owner.sourcePath, {
|
|
152
157
|
name,
|
|
153
|
-
notFoundInPackage:
|
|
158
|
+
notFoundInPackage:
|
|
159
|
+
scoped.kind === 'integration' ? packageScope : null,
|
|
154
160
|
});
|
|
155
161
|
}
|
|
156
162
|
// showcase/blocks were previously dropped on the scoped path — a
|
|
@@ -187,17 +193,48 @@ export async function component(name, options = {}) {
|
|
|
187
193
|
}
|
|
188
194
|
const docs = await loadComponentDoc(extDocPath, docOpts);
|
|
189
195
|
if (props) return componentDetailProps(docs);
|
|
190
|
-
return componentDetail(
|
|
196
|
+
return componentDetail(
|
|
197
|
+
docs,
|
|
198
|
+
{package: scoped.ext.name, sourcePath: null},
|
|
199
|
+
dirName,
|
|
200
|
+
coreDir,
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
throw new AstryxError(
|
|
204
|
+
`No component "${name}" in package "${packageScope}"`,
|
|
205
|
+
undefined,
|
|
206
|
+
ERROR_CODES.ERR_UNKNOWN_COMPONENT,
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Invalid integration metadata does not create ambiguity against a valid
|
|
211
|
+
// owner. Keep raw owners only when no doc owner is valid, so an integration-
|
|
212
|
+
// only component still exposes its source and returns ERR_INVALID_DOC for
|
|
213
|
+
// detail instead of degrading to an unrelated unknown-component error.
|
|
214
|
+
const validOwners = [];
|
|
215
|
+
for (const owner of owners) {
|
|
216
|
+
if (owner.package === CORE_PACKAGE) {
|
|
217
|
+
validOwners.push(owner);
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
await loadComponentDoc(owner.docPath);
|
|
222
|
+
validOwners.push(owner);
|
|
223
|
+
} catch {
|
|
224
|
+
// Project/Doctor report invalid metadata; it is not an effective owner.
|
|
191
225
|
}
|
|
192
|
-
throw new AstryxError(`No component "${name}" in package "${packageScope}"`, undefined, ERROR_CODES.ERR_UNKNOWN_COMPONENT);
|
|
193
226
|
}
|
|
227
|
+
const effectiveOwners = validOwners.length > 0 ? validOwners : owners;
|
|
194
228
|
|
|
195
|
-
// ── Ambiguity: owned by MORE THAN ONE package, no --package
|
|
196
|
-
assertUnambiguousOwners(
|
|
229
|
+
// ── Ambiguity: owned by MORE THAN ONE valid package, no --package ──
|
|
230
|
+
assertUnambiguousOwners(effectiveOwners, dirName);
|
|
197
231
|
|
|
198
232
|
// ── Single non-core owner (an integration provides it, core does not) ──
|
|
199
|
-
if (
|
|
200
|
-
|
|
233
|
+
if (
|
|
234
|
+
effectiveOwners.length === 1 &&
|
|
235
|
+
effectiveOwners[0].package !== CORE_PACKAGE
|
|
236
|
+
) {
|
|
237
|
+
const owner = effectiveOwners[0];
|
|
201
238
|
if (source) {
|
|
202
239
|
return componentDetailSource(dirName, owner.sourcePath, {name});
|
|
203
240
|
}
|
|
@@ -213,7 +250,11 @@ export async function component(name, options = {}) {
|
|
|
213
250
|
// ── No-scope core path ─────────────────────────────────────────
|
|
214
251
|
// `--source` reads core directly (no external/fuzzy fallback).
|
|
215
252
|
if (source) {
|
|
216
|
-
return componentDetailSource(
|
|
253
|
+
return componentDetailSource(
|
|
254
|
+
dirName,
|
|
255
|
+
resolveCoreSourcePath(coreDir, dirName),
|
|
256
|
+
{name},
|
|
257
|
+
);
|
|
217
258
|
}
|
|
218
259
|
if (showcase) {
|
|
219
260
|
return componentDetailShowcase(dirName, {cwd, name});
|
|
@@ -232,10 +273,14 @@ export async function component(name, options = {}) {
|
|
|
232
273
|
// scope the response to just the matching sub-component.
|
|
233
274
|
const sub = scopeSubComponent(docs, dirName, coreDir);
|
|
234
275
|
if (sub) {
|
|
235
|
-
if (props)
|
|
276
|
+
if (props)
|
|
277
|
+
return componentDetailProps({props: sub.matchingComponent.props});
|
|
236
278
|
return componentDetail(
|
|
237
279
|
sub.scoped,
|
|
238
|
-
{
|
|
280
|
+
{
|
|
281
|
+
package: resolved.resolvedOwnerPackage,
|
|
282
|
+
sourcePath: resolved.resolvedSourcePath,
|
|
283
|
+
},
|
|
239
284
|
dirName,
|
|
240
285
|
coreDir,
|
|
241
286
|
);
|
|
@@ -244,7 +289,10 @@ export async function component(name, options = {}) {
|
|
|
244
289
|
if (props) return componentDetailProps(docs);
|
|
245
290
|
return componentDetail(
|
|
246
291
|
docs,
|
|
247
|
-
{
|
|
292
|
+
{
|
|
293
|
+
package: resolved.resolvedOwnerPackage,
|
|
294
|
+
sourcePath: resolved.resolvedSourcePath,
|
|
295
|
+
},
|
|
248
296
|
resolved.resolvedName,
|
|
249
297
|
coreDir,
|
|
250
298
|
);
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
CORE_PACKAGE,
|
|
16
16
|
discoverComponents,
|
|
17
17
|
discoverExternalComponentsGrouped,
|
|
18
|
-
|
|
18
|
+
discoverValidIntegrationComponents,
|
|
19
19
|
findComponentReadme,
|
|
20
20
|
findExternalComponentDoc,
|
|
21
21
|
resolveImportPath,
|
|
@@ -228,7 +228,8 @@ export async function componentList(
|
|
|
228
228
|
const seenIntegration = new Set();
|
|
229
229
|
for (const integration of loadedIntegrations) {
|
|
230
230
|
seenIntegration.add(integration.name);
|
|
231
|
-
const owned =
|
|
231
|
+
const {components: owned} =
|
|
232
|
+
await discoverValidIntegrationComponents(integration);
|
|
232
233
|
// Group integration components by their doc `group`, falling back to the
|
|
233
234
|
// package name. Keys are package-qualified so they never collide with
|
|
234
235
|
// core groups or each other.
|
package/api/docs/_adapter.d.mts
CHANGED
|
@@ -16,22 +16,79 @@
|
|
|
16
16
|
*/
|
|
17
17
|
export function loadDocsCatalog(cwd?: string): Promise<DocsCatalog>;
|
|
18
18
|
/**
|
|
19
|
-
* The
|
|
20
|
-
* @
|
|
21
|
-
* @returns {string[]}
|
|
19
|
+
* The CLI's own topics alone, for a check that runs without a project.
|
|
20
|
+
* @returns {DocsCatalog}
|
|
22
21
|
*/
|
|
23
|
-
export function
|
|
22
|
+
export function builtinCatalog(): DocsCatalog;
|
|
24
23
|
/**
|
|
25
|
-
* One topic, lowered for `lang
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
24
|
+
* One topic, lowered for `lang` with every link between docs resolved
|
|
25
|
+
* (spec:AST-047 FR9): an inline `{@link <target>}` reads as the command that
|
|
26
|
+
* opens its doc, and a `reference` block carries the doc it names and the
|
|
27
|
+
* `content` it includes of it. Memoized per catalog and frozen, like the
|
|
28
|
+
* lowered node.
|
|
29
29
|
* @param {DocsCatalog} catalog
|
|
30
|
-
* @param {
|
|
30
|
+
* @param {DocsTopicEntry} entry
|
|
31
31
|
* @param {string | null} [lang]
|
|
32
32
|
* @returns {Promise<import('../../foundation/doc-compiler/compile.mjs').CompiledReferenceNode>}
|
|
33
33
|
*/
|
|
34
|
-
export function lowerTopic(catalog: DocsCatalog, entry:
|
|
34
|
+
export function lowerTopic(catalog: DocsCatalog, entry: DocsTopicEntry, lang?: string | null): Promise<import("../../foundation/doc-compiler/compile.mjs").CompiledReferenceNode>;
|
|
35
|
+
/**
|
|
36
|
+
* Each link in a topic that names no doc.
|
|
37
|
+
* @param {DocsCatalog} catalog
|
|
38
|
+
* @param {DocsTopicEntry} entry
|
|
39
|
+
* @returns {Promise<LinkProblem[]>}
|
|
40
|
+
*/
|
|
41
|
+
export function topicLinkProblems(catalog: DocsCatalog, entry: DocsTopicEntry): Promise<LinkProblem[]>;
|
|
42
|
+
/**
|
|
43
|
+
* The project's docs tree: the CLI's own docs plus the namespace docs and
|
|
44
|
+
* placed guides the configured integrations ship (spec:AST-046), built once
|
|
45
|
+
* per catalog. Without integration docs it is the CLI's tree, built once per
|
|
46
|
+
* process.
|
|
47
|
+
* @param {DocsCatalog} catalog
|
|
48
|
+
* @param {{fresh?: boolean}} [options] `fresh`: reread the CLI's tree files
|
|
49
|
+
* @returns {Promise<DocsTree>}
|
|
50
|
+
*/
|
|
51
|
+
export function projectTree(catalog: DocsCatalog, { fresh }?: {
|
|
52
|
+
fresh?: boolean;
|
|
53
|
+
}): Promise<DocsTree>;
|
|
54
|
+
/**
|
|
55
|
+
* How a doc's links find their targets (spec:AST-047 FR9), as
|
|
56
|
+
* {@link docFinder} finds them: each resolves to the link a read shows.
|
|
57
|
+
* @param {DocsCatalog} catalog
|
|
58
|
+
* @param {string} fromProvider the provider id of the doc the links sit in
|
|
59
|
+
* @returns {Promise<LinkResolver>}
|
|
60
|
+
*/
|
|
61
|
+
export function linkResolver(catalog: DocsCatalog, fromProvider: string): Promise<LinkResolver>;
|
|
62
|
+
/**
|
|
63
|
+
* Every link in the project's docs that names no doc: in each topic, each
|
|
64
|
+
* guide the tree places, and each typed doc.
|
|
65
|
+
* @param {DocsCatalog} catalog
|
|
66
|
+
* @param {DocsTree} tree
|
|
67
|
+
* @param {{owner?: string, references?: boolean}} [options] `owner`: only the
|
|
68
|
+
* docs this package owns. `references`: instead of the links, each reference
|
|
69
|
+
* block that cannot include what it names; a reader loses that content,
|
|
70
|
+
* where a link that names no doc still prints as written
|
|
71
|
+
* @returns {Promise<string[]>}
|
|
72
|
+
*/
|
|
73
|
+
export function docsLinkProblems(catalog: DocsCatalog, tree: DocsTree, { owner, references }?: {
|
|
74
|
+
owner?: string;
|
|
75
|
+
references?: boolean;
|
|
76
|
+
}): Promise<string[]>;
|
|
77
|
+
/**
|
|
78
|
+
* What \`astryx doctor integration docs\` checks in one integration's docs: the
|
|
79
|
+
* docs tree they build beside the CLI's (namespaces, placements, routes) and
|
|
80
|
+
* every link in them (spec:AST-046, spec:AST-047).
|
|
81
|
+
* @param {{name: string}} integration
|
|
82
|
+
* @param {{records: import('../../foundation/discovery/docs-discovery.mjs').DocsTopicRecord[], namespaces: import('../../foundation/doc-compiler/tree.mjs').TreeNamespaceInput[], guides: import('../../foundation/doc-compiler/tree.mjs').TreeDocInput[]}} discovered
|
|
83
|
+
* @returns {Promise<string[]>}
|
|
84
|
+
*/
|
|
85
|
+
export function packageDocsProblems(integration: {
|
|
86
|
+
name: string;
|
|
87
|
+
}, discovered: {
|
|
88
|
+
records: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicRecord[];
|
|
89
|
+
namespaces: import("../../foundation/doc-compiler/tree.mjs").TreeNamespaceInput[];
|
|
90
|
+
guides: import("../../foundation/doc-compiler/tree.mjs").TreeDocInput[];
|
|
91
|
+
}): Promise<string[]>;
|
|
35
92
|
/**
|
|
36
93
|
* How a token reference finds its target: the topic it names in `catalog`,
|
|
37
94
|
* lowered for the same language.
|
|
@@ -40,6 +97,22 @@ export function lowerTopic(catalog: DocsCatalog, entry: import("../../foundation
|
|
|
40
97
|
* @returns {(topic: string) => Promise<import('../../foundation/doc-compiler/compile.mjs').CompiledReferenceNode | null>}
|
|
41
98
|
*/
|
|
42
99
|
export function referenceTargets(catalog: DocsCatalog, lang: string | null): (topic: string) => Promise<import("../../foundation/doc-compiler/compile.mjs").CompiledReferenceNode | null>;
|
|
100
|
+
/**
|
|
101
|
+
* Each reference block in one integration's docs that cannot include what it
|
|
102
|
+
* names (spec:AST-047 FR9): a target that names no doc, a field its schema
|
|
103
|
+
* does not have, or a projection its doc cannot take. A reader would lose
|
|
104
|
+
* that content, so `astryx doctor integration docs` fails on each.
|
|
105
|
+
* @param {{name: string}} integration
|
|
106
|
+
* @param {{records: import('../../foundation/discovery/docs-discovery.mjs').DocsTopicRecord[], namespaces: import('../../foundation/doc-compiler/tree.mjs').TreeNamespaceInput[], guides: import('../../foundation/doc-compiler/tree.mjs').TreeDocInput[]}} discovered
|
|
107
|
+
* @returns {Promise<string[]>}
|
|
108
|
+
*/
|
|
109
|
+
export function packageReferenceProblems(integration: {
|
|
110
|
+
name: string;
|
|
111
|
+
}, discovered: {
|
|
112
|
+
records: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicRecord[];
|
|
113
|
+
namespaces: import("../../foundation/doc-compiler/tree.mjs").TreeNamespaceInput[];
|
|
114
|
+
guides: import("../../foundation/doc-compiler/tree.mjs").TreeDocInput[];
|
|
115
|
+
}): Promise<string[]>;
|
|
43
116
|
/**
|
|
44
117
|
* One topic, compiled for `lang`: lowered, then every token reference linked.
|
|
45
118
|
* @param {DocsCatalog} catalog
|
|
@@ -49,33 +122,178 @@ export function referenceTargets(catalog: DocsCatalog, lang: string | null): (to
|
|
|
49
122
|
*/
|
|
50
123
|
export function compileTopic(catalog: DocsCatalog, entry: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry, lang?: string | null): Promise<import("../../foundation/doc-compiler/compile.mjs").CompiledReferenceNode>;
|
|
51
124
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* @
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
125
|
+
* A guide the docs tree places, as a topic entry the topic readers open by its
|
|
126
|
+
* route. It is never a flat topic: `astryx docs <route>` is its only name.
|
|
127
|
+
* @param {import('../../foundation/doc-compiler/tree.mjs').TreeNode} node
|
|
128
|
+
* @returns {import('../../foundation/discovery/docs-discovery.mjs').DocsTopicEntry}
|
|
129
|
+
*/
|
|
130
|
+
export function guideEntry(node: import("../../foundation/doc-compiler/tree.mjs").TreeNode): import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry;
|
|
131
|
+
/**
|
|
132
|
+
* What a typed doc in the docs tree prints: its content, with every link to
|
|
133
|
+
* another doc resolved (spec:AST-047 FR9). A namespace has no content. The
|
|
134
|
+
* CLI's doc modules are discovery, so this lives in the adapter
|
|
135
|
+
* (architecture:cli-surface INV21).
|
|
136
|
+
* @param {DocsCatalog} catalog
|
|
137
|
+
* @param {DocsTree} tree
|
|
138
|
+
* @param {TreeNode} node
|
|
139
|
+
* @returns {Promise<{content: any[], problems: LinkProblem[]}>}
|
|
140
|
+
*/
|
|
141
|
+
export function nodeContent(catalog: DocsCatalog, tree: DocsTree, node: TreeNode): Promise<{
|
|
142
|
+
content: any[];
|
|
143
|
+
problems: LinkProblem[];
|
|
144
|
+
}>;
|
|
145
|
+
/**
|
|
146
|
+
* The command that opens the level a topic sits in when the tree cannot say:
|
|
147
|
+
* a guide's parent namespace, or the topic list.
|
|
148
|
+
* @param {import('../../foundation/discovery/docs-discovery.mjs').DocsTopicEntry} entry
|
|
149
|
+
* @returns {import('./docs.type.mjs').DocsCommand}
|
|
150
|
+
*/
|
|
151
|
+
export function topicUp(entry: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry): import("./docs.type.mjs").DocsCommand;
|
|
152
|
+
/**
|
|
153
|
+
* The moves from a node's place in the tree (spec:AST-047 FR2, FR4): up to its
|
|
154
|
+
* parent (the topic list, at the top), and across to the nodes before and
|
|
155
|
+
* after it in its parent's slot.
|
|
156
|
+
* @param {DocsTree} tree
|
|
157
|
+
* @param {TreeNode} node
|
|
158
|
+
* @returns {import('./docs.type.mjs').DocsLinks}
|
|
159
|
+
*/
|
|
160
|
+
export function placeLinks(tree: DocsTree, node: TreeNode): import("./docs.type.mjs").DocsLinks;
|
|
161
|
+
/**
|
|
162
|
+
* The moves a topic read offers: from its place in the tree, where a guide
|
|
163
|
+
* sits in its namespace and a flat topic in the Unorganized level.
|
|
164
|
+
* @param {DocsCatalog} catalog
|
|
165
|
+
* @param {import('../../foundation/discovery/docs-discovery.mjs').DocsTopicEntry} entry
|
|
166
|
+
* @returns {Promise<import('./docs.type.mjs').DocsLinks>}
|
|
167
|
+
*/
|
|
168
|
+
export function topicLinks(catalog: DocsCatalog, entry: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry): Promise<import("./docs.type.mjs").DocsLinks>;
|
|
169
|
+
/**
|
|
170
|
+
* What a docs argument names: a topic (a flat one, or a guide the docs tree
|
|
171
|
+
* places), a namespace or typed doc in the tree, or nothing, as nameOwner
|
|
172
|
+
* decides.
|
|
173
|
+
* @param {unknown} topic
|
|
174
|
+
* @param {{cwd?: string}} [options]
|
|
175
|
+
* @returns {Promise<
|
|
176
|
+
* | {kind: 'topic', catalog: DocsCatalog, entry: import('../../foundation/discovery/docs-discovery.mjs').DocsTopicEntry}
|
|
177
|
+
* | {kind: 'node', catalog: DocsCatalog, tree: import('../../foundation/doc-compiler/tree.mjs').DocsTree, node: import('../../foundation/doc-compiler/tree.mjs').TreeNode}
|
|
178
|
+
* | {kind: 'unknown', catalog: DocsCatalog}
|
|
179
|
+
* >}
|
|
180
|
+
*/
|
|
181
|
+
export function resolveDocsArgument(topic: unknown, { cwd }?: {
|
|
182
|
+
cwd?: string;
|
|
183
|
+
}): Promise<{
|
|
184
|
+
kind: "topic";
|
|
185
|
+
catalog: DocsCatalog;
|
|
186
|
+
entry: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry;
|
|
187
|
+
} | {
|
|
188
|
+
kind: "node";
|
|
189
|
+
catalog: DocsCatalog;
|
|
190
|
+
tree: import("../../foundation/doc-compiler/tree.mjs").DocsTree;
|
|
191
|
+
node: import("../../foundation/doc-compiler/tree.mjs").TreeNode;
|
|
192
|
+
} | {
|
|
193
|
+
kind: "unknown";
|
|
194
|
+
catalog: DocsCatalog;
|
|
195
|
+
}>;
|
|
196
|
+
/**
|
|
197
|
+
* Who answers to a name a reader types (spec:AST-046 FR5, FR11). The tree
|
|
198
|
+
* decides first: the node at that route, compared without case, holds it. A
|
|
199
|
+
* name with no node of its own is a topic's other name (its `replaces`
|
|
200
|
+
* alias), and that topic answers, unless the tree gave the topic's own route
|
|
201
|
+
* to another doc. Reads, the topic list, and search all ask this, so they
|
|
202
|
+
* agree on every name.
|
|
203
|
+
* @param {DocsTree} tree
|
|
204
|
+
* @param {DocsCatalog} catalog
|
|
205
|
+
* @param {string} name
|
|
206
|
+
* @returns {{kind: 'topic', entry: import('../../foundation/discovery/docs-discovery.mjs').DocsTopicEntry} | {kind: 'node', node: TreeNode} | null}
|
|
207
|
+
*/
|
|
208
|
+
export function nameOwner(tree: DocsTree, catalog: DocsCatalog, name: string): {
|
|
209
|
+
kind: "topic";
|
|
210
|
+
entry: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry;
|
|
211
|
+
} | {
|
|
212
|
+
kind: "node";
|
|
213
|
+
node: TreeNode;
|
|
214
|
+
} | null;
|
|
215
|
+
/**
|
|
216
|
+
* Whether a topic answers to its own name: what the topic list and search
|
|
217
|
+
* offer must open that topic.
|
|
218
|
+
* @param {DocsTree} tree
|
|
219
|
+
* @param {DocsCatalog} catalog
|
|
220
|
+
* @param {import('../../foundation/discovery/docs-discovery.mjs').DocsTopicEntry} entry
|
|
221
|
+
* @returns {boolean}
|
|
222
|
+
*/
|
|
223
|
+
export function holdsOwnName(tree: DocsTree, catalog: DocsCatalog, entry: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry): boolean;
|
|
224
|
+
/**
|
|
225
|
+
* The doc that took a flat topic's route in the docs tree, when it is not
|
|
226
|
+
* that topic (spec:AST-046 FR11): the CLI keeps its routes, such as `cli`
|
|
227
|
+
* and `unorganized`, and a namespace keeps its route over a topic of the same
|
|
228
|
+
* name. Null when the topic owns its route, or the tree has no node there.
|
|
229
|
+
* @param {DocsTree} tree
|
|
230
|
+
* @param {import('../../foundation/discovery/docs-discovery.mjs').DocsTopicEntry} entry
|
|
231
|
+
* @returns {TreeNode | null}
|
|
232
|
+
*/
|
|
233
|
+
export function routeOwner(tree: DocsTree, entry: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry): TreeNode | null;
|
|
234
|
+
/**
|
|
235
|
+
* The error for a docs argument that names nothing. For a route, it suggests
|
|
236
|
+
* the children of the deepest namespace the route reaches; otherwise, every
|
|
237
|
+
* topic and every top-level namespace.
|
|
238
|
+
* @param {unknown} topic
|
|
239
|
+
* @param {DocsCatalog} catalog
|
|
240
|
+
* @returns {Promise<AstryxError>}
|
|
241
|
+
*/
|
|
242
|
+
export function unknownTopicError(topic: unknown, catalog: DocsCatalog): Promise<AstryxError>;
|
|
243
|
+
/**
|
|
244
|
+
* A sentence naming the packages whose docs did not load, or nothing: a doc
|
|
245
|
+
* that fails to load withdraws its package's docs, so a reader who cannot
|
|
246
|
+
* find one learns where to look.
|
|
247
|
+
* @param {DocsCatalog} catalog
|
|
248
|
+
* @returns {string}
|
|
249
|
+
*/
|
|
250
|
+
export function notLoaded(catalog: DocsCatalog): string;
|
|
251
|
+
/**
|
|
252
|
+
* Resolve a topic (a flat one, or a guide the docs tree places by its route)
|
|
253
|
+
* and lower it for the topic readers.
|
|
254
|
+
* @param {unknown} topic
|
|
255
|
+
* @param {{lang?: string | null, zh?: boolean, dense?: boolean, cwd?: string}} [options]
|
|
256
|
+
*/
|
|
257
|
+
export function resolveTopicDocs(topic: unknown, options?: {
|
|
258
|
+
lang?: string | null;
|
|
259
|
+
zh?: boolean;
|
|
260
|
+
dense?: boolean;
|
|
261
|
+
cwd?: string;
|
|
74
262
|
}): Promise<{
|
|
75
263
|
catalog: DocsCatalog;
|
|
76
264
|
node: import("../../foundation/doc-compiler/compile.mjs").CompiledReferenceNode;
|
|
77
265
|
lang: string | null;
|
|
266
|
+
entry: import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry;
|
|
78
267
|
}>;
|
|
79
|
-
/**
|
|
80
|
-
|
|
268
|
+
/**
|
|
269
|
+
* A doc a link found: what a read shows of the link, and the typed doc behind
|
|
270
|
+
* it when a reference block can include it.
|
|
271
|
+
*/
|
|
272
|
+
export type FoundDoc = {
|
|
273
|
+
link: import("../../foundation/doc-compiler/links.mjs").DocLink;
|
|
274
|
+
/**
|
|
275
|
+
* the doc's kind
|
|
276
|
+
*/
|
|
277
|
+
kind: string;
|
|
278
|
+
/**
|
|
279
|
+
* a
|
|
280
|
+
* schema, command, function, or enum doc: a leaf of the docs tree (`tree`),
|
|
281
|
+
* or a section of `astryx docs authoring`; null for any other kind
|
|
282
|
+
*/
|
|
283
|
+
typed: {
|
|
284
|
+
doc: any;
|
|
285
|
+
providerId: string;
|
|
286
|
+
tree: boolean;
|
|
287
|
+
} | null;
|
|
288
|
+
};
|
|
289
|
+
export type DocsTree = import("../../foundation/doc-compiler/tree.mjs").DocsTree;
|
|
290
|
+
export type TreeNode = import("../../foundation/doc-compiler/tree.mjs").TreeNode;
|
|
291
|
+
export type LinkProblem = import("../../foundation/doc-compiler/links.mjs").LinkProblem;
|
|
292
|
+
export type LinkResolver = import("../../foundation/doc-compiler/links.mjs").LinkResolver;
|
|
293
|
+
export type DocIncluder = import("../../foundation/doc-compiler/links.mjs").DocIncluder;
|
|
294
|
+
export type DocsTopicEntry = import("../../foundation/discovery/docs-discovery.mjs").DocsTopicEntry;
|
|
81
295
|
import { DocsCatalog } from '../../foundation/discovery/docs-discovery.mjs';
|
|
296
|
+
import { AstryxError } from '../error.mjs';
|
|
297
|
+
import { OVERLAY_LANGUAGES } from '../../foundation/doc-compiler/read.mjs';
|
|
298
|
+
import { overlayLanguages } from '../../foundation/doc-compiler/read.mjs';
|
|
299
|
+
export { OVERLAY_LANGUAGES, overlayLanguages };
|