@astryxdesign/cli 0.7.2-canary.fdd384f → 0.7.2

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 (450) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/README.md +169 -149
  3. package/api/build/_adapter.d.mts +8 -0
  4. package/api/build/_adapter.mjs +12 -1
  5. package/api/build/build.doc.mjs +4 -0
  6. package/api/build/kit/kit.mjs +3 -11
  7. package/api/component/_adapter.d.mts +31 -0
  8. package/api/component/_adapter.mjs +119 -11
  9. package/api/component/component.doc.mjs +6 -1
  10. package/api/component/component.mjs +60 -10
  11. package/api/component/doc-links.test.mjs +386 -0
  12. package/api/discover/_adapter.d.mts +132 -12
  13. package/api/discover/_adapter.mjs +488 -27
  14. package/api/discover/_adapter.test.mjs +599 -17
  15. package/api/discover/_catalog-view.d.mts +16 -5
  16. package/api/discover/_catalog-view.mjs +32 -8
  17. package/api/discover/detail/doc/doc.mjs +9 -1
  18. package/api/discover/discover.d.mts +11 -0
  19. package/api/discover/discover.doc.mjs +9 -7
  20. package/api/discover/discover.mjs +121 -19
  21. package/api/discover/discover.type.d.mts +20 -7
  22. package/api/discover/discover.type.mjs +17 -7
  23. package/api/discover/list/list.d.mts +4 -3
  24. package/api/discover/list/list.mjs +17 -10
  25. package/api/docs/_adapter.d.mts +63 -0
  26. package/api/docs/_adapter.mjs +312 -18
  27. package/api/docs/docs.doc.mjs +2 -1
  28. package/api/docs/docs.mjs +2 -1
  29. package/api/docs/docs.test.mjs +5 -2
  30. package/api/docs/integration-tree.test.mjs +22 -0
  31. package/api/docs/list/list.mjs +12 -2
  32. package/api/docs/reference-blocks.test.mjs +1 -3
  33. package/api/doctor/_adapter.d.mts +108 -0
  34. package/api/doctor/_adapter.mjs +223 -4
  35. package/api/doctor/doctor.d.mts +199 -0
  36. package/api/doctor/doctor.doc.mjs +3 -2
  37. package/api/doctor/doctor.mjs +530 -34
  38. package/api/doctor/doctor.test.mjs +180 -14
  39. package/api/doctor/release-checks.test.mjs +156 -0
  40. package/api/doctor/theme-checks.mjs +16 -3
  41. package/api/doctor/theme-checks.test.mjs +223 -7
  42. package/api/error.d.mts +10 -0
  43. package/api/error.mjs +25 -0
  44. package/api/gap-report/gap-report.d.mts +3 -0
  45. package/api/gap-report/gap-report.doc.mjs +11 -3
  46. package/api/gap-report/gap-report.mjs +152 -48
  47. package/api/gap-report/gap-report.test.mjs +233 -0
  48. package/api/gap-report/gap-report.type.d.mts +41 -0
  49. package/api/gap-report/gap-report.type.mjs +18 -0
  50. package/api/hook/_adapter.mjs +3 -11
  51. package/api/hook/hook.doc.mjs +4 -0
  52. package/api/hook/list/list.d.mts +1 -1
  53. package/api/init/_adapter.d.mts +22 -0
  54. package/api/init/_adapter.mjs +59 -0
  55. package/api/init/init.d.mts +7 -5
  56. package/api/init/init.doc.mjs +28 -7
  57. package/api/init/init.mjs +28 -4
  58. package/api/init/init.type.d.mts +48 -3
  59. package/api/init/init.type.mjs +37 -3
  60. package/api/init/run/run.d.mts +1 -1
  61. package/api/init/run/run.mjs +15 -4
  62. package/api/init/user/user.d.mts +14 -0
  63. package/api/init/user/user.mjs +87 -0
  64. package/api/init/user/user.test.mjs +232 -0
  65. package/api/integration/_adapter.d.mts +33 -0
  66. package/api/integration/_adapter.mjs +58 -0
  67. package/api/integration/authoring-checks.mjs +100 -5
  68. package/api/integration/authoring-checks.test.mjs +769 -0
  69. package/api/integration/authoring-checks.type.d.mts +134 -0
  70. package/api/integration/authoring-checks.type.mjs +60 -1
  71. package/api/integration/integrationCheck.doc.mjs +1 -1
  72. package/api/integration/integrationComponentConflicts.doc.mjs +11 -3
  73. package/api/integration/integrationDocConflicts.doc.mjs +22 -5
  74. package/api/integration/pack-check.mjs +303 -13
  75. package/api/integration/pack-check.test.mjs +371 -10
  76. package/api/integration/validate-integration-fixes.test.mjs +67 -0
  77. package/api/integration/validate-integration.d.mts +8 -0
  78. package/api/integration/validate-integration.mjs +55 -9
  79. package/api/integration/validate-integration.test.mjs +77 -8
  80. package/api/integration/validate-integration.type.d.mts +8 -0
  81. package/api/integration/validate-integration.type.mjs +3 -1
  82. package/api/integration/validate-unread-theme-folders.test.mjs +3 -2
  83. package/api/integration/validateIntegration.doc.mjs +4 -2
  84. package/api/search/_adapter.d.mts +11 -0
  85. package/api/search/_adapter.mjs +25 -0
  86. package/api/search/search.d.mts +73 -13
  87. package/api/search/search.doc.mjs +8 -3
  88. package/api/search/search.domain-priority.test.mjs +108 -18
  89. package/api/search/search.mjs +541 -52
  90. package/api/search/search.test.mjs +143 -1
  91. package/api/search/search.type.d.mts +14 -1
  92. package/api/search/search.type.mjs +6 -1
  93. package/api/swizzle/_adapter.mjs +2 -2
  94. package/api/swizzle/copy/copy.mjs +1 -1
  95. package/api/template/template-integration.test.mjs +1 -1
  96. package/api/theme/_adapter.d.mts +16 -0
  97. package/api/theme/_adapter.mjs +32 -5
  98. package/api/theme/build/build.d.mts +2 -1
  99. package/api/theme/build/build.mjs +70 -14
  100. package/api/theme/build/build.packed-old-core.test.mjs +20 -3
  101. package/api/theme/build/font-warning.mjs +5 -3
  102. package/api/theme/build/font-warning.test.mjs +2 -1
  103. package/api/theme/remove/remove.test.mjs +2 -2
  104. package/api/theme/targets/targets.mjs +3 -10
  105. package/api/theme/themeTargets.doc.mjs +4 -0
  106. package/api/theme/use/use.test.mjs +1 -1
  107. package/api/upgrade/_adapter.d.mts +40 -2
  108. package/api/upgrade/_adapter.mjs +118 -5
  109. package/api/upgrade/run/cli-behind-core.test.mjs +438 -0
  110. package/api/upgrade/run/run.mjs +35 -2
  111. package/api/upgrade/status/status.d.mts +21 -5
  112. package/api/upgrade/status/status.mjs +45 -8
  113. package/api/upgrade/upgrade.doc.mjs +6 -3
  114. package/api/upgrade/upgrade.mjs +5 -1
  115. package/api/upgrade/upgrade.type.d.mts +23 -0
  116. package/api/upgrade/upgrade.type.mjs +16 -1
  117. package/assets/codemods/__tests__/registry.test.mjs +1 -0
  118. package/assets/codemods/registry.mjs +1 -0
  119. package/assets/codemods/runner.mjs +7 -1
  120. package/assets/codemods/transforms/next/index.mjs +1 -11
  121. package/assets/codemods/transforms/v0.7.2/index.mjs +20 -0
  122. package/assets/discover/official-packages.json +367 -0
  123. package/assets/docs/author-a-theme.doc.mjs +2 -2
  124. package/assets/docs/browser-support.doc.mjs +1 -1
  125. package/assets/docs/getting-started.doc.mjs +23 -3
  126. package/assets/docs/styling-overview.doc.mjs +1 -1
  127. package/assets/docs/theme.doc.mjs +1 -1
  128. package/assets/docs/tree/add-a-component.doc.mjs +12 -2
  129. package/assets/docs/tree/add-a-theme.doc.mjs +13 -3
  130. package/assets/docs/tree/add-a-topic.doc.mjs +54 -9
  131. package/assets/docs/tree/agent-guidance.doc.mjs +19 -5
  132. package/assets/docs/tree/block-template.doc.mjs +6 -18
  133. package/assets/docs/tree/build-the-template.doc.mjs +1 -1
  134. package/assets/docs/tree/building-blocks.doc.mjs +4 -0
  135. package/assets/docs/tree/check-the-props.doc.mjs +8 -3
  136. package/assets/docs/tree/check-your-docs.doc.mjs +30 -13
  137. package/assets/docs/tree/checks.doc.mjs +17 -17
  138. package/assets/docs/tree/ci-and-containers.doc.mjs +88 -0
  139. package/assets/docs/tree/cli-command.doc.mjs +142 -0
  140. package/assets/docs/tree/cli.doc.mjs +6 -0
  141. package/assets/docs/tree/codemods.doc.mjs +17 -7
  142. package/assets/docs/tree/commands.doc.mjs +7 -1
  143. package/assets/docs/tree/component-family.doc.mjs +3 -5
  144. package/assets/docs/tree/component-imports.doc.mjs +13 -3
  145. package/assets/docs/tree/components.doc.mjs +7 -1
  146. package/assets/docs/tree/computer-agent-guide.doc.mjs +160 -0
  147. package/assets/docs/tree/computer-integrations.doc.mjs +93 -0
  148. package/assets/docs/tree/configuration.doc.mjs +7 -3
  149. package/assets/docs/tree/debug-and-gap-reports.doc.mjs +41 -22
  150. package/assets/docs/tree/define-the-theme.doc.mjs +6 -5
  151. package/assets/docs/tree/describe-the-component.doc.mjs +2 -2
  152. package/assets/docs/tree/docs.doc.mjs +9 -3
  153. package/assets/docs/tree/document-the-template.doc.mjs +1 -1
  154. package/assets/docs/tree/document-the-theme.doc.mjs +3 -3
  155. package/assets/docs/tree/export-template-assets.doc.mjs +1 -1
  156. package/assets/docs/tree/extend-or-replace.doc.mjs +19 -9
  157. package/assets/docs/tree/fonts-and-assets.doc.mjs +2 -2
  158. package/assets/docs/tree/generate-a-palette.doc.mjs +7 -5
  159. package/assets/docs/tree/global-integrations.doc.mjs +124 -0
  160. package/assets/docs/tree/global.doc.mjs +131 -0
  161. package/assets/docs/tree/grade-template-with-agent.doc.mjs +5 -5
  162. package/assets/docs/tree/install-once.doc.mjs +105 -0
  163. package/assets/docs/tree/integrations.doc.mjs +13 -1
  164. package/assets/docs/tree/layout-spacing.doc.mjs +2 -3
  165. package/assets/docs/tree/layout.doc.mjs +6 -6
  166. package/assets/docs/tree/links.doc.mjs +6 -5
  167. package/assets/docs/tree/migration-setup.doc.mjs +3 -2
  168. package/assets/docs/tree/migration-verification.doc.mjs +0 -1
  169. package/assets/docs/tree/migration.doc.mjs +0 -1
  170. package/assets/docs/tree/monorepos.doc.mjs +84 -0
  171. package/assets/docs/tree/package-and-test.doc.mjs +1 -1
  172. package/assets/docs/tree/page-template.doc.mjs +3 -7
  173. package/assets/docs/tree/problems.doc.mjs +205 -0
  174. package/assets/docs/tree/project-global-or-both.doc.mjs +131 -0
  175. package/assets/docs/tree/publishing.doc.mjs +6 -6
  176. package/assets/docs/tree/quick-start.doc.mjs +52 -26
  177. package/assets/docs/tree/reference.doc.mjs +192 -0
  178. package/assets/docs/tree/replace-a-core-component.doc.mjs +15 -7
  179. package/assets/docs/tree/replace-a-core-template.doc.mjs +9 -11
  180. package/assets/docs/tree/scaffold.doc.mjs +1 -1
  181. package/assets/docs/tree/sections-and-placement.doc.mjs +9 -11
  182. package/assets/docs/tree/see-it-in-an-app.doc.mjs +17 -5
  183. package/assets/docs/tree/short-and-findable.doc.mjs +9 -8
  184. package/assets/docs/tree/single-component.doc.mjs +14 -6
  185. package/assets/docs/tree/start-a-template.doc.mjs +18 -8
  186. package/assets/docs/tree/subcomponent.doc.mjs +6 -6
  187. package/assets/docs/tree/template-assets.doc.mjs +2 -2
  188. package/assets/docs/tree/template-doc-overview.doc.mjs +6 -17
  189. package/assets/docs/tree/template-fonts.doc.mjs +1 -1
  190. package/assets/docs/tree/template-icons.doc.mjs +1 -1
  191. package/assets/docs/tree/template-images-media.doc.mjs +1 -1
  192. package/assets/docs/tree/template-styles.doc.mjs +2 -2
  193. package/assets/docs/tree/templates.doc.mjs +7 -1
  194. package/assets/docs/tree/test-in-an-app.doc.mjs +7 -7
  195. package/assets/docs/tree/test-template-in-app.doc.mjs +5 -5
  196. package/assets/docs/tree/themes.doc.mjs +4 -0
  197. package/assets/docs/tree/tokens-and-setup.doc.mjs +19 -15
  198. package/assets/docs/tree/troubleshooting.doc.mjs +22 -14
  199. package/assets/docs/tree/uninstall.doc.mjs +109 -0
  200. package/assets/docs/tree/updates.doc.mjs +92 -0
  201. package/assets/docs/tree/upgrading.doc.mjs +6 -6
  202. package/assets/docs/tree/use-a-theme-in-an-app.doc.mjs +14 -2
  203. package/assets/docs/tree/verify-packed-template.doc.mjs +3 -3
  204. package/assets/docs/tree/versioning.doc.mjs +9 -9
  205. package/assets/docs/tree/who-answers.doc.mjs +119 -0
  206. package/assets/docs/tree/write-the-template-file.doc.mjs +5 -5
  207. package/assets/docs/working-with-ai.doc.mjs +23 -9
  208. package/authoring/codemod/codemod.doc.mjs +7 -3
  209. package/authoring/config/config.doc.mjs +9 -6
  210. package/authoring/config/type.ts +4 -2
  211. package/authoring/debug/parse.d.mts +5 -5
  212. package/authoring/discover/discover.doc.mjs +7 -1
  213. package/authoring/doctypes/_schema.d.mts +8 -3
  214. package/authoring/doctypes/_schema.mjs +1 -0
  215. package/authoring/doctypes/base/graph-fields.doc.mjs +6 -4
  216. package/authoring/doctypes/command/command.doc.mjs +20 -12
  217. package/authoring/doctypes/command/type.ts +14 -0
  218. package/authoring/doctypes/component/component.doc.mjs +29 -26
  219. package/authoring/doctypes/component/type.ts +15 -5
  220. package/authoring/doctypes/enum/enum.doc.mjs +7 -4
  221. package/authoring/doctypes/function/function.doc.mjs +9 -8
  222. package/authoring/doctypes/hook/hook.doc.mjs +5 -4
  223. package/authoring/doctypes/hook/type.ts +4 -0
  224. package/authoring/doctypes/namespace/namespace.doc.mjs +7 -6
  225. package/authoring/doctypes/reference/reference.doc.mjs +12 -11
  226. package/authoring/doctypes/schema/schema.doc.mjs +9 -9
  227. package/authoring/doctypes/template/template.doc.mjs +2 -2
  228. package/authoring/doctypes/theme/theme.doc.mjs +2 -2
  229. package/authoring/gap-report/gap-report.doc.mjs +2 -2
  230. package/authoring/identity/identity.doc.mjs +3 -3
  231. package/authoring/index.d.ts +1 -0
  232. package/authoring/integration/integration.doc.mjs +22 -5
  233. package/authoring/integration/parse.test.mjs +11 -0
  234. package/authoring/integration/schema.d.mts +14 -3
  235. package/authoring/integration/schema.mjs +33 -2
  236. package/authoring/integration/type.ts +8 -0
  237. package/clients/cli/bin/astryx.mjs +20 -3
  238. package/clients/cli/cli-command.test.mjs +166 -0
  239. package/clients/cli/commands/blog.doc.mjs +1 -0
  240. package/clients/cli/commands/build-theme.batch-report.test.mjs +14 -2
  241. package/clients/cli/commands/build-theme.font-warning.test.mjs +3 -3
  242. package/clients/cli/commands/build-theme.mjs +25 -12
  243. package/clients/cli/commands/build.doc.mjs +1 -0
  244. package/clients/cli/commands/build.exit-codes-doc.test.mjs +4 -0
  245. package/clients/cli/commands/cli-postinstall.test.mjs +49 -1
  246. package/clients/cli/commands/component.doc.mjs +1 -0
  247. package/clients/cli/commands/discover.broken-integration.test.mjs +11 -7
  248. package/clients/cli/commands/discover.doc.mjs +9 -1
  249. package/clients/cli/commands/discover.mjs +144 -93
  250. package/clients/cli/commands/discover.no-source.test.mjs +448 -33
  251. package/clients/cli/commands/discover.sources.test.mjs +20 -1
  252. package/clients/cli/commands/docs.doc.mjs +1 -0
  253. package/clients/cli/commands/docs.mjs +49 -19
  254. package/clients/cli/commands/docs.test.mjs +2 -2
  255. package/clients/cli/commands/doctor-integration-components.doc.mjs +7 -3
  256. package/clients/cli/commands/doctor-integration-docs.doc.mjs +20 -5
  257. package/clients/cli/commands/doctor-integration-templates.doc.mjs +1 -0
  258. package/clients/cli/commands/doctor-integration-validate.doc.mjs +13 -2
  259. package/clients/cli/commands/doctor-integration.test.mjs +52 -4
  260. package/clients/cli/commands/doctor.doc.mjs +12 -2
  261. package/clients/cli/commands/doctor.mjs +102 -7
  262. package/clients/cli/commands/doctor.test.mjs +10 -4
  263. package/clients/cli/commands/gap-report.doc.mjs +15 -2
  264. package/clients/cli/commands/gap-report.mjs +24 -2
  265. package/clients/cli/commands/gap-report.test.mjs +79 -0
  266. package/clients/cli/commands/hook.doc.mjs +1 -0
  267. package/clients/cli/commands/init.behavior.test.mjs +5 -0
  268. package/clients/cli/commands/init.doc.mjs +29 -3
  269. package/clients/cli/commands/integration-add.doc.mjs +7 -0
  270. package/clients/cli/commands/integration-authoring.test.mjs +49 -3
  271. package/clients/cli/commands/integration-check.doc.mjs +10 -2
  272. package/clients/cli/commands/integration-check.test.mjs +175 -1
  273. package/clients/cli/commands/integration-pack.doc.mjs +8 -1
  274. package/clients/cli/commands/integration-verify.doc.mjs +8 -1
  275. package/clients/cli/commands/integration.mjs +15 -9
  276. package/clients/cli/commands/json-contract.test.mjs +11 -2
  277. package/clients/cli/commands/manifest.doc.mjs +1 -0
  278. package/clients/cli/commands/outside-project.test.mjs +774 -0
  279. package/clients/cli/commands/search.doc.mjs +1 -0
  280. package/clients/cli/commands/search.mjs +16 -11
  281. package/clients/cli/commands/search.test.mjs +429 -296
  282. package/clients/cli/commands/setup-nudge.test.mjs +102 -2
  283. package/clients/cli/commands/swizzle.doc.mjs +7 -0
  284. package/clients/cli/commands/swizzle.mjs +5 -3
  285. package/clients/cli/commands/swizzle.routing.test.mjs +19 -2
  286. package/clients/cli/commands/template.doc.mjs +1 -0
  287. package/clients/cli/commands/theme-add-lifecycle.test.mjs +3 -3
  288. package/clients/cli/commands/theme-add.doc.mjs +8 -1
  289. package/clients/cli/commands/theme-build.doc.mjs +1 -0
  290. package/clients/cli/commands/theme-eject.doc.mjs +1 -0
  291. package/clients/cli/commands/theme-list.behavior.test.mjs +6 -0
  292. package/clients/cli/commands/theme-list.doc.mjs +1 -0
  293. package/clients/cli/commands/theme-palette-generate.doc.mjs +1 -0
  294. package/clients/cli/commands/theme-remove.doc.mjs +7 -0
  295. package/clients/cli/commands/theme-targets.doc.mjs +1 -0
  296. package/clients/cli/commands/theme-template.doc.mjs +1 -0
  297. package/clients/cli/commands/theme-use.doc.mjs +7 -0
  298. package/clients/cli/commands/upgrade.config-ordering.test.mjs +2 -1
  299. package/clients/cli/commands/upgrade.doc.mjs +22 -1
  300. package/clients/cli/commands/upgrade.file-protection.test.mjs +3 -2
  301. package/clients/cli/commands/upgrade.hook-output.test.mjs +2 -1
  302. package/clients/cli/commands/upgrade.older-cli.test.mjs +160 -0
  303. package/clients/cli/index.mjs +111 -16
  304. package/clients/cli/lib/cli-error.mjs +4 -1
  305. package/clients/cli/lib/component-format.test.mjs +1 -1
  306. package/clients/cli/lib/define-command.mjs +2 -2
  307. package/clients/cli/lib/json-shim.mjs +3 -1
  308. package/clients/cli/lib/manifest.d.ts +9 -0
  309. package/clients/cli/lib/manifest.mjs +17 -1
  310. package/clients/cli/lib/manifest.test.mjs +25 -0
  311. package/foundation/agent-docs/agent-doc-state.d.mts +35 -6
  312. package/foundation/agent-docs/agent-doc-state.mjs +66 -6
  313. package/foundation/agent-docs/agent-docs.d.mts +4 -3
  314. package/foundation/agent-docs/agent-docs.mjs +11 -9
  315. package/foundation/agent-docs/computer-agent-text.d.mts +133 -0
  316. package/foundation/agent-docs/computer-agent-text.mjs +623 -0
  317. package/foundation/agent-docs/computer-agent-text.test.mjs +602 -0
  318. package/foundation/config/project.d.mts +35 -3
  319. package/foundation/config/project.mjs +145 -8
  320. package/foundation/config/project.test.mjs +66 -0
  321. package/foundation/config/theme-state.mjs +5 -4
  322. package/foundation/discovery/authoring-self-docs.mjs +1 -1
  323. package/foundation/discovery/cli-self-docs.mjs +20 -3
  324. package/foundation/discovery/cli-self-docs.test.mjs +3 -2
  325. package/foundation/discovery/component-replacement.mjs +2 -1
  326. package/foundation/discovery/copied-passages.d.mts +216 -0
  327. package/foundation/discovery/copied-passages.mjs +720 -0
  328. package/foundation/discovery/copied-passages.test.mjs +124 -0
  329. package/foundation/discovery/doc-consistency.d.mts +34 -0
  330. package/foundation/discovery/doc-consistency.mjs +513 -0
  331. package/foundation/discovery/doc-consistency.test.mjs +347 -0
  332. package/foundation/discovery/doc-fluff.d.mts +112 -0
  333. package/foundation/discovery/doc-fluff.mjs +328 -0
  334. package/foundation/discovery/doc-fluff.test.mjs +142 -0
  335. package/foundation/discovery/doc-types.d.mts +1 -1
  336. package/foundation/discovery/doc-types.mjs +15 -8
  337. package/foundation/discovery/doc-types.test.mjs +94 -2
  338. package/foundation/discovery/docs-discovery.d.mts +7 -0
  339. package/foundation/discovery/docs-discovery.mjs +26 -2
  340. package/foundation/discovery/project-typescript.d.mts +11 -2
  341. package/foundation/discovery/project-typescript.mjs +32 -4
  342. package/foundation/discovery/prop-drift.d.mts +26 -7
  343. package/foundation/discovery/prop-drift.mjs +173 -8
  344. package/foundation/discovery/prop-drift.test.mjs +120 -2
  345. package/foundation/discovery/runner-allowlist.d.mts +40 -0
  346. package/foundation/discovery/runner-allowlist.mjs +53 -0
  347. package/foundation/discovery/stray-pointers.d.mts +52 -0
  348. package/foundation/discovery/stray-pointers.mjs +293 -0
  349. package/foundation/discovery/stray-pointers.test.mjs +86 -0
  350. package/foundation/discovery/template-needs.mjs +5 -2
  351. package/foundation/discovery/theme-imports.mjs +8 -4
  352. package/foundation/discovery/theme-imports.test.mjs +1 -1
  353. package/foundation/discovery/type-text.mjs +1 -1
  354. package/foundation/discovery/type-text.test.mjs +1 -1
  355. package/foundation/doc-compiler/doc-loads.test.mjs +42 -2
  356. package/foundation/doc-compiler/inputs.mjs +4 -1
  357. package/foundation/doc-compiler/links.d.mts +32 -0
  358. package/foundation/doc-compiler/links.mjs +163 -26
  359. package/foundation/doc-compiler/links.test.mjs +97 -4
  360. package/foundation/doc-compiler/read.d.mts +1 -1
  361. package/foundation/doc-compiler/tree.mjs +30 -1
  362. package/foundation/doc-compiler/tree.test.mjs +8 -1
  363. package/foundation/env/cli-command.d.mts +83 -0
  364. package/foundation/env/cli-command.mjs +152 -0
  365. package/foundation/env/cli-command.test.mjs +129 -0
  366. package/foundation/env/node-version.test.mjs +15 -3
  367. package/foundation/env/package-manager.d.mts +93 -9
  368. package/foundation/env/package-manager.global.test.mjs +66 -0
  369. package/foundation/env/package-manager.mjs +184 -13
  370. package/foundation/env/package-manager.test.mjs +341 -15
  371. package/foundation/env/project-scope.d.mts +9 -0
  372. package/foundation/env/project-scope.mjs +33 -0
  373. package/foundation/env/search-path.d.mts +42 -0
  374. package/foundation/env/search-path.mjs +205 -0
  375. package/foundation/env/search-path.test.mjs +122 -0
  376. package/foundation/env/user-dirs.d.mts +39 -0
  377. package/foundation/env/user-dirs.mjs +93 -0
  378. package/foundation/env/user-dirs.test.mjs +72 -0
  379. package/foundation/env/user-settings.d.mts +46 -0
  380. package/foundation/env/user-settings.mjs +106 -0
  381. package/foundation/env/user-settings.test.mjs +64 -0
  382. package/foundation/fs/file-protection.mjs +15 -1
  383. package/foundation/fs/module-loader.d.mts +2 -1
  384. package/foundation/fs/module-loader.mjs +60 -4
  385. package/foundation/fs/module-loader.stdout.test.mjs +3 -2
  386. package/foundation/fs/module-loader.test.mjs +194 -0
  387. package/foundation/fs/path-compare.d.mts +33 -0
  388. package/foundation/fs/path-compare.mjs +73 -0
  389. package/foundation/fs/paths.d.mts +57 -1
  390. package/foundation/fs/paths.mjs +131 -3
  391. package/foundation/fs/paths.test.mjs +10 -1
  392. package/foundation/integrations/computer-integrations.d.mts +78 -0
  393. package/foundation/integrations/computer-integrations.mjs +316 -0
  394. package/foundation/integrations/computer-integrations.test.mjs +292 -0
  395. package/foundation/integrations/contribution-inventory.d.mts +11 -0
  396. package/foundation/integrations/contribution-inventory.mjs +50 -2
  397. package/foundation/integrations/integration-warnings.mjs +3 -2
  398. package/foundation/integrations/integration-warnings.test.mjs +8 -9
  399. package/foundation/integrations/integrations.d.mts +25 -1
  400. package/foundation/integrations/integrations.mjs +46 -3
  401. package/foundation/integrations/issue.ts +6 -0
  402. package/foundation/integrations/validate-contributions.d.mts +2 -0
  403. package/foundation/integrations/validate-contributions.mjs +41 -1
  404. package/foundation/release/agent-text-worker.d.mts +4 -0
  405. package/foundation/release/agent-text-worker.mjs +52 -0
  406. package/foundation/release/cache.d.mts +310 -0
  407. package/foundation/release/cache.mjs +1216 -0
  408. package/foundation/release/cache.test.mjs +920 -0
  409. package/foundation/release/choose.d.mts +207 -0
  410. package/foundation/release/choose.mjs +677 -0
  411. package/foundation/release/choose.test.mjs +427 -0
  412. package/foundation/release/core-worker.d.mts +4 -0
  413. package/foundation/release/core-worker.mjs +38 -0
  414. package/foundation/release/global-state.d.mts +259 -0
  415. package/foundation/release/global-state.mjs +472 -0
  416. package/foundation/release/global-state.test.mjs +381 -0
  417. package/foundation/release/handoff.d.mts +60 -0
  418. package/foundation/release/handoff.e2e.test.mjs +278 -0
  419. package/foundation/release/handoff.mjs +357 -0
  420. package/foundation/release/lock-lease.d.mts +23 -0
  421. package/foundation/release/lock-lease.mjs +80 -0
  422. package/foundation/release/notices.d.mts +253 -0
  423. package/foundation/release/notices.mjs +596 -0
  424. package/foundation/release/notices.test.mjs +565 -0
  425. package/foundation/release/npm-guard.d.mts +4 -0
  426. package/foundation/release/npm-guard.mjs +126 -0
  427. package/foundation/release/project.d.mts +141 -0
  428. package/foundation/release/project.mjs +466 -0
  429. package/foundation/release/project.test.mjs +288 -0
  430. package/foundation/release/refresh-worker.d.mts +4 -0
  431. package/foundation/release/refresh-worker.mjs +27 -0
  432. package/foundation/release/run-context.d.mts +47 -0
  433. package/foundation/release/run-context.mjs +149 -0
  434. package/foundation/release/update-notice-env.d.mts +28 -0
  435. package/foundation/release/update-notice-env.mjs +39 -0
  436. package/foundation/response/base.d.ts +26 -3
  437. package/foundation/response/error-codes.d.mts +3 -1
  438. package/foundation/response/error-codes.doc.mjs +12 -0
  439. package/foundation/response/error-codes.mjs +17 -0
  440. package/foundation/response/error-codes.test.mjs +2 -0
  441. package/foundation/response/json-contract.test.mjs +7 -2
  442. package/foundation/response/json.mjs +4 -1
  443. package/foundation/response/response-types.doc.mjs +17 -11
  444. package/foundation/response/response-types.doc.test.mjs +46 -0
  445. package/foundation/response/response.doc.mjs +3 -3
  446. package/foundation/xle/browser-imports.test.mjs +74 -0
  447. package/package.json +11 -11
  448. package/scripts/postinstall.mjs +24 -5
  449. /package/assets/codemods/transforms/{next → v0.7.2}/__tests__/migrate-list-edge-compensation-to-edge.test.mjs +0 -0
  450. /package/assets/codemods/transforms/{next → v0.7.2}/migrate-list-edge-compensation-to-edge.mjs +0 -0
