@astryxdesign/cli 0.6.3 → 0.6.4-canary.10dd683
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/CHANGELOG.md +194 -0
- package/README.md +117 -78
- 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 +16 -9
- package/api/build/build.test.mjs +197 -8
- package/api/build/build.type.d.mts +91 -2
- package/api/build/build.type.mjs +52 -8
- package/api/build/help/help.d.mts +12 -5
- package/api/build/help/help.mjs +69 -6
- 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 +13 -3
- package/api/component/component.mjs +91 -14
- package/api/component/component.test.mjs +38 -0
- package/api/component/component.type.d.mts +22 -11
- package/api/component/component.type.mjs +32 -24
- 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/_adapter.d.mts +114 -6
- package/api/discover/_adapter.mjs +372 -17
- package/api/discover/_adapter.test.mjs +215 -0
- package/api/discover/_catalog-view.d.mts +115 -0
- package/api/discover/_catalog-view.mjs +203 -0
- package/api/discover/_catalog-view.test.mjs +128 -0
- package/api/discover/detail/detail.d.mts +18 -6
- package/api/discover/detail/detail.mjs +67 -13
- package/api/discover/detail/detail.test.mjs +85 -0
- package/api/discover/detail/item/item.d.mts +26 -0
- package/api/discover/detail/item/item.mjs +78 -0
- package/api/discover/detail/item/item.test.mjs +73 -0
- package/api/discover/discover.d.mts +3 -9
- package/api/discover/discover.doc.mjs +62 -18
- package/api/discover/discover.mjs +220 -36
- package/api/discover/discover.test.mjs +11 -2
- package/api/discover/discover.type.d.mts +150 -11
- package/api/discover/discover.type.mjs +107 -17
- package/api/discover/list/list.d.mts +20 -6
- package/api/discover/list/list.mjs +45 -12
- package/api/discover/list/list.test.mjs +46 -0
- package/api/discover/search/search.d.mts +18 -16
- package/api/discover/search/search.mjs +102 -56
- package/api/discover/search/search.test.mjs +144 -10
- package/api/docs/_adapter.d.mts +272 -41
- package/api/docs/_adapter.mjs +985 -108
- package/api/docs/compiled-topics.test.mjs +78 -0
- package/api/docs/detail/detail.mjs +22 -63
- package/api/docs/detail/section/section.d.mts +1 -1
- package/api/docs/detail/section/section.mjs +54 -19
- package/api/docs/detail/section/section.test.mjs +50 -0
- package/api/docs/docs.d.mts +10 -3
- package/api/docs/docs.doc.mjs +55 -16
- package/api/docs/docs.mjs +53 -10
- package/api/docs/docs.test.mjs +164 -4
- package/api/docs/docs.type.d.mts +221 -5
- package/api/docs/docs.type.mjs +153 -11
- package/api/docs/index/index.d.mts +18 -0
- package/api/docs/index/index.mjs +40 -0
- package/api/docs/index/index.test.mjs +62 -0
- package/api/docs/integration-tree.test.mjs +555 -0
- package/api/docs/integrationDocs.test.mjs +114 -8
- 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 +99 -1
- package/api/doctor/doctor.doc.mjs +1 -0
- package/api/doctor/doctor.mjs +548 -1
- package/api/doctor/doctor.test.mjs +610 -1
- 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/hook.type.d.mts +3 -3
- package/api/hook/hook.type.mjs +11 -11
- package/api/hook/list/list.d.mts +2 -2
- 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 +130 -15
- package/api/integration/add-contribution.test.mjs +258 -7
- package/api/integration/add-helpers.d.mts +5 -2
- package/api/integration/add-helpers.mjs +36 -9
- 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 +3 -1
- 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.d.mts +3 -0
- package/api/integration/integrationTemplateConflicts.doc.mjs +4 -0
- package/api/integration/pack-check.mjs +83 -7
- package/api/integration/pack-check.test.mjs +387 -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 +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 +62 -11
- package/api/search/search.doc.mjs +8 -2
- package/api/search/search.mjs +471 -83
- package/api/search/search.test.mjs +124 -1
- package/api/search/search.type.d.mts +15 -3
- package/api/search/search.type.mjs +5 -2
- package/api/swizzle/copy/copy.mjs +28 -11
- package/api/swizzle/swizzle.doc.mjs +2 -1
- package/api/swizzle/swizzle.type.d.mts +2 -2
- package/api/swizzle/swizzle.type.mjs +2 -2
- 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/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.d.mts +1 -1
- package/api/template/template.doc.mjs +30 -8
- package/api/template/template.mjs +45 -8
- package/api/template/template.type.d.mts +12 -14
- package/api/template/template.type.mjs +15 -14
- 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 +31 -22
- package/api/theme/add/add.rollback.test.mjs +158 -0
- package/api/theme/add/add.staging.test.mjs +83 -0
- package/api/theme/add/add.test.mjs +14 -1
- package/api/theme/build/build.family.test.mjs +7 -12
- package/api/theme/build/build.mjs +140 -59
- 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/build.rollback.test.mjs +148 -0
- package/api/theme/build/build.test.mjs +127 -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 +8 -3
- package/api/theme/palette/generate/generate.test.mjs +96 -0
- package/api/theme/palette/generate/generator.d.mts +10 -13
- package/api/theme/palette/generate/generator.mjs +15 -4
- 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/theme.type.d.mts +170 -11
- package/api/theme/theme.type.mjs +94 -27
- 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 +139 -22
- package/api/upgrade/list/list.mjs +2 -1
- package/api/upgrade/list/list.test.mjs +73 -0
- package/api/upgrade/project-context.test.mjs +272 -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 +12 -5
- package/api/upgrade/upgrade.type.d.mts +43 -5
- package/api/upgrade/upgrade.type.mjs +27 -11
- package/assets/codemods/__tests__/registry.test.mjs +1 -0
- package/assets/codemods/__tests__/runner.test.mjs +330 -8
- package/assets/codemods/integration-discovery.mjs +48 -4
- package/assets/codemods/integration-discovery.test.mjs +73 -0
- package/assets/codemods/integration-runner.mjs +56 -4
- package/assets/codemods/integration-runner.protection.test.mjs +153 -0
- package/assets/codemods/registry.mjs +1 -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/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.3.0/__tests__/unwrap-authoring-factories.test.mjs +27 -5
- package/assets/codemods/transforms/v0.3.0/unwrap-authoring-factories.mjs +20 -5
- 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/codemods/transforms/v0.6.4/__tests__/migrate-native-picker-to-presentation.test.mjs +63 -0
- package/assets/codemods/transforms/v0.6.4/__tests__/migrate-theme-catalog-to-descriptors.test.mjs +220 -0
- package/assets/codemods/transforms/v0.6.4/index.mjs +31 -0
- package/assets/codemods/transforms/v0.6.4/migrate-native-picker-to-presentation.mjs +148 -0
- package/assets/codemods/transforms/v0.6.4/migrate-theme-catalog-to-descriptors.mjs +141 -0
- package/assets/docs/README.md +9 -0
- package/assets/docs/authoring.doc.mjs +14 -0
- package/assets/docs/getting-started.doc.mjs +2 -2
- package/assets/docs/internationalization.doc.mjs +7 -5
- 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 +4 -4
- 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} +144 -26
- 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 +4 -4
- 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/InternationalizationProvider/InternationalizationProvider01ShippedLocale.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/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/blocks/components/Timer/TimerFormats.doc.mjs +14 -0
- package/assets/templates/blocks/components/Timer/TimerFormats.tsx +34 -0
- package/assets/templates/blocks/components/Timer/TimerInline.doc.mjs +14 -0
- package/assets/templates/blocks/components/Timer/TimerInline.tsx +14 -0
- package/assets/templates/blocks/components/Timer/TimerShowcase.doc.mjs +13 -0
- package/assets/templates/blocks/components/Timer/TimerShowcase.tsx +47 -0
- package/assets/templates/blocks/components/Timer/TimerTypography.doc.mjs +14 -0
- package/assets/templates/blocks/components/Timer/TimerTypography.tsx +31 -0
- package/assets/templates/blocks/components/Toolbar/ToolbarTableFilter.doc.mjs +19 -3
- package/assets/templates/blocks/components/Toolbar/ToolbarTableFilter.tsx +383 -65
- 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/_shared/contract.ts +22 -0
- package/authoring/codemod/codemod.doc.mjs +7 -2
- package/authoring/codemod/parse.d.mts +8 -8
- package/authoring/codemod/parse.mjs +8 -6
- package/authoring/codemod/type.ts +12 -0
- package/authoring/config/config.doc.mjs +10 -2
- package/authoring/config/debug-composition.test.mjs +92 -0
- package/authoring/config/parse.d.mts +15 -13
- package/authoring/config/parse.mjs +27 -8
- package/authoring/config/parse.test.mjs +8 -0
- package/authoring/config/type.ts +29 -6
- package/authoring/debug/debug.doc.d.mts +11 -0
- package/authoring/debug/debug.doc.mjs +182 -0
- package/authoring/debug/parse.d.mts +8 -8
- package/authoring/debug/parse.mjs +3 -3
- package/authoring/discover/discover.doc.d.mts +13 -0
- package/authoring/discover/discover.doc.mjs +138 -0
- package/authoring/discover/parse.d.mts +24 -0
- package/authoring/discover/parse.mjs +128 -0
- package/authoring/discover/parse.test.mjs +124 -0
- package/authoring/discover/type.ts +87 -0
- package/authoring/doctypes/_schema.d.mts +790 -23
- package/authoring/doctypes/_schema.mjs +543 -39
- package/authoring/doctypes/base/graph-fields.doc.d.mts +9 -0
- package/authoring/doctypes/base/graph-fields.doc.mjs +64 -0
- package/authoring/doctypes/base/type.ts +41 -0
- package/authoring/doctypes/command/command.doc.mjs +4 -3
- package/authoring/doctypes/command/parse.d.mts +2 -2
- package/authoring/doctypes/command/parse.mjs +1 -1
- package/authoring/doctypes/command/type.ts +5 -4
- package/authoring/doctypes/component/component.doc.mjs +6 -3
- package/authoring/doctypes/component/parse.d.mts +2 -2
- package/authoring/doctypes/component/parse.mjs +1 -1
- package/authoring/doctypes/component/type.ts +6 -5
- package/authoring/doctypes/doctypes-new.test.mjs +48 -6
- package/authoring/doctypes/enum/enum.doc.mjs +1 -1
- package/authoring/doctypes/enum/parse.d.mts +2 -2
- package/authoring/doctypes/enum/parse.mjs +1 -1
- package/authoring/doctypes/enum/type.ts +4 -2
- package/authoring/doctypes/function/function.doc.mjs +7 -2
- package/authoring/doctypes/function/parse.d.mts +2 -2
- package/authoring/doctypes/function/parse.mjs +1 -1
- package/authoring/doctypes/function/type.ts +9 -4
- package/authoring/doctypes/hook/hook.doc.mjs +4 -0
- package/authoring/doctypes/hook/parse.d.mts +2 -2
- package/authoring/doctypes/hook/parse.mjs +1 -1
- package/authoring/doctypes/hook/type.ts +5 -4
- package/authoring/doctypes/legacy.d.mts +8 -6
- package/authoring/doctypes/legacy.mjs +5 -4
- package/authoring/doctypes/load-contract.test.mjs +233 -0
- package/authoring/doctypes/namespace/namespace.doc.d.mts +9 -0
- package/authoring/doctypes/namespace/namespace.doc.mjs +128 -0
- package/authoring/doctypes/namespace/parse.d.mts +12 -0
- package/authoring/doctypes/namespace/parse.mjs +25 -0
- package/authoring/doctypes/namespace/parse.test.mjs +163 -0
- package/authoring/doctypes/namespace/type.ts +74 -0
- package/authoring/doctypes/parse.d.mts +22 -18
- package/authoring/doctypes/parse.mjs +22 -11
- package/authoring/doctypes/parse.test.mjs +77 -3
- package/authoring/doctypes/reference/parse.d.mts +2 -2
- package/authoring/doctypes/reference/parse.mjs +8 -5
- package/authoring/doctypes/reference/reference.doc.mjs +48 -6
- package/authoring/doctypes/reference/type.ts +70 -7
- package/authoring/doctypes/schema/parse.d.mts +2 -2
- package/authoring/doctypes/schema/parse.mjs +1 -1
- package/authoring/doctypes/schema/schema.doc.mjs +1 -1
- package/authoring/doctypes/schema/type.ts +4 -4
- package/authoring/doctypes/template/parse.d.mts +94 -1
- package/authoring/doctypes/template/parse.mjs +40 -2
- package/authoring/doctypes/template/parse.test.mjs +26 -2
- package/authoring/doctypes/template/template.doc.mjs +13 -3
- package/authoring/doctypes/template/type.ts +13 -2
- 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 +12 -10
- package/authoring/gap-report/gap-report.doc.d.mts +12 -0
- package/authoring/gap-report/gap-report.doc.mjs +183 -0
- package/authoring/gap-report/parse.d.mts +10 -10
- package/authoring/gap-report/parse.mjs +6 -6
- package/authoring/gap-report/type.ts +1 -1
- package/authoring/identity/identity.doc.d.mts +9 -0
- package/authoring/identity/identity.doc.mjs +61 -0
- package/authoring/identity/type.ts +132 -0
- package/authoring/index.d.mts +3 -0
- package/authoring/index.d.ts +62 -17
- package/authoring/index.mjs +4 -1
- package/authoring/integration/integration.doc.mjs +15 -8
- package/authoring/integration/parse.d.mts +2 -2
- package/authoring/integration/parse.mjs +1 -1
- package/authoring/integration/parse.test.mjs +10 -1
- package/authoring/integration/schema.d.mts +6 -4
- package/authoring/integration/schema.mjs +9 -3
- package/authoring/integration/type.ts +19 -8
- package/authoring/shadcn/receipt.d.mts +6 -6
- 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 +16 -8
- package/clients/cli/commands/build.exit-codes-doc.test.mjs +50 -0
- package/clients/cli/commands/build.mjs +137 -114
- package/clients/cli/commands/build.playbook.test.mjs +75 -0
- package/clients/cli/commands/build.text-fields.test.mjs +81 -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 +55 -9
- package/clients/cli/commands/discover.mjs +393 -118
- package/clients/cli/commands/discover.sources.test.mjs +267 -0
- package/clients/cli/commands/discover.text-projection.test.mjs +103 -0
- package/clients/cli/commands/docs.doc.mjs +28 -6
- package/clients/cli/commands/docs.mjs +240 -26
- package/clients/cli/commands/docs.test.mjs +193 -1
- 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 +90 -8
- package/clients/cli/commands/doctor.doc.mjs +1 -1
- package/clients/cli/commands/doctor.mjs +59 -32
- 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-authoring.test.mjs +13 -9
- 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 +9 -5
- 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 +22 -10
- 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 +164 -1
- package/clients/cli/formatters/index.test.mjs +97 -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 +37 -2
- package/clients/cli/lib/manifest.test.mjs +17 -0
- package/foundation/agent-docs/agent-docs.d.mts +7 -2
- package/foundation/agent-docs/agent-docs.mjs +82 -12
- package/foundation/agent-docs/agent-docs.path-safety.test.mjs +266 -4
- package/foundation/agent-docs/agent-docs.test.mjs +19 -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 +263 -91
- package/foundation/config/project.test.mjs +270 -21
- package/foundation/discovery/authoring-self-docs.d.mts +87 -0
- package/foundation/discovery/authoring-self-docs.mjs +237 -0
- package/foundation/discovery/authoring-self-docs.test.mjs +170 -0
- 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 +39 -1
- package/foundation/discovery/component-discovery.mjs +50 -1
- package/foundation/discovery/component-loader.d.mts +35 -38
- package/foundation/discovery/component-loader.mjs +53 -222
- package/foundation/discovery/docs-discovery.d.mts +119 -11
- package/foundation/discovery/docs-discovery.mjs +423 -108
- package/foundation/discovery/docs-discovery.test.mjs +365 -20
- package/foundation/discovery/docs-output-budget.d.mts +28 -0
- package/foundation/discovery/docs-output-budget.mjs +50 -0
- package/foundation/discovery/docs-section-key.d.mts +116 -0
- package/foundation/discovery/docs-section-key.mjs +322 -0
- package/foundation/discovery/docs-section-key.test.mjs +246 -0
- 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 +774 -83
- 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/discovery/theming-targets.test.mjs +4 -0
- 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 +343 -0
- package/foundation/doc-compiler/compile.mjs +558 -0
- 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 +714 -0
- 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 +22 -0
- package/foundation/doc-compiler/ir.mjs +471 -0
- package/foundation/doc-compiler/lenses.d.mts +36 -0
- package/foundation/doc-compiler/lenses.mjs +173 -0
- 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/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/identity/provider-identity.d.mts +90 -0
- package/foundation/identity/provider-identity.mjs +320 -0
- package/foundation/identity/provider-identity.test.mjs +254 -0
- package/foundation/identity/providers.d.mts +7 -0
- package/foundation/identity/providers.mjs +16 -0
- package/foundation/integrations/autolink.d.mts +58 -1
- package/foundation/integrations/autolink.mjs +143 -45
- 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 +52 -21
- package/foundation/integrations/integration-warnings.test.mjs +74 -1
- package/foundation/integrations/integrations.d.mts +63 -3
- package/foundation/integrations/integrations.mjs +122 -9
- package/foundation/integrations/integrations.test.mjs +415 -1
- package/foundation/integrations/provider-conflicts.test.mjs +125 -0
- 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.d.mts +2 -0
- package/foundation/integrations/validate-contributions.mjs +131 -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 +57 -17
- package/foundation/response/json.d.mts +4 -2
- package/foundation/response/json.mjs +8 -10
- package/foundation/response/response-types.doc.d.mts +5 -1
- package/foundation/response/response-types.doc.mjs +41 -21
- package/foundation/response/response-types.doc.test.mjs +158 -0
- 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.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 -11
- 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
package/api/docs/docs.test.mjs
CHANGED
|
@@ -26,11 +26,15 @@ describe('docs() dispatcher routing', () => {
|
|
|
26
26
|
expect((await docs('')).type).toBe('docs.list');
|
|
27
27
|
}, SLOW);
|
|
28
28
|
|
|
29
|
-
it('topic only -> docs.detail', async () => {
|
|
29
|
+
it('topic only -> docs.detail, the whole doc', async () => {
|
|
30
30
|
const {data} = await docs();
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
expect((await docs(data[0].topic)).type).toBe('docs.detail');
|
|
32
|
+
}, SLOW);
|
|
33
|
+
|
|
34
|
+
it('topic + index -> docs.index', async () => {
|
|
35
|
+
const {data} = await docs();
|
|
36
|
+
const r = await docs(data[0].topic, undefined, {index: true});
|
|
37
|
+
expect(r.type).toBe('docs.index');
|
|
34
38
|
}, SLOW);
|
|
35
39
|
|
|
36
40
|
it('topic + section -> docs.detail.section', async () => {
|
|
@@ -63,6 +67,162 @@ describe('docs() dispatcher routing', () => {
|
|
|
63
67
|
});
|
|
64
68
|
}, SLOW);
|
|
65
69
|
|
|
70
|
+
it("lists the docs tree's namespaces in meta, so every data entry reads as a topic", async () => {
|
|
71
|
+
const res = await docs();
|
|
72
|
+
expect(res.meta.namespaces.map(entry => entry.topic)).toEqual(['cli', 'unorganized']);
|
|
73
|
+
for (const entry of res.data) {
|
|
74
|
+
expect((await docs(entry.topic)).type).toBe('docs.detail');
|
|
75
|
+
}
|
|
76
|
+
}, SLOW);
|
|
77
|
+
|
|
78
|
+
it('opens a route typed in another case', async () => {
|
|
79
|
+
const r = await docs('CLI/API');
|
|
80
|
+
expect(r.type).toBe('docs.node');
|
|
81
|
+
expect(r.data).toMatchObject({route: 'cli/api', links: {up: 'astryx docs cli'}});
|
|
82
|
+
}, SLOW);
|
|
83
|
+
|
|
84
|
+
it('a section of a typed doc -> ERR_UNKNOWN_SECTION, suggesting the doc itself', async () => {
|
|
85
|
+
const err = await docs('cli/api/functions/search', 'x').catch(e => e);
|
|
86
|
+
expect(err.code).toBe('ERR_UNKNOWN_SECTION');
|
|
87
|
+
expect(err.message).toContain('astryx docs cli/api/functions/search');
|
|
88
|
+
expect(err.suggestions.map(s => s.name)).toEqual(['cli/api/functions/search']);
|
|
89
|
+
}, SLOW);
|
|
90
|
+
|
|
91
|
+
it('a namespace route -> docs.node, one level of children', async () => {
|
|
92
|
+
const r = await docs('cli/api');
|
|
93
|
+
expect(r.type).toBe('docs.node');
|
|
94
|
+
expect(r.data).toMatchObject({
|
|
95
|
+
id: 'astryx:artifact:v1/%40astryxdesign%2Fcli/namespace/api',
|
|
96
|
+
route: 'cli/api',
|
|
97
|
+
kind: 'namespace',
|
|
98
|
+
package: '@astryxdesign/cli',
|
|
99
|
+
breadcrumb: [{route: 'cli', title: 'Astryx CLI'}],
|
|
100
|
+
content: [],
|
|
101
|
+
});
|
|
102
|
+
expect(r.data.slots.flatMap(slot => slot.children.map(c => c.route))).toEqual([
|
|
103
|
+
'cli/api/functions',
|
|
104
|
+
'cli/api/schemas',
|
|
105
|
+
'cli/api/enums',
|
|
106
|
+
]);
|
|
107
|
+
}, SLOW);
|
|
108
|
+
|
|
109
|
+
it('a typed doc route -> docs.node with its content', async () => {
|
|
110
|
+
const r = await docs('cli/api/functions/search');
|
|
111
|
+
expect(r.type).toBe('docs.node');
|
|
112
|
+
expect(r.data).toMatchObject({
|
|
113
|
+
id: 'astryx:artifact:v1/%40astryxdesign%2Fcli/function/search',
|
|
114
|
+
kind: 'function',
|
|
115
|
+
title: 'search()',
|
|
116
|
+
slots: [],
|
|
117
|
+
});
|
|
118
|
+
expect(r.data.breadcrumb.map(link => link.route)).toEqual([
|
|
119
|
+
'cli',
|
|
120
|
+
'cli/api',
|
|
121
|
+
'cli/api/functions',
|
|
122
|
+
]);
|
|
123
|
+
expect(JSON.stringify(r.data.content)).toContain(
|
|
124
|
+
'`astryx search` runs it. Read it with `astryx docs cli/commands/search`.',
|
|
125
|
+
);
|
|
126
|
+
}, SLOW);
|
|
127
|
+
|
|
128
|
+
it('a guide the tree places reads like a topic: the whole doc, its index, a section', async () => {
|
|
129
|
+
expect((await docs('cli/integrations')).type).toBe('docs.detail');
|
|
130
|
+
const index = await docs('cli/integrations', undefined, {index: true});
|
|
131
|
+
expect(index).toMatchObject({type: 'docs.index', data: {name: 'cli/integrations'}});
|
|
132
|
+
expect(index.data.sections.length).toBeGreaterThan(1);
|
|
133
|
+
expect((await docs('cli/integrations', 'components')).type).toBe(
|
|
134
|
+
'docs.detail.section',
|
|
135
|
+
);
|
|
136
|
+
}, SLOW);
|
|
137
|
+
|
|
138
|
+
it('every read carries its moves (spec:AST-047)', async () => {
|
|
139
|
+
const root = (await docs('cli')).data;
|
|
140
|
+
expect(root.links).toEqual({up: 'astryx docs'});
|
|
141
|
+
const leaf = (await docs('cli/api/functions/search')).data;
|
|
142
|
+
expect(leaf.links.up).toBe('astryx docs cli/api/functions');
|
|
143
|
+
expect(leaf.links.previous).toMatch(/^astryx docs cli\/api\/functions\/[a-z-]+$/);
|
|
144
|
+
expect(leaf.links.next).toMatch(/^astryx docs cli\/api\/functions\/[a-z-]+$/);
|
|
145
|
+
const index = await docs('cli/integrations', undefined, {index: true});
|
|
146
|
+
// A guide moves across its namespace's slot, as any tree node does.
|
|
147
|
+
expect(index.data.links).toEqual({
|
|
148
|
+
up: 'astryx docs cli',
|
|
149
|
+
next: 'astryx docs cli/writing-docs',
|
|
150
|
+
});
|
|
151
|
+
const first = (await docs('cli/integrations', index.data.sections[0].id)).data;
|
|
152
|
+
expect(first.links).toEqual({
|
|
153
|
+
up: 'astryx docs cli/integrations --index',
|
|
154
|
+
next: `astryx docs cli/integrations ${index.data.sections[1].id}`,
|
|
155
|
+
});
|
|
156
|
+
const last = index.data.sections.at(-1).id;
|
|
157
|
+
const end = (await docs('cli/integrations', last)).data;
|
|
158
|
+
expect(end.links.next).toBeUndefined();
|
|
159
|
+
expect(end.links.previous).toBe(
|
|
160
|
+
`astryx docs cli/integrations ${index.data.sections.at(-2).id}`,
|
|
161
|
+
);
|
|
162
|
+
// A flat topic's home is the Unorganized level, and it moves across it.
|
|
163
|
+
const flat = (await docs('principles')).data.links;
|
|
164
|
+
expect(flat.up).toBe('astryx docs unorganized');
|
|
165
|
+
expect(flat.previous).toMatch(/^astryx docs [a-z-]+$/);
|
|
166
|
+
expect(flat.next).toMatch(/^astryx docs [a-z-]+$/);
|
|
167
|
+
const home = (await docs('unorganized')).data;
|
|
168
|
+
expect(home).toMatchObject({id: null, kind: 'namespace', links: {up: 'astryx docs'}});
|
|
169
|
+
expect(home.slots[0].children.map(child => child.route)).toEqual(
|
|
170
|
+
(await docs()).data.map(entry => entry.topic),
|
|
171
|
+
);
|
|
172
|
+
}, SLOW);
|
|
173
|
+
|
|
174
|
+
it('names a node by its doc identity; a generated level has id null', async () => {
|
|
175
|
+
const level = (await docs('cli/api/functions')).data;
|
|
176
|
+
expect(level).toHaveProperty('id', null);
|
|
177
|
+
expect(level.route).toBe('cli/api/functions');
|
|
178
|
+
}, SLOW);
|
|
179
|
+
|
|
180
|
+
it("offers a typed doc's related docs as moves", async () => {
|
|
181
|
+
const fn = (await docs('cli/api/functions/search')).data;
|
|
182
|
+
expect(fn.links.related).toContain('astryx docs cli/commands/search');
|
|
183
|
+
const cmd = (await docs('cli/commands/search')).data;
|
|
184
|
+
expect(cmd.links.related).toContain('astryx docs cli/api/functions/search');
|
|
185
|
+
}, SLOW);
|
|
186
|
+
|
|
187
|
+
it('a topic read returns the whole doc; index returns its sections', async () => {
|
|
188
|
+
expect((await docs('principles')).type).toBe('docs.detail');
|
|
189
|
+
const index = await docs('principles', undefined, {index: true});
|
|
190
|
+
expect(index.type).toBe('docs.index');
|
|
191
|
+
expect(index.data.sections.length).toBeGreaterThan(1);
|
|
192
|
+
expect((await docs('principles', undefined, {dense: true})).type).toBe(
|
|
193
|
+
'docs.detail',
|
|
194
|
+
);
|
|
195
|
+
}, SLOW);
|
|
196
|
+
|
|
197
|
+
it("the guide's old flat name is gone, and its error names the new route", async () => {
|
|
198
|
+
await expect(docs('cli-integrations')).rejects.toMatchObject({
|
|
199
|
+
code: 'ERR_UNKNOWN_TOPIC',
|
|
200
|
+
suggestions: [expect.objectContaining({name: 'cli/integrations'})],
|
|
201
|
+
});
|
|
202
|
+
expect((await docs()).data.map(entry => entry.topic)).not.toContain(
|
|
203
|
+
'cli-integrations',
|
|
204
|
+
);
|
|
205
|
+
}, SLOW);
|
|
206
|
+
|
|
207
|
+
it('a section of a namespace -> ERR_UNKNOWN_SECTION, naming its children', async () => {
|
|
208
|
+
const err = await docs('cli', 'commands').catch(e => e);
|
|
209
|
+
expect(err).toBeInstanceOf(AstryxError);
|
|
210
|
+
expect(err.code).toBe('ERR_UNKNOWN_SECTION');
|
|
211
|
+
expect(err.suggestions.map(s => s.name)).toEqual([
|
|
212
|
+
'cli/integrations',
|
|
213
|
+
'cli/writing-docs',
|
|
214
|
+
'cli/commands',
|
|
215
|
+
'cli/api',
|
|
216
|
+
]);
|
|
217
|
+
}, SLOW);
|
|
218
|
+
|
|
219
|
+
it('an unknown route suggests the children of the deepest namespace it reaches', async () => {
|
|
220
|
+
const err = await docs('cli/api/functions/serch').catch(e => e);
|
|
221
|
+
expect(err.code).toBe('ERR_UNKNOWN_TOPIC');
|
|
222
|
+
expect(err.suggestions.map(s => s.name)).toContain('cli/api/functions/search');
|
|
223
|
+
expect(err.suggestions.every(s => s.name.startsWith('cli/api/functions/'))).toBe(true);
|
|
224
|
+
}, SLOW);
|
|
225
|
+
|
|
66
226
|
it('non-string topic -> ERR_UNKNOWN_TOPIC (not a raw TypeError)', async () => {
|
|
67
227
|
for (const bad of [123, {}, ['tokens'], true]) {
|
|
68
228
|
const err = await docs(/** @type {any} */ (bad)).catch(e => e);
|
package/api/docs/docs.type.d.mts
CHANGED
|
@@ -2,11 +2,26 @@
|
|
|
2
2
|
// DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* astryx --json docs
|
|
6
6
|
*/
|
|
7
7
|
export type DocsListResponse = {
|
|
8
8
|
type: "docs.list";
|
|
9
|
+
/**
|
|
10
|
+
* every topic, each readable as a topic
|
|
11
|
+
*/
|
|
9
12
|
data: DocsListEntry[];
|
|
13
|
+
/**
|
|
14
|
+
* `namespaces`: the docs tree's top-level namespaces, each opened by its
|
|
15
|
+
* `topic` as a docs.node; `notLoaded`: each package whose doc files did not
|
|
16
|
+
* load, and why (its docs are withdrawn)
|
|
17
|
+
*/
|
|
18
|
+
meta?: {
|
|
19
|
+
namespaces?: DocsListNamespace[];
|
|
20
|
+
notLoaded?: Array<{
|
|
21
|
+
package: string;
|
|
22
|
+
message: string;
|
|
23
|
+
}>;
|
|
24
|
+
} | undefined;
|
|
10
25
|
};
|
|
11
26
|
export type DocsListEntry = {
|
|
12
27
|
topic: string;
|
|
@@ -23,18 +38,214 @@ export type DocsListEntry = {
|
|
|
23
38
|
replaces?: string | undefined;
|
|
24
39
|
};
|
|
25
40
|
/**
|
|
26
|
-
*
|
|
41
|
+
* A top-level namespace of the docs tree, as `astryx docs --json` lists it in
|
|
42
|
+
* `meta.namespaces`.
|
|
43
|
+
*/
|
|
44
|
+
export type DocsListNamespace = {
|
|
45
|
+
/**
|
|
46
|
+
* its route, the argument that opens it
|
|
47
|
+
*/
|
|
48
|
+
topic: string;
|
|
49
|
+
description: string;
|
|
50
|
+
/**
|
|
51
|
+
* the package that owns it
|
|
52
|
+
*/
|
|
53
|
+
package: string;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* astryx --json docs <topic> --index
|
|
57
|
+
*/
|
|
58
|
+
export type DocsIndexResponse = {
|
|
59
|
+
type: "docs.index";
|
|
60
|
+
data: DocsIndex;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* astryx --json docs <topic>
|
|
27
64
|
*/
|
|
28
65
|
export type DocsDetailResponse = {
|
|
29
66
|
type: "docs.detail";
|
|
30
|
-
|
|
67
|
+
/**
|
|
68
|
+
* the whole doc, and the moves from it
|
|
69
|
+
*/
|
|
70
|
+
data: DocsReadDoc & {
|
|
71
|
+
links: DocsLinks;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* A topic section as a read returns it. A read inlines each token reference
|
|
76
|
+
* and each `reference` block the author wrote, so its content holds only the
|
|
77
|
+
* stable ReferenceContentBlock kinds.
|
|
78
|
+
*/
|
|
79
|
+
export type DocsReadSection = Omit<import("@astryxdesign/cli/authoring").ReferenceSection, "content"> & {
|
|
80
|
+
content: import("@astryxdesign/cli/authoring").ReferenceContentBlock[];
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* A topic as a read returns it: every section a {@link DocsReadSection}.
|
|
84
|
+
*/
|
|
85
|
+
export type DocsReadDoc = Omit<import("@astryxdesign/cli/authoring").ReferenceDoc, "sections"> & {
|
|
86
|
+
sections: DocsReadSection[];
|
|
31
87
|
};
|
|
32
88
|
/**
|
|
33
|
-
*
|
|
89
|
+
* The doc a link opens (spec:AST-047 FR9). A docs read resolves every link:
|
|
90
|
+
* an inline `{@link <target>}` reads as `link.command`, a `reference` block in
|
|
91
|
+
* a namespace doc carries `link` (null when the target names no doc), and each
|
|
92
|
+
* `workflow` step carries `links`, one per reference. A topic read inlines a
|
|
93
|
+
* section's `reference` block as the doc it includes, then a line naming where
|
|
94
|
+
* that comes from and the command that opens it.
|
|
95
|
+
*/
|
|
96
|
+
export type DocLink = import("../../foundation/doc-compiler/links.mjs").DocLink;
|
|
97
|
+
/**
|
|
98
|
+
* One move: a whole `astryx docs` command a reader can run as is.
|
|
99
|
+
*/
|
|
100
|
+
export type DocsCommand = "astryx docs" | `astryx docs ${string}`;
|
|
101
|
+
/**
|
|
102
|
+
* The moves a docs read offers (spec:AST-047). Every read but the topic list
|
|
103
|
+
* carries them.
|
|
104
|
+
*/
|
|
105
|
+
export type DocsLinks = {
|
|
106
|
+
/**
|
|
107
|
+
* opens the level the read sits in: a section's
|
|
108
|
+
* topic index, a node's parent namespace, or the topic list
|
|
109
|
+
*/
|
|
110
|
+
up: DocsCommand;
|
|
111
|
+
/**
|
|
112
|
+
* opens the item before it at its level: the
|
|
113
|
+
* previous section of its topic, or the previous node in its parent's slot
|
|
114
|
+
*/
|
|
115
|
+
previous?: DocsCommand | undefined;
|
|
116
|
+
/**
|
|
117
|
+
* opens the item after it at its level
|
|
118
|
+
*/
|
|
119
|
+
next?: DocsCommand | undefined;
|
|
120
|
+
/**
|
|
121
|
+
* opens each doc a typed doc names: a
|
|
122
|
+
* function's command, a command's function, and the docs it lists as
|
|
123
|
+
* related
|
|
124
|
+
*/
|
|
125
|
+
related?: DocsCommand[] | undefined;
|
|
126
|
+
};
|
|
127
|
+
/**
|
|
128
|
+
* The section index of one topic: what the topic is, and the key each section
|
|
129
|
+
* is read by.
|
|
130
|
+
*/
|
|
131
|
+
export type DocsIndex = {
|
|
132
|
+
/**
|
|
133
|
+
* the topic
|
|
134
|
+
*/
|
|
135
|
+
name: string;
|
|
136
|
+
title: string;
|
|
137
|
+
description: string;
|
|
138
|
+
sections: DocsIndexSection[];
|
|
139
|
+
/**
|
|
140
|
+
* the moves from the index
|
|
141
|
+
*/
|
|
142
|
+
links: DocsLinks;
|
|
143
|
+
};
|
|
144
|
+
export type DocsIndexSection = {
|
|
145
|
+
/**
|
|
146
|
+
* stable key; pass it as the section argument
|
|
147
|
+
*/
|
|
148
|
+
id: string;
|
|
149
|
+
title: string;
|
|
150
|
+
/**
|
|
151
|
+
* the section's first line of text, at most 240
|
|
152
|
+
* characters
|
|
153
|
+
*/
|
|
154
|
+
summary: string;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* astryx --json docs <topic> <section>
|
|
34
158
|
*/
|
|
35
159
|
export type DocsDetailSectionResponse = {
|
|
36
160
|
type: "docs.detail.section";
|
|
37
|
-
|
|
161
|
+
/**
|
|
162
|
+
* the section, and the moves from it: up to its topic's index, and across to
|
|
163
|
+
* the sections before and after it
|
|
164
|
+
*/
|
|
165
|
+
data: DocsReadSection & {
|
|
166
|
+
links: DocsLinks;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* astryx --json docs <route>, for a namespace or a typed doc in the docs tree
|
|
171
|
+
*/
|
|
172
|
+
export type DocsNodeResponse = {
|
|
173
|
+
type: "docs.node";
|
|
174
|
+
data: DocsNode;
|
|
175
|
+
};
|
|
176
|
+
/**
|
|
177
|
+
* One node of the docs tree.
|
|
178
|
+
*/
|
|
179
|
+
export type DocsNode = {
|
|
180
|
+
/**
|
|
181
|
+
* the doc's DocId, built from its provider's
|
|
182
|
+
* ProviderId, kind, and name (see the provider-identity authoring doc);
|
|
183
|
+
* unchanged when the node moves. Always present; null on a generated level,
|
|
184
|
+
* such as `cli/api/functions`, which has no authored doc
|
|
185
|
+
*/
|
|
186
|
+
id: string | null;
|
|
187
|
+
/**
|
|
188
|
+
* pass it to `astryx docs`
|
|
189
|
+
*/
|
|
190
|
+
route: string;
|
|
191
|
+
/**
|
|
192
|
+
* `namespace`, or the typed doc's kind: `command`,
|
|
193
|
+
* `function`, `schema`, or `enum`
|
|
194
|
+
*/
|
|
195
|
+
kind: string;
|
|
196
|
+
/**
|
|
197
|
+
* the package that owns the node
|
|
198
|
+
*/
|
|
199
|
+
package: string;
|
|
200
|
+
title: string;
|
|
201
|
+
summary: string;
|
|
202
|
+
/**
|
|
203
|
+
* the namespaces above it, top first
|
|
204
|
+
*/
|
|
205
|
+
breadcrumb: DocsNodeLink[];
|
|
206
|
+
/**
|
|
207
|
+
* a namespace's slots that hold children, in
|
|
208
|
+
* order; empty for a typed doc
|
|
209
|
+
*/
|
|
210
|
+
slots: DocsNodeSlot[];
|
|
211
|
+
/**
|
|
212
|
+
* a typed doc's content; empty for a namespace
|
|
213
|
+
*/
|
|
214
|
+
content: import("@astryxdesign/cli/authoring").ReferenceContentBlock[];
|
|
215
|
+
/**
|
|
216
|
+
* the moves from the node: up to its parent (the
|
|
217
|
+
* topic list, for a top-level namespace), and across to its neighbors in its
|
|
218
|
+
* parent's slot
|
|
219
|
+
*/
|
|
220
|
+
links: DocsLinks;
|
|
221
|
+
};
|
|
222
|
+
export type DocsNodeLink = {
|
|
223
|
+
route: string;
|
|
224
|
+
title: string;
|
|
225
|
+
};
|
|
226
|
+
export type DocsNodeSlot = {
|
|
227
|
+
/**
|
|
228
|
+
* the slot's key in its namespace
|
|
229
|
+
*/
|
|
230
|
+
name: string;
|
|
231
|
+
title: string;
|
|
232
|
+
/**
|
|
233
|
+
* in reading order
|
|
234
|
+
*/
|
|
235
|
+
children: DocsNodeChild[];
|
|
236
|
+
};
|
|
237
|
+
export type DocsNodeChild = {
|
|
238
|
+
/**
|
|
239
|
+
* pass it to `astryx docs` to go one level down
|
|
240
|
+
*/
|
|
241
|
+
route: string;
|
|
242
|
+
/**
|
|
243
|
+
* the last segment of its route
|
|
244
|
+
*/
|
|
245
|
+
name: string;
|
|
246
|
+
kind: string;
|
|
247
|
+
title: string;
|
|
248
|
+
summary: string;
|
|
38
249
|
};
|
|
39
250
|
/**
|
|
40
251
|
* Options for `docs()`.
|
|
@@ -43,6 +254,11 @@ export type DocsOptions = {
|
|
|
43
254
|
lang?: string | undefined;
|
|
44
255
|
zh?: boolean | undefined;
|
|
45
256
|
dense?: boolean | undefined;
|
|
257
|
+
/**
|
|
258
|
+
* return a topic's section index instead of its
|
|
259
|
+
* whole doc
|
|
260
|
+
*/
|
|
261
|
+
index?: boolean | undefined;
|
|
46
262
|
/**
|
|
47
263
|
* project directory whose configured integrations
|
|
48
264
|
* contribute topics; defaults to process.cwd()
|
package/api/docs/docs.type.mjs
CHANGED
|
@@ -4,19 +4,26 @@
|
|
|
4
4
|
* @file Colocated types for the `docs` command — source of truth for the docs
|
|
5
5
|
* command JSON responses. `types/docs.d.ts` re-exports these.
|
|
6
6
|
*
|
|
7
|
-
* Invocation
|
|
7
|
+
* Invocation -> type discriminator
|
|
8
8
|
* ------------------------------------------------------------
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* astryx --json docs -> docs.list
|
|
10
|
+
* astryx --json docs <topic> -> docs.detail
|
|
11
|
+
* astryx --json docs <topic> --index -> docs.index
|
|
12
|
+
* astryx --json docs <topic> <section> -> docs.detail.section
|
|
13
|
+
* astryx --json docs <route> -> docs.node (a namespace or a
|
|
14
|
+
* typed doc in the docs tree)
|
|
15
|
+
* (unknown topic/section) -> CLIError
|
|
13
16
|
*/
|
|
14
17
|
|
|
15
18
|
/**
|
|
16
|
-
*
|
|
19
|
+
* astryx --json docs
|
|
17
20
|
* @typedef {object} DocsListResponse
|
|
18
21
|
* @property {'docs.list'} type
|
|
19
|
-
* @property {DocsListEntry[]} data
|
|
22
|
+
* @property {DocsListEntry[]} data every topic, each readable as a topic
|
|
23
|
+
* @property {{namespaces?: DocsListNamespace[], notLoaded?: Array<{package: string, message: string}>}} [meta]
|
|
24
|
+
* `namespaces`: the docs tree's top-level namespaces, each opened by its
|
|
25
|
+
* `topic` as a docs.node; `notLoaded`: each package whose doc files did not
|
|
26
|
+
* load, and why (its docs are withdrawn)
|
|
20
27
|
*/
|
|
21
28
|
|
|
22
29
|
/**
|
|
@@ -30,17 +37,150 @@
|
|
|
30
37
|
*/
|
|
31
38
|
|
|
32
39
|
/**
|
|
33
|
-
*
|
|
40
|
+
* A top-level namespace of the docs tree, as `astryx docs --json` lists it in
|
|
41
|
+
* `meta.namespaces`.
|
|
42
|
+
* @typedef {object} DocsListNamespace
|
|
43
|
+
* @property {string} topic its route, the argument that opens it
|
|
44
|
+
* @property {string} description
|
|
45
|
+
* @property {string} package the package that owns it
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* astryx --json docs <topic> --index
|
|
50
|
+
* @typedef {object} DocsIndexResponse
|
|
51
|
+
* @property {'docs.index'} type
|
|
52
|
+
* @property {DocsIndex} data
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* astryx --json docs <topic>
|
|
34
57
|
* @typedef {object} DocsDetailResponse
|
|
35
58
|
* @property {'docs.detail'} type
|
|
36
|
-
* @property {
|
|
59
|
+
* @property {DocsReadDoc & {links: DocsLinks}} data
|
|
60
|
+
* the whole doc, and the moves from it
|
|
61
|
+
*/
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A topic section as a read returns it. A read inlines each token reference
|
|
65
|
+
* and each `reference` block the author wrote, so its content holds only the
|
|
66
|
+
* stable ReferenceContentBlock kinds.
|
|
67
|
+
* @typedef {Omit<import('@astryxdesign/cli/authoring').ReferenceSection, 'content'>
|
|
68
|
+
* & {content: import('@astryxdesign/cli/authoring').ReferenceContentBlock[]}} DocsReadSection
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* A topic as a read returns it: every section a {@link DocsReadSection}.
|
|
73
|
+
* @typedef {Omit<import('@astryxdesign/cli/authoring').ReferenceDoc, 'sections'>
|
|
74
|
+
* & {sections: DocsReadSection[]}} DocsReadDoc
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* The doc a link opens (spec:AST-047 FR9). A docs read resolves every link:
|
|
79
|
+
* an inline `{@link <target>}` reads as `link.command`, a `reference` block in
|
|
80
|
+
* a namespace doc carries `link` (null when the target names no doc), and each
|
|
81
|
+
* `workflow` step carries `links`, one per reference. A topic read inlines a
|
|
82
|
+
* section's `reference` block as the doc it includes, then a line naming where
|
|
83
|
+
* that comes from and the command that opens it.
|
|
84
|
+
* @typedef {import('../../foundation/doc-compiler/links.mjs').DocLink} DocLink
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* One move: a whole `astryx docs` command a reader can run as is.
|
|
89
|
+
* @typedef {'astryx docs' | `astryx docs ${string}`} DocsCommand
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The moves a docs read offers (spec:AST-047). Every read but the topic list
|
|
94
|
+
* carries them.
|
|
95
|
+
* @typedef {object} DocsLinks
|
|
96
|
+
* @property {DocsCommand} up opens the level the read sits in: a section's
|
|
97
|
+
* topic index, a node's parent namespace, or the topic list
|
|
98
|
+
* @property {DocsCommand} [previous] opens the item before it at its level: the
|
|
99
|
+
* previous section of its topic, or the previous node in its parent's slot
|
|
100
|
+
* @property {DocsCommand} [next] opens the item after it at its level
|
|
101
|
+
* @property {DocsCommand[]} [related] opens each doc a typed doc names: a
|
|
102
|
+
* function's command, a command's function, and the docs it lists as
|
|
103
|
+
* related
|
|
37
104
|
*/
|
|
38
105
|
|
|
39
106
|
/**
|
|
40
|
-
*
|
|
107
|
+
* The section index of one topic: what the topic is, and the key each section
|
|
108
|
+
* is read by.
|
|
109
|
+
* @typedef {object} DocsIndex
|
|
110
|
+
* @property {string} name the topic
|
|
111
|
+
* @property {string} title
|
|
112
|
+
* @property {string} description
|
|
113
|
+
* @property {DocsIndexSection[]} sections
|
|
114
|
+
* @property {DocsLinks} links the moves from the index
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* @typedef {object} DocsIndexSection
|
|
119
|
+
* @property {string} id stable key; pass it as the section argument
|
|
120
|
+
* @property {string} title
|
|
121
|
+
* @property {string} summary the section's first line of text, at most 240
|
|
122
|
+
* characters
|
|
123
|
+
*/
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* astryx --json docs <topic> <section>
|
|
41
127
|
* @typedef {object} DocsDetailSectionResponse
|
|
42
128
|
* @property {'docs.detail.section'} type
|
|
43
|
-
* @property {
|
|
129
|
+
* @property {DocsReadSection & {links: DocsLinks}} data
|
|
130
|
+
* the section, and the moves from it: up to its topic's index, and across to
|
|
131
|
+
* the sections before and after it
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* astryx --json docs <route>, for a namespace or a typed doc in the docs tree
|
|
136
|
+
* @typedef {object} DocsNodeResponse
|
|
137
|
+
* @property {'docs.node'} type
|
|
138
|
+
* @property {DocsNode} data
|
|
139
|
+
*/
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* One node of the docs tree.
|
|
143
|
+
* @typedef {object} DocsNode
|
|
144
|
+
* @property {string | null} id the doc's DocId, built from its provider's
|
|
145
|
+
* ProviderId, kind, and name (see the provider-identity authoring doc);
|
|
146
|
+
* unchanged when the node moves. Always present; null on a generated level,
|
|
147
|
+
* such as `cli/api/functions`, which has no authored doc
|
|
148
|
+
* @property {string} route pass it to `astryx docs`
|
|
149
|
+
* @property {string} kind `namespace`, or the typed doc's kind: `command`,
|
|
150
|
+
* `function`, `schema`, or `enum`
|
|
151
|
+
* @property {string} package the package that owns the node
|
|
152
|
+
* @property {string} title
|
|
153
|
+
* @property {string} summary
|
|
154
|
+
* @property {DocsNodeLink[]} breadcrumb the namespaces above it, top first
|
|
155
|
+
* @property {DocsNodeSlot[]} slots a namespace's slots that hold children, in
|
|
156
|
+
* order; empty for a typed doc
|
|
157
|
+
* @property {import('@astryxdesign/cli/authoring').ReferenceContentBlock[]} content
|
|
158
|
+
* a typed doc's content; empty for a namespace
|
|
159
|
+
* @property {DocsLinks} links the moves from the node: up to its parent (the
|
|
160
|
+
* topic list, for a top-level namespace), and across to its neighbors in its
|
|
161
|
+
* parent's slot
|
|
162
|
+
*/
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* @typedef {object} DocsNodeLink
|
|
166
|
+
* @property {string} route
|
|
167
|
+
* @property {string} title
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @typedef {object} DocsNodeSlot
|
|
172
|
+
* @property {string} name the slot's key in its namespace
|
|
173
|
+
* @property {string} title
|
|
174
|
+
* @property {DocsNodeChild[]} children in reading order
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @typedef {object} DocsNodeChild
|
|
179
|
+
* @property {string} route pass it to `astryx docs` to go one level down
|
|
180
|
+
* @property {string} name the last segment of its route
|
|
181
|
+
* @property {string} kind
|
|
182
|
+
* @property {string} title
|
|
183
|
+
* @property {string} summary
|
|
44
184
|
*/
|
|
45
185
|
|
|
46
186
|
/**
|
|
@@ -49,6 +189,8 @@
|
|
|
49
189
|
* @property {string} [lang]
|
|
50
190
|
* @property {boolean} [zh]
|
|
51
191
|
* @property {boolean} [dense]
|
|
192
|
+
* @property {boolean} [index] return a topic's section index instead of its
|
|
193
|
+
* whole doc
|
|
52
194
|
* @property {string} [cwd] project directory whose configured integrations
|
|
53
195
|
* contribute topics; defaults to process.cwd()
|
|
54
196
|
*/
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// @generated by scripts/sync-api-types.mjs from the JSDoc in api/**/*.mjs.
|
|
2
|
+
// DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @param {string} topic
|
|
6
|
+
* @param {object} [options]
|
|
7
|
+
* @param {string} [options.lang]
|
|
8
|
+
* @param {boolean} [options.zh]
|
|
9
|
+
* @param {boolean} [options.dense]
|
|
10
|
+
* @param {string} [options.cwd]
|
|
11
|
+
* @returns {Promise<import('../docs.type.mjs').DocsIndexResponse>}
|
|
12
|
+
*/
|
|
13
|
+
export function index(topic: string, options?: {
|
|
14
|
+
lang?: string | undefined;
|
|
15
|
+
zh?: boolean | undefined;
|
|
16
|
+
dense?: boolean | undefined;
|
|
17
|
+
cwd?: string | undefined;
|
|
18
|
+
}): Promise<import("../docs.type.mjs").DocsIndexResponse>;
|