@astryxdesign/cli 0.6.4-canary.f0355e3 → 0.6.4
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 +96 -99
- package/api/build/build.doc.mjs +1 -6
- package/api/build/build.test.mjs +0 -22
- package/api/build/kit/kit.mjs +5 -44
- package/api/component/_adapter.d.mts +0 -25
- package/api/component/_adapter.mjs +5 -59
- package/api/component/component.d.mts +3 -6
- package/api/component/component.doc.mjs +17 -37
- package/api/component/component.mjs +9 -249
- package/api/component/component.type.d.mts +0 -25
- package/api/component/component.type.mjs +0 -44
- package/api/discover/_adapter.d.mts +6 -114
- package/api/discover/_adapter.mjs +17 -372
- package/api/discover/detail/detail.d.mts +6 -18
- package/api/discover/detail/detail.mjs +13 -67
- package/api/discover/detail/detail.test.mjs +0 -85
- package/api/discover/discover.d.mts +9 -3
- package/api/discover/discover.doc.mjs +18 -61
- package/api/discover/discover.mjs +36 -220
- package/api/discover/discover.test.mjs +2 -11
- package/api/discover/discover.type.d.mts +8 -147
- package/api/discover/discover.type.mjs +12 -102
- package/api/discover/list/list.d.mts +6 -20
- package/api/discover/list/list.mjs +12 -45
- package/api/discover/list/list.test.mjs +0 -46
- package/api/discover/search/search.d.mts +16 -18
- package/api/discover/search/search.mjs +56 -102
- package/api/discover/search/search.test.mjs +10 -144
- package/api/docs/_adapter.d.mts +3 -8
- package/api/docs/_adapter.mjs +6 -14
- package/api/docs/docOverlays.test.mjs +1 -27
- package/api/docs/docs.doc.mjs +2 -2
- package/api/docs/docs.test.mjs +243 -0
- package/api/docs/integration-tree.test.mjs +555 -0
- package/api/docs/integrationDocs.test.mjs +314 -0
- package/api/doctor/doctor.d.mts +3 -8
- package/api/doctor/doctor.doc.mjs +8 -17
- package/api/doctor/doctor.mjs +9 -90
- package/api/doctor/doctor.test.mjs +10 -122
- package/api/doctor/doctor.type.d.mts +1 -1
- package/api/doctor/doctor.type.mjs +1 -1
- package/api/gap-report/gap-report.doc.mjs +10 -19
- package/api/hook/hook.doc.mjs +3 -6
- package/api/index.d.mts +2 -1
- package/api/index.mjs +5 -5
- package/api/init/init.doc.mjs +12 -17
- package/api/integration/add-helpers.d.mts +2 -5
- package/api/integration/add-helpers.mjs +9 -36
- package/api/integration/add-theme.mjs +1 -22
- package/api/integration/add-theme.test.mjs +0 -34
- package/api/integration/authoring-checks.mjs +2 -2
- package/api/integration/integrationPackCheck.doc.mjs +3 -3
- package/api/integration/pack-check.mjs +9 -82
- package/api/integration/pack-check.test.mjs +0 -90
- package/api/integration/pack-check.type.mjs +1 -1
- package/api/json/assertResponse.doc.mjs +1 -1
- package/api/json/index.ts +1 -0
- package/api/json/isError.doc.mjs +1 -1
- package/api/layout/_adapter.d.mts +34 -0
- package/api/layout/_adapter.mjs +148 -0
- package/api/layout/check/check.d.mts +16 -0
- package/api/layout/check/check.mjs +40 -0
- package/api/layout/expand/expand.d.mts +22 -0
- package/api/layout/expand/expand.mjs +155 -0
- package/api/layout/expand/expand.path-safety.test.mjs +53 -0
- package/api/layout/grammar/grammar.d.mts +13 -0
- package/api/layout/grammar/grammar.mjs +87 -0
- package/api/layout/layout.d.mts +6 -0
- package/api/layout/layout.mjs +17 -0
- package/api/layout/layout.test.mjs +297 -0
- package/api/layout/layout.type.d.mts +89 -0
- package/api/layout/layout.type.mjs +103 -0
- package/api/layout/layoutCheck.doc.d.mts +11 -0
- package/api/layout/layoutCheck.doc.mjs +85 -0
- package/api/layout/layoutExpand.doc.d.mts +11 -0
- package/api/layout/layoutExpand.doc.mjs +107 -0
- package/api/layout/layoutGrammar.doc.d.mts +11 -0
- package/api/layout/layoutGrammar.doc.mjs +57 -0
- package/api/search/search.d.mts +1 -27
- package/api/search/search.doc.mjs +2 -2
- package/api/search/search.mjs +16 -228
- package/api/search/search.test.mjs +512 -0
- package/api/swizzle/swizzle.doc.mjs +5 -7
- package/api/template/copy/copy.mjs +1 -1
- package/api/template/copy/copy.test.mjs +0 -9
- package/api/template/template-integration.test.mjs +65 -1
- package/api/template/template.doc.mjs +1 -2
- package/api/template/template.mjs +1 -1
- package/api/theme/add/add.mjs +25 -17
- package/api/theme/add/add.staging.test.mjs +23 -40
- package/api/theme/build/build.family.test.mjs +12 -7
- package/api/theme/build/build.mjs +18 -8
- package/api/theme/generateTonalPalette.doc.mjs +2 -1
- package/api/theme/listThemes.doc.mjs +1 -1
- package/api/theme/themeAdd.doc.mjs +10 -9
- package/api/theme/themeBuild.doc.mjs +13 -13
- package/api/theme/themeList.doc.mjs +1 -1
- package/api/theme/themeListAvailable.doc.mjs +1 -2
- package/api/theme/themePaletteGenerate.doc.mjs +8 -15
- package/api/theme/themeTargets.doc.mjs +2 -3
- package/api/theme/themeTemplate.doc.mjs +1 -2
- package/api/upgrade/run/run.mjs +4 -6
- package/api/upgrade/upgrade.doc.mjs +22 -24
- package/api/upgrade/upgrade.type.mjs +2 -2
- package/assets/codemods/__tests__/runner.test.mjs +1 -3
- package/assets/codemods/integration-runner.mjs +3 -3
- package/assets/codemods/runner.mjs +4 -5
- package/assets/docs/README.md +2 -4
- package/assets/docs/browser-support.doc.mjs +11 -11
- package/assets/docs/color.doc.mjs +2 -8
- package/assets/docs/elevation.doc.mjs +4 -6
- package/assets/docs/getting-started.doc.mjs +16 -5
- package/assets/docs/icons.doc.mjs +21 -2
- package/assets/docs/illustrations.doc.mjs +15 -7
- package/assets/docs/internationalization.doc.mjs +5 -7
- package/assets/docs/layout.doc.dense.mjs +82 -130
- package/assets/docs/layout.doc.mjs +77 -133
- package/assets/docs/migration.doc.mjs +21 -19
- package/assets/docs/motion.doc.mjs +3 -16
- package/assets/docs/principles.doc.dense.mjs +5 -5
- package/assets/docs/principles.doc.mjs +0 -8
- package/assets/docs/principles.doc.zh.mjs +6 -6
- package/assets/docs/shape.doc.mjs +3 -8
- package/assets/docs/spacing.doc.mjs +2 -7
- package/assets/docs/styling-libraries.doc.mjs +2 -6
- package/assets/docs/styling.doc.mjs +23 -19
- package/assets/docs/theme.doc.dense.mjs +18 -58
- package/assets/docs/theme.doc.mjs +46 -56
- package/assets/docs/theme.doc.zh.mjs +8 -9
- package/assets/docs/tokens.doc.dense.mjs +2 -2
- package/assets/docs/tokens.doc.mjs +8 -389
- package/assets/docs/tokens.doc.zh.mjs +2 -2
- package/assets/docs/tree/integrations.doc.mjs +451 -25
- package/assets/docs/tree/integrations.test.mjs +62 -0
- package/assets/docs/tree/writing-docs.doc.mjs +286 -0
- package/assets/docs/typography.doc.mjs +4 -24
- package/assets/docs/working-with-ai.doc.mjs +22 -30
- package/assets/templates/blocks/components/InternationalizationProvider/InternationalizationProvider01ShippedLocale.tsx +1 -1
- package/authoring/config/config.doc.mjs +2 -10
- package/authoring/config/parse.d.mts +0 -2
- package/authoring/config/parse.mjs +0 -19
- package/authoring/config/parse.test.mjs +0 -8
- package/authoring/config/type.ts +2 -13
- package/authoring/doctypes/_schema.d.mts +2 -3
- package/authoring/doctypes/_schema.mjs +0 -6
- package/authoring/doctypes/base/graph-fields.doc.mjs +3 -3
- package/authoring/doctypes/base/type.ts +2 -4
- package/authoring/doctypes/command/command.doc.mjs +1 -1
- package/authoring/doctypes/command/type.ts +1 -1
- package/authoring/doctypes/component/component.doc.mjs +0 -6
- package/authoring/doctypes/component/type.ts +0 -8
- package/authoring/doctypes/reference/reference.doc.mjs +0 -7
- package/authoring/doctypes/reference/type.ts +0 -5
- package/authoring/doctypes/schema/schema.doc.mjs +2 -2
- package/authoring/doctypes/template/template.doc.mjs +1 -1
- package/authoring/doctypes/template/type.ts +2 -2
- package/authoring/index.d.mts +0 -1
- package/authoring/index.d.ts +0 -10
- package/authoring/index.mjs +0 -1
- package/authoring/integration/integration.doc.mjs +10 -12
- package/clients/cli/command-result-coverage.test.mjs +7 -7
- package/clients/cli/commands/component/index.mjs +55 -152
- package/clients/cli/commands/component-ownership.test.mjs +0 -89
- package/clients/cli/commands/component.doc.mjs +9 -27
- package/clients/cli/commands/debug-result-summary.test.mjs +2 -2
- package/clients/cli/commands/discover.doc.mjs +9 -53
- package/clients/cli/commands/discover.mjs +118 -393
- package/clients/cli/commands/docs.doc.mjs +1 -1
- package/clients/cli/commands/docs.mjs +17 -60
- package/clients/cli/commands/docs.test.mjs +294 -0
- package/clients/cli/commands/doctor-integration-docs.doc.mjs +2 -3
- package/clients/cli/commands/doctor-integration.test.mjs +0 -53
- package/clients/cli/commands/doctor.doc.mjs +1 -3
- package/clients/cli/commands/doctor.mjs +5 -49
- package/clients/cli/commands/gap-report.doc.mjs +9 -10
- package/clients/cli/commands/init.doc.mjs +6 -9
- package/clients/cli/commands/integration-add.doc.mjs +9 -9
- package/clients/cli/commands/integration-authoring.test.mjs +10 -61
- package/clients/cli/commands/integration-pack.doc.mjs +9 -5
- package/clients/cli/commands/integration-real-world.test.mjs +1 -1
- package/clients/cli/commands/integration.doc.mjs +4 -4
- package/clients/cli/commands/integration.mjs +43 -74
- package/clients/cli/commands/layout-check.doc.mjs +65 -0
- package/clients/cli/commands/layout-expand.doc.mjs +83 -0
- package/clients/cli/commands/layout-grammar.doc.mjs +30 -0
- package/clients/cli/commands/layout.doc.mjs +34 -0
- package/clients/cli/commands/layout.error-codes.test.mjs +66 -0
- package/clients/cli/commands/layout.exit-parity.test.mjs +41 -0
- package/clients/cli/commands/layout.mjs +275 -0
- 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/search.doc.mjs +3 -10
- package/clients/cli/commands/search.mjs +2 -21
- package/clients/cli/commands/search.test.mjs +4 -21
- package/clients/cli/commands/swizzle.doc.mjs +1 -1
- package/clients/cli/commands/template.doc.mjs +1 -1
- package/clients/cli/commands/text-json-parity.test.mjs +16 -5
- package/clients/cli/commands/theme-add.doc.mjs +1 -1
- package/clients/cli/commands/theme-palette-generate.doc.mjs +2 -3
- package/clients/cli/commands/theme-palette.doc.mjs +2 -1
- package/clients/cli/commands/theme-targets.doc.mjs +2 -2
- package/clients/cli/commands/theme.doc.mjs +1 -2
- package/clients/cli/commands/upgrade.doc.mjs +3 -62
- package/clients/cli/index.mjs +10 -28
- package/clients/cli/lib/define-command.mjs +4 -28
- package/clients/cli/lib/define-command.test.mjs +0 -54
- package/clients/cli/lib/exit-codes.test.mjs +9 -18
- package/clients/cli/lib/json-shim.mjs +14 -24
- package/clients/cli/lib/json-shim.test.mjs +20 -6
- package/clients/cli/lib/manifest.mjs +13 -18
- package/clients/cli/lib/manifest.test.mjs +2 -5
- package/foundation/agent-docs/agent-docs.mjs +1 -1
- package/foundation/agent-docs/agent-docs.test.mjs +1159 -0
- package/foundation/discovery/authoring-self-docs.mjs +0 -1
- package/foundation/discovery/authoring-self-docs.test.mjs +2 -6
- package/foundation/discovery/cli-self-docs.mjs +2 -16
- package/foundation/discovery/cli-self-docs.test.mjs +0 -20
- package/foundation/discovery/docs-discovery.mjs +1 -5
- package/foundation/discovery/docs-discovery.test.mjs +0 -21
- package/foundation/discovery/docs-section-key.d.mts +1 -1
- package/foundation/discovery/docs-section-key.mjs +1 -1
- package/foundation/discovery/template-adapter.mjs +1 -1
- package/foundation/doc-compiler/doc-loads.test.mjs +14 -3
- package/foundation/doc-compiler/tree.d.mts +0 -4
- package/foundation/doc-compiler/tree.mjs +1 -6
- package/foundation/doc-compiler/tree.test.mjs +598 -0
- package/foundation/integrations/cli-requirement.d.mts +6 -26
- package/foundation/integrations/cli-requirement.mjs +11 -46
- package/foundation/integrations/cli-requirement.test.mjs +2 -7
- package/foundation/integrations/contribution-inventory.mjs +1 -1
- package/foundation/integrations/integrations.d.mts +1 -14
- package/foundation/integrations/integrations.mjs +1 -41
- package/foundation/integrations/integrations.test.mjs +0 -31
- package/foundation/response/error-codes.doc.mjs +8 -6
- package/foundation/response/error-codes.test.mjs +5 -30
- package/foundation/response/response-types.doc.d.mts +3 -4
- package/foundation/response/response-types.doc.mjs +27 -40
- package/foundation/response/response-types.doc.test.mjs +0 -23
- package/foundation/response/response.doc.mjs +10 -11
- package/foundation/xle/browser.d.mts +3 -3
- package/foundation/xle/browser.mjs +3 -3
- package/foundation/xle/expand.mjs +2 -2
- package/foundation/xle/parse.mjs +1 -1
- package/foundation/xle/print.mjs +2 -2
- package/foundation/xle/splice.mjs +1 -1
- package/package.json +9 -9
- package/api/discover/_adapter.test.mjs +0 -215
- package/api/discover/_catalog-view.d.mts +0 -115
- package/api/discover/_catalog-view.mjs +0 -203
- package/api/discover/_catalog-view.test.mjs +0 -128
- package/api/discover/detail/item/item.d.mts +0 -26
- package/api/discover/detail/item/item.mjs +0 -78
- package/api/discover/detail/item/item.test.mjs +0 -73
- package/api/integration/pack-check.lifecycle-output.test.mjs +0 -107
- package/api/theme/add/add.rollback.test.mjs +0 -158
- package/api/theme/build/build.rollback.test.mjs +0 -148
- package/api/upgrade/run/files-changed.test.mjs +0 -111
- package/assets/codemods/file-count.test.mjs +0 -163
- package/assets/docs/tree/add-a-component.doc.mjs +0 -75
- package/assets/docs/tree/add-a-theme.doc.mjs +0 -85
- package/assets/docs/tree/add-a-topic.doc.mjs +0 -144
- package/assets/docs/tree/agent-guidance.doc.mjs +0 -138
- package/assets/docs/tree/block-template.doc.mjs +0 -130
- package/assets/docs/tree/build-the-template.doc.mjs +0 -28
- package/assets/docs/tree/building-blocks.doc.mjs +0 -46
- package/assets/docs/tree/check-your-docs.doc.mjs +0 -137
- package/assets/docs/tree/checks.doc.mjs +0 -119
- package/assets/docs/tree/codemods.doc.mjs +0 -147
- package/assets/docs/tree/component-family.doc.mjs +0 -113
- package/assets/docs/tree/component-imports.doc.mjs +0 -69
- package/assets/docs/tree/component-lookups.doc.mjs +0 -149
- package/assets/docs/tree/components.doc.mjs +0 -23
- package/assets/docs/tree/configuration.doc.mjs +0 -23
- package/assets/docs/tree/debug-and-gap-reports.doc.mjs +0 -182
- package/assets/docs/tree/define-the-theme.doc.mjs +0 -118
- package/assets/docs/tree/describe-the-component.doc.mjs +0 -57
- package/assets/docs/tree/docs.doc.mjs +0 -21
- package/assets/docs/tree/document-the-template.doc.mjs +0 -28
- package/assets/docs/tree/document-the-theme.doc.mjs +0 -68
- package/assets/docs/tree/export-template-assets.doc.mjs +0 -147
- package/assets/docs/tree/extend-or-replace.doc.mjs +0 -103
- package/assets/docs/tree/fonts-and-assets.doc.mjs +0 -106
- package/assets/docs/tree/generate-a-palette.doc.mjs +0 -66
- package/assets/docs/tree/grade-template-with-agent.doc.mjs +0 -105
- package/assets/docs/tree/help.doc.mjs +0 -16
- package/assets/docs/tree/links.doc.mjs +0 -98
- package/assets/docs/tree/package-and-test.doc.mjs +0 -32
- package/assets/docs/tree/page-template.doc.mjs +0 -71
- package/assets/docs/tree/publishing.doc.mjs +0 -111
- package/assets/docs/tree/quick-start.doc.mjs +0 -272
- package/assets/docs/tree/replace-a-core-component.doc.mjs +0 -104
- package/assets/docs/tree/replace-a-core-template.doc.mjs +0 -172
- package/assets/docs/tree/sections-and-placement.doc.mjs +0 -108
- package/assets/docs/tree/see-it-in-an-app.doc.mjs +0 -59
- package/assets/docs/tree/ship.doc.mjs +0 -16
- package/assets/docs/tree/short-and-findable.doc.mjs +0 -108
- package/assets/docs/tree/single-component.doc.mjs +0 -165
- package/assets/docs/tree/start-a-template.doc.mjs +0 -143
- package/assets/docs/tree/subcomponent.doc.mjs +0 -115
- package/assets/docs/tree/template-assets.doc.mjs +0 -64
- package/assets/docs/tree/template-doc-overview.doc.mjs +0 -109
- package/assets/docs/tree/template-fonts.doc.mjs +0 -102
- package/assets/docs/tree/template-grading-rubric.doc.mjs +0 -452
- package/assets/docs/tree/template-icons.doc.mjs +0 -97
- package/assets/docs/tree/template-images-media.doc.mjs +0 -127
- package/assets/docs/tree/template-styles.doc.mjs +0 -93
- package/assets/docs/tree/templates.doc.mjs +0 -34
- package/assets/docs/tree/test-in-an-app.doc.mjs +0 -115
- package/assets/docs/tree/test-template-in-app.doc.mjs +0 -128
- package/assets/docs/tree/themes.doc.mjs +0 -39
- package/assets/docs/tree/troubleshooting.doc.mjs +0 -149
- package/assets/docs/tree/upgrading.doc.mjs +0 -103
- package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +0 -51
- package/assets/docs/tree/verify-packed-template.doc.mjs +0 -77
- package/assets/docs/tree/versioning.doc.mjs +0 -161
- package/assets/docs/tree/write-good-templates.doc.mjs +0 -64
- package/assets/docs/tree/write-the-template-file.doc.mjs +0 -154
- package/authoring/discover/discover.doc.d.mts +0 -13
- package/authoring/discover/discover.doc.mjs +0 -138
- package/authoring/discover/parse.d.mts +0 -24
- package/authoring/discover/parse.mjs +0 -128
- package/authoring/discover/parse.test.mjs +0 -124
- package/authoring/discover/type.ts +0 -87
- package/clients/cli/commands/component-batch.test.mjs +0 -341
- package/clients/cli/commands/discover.sources.test.mjs +0 -267
- package/clients/cli/commands/integration-verify.doc.mjs +0 -22
- package/clients/cli/lib/parse-error-format.test.mjs +0 -81
- package/foundation/response/batch.type.d.mts +0 -33
- package/foundation/response/batch.type.mjs +0 -34
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/docs/check-your-docs`: what each check
|
|
5
|
-
* proves about an integration's docs: the docs check, the read size, and the
|
|
6
|
-
* CLI peer.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
10
|
-
export const docs = {
|
|
11
|
-
type: 'generic',
|
|
12
|
-
name: 'check-your-docs',
|
|
13
|
-
placement: {parent: 'namespace:docs', slot: 'guides', order: 60},
|
|
14
|
-
title: 'Check your docs',
|
|
15
|
-
category: 'guide',
|
|
16
|
-
description: 'Check the docs tree, links, overlaps, read size, and CLI peer.',
|
|
17
|
-
sections: [
|
|
18
|
-
{
|
|
19
|
-
id: 'run-the-docs-check',
|
|
20
|
-
title: 'Run the docs check',
|
|
21
|
-
content: [
|
|
22
|
-
{
|
|
23
|
-
type: 'prose',
|
|
24
|
-
text: 'Run `doctor integration docs` in your package to check the docs tree, every link, and overlaps with Core topics. Pass a package name to check an installed package.',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
type: 'code',
|
|
28
|
-
lang: 'bash',
|
|
29
|
-
code: 'npx astryx doctor integration docs\n# In an app, check an installed package\nnpx astryx doctor integration docs @acme/astryx-widgets',
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
type: 'code',
|
|
33
|
-
lang: 'text',
|
|
34
|
-
code: 'Checking integration docs: @acme/astryx-widgets@1.0.0\n\n[ok] The docs tree and every link in these docs check out.\n\n[ok] No doc topics overlap with Core.',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
type: 'prose',
|
|
38
|
-
text: 'Its arguments and exit codes are in {@link command:doctor integration docs}.',
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
id: 'know-what-fails-the-check',
|
|
44
|
-
title: 'Know what fails the check',
|
|
45
|
-
content: [
|
|
46
|
-
{
|
|
47
|
-
type: 'prose',
|
|
48
|
-
text: 'A doc that does not load, an accidental Core overlap, or a failed namespace or placement fails the check with exit code 1. A link that names no doc only warns, and the exit code stays 0.',
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
type: 'table',
|
|
52
|
-
headers: ['Problem', 'Reported as', 'Exit code'],
|
|
53
|
-
rows: [
|
|
54
|
-
[
|
|
55
|
-
'A doc that does not load, such as an unknown section field or block type',
|
|
56
|
-
'`[fail]` `invalid_doc`',
|
|
57
|
-
'1',
|
|
58
|
-
],
|
|
59
|
-
[
|
|
60
|
-
"A topic with a Core topic's name and no `replaces` or `extends`",
|
|
61
|
-
'`[fail]` `accidental`',
|
|
62
|
-
'1',
|
|
63
|
-
],
|
|
64
|
-
[
|
|
65
|
-
'A placement that fails, which hides the doc',
|
|
66
|
-
'`[fail]` `invalid_doc_graph`',
|
|
67
|
-
'1',
|
|
68
|
-
],
|
|
69
|
-
['A link that names no doc', '`[warn]` `invalid_doc_graph`', '0'],
|
|
70
|
-
[
|
|
71
|
-
'A topic that sets `replaces` or `extends`',
|
|
72
|
-
'`[info]` `replaces` or `extends`',
|
|
73
|
-
'0',
|
|
74
|
-
],
|
|
75
|
-
],
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
type: 'prose',
|
|
79
|
-
text: 'Read the warnings before you publish. With `--json`, they are in `data.issues`, with `severity: "warning"`.',
|
|
80
|
-
},
|
|
81
|
-
],
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
id: 'check-read-size',
|
|
85
|
-
title: 'Check read size',
|
|
86
|
-
content: [
|
|
87
|
-
{
|
|
88
|
-
type: 'prose',
|
|
89
|
-
text: '`npx astryx doctor` also measures every read and warns on one over 32 KB. Run it in your package or in an app that installs it; `doctor integration docs` does not check size.',
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
type: 'code',
|
|
93
|
-
lang: 'bash',
|
|
94
|
-
code: 'npx astryx doctor',
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
type: 'code',
|
|
98
|
-
lang: 'text',
|
|
99
|
-
code: 'id: docs-progressive-disclosure\nstatus: [warn]\nlabel: Documentation navigation and size\nmessage: acme/deploying build-before-you-ship: 46 KB, over the 32 KB one read may return',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
type: 'prose',
|
|
103
|
-
text: 'Split a section over the limit into smaller ones, each with its own key. See {@link command:doctor}.',
|
|
104
|
-
},
|
|
105
|
-
],
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
id: 'check-the-cli-peer',
|
|
109
|
-
title: 'Check the CLI peer',
|
|
110
|
-
content: [
|
|
111
|
-
{
|
|
112
|
-
type: 'prose',
|
|
113
|
-
text: '`integration verify` fails a package that ships a docs section, a placed guide, or a doc section with an `id` without an `@astryxdesign/cli` peer of `>=0.7.0`. It does not run the docs check, so run both.',
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'code',
|
|
117
|
-
lang: 'bash',
|
|
118
|
-
code: 'npx astryx integration verify',
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
type: 'code',
|
|
122
|
-
lang: 'text',
|
|
123
|
-
code: '- [fail] The package ships a namespace doc or a placed guide but declares no @astryxdesign/cli peer. A stable CLI before 0.7.0 does not read the docs tree, and can hide every doc topic the package ships. Declare "@astryxdesign/cli": ">=0.7.0" in peerDependencies (optional in peerDependenciesMeta, if the CLI is not required).',
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
type: 'list',
|
|
127
|
-
style: 'unordered',
|
|
128
|
-
items: [
|
|
129
|
-
'`integration add doc --parent` writes the peer for you.',
|
|
130
|
-
'`integration verify` passes a hidden guide and an accidental Core overlap; only `doctor integration docs` catches them.',
|
|
131
|
-
'Everything else it checks is in {@link command:integration verify} and {@link generic:checks}.',
|
|
132
|
-
],
|
|
133
|
-
},
|
|
134
|
-
],
|
|
135
|
-
},
|
|
136
|
-
],
|
|
137
|
-
};
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/checks`: what each package check
|
|
5
|
-
* proves, what fails and what only warns, and one command to run them all.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
9
|
-
export const docs = {
|
|
10
|
-
type: 'generic',
|
|
11
|
-
name: 'checks',
|
|
12
|
-
placement: {parent: 'namespace:ship', slot: 'guides', order: 20},
|
|
13
|
-
title: 'Check an integration',
|
|
14
|
-
category: 'guide',
|
|
15
|
-
keywords: ['check before publishing', 'validate an integration', 'ci'],
|
|
16
|
-
description:
|
|
17
|
-
'Pick the check for each problem, learn what fails and what only warns, and run every check in CI.',
|
|
18
|
-
sections: [
|
|
19
|
-
{
|
|
20
|
-
id: 'pick-a-check',
|
|
21
|
-
title: 'Pick a check',
|
|
22
|
-
content: [
|
|
23
|
-
{
|
|
24
|
-
type: 'prose',
|
|
25
|
-
text: 'Run these in the package folder. The four `doctor integration` checks read your source; `integration verify` checks the package npm would publish.',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
type: 'table',
|
|
29
|
-
headers: ['Command', 'Proves', 'Exits 1 when', 'Only warns when'],
|
|
30
|
-
rows: [
|
|
31
|
-
[
|
|
32
|
-
'`npx astryx doctor integration validate`',
|
|
33
|
-
'The manifest loads, and each root holds contributions the CLI can read',
|
|
34
|
-
'A declared root is missing (`missing_root`), a contribution does not load (`invalid_doc`, `invalid_component`, `invalid_theme`), or two templates in the package replace one Core id (`ambiguous_template_replacement`)',
|
|
35
|
-
'The manifest has a key this CLI does not know (`unknown_manifest_key`). With no `astryx.integration.mjs` it prints a hint and exits 0',
|
|
36
|
-
],
|
|
37
|
-
[
|
|
38
|
-
'`npx astryx doctor integration components`',
|
|
39
|
-
'No component name clashes with a Core component',
|
|
40
|
-
'Core is not installed (`core_not_found`)',
|
|
41
|
-
'A name clashes with Core',
|
|
42
|
-
],
|
|
43
|
-
[
|
|
44
|
-
'`npx astryx doctor integration templates`',
|
|
45
|
-
'Each `replaces` names a Core template of the same type',
|
|
46
|
-
'A `replaces` target is missing (`missing_template_replacement_target`) or of the other type (`invalid_template_replacement`), or two templates replace one id (`ambiguous_template_replacement`)',
|
|
47
|
-
'A template id matches a Core id without `replaces`',
|
|
48
|
-
],
|
|
49
|
-
[
|
|
50
|
-
'`npx astryx doctor integration docs`',
|
|
51
|
-
'Your docs tree, every link, and topic names against Core',
|
|
52
|
-
'A topic takes a Core topic name without `replaces` or `extends`, a doc is invalid (`invalid_doc`), or a namespace or placement fails, which hides the doc (`invalid_doc_graph`)',
|
|
53
|
-
'A link names no doc (`invalid_doc_graph`)',
|
|
54
|
-
],
|
|
55
|
-
[
|
|
56
|
-
'`npx astryx integration verify`',
|
|
57
|
-
'The packed package holds every file, shows the same contributions, resolves every public import, and declares the CLI it needs',
|
|
58
|
-
'Anything `validate` fails on, no manifest, a file left out of the `.tgz` file, an import that does not resolve, or a missing CLI peer',
|
|
59
|
-
'Anything `validate` warns about',
|
|
60
|
-
],
|
|
61
|
-
],
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
type: 'prose',
|
|
65
|
-
text: 'Pass a package name, such as `npx astryx doctor integration validate @acme/astryx-widgets`, to check an installed copy from an app instead.',
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
id: 'run-every-check-in-ci',
|
|
71
|
-
title: 'Run every check in CI',
|
|
72
|
-
content: [
|
|
73
|
-
{
|
|
74
|
-
type: 'prose',
|
|
75
|
-
text: 'Chain the five checks so the first failure stops the run. Install devDependencies first, because the components check needs Core.',
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
type: 'code',
|
|
79
|
-
lang: 'bash',
|
|
80
|
-
code: 'npx astryx doctor integration validate && npx astryx doctor integration components && npx astryx doctor integration templates && npx astryx doctor integration docs && npx astryx integration verify',
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
type: 'list',
|
|
84
|
-
style: 'unordered',
|
|
85
|
-
items: [
|
|
86
|
-
'`integration verify` runs `validate` but none of the other three: a Core name clash, a `replaces` that names no Core template, a topic that takes a Core name, or a hidden guide still passes it.',
|
|
87
|
-
'Warnings keep exit code 0, so read them before you publish.',
|
|
88
|
-
'Bare `npx astryx doctor` in the package also warns about a doc section over 32 KB, which no check above measures.',
|
|
89
|
-
],
|
|
90
|
-
},
|
|
91
|
-
],
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
id: 'what-integration-verify-does',
|
|
95
|
-
title: 'Verify the packed package',
|
|
96
|
-
content: [
|
|
97
|
-
{
|
|
98
|
-
type: 'prose',
|
|
99
|
-
text: '`integration verify` packs your package with npm, unpacks it into a temporary app, and checks that the app sees everything your source has. It publishes nothing and leaves no `.tgz` file or temporary folder behind.',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
type: 'list',
|
|
103
|
-
style: 'ordered',
|
|
104
|
-
items: [
|
|
105
|
-
'It runs `npm pack` the way `npm publish` would, including your `prepack` script.',
|
|
106
|
-
'It checks that every contribution file is in the `.tgz` file. A root missing from `files` fails with `Add "templates" to "files" in package.json.`',
|
|
107
|
-
'It lists the components, templates, themes, docs, and codemods the temporary app sees, and compares them with your source.',
|
|
108
|
-
"It resolves each component's `import`, and each template's public import, the way Node does, and checks that the module exports the component, or a default export for a template.",
|
|
109
|
-
'It fails a package that ships a docs section, a placed guide, a template `replaces`, a doc section with an `id`, or a theme without an `@astryxdesign/cli` peer of `>=0.7.0`.',
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
type: 'prose',
|
|
114
|
-
text: '`integration pack --check`, the name this check had in 0.6, still runs it and prints a note; it will be removed in a later release. The options and exit codes are in {@link command:integration verify}.',
|
|
115
|
-
},
|
|
116
|
-
],
|
|
117
|
-
},
|
|
118
|
-
],
|
|
119
|
-
};
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/codemods`: add codemods to an
|
|
5
|
-
* integration package, and know which of them `astryx upgrade` runs in an app.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
9
|
-
export const docs = {
|
|
10
|
-
type: 'generic',
|
|
11
|
-
name: 'codemods',
|
|
12
|
-
placement: {parent: 'namespace:building-blocks', slot: 'guides', order: 50},
|
|
13
|
-
title: 'Codemods',
|
|
14
|
-
category: 'guide',
|
|
15
|
-
keywords: ['breaking change', 'migrate apps', 'integration codemod'],
|
|
16
|
-
description:
|
|
17
|
-
'Ship codemods that `astryx upgrade` runs to migrate app code, and know which of them an app runs.',
|
|
18
|
-
sections: [
|
|
19
|
-
{
|
|
20
|
-
id: 'add-a-codemod',
|
|
21
|
-
title: 'Add a codemod',
|
|
22
|
-
content: [
|
|
23
|
-
{
|
|
24
|
-
type: 'prose',
|
|
25
|
-
text: '`integration add codemod` writes a codemod into a folder named after a version. Apps run it with `astryx upgrade` to migrate their code.',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
type: 'code',
|
|
29
|
-
lang: 'bash',
|
|
30
|
-
code: 'npx astryx integration add codemod rename-delay --to 0.7.0',
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
type: 'code',
|
|
34
|
-
lang: 'text',
|
|
35
|
-
code: `codemods/
|
|
36
|
-
0.7.0/
|
|
37
|
-
rename-delay.mjs # the codemod
|
|
38
|
-
rename-delay.test.mjs # skipped: a test file
|
|
39
|
-
__tests__/ # skipped: a test folder`,
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
type: 'prose',
|
|
43
|
-
text: "The first add declares `codemods: './codemods'` in `astryx.integration.mjs`. The codemod's id is its path inside the version folder, without the extension: `rename-delay`. An id must be unique across all version folders in the package.",
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
type: 'prose',
|
|
47
|
-
text: 'The loader skips `*.test.*`, `*.spec.*`, and `*.fixture.*` files and everything under `__tests__/` or `__fixtures__/`, so tests can sit beside the codemod. The folder name decides when an app runs the codemod; see "Choose when a codemod runs".',
|
|
48
|
-
},
|
|
49
|
-
],
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
id: 'write-the-transform',
|
|
53
|
-
title: 'Write the transform',
|
|
54
|
-
content: [
|
|
55
|
-
{
|
|
56
|
-
type: 'prose',
|
|
57
|
-
text: 'A codemod default-exports a plain object with a `type`, a `title`, and a `transform` function. `transform` returns the new source, or `null` to leave the file as it is.',
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
type: 'code',
|
|
61
|
-
lang: 'js',
|
|
62
|
-
code: `// codemods/0.7.0/rename-delay.mjs
|
|
63
|
-
/** @type {import('@astryxdesign/cli/authoring').AstryxCodemod} */
|
|
64
|
-
export default {
|
|
65
|
-
type: 'code',
|
|
66
|
-
title: 'Rename AcmeCarousel delay to interval',
|
|
67
|
-
description: 'Renames the delay prop on AcmeCarousel.',
|
|
68
|
-
fileExtensions: ['.tsx', '.jsx'],
|
|
69
|
-
transform(file, api) {
|
|
70
|
-
const j = api.jscodeshift;
|
|
71
|
-
const root = j(file.source);
|
|
72
|
-
const props = root
|
|
73
|
-
.find(j.JSXOpeningElement, {name: {name: 'AcmeCarousel'}})
|
|
74
|
-
.find(j.JSXAttribute, {name: {name: 'delay'}});
|
|
75
|
-
if (props.size() === 0) return null;
|
|
76
|
-
props.forEach(path => {
|
|
77
|
-
path.node.name.name = 'interval';
|
|
78
|
-
});
|
|
79
|
-
return root.toSource();
|
|
80
|
-
},
|
|
81
|
-
};`,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: 'prose',
|
|
85
|
-
text: "`type: 'code'` rewrites the app's source files that match `fileExtensions`. `type: 'config'` rewrites the app's `astryx.config` file instead, and runs before code codemods. `title` shows in the upgrade output, and `api.jscodeshift` is a jscodeshift instance for the file. Every field is in {@link generic:authoring}.",
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
id: 'which-codemods-run',
|
|
91
|
-
title: 'Choose when a codemod runs',
|
|
92
|
-
content: [
|
|
93
|
-
{
|
|
94
|
-
type: 'prose',
|
|
95
|
-
text: "Two rules decide whether an app's `astryx upgrade` runs your codemods: the app's Core versions, and whether the app names your package.",
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
type: 'list',
|
|
99
|
-
style: 'ordered',
|
|
100
|
-
items: [
|
|
101
|
-
"Version folders are matched against the app's `@astryxdesign/core` versions, not your package's version. `upgrade --from <version>` runs each folder above `--from`, up to and including the Core version installed in the app. With Core 0.7.0 installed, `--from 0.6.3` runs `0.7.0/`, and `--from 0.7.0` runs nothing. A folder named after your own release, such as `1.0.0/`, waits until the app has Core 1.0.0.",
|
|
102
|
-
'`upgrade` runs your codemods only when the app lists your package in `integrations` in its `astryx.config`, or passes `--integration @acme/astryx-widgets`. Having your package installed is not enough: the run then skips your codemods with no warning.',
|
|
103
|
-
],
|
|
104
|
-
},
|
|
105
|
-
],
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
id: 'run-codemods-in-an-app',
|
|
109
|
-
title: 'Run codemods in an app',
|
|
110
|
-
content: [
|
|
111
|
-
{
|
|
112
|
-
type: 'prose',
|
|
113
|
-
text: 'An app previews codemods with `astryx upgrade` and writes the changes with `--apply`. Without `--apply`, nothing on disk changes.',
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'code',
|
|
117
|
-
lang: 'bash',
|
|
118
|
-
code: `# Preview each codemod and the files it would change
|
|
119
|
-
npx astryx upgrade --from 0.6.3 --integration @acme/astryx-widgets
|
|
120
|
-
# Write the changes
|
|
121
|
-
npx astryx upgrade --from 0.6.3 --integration @acme/astryx-widgets --apply`,
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
type: 'code',
|
|
125
|
-
lang: 'text',
|
|
126
|
-
code: `Integrations: @acme/astryx-widgets
|
|
127
|
-
1 codemod to run (dry run)
|
|
128
|
-
Applying integration codemods...
|
|
129
|
-
Rename AcmeCarousel delay to interval (v0.7.0, @acme/astryx-widgets)
|
|
130
|
-
! ~ src/Hero.tsx (would change)`,
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: 'prose',
|
|
134
|
-
text: "The count includes Core's codemods for the same versions, which run first and print above `Integrations:`. To run only yours, as when you test it, add `--codemod rename-delay`.",
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
type: 'prose',
|
|
138
|
-
text: '`--from` is the Core version the app had before it upgraded. The run scans `./src` unless the app passes `--path`, and it never writes a file the app marks as generated, vendored, or ignored; see {@link command:upgrade}. `upgrade --list` shows only Core codemods.',
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
type: 'prose',
|
|
142
|
-
text: "An integration manifest has no `hooks` field. Commands that run after codemods, such as a formatter, are the app's to set, in `hooks.postCodemod` in its `astryx.config`.",
|
|
143
|
-
},
|
|
144
|
-
],
|
|
145
|
-
},
|
|
146
|
-
],
|
|
147
|
-
};
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/describe-the-component/component-family`:
|
|
5
|
-
* author one ComponentDoc for several public exports in a component family.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
9
|
-
export const docs = {
|
|
10
|
-
type: 'generic',
|
|
11
|
-
name: 'component-family',
|
|
12
|
-
placement: {
|
|
13
|
-
parent: 'namespace:describe-the-component',
|
|
14
|
-
slot: 'guides',
|
|
15
|
-
order: 30,
|
|
16
|
-
},
|
|
17
|
-
title: 'Component family',
|
|
18
|
-
category: 'guide',
|
|
19
|
-
description:
|
|
20
|
-
'Adapt a single-component doc when one module exposes several public components or hooks that belong to one family.',
|
|
21
|
-
sections: [
|
|
22
|
-
{
|
|
23
|
-
id: 'choose-the-family-shape',
|
|
24
|
-
title: 'Choose the family shape',
|
|
25
|
-
content: [
|
|
26
|
-
{
|
|
27
|
-
type: 'prose',
|
|
28
|
-
text: 'Start with a complete single-component doc. Convert its top-level `props` into a `components` array only when one source module or component directory exposes several public components or hooks as one family. The family doc keeps the shared usage guidance; each array entry owns one public export.',
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
type: 'list',
|
|
32
|
-
style: 'unordered',
|
|
33
|
-
items: [
|
|
34
|
-
'Put the primary or most-used export first.',
|
|
35
|
-
'Use a full entry when this file owns that export\'s description and signature.',
|
|
36
|
-
'Use `props` for a component entry. Use `params` and `returns` for a hook entry.',
|
|
37
|
-
'Do not add private implementation helpers or exports that people should not use directly.',
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
type: 'reference',
|
|
42
|
-
target: 'schema:component-doc',
|
|
43
|
-
projection: {fields: ['components']},
|
|
44
|
-
presentation: 'full',
|
|
45
|
-
},
|
|
46
|
-
],
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
id: 'document-the-family-inline',
|
|
50
|
-
title: 'Document the family inline',
|
|
51
|
-
content: [
|
|
52
|
-
{
|
|
53
|
-
type: 'code',
|
|
54
|
-
lang: 'javascript',
|
|
55
|
-
label: 'components/AcmeTabs.doc.mjs',
|
|
56
|
-
code: `/** @type {import('@astryxdesign/cli/authoring').ComponentDoc} */
|
|
57
|
-
export default {
|
|
58
|
-
type: 'component',
|
|
59
|
-
name: 'AcmeTabs',
|
|
60
|
-
displayName: 'Acme Tabs',
|
|
61
|
-
import: '@acme/astryx-widgets/components/AcmeTabs',
|
|
62
|
-
usage: {
|
|
63
|
-
description:
|
|
64
|
-
'Switches between related views without leaving the page.',
|
|
65
|
-
},
|
|
66
|
-
components: [
|
|
67
|
-
{
|
|
68
|
-
name: 'AcmeTabs',
|
|
69
|
-
displayName: 'Acme Tabs',
|
|
70
|
-
description: 'Owns selection and lays out the tab list and panels.',
|
|
71
|
-
props: [
|
|
72
|
-
{
|
|
73
|
-
name: 'value',
|
|
74
|
-
type: 'string',
|
|
75
|
-
description: 'The selected tab value.',
|
|
76
|
-
required: true,
|
|
77
|
-
},
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
name: 'AcmeTab',
|
|
82
|
-
displayName: 'Acme Tab',
|
|
83
|
-
description: 'Selects one view in Acme Tabs.',
|
|
84
|
-
props: [
|
|
85
|
-
{
|
|
86
|
-
name: 'value',
|
|
87
|
-
type: 'string',
|
|
88
|
-
description: 'The value this tab selects.',
|
|
89
|
-
required: true,
|
|
90
|
-
},
|
|
91
|
-
],
|
|
92
|
-
},
|
|
93
|
-
],
|
|
94
|
-
};`,
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
type: 'prose',
|
|
98
|
-
text: 'The public module named by `import` must export every component or hook named by a full entry.',
|
|
99
|
-
},
|
|
100
|
-
],
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
id: 'give-a-member-its-own-file',
|
|
104
|
-
title: 'Give a member its own file',
|
|
105
|
-
content: [
|
|
106
|
-
{
|
|
107
|
-
type: 'prose',
|
|
108
|
-
text: 'When one family member needs its own doc, replace its full entry with `{name: \'MemberName\'}` and move the details into a sibling doc. The parent keeps the family relationship without copying the child\'s content. Continue with {@link generic:subcomponent}.',
|
|
109
|
-
},
|
|
110
|
-
],
|
|
111
|
-
},
|
|
112
|
-
],
|
|
113
|
-
};
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/component-imports`: make an
|
|
5
|
-
* integration component's documented import resolve from the packed package.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
9
|
-
export const docs = {
|
|
10
|
-
type: 'generic',
|
|
11
|
-
name: 'component-imports',
|
|
12
|
-
placement: {parent: 'namespace:components', slot: 'guides', order: 30},
|
|
13
|
-
title: 'Resolve the import',
|
|
14
|
-
category: 'guide',
|
|
15
|
-
description:
|
|
16
|
-
'Keep the component doc import and package exports map aligned, then verify the packed package.',
|
|
17
|
-
sections: [
|
|
18
|
-
{
|
|
19
|
-
id: 'export-the-component',
|
|
20
|
-
title: 'Export the component',
|
|
21
|
-
content: [
|
|
22
|
-
{
|
|
23
|
-
type: 'prose',
|
|
24
|
-
text: 'Apps copy the component doc\'s `import` field into their code, so that exact specifier must resolve from your packed package. `integration add` writes it together with an `exports` entry in package.json.',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
type: 'code',
|
|
28
|
-
lang: 'json',
|
|
29
|
-
label: 'package.json',
|
|
30
|
-
code: `"exports": {
|
|
31
|
-
"./components/AcmeCarousel": "./components/AcmeCarousel.tsx"
|
|
32
|
-
}`,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
type: 'prose',
|
|
36
|
-
text: 'Add writes the entry only when package.json already has an `exports` map, so start every package with `"exports": {}`.',
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
id: 'verify-the-packed-import',
|
|
42
|
-
title: 'Verify the packed import',
|
|
43
|
-
content: [
|
|
44
|
-
{
|
|
45
|
-
type: 'prose',
|
|
46
|
-
text: '`integration verify` installs the packed package in a temporary app, resolves each documented import, and checks that the module exports the documented component name.',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
type: 'code',
|
|
50
|
-
lang: 'bash',
|
|
51
|
-
code: 'npx astryx integration verify',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
type: 'list',
|
|
55
|
-
style: 'unordered',
|
|
56
|
-
items: [
|
|
57
|
-
'`component_import_unresolvable` means the exports map has no entry for the documented import.',
|
|
58
|
-
'`component_export_missing` means the module does not export the documented name, or package.json has no exports map.',
|
|
59
|
-
'`typescript_extension_in_specifier` means the public import ends in `.ts` or `.tsx`.',
|
|
60
|
-
],
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
type: 'prose',
|
|
64
|
-
text: 'To import from the package root, set `import: \'@acme/astryx-widgets\'` and re-export the component from the file that `exports["."]` points to. See {@link command:integration verify}.',
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
},
|
|
68
|
-
],
|
|
69
|
-
};
|