@astryxdesign/cli 0.7.2-canary.ebcc404 → 0.7.2-canary.f2b60a0
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 +15 -14
- package/api/build/help/help.mjs +1 -1
- package/api/component/_adapter.d.mts +14 -0
- package/api/component/_adapter.mjs +48 -0
- package/api/component/component.mjs +10 -2
- package/api/component/integration-export-name.test.mjs +233 -8
- package/api/docs/_adapter.d.mts +11 -0
- package/api/docs/_adapter.mjs +244 -1
- package/api/docs/integrationDocs.test.mjs +124 -0
- package/api/doctor/doctor.mjs +27 -3
- package/api/doctor/doctor.test.mjs +43 -0
- package/api/doctor/theme-checks.mjs +1 -1
- package/api/gap-report/gap-report.mjs +2 -1
- package/api/index.d.mts +2 -0
- package/api/index.mjs +2 -0
- package/api/init/run/run.mjs +2 -2
- package/api/integration/_adapter.d.mts +12 -0
- package/api/integration/_adapter.mjs +54 -0
- package/api/integration/add-contribution.component-names.test.mjs +66 -0
- package/api/integration/add-contribution.mjs +8 -4
- package/api/integration/add-contribution.test.mjs +4 -2
- package/api/integration/authoring-checks.mjs +11 -2
- package/api/integration/authoring-checks.test.mjs +39 -0
- package/api/integration/authoring-checks.type.d.mts +9 -0
- package/api/integration/authoring-checks.type.mjs +14 -1
- package/api/integration/check/check.d.mts +96 -0
- package/api/integration/check/check.mjs +357 -0
- package/api/integration/check/check.test.mjs +489 -0
- package/api/integration/integration-check.type.d.mts +118 -0
- package/api/integration/integration-check.type.mjs +84 -0
- package/api/integration/integrationCheck.doc.d.mts +10 -0
- package/api/integration/integrationCheck.doc.mjs +73 -0
- package/api/integration/integrationComponentConflicts.doc.mjs +36 -5
- package/api/integration/pack-check.mjs +48 -3
- package/api/integration/pack-check.test.mjs +247 -0
- package/api/integration/validate-integration.mjs +8 -0
- package/api/integration/validate-integration.test.mjs +11 -0
- package/api/integration/validate-integration.type.d.mts +8 -0
- package/api/integration/validate-integration.type.mjs +12 -1
- package/api/integration/validateIntegration.doc.mjs +17 -3
- package/api/search/search.d.mts +13 -6
- package/api/search/search.domain-priority.test.mjs +108 -18
- package/api/search/search.integration-check.test.mjs +24 -0
- package/api/search/search.mjs +53 -17
- package/api/theme/build/build.family.test.mjs +54 -6
- package/api/theme/build/build.mjs +114 -17
- package/api/theme/themeBuild.doc.mjs +4 -4
- package/assets/docs/README.md +10 -0
- package/assets/docs/author-a-theme.doc.mjs +1 -1
- package/assets/docs/getting-started.doc.mjs +3 -3
- package/assets/docs/styling-overview.doc.mjs +1 -1
- package/assets/docs/theme.doc.dense.mjs +1 -1
- package/assets/docs/theme.doc.mjs +1 -1
- package/assets/docs/theme.doc.zh.mjs +1 -1
- package/assets/docs/tree/add-a-component.doc.mjs +11 -1
- package/assets/docs/tree/add-a-theme.doc.mjs +1 -1
- package/assets/docs/tree/add-a-topic.doc.mjs +10 -7
- package/assets/docs/tree/agent-guidance.doc.mjs +2 -2
- package/assets/docs/tree/block-template.doc.mjs +8 -20
- package/assets/docs/tree/build-the-template.doc.mjs +1 -1
- package/assets/docs/tree/check-the-props.doc.mjs +196 -0
- package/assets/docs/tree/check-your-docs.doc.mjs +51 -5
- package/assets/docs/tree/checks.doc.mjs +24 -16
- package/assets/docs/tree/codemods.doc.mjs +4 -4
- package/assets/docs/tree/component-family.doc.mjs +8 -6
- package/assets/docs/tree/component-imports.doc.mjs +3 -3
- package/assets/docs/tree/components.doc.mjs +1 -1
- package/assets/docs/tree/debug-and-gap-reports.doc.mjs +7 -18
- package/assets/docs/tree/define-the-theme.doc.mjs +6 -5
- package/assets/docs/tree/describe-the-component.doc.mjs +2 -2
- package/assets/docs/tree/docs.doc.mjs +3 -3
- package/assets/docs/tree/document-the-template.doc.mjs +1 -1
- package/assets/docs/tree/document-the-theme.doc.mjs +1 -1
- package/assets/docs/tree/export-template-assets.doc.mjs +1 -1
- package/assets/docs/tree/extend-or-replace.doc.mjs +6 -6
- package/assets/docs/tree/fonts-and-assets.doc.mjs +2 -2
- package/assets/docs/tree/generate-a-palette.doc.mjs +5 -3
- package/assets/docs/tree/grade-template-with-agent.doc.mjs +1 -1
- package/assets/docs/tree/integrations.doc.mjs +8 -0
- package/assets/docs/tree/links.doc.mjs +6 -5
- package/assets/docs/tree/migration-setup.doc.mjs +1 -0
- package/assets/docs/tree/migration-verification.doc.mjs +0 -1
- package/assets/docs/tree/migration.doc.mjs +0 -1
- package/assets/docs/tree/package-and-test.doc.mjs +1 -1
- package/assets/docs/tree/page-template.doc.mjs +4 -8
- package/assets/docs/tree/publishing.doc.mjs +1 -1
- package/assets/docs/tree/quick-start.doc.mjs +37 -21
- package/assets/docs/tree/replace-a-core-component.doc.mjs +4 -6
- package/assets/docs/tree/replace-a-core-template.doc.mjs +6 -8
- package/assets/docs/tree/sections-and-placement.doc.mjs +4 -6
- package/assets/docs/tree/see-it-in-an-app.doc.mjs +4 -2
- package/assets/docs/tree/short-and-findable.doc.mjs +6 -5
- package/assets/docs/tree/single-component.doc.mjs +15 -6
- package/assets/docs/tree/start-a-template.doc.mjs +3 -3
- package/assets/docs/tree/subcomponent.doc.mjs +6 -6
- package/assets/docs/tree/template-assets.doc.mjs +2 -2
- package/assets/docs/tree/template-doc-overview.doc.mjs +4 -15
- package/assets/docs/tree/template-fonts.doc.mjs +1 -1
- package/assets/docs/tree/template-icons.doc.mjs +1 -1
- package/assets/docs/tree/template-images-media.doc.mjs +1 -1
- package/assets/docs/tree/template-styles.doc.mjs +2 -2
- package/assets/docs/tree/templates.doc.mjs +1 -1
- package/assets/docs/tree/test-in-an-app.doc.mjs +3 -3
- package/assets/docs/tree/test-template-in-app.doc.mjs +1 -1
- package/assets/docs/tree/tokens-and-setup.doc.mjs +19 -15
- package/assets/docs/tree/troubleshooting.doc.mjs +13 -5
- package/assets/docs/tree/type-scale.doc.mjs +3 -3
- package/assets/docs/tree/upgrading.doc.mjs +3 -3
- package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +3 -1
- package/assets/docs/tree/verify-packed-template.doc.mjs +1 -1
- package/assets/docs/tree/versioning.doc.mjs +7 -6
- package/assets/docs/tree/write-the-template-file.doc.mjs +4 -3
- package/assets/docs/use-a-theme.doc.mjs +2 -2
- package/assets/theme.template.ts +1 -1
- package/authoring/codemod/codemod.doc.mjs +7 -3
- package/authoring/config/config.doc.mjs +9 -6
- package/authoring/config/type.ts +4 -2
- package/authoring/discover/discover.doc.mjs +1 -1
- package/authoring/doctypes/base/graph-fields.doc.mjs +6 -4
- package/authoring/doctypes/command/command.doc.mjs +14 -12
- package/authoring/doctypes/component/component.doc.mjs +29 -26
- package/authoring/doctypes/component/type.ts +7 -5
- package/authoring/doctypes/enum/enum.doc.mjs +7 -4
- package/authoring/doctypes/function/function.doc.mjs +9 -8
- package/authoring/doctypes/hook/hook.doc.mjs +5 -4
- package/authoring/doctypes/namespace/namespace.doc.mjs +7 -6
- package/authoring/doctypes/reference/reference.doc.mjs +11 -10
- package/authoring/doctypes/schema/schema.doc.mjs +9 -9
- package/authoring/doctypes/template/integration-template.doc.d.mts +11 -0
- package/authoring/doctypes/template/integration-template.doc.mjs +49 -0
- package/authoring/doctypes/template/parse.d.mts +6 -2
- package/authoring/doctypes/template/parse.mjs +3 -1
- package/authoring/doctypes/template/template.doc.mjs +3 -3
- package/authoring/doctypes/template/type.ts +22 -0
- package/authoring/doctypes/theme/theme.doc.mjs +2 -2
- package/authoring/gap-report/gap-report.doc.mjs +2 -2
- package/authoring/identity/identity.doc.mjs +3 -3
- package/authoring/index.d.ts +1 -0
- package/authoring/integration/integration.doc.mjs +12 -4
- package/authoring/integration/parse.test.mjs +10 -0
- package/authoring/integration/schema.d.mts +2 -0
- package/authoring/integration/schema.mjs +1 -0
- package/authoring/integration/type.ts +4 -0
- package/clients/cli/commands/build-theme.batch-report.test.mjs +3 -1
- package/clients/cli/commands/build-theme.mjs +1 -1
- package/clients/cli/commands/build-theme.path-safety.test.mjs +155 -21
- package/clients/cli/commands/cli-postinstall.test.mjs +49 -1
- package/clients/cli/commands/doctor-integration-components.doc.mjs +15 -4
- package/clients/cli/commands/doctor-integration-validate.doc.mjs +11 -2
- package/clients/cli/commands/doctor-integration.test.mjs +837 -0
- package/clients/cli/commands/doctor.mjs +190 -0
- package/clients/cli/commands/integration-check.doc.mjs +85 -0
- package/clients/cli/commands/integration-check.test.mjs +267 -0
- package/clients/cli/commands/integration.doc.mjs +6 -2
- package/clients/cli/commands/integration.mjs +107 -1
- package/clients/cli/commands/setup-nudge.test.mjs +79 -1
- package/clients/cli/commands/swizzle.mjs +5 -3
- package/clients/cli/commands/swizzle.routing.test.mjs +18 -1
- package/clients/cli/commands/text-json-parity.test.mjs +5 -0
- package/clients/cli/commands/theme-build.doc.mjs +2 -2
- package/clients/cli/index.mjs +30 -5
- package/foundation/agent-docs/agent-doc-state.d.mts +14 -0
- package/foundation/agent-docs/agent-doc-state.mjs +38 -0
- package/foundation/agent-docs/agent-docs.d.mts +2 -1
- package/foundation/agent-docs/agent-docs.mjs +8 -6
- package/foundation/config/project.mjs +82 -0
- package/foundation/discovery/authoring-self-docs.mjs +2 -1
- package/foundation/discovery/component-discovery.d.mts +108 -17
- package/foundation/discovery/component-discovery.export-names.test.mjs +469 -2
- package/foundation/discovery/component-discovery.mjs +380 -47
- package/foundation/discovery/component-replacement.test.mjs +20 -0
- package/foundation/discovery/doc-types.d.mts +157 -0
- package/foundation/discovery/doc-types.mjs +1224 -0
- package/foundation/discovery/doc-types.test.mjs +652 -0
- package/foundation/discovery/docs-discovery.d.mts +81 -0
- package/foundation/discovery/docs-discovery.mjs +57 -0
- package/foundation/discovery/integration-doc-files.d.mts +22 -0
- package/foundation/discovery/integration-doc-files.mjs +231 -0
- package/foundation/discovery/integration-doc-files.test.mjs +246 -0
- package/foundation/discovery/module-exports.d.mts +6 -0
- package/foundation/discovery/module-exports.mjs +15 -2
- package/foundation/discovery/package-tsconfig.d.mts +14 -0
- package/foundation/discovery/package-tsconfig.mjs +228 -0
- package/foundation/discovery/package-tsconfig.test.mjs +210 -0
- package/foundation/discovery/project-typescript.d.mts +23 -0
- package/foundation/discovery/project-typescript.mjs +61 -0
- package/foundation/discovery/prop-drift.d.mts +278 -0
- package/foundation/discovery/prop-drift.mjs +2263 -0
- package/foundation/discovery/prop-drift.test.mjs +2219 -0
- package/foundation/discovery/type-match.d.mts +53 -0
- package/foundation/discovery/type-match.mjs +660 -0
- package/foundation/discovery/type-match.test.mjs +169 -0
- package/foundation/discovery/type-text.d.mts +68 -0
- package/foundation/discovery/type-text.mjs +658 -0
- package/foundation/discovery/type-text.test.mjs +196 -0
- package/foundation/discovery/unresolved-references.d.mts +62 -0
- package/foundation/discovery/unresolved-references.mjs +790 -0
- package/foundation/discovery/unresolved-references.test.mjs +567 -0
- package/foundation/doc-compiler/doc-loads.test.mjs +6 -0
- package/foundation/doc-compiler/links.d.mts +9 -5
- package/foundation/doc-compiler/links.mjs +4 -2
- package/foundation/integrations/contribution-inventory.mjs +6 -1
- package/foundation/response/response-types.doc.mjs +7 -2
- package/package.json +9 -9
- package/scripts/postinstall.mjs +3 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/checks`: what each package check
|
|
4
|
+
* @file `astryx docs cli/integrations/ship/checks`: what each package check
|
|
5
5
|
* proves, what fails and what only warns, and one command to run them all.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -12,7 +12,7 @@ export const docs = {
|
|
|
12
12
|
placement: {parent: 'namespace:ship', slot: 'guides', order: 20},
|
|
13
13
|
title: 'Check an integration',
|
|
14
14
|
category: 'guide',
|
|
15
|
-
keywords: ['check before publishing', 'validate an integration'
|
|
15
|
+
keywords: ['check before publishing', 'validate an integration'],
|
|
16
16
|
description:
|
|
17
17
|
'Pick the check for each problem, learn what fails and what only warns, and run every check in CI.',
|
|
18
18
|
sections: [
|
|
@@ -22,7 +22,7 @@ export const docs = {
|
|
|
22
22
|
content: [
|
|
23
23
|
{
|
|
24
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.',
|
|
25
|
+
text: 'Run these in the package folder. The four `doctor integration` checks read your source, and `integration check` runs all four; `integration verify` checks the package npm would publish.',
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
type: 'table',
|
|
@@ -30,15 +30,15 @@ export const docs = {
|
|
|
30
30
|
rows: [
|
|
31
31
|
[
|
|
32
32
|
'`npx astryx doctor integration validate`',
|
|
33
|
-
'The manifest loads,
|
|
33
|
+
'The manifest loads, each root holds contributions the CLI can read, and each doc matches its authoring type',
|
|
34
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
|
-
|
|
35
|
+
"The manifest has a key this CLI does not know (`unknown_manifest_key`), or a doc field does not match the doc's authoring type: a field the type does not have, a missing required field, or a value outside the field's type. It checks docs with your installed `typescript`; without it, it prints `[skip] Docs not type-checked`. With no `astryx.integration.mjs` it prints a hint and exits 0",
|
|
36
36
|
],
|
|
37
37
|
[
|
|
38
38
|
'`npx astryx doctor integration components`',
|
|
39
|
-
|
|
39
|
+
"No component name clashes with a Core component, each `replaces` names one Core component, and each component doc's props match the component's TypeScript props",
|
|
40
40
|
'Core is not installed (`core_not_found`). In a package that declares the CLI range that turns replacement on, a `replaces` target is missing (`missing_component_replacement_target`) or invalid (`invalid_component_replacement`), or two components replace one Core component (`ambiguous_component_replacement`)',
|
|
41
|
-
'A name clashes with Core,
|
|
41
|
+
'A name clashes with Core, a component sets `replaces` in a package without that range (`inactive_component_replacement`, plus any missing, invalid, or duplicate `replaces` reported as a warning), or a documented prop differs from the code: it is missing there (`not_in_code`), the doc omits a prop the package declares (`not_in_doc`), or its `required` (`required_mismatch`) or type (`type_mismatch`) disagrees. It reads props with your installed `typescript`; without it, it prints `[skip] Props not compared`',
|
|
42
42
|
],
|
|
43
43
|
[
|
|
44
44
|
'`npx astryx doctor integration templates`',
|
|
@@ -52,6 +52,12 @@ export const docs = {
|
|
|
52
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
53
|
'A link names no doc (`invalid_doc_graph`)',
|
|
54
54
|
],
|
|
55
|
+
[
|
|
56
|
+
'`npx astryx integration check`',
|
|
57
|
+
'Everything the four `doctor integration` checks prove, in one command, for your build',
|
|
58
|
+
'Any of the four would exit 1 on its own. With `--strict`, also any warning, and any check that did not run, such as a package with no `astryx.integration.*`',
|
|
59
|
+
'Anything the four warn about, unless you pass `--strict`',
|
|
60
|
+
],
|
|
55
61
|
[
|
|
56
62
|
'`npx astryx integration verify`',
|
|
57
63
|
'The packed package holds every file, shows the same contributions, resolves every public import, and declares the CLI it needs',
|
|
@@ -62,29 +68,31 @@ export const docs = {
|
|
|
62
68
|
},
|
|
63
69
|
{
|
|
64
70
|
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.',
|
|
71
|
+
text: 'Pass a package name, such as `npx astryx doctor integration validate @acme/astryx-widgets`, to check an installed copy from an app instead. To fix a props finding, see {@link generic:check-the-props}.',
|
|
66
72
|
},
|
|
67
73
|
],
|
|
68
74
|
},
|
|
69
75
|
{
|
|
70
76
|
id: 'run-every-check-in-ci',
|
|
71
|
-
title: 'Run every check in
|
|
77
|
+
title: 'Run every check in every build (required)',
|
|
72
78
|
content: [
|
|
73
79
|
{
|
|
74
80
|
type: 'prose',
|
|
75
|
-
text: '
|
|
81
|
+
text: 'Every integration runs `integration check --strict` in its own build, so every build keeps your docs, types, and links in sync; this is required, not optional. Run `integration verify` before you publish. Install devDependencies first, because the components check needs Core, and `tsc --noEmit` needs `typescript` and a `tsconfig.json`. In package.json:',
|
|
76
82
|
},
|
|
77
83
|
{
|
|
78
84
|
type: 'code',
|
|
79
|
-
lang: '
|
|
80
|
-
code: '
|
|
85
|
+
lang: 'json',
|
|
86
|
+
code: '"typecheck": "tsc --noEmit && astryx integration check --strict"',
|
|
81
87
|
},
|
|
82
88
|
{
|
|
83
89
|
type: 'list',
|
|
84
90
|
style: 'unordered',
|
|
85
91
|
items: [
|
|
86
|
-
'`integration
|
|
87
|
-
'
|
|
92
|
+
'`integration check` runs `validate`, `components`, `templates`, and `docs` in that order, prints each result, then a summary, and exits 1 when any of them would.',
|
|
93
|
+
'`--strict` also exits 1 on any warning and on any check that did not run. Without it, warnings keep exit code 0: use that while you fix the warnings a package already has.',
|
|
94
|
+
'Its exit codes and JSON are a contract for your build: a new check, or a new failure code, joins only in a minor release that names it in the release notes. A patch can still ship a Core component, template, or CLI topic whose name conflicts with one of yours.',
|
|
95
|
+
'`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. Run both before you publish: `npx astryx integration check --strict && npx astryx integration verify`.',
|
|
88
96
|
'Bare `npx astryx doctor` in the package also warns about a doc section over 32 KB, which no check above measures.',
|
|
89
97
|
],
|
|
90
98
|
},
|
|
@@ -105,14 +113,14 @@ export const docs = {
|
|
|
105
113
|
'It runs `npm pack` the way `npm publish` would, including your `prepack` script.',
|
|
106
114
|
'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
115
|
'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.",
|
|
116
|
+
"It resolves each component's `import`, and each template's public import, the way Node does, and checks that the module exports the component under the name its doc documents, or a default export for a template. A type-only export does not count.",
|
|
109
117
|
'For each theme, it rebuilds the source, compares the built module and production CSS with the authored outputs, and proves the module, CSS, and optional font CSS exports resolve from the packed package.',
|
|
110
118
|
'It fails a package that needs an `@astryxdesign/cli` peer and lacks it: `>=0.6.6` for a template that sets `keywords`, and `>=0.6.4` for a template that sets `replaces`, a docs section, a placed guide, a doc section with an `id`, or a theme.',
|
|
111
119
|
],
|
|
112
120
|
},
|
|
113
121
|
{
|
|
114
122
|
type: 'prose',
|
|
115
|
-
text: '`integration pack --check`, the name this check had
|
|
123
|
+
text: '`integration pack --check`, the name this check had before published 0.6.5, 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}.',
|
|
116
124
|
},
|
|
117
125
|
],
|
|
118
126
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/codemods`: add codemods to an
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/codemods`: add codemods to an
|
|
5
5
|
* integration package, and know which of them `astryx upgrade` runs in an app.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -82,7 +82,7 @@ export default {
|
|
|
82
82
|
},
|
|
83
83
|
{
|
|
84
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
|
|
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 schema:codemod}.",
|
|
86
86
|
},
|
|
87
87
|
],
|
|
88
88
|
},
|
|
@@ -124,14 +124,14 @@ npx astryx upgrade --from 0.6.3 --integration @acme/astryx-widgets --apply`,
|
|
|
124
124
|
type: 'code',
|
|
125
125
|
lang: 'text',
|
|
126
126
|
code: `Integrations: @acme/astryx-widgets
|
|
127
|
-
|
|
127
|
+
<n> codemods to run (dry run)
|
|
128
128
|
Applying integration codemods...
|
|
129
129
|
Rename AcmeCarousel delay to interval (v0.7.0, @acme/astryx-widgets)
|
|
130
130
|
! ~ src/Hero.tsx (would change)`,
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
type: 'prose',
|
|
134
|
-
text: "
|
|
134
|
+
text: "`<n>` counts Core's codemods for the same versions too: they run first and print above `Integrations:`. To run only yours, as when you test it, add `--codemod rename-delay`.",
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
137
|
type: 'prose',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/describe-the-component/component-family`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components/describe-the-component/component-family`:
|
|
5
5
|
* author one ComponentDoc for several public exports in a component family.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -38,10 +38,8 @@ export const docs = {
|
|
|
38
38
|
],
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
type: '
|
|
42
|
-
|
|
43
|
-
projection: {fields: ['components']},
|
|
44
|
-
presentation: 'full',
|
|
41
|
+
type: 'prose',
|
|
42
|
+
text: 'Every field is in {@link schema:component-doc}.',
|
|
45
43
|
},
|
|
46
44
|
],
|
|
47
45
|
},
|
|
@@ -95,7 +93,11 @@ export default {
|
|
|
95
93
|
},
|
|
96
94
|
{
|
|
97
95
|
type: 'prose',
|
|
98
|
-
text:
|
|
96
|
+
text: "The public module named by `import` must export every component or hook named by a full entry. Apps then list, search and open each component in the family by its own name. A full entry the module does not export is not listed, and `integration verify` does not report it: check the family with `astryx component --list`. When `import` names output your pack lifecycle builds (such as `dist`), the members are listed once that output exists, and `integration verify` compares them as they are listed after the pack builds it.",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'prose',
|
|
100
|
+
text: "A member's source is the `.tsx` file in the family doc's folder, or below it, that declares it: the one the family's own file or the module `import` names reaches, else the one in that folder that declares the name, as when `import` names built output. A member that only a bundle or a file outside that folder declares is still listed, with no source for `--source` or `swizzle`. A member is not listed when a doc's file or a Core name your package replaces already has its name. A member that shares a name with Core opens with `--package`.",
|
|
99
101
|
},
|
|
100
102
|
],
|
|
101
103
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/component-imports`: make an
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components/component-imports`: make an
|
|
5
5
|
* integration component's documented import resolve from the packed package.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -37,7 +37,7 @@ export const docs = {
|
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
type: 'prose',
|
|
40
|
-
text: 'A file does not have to be named after its component. When `Slides.tsx` exports `AcmeCarousel` and nothing named `Slides`, keep the doc beside it as `Slides.doc.mjs` and set its `name` to `AcmeCarousel`: apps list, search and open the component by that name, and `integration verify` checks that its import exports `AcmeCarousel`. A file that exports its own name keeps that name.',
|
|
40
|
+
text: 'A file does not have to be named after its component. When `Slides.tsx` exports `AcmeCarousel` and nothing named `Slides`, keep the doc beside it as `Slides.doc.mjs` and set its `name` to `AcmeCarousel`: apps list, search and open the component by that name, and `integration verify` checks that its import exports `AcmeCarousel`. A file that exports its own name keeps that name. A package that names its files in kebab case works the same way: `acme-gallery.doc.mjs` beside `acme-gallery.tsx` sets `name: \'AcmeGallery\'`.',
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
type: 'prose',
|
|
@@ -51,7 +51,7 @@ export const docs = {
|
|
|
51
51
|
content: [
|
|
52
52
|
{
|
|
53
53
|
type: 'prose',
|
|
54
|
-
text: '`integration verify`
|
|
54
|
+
text: '`integration verify` unpacks the packed package into a temporary app, resolves each documented import, and checks that the module exports the documented component name. Its `--json` output names each failure by code.',
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
type: 'code',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components`: guides for adding and
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components`: guides for adding and
|
|
5
5
|
* documenting components in an integration package.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/debug-and-gap-reports`: receive a record
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/configuration/debug-and-gap-reports`: receive a record
|
|
5
5
|
* of each CLI run with `debug`, and handle `astryx gap-report` with
|
|
6
6
|
* `gapReport`, both named exports of the integration manifest.
|
|
7
7
|
*/
|
|
@@ -44,7 +44,7 @@ export default {
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
type: 'prose',
|
|
47
|
-
text: 'The event is a `DebugEvent` with `command`, `outcome`, `exitCode`, `durationMs`, `error`, and more, its values scrubbed (`redacted: true`). Every field is in {@link
|
|
47
|
+
text: 'The event is a `DebugEvent` with `command`, `outcome`, `exitCode`, `durationMs`, `error`, and more, its values scrubbed (`redacted: true`). Every field is in {@link schema:debug-event}.',
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
type: 'prose',
|
|
@@ -104,22 +104,11 @@ export const gapReport = {
|
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
type: 'prose',
|
|
107
|
-
text: 'Every handler in the app gets every report, so check `report.target.package` and skip reports about other packages.
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
type: '
|
|
111
|
-
|
|
112
|
-
rows: [
|
|
113
|
-
[
|
|
114
|
-
'`filed`',
|
|
115
|
-
'You created or queued the report. Return `url` or `message`.',
|
|
116
|
-
],
|
|
117
|
-
[
|
|
118
|
-
'`routed_only`',
|
|
119
|
-
'You point the caller to where to file it. `url` is required.',
|
|
120
|
-
],
|
|
121
|
-
['`skipped`', 'You chose not to act, for example on a duplicate.'],
|
|
122
|
-
],
|
|
107
|
+
text: 'Every handler in the app gets every report, so check `report.target.package` and skip reports about other packages.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
type: 'prose',
|
|
111
|
+
text: 'Every field is in {@link schema:gap-report-handler}.',
|
|
123
112
|
},
|
|
124
113
|
{
|
|
125
114
|
type: 'prose',
|
|
@@ -45,7 +45,7 @@ export const oceanTheme = defineTheme({
|
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
type: 'prose',
|
|
48
|
-
text: 'Local imports must stay inside the theme folder. One that leaves it, such as `../../shared/colors`, fails with `invalid_theme`, and
|
|
48
|
+
text: 'Local imports must stay inside the theme folder. One that leaves it, such as `../../shared/colors`, fails with `invalid_theme`, and every theme in the package disappears from `theme list`. `npx astryx theme template` writes a file that explains every `defineTheme` field. For the full token set and component theming, read {@link generic:author-a-theme}.',
|
|
49
49
|
},
|
|
50
50
|
],
|
|
51
51
|
},
|
|
@@ -55,13 +55,14 @@ export const oceanTheme = defineTheme({
|
|
|
55
55
|
content: [
|
|
56
56
|
{
|
|
57
57
|
type: 'prose',
|
|
58
|
-
text: 'To base a theme on an existing one, `extends` it: import the base theme and override only the tokens you change. The derived theme keeps a live link to the base and
|
|
58
|
+
text: 'To base a theme on an existing one, `extends` it: import the base theme and override only the tokens you change. Add the derived theme with `integration add theme ocean-contrast`, and import the base from its built package export, since local imports cannot leave the theme folder. The derived theme keeps a live link to the base and picks up its later changes when you rebuild it — unlike `--from`, which forks a copy ({@link generic:add-a-theme}).',
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
type: 'code',
|
|
62
62
|
lang: 'ts',
|
|
63
|
-
code:
|
|
64
|
-
import {
|
|
63
|
+
code: `// themes/ocean-contrast/oceanContrastTheme.ts
|
|
64
|
+
import {defineTheme} from '@astryxdesign/core/theme';
|
|
65
|
+
import {oceanTheme} from '@acme/astryx-widgets/themes/ocean';
|
|
65
66
|
|
|
66
67
|
export const oceanContrastTheme = defineTheme({
|
|
67
68
|
name: 'ocean-contrast',
|
|
@@ -79,7 +80,7 @@ export const oceanContrastTheme = defineTheme({
|
|
|
79
80
|
content: [
|
|
80
81
|
{
|
|
81
82
|
type: 'prose',
|
|
82
|
-
text: 'Each `[light, dark]` pair compiles to a `light-dark()` value, which switches only colors. Give it colors. For a value that is not a plain color — a gradient — put `light-dark()` on each color stop, not around the whole value:
|
|
83
|
+
text: 'Each `[light, dark]` pair compiles to a `light-dark()` value, which switches only colors. Give it colors. For a value that is not a plain color — a gradient — put `light-dark()` on each color stop, not around the whole value: `light-dark()` takes two colors, so wrapping whole gradients makes the value invalid where the token is used, and `theme build` does not warn.',
|
|
83
84
|
},
|
|
84
85
|
],
|
|
85
86
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/components/describe-the-component`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/components/describe-the-component`:
|
|
5
5
|
* choose and maintain the ComponentDoc shape that matches a component's public
|
|
6
6
|
* source.
|
|
7
7
|
*/
|
|
@@ -37,7 +37,7 @@ export const docs = {
|
|
|
37
37
|
items: [
|
|
38
38
|
'Change the source and its `.doc.mjs` together.',
|
|
39
39
|
'Update the doc whenever the public name, import, behavior, props, defaults, examples, or accessibility requirements change.',
|
|
40
|
-
'`integration verify` checks the doc shape and packed import,
|
|
40
|
+
'`integration verify` checks the doc shape and packed import, and `doctor integration components` compares each props table with the component\'s TypeScript props ({@link generic:check-the-props}). Neither can prove the prose still matches the component.',
|
|
41
41
|
],
|
|
42
42
|
},
|
|
43
43
|
{
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/docs`: the guides to
|
|
5
|
-
* integration package, which join the same docs tree as
|
|
6
|
-
* (spec:AST-046, spec:AST-047).
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/docs`: the guides to
|
|
5
|
+
* writing docs for an integration package, which join the same docs tree as
|
|
6
|
+
* the CLI's own (spec:AST-046, spec:AST-047).
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/** @type {import('@astryxdesign/cli/authoring').NamespaceDoc} */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/document-the-template`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/document-the-template`:
|
|
5
5
|
* document page and block templates for discovery and correct reuse.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -50,7 +50,7 @@ export default {
|
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
type: 'prose',
|
|
53
|
-
text: 'Keep the section short: how to install the package, run `theme add`, apply the generated module ({@link generic:use-a-theme-in-an-app}), and customize with `extends`. When the theme uses a custom font, name the families and the optional exported font stylesheet that `theme add` imports ({@link generic:fonts-and-assets}). Extend `theme` rather than a topic another package replaces, or an app that
|
|
53
|
+
text: 'Keep the section short: how to install the package, run `theme add`, apply the generated module ({@link generic:use-a-theme-in-an-app}), and customize with `extends`. When the theme uses a custom font, name the families and the optional exported font stylesheet that `theme add` imports ({@link generic:fonts-and-assets}). Extend `theme` rather than a topic another package replaces, or an app that loads that package after yours drops your section.',
|
|
54
54
|
},
|
|
55
55
|
],
|
|
56
56
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/build-the-template/package-and-test/export-template-assets`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/build-the-template/package-and-test/export-template-assets`:
|
|
5
5
|
* expose and include everything a copied template imports, and declare the
|
|
6
6
|
* packages it needs.
|
|
7
7
|
*/
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/docs/extend-or-replace`:
|
|
5
|
-
* existing topic with `replaces`, merge sections into one with
|
|
6
|
-
* check overlaps with Core topics.
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/docs/extend-or-replace`:
|
|
5
|
+
* take over an existing topic with `replaces`, merge sections into one with
|
|
6
|
+
* `extends`, and check overlaps with Core topics.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
@@ -46,7 +46,7 @@ export const docs = {
|
|
|
46
46
|
content: [
|
|
47
47
|
{
|
|
48
48
|
type: 'prose',
|
|
49
|
-
text: 'Set `extends` to merge sections into an existing topic instead of owning it. A section
|
|
49
|
+
text: 'Set `extends` to merge sections into an existing topic instead of owning it. A section replaces the base section it matches, and a section that matches none is added at the end.',
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
type: 'code',
|
|
@@ -63,7 +63,7 @@ export const docs = {
|
|
|
63
63
|
type: 'list',
|
|
64
64
|
style: 'unordered',
|
|
65
65
|
items: [
|
|
66
|
-
"
|
|
66
|
+
"Read the base topic's keys with `--index`, and give a section that replaces one that key as its `id`. A section without an `id` matches only a base section with exactly its title, or one whose `id` is the key its title makes, so `Integration Themes` is added beside a base `Integration themes` that has no `id`.",
|
|
67
67
|
"The topic keeps the base's title and description, and readers open it by the base's name.",
|
|
68
68
|
'Replace the `Overview` placeholder that `integration add` writes, or it is added to the base topic.',
|
|
69
69
|
"Extend a topic to correct or add to it. A copy made with `replaces` stops getting the owner's fixes.",
|
|
@@ -87,7 +87,7 @@ export const docs = {
|
|
|
87
87
|
{
|
|
88
88
|
type: 'code',
|
|
89
89
|
lang: 'text',
|
|
90
|
-
code: 'severity: [info]\ntopic: acme-getting-started\nrelationship: replaces\ncoreTopic: getting-started\nmessage: Intentional override: "acme-getting-started" replaces the Core topic "getting-started".\n\nseverity: [fail]\ntopic:
|
|
90
|
+
code: 'severity: [info]\ntopic: acme-getting-started\nrelationship: replaces\ncoreTopic: getting-started\nmessage: Intentional override: "acme-getting-started" replaces the Core topic "getting-started".\n\nseverity: [fail]\ntopic: color\nrelationship: accidental\ncoreTopic: color\nmessage: Accidental conflict: "color" is already a Core topic. Rename it, declare replaces: \'color\' to take it over, or declare extends: \'color\' to merge sections.',
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
type: 'list',
|
|
@@ -61,7 +61,7 @@ export const oceanTheme = defineTheme({
|
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
type: 'prose',
|
|
64
|
-
text: 'The stylesheet can contain self-hosted `@font-face` rules or import a hosted stylesheet. A hosted `@import` is simple, but it delays loading compared with a preconnected `<link>`; choose that trade-off deliberately.
|
|
64
|
+
text: 'The stylesheet can contain self-hosted `@font-face` rules or import a hosted stylesheet. A hosted `@import` is simple, but it delays loading compared with a preconnected `<link>`; choose that trade-off deliberately. Doctor warns when it cannot prove the loader — a hosted `@import`, or no font stylesheet while the app loads the family itself — but the warning does not fail the app.',
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
67
|
type: 'code',
|
|
@@ -83,7 +83,7 @@ export const oceanTheme = defineTheme({
|
|
|
83
83
|
'Load every weight and style the theme uses. Do not let the browser synthesize bold or italic.',
|
|
84
84
|
'Include self-hosted font files and their licenses in the packed package.',
|
|
85
85
|
'Keep CSS and font assets side-effectful so a bundler does not remove the loader.',
|
|
86
|
-
'Run `integration verify`; it fails when an exported font stylesheet
|
|
86
|
+
'Run `integration verify`; it fails when an exported font stylesheet cannot resolve, but it does not check the font files the stylesheet names.',
|
|
87
87
|
],
|
|
88
88
|
},
|
|
89
89
|
],
|
|
@@ -21,7 +21,7 @@ export const docs = {
|
|
|
21
21
|
content: [
|
|
22
22
|
{
|
|
23
23
|
type: 'prose',
|
|
24
|
-
text: 'A theme needs dozens of related colors — shades of each brand color for backgrounds, borders, text, and states, in both light and dark mode. A palette is that full set of shades. Rather than hand-pick every one, you name a few seed colors and generate the rest, so the shades stay consistent
|
|
24
|
+
text: 'A theme needs dozens of related colors — shades of each brand color for backgrounds, borders, text, and states, in both light and dark mode. A palette is that full set of shades. Rather than hand-pick every one, you name a few seed colors and generate the rest, so the shades stay consistent.',
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
type: 'prose',
|
|
@@ -50,7 +50,9 @@ npx astryx theme palette generate themes/ocean/palette.config.json \\
|
|
|
50
50
|
lang: 'text',
|
|
51
51
|
code: `[ok] Wrote themes/ocean/tokens/ocean.palette.ts
|
|
52
52
|
|
|
53
|
-
[ok] Wrote themes/ocean/tokens/ocean.palette.receipt.json
|
|
53
|
+
[ok] Wrote themes/ocean/tokens/ocean.palette.receipt.json
|
|
54
|
+
|
|
55
|
+
Review and edit the candidate before adopting it as theme-owned palette data.`,
|
|
54
56
|
},
|
|
55
57
|
{
|
|
56
58
|
type: 'prose',
|
|
@@ -58,7 +60,7 @@ npx astryx theme palette generate themes/ocean/palette.config.json \\
|
|
|
58
60
|
},
|
|
59
61
|
{
|
|
60
62
|
type: 'prose',
|
|
61
|
-
text: 'Add `--preview <file>.html` to also get a web page showing every shade, so you can eyeball the palette in a browser. Write it outside `themes/` so it does not ship in your package.
|
|
63
|
+
text: 'Add `--preview <file>.html` to also get a web page showing every shade, so you can eyeball the palette in a browser. Write it outside `themes/` so it does not ship in your package. Every option is in {@link command:theme palette generate}, and the config it reads is described in {@link function:generateTonalPalette}.',
|
|
62
64
|
},
|
|
63
65
|
],
|
|
64
66
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/building-blocks/templates/grade-template-with-agent`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/write-good-templates/grade-template-with-agent`:
|
|
5
5
|
* give an agent the canonical rubric and require a reproducible template grade.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -36,5 +36,13 @@ export const docs = {
|
|
|
36
36
|
type: 'prose',
|
|
37
37
|
text: 'An integration can also replace a built-in template or doc. To start, install `@astryxdesign/cli` and open {@link generic:quick-start}.',
|
|
38
38
|
},
|
|
39
|
+
{
|
|
40
|
+
type: 'prose',
|
|
41
|
+
text: 'Every field of every file you write for an integration is in {@link generic:authoring}.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
type: 'prose',
|
|
45
|
+
text: "Every integration runs `astryx integration check --strict` in its own build: it is required, not optional, so a doc, prop, or link that stops matching the code fails your build instead of your users' apps. See {@link generic:checks}.",
|
|
46
|
+
},
|
|
39
47
|
],
|
|
40
48
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/docs/links`: link one doc
|
|
5
|
-
* identity, link the CLI's docs, and fix a link that names no
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/docs/links`: link one doc
|
|
5
|
+
* to another by identity, link the CLI's docs, and fix a link that names no
|
|
6
|
+
* doc.
|
|
6
7
|
*/
|
|
7
8
|
|
|
8
9
|
/** @type {import('@astryxdesign/cli/authoring').ReferenceDoc} */
|
|
@@ -36,8 +37,8 @@ export const docs = {
|
|
|
36
37
|
type: 'list',
|
|
37
38
|
style: 'unordered',
|
|
38
39
|
items: [
|
|
39
|
-
'The kind is `generic` for a topic or guide, `namespace` for a docs section,
|
|
40
|
-
'
|
|
40
|
+
'The kind is `generic` for a topic or guide, `namespace` for a docs section, `command` or `function` for a CLI command or API function, `schema` or `enum` for a schema or a fixed set of values, `component` for a component, and `page` or `block` for a template.',
|
|
41
|
+
'Name a component by its export name and a template by its id. Its link reads as the command that opens it, such as `astryx component AcmeCarousel --package @acme/widgets`.',
|
|
41
42
|
'Inside backticks or a code block, link syntax prints as written.',
|
|
42
43
|
],
|
|
43
44
|
},
|
|
@@ -89,7 +90,7 @@ export const docs = {
|
|
|
89
90
|
style: 'unordered',
|
|
90
91
|
items: [
|
|
91
92
|
'The warning keeps exit code 0, so read the report before you ship; see {@link generic:check-your-docs}.',
|
|
92
|
-
'
|
|
93
|
+
'Published 0.6.4 and later read links. An older CLI, such as published 0.6.3, prints each one as written; see {@link generic:versioning}.',
|
|
93
94
|
],
|
|
94
95
|
},
|
|
95
96
|
],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/package-and-test`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/build-the-template/package-and-test`:
|
|
5
5
|
* expose a template from its package and prove the copied result in an app.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/templates/document-the-template/page-template`:
|
|
4
|
+
* @file `astryx docs cli/integrations/building-blocks/templates/document-the-template/page-template`:
|
|
5
5
|
* the page-only fields that help people find a page.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -31,7 +31,7 @@ export const docs = {
|
|
|
31
31
|
type: 'code',
|
|
32
32
|
lang: 'javascript',
|
|
33
33
|
label: 'templates/acme-dashboard.doc.mjs',
|
|
34
|
-
code: `/** @type {import('@astryxdesign/cli/authoring').
|
|
34
|
+
code: `/** @type {import('@astryxdesign/cli/authoring').IntegrationTemplateDoc} */
|
|
35
35
|
export default {
|
|
36
36
|
type: 'page',
|
|
37
37
|
name: 'acme-dashboard',
|
|
@@ -49,12 +49,8 @@ export default {
|
|
|
49
49
|
title: 'Help people find the page',
|
|
50
50
|
content: [
|
|
51
51
|
{
|
|
52
|
-
type: '
|
|
53
|
-
|
|
54
|
-
projection: {
|
|
55
|
-
fields: ['category', 'scaffold'],
|
|
56
|
-
},
|
|
57
|
-
presentation: 'full',
|
|
52
|
+
type: 'prose',
|
|
53
|
+
text: 'Every field is in {@link schema:template-doc}.',
|
|
58
54
|
},
|
|
59
55
|
{
|
|
60
56
|
type: 'list',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* @file `astryx docs cli/integrations/publishing`: publish an integration to
|
|
4
|
+
* @file `astryx docs cli/integrations/ship/publishing`: publish an integration to
|
|
5
5
|
* npm, use release tags, and check the package before and after.
|
|
6
6
|
*/
|
|
7
7
|
|