@astryxdesign/cli 0.6.3-canary.ebaebc4 → 0.6.3-canary.ee13359
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 +114 -77
- package/api/blog/blog.doc.mjs +1 -0
- package/api/build/build.doc.mjs +4 -3
- package/api/build/build.test.mjs +14 -3
- package/api/build/build.type.d.mts +35 -1
- package/api/build/build.type.mjs +24 -3
- package/api/build/help/help.d.mts +8 -5
- package/api/build/help/help.mjs +56 -6
- package/api/component/_adapter.d.mts +6 -12
- package/api/component/_adapter.mjs +20 -10
- package/api/component/component.doc.mjs +13 -3
- package/api/component/component.mjs +91 -14
- package/api/component/component.test.mjs +38 -0
- package/api/component/component.type.d.mts +16 -5
- package/api/component/component.type.mjs +13 -5
- package/api/component/detail/blocks/blocks.d.mts +2 -1
- package/api/component/detail/blocks/blocks.mjs +4 -3
- package/api/component/list/list.d.mts +0 -5
- package/api/component/list/list.mjs +40 -11
- package/api/discover/discover.doc.mjs +2 -1
- package/api/docs/_adapter.d.mts +210 -34
- package/api/docs/_adapter.mjs +674 -134
- 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 +36 -15
- package/api/docs/docs.mjs +44 -8
- package/api/docs/docs.test.mjs +158 -4
- package/api/docs/docs.type.d.mts +165 -2
- package/api/docs/docs.type.mjs +101 -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 +547 -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/doctor/doctor.d.mts +54 -4
- package/api/doctor/doctor.doc.mjs +1 -0
- package/api/doctor/doctor.mjs +327 -16
- package/api/doctor/doctor.test.mjs +420 -7
- package/api/gap-report/gap-report.doc.mjs +8 -4
- 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 +6 -1
- package/api/init/init.test.mjs +41 -1
- package/api/init/remove/remove.mjs +1 -1
- package/api/init/run/run.mjs +20 -10
- package/api/integration/add-contribution.component-names.test.mjs +120 -0
- package/api/integration/add-contribution.d.mts +2 -1
- package/api/integration/add-contribution.mjs +125 -12
- package/api/integration/add-contribution.test.mjs +254 -3
- package/api/integration/add-theme.mjs +34 -64
- package/api/integration/add-theme.test.mjs +105 -21
- package/api/integration/authoring-checks.mjs +108 -31
- package/api/integration/authoring-checks.test.mjs +171 -6
- package/api/integration/authoring-checks.type.d.mts +3 -1
- package/api/integration/authoring-checks.type.mjs +3 -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 +14 -4
- package/api/integration/integrationAddAgentDoc.doc.mjs +1 -0
- package/api/integration/integrationAddCodemod.doc.mjs +1 -0
- package/api/integration/integrationAddComponent.doc.mjs +2 -1
- 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.mjs +7 -5
- 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/validate-integration-fixes.test.mjs +1389 -0
- package/api/integration/validate-integration.mjs +52 -102
- package/api/integration/validate-integration.test.mjs +179 -26
- package/api/integration/validate-unread-theme-folders.test.mjs +110 -0
- package/api/integration/validateIntegration.doc.mjs +3 -2
- package/api/json/assertResponse.doc.mjs +1 -0
- package/api/json/envelope-types.test.mjs +76 -0
- package/api/json/index.ts +2 -0
- package/api/json/isError.doc.mjs +1 -0
- package/api/json/parseResponse.doc.mjs +3 -2
- package/api/layout/_adapter.mjs +20 -5
- package/api/layout/expand/expand.mjs +7 -5
- package/api/layout/expand/expand.path-safety.test.mjs +53 -0
- package/api/layout/grammar/grammar.mjs +2 -1
- package/api/layout/layoutCheck.doc.mjs +1 -0
- package/api/layout/layoutExpand.doc.mjs +2 -1
- package/api/layout/layoutGrammar.doc.mjs +1 -0
- package/api/search/search-return-type.test.mjs +54 -0
- package/api/search/search.d.mts +28 -10
- package/api/search/search.doc.mjs +8 -2
- package/api/search/search.mjs +334 -38
- package/api/search/search.test.mjs +124 -1
- package/api/search/search.type.d.mts +13 -1
- package/api/search/search.type.mjs +4 -1
- package/api/swizzle/copy/copy.mjs +28 -11
- package/api/swizzle/swizzle.doc.mjs +2 -1
- package/api/template/copy/copy.mjs +17 -23
- package/api/template/copy/copy.test.mjs +17 -0
- package/api/template/list/list.mjs +1 -0
- package/api/template/template-integration.test.mjs +1022 -3
- package/api/template/template-suffix.test.mjs +41 -21
- package/api/template/template.doc.mjs +30 -8
- 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 +84 -0
- package/api/theme/add/add.mjs +20 -3
- package/api/theme/add/add.staging.test.mjs +66 -0
- package/api/theme/add/add.test.mjs +14 -1
- package/api/theme/build/build.mjs +114 -37
- package/api/theme/build/build.public-component-vars.test.mjs +1 -1
- package/api/theme/build/build.receipt-doc.test.mjs +111 -0
- package/api/theme/build/font-warning.mjs +3 -3
- package/api/theme/build/font-warning.test.mjs +5 -2
- 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/palette/generate/generate.mjs +7 -2
- package/api/theme/palette/generate/generate.test.mjs +96 -0
- package/api/theme/palette/generate/generator.mjs +8 -1
- package/api/theme/palette/generate/generator.test.mjs +10 -0
- package/api/theme/template/template.mjs +11 -2
- package/api/theme/template/template.test.mjs +20 -0
- package/api/theme/themeAdd.doc.mjs +4 -3
- package/api/theme/themeBuild.doc.mjs +8 -4
- 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 +6 -2
- package/api/upgrade/_adapter.d.mts +32 -5
- package/api/upgrade/_adapter.mjs +124 -73
- package/api/upgrade/list/list.mjs +2 -1
- package/api/upgrade/list/list.test.mjs +73 -0
- package/api/upgrade/provider-agreement.test.mjs +152 -0
- package/api/upgrade/run/run.mjs +356 -59
- package/api/upgrade/status/status.mjs +2 -2
- package/api/upgrade/upgrade.doc.mjs +8 -2
- package/api/upgrade/upgrade.type.d.mts +38 -0
- package/api/upgrade/upgrade.type.mjs +16 -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/term-log.mjs +32 -8
- package/assets/codemods/term-log.test.mjs +19 -1
- package/assets/codemods/transform-prop.mjs +109 -0
- package/assets/codemods/transform-prop.test.mjs +95 -0
- 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/codemods/transforms/v0.0.14/__tests__/rename-status-variants.test.mjs +86 -165
- package/assets/codemods/transforms/v0.0.14/rename-status-variants.mjs +72 -210
- package/assets/codemods/transforms/v0.1.8/__tests__/rename-avatar-size-scale.test.mjs +83 -115
- package/assets/codemods/transforms/v0.1.8/rename-avatar-size-scale.mjs +57 -186
- package/assets/codemods/transforms/v0.6.0/__tests__/next-codemods.test.mjs +47 -0
- package/assets/codemods/transforms/v0.6.0/rename-resizable-pixel-bounds.mjs +57 -10
- package/assets/docs/getting-started.doc.mjs +2 -2
- package/assets/docs/principles.doc.mjs +6 -6
- package/assets/docs/styling-libraries.doc.mjs +2 -2
- package/assets/docs/styling.doc.mjs +4 -4
- package/assets/docs/theme.doc.mjs +4 -4
- 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/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/ScrollableArea/ScrollableAreaInlineRail.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaInlineRail.tsx +61 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaOverscrollChaining.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaOverscrollChaining.tsx +126 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaShowcase.doc.mjs +15 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaShowcase.tsx +86 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaStickyGroupHeaders.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaStickyGroupHeaders.tsx +99 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaStickyPassthrough.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaStickyPassthrough.tsx +122 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaTwoAxisBoard.doc.mjs +14 -0
- package/assets/templates/blocks/components/ScrollableArea/ScrollableAreaTwoAxisBoard.tsx +95 -0
- package/assets/templates/blocks/components/TimeInput/TimeInputConstrained.tsx +1 -0
- package/assets/templates/pages/table-tree/page.tsx +1704 -0
- package/assets/templates/pages/table-tree/template.doc.mjs +12 -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 +2 -2
- package/authoring/config/debug-composition.test.mjs +92 -0
- package/authoring/config/type.ts +15 -3
- 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 +71 -141
- package/authoring/doctypes/_schema.mjs +29 -2
- 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 +3 -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 +7 -5
- package/authoring/doctypes/reference/type.ts +12 -10
- 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/command-load-failure.test.mjs +83 -0
- package/clients/cli/commands/blog.doc.mjs +1 -1
- package/clients/cli/commands/blog.mjs +23 -8
- package/clients/cli/commands/blog.test.mjs +42 -1
- package/clients/cli/commands/build-theme.adaptations.test.mjs +100 -1
- package/clients/cli/commands/build-theme.ascii-output.test.mjs +161 -0
- package/clients/cli/commands/build-theme.flag-docs.test.mjs +110 -0
- package/clients/cli/commands/build-theme.mjs +16 -50
- package/clients/cli/commands/build-theme.path-safety.test.mjs +86 -1
- package/clients/cli/commands/build-theme.variants.test.mjs +76 -0
- package/clients/cli/commands/build.doc.mjs +5 -2
- package/clients/cli/commands/build.exit-codes-doc.test.mjs +50 -0
- package/clients/cli/commands/build.mjs +37 -49
- package/clients/cli/commands/build.playbook.test.mjs +75 -0
- package/clients/cli/commands/build.text-fields.test.mjs +40 -0
- package/clients/cli/commands/component/index.mjs +3 -8
- package/clients/cli/commands/component-ownership.test.mjs +3 -3
- package/clients/cli/commands/component-package.test.mjs +46 -0
- package/clients/cli/commands/component-resolution.test.mjs +21 -0
- package/clients/cli/commands/component.doc.mjs +1 -1
- package/clients/cli/commands/component.test.mjs +19 -0
- package/clients/cli/commands/detail-levels.test.mjs +2 -2
- package/clients/cli/commands/discover.broken-integration.test.mjs +52 -5
- package/clients/cli/commands/discover.components-flag.test.mjs +97 -0
- package/clients/cli/commands/discover.doc.mjs +5 -3
- package/clients/cli/commands/discover.mjs +4 -4
- package/clients/cli/commands/discover.text-projection.test.mjs +103 -0
- package/clients/cli/commands/docs.doc.mjs +21 -9
- package/clients/cli/commands/docs.mjs +182 -68
- 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.package-json.test.mjs +53 -0
- package/clients/cli/commands/doctor-integration.test.mjs +83 -8
- package/clients/cli/commands/doctor.doc.mjs +1 -1
- package/clients/cli/commands/doctor.mjs +30 -25
- package/clients/cli/commands/doctor.test.mjs +42 -0
- package/clients/cli/commands/gap-report.doc.mjs +17 -6
- package/clients/cli/commands/gap-report.test.mjs +72 -0
- package/clients/cli/commands/hook/index.mjs +7 -17
- package/clients/cli/commands/hook.doc.mjs +1 -1
- package/clients/cli/commands/hook.text-projection.test.mjs +45 -0
- package/clients/cli/commands/init.doc.mjs +20 -9
- package/clients/cli/commands/init.flag-help.test.mjs +153 -0
- package/clients/cli/commands/integration-add.controls.test.mjs +132 -0
- package/clients/cli/commands/integration-add.doc.mjs +32 -6
- 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/interactive-guard.test.mjs +101 -24
- package/clients/cli/commands/json-contract.test.mjs +33 -0
- package/clients/cli/commands/layout-check.doc.mjs +15 -4
- package/clients/cli/commands/layout-expand.doc.mjs +22 -5
- package/clients/cli/commands/layout-grammar.doc.mjs +1 -1
- package/clients/cli/commands/layout.doc.mjs +3 -3
- package/clients/cli/commands/layout.mjs +21 -9
- package/clients/cli/commands/layout.path-help.test.mjs +33 -0
- package/clients/cli/commands/layout.stdin-cap.test.mjs +47 -0
- package/clients/cli/commands/layout.text-fields.test.mjs +39 -0
- package/clients/cli/commands/manifest.doc.mjs +1 -1
- package/clients/cli/commands/no-prompt-wording.test.mjs +94 -0
- package/clients/cli/commands/search.doc.mjs +7 -4
- package/clients/cli/commands/search.mjs +28 -9
- package/clients/cli/commands/search.test.mjs +75 -0
- package/clients/cli/commands/setup-nudge.test.mjs +6 -0
- package/clients/cli/commands/swizzle.doc.mjs +3 -2
- package/clients/cli/commands/swizzle.path-safety.test.mjs +42 -0
- package/clients/cli/commands/template.doc.mjs +52 -13
- package/clients/cli/commands/template.flag-help.test.mjs +117 -0
- package/clients/cli/commands/template.mjs +4 -91
- package/clients/cli/commands/template.path-help.test.mjs +40 -0
- package/clients/cli/commands/text-json-parity.test.mjs +719 -0
- package/clients/cli/commands/theme-add.doc.mjs +4 -3
- package/clients/cli/commands/theme-build.doc.mjs +8 -7
- 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-generate.test.mjs +19 -0
- 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.behavior.test.mjs +12 -0
- package/clients/cli/commands/theme-template.doc.mjs +2 -2
- package/clients/cli/commands/theme.doc.mjs +1 -1
- package/clients/cli/commands/upgrade.ascii-output.test.mjs +87 -0
- package/clients/cli/commands/upgrade.doc.mjs +20 -8
- package/clients/cli/commands/upgrade.file-protection.test.mjs +228 -0
- package/clients/cli/commands/upgrade.flag-help.test.mjs +188 -0
- package/clients/cli/commands/upgrade.hook-output.test.mjs +88 -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 +21 -30
- package/clients/cli/latest-version-env.test.mjs +50 -0
- package/clients/cli/lib/cli-error.test.mjs +7 -0
- package/clients/cli/lib/component-format.mjs +9 -9
- package/clients/cli/lib/component-format.test.mjs +1 -1
- package/clients/cli/lib/define-command.mjs +32 -6
- package/clients/cli/lib/doc-text-ascii.test.mjs +82 -0
- package/clients/cli/lib/exit-codes.test.mjs +97 -0
- package/clients/cli/lib/hook-format.mjs +19 -10
- package/clients/cli/lib/json-shim.mjs +38 -2
- package/clients/cli/lib/json-shim.test.mjs +83 -0
- package/clients/cli/lib/manifest.d.ts +2 -0
- package/clients/cli/lib/manifest.mjs +31 -2
- package/clients/cli/lib/manifest.test.mjs +17 -0
- package/foundation/agent-docs/agent-docs.d.mts +4 -0
- package/foundation/agent-docs/agent-docs.mjs +70 -3
- package/foundation/agent-docs/agent-docs.path-safety.test.mjs +266 -4
- package/foundation/agent-docs/agent-docs.test.mjs +10 -1
- package/foundation/config/integration-debug.test.mjs +28 -3
- package/foundation/config/project-themes.test.mjs +11 -19
- package/foundation/config/project.d.mts +20 -11
- package/foundation/config/project.mjs +246 -89
- package/foundation/config/project.test.mjs +270 -21
- package/foundation/discovery/authoring-self-docs.d.mts +6 -0
- package/foundation/discovery/authoring-self-docs.mjs +17 -7
- package/foundation/discovery/authoring-self-docs.test.mjs +20 -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 +108 -10
- package/foundation/discovery/docs-discovery.mjs +191 -30
- package/foundation/discovery/docs-discovery.test.mjs +71 -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 +113 -11
- package/foundation/discovery/template-adapter.fixture-refs.test.mjs +248 -0
- package/foundation/discovery/template-adapter.integration-isolation.test.mjs +94 -0
- package/foundation/discovery/template-adapter.mjs +772 -82
- package/foundation/discovery/template-adapter.test.mjs +57 -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 +3 -2
- package/foundation/doc-compiler/lenses.mjs +2 -1
- package/foundation/doc-compiler/links.d.mts +135 -0
- package/foundation/doc-compiler/links.mjs +253 -0
- package/foundation/doc-compiler/links.test.mjs +139 -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/fs/module-loader.d.mts +1 -0
- package/foundation/fs/module-loader.mjs +50 -1
- package/foundation/fs/module-loader.stdout.test.mjs +332 -0
- package/foundation/fs/path-safety.d.mts +3 -2
- package/foundation/fs/path-safety.mjs +49 -19
- package/foundation/fs/path-safety.test.mjs +50 -0
- package/foundation/fs/publish-file-hardlink-unavailable.test.mjs +129 -94
- package/foundation/integrations/autolink.d.mts +58 -1
- package/foundation/integrations/autolink.mjs +143 -52
- 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 +109 -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/base.d.ts +8 -4
- 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 +13 -4
- package/foundation/response/error-codes.mjs +8 -2
- package/foundation/response/error-codes.test.mjs +137 -10
- package/foundation/response/json-contract.test.mjs +11 -0
- package/foundation/response/json.d.mts +4 -2
- package/foundation/response/json.mjs +8 -10
- package/foundation/response/response-types.doc.mjs +22 -17
- package/foundation/response/response-types.doc.test.mjs +158 -0
- package/foundation/response/response.doc.mjs +1 -1
- package/foundation/text/string-utils.mjs +22 -10
- package/foundation/xle/expand.d.mts +2 -0
- package/foundation/xle/expand.mjs +4 -3
- package/foundation/xle/expand.test.mjs +54 -0
- package/foundation/xle/xle.test.mjs +13 -0
- package/package.json +10 -9
- package/assets/templates/themes/manifest.json +0 -95
- package/clients/cli/lib/update-check.mjs +0 -83
- package/clients/cli/lib/update-check.test.mjs +0 -137
- package/clients/cli/update-hint-commands.test.mjs +0 -54
|
@@ -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,74 @@ 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
|
+
/** Namespace content accepts both stable reference blocks and graph-only blocks. */
|
|
97
|
+
export const NamespaceContentBlockSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
98
|
+
type: z.ZodLiteral<"prose">;
|
|
99
|
+
text: z.ZodString;
|
|
100
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
101
|
+
type: z.ZodLiteral<"heading">;
|
|
102
|
+
level: z.ZodUnion<readonly [z.ZodLiteral<3>, z.ZodLiteral<4>, z.ZodLiteral<5>, z.ZodLiteral<6>]>;
|
|
103
|
+
text: z.ZodString;
|
|
104
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
105
|
+
type: z.ZodLiteral<"code">;
|
|
106
|
+
lang: z.ZodString;
|
|
107
|
+
code: z.ZodString;
|
|
108
|
+
label: z.ZodOptional<z.ZodString>;
|
|
109
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
110
|
+
type: z.ZodLiteral<"table">;
|
|
111
|
+
headers: z.ZodArray<z.ZodString>;
|
|
112
|
+
rows: z.ZodArray<z.ZodArray<z.ZodString>>;
|
|
113
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
114
|
+
type: z.ZodLiteral<"list">;
|
|
115
|
+
style: z.ZodEnum<{
|
|
116
|
+
ordered: "ordered";
|
|
117
|
+
unordered: "unordered";
|
|
118
|
+
do: "do";
|
|
119
|
+
dont: "dont";
|
|
120
|
+
}>;
|
|
121
|
+
items: z.ZodArray<z.ZodString>;
|
|
122
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
123
|
+
type: z.ZodLiteral<"token-ref">;
|
|
124
|
+
topic: z.ZodString;
|
|
125
|
+
section: z.ZodString;
|
|
58
126
|
}, z.core.$strict>, z.ZodObject<{
|
|
59
127
|
type: z.ZodLiteral<"workflow">;
|
|
60
128
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -235,41 +303,6 @@ export const GenericDocKindSchema: z.ZodObject<{
|
|
|
235
303
|
type: z.ZodLiteral<"token-ref">;
|
|
236
304
|
topic: z.ZodString;
|
|
237
305
|
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
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
262
|
-
type: z.ZodLiteral<"reference">;
|
|
263
|
-
target: z.ZodString;
|
|
264
|
-
projection: z.ZodOptional<z.ZodObject<{
|
|
265
|
-
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
266
|
-
sections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
267
|
-
}, z.core.$strict>>;
|
|
268
|
-
presentation: z.ZodOptional<z.ZodEnum<{
|
|
269
|
-
compact: "compact";
|
|
270
|
-
summary: "summary";
|
|
271
|
-
full: "full";
|
|
272
|
-
}>>;
|
|
273
306
|
}, z.core.$strict>], "type">>;
|
|
274
307
|
previewType: z.ZodOptional<z.ZodEnum<{
|
|
275
308
|
swatch: "swatch";
|
|
@@ -351,41 +384,6 @@ export const SchemaDocKindSchema: z.ZodObject<{
|
|
|
351
384
|
type: z.ZodLiteral<"token-ref">;
|
|
352
385
|
topic: z.ZodString;
|
|
353
386
|
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
387
|
}, z.core.$strict>], "type">>>;
|
|
390
388
|
placement: z.ZodOptional<z.ZodObject<{
|
|
391
389
|
parent: z.ZodString;
|
|
@@ -470,41 +468,6 @@ export const CommandDocKindSchema: z.ZodObject<{
|
|
|
470
468
|
type: z.ZodLiteral<"token-ref">;
|
|
471
469
|
topic: z.ZodString;
|
|
472
470
|
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
471
|
}, z.core.$strict>], "type">>>;
|
|
509
472
|
placement: z.ZodOptional<z.ZodObject<{
|
|
510
473
|
parent: z.ZodString;
|
|
@@ -877,41 +840,6 @@ export const LegacyDocSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
877
840
|
type: z.ZodLiteral<"token-ref">;
|
|
878
841
|
topic: z.ZodString;
|
|
879
842
|
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
|
-
}, z.core.$strict>, z.ZodObject<{
|
|
904
|
-
type: z.ZodLiteral<"reference">;
|
|
905
|
-
target: z.ZodString;
|
|
906
|
-
projection: z.ZodOptional<z.ZodObject<{
|
|
907
|
-
fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
908
|
-
sections: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
909
|
-
}, z.core.$strict>>;
|
|
910
|
-
presentation: z.ZodOptional<z.ZodEnum<{
|
|
911
|
-
compact: "compact";
|
|
912
|
-
summary: "summary";
|
|
913
|
-
full: "full";
|
|
914
|
-
}>>;
|
|
915
843
|
}, z.core.$strict>], "type">>;
|
|
916
844
|
previewType: z.ZodOptional<z.ZodEnum<{
|
|
917
845
|
swatch: "swatch";
|
|
@@ -933,6 +861,7 @@ export type AuthoredDocGraphFieldsType = import("./base/type.js").AuthoredDocGra
|
|
|
933
861
|
export type AuthoredDocKind = import("./base/type.js").AuthoredDocKind;
|
|
934
862
|
export type NamespaceDoc = import("./namespace/type.js").NamespaceDoc;
|
|
935
863
|
export type ReferenceContentBlock = import("./reference/type.js").ReferenceContentBlock;
|
|
864
|
+
export type GraphContentBlock = import("./reference/type.js").GraphContentBlock;
|
|
936
865
|
export type ReferenceDoc = import("./reference/type.js").ReferenceDoc;
|
|
937
866
|
export type SingleComponentDoc = import("./component/type.js").SingleComponentDoc;
|
|
938
867
|
export type ComponentPropDoc = import("./base/type.js").ComponentPropDoc;
|
|
@@ -944,6 +873,7 @@ export type EnumDoc = import("./enum/type.js").EnumDoc;
|
|
|
944
873
|
export type _AuthoredDocKindDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").Equal<z.infer<typeof AuthoredDocKindSchema>, AuthoredDocKind>>;
|
|
945
874
|
export type _AuthoredDocGraphDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").MutuallyAssignable<z.infer<typeof _AuthoredDocGraphSchema>, AuthoredDocGraphFieldsType>>;
|
|
946
875
|
export type _ReferenceContentBlockDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").Equal<z.infer<typeof ReferenceContentBlockSchema>, ReferenceContentBlock>>;
|
|
876
|
+
export type _GraphContentBlockDriftLock = import("../_shared/contract.js").Expect<import("../_shared/contract.js").Equal<z.infer<typeof GraphContentBlockSchema>, GraphContentBlock>>;
|
|
947
877
|
/**
|
|
948
878
|
* A stamped component doc as it loads. The loader accepts what the unstamped
|
|
949
879
|
* format always accepted, so stamping an existing doc never breaks it:
|
|
@@ -15,6 +15,7 @@ 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 */
|
|
18
19
|
/** @typedef {import('./reference/type.js').ReferenceDoc} ReferenceDoc */
|
|
19
20
|
/** @typedef {import('./component/type.js').SingleComponentDoc} SingleComponentDoc */
|
|
20
21
|
/** @typedef {import('./base/type.js').ComponentPropDoc} ComponentPropDoc */
|
|
@@ -161,7 +162,7 @@ const ReferenceBlockSchema = z
|
|
|
161
162
|
})
|
|
162
163
|
.strict();
|
|
163
164
|
|
|
164
|
-
/** Runtime schema for
|
|
165
|
+
/** Runtime schema for the stable content-block union published in 0.6.x. */
|
|
165
166
|
export const ReferenceContentBlockSchema = z.discriminatedUnion('type', [
|
|
166
167
|
ProseBlockSchema,
|
|
167
168
|
HeadingBlockSchema,
|
|
@@ -169,6 +170,23 @@ export const ReferenceContentBlockSchema = z.discriminatedUnion('type', [
|
|
|
169
170
|
TableBlockSchema,
|
|
170
171
|
ListBlockSchema,
|
|
171
172
|
TokenReferenceBlockSchema,
|
|
173
|
+
]);
|
|
174
|
+
|
|
175
|
+
/** Runtime schema for graph-only blocks used by NamespaceDoc. */
|
|
176
|
+
export const GraphContentBlockSchema = z.discriminatedUnion('type', [
|
|
177
|
+
WorkflowBlockSchema,
|
|
178
|
+
CollectionBlockSchema,
|
|
179
|
+
ReferenceBlockSchema,
|
|
180
|
+
]);
|
|
181
|
+
|
|
182
|
+
/** Namespace content accepts both stable reference blocks and graph-only blocks. */
|
|
183
|
+
export const NamespaceContentBlockSchema = z.discriminatedUnion('type', [
|
|
184
|
+
ProseBlockSchema,
|
|
185
|
+
HeadingBlockSchema,
|
|
186
|
+
CodeBlockSchema,
|
|
187
|
+
TableBlockSchema,
|
|
188
|
+
ListBlockSchema,
|
|
189
|
+
TokenReferenceBlockSchema,
|
|
172
190
|
WorkflowBlockSchema,
|
|
173
191
|
CollectionBlockSchema,
|
|
174
192
|
ReferenceBlockSchema,
|
|
@@ -183,6 +201,15 @@ export const ReferenceContentBlockSchema = z.discriminatedUnion('type', [
|
|
|
183
201
|
* >} _ReferenceContentBlockDriftLock
|
|
184
202
|
*/
|
|
185
203
|
|
|
204
|
+
/**
|
|
205
|
+
* @typedef {import('../_shared/contract.js').Expect<
|
|
206
|
+
* import('../_shared/contract.js').Equal<
|
|
207
|
+
* z.infer<typeof GraphContentBlockSchema>,
|
|
208
|
+
* GraphContentBlock
|
|
209
|
+
* >
|
|
210
|
+
* >} _GraphContentBlockDriftLock
|
|
211
|
+
*/
|
|
212
|
+
|
|
186
213
|
const ReferenceSectionSchema = z
|
|
187
214
|
.object({
|
|
188
215
|
id: nonEmptyString.optional(),
|
|
@@ -605,7 +632,7 @@ export const NamespaceDocKindSchema = z
|
|
|
605
632
|
.strict(),
|
|
606
633
|
)
|
|
607
634
|
.optional(),
|
|
608
|
-
blocks: z.array(
|
|
635
|
+
blocks: z.array(NamespaceContentBlockSchema).optional(),
|
|
609
636
|
})
|
|
610
637
|
.strict()
|
|
611
638
|
.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[];
|
|
@@ -23,10 +23,10 @@ import type {
|
|
|
23
23
|
* Standalone hooks (e.g. useMediaQuery, useFocusTrap, useOverflow) get
|
|
24
24
|
* their own {hookName}.doc.mjs file and use this type.
|
|
25
25
|
*
|
|
26
|
-
* Every hook .doc.mjs
|
|
26
|
+
* Every new hook .doc.mjs default-exports a stamped object:
|
|
27
27
|
*
|
|
28
28
|
* /\*\* @type {import('@astryxdesign/cli/authoring').HookDoc} \*\/
|
|
29
|
-
* export
|
|
29
|
+
* export default { type: 'function', ... };
|
|
30
30
|
*/
|
|
31
31
|
export interface HookDoc extends AuthoredDocGraphFields {
|
|
32
32
|
/** Doc-kind discriminant for the stamped default-export format
|
|
@@ -49,7 +49,7 @@ const EXAMPLES = Object.fromEntries(
|
|
|
49
49
|
|
|
50
50
|
describe('load check vs published type', () => {
|
|
51
51
|
it('locks every doc kind', () => {
|
|
52
|
-
const source = ['_schema.mjs', 'template/parse.mjs']
|
|
52
|
+
const source = ['_schema.mjs', 'template/parse.mjs', 'theme/parse.mjs']
|
|
53
53
|
.map(file => fs.readFileSync(path.join(HERE, file), 'utf8'))
|
|
54
54
|
.join('\n');
|
|
55
55
|
expect(Object.keys(LOCKS).sort()).toEqual([...KINDS].sort());
|
|
@@ -57,6 +57,7 @@ describe('load check vs published type', () => {
|
|
|
57
57
|
...Object.values(LOCKS),
|
|
58
58
|
'_AuthoredDocKindDriftLock',
|
|
59
59
|
'_HookDocIsFunctionDocLock',
|
|
60
|
+
'_ThemeDocDriftLock',
|
|
60
61
|
];
|
|
61
62
|
for (const lock of locks) {
|
|
62
63
|
expect(source, `${lock} is missing`).toMatch(
|
|
@@ -70,7 +71,7 @@ describe('load check vs published type', () => {
|
|
|
70
71
|
expect(() => parseDoc(EXAMPLES[kind], `${kind}.doc.mjs`)).not.toThrow();
|
|
71
72
|
}
|
|
72
73
|
expect(() => parseDoc({type: 'widget', name: 'x'}, 'x.doc.mjs')).toThrow(
|
|
73
|
-
/
|
|
74
|
+
/x\.doc\.mjs is invalid/u,
|
|
74
75
|
);
|
|
75
76
|
});
|
|
76
77
|
});
|