@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
|
@@ -17,7 +17,9 @@ import * as fs from 'node:fs';
|
|
|
17
17
|
import * as os from 'node:os';
|
|
18
18
|
import * as path from 'node:path';
|
|
19
19
|
import {
|
|
20
|
+
effectiveTemplateDiscovery,
|
|
20
21
|
extractComponents,
|
|
22
|
+
findPageDocFile,
|
|
21
23
|
stripTemplateAssetRefs,
|
|
22
24
|
} from './template-adapter.mjs';
|
|
23
25
|
|
|
@@ -164,3 +166,58 @@ describe('stripTemplateAssetRefs', () => {
|
|
|
164
166
|
);
|
|
165
167
|
});
|
|
166
168
|
});
|
|
169
|
+
|
|
170
|
+
describe('findPageDocFile', () => {
|
|
171
|
+
it('keeps the released precedence when one page has two specs', () => {
|
|
172
|
+
const page = fs.mkdtempSync(path.join(dir, 'page-'));
|
|
173
|
+
fs.writeFileSync(path.join(page, 'template.doc.mjs'), 'export {};\n');
|
|
174
|
+
fs.writeFileSync(path.join(page, 'template.doc.ts'), 'export {};\n');
|
|
175
|
+
expect(findPageDocFile(page)).toBe(path.join(page, 'template.doc.ts'));
|
|
176
|
+
|
|
177
|
+
fs.writeFileSync(path.join(page, 'template.template.mjs'), 'export {};\n');
|
|
178
|
+
expect(findPageDocFile(page)).toBe(
|
|
179
|
+
path.join(page, 'template.template.mjs'),
|
|
180
|
+
);
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
describe('effectiveTemplateDiscovery', () => {
|
|
185
|
+
it('shadows only the matching template kind', () => {
|
|
186
|
+
const pageReplacement = {
|
|
187
|
+
type: 'page',
|
|
188
|
+
dirName: 'acme-dashboard',
|
|
189
|
+
name: 'Acme dashboard',
|
|
190
|
+
description: '',
|
|
191
|
+
filePath: '/acme-dashboard.tsx',
|
|
192
|
+
docPath: '/acme-dashboard.doc.mjs',
|
|
193
|
+
package: '@acme/widgets',
|
|
194
|
+
replaces: 'dashboard',
|
|
195
|
+
};
|
|
196
|
+
const corePage = {
|
|
197
|
+
type: 'page',
|
|
198
|
+
dirName: 'dashboard',
|
|
199
|
+
name: 'Dashboard page',
|
|
200
|
+
description: '',
|
|
201
|
+
filePath: '/dashboard-page.tsx',
|
|
202
|
+
docPath: '/dashboard-page.doc.mjs',
|
|
203
|
+
};
|
|
204
|
+
const coreBlock = {
|
|
205
|
+
type: 'block',
|
|
206
|
+
dirName: 'dashboard',
|
|
207
|
+
name: 'Dashboard block',
|
|
208
|
+
description: '',
|
|
209
|
+
filePath: '/dashboard-block.tsx',
|
|
210
|
+
docPath: '/dashboard-block.doc.mjs',
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
const effective = effectiveTemplateDiscovery([
|
|
214
|
+
corePage,
|
|
215
|
+
coreBlock,
|
|
216
|
+
pageReplacement,
|
|
217
|
+
]);
|
|
218
|
+
|
|
219
|
+
expect(effective).toContain(pageReplacement);
|
|
220
|
+
expect(effective).toContain(coreBlock);
|
|
221
|
+
expect(effective).not.toContain(corePage);
|
|
222
|
+
});
|
|
223
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// @generated by scripts/sync-api-types.mjs from the JSDoc in foundation/**/*.mjs.
|
|
2
|
+
// DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Whether this release exposes replacement relationships in the public conflict API.
|
|
6
|
+
* Both the supported version and a deliberate projection update are required;
|
|
7
|
+
* a routine package-version bump cannot expand the public shape by itself.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} [version]
|
|
10
|
+
* @param {'warning-only' | 'expanded'} [projection]
|
|
11
|
+
* @returns {boolean}
|
|
12
|
+
*/
|
|
13
|
+
export function expandedTemplateConflictSchemaActive(version?: string, projection?: "warning-only" | "expanded"): boolean;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file Release boundary for the expanded integration-template conflict schema.
|
|
5
|
+
*
|
|
6
|
+
* @input The CLI package version and an explicit public-schema projection.
|
|
7
|
+
* @output Whether replacement-specific conflict fields may reach the stable API.
|
|
8
|
+
* @position Private compatibility gate for integration authoring diagnostics.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import * as fs from 'node:fs';
|
|
12
|
+
import * as path from 'node:path';
|
|
13
|
+
import {semverCompare} from '../env/semver.mjs';
|
|
14
|
+
import {CLI_ROOT} from '../fs/paths.mjs';
|
|
15
|
+
|
|
16
|
+
const EXPANDED_TEMPLATE_CONFLICT_SCHEMA_CLI = '0.7.0';
|
|
17
|
+
/** @type {'warning-only' | 'expanded'} */
|
|
18
|
+
const TEMPLATE_CONFLICT_SCHEMA_PROJECTION = 'warning-only';
|
|
19
|
+
const CLI_VERSION = JSON.parse(
|
|
20
|
+
fs.readFileSync(path.join(CLI_ROOT, 'package.json'), 'utf8'),
|
|
21
|
+
).version;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Whether this release exposes replacement relationships in the public conflict API.
|
|
25
|
+
* Both the supported version and a deliberate projection update are required;
|
|
26
|
+
* a routine package-version bump cannot expand the public shape by itself.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} [version]
|
|
29
|
+
* @param {'warning-only' | 'expanded'} [projection]
|
|
30
|
+
* @returns {boolean}
|
|
31
|
+
*/
|
|
32
|
+
export function expandedTemplateConflictSchemaActive(
|
|
33
|
+
version = CLI_VERSION,
|
|
34
|
+
projection = TEMPLATE_CONFLICT_SCHEMA_PROJECTION,
|
|
35
|
+
) {
|
|
36
|
+
return (
|
|
37
|
+
projection === 'expanded' &&
|
|
38
|
+
semverCompare(version, EXPANDED_TEMPLATE_CONFLICT_SCHEMA_CLI) >= 0
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @file Unit coverage for the integration-template conflict release boundary.
|
|
5
|
+
* @input CLI versions and explicit warning-only or expanded projections.
|
|
6
|
+
* @output Boolean activation assertions for the expanded conflict schema.
|
|
7
|
+
* @position Colocated coverage for the private release gate.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import {describe, expect, it} from 'vitest';
|
|
11
|
+
import {expandedTemplateConflictSchemaActive} from './template-conflict-release.mjs';
|
|
12
|
+
|
|
13
|
+
describe('expandedTemplateConflictSchemaActive', () => {
|
|
14
|
+
it.each(['0.6.3', '0.6.4', '0.6.99'])(
|
|
15
|
+
'keeps %s narrow even when the expanded projection is requested',
|
|
16
|
+
version => {
|
|
17
|
+
expect(expandedTemplateConflictSchemaActive(version, 'expanded')).toBe(
|
|
18
|
+
false,
|
|
19
|
+
);
|
|
20
|
+
},
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
it.each(['0.7.0-rc.1', '0.7.0', '0.8.0'])(
|
|
24
|
+
'does not let version %s expand the warning-only projection',
|
|
25
|
+
version => {
|
|
26
|
+
expect(
|
|
27
|
+
expandedTemplateConflictSchemaActive(version, 'warning-only'),
|
|
28
|
+
).toBe(false);
|
|
29
|
+
},
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
it.each(['0.7.0-rc.1', '0.7.0', '0.8.0'])(
|
|
33
|
+
'allows the deliberate expanded projection in %s',
|
|
34
|
+
version => {
|
|
35
|
+
expect(expandedTemplateConflictSchemaActive(version, 'expanded')).toBe(
|
|
36
|
+
true,
|
|
37
|
+
);
|
|
38
|
+
},
|
|
39
|
+
);
|
|
40
|
+
});
|
|
@@ -2,15 +2,65 @@
|
|
|
2
2
|
// DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @param {string}
|
|
7
|
-
* @param {string} owner
|
|
8
|
-
|
|
5
|
+
* How messages about a theme descriptor name it.
|
|
6
|
+
* @param {string} docPath
|
|
7
|
+
* @param {string} owner
|
|
8
|
+
*/
|
|
9
|
+
export function themeDescriptorLabel(docPath: string, owner: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* The static value a theme descriptor default-exports, read from its source
|
|
12
|
+
* without executing it. Throws when the file is not one static ThemeDoc
|
|
13
|
+
* object.
|
|
14
|
+
* @param {string} docPath
|
|
15
|
+
* @param {string} label
|
|
16
|
+
* @returns {Record<string, string | boolean>}
|
|
17
|
+
*/
|
|
18
|
+
export function readThemeDescriptorValue(docPath: string, label: string): Record<string, string | boolean>;
|
|
19
|
+
/**
|
|
20
|
+
* Whether an entry at any depth of a themes root is outside every theme: a dot
|
|
21
|
+
* entry, or a name npm never publishes (npm-packlist's defaults).
|
|
22
|
+
* @param {string} name
|
|
23
|
+
*/
|
|
24
|
+
export function isIgnoredThemeEntry(name: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Whether discovery reads a folder under a theme root as a theme. Dot-folders
|
|
27
|
+
* and folders with neither a descriptor nor a `<name>Theme` source are not.
|
|
28
|
+
* @param {string} folder absolute path
|
|
29
|
+
*/
|
|
30
|
+
export function isThemeFolder(folder: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* The files one theme folder ships: every regular file below it except
|
|
33
|
+
* {@link isIgnoredThemeEntry} entries. What pack-check requires and what
|
|
34
|
+
* `theme add` copies.
|
|
35
|
+
* @param {string} folder absolute path
|
|
36
|
+
* @returns {string[]} sorted POSIX paths relative to the folder
|
|
37
|
+
*/
|
|
38
|
+
export function listThemeFiles(folder: string): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Discover and validate one theme root.
|
|
41
|
+
* @param {string} themeRoot absolute root containing one directory per slug
|
|
42
|
+
* @param {string} owner package that owns the root
|
|
43
|
+
* @param {{bundled?: boolean}} [options] a bundled root is the CLI's own; its
|
|
44
|
+
* sources are checked by the CLI's tests rather than on every read
|
|
9
45
|
* @returns {DiscoveredTheme[]}
|
|
10
46
|
*/
|
|
11
|
-
export function
|
|
47
|
+
export function discoverThemeDirectory(themeRoot: string, owner: string, { bundled }?: {
|
|
12
48
|
bundled?: boolean;
|
|
13
49
|
}): DiscoveredTheme[];
|
|
50
|
+
/**
|
|
51
|
+
* Folders under a themes root that look like themes (see looksLikeTheme)
|
|
52
|
+
* but that discovery does not read as themes, and that no module elsewhere
|
|
53
|
+
* under the root imports, by a relative path or through the package's own
|
|
54
|
+
* name. Discovery skips them silently, as the released catalog skipped
|
|
55
|
+
* unlisted folders; doctor warns.
|
|
56
|
+
* @param {string} themeRoot
|
|
57
|
+
* @param {{packageDir?: string, packageName?: string}} [owner]
|
|
58
|
+
* @returns {string[]} absolute folder paths, sorted
|
|
59
|
+
*/
|
|
60
|
+
export function unreadThemeFolders(themeRoot: string, { packageDir, packageName }?: {
|
|
61
|
+
packageDir?: string;
|
|
62
|
+
packageName?: string;
|
|
63
|
+
}): string[];
|
|
14
64
|
/** @returns {DiscoveredTheme[]} */
|
|
15
65
|
export function discoverBundledThemes(): DiscoveredTheme[];
|
|
16
66
|
/**
|
|
@@ -20,8 +70,10 @@ export function discoverBundledThemes(): DiscoveredTheme[];
|
|
|
20
70
|
export function discoverIntegrationThemes(integration: import("../integrations/integrations.mjs").LoadedIntegration): Promise<DiscoveredTheme[]>;
|
|
21
71
|
export const BUNDLED_THEME_PACKAGE: "@astryxdesign/cli";
|
|
22
72
|
export const THEMES_DIR: string;
|
|
23
|
-
export const
|
|
24
|
-
export const
|
|
73
|
+
export const THEME_DOC_SUFFIX: ".doc.mjs";
|
|
74
|
+
export const THEME_MODULE_EXTENSIONS: string[];
|
|
75
|
+
/** A theme directory's name: lower-kebab, starting with a letter. */
|
|
76
|
+
export const THEME_SLUG_RE: RegExp;
|
|
25
77
|
export type DiscoveredTheme = {
|
|
26
78
|
slug: string;
|
|
27
79
|
displayName: string;
|
|
@@ -29,6 +81,10 @@ export type DiscoveredTheme = {
|
|
|
29
81
|
maintained: boolean;
|
|
30
82
|
entry: string;
|
|
31
83
|
exportName: string;
|
|
84
|
+
/**
|
|
85
|
+
* what `theme add` copies, relative to sourceDir,
|
|
86
|
+
* entry first
|
|
87
|
+
*/
|
|
32
88
|
files: string[];
|
|
33
89
|
package: string;
|
|
34
90
|
/**
|
|
@@ -36,4 +92,8 @@ export type DiscoveredTheme = {
|
|
|
36
92
|
*/
|
|
37
93
|
sourceDir: string;
|
|
38
94
|
bundled: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* absolute descriptor path
|
|
97
|
+
*/
|
|
98
|
+
docPath: string;
|
|
39
99
|
};
|