@ethlete/cli 3.0.0-next.21 → 3.0.0-next.23

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 (340) hide show
  1. package/CHANGELOG.md +198 -0
  2. package/design/assets.d.ts +9 -0
  3. package/design/define-call.ts +20 -11
  4. package/design/define-part.ts +102 -0
  5. package/design/embed-page.ts +70 -0
  6. package/design/interaction-rows.ts +32 -0
  7. package/design/mark-part.ts +66 -0
  8. package/design/svg-asset.ts +36 -0
  9. package/design/systems/config.json +10 -0
  10. package/design/systems/ethlete-components/components/button/button.ts +18 -0
  11. package/design/web/env.d.ts +20 -0
  12. package/design/web/frame.ts +173 -41
  13. package/design/wireframe-kit.ts +386 -0
  14. package/package.json +4 -2
  15. package/playwright/failure-reporter.d.ts +2 -0
  16. package/playwright/failure-reporter.js +1 -0
  17. package/src/index.js.map +1 -1
  18. package/src/lib/api/api-command.js.map +1 -1
  19. package/src/lib/api/api-context.js.map +1 -1
  20. package/src/lib/api/api-state.js.map +1 -1
  21. package/src/lib/api/auth-hint.js.map +1 -1
  22. package/src/lib/api/clear.js.map +1 -1
  23. package/src/lib/api/clone.js.map +1 -1
  24. package/src/lib/api/compose.js.map +1 -1
  25. package/src/lib/api/definition.js.map +1 -1
  26. package/src/lib/api/doctor.js.map +1 -1
  27. package/src/lib/api/fingerprint.js.map +1 -1
  28. package/src/lib/api/git.js.map +1 -1
  29. package/src/lib/api/help.js.map +1 -1
  30. package/src/lib/api/index.js.map +1 -1
  31. package/src/lib/api/load-definitions.js.map +1 -1
  32. package/src/lib/api/lock.js.map +1 -1
  33. package/src/lib/api/parse-argv.js.map +1 -1
  34. package/src/lib/api/ports.js.map +1 -1
  35. package/src/lib/api/resolve-checkout.js.map +1 -1
  36. package/src/lib/api/run-locked.js.map +1 -1
  37. package/src/lib/api/run-ready.js.map +1 -1
  38. package/src/lib/api/run-snapshot.js.map +1 -1
  39. package/src/lib/api/run-status.js.map +1 -1
  40. package/src/lib/api/run.js.map +1 -1
  41. package/src/lib/api/seeds.js.map +1 -1
  42. package/src/lib/api/setup.js.map +1 -1
  43. package/src/lib/api/snapshot.js.map +1 -1
  44. package/src/lib/api/state.js.map +1 -1
  45. package/src/lib/api/suggest.js.map +1 -1
  46. package/src/lib/api/validate-definition.js.map +1 -1
  47. package/src/lib/auth/auth-command.js.map +1 -1
  48. package/src/lib/auth/composer-auth.js.map +1 -1
  49. package/src/lib/auth/composer-repositories.js.map +1 -1
  50. package/src/lib/auth/gitlab-token.js.map +1 -1
  51. package/src/lib/auth/index.js.map +1 -1
  52. package/src/lib/config/diagnose.js.map +1 -1
  53. package/src/lib/config/index.js.map +1 -1
  54. package/src/lib/config/local-config.js.map +1 -1
  55. package/src/lib/design/asset-shot.d.ts +26 -0
  56. package/src/lib/design/asset-shot.js +191 -0
  57. package/src/lib/design/asset-shot.js.map +1 -0
  58. package/src/lib/design/browser.js.map +1 -1
  59. package/src/lib/design/calls-tsconfig.d.ts +14 -1
  60. package/src/lib/design/calls-tsconfig.js +23 -18
  61. package/src/lib/design/calls-tsconfig.js.map +1 -1
  62. package/src/lib/design/calls.d.ts +28 -0
  63. package/src/lib/design/calls.js +58 -0
  64. package/src/lib/design/calls.js.map +1 -0
  65. package/src/lib/design/changed-parts.d.ts +51 -0
  66. package/src/lib/design/changed-parts.js +103 -0
  67. package/src/lib/design/changed-parts.js.map +1 -0
  68. package/src/lib/design/check.js +53 -54
  69. package/src/lib/design/check.js.map +1 -1
  70. package/src/lib/design/contact-sheet.d.ts +86 -0
  71. package/src/lib/design/contact-sheet.js +197 -0
  72. package/src/lib/design/contact-sheet.js.map +1 -0
  73. package/src/lib/design/design-command.js +167 -6
  74. package/src/lib/design/design-command.js.map +1 -1
  75. package/src/lib/design/force-interactions.d.ts +13 -0
  76. package/src/lib/design/force-interactions.js +75 -0
  77. package/src/lib/design/force-interactions.js.map +1 -0
  78. package/src/lib/design/inbox-command.d.ts +21 -0
  79. package/src/lib/design/inbox-command.js +156 -0
  80. package/src/lib/design/inbox-command.js.map +1 -0
  81. package/src/lib/design/index.js.map +1 -1
  82. package/src/lib/design/json-layout.d.ts +5 -0
  83. package/src/lib/design/json-layout.js +41 -0
  84. package/src/lib/design/json-layout.js.map +1 -0
  85. package/src/lib/design/legacy.d.ts +7 -0
  86. package/src/lib/design/legacy.js +23 -8
  87. package/src/lib/design/legacy.js.map +1 -1
  88. package/src/lib/design/merge-compare.d.ts +57 -0
  89. package/src/lib/design/merge-compare.js +80 -0
  90. package/src/lib/design/merge-compare.js.map +1 -0
  91. package/src/lib/design/missing-package.js.map +1 -1
  92. package/src/lib/design/new-call.js.map +1 -1
  93. package/src/lib/design/part-marks.d.ts +12 -0
  94. package/src/lib/design/part-marks.js +38 -0
  95. package/src/lib/design/part-marks.js.map +1 -0
  96. package/src/lib/design/paths.d.ts +35 -2
  97. package/src/lib/design/paths.js +62 -4
  98. package/src/lib/design/paths.js.map +1 -1
  99. package/src/lib/design/product-command.d.ts +38 -0
  100. package/src/lib/design/product-command.js +158 -0
  101. package/src/lib/design/product-command.js.map +1 -0
  102. package/src/lib/design/ready-shots.d.ts +13 -0
  103. package/src/lib/design/ready-shots.js +55 -0
  104. package/src/lib/design/ready-shots.js.map +1 -0
  105. package/src/lib/design/render-fields.js.map +1 -1
  106. package/src/lib/design/render-packages.js.map +1 -1
  107. package/src/lib/design/render-worker.js.map +1 -1
  108. package/src/lib/design/render.d.ts +11 -2
  109. package/src/lib/design/render.js +60 -15
  110. package/src/lib/design/render.js.map +1 -1
  111. package/src/lib/design/serve.d.ts +17 -0
  112. package/src/lib/design/serve.js +487 -103
  113. package/src/lib/design/serve.js.map +1 -1
  114. package/src/lib/design/shot-command.d.ts +100 -0
  115. package/src/lib/design/shot-command.js +453 -0
  116. package/src/lib/design/shot-command.js.map +1 -0
  117. package/src/lib/design/shot.d.ts +97 -0
  118. package/src/lib/design/shot.js +346 -0
  119. package/src/lib/design/shot.js.map +1 -0
  120. package/src/lib/design/sketch-at.d.ts +16 -0
  121. package/src/lib/design/sketch-at.js +34 -0
  122. package/src/lib/design/sketch-at.js.map +1 -0
  123. package/src/lib/design/sketch-command.d.ts +15 -0
  124. package/src/lib/design/sketch-command.js +618 -0
  125. package/src/lib/design/sketch-command.js.map +1 -0
  126. package/src/lib/design/ssr-shims.js.map +1 -1
  127. package/src/lib/design/stamp.js.map +1 -1
  128. package/src/lib/design/status.d.ts +2 -2
  129. package/src/lib/design/status.js +2 -2
  130. package/src/lib/design/status.js.map +1 -1
  131. package/src/lib/design/studio-api.d.ts +112 -0
  132. package/src/lib/design/studio-api.js +489 -0
  133. package/src/lib/design/studio-api.js.map +1 -0
  134. package/src/lib/design/system/accept-command.d.ts +7 -0
  135. package/src/lib/design/system/accept-command.js +55 -0
  136. package/src/lib/design/system/accept-command.js.map +1 -0
  137. package/src/lib/design/system/assets.d.ts +34 -0
  138. package/src/lib/design/system/assets.js +64 -0
  139. package/src/lib/design/system/assets.js.map +1 -0
  140. package/src/lib/design/system/base.d.ts +33 -0
  141. package/src/lib/design/system/base.js +49 -0
  142. package/src/lib/design/system/base.js.map +1 -0
  143. package/src/lib/design/system/check-system.d.ts +23 -0
  144. package/src/lib/design/system/check-system.js +151 -0
  145. package/src/lib/design/system/check-system.js.map +1 -0
  146. package/src/lib/design/system/colour.d.ts +2 -0
  147. package/src/lib/design/system/colour.js +9 -0
  148. package/src/lib/design/system/colour.js.map +1 -0
  149. package/src/lib/design/system/comments/comment.d.ts +196 -0
  150. package/src/lib/design/system/comments/comment.js +332 -0
  151. package/src/lib/design/system/comments/comment.js.map +1 -0
  152. package/src/lib/design/system/comments/complete.d.ts +15 -0
  153. package/src/lib/design/system/comments/complete.js +63 -0
  154. package/src/lib/design/system/comments/complete.js.map +1 -0
  155. package/src/lib/design/system/comments/inbox.d.ts +49 -0
  156. package/src/lib/design/system/comments/inbox.js +100 -0
  157. package/src/lib/design/system/comments/inbox.js.map +1 -0
  158. package/src/lib/design/system/css-source.d.ts +12 -0
  159. package/src/lib/design/system/css-source.js +39 -0
  160. package/src/lib/design/system/css-source.js.map +1 -0
  161. package/src/lib/design/system/flows/flow.d.ts +66 -0
  162. package/src/lib/design/system/flows/flow.js +157 -0
  163. package/src/lib/design/system/flows/flow.js.map +1 -0
  164. package/src/lib/design/system/imports.d.ts +70 -0
  165. package/src/lib/design/system/imports.js +159 -0
  166. package/src/lib/design/system/imports.js.map +1 -0
  167. package/src/lib/design/system/kit.d.ts +4 -0
  168. package/src/lib/design/system/kit.js +51 -0
  169. package/src/lib/design/system/kit.js.map +1 -0
  170. package/src/lib/design/system/layers.d.ts +9 -0
  171. package/src/lib/design/system/layers.js +16 -0
  172. package/src/lib/design/system/layers.js.map +1 -0
  173. package/src/lib/design/system/list-system.d.ts +104 -0
  174. package/src/lib/design/system/list-system.js +212 -0
  175. package/src/lib/design/system/list-system.js.map +1 -0
  176. package/src/lib/design/system/notes/note.d.ts +53 -0
  177. package/src/lib/design/system/notes/note.js +116 -0
  178. package/src/lib/design/system/notes/note.js.map +1 -0
  179. package/src/lib/design/system/part-command.d.ts +7 -0
  180. package/src/lib/design/system/part-command.js +134 -0
  181. package/src/lib/design/system/part-command.js.map +1 -0
  182. package/src/lib/design/system/problem.d.ts +5 -0
  183. package/src/lib/design/system/problem.js +3 -0
  184. package/src/lib/design/system/problem.js.map +1 -0
  185. package/src/lib/design/system/product.d.ts +18 -0
  186. package/src/lib/design/system/product.js +35 -0
  187. package/src/lib/design/system/product.js.map +1 -0
  188. package/src/lib/design/system/render-check.d.ts +45 -0
  189. package/src/lib/design/system/render-check.js +427 -0
  190. package/src/lib/design/system/render-check.js.map +1 -0
  191. package/src/lib/design/system/resolve-product.d.ts +32 -0
  192. package/src/lib/design/system/resolve-product.js +62 -0
  193. package/src/lib/design/system/resolve-product.js.map +1 -0
  194. package/src/lib/design/system/rules/component-copy.d.ts +7 -0
  195. package/src/lib/design/system/rules/component-copy.js +53 -0
  196. package/src/lib/design/system/rules/component-copy.js.map +1 -0
  197. package/src/lib/design/system/rules/flow.d.ts +8 -0
  198. package/src/lib/design/system/rules/flow.js +60 -0
  199. package/src/lib/design/system/rules/flow.js.map +1 -0
  200. package/src/lib/design/system/rules/hard-coded-colour.d.ts +7 -0
  201. package/src/lib/design/system/rules/hard-coded-colour.js +27 -0
  202. package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -0
  203. package/src/lib/design/system/rules/interactions.d.ts +4 -0
  204. package/src/lib/design/system/rules/interactions.js +16 -0
  205. package/src/lib/design/system/rules/interactions.js.map +1 -0
  206. package/src/lib/design/system/rules/kit-outside-pages.d.ts +4 -0
  207. package/src/lib/design/system/rules/kit-outside-pages.js +14 -0
  208. package/src/lib/design/system/rules/kit-outside-pages.js.map +1 -0
  209. package/src/lib/design/system/rules/motion.d.ts +4 -0
  210. package/src/lib/design/system/rules/motion.js +13 -0
  211. package/src/lib/design/system/rules/motion.js.map +1 -0
  212. package/src/lib/design/system/rules/stale-comment.d.ts +8 -0
  213. package/src/lib/design/system/rules/stale-comment.js +51 -0
  214. package/src/lib/design/system/rules/stale-comment.js.map +1 -0
  215. package/src/lib/design/system/rules/stale-replace.d.ts +4 -0
  216. package/src/lib/design/system/rules/stale-replace.js +65 -0
  217. package/src/lib/design/system/rules/stale-replace.js.map +1 -0
  218. package/src/lib/design/system/rules/svg-asset.d.ts +6 -0
  219. package/src/lib/design/system/rules/svg-asset.js +30 -0
  220. package/src/lib/design/system/rules/svg-asset.js.map +1 -0
  221. package/src/lib/design/system/rules/token-selectors.d.ts +3 -0
  222. package/src/lib/design/system/rules/token-selectors.js +87 -0
  223. package/src/lib/design/system/rules/token-selectors.js.map +1 -0
  224. package/src/lib/design/system/rules/undefined-token.d.ts +8 -0
  225. package/src/lib/design/system/rules/undefined-token.js +103 -0
  226. package/src/lib/design/system/rules/undefined-token.js.map +1 -0
  227. package/src/lib/design/system/rules/unused-shared-export.d.ts +18 -0
  228. package/src/lib/design/system/rules/unused-shared-export.js +60 -0
  229. package/src/lib/design/system/rules/unused-shared-export.js.map +1 -0
  230. package/src/lib/design/system/rules/upward-dependency.d.ts +4 -0
  231. package/src/lib/design/system/rules/upward-dependency.js +17 -0
  232. package/src/lib/design/system/rules/upward-dependency.js.map +1 -0
  233. package/src/lib/design/system/rules/widths.d.ts +4 -0
  234. package/src/lib/design/system/rules/widths.js +14 -0
  235. package/src/lib/design/system/rules/widths.js.map +1 -0
  236. package/src/lib/design/system/sketch/baseline.d.ts +38 -0
  237. package/src/lib/design/system/sketch/baseline.js +66 -0
  238. package/src/lib/design/system/sketch/baseline.js.map +1 -0
  239. package/src/lib/design/system/sketch/check-format.d.ts +17 -0
  240. package/src/lib/design/system/sketch/check-format.js +56 -0
  241. package/src/lib/design/system/sketch/check-format.js.map +1 -0
  242. package/src/lib/design/system/sketch/check-sketches.d.ts +38 -0
  243. package/src/lib/design/system/sketch/check-sketches.js +104 -0
  244. package/src/lib/design/system/sketch/check-sketches.js.map +1 -0
  245. package/src/lib/design/system/sketch/cli-args.d.ts +26 -0
  246. package/src/lib/design/system/sketch/cli-args.js +63 -0
  247. package/src/lib/design/system/sketch/cli-args.js.map +1 -0
  248. package/src/lib/design/system/sketch/duplicate-class.d.ts +14 -0
  249. package/src/lib/design/system/sketch/duplicate-class.js +57 -0
  250. package/src/lib/design/system/sketch/duplicate-class.js.map +1 -0
  251. package/src/lib/design/system/sketch/merge-preview.d.ts +15 -0
  252. package/src/lib/design/system/sketch/merge-preview.js +43 -0
  253. package/src/lib/design/system/sketch/merge-preview.js.map +1 -0
  254. package/src/lib/design/system/sketch/merge-shared.d.ts +25 -0
  255. package/src/lib/design/system/sketch/merge-shared.js +53 -0
  256. package/src/lib/design/system/sketch/merge-shared.js.map +1 -0
  257. package/src/lib/design/system/sketch/merge.d.ts +31 -0
  258. package/src/lib/design/system/sketch/merge.js +148 -0
  259. package/src/lib/design/system/sketch/merge.js.map +1 -0
  260. package/src/lib/design/system/sketch/merged-parts.d.ts +59 -0
  261. package/src/lib/design/system/sketch/merged-parts.js +134 -0
  262. package/src/lib/design/system/sketch/merged-parts.js.map +1 -0
  263. package/src/lib/design/system/sketch/no-visible-change.d.ts +15 -0
  264. package/src/lib/design/system/sketch/no-visible-change.js +70 -0
  265. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -0
  266. package/src/lib/design/system/sketch/overlay.d.ts +20 -0
  267. package/src/lib/design/system/sketch/overlay.js +38 -0
  268. package/src/lib/design/system/sketch/overlay.js.map +1 -0
  269. package/src/lib/design/system/sketch/part-definition.d.ts +31 -0
  270. package/src/lib/design/system/sketch/part-definition.js +157 -0
  271. package/src/lib/design/system/sketch/part-definition.js.map +1 -0
  272. package/src/lib/design/system/sketch/shared-class.d.ts +9 -0
  273. package/src/lib/design/system/sketch/shared-class.js +65 -0
  274. package/src/lib/design/system/sketch/shared-class.js.map +1 -0
  275. package/src/lib/design/system/sketch/sketch.d.ts +267 -0
  276. package/src/lib/design/system/sketch/sketch.js +568 -0
  277. package/src/lib/design/system/sketch/sketch.js.map +1 -0
  278. package/src/lib/design/system/sketch/unchanged-states.d.ts +23 -0
  279. package/src/lib/design/system/sketch/unchanged-states.js +144 -0
  280. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -0
  281. package/src/lib/design/system/sketch/unused-files.d.ts +10 -0
  282. package/src/lib/design/system/sketch/unused-files.js +56 -0
  283. package/src/lib/design/system/sketch/unused-files.js.map +1 -0
  284. package/src/lib/design/system/system-command.d.ts +9 -0
  285. package/src/lib/design/system/system-command.js +56 -0
  286. package/src/lib/design/system/system-command.js.map +1 -0
  287. package/src/lib/design/system/system-modules.d.ts +58 -0
  288. package/src/lib/design/system/system-modules.js +189 -0
  289. package/src/lib/design/system/system-modules.js.map +1 -0
  290. package/src/lib/design/system/system-tsconfig.d.ts +26 -0
  291. package/src/lib/design/system/system-tsconfig.js +68 -0
  292. package/src/lib/design/system/system-tsconfig.js.map +1 -0
  293. package/src/lib/design/system/ts-source.d.ts +13 -0
  294. package/src/lib/design/system/ts-source.js +108 -0
  295. package/src/lib/design/system/ts-source.js.map +1 -0
  296. package/src/lib/design/system-use.js.map +1 -1
  297. package/src/lib/design/thumb.d.ts +48 -4
  298. package/src/lib/design/thumb.js +127 -37
  299. package/src/lib/design/thumb.js.map +1 -1
  300. package/src/lib/design/typecheck.d.ts +29 -0
  301. package/src/lib/design/typecheck.js +77 -0
  302. package/src/lib/design/typecheck.js.map +1 -0
  303. package/src/lib/design/variant-diff.d.ts +64 -0
  304. package/src/lib/design/variant-diff.js +92 -0
  305. package/src/lib/design/variant-diff.js.map +1 -0
  306. package/src/lib/design/vite-paths.d.ts +2 -0
  307. package/src/lib/design/vite-paths.js +10 -1
  308. package/src/lib/design/vite-paths.js.map +1 -1
  309. package/src/lib/doctor/doctor-command.js.map +1 -1
  310. package/src/lib/doctor/index.js.map +1 -1
  311. package/src/lib/index.js.map +1 -1
  312. package/src/lib/invocation.js +6 -2
  313. package/src/lib/invocation.js.map +1 -1
  314. package/src/lib/playwright/failure-reporter.d.ts +35 -0
  315. package/src/lib/playwright/failure-reporter.js +66 -0
  316. package/src/lib/playwright/failure-reporter.js.map +1 -0
  317. package/src/lib/release.js.map +1 -1
  318. package/src/lib/update/agent-rules-sync.js.map +1 -1
  319. package/src/lib/update/agent-setup.js.map +1 -1
  320. package/src/lib/update/ai.js.map +1 -1
  321. package/src/lib/update/args.js.map +1 -1
  322. package/src/lib/update/available-migrations.js.map +1 -1
  323. package/src/lib/update/commits.js.map +1 -1
  324. package/src/lib/update/gitignore.js.map +1 -1
  325. package/src/lib/update/index.js.map +1 -1
  326. package/src/lib/update/migration-manifest.js.map +1 -1
  327. package/src/lib/update/migration-record.js.map +1 -1
  328. package/src/lib/update/migrations-command.js.map +1 -1
  329. package/src/lib/update/package-manager.d.ts +1 -1
  330. package/src/lib/update/package-manager.js.map +1 -1
  331. package/src/lib/update/packages.js.map +1 -1
  332. package/src/lib/update/pending.js.map +1 -1
  333. package/src/lib/update/plan.js.map +1 -1
  334. package/src/lib/update/registry.js.map +1 -1
  335. package/src/lib/update/run-migrations.js.map +1 -1
  336. package/src/lib/update/scan.js.map +1 -1
  337. package/src/lib/update/semver.js.map +1 -1
  338. package/src/lib/update/tasks.js.map +1 -1
  339. package/src/lib/update/update-command.js.map +1 -1
  340. package/src/lib/utils.js.map +1 -1
