@astryxdesign/cli 0.7.2-canary.fc12a18 → 0.7.2-canary.fdd384f

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.
Files changed (174) hide show
  1. package/README.md +9 -8
  2. package/api/build/help/help.mjs +1 -1
  3. package/api/component/_adapter.d.mts +41 -1
  4. package/api/component/_adapter.mjs +93 -7
  5. package/api/component/component.mjs +22 -5
  6. package/api/component/component.test.mjs +420 -167
  7. package/api/component/integration-export-name.test.mjs +644 -0
  8. package/api/component/list/list.mjs +42 -4
  9. package/api/docs/_adapter.d.mts +11 -0
  10. package/api/docs/_adapter.mjs +244 -1
  11. package/api/docs/integrationDocs.test.mjs +124 -0
  12. package/api/doctor/theme-checks.mjs +1 -1
  13. package/api/gap-report/gap-report.mjs +67 -4
  14. package/api/index.d.mts +2 -0
  15. package/api/index.mjs +2 -0
  16. package/api/init/run/run.mjs +2 -2
  17. package/api/integration/_adapter.d.mts +12 -0
  18. package/api/integration/_adapter.mjs +54 -0
  19. package/api/integration/add-contribution.component-names.test.mjs +66 -0
  20. package/api/integration/add-contribution.mjs +8 -4
  21. package/api/integration/add-contribution.test.mjs +4 -2
  22. package/api/integration/authoring-checks.mjs +11 -2
  23. package/api/integration/authoring-checks.test.mjs +39 -0
  24. package/api/integration/authoring-checks.type.d.mts +9 -0
  25. package/api/integration/authoring-checks.type.mjs +14 -1
  26. package/api/integration/check/check.d.mts +96 -0
  27. package/api/integration/check/check.mjs +357 -0
  28. package/api/integration/check/check.test.mjs +489 -0
  29. package/api/integration/integration-check.type.d.mts +118 -0
  30. package/api/integration/integration-check.type.mjs +84 -0
  31. package/api/integration/integrationCheck.doc.d.mts +10 -0
  32. package/api/integration/integrationCheck.doc.mjs +73 -0
  33. package/api/integration/integrationComponentConflicts.doc.mjs +36 -5
  34. package/api/integration/pack-check.mjs +61 -107
  35. package/api/integration/pack-check.test.mjs +359 -0
  36. package/api/integration/validate-integration.mjs +8 -0
  37. package/api/integration/validate-integration.test.mjs +11 -0
  38. package/api/integration/validate-integration.type.d.mts +8 -0
  39. package/api/integration/validate-integration.type.mjs +12 -1
  40. package/api/integration/validateIntegration.doc.mjs +17 -3
  41. package/api/search/search.d.mts +9 -0
  42. package/api/search/search.integration-check.test.mjs +24 -0
  43. package/api/search/search.mjs +108 -16
  44. package/api/search/search.test.mjs +36 -0
  45. package/api/swizzle/copy/copy.mjs +28 -14
  46. package/api/template/template.test.mjs +120 -3
  47. package/api/theme/build/build.family.test.mjs +64 -0
  48. package/api/theme/build/build.mjs +180 -24
  49. package/api/theme/themeBuild.doc.mjs +4 -4
  50. package/assets/codemods/transforms/next/__tests__/migrate-list-edge-compensation-to-edge.test.mjs +120 -0
  51. package/assets/codemods/transforms/next/index.mjs +11 -1
  52. package/assets/codemods/transforms/next/migrate-list-edge-compensation-to-edge.mjs +198 -0
  53. package/assets/docs/README.md +10 -0
  54. package/assets/docs/author-a-theme.doc.mjs +1 -1
  55. package/assets/docs/getting-started.doc.mjs +3 -3
  56. package/assets/docs/theme.doc.dense.mjs +1 -1
  57. package/assets/docs/theme.doc.mjs +1 -1
  58. package/assets/docs/theme.doc.zh.mjs +1 -1
  59. package/assets/docs/tree/add-a-component.doc.mjs +10 -0
  60. package/assets/docs/tree/block-template.doc.mjs +2 -2
  61. package/assets/docs/tree/check-the-props.doc.mjs +196 -0
  62. package/assets/docs/tree/check-your-docs.doc.mjs +44 -3
  63. package/assets/docs/tree/checks.doc.mjs +21 -13
  64. package/assets/docs/tree/component-family.doc.mjs +5 -1
  65. package/assets/docs/tree/component-imports.doc.mjs +8 -0
  66. package/assets/docs/tree/describe-the-component.doc.mjs +1 -1
  67. package/assets/docs/tree/links.doc.mjs +2 -2
  68. package/assets/docs/tree/page-template.doc.mjs +1 -1
  69. package/assets/docs/tree/quick-start.doc.mjs +1 -1
  70. package/assets/docs/tree/replace-a-core-template.doc.mjs +1 -1
  71. package/assets/docs/tree/single-component.doc.mjs +3 -2
  72. package/assets/docs/tree/troubleshooting.doc.mjs +9 -1
  73. package/assets/docs/tree/type-scale.doc.mjs +3 -3
  74. package/assets/docs/tree/versioning.doc.mjs +1 -0
  75. package/assets/docs/tree/write-the-template-file.doc.mjs +2 -1
  76. package/assets/docs/use-a-theme.doc.mjs +2 -2
  77. package/assets/docs/working-with-ai.doc.mjs +43 -4
  78. package/assets/templates/blocks/components/Drawer/DrawerForm.doc.mjs +24 -0
  79. package/assets/templates/blocks/components/Drawer/DrawerForm.tsx +62 -0
  80. package/assets/templates/blocks/components/Drawer/DrawerScrim.doc.mjs +22 -0
  81. package/assets/templates/blocks/components/Drawer/DrawerScrim.tsx +68 -0
  82. package/assets/templates/blocks/components/Drawer/DrawerShowcase.doc.mjs +22 -0
  83. package/assets/templates/blocks/components/Drawer/DrawerShowcase.tsx +41 -0
  84. package/assets/templates/blocks/components/Drawer/DrawerStart.doc.mjs +21 -0
  85. package/assets/templates/blocks/components/Drawer/DrawerStart.tsx +41 -0
  86. package/assets/templates/blocks/components/Drawer/DrawerWidths.doc.mjs +22 -0
  87. package/assets/templates/blocks/components/Drawer/DrawerWidths.tsx +54 -0
  88. package/assets/templates/blocks/components/DrawerHeader/DrawerHeaderShowcase.doc.mjs +15 -0
  89. package/assets/templates/blocks/components/DrawerHeader/DrawerHeaderShowcase.tsx +73 -0
  90. package/assets/templates/blocks/components/DrawerHeader/DrawerHeaderSubtitleEndContent.doc.mjs +22 -0
  91. package/assets/templates/blocks/components/DrawerHeader/DrawerHeaderSubtitleEndContent.tsx +49 -0
  92. package/assets/templates/blocks/components/DrawerHeader/DrawerHeaderWithCloseButton.doc.mjs +21 -0
  93. package/assets/templates/blocks/components/DrawerHeader/DrawerHeaderWithCloseButton.tsx +42 -0
  94. package/assets/templates/pages/detail-page/page.tsx +3 -3
  95. package/assets/templates/pages/table-inbox/page.tsx +10 -8
  96. package/assets/theme.template.ts +1 -1
  97. package/authoring/doctypes/base/type.ts +6 -0
  98. package/authoring/doctypes/component/component.doc.mjs +4 -4
  99. package/authoring/doctypes/component/type.ts +6 -3
  100. package/authoring/doctypes/template/integration-template.doc.d.mts +11 -0
  101. package/authoring/doctypes/template/integration-template.doc.mjs +49 -0
  102. package/authoring/doctypes/template/parse.d.mts +6 -2
  103. package/authoring/doctypes/template/parse.mjs +3 -1
  104. package/authoring/doctypes/template/template.doc.mjs +1 -1
  105. package/authoring/doctypes/template/type.ts +22 -0
  106. package/authoring/index.d.ts +1 -0
  107. package/authoring/integration/integration.doc.mjs +8 -1
  108. package/authoring/integration/parse.test.mjs +10 -0
  109. package/authoring/integration/schema.d.mts +2 -0
  110. package/authoring/integration/schema.mjs +1 -0
  111. package/authoring/integration/type.ts +4 -0
  112. package/clients/cli/commands/build-theme.batch-report.test.mjs +3 -1
  113. package/clients/cli/commands/build-theme.mjs +1 -1
  114. package/clients/cli/commands/build-theme.path-safety.test.mjs +224 -6
  115. package/clients/cli/commands/build-theme.registry.test.mjs +5 -2
  116. package/clients/cli/commands/doctor-integration-components.doc.mjs +15 -4
  117. package/clients/cli/commands/doctor-integration-validate.doc.mjs +11 -2
  118. package/clients/cli/commands/doctor-integration.test.mjs +837 -0
  119. package/clients/cli/commands/doctor.mjs +190 -0
  120. package/clients/cli/commands/integration-check.doc.mjs +85 -0
  121. package/clients/cli/commands/integration-check.test.mjs +267 -0
  122. package/clients/cli/commands/integration.doc.mjs +6 -2
  123. package/clients/cli/commands/integration.mjs +107 -1
  124. package/clients/cli/commands/text-json-parity.test.mjs +5 -0
  125. package/clients/cli/commands/theme-build.doc.mjs +2 -2
  126. package/clients/cli/index.mjs +1 -0
  127. package/clients/cli/lib/component-format.mjs +5 -1
  128. package/foundation/config/project.mjs +82 -0
  129. package/foundation/discovery/authoring-self-docs.mjs +1 -0
  130. package/foundation/discovery/component-discovery.d.mts +190 -10
  131. package/foundation/discovery/component-discovery.export-names.test.mjs +760 -0
  132. package/foundation/discovery/component-discovery.mjs +864 -56
  133. package/foundation/discovery/component-discovery.test.mjs +96 -0
  134. package/foundation/discovery/component-replacement.mjs +18 -0
  135. package/foundation/discovery/component-replacement.test.mjs +40 -0
  136. package/foundation/discovery/doc-types.d.mts +157 -0
  137. package/foundation/discovery/doc-types.mjs +1224 -0
  138. package/foundation/discovery/doc-types.test.mjs +652 -0
  139. package/foundation/discovery/docs-discovery.d.mts +81 -0
  140. package/foundation/discovery/docs-discovery.mjs +57 -0
  141. package/foundation/discovery/integration-doc-files.d.mts +22 -0
  142. package/foundation/discovery/integration-doc-files.mjs +231 -0
  143. package/foundation/discovery/integration-doc-files.test.mjs +246 -0
  144. package/foundation/discovery/module-exports.d.mts +27 -0
  145. package/foundation/discovery/module-exports.mjs +356 -31
  146. package/foundation/discovery/module-exports.test.mjs +172 -0
  147. package/foundation/discovery/package-tsconfig.d.mts +14 -0
  148. package/foundation/discovery/package-tsconfig.mjs +228 -0
  149. package/foundation/discovery/package-tsconfig.test.mjs +210 -0
  150. package/foundation/discovery/project-typescript.d.mts +23 -0
  151. package/foundation/discovery/project-typescript.mjs +61 -0
  152. package/foundation/discovery/prop-drift.d.mts +278 -0
  153. package/foundation/discovery/prop-drift.mjs +2263 -0
  154. package/foundation/discovery/prop-drift.test.mjs +2219 -0
  155. package/foundation/discovery/template-adapter.mjs +74 -5
  156. package/foundation/discovery/type-match.d.mts +53 -0
  157. package/foundation/discovery/type-match.mjs +660 -0
  158. package/foundation/discovery/type-match.test.mjs +169 -0
  159. package/foundation/discovery/type-text.d.mts +68 -0
  160. package/foundation/discovery/type-text.mjs +658 -0
  161. package/foundation/discovery/type-text.test.mjs +196 -0
  162. package/foundation/discovery/unresolved-references.d.mts +62 -0
  163. package/foundation/discovery/unresolved-references.mjs +790 -0
  164. package/foundation/discovery/unresolved-references.test.mjs +567 -0
  165. package/foundation/doc-compiler/doc-loads.test.mjs +11 -1
  166. package/foundation/doc-compiler/inputs.mjs +23 -0
  167. package/foundation/doc-compiler/inputs.test.mjs +0 -1
  168. package/foundation/doc-compiler/links.d.mts +9 -5
  169. package/foundation/doc-compiler/links.mjs +4 -2
  170. package/foundation/integrations/contribution-inventory.mjs +6 -1
  171. package/foundation/response/response-types.doc.mjs +7 -2
  172. package/foundation/xle/registry.mjs +4 -0
  173. package/foundation/xle/registry.test.mjs +28 -0
  174. package/package.json +10 -10
