@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
|
@@ -25,7 +25,7 @@ export namespace AuthoredDocGraphFields {
|
|
|
25
25
|
internal: "internal";
|
|
26
26
|
}>>;
|
|
27
27
|
}
|
|
28
|
-
/** Runtime schema for
|
|
28
|
+
/** Runtime schema for the stable content-block union published in 0.6.x. */
|
|
29
29
|
export const ReferenceContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
30
30
|
type: z.ZodLiteral<"prose">;
|
|
31
31
|
text: z.ZodString;
|
|
@@ -55,6 +55,120 @@ export const ReferenceContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
55
55
|
type: z.ZodLiteral<"token-ref">;
|
|
56
56
|
topic: z.ZodString;
|
|
57
57
|
section: z.ZodString;
|
|
58
|
+
}, z.core.$strict>], "type">;
|
|
59
|
+
/** Runtime schema for graph-only blocks used by NamespaceDoc. */
|
|
60
|
+
export const GraphContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
61
|
+
type: z.ZodLiteral<"workflow">;
|
|
62
|
+
title: z.ZodOptional<z.ZodString>;
|
|
63
|
+
steps: z.ZodArray<z.ZodObject<{
|
|
64
|
+
title: z.ZodString;
|
|
65
|
+
description: z.ZodOptional<z.ZodString>;
|
|
66
|
+
references: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
67
|
+
}, z.core.$strict>>;
|
|
68
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
69
|
+
type: z.ZodLiteral<"collection">;
|
|
70
|
+
title: z.ZodOptional<z.ZodString>;
|
|
71
|
+
source: z.ZodObject<{
|
|
72
|
+
slot: z.ZodString;
|
|
73
|
+
}, z.core.$strict>;
|
|
74
|
+
presentation: z.ZodOptional<z.ZodEnum<{
|
|
75
|
+
list: "list";
|
|
76
|
+
cards: "cards";
|
|
77
|
+
compact: "compact";
|
|
78
|
+
}>>;
|
|
79
|
+
whenEmpty: z.ZodOptional<z.ZodEnum<{
|
|
80
|
+
show: "show";
|
|
81
|
+
omit: "omit";
|
|
82
|
+
}>>;
|
|
83
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
84
|
+
type: z.ZodLiteral<"reference">;
|
|
85
|
+
target: z.ZodString;
|
|
86
|
+
projection: z.ZodOptional<z.ZodObject<{
|
|
87
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
88
|
+
sections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
89
|
+
}, z.core.$strict>>;
|
|
90
|
+
presentation: z.ZodOptional<z.ZodEnum<{
|
|
91
|
+
compact: "compact";
|
|
92
|
+
summary: "summary";
|
|
93
|
+
full: "full";
|
|
94
|
+
}>>;
|
|
95
|
+
}, z.core.$strict>], "type">;
|
|
96
|
+
/**
|
|
97
|
+
* A topic section's blocks: the stable union, plus a reference block, which a
|
|
98
|
+
* read inlines as the doc it includes.
|
|
99
|
+
*/
|
|
100
|
+
export const SectionContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
101
|
+
type: z.ZodLiteral<"prose">;
|
|
102
|
+
text: z.ZodString;
|
|
103
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
104
|
+
type: z.ZodLiteral<"heading">;
|
|
105
|
+
level: z.ZodUnion<readonly [z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<6>]>;
|
|
106
|
+
text: z.ZodString;
|
|
107
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
108
|
+
type: z.ZodLiteral<"code">;
|
|
109
|
+
lang: z.ZodString;
|
|
110
|
+
code: z.ZodString;
|
|
111
|
+
label: z.ZodOptional<z.ZodString>;
|
|
112
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
113
|
+
type: z.ZodLiteral<"table">;
|
|
114
|
+
headers: z.ZodArray<z.ZodString>;
|
|
115
|
+
rows: z.ZodArray<z.ZodArray<z.ZodString>>;
|
|
116
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
117
|
+
type: z.ZodLiteral<"list">;
|
|
118
|
+
style: z.ZodEnum<{
|
|
119
|
+
ordered: "ordered";
|
|
120
|
+
unordered: "unordered";
|
|
121
|
+
do: "do";
|
|
122
|
+
dont: "dont";
|
|
123
|
+
}>;
|
|
124
|
+
items: z.ZodArray<z.ZodString>;
|
|
125
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
126
|
+
type: z.ZodLiteral<"token-ref">;
|
|
127
|
+
topic: z.ZodString;
|
|
128
|
+
section: z.ZodString;
|
|
129
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
130
|
+
type: z.ZodLiteral<"reference">;
|
|
131
|
+
target: z.ZodString;
|
|
132
|
+
projection: z.ZodOptional<z.ZodObject<{
|
|
133
|
+
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
134
|
+
sections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
135
|
+
}, z.core.$strict>>;
|
|
136
|
+
presentation: z.ZodOptional<z.ZodEnum<{
|
|
137
|
+
compact: "compact";
|
|
138
|
+
summary: "summary";
|
|
139
|
+
full: "full";
|
|
140
|
+
}>>;
|
|
141
|
+
}, z.core.$strict>], "type">;
|
|
142
|
+
/** Namespace content accepts both stable reference blocks and graph-only blocks. */
|
|
143
|
+
export const NamespaceContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
144
|
+
type: z.ZodLiteral<"prose">;
|
|
145
|
+
text: z.ZodString;
|
|
146
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
147
|
+
type: z.ZodLiteral<"heading">;
|
|
148
|
+
level: z.ZodUnion<readonly [z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<6>]>;
|
|
149
|
+
text: z.ZodString;
|
|
150
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
151
|
+
type: z.ZodLiteral<"code">;
|
|
152
|
+
lang: z.ZodString;
|
|
153
|
+
code: z.ZodString;
|
|
154
|
+
label: z.ZodOptional<z.ZodString>;
|
|
155
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
156
|
+
type: z.ZodLiteral<"table">;
|
|
157
|
+
headers: z.ZodArray<z.ZodString>;
|
|
158
|
+
rows: z.ZodArray<z.ZodArray<z.ZodString>>;
|
|
159
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
160
|
+
type: z.ZodLiteral<"list">;
|
|
161
|
+
style: z.ZodEnum<{
|
|
162
|
+
ordered: "ordered";
|
|
163
|
+
unordered: "unordered";
|
|
164
|
+
do: "do";
|
|
165
|
+
dont: "dont";
|
|
166
|
+
}>;
|
|
167
|
+
items: z.ZodArray<z.ZodString>;
|
|
168
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
169
|
+
type: z.ZodLiteral<"token-ref">;
|
|
170
|
+
topic: z.ZodString;
|
|
171
|
+
section: z.ZodString;
|
|
58
172
|
}, z.core.$strict>, z.ZodObject<{
|
|
59
173
|
type: z.ZodLiteral<"workflow">;
|
|
60
174
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -235,29 +349,6 @@ export const GenericDocKindSchema: z.ZodObject<{
|
|
|
235
349
|
type: z.ZodLiteral<"token-ref">;
|
|
236
350
|
topic: z.ZodString;
|
|
237
351
|
section: z.ZodString;
|
|
238
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
239
|
-
type: z.ZodLiteral<"workflow">;
|
|
240
|
-
title: z.ZodOptional<z.ZodString>;
|
|
241
|
-
steps: z.ZodArray<z.ZodObject<{
|
|
242
|
-
title: z.ZodString;
|
|
243
|
-
description: z.ZodOptional<z.ZodString>;
|
|
244
|
-
references: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
245
|
-
}, z.core.$strict>>;
|
|
246
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
247
|
-
type: z.ZodLiteral<"collection">;
|
|
248
|
-
title: z.ZodOptional<z.ZodString>;
|
|
249
|
-
source: z.ZodObject<{
|
|
250
|
-
slot: z.ZodString;
|
|
251
|
-
}, z.core.$strict>;
|
|
252
|
-
presentation: z.ZodOptional<z.ZodEnum<{
|
|
253
|
-
list: "list";
|
|
254
|
-
cards: "cards";
|
|
255
|
-
compact: "compact";
|
|
256
|
-
}>>;
|
|
257
|
-
whenEmpty: z.ZodOptional<z.ZodEnum<{
|
|
258
|
-
show: "show";
|
|
259
|
-
omit: "omit";
|
|
260
|
-
}>>;
|
|
261
352
|
}, z.core.$strict>, z.ZodObject<{
|
|
262
353
|
type: z.ZodLiteral<"reference">;
|
|
263
354
|
target: z.ZodString;
|
|
@@ -351,41 +442,6 @@ export const SchemaDocKindSchema: z.ZodObject<{
|
|
|
351
442
|
type: z.ZodLiteral<"token-ref">;
|
|
352
443
|
topic: z.ZodString;
|
|
353
444
|
section: z.ZodString;
|
|
354
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
355
|
-
type: z.ZodLiteral<"workflow">;
|
|
356
|
-
title: z.ZodOptional<z.ZodString>;
|
|
357
|
-
steps: z.ZodArray<z.ZodObject<{
|
|
358
|
-
title: z.ZodString;
|
|
359
|
-
description: z.ZodOptional<z.ZodString>;
|
|
360
|
-
references: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
361
|
-
}, z.core.$strict>>;
|
|
362
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
363
|
-
type: z.ZodLiteral<"collection">;
|
|
364
|
-
title: z.ZodOptional<z.ZodString>;
|
|
365
|
-
source: z.ZodObject<{
|
|
366
|
-
slot: z.ZodString;
|
|
367
|
-
}, z.core.$strict>;
|
|
368
|
-
presentation: z.ZodOptional<z.ZodEnum<{
|
|
369
|
-
list: "list";
|
|
370
|
-
cards: "cards";
|
|
371
|
-
compact: "compact";
|
|
372
|
-
}>>;
|
|
373
|
-
whenEmpty: z.ZodOptional<z.ZodEnum<{
|
|
374
|
-
show: "show";
|
|
375
|
-
omit: "omit";
|
|
376
|
-
}>>;
|
|
377
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
378
|
-
type: z.ZodLiteral<"reference">;
|
|
379
|
-
target: z.ZodString;
|
|
380
|
-
projection: z.ZodOptional<z.ZodObject<{
|
|
381
|
-
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
382
|
-
sections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
383
|
-
}, z.core.$strict>>;
|
|
384
|
-
presentation: z.ZodOptional<z.ZodEnum<{
|
|
385
|
-
compact: "compact";
|
|
386
|
-
summary: "summary";
|
|
387
|
-
full: "full";
|
|
388
|
-
}>>;
|
|
389
445
|
}, z.core.$strict>], "type">>>;
|
|
390
446
|
placement: z.ZodOptional<z.ZodObject<{
|
|
391
447
|
parent: z.ZodString;
|
|
@@ -470,41 +526,6 @@ export const CommandDocKindSchema: z.ZodObject<{
|
|
|
470
526
|
type: z.ZodLiteral<"token-ref">;
|
|
471
527
|
topic: z.ZodString;
|
|
472
528
|
section: z.ZodString;
|
|
473
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
474
|
-
type: z.ZodLiteral<"workflow">;
|
|
475
|
-
title: z.ZodOptional<z.ZodString>;
|
|
476
|
-
steps: z.ZodArray<z.ZodObject<{
|
|
477
|
-
title: z.ZodString;
|
|
478
|
-
description: z.ZodOptional<z.ZodString>;
|
|
479
|
-
references: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
480
|
-
}, z.core.$strict>>;
|
|
481
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
482
|
-
type: z.ZodLiteral<"collection">;
|
|
483
|
-
title: z.ZodOptional<z.ZodString>;
|
|
484
|
-
source: z.ZodObject<{
|
|
485
|
-
slot: z.ZodString;
|
|
486
|
-
}, z.core.$strict>;
|
|
487
|
-
presentation: z.ZodOptional<z.ZodEnum<{
|
|
488
|
-
list: "list";
|
|
489
|
-
cards: "cards";
|
|
490
|
-
compact: "compact";
|
|
491
|
-
}>>;
|
|
492
|
-
whenEmpty: z.ZodOptional<z.ZodEnum<{
|
|
493
|
-
show: "show";
|
|
494
|
-
omit: "omit";
|
|
495
|
-
}>>;
|
|
496
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
497
|
-
type: z.ZodLiteral<"reference">;
|
|
498
|
-
target: z.ZodString;
|
|
499
|
-
projection: z.ZodOptional<z.ZodObject<{
|
|
500
|
-
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
501
|
-
sections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
502
|
-
}, z.core.$strict>>;
|
|
503
|
-
presentation: z.ZodOptional<z.ZodEnum<{
|
|
504
|
-
compact: "compact";
|
|
505
|
-
summary: "summary";
|
|
506
|
-
full: "full";
|
|
507
|
-
}>>;
|
|
508
529
|
}, z.core.$strict>], "type">>>;
|
|
509
530
|
placement: z.ZodOptional<z.ZodObject<{
|
|
510
531
|
parent: z.ZodString;
|
|
@@ -877,29 +898,6 @@ export const LegacyDocSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
877
898
|
type: z.ZodLiteral<"token-ref">;
|
|
878
899
|
topic: z.ZodString;
|
|
879
900
|
section: z.ZodString;
|
|
880
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
881
|
-
type: z.ZodLiteral<"workflow">;
|
|
882
|
-
title: z.ZodOptional<z.ZodString>;
|
|
883
|
-
steps: z.ZodArray<z.ZodObject<{
|
|
884
|
-
title: z.ZodString;
|
|
885
|
-
description: z.ZodOptional<z.ZodString>;
|
|
886
|
-
references: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
887
|
-
}, z.core.$strict>>;
|
|
888
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
889
|
-
type: z.ZodLiteral<"collection">;
|
|
890
|
-
title: z.ZodOptional<z.ZodString>;
|
|
891
|
-
source: z.ZodObject<{
|
|
892
|
-
slot: z.ZodString;
|
|
893
|
-
}, z.core.$strict>;
|
|
894
|
-
presentation: z.ZodOptional<z.ZodEnum<{
|
|
895
|
-
list: "list";
|
|
896
|
-
cards: "cards";
|
|
897
|
-
compact: "compact";
|
|
898
|
-
}>>;
|
|
899
|
-
whenEmpty: z.ZodOptional<z.ZodEnum<{
|
|
900
|
-
show: "show";
|
|
901
|
-
omit: "omit";
|
|
902
|
-
}>>;
|
|
903
901
|
}, z.core.$strict>, z.ZodObject<{
|
|
904
902
|
type: z.ZodLiteral<"reference">;
|
|
905
903
|
target: z.ZodString;
|
|
@@ -933,6 +931,8 @@ export type AuthoredDocGraphFieldsType = import("./base/type.js").AuthoredDocGra
|
|
|
933
931
|
export type AuthoredDocKind = import("./base/type.js").AuthoredDocKind;
|
|
934
932
|
export type NamespaceDoc = import("./namespace/type.js").NamespaceDoc;
|
|
935
933
|
export type ReferenceContentBlock = import("./reference/type.js").ReferenceContentBlock;
|
|
934
|
+
export type GraphContentBlock = import("./reference/type.js").GraphContentBlock;
|
|
935
|
+
export type ReferenceSection = import("./reference/type.js").ReferenceSection;
|
|
936
936
|
export type ReferenceDoc = import("./reference/type.js").ReferenceDoc;
|
|
937
937
|
export type SingleComponentDoc = import("./component/type.js").SingleComponentDoc;
|
|
938
938
|
export type ComponentPropDoc = import("./base/type.js").ComponentPropDoc;
|
|
@@ -944,6 +944,8 @@ export type EnumDoc = import("./enum/type.js").EnumDoc;
|
|
|
944
944
|
export type _AuthoredDocKindDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").Equal<z.infer<typeof AuthoredDocKindSchema>, AuthoredDocKind>>;
|
|
945
945
|
export type _AuthoredDocGraphDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").MutuallyAssignable<z.infer<typeof _AuthoredDocGraphSchema>, AuthoredDocGraphFieldsType>>;
|
|
946
946
|
export type _ReferenceContentBlockDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").Equal<z.infer<typeof ReferenceContentBlockSchema>, ReferenceContentBlock>>;
|
|
947
|
+
export type _GraphContentBlockDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").Equal<z.infer<typeof GraphContentBlockSchema>, GraphContentBlock>>;
|
|
948
|
+
export type _SectionContentBlockDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").Equal<z.infer<typeof SectionContentBlockSchema>, ReferenceSection["content"][number]>>;
|
|
947
949
|
/**
|
|
948
950
|
* A stamped component doc as it loads. The loader accepts what the unstamped
|
|
949
951
|
* format always accepted, so stamping an existing doc never breaks it:
|
|
@@ -15,6 +15,8 @@ import {z} from 'zod';
|
|
|
15
15
|
/** @typedef {import('./base/type.js').AuthoredDocKind} AuthoredDocKind */
|
|
16
16
|
/** @typedef {import('./namespace/type.js').NamespaceDoc} NamespaceDoc */
|
|
17
17
|
/** @typedef {import('./reference/type.js').ReferenceContentBlock} ReferenceContentBlock */
|
|
18
|
+
/** @typedef {import('./reference/type.js').GraphContentBlock} GraphContentBlock */
|
|
19
|
+
/** @typedef {import('./reference/type.js').ReferenceSection} ReferenceSection */
|
|
18
20
|
/** @typedef {import('./reference/type.js').ReferenceDoc} ReferenceDoc */
|
|
19
21
|
/** @typedef {import('./component/type.js').SingleComponentDoc} SingleComponentDoc */
|
|
20
22
|
/** @typedef {import('./base/type.js').ComponentPropDoc} ComponentPropDoc */
|
|
@@ -161,7 +163,7 @@ const ReferenceBlockSchema = z
|
|
|
161
163
|
})
|
|
162
164
|
.strict();
|
|
163
165
|
|
|
164
|
-
/** Runtime schema for
|
|
166
|
+
/** Runtime schema for the stable content-block union published in 0.6.x. */
|
|
165
167
|
export const ReferenceContentBlockSchema = z.discriminatedUnion('type', [
|
|
166
168
|
ProseBlockSchema,
|
|
167
169
|
HeadingBlockSchema,
|
|
@@ -169,6 +171,37 @@ export const ReferenceContentBlockSchema = z.discriminatedUnion('type', [
|
|
|
169
171
|
TableBlockSchema,
|
|
170
172
|
ListBlockSchema,
|
|
171
173
|
TokenReferenceBlockSchema,
|
|
174
|
+
]);
|
|
175
|
+
|
|
176
|
+
/** Runtime schema for graph-only blocks used by NamespaceDoc. */
|
|
177
|
+
export const GraphContentBlockSchema = z.discriminatedUnion('type', [
|
|
178
|
+
WorkflowBlockSchema,
|
|
179
|
+
CollectionBlockSchema,
|
|
180
|
+
ReferenceBlockSchema,
|
|
181
|
+
]);
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* A topic section's blocks: the stable union, plus a reference block, which a
|
|
185
|
+
* read inlines as the doc it includes.
|
|
186
|
+
*/
|
|
187
|
+
export const SectionContentBlockSchema = z.discriminatedUnion('type', [
|
|
188
|
+
ProseBlockSchema,
|
|
189
|
+
HeadingBlockSchema,
|
|
190
|
+
CodeBlockSchema,
|
|
191
|
+
TableBlockSchema,
|
|
192
|
+
ListBlockSchema,
|
|
193
|
+
TokenReferenceBlockSchema,
|
|
194
|
+
ReferenceBlockSchema,
|
|
195
|
+
]);
|
|
196
|
+
|
|
197
|
+
/** Namespace content accepts both stable reference blocks and graph-only blocks. */
|
|
198
|
+
export const NamespaceContentBlockSchema = z.discriminatedUnion('type', [
|
|
199
|
+
ProseBlockSchema,
|
|
200
|
+
HeadingBlockSchema,
|
|
201
|
+
CodeBlockSchema,
|
|
202
|
+
TableBlockSchema,
|
|
203
|
+
ListBlockSchema,
|
|
204
|
+
TokenReferenceBlockSchema,
|
|
172
205
|
WorkflowBlockSchema,
|
|
173
206
|
CollectionBlockSchema,
|
|
174
207
|
ReferenceBlockSchema,
|
|
@@ -183,12 +216,30 @@ export const ReferenceContentBlockSchema = z.discriminatedUnion('type', [
|
|
|
183
216
|
* >} _ReferenceContentBlockDriftLock
|
|
184
217
|
*/
|
|
185
218
|
|
|
219
|
+
/**
|
|
220
|
+
* @typedef {import('../_shared/contract.js').Expect<
|
|
221
|
+
* import('../_shared/contract.js').Equal<
|
|
222
|
+
* z.infer<typeof GraphContentBlockSchema>,
|
|
223
|
+
* GraphContentBlock
|
|
224
|
+
* >
|
|
225
|
+
* >} _GraphContentBlockDriftLock
|
|
226
|
+
*/
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* @typedef {import('../_shared/contract.js').Expect<
|
|
230
|
+
* import('../_shared/contract.js').Equal<
|
|
231
|
+
* z.infer<typeof SectionContentBlockSchema>,
|
|
232
|
+
* ReferenceSection['content'][number]
|
|
233
|
+
* >
|
|
234
|
+
* >} _SectionContentBlockDriftLock
|
|
235
|
+
*/
|
|
236
|
+
|
|
186
237
|
const ReferenceSectionSchema = z
|
|
187
238
|
.object({
|
|
188
239
|
id: nonEmptyString.optional(),
|
|
189
240
|
title: nonEmptyString,
|
|
190
241
|
category: z.string().optional(),
|
|
191
|
-
content: z.array(
|
|
242
|
+
content: z.array(SectionContentBlockSchema),
|
|
192
243
|
previewType: z
|
|
193
244
|
.enum([
|
|
194
245
|
'swatch',
|
|
@@ -605,7 +656,7 @@ export const NamespaceDocKindSchema = z
|
|
|
605
656
|
.strict(),
|
|
606
657
|
)
|
|
607
658
|
.optional(),
|
|
608
|
-
blocks: z.array(
|
|
659
|
+
blocks: z.array(NamespaceContentBlockSchema).optional(),
|
|
609
660
|
})
|
|
610
661
|
.strict()
|
|
611
662
|
.superRefine((doc, context) => {
|
|
@@ -12,25 +12,27 @@ export const doc = {
|
|
|
12
12
|
displayName: 'Authored doc graph fields',
|
|
13
13
|
namespace: 'authoring',
|
|
14
14
|
description:
|
|
15
|
-
|
|
15
|
+
"Placement, compatibility aliases, and audience: fields every authored doc kind declares for the docs tree. The docs tree reads `placement` for every guide, the CLI's and each integration's; aliases and audience are not built yet. A reference topic outside the docs tree that sets one fails to load, and other doc kinds accept them and ignore them.",
|
|
16
16
|
appliesTo: 'Every supported .doc.mjs object',
|
|
17
17
|
fields: [
|
|
18
18
|
{
|
|
19
19
|
name: 'placement',
|
|
20
20
|
type: 'DocPlacement',
|
|
21
21
|
description:
|
|
22
|
-
'
|
|
22
|
+
"Names the doc's one parent in the docs tree: a namespace of the same package, one of its slots, and an order. Read for every guide, the CLI's and each integration's: a guide with `placement` gets a route in the tree instead of a flat topic name, and cannot also `replaces` or `extends` a topic. In the CLI's own topic directory a topic that sets it fails to load: the CLI keeps its guides in its docs tree directory. Commands, API functions, schemas, and enums do not set it: the tree adopts each by its `namespace`.",
|
|
23
23
|
fields: [
|
|
24
24
|
{
|
|
25
25
|
name: 'placement.parent',
|
|
26
26
|
type: 'string',
|
|
27
|
-
description:
|
|
27
|
+
description:
|
|
28
|
+
'The parent namespace: `namespace:<name>` in the same package.',
|
|
28
29
|
required: true,
|
|
29
30
|
},
|
|
30
31
|
{
|
|
31
32
|
name: 'placement.slot',
|
|
32
33
|
type: 'string',
|
|
33
|
-
description:
|
|
34
|
+
description:
|
|
35
|
+
"A slot the parent namespace declares; it must accept this doc's kind. Optional when the parent has one slot.",
|
|
34
36
|
},
|
|
35
37
|
{
|
|
36
38
|
name: 'placement.order',
|
|
@@ -43,7 +45,7 @@ export const doc = {
|
|
|
43
45
|
name: 'aliases',
|
|
44
46
|
type: 'string[]',
|
|
45
47
|
description:
|
|
46
|
-
'Prior names or routes the docs
|
|
48
|
+
'Prior names or routes the docs tree will keep resolving to this doc, without creating another identity. Not read yet: a topic that sets it fails to load.',
|
|
47
49
|
},
|
|
48
50
|
{
|
|
49
51
|
name: 'audience',
|
|
@@ -56,7 +58,7 @@ export const doc = {
|
|
|
56
58
|
notes: [
|
|
57
59
|
{
|
|
58
60
|
type: 'prose',
|
|
59
|
-
text: 'Unknown fields: `component`, `function`, `generic`, `schema`, `command` and `enum` docs accept a field they do not know, and nothing reads it, so a doc written for a newer CLI still loads here. `page`, `block` and `namespace` docs refuse one. Sections and content blocks refuse one in every doc.',
|
|
61
|
+
text: 'Unknown fields: `component`, `function`, `generic`, `schema`, `command` and `enum` docs accept a field they do not know, and nothing reads it, so a doc written for a newer CLI still loads here. `page`, `block` and `namespace` docs refuse one, as do `theme` descriptors. Sections and content blocks refuse one in every doc.',
|
|
60
62
|
},
|
|
61
63
|
],
|
|
62
64
|
};
|
|
@@ -31,14 +31,15 @@ export interface DocPlacement {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
34
|
+
* Tree metadata shared by every authored doc kind. The docs tree reads
|
|
35
|
+
* `placement` for every guide, the CLI's and each integration's
|
|
36
|
+
* (spec:AST-046); nothing reads `aliases` or `audience` yet. A reference topic
|
|
37
|
+
* outside the docs tree that sets one fails to load.
|
|
37
38
|
*/
|
|
38
39
|
export interface AuthoredDocGraphFields {
|
|
39
|
-
/**
|
|
40
|
+
/** The doc's one parent in the docs tree: a namespace of its own package. */
|
|
40
41
|
placement?: DocPlacement;
|
|
41
|
-
/** Prior routes or names the docs
|
|
42
|
+
/** Prior routes or names the docs tree will keep resolving. Not read yet. */
|
|
42
43
|
aliases?: string[];
|
|
43
44
|
/** Docs bundle audience; omit for public docs. Not read yet. */
|
|
44
45
|
audience?: DocAudience;
|
|
@@ -54,7 +54,7 @@ export const doc = {
|
|
|
54
54
|
name: 'namespace',
|
|
55
55
|
type: 'string',
|
|
56
56
|
description:
|
|
57
|
-
"
|
|
57
|
+
"Optional in the type, but every doc the CLI ships declares it. The group that reads this doc. The CLI's commands use 'cli/commands', which the docs tree adopts: each is the leaf `cli/commands/<name>`. Every command doc the CLI ships declares one, and `astryx doctor` fails on one that is missing or that nothing reads.",
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
name: 'aliases',
|
|
@@ -65,7 +65,7 @@ export interface CommandDoc extends AuthoredDocGraphFields {
|
|
|
65
65
|
summary: string;
|
|
66
66
|
/** Longer help body / when-to-use. */
|
|
67
67
|
description?: string;
|
|
68
|
-
/**
|
|
68
|
+
/** The group that reads this doc. The CLI's commands use 'cli/commands', which the docs tree adopts: each is the leaf `cli/commands/<name>`. Every command doc the CLI ships declares one, and `astryx doctor` fails on one that is missing or that nothing reads. */
|
|
69
69
|
namespace?: string;
|
|
70
70
|
/** Alternate slugs that also resolve to this doc. */
|
|
71
71
|
aliases?: string[];
|
|
@@ -81,7 +81,7 @@ export interface CommandDoc extends AuthoredDocGraphFields {
|
|
|
81
81
|
examples?: CommandExampleDoc[];
|
|
82
82
|
/** Documented exit codes. */
|
|
83
83
|
exitCodes?: {code: number; when: string}[];
|
|
84
|
-
/** Related command names. */
|
|
84
|
+
/** Related command names; the CLI links each to its doc. */
|
|
85
85
|
related?: string[];
|
|
86
86
|
/** Freeform prose/notes. */
|
|
87
87
|
notes?: ReferenceContentBlock[];
|
|
@@ -146,10 +146,10 @@ export interface ComponentBaseDoc extends AuthoredDocGraphFields {
|
|
|
146
146
|
/**
|
|
147
147
|
* The documentation type for a component directory's {Name}.doc.mjs file.
|
|
148
148
|
*
|
|
149
|
-
* Every .doc.mjs
|
|
149
|
+
* Every new .doc.mjs default-exports a stamped object of this type:
|
|
150
150
|
*
|
|
151
151
|
* /\*\* \@type \{import('@astryxdesign/cli/authoring').ComponentDoc\} *\/
|
|
152
|
-
* export
|
|
152
|
+
* export default \{ type: 'component', ... \};
|
|
153
153
|
*
|
|
154
154
|
* Use SingleComponentDoc (with `props`) for single-component directories.
|
|
155
155
|
* Use MultiComponentDoc (with `components`) for multi-component directories.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file Tests for the new authoring doc-types (schema/command/enum) and the
|
|
4
|
+
* @file Tests for the new authoring doc-types (schema/command/enum/theme) and the
|
|
5
5
|
* generalized `function` doc (hooks + CLI/API functions sharing the schema).
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
parseCommand,
|
|
13
13
|
parseEnum,
|
|
14
14
|
parseFunction,
|
|
15
|
+
parseTheme,
|
|
15
16
|
} from '../index.mjs';
|
|
16
17
|
|
|
17
18
|
describe('SchemaDoc', () => {
|
|
@@ -22,13 +23,21 @@ describe('SchemaDoc', () => {
|
|
|
22
23
|
description: 'Project config.',
|
|
23
24
|
appliesTo: 'astryx.config.{ts,mjs,js}',
|
|
24
25
|
fields: [
|
|
25
|
-
{
|
|
26
|
+
{
|
|
27
|
+
name: 'integrations',
|
|
28
|
+
type: 'string[]',
|
|
29
|
+
description: 'Packages to load.',
|
|
30
|
+
},
|
|
26
31
|
{
|
|
27
32
|
name: 'hooks',
|
|
28
33
|
type: 'object',
|
|
29
34
|
description: 'Lifecycle hooks.',
|
|
30
35
|
fields: [
|
|
31
|
-
{
|
|
36
|
+
{
|
|
37
|
+
name: 'hooks.postCodemod',
|
|
38
|
+
type: 'PostCodemodHook[]',
|
|
39
|
+
description: 'Runs after codemods.',
|
|
40
|
+
},
|
|
32
41
|
],
|
|
33
42
|
},
|
|
34
43
|
],
|
|
@@ -63,8 +72,16 @@ describe('CommandDoc', () => {
|
|
|
63
72
|
fn: 'search',
|
|
64
73
|
args: [{name: 'query', param: 'query', required: true}],
|
|
65
74
|
options: [
|
|
66
|
-
{
|
|
67
|
-
|
|
75
|
+
{
|
|
76
|
+
flag: '--type <domain>',
|
|
77
|
+
param: 'options.type',
|
|
78
|
+
choices: ['component', 'hook'],
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
flag: '--json',
|
|
82
|
+
cliOnly: true,
|
|
83
|
+
description: 'Emit the typed JSON envelope.',
|
|
84
|
+
},
|
|
68
85
|
],
|
|
69
86
|
examples: [{label: 'Terminal', cli: 'astryx search button --json'}],
|
|
70
87
|
exitCodes: [{code: 1, when: 'invalid --type'}],
|
|
@@ -90,6 +107,29 @@ describe('EnumDoc', () => {
|
|
|
90
107
|
});
|
|
91
108
|
});
|
|
92
109
|
|
|
110
|
+
describe('ThemeDoc', () => {
|
|
111
|
+
const doc = {
|
|
112
|
+
type: 'theme',
|
|
113
|
+
name: 'ocean',
|
|
114
|
+
displayName: 'Ocean',
|
|
115
|
+
description: 'Cool blue surfaces with crisp contrast.',
|
|
116
|
+
maintained: true,
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
it('accepts a complete theme descriptor and dispatches through parseDoc', () => {
|
|
120
|
+
expect(parseTheme(doc)).toEqual(doc);
|
|
121
|
+
expect(parseDoc(doc)).toEqual(doc);
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it('rejects non-kebab identity and missing required metadata', () => {
|
|
125
|
+
expect(() => parseTheme({...doc, name: 'OceanTheme'})).toThrow(
|
|
126
|
+
/lowercase kebab-case/,
|
|
127
|
+
);
|
|
128
|
+
const {maintained: _maintained, ...missingMaintained} = doc;
|
|
129
|
+
expect(() => parseTheme(missingMaintained)).toThrow(/maintained/);
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
|
|
93
133
|
describe('generalized FunctionDoc', () => {
|
|
94
134
|
it('accepts an API function whose returns are envelope entries (no field name)', () => {
|
|
95
135
|
const apiFn = {
|
|
@@ -98,7 +138,9 @@ describe('generalized FunctionDoc', () => {
|
|
|
98
138
|
name: 'search',
|
|
99
139
|
displayName: 'search()',
|
|
100
140
|
importPath: '@astryxdesign/cli/api',
|
|
101
|
-
params: [
|
|
141
|
+
params: [
|
|
142
|
+
{name: 'query', type: 'string', description: 'Term.', required: true},
|
|
143
|
+
],
|
|
102
144
|
returns: [{type: 'search', description: 'query + ranked results[]'}],
|
|
103
145
|
throws: [{code: 'ERR_INVALID_ARGUMENT', when: 'empty query'}],
|
|
104
146
|
};
|
|
@@ -49,7 +49,7 @@ export const doc = {
|
|
|
49
49
|
name: 'namespace',
|
|
50
50
|
type: 'string',
|
|
51
51
|
description:
|
|
52
|
-
"
|
|
52
|
+
"Optional in the type, but every doc the CLI ships declares it. The group that reads this doc. The CLI's enums use 'cli/api', which the docs tree adopts by kind: each is the leaf `cli/api/enums/<name>`. Every enum doc the CLI ships declares one, and `astryx doctor` fails on one that is missing or that nothing reads.",
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
name: 'aliases',
|
|
@@ -32,7 +32,7 @@ export interface EnumDoc extends AuthoredDocGraphFields {
|
|
|
32
32
|
displayName: string;
|
|
33
33
|
/** One-line summary shown in listings. */
|
|
34
34
|
description: string;
|
|
35
|
-
/**
|
|
35
|
+
/** The group that reads this doc. The CLI's enums use 'cli/api', which the docs tree adopts by kind: each is the leaf `cli/api/enums/<name>`. Every enum doc the CLI ships declares one, and `astryx doctor` fails on one that is missing or that nothing reads. */
|
|
36
36
|
namespace?: string;
|
|
37
37
|
/** Alternate slugs that also resolve to this doc. */
|
|
38
38
|
aliases?: string[];
|
|
@@ -57,7 +57,7 @@ export const doc = {
|
|
|
57
57
|
name: 'namespace',
|
|
58
58
|
type: 'string',
|
|
59
59
|
description:
|
|
60
|
-
"
|
|
60
|
+
"Optional in the type, but every doc the CLI ships declares it. The group that reads this doc. The CLI's API functions use 'cli/api', which the docs tree adopts by kind: each is the leaf `cli/api/functions/<name>`. Every function doc the CLI ships declares one, and `astryx doctor` fails on one that is missing or that nothing reads.",
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
name: 'aliases',
|
|
@@ -201,7 +201,8 @@ export const doc = {
|
|
|
201
201
|
{
|
|
202
202
|
name: 'related',
|
|
203
203
|
type: 'string[]',
|
|
204
|
-
description:
|
|
204
|
+
description:
|
|
205
|
+
'Related function names; the CLI links each to its doc. Name the CLI command with `command`, not here.',
|
|
205
206
|
},
|
|
206
207
|
{
|
|
207
208
|
name: 'relatedComponents',
|
|
@@ -62,7 +62,7 @@ export interface FunctionDoc extends AuthoredDocGraphFields {
|
|
|
62
62
|
summary?: string;
|
|
63
63
|
/** Longer description. */
|
|
64
64
|
description?: string;
|
|
65
|
-
/**
|
|
65
|
+
/** The group that reads this doc. The CLI's API functions use 'cli/api', which the docs tree adopts by kind: each is the leaf `cli/api/functions/<name>`. Every function doc the CLI ships declares one, and `astryx doctor` fails on one that is missing or that nothing reads. */
|
|
66
66
|
namespace?: string;
|
|
67
67
|
/** Alternate slugs that also resolve to this doc. */
|
|
68
68
|
aliases?: string[];
|
|
@@ -84,7 +84,8 @@ export interface FunctionDoc extends AuthoredDocGraphFields {
|
|
|
84
84
|
usage?: UsageDoc;
|
|
85
85
|
/** The CLI command that wraps this function, e.g. 'search'. */
|
|
86
86
|
command?: string;
|
|
87
|
-
/** Related function
|
|
87
|
+
/** Related function names; the CLI links each to its doc. Name the CLI
|
|
88
|
+
* command with `command`, not here. */
|
|
88
89
|
related?: string[];
|
|
89
90
|
/** Component names this is commonly used with (hooks). */
|
|
90
91
|
relatedComponents?: string[];
|