@@ -0,0 +1,23 @@
1
+ import { PictureOf } from '../../merge-compare';
2
+ import { ResolvedProduct } from '../resolve-product';
3
+ import { SketchVariant } from '../system-modules';
4
+ import { Sketch } from './sketch';
5
+ export type SketchPartLoader = (options: {
6
+ file: string;
7
+ product: string;
8
+ sketch: SketchVariant | null;
9
+ }) => Promise<unknown>;
10
+ /**
11
+ * The states of the sketch's target that `variant` renders to the same markup and styles as the product
12
+ * does now, with the same widths and interactions, so every frame of them matches. With `pictureOf`, a state
13
+ * whose markup differs, or cannot be rendered outside a browser (`ng()`), is unchanged when every frame draws the
14
+ * same pixels in the default theme. A state the product lacks, or one that fails to draw on either side, is never
15
+ * unchanged. Markup-only comparisons are cached by source hashes; pixel comparisons run again for each screenshot session.
16
+ */
17
+ export declare const unchangedStatesOf: (options: {
18
+ product: ResolvedProduct;
19
+ sketch: Sketch;
20
+ variant: string;
21
+ load: SketchPartLoader;
22
+ pictureOf?: PictureOf;
23
+ }) => Promise<string[]>;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.unchangedStatesOf = void 0;
13
+ const crypto_1 = require("crypto");
14
+ const resolve_product_1 = require("../resolve-product");
15
+ const baseline_1 = require("./baseline");
16
+ const overlay_1 = require("./overlay");
17
+ const sketch_1 = require("./sketch");
18
+ const CACHE_LIMIT = 200;
19
+ const cache = new Map();
20
+ const hashOf = (value) => (0, crypto_1.createHash)('sha256').update(value).digest('hex');
21
+ const markupOf = (part, props) => __awaiter(void 0, void 0, void 0, function* () {
22
+ var _a, _b;
23
+ try {
24
+ const drawn = (yield ((_a = part.render) === null || _a === void 0 ? void 0 : _a.call(part, props)));
25
+ const styles = (_b = drawn === null || drawn === void 0 ? void 0 : drawn.styles) !== null && _b !== void 0 ? _b : '';
26
+ return typeof (drawn === null || drawn === void 0 ? void 0 : drawn.body) === 'string' && typeof styles === 'string'
27
+ ? { body: hashOf(drawn.body), styles: hashOf(styles) }
28
+ : null;
29
+ }
30
+ catch (_c) {
31
+ return null;
32
+ }
33
+ });
34
+ const renderedOf = (load) => __awaiter(void 0, void 0, void 0, function* () {
35
+ var _a, _b;
36
+ try {
37
+ const part = (yield load()).default;
38
+ const states = part === null || part === void 0 ? void 0 : part.states;
39
+ if (!part || !states || typeof states !== 'object')
40
+ return null;
41
+ const hashes = yield Promise.all(Object.entries(states).map((_a) => __awaiter(void 0, [_a], void 0, function* ([state, props]) { return [state, yield markupOf(part, props)]; })));
42
+ return {
43
+ part,
44
+ frames: JSON.stringify([(_a = part.widths) !== null && _a !== void 0 ? _a : null, (_b = part.interactions) !== null && _b !== void 0 ? _b : null]),
45
+ states: new Map(hashes),
46
+ };
47
+ }
48
+ catch (_c) {
49
+ return null;
50
+ }
51
+ });
52
+ const remember = (key, unchanged) => {
53
+ var _a;
54
+ if (cache.size >= CACHE_LIMIT)
55
+ cache.delete((_a = cache.keys().next().value) !== null && _a !== void 0 ? _a : '');
56
+ cache.set(key, unchanged);
57
+ return unchanged;
58
+ };
59
+ const framesOf = (part, presets) => {
60
+ const sizes = presets
61
+ ? presets.map((preset) => ({ preset, width: null }))
62
+ : Array.isArray(part.widths) && part.widths.length > 0
63
+ ? part.widths.map((width) => ({ preset: null, width: Number(width) }))
64
+ : [{ preset: null, width: null }];
65
+ const interactions = [
66
+ null,
67
+ ...(Array.isArray(part.interactions) ? part.interactions.filter((name) => typeof name === 'string') : []),
68
+ ];
69
+ return sizes.flatMap((size) => interactions.map((interaction) => (Object.assign(Object.assign({}, size), { interaction }))));
70
+ };
71
+ const drawsTheSame = (options) => __awaiter(void 0, void 0, void 0, function* () {
72
+ const { pictureOf, product, part, presets, state, sketch } = options;
73
+ try {
74
+ const same = yield Promise.all(framesOf(part, presets).map((frame) => __awaiter(void 0, void 0, void 0, function* () {
75
+ const draw = (drawn) => pictureOf(Object.assign(Object.assign({ product, part: sketch.target, state }, frame), { sketch: drawn, params: new URLSearchParams() }));
76
+ const [now, after] = yield Promise.all([draw(null), draw(sketch)]);
77
+ return now.png.equals(after.png);
78
+ })));
79
+ return same.every(Boolean);
80
+ }
81
+ catch (_a) {
82
+ return false;
83
+ }
84
+ });
85
+ /**
86
+ * The states of the sketch's target that `variant` renders to the same markup and styles as the product
87
+ * does now, with the same widths and interactions, so every frame of them matches. With `pictureOf`, a state
88
+ * whose markup differs, or cannot be rendered outside a browser (`ng()`), is unchanged when every frame draws the
89
+ * same pixels in the default theme. A state the product lacks, or one that fails to draw on either side, is never
90
+ * unchanged. Markup-only comparisons are cached by source hashes; pixel comparisons run again for each screenshot session.
91
+ */
92
+ const unchangedStatesOf = (options) => __awaiter(void 0, void 0, void 0, function* () {
93
+ var _a;
94
+ const { product, sketch, variant, load, pictureOf } = options;
95
+ const current = product.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === sketch.target);
96
+ const merged = current === null || current === void 0 ? void 0 : current.file;
97
+ const overlaid = (0, overlay_1.overlaySketch)({ product, sketch, variant });
98
+ const drawn = (_a = overlaid.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === sketch.target)) === null || _a === void 0 ? void 0 : _a.file;
99
+ if (!merged || !drawn)
100
+ return [];
101
+ const key = hashOf(JSON.stringify([
102
+ sketch.dir,
103
+ sketch.target,
104
+ variant,
105
+ (0, baseline_1.baselineOf)(product),
106
+ (0, baseline_1.baselineOf)(overlaid),
107
+ (0, baseline_1.partHashOf)({ product, dir: (0, sketch_1.sharedDirOf)(sketch) }),
108
+ (0, baseline_1.partHashOf)({ product, dir: (0, sketch_1.variantDirOf)(sketch, variant) }),
109
+ !!pictureOf,
110
+ ]));
111
+ const known = pictureOf ? undefined : cache.get(key);
112
+ if (known)
113
+ return known;
114
+ const [now, after] = yield Promise.all([
115
+ renderedOf(() => load({ file: merged, product: product.name, sketch: null })),
116
+ renderedOf(() => load({ file: drawn, product: product.name, sketch: { target: sketch.target, variant } })),
117
+ ]);
118
+ if (!now || !after)
119
+ return [];
120
+ if (now.frames !== after.frames)
121
+ return pictureOf ? [] : remember(key, []);
122
+ const presets = (current === null || current === void 0 ? void 0 : current.layer) === 'pages' ? Object.keys(product.presets) : null;
123
+ const same = yield Promise.all([...after.states].map((_a) => __awaiter(void 0, [_a], void 0, function* ([state, markup]) {
124
+ if (!now.states.has(state))
125
+ return false;
126
+ const before = now.states.get(state);
127
+ if (markup && before && markup.body === before.body && markup.styles === before.styles)
128
+ return true;
129
+ return pictureOf
130
+ ? drawsTheSame({
131
+ pictureOf,
132
+ product: product.name,
133
+ part: after.part,
134
+ presets,
135
+ state,
136
+ sketch: { target: sketch.target, variant },
137
+ })
138
+ : false;
139
+ })));
140
+ const unchanged = [...after.states.keys()].filter((_, index) => same[index]);
141
+ return pictureOf ? unchanged : remember(key, unchanged);
142
+ });
143
+ exports.unchangedStatesOf = unchangedStatesOf;
144
+ //# sourceMappingURL=unchanged-states.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unchanged-states.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/unchanged-states.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Sketch } from './sketch';
2
+ /**
3
+ * A warning for each `.ts` or `.css` file of a variant that no part file, fixture or other file of the variant
4
+ * imports.
5
+ */
6
+ export declare const unusedFileWarningsOf: (options: {
7
+ target: string;
8
+ sketch: Sketch;
9
+ variant: string;
10
+ }) => string[];
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unusedFileWarningsOf = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const assets_1 = require("../assets");
7
+ const imports_1 = require("../imports");
8
+ const product_1 = require("../product");
9
+ const unused_shared_export_1 = require("../rules/unused-shared-export");
10
+ const ts_source_1 = require("../ts-source");
11
+ const sketch_1 = require("./sketch");
12
+ const CODE = /\.(?:ts|css)$/u;
13
+ const codeFilesIn = (dir) => (0, fs_1.readdirSync)(dir, { recursive: true })
14
+ .filter((path) => CODE.test(path) && path.split(path_1.sep)[0] !== assets_1.ASSETS_FOLDER && path.split(path_1.sep)[0] !== sketch_1.SHARED_FOLDER)
15
+ .map((path) => (0, path_1.resolve)(dir, path));
16
+ const candidatesOf = (path) => [path, `${path}.ts`, (0, path_1.resolve)(path, 'index.ts')];
17
+ /**
18
+ * A warning for each `.ts` or `.css` file of a variant that no part file, fixture or other file of the variant
19
+ * imports.
20
+ */
21
+ const unusedFileWarningsOf = (options) => {
22
+ var _a;
23
+ const { target, sketch, variant } = options;
24
+ const dir = (0, sketch_1.variantDirOf)(sketch, variant);
25
+ if (!(0, fs_1.existsSync)(dir))
26
+ return [];
27
+ const files = codeFilesIn(dir);
28
+ const { parts } = (0, product_1.partFilesOf)(dir);
29
+ const used = new Set([
30
+ ...parts.flatMap((part) => [part.file, ...(part.css ? [part.css] : [])]),
31
+ ...((0, product_1.fixturesOf)(dir) ? [(0, product_1.fixturesOf)(dir)] : []),
32
+ ]);
33
+ for (const file of files.filter((path) => path.endsWith('.ts')))
34
+ for (const specifier of (0, ts_source_1.importsOf)((0, fs_1.readFileSync)(file, 'utf8')))
35
+ if ((0, imports_1.classifyImport)(specifier).kind === 'relative')
36
+ candidatesOf((0, path_1.resolve)((0, path_1.dirname)(file), (_a = specifier.split('?')[0]) !== null && _a !== void 0 ? _a : specifier)).forEach((path) => used.add(path));
37
+ const sharedDir = (0, path_1.resolve)(sketch.dir, sketch_1.SHARED_FOLDER);
38
+ const unusedExports = (0, unused_shared_export_1.unusedExportsOf)({
39
+ sharedDir,
40
+ importers: files.filter((path) => path.endsWith('.ts')),
41
+ resolveSpecifier: ({ file, specifier }) => specifier.startsWith(imports_1.SHARED_PREFIX)
42
+ ? (0, path_1.resolve)(sharedDir, specifier.slice(imports_1.SHARED_PREFIX.length))
43
+ : specifier.startsWith('.')
44
+ ? (0, path_1.resolve)((0, path_1.dirname)(file), specifier)
45
+ : null,
46
+ scope: `in variant ${variant}`,
47
+ });
48
+ return [
49
+ ...files
50
+ .filter((file) => !used.has(file))
51
+ .map((file) => `WARNING ${(0, path_1.relative)(target, file)}: nothing in variant ${variant} imports it - delete it, or a merge takes it into the product`),
52
+ ...unusedExports.map((problem) => `WARNING ${(0, path_1.relative)(target, problem.file)}: ${problem.message}`),
53
+ ];
54
+ };
55
+ exports.unusedFileWarningsOf = unusedFileWarningsOf;
56
+ //# sourceMappingURL=unused-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unused-files.js","sourceRoot":"","sources":["../../../../../../../libs/cli/src/lib/design/system/sketch/unused-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `et design system --json [--product <name>]` prints the parts list the design server answers on
3
+ * `/__design/system`, loading each part through the same Vite setup.
4
+ */
5
+ export declare const designSystem: (options: {
6
+ target: string;
7
+ argv: string[];
8
+ invocation: string;
9
+ }) => Promise<0 | 1 | 2>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.designSystem = void 0;
13
+ const paths_1 = require("../paths");
14
+ const serve_1 = require("../serve");
15
+ const list_system_1 = require("./list-system");
16
+ const system_modules_1 = require("./system-modules");
17
+ /**
18
+ * `et design system --json [--product <name>]` prints the parts list the design server answers on
19
+ * `/__design/system`, loading each part through the same Vite setup.
20
+ */
21
+ const designSystem = (options) => __awaiter(void 0, void 0, void 0, function* () {
22
+ var _a;
23
+ const { target, argv, invocation } = options;
24
+ const productIndex = argv.indexOf('--product');
25
+ const asked = productIndex === -1 ? null : argv[productIndex + 1];
26
+ if (!argv.includes('--json') || asked === undefined) {
27
+ console.error(`usage: ${invocation} system --json [--product <name>]`);
28
+ return 2;
29
+ }
30
+ const config = (0, paths_1.readConfig)(target);
31
+ if (!config) {
32
+ console.error(`design-explore: no config at ${(0, paths_1.configPathOf)(target)}`);
33
+ return 1;
34
+ }
35
+ const declared = Object.keys((_a = config.products) !== null && _a !== void 0 ? _a : {});
36
+ if (asked && !declared.includes(asked)) {
37
+ console.error(`NO PRODUCT "${asked}" - config.json declares ${declared.join(', ') || 'none'}.`);
38
+ return 1;
39
+ }
40
+ const vite = yield (0, serve_1.createDesignServer)({ target, config, listen: false });
41
+ try {
42
+ const products = yield (0, list_system_1.listSystem)({
43
+ target,
44
+ system: (0, system_modules_1.createSystemModules)({ target, config }),
45
+ products: asked ? [asked] : declared,
46
+ load: ({ file, product }) => vite.ssrLoadModule((0, system_modules_1.productModuleIdOf)({ file, product })),
47
+ });
48
+ console.log(JSON.stringify(products, null, 2));
49
+ return 0;
50
+ }
51
+ finally {
52
+ yield vite.close();
53
+ }
54
+ });
55
+ exports.designSystem = designSystem;
56
+ //# sourceMappingURL=system-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-command.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/system-command.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAoD;AACpD,oCAA8C;AAC9C,+CAA2C;AAC3C,qDAA0E;AAE1E;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAO,OAA+D,EAAE,EAAE;;IACpG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAElE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,UAAU,UAAU,mCAAmC,CAAC,CAAC;QAEvE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,MAAM,CAAC,CAAC;IAElC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAA,oBAAY,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEtE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,MAAM,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC;IAEpD,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,4BAA4B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC;QAEhG,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAA,0BAAkB,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAEzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAU,EAAC;YAChC,MAAM;YACN,MAAM,EAAE,IAAA,oCAAmB,EAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC/C,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ;YACpC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAA,kCAAiB,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;SACtF,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE/C,OAAO,CAAC,CAAC;IACX,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;AACH,CAAC,CAAA,CAAC;AA3CW,QAAA,YAAY,gBA2CvB"}
@@ -0,0 +1,58 @@
1
+ import { DesignConfig } from '../paths';
2
+ import { ResolvedProduct } from './resolve-product';
3
+ import { Sketch } from './sketch/sketch';
4
+ /** One variant of the sketch on `target` (`<layer>/<name>`). */
5
+ export type SketchVariant = {
6
+ target: string;
7
+ variant: string;
8
+ };
9
+ /**
10
+ * The module id of a file as one product draws it, or as one variant of a sketch draws it. A base
11
+ * part is one file but a different module in each product, because each product resolves its
12
+ * `@system/...` imports to its own parts.
13
+ */
14
+ export declare const productModuleIdOf: (options: {
15
+ file: string;
16
+ product: string;
17
+ sketch?: SketchVariant | null;
18
+ }) => string;
19
+ /** The module id of a stylesheet as one product, or one sketch variant, draws it, its own query (`inline`) kept. */
20
+ export declare const stylesheetModuleIdOf: (options: {
21
+ file: string;
22
+ query: string | undefined;
23
+ product: string;
24
+ sketch: SketchVariant | null;
25
+ }) => string;
26
+ export declare const productOfModuleId: (id: string | null | undefined) => string | null;
27
+ export declare const sketchOfModuleId: (id: string | null | undefined) => SketchVariant | null;
28
+ export declare const fileOfModuleId: (id: string) => string;
29
+ /**
30
+ * The products of a workspace, resolved on first use and kept until `forget`, and the resolution
31
+ * of `@system/<layer>/<name>`, `@system/<layer>/<name>.css?inline` (the part's stylesheet),
32
+ * `@system/fixtures`, a sketch's `@shared/<path>` and `@assets/<file>` (a URL, or the text with `?raw`)
33
+ * inside a module of one product. A relative import of a source file stays in the importer's product
34
+ * and sketch, so a helper file next to a part resolves `@system/...` as the part does.
35
+ */
36
+ export declare const createSystemModules: (options: {
37
+ target: string;
38
+ config: DesignConfig;
39
+ sketchesRoot?: string;
40
+ }) => {
41
+ products: () => string[];
42
+ productOf: (name: string) => ResolvedProduct | null;
43
+ sketchesOf: (name: string) => Sketch[];
44
+ drawnOf: (name: string, sketch?: SketchVariant | null) => ResolvedProduct | null;
45
+ partOf: (options: {
46
+ product: string;
47
+ part: string;
48
+ sketch?: SketchVariant | null;
49
+ }) => import("./resolve-product").ResolvedPart | null;
50
+ tokenStylesheetsOf: (options: {
51
+ product: string;
52
+ sketch?: SketchVariant | null;
53
+ }) => string[];
54
+ resolveId: (specifier: string, importer: string | undefined) => string | null;
55
+ withAssetUrls: (code: string, id: string) => string | null;
56
+ forget: () => void;
57
+ };
58
+ export type SystemModules = ReturnType<typeof createSystemModules>;
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSystemModules = exports.fileOfModuleId = exports.sketchOfModuleId = exports.productOfModuleId = exports.stylesheetModuleIdOf = exports.productModuleIdOf = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const vite_paths_1 = require("../vite-paths");
7
+ const assets_1 = require("./assets");
8
+ const imports_1 = require("./imports");
9
+ const resolve_product_1 = require("./resolve-product");
10
+ const overlay_1 = require("./sketch/overlay");
11
+ const sketch_1 = require("./sketch/sketch");
12
+ const PRODUCT_QUERY = 'design-product';
13
+ const SKETCH_QUERY = 'design-sketch';
14
+ const VARIANT_QUERY = 'design-variant';
15
+ const STYLESHEET_FILE = /\.css$/u;
16
+ /**
17
+ * The module id of a file as one product draws it, or as one variant of a sketch draws it. A base
18
+ * part is one file but a different module in each product, because each product resolves its
19
+ * `@system/...` imports to its own parts.
20
+ */
21
+ const productModuleIdOf = (options) => `${options.file}?${PRODUCT_QUERY}=${encodeURIComponent(options.product)}` +
22
+ (options.sketch
23
+ ? `&${SKETCH_QUERY}=${encodeURIComponent(options.sketch.target)}&${VARIANT_QUERY}=${encodeURIComponent(options.sketch.variant)}`
24
+ : '');
25
+ exports.productModuleIdOf = productModuleIdOf;
26
+ /** The module id of a stylesheet as one product, or one sketch variant, draws it, its own query (`inline`) kept. */
27
+ const stylesheetModuleIdOf = (options) => {
28
+ const { file, query, product, sketch } = options;
29
+ const id = (0, exports.productModuleIdOf)({ file, product, sketch });
30
+ return query ? id.replace('?', `?${query}&`) : id;
31
+ };
32
+ exports.stylesheetModuleIdOf = stylesheetModuleIdOf;
33
+ const productOfModuleId = (id) => {
34
+ const query = id === null || id === void 0 ? void 0 : id.split('?')[1];
35
+ return query ? new URLSearchParams(query).get(PRODUCT_QUERY) : null;
36
+ };
37
+ exports.productOfModuleId = productOfModuleId;
38
+ const sketchOfModuleId = (id) => {
39
+ var _a;
40
+ const params = new URLSearchParams((_a = id === null || id === void 0 ? void 0 : id.split('?')[1]) !== null && _a !== void 0 ? _a : '');
41
+ const target = params.get(SKETCH_QUERY);
42
+ const variant = params.get(VARIANT_QUERY);
43
+ return target && variant ? { target, variant } : null;
44
+ };
45
+ exports.sketchOfModuleId = sketchOfModuleId;
46
+ const fileOfModuleId = (id) => { var _a; return (_a = id.split('?')[0]) !== null && _a !== void 0 ? _a : id; };
47
+ exports.fileOfModuleId = fileOfModuleId;
48
+ /**
49
+ * The products of a workspace, resolved on first use and kept until `forget`, and the resolution
50
+ * of `@system/<layer>/<name>`, `@system/<layer>/<name>.css?inline` (the part's stylesheet),
51
+ * `@system/fixtures`, a sketch's `@shared/<path>` and `@assets/<file>` (a URL, or the text with `?raw`)
52
+ * inside a module of one product. A relative import of a source file stays in the importer's product
53
+ * and sketch, so a helper file next to a part resolves `@system/...` as the part does.
54
+ */
55
+ const createSystemModules = (options) => {
56
+ const { target, config, sketchesRoot } = options;
57
+ const resolved = new Map();
58
+ const sketched = new Map();
59
+ const productOf = (name) => {
60
+ var _a, _b;
61
+ const entry = (_a = config.products) === null || _a === void 0 ? void 0 : _a[name];
62
+ if (!entry)
63
+ return null;
64
+ const cached = (_b = resolved.get(name)) !== null && _b !== void 0 ? _b : (0, resolve_product_1.resolveProduct)({ target, name, config: entry });
65
+ resolved.set(name, cached);
66
+ return cached;
67
+ };
68
+ const sketchesOf = (name) => {
69
+ const product = productOf(name);
70
+ return product
71
+ ? (0, sketch_1.listSketches)({ productDir: sketchesRoot !== null && sketchesRoot !== void 0 ? sketchesRoot : product.dir, product: name }).filter((sketch) => typeof sketch !== 'string')
72
+ : [];
73
+ };
74
+ /** The product as it draws, or as one variant of one of its sketches draws it; `null` when either is missing. */
75
+ const drawnOf = (name, sketch) => {
76
+ var _a;
77
+ const product = productOf(name);
78
+ if (!product || !sketch)
79
+ return product;
80
+ const key = JSON.stringify([name, sketch.target, sketch.variant]);
81
+ if (sketched.has(key))
82
+ return (_a = sketched.get(key)) !== null && _a !== void 0 ? _a : null;
83
+ const target = (0, sketch_1.parseTarget)(sketch.target);
84
+ const found = typeof target === 'string'
85
+ ? null
86
+ : (0, sketch_1.findSketch)({ productDir: sketchesRoot !== null && sketchesRoot !== void 0 ? sketchesRoot : product.dir, product: name, sketch: target });
87
+ const drawn = found && typeof found !== 'string' && found.variants.includes(sketch.variant)
88
+ ? (0, overlay_1.overlaySketch)({ product, sketch: found, variant: sketch.variant })
89
+ : null;
90
+ sketched.set(key, drawn);
91
+ return drawn;
92
+ };
93
+ const partOf = (options) => { var _a, _b; return (_b = (_a = drawnOf(options.product, options.sketch)) === null || _a === void 0 ? void 0 : _a.parts.find((part) => (0, resolve_product_1.partKeyOf)(part) === options.part)) !== null && _b !== void 0 ? _b : null; };
94
+ const tokenStylesheetsOf = (options) => {
95
+ var _a;
96
+ const { product, sketch } = options;
97
+ const entry = (_a = config.products) === null || _a === void 0 ? void 0 : _a[product];
98
+ return entry
99
+ ? (0, resolve_product_1.tokenPartsOf)(entry).flatMap((part) => {
100
+ var _a;
101
+ const css = (_a = partOf({ product, part, sketch })) === null || _a === void 0 ? void 0 : _a.css;
102
+ return css && (0, fs_1.existsSync)(css) ? [css] : [];
103
+ })
104
+ : [];
105
+ };
106
+ const sharedFileOf = (options) => {
107
+ var _a;
108
+ const { product, sketch, path } = options;
109
+ const target = sketch ? (0, sketch_1.parseTarget)(sketch.target) : null;
110
+ const productDir = sketchesRoot !== null && sketchesRoot !== void 0 ? sketchesRoot : (_a = productOf(product)) === null || _a === void 0 ? void 0 : _a.dir;
111
+ if (!target || typeof target === 'string' || !productDir)
112
+ return null;
113
+ const found = (0, sketch_1.findSketch)({ productDir, product, sketch: target });
114
+ return found && typeof found !== 'string' && sketch
115
+ ? (0, imports_1.sharedFileOf)({ dirs: [(0, sketch_1.variantSharedDirOf)(found, sketch.variant), (0, sketch_1.sharedDirOf)(found)], path })
116
+ : null;
117
+ };
118
+ const resolveId = (specifier, importer) => {
119
+ var _a, _b, _c, _d;
120
+ const name = (0, exports.productOfModuleId)(importer);
121
+ const imported = (0, imports_1.classifyImport)(specifier);
122
+ if (!name || !importer)
123
+ return null;
124
+ const sketch = (0, exports.sketchOfModuleId)(importer);
125
+ if (imported.kind === 'asset') {
126
+ const drawn = drawnOf(name, sketch);
127
+ const file = drawn ? (0, assets_1.assetFileOf)({ product: drawn, path: imported.path }) : null;
128
+ return file ? `${file}?${(_a = specifier.split('?')[1]) !== null && _a !== void 0 ? _a : 'url'}` : null;
129
+ }
130
+ if (imported.kind === 'relative' && STYLESHEET_FILE.test((0, exports.fileOfModuleId)(specifier))) {
131
+ const file = (0, path_1.resolve)((0, path_1.dirname)((0, exports.fileOfModuleId)(importer)), (0, exports.fileOfModuleId)(specifier));
132
+ return (0, fs_1.existsSync)(file)
133
+ ? (0, exports.stylesheetModuleIdOf)({ file, query: specifier.split('?')[1], product: name, sketch })
134
+ : null;
135
+ }
136
+ if (imported.kind === 'shared' && STYLESHEET_FILE.test((0, exports.fileOfModuleId)(specifier))) {
137
+ const file = sharedFileOf({ product: name, sketch, path: imported.path });
138
+ return file ? (0, exports.stylesheetModuleIdOf)({ file, query: specifier.split('?')[1], product: name, sketch }) : null;
139
+ }
140
+ if (imported.kind === 'relative' || imported.kind === 'shared') {
141
+ const file = imported.kind === 'shared'
142
+ ? sharedFileOf({ product: name, sketch, path: imported.path })
143
+ : specifier.includes('?')
144
+ ? null
145
+ : (0, vite_paths_1.sourceFileOf)((0, path_1.resolve)((0, path_1.dirname)((0, exports.fileOfModuleId)(importer)), specifier));
146
+ return file ? (0, exports.productModuleIdOf)({ file, product: name, sketch }) : null;
147
+ }
148
+ if (imported.kind !== 'part' && imported.kind !== 'fixtures')
149
+ return null;
150
+ if (imported.kind === 'part' && imported.stylesheet) {
151
+ const css = (_b = partOf({ product: name, part: (0, resolve_product_1.partKeyOf)(imported), sketch })) === null || _b === void 0 ? void 0 : _b.css;
152
+ const query = specifier.split('?')[1];
153
+ return css ? (0, exports.stylesheetModuleIdOf)({ file: css, query, product: name, sketch }) : null;
154
+ }
155
+ const file = imported.kind === 'fixtures'
156
+ ? (_c = drawnOf(name, sketch)) === null || _c === void 0 ? void 0 : _c.fixtures
157
+ : (_d = partOf({ product: name, part: (0, resolve_product_1.partKeyOf)(imported), sketch })) === null || _d === void 0 ? void 0 : _d.file;
158
+ return file ? (0, exports.productModuleIdOf)({ file, product: name, sketch }) : null;
159
+ };
160
+ /** A product's stylesheet with each `url(@assets/<file>)` turned into the URL of the file the product resolves. */
161
+ const withAssetUrls = (code, id) => {
162
+ const name = (0, exports.productOfModuleId)(id);
163
+ if (!name || !STYLESHEET_FILE.test((0, exports.fileOfModuleId)(id)) || !code.includes(assets_1.ASSETS_PREFIX))
164
+ return null;
165
+ const drawn = drawnOf(name, (0, exports.sketchOfModuleId)(id));
166
+ return drawn
167
+ ? code.replace(assets_1.ASSET_URL, (...[whole = '', , path = '']) => {
168
+ const file = (0, assets_1.assetFileOf)({ product: drawn, path });
169
+ return file ? `url("${(0, vite_paths_1.fsUrl)(file)}")` : whole;
170
+ })
171
+ : null;
172
+ };
173
+ return {
174
+ products: () => { var _a; return Object.keys((_a = config.products) !== null && _a !== void 0 ? _a : {}); },
175
+ productOf,
176
+ sketchesOf,
177
+ drawnOf,
178
+ partOf,
179
+ tokenStylesheetsOf,
180
+ resolveId,
181
+ withAssetUrls,
182
+ forget: () => {
183
+ resolved.clear();
184
+ sketched.clear();
185
+ },
186
+ };
187
+ };
188
+ exports.createSystemModules = createSystemModules;
189
+ //# sourceMappingURL=system-modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-modules.js","sourceRoot":"","sources":["../../../../../../libs/cli/src/lib/design/system/system-modules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { TypecheckResult } from '../typecheck';
2
+ import { SharedDirs } from './imports';
3
+ import { ResolvedProduct } from './resolve-product';
4
+ export declare const DESIGN_SYSTEM_SPECIFIER = "@design-system";
5
+ /**
6
+ * Writes the tsconfig that types one product's design system, and answers with its path. Each
7
+ * `@system/<layer>/<name>` maps to the part the product resolves, so an override also replaces
8
+ * the part inside the base parts that import it.
9
+ */
10
+ export declare const writeSystemTsconfig: (options: {
11
+ target: string;
12
+ product: ResolvedProduct & SharedDirs;
13
+ }) => string;
14
+ /** The one typecheck of a product, shared by `design check` and every sketch variant. */
15
+ export declare const typecheckProduct: (options: {
16
+ target: string;
17
+ product: ResolvedProduct & SharedDirs;
18
+ }) => TypecheckResult;
19
+ /**
20
+ * Writes `tsconfig.json` into the product's own folder, the nearest tsconfig an editor finds for
21
+ * its parts, so `@design-system` and `@system/*` resolve there. The file is gitignored.
22
+ */
23
+ export declare const writeEditorTsconfig: (options: {
24
+ target: string;
25
+ product: ResolvedProduct;
26
+ }) => void;