@@ -0,0 +1,278 @@
1
+ // @generated by scripts/sync-api-types.mjs from the JSDoc in foundation/**/*.mjs.
2
+ // DO NOT EDIT — run `pnpm sync:api-types` to regenerate.
3
+
4
+ /**
5
+ * Compare each documented prop table with the TypeScript props of the export
6
+ * it describes.
7
+ * @param {PropDriftTable[]} tables
8
+ * @param {{packageDir: string, resolveFrom: Array<string | null | undefined>}} options
9
+ * @returns {PropDriftReport}
10
+ */
11
+ export function comparePropTables(tables: PropDriftTable[], options: {
12
+ packageDir: string;
13
+ resolveFrom: Array<string | null | undefined>;
14
+ }): PropDriftReport;
15
+ /**
16
+ * Compare documented props with each component's TypeScript props: find each
17
+ * doc's prop tables, then compare them (`comparePropTables`).
18
+ * @param {PropDriftComponent[]} components
19
+ * @param {{packageDir: string, resolveFrom: Array<string | null | undefined>, loadDoc?: (docPath: string) => Promise<any>}} options
20
+ * @returns {Promise<PropDriftReport>}
21
+ */
22
+ export function comparePropDocs(components: PropDriftComponent[], options: {
23
+ packageDir: string;
24
+ resolveFrom: Array<string | null | undefined>;
25
+ loadDoc?: (docPath: string) => Promise<any>;
26
+ }): Promise<PropDriftReport>;
27
+ /**
28
+ * @typedef {'not_in_code' | 'not_in_doc' | 'required_mismatch' | 'type_mismatch'} PropDriftKind
29
+ */
30
+ /**
31
+ * @typedef {object} PropDriftFinding
32
+ * @property {string} component the documented component (export) name
33
+ * @property {string} prop
34
+ * @property {PropDriftKind} kind
35
+ * @property {'warning'} severity
36
+ * @property {string} message
37
+ * @property {string} doc the doc file, relative to the package root
38
+ * @property {string} source the source file, relative to the package root
39
+ * @property {string} [docType] the documented type, as written
40
+ * @property {string} [codeType] the type as the source declares it
41
+ * @property {boolean} [docRequired]
42
+ * @property {boolean} [codeRequired]
43
+ */
44
+ /**
45
+ * @typedef {object} PropDriftUnchecked
46
+ * @property {string} component
47
+ * @property {string} doc the doc file, relative to the package root
48
+ * @property {string} reason why its props could not be read
49
+ */
50
+ /**
51
+ * @typedef {object} PropDriftTypesNotCompared
52
+ * @property {string} component
53
+ * @property {string} doc the doc file, relative to the package root
54
+ * @property {string} reason why: not a form the check judges exactly, a
55
+ * field the prop's variants give different types, a standard prop
56
+ * (`className`, `style`, …), or a prop declared outside the package
57
+ * @property {string[]} props documented props whose types were not compared
58
+ */
59
+ /**
60
+ * @typedef {object} PropDriftReport
61
+ * @property {'checked' | 'skipped'} status `skipped` means nothing was
62
+ * compared, and `reason` says why
63
+ * @property {string} [reason]
64
+ * @property {string} [typescript] the version of the compiler that read the props
65
+ * @property {number} components how many documented prop tables were compared
66
+ * @property {number} typesCompared how many documented prop types were judged
67
+ * @property {string} [typesSkipped] why no prop type was judged
68
+ * @property {PropDriftFinding[]} findings
69
+ * @property {PropDriftUnchecked[]} unchecked documented components whose props
70
+ * could not be read from the source
71
+ * @property {Array<PropDriftUnchecked & {props: string[]}>} [propsNotChecked]
72
+ * props a mapped type builds from keys the check can't trace, which a doc
73
+ * leaving out draws no warning for
74
+ * @property {PropDriftTypesNotCompared[]} typesNotCompared every other
75
+ * documented prop type, grouped by why it was not judged
76
+ */
77
+ /**
78
+ * @typedef {object} PropDriftTable
79
+ * @property {string} doc the doc file, relative to the package root
80
+ * @property {string} name the export the table documents
81
+ * @property {any[]} props the table's entries
82
+ * @property {string[]} sources the files that may hold the export, in order
83
+ */
84
+ /**
85
+ * @typedef {object} PropDriftComponent
86
+ * @property {string} name
87
+ * @property {string} docPath absolute path to the component's `.doc.*` file
88
+ * @property {string | null} sourcePath absolute path to its same-stem
89
+ * source, or null when no file in the package declares it (a family member
90
+ * only another folder or built output defines)
91
+ */
92
+ /**
93
+ * Props a doc never needs to list: the internal and styling props the
94
+ * `ComponentPropDoc` authoring guidance says to skip, `ref`, which Core's
95
+ * docs also leave out, and `key`, which React keeps for itself.
96
+ */
97
+ export const PROPS_NOT_DOCUMENTED: readonly string[];
98
+ /** The line both surfaces print when the compiler is missing. */
99
+ export const TYPESCRIPT_MISSING_REASON: "TypeScript is not installed in this project, so documented props were not compared with the code. Install typescript and run this check again.";
100
+ export type CodeProp = {
101
+ name: string;
102
+ /**
103
+ * whether every caller must pass it: false
104
+ * when a member of the props type, an overload, or the package's
105
+ * `defaultProps` lets a caller leave it out
106
+ */
107
+ required: boolean;
108
+ /**
109
+ * declared in the package's own source, or built
110
+ * from keys it writes
111
+ */
112
+ own: boolean;
113
+ /**
114
+ * built from keys the check can't trace
115
+ */
116
+ untraced?: boolean | undefined;
117
+ /**
118
+ * its declaration carries an internal JSDoc tag
119
+ */
120
+ skipTagged: boolean;
121
+ /**
122
+ * the type as written, per own declaration
123
+ */
124
+ declared: string[];
125
+ /**
126
+ * the compiler's renderings, computed on demand
127
+ */
128
+ renderings: () => string[][];
129
+ /**
130
+ * the prop's type in each member of the props type
131
+ */
132
+ types: () => any[];
133
+ /**
134
+ * one member declares it more than once (an
135
+ * intersection), so no one declaration's text is its type
136
+ */
137
+ intersected: boolean;
138
+ /**
139
+ * the type an index signature gives
140
+ * the name in each member that lacks the prop; null when two signatures
141
+ * in one member take it
142
+ */
143
+ indexed: () => any[] | null;
144
+ /**
145
+ * where names in the prop's type resolve
146
+ */
147
+ location: any;
148
+ };
149
+ export type PropDriftKind = "not_in_code" | "not_in_doc" | "required_mismatch" | "type_mismatch";
150
+ export type PropDriftFinding = {
151
+ /**
152
+ * the documented component (export) name
153
+ */
154
+ component: string;
155
+ prop: string;
156
+ kind: PropDriftKind;
157
+ severity: "warning";
158
+ message: string;
159
+ /**
160
+ * the doc file, relative to the package root
161
+ */
162
+ doc: string;
163
+ /**
164
+ * the source file, relative to the package root
165
+ */
166
+ source: string;
167
+ /**
168
+ * the documented type, as written
169
+ */
170
+ docType?: string | undefined;
171
+ /**
172
+ * the type as the source declares it
173
+ */
174
+ codeType?: string | undefined;
175
+ docRequired?: boolean | undefined;
176
+ codeRequired?: boolean | undefined;
177
+ };
178
+ export type PropDriftUnchecked = {
179
+ component: string;
180
+ /**
181
+ * the doc file, relative to the package root
182
+ */
183
+ doc: string;
184
+ /**
185
+ * why its props could not be read
186
+ */
187
+ reason: string;
188
+ };
189
+ export type PropDriftTypesNotCompared = {
190
+ component: string;
191
+ /**
192
+ * the doc file, relative to the package root
193
+ */
194
+ doc: string;
195
+ /**
196
+ * why: not a form the check judges exactly, a
197
+ * field the prop's variants give different types, a standard prop
198
+ * (`className`, `style`, …), or a prop declared outside the package
199
+ */
200
+ reason: string;
201
+ /**
202
+ * documented props whose types were not compared
203
+ */
204
+ props: string[];
205
+ };
206
+ export type PropDriftReport = {
207
+ /**
208
+ * `skipped` means nothing was
209
+ * compared, and `reason` says why
210
+ */
211
+ status: "checked" | "skipped";
212
+ reason?: string | undefined;
213
+ /**
214
+ * the version of the compiler that read the props
215
+ */
216
+ typescript?: string | undefined;
217
+ /**
218
+ * how many documented prop tables were compared
219
+ */
220
+ components: number;
221
+ /**
222
+ * how many documented prop types were judged
223
+ */
224
+ typesCompared: number;
225
+ /**
226
+ * why no prop type was judged
227
+ */
228
+ typesSkipped?: string | undefined;
229
+ findings: PropDriftFinding[];
230
+ /**
231
+ * documented components whose props
232
+ * could not be read from the source
233
+ */
234
+ unchecked: PropDriftUnchecked[];
235
+ /**
236
+ * props a mapped type builds from keys the check can't trace, which a doc
237
+ * leaving out draws no warning for
238
+ */
239
+ propsNotChecked?: (PropDriftUnchecked & {
240
+ props: string[];
241
+ })[] | undefined;
242
+ /**
243
+ * every other
244
+ * documented prop type, grouped by why it was not judged
245
+ */
246
+ typesNotCompared: PropDriftTypesNotCompared[];
247
+ };
248
+ export type PropDriftTable = {
249
+ /**
250
+ * the doc file, relative to the package root
251
+ */
252
+ doc: string;
253
+ /**
254
+ * the export the table documents
255
+ */
256
+ name: string;
257
+ /**
258
+ * the table's entries
259
+ */
260
+ props: any[];
261
+ /**
262
+ * the files that may hold the export, in order
263
+ */
264
+ sources: string[];
265
+ };
266
+ export type PropDriftComponent = {
267
+ name: string;
268
+ /**
269
+ * absolute path to the component's `.doc.*` file
270
+ */
271
+ docPath: string;
272
+ /**
273
+ * absolute path to its same-stem
274
+ * source, or null when no file in the package declares it (a family member
275
+ * only another folder or built output defines)
276
+ */
277
+ sourcePath: string | null;
278
+ };