@@ -66,6 +66,14 @@ export function isWeightsFile(file: any): file is import("./kit/weights.mjs").We
66
66
  * @returns {string[]} Setup notes (empty when the template needs nothing).
67
67
  */
68
68
  export function templateSetupNotes(template: PageTemplate, cwd: string): string[];
69
+ /**
70
+ * The Core a build answers from: the project's, else the release's own,
71
+ * installed into the per-user cache first when needed (a network install
72
+ * and an npm subprocess; spec AST-081 FR3). Throws as requireCoreDir does.
73
+ * @param {string} cwd
74
+ * @returns {string}
75
+ */
76
+ export function requireBuildCoreDir(cwd: string): string;
69
77
  export { withListingCache } from "../../foundation/fs/listing-cache.mjs";
70
78
  /**
71
79
  * A page template the kit can recommend starting from.
@@ -20,7 +20,7 @@ import fs from 'node:fs';
20
20
 
21
21
  import {discoverTemplates} from '../template/template.mjs';
22
22
  import {componentKeywords} from '../search/search.mjs';
23
- import {findCoreDir} from '../../foundation/fs/paths.mjs';
23
+ import {findCoreDir, requireCoreDir} from '../../foundation/fs/paths.mjs';
24
24
  import {analyzeTemplateNeeds} from '../../foundation/discovery/template-needs.mjs';
25
25
 
26
26
  /**
@@ -177,3 +177,14 @@ export function templateSetupNotes(template, cwd) {
177
177
  return [];
178
178
  }
179
179
  }
180
+
181
+ /**
182
+ * The Core a build answers from: the project's, else the release's own,
183
+ * installed into the per-user cache first when needed (a network install
184
+ * and an npm subprocess; spec AST-081 FR3). Throws as requireCoreDir does.
185
+ * @param {string} cwd
186
+ * @returns {string}
187
+ */
188
+ export function requireBuildCoreDir(cwd) {
189
+ return requireCoreDir(cwd);
190
+ }
@@ -76,6 +76,10 @@ export const doc = {
76
76
  code: 'ERR_CORE_NOT_FOUND',
77
77
  when: 'a query is given and @astryxdesign/core cannot be found from cwd',
78
78
  },
