@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
package/api/docs/docs.type.d.mts
CHANGED
|
@@ -6,7 +6,22 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export type DocsListResponse = {
|
|
8
8
|
type: "docs.list";
|
|
9
|
+
/**
|
|
10
|
+
* every topic, each readable as a topic
|
|
11
|
+
*/
|
|
9
12
|
data: DocsListEntry[];
|
|
13
|
+
/**
|
|
14
|
+
* `namespaces`: the docs tree's top-level namespaces, each opened by its
|
|
15
|
+
* `topic` as a docs.node; `notLoaded`: each package whose doc files did not
|
|
16
|
+
* load, and why (its docs are withdrawn)
|
|
17
|
+
*/
|
|
18
|
+
meta?: {
|
|
19
|
+
namespaces?: DocsListNamespace[];
|
|
20
|
+
notLoaded?: Array<{
|
|
21
|
+
package: string;
|
|
22
|
+
message: string;
|
|
23
|
+
}>;
|
|
24
|
+
} | undefined;
|
|
10
25
|
};
|
|
11
26
|
export type DocsListEntry = {
|
|
12
27
|
topic: string;
|
|
@@ -22,6 +37,21 @@ export type DocsListEntry = {
|
|
|
22
37
|
*/
|
|
23
38
|
replaces?: string | undefined;
|
|
24
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* A top-level namespace of the docs tree, as `astryx docs --json` lists it in
|
|
42
|
+
* `meta.namespaces`.
|
|
43
|
+
*/
|
|
44
|
+
export type DocsListNamespace = {
|
|
45
|
+
/**
|
|
46
|
+
* its route, the argument that opens it
|
|
47
|
+
*/
|
|
48
|
+
topic: string;
|
|
49
|
+
description: string;
|
|
50
|
+
/**
|
|
51
|
+
* the package that owns it
|
|
52
|
+
*/
|
|
53
|
+
package: string;
|
|
54
|
+
};
|
|
25
55
|
/**
|
|
26
56
|
* astryx --json docs <topic> --index
|
|
27
57
|
*/
|
|
@@ -34,7 +64,65 @@ export type DocsIndexResponse = {
|
|
|
34
64
|
*/
|
|
35
65
|
export type DocsDetailResponse = {
|
|
36
66
|
type: "docs.detail";
|
|
37
|
-
|
|
67
|
+
/**
|
|
68
|
+
* the whole doc, and the moves from it
|
|
69
|
+
*/
|
|
70
|
+
data: DocsReadDoc & {
|
|
71
|
+
links: DocsLinks;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* A topic section as a read returns it. A read inlines each token reference
|
|
76
|
+
* and each `reference` block the author wrote, so its content holds only the
|
|
77
|
+
* stable ReferenceContentBlock kinds.
|
|
78
|
+
*/
|
|
79
|
+
export type DocsReadSection = Omit<import("@astryxdesign/cli/authoring").ReferenceSection, "content"> & {
|
|
80
|
+
content: import("@astryxdesign/cli/authoring").ReferenceContentBlock[];
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* A topic as a read returns it: every section a {@link DocsReadSection}.
|
|
84
|
+
*/
|
|
85
|
+
export type DocsReadDoc = Omit<import("@astryxdesign/cli/authoring").ReferenceDoc, "sections"> & {
|
|
86
|
+
sections: DocsReadSection[];
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* The doc a link opens (spec:AST-047 FR9). A docs read resolves every link:
|
|
90
|
+
* an inline `{@link <target>}` reads as `link.command`, a `reference` block in
|
|
91
|
+
* a namespace doc carries `link` (null when the target names no doc), and each
|
|
92
|
+
* `workflow` step carries `links`, one per reference. A topic read inlines a
|
|
93
|
+
* section's `reference` block as the doc it includes, then a line naming where
|
|
94
|
+
* that comes from and the command that opens it.
|
|
95
|
+
*/
|
|
96
|
+
export type DocLink = import("../../foundation/doc-compiler/links.mjs").DocLink;
|
|
97
|
+
/**
|
|
98
|
+
* One move: a whole `astryx docs` command a reader can run as is.
|
|
99
|
+
*/
|
|
100
|
+
export type DocsCommand = "astryx docs" | `astryx docs ${string}`;
|
|
101
|
+
/**
|
|
102
|
+
* The moves a docs read offers (spec:AST-047). Every read but the topic list
|
|
103
|
+
* carries them.
|
|
104
|
+
*/
|
|
105
|
+
export type DocsLinks = {
|
|
106
|
+
/**
|
|
107
|
+
* opens the level the read sits in: a section's
|
|
108
|
+
* topic index, a node's parent namespace, or the topic list
|
|
109
|
+
*/
|
|
110
|
+
up: DocsCommand;
|
|
111
|
+
/**
|
|
112
|
+
* opens the item before it at its level: the
|
|
113
|
+
* previous section of its topic, or the previous node in its parent's slot
|
|
114
|
+
*/
|
|
115
|
+
previous?: DocsCommand | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* opens the item after it at its level
|
|
118
|
+
*/
|
|
119
|
+
next?: DocsCommand | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* opens each doc a typed doc names: a
|
|
122
|
+
* function's command, a command's function, and the docs it lists as
|
|
123
|
+
* related
|
|
124
|
+
*/
|
|
125
|
+
related?: DocsCommand[] | undefined;
|
|
38
126
|
};
|
|
39
127
|
/**
|
|
40
128
|
* The section index of one topic: what the topic is, and the key each section
|
|
@@ -48,6 +136,10 @@ export type DocsIndex = {
|
|
|
48
136
|
title: string;
|
|
49
137
|
description: string;
|
|
50
138
|
sections: DocsIndexSection[];
|
|
139
|
+
/**
|
|
140
|
+
* the moves from the index
|
|
141
|
+
*/
|
|
142
|
+
links: DocsLinks;
|
|
51
143
|
};
|
|
52
144
|
export type DocsIndexSection = {
|
|
53
145
|
/**
|
|
@@ -66,7 +158,94 @@ export type DocsIndexSection = {
|
|
|
66
158
|
*/
|
|
67
159
|
export type DocsDetailSectionResponse = {
|
|
68
160
|
type: "docs.detail.section";
|
|
69
|
-
|
|
161
|
+
/**
|
|
162
|
+
* the section, and the moves from it: up to its topic's index, and across to
|
|
163
|
+
* the sections before and after it
|
|
164
|
+
*/
|
|
165
|
+
data: DocsReadSection & {
|
|
166
|
+
links: DocsLinks;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* astryx --json docs <route>, for a namespace or a typed doc in the docs tree
|
|
171
|
+
*/
|
|
172
|
+
export type DocsNodeResponse = {
|
|
173
|
+
type: "docs.node";
|
|
174
|
+
data: DocsNode;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* One node of the docs tree.
|
|
178
|
+
*/
|
|
179
|
+
export type DocsNode = {
|
|
180
|
+
/**
|
|
181
|
+
* the doc's DocId, built from its provider's
|
|
182
|
+
* ProviderId, kind, and name (see the provider-identity authoring doc);
|
|
183
|
+
* unchanged when the node moves. Always present; null on a generated level,
|
|
184
|
+
* such as `cli/api/functions`, which has no authored doc
|
|
185
|
+
*/
|
|
186
|
+
id: string | null;
|
|
187
|
+
/**
|
|
188
|
+
* pass it to `astryx docs`
|
|
189
|
+
*/
|
|
190
|
+
route: string;
|
|
191
|
+
/**
|
|
192
|
+
* `namespace`, or the typed doc's kind: `command`,
|
|
193
|
+
* `function`, `schema`, or `enum`
|
|
194
|
+
*/
|
|
195
|
+
kind: string;
|
|
196
|
+
/**
|
|
197
|
+
* the package that owns the node
|
|
198
|
+
*/
|
|
199
|
+
package: string;
|
|
200
|
+
title: string;
|
|
201
|
+
summary: string;
|
|
202
|
+
/**
|
|
203
|
+
* the namespaces above it, top first
|
|
204
|
+
*/
|
|
205
|
+
breadcrumb: DocsNodeLink[];
|
|
206
|
+
/**
|
|
207
|
+
* a namespace's slots that hold children, in
|
|
208
|
+
* order; empty for a typed doc
|
|
209
|
+
*/
|
|
210
|
+
slots: DocsNodeSlot[];
|
|
211
|
+
/**
|
|
212
|
+
* a typed doc's content; empty for a namespace
|
|
213
|
+
*/
|
|
214
|
+
content: import("@astryxdesign/cli/authoring").ReferenceContentBlock[];
|
|
215
|
+
/**
|
|
216
|
+
* the moves from the node: up to its parent (the
|
|
217
|
+
* topic list, for a top-level namespace), and across to its neighbors in its
|
|
218
|
+
* parent's slot
|
|
219
|
+
*/
|
|
220
|
+
links: DocsLinks;
|
|
221
|
+
};
|
|
222
|
+
export type DocsNodeLink = {
|
|
223
|
+
route: string;
|
|
224
|
+
title: string;
|
|
225
|
+
};
|
|
226
|
+
export type DocsNodeSlot = {
|
|
227
|
+
/**
|
|
228
|
+
* the slot's key in its namespace
|
|
229
|
+
*/
|
|
230
|
+
name: string;
|
|
231
|
+
title: string;
|
|
232
|
+
/**
|
|
233
|
+
* in reading order
|
|
234
|
+
*/
|
|
235
|
+
children: DocsNodeChild[];
|
|
236
|
+
};
|
|
237
|
+
export type DocsNodeChild = {
|
|
238
|
+
/**
|
|
239
|
+
* pass it to `astryx docs` to go one level down
|
|
240
|
+
*/
|
|
241
|
+
route: string;
|
|
242
|
+
/**
|
|
243
|
+
* the last segment of its route
|
|
244
|
+
*/
|
|
245
|
+
name: string;
|
|
246
|
+
kind: string;
|
|
247
|
+
title: string;
|
|
248
|
+
summary: string;
|
|
70
249
|
};
|
|
71
250
|
/**
|
|
72
251
|
* Options for `docs()`.
|
package/api/docs/docs.type.mjs
CHANGED
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* astryx --json docs <topic> -> docs.detail
|
|
11
11
|
* astryx --json docs <topic> --index -> docs.index
|
|
12
12
|
* astryx --json docs <topic> <section> -> docs.detail.section
|
|
13
|
+
* astryx --json docs <route> -> docs.node (a namespace or a
|
|
14
|
+
* typed doc in the docs tree)
|
|
13
15
|
* (unknown topic/section) -> CLIError
|
|
14
16
|
*/
|
|
15
17
|
|
|
@@ -17,7 +19,11 @@
|
|
|
17
19
|
* astryx --json docs
|
|
18
20
|
* @typedef {object} DocsListResponse
|
|
19
21
|
* @property {'docs.list'} type
|
|
20
|
-
* @property {DocsListEntry[]} data
|
|
22
|
+
* @property {DocsListEntry[]} data every topic, each readable as a topic
|
|
23
|
+
* @property {{namespaces?: DocsListNamespace[], notLoaded?: Array<{package: string, message: string}>}} [meta]
|
|
24
|
+
* `namespaces`: the docs tree's top-level namespaces, each opened by its
|
|
25
|
+
* `topic` as a docs.node; `notLoaded`: each package whose doc files did not
|
|
26
|
+
* load, and why (its docs are withdrawn)
|
|
21
27
|
*/
|
|
22
28
|
|
|
23
29
|
/**
|
|
@@ -30,6 +36,15 @@
|
|
|
30
36
|
* was contributed as a replacement
|
|
31
37
|
*/
|
|
32
38
|
|
|
39
|
+
/**
|
|
40
|
+
* A top-level namespace of the docs tree, as `astryx docs --json` lists it in
|
|
41
|
+
* `meta.namespaces`.
|
|
42
|
+
* @typedef {object} DocsListNamespace
|
|
43
|
+
* @property {string} topic its route, the argument that opens it
|
|
44
|
+
* @property {string} description
|
|
45
|
+
* @property {string} package the package that owns it
|
|
46
|
+
*/
|
|
47
|
+
|
|
33
48
|
/**
|
|
34
49
|
* astryx --json docs <topic> --index
|
|
35
50
|
* @typedef {object} DocsIndexResponse
|
|
@@ -41,7 +56,51 @@
|
|
|
41
56
|
* astryx --json docs <topic>
|
|
42
57
|
* @typedef {object} DocsDetailResponse
|
|
43
58
|
* @property {'docs.detail'} type
|
|
44
|
-
* @property {
|
|
59
|
+
* @property {DocsReadDoc & {links: DocsLinks}} data
|
|
60
|
+
* the whole doc, and the moves from it
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A topic section as a read returns it. A read inlines each token reference
|
|
65
|
+
* and each `reference` block the author wrote, so its content holds only the
|
|
66
|
+
* stable ReferenceContentBlock kinds.
|
|
67
|
+
* @typedef {Omit<import('@astryxdesign/cli/authoring').ReferenceSection, 'content'>
|
|
68
|
+
* & {content: import('@astryxdesign/cli/authoring').ReferenceContentBlock[]}} DocsReadSection
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* A topic as a read returns it: every section a {@link DocsReadSection}.
|
|
73
|
+
* @typedef {Omit<import('@astryxdesign/cli/authoring').ReferenceDoc, 'sections'>
|
|
74
|
+
* & {sections: DocsReadSection[]}} DocsReadDoc
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The doc a link opens (spec:AST-047 FR9). A docs read resolves every link:
|
|
79
|
+
* an inline `{@link <target>}` reads as `link.command`, a `reference` block in
|
|
80
|
+
* a namespace doc carries `link` (null when the target names no doc), and each
|
|
81
|
+
* `workflow` step carries `links`, one per reference. A topic read inlines a
|
|
82
|
+
* section's `reference` block as the doc it includes, then a line naming where
|
|
83
|
+
* that comes from and the command that opens it.
|
|
84
|
+
* @typedef {import('../../foundation/doc-compiler/links.mjs').DocLink} DocLink
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* One move: a whole `astryx docs` command a reader can run as is.
|
|
89
|
+
* @typedef {'astryx docs' | `astryx docs ${string}`} DocsCommand
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The moves a docs read offers (spec:AST-047). Every read but the topic list
|
|
94
|
+
* carries them.
|
|
95
|
+
* @typedef {object} DocsLinks
|
|
96
|
+
* @property {DocsCommand} up opens the level the read sits in: a section's
|
|
97
|
+
* topic index, a node's parent namespace, or the topic list
|
|
98
|
+
* @property {DocsCommand} [previous] opens the item before it at its level: the
|
|
99
|
+
* previous section of its topic, or the previous node in its parent's slot
|
|
100
|
+
* @property {DocsCommand} [next] opens the item after it at its level
|
|
101
|
+
* @property {DocsCommand[]} [related] opens each doc a typed doc names: a
|
|
102
|
+
* function's command, a command's function, and the docs it lists as
|
|
103
|
+
* related
|
|
45
104
|
*/
|
|
46
105
|
|
|
47
106
|
/**
|
|
@@ -52,6 +111,7 @@
|
|
|
52
111
|
* @property {string} title
|
|
53
112
|
* @property {string} description
|
|
54
113
|
* @property {DocsIndexSection[]} sections
|
|
114
|
+
* @property {DocsLinks} links the moves from the index
|
|
55
115
|
*/
|
|
56
116
|
|
|
57
117
|
/**
|
|
@@ -66,7 +126,61 @@
|
|
|
66
126
|
* astryx --json docs <topic> <section>
|
|
67
127
|
* @typedef {object} DocsDetailSectionResponse
|
|
68
128
|
* @property {'docs.detail.section'} type
|
|
69
|
-
* @property {
|
|
129
|
+
* @property {DocsReadSection & {links: DocsLinks}} data
|
|
130
|
+
* the section, and the moves from it: up to its topic's index, and across to
|
|
131
|
+
* the sections before and after it
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* astryx --json docs <route>, for a namespace or a typed doc in the docs tree
|
|
136
|
+
* @typedef {object} DocsNodeResponse
|
|
137
|
+
* @property {'docs.node'} type
|
|
138
|
+
* @property {DocsNode} data
|
|
139
|
+
*/
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* One node of the docs tree.
|
|
143
|
+
* @typedef {object} DocsNode
|
|
144
|
+
* @property {string | null} id the doc's DocId, built from its provider's
|
|
145
|
+
* ProviderId, kind, and name (see the provider-identity authoring doc);
|
|
146
|
+
* unchanged when the node moves. Always present; null on a generated level,
|
|
147
|
+
* such as `cli/api/functions`, which has no authored doc
|
|
148
|
+
* @property {string} route pass it to `astryx docs`
|
|
149
|
+
* @property {string} kind `namespace`, or the typed doc's kind: `command`,
|
|
150
|
+
* `function`, `schema`, or `enum`
|
|
151
|
+
* @property {string} package the package that owns the node
|
|
152
|
+
* @property {string} title
|
|
153
|
+
* @property {string} summary
|
|
154
|
+
* @property {DocsNodeLink[]} breadcrumb the namespaces above it, top first
|
|
155
|
+
* @property {DocsNodeSlot[]} slots a namespace's slots that hold children, in
|
|
156
|
+
* order; empty for a typed doc
|
|
157
|
+
* @property {import('@astryxdesign/cli/authoring').ReferenceContentBlock[]} content
|
|
158
|
+
* a typed doc's content; empty for a namespace
|
|
159
|
+
* @property {DocsLinks} links the moves from the node: up to its parent (the
|
|
160
|
+
* topic list, for a top-level namespace), and across to its neighbors in its
|
|
161
|
+
* parent's slot
|
|
162
|
+
*/
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* @typedef {object} DocsNodeLink
|
|
166
|
+
* @property {string} route
|
|
167
|
+
* @property {string} title
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @typedef {object} DocsNodeSlot
|
|
172
|
+
* @property {string} name the slot's key in its namespace
|
|
173
|
+
* @property {string} title
|
|
174
|
+
* @property {DocsNodeChild[]} children in reading order
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @typedef {object} DocsNodeChild
|
|
179
|
+
* @property {string} route pass it to `astryx docs` to go one level down
|
|
180
|
+
* @property {string} name the last segment of its route
|
|
181
|
+
* @property {string} kind
|
|
182
|
+
* @property {string} title
|
|
183
|
+
* @property {string} summary
|
|
70
184
|
*/
|
|
71
185
|
|
|
72
186
|
/**
|
package/api/docs/index/index.mjs
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import {indexView} from '../../../foundation/doc-compiler/lenses.mjs';
|
|
18
|
-
import {resolveTopicDocs} from '../_adapter.mjs';
|
|
18
|
+
import {resolveTopicDocs, topicLinks} from '../_adapter.mjs';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* @param {string} topic
|
|
@@ -27,6 +27,14 @@ import {resolveTopicDocs} from '../_adapter.mjs';
|
|
|
27
27
|
* @returns {Promise<import('../docs.type.mjs').DocsIndexResponse>}
|
|
28
28
|
*/
|
|
29
29
|
export async function index(topic, options = {}) {
|
|
30
|
-
const {node} = await resolveTopicDocs(topic, options);
|
|
31
|
-
|
|
30
|
+
const {node, entry, catalog} = await resolveTopicDocs(topic, options);
|
|
31
|
+
const view = indexView(node);
|
|
32
|
+
/** @type {import('../docs.type.mjs').DocsIndex} */
|
|
33
|
+
const data = {
|
|
34
|
+
...view,
|
|
35
|
+
// A guide the docs tree places is read by its route, not its doc name.
|
|
36
|
+
name: entry.tree ? entry.name : view.name,
|
|
37
|
+
links: await topicLinks(catalog, entry),
|
|
38
|
+
};
|
|
39
|
+
return {type: 'docs.index', data};
|
|
32
40
|
}
|
|
@@ -49,7 +49,7 @@ describe('docs.index leaf', () => {
|
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
describe('docs() topic reads', () => {
|
|
52
|
-
it('returns the whole topic by default
|
|
52
|
+
it('returns the whole topic by default', async () => {
|
|
53
53
|
const res = await docs('theme');
|
|
54
54
|
expect(res.type).toBe('docs.detail');
|
|
55
55
|
expect(res.data.sections[0].content.length).toBeGreaterThan(0);
|