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

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 (335) hide show
  1. package/CHANGELOG.md +180 -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/src/index.js.map +1 -1
  16. package/src/lib/api/api-command.js.map +1 -1
  17. package/src/lib/api/api-context.js.map +1 -1
  18. package/src/lib/api/api-state.js.map +1 -1
  19. package/src/lib/api/auth-hint.js.map +1 -1
  20. package/src/lib/api/clear.js.map +1 -1
  21. package/src/lib/api/clone.js.map +1 -1
  22. package/src/lib/api/compose.js.map +1 -1
  23. package/src/lib/api/definition.js.map +1 -1
  24. package/src/lib/api/doctor.js.map +1 -1
  25. package/src/lib/api/fingerprint.js.map +1 -1
  26. package/src/lib/api/git.js.map +1 -1
  27. package/src/lib/api/help.js.map +1 -1
  28. package/src/lib/api/index.js.map +1 -1
  29. package/src/lib/api/load-definitions.js.map +1 -1
  30. package/src/lib/api/lock.js.map +1 -1
  31. package/src/lib/api/parse-argv.js.map +1 -1
  32. package/src/lib/api/ports.js.map +1 -1
  33. package/src/lib/api/resolve-checkout.js.map +1 -1
  34. package/src/lib/api/run-locked.js.map +1 -1
  35. package/src/lib/api/run-ready.js.map +1 -1
  36. package/src/lib/api/run-snapshot.js.map +1 -1
  37. package/src/lib/api/run-status.js.map +1 -1
  38. package/src/lib/api/run.js.map +1 -1
  39. package/src/lib/api/seeds.js.map +1 -1
  40. package/src/lib/api/setup.js.map +1 -1
  41. package/src/lib/api/snapshot.js.map +1 -1
  42. package/src/lib/api/state.js.map +1 -1
  43. package/src/lib/api/suggest.js.map +1 -1
  44. package/src/lib/api/validate-definition.js.map +1 -1
  45. package/src/lib/auth/auth-command.js.map +1 -1
  46. package/src/lib/auth/composer-auth.js.map +1 -1
  47. package/src/lib/auth/composer-repositories.js.map +1 -1
  48. package/src/lib/auth/gitlab-token.js.map +1 -1
  49. package/src/lib/auth/index.js.map +1 -1
  50. package/src/lib/config/diagnose.js.map +1 -1
  51. package/src/lib/config/index.js.map +1 -1
  52. package/src/lib/config/local-config.js.map +1 -1
  53. package/src/lib/design/asset-shot.d.ts +26 -0
  54. package/src/lib/design/asset-shot.js +191 -0
  55. package/src/lib/design/asset-shot.js.map +1 -0
  56. package/src/lib/design/browser.js.map +1 -1
  57. package/src/lib/design/calls-tsconfig.d.ts +14 -1
  58. package/src/lib/design/calls-tsconfig.js +23 -18
  59. package/src/lib/design/calls-tsconfig.js.map +1 -1
  60. package/src/lib/design/calls.d.ts +28 -0
  61. package/src/lib/design/calls.js +58 -0
  62. package/src/lib/design/calls.js.map +1 -0
  63. package/src/lib/design/changed-parts.d.ts +51 -0
  64. package/src/lib/design/changed-parts.js +103 -0
  65. package/src/lib/design/changed-parts.js.map +1 -0
  66. package/src/lib/design/check.js +53 -54
  67. package/src/lib/design/check.js.map +1 -1
  68. package/src/lib/design/contact-sheet.d.ts +68 -0
  69. package/src/lib/design/contact-sheet.js +169 -0
  70. package/src/lib/design/contact-sheet.js.map +1 -0
  71. package/src/lib/design/design-command.js +165 -6
  72. package/src/lib/design/design-command.js.map +1 -1
  73. package/src/lib/design/force-interactions.d.ts +13 -0
  74. package/src/lib/design/force-interactions.js +75 -0
  75. package/src/lib/design/force-interactions.js.map +1 -0
  76. package/src/lib/design/inbox-command.d.ts +21 -0
  77. package/src/lib/design/inbox-command.js +156 -0
  78. package/src/lib/design/inbox-command.js.map +1 -0
  79. package/src/lib/design/index.js.map +1 -1
  80. package/src/lib/design/json-layout.d.ts +5 -0
  81. package/src/lib/design/json-layout.js +41 -0
  82. package/src/lib/design/json-layout.js.map +1 -0
  83. package/src/lib/design/legacy.d.ts +7 -0
  84. package/src/lib/design/legacy.js +23 -8
  85. package/src/lib/design/legacy.js.map +1 -1
  86. package/src/lib/design/merge-compare.d.ts +57 -0
  87. package/src/lib/design/merge-compare.js +80 -0
  88. package/src/lib/design/merge-compare.js.map +1 -0
  89. package/src/lib/design/missing-package.js.map +1 -1
  90. package/src/lib/design/new-call.js.map +1 -1
  91. package/src/lib/design/part-marks.d.ts +12 -0
  92. package/src/lib/design/part-marks.js +38 -0
  93. package/src/lib/design/part-marks.js.map +1 -0
  94. package/src/lib/design/paths.d.ts +35 -2
  95. package/src/lib/design/paths.js +62 -4
  96. package/src/lib/design/paths.js.map +1 -1
  97. package/src/lib/design/product-command.d.ts +38 -0
  98. package/src/lib/design/product-command.js +158 -0
  99. package/src/lib/design/product-command.js.map +1 -0
  100. package/src/lib/design/ready-shots.d.ts +13 -0
  101. package/src/lib/design/ready-shots.js +55 -0
  102. package/src/lib/design/ready-shots.js.map +1 -0
  103. package/src/lib/design/render-fields.js.map +1 -1
  104. package/src/lib/design/render-packages.js.map +1 -1
  105. package/src/lib/design/render-worker.js.map +1 -1
  106. package/src/lib/design/render.d.ts +8 -1
  107. package/src/lib/design/render.js +43 -14
  108. package/src/lib/design/render.js.map +1 -1
  109. package/src/lib/design/serve.d.ts +17 -0
  110. package/src/lib/design/serve.js +444 -67
  111. package/src/lib/design/serve.js.map +1 -1
  112. package/src/lib/design/shot-command.d.ts +75 -0
  113. package/src/lib/design/shot-command.js +361 -0
  114. package/src/lib/design/shot-command.js.map +1 -0
  115. package/src/lib/design/shot.d.ts +97 -0
  116. package/src/lib/design/shot.js +346 -0
  117. package/src/lib/design/shot.js.map +1 -0
  118. package/src/lib/design/sketch-at.d.ts +16 -0
  119. package/src/lib/design/sketch-at.js +34 -0
  120. package/src/lib/design/sketch-at.js.map +1 -0
  121. package/src/lib/design/sketch-command.d.ts +9 -0
  122. package/src/lib/design/sketch-command.js +572 -0
  123. package/src/lib/design/sketch-command.js.map +1 -0
  124. package/src/lib/design/ssr-shims.js.map +1 -1
  125. package/src/lib/design/stamp.js.map +1 -1
  126. package/src/lib/design/status.d.ts +2 -2
  127. package/src/lib/design/status.js +2 -2
  128. package/src/lib/design/status.js.map +1 -1
  129. package/src/lib/design/studio-api.d.ts +102 -0
  130. package/src/lib/design/studio-api.js +452 -0
  131. package/src/lib/design/studio-api.js.map +1 -0
  132. package/src/lib/design/system/accept-command.d.ts +7 -0
  133. package/src/lib/design/system/accept-command.js +55 -0
  134. package/src/lib/design/system/accept-command.js.map +1 -0
  135. package/src/lib/design/system/assets.d.ts +34 -0
  136. package/src/lib/design/system/assets.js +64 -0
  137. package/src/lib/design/system/assets.js.map +1 -0
  138. package/src/lib/design/system/base.d.ts +33 -0
  139. package/src/lib/design/system/base.js +49 -0
  140. package/src/lib/design/system/base.js.map +1 -0
  141. package/src/lib/design/system/check-system.d.ts +23 -0
  142. package/src/lib/design/system/check-system.js +151 -0
  143. package/src/lib/design/system/check-system.js.map +1 -0
  144. package/src/lib/design/system/colour.d.ts +2 -0
  145. package/src/lib/design/system/colour.js +9 -0
  146. package/src/lib/design/system/colour.js.map +1 -0
  147. package/src/lib/design/system/comments/comment.d.ts +196 -0
  148. package/src/lib/design/system/comments/comment.js +332 -0
  149. package/src/lib/design/system/comments/comment.js.map +1 -0
  150. package/src/lib/design/system/comments/complete.d.ts +15 -0
  151. package/src/lib/design/system/comments/complete.js +63 -0
  152. package/src/lib/design/system/comments/complete.js.map +1 -0
  153. package/src/lib/design/system/comments/inbox.d.ts +49 -0
  154. package/src/lib/design/system/comments/inbox.js +100 -0
  155. package/src/lib/design/system/comments/inbox.js.map +1 -0
  156. package/src/lib/design/system/css-source.d.ts +12 -0
  157. package/src/lib/design/system/css-source.js +39 -0
  158. package/src/lib/design/system/css-source.js.map +1 -0
  159. package/src/lib/design/system/flows/flow.d.ts +66 -0
  160. package/src/lib/design/system/flows/flow.js +157 -0
  161. package/src/lib/design/system/flows/flow.js.map +1 -0
  162. package/src/lib/design/system/imports.d.ts +70 -0
  163. package/src/lib/design/system/imports.js +159 -0
  164. package/src/lib/design/system/imports.js.map +1 -0
  165. package/src/lib/design/system/kit.d.ts +4 -0
  166. package/src/lib/design/system/kit.js +51 -0
  167. package/src/lib/design/system/kit.js.map +1 -0
  168. package/src/lib/design/system/layers.d.ts +9 -0
  169. package/src/lib/design/system/layers.js +16 -0
  170. package/src/lib/design/system/layers.js.map +1 -0
  171. package/src/lib/design/system/list-system.d.ts +104 -0
  172. package/src/lib/design/system/list-system.js +212 -0
  173. package/src/lib/design/system/list-system.js.map +1 -0
  174. package/src/lib/design/system/notes/note.d.ts +53 -0
  175. package/src/lib/design/system/notes/note.js +116 -0
  176. package/src/lib/design/system/notes/note.js.map +1 -0
  177. package/src/lib/design/system/part-command.d.ts +7 -0
  178. package/src/lib/design/system/part-command.js +134 -0
  179. package/src/lib/design/system/part-command.js.map +1 -0
  180. package/src/lib/design/system/problem.d.ts +5 -0
  181. package/src/lib/design/system/problem.js +3 -0
  182. package/src/lib/design/system/problem.js.map +1 -0
  183. package/src/lib/design/system/product.d.ts +18 -0
  184. package/src/lib/design/system/product.js +35 -0
  185. package/src/lib/design/system/product.js.map +1 -0
  186. package/src/lib/design/system/render-check.d.ts +45 -0
  187. package/src/lib/design/system/render-check.js +427 -0
  188. package/src/lib/design/system/render-check.js.map +1 -0
  189. package/src/lib/design/system/resolve-product.d.ts +32 -0
  190. package/src/lib/design/system/resolve-product.js +62 -0
  191. package/src/lib/design/system/resolve-product.js.map +1 -0
  192. package/src/lib/design/system/rules/component-copy.d.ts +7 -0
  193. package/src/lib/design/system/rules/component-copy.js +53 -0
  194. package/src/lib/design/system/rules/component-copy.js.map +1 -0
  195. package/src/lib/design/system/rules/flow.d.ts +8 -0
  196. package/src/lib/design/system/rules/flow.js +60 -0
  197. package/src/lib/design/system/rules/flow.js.map +1 -0
  198. package/src/lib/design/system/rules/hard-coded-colour.d.ts +7 -0
  199. package/src/lib/design/system/rules/hard-coded-colour.js +27 -0
  200. package/src/lib/design/system/rules/hard-coded-colour.js.map +1 -0
  201. package/src/lib/design/system/rules/interactions.d.ts +4 -0
  202. package/src/lib/design/system/rules/interactions.js +16 -0
  203. package/src/lib/design/system/rules/interactions.js.map +1 -0
  204. package/src/lib/design/system/rules/kit-outside-pages.d.ts +4 -0
  205. package/src/lib/design/system/rules/kit-outside-pages.js +14 -0
  206. package/src/lib/design/system/rules/kit-outside-pages.js.map +1 -0
  207. package/src/lib/design/system/rules/motion.d.ts +4 -0
  208. package/src/lib/design/system/rules/motion.js +13 -0
  209. package/src/lib/design/system/rules/motion.js.map +1 -0
  210. package/src/lib/design/system/rules/stale-comment.d.ts +8 -0
  211. package/src/lib/design/system/rules/stale-comment.js +51 -0
  212. package/src/lib/design/system/rules/stale-comment.js.map +1 -0
  213. package/src/lib/design/system/rules/stale-replace.d.ts +4 -0
  214. package/src/lib/design/system/rules/stale-replace.js +65 -0
  215. package/src/lib/design/system/rules/stale-replace.js.map +1 -0
  216. package/src/lib/design/system/rules/svg-asset.d.ts +6 -0
  217. package/src/lib/design/system/rules/svg-asset.js +30 -0
  218. package/src/lib/design/system/rules/svg-asset.js.map +1 -0
  219. package/src/lib/design/system/rules/token-selectors.d.ts +3 -0
  220. package/src/lib/design/system/rules/token-selectors.js +87 -0
  221. package/src/lib/design/system/rules/token-selectors.js.map +1 -0
  222. package/src/lib/design/system/rules/undefined-token.d.ts +8 -0
  223. package/src/lib/design/system/rules/undefined-token.js +103 -0
  224. package/src/lib/design/system/rules/undefined-token.js.map +1 -0
  225. package/src/lib/design/system/rules/unused-shared-export.d.ts +18 -0
  226. package/src/lib/design/system/rules/unused-shared-export.js +60 -0
  227. package/src/lib/design/system/rules/unused-shared-export.js.map +1 -0
  228. package/src/lib/design/system/rules/upward-dependency.d.ts +4 -0
  229. package/src/lib/design/system/rules/upward-dependency.js +17 -0
  230. package/src/lib/design/system/rules/upward-dependency.js.map +1 -0
  231. package/src/lib/design/system/rules/widths.d.ts +4 -0
  232. package/src/lib/design/system/rules/widths.js +14 -0
  233. package/src/lib/design/system/rules/widths.js.map +1 -0
  234. package/src/lib/design/system/sketch/baseline.d.ts +38 -0
  235. package/src/lib/design/system/sketch/baseline.js +66 -0
  236. package/src/lib/design/system/sketch/baseline.js.map +1 -0
  237. package/src/lib/design/system/sketch/check-format.d.ts +17 -0
  238. package/src/lib/design/system/sketch/check-format.js +56 -0
  239. package/src/lib/design/system/sketch/check-format.js.map +1 -0
  240. package/src/lib/design/system/sketch/check-sketches.d.ts +38 -0
  241. package/src/lib/design/system/sketch/check-sketches.js +104 -0
  242. package/src/lib/design/system/sketch/check-sketches.js.map +1 -0
  243. package/src/lib/design/system/sketch/cli-args.d.ts +26 -0
  244. package/src/lib/design/system/sketch/cli-args.js +63 -0
  245. package/src/lib/design/system/sketch/cli-args.js.map +1 -0
  246. package/src/lib/design/system/sketch/duplicate-class.d.ts +14 -0
  247. package/src/lib/design/system/sketch/duplicate-class.js +57 -0
  248. package/src/lib/design/system/sketch/duplicate-class.js.map +1 -0
  249. package/src/lib/design/system/sketch/merge-preview.d.ts +15 -0
  250. package/src/lib/design/system/sketch/merge-preview.js +43 -0
  251. package/src/lib/design/system/sketch/merge-preview.js.map +1 -0
  252. package/src/lib/design/system/sketch/merge-shared.d.ts +25 -0
  253. package/src/lib/design/system/sketch/merge-shared.js +53 -0
  254. package/src/lib/design/system/sketch/merge-shared.js.map +1 -0
  255. package/src/lib/design/system/sketch/merge.d.ts +31 -0
  256. package/src/lib/design/system/sketch/merge.js +145 -0
  257. package/src/lib/design/system/sketch/merge.js.map +1 -0
  258. package/src/lib/design/system/sketch/merged-parts.d.ts +59 -0
  259. package/src/lib/design/system/sketch/merged-parts.js +134 -0
  260. package/src/lib/design/system/sketch/merged-parts.js.map +1 -0
  261. package/src/lib/design/system/sketch/no-visible-change.d.ts +15 -0
  262. package/src/lib/design/system/sketch/no-visible-change.js +70 -0
  263. package/src/lib/design/system/sketch/no-visible-change.js.map +1 -0
  264. package/src/lib/design/system/sketch/overlay.d.ts +20 -0
  265. package/src/lib/design/system/sketch/overlay.js +38 -0
  266. package/src/lib/design/system/sketch/overlay.js.map +1 -0
  267. package/src/lib/design/system/sketch/part-definition.d.ts +31 -0
  268. package/src/lib/design/system/sketch/part-definition.js +157 -0
  269. package/src/lib/design/system/sketch/part-definition.js.map +1 -0
  270. package/src/lib/design/system/sketch/shared-class.d.ts +9 -0
  271. package/src/lib/design/system/sketch/shared-class.js +65 -0
  272. package/src/lib/design/system/sketch/shared-class.js.map +1 -0
  273. package/src/lib/design/system/sketch/sketch.d.ts +221 -0
  274. package/src/lib/design/system/sketch/sketch.js +481 -0
  275. package/src/lib/design/system/sketch/sketch.js.map +1 -0
  276. package/src/lib/design/system/sketch/unchanged-states.d.ts +23 -0
  277. package/src/lib/design/system/sketch/unchanged-states.js +144 -0
  278. package/src/lib/design/system/sketch/unchanged-states.js.map +1 -0
  279. package/src/lib/design/system/sketch/unused-files.d.ts +10 -0
  280. package/src/lib/design/system/sketch/unused-files.js +56 -0
  281. package/src/lib/design/system/sketch/unused-files.js.map +1 -0
  282. package/src/lib/design/system/system-command.d.ts +9 -0
  283. package/src/lib/design/system/system-command.js +56 -0
  284. package/src/lib/design/system/system-command.js.map +1 -0
  285. package/src/lib/design/system/system-modules.d.ts +58 -0
  286. package/src/lib/design/system/system-modules.js +189 -0
  287. package/src/lib/design/system/system-modules.js.map +1 -0
  288. package/src/lib/design/system/system-tsconfig.d.ts +26 -0
  289. package/src/lib/design/system/system-tsconfig.js +68 -0
  290. package/src/lib/design/system/system-tsconfig.js.map +1 -0
  291. package/src/lib/design/system/ts-source.d.ts +13 -0
  292. package/src/lib/design/system/ts-source.js +108 -0
  293. package/src/lib/design/system/ts-source.js.map +1 -0
  294. package/src/lib/design/system-use.js.map +1 -1
  295. package/src/lib/design/thumb.d.ts +48 -4
  296. package/src/lib/design/thumb.js +127 -37
  297. package/src/lib/design/thumb.js.map +1 -1
  298. package/src/lib/design/typecheck.d.ts +27 -0
  299. package/src/lib/design/typecheck.js +60 -0
  300. package/src/lib/design/typecheck.js.map +1 -0
  301. package/src/lib/design/variant-diff.d.ts +48 -0
  302. package/src/lib/design/variant-diff.js +77 -0
  303. package/src/lib/design/variant-diff.js.map +1 -0
  304. package/src/lib/design/vite-paths.d.ts +2 -0
  305. package/src/lib/design/vite-paths.js +10 -1
  306. package/src/lib/design/vite-paths.js.map +1 -1
  307. package/src/lib/doctor/doctor-command.js.map +1 -1
  308. package/src/lib/doctor/index.js.map +1 -1
  309. package/src/lib/index.js.map +1 -1
  310. package/src/lib/invocation.js +6 -2
  311. package/src/lib/invocation.js.map +1 -1
  312. package/src/lib/release.js.map +1 -1
  313. package/src/lib/update/agent-rules-sync.js.map +1 -1
  314. package/src/lib/update/agent-setup.js.map +1 -1
  315. package/src/lib/update/ai.js.map +1 -1
  316. package/src/lib/update/args.js.map +1 -1
  317. package/src/lib/update/available-migrations.js.map +1 -1
  318. package/src/lib/update/commits.js.map +1 -1
  319. package/src/lib/update/gitignore.js.map +1 -1
  320. package/src/lib/update/index.js.map +1 -1
  321. package/src/lib/update/migration-manifest.js.map +1 -1
  322. package/src/lib/update/migration-record.js.map +1 -1
  323. package/src/lib/update/migrations-command.js.map +1 -1
  324. package/src/lib/update/package-manager.d.ts +1 -1
  325. package/src/lib/update/package-manager.js.map +1 -1
  326. package/src/lib/update/packages.js.map +1 -1
  327. package/src/lib/update/pending.js.map +1 -1
  328. package/src/lib/update/plan.js.map +1 -1
  329. package/src/lib/update/registry.js.map +1 -1
  330. package/src/lib/update/run-migrations.js.map +1 -1
  331. package/src/lib/update/scan.js.map +1 -1
  332. package/src/lib/update/semver.js.map +1 -1
  333. package/src/lib/update/tasks.js.map +1 -1
  334. package/src/lib/update/update-command.js.map +1 -1
  335. package/src/lib/utils.js.map +1 -1
@@ -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
+ * with the same markup but other styles is unchanged when every frame draws the same pixels in the default
89
+ * theme. A state the product lacks, or one that fails to render on either side, is never unchanged. Markup-only
90
+ * 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
+ const before = now.states.get(state);
125
+ if (!markup || !before)
126
+ return false;
127
+ if (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;