79
+ {
80
+ code: 'ERR_VERSIONS_UNAVAILABLE',
81
+ when: 'a query is given outside a project, or in a project with nothing installed, and the Core of the release that answers is not beside it or cached, and cannot be installed into the per-user cache (offline, a registry without it, or an unwritable cache)',
82
+ },
79
83
  ],
80
84
  examples: [
81
85
  {label: 'Get the playbook', code: 'const r = await build();'},
@@ -28,11 +28,9 @@
28
28
  */
29
29
 
30
30
  import {search, searchedComponents} from '../../search/search.mjs';
31
- import {findCoreDir} from '../../../foundation/fs/paths.mjs';
32
- import {AstryxError} from '../../error.mjs';
33
- import {ERROR_CODES} from '../../../foundation/response/error-codes.mjs';
31
+ import {coreDirOrThrow} from '../../error.mjs';
34
32
  import {getResultCoverage} from '../../search/coverage.mjs';
35
- import {loadComponents, loadPageTemplates, loadWeights, templateSetupNotes} from '../_adapter.mjs';
33
+ import {loadComponents, loadPageTemplates, loadWeights, requireBuildCoreDir, templateSetupNotes} from '../_adapter.mjs';
36
34
  import {
37
35
  asksForNewPage,
38
36
  ideaKind,
@@ -260,13 +258,7 @@ export async function buildKit(query, options = {}) {
260
258
  const {cwd = process.cwd(), type, limit = 60} = options;
261
259
  // A kit is built from Core's components, hooks, and templates. An open
262
260
  // search without core covers the docs alone, so the kit asks for core here.
263
- if (type !== 'doc' && !findCoreDir(cwd)) {
264
- throw new AstryxError(
265
- 'Could not find @astryxdesign/core package',
266
- undefined,
267
- ERROR_CODES.ERR_CORE_NOT_FOUND,
268
- );
269
- }
261
+ if (type !== 'doc') coreDirOrThrow(requireBuildCoreDir, cwd);
270
262
  // search()'s JSDoc @returns widens results to object[]; the SearchResponse
271
263
  // shape is the contract (api/search/search.type.mjs). Cast locally rather than
272
264
  // tightening the search @returns (a separate follow-up).
@@ -245,6 +245,37 @@ export function scopeIntegrationMember(docs: LoadedComponentDoc, owner: Ownershi
245
245
  parentDoc?: string;
246
246
  import?: string;
247
247
  };
248
+ /**
249
+ * A search response with every inline `{@link <target>}` in a component
250
+ * result's description resolved to the command that opens the doc it names,
251
+ * as `astryx component` prints it (spec:AST-047 FR9). The response object is
252
+ * kept, with its results replaced.
253
+ * @template {{data: {results: any[]}}} R
254
+ * @param {R} response
255
+ * @param {string} cwd
256
+ * @returns {Promise<R>}
257
+ */
258
+ export function linkSearchResponse<R extends {
259
+ data: {
260
+ results: any[];
261
+ };
262
+ }>(response: R, cwd: string): Promise<R>;
263
+ /**
264
+ * A component read with every inline `{@link <target>}` in its doc text
265
+ * resolved to the command that opens the doc it names (spec:AST-047 FR9), in
266
+ * the detail, its props projection, and each list entry. A Core component's
267
+ * links resolve against the CLI's own docs; an integration's against that
268
+ * integration's. A link that names no doc prints as written.
269
+ * @template {{type: string, package?: string, data?: any}} R
270
+ * @param {R} response
271
+ * @param {string} cwd
272
+ * @returns {Promise<R>}
273
+ */
274
+ export function linkComponentResponse<R extends {
275
+ type: string;
276
+ package?: string;
277
+ data?: any;
278
+ }>(response: R, cwd: string): Promise<R>;
248
279
  /**
249
280
  * Internal ambiguity marker. Single-component callers still receive the same
250
281
  * AstryxError code, message, and suggestions; batch callers can additionally
@@ -22,7 +22,7 @@ import * as fs from 'node:fs';
22
22
  import * as path from 'node:path';
23
23
  import {ERROR_CODES} from '../../foundation/response/error-codes.mjs';
24
24
  import {
25
- findCoreDir,
25
+ requireCoreDir as requireAnswerCoreDir,
26
26
  discoverExternalPackages,
27
27
  } from '../../foundation/fs/paths.mjs';
28
28
  import {
@@ -44,7 +44,12 @@ import {Project} from '../../foundation/config/project.mjs';
44
44
  import {loadComponentDoc as loadValidatedComponentDoc} from '../../foundation/discovery/component-loader.mjs';
45
45
  import {resolveComponentReplacements} from '../../foundation/discovery/component-replacement.mjs';
46
46
  import {searchComponents} from '../../foundation/text/string-utils.mjs';
47
- import {AstryxError} from '../error.mjs';
47
+ import {AstryxError, coreDirOrThrow} from '../error.mjs';
48
+ import {
49
+ componentLinkProvider,
50
+ linkComponentDoc,
51
+ loadDocsCatalog,
52
+ } from '../docs/_adapter.mjs';
48
53
 
49
54
  export {CORE_PACKAGE, unscopedComponentOwners};
50
55
 
@@ -116,15 +121,7 @@ export {CORE_PACKAGE, unscopedComponentOwners};
116
121
  * @returns {string}
117
122
  */
118
123
  export function requireCoreDir(cwd) {
119
- const coreDir = findCoreDir(cwd);
120
- if (!coreDir) {
121
- throw new AstryxError(
122
- 'Could not find @astryxdesign/core package',
123
- undefined,
124
- ERROR_CODES.ERR_CORE_NOT_FOUND,
125
- );
126
- }
127
- return coreDir;
124
+ return coreDirOrThrow(requireAnswerCoreDir, cwd);
128
125
  }
129
126
 
130
127
  /**
@@ -669,3 +666,114 @@ export function scopeIntegrationMember(docs, owner, dirName) {
669
666
  if (docs.import) scoped.import = docs.import;
670
667
  return scoped;
671
668
  }
669
+
670
+ /**
671
+ * A search response with every inline `{@link <target>}` in a component
672
+ * result's description resolved to the command that opens the doc it names,
673
+ * as `astryx component` prints it (spec:AST-047 FR9). The response object is
674
+ * kept, with its results replaced.
675
+ * @template {{data: {results: any[]}}} R
676
+ * @param {R} response
677
+ * @param {string} cwd
678
+ * @returns {Promise<R>}
679
+ */
680
+ export async function linkSearchResponse(response, cwd) {
681
+ const results = response.data.results;
682
+ if (
683
+ !results.some(
684
+ result =>
685
+ result?.domain === 'component' &&
686
+ typeof result.description === 'string' &&
687
+ result.description.includes('{@link'),
688
+ )
689
+ ) {
690
+ return response;
691
+ }
692
+ const linked = [];
693
+ for (const result of results) {
694
+ if (
695
+ result?.domain !== 'component' ||
696
+ typeof result.description !== 'string' ||
697
+ !result.description.includes('{@link')
698
+ ) {
699
+ linked.push(result);
700
+ continue;
701
+ }
702
+ const read = await linkComponentResponse(
703
+ {
704
+ type: 'component.detail',
705
+ package: result.package,
706
+ data: {description: result.description},
707
+ },
708
+ cwd,
709
+ );
710
+ linked.push({...result, description: read.data.description});
711
+ }
712
+ response.data = {...response.data, results: linked};
713
+ return response;
714
+ }
715
+
716
+ /**
717
+ * A component read with every inline `{@link <target>}` in its doc text
718
+ * resolved to the command that opens the doc it names (spec:AST-047 FR9), in
719
+ * the detail, its props projection, and each list entry. A Core component's
720
+ * links resolve against the CLI's own docs; an integration's against that
721
+ * integration's. A link that names no doc prints as written.
722
+ * @template {{type: string, package?: string, data?: any}} R
723
+ * @param {R} response
724
+ * @param {string} cwd
725
+ * @returns {Promise<R>}
726
+ */
727
+ export async function linkComponentResponse(response, cwd) {
728
+ const {type} = response;
729
+ if (
730
+ type !== 'component.detail' &&
731
+ type !== 'component.detail.props' &&
732
+ type !== 'component.list'
733
+ ) {
734
+ return response;
735
+ }
736
+ if (!JSON.stringify(response.data ?? null).includes('{@link')) {
737
+ return response;
738
+ }
739
+ const catalog = await loadDocsCatalog(cwd);
740
+ /** @type {Map<string, string>} */
741
+ const declared = new Map();
742
+ for (const integration of await loadIntegrationsSafely(cwd)) {
743
+ const id = /** @type {any} */ (integration).providerId;
744
+ if (typeof id === 'string') declared.set(integration.name, id);
745
+ }
746
+ /**
747
+ * @param {any} doc
748
+ * @param {string | undefined} owner
749
+ */
750
+ const link = async (doc, owner) => {
751
+ if (typeof owner !== 'string') return doc;
752
+ try {
753
+ return (
754
+ await linkComponentDoc(
755
+ catalog,
756
+ componentLinkProvider(owner, declared.get(owner)),
757
+ doc,
758
+ )
759
+ ).doc;
760
+ } catch {
761
+ // An owner that is not a provider id links nothing; its text reads as
762
+ // written.
763
+ return doc;
764
+ }
765
+ };
766
+ if (type !== 'component.list') {
767
+ return {...response, data: await link(response.data, response.package)};
768
+ }
769
+ /** @type {Record<string, any[]>} */
770
+ const components = {};
771
+ for (const [group, entries] of Object.entries(
772
+ response.data.components ?? {},
773
+ )) {
774
+ const linked = [];
775
+ for (const entry of entries) linked.push(await link(entry, entry?.package));
776
+ components[group] = linked;
777
+ }
778
+ return {...response, data: {...response.data, components}};
779
+ }
@@ -24,7 +24,8 @@ export const doc = {
24
24
  'showcase, or example blocks. An integration component that replaces a Core ' +
25
25
  'component (its doc sets replaces, and its package declares the CLI range that ' +
26
26
  'turns replacement on) answers to the Core name in detail, batch, and list ' +
27
- "results; use options.package '@astryxdesign/core' for the original.",
27
+ "results; use options.package '@astryxdesign/core' for the original." +
28
+ " In global mode: with `cwd` outside a project, components from integrations installed next to this CLI package globally resolve too; inside a project, only the project's own integrations count. See {@link namespace:global} and {@link generic:computer-integrations}.",
28
29
  importPath: '@astryxdesign/cli/api',
29
30
  signature:
30
31
  'component(name?: string | string[], options?: ComponentOptions): Promise<ComponentListResponse | ComponentBatchResponse | ComponentDetailResponse | ComponentDetailPropsResponse | ComponentDetailSourceResponse | ComponentDetailShowcaseResponse | ComponentDetailBlocksResponse>',
@@ -164,6 +165,10 @@ export const doc = {
164
165
  code: 'ERR_CORE_NOT_FOUND',
165
166
  when: '@astryxdesign/core cannot be resolved from cwd',
166
167
  },
168
+ {
169
+ code: 'ERR_VERSIONS_UNAVAILABLE',
170
+ when: 'outside a project, or in a project with nothing installed, the Core of the release that answers is not beside it or cached, and cannot be installed into the per-user cache (offline, a registry without it, or an unwritable cache)',
171
+ },
167
172
  {
168
173
  code: 'ERR_UNKNOWN_CATEGORY',
169
174
  when: 'options.category is not a string or matches no component group',
@@ -32,6 +32,7 @@ import {
32
32
  installedComponentPackageVersion,
33
33
  resolveComponentReplacement,
34
34
  unscopedComponentOwners,
35
+ linkComponentResponse,
35
36
  } from './_adapter.mjs';
36
37
  import {componentList} from './list/list.mjs';
37
38
  import {componentDetail} from './detail/detail.mjs';
@@ -257,6 +258,23 @@ async function componentBatch(selectors, options, coreDir) {
257
258
  * )>}
258
259
  */
259
260
  export async function component(name, options = {}) {
261
+ // Every read resolves the links in the doc text it returns (spec:AST-047
262
+ // FR9); a batch's results are each a read of their own.
263
+ return /** @type {any} */ (
264
+ await linkComponentResponse(
265
+ await componentRead(name, options),
266
+ options.cwd ?? process.cwd(),
267
+ )
268
+ );
269
+ }
270
+
271
+ /**
272
+ * {@link component}, with each `{@link}` in its doc text as written.
273
+ * @param {string|string[]} [name]
274
+ * @param {Parameters<typeof component>[1]} [options]
275
+ * @returns {ReturnType<typeof component>}
276
+ */
277
+ async function componentRead(name, options = {}) {
260
278
  const {
261
279
  cwd = process.cwd(),
262
280
  list = false,
@@ -357,7 +375,7 @@ export async function component(name, options = {}) {
357
375
  requireInstalledSelectorVersion(target, coreDir, loadedIntegrations);
358
376
  }
359
377
  if (target.name !== name || target.package !== packageScope) {
360
- return component(target.name, {...options, package: target.package});
378
+ return componentRead(target.name, {...options, package: target.package});
361
379
  }
362
380
  name = target.name;
363
381
  }
@@ -396,7 +414,10 @@ export async function component(name, options = {}) {
396
414
  dirName,
397
415
  );
398
416
  if (replacement?.package === packageScope) {
399
- return component(replacement.name, {...options, package: packageScope});
417
+ return componentRead(replacement.name, {
418
+ ...options,
419
+ package: packageScope,
420
+ });
400
421
  }
401
422
  }
402
423
  const scoped = classifyScope(packageScope, {
@@ -424,8 +445,17 @@ export async function component(name, options = {}) {
424
445
  // a showcase, so skip discovery entirely.
425
446
  if (showcase) {
426
447
  return scoped.kind === 'core'
427
- ? componentDetailShowcase(dirName, {cwd, name, ownerPackage: owner.package})
428
- : componentDetailShowcase(dirName, {cwd, name, resolve: false, ownerPackage: owner.package});
448
+ ? componentDetailShowcase(dirName, {
449
+ cwd,
450
+ name,
451
+ ownerPackage: owner.package,
452
+ })
453
+ : componentDetailShowcase(dirName, {
454
+ cwd,
455
+ name,
456
+ resolve: false,
457
+ ownerPackage: owner.package,
458
+ });
429
459
  }
430
460
  if (blocks) {
431
461
  return componentDetailBlocks(dirName, cwd, owner.package);
@@ -443,7 +473,12 @@ export async function component(name, options = {}) {
443
473
 
444
474
  // Legacy `pkg.astryx.docs` external package.
445
475
  if (showcase) {
446
- return componentDetailShowcase(dirName, {cwd, name, packageScope, ownerPackage: packageScope});
476
+ return componentDetailShowcase(dirName, {
477
+ cwd,
478
+ name,
479
+ packageScope,
480
+ ownerPackage: packageScope,
481
+ });
447
482
  }
448
483
  const extDocPath = resolveLegacyExternalDoc(scoped.ext, dirName);
449
484
  if (extDocPath) {
@@ -484,7 +519,7 @@ export async function component(name, options = {}) {
484
519
  dirName,
485
520
  );
486
521
  if (replacement) {
487
- return component(replacement.name, {
522
+ return componentRead(replacement.name, {
488
523
  ...options,
489
524
  package: replacement.package,
490
525
  });
@@ -526,11 +561,19 @@ export async function component(name, options = {}) {
526
561
  ) {
527
562
  const owner = effectiveOwners[0];
528
563
  if (source) {
529
- return componentDetailSource(dirName, owner.sourcePath, {name, ownerPackage: owner.package});
564
+ return componentDetailSource(dirName, owner.sourcePath, {
565
+ name,
566
+ ownerPackage: owner.package,
567
+ });
530
568
  }
531
569
  if (showcase) {
532
570
  // Integration components don't carry showcases — fail without scanning.
533
- return componentDetailShowcase(dirName, {cwd, name, resolve: false, ownerPackage: owner.package});
571
+ return componentDetailShowcase(dirName, {
572
+ cwd,
573
+ name,
574
+ resolve: false,
575
+ ownerPackage: owner.package,
576
+ });
534
577
  }
535
578
  const loaded = await loadComponentDoc(owner.docPath, docOpts);
536
579
  const docs = scopeIntegrationMember(loaded, owner, dirName);
@@ -548,7 +591,11 @@ export async function component(name, options = {}) {
548
591
  );
549
592
  }
550
593
  if (showcase) {
551
- return componentDetailShowcase(dirName, {cwd, name, ownerPackage: CORE_PACKAGE});
594
+ return componentDetailShowcase(dirName, {
595
+ cwd,
596
+ name,
597
+ ownerPackage: CORE_PACKAGE,
598
+ });
552
599
  }
553
600
 
554
601
  const resolved = await resolveUnscopedDoc(dirName, {coreDir, cwd, name});
@@ -565,7 +612,10 @@ export async function component(name, options = {}) {
565
612
  const sub = scopeSubComponent(docs, dirName, coreDir);
566
613
  if (sub) {
567
614
  if (props)
568
- return componentDetailProps({props: sub.matchingComponent.props}, resolved.resolvedOwnerPackage);
615
+ return componentDetailProps(
616
+ {props: sub.matchingComponent.props},
617
+ resolved.resolvedOwnerPackage,
618
+ );
569
619
  return componentDetail(
570
620
  sub.scoped,
571
